beyond-simulator-web 0.5.0 → 0.5.1

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.
@@ -1,7 +1,7 @@
1
- var D1=Object.create;var Nl=Object.defineProperty;var L1=Object.getOwnPropertyDescriptor;var O1=Object.getOwnPropertyNames;var N1=Object.getPrototypeOf,z1=Object.prototype.hasOwnProperty;var p=(i,t)=>()=>(i&&(t=i(i=0)),t);var H1=(i,t)=>()=>(t||i((t={exports:{}}).exports,t),t.exports),zl=(i,t)=>{for(var e in t)Nl(i,e,{get:t[e],enumerable:!0})},W1=(i,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of O1(t))!z1.call(i,s)&&s!==e&&Nl(i,s,{get:()=>t[s],enumerable:!(r=L1(t,s))||r.enumerable});return i};var V1=(i,t,e)=>(e=i!=null?D1(N1(i)):{},W1(t||!i||!i.__esModule?Nl(e,"default",{value:i,enumerable:!0}):e,i));var y,Hl,xo,z,P=p(()=>{"use strict";y=(i=>(i.Application="application",i.WebGLPipes="webgl-pipes",i.WebGLPipesAdaptor="webgl-pipes-adaptor",i.WebGLSystem="webgl-system",i.WebGPUPipes="webgpu-pipes",i.WebGPUPipesAdaptor="webgpu-pipes-adaptor",i.WebGPUSystem="webgpu-system",i.CanvasSystem="canvas-system",i.CanvasPipesAdaptor="canvas-pipes-adaptor",i.CanvasPipes="canvas-pipes",i.Asset="asset",i.LoadParser="load-parser",i.ResolveParser="resolve-parser",i.CacheParser="cache-parser",i.DetectionParser="detection-parser",i.MaskEffect="mask-effect",i.BlendMode="blend-mode",i.TextureSource="texture-source",i.TextureUploaderWebGL="texture-uploader-webgl",i.TextureUploaderWebGPU="texture-uploader-webgpu",i.Environment="environment",i.ShapeBuilder="shape-builder",i.Batcher="batcher",i))(y||{}),Hl=i=>{if(typeof i=="function"||typeof i=="object"&&i.extension){if(!i.extension)throw new Error("Extension class must have an extension object");i={...typeof i.extension!="object"?{type:i.extension}:i.extension,ref:i}}if(typeof i=="object")i={...i};else throw new Error("Invalid extension type");return typeof i.type=="string"&&(i.type=[i.type]),i},xo=(i,t)=>Hl(i).priority??t,z={_addHandlers:{},_removeHandlers:{},_queue:{},remove(...i){return i.map(Hl).forEach(t=>{t.type.forEach(e=>this._removeHandlers[e]?.(t))}),this},add(...i){return i.map(Hl).forEach(t=>{t.type.forEach(e=>{let r=this._addHandlers,s=this._queue;r[e]?r[e]?.(t):(s[e]=s[e]||[],s[e]?.push(t))})}),this},handle(i,t,e){let r=this._addHandlers,s=this._removeHandlers;if(r[i]||s[i])throw new Error(`Extension type ${i} already has a handler`);r[i]=t,s[i]=e;let n=this._queue;return n[i]&&(n[i]?.forEach(o=>t(o)),delete n[i]),this},handleByMap(i,t){return this.handle(i,e=>{e.name&&(t[e.name]=e.ref)},e=>{e.name&&delete t[e.name]})},handleByNamedList(i,t,e=-1){return this.handle(i,r=>{t.findIndex(n=>n.name===r.name)>=0||(t.push({name:r.name,value:r.ref}),t.sort((n,o)=>xo(o.value,e)-xo(n.value,e)))},r=>{let s=t.findIndex(n=>n.name===r.name);s!==-1&&t.splice(s,1)})},handleByList(i,t,e=-1){return this.handle(i,r=>{t.includes(r.ref)||(t.push(r.ref),t.sort((s,n)=>xo(n,e)-xo(s,e)))},r=>{let s=t.indexOf(r.ref);s!==-1&&t.splice(s,1)})},mixin(i,...t){for(let e of t)Object.defineProperties(i.prototype,Object.getOwnPropertyDescriptors(e))}}});var qd=H1((QC,Wl)=>{"use strict";var j1=Object.prototype.hasOwnProperty,re="~";function ps(){}Object.create&&(ps.prototype=Object.create(null),new ps().__proto__||(re=!1));function X1(i,t,e){this.fn=i,this.context=t,this.once=e||!1}function $d(i,t,e,r,s){if(typeof e!="function")throw new TypeError("The listener must be a function");var n=new X1(e,r||i,s),o=re?re+t:t;return i._events[o]?i._events[o].fn?i._events[o]=[i._events[o],n]:i._events[o].push(n):(i._events[o]=n,i._eventsCount++),i}function _o(i,t){--i._eventsCount===0?i._events=new ps:delete i._events[t]}function Zt(){this._events=new ps,this._eventsCount=0}Zt.prototype.eventNames=function(){var t=[],e,r;if(this._eventsCount===0)return t;for(r in e=this._events)j1.call(e,r)&&t.push(re?r.slice(1):r);return Object.getOwnPropertySymbols?t.concat(Object.getOwnPropertySymbols(e)):t};Zt.prototype.listeners=function(t){var e=re?re+t:t,r=this._events[e];if(!r)return[];if(r.fn)return[r.fn];for(var s=0,n=r.length,o=new Array(n);s<n;s++)o[s]=r[s].fn;return o};Zt.prototype.listenerCount=function(t){var e=re?re+t:t,r=this._events[e];return r?r.fn?1:r.length:0};Zt.prototype.emit=function(t,e,r,s,n,o){var a=re?re+t:t;if(!this._events[a])return!1;var l=this._events[a],c=arguments.length,h,u;if(l.fn){switch(l.once&&this.removeListener(t,l.fn,void 0,!0),c){case 1:return l.fn.call(l.context),!0;case 2:return l.fn.call(l.context,e),!0;case 3:return l.fn.call(l.context,e,r),!0;case 4:return l.fn.call(l.context,e,r,s),!0;case 5:return l.fn.call(l.context,e,r,s,n),!0;case 6:return l.fn.call(l.context,e,r,s,n,o),!0}for(u=1,h=new Array(c-1);u<c;u++)h[u-1]=arguments[u];l.fn.apply(l.context,h)}else{var d=l.length,f;for(u=0;u<d;u++)switch(l[u].once&&this.removeListener(t,l[u].fn,void 0,!0),c){case 1:l[u].fn.call(l[u].context);break;case 2:l[u].fn.call(l[u].context,e);break;case 3:l[u].fn.call(l[u].context,e,r);break;case 4:l[u].fn.call(l[u].context,e,r,s);break;default:if(!h)for(f=1,h=new Array(c-1);f<c;f++)h[f-1]=arguments[f];l[u].fn.apply(l[u].context,h)}}return!0};Zt.prototype.on=function(t,e,r){return $d(this,t,e,r,!1)};Zt.prototype.once=function(t,e,r){return $d(this,t,e,r,!0)};Zt.prototype.removeListener=function(t,e,r,s){var n=re?re+t:t;if(!this._events[n])return this;if(!e)return _o(this,n),this;var o=this._events[n];if(o.fn)o.fn===e&&(!s||o.once)&&(!r||o.context===r)&&_o(this,n);else{for(var a=0,l=[],c=o.length;a<c;a++)(o[a].fn!==e||s&&!o[a].once||r&&o[a].context!==r)&&l.push(o[a]);l.length?this._events[n]=l.length===1?l[0]:l:_o(this,n)}return this};Zt.prototype.removeAllListeners=function(t){var e;return t?(e=re?re+t:t,this._events[e]&&_o(this,e)):(this._events=new ps,this._eventsCount=0),this};Zt.prototype.off=Zt.prototype.removeListener;Zt.prototype.addListener=Zt.prototype.on;Zt.prefixed=re;Zt.EventEmitter=Zt;typeof Wl<"u"&&(Wl.exports=Zt)});var Kd,ut,Ht=p(()=>{Kd=V1(qd(),1),ut=Kd.default});var Y1,qe,Wt,_e,nf,Zd,Vl,$1,yo,of,af,Qd,Jd,tf,ms,q1,K1,Z1,Q1,Yl,ef,J1,jl,Xl,rf,$l,Ce,sf,lf,cf=p(()=>{Y1={grad:.9,turn:360,rad:360/(2*Math.PI)},qe=function(i){return typeof i=="string"?i.length>0:typeof i=="number"},Wt=function(i,t,e){return t===void 0&&(t=0),e===void 0&&(e=Math.pow(10,t)),Math.round(e*i)/e+0},_e=function(i,t,e){return t===void 0&&(t=0),e===void 0&&(e=1),i>e?e:i>t?i:t},nf=function(i){return(i=isFinite(i)?i%360:0)>0?i:i+360},Zd=function(i){return{r:_e(i.r,0,255),g:_e(i.g,0,255),b:_e(i.b,0,255),a:_e(i.a)}},Vl=function(i){return{r:Wt(i.r),g:Wt(i.g),b:Wt(i.b),a:Wt(i.a,3)}},$1=/^#([0-9a-f]{3,8})$/i,yo=function(i){var t=i.toString(16);return t.length<2?"0"+t:t},of=function(i){var t=i.r,e=i.g,r=i.b,s=i.a,n=Math.max(t,e,r),o=n-Math.min(t,e,r),a=o?n===t?(e-r)/o:n===e?2+(r-t)/o:4+(t-e)/o:0;return{h:60*(a<0?a+6:a),s:n?o/n*100:0,v:n/255*100,a:s}},af=function(i){var t=i.h,e=i.s,r=i.v,s=i.a;t=t/360*6,e/=100,r/=100;var n=Math.floor(t),o=r*(1-e),a=r*(1-(t-n)*e),l=r*(1-(1-t+n)*e),c=n%6;return{r:255*[r,a,o,o,l,r][c],g:255*[l,r,r,a,o,o][c],b:255*[o,o,l,r,r,a][c],a:s}},Qd=function(i){return{h:nf(i.h),s:_e(i.s,0,100),l:_e(i.l,0,100),a:_e(i.a)}},Jd=function(i){return{h:Wt(i.h),s:Wt(i.s),l:Wt(i.l),a:Wt(i.a,3)}},tf=function(i){return af((e=(t=i).s,{h:t.h,s:(e*=((r=t.l)<50?r:100-r)/100)>0?2*e/(r+e)*100:0,v:r+e,a:t.a}));var t,e,r},ms=function(i){return{h:(t=of(i)).h,s:(s=(200-(e=t.s))*(r=t.v)/100)>0&&s<200?e*r/100/(s<=100?s:200-s)*100:0,l:s/2,a:t.a};var t,e,r,s},q1=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s*,\s*([+-]?\d*\.?\d+)%\s*,\s*([+-]?\d*\.?\d+)%\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,K1=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s+([+-]?\d*\.?\d+)%\s+([+-]?\d*\.?\d+)%\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,Z1=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,Q1=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,Yl={string:[[function(i){var t=$1.exec(i);return t?(i=t[1]).length<=4?{r:parseInt(i[0]+i[0],16),g:parseInt(i[1]+i[1],16),b:parseInt(i[2]+i[2],16),a:i.length===4?Wt(parseInt(i[3]+i[3],16)/255,2):1}:i.length===6||i.length===8?{r:parseInt(i.substr(0,2),16),g:parseInt(i.substr(2,2),16),b:parseInt(i.substr(4,2),16),a:i.length===8?Wt(parseInt(i.substr(6,2),16)/255,2):1}:null:null},"hex"],[function(i){var t=Z1.exec(i)||Q1.exec(i);return t?t[2]!==t[4]||t[4]!==t[6]?null:Zd({r:Number(t[1])/(t[2]?100/255:1),g:Number(t[3])/(t[4]?100/255:1),b:Number(t[5])/(t[6]?100/255:1),a:t[7]===void 0?1:Number(t[7])/(t[8]?100:1)}):null},"rgb"],[function(i){var t=q1.exec(i)||K1.exec(i);if(!t)return null;var e,r,s=Qd({h:(e=t[1],r=t[2],r===void 0&&(r="deg"),Number(e)*(Y1[r]||1)),s:Number(t[3]),l:Number(t[4]),a:t[5]===void 0?1:Number(t[5])/(t[6]?100:1)});return tf(s)},"hsl"]],object:[[function(i){var t=i.r,e=i.g,r=i.b,s=i.a,n=s===void 0?1:s;return qe(t)&&qe(e)&&qe(r)?Zd({r:Number(t),g:Number(e),b:Number(r),a:Number(n)}):null},"rgb"],[function(i){var t=i.h,e=i.s,r=i.l,s=i.a,n=s===void 0?1:s;if(!qe(t)||!qe(e)||!qe(r))return null;var o=Qd({h:Number(t),s:Number(e),l:Number(r),a:Number(n)});return tf(o)},"hsl"],[function(i){var t=i.h,e=i.s,r=i.v,s=i.a,n=s===void 0?1:s;if(!qe(t)||!qe(e)||!qe(r))return null;var o=(function(a){return{h:nf(a.h),s:_e(a.s,0,100),v:_e(a.v,0,100),a:_e(a.a)}})({h:Number(t),s:Number(e),v:Number(r),a:Number(n)});return af(o)},"hsv"]]},ef=function(i,t){for(var e=0;e<t.length;e++){var r=t[e][0](i);if(r)return[r,t[e][1]]}return[null,void 0]},J1=function(i){return typeof i=="string"?ef(i.trim(),Yl.string):typeof i=="object"&&i!==null?ef(i,Yl.object):[null,void 0]},jl=function(i,t){var e=ms(i);return{h:e.h,s:_e(e.s+100*t,0,100),l:e.l,a:e.a}},Xl=function(i){return(299*i.r+587*i.g+114*i.b)/1e3/255},rf=function(i,t){var e=ms(i);return{h:e.h,s:e.s,l:_e(e.l+100*t,0,100),a:e.a}},$l=(function(){function i(t){this.parsed=J1(t)[0],this.rgba=this.parsed||{r:0,g:0,b:0,a:1}}return i.prototype.isValid=function(){return this.parsed!==null},i.prototype.brightness=function(){return Wt(Xl(this.rgba),2)},i.prototype.isDark=function(){return Xl(this.rgba)<.5},i.prototype.isLight=function(){return Xl(this.rgba)>=.5},i.prototype.toHex=function(){return t=Vl(this.rgba),e=t.r,r=t.g,s=t.b,o=(n=t.a)<1?yo(Wt(255*n)):"","#"+yo(e)+yo(r)+yo(s)+o;var t,e,r,s,n,o},i.prototype.toRgb=function(){return Vl(this.rgba)},i.prototype.toRgbString=function(){return t=Vl(this.rgba),e=t.r,r=t.g,s=t.b,(n=t.a)<1?"rgba("+e+", "+r+", "+s+", "+n+")":"rgb("+e+", "+r+", "+s+")";var t,e,r,s,n},i.prototype.toHsl=function(){return Jd(ms(this.rgba))},i.prototype.toHslString=function(){return t=Jd(ms(this.rgba)),e=t.h,r=t.s,s=t.l,(n=t.a)<1?"hsla("+e+", "+r+"%, "+s+"%, "+n+")":"hsl("+e+", "+r+"%, "+s+"%)";var t,e,r,s,n},i.prototype.toHsv=function(){return t=of(this.rgba),{h:Wt(t.h),s:Wt(t.s),v:Wt(t.v),a:Wt(t.a,3)};var t},i.prototype.invert=function(){return Ce({r:255-(t=this.rgba).r,g:255-t.g,b:255-t.b,a:t.a});var t},i.prototype.saturate=function(t){return t===void 0&&(t=.1),Ce(jl(this.rgba,t))},i.prototype.desaturate=function(t){return t===void 0&&(t=.1),Ce(jl(this.rgba,-t))},i.prototype.grayscale=function(){return Ce(jl(this.rgba,-1))},i.prototype.lighten=function(t){return t===void 0&&(t=.1),Ce(rf(this.rgba,t))},i.prototype.darken=function(t){return t===void 0&&(t=.1),Ce(rf(this.rgba,-t))},i.prototype.rotate=function(t){return t===void 0&&(t=15),this.hue(this.hue()+t)},i.prototype.alpha=function(t){return typeof t=="number"?Ce({r:(e=this.rgba).r,g:e.g,b:e.b,a:t}):Wt(this.rgba.a,3);var e},i.prototype.hue=function(t){var e=ms(this.rgba);return typeof t=="number"?Ce({h:t,s:e.s,l:e.l,a:e.a}):Wt(e.h)},i.prototype.isEqual=function(t){return this.toHex()===Ce(t).toHex()},i})(),Ce=function(i){return i instanceof $l?i:new $l(i)},sf=[],lf=function(i){i.forEach(function(t){sf.indexOf(t)<0&&(t($l,Yl),sf.push(t))})}});function hf(i,t){var e={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"},r={};for(var s in e)r[e[s]]=s;var n={};i.prototype.toName=function(o){if(!(this.rgba.a||this.rgba.r||this.rgba.g||this.rgba.b))return"transparent";var a,l,c=r[this.toHex()];if(c)return c;if(o?.closest){var h=this.toRgb(),u=1/0,d="black";if(!n.length)for(var f in e)n[f]=new i(e[f]).toRgb();for(var m in e){var g=(a=h,l=n[m],Math.pow(a.r-l.r,2)+Math.pow(a.g-l.g,2)+Math.pow(a.b-l.b,2));g<u&&(u=g,d=m)}return d}},t.string.push([function(o){var a=o.toLowerCase(),l=a==="transparent"?"#0000":e[a];return l?new i(l).toRgb():null},"name"])}var uf=p(()=>{});var pi,Q,Qt=p(()=>{cf();uf();lf([hf]);pi=class gs{constructor(t=16777215){this._value=null,this._components=new Float32Array(4),this._components.fill(1),this._int=16777215,this.value=t}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(t){return this.value=t,this}set value(t){if(t instanceof gs)this._value=this._cloneSource(t._value),this._int=t._int,this._components.set(t._components);else{if(t===null)throw new Error("Cannot set Color#value to null");(this._value===null||!this._isSourceEqual(this._value,t))&&(this._value=this._cloneSource(t),this._normalize(this._value))}}get value(){return this._value}_cloneSource(t){return typeof t=="string"||typeof t=="number"||t instanceof Number||t===null?t:Array.isArray(t)||ArrayBuffer.isView(t)?t.slice(0):typeof t=="object"&&t!==null?{...t}:t}_isSourceEqual(t,e){let r=typeof t;if(r!==typeof e)return!1;if(r==="number"||r==="string"||t instanceof Number)return t===e;if(Array.isArray(t)&&Array.isArray(e)||ArrayBuffer.isView(t)&&ArrayBuffer.isView(e))return t.length!==e.length?!1:t.every((n,o)=>n===e[o]);if(t!==null&&e!==null){let n=Object.keys(t),o=Object.keys(e);return n.length!==o.length?!1:n.every(a=>t[a]===e[a])}return t===e}toRgba(){let[t,e,r,s]=this._components;return{r:t,g:e,b:r,a:s}}toRgb(){let[t,e,r]=this._components;return{r:t,g:e,b:r}}toRgbaString(){let[t,e,r]=this.toUint8RgbArray();return`rgba(${t},${e},${r},${this.alpha})`}toUint8RgbArray(t){let[e,r,s]=this._components;return this._arrayRgb||(this._arrayRgb=[]),t||(t=this._arrayRgb),t[0]=Math.round(e*255),t[1]=Math.round(r*255),t[2]=Math.round(s*255),t}toArray(t){this._arrayRgba||(this._arrayRgba=[]),t||(t=this._arrayRgba);let[e,r,s,n]=this._components;return t[0]=e,t[1]=r,t[2]=s,t[3]=n,t}toRgbArray(t){this._arrayRgb||(this._arrayRgb=[]),t||(t=this._arrayRgb);let[e,r,s]=this._components;return t[0]=e,t[1]=r,t[2]=s,t}toNumber(){return this._int}toBgrNumber(){let[t,e,r]=this.toUint8RgbArray();return(r<<16)+(e<<8)+t}toLittleEndianNumber(){let t=this._int;return(t>>16)+(t&65280)+((t&255)<<16)}multiply(t){let[e,r,s,n]=gs._temp.setValue(t)._components;return this._components[0]*=e,this._components[1]*=r,this._components[2]*=s,this._components[3]*=n,this._refreshInt(),this._value=null,this}premultiply(t,e=!0){return e&&(this._components[0]*=t,this._components[1]*=t,this._components[2]*=t),this._components[3]=t,this._refreshInt(),this._value=null,this}toPremultiplied(t,e=!0){if(t===1)return(255<<24)+this._int;if(t===0)return e?0:this._int;let r=this._int>>16&255,s=this._int>>8&255,n=this._int&255;return e&&(r=r*t+.5|0,s=s*t+.5|0,n=n*t+.5|0),(t*255<<24)+(r<<16)+(s<<8)+n}toHex(){let t=this._int.toString(16);return`#${"000000".substring(0,6-t.length)+t}`}toHexa(){let e=Math.round(this._components[3]*255).toString(16);return this.toHex()+"00".substring(0,2-e.length)+e}setAlpha(t){return this._components[3]=this._clamp(t),this._value=null,this}_normalize(t){let e,r,s,n;if((typeof t=="number"||t instanceof Number)&&t>=0&&t<=16777215){let o=t;e=(o>>16&255)/255,r=(o>>8&255)/255,s=(o&255)/255,n=1}else if((Array.isArray(t)||t instanceof Float32Array)&&t.length>=3&&t.length<=4)t=this._clamp(t),[e,r,s,n=1]=t;else if((t instanceof Uint8Array||t instanceof Uint8ClampedArray)&&t.length>=3&&t.length<=4)t=this._clamp(t,0,255),[e,r,s,n=255]=t,e/=255,r/=255,s/=255,n/=255;else if(typeof t=="string"||typeof t=="object"){if(typeof t=="string"){let a=gs.HEX_PATTERN.exec(t);a&&(t=`#${a[2]}`)}let o=Ce(t);o.isValid()&&({r:e,g:r,b:s,a:n}=o.rgba,e/=255,r/=255,s/=255)}if(e!==void 0)this._components[0]=e,this._components[1]=r,this._components[2]=s,this._components[3]=n,this._refreshInt();else throw new Error(`Unable to convert color ${t}`)}_refreshInt(){this._clamp(this._components);let[t,e,r]=this._components;this._int=(t*255<<16)+(e*255<<8)+(r*255|0)}_clamp(t,e=0,r=1){return typeof t=="number"?Math.min(Math.max(t,e),r):(t.forEach((s,n)=>{t[n]=Math.min(Math.max(s,e),r)}),t)}static isColorLike(t){return typeof t=="number"||typeof t=="string"||t instanceof Number||t instanceof gs||Array.isArray(t)||t instanceof Uint8Array||t instanceof Uint8ClampedArray||t instanceof Float32Array||t.r!==void 0&&t.g!==void 0&&t.b!==void 0||t.r!==void 0&&t.g!==void 0&&t.b!==void 0&&t.a!==void 0||t.h!==void 0&&t.s!==void 0&&t.l!==void 0||t.h!==void 0&&t.s!==void 0&&t.l!==void 0&&t.a!==void 0||t.h!==void 0&&t.s!==void 0&&t.v!==void 0||t.h!==void 0&&t.s!==void 0&&t.v!==void 0&&t.a!==void 0}};pi.shared=new pi;pi._temp=new pi;pi.HEX_PATTERN=/^(#|0x)?(([a-f0-9]{3}){1,2}([a-f0-9]{2})?)$/i;Q=pi});var df,ff=p(()=>{"use strict";df={cullArea:null,cullable:!1,cullableChildren:!0}});var pf,mf,gf,ql=p(()=>{"use strict";pf=Math.PI*2,mf=180/Math.PI,gf=Math.PI/180});var nt,Kl,Ee=p(()=>{"use strict";nt=class i{constructor(t=0,e=0){this.x=0,this.y=0,this.x=t,this.y=e}clone(){return new i(this.x,this.y)}copyFrom(t){return this.set(t.x,t.y),this}copyTo(t){return t.set(this.x,this.y),t}equals(t){return t.x===this.x&&t.y===this.y}set(t=0,e=t){return this.x=t,this.y=e,this}toString(){return`[pixi.js/math:Point x=${this.x} y=${this.y}]`}static get shared(){return Kl.x=0,Kl.y=0,Kl}},Kl=new nt});var k,tS,eS,ot=p(()=>{ql();Ee();k=class i{constructor(t=1,e=0,r=0,s=1,n=0,o=0){this.array=null,this.a=t,this.b=e,this.c=r,this.d=s,this.tx=n,this.ty=o}fromArray(t){this.a=t[0],this.b=t[1],this.c=t[3],this.d=t[4],this.tx=t[2],this.ty=t[5]}set(t,e,r,s,n,o){return this.a=t,this.b=e,this.c=r,this.d=s,this.tx=n,this.ty=o,this}toArray(t,e){this.array||(this.array=new Float32Array(9));let r=e||this.array;return t?(r[0]=this.a,r[1]=this.b,r[2]=0,r[3]=this.c,r[4]=this.d,r[5]=0,r[6]=this.tx,r[7]=this.ty,r[8]=1):(r[0]=this.a,r[1]=this.c,r[2]=this.tx,r[3]=this.b,r[4]=this.d,r[5]=this.ty,r[6]=0,r[7]=0,r[8]=1),r}apply(t,e){e=e||new nt;let r=t.x,s=t.y;return e.x=this.a*r+this.c*s+this.tx,e.y=this.b*r+this.d*s+this.ty,e}applyInverse(t,e){e=e||new nt;let r=this.a,s=this.b,n=this.c,o=this.d,a=this.tx,l=this.ty,c=1/(r*o+n*-s),h=t.x,u=t.y;return e.x=o*c*h+-n*c*u+(l*n-a*o)*c,e.y=r*c*u+-s*c*h+(-l*r+a*s)*c,e}translate(t,e){return this.tx+=t,this.ty+=e,this}scale(t,e){return this.a*=t,this.d*=e,this.c*=t,this.b*=e,this.tx*=t,this.ty*=e,this}rotate(t){let e=Math.cos(t),r=Math.sin(t),s=this.a,n=this.c,o=this.tx;return this.a=s*e-this.b*r,this.b=s*r+this.b*e,this.c=n*e-this.d*r,this.d=n*r+this.d*e,this.tx=o*e-this.ty*r,this.ty=o*r+this.ty*e,this}append(t){let e=this.a,r=this.b,s=this.c,n=this.d;return this.a=t.a*e+t.b*s,this.b=t.a*r+t.b*n,this.c=t.c*e+t.d*s,this.d=t.c*r+t.d*n,this.tx=t.tx*e+t.ty*s+this.tx,this.ty=t.tx*r+t.ty*n+this.ty,this}appendFrom(t,e){let r=t.a,s=t.b,n=t.c,o=t.d,a=t.tx,l=t.ty,c=e.a,h=e.b,u=e.c,d=e.d;return this.a=r*c+s*u,this.b=r*h+s*d,this.c=n*c+o*u,this.d=n*h+o*d,this.tx=a*c+l*u+e.tx,this.ty=a*h+l*d+e.ty,this}setTransform(t,e,r,s,n,o,a,l,c){return this.a=Math.cos(a+c)*n,this.b=Math.sin(a+c)*n,this.c=-Math.sin(a-l)*o,this.d=Math.cos(a-l)*o,this.tx=t-(r*this.a+s*this.c),this.ty=e-(r*this.b+s*this.d),this}prepend(t){let e=this.tx;if(t.a!==1||t.b!==0||t.c!==0||t.d!==1){let r=this.a,s=this.c;this.a=r*t.a+this.b*t.c,this.b=r*t.b+this.b*t.d,this.c=s*t.a+this.d*t.c,this.d=s*t.b+this.d*t.d}return this.tx=e*t.a+this.ty*t.c+t.tx,this.ty=e*t.b+this.ty*t.d+t.ty,this}decompose(t){let e=this.a,r=this.b,s=this.c,n=this.d,o=t.pivot,a=-Math.atan2(-s,n),l=Math.atan2(r,e),c=Math.abs(a+l);return c<1e-5||Math.abs(pf-c)<1e-5?(t.rotation=l,t.skew.x=t.skew.y=0):(t.rotation=0,t.skew.x=a,t.skew.y=l),t.scale.x=Math.sqrt(e*e+r*r),t.scale.y=Math.sqrt(s*s+n*n),t.position.x=this.tx+(o.x*e+o.y*s),t.position.y=this.ty+(o.x*r+o.y*n),t}invert(){let t=this.a,e=this.b,r=this.c,s=this.d,n=this.tx,o=t*s-e*r;return this.a=s/o,this.b=-e/o,this.c=-r/o,this.d=t/o,this.tx=(r*this.ty-s*n)/o,this.ty=-(t*this.ty-e*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 t=new i;return t.a=this.a,t.b=this.b,t.c=this.c,t.d=this.d,t.tx=this.tx,t.ty=this.ty,t}copyTo(t){return t.a=this.a,t.b=this.b,t.c=this.c,t.d=this.d,t.tx=this.tx,t.ty=this.ty,t}copyFrom(t){return this.a=t.a,this.b=t.b,this.c=t.c,this.d=t.d,this.tx=t.tx,this.ty=t.ty,this}equals(t){return t.a===this.a&&t.b===this.b&&t.c===this.c&&t.d===this.d&&t.tx===this.tx&&t.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 eS.identity()}static get shared(){return tS.identity()}},tS=new k,eS=new k});var Gt,bo=p(()=>{"use strict";Gt=class i{constructor(t,e,r){this._x=e||0,this._y=r||0,this._observer=t}clone(t){return new i(t??this._observer,this._x,this._y)}set(t=0,e=t){return(this._x!==t||this._y!==e)&&(this._x=t,this._y=e,this._observer._onUpdate(this)),this}copyFrom(t){return(this._x!==t.x||this._y!==t.y)&&(this._x=t.x,this._y=t.y,this._observer._onUpdate(this)),this}copyTo(t){return t.set(this._x,this._y),t}equals(t){return t.x===this._x&&t.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(t){this._x!==t&&(this._x=t,this._observer._onUpdate(this))}get y(){return this._y}set y(t){this._y!==t&&(this._y=t,this._observer._onUpdate(this))}}});function $(i="default"){return Zl[i]===void 0&&(Zl[i]=-1),++Zl[i]}var Zl,Ft=p(()=>{"use strict";Zl={default:-1}});var xf,rt,_f,mi,O,yt=p(()=>{"use strict";xf=new Set,rt="8.0.0",_f="8.3.4",mi={quiet:!1,noColor:!1},O=((i,t,e=3)=>{if(mi.quiet||xf.has(t))return;let r=new Error().stack,s=`${t}
2
- Deprecated since v${i}`,n=typeof console.groupCollapsed=="function"&&!mi.noColor;typeof r>"u"?console.warn("PixiJS Deprecation Warning: ",s):(r=r.split(`
1
+ var N1=Object.create;var Nl=Object.defineProperty;var z1=Object.getOwnPropertyDescriptor;var H1=Object.getOwnPropertyNames;var W1=Object.getPrototypeOf,V1=Object.prototype.hasOwnProperty;var p=(i,t)=>()=>(i&&(t=i(i=0)),t);var j1=(i,t)=>()=>(t||i((t={exports:{}}).exports,t),t.exports),zl=(i,t)=>{for(var e in t)Nl(i,e,{get:t[e],enumerable:!0})},X1=(i,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of H1(t))!V1.call(i,s)&&s!==e&&Nl(i,s,{get:()=>t[s],enumerable:!(r=z1(t,s))||r.enumerable});return i};var Y1=(i,t,e)=>(e=i!=null?N1(W1(i)):{},X1(t||!i||!i.__esModule?Nl(e,"default",{value:i,enumerable:!0}):e,i));var y,Hl,_o,z,P=p(()=>{"use strict";y=(i=>(i.Application="application",i.WebGLPipes="webgl-pipes",i.WebGLPipesAdaptor="webgl-pipes-adaptor",i.WebGLSystem="webgl-system",i.WebGPUPipes="webgpu-pipes",i.WebGPUPipesAdaptor="webgpu-pipes-adaptor",i.WebGPUSystem="webgpu-system",i.CanvasSystem="canvas-system",i.CanvasPipesAdaptor="canvas-pipes-adaptor",i.CanvasPipes="canvas-pipes",i.Asset="asset",i.LoadParser="load-parser",i.ResolveParser="resolve-parser",i.CacheParser="cache-parser",i.DetectionParser="detection-parser",i.MaskEffect="mask-effect",i.BlendMode="blend-mode",i.TextureSource="texture-source",i.TextureUploaderWebGL="texture-uploader-webgl",i.TextureUploaderWebGPU="texture-uploader-webgpu",i.Environment="environment",i.ShapeBuilder="shape-builder",i.Batcher="batcher",i))(y||{}),Hl=i=>{if(typeof i=="function"||typeof i=="object"&&i.extension){if(!i.extension)throw new Error("Extension class must have an extension object");i={...typeof i.extension!="object"?{type:i.extension}:i.extension,ref:i}}if(typeof i=="object")i={...i};else throw new Error("Invalid extension type");return typeof i.type=="string"&&(i.type=[i.type]),i},_o=(i,t)=>Hl(i).priority??t,z={_addHandlers:{},_removeHandlers:{},_queue:{},remove(...i){return i.map(Hl).forEach(t=>{t.type.forEach(e=>this._removeHandlers[e]?.(t))}),this},add(...i){return i.map(Hl).forEach(t=>{t.type.forEach(e=>{let r=this._addHandlers,s=this._queue;r[e]?r[e]?.(t):(s[e]=s[e]||[],s[e]?.push(t))})}),this},handle(i,t,e){let r=this._addHandlers,s=this._removeHandlers;if(r[i]||s[i])throw new Error(`Extension type ${i} already has a handler`);r[i]=t,s[i]=e;let n=this._queue;return n[i]&&(n[i]?.forEach(o=>t(o)),delete n[i]),this},handleByMap(i,t){return this.handle(i,e=>{e.name&&(t[e.name]=e.ref)},e=>{e.name&&delete t[e.name]})},handleByNamedList(i,t,e=-1){return this.handle(i,r=>{t.findIndex(n=>n.name===r.name)>=0||(t.push({name:r.name,value:r.ref}),t.sort((n,o)=>_o(o.value,e)-_o(n.value,e)))},r=>{let s=t.findIndex(n=>n.name===r.name);s!==-1&&t.splice(s,1)})},handleByList(i,t,e=-1){return this.handle(i,r=>{t.includes(r.ref)||(t.push(r.ref),t.sort((s,n)=>_o(n,e)-_o(s,e)))},r=>{let s=t.indexOf(r.ref);s!==-1&&t.splice(s,1)})},mixin(i,...t){for(let e of t)Object.defineProperties(i.prototype,Object.getOwnPropertyDescriptors(e))}}});var Zd=j1((rE,Wl)=>{"use strict";var $1=Object.prototype.hasOwnProperty,re="~";function ms(){}Object.create&&(ms.prototype=Object.create(null),new ms().__proto__||(re=!1));function q1(i,t,e){this.fn=i,this.context=t,this.once=e||!1}function Kd(i,t,e,r,s){if(typeof e!="function")throw new TypeError("The listener must be a function");var n=new q1(e,r||i,s),o=re?re+t:t;return i._events[o]?i._events[o].fn?i._events[o]=[i._events[o],n]:i._events[o].push(n):(i._events[o]=n,i._eventsCount++),i}function yo(i,t){--i._eventsCount===0?i._events=new ms:delete i._events[t]}function Zt(){this._events=new ms,this._eventsCount=0}Zt.prototype.eventNames=function(){var t=[],e,r;if(this._eventsCount===0)return t;for(r in e=this._events)$1.call(e,r)&&t.push(re?r.slice(1):r);return Object.getOwnPropertySymbols?t.concat(Object.getOwnPropertySymbols(e)):t};Zt.prototype.listeners=function(t){var e=re?re+t:t,r=this._events[e];if(!r)return[];if(r.fn)return[r.fn];for(var s=0,n=r.length,o=new Array(n);s<n;s++)o[s]=r[s].fn;return o};Zt.prototype.listenerCount=function(t){var e=re?re+t:t,r=this._events[e];return r?r.fn?1:r.length:0};Zt.prototype.emit=function(t,e,r,s,n,o){var a=re?re+t:t;if(!this._events[a])return!1;var l=this._events[a],c=arguments.length,h,u;if(l.fn){switch(l.once&&this.removeListener(t,l.fn,void 0,!0),c){case 1:return l.fn.call(l.context),!0;case 2:return l.fn.call(l.context,e),!0;case 3:return l.fn.call(l.context,e,r),!0;case 4:return l.fn.call(l.context,e,r,s),!0;case 5:return l.fn.call(l.context,e,r,s,n),!0;case 6:return l.fn.call(l.context,e,r,s,n,o),!0}for(u=1,h=new Array(c-1);u<c;u++)h[u-1]=arguments[u];l.fn.apply(l.context,h)}else{var d=l.length,f;for(u=0;u<d;u++)switch(l[u].once&&this.removeListener(t,l[u].fn,void 0,!0),c){case 1:l[u].fn.call(l[u].context);break;case 2:l[u].fn.call(l[u].context,e);break;case 3:l[u].fn.call(l[u].context,e,r);break;case 4:l[u].fn.call(l[u].context,e,r,s);break;default:if(!h)for(f=1,h=new Array(c-1);f<c;f++)h[f-1]=arguments[f];l[u].fn.apply(l[u].context,h)}}return!0};Zt.prototype.on=function(t,e,r){return Kd(this,t,e,r,!1)};Zt.prototype.once=function(t,e,r){return Kd(this,t,e,r,!0)};Zt.prototype.removeListener=function(t,e,r,s){var n=re?re+t:t;if(!this._events[n])return this;if(!e)return yo(this,n),this;var o=this._events[n];if(o.fn)o.fn===e&&(!s||o.once)&&(!r||o.context===r)&&yo(this,n);else{for(var a=0,l=[],c=o.length;a<c;a++)(o[a].fn!==e||s&&!o[a].once||r&&o[a].context!==r)&&l.push(o[a]);l.length?this._events[n]=l.length===1?l[0]:l:yo(this,n)}return this};Zt.prototype.removeAllListeners=function(t){var e;return t?(e=re?re+t:t,this._events[e]&&yo(this,e)):(this._events=new ms,this._eventsCount=0),this};Zt.prototype.off=Zt.prototype.removeListener;Zt.prototype.addListener=Zt.prototype.on;Zt.prefixed=re;Zt.EventEmitter=Zt;typeof Wl<"u"&&(Wl.exports=Zt)});var Qd,ut,Ht=p(()=>{Qd=Y1(Zd(),1),ut=Qd.default});var K1,qe,Wt,_e,af,Jd,Vl,Z1,bo,lf,cf,tf,ef,rf,gs,Q1,J1,tS,eS,Yl,sf,rS,jl,Xl,nf,$l,Ce,of,hf,uf=p(()=>{K1={grad:.9,turn:360,rad:360/(2*Math.PI)},qe=function(i){return typeof i=="string"?i.length>0:typeof i=="number"},Wt=function(i,t,e){return t===void 0&&(t=0),e===void 0&&(e=Math.pow(10,t)),Math.round(e*i)/e+0},_e=function(i,t,e){return t===void 0&&(t=0),e===void 0&&(e=1),i>e?e:i>t?i:t},af=function(i){return(i=isFinite(i)?i%360:0)>0?i:i+360},Jd=function(i){return{r:_e(i.r,0,255),g:_e(i.g,0,255),b:_e(i.b,0,255),a:_e(i.a)}},Vl=function(i){return{r:Wt(i.r),g:Wt(i.g),b:Wt(i.b),a:Wt(i.a,3)}},Z1=/^#([0-9a-f]{3,8})$/i,bo=function(i){var t=i.toString(16);return t.length<2?"0"+t:t},lf=function(i){var t=i.r,e=i.g,r=i.b,s=i.a,n=Math.max(t,e,r),o=n-Math.min(t,e,r),a=o?n===t?(e-r)/o:n===e?2+(r-t)/o:4+(t-e)/o:0;return{h:60*(a<0?a+6:a),s:n?o/n*100:0,v:n/255*100,a:s}},cf=function(i){var t=i.h,e=i.s,r=i.v,s=i.a;t=t/360*6,e/=100,r/=100;var n=Math.floor(t),o=r*(1-e),a=r*(1-(t-n)*e),l=r*(1-(1-t+n)*e),c=n%6;return{r:255*[r,a,o,o,l,r][c],g:255*[l,r,r,a,o,o][c],b:255*[o,o,l,r,r,a][c],a:s}},tf=function(i){return{h:af(i.h),s:_e(i.s,0,100),l:_e(i.l,0,100),a:_e(i.a)}},ef=function(i){return{h:Wt(i.h),s:Wt(i.s),l:Wt(i.l),a:Wt(i.a,3)}},rf=function(i){return cf((e=(t=i).s,{h:t.h,s:(e*=((r=t.l)<50?r:100-r)/100)>0?2*e/(r+e)*100:0,v:r+e,a:t.a}));var t,e,r},gs=function(i){return{h:(t=lf(i)).h,s:(s=(200-(e=t.s))*(r=t.v)/100)>0&&s<200?e*r/100/(s<=100?s:200-s)*100:0,l:s/2,a:t.a};var t,e,r,s},Q1=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s*,\s*([+-]?\d*\.?\d+)%\s*,\s*([+-]?\d*\.?\d+)%\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,J1=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s+([+-]?\d*\.?\d+)%\s+([+-]?\d*\.?\d+)%\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,tS=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,eS=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,Yl={string:[[function(i){var t=Z1.exec(i);return t?(i=t[1]).length<=4?{r:parseInt(i[0]+i[0],16),g:parseInt(i[1]+i[1],16),b:parseInt(i[2]+i[2],16),a:i.length===4?Wt(parseInt(i[3]+i[3],16)/255,2):1}:i.length===6||i.length===8?{r:parseInt(i.substr(0,2),16),g:parseInt(i.substr(2,2),16),b:parseInt(i.substr(4,2),16),a:i.length===8?Wt(parseInt(i.substr(6,2),16)/255,2):1}:null:null},"hex"],[function(i){var t=tS.exec(i)||eS.exec(i);return t?t[2]!==t[4]||t[4]!==t[6]?null:Jd({r:Number(t[1])/(t[2]?100/255:1),g:Number(t[3])/(t[4]?100/255:1),b:Number(t[5])/(t[6]?100/255:1),a:t[7]===void 0?1:Number(t[7])/(t[8]?100:1)}):null},"rgb"],[function(i){var t=Q1.exec(i)||J1.exec(i);if(!t)return null;var e,r,s=tf({h:(e=t[1],r=t[2],r===void 0&&(r="deg"),Number(e)*(K1[r]||1)),s:Number(t[3]),l:Number(t[4]),a:t[5]===void 0?1:Number(t[5])/(t[6]?100:1)});return rf(s)},"hsl"]],object:[[function(i){var t=i.r,e=i.g,r=i.b,s=i.a,n=s===void 0?1:s;return qe(t)&&qe(e)&&qe(r)?Jd({r:Number(t),g:Number(e),b:Number(r),a:Number(n)}):null},"rgb"],[function(i){var t=i.h,e=i.s,r=i.l,s=i.a,n=s===void 0?1:s;if(!qe(t)||!qe(e)||!qe(r))return null;var o=tf({h:Number(t),s:Number(e),l:Number(r),a:Number(n)});return rf(o)},"hsl"],[function(i){var t=i.h,e=i.s,r=i.v,s=i.a,n=s===void 0?1:s;if(!qe(t)||!qe(e)||!qe(r))return null;var o=(function(a){return{h:af(a.h),s:_e(a.s,0,100),v:_e(a.v,0,100),a:_e(a.a)}})({h:Number(t),s:Number(e),v:Number(r),a:Number(n)});return cf(o)},"hsv"]]},sf=function(i,t){for(var e=0;e<t.length;e++){var r=t[e][0](i);if(r)return[r,t[e][1]]}return[null,void 0]},rS=function(i){return typeof i=="string"?sf(i.trim(),Yl.string):typeof i=="object"&&i!==null?sf(i,Yl.object):[null,void 0]},jl=function(i,t){var e=gs(i);return{h:e.h,s:_e(e.s+100*t,0,100),l:e.l,a:e.a}},Xl=function(i){return(299*i.r+587*i.g+114*i.b)/1e3/255},nf=function(i,t){var e=gs(i);return{h:e.h,s:e.s,l:_e(e.l+100*t,0,100),a:e.a}},$l=(function(){function i(t){this.parsed=rS(t)[0],this.rgba=this.parsed||{r:0,g:0,b:0,a:1}}return i.prototype.isValid=function(){return this.parsed!==null},i.prototype.brightness=function(){return Wt(Xl(this.rgba),2)},i.prototype.isDark=function(){return Xl(this.rgba)<.5},i.prototype.isLight=function(){return Xl(this.rgba)>=.5},i.prototype.toHex=function(){return t=Vl(this.rgba),e=t.r,r=t.g,s=t.b,o=(n=t.a)<1?bo(Wt(255*n)):"","#"+bo(e)+bo(r)+bo(s)+o;var t,e,r,s,n,o},i.prototype.toRgb=function(){return Vl(this.rgba)},i.prototype.toRgbString=function(){return t=Vl(this.rgba),e=t.r,r=t.g,s=t.b,(n=t.a)<1?"rgba("+e+", "+r+", "+s+", "+n+")":"rgb("+e+", "+r+", "+s+")";var t,e,r,s,n},i.prototype.toHsl=function(){return ef(gs(this.rgba))},i.prototype.toHslString=function(){return t=ef(gs(this.rgba)),e=t.h,r=t.s,s=t.l,(n=t.a)<1?"hsla("+e+", "+r+"%, "+s+"%, "+n+")":"hsl("+e+", "+r+"%, "+s+"%)";var t,e,r,s,n},i.prototype.toHsv=function(){return t=lf(this.rgba),{h:Wt(t.h),s:Wt(t.s),v:Wt(t.v),a:Wt(t.a,3)};var t},i.prototype.invert=function(){return Ce({r:255-(t=this.rgba).r,g:255-t.g,b:255-t.b,a:t.a});var t},i.prototype.saturate=function(t){return t===void 0&&(t=.1),Ce(jl(this.rgba,t))},i.prototype.desaturate=function(t){return t===void 0&&(t=.1),Ce(jl(this.rgba,-t))},i.prototype.grayscale=function(){return Ce(jl(this.rgba,-1))},i.prototype.lighten=function(t){return t===void 0&&(t=.1),Ce(nf(this.rgba,t))},i.prototype.darken=function(t){return t===void 0&&(t=.1),Ce(nf(this.rgba,-t))},i.prototype.rotate=function(t){return t===void 0&&(t=15),this.hue(this.hue()+t)},i.prototype.alpha=function(t){return typeof t=="number"?Ce({r:(e=this.rgba).r,g:e.g,b:e.b,a:t}):Wt(this.rgba.a,3);var e},i.prototype.hue=function(t){var e=gs(this.rgba);return typeof t=="number"?Ce({h:t,s:e.s,l:e.l,a:e.a}):Wt(e.h)},i.prototype.isEqual=function(t){return this.toHex()===Ce(t).toHex()},i})(),Ce=function(i){return i instanceof $l?i:new $l(i)},of=[],hf=function(i){i.forEach(function(t){of.indexOf(t)<0&&(t($l,Yl),of.push(t))})}});function df(i,t){var e={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"},r={};for(var s in e)r[e[s]]=s;var n={};i.prototype.toName=function(o){if(!(this.rgba.a||this.rgba.r||this.rgba.g||this.rgba.b))return"transparent";var a,l,c=r[this.toHex()];if(c)return c;if(o?.closest){var h=this.toRgb(),u=1/0,d="black";if(!n.length)for(var f in e)n[f]=new i(e[f]).toRgb();for(var m in e){var g=(a=h,l=n[m],Math.pow(a.r-l.r,2)+Math.pow(a.g-l.g,2)+Math.pow(a.b-l.b,2));g<u&&(u=g,d=m)}return d}},t.string.push([function(o){var a=o.toLowerCase(),l=a==="transparent"?"#0000":e[a];return l?new i(l).toRgb():null},"name"])}var ff=p(()=>{});var mi,Q,Qt=p(()=>{uf();ff();hf([df]);mi=class xs{constructor(t=16777215){this._value=null,this._components=new Float32Array(4),this._components.fill(1),this._int=16777215,this.value=t}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(t){return this.value=t,this}set value(t){if(t instanceof xs)this._value=this._cloneSource(t._value),this._int=t._int,this._components.set(t._components);else{if(t===null)throw new Error("Cannot set Color#value to null");(this._value===null||!this._isSourceEqual(this._value,t))&&(this._value=this._cloneSource(t),this._normalize(this._value))}}get value(){return this._value}_cloneSource(t){return typeof t=="string"||typeof t=="number"||t instanceof Number||t===null?t:Array.isArray(t)||ArrayBuffer.isView(t)?t.slice(0):typeof t=="object"&&t!==null?{...t}:t}_isSourceEqual(t,e){let r=typeof t;if(r!==typeof e)return!1;if(r==="number"||r==="string"||t instanceof Number)return t===e;if(Array.isArray(t)&&Array.isArray(e)||ArrayBuffer.isView(t)&&ArrayBuffer.isView(e))return t.length!==e.length?!1:t.every((n,o)=>n===e[o]);if(t!==null&&e!==null){let n=Object.keys(t),o=Object.keys(e);return n.length!==o.length?!1:n.every(a=>t[a]===e[a])}return t===e}toRgba(){let[t,e,r,s]=this._components;return{r:t,g:e,b:r,a:s}}toRgb(){let[t,e,r]=this._components;return{r:t,g:e,b:r}}toRgbaString(){let[t,e,r]=this.toUint8RgbArray();return`rgba(${t},${e},${r},${this.alpha})`}toUint8RgbArray(t){let[e,r,s]=this._components;return this._arrayRgb||(this._arrayRgb=[]),t||(t=this._arrayRgb),t[0]=Math.round(e*255),t[1]=Math.round(r*255),t[2]=Math.round(s*255),t}toArray(t){this._arrayRgba||(this._arrayRgba=[]),t||(t=this._arrayRgba);let[e,r,s,n]=this._components;return t[0]=e,t[1]=r,t[2]=s,t[3]=n,t}toRgbArray(t){this._arrayRgb||(this._arrayRgb=[]),t||(t=this._arrayRgb);let[e,r,s]=this._components;return t[0]=e,t[1]=r,t[2]=s,t}toNumber(){return this._int}toBgrNumber(){let[t,e,r]=this.toUint8RgbArray();return(r<<16)+(e<<8)+t}toLittleEndianNumber(){let t=this._int;return(t>>16)+(t&65280)+((t&255)<<16)}multiply(t){let[e,r,s,n]=xs._temp.setValue(t)._components;return this._components[0]*=e,this._components[1]*=r,this._components[2]*=s,this._components[3]*=n,this._refreshInt(),this._value=null,this}premultiply(t,e=!0){return e&&(this._components[0]*=t,this._components[1]*=t,this._components[2]*=t),this._components[3]=t,this._refreshInt(),this._value=null,this}toPremultiplied(t,e=!0){if(t===1)return(255<<24)+this._int;if(t===0)return e?0:this._int;let r=this._int>>16&255,s=this._int>>8&255,n=this._int&255;return e&&(r=r*t+.5|0,s=s*t+.5|0,n=n*t+.5|0),(t*255<<24)+(r<<16)+(s<<8)+n}toHex(){let t=this._int.toString(16);return`#${"000000".substring(0,6-t.length)+t}`}toHexa(){let e=Math.round(this._components[3]*255).toString(16);return this.toHex()+"00".substring(0,2-e.length)+e}setAlpha(t){return this._components[3]=this._clamp(t),this._value=null,this}_normalize(t){let e,r,s,n;if((typeof t=="number"||t instanceof Number)&&t>=0&&t<=16777215){let o=t;e=(o>>16&255)/255,r=(o>>8&255)/255,s=(o&255)/255,n=1}else if((Array.isArray(t)||t instanceof Float32Array)&&t.length>=3&&t.length<=4)t=this._clamp(t),[e,r,s,n=1]=t;else if((t instanceof Uint8Array||t instanceof Uint8ClampedArray)&&t.length>=3&&t.length<=4)t=this._clamp(t,0,255),[e,r,s,n=255]=t,e/=255,r/=255,s/=255,n/=255;else if(typeof t=="string"||typeof t=="object"){if(typeof t=="string"){let a=xs.HEX_PATTERN.exec(t);a&&(t=`#${a[2]}`)}let o=Ce(t);o.isValid()&&({r:e,g:r,b:s,a:n}=o.rgba,e/=255,r/=255,s/=255)}if(e!==void 0)this._components[0]=e,this._components[1]=r,this._components[2]=s,this._components[3]=n,this._refreshInt();else throw new Error(`Unable to convert color ${t}`)}_refreshInt(){this._clamp(this._components);let[t,e,r]=this._components;this._int=(t*255<<16)+(e*255<<8)+(r*255|0)}_clamp(t,e=0,r=1){return typeof t=="number"?Math.min(Math.max(t,e),r):(t.forEach((s,n)=>{t[n]=Math.min(Math.max(s,e),r)}),t)}static isColorLike(t){return typeof t=="number"||typeof t=="string"||t instanceof Number||t instanceof xs||Array.isArray(t)||t instanceof Uint8Array||t instanceof Uint8ClampedArray||t instanceof Float32Array||t.r!==void 0&&t.g!==void 0&&t.b!==void 0||t.r!==void 0&&t.g!==void 0&&t.b!==void 0&&t.a!==void 0||t.h!==void 0&&t.s!==void 0&&t.l!==void 0||t.h!==void 0&&t.s!==void 0&&t.l!==void 0&&t.a!==void 0||t.h!==void 0&&t.s!==void 0&&t.v!==void 0||t.h!==void 0&&t.s!==void 0&&t.v!==void 0&&t.a!==void 0}};mi.shared=new mi;mi._temp=new mi;mi.HEX_PATTERN=/^(#|0x)?(([a-f0-9]{3}){1,2}([a-f0-9]{2})?)$/i;Q=mi});var pf,mf=p(()=>{"use strict";pf={cullArea:null,cullable:!1,cullableChildren:!0}});var gf,xf,_f,ql=p(()=>{"use strict";gf=Math.PI*2,xf=180/Math.PI,_f=Math.PI/180});var nt,Kl,Ee=p(()=>{"use strict";nt=class i{constructor(t=0,e=0){this.x=0,this.y=0,this.x=t,this.y=e}clone(){return new i(this.x,this.y)}copyFrom(t){return this.set(t.x,t.y),this}copyTo(t){return t.set(this.x,this.y),t}equals(t){return t.x===this.x&&t.y===this.y}set(t=0,e=t){return this.x=t,this.y=e,this}toString(){return`[pixi.js/math:Point x=${this.x} y=${this.y}]`}static get shared(){return Kl.x=0,Kl.y=0,Kl}},Kl=new nt});var k,iS,sS,ot=p(()=>{ql();Ee();k=class i{constructor(t=1,e=0,r=0,s=1,n=0,o=0){this.array=null,this.a=t,this.b=e,this.c=r,this.d=s,this.tx=n,this.ty=o}fromArray(t){this.a=t[0],this.b=t[1],this.c=t[3],this.d=t[4],this.tx=t[2],this.ty=t[5]}set(t,e,r,s,n,o){return this.a=t,this.b=e,this.c=r,this.d=s,this.tx=n,this.ty=o,this}toArray(t,e){this.array||(this.array=new Float32Array(9));let r=e||this.array;return t?(r[0]=this.a,r[1]=this.b,r[2]=0,r[3]=this.c,r[4]=this.d,r[5]=0,r[6]=this.tx,r[7]=this.ty,r[8]=1):(r[0]=this.a,r[1]=this.c,r[2]=this.tx,r[3]=this.b,r[4]=this.d,r[5]=this.ty,r[6]=0,r[7]=0,r[8]=1),r}apply(t,e){e=e||new nt;let r=t.x,s=t.y;return e.x=this.a*r+this.c*s+this.tx,e.y=this.b*r+this.d*s+this.ty,e}applyInverse(t,e){e=e||new nt;let r=this.a,s=this.b,n=this.c,o=this.d,a=this.tx,l=this.ty,c=1/(r*o+n*-s),h=t.x,u=t.y;return e.x=o*c*h+-n*c*u+(l*n-a*o)*c,e.y=r*c*u+-s*c*h+(-l*r+a*s)*c,e}translate(t,e){return this.tx+=t,this.ty+=e,this}scale(t,e){return this.a*=t,this.d*=e,this.c*=t,this.b*=e,this.tx*=t,this.ty*=e,this}rotate(t){let e=Math.cos(t),r=Math.sin(t),s=this.a,n=this.c,o=this.tx;return this.a=s*e-this.b*r,this.b=s*r+this.b*e,this.c=n*e-this.d*r,this.d=n*r+this.d*e,this.tx=o*e-this.ty*r,this.ty=o*r+this.ty*e,this}append(t){let e=this.a,r=this.b,s=this.c,n=this.d;return this.a=t.a*e+t.b*s,this.b=t.a*r+t.b*n,this.c=t.c*e+t.d*s,this.d=t.c*r+t.d*n,this.tx=t.tx*e+t.ty*s+this.tx,this.ty=t.tx*r+t.ty*n+this.ty,this}appendFrom(t,e){let r=t.a,s=t.b,n=t.c,o=t.d,a=t.tx,l=t.ty,c=e.a,h=e.b,u=e.c,d=e.d;return this.a=r*c+s*u,this.b=r*h+s*d,this.c=n*c+o*u,this.d=n*h+o*d,this.tx=a*c+l*u+e.tx,this.ty=a*h+l*d+e.ty,this}setTransform(t,e,r,s,n,o,a,l,c){return this.a=Math.cos(a+c)*n,this.b=Math.sin(a+c)*n,this.c=-Math.sin(a-l)*o,this.d=Math.cos(a-l)*o,this.tx=t-(r*this.a+s*this.c),this.ty=e-(r*this.b+s*this.d),this}prepend(t){let e=this.tx;if(t.a!==1||t.b!==0||t.c!==0||t.d!==1){let r=this.a,s=this.c;this.a=r*t.a+this.b*t.c,this.b=r*t.b+this.b*t.d,this.c=s*t.a+this.d*t.c,this.d=s*t.b+this.d*t.d}return this.tx=e*t.a+this.ty*t.c+t.tx,this.ty=e*t.b+this.ty*t.d+t.ty,this}decompose(t){let e=this.a,r=this.b,s=this.c,n=this.d,o=t.pivot,a=-Math.atan2(-s,n),l=Math.atan2(r,e),c=Math.abs(a+l);return c<1e-5||Math.abs(gf-c)<1e-5?(t.rotation=l,t.skew.x=t.skew.y=0):(t.rotation=0,t.skew.x=a,t.skew.y=l),t.scale.x=Math.sqrt(e*e+r*r),t.scale.y=Math.sqrt(s*s+n*n),t.position.x=this.tx+(o.x*e+o.y*s),t.position.y=this.ty+(o.x*r+o.y*n),t}invert(){let t=this.a,e=this.b,r=this.c,s=this.d,n=this.tx,o=t*s-e*r;return this.a=s/o,this.b=-e/o,this.c=-r/o,this.d=t/o,this.tx=(r*this.ty-s*n)/o,this.ty=-(t*this.ty-e*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 t=new i;return t.a=this.a,t.b=this.b,t.c=this.c,t.d=this.d,t.tx=this.tx,t.ty=this.ty,t}copyTo(t){return t.a=this.a,t.b=this.b,t.c=this.c,t.d=this.d,t.tx=this.tx,t.ty=this.ty,t}copyFrom(t){return this.a=t.a,this.b=t.b,this.c=t.c,this.d=t.d,this.tx=t.tx,this.ty=t.ty,this}equals(t){return t.a===this.a&&t.b===this.b&&t.c===this.c&&t.d===this.d&&t.tx===this.tx&&t.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 sS.identity()}static get shared(){return iS.identity()}},iS=new k,sS=new k});var Gt,vo=p(()=>{"use strict";Gt=class i{constructor(t,e,r){this._x=e||0,this._y=r||0,this._observer=t}clone(t){return new i(t??this._observer,this._x,this._y)}set(t=0,e=t){return(this._x!==t||this._y!==e)&&(this._x=t,this._y=e,this._observer._onUpdate(this)),this}copyFrom(t){return(this._x!==t.x||this._y!==t.y)&&(this._x=t.x,this._y=t.y,this._observer._onUpdate(this)),this}copyTo(t){return t.set(this._x,this._y),t}equals(t){return t.x===this._x&&t.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(t){this._x!==t&&(this._x=t,this._observer._onUpdate(this))}get y(){return this._y}set y(t){this._y!==t&&(this._y=t,this._observer._onUpdate(this))}}});function $(i="default"){return Zl[i]===void 0&&(Zl[i]=-1),++Zl[i]}var Zl,Ft=p(()=>{"use strict";Zl={default:-1}});var yf,rt,bf,gi,O,yt=p(()=>{"use strict";yf=new Set,rt="8.0.0",bf="8.3.4",gi={quiet:!1,noColor:!1},O=((i,t,e=3)=>{if(gi.quiet||yf.has(t))return;let r=new Error().stack,s=`${t}
2
+ Deprecated since v${i}`,n=typeof console.groupCollapsed=="function"&&!gi.noColor;typeof r>"u"?console.warn("PixiJS Deprecation Warning: ",s):(r=r.split(`
3
3
  `).splice(e).join(`
4
- `),n?(console.groupCollapsed("%cPixiJS Deprecation Warning: %c%s","color:#614108;background:#fffbe6","font-weight:normal;color:#614108;background:#fffbe6",s),console.warn(r),console.groupEnd()):(console.warn("PixiJS Deprecation Warning: ",s),console.warn(r))),xf.add(t)});Object.defineProperties(O,{quiet:{get:()=>mi.quiet,set:i=>{mi.quiet=i},enumerable:!0,configurable:!1},noColor:{get:()=>mi.noColor,set:i=>{mi.noColor=i},enumerable:!0,configurable:!1}})});function L(...i){Ql!==yf&&(Ql++,Ql===yf?console.warn("PixiJS Warning: too many warnings, no more warnings will be reported to the console by PixiJS."):console.warn("PixiJS Warning: ",...i))}var Ql,yf,ht=p(()=>{"use strict";Ql=0,yf=500});var ye,Pr=p(()=>{"use strict";ye={_registeredResources:new Set,register(i){this._registeredResources.add(i)},unregister(i){this._registeredResources.delete(i)},release(){this._registeredResources.forEach(i=>i.clear())},get registeredCount(){return this._registeredResources.size},isRegistered(i){return this._registeredResources.has(i)},reset(){this._registeredResources.clear()}}});var vo,bf=p(()=>{"use strict";vo=class{constructor(t,e){this._pool=[],this._count=0,this._index=0,this._classType=t,e&&this.prepopulate(e)}prepopulate(t){for(let e=0;e<t;e++)this._pool[this._index++]=new this._classType;this._count+=t}get(t){let e;return this._index>0?e=this._pool[--this._index]:(e=new this._classType,this._count++),e.init?.(t),e}return(t){t.reset?.(),this._pool[this._index++]=t}get totalSize(){return this._count}get totalFree(){return this._index}get totalUsed(){return this._count-this._index}clear(){if(this._pool.length>0&&this._pool[0].destroy)for(let t=0;t<this._index;t++)this._pool[t].destroy();this._pool.length=0,this._count=0,this._index=0}}});var Jl,bt,Ke=p(()=>{Pr();bf();Jl=class{constructor(){this._poolsByClass=new Map}prepopulate(t,e){this.getPool(t).prepopulate(e)}get(t,e){return this.getPool(t).get(e)}return(t){this.getPool(t.constructor).return(t)}getPool(t){return this._poolsByClass.has(t)||this._poolsByClass.set(t,new vo(t)),this._poolsByClass.get(t)}stats(){let t={};return this._poolsByClass.forEach(e=>{let r=t[e._classType.name]?e._classType.name+e._classType.ID:e._classType.name;t[r]={free:e.totalFree,used:e.totalUsed,size:e.totalSize}}),t}clear(){this._poolsByClass.forEach(t=>t.clear()),this._poolsByClass.clear()}},bt=new Jl;ye.register(bt)});var vf,Sf=p(()=>{yt();vf={get isCachedAsTexture(){return!!this.renderGroup?.isCachedAsTexture},cacheAsTexture(i){typeof i=="boolean"&&i===!1?this.disableRenderGroup():(this.enableRenderGroup(),this.renderGroup.enableCacheAsTexture(i===!0?{}:i))},updateCacheTexture(){this.renderGroup?.updateCacheTexture()},get cacheAsBitmap(){return this.isCachedAsTexture},set cacheAsBitmap(i){O("v8.6.0","cacheAsBitmap is deprecated, use cacheAsTexture instead."),this.cacheAsTexture(i)}}});function So(i,t,e){let r=i.length,s;if(t>=r||e===0)return;e=t+e>r?r-t:e;let n=r-e;for(s=t;s<n;++s)i[s]=i[s+e];i.length=n}var tc=p(()=>{"use strict"});var Tf,wf=p(()=>{tc();yt();Tf={allowChildren:!0,removeChildren(i=0,t){let e=t??this.children.length,r=e-i,s=[];if(r>0&&r<=e){for(let o=e-1;o>=i;o--){let a=this.children[o];a&&(s.push(a),a.parent=null)}So(this.children,i,e);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(r===0&&this.children.length===0)return s;throw new RangeError("removeChildren: numeric values are outside the acceptable range.")},removeChildAt(i){let t=this.getChildAt(i);return this.removeChild(t)},getChildAt(i){if(i<0||i>=this.children.length)throw new Error(`getChildAt: Index (${i}) does not exist.`);return this.children[i]},setChildIndex(i,t){if(t<0||t>=this.children.length)throw new Error(`The index ${t} supplied is out of bounds ${this.children.length}`);this.getChildIndex(i),this.addChildAt(i,t)},getChildIndex(i){let t=this.children.indexOf(i);if(t===-1)throw new Error("The supplied Container must be a child of the caller");return t},addChildAt(i,t){this.allowChildren||O(rt,"addChildAt: Only Containers will be allowed to add children in v8.0.0");let{children:e}=this;if(t<0||t>e.length)throw new Error(`${i}addChildAt: The index ${t} supplied is out of bounds ${e.length}`);let r=i.parent===this;if(i.parent){let n=i.parent.children.indexOf(i);if(r){if(n===t)return i;i.parent.children.splice(n,1)}else i.removeFromParent()}t===e.length?e.push(i):e.splice(t,0,i);let s=this.renderGroup||this.parentRenderGroup;return this.sortableChildren&&(this.sortDirty=!0),r?(s&&(s.structureDidChange=!0),i):(i.parent=this,i.didChange=!0,i._updateFlags=15,s&&s.addChild(i),this.emit("childAdded",i,this,t),i.emit("added",this),i)},swapChildren(i,t){if(i===t)return;let e=this.getChildIndex(i),r=this.getChildIndex(t);this.children[e]=t,this.children[r]=i;let s=this.renderGroup||this.parentRenderGroup;s&&(s.structureDidChange=!0),this._didContainerChangeTick++},removeFromParent(){this.parent?.removeChild(this)},reparentChild(...i){return i.length===1?this.reparentChildAt(i[0],this.children.length):(i.forEach(t=>this.reparentChildAt(t,this.children.length)),i[0])},reparentChildAt(i,t){if(i.parent===this)return this.setChildIndex(i,t),i;let e=i.worldTransform.clone();i.removeFromParent(),this.addChildAt(i,t);let r=this.worldTransform.clone();return r.invert(),e.prepend(r),i.setFromMatrix(e),i},replaceChild(i,t){i.updateLocalTransform(),this.addChildAt(t,this.getChildIndex(i)),t.setFromMatrix(i.localTransform),t.updateLocalTransform(),this.removeChild(i)}}});var Cf,Ef=p(()=>{"use strict";Cf={collectRenderables(i,t,e){this.parentRenderLayer&&this.parentRenderLayer!==e||this.globalDisplayStatus<7||!this.includeInBuild||(this.sortableChildren&&this.sortChildren(),this.isSimple?this.collectRenderablesSimple(i,t,e):this.renderGroup?t.renderPipes.renderGroup.addRenderGroup(this.renderGroup,i):this.collectRenderablesWithEffects(i,t,e))},collectRenderablesSimple(i,t,e){let r=this.children,s=r.length;for(let n=0;n<s;n++)r[n].collectRenderables(i,t,e)},collectRenderablesWithEffects(i,t,e){let{renderPipes:r}=t;for(let s=0;s<this.effects.length;s++){let n=this.effects[s];r[n.pipe].push(n,this,i)}this.collectRenderablesSimple(i,t,e);for(let s=this.effects.length-1;s>=0;s--){let n=this.effects[s];r[n.pipe].pop(n,this,i)}}}});var Ze,To=p(()=>{"use strict";Ze=class{constructor(){this.pipe="filter",this.priority=1}destroy(){for(let t=0;t<this.filters.length;t++)this.filters[t].destroy();this.filters=null,this.filterArea=null}}});var ec,wo,Pf=p(()=>{P();Ke();ec=class{constructor(){this._effectClasses=[],this._tests=[],this._initialized=!1}init(){this._initialized||(this._initialized=!0,this._effectClasses.forEach(t=>{this.add({test:t.test,maskClass:t})}))}add(t){this._tests.push(t)}getMaskEffect(t){this._initialized||this.init();for(let e=0;e<this._tests.length;e++){let r=this._tests[e];if(r.test(t))return bt.get(r.maskClass,t)}return t}returnMaskEffect(t){bt.return(t)}},wo=new ec;z.handleByList(y.MaskEffect,wo._effectClasses)});var Mf,Af=p(()=>{To();Pf();Mf={_maskEffect:null,_maskOptions:{inverse:!1,channel:"red"},_filterEffect:null,effects:[],_markStructureAsChanged(){let i=this.renderGroup||this.parentRenderGroup;i&&(i.structureDidChange=!0)},addEffect(i){this.effects.indexOf(i)===-1&&(this.effects.push(i),this.effects.sort((e,r)=>e.priority-r.priority),this._markStructureAsChanged(),this._updateIsSimple())},removeEffect(i){let t=this.effects.indexOf(i);t!==-1&&(this.effects.splice(t,1),this._markStructureAsChanged(),this._updateIsSimple())},set mask(i){let t=this._maskEffect;t?.mask!==i&&(t&&(this.removeEffect(t),wo.returnMaskEffect(t),this._maskEffect=null),i!=null&&(this._maskEffect=wo.getMaskEffect(i),this.addEffect(this._maskEffect)))},get mask(){return this._maskEffect?.mask},setMask(i){this._maskOptions={...this._maskOptions,...i},i.mask&&(this.mask=i.mask),this._markStructureAsChanged()},set filters(i){!Array.isArray(i)&&i&&(i=[i]);let t=this._filterEffect||(this._filterEffect=new Ze);i=i;let e=i?.length>0,r=t.filters?.length>0,s=e!==r;i=Array.isArray(i)?i.slice(0):i,t.filters=Object.freeze(i),s&&(e?this.addEffect(t):(this.removeEffect(t),t.filters=i??null))},get filters(){return this._filterEffect?.filters},set filterArea(i){this._filterEffect||(this._filterEffect=new Ze),this._filterEffect.filterArea=i},get filterArea(){return this._filterEffect?.filterArea}}});var Rf,kf=p(()=>{yt();Rf={label:null,get name(){return O(rt,"Container.name property has been removed, use Container.label instead"),this.label},set name(i){O(rt,"Container.name property has been removed, use Container.label instead"),this.label=i},getChildByName(i,t=!1){return this.getChildByLabel(i,t)},getChildByLabel(i,t=!1){let e=this.children;for(let r=0;r<e.length;r++){let s=e[r];if(s.label===i||i instanceof RegExp&&i.test(s.label))return s}if(t)for(let r=0;r<e.length;r++){let n=e[r].getChildByLabel(i,!0);if(n)return n}return null},getChildrenByLabel(i,t=!1,e=[]){let r=this.children;for(let s=0;s<r.length;s++){let n=r[s];(n.label===i||i instanceof RegExp&&i.test(n.label))&&e.push(n)}if(t)for(let s=0;s<r.length;s++)r[s].getChildrenByLabel(i,!0,e);return e}}});var Co,J,Yt=p(()=>{Ee();Co=[new nt,new nt,new nt,new nt],J=class i{constructor(t=0,e=0,r=0,s=0){this.type="rectangle",this.x=Number(t),this.y=Number(e),this.width=Number(r),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 i(0,0,0,0)}clone(){return new i(this.x,this.y,this.width,this.height)}copyFromBounds(t){return this.x=t.minX,this.y=t.minY,this.width=t.maxX-t.minX,this.height=t.maxY-t.minY,this}copyFrom(t){return this.x=t.x,this.y=t.y,this.width=t.width,this.height=t.height,this}copyTo(t){return t.copyFrom(this),t}contains(t,e){return this.width<=0||this.height<=0?!1:t>=this.x&&t<this.x+this.width&&e>=this.y&&e<this.y+this.height}strokeContains(t,e,r,s=.5){let{width:n,height:o}=this;if(n<=0||o<=0)return!1;let a=this.x,l=this.y,c=r*(1-s),h=r-c,u=a-c,d=a+n+c,f=l-c,m=l+o+c,g=a+h,_=a+n-h,x=l+h,b=l+o-h;return t>=u&&t<=d&&e>=f&&e<=m&&!(t>g&&t<_&&e>x&&e<b)}intersects(t,e){if(!e){let B=this.x<t.x?t.x:this.x;if((this.right>t.right?t.right:this.right)<=B)return!1;let M=this.y<t.y?t.y:this.y;return(this.bottom>t.bottom?t.bottom:this.bottom)>M}let r=this.left,s=this.right,n=this.top,o=this.bottom;if(s<=r||o<=n)return!1;let a=Co[0].set(t.left,t.top),l=Co[1].set(t.left,t.bottom),c=Co[2].set(t.right,t.top),h=Co[3].set(t.right,t.bottom);if(c.x<=a.x||l.y<=a.y)return!1;let u=Math.sign(e.a*e.d-e.b*e.c);if(u===0||(e.apply(a,a),e.apply(l,l),e.apply(c,c),e.apply(h,h),Math.max(a.x,l.x,c.x,h.x)<=r||Math.min(a.x,l.x,c.x,h.x)>=s||Math.max(a.y,l.y,c.y,h.y)<=n||Math.min(a.y,l.y,c.y,h.y)>=o))return!1;let d=u*(l.y-a.y),f=u*(a.x-l.x),m=d*r+f*n,g=d*s+f*n,_=d*r+f*o,x=d*s+f*o;if(Math.max(m,g,_,x)<=d*a.x+f*a.y||Math.min(m,g,_,x)>=d*h.x+f*h.y)return!1;let b=u*(a.y-c.y),v=u*(c.x-a.x),S=b*r+v*n,T=b*s+v*n,w=b*r+v*o,E=b*s+v*o;return!(Math.max(S,T,w,E)<=b*a.x+v*a.y||Math.min(S,T,w,E)>=b*h.x+v*h.y)}pad(t=0,e=t){return this.x-=t,this.y-=e,this.width+=t*2,this.height+=e*2,this}fit(t){let e=Math.max(this.x,t.x),r=Math.min(this.x+this.width,t.x+t.width),s=Math.max(this.y,t.y),n=Math.min(this.y+this.height,t.y+t.height);return this.x=e,this.width=Math.max(r-e,0),this.y=s,this.height=Math.max(n-s,0),this}ceil(t=1,e=.001){let r=Math.ceil((this.x+this.width-e)*t)/t,s=Math.ceil((this.y+this.height-e)*t)/t;return this.x=Math.floor((this.x+e)*t)/t,this.y=Math.floor((this.y+e)*t)/t,this.width=r-this.x,this.height=s-this.y,this}scale(t,e=t){return this.x*=t,this.y*=e,this.width*=t,this.height*=e,this}enlarge(t){let e=Math.min(this.x,t.x),r=Math.max(this.x+this.width,t.x+t.width),s=Math.min(this.y,t.y),n=Math.max(this.y+this.height,t.y+t.height);return this.x=e,this.width=r-e,this.y=s,this.height=n-s,this}getBounds(t){return t||(t=new i),t.copyFrom(this),t}containsRect(t){if(this.width<=0||this.height<=0)return!1;let e=t.x,r=t.y,s=t.x+t.width,n=t.y+t.height;return e>=this.x&&e<this.x+this.width&&r>=this.y&&r<this.y+this.height&&s>=this.x&&s<=this.x+this.width&&n>=this.y&&n<=this.y+this.height}set(t,e,r,s){return this.x=t,this.y=e,this.width=r,this.height=s,this}toString(){return`[pixi.js/math:Rectangle x=${this.x} y=${this.y} width=${this.width} height=${this.height}]`}}});var Bf,dt,ie=p(()=>{ot();Yt();Bf=new k,dt=class i{constructor(t=1/0,e=1/0,r=-1/0,s=-1/0){this.minX=1/0,this.minY=1/0,this.maxX=-1/0,this.maxY=-1/0,this.matrix=Bf,this.minX=t,this.minY=e,this.maxX=r,this.maxY=s}isEmpty(){return this.minX>this.maxX||this.minY>this.maxY}get rectangle(){this._rectangle||(this._rectangle=new J);let t=this._rectangle;return this.minX>this.maxX||this.minY>this.maxY?(t.x=0,t.y=0,t.width=0,t.height=0):t.copyFromBounds(this),t}clear(){return this.minX=1/0,this.minY=1/0,this.maxX=-1/0,this.maxY=-1/0,this.matrix=Bf,this}set(t,e,r,s){this.minX=t,this.minY=e,this.maxX=r,this.maxY=s}addFrame(t,e,r,s,n){n||(n=this.matrix);let o=n.a,a=n.b,l=n.c,c=n.d,h=n.tx,u=n.ty,d=this.minX,f=this.minY,m=this.maxX,g=this.maxY,_=o*t+l*e+h,x=a*t+c*e+u;_<d&&(d=_),x<f&&(f=x),_>m&&(m=_),x>g&&(g=x),_=o*r+l*e+h,x=a*r+c*e+u,_<d&&(d=_),x<f&&(f=x),_>m&&(m=_),x>g&&(g=x),_=o*t+l*s+h,x=a*t+c*s+u,_<d&&(d=_),x<f&&(f=x),_>m&&(m=_),x>g&&(g=x),_=o*r+l*s+h,x=a*r+c*s+u,_<d&&(d=_),x<f&&(f=x),_>m&&(m=_),x>g&&(g=x),this.minX=d,this.minY=f,this.maxX=m,this.maxY=g}addRect(t,e){this.addFrame(t.x,t.y,t.x+t.width,t.y+t.height,e)}addBounds(t,e){this.addFrame(t.minX,t.minY,t.maxX,t.maxY,e)}addBoundsMask(t){this.minX=this.minX>t.minX?this.minX:t.minX,this.minY=this.minY>t.minY?this.minY:t.minY,this.maxX=this.maxX<t.maxX?this.maxX:t.maxX,this.maxY=this.maxY<t.maxY?this.maxY:t.maxY}applyMatrix(t){let e=this.minX,r=this.minY,s=this.maxX,n=this.maxY,{a:o,b:a,c:l,d:c,tx:h,ty:u}=t,d=o*e+l*r+h,f=a*e+c*r+u;this.minX=d,this.minY=f,this.maxX=d,this.maxY=f,d=o*s+l*r+h,f=a*s+c*r+u,this.minX=d<this.minX?d:this.minX,this.minY=f<this.minY?f:this.minY,this.maxX=d>this.maxX?d:this.maxX,this.maxY=f>this.maxY?f:this.maxY,d=o*e+l*n+h,f=a*e+c*n+u,this.minX=d<this.minX?d:this.minX,this.minY=f<this.minY?f:this.minY,this.maxX=d>this.maxX?d:this.maxX,this.maxY=f>this.maxY?f:this.maxY,d=o*s+l*n+h,f=a*s+c*n+u,this.minX=d<this.minX?d:this.minX,this.minY=f<this.minY?f:this.minY,this.maxX=d>this.maxX?d:this.maxX,this.maxY=f>this.maxY?f:this.maxY}fit(t){return this.minX<t.left&&(this.minX=t.left),this.maxX>t.right&&(this.maxX=t.right),this.minY<t.top&&(this.minY=t.top),this.maxY>t.bottom&&(this.maxY=t.bottom),this}fitBounds(t,e,r,s){return this.minX<t&&(this.minX=t),this.maxX>e&&(this.maxX=e),this.minY<r&&(this.minY=r),this.maxY>s&&(this.maxY=s),this}pad(t,e=t){return this.minX-=t,this.maxX+=t,this.minY-=e,this.maxY+=e,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 i(this.minX,this.minY,this.maxX,this.maxY)}scale(t,e=t){return this.minX*=t,this.minY*=e,this.maxX*=t,this.maxY*=e,this}get x(){return this.minX}set x(t){let e=this.maxX-this.minX;this.minX=t,this.maxX=t+e}get y(){return this.minY}set y(t){let e=this.maxY-this.minY;this.minY=t,this.maxY=t+e}get width(){return this.maxX-this.minX}set width(t){this.maxX=this.minX+t}get height(){return this.maxY-this.minY}set height(t){this.maxY=this.minY+t}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(t,e,r,s){let n=this.minX,o=this.minY,a=this.maxX,l=this.maxY;s||(s=this.matrix);let c=s.a,h=s.b,u=s.c,d=s.d,f=s.tx,m=s.ty;for(let g=e;g<r;g+=2){let _=t[g],x=t[g+1],b=c*_+u*x+f,v=h*_+d*x+m;n=b<n?b:n,o=v<o?v:o,a=b>a?b:a,l=v>l?v:l}this.minX=n,this.minY=o,this.maxX=a,this.maxY=l}containsPoint(t,e){return this.minX<=t&&this.minY<=e&&this.maxX>=t&&this.maxY>=e}toString(){return`[pixi.js:Bounds minX=${this.minX} minY=${this.minY} maxX=${this.maxX} maxY=${this.maxY} width=${this.width} height=${this.height}]`}copyFrom(t){return this.minX=t.minX,this.minY=t.minY,this.maxX=t.maxX,this.maxY=t.maxY,this}}});var Ut,de,Mr=p(()=>{ot();Ke();ie();Ut=bt.getPool(k),de=bt.getPool(dt)});var rS,If,Gf=p(()=>{ot();ie();Mr();rS=new k,If={getFastGlobalBounds(i,t){t||(t=new dt),t.clear(),this._getGlobalBoundsRecursive(!!i,t,this.parentRenderLayer),t.isValid||t.set(0,0,0,0);let e=this.renderGroup||this.parentRenderGroup;return t.applyMatrix(e.worldTransform),t},_getGlobalBoundsRecursive(i,t,e){let r=t;if(i&&this.parentRenderLayer&&this.parentRenderLayer!==e||this.localDisplayStatus!==7||!this.measurable)return;let s=!!this.effects.length;if((this.renderGroup||s)&&(r=de.get().clear()),this.boundsArea)t.addRect(this.boundsArea,this.worldTransform);else{if(this.renderPipeId){let o=this.bounds;r.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(i,r,e)}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,r.applyMatrix(o.worldTransform)),this.effects[a].addBounds(r,!0));n&&r.applyMatrix(o.worldTransform.copyTo(rS).invert()),t.addBounds(r),de.return(r)}else this.renderGroup&&(t.addBounds(r,this.relativeGroupTransform),de.return(r))}}});function gi(i,t,e){e.clear();let r,s;return i.parent?t?r=i.parent.worldTransform:(s=Ut.get().identity(),r=Eo(i,s)):r=k.IDENTITY,Ff(i,e,r,t),s&&Ut.return(s),e.isValid||e.set(0,0,0,0),e}function Ff(i,t,e,r){if(!i.visible||!i.measurable)return;let s;r?s=i.worldTransform:(i.updateLocalTransform(),s=Ut.get(),s.appendFrom(i.localTransform,e));let n=t,o=!!i.effects.length;if(o&&(t=de.get().clear()),i.boundsArea)t.addRect(i.boundsArea,s);else{let a=i.bounds;a&&!a.isEmpty()&&(t.matrix=s,t.addBounds(a));for(let l=0;l<i.children.length;l++)Ff(i.children[l],t,s,r)}if(o){for(let a=0;a<i.effects.length;a++)i.effects[a].addBounds?.(t);n.addBounds(t,k.IDENTITY),de.return(t)}r||Ut.return(s)}function Eo(i,t){let e=i.parent;return e&&(Eo(e,t),e.updateLocalTransform(),t.append(e.localTransform)),t}var xs=p(()=>{ot();Mr()});function Ue(i,t){if(i===16777215||!t)return t;if(t===16777215||!i)return i;let e=i>>16&255,r=i>>8&255,s=i&255,n=t>>16&255,o=t>>8&255,a=t&255,l=e*n/255|0,c=r*o/255|0,h=s*a/255|0;return(l<<16)+(c<<8)+h}var _s=p(()=>{"use strict"});function xi(i,t){return i===Uf?t:t===Uf?i:Ue(i,t)}var Uf,rc=p(()=>{_s();Uf=16777215});function Qe(i){return((i&255)<<16)+(i&65280)+(i>>16&255)}var Df,Po=p(()=>{ot();xs();Mr();rc();Df={getGlobalAlpha(i){if(i)return this.renderGroup?this.renderGroup.worldAlpha:this.parentRenderGroup?this.parentRenderGroup.worldAlpha*this.alpha:this.alpha;let t=this.alpha,e=this.parent;for(;e;)t*=e.alpha,e=e.parent;return t},getGlobalTransform(i=new k,t){if(t)return i.copyFrom(this.worldTransform);this.updateLocalTransform();let e=Eo(this,Ut.get().identity());return i.appendFrom(this.localTransform,e),Ut.return(e),i},getGlobalTint(i){if(i)return this.renderGroup?Qe(this.renderGroup.worldColor):this.parentRenderGroup?Qe(xi(this.localColor,this.parentRenderGroup.worldColor)):this.tint;let t=this.localColor,e=this.parent;for(;e;)t=xi(t,e.localColor),e=e.parent;return Qe(t)}}});function _i(i,t,e){return t.clear(),e||(e=k.IDENTITY),Lf(i,t,e,i,!0),t.isValid||t.set(0,0,0,0),t}function Lf(i,t,e,r,s){let n;if(s)n=Ut.get(),n=e.copyTo(n);else{if(!i.visible||!i.measurable)return;i.updateLocalTransform();let l=i.localTransform;n=Ut.get(),n.appendFrom(l,e)}let o=t,a=!!i.effects.length;if(a&&(t=de.get().clear()),i.boundsArea)t.addRect(i.boundsArea,n);else{i.renderPipeId&&(t.matrix=n,t.addBounds(i.bounds));let l=i.children;for(let c=0;c<l.length;c++)Lf(l[c],t,n,r,!1)}if(a){for(let l=0;l<i.effects.length;l++)i.effects[l].addLocalBounds?.(t,r);o.addBounds(t,k.IDENTITY),de.return(t)}Ut.return(n)}var Mo=p(()=>{ot();Mr()});function ic(i,t){let e=i.children;for(let r=0;r<e.length;r++){let s=e[r],n=s.uid,o=(s._didViewChangeTick&65535)<<16|s._didContainerChangeTick&65535,a=t.index;(t.data[a]!==n||t.data[a+1]!==o)&&(t.data[t.index]=n,t.data[t.index+1]=o,t.didChange=!0),t.index=a+2,s.children.length&&ic(s,t)}return t.didChange}var Of=p(()=>{"use strict"});var iS,Nf,zf=p(()=>{ot();ie();xs();Mo();Of();iS=new k,Nf={_localBoundsCacheId:-1,_localBoundsCacheData:null,_setWidth(i,t){let e=Math.sign(this.scale.x)||1;t!==0?this.scale.x=i/t*e:this.scale.x=e},_setHeight(i,t){let e=Math.sign(this.scale.y)||1;t!==0?this.scale.y=i/t*e:this.scale.y=e},getLocalBounds(){this._localBoundsCacheData||(this._localBoundsCacheData={data:[],index:1,didChange:!1,localBounds:new dt});let i=this._localBoundsCacheData;return i.index=1,i.didChange=!1,i.data[0]!==this._didViewChangeTick&&(i.didChange=!0,i.data[0]=this._didViewChangeTick),ic(this,i),i.didChange&&_i(this,i.localBounds,iS),i.localBounds},getBounds(i,t){return gi(this,i,t||new dt)}}});var Hf,Wf=p(()=>{"use strict";Hf={_onRender:null,set onRender(i){let t=this.renderGroup||this.parentRenderGroup;if(!i){this._onRender&&t?.removeOnRender(this),this._onRender=null;return}this._onRender||t?.addOnRender(this),this._onRender=i},get onRender(){return this._onRender}}});function sS(i,t){return i._zIndex-t._zIndex}var Vf,jf=p(()=>{"use strict";Vf={_zIndex:0,sortDirty:!1,sortableChildren:!1,get zIndex(){return this._zIndex},set zIndex(i){this._zIndex!==i&&(this._zIndex=i,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(sS))}}});var Xf,Yf=p(()=>{Ee();Mr();Xf={getGlobalPosition(i=new nt,t=!1){return this.parent?this.parent.toGlobal(this._position,i,t):(i.x=this._position.x,i.y=this._position.y),i},toGlobal(i,t,e=!1){let r=this.getGlobalTransform(Ut.get(),e);return t=r.apply(i,t),Ut.return(r),t},toLocal(i,t,e,r){t&&(i=t.toGlobal(i,e,r));let s=this.getGlobalTransform(Ut.get(),r);return e=s.applyInverse(i,e),Ut.return(s),e}}});var hr,Ao=p(()=>{Ft();hr=class{constructor(){this.uid=$("instructionSet"),this.instructions=[],this.instructionSize=0,this.renderables=[],this.gcTick=0}reset(){this.instructionSize=0}destroy(){this.instructions.length=0,this.renderables.length=0,this.renderPipes=null,this.gcTick=0}add(t){this.instructions[this.instructionSize++]=t}log(){this.instructions.length=this.instructionSize,console.table(this.instructions,["type","action"])}}});function Je(i){return i+=i===0?1:0,--i,i|=i>>>1,i|=i>>>2,i|=i>>>4,i|=i>>>8,i|=i>>>16,i+1}function sc(i){return!(i&i-1)&&!!i}var ys=p(()=>{"use strict"});function Ro(i){let t={};for(let e in i)i[e]!==void 0&&(t[e]=i[e]);return t}var nc=p(()=>{"use strict"});function nS(i){let t=$f[i];return t===void 0&&($f[i]=$("resource")),t}var $f,qf,ce,Ar=p(()=>{Ht();Ft();yt();$f=Object.create(null);qf=class Kf extends ut{constructor(t={}){super(),this._resourceType="textureSampler",this._touched=0,this._maxAnisotropy=1,this.destroyed=!1,t={...Kf.defaultOptions,...t},this.addressMode=t.addressMode,this.addressModeU=t.addressModeU??this.addressModeU,this.addressModeV=t.addressModeV??this.addressModeV,this.addressModeW=t.addressModeW??this.addressModeW,this.scaleMode=t.scaleMode,this.magFilter=t.magFilter??this.magFilter,this.minFilter=t.minFilter??this.minFilter,this.mipmapFilter=t.mipmapFilter??this.mipmapFilter,this.lodMinClamp=t.lodMinClamp,this.lodMaxClamp=t.lodMaxClamp,this.compare=t.compare,this.maxAnisotropy=t.maxAnisotropy??1}set addressMode(t){this.addressModeU=t,this.addressModeV=t,this.addressModeW=t}get addressMode(){return this.addressModeU}set wrapMode(t){O(rt,"TextureStyle.wrapMode is now TextureStyle.addressMode"),this.addressMode=t}get wrapMode(){return this.addressMode}set scaleMode(t){this.magFilter=t,this.minFilter=t,this.mipmapFilter=t}get scaleMode(){return this.magFilter}set maxAnisotropy(t){this._maxAnisotropy=Math.min(t,16),this._maxAnisotropy>1&&(this.scaleMode="linear")}get maxAnisotropy(){return this._maxAnisotropy}get _resourceId(){return this._sharedResourceId||this._generateResourceId()}update(){this._sharedResourceId=null,this.emit("change",this)}_generateResourceId(){let t=`${this.addressModeU}-${this.addressModeV}-${this.addressModeW}-${this.magFilter}-${this.minFilter}-${this.mipmapFilter}-${this.lodMinClamp}-${this.lodMaxClamp}-${this.compare}-${this._maxAnisotropy}`;return this._sharedResourceId=nS(t),this._resourceId}destroy(){this.destroyed=!0,this.emit("destroy",this),this.emit("change",this),this.removeAllListeners()}};qf.defaultOptions={addressMode:"clamp-to-edge",scaleMode:"linear"};ce=qf});var Zf,st,$t=p(()=>{Ht();ys();nc();Ft();Ar();Zf=class Qf extends ut{constructor(t={}){super(),this.options=t,this._gpuData=Object.create(null),this._gcLastUsed=-1,this.uid=$("textureSource"),this._resourceType="textureSource",this._resourceId=$("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.viewDimension="2d",this.arrayLayerCount=1,this._ownsStyle=!1,this.antialias=!1,this.transient=!1,this._touched=0,this._batchTick=-1,this._textureBindLocation=-1,t={...Qf.defaultOptions,...t},this.label=t.label??"",this.resource=t.resource,this.autoGarbageCollect=t.autoGarbageCollect,this._resolution=t.resolution,t.width?this.pixelWidth=t.width*this._resolution:this.pixelWidth=this.resource?this.resourceWidth??1:1,t.height?this.pixelHeight=t.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=t.format,this.dimension=t.dimensions,this.viewDimension=t.viewDimension??t.dimensions,this.arrayLayerCount=t.arrayLayerCount,this.mipLevelCount=t.mipLevelCount,this.autoGenerateMipmaps=t.autoGenerateMipmaps,this.sampleCount=t.sampleCount,this.antialias=t.antialias,this.transient=t.transient??!1,this.alphaMode=t.alphaMode,this.style=new ce(Ro(t)),this._ownsStyle=!0,this.destroyed=!1,this._refreshPOT()}get source(){return this}get style(){return this._style}set style(t){this.style!==t&&(this._ownsStyle=!1,this._style?.off("change",this._onStyleChange,this),this._style=t,this._style?.on("change",this._onStyleChange,this),this._onStyleChange())}set maxAnisotropy(t){this._style.maxAnisotropy=t}get maxAnisotropy(){return this._style.maxAnisotropy}get addressMode(){return this._style.addressMode}set addressMode(t){this._style.addressMode=t}get repeatMode(){return this._style.addressMode}set repeatMode(t){this._style.addressMode=t}get magFilter(){return this._style.magFilter}set magFilter(t){this._style.magFilter=t}get minFilter(){return this._style.minFilter}set minFilter(t){this._style.minFilter=t}get mipmapFilter(){return this._style.mipmapFilter}set mipmapFilter(t){this._style.mipmapFilter=t}get lodMinClamp(){return this._style.lodMinClamp}set lodMinClamp(t){this._style.lodMinClamp=t}get lodMaxClamp(){return this._style.lodMaxClamp}set lodMaxClamp(t){this._style.lodMaxClamp=t}_onStyleChange(){this.emit("styleChange",this)}update(){if(this.resource){let t=this._resolution;if(this.resize(this.resourceWidth/t,this.resourceHeight/t))return}this.emit("update",this)}destroy(){this.destroyed=!0,this.unload(),this.emit("destroy",this),this._style&&(this._ownsStyle&&this._style.destroy(),this._style=null),this.uploadMethodId=null,this.resource=null,this.removeAllListeners()}unload(){this._resourceId=$("resource"),this.emit("change",this),this.emit("unload",this);for(let t in this._gpuData)this._gpuData[t]?.destroy?.();this._gpuData=Object.create(null)}get resourceWidth(){let{resource:t}=this;return t.naturalWidth||t.videoWidth||t.displayWidth||t.width}get resourceHeight(){let{resource:t}=this;return t.naturalHeight||t.videoHeight||t.displayHeight||t.height}get resolution(){return this._resolution}set resolution(t){this._resolution!==t&&(this._resolution=t,this.width=this.pixelWidth/t,this.height=this.pixelHeight/t)}resize(t,e,r){r||(r=this._resolution),t||(t=this.width),e||(e=this.height);let s=Math.round(t*r),n=Math.round(e*r);return this.width=s/r,this.height=n/r,this._resolution=r,this.pixelWidth===s&&this.pixelHeight===n?!1:(this._refreshPOT(),this.pixelWidth=s,this.pixelHeight=n,this.emit("resize",this),this._resourceId=$("resource"),this.emit("change",this),!0)}updateMipmaps(){this.autoGenerateMipmaps&&this.mipLevelCount>1&&this.emit("updateMipmaps",this)}set wrapMode(t){this._style.wrapMode=t}get wrapMode(){return this._style.wrapMode}set scaleMode(t){this._style.scaleMode=t}get scaleMode(){return this._style.scaleMode}_refreshPOT(){this.isPowerOfTwo=sc(this.pixelWidth)&&sc(this.pixelHeight)}static test(t){throw new Error("Unimplemented")}};Zf.defaultOptions={resolution:1,format:"bgra8unorm",alphaMode:"premultiply-alpha-on-upload",dimensions:"2d",viewDimension:"2d",arrayLayerCount:1,mipLevelCount:1,autoGenerateMipmaps:!1,sampleCount:1,antialias:!1,autoGarbageCollect:!1};st=Zf});function oS(){for(let i=0;i<16;i++){let t=[];oc.push(t);for(let e=0;e<16;e++){let r=ko(Rr[i]*Rr[e]+Br[i]*kr[e]),s=ko(kr[i]*Rr[e]+Ir[i]*kr[e]),n=ko(Rr[i]*Br[e]+Br[i]*Ir[e]),o=ko(kr[i]*Br[e]+Ir[i]*Ir[e]);for(let a=0;a<16;a++)if(Rr[a]===r&&kr[a]===s&&Br[a]===n&&Ir[a]===o){t.push(a);break}}}for(let i=0;i<16;i++){let t=new k;t.set(Rr[i],kr[i],Br[i],Ir[i],0,0),Jf.push(t)}}var Rr,kr,Br,Ir,oc,Jf,ko,it,bs=p(()=>{ot();Rr=[1,1,0,-1,-1,-1,0,1,1,1,0,-1,-1,-1,0,1],kr=[0,1,1,1,0,-1,-1,-1,0,1,1,1,0,-1,-1,-1],Br=[0,-1,-1,-1,0,1,1,1,0,1,1,1,0,-1,-1,-1],Ir=[1,1,0,-1,-1,-1,0,1,-1,-1,0,1,1,1,0,-1],oc=[],Jf=[],ko=Math.sign;oS();it={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:i=>Rr[i],uY:i=>kr[i],vX:i=>Br[i],vY:i=>Ir[i],inv:i=>i&8?i&15:-i&7,add:(i,t)=>oc[i][t],sub:(i,t)=>oc[i][it.inv(t)],rotate180:i=>i^4,isVertical:i=>(i&3)===2,byDirection:(i,t)=>Math.abs(i)*2<=Math.abs(t)?t>=0?it.S:it.N:Math.abs(t)*2<=Math.abs(i)?i>0?it.E:it.W:t>0?i>0?it.SE:it.SW:i>0?it.NE:it.NW,matrixAppendRotationInv:(i,t,e=0,r=0,s=0,n=0)=>{let o=Jf[it.inv(t)],a=o.a,l=o.b,c=o.c,h=o.d,u=e-Math.min(0,a*s,c*n,a*s+c*n),d=r-Math.min(0,l*s,h*n,l*s+h*n),f=i.a,m=i.b,g=i.c,_=i.d;i.a=a*f+l*g,i.b=a*m+l*_,i.c=c*f+h*g,i.d=c*m+h*_,i.tx=u*f+d*g+i.tx,i.ty=u*m+d*_+i.ty},transformRectCoords:(i,t,e,r)=>{let{x:s,y:n,width:o,height:a}=i,{x:l,y:c,width:h,height:u}=t;return e===it.E?(r.set(s+l,n+c,o,a),r):e===it.S?r.set(h-n-a+l,s+c,a,o):e===it.W?r.set(h-s-o+l,u-n-a+c,o,a):e===it.N?r.set(n+l,u-s-o+c,a,o):r.set(s+l,n+c,o,a)}}});var ac,tp=p(()=>{"use strict";ac=()=>{}});var Gr,lc=p(()=>{P();$t();Gr=class extends st{constructor(t){let e=t.resource||new Float32Array(t.width*t.height*4),r=t.format;r||(e instanceof Float32Array?r="rgba32float":e instanceof Int32Array||e instanceof Uint32Array?r="rgba32uint":e instanceof Int16Array||e instanceof Uint16Array?r="rgba16uint":(e instanceof Int8Array,r="bgra8unorm")),super({...t,resource:e,format:r}),this.uploadMethodId="buffer"}static test(t){return t instanceof Int8Array||t instanceof Uint8Array||t instanceof Uint8ClampedArray||t instanceof Int16Array||t instanceof Uint16Array||t instanceof Int32Array||t instanceof Uint32Array||t instanceof Float32Array}};Gr.extension=y.TextureSource});var ep,yi,cc=p(()=>{ot();ep=new k,yi=class{constructor(t,e){this.mapCoord=new k,this.uClampFrame=new Float32Array(4),this.uClampOffset=new Float32Array(2),this._updateID=0,this.clampOffset=0,typeof e>"u"?this.clampMargin=t.width<10?0:.5:this.clampMargin=e,this.isSimple=!1,this.texture=t}get texture(){return this._texture}set texture(t){this._texture!==t&&(this._texture?.removeListener("update",this.update,this),this._texture=t,this._texture.addListener("update",this.update,this)),this.update()}destroy(){this._texture?.removeListener("update",this.update,this),this._texture=null}multiplyUvs(t,e){e===void 0&&(e=t);let r=this.mapCoord;for(let s=0;s<t.length;s+=2){let n=t[s],o=t[s+1];e[s]=n*r.a+o*r.c+r.tx,e[s+1]=n*r.b+o*r.d+r.ty}return e}update(){let t=this._texture;this._updateID++;let e=t.uvs;this.mapCoord.set(e.x1-e.x0,e.y1-e.y0,e.x3-e.x0,e.y3-e.y0,e.x0,e.y0);let r=t.orig,s=t.trim;s&&(ep.set(r.width/s.width,0,0,r.height/s.height,-s.x/s.width,-s.y/s.height),this.mapCoord.append(ep));let n=t.source,o=this.uClampFrame,a=this.clampMargin/n._resolution,l=this.clampOffset/n._resolution;return o[0]=(t.frame.x+a+l)/n.width,o[1]=(t.frame.y+a+l)/n.height,o[2]=(t.frame.x+t.frame.width-a+l)/n.width,o[3]=(t.frame.y+t.frame.height-a+l)/n.height,this.uClampOffset[0]=this.clampOffset/n.pixelWidth,this.uClampOffset[1]=this.clampOffset/n.pixelHeight,this.isSimple=t.frame.width===n.width&&t.frame.height===n.height&&t.rotate===0,!0}}});var U,gt=p(()=>{Ht();bs();Yt();Ft();yt();tp();lc();$t();cc();U=class extends ut{constructor({source:t,label:e,frame:r,orig:s,trim:n,defaultAnchor:o,defaultBorders:a,rotate:l,dynamic:c}={}){if(super(),this.uid=$("texture"),this.uvs={x0:0,y0:0,x1:0,y1:0,x2:0,y2:0,x3:0,y3:0},this.frame=new J,this.noFrame=!1,this.dynamic=!1,this.isTexture=!0,this.label=e,this.source=t?.source??new st,this.noFrame=!r,r)this.frame.copyFrom(r);else{let{width:h,height:u}=this._source;this.frame.width=h,this.frame.height=u}this.orig=s||this.frame,this.trim=n,this.rotate=l??0,this.defaultAnchor=o,this.defaultBorders=a,this.destroyed=!1,this.dynamic=c||!1,this.updateUvs()}set source(t){this._source&&this._source.off("resize",this.update,this),this._source=t,t.on("resize",this.update,this),this.emit("update",this)}get source(){return this._source}get textureMatrix(){return this._textureMatrix||(this._textureMatrix=new yi(this)),this._textureMatrix}get width(){return this.orig.width}get height(){return this.orig.height}updateUvs(){let{uvs:t,frame:e}=this,{width:r,height:s}=this._source,n=e.x/r,o=e.y/s,a=e.width/r,l=e.height/s,c=this.rotate;if(c){let h=a/2,u=l/2,d=n+h,f=o+u;c=it.add(c,it.NW),t.x0=d+h*it.uX(c),t.y0=f+u*it.uY(c),c=it.add(c,2),t.x1=d+h*it.uX(c),t.y1=f+u*it.uY(c),c=it.add(c,2),t.x2=d+h*it.uX(c),t.y2=f+u*it.uY(c),c=it.add(c,2),t.x3=d+h*it.uX(c),t.y3=f+u*it.uY(c)}else t.x0=n,t.y0=o,t.x1=n+a,t.y1=o,t.x2=n+a,t.y2=o+l,t.x3=n,t.y3=o+l}destroy(t=!1){this._source&&(this._source.off("resize",this.update,this),t&&(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 O(rt,"Texture.baseTexture is now Texture.source"),this._source}};U.EMPTY=new U({label:"EMPTY",source:new st({label:"EMPTY"})});U.EMPTY.destroy=ac;U.WHITE=new U({source:new Gr({resource:new Uint8Array([255,255,255,255]),width:1,height:1,alphaMode:"premultiply-alpha-on-upload",label:"WHITE"}),label:"WHITE"});U.WHITE.destroy=ac});var aS,hc,Mt,Fr=p(()=>{ys();Pr();$t();gt();Ar();aS=0,hc=class{constructor(t){this._poolKeyHash=Object.create(null),this._texturePool={},this.textureOptions=t||{},this.enableFullScreen=!1,this.textureStyle=new ce(this.textureOptions)}createTexture(t,e,r,s){let n=new st({...this.textureOptions,width:t,height:e,resolution:1,antialias:r,autoGarbageCollect:!1,autoGenerateMipmaps:s});return new U({source:n,label:`texturePool_${aS++}`})}getOptimalTexture(t,e,r=1,s,n=!1){let o=Math.ceil(t*r-1e-6),a=Math.ceil(e*r-1e-6);o=Je(o),a=Je(a);let l=s?1:0,c=n?1:0,h=(o<<17)+(a<<2)+(c<<1)+l;this._texturePool[h]||(this._texturePool[h]=[]);let u=this._texturePool[h].pop();return u||(u=this.createTexture(o,a,s,n)),u.source._resolution=r,u.source.width=o/r,u.source.height=a/r,u.source.pixelWidth=o,u.source.pixelHeight=a,u.frame.x=0,u.frame.y=0,u.frame.width=t,u.frame.height=e,u.updateUvs(),this._poolKeyHash[u.uid]=h,u}getSameSizeTexture(t,e=!1){let r=t.source;return this.getOptimalTexture(t.width,t.height,r._resolution,e)}returnTexture(t,e=!1){let r=this._poolKeyHash[t.uid];e&&(t.source.style=this.textureStyle),this._texturePool[r].push(t)}clear(t){if(t=t!==!1,t)for(let e in this._texturePool){let r=this._texturePool[e];if(r)for(let s=0;s<r.length;s++)r[s].destroy(!0)}this._texturePool={}}},Mt=new hc;ye.register(Mt)});var Ur,uc=p(()=>{ot();Ao();Fr();Ur=class{constructor(){this.renderPipeId="renderGroup",this.root=null,this.canBundle=!1,this.renderGroupParent=null,this.renderGroupChildren=[],this.worldTransform=new k,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 hr,this._onRenderContainers=[],this.textureNeedsUpdate=!0,this.isCachedAsTexture=!1,this._matrixDirty=7}init(t){this.root=t,t._onRender&&this.addOnRender(t),t.didChange=!0;let e=t.children;for(let r=0;r<e.length;r++){let s=e[r];s._updateFlags=15,this.addChild(s)}}enableCacheAsTexture(t={}){this.textureOptions=t,this.isCachedAsTexture=!0,this.textureNeedsUpdate=!0}disableCacheAsTexture(){this.isCachedAsTexture=!1,this.texture&&(Mt.returnTexture(this.texture,!0),this.texture=null)}updateCacheTexture(){this.textureNeedsUpdate=!0;let t=this._parentCacheAsTextureRenderGroup;t&&!t.textureNeedsUpdate&&t.updateCacheTexture()}reset(){this.renderGroupChildren.length=0;for(let t in this.childrenToUpdate){let e=this.childrenToUpdate[t];e.list.fill(null),e.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(t){t.renderGroupParent&&t.renderGroupParent._removeRenderGroupChild(t),t.renderGroupParent=this,this.renderGroupChildren.push(t)}_removeRenderGroupChild(t){let e=this.renderGroupChildren.indexOf(t);e>-1&&this.renderGroupChildren.splice(e,1),t.renderGroupParent=null}addChild(t){if(this.structureDidChange=!0,t.parentRenderGroup=this,t.updateTick=-1,t.parent===this.root?t.relativeRenderGroupDepth=1:t.relativeRenderGroupDepth=t.parent.relativeRenderGroupDepth+1,t.didChange=!0,this.onChildUpdate(t),t.renderGroup){this.addRenderGroupChild(t.renderGroup);return}t._onRender&&this.addOnRender(t);let e=t.children;for(let r=0;r<e.length;r++)this.addChild(e[r])}removeChild(t){if(this.structureDidChange=!0,t._onRender&&(t.renderGroup||this.removeOnRender(t)),t.parentRenderGroup=null,t.renderGroup){this._removeRenderGroupChild(t.renderGroup);return}let e=t.children;for(let r=0;r<e.length;r++)this.removeChild(e[r])}removeChildren(t){for(let e=0;e<t.length;e++)this.removeChild(t[e])}onChildUpdate(t){let e=this.childrenToUpdate[t.relativeRenderGroupDepth];e||(e=this.childrenToUpdate[t.relativeRenderGroupDepth]={index:0,list:[]}),e.list[e.index++]=t}updateRenderable(t){t.globalDisplayStatus<7||(this.instructionSet.renderPipes[t.renderPipeId].updateRenderable(t),t.didViewUpdate=!1)}onChildViewUpdate(t){this.childrenRenderablesToUpdate.list[this.childrenRenderablesToUpdate.index++]=t}get isRenderable(){return this.root.localDisplayStatus===7&&this.worldAlpha>0}addOnRender(t){this._onRenderContainers.indexOf(t)===-1&&this._onRenderContainers.push(t)}removeOnRender(t){let e=this._onRenderContainers.indexOf(t);e!==-1&&this._onRenderContainers.splice(e,1)}runOnRender(t){for(let e=0;e<this._onRenderContainers.length;e++)this._onRenderContainers[e]._onRender(t)}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(t=[]){let e=this.root.children;for(let r=0;r<e.length;r++)this._getChildren(e[r],t);return t}_getChildren(t,e=[]){if(e.push(t),t.renderGroup)return e;let r=t.children;for(let s=0;s<r.length;s++)this._getChildren(r[s],e);return e}invalidateMatrices(){this._matrixDirty=7}get inverseWorldTransform(){return(this._matrixDirty&1)===0?this._inverseWorldTransform:(this._matrixDirty&=-2,this._inverseWorldTransform||(this._inverseWorldTransform=new k),this._inverseWorldTransform.copyFrom(this.worldTransform).invert())}get textureOffsetInverseTransform(){return(this._matrixDirty&2)===0?this._textureOffsetInverseTransform:(this._matrixDirty&=-3,this._textureOffsetInverseTransform||(this._textureOffsetInverseTransform=new k),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 t=this._parentCacheAsTextureRenderGroup;return t?(this._inverseParentTextureTransform||(this._inverseParentTextureTransform=new k),this._inverseParentTextureTransform.copyFrom(this.worldTransform).prepend(t.inverseWorldTransform).translate(-t._textureBounds.x,-t._textureBounds.y)):this.worldTransform}get cacheToLocalTransform(){return this.isCachedAsTexture?this.textureOffsetInverseTransform:this._parentCacheAsTextureRenderGroup?this._parentCacheAsTextureRenderGroup.textureOffsetInverseTransform:null}}});function rp(i,t,e={}){for(let r in t)!e[r]&&t[r]!==void 0&&(i[r]=t[r])}var ip=p(()=>{"use strict"});var dc,Bo,fc,Io,bi,vs,Dr,mt,Pe=p(()=>{Ht();Qt();ff();P();ot();ql();bo();Ft();yt();ht();Ke();Sf();wf();Ef();Af();kf();Gf();Po();zf();Wf();jf();Yf();uc();ip();dc=new Gt(null),Bo=new Gt(null),fc=new Gt(null,1,1),Io=new Gt(null),bi=1,vs=2,Dr=4,mt=class i extends ut{constructor(t={}){super(),this.uid=$("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.parentRenderLayer=null,this.updateTick=-1,this.localTransform=new k,this.relativeGroupTransform=new k,this.groupTransform=this.relativeGroupTransform,this.destroyed=!1,this._position=new Gt(this,0,0),this._scale=fc,this._pivot=Bo,this._origin=Io,this._skew=dc,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=[],rp(this,t,{children:!0,parent:!0,effects:!0}),t.children?.forEach(e=>this.addChild(e)),t.parent?.addChild(this)}static mixin(t){O("8.8.0","Container.mixin is deprecated, please use extensions.mixin instead."),z.mixin(i,t)}set _didChangeId(t){this._didViewChangeTick=t>>12&4095,this._didContainerChangeTick=t&4095}get _didChangeId(){return this._didContainerChangeTick&4095|(this._didViewChangeTick&4095)<<12}addChild(...t){if(this.allowChildren||O(rt,"addChild: Only Containers will be allowed to add children in v8.0.0"),t.length>1){for(let s=0;s<t.length;s++)this.addChild(t[s]);return t[0]}let e=t[0],r=this.renderGroup||this.parentRenderGroup;return e.parent===this?(this.children.splice(this.children.indexOf(e),1),this.children.push(e),r&&(r.structureDidChange=!0),e):(e.parent&&e.parent.removeChild(e),this.children.push(e),this.sortableChildren&&(this.sortDirty=!0),e.parent=this,e.didChange=!0,e._updateFlags=15,r&&r.addChild(e),this.emit("childAdded",e,this,this.children.length-1),e.emit("added",this),this._didViewChangeTick++,e._zIndex!==0&&e.depthOfChildModified(),e)}removeChild(...t){if(t.length>1){for(let s=0;s<t.length;s++)this.removeChild(t[s]);return t[0]}let e=t[0],r=this.children.indexOf(e);return r>-1&&(this._didViewChangeTick++,this.children.splice(r,1),this.renderGroup?this.renderGroup.removeChild(e):this.parentRenderGroup&&this.parentRenderGroup.removeChild(e),e.parentRenderLayer&&e.parentRenderLayer.detach(e),e.parent=null,this.emit("childRemoved",e,this,r),e.emit("removed",this)),e}_onUpdate(t){t&&t===this._skew&&this._updateSkew(),this._didContainerChangeTick++,!this.didChange&&(this.didChange=!0,this.parentRenderGroup&&this.parentRenderGroup.onChildUpdate(this))}set isRenderGroup(t){!!this.renderGroup!==t&&(t?this.enableRenderGroup():this.disableRenderGroup())}get isRenderGroup(){return!!this.renderGroup}enableRenderGroup(){if(this.renderGroup)return;let t=this.parentRenderGroup;t?.removeChild(this),this.renderGroup=bt.get(Ur,this),this.groupTransform=k.IDENTITY,t?.addChild(this),this._updateIsSimple()}disableRenderGroup(){if(!this.renderGroup)return;let t=this.parentRenderGroup;t?.removeChild(this),bt.return(this.renderGroup),this.renderGroup=null,this.groupTransform=this.relativeGroupTransform,t?.addChild(this),this._updateIsSimple()}_updateIsSimple(){this.isSimple=!this.renderGroup&&this.effects.length===0}get worldTransform(){return this._worldTransform||(this._worldTransform=new k),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(t){this._position.x=t}get y(){return this._position.y}set y(t){this._position.y=t}get position(){return this._position}set position(t){this._position.copyFrom(t)}get rotation(){return this._rotation}set rotation(t){this._rotation!==t&&(this._rotation=t,this._onUpdate(this._skew))}get angle(){return this.rotation*mf}set angle(t){this.rotation=t*gf}get pivot(){return this._pivot===Bo&&(this._pivot=new Gt(this,0,0)),this._pivot}set pivot(t){this._pivot===Bo&&(this._pivot=new Gt(this,0,0),this._origin!==Io&&L("Setting both a pivot and origin on a Container is not recommended. This can lead to unexpected behavior if not handled carefully.")),typeof t=="number"?this._pivot.set(t):this._pivot.copyFrom(t)}get skew(){return this._skew===dc&&(this._skew=new Gt(this,0,0)),this._skew}set skew(t){this._skew===dc&&(this._skew=new Gt(this,0,0)),this._skew.copyFrom(t)}get scale(){return this._scale===fc&&(this._scale=new Gt(this,1,1)),this._scale}set scale(t){this._scale===fc&&(this._scale=new Gt(this,0,0)),typeof t=="string"&&(t=parseFloat(t)),typeof t=="number"?this._scale.set(t):this._scale.copyFrom(t)}get origin(){return this._origin===Io&&(this._origin=new Gt(this,0,0)),this._origin}set origin(t){this._origin===Io&&(this._origin=new Gt(this,0,0),this._pivot!==Bo&&L("Setting both a pivot and origin on a Container is not recommended. This can lead to unexpected behavior if not handled carefully.")),typeof t=="number"?this._origin.set(t):this._origin.copyFrom(t)}get width(){return Math.abs(this.scale.x*this.getLocalBounds().width)}set width(t){let e=this.getLocalBounds().width;this._setWidth(t,e)}get height(){return Math.abs(this.scale.y*this.getLocalBounds().height)}set height(t){let e=this.getLocalBounds().height;this._setHeight(t,e)}getSize(t){t||(t={});let e=this.getLocalBounds();return t.width=Math.abs(this.scale.x*e.width),t.height=Math.abs(this.scale.y*e.height),t}setSize(t,e){let r=this.getLocalBounds();typeof t=="object"?(e=t.height??t.width,t=t.width):e??(e=t),t!==void 0&&this._setWidth(t,r.width),e!==void 0&&this._setHeight(e,r.height)}_updateSkew(){let t=this._rotation,e=this._skew;this._cx=Math.cos(t+e._y),this._sx=Math.sin(t+e._y),this._cy=-Math.sin(t-e._x),this._sy=Math.cos(t-e._x)}updateTransform(t){return this.position.set(typeof t.x=="number"?t.x:this.position.x,typeof t.y=="number"?t.y:this.position.y),this.scale.set(typeof t.scaleX=="number"?t.scaleX:this.scale.x,typeof t.scaleY=="number"?t.scaleY:this.scale.y),this.rotation=typeof t.rotation=="number"?t.rotation:this.rotation,this.skew.set(typeof t.skewX=="number"?t.skewX:this.skew.x,typeof t.skewY=="number"?t.skewY:this.skew.y),this.pivot.set(typeof t.pivotX=="number"?t.pivotX:this.pivot.x,typeof t.pivotY=="number"?t.pivotY:this.pivot.y),this.origin.set(typeof t.originX=="number"?t.originX:this.origin.x,typeof t.originY=="number"?t.originY:this.origin.y),this}setFromMatrix(t){t.decompose(this)}updateLocalTransform(){let t=this._didContainerChangeTick;if(this._didLocalTransformChangeId===t)return;this._didLocalTransformChangeId=t;let e=this.localTransform,r=this._scale,s=this._pivot,n=this._origin,o=this._position,a=r._x,l=r._y,c=s._x,h=s._y,u=-n._x,d=-n._y;e.a=this._cx*a,e.b=this._sx*a,e.c=this._cy*l,e.d=this._sy*l,e.tx=o._x-(c*e.a+h*e.c)+(u*e.a+d*e.c)-u,e.ty=o._y-(c*e.b+h*e.d)+(u*e.b+d*e.d)-d}set alpha(t){t!==this.localAlpha&&(this.localAlpha=t,this._updateFlags|=bi,this._onUpdate())}get alpha(){return this.localAlpha}set tint(t){let r=Q.shared.setValue(t??16777215).toBgrNumber();r!==this.localColor&&(this.localColor=r,this._updateFlags|=bi,this._onUpdate())}get tint(){return Qe(this.localColor)}set blendMode(t){this.localBlendMode!==t&&(this.parentRenderGroup&&(this.parentRenderGroup.structureDidChange=!0),this._updateFlags|=vs,this.localBlendMode=t,this._onUpdate())}get blendMode(){return this.localBlendMode}get visible(){return!!(this.localDisplayStatus&2)}set visible(t){let e=t?2:0;(this.localDisplayStatus&2)!==e&&(this.parentRenderGroup&&(this.parentRenderGroup.structureDidChange=!0),this._updateFlags|=Dr,this.localDisplayStatus^=2,this._onUpdate(),this.emit("visibleChanged",t))}get culled(){return!(this.localDisplayStatus&4)}set culled(t){let e=t?0:4;(this.localDisplayStatus&4)!==e&&(this.parentRenderGroup&&(this.parentRenderGroup.structureDidChange=!0),this._updateFlags|=Dr,this.localDisplayStatus^=4,this._onUpdate())}get renderable(){return!!(this.localDisplayStatus&1)}set renderable(t){let e=t?1:0;(this.localDisplayStatus&1)!==e&&(this._updateFlags|=Dr,this.localDisplayStatus^=1,this.parentRenderGroup&&(this.parentRenderGroup.structureDidChange=!0),this._onUpdate())}get isRenderable(){return this.localDisplayStatus===7&&this.groupAlpha>0}destroy(t=!1){if(this.destroyed)return;this.destroyed=!0;let e;if(this.children.length&&(e=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._origin=null,this._skew=null,this.emit("destroyed",this),this.removeAllListeners(),(typeof t=="boolean"?t:t?.children)&&e)for(let s=0;s<e.length;++s)e[s].destroy(t);this.renderGroup?.destroy(),this.renderGroup=null}};z.mixin(mt,Tf,If,Xf,Hf,Nf,Mf,Rf,Vf,df,vf,Df,Cf)});var De,Ss=p(()=>{"use strict";De=(i=>(i[i.INTERACTION=50]="INTERACTION",i[i.HIGH=25]="HIGH",i[i.NORMAL=0]="NORMAL",i[i.LOW=-25]="LOW",i[i.UTILITY=-50]="UTILITY",i))(De||{})});var vi,sp=p(()=>{"use strict";vi=class{constructor(t,e=null,r=0,s=!1){this.next=null,this.previous=null,this._destroyed=!1,this._fn=t,this._context=e,this.priority=r,this._once=s}match(t,e=null){return this._fn===t&&this._context===e}emit(t){this._fn&&(this._context?this._fn.call(this._context,t):this._fn(t));let e=this.next;return this._once&&this.destroy(!0),this._destroyed&&(this.next=null),e}connect(t){this.previous=t,t.next&&(t.next.previous=this),this.next=t.next,t.next=this}destroy(t=!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 e=this.next;return this.next=t?null:e,this.previous=null,e}}});var np,qt,Si=p(()=>{Ss();sp();np=class fe{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 vi(null,null,1/0),this.deltaMS=1/fe.targetFPMS,this.elapsedMS=1/fe.targetFPMS,this._tick=t=>{this._requestId=null,this.started&&(this.update(t),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(t,e,r=De.NORMAL){return this._addListener(new vi(t,e,r))}addOnce(t,e,r=De.NORMAL){return this._addListener(new vi(t,e,r,!0))}_addListener(t){let e=this._head.next,r=this._head;if(!e)t.connect(r);else{for(;e;){if(t.priority>e.priority){t.connect(r);break}r=e,e=e.next}t.previous||t.connect(r)}return this._startIfPossible(),this}remove(t,e){let r=this._head.next;for(;r;)r.match(t,e)?r=r.destroy():r=r.next;return this._head.next||this._cancelIfNeeded(),this}get count(){if(!this._head)return 0;let t=0,e=this._head;for(;e=e.next;)t++;return t}start(){this.started||(this.started=!0,this._requestIfNeeded())}stop(){this.started&&(this.started=!1,this._cancelIfNeeded())}destroy(){if(!this._protected){this.stop();let t=this._head.next;for(;t;)t=t.destroy(!0);this._head.destroy(),this._head=null}}update(t=performance.now()){let e;if(t>this.lastTime){if(e=this.elapsedMS=t-this.lastTime,e>this._maxElapsedMS&&(e=this._maxElapsedMS),e*=this.speed,this._minElapsedMS){let n=t-this._lastFrame|0;if(n<this._minElapsedMS)return;this._lastFrame=t-n%this._minElapsedMS}this.deltaMS=e,this.deltaTime=this.deltaMS*fe.targetFPMS;let r=this._head,s=r.next;for(;s;)s=s.emit(this);r.next||this._cancelIfNeeded()}else this.deltaTime=this.deltaMS=this.elapsedMS=0;this.lastTime=t}get FPS(){return 1e3/this.elapsedMS}get minFPS(){return 1e3/this._maxElapsedMS}set minFPS(t){let e=Math.min(Math.max(0,t)/1e3,fe.targetFPMS);this._maxElapsedMS=1/e,this._minElapsedMS&&t>this.maxFPS&&(this.maxFPS=t)}get maxFPS(){return this._minElapsedMS?Math.round(1e3/this._minElapsedMS):0}set maxFPS(t){t===0?this._minElapsedMS=0:(t<this.minFPS&&(this.minFPS=t),this._minElapsedMS=1/(t/1e3))}static get shared(){if(!fe._shared){let t=fe._shared=new fe;t.autoStart=!0,t._protected=!0}return fe._shared}static get system(){if(!fe._system){let t=fe._system=new fe;t.autoStart=!0,t._protected=!0}return fe._system}};np.targetFPMS=.06;qt=np});var Ti,pc=p(()=>{Ss();Si();Ti=class{constructor(t){this._lastTransform="",this._observer=null,this._tickerAttached=!1,this.updateTranslation=()=>{if(!this._canvas)return;let e=this._canvas.getBoundingClientRect(),r=this._canvas.width,s=this._canvas.height,n=e.width/r*this._renderer.resolution,o=e.height/s*this._renderer.resolution,a=e.left,l=e.top,c=`translate(${a}px, ${l}px) scale(${n}, ${o})`;c!==this._lastTransform&&(this._domElement.style.transform=c,this._lastTransform=c)},this._domElement=t.domElement,this._renderer=t.renderer,!(globalThis.OffscreenCanvas&&this._renderer.canvas instanceof OffscreenCanvas)&&(this._canvas=this._renderer.canvas,this._attachObserver())}get canvas(){return this._canvas}ensureAttached(){!this._domElement.parentNode&&this._canvas.parentNode&&(this._canvas.parentNode.appendChild(this._domElement),this.updateTranslation())}_attachObserver(){"ResizeObserver"in globalThis?(this._observer&&(this._observer.disconnect(),this._observer=null),this._observer=new ResizeObserver(t=>{for(let e of t){if(e.target!==this._canvas)continue;let r=this.canvas.width,s=this.canvas.height,n=e.contentRect.width/r*this._renderer.resolution,o=e.contentRect.height/s*this._renderer.resolution;(this._lastScaleX!==n||this._lastScaleY!==o)&&(this.updateTranslation(),this._lastScaleX=n,this._lastScaleY=o)}}),this._observer.observe(this._canvas)):this._tickerAttached||qt.shared.add(this.updateTranslation,this,De.HIGH)}destroy(){this._observer?(this._observer.disconnect(),this._observer=null):this._tickerAttached&&qt.shared.remove(this.updateTranslation),this._domElement=null,this._renderer=null,this._canvas=null,this._tickerAttached=!1,this._lastTransform="",this._lastScaleX=null,this._lastScaleY=null}}});var ur,Go=p(()=>{Ee();ur=class i{constructor(t){this.bubbles=!0,this.cancelBubble=!0,this.cancelable=!1,this.composed=!1,this.defaultPrevented=!1,this.eventPhase=i.prototype.NONE,this.propagationStopped=!1,this.propagationImmediatelyStopped=!1,this.layer=new nt,this.page=new nt,this.NONE=0,this.CAPTURING_PHASE=1,this.AT_TARGET=2,this.BUBBLING_PHASE=3,this.manager=t}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(t,e,r){throw new Error("initEvent() is a legacy DOM API. It is not implemented in the Federated Events API.")}initUIEvent(t,e,r,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 lS(i){return function(t){return t.test(i)}}function Ts(i){var t={userAgent:"",platform:"",maxTouchPoints:0};!i&&typeof navigator<"u"?t={userAgent:navigator.userAgent,platform:navigator.platform,maxTouchPoints:navigator.maxTouchPoints||0}:typeof i=="string"?t.userAgent=i:i&&i.userAgent&&(t={userAgent:i.userAgent,platform:i.platform,maxTouchPoints:i.maxTouchPoints||0});var e=t.userAgent,r=e.split("[FBAN");typeof r[1]<"u"&&(e=r[0]),r=e.split("Twitter"),typeof r[1]<"u"&&(e=r[0]);var s=lS(e),n={apple:{phone:s(mc)&&!s(tr),ipod:s(op),tablet:!s(mc)&&(s(ap)||gp(t))&&!s(tr),universal:s(lp),device:(s(mc)||s(op)||s(ap)||s(lp)||gp(t))&&!s(tr)},amazon:{phone:s(wi),tablet:!s(wi)&&s(Fo),device:s(wi)||s(Fo)},android:{phone:!s(tr)&&s(wi)||!s(tr)&&s(gc),tablet:!s(tr)&&!s(wi)&&!s(gc)&&(s(Fo)||s(cp)),device:!s(tr)&&(s(wi)||s(Fo)||s(gc)||s(cp))||s(/\bokhttp\b/i)},windows:{phone:s(tr),tablet:s(hp),device:s(tr)||s(hp)},other:{blackberry:s(up),blackberry10:s(dp),opera:s(fp),firefox:s(mp),chrome:s(pp),device:s(up)||s(dp)||s(fp)||s(mp)||s(pp)},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 mc,op,ap,lp,gc,cp,wi,Fo,tr,hp,up,dp,fp,pp,mp,gp,xc=p(()=>{mc=/iPhone/i,op=/iPod/i,ap=/iPad/i,lp=/\biOS-universal(?:.+)Mac\b/i,gc=/\bAndroid(?:.+)Mobile\b/i,cp=/Android/i,wi=/(?:SD4930UR|\bSilk(?:.+)Mobile\b)/i,Fo=/Silk/i,tr=/Windows Phone/i,hp=/\bWindows(?:.+)ARM\b/i,up=/BlackBerry/i,dp=/BB10/i,fp=/Opera Mini/i,pp=/\b(CriOS|Chrome)(?:.+)Mobile/i,mp=/Mobile(?:.+)Firefox\b/i,gp=function(i){return typeof i<"u"&&i.platform==="MacIntel"&&typeof i.maxTouchPoints=="number"&&i.maxTouchPoints>1&&typeof MSStream>"u"}});var xp=p(()=>{xc();xc()});var cS,_p,yp=p(()=>{xp();cS=Ts.default??Ts,_p=cS(globalThis.navigator)});var hS,bp,uS,dS,vp,Sp,fS,pS,mS,_c,wp,Cp=p(()=>{pc();Go();P();yp();tc();hS=9,bp=100,uS=0,dS=0,vp=2,Sp=1,fS=-1e3,pS=-1e3,mS=2,_c=class Tp{constructor(t,e=_p){this._mobileInfo=e,this.debug=!1,this._activateOnTab=!0,this._deactivateOnMouseMove=!0,this._isActive=!1,this._isMobileAccessibility=!1,this._div=null,this._pools={},this._renderId=0,this._children=[],this._androidUpdateCount=0,this._androidUpdateFrequency=500,this._isRunningTests=!1,this._boundOnKeyDown=this._onKeyDown.bind(this),this._boundOnMouseMove=this._onMouseMove.bind(this),this._hookDiv=null,(e.tablet||e.phone)&&this._createTouchHook(),this._renderer=t}get isActive(){return this._isActive}get isMobileAccessibility(){return this._isMobileAccessibility}get hookDiv(){return this._hookDiv}get div(){return this._div}_createTouchHook(){let t=document.createElement("button");t.style.width=`${Sp}px`,t.style.height=`${Sp}px`,t.style.position="absolute",t.style.top=`${fS}px`,t.style.left=`${pS}px`,t.style.zIndex=mS.toString(),t.style.backgroundColor="#FF0000",t.title="select to enable accessibility for this content",t.addEventListener("focus",()=>{this._isMobileAccessibility=!0,this._activate(),this._destroyTouchHook()}),document.body.appendChild(t),this._hookDiv=t}_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.position="absolute",this._div.style.top=`${uS}px`,this._div.style.left=`${dS}px`,this._div.style.pointerEvents="none",this._div.style.zIndex=vp.toString(),this._canvasObserver=new Ti({domElement:this._div,renderer:this._renderer})),this._activateOnTab&&globalThis.addEventListener("keydown",this._boundOnKeyDown,!1),this._deactivateOnMouseMove&&globalThis.document.addEventListener("mousemove",this._boundOnMouseMove,!0);let t=this._renderer.view.canvas;if(t.parentNode)this._canvasObserver.ensureAttached(),this._initAccessibilitySetup();else{let e=new MutationObserver(()=>{t.parentNode&&(e.disconnect(),this._canvasObserver.ensureAttached(),this._initAccessibilitySetup())});e.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._boundOnMouseMove,!0),this._activateOnTab&&globalThis.addEventListener("keydown",this._boundOnKeyDown,!1),this._renderer.runners.postrender.remove(this);for(let t of this._children)t._accessibleDiv?.parentNode&&(t._accessibleDiv.parentNode.removeChild(t._accessibleDiv),t._accessibleDiv=null),t._accessibleActive=!1;for(let t in this._pools)this._pools[t].forEach(r=>{r.parentNode&&r.parentNode.removeChild(r)}),delete this._pools[t];this._div?.parentNode&&this._div.parentNode.removeChild(this._div),this._pools={},this._children=[]}}_updateAccessibleObjects(t){if(!t.visible||!t.accessibleChildren)return;t.accessible&&(t._accessibleActive||this._addChild(t),t._renderId=this._renderId);let e=t.children;if(e)for(let r=0;r<e.length;r++)this._updateAccessibleObjects(e[r])}init(t){let r={accessibilityOptions:{...Tp.defaultOptions,...t?.accessibilityOptions||{}}};this.debug=r.accessibilityOptions.debug,this._activateOnTab=r.accessibilityOptions.activateOnTab,this._deactivateOnMouseMove=r.accessibilityOptions.deactivateOnMouseMove,r.accessibilityOptions.enabledByDefault&&this._activate(),this._renderer.runners.postrender.remove(this)}postrender(){let t=performance.now();if(this._mobileInfo.android.device&&t<this._androidUpdateCount||(this._androidUpdateCount=t+this._androidUpdateFrequency,(!this._renderer.renderingToScreen||!this._renderer.view.canvas)&&!this._isRunningTests))return;let e=new Set;if(this._renderer.lastObjectRendered){this._updateAccessibleObjects(this._renderer.lastObjectRendered);for(let r of this._children)r._renderId===this._renderId&&e.add(this._children.indexOf(r))}for(let r=this._children.length-1;r>=0;r--){let s=this._children[r];e.has(r)||(s._accessibleDiv&&s._accessibleDiv.parentNode&&(s._accessibleDiv.parentNode.removeChild(s._accessibleDiv),this._getPool(s.accessibleType).push(s._accessibleDiv),s._accessibleDiv=null),s._accessibleActive=!1,So(this._children,r,1))}this._renderer.renderingToScreen&&this._canvasObserver.ensureAttached();for(let r=0;r<this._children.length;r++){let s=this._children[r];if(!s._accessibleActive||!s._accessibleDiv)continue;let n=s._accessibleDiv,o=s.hitArea||s.getBounds().rectangle;if(s.hitArea){let a=s.worldTransform;n.style.left=`${a.tx+o.x*a.a}px`,n.style.top=`${a.ty+o.y*a.d}px`,n.style.width=`${o.width*a.a}px`,n.style.height=`${o.height*a.d}px`}else this._capHitArea(o),n.style.left=`${o.x}px`,n.style.top=`${o.y}px`,n.style.width=`${o.width}px`,n.style.height=`${o.height}px`}this._renderId++}_updateDebugHTML(t){t.innerHTML=`type: ${t.type}</br> title : ${t.title}</br> tabIndex: ${t.tabIndex}`}_capHitArea(t){t.x<0&&(t.width+=t.x,t.x=0),t.y<0&&(t.height+=t.y,t.y=0);let{width:e,height:r}=this._renderer;t.x+t.width>e&&(t.width=e-t.x),t.y+t.height>r&&(t.height=r-t.y)}_addChild(t){let r=this._getPool(t.accessibleType).pop();r?(r.innerHTML="",r.removeAttribute("title"),r.removeAttribute("aria-label"),r.tabIndex=0):(t.accessibleType==="button"?r=document.createElement("button"):(r=document.createElement(t.accessibleType),r.style.cssText=`
4
+ `),n?(console.groupCollapsed("%cPixiJS Deprecation Warning: %c%s","color:#614108;background:#fffbe6","font-weight:normal;color:#614108;background:#fffbe6",s),console.warn(r),console.groupEnd()):(console.warn("PixiJS Deprecation Warning: ",s),console.warn(r))),yf.add(t)});Object.defineProperties(O,{quiet:{get:()=>gi.quiet,set:i=>{gi.quiet=i},enumerable:!0,configurable:!1},noColor:{get:()=>gi.noColor,set:i=>{gi.noColor=i},enumerable:!0,configurable:!1}})});function L(...i){Ql!==vf&&(Ql++,Ql===vf?console.warn("PixiJS Warning: too many warnings, no more warnings will be reported to the console by PixiJS."):console.warn("PixiJS Warning: ",...i))}var Ql,vf,ht=p(()=>{"use strict";Ql=0,vf=500});var ye,Pr=p(()=>{"use strict";ye={_registeredResources:new Set,register(i){this._registeredResources.add(i)},unregister(i){this._registeredResources.delete(i)},release(){this._registeredResources.forEach(i=>i.clear())},get registeredCount(){return this._registeredResources.size},isRegistered(i){return this._registeredResources.has(i)},reset(){this._registeredResources.clear()}}});var So,Sf=p(()=>{"use strict";So=class{constructor(t,e){this._pool=[],this._count=0,this._index=0,this._classType=t,e&&this.prepopulate(e)}prepopulate(t){for(let e=0;e<t;e++)this._pool[this._index++]=new this._classType;this._count+=t}get(t){let e;return this._index>0?e=this._pool[--this._index]:(e=new this._classType,this._count++),e.init?.(t),e}return(t){t.reset?.(),this._pool[this._index++]=t}get totalSize(){return this._count}get totalFree(){return this._index}get totalUsed(){return this._count-this._index}clear(){if(this._pool.length>0&&this._pool[0].destroy)for(let t=0;t<this._index;t++)this._pool[t].destroy();this._pool.length=0,this._count=0,this._index=0}}});var Jl,bt,Ke=p(()=>{Pr();Sf();Jl=class{constructor(){this._poolsByClass=new Map}prepopulate(t,e){this.getPool(t).prepopulate(e)}get(t,e){return this.getPool(t).get(e)}return(t){this.getPool(t.constructor).return(t)}getPool(t){return this._poolsByClass.has(t)||this._poolsByClass.set(t,new So(t)),this._poolsByClass.get(t)}stats(){let t={};return this._poolsByClass.forEach(e=>{let r=t[e._classType.name]?e._classType.name+e._classType.ID:e._classType.name;t[r]={free:e.totalFree,used:e.totalUsed,size:e.totalSize}}),t}clear(){this._poolsByClass.forEach(t=>t.clear()),this._poolsByClass.clear()}},bt=new Jl;ye.register(bt)});var Tf,wf=p(()=>{yt();Tf={get isCachedAsTexture(){return!!this.renderGroup?.isCachedAsTexture},cacheAsTexture(i){typeof i=="boolean"&&i===!1?this.disableRenderGroup():(this.enableRenderGroup(),this.renderGroup.enableCacheAsTexture(i===!0?{}:i))},updateCacheTexture(){this.renderGroup?.updateCacheTexture()},get cacheAsBitmap(){return this.isCachedAsTexture},set cacheAsBitmap(i){O("v8.6.0","cacheAsBitmap is deprecated, use cacheAsTexture instead."),this.cacheAsTexture(i)}}});function To(i,t,e){let r=i.length,s;if(t>=r||e===0)return;e=t+e>r?r-t:e;let n=r-e;for(s=t;s<n;++s)i[s]=i[s+e];i.length=n}var tc=p(()=>{"use strict"});var Cf,Ef=p(()=>{tc();yt();Cf={allowChildren:!0,removeChildren(i=0,t){let e=t??this.children.length,r=e-i,s=[];if(r>0&&r<=e){for(let o=e-1;o>=i;o--){let a=this.children[o];a&&(s.push(a),a.parent=null)}To(this.children,i,e);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(r===0&&this.children.length===0)return s;throw new RangeError("removeChildren: numeric values are outside the acceptable range.")},removeChildAt(i){let t=this.getChildAt(i);return this.removeChild(t)},getChildAt(i){if(i<0||i>=this.children.length)throw new Error(`getChildAt: Index (${i}) does not exist.`);return this.children[i]},setChildIndex(i,t){if(t<0||t>=this.children.length)throw new Error(`The index ${t} supplied is out of bounds ${this.children.length}`);this.getChildIndex(i),this.addChildAt(i,t)},getChildIndex(i){let t=this.children.indexOf(i);if(t===-1)throw new Error("The supplied Container must be a child of the caller");return t},addChildAt(i,t){this.allowChildren||O(rt,"addChildAt: Only Containers will be allowed to add children in v8.0.0");let{children:e}=this;if(t<0||t>e.length)throw new Error(`${i}addChildAt: The index ${t} supplied is out of bounds ${e.length}`);let r=i.parent===this;if(i.parent){let n=i.parent.children.indexOf(i);if(r){if(n===t)return i;i.parent.children.splice(n,1)}else i.removeFromParent()}t===e.length?e.push(i):e.splice(t,0,i);let s=this.renderGroup||this.parentRenderGroup;return this.sortableChildren&&(this.sortDirty=!0),r?(s&&(s.structureDidChange=!0),i):(i.parent=this,i.didChange=!0,i._updateFlags=15,s&&s.addChild(i),this.emit("childAdded",i,this,t),i.emit("added",this),i)},swapChildren(i,t){if(i===t)return;let e=this.getChildIndex(i),r=this.getChildIndex(t);this.children[e]=t,this.children[r]=i;let s=this.renderGroup||this.parentRenderGroup;s&&(s.structureDidChange=!0),this._didContainerChangeTick++},removeFromParent(){this.parent?.removeChild(this)},reparentChild(...i){return i.length===1?this.reparentChildAt(i[0],this.children.length):(i.forEach(t=>this.reparentChildAt(t,this.children.length)),i[0])},reparentChildAt(i,t){if(i.parent===this)return this.setChildIndex(i,t),i;let e=i.worldTransform.clone();i.removeFromParent(),this.addChildAt(i,t);let r=this.worldTransform.clone();return r.invert(),e.prepend(r),i.setFromMatrix(e),i},replaceChild(i,t){i.updateLocalTransform(),this.addChildAt(t,this.getChildIndex(i)),t.setFromMatrix(i.localTransform),t.updateLocalTransform(),this.removeChild(i)}}});var Pf,Mf=p(()=>{"use strict";Pf={collectRenderables(i,t,e){this.parentRenderLayer&&this.parentRenderLayer!==e||this.globalDisplayStatus<7||!this.includeInBuild||(this.sortableChildren&&this.sortChildren(),this.isSimple?this.collectRenderablesSimple(i,t,e):this.renderGroup?t.renderPipes.renderGroup.addRenderGroup(this.renderGroup,i):this.collectRenderablesWithEffects(i,t,e))},collectRenderablesSimple(i,t,e){let r=this.children,s=r.length;for(let n=0;n<s;n++)r[n].collectRenderables(i,t,e)},collectRenderablesWithEffects(i,t,e){let{renderPipes:r}=t;for(let s=0;s<this.effects.length;s++){let n=this.effects[s];r[n.pipe].push(n,this,i)}this.collectRenderablesSimple(i,t,e);for(let s=this.effects.length-1;s>=0;s--){let n=this.effects[s];r[n.pipe].pop(n,this,i)}}}});var Ze,wo=p(()=>{"use strict";Ze=class{constructor(){this.pipe="filter",this.priority=1}destroy(){for(let t=0;t<this.filters.length;t++)this.filters[t].destroy();this.filters=null,this.filterArea=null}}});var ec,Co,Af=p(()=>{P();Ke();ec=class{constructor(){this._effectClasses=[],this._tests=[],this._initialized=!1}init(){this._initialized||(this._initialized=!0,this._effectClasses.forEach(t=>{this.add({test:t.test,maskClass:t})}))}add(t){this._tests.push(t)}getMaskEffect(t){this._initialized||this.init();for(let e=0;e<this._tests.length;e++){let r=this._tests[e];if(r.test(t))return bt.get(r.maskClass,t)}return t}returnMaskEffect(t){bt.return(t)}},Co=new ec;z.handleByList(y.MaskEffect,Co._effectClasses)});var Rf,kf=p(()=>{wo();Af();Rf={_maskEffect:null,_maskOptions:{inverse:!1,channel:"red"},_filterEffect:null,effects:[],_markStructureAsChanged(){let i=this.renderGroup||this.parentRenderGroup;i&&(i.structureDidChange=!0)},addEffect(i){this.effects.indexOf(i)===-1&&(this.effects.push(i),this.effects.sort((e,r)=>e.priority-r.priority),this._markStructureAsChanged(),this._updateIsSimple())},removeEffect(i){let t=this.effects.indexOf(i);t!==-1&&(this.effects.splice(t,1),this._markStructureAsChanged(),this._updateIsSimple())},set mask(i){let t=this._maskEffect;t?.mask!==i&&(t&&(this.removeEffect(t),Co.returnMaskEffect(t),this._maskEffect=null),i!=null&&(this._maskEffect=Co.getMaskEffect(i),this.addEffect(this._maskEffect)))},get mask(){return this._maskEffect?.mask},setMask(i){this._maskOptions={...this._maskOptions,...i},i.mask&&(this.mask=i.mask),this._markStructureAsChanged()},set filters(i){!Array.isArray(i)&&i&&(i=[i]);let t=this._filterEffect||(this._filterEffect=new Ze);i=i;let e=i?.length>0,r=t.filters?.length>0,s=e!==r;i=Array.isArray(i)?i.slice(0):i,t.filters=Object.freeze(i),s&&(e?this.addEffect(t):(this.removeEffect(t),t.filters=i??null))},get filters(){return this._filterEffect?.filters},set filterArea(i){this._filterEffect||(this._filterEffect=new Ze),this._filterEffect.filterArea=i},get filterArea(){return this._filterEffect?.filterArea}}});var Bf,If=p(()=>{yt();Bf={label:null,get name(){return O(rt,"Container.name property has been removed, use Container.label instead"),this.label},set name(i){O(rt,"Container.name property has been removed, use Container.label instead"),this.label=i},getChildByName(i,t=!1){return this.getChildByLabel(i,t)},getChildByLabel(i,t=!1){let e=this.children;for(let r=0;r<e.length;r++){let s=e[r];if(s.label===i||i instanceof RegExp&&i.test(s.label))return s}if(t)for(let r=0;r<e.length;r++){let n=e[r].getChildByLabel(i,!0);if(n)return n}return null},getChildrenByLabel(i,t=!1,e=[]){let r=this.children;for(let s=0;s<r.length;s++){let n=r[s];(n.label===i||i instanceof RegExp&&i.test(n.label))&&e.push(n)}if(t)for(let s=0;s<r.length;s++)r[s].getChildrenByLabel(i,!0,e);return e}}});var Eo,J,Yt=p(()=>{Ee();Eo=[new nt,new nt,new nt,new nt],J=class i{constructor(t=0,e=0,r=0,s=0){this.type="rectangle",this.x=Number(t),this.y=Number(e),this.width=Number(r),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 i(0,0,0,0)}clone(){return new i(this.x,this.y,this.width,this.height)}copyFromBounds(t){return this.x=t.minX,this.y=t.minY,this.width=t.maxX-t.minX,this.height=t.maxY-t.minY,this}copyFrom(t){return this.x=t.x,this.y=t.y,this.width=t.width,this.height=t.height,this}copyTo(t){return t.copyFrom(this),t}contains(t,e){return this.width<=0||this.height<=0?!1:t>=this.x&&t<this.x+this.width&&e>=this.y&&e<this.y+this.height}strokeContains(t,e,r,s=.5){let{width:n,height:o}=this;if(n<=0||o<=0)return!1;let a=this.x,l=this.y,c=r*(1-s),h=r-c,u=a-c,d=a+n+c,f=l-c,m=l+o+c,g=a+h,_=a+n-h,x=l+h,b=l+o-h;return t>=u&&t<=d&&e>=f&&e<=m&&!(t>g&&t<_&&e>x&&e<b)}intersects(t,e){if(!e){let B=this.x<t.x?t.x:this.x;if((this.right>t.right?t.right:this.right)<=B)return!1;let M=this.y<t.y?t.y:this.y;return(this.bottom>t.bottom?t.bottom:this.bottom)>M}let r=this.left,s=this.right,n=this.top,o=this.bottom;if(s<=r||o<=n)return!1;let a=Eo[0].set(t.left,t.top),l=Eo[1].set(t.left,t.bottom),c=Eo[2].set(t.right,t.top),h=Eo[3].set(t.right,t.bottom);if(c.x<=a.x||l.y<=a.y)return!1;let u=Math.sign(e.a*e.d-e.b*e.c);if(u===0||(e.apply(a,a),e.apply(l,l),e.apply(c,c),e.apply(h,h),Math.max(a.x,l.x,c.x,h.x)<=r||Math.min(a.x,l.x,c.x,h.x)>=s||Math.max(a.y,l.y,c.y,h.y)<=n||Math.min(a.y,l.y,c.y,h.y)>=o))return!1;let d=u*(l.y-a.y),f=u*(a.x-l.x),m=d*r+f*n,g=d*s+f*n,_=d*r+f*o,x=d*s+f*o;if(Math.max(m,g,_,x)<=d*a.x+f*a.y||Math.min(m,g,_,x)>=d*h.x+f*h.y)return!1;let b=u*(a.y-c.y),v=u*(c.x-a.x),S=b*r+v*n,T=b*s+v*n,w=b*r+v*o,E=b*s+v*o;return!(Math.max(S,T,w,E)<=b*a.x+v*a.y||Math.min(S,T,w,E)>=b*h.x+v*h.y)}pad(t=0,e=t){return this.x-=t,this.y-=e,this.width+=t*2,this.height+=e*2,this}fit(t){let e=Math.max(this.x,t.x),r=Math.min(this.x+this.width,t.x+t.width),s=Math.max(this.y,t.y),n=Math.min(this.y+this.height,t.y+t.height);return this.x=e,this.width=Math.max(r-e,0),this.y=s,this.height=Math.max(n-s,0),this}ceil(t=1,e=.001){let r=Math.ceil((this.x+this.width-e)*t)/t,s=Math.ceil((this.y+this.height-e)*t)/t;return this.x=Math.floor((this.x+e)*t)/t,this.y=Math.floor((this.y+e)*t)/t,this.width=r-this.x,this.height=s-this.y,this}scale(t,e=t){return this.x*=t,this.y*=e,this.width*=t,this.height*=e,this}enlarge(t){let e=Math.min(this.x,t.x),r=Math.max(this.x+this.width,t.x+t.width),s=Math.min(this.y,t.y),n=Math.max(this.y+this.height,t.y+t.height);return this.x=e,this.width=r-e,this.y=s,this.height=n-s,this}getBounds(t){return t||(t=new i),t.copyFrom(this),t}containsRect(t){if(this.width<=0||this.height<=0)return!1;let e=t.x,r=t.y,s=t.x+t.width,n=t.y+t.height;return e>=this.x&&e<this.x+this.width&&r>=this.y&&r<this.y+this.height&&s>=this.x&&s<=this.x+this.width&&n>=this.y&&n<=this.y+this.height}set(t,e,r,s){return this.x=t,this.y=e,this.width=r,this.height=s,this}toString(){return`[pixi.js/math:Rectangle x=${this.x} y=${this.y} width=${this.width} height=${this.height}]`}}});var Gf,dt,ie=p(()=>{ot();Yt();Gf=new k,dt=class i{constructor(t=1/0,e=1/0,r=-1/0,s=-1/0){this.minX=1/0,this.minY=1/0,this.maxX=-1/0,this.maxY=-1/0,this.matrix=Gf,this.minX=t,this.minY=e,this.maxX=r,this.maxY=s}isEmpty(){return this.minX>this.maxX||this.minY>this.maxY}get rectangle(){this._rectangle||(this._rectangle=new J);let t=this._rectangle;return this.minX>this.maxX||this.minY>this.maxY?(t.x=0,t.y=0,t.width=0,t.height=0):t.copyFromBounds(this),t}clear(){return this.minX=1/0,this.minY=1/0,this.maxX=-1/0,this.maxY=-1/0,this.matrix=Gf,this}set(t,e,r,s){this.minX=t,this.minY=e,this.maxX=r,this.maxY=s}addFrame(t,e,r,s,n){n||(n=this.matrix);let o=n.a,a=n.b,l=n.c,c=n.d,h=n.tx,u=n.ty,d=this.minX,f=this.minY,m=this.maxX,g=this.maxY,_=o*t+l*e+h,x=a*t+c*e+u;_<d&&(d=_),x<f&&(f=x),_>m&&(m=_),x>g&&(g=x),_=o*r+l*e+h,x=a*r+c*e+u,_<d&&(d=_),x<f&&(f=x),_>m&&(m=_),x>g&&(g=x),_=o*t+l*s+h,x=a*t+c*s+u,_<d&&(d=_),x<f&&(f=x),_>m&&(m=_),x>g&&(g=x),_=o*r+l*s+h,x=a*r+c*s+u,_<d&&(d=_),x<f&&(f=x),_>m&&(m=_),x>g&&(g=x),this.minX=d,this.minY=f,this.maxX=m,this.maxY=g}addRect(t,e){this.addFrame(t.x,t.y,t.x+t.width,t.y+t.height,e)}addBounds(t,e){this.addFrame(t.minX,t.minY,t.maxX,t.maxY,e)}addBoundsMask(t){this.minX=this.minX>t.minX?this.minX:t.minX,this.minY=this.minY>t.minY?this.minY:t.minY,this.maxX=this.maxX<t.maxX?this.maxX:t.maxX,this.maxY=this.maxY<t.maxY?this.maxY:t.maxY}applyMatrix(t){let e=this.minX,r=this.minY,s=this.maxX,n=this.maxY,{a:o,b:a,c:l,d:c,tx:h,ty:u}=t,d=o*e+l*r+h,f=a*e+c*r+u;this.minX=d,this.minY=f,this.maxX=d,this.maxY=f,d=o*s+l*r+h,f=a*s+c*r+u,this.minX=d<this.minX?d:this.minX,this.minY=f<this.minY?f:this.minY,this.maxX=d>this.maxX?d:this.maxX,this.maxY=f>this.maxY?f:this.maxY,d=o*e+l*n+h,f=a*e+c*n+u,this.minX=d<this.minX?d:this.minX,this.minY=f<this.minY?f:this.minY,this.maxX=d>this.maxX?d:this.maxX,this.maxY=f>this.maxY?f:this.maxY,d=o*s+l*n+h,f=a*s+c*n+u,this.minX=d<this.minX?d:this.minX,this.minY=f<this.minY?f:this.minY,this.maxX=d>this.maxX?d:this.maxX,this.maxY=f>this.maxY?f:this.maxY}fit(t){return this.minX<t.left&&(this.minX=t.left),this.maxX>t.right&&(this.maxX=t.right),this.minY<t.top&&(this.minY=t.top),this.maxY>t.bottom&&(this.maxY=t.bottom),this}fitBounds(t,e,r,s){return this.minX<t&&(this.minX=t),this.maxX>e&&(this.maxX=e),this.minY<r&&(this.minY=r),this.maxY>s&&(this.maxY=s),this}pad(t,e=t){return this.minX-=t,this.maxX+=t,this.minY-=e,this.maxY+=e,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 i(this.minX,this.minY,this.maxX,this.maxY)}scale(t,e=t){return this.minX*=t,this.minY*=e,this.maxX*=t,this.maxY*=e,this}get x(){return this.minX}set x(t){let e=this.maxX-this.minX;this.minX=t,this.maxX=t+e}get y(){return this.minY}set y(t){let e=this.maxY-this.minY;this.minY=t,this.maxY=t+e}get width(){return this.maxX-this.minX}set width(t){this.maxX=this.minX+t}get height(){return this.maxY-this.minY}set height(t){this.maxY=this.minY+t}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(t,e,r,s){let n=this.minX,o=this.minY,a=this.maxX,l=this.maxY;s||(s=this.matrix);let c=s.a,h=s.b,u=s.c,d=s.d,f=s.tx,m=s.ty;for(let g=e;g<r;g+=2){let _=t[g],x=t[g+1],b=c*_+u*x+f,v=h*_+d*x+m;n=b<n?b:n,o=v<o?v:o,a=b>a?b:a,l=v>l?v:l}this.minX=n,this.minY=o,this.maxX=a,this.maxY=l}containsPoint(t,e){return this.minX<=t&&this.minY<=e&&this.maxX>=t&&this.maxY>=e}toString(){return`[pixi.js:Bounds minX=${this.minX} minY=${this.minY} maxX=${this.maxX} maxY=${this.maxY} width=${this.width} height=${this.height}]`}copyFrom(t){return this.minX=t.minX,this.minY=t.minY,this.maxX=t.maxX,this.maxY=t.maxY,this}}});var Ut,fe,Mr=p(()=>{ot();Ke();ie();Ut=bt.getPool(k),fe=bt.getPool(dt)});var nS,Ff,Uf=p(()=>{ot();ie();Mr();nS=new k,Ff={getFastGlobalBounds(i,t){t||(t=new dt),t.clear(),this._getGlobalBoundsRecursive(!!i,t,this.parentRenderLayer),t.isValid||t.set(0,0,0,0);let e=this.renderGroup||this.parentRenderGroup;return t.applyMatrix(e.worldTransform),t},_getGlobalBoundsRecursive(i,t,e){let r=t;if(i&&this.parentRenderLayer&&this.parentRenderLayer!==e||this.localDisplayStatus!==7||!this.measurable)return;let s=!!this.effects.length;if((this.renderGroup||s)&&(r=fe.get().clear()),this.boundsArea)t.addRect(this.boundsArea,this.worldTransform);else{if(this.renderPipeId){let o=this.bounds;r.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(i,r,e)}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,r.applyMatrix(o.worldTransform)),this.effects[a].addBounds(r,!0));n&&r.applyMatrix(o.worldTransform.copyTo(nS).invert()),t.addBounds(r),fe.return(r)}else this.renderGroup&&(t.addBounds(r,this.relativeGroupTransform),fe.return(r))}}});function xi(i,t,e){e.clear();let r,s;return i.parent?t?r=i.parent.worldTransform:(s=Ut.get().identity(),r=Po(i,s)):r=k.IDENTITY,Df(i,e,r,t),s&&Ut.return(s),e.isValid||e.set(0,0,0,0),e}function Df(i,t,e,r){if(!i.visible||!i.measurable)return;let s;r?s=i.worldTransform:(i.updateLocalTransform(),s=Ut.get(),s.appendFrom(i.localTransform,e));let n=t,o=!!i.effects.length;if(o&&(t=fe.get().clear()),i.boundsArea)t.addRect(i.boundsArea,s);else{let a=i.bounds;a&&!a.isEmpty()&&(t.matrix=s,t.addBounds(a));for(let l=0;l<i.children.length;l++)Df(i.children[l],t,s,r)}if(o){for(let a=0;a<i.effects.length;a++)i.effects[a].addBounds?.(t);n.addBounds(t,k.IDENTITY),fe.return(t)}r||Ut.return(s)}function Po(i,t){let e=i.parent;return e&&(Po(e,t),e.updateLocalTransform(),t.append(e.localTransform)),t}var _s=p(()=>{ot();Mr()});function Ue(i,t){if(i===16777215||!t)return t;if(t===16777215||!i)return i;let e=i>>16&255,r=i>>8&255,s=i&255,n=t>>16&255,o=t>>8&255,a=t&255,l=e*n/255|0,c=r*o/255|0,h=s*a/255|0;return(l<<16)+(c<<8)+h}var ys=p(()=>{"use strict"});function _i(i,t){return i===Lf?t:t===Lf?i:Ue(i,t)}var Lf,rc=p(()=>{ys();Lf=16777215});function Qe(i){return((i&255)<<16)+(i&65280)+(i>>16&255)}var Of,Mo=p(()=>{ot();_s();Mr();rc();Of={getGlobalAlpha(i){if(i)return this.renderGroup?this.renderGroup.worldAlpha:this.parentRenderGroup?this.parentRenderGroup.worldAlpha*this.alpha:this.alpha;let t=this.alpha,e=this.parent;for(;e;)t*=e.alpha,e=e.parent;return t},getGlobalTransform(i=new k,t){if(t)return i.copyFrom(this.worldTransform);this.updateLocalTransform();let e=Po(this,Ut.get().identity());return i.appendFrom(this.localTransform,e),Ut.return(e),i},getGlobalTint(i){if(i)return this.renderGroup?Qe(this.renderGroup.worldColor):this.parentRenderGroup?Qe(_i(this.localColor,this.parentRenderGroup.worldColor)):this.tint;let t=this.localColor,e=this.parent;for(;e;)t=_i(t,e.localColor),e=e.parent;return Qe(t)}}});function yi(i,t,e){return t.clear(),e||(e=k.IDENTITY),Nf(i,t,e,i,!0),t.isValid||t.set(0,0,0,0),t}function Nf(i,t,e,r,s){let n;if(s)n=Ut.get(),n=e.copyTo(n);else{if(!i.visible||!i.measurable)return;i.updateLocalTransform();let l=i.localTransform;n=Ut.get(),n.appendFrom(l,e)}let o=t,a=!!i.effects.length;if(a&&(t=fe.get().clear()),i.boundsArea)t.addRect(i.boundsArea,n);else{i.renderPipeId&&(t.matrix=n,t.addBounds(i.bounds));let l=i.children;for(let c=0;c<l.length;c++)Nf(l[c],t,n,r,!1)}if(a){for(let l=0;l<i.effects.length;l++)i.effects[l].addLocalBounds?.(t,r);o.addBounds(t,k.IDENTITY),fe.return(t)}Ut.return(n)}var Ao=p(()=>{ot();Mr()});function ic(i,t){let e=i.children;for(let r=0;r<e.length;r++){let s=e[r],n=s.uid,o=(s._didViewChangeTick&65535)<<16|s._didContainerChangeTick&65535,a=t.index;(t.data[a]!==n||t.data[a+1]!==o)&&(t.data[t.index]=n,t.data[t.index+1]=o,t.didChange=!0),t.index=a+2,s.children.length&&ic(s,t)}return t.didChange}var zf=p(()=>{"use strict"});var oS,Hf,Wf=p(()=>{ot();ie();_s();Ao();zf();oS=new k,Hf={_localBoundsCacheId:-1,_localBoundsCacheData:null,_setWidth(i,t){let e=Math.sign(this.scale.x)||1;t!==0?this.scale.x=i/t*e:this.scale.x=e},_setHeight(i,t){let e=Math.sign(this.scale.y)||1;t!==0?this.scale.y=i/t*e:this.scale.y=e},getLocalBounds(){this._localBoundsCacheData||(this._localBoundsCacheData={data:[],index:1,didChange:!1,localBounds:new dt});let i=this._localBoundsCacheData;return i.index=1,i.didChange=!1,i.data[0]!==this._didViewChangeTick&&(i.didChange=!0,i.data[0]=this._didViewChangeTick),ic(this,i),i.didChange&&yi(this,i.localBounds,oS),i.localBounds},getBounds(i,t){return xi(this,i,t||new dt)}}});var Vf,jf=p(()=>{"use strict";Vf={_onRender:null,set onRender(i){let t=this.renderGroup||this.parentRenderGroup;if(!i){this._onRender&&t?.removeOnRender(this),this._onRender=null;return}this._onRender||t?.addOnRender(this),this._onRender=i},get onRender(){return this._onRender}}});function aS(i,t){return i._zIndex-t._zIndex}var Xf,Yf=p(()=>{"use strict";Xf={_zIndex:0,sortDirty:!1,sortableChildren:!1,get zIndex(){return this._zIndex},set zIndex(i){this._zIndex!==i&&(this._zIndex=i,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(aS))}}});var $f,qf=p(()=>{Ee();Mr();$f={getGlobalPosition(i=new nt,t=!1){return this.parent?this.parent.toGlobal(this._position,i,t):(i.x=this._position.x,i.y=this._position.y),i},toGlobal(i,t,e=!1){let r=this.getGlobalTransform(Ut.get(),e);return t=r.apply(i,t),Ut.return(r),t},toLocal(i,t,e,r){t&&(i=t.toGlobal(i,e,r));let s=this.getGlobalTransform(Ut.get(),r);return e=s.applyInverse(i,e),Ut.return(s),e}}});var hr,Ro=p(()=>{Ft();hr=class{constructor(){this.uid=$("instructionSet"),this.instructions=[],this.instructionSize=0,this.renderables=[],this.gcTick=0}reset(){this.instructionSize=0}destroy(){this.instructions.length=0,this.renderables.length=0,this.renderPipes=null,this.gcTick=0}add(t){this.instructions[this.instructionSize++]=t}log(){this.instructions.length=this.instructionSize,console.table(this.instructions,["type","action"])}}});function Je(i){return i+=i===0?1:0,--i,i|=i>>>1,i|=i>>>2,i|=i>>>4,i|=i>>>8,i|=i>>>16,i+1}function sc(i){return!(i&i-1)&&!!i}var bs=p(()=>{"use strict"});function ko(i){let t={};for(let e in i)i[e]!==void 0&&(t[e]=i[e]);return t}var nc=p(()=>{"use strict"});function lS(i){let t=Kf[i];return t===void 0&&(Kf[i]=$("resource")),t}var Kf,Zf,ce,Ar=p(()=>{Ht();Ft();yt();Kf=Object.create(null);Zf=class Qf extends ut{constructor(t={}){super(),this._resourceType="textureSampler",this._touched=0,this._maxAnisotropy=1,this.destroyed=!1,t={...Qf.defaultOptions,...t},this.addressMode=t.addressMode,this.addressModeU=t.addressModeU??this.addressModeU,this.addressModeV=t.addressModeV??this.addressModeV,this.addressModeW=t.addressModeW??this.addressModeW,this.scaleMode=t.scaleMode,this.magFilter=t.magFilter??this.magFilter,this.minFilter=t.minFilter??this.minFilter,this.mipmapFilter=t.mipmapFilter??this.mipmapFilter,this.lodMinClamp=t.lodMinClamp,this.lodMaxClamp=t.lodMaxClamp,this.compare=t.compare,this.maxAnisotropy=t.maxAnisotropy??1}set addressMode(t){this.addressModeU=t,this.addressModeV=t,this.addressModeW=t}get addressMode(){return this.addressModeU}set wrapMode(t){O(rt,"TextureStyle.wrapMode is now TextureStyle.addressMode"),this.addressMode=t}get wrapMode(){return this.addressMode}set scaleMode(t){this.magFilter=t,this.minFilter=t,this.mipmapFilter=t}get scaleMode(){return this.magFilter}set maxAnisotropy(t){this._maxAnisotropy=Math.min(t,16),this._maxAnisotropy>1&&(this.scaleMode="linear")}get maxAnisotropy(){return this._maxAnisotropy}get _resourceId(){return this._sharedResourceId||this._generateResourceId()}update(){this._sharedResourceId=null,this.emit("change",this)}_generateResourceId(){let t=`${this.addressModeU}-${this.addressModeV}-${this.addressModeW}-${this.magFilter}-${this.minFilter}-${this.mipmapFilter}-${this.lodMinClamp}-${this.lodMaxClamp}-${this.compare}-${this._maxAnisotropy}`;return this._sharedResourceId=lS(t),this._resourceId}destroy(){this.destroyed=!0,this.emit("destroy",this),this.emit("change",this),this.removeAllListeners()}};Zf.defaultOptions={addressMode:"clamp-to-edge",scaleMode:"linear"};ce=Zf});var Jf,st,$t=p(()=>{Ht();bs();nc();Ft();Ar();Jf=class tp extends ut{constructor(t={}){super(),this.options=t,this._gpuData=Object.create(null),this._gcLastUsed=-1,this.uid=$("textureSource"),this._resourceType="textureSource",this._resourceId=$("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.viewDimension="2d",this.arrayLayerCount=1,this._ownsStyle=!1,this.antialias=!1,this.transient=!1,this._touched=0,this._batchTick=-1,this._textureBindLocation=-1,t={...tp.defaultOptions,...t},this.label=t.label??"",this.resource=t.resource,this.autoGarbageCollect=t.autoGarbageCollect,this._resolution=t.resolution,t.width?this.pixelWidth=t.width*this._resolution:this.pixelWidth=this.resource?this.resourceWidth??1:1,t.height?this.pixelHeight=t.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=t.format,this.dimension=t.dimensions,this.viewDimension=t.viewDimension??t.dimensions,this.arrayLayerCount=t.arrayLayerCount,this.mipLevelCount=t.mipLevelCount,this.autoGenerateMipmaps=t.autoGenerateMipmaps,this.sampleCount=t.sampleCount,this.antialias=t.antialias,this.transient=t.transient??!1,this.alphaMode=t.alphaMode,this.style=new ce(ko(t)),this._ownsStyle=!0,this.destroyed=!1,this._refreshPOT()}get source(){return this}get style(){return this._style}set style(t){this.style!==t&&(this._ownsStyle=!1,this._style?.off("change",this._onStyleChange,this),this._style=t,this._style?.on("change",this._onStyleChange,this),this._onStyleChange())}set maxAnisotropy(t){this._style.maxAnisotropy=t}get maxAnisotropy(){return this._style.maxAnisotropy}get addressMode(){return this._style.addressMode}set addressMode(t){this._style.addressMode=t}get repeatMode(){return this._style.addressMode}set repeatMode(t){this._style.addressMode=t}get magFilter(){return this._style.magFilter}set magFilter(t){this._style.magFilter=t}get minFilter(){return this._style.minFilter}set minFilter(t){this._style.minFilter=t}get mipmapFilter(){return this._style.mipmapFilter}set mipmapFilter(t){this._style.mipmapFilter=t}get lodMinClamp(){return this._style.lodMinClamp}set lodMinClamp(t){this._style.lodMinClamp=t}get lodMaxClamp(){return this._style.lodMaxClamp}set lodMaxClamp(t){this._style.lodMaxClamp=t}_onStyleChange(){this.emit("styleChange",this)}update(){if(this.resource){let t=this._resolution;if(this.resize(this.resourceWidth/t,this.resourceHeight/t))return}this.emit("update",this)}destroy(){this.destroyed=!0,this.unload(),this.emit("destroy",this),this._style&&(this._ownsStyle&&this._style.destroy(),this._style=null),this.uploadMethodId=null,this.resource=null,this.removeAllListeners()}unload(){this._resourceId=$("resource"),this.emit("change",this),this.emit("unload",this);for(let t in this._gpuData)this._gpuData[t]?.destroy?.();this._gpuData=Object.create(null)}get resourceWidth(){let{resource:t}=this;return t.naturalWidth||t.videoWidth||t.displayWidth||t.width}get resourceHeight(){let{resource:t}=this;return t.naturalHeight||t.videoHeight||t.displayHeight||t.height}get resolution(){return this._resolution}set resolution(t){this._resolution!==t&&(this._resolution=t,this.width=this.pixelWidth/t,this.height=this.pixelHeight/t)}resize(t,e,r){r||(r=this._resolution),t||(t=this.width),e||(e=this.height);let s=Math.round(t*r),n=Math.round(e*r);return this.width=s/r,this.height=n/r,this._resolution=r,this.pixelWidth===s&&this.pixelHeight===n?!1:(this._refreshPOT(),this.pixelWidth=s,this.pixelHeight=n,this.emit("resize",this),this._resourceId=$("resource"),this.emit("change",this),!0)}updateMipmaps(){this.autoGenerateMipmaps&&this.mipLevelCount>1&&this.emit("updateMipmaps",this)}set wrapMode(t){this._style.wrapMode=t}get wrapMode(){return this._style.wrapMode}set scaleMode(t){this._style.scaleMode=t}get scaleMode(){return this._style.scaleMode}_refreshPOT(){this.isPowerOfTwo=sc(this.pixelWidth)&&sc(this.pixelHeight)}static test(t){throw new Error("Unimplemented")}};Jf.defaultOptions={resolution:1,format:"bgra8unorm",alphaMode:"premultiply-alpha-on-upload",dimensions:"2d",viewDimension:"2d",arrayLayerCount:1,mipLevelCount:1,autoGenerateMipmaps:!1,sampleCount:1,antialias:!1,autoGarbageCollect:!1};st=Jf});function cS(){for(let i=0;i<16;i++){let t=[];oc.push(t);for(let e=0;e<16;e++){let r=Bo(Rr[i]*Rr[e]+Br[i]*kr[e]),s=Bo(kr[i]*Rr[e]+Ir[i]*kr[e]),n=Bo(Rr[i]*Br[e]+Br[i]*Ir[e]),o=Bo(kr[i]*Br[e]+Ir[i]*Ir[e]);for(let a=0;a<16;a++)if(Rr[a]===r&&kr[a]===s&&Br[a]===n&&Ir[a]===o){t.push(a);break}}}for(let i=0;i<16;i++){let t=new k;t.set(Rr[i],kr[i],Br[i],Ir[i],0,0),ep.push(t)}}var Rr,kr,Br,Ir,oc,ep,Bo,it,vs=p(()=>{ot();Rr=[1,1,0,-1,-1,-1,0,1,1,1,0,-1,-1,-1,0,1],kr=[0,1,1,1,0,-1,-1,-1,0,1,1,1,0,-1,-1,-1],Br=[0,-1,-1,-1,0,1,1,1,0,1,1,1,0,-1,-1,-1],Ir=[1,1,0,-1,-1,-1,0,1,-1,-1,0,1,1,1,0,-1],oc=[],ep=[],Bo=Math.sign;cS();it={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:i=>Rr[i],uY:i=>kr[i],vX:i=>Br[i],vY:i=>Ir[i],inv:i=>i&8?i&15:-i&7,add:(i,t)=>oc[i][t],sub:(i,t)=>oc[i][it.inv(t)],rotate180:i=>i^4,isVertical:i=>(i&3)===2,byDirection:(i,t)=>Math.abs(i)*2<=Math.abs(t)?t>=0?it.S:it.N:Math.abs(t)*2<=Math.abs(i)?i>0?it.E:it.W:t>0?i>0?it.SE:it.SW:i>0?it.NE:it.NW,matrixAppendRotationInv:(i,t,e=0,r=0,s=0,n=0)=>{let o=ep[it.inv(t)],a=o.a,l=o.b,c=o.c,h=o.d,u=e-Math.min(0,a*s,c*n,a*s+c*n),d=r-Math.min(0,l*s,h*n,l*s+h*n),f=i.a,m=i.b,g=i.c,_=i.d;i.a=a*f+l*g,i.b=a*m+l*_,i.c=c*f+h*g,i.d=c*m+h*_,i.tx=u*f+d*g+i.tx,i.ty=u*m+d*_+i.ty},transformRectCoords:(i,t,e,r)=>{let{x:s,y:n,width:o,height:a}=i,{x:l,y:c,width:h,height:u}=t;return e===it.E?(r.set(s+l,n+c,o,a),r):e===it.S?r.set(h-n-a+l,s+c,a,o):e===it.W?r.set(h-s-o+l,u-n-a+c,o,a):e===it.N?r.set(n+l,u-s-o+c,a,o):r.set(s+l,n+c,o,a)}}});var ac,rp=p(()=>{"use strict";ac=()=>{}});var Gr,lc=p(()=>{P();$t();Gr=class extends st{constructor(t){let e=t.resource||new Float32Array(t.width*t.height*4),r=t.format;r||(e instanceof Float32Array?r="rgba32float":e instanceof Int32Array||e instanceof Uint32Array?r="rgba32uint":e instanceof Int16Array||e instanceof Uint16Array?r="rgba16uint":(e instanceof Int8Array,r="bgra8unorm")),super({...t,resource:e,format:r}),this.uploadMethodId="buffer"}static test(t){return t instanceof Int8Array||t instanceof Uint8Array||t instanceof Uint8ClampedArray||t instanceof Int16Array||t instanceof Uint16Array||t instanceof Int32Array||t instanceof Uint32Array||t instanceof Float32Array}};Gr.extension=y.TextureSource});var ip,bi,cc=p(()=>{ot();ip=new k,bi=class{constructor(t,e){this.mapCoord=new k,this.uClampFrame=new Float32Array(4),this.uClampOffset=new Float32Array(2),this._updateID=0,this.clampOffset=0,typeof e>"u"?this.clampMargin=t.width<10?0:.5:this.clampMargin=e,this.isSimple=!1,this.texture=t}get texture(){return this._texture}set texture(t){this._texture!==t&&(this._texture?.removeListener("update",this.update,this),this._texture=t,this._texture.addListener("update",this.update,this)),this.update()}destroy(){this._texture?.removeListener("update",this.update,this),this._texture=null}multiplyUvs(t,e){e===void 0&&(e=t);let r=this.mapCoord;for(let s=0;s<t.length;s+=2){let n=t[s],o=t[s+1];e[s]=n*r.a+o*r.c+r.tx,e[s+1]=n*r.b+o*r.d+r.ty}return e}update(){let t=this._texture;this._updateID++;let e=t.uvs;this.mapCoord.set(e.x1-e.x0,e.y1-e.y0,e.x3-e.x0,e.y3-e.y0,e.x0,e.y0);let r=t.orig,s=t.trim;s&&(ip.set(r.width/s.width,0,0,r.height/s.height,-s.x/s.width,-s.y/s.height),this.mapCoord.append(ip));let n=t.source,o=this.uClampFrame,a=this.clampMargin/n._resolution,l=this.clampOffset/n._resolution;return o[0]=(t.frame.x+a+l)/n.width,o[1]=(t.frame.y+a+l)/n.height,o[2]=(t.frame.x+t.frame.width-a+l)/n.width,o[3]=(t.frame.y+t.frame.height-a+l)/n.height,this.uClampOffset[0]=this.clampOffset/n.pixelWidth,this.uClampOffset[1]=this.clampOffset/n.pixelHeight,this.isSimple=t.frame.width===n.width&&t.frame.height===n.height&&t.rotate===0,!0}}});var F,gt=p(()=>{Ht();vs();Yt();Ft();yt();rp();lc();$t();cc();F=class extends ut{constructor({source:t,label:e,frame:r,orig:s,trim:n,defaultAnchor:o,defaultBorders:a,rotate:l,dynamic:c}={}){if(super(),this.uid=$("texture"),this.uvs={x0:0,y0:0,x1:0,y1:0,x2:0,y2:0,x3:0,y3:0},this.frame=new J,this.noFrame=!1,this.dynamic=!1,this.isTexture=!0,this.label=e,this.source=t?.source??new st,this.noFrame=!r,r)this.frame.copyFrom(r);else{let{width:h,height:u}=this._source;this.frame.width=h,this.frame.height=u}this.orig=s||this.frame,this.trim=n,this.rotate=l??0,this.defaultAnchor=o,this.defaultBorders=a,this.destroyed=!1,this.dynamic=c||!1,this.updateUvs()}set source(t){this._source&&this._source.off("resize",this.update,this),this._source=t,t.on("resize",this.update,this),this.emit("update",this)}get source(){return this._source}get textureMatrix(){return this._textureMatrix||(this._textureMatrix=new bi(this)),this._textureMatrix}get width(){return this.orig.width}get height(){return this.orig.height}updateUvs(){let{uvs:t,frame:e}=this,{width:r,height:s}=this._source,n=e.x/r,o=e.y/s,a=e.width/r,l=e.height/s,c=this.rotate;if(c){let h=a/2,u=l/2,d=n+h,f=o+u;c=it.add(c,it.NW),t.x0=d+h*it.uX(c),t.y0=f+u*it.uY(c),c=it.add(c,2),t.x1=d+h*it.uX(c),t.y1=f+u*it.uY(c),c=it.add(c,2),t.x2=d+h*it.uX(c),t.y2=f+u*it.uY(c),c=it.add(c,2),t.x3=d+h*it.uX(c),t.y3=f+u*it.uY(c)}else t.x0=n,t.y0=o,t.x1=n+a,t.y1=o,t.x2=n+a,t.y2=o+l,t.x3=n,t.y3=o+l}destroy(t=!1){this._source&&(this._source.off("resize",this.update,this),t&&(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 O(rt,"Texture.baseTexture is now Texture.source"),this._source}};F.EMPTY=new F({label:"EMPTY",source:new st({label:"EMPTY"})});F.EMPTY.destroy=ac;F.WHITE=new F({source:new Gr({resource:new Uint8Array([255,255,255,255]),width:1,height:1,alphaMode:"premultiply-alpha-on-upload",label:"WHITE"}),label:"WHITE"});F.WHITE.destroy=ac});var hS,hc,Mt,Fr=p(()=>{bs();Pr();$t();gt();Ar();hS=0,hc=class{constructor(t){this._poolKeyHash=Object.create(null),this._texturePool={},this.textureOptions=t||{},this.enableFullScreen=!1,this.textureStyle=new ce(this.textureOptions)}createTexture(t,e,r,s){let n=new st({...this.textureOptions,width:t,height:e,resolution:1,antialias:r,autoGarbageCollect:!1,autoGenerateMipmaps:s});return new F({source:n,label:`texturePool_${hS++}`})}getOptimalTexture(t,e,r=1,s,n=!1){let o=Math.ceil(t*r-1e-6),a=Math.ceil(e*r-1e-6);o=Je(o),a=Je(a);let l=s?1:0,c=n?1:0,h=(o<<17)+(a<<2)+(c<<1)+l;this._texturePool[h]||(this._texturePool[h]=[]);let u=this._texturePool[h].pop();return u||(u=this.createTexture(o,a,s,n)),u.source._resolution=r,u.source.width=o/r,u.source.height=a/r,u.source.pixelWidth=o,u.source.pixelHeight=a,u.frame.x=0,u.frame.y=0,u.frame.width=t,u.frame.height=e,u.updateUvs(),this._poolKeyHash[u.uid]=h,u}getSameSizeTexture(t,e=!1){let r=t.source;return this.getOptimalTexture(t.width,t.height,r._resolution,e)}returnTexture(t,e=!1){let r=this._poolKeyHash[t.uid];e&&(t.source.style=this.textureStyle),this._texturePool[r].push(t)}clear(t){if(t=t!==!1,t)for(let e in this._texturePool){let r=this._texturePool[e];if(r)for(let s=0;s<r.length;s++)r[s].destroy(!0)}this._texturePool={}}},Mt=new hc;ye.register(Mt)});var Ur,uc=p(()=>{ot();Ro();Fr();Ur=class{constructor(){this.renderPipeId="renderGroup",this.root=null,this.canBundle=!1,this.renderGroupParent=null,this.renderGroupChildren=[],this.worldTransform=new k,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 hr,this._onRenderContainers=[],this.textureNeedsUpdate=!0,this.isCachedAsTexture=!1,this._matrixDirty=7}init(t){this.root=t,t._onRender&&this.addOnRender(t),t.didChange=!0;let e=t.children;for(let r=0;r<e.length;r++){let s=e[r];s._updateFlags=15,this.addChild(s)}}enableCacheAsTexture(t={}){this.textureOptions=t,this.isCachedAsTexture=!0,this.textureNeedsUpdate=!0}disableCacheAsTexture(){this.isCachedAsTexture=!1,this.texture&&(Mt.returnTexture(this.texture,!0),this.texture=null)}updateCacheTexture(){this.textureNeedsUpdate=!0;let t=this._parentCacheAsTextureRenderGroup;t&&!t.textureNeedsUpdate&&t.updateCacheTexture()}reset(){this.renderGroupChildren.length=0;for(let t in this.childrenToUpdate){let e=this.childrenToUpdate[t];e.list.fill(null),e.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(t){t.renderGroupParent&&t.renderGroupParent._removeRenderGroupChild(t),t.renderGroupParent=this,this.renderGroupChildren.push(t)}_removeRenderGroupChild(t){let e=this.renderGroupChildren.indexOf(t);e>-1&&this.renderGroupChildren.splice(e,1),t.renderGroupParent=null}addChild(t){if(this.structureDidChange=!0,t.parentRenderGroup=this,t.updateTick=-1,t.parent===this.root?t.relativeRenderGroupDepth=1:t.relativeRenderGroupDepth=t.parent.relativeRenderGroupDepth+1,t.didChange=!0,this.onChildUpdate(t),t.renderGroup){this.addRenderGroupChild(t.renderGroup);return}t._onRender&&this.addOnRender(t);let e=t.children;for(let r=0;r<e.length;r++)this.addChild(e[r])}removeChild(t){if(this.structureDidChange=!0,t._onRender&&(t.renderGroup||this.removeOnRender(t)),t.parentRenderGroup=null,t.renderGroup){this._removeRenderGroupChild(t.renderGroup);return}let e=t.children;for(let r=0;r<e.length;r++)this.removeChild(e[r])}removeChildren(t){for(let e=0;e<t.length;e++)this.removeChild(t[e])}onChildUpdate(t){let e=this.childrenToUpdate[t.relativeRenderGroupDepth];e||(e=this.childrenToUpdate[t.relativeRenderGroupDepth]={index:0,list:[]}),e.list[e.index++]=t}updateRenderable(t){t.globalDisplayStatus<7||(this.instructionSet.renderPipes[t.renderPipeId].updateRenderable(t),t.didViewUpdate=!1)}onChildViewUpdate(t){this.childrenRenderablesToUpdate.list[this.childrenRenderablesToUpdate.index++]=t}get isRenderable(){return this.root.localDisplayStatus===7&&this.worldAlpha>0}addOnRender(t){this._onRenderContainers.indexOf(t)===-1&&this._onRenderContainers.push(t)}removeOnRender(t){let e=this._onRenderContainers.indexOf(t);e!==-1&&this._onRenderContainers.splice(e,1)}runOnRender(t){for(let e=0;e<this._onRenderContainers.length;e++)this._onRenderContainers[e]._onRender(t)}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(t=[]){let e=this.root.children;for(let r=0;r<e.length;r++)this._getChildren(e[r],t);return t}_getChildren(t,e=[]){if(e.push(t),t.renderGroup)return e;let r=t.children;for(let s=0;s<r.length;s++)this._getChildren(r[s],e);return e}invalidateMatrices(){this._matrixDirty=7}get inverseWorldTransform(){return(this._matrixDirty&1)===0?this._inverseWorldTransform:(this._matrixDirty&=-2,this._inverseWorldTransform||(this._inverseWorldTransform=new k),this._inverseWorldTransform.copyFrom(this.worldTransform).invert())}get textureOffsetInverseTransform(){return(this._matrixDirty&2)===0?this._textureOffsetInverseTransform:(this._matrixDirty&=-3,this._textureOffsetInverseTransform||(this._textureOffsetInverseTransform=new k),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 t=this._parentCacheAsTextureRenderGroup;return t?(this._inverseParentTextureTransform||(this._inverseParentTextureTransform=new k),this._inverseParentTextureTransform.copyFrom(this.worldTransform).prepend(t.inverseWorldTransform).translate(-t._textureBounds.x,-t._textureBounds.y)):this.worldTransform}get cacheToLocalTransform(){return this.isCachedAsTexture?this.textureOffsetInverseTransform:this._parentCacheAsTextureRenderGroup?this._parentCacheAsTextureRenderGroup.textureOffsetInverseTransform:null}}});function sp(i,t,e={}){for(let r in t)!e[r]&&t[r]!==void 0&&(i[r]=t[r])}var np=p(()=>{"use strict"});var dc,Io,fc,Go,vi,Ss,Dr,mt,Pe=p(()=>{Ht();Qt();mf();P();ot();ql();vo();Ft();yt();ht();Ke();wf();Ef();Mf();kf();If();Uf();Mo();Wf();jf();Yf();qf();uc();np();dc=new Gt(null),Io=new Gt(null),fc=new Gt(null,1,1),Go=new Gt(null),vi=1,Ss=2,Dr=4,mt=class i extends ut{constructor(t={}){super(),this.uid=$("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.parentRenderLayer=null,this.updateTick=-1,this.localTransform=new k,this.relativeGroupTransform=new k,this.groupTransform=this.relativeGroupTransform,this.destroyed=!1,this._position=new Gt(this,0,0),this._scale=fc,this._pivot=Io,this._origin=Go,this._skew=dc,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=[],sp(this,t,{children:!0,parent:!0,effects:!0}),t.children?.forEach(e=>this.addChild(e)),t.parent?.addChild(this)}static mixin(t){O("8.8.0","Container.mixin is deprecated, please use extensions.mixin instead."),z.mixin(i,t)}set _didChangeId(t){this._didViewChangeTick=t>>12&4095,this._didContainerChangeTick=t&4095}get _didChangeId(){return this._didContainerChangeTick&4095|(this._didViewChangeTick&4095)<<12}addChild(...t){if(this.allowChildren||O(rt,"addChild: Only Containers will be allowed to add children in v8.0.0"),t.length>1){for(let s=0;s<t.length;s++)this.addChild(t[s]);return t[0]}let e=t[0],r=this.renderGroup||this.parentRenderGroup;return e.parent===this?(this.children.splice(this.children.indexOf(e),1),this.children.push(e),r&&(r.structureDidChange=!0),e):(e.parent&&e.parent.removeChild(e),this.children.push(e),this.sortableChildren&&(this.sortDirty=!0),e.parent=this,e.didChange=!0,e._updateFlags=15,r&&r.addChild(e),this.emit("childAdded",e,this,this.children.length-1),e.emit("added",this),this._didViewChangeTick++,e._zIndex!==0&&e.depthOfChildModified(),e)}removeChild(...t){if(t.length>1){for(let s=0;s<t.length;s++)this.removeChild(t[s]);return t[0]}let e=t[0],r=this.children.indexOf(e);return r>-1&&(this._didViewChangeTick++,this.children.splice(r,1),this.renderGroup?this.renderGroup.removeChild(e):this.parentRenderGroup&&this.parentRenderGroup.removeChild(e),e.parentRenderLayer&&e.parentRenderLayer.detach(e),e.parent=null,this.emit("childRemoved",e,this,r),e.emit("removed",this)),e}_onUpdate(t){t&&t===this._skew&&this._updateSkew(),this._didContainerChangeTick++,!this.didChange&&(this.didChange=!0,this.parentRenderGroup&&this.parentRenderGroup.onChildUpdate(this))}set isRenderGroup(t){!!this.renderGroup!==t&&(t?this.enableRenderGroup():this.disableRenderGroup())}get isRenderGroup(){return!!this.renderGroup}enableRenderGroup(){if(this.renderGroup)return;let t=this.parentRenderGroup;t?.removeChild(this),this.renderGroup=bt.get(Ur,this),this.groupTransform=k.IDENTITY,t?.addChild(this),this._updateIsSimple()}disableRenderGroup(){if(!this.renderGroup)return;let t=this.parentRenderGroup;t?.removeChild(this),bt.return(this.renderGroup),this.renderGroup=null,this.groupTransform=this.relativeGroupTransform,t?.addChild(this),this._updateIsSimple()}_updateIsSimple(){this.isSimple=!this.renderGroup&&this.effects.length===0}get worldTransform(){return this._worldTransform||(this._worldTransform=new k),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(t){this._position.x=t}get y(){return this._position.y}set y(t){this._position.y=t}get position(){return this._position}set position(t){this._position.copyFrom(t)}get rotation(){return this._rotation}set rotation(t){this._rotation!==t&&(this._rotation=t,this._onUpdate(this._skew))}get angle(){return this.rotation*xf}set angle(t){this.rotation=t*_f}get pivot(){return this._pivot===Io&&(this._pivot=new Gt(this,0,0)),this._pivot}set pivot(t){this._pivot===Io&&(this._pivot=new Gt(this,0,0),this._origin!==Go&&L("Setting both a pivot and origin on a Container is not recommended. This can lead to unexpected behavior if not handled carefully.")),typeof t=="number"?this._pivot.set(t):this._pivot.copyFrom(t)}get skew(){return this._skew===dc&&(this._skew=new Gt(this,0,0)),this._skew}set skew(t){this._skew===dc&&(this._skew=new Gt(this,0,0)),this._skew.copyFrom(t)}get scale(){return this._scale===fc&&(this._scale=new Gt(this,1,1)),this._scale}set scale(t){this._scale===fc&&(this._scale=new Gt(this,0,0)),typeof t=="string"&&(t=parseFloat(t)),typeof t=="number"?this._scale.set(t):this._scale.copyFrom(t)}get origin(){return this._origin===Go&&(this._origin=new Gt(this,0,0)),this._origin}set origin(t){this._origin===Go&&(this._origin=new Gt(this,0,0),this._pivot!==Io&&L("Setting both a pivot and origin on a Container is not recommended. This can lead to unexpected behavior if not handled carefully.")),typeof t=="number"?this._origin.set(t):this._origin.copyFrom(t)}get width(){return Math.abs(this.scale.x*this.getLocalBounds().width)}set width(t){let e=this.getLocalBounds().width;this._setWidth(t,e)}get height(){return Math.abs(this.scale.y*this.getLocalBounds().height)}set height(t){let e=this.getLocalBounds().height;this._setHeight(t,e)}getSize(t){t||(t={});let e=this.getLocalBounds();return t.width=Math.abs(this.scale.x*e.width),t.height=Math.abs(this.scale.y*e.height),t}setSize(t,e){let r=this.getLocalBounds();typeof t=="object"?(e=t.height??t.width,t=t.width):e??(e=t),t!==void 0&&this._setWidth(t,r.width),e!==void 0&&this._setHeight(e,r.height)}_updateSkew(){let t=this._rotation,e=this._skew;this._cx=Math.cos(t+e._y),this._sx=Math.sin(t+e._y),this._cy=-Math.sin(t-e._x),this._sy=Math.cos(t-e._x)}updateTransform(t){return this.position.set(typeof t.x=="number"?t.x:this.position.x,typeof t.y=="number"?t.y:this.position.y),this.scale.set(typeof t.scaleX=="number"?t.scaleX:this.scale.x,typeof t.scaleY=="number"?t.scaleY:this.scale.y),this.rotation=typeof t.rotation=="number"?t.rotation:this.rotation,this.skew.set(typeof t.skewX=="number"?t.skewX:this.skew.x,typeof t.skewY=="number"?t.skewY:this.skew.y),this.pivot.set(typeof t.pivotX=="number"?t.pivotX:this.pivot.x,typeof t.pivotY=="number"?t.pivotY:this.pivot.y),this.origin.set(typeof t.originX=="number"?t.originX:this.origin.x,typeof t.originY=="number"?t.originY:this.origin.y),this}setFromMatrix(t){t.decompose(this)}updateLocalTransform(){let t=this._didContainerChangeTick;if(this._didLocalTransformChangeId===t)return;this._didLocalTransformChangeId=t;let e=this.localTransform,r=this._scale,s=this._pivot,n=this._origin,o=this._position,a=r._x,l=r._y,c=s._x,h=s._y,u=-n._x,d=-n._y;e.a=this._cx*a,e.b=this._sx*a,e.c=this._cy*l,e.d=this._sy*l,e.tx=o._x-(c*e.a+h*e.c)+(u*e.a+d*e.c)-u,e.ty=o._y-(c*e.b+h*e.d)+(u*e.b+d*e.d)-d}set alpha(t){t!==this.localAlpha&&(this.localAlpha=t,this._updateFlags|=vi,this._onUpdate())}get alpha(){return this.localAlpha}set tint(t){let r=Q.shared.setValue(t??16777215).toBgrNumber();r!==this.localColor&&(this.localColor=r,this._updateFlags|=vi,this._onUpdate())}get tint(){return Qe(this.localColor)}set blendMode(t){this.localBlendMode!==t&&(this.parentRenderGroup&&(this.parentRenderGroup.structureDidChange=!0),this._updateFlags|=Ss,this.localBlendMode=t,this._onUpdate())}get blendMode(){return this.localBlendMode}get visible(){return!!(this.localDisplayStatus&2)}set visible(t){let e=t?2:0;(this.localDisplayStatus&2)!==e&&(this.parentRenderGroup&&(this.parentRenderGroup.structureDidChange=!0),this._updateFlags|=Dr,this.localDisplayStatus^=2,this._onUpdate(),this.emit("visibleChanged",t))}get culled(){return!(this.localDisplayStatus&4)}set culled(t){let e=t?0:4;(this.localDisplayStatus&4)!==e&&(this.parentRenderGroup&&(this.parentRenderGroup.structureDidChange=!0),this._updateFlags|=Dr,this.localDisplayStatus^=4,this._onUpdate())}get renderable(){return!!(this.localDisplayStatus&1)}set renderable(t){let e=t?1:0;(this.localDisplayStatus&1)!==e&&(this._updateFlags|=Dr,this.localDisplayStatus^=1,this.parentRenderGroup&&(this.parentRenderGroup.structureDidChange=!0),this._onUpdate())}get isRenderable(){return this.localDisplayStatus===7&&this.groupAlpha>0}destroy(t=!1){if(this.destroyed)return;this.destroyed=!0;let e;if(this.children.length&&(e=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._origin=null,this._skew=null,this.emit("destroyed",this),this.removeAllListeners(),(typeof t=="boolean"?t:t?.children)&&e)for(let s=0;s<e.length;++s)e[s].destroy(t);this.renderGroup?.destroy(),this.renderGroup=null}};z.mixin(mt,Cf,Ff,$f,Vf,Hf,Rf,Bf,Xf,pf,Tf,Of,Pf)});var De,Ts=p(()=>{"use strict";De=(i=>(i[i.INTERACTION=50]="INTERACTION",i[i.HIGH=25]="HIGH",i[i.NORMAL=0]="NORMAL",i[i.LOW=-25]="LOW",i[i.UTILITY=-50]="UTILITY",i))(De||{})});var Si,op=p(()=>{"use strict";Si=class{constructor(t,e=null,r=0,s=!1){this.next=null,this.previous=null,this._destroyed=!1,this._fn=t,this._context=e,this.priority=r,this._once=s}match(t,e=null){return this._fn===t&&this._context===e}emit(t){this._fn&&(this._context?this._fn.call(this._context,t):this._fn(t));let e=this.next;return this._once&&this.destroy(!0),this._destroyed&&(this.next=null),e}connect(t){this.previous=t,t.next&&(t.next.previous=this),this.next=t.next,t.next=this}destroy(t=!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 e=this.next;return this.next=t?null:e,this.previous=null,e}}});var ap,qt,Ti=p(()=>{Ts();op();ap=class pe{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 Si(null,null,1/0),this.deltaMS=1/pe.targetFPMS,this.elapsedMS=1/pe.targetFPMS,this._tick=t=>{this._requestId=null,this.started&&(this.update(t),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(t,e,r=De.NORMAL){return this._addListener(new Si(t,e,r))}addOnce(t,e,r=De.NORMAL){return this._addListener(new Si(t,e,r,!0))}_addListener(t){let e=this._head.next,r=this._head;if(!e)t.connect(r);else{for(;e;){if(t.priority>e.priority){t.connect(r);break}r=e,e=e.next}t.previous||t.connect(r)}return this._startIfPossible(),this}remove(t,e){let r=this._head.next;for(;r;)r.match(t,e)?r=r.destroy():r=r.next;return this._head.next||this._cancelIfNeeded(),this}get count(){if(!this._head)return 0;let t=0,e=this._head;for(;e=e.next;)t++;return t}start(){this.started||(this.started=!0,this._requestIfNeeded())}stop(){this.started&&(this.started=!1,this._cancelIfNeeded())}destroy(){if(!this._protected){this.stop();let t=this._head.next;for(;t;)t=t.destroy(!0);this._head.destroy(),this._head=null}}update(t=performance.now()){let e;if(t>this.lastTime){if(e=this.elapsedMS=t-this.lastTime,e>this._maxElapsedMS&&(e=this._maxElapsedMS),e*=this.speed,this._minElapsedMS){let n=t-this._lastFrame|0;if(n<this._minElapsedMS)return;this._lastFrame=t-n%this._minElapsedMS}this.deltaMS=e,this.deltaTime=this.deltaMS*pe.targetFPMS;let r=this._head,s=r.next;for(;s;)s=s.emit(this);r.next||this._cancelIfNeeded()}else this.deltaTime=this.deltaMS=this.elapsedMS=0;this.lastTime=t}get FPS(){return 1e3/this.elapsedMS}get minFPS(){return 1e3/this._maxElapsedMS}set minFPS(t){let e=Math.min(Math.max(0,t)/1e3,pe.targetFPMS);this._maxElapsedMS=1/e,this._minElapsedMS&&t>this.maxFPS&&(this.maxFPS=t)}get maxFPS(){return this._minElapsedMS?Math.round(1e3/this._minElapsedMS):0}set maxFPS(t){t===0?this._minElapsedMS=0:(t<this.minFPS&&(this.minFPS=t),this._minElapsedMS=1/(t/1e3))}static get shared(){if(!pe._shared){let t=pe._shared=new pe;t.autoStart=!0,t._protected=!0}return pe._shared}static get system(){if(!pe._system){let t=pe._system=new pe;t.autoStart=!0,t._protected=!0}return pe._system}};ap.targetFPMS=.06;qt=ap});var wi,pc=p(()=>{Ts();Ti();wi=class{constructor(t){this._lastTransform="",this._observer=null,this._tickerAttached=!1,this.updateTranslation=()=>{if(!this._canvas)return;let e=this._canvas.getBoundingClientRect(),r=this._canvas.width,s=this._canvas.height,n=e.width/r*this._renderer.resolution,o=e.height/s*this._renderer.resolution,a=e.left,l=e.top,c=`translate(${a}px, ${l}px) scale(${n}, ${o})`;c!==this._lastTransform&&(this._domElement.style.transform=c,this._lastTransform=c)},this._domElement=t.domElement,this._renderer=t.renderer,!(globalThis.OffscreenCanvas&&this._renderer.canvas instanceof OffscreenCanvas)&&(this._canvas=this._renderer.canvas,this._attachObserver())}get canvas(){return this._canvas}ensureAttached(){!this._domElement.parentNode&&this._canvas.parentNode&&(this._canvas.parentNode.appendChild(this._domElement),this.updateTranslation())}_attachObserver(){"ResizeObserver"in globalThis?(this._observer&&(this._observer.disconnect(),this._observer=null),this._observer=new ResizeObserver(t=>{for(let e of t){if(e.target!==this._canvas)continue;let r=this.canvas.width,s=this.canvas.height,n=e.contentRect.width/r*this._renderer.resolution,o=e.contentRect.height/s*this._renderer.resolution;(this._lastScaleX!==n||this._lastScaleY!==o)&&(this.updateTranslation(),this._lastScaleX=n,this._lastScaleY=o)}}),this._observer.observe(this._canvas)):this._tickerAttached||qt.shared.add(this.updateTranslation,this,De.HIGH)}destroy(){this._observer?(this._observer.disconnect(),this._observer=null):this._tickerAttached&&qt.shared.remove(this.updateTranslation),this._domElement=null,this._renderer=null,this._canvas=null,this._tickerAttached=!1,this._lastTransform="",this._lastScaleX=null,this._lastScaleY=null}}});var ur,Fo=p(()=>{Ee();ur=class i{constructor(t){this.bubbles=!0,this.cancelBubble=!0,this.cancelable=!1,this.composed=!1,this.defaultPrevented=!1,this.eventPhase=i.prototype.NONE,this.propagationStopped=!1,this.propagationImmediatelyStopped=!1,this.layer=new nt,this.page=new nt,this.NONE=0,this.CAPTURING_PHASE=1,this.AT_TARGET=2,this.BUBBLING_PHASE=3,this.manager=t}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(t,e,r){throw new Error("initEvent() is a legacy DOM API. It is not implemented in the Federated Events API.")}initUIEvent(t,e,r,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 uS(i){return function(t){return t.test(i)}}function ws(i){var t={userAgent:"",platform:"",maxTouchPoints:0};!i&&typeof navigator<"u"?t={userAgent:navigator.userAgent,platform:navigator.platform,maxTouchPoints:navigator.maxTouchPoints||0}:typeof i=="string"?t.userAgent=i:i&&i.userAgent&&(t={userAgent:i.userAgent,platform:i.platform,maxTouchPoints:i.maxTouchPoints||0});var e=t.userAgent,r=e.split("[FBAN");typeof r[1]<"u"&&(e=r[0]),r=e.split("Twitter"),typeof r[1]<"u"&&(e=r[0]);var s=uS(e),n={apple:{phone:s(mc)&&!s(tr),ipod:s(lp),tablet:!s(mc)&&(s(cp)||_p(t))&&!s(tr),universal:s(hp),device:(s(mc)||s(lp)||s(cp)||s(hp)||_p(t))&&!s(tr)},amazon:{phone:s(Ci),tablet:!s(Ci)&&s(Uo),device:s(Ci)||s(Uo)},android:{phone:!s(tr)&&s(Ci)||!s(tr)&&s(gc),tablet:!s(tr)&&!s(Ci)&&!s(gc)&&(s(Uo)||s(up)),device:!s(tr)&&(s(Ci)||s(Uo)||s(gc)||s(up))||s(/\bokhttp\b/i)},windows:{phone:s(tr),tablet:s(dp),device:s(tr)||s(dp)},other:{blackberry:s(fp),blackberry10:s(pp),opera:s(mp),firefox:s(xp),chrome:s(gp),device:s(fp)||s(pp)||s(mp)||s(xp)||s(gp)},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 mc,lp,cp,hp,gc,up,Ci,Uo,tr,dp,fp,pp,mp,gp,xp,_p,xc=p(()=>{mc=/iPhone/i,lp=/iPod/i,cp=/iPad/i,hp=/\biOS-universal(?:.+)Mac\b/i,gc=/\bAndroid(?:.+)Mobile\b/i,up=/Android/i,Ci=/(?:SD4930UR|\bSilk(?:.+)Mobile\b)/i,Uo=/Silk/i,tr=/Windows Phone/i,dp=/\bWindows(?:.+)ARM\b/i,fp=/BlackBerry/i,pp=/BB10/i,mp=/Opera Mini/i,gp=/\b(CriOS|Chrome)(?:.+)Mobile/i,xp=/Mobile(?:.+)Firefox\b/i,_p=function(i){return typeof i<"u"&&i.platform==="MacIntel"&&typeof i.maxTouchPoints=="number"&&i.maxTouchPoints>1&&typeof MSStream>"u"}});var yp=p(()=>{xc();xc()});var dS,bp,vp=p(()=>{yp();dS=ws.default??ws,bp=dS(globalThis.navigator)});var fS,Sp,pS,mS,Tp,wp,gS,xS,_S,_c,Ep,Pp=p(()=>{pc();Fo();P();vp();tc();fS=9,Sp=100,pS=0,mS=0,Tp=2,wp=1,gS=-1e3,xS=-1e3,_S=2,_c=class Cp{constructor(t,e=bp){this._mobileInfo=e,this.debug=!1,this._activateOnTab=!0,this._deactivateOnMouseMove=!0,this._isActive=!1,this._isMobileAccessibility=!1,this._div=null,this._pools={},this._renderId=0,this._children=[],this._androidUpdateCount=0,this._androidUpdateFrequency=500,this._isRunningTests=!1,this._boundOnKeyDown=this._onKeyDown.bind(this),this._boundOnMouseMove=this._onMouseMove.bind(this),this._hookDiv=null,(e.tablet||e.phone)&&this._createTouchHook(),this._renderer=t}get isActive(){return this._isActive}get isMobileAccessibility(){return this._isMobileAccessibility}get hookDiv(){return this._hookDiv}get div(){return this._div}_createTouchHook(){let t=document.createElement("button");t.style.width=`${wp}px`,t.style.height=`${wp}px`,t.style.position="absolute",t.style.top=`${gS}px`,t.style.left=`${xS}px`,t.style.zIndex=_S.toString(),t.style.backgroundColor="#FF0000",t.title="select to enable accessibility for this content",t.addEventListener("focus",()=>{this._isMobileAccessibility=!0,this._activate(),this._destroyTouchHook()}),document.body.appendChild(t),this._hookDiv=t}_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.position="absolute",this._div.style.top=`${pS}px`,this._div.style.left=`${mS}px`,this._div.style.pointerEvents="none",this._div.style.zIndex=Tp.toString(),this._canvasObserver=new wi({domElement:this._div,renderer:this._renderer})),this._activateOnTab&&globalThis.addEventListener("keydown",this._boundOnKeyDown,!1),this._deactivateOnMouseMove&&globalThis.document.addEventListener("mousemove",this._boundOnMouseMove,!0);let t=this._renderer.view.canvas;if(t.parentNode)this._canvasObserver.ensureAttached(),this._initAccessibilitySetup();else{let e=new MutationObserver(()=>{t.parentNode&&(e.disconnect(),this._canvasObserver.ensureAttached(),this._initAccessibilitySetup())});e.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._boundOnMouseMove,!0),this._activateOnTab&&globalThis.addEventListener("keydown",this._boundOnKeyDown,!1),this._renderer.runners.postrender.remove(this);for(let t of this._children)t._accessibleDiv?.parentNode&&(t._accessibleDiv.parentNode.removeChild(t._accessibleDiv),t._accessibleDiv=null),t._accessibleActive=!1;for(let t in this._pools)this._pools[t].forEach(r=>{r.parentNode&&r.parentNode.removeChild(r)}),delete this._pools[t];this._div?.parentNode&&this._div.parentNode.removeChild(this._div),this._pools={},this._children=[]}}_updateAccessibleObjects(t){if(!t.visible||!t.accessibleChildren)return;t.accessible&&(t._accessibleActive||this._addChild(t),t._renderId=this._renderId);let e=t.children;if(e)for(let r=0;r<e.length;r++)this._updateAccessibleObjects(e[r])}init(t){let r={accessibilityOptions:{...Cp.defaultOptions,...t?.accessibilityOptions||{}}};this.debug=r.accessibilityOptions.debug,this._activateOnTab=r.accessibilityOptions.activateOnTab,this._deactivateOnMouseMove=r.accessibilityOptions.deactivateOnMouseMove,r.accessibilityOptions.enabledByDefault&&this._activate(),this._renderer.runners.postrender.remove(this)}postrender(){let t=performance.now();if(this._mobileInfo.android.device&&t<this._androidUpdateCount||(this._androidUpdateCount=t+this._androidUpdateFrequency,(!this._renderer.renderingToScreen||!this._renderer.view.canvas)&&!this._isRunningTests))return;let e=new Set;if(this._renderer.lastObjectRendered){this._updateAccessibleObjects(this._renderer.lastObjectRendered);for(let r of this._children)r._renderId===this._renderId&&e.add(this._children.indexOf(r))}for(let r=this._children.length-1;r>=0;r--){let s=this._children[r];e.has(r)||(s._accessibleDiv&&s._accessibleDiv.parentNode&&(s._accessibleDiv.parentNode.removeChild(s._accessibleDiv),this._getPool(s.accessibleType).push(s._accessibleDiv),s._accessibleDiv=null),s._accessibleActive=!1,To(this._children,r,1))}this._renderer.renderingToScreen&&this._canvasObserver.ensureAttached();for(let r=0;r<this._children.length;r++){let s=this._children[r];if(!s._accessibleActive||!s._accessibleDiv)continue;let n=s._accessibleDiv,o=s.hitArea||s.getBounds().rectangle;if(s.hitArea){let a=s.worldTransform;n.style.left=`${a.tx+o.x*a.a}px`,n.style.top=`${a.ty+o.y*a.d}px`,n.style.width=`${o.width*a.a}px`,n.style.height=`${o.height*a.d}px`}else this._capHitArea(o),n.style.left=`${o.x}px`,n.style.top=`${o.y}px`,n.style.width=`${o.width}px`,n.style.height=`${o.height}px`}this._renderId++}_updateDebugHTML(t){t.innerHTML=`type: ${t.type}</br> title : ${t.title}</br> tabIndex: ${t.tabIndex}`}_capHitArea(t){t.x<0&&(t.width+=t.x,t.x=0),t.y<0&&(t.height+=t.y,t.y=0);let{width:e,height:r}=this._renderer;t.x+t.width>e&&(t.width=e-t.x),t.y+t.height>r&&(t.height=r-t.y)}_addChild(t){let r=this._getPool(t.accessibleType).pop();r?(r.innerHTML="",r.removeAttribute("title"),r.removeAttribute("aria-label"),r.tabIndex=0):(t.accessibleType==="button"?r=document.createElement("button"):(r=document.createElement(t.accessibleType),r.style.cssText=`
5
5
  color: transparent;
6
6
  pointer-events: none;
7
7
  padding: 0;
@@ -14,7 +14,7 @@ Deprecated since v${i}`,n=typeof console.groupCollapsed=="function"&&!mi.noColor
14
14
  -webkit-user-select: none;
15
15
  -moz-user-select: none;
16
16
  -ms-user-select: none;
17
- `,t.accessibleText&&(r.innerText=t.accessibleText)),r.style.width=`${bp}px`,r.style.height=`${bp}px`,r.style.backgroundColor=this.debug?"rgba(255,255,255,0.5)":"transparent",r.style.position="absolute",r.style.zIndex=vp.toString(),r.style.borderStyle="none",navigator.userAgent.toLowerCase().includes("chrome")?r.setAttribute("aria-live","off"):r.setAttribute("aria-live","polite"),navigator.userAgent.match(/rv:.*Gecko\//)?r.setAttribute("aria-relevant","additions"):r.setAttribute("aria-relevant","text"),r.addEventListener("click",this._onClick.bind(this)),r.addEventListener("focus",this._onFocus.bind(this)),r.addEventListener("focusout",this._onFocusOut.bind(this))),r.style.pointerEvents=t.accessiblePointerEvents,r.type=t.accessibleType,t.accessibleTitle&&t.accessibleTitle!==null?r.title=t.accessibleTitle:(!t.accessibleHint||t.accessibleHint===null)&&(r.title=`container ${t.tabIndex}`),t.accessibleHint&&t.accessibleHint!==null&&r.setAttribute("aria-label",t.accessibleHint),t.interactive?r.tabIndex=t.tabIndex:r.tabIndex=0,this.debug&&this._updateDebugHTML(r),t._accessibleActive=!0,t._accessibleDiv=r,r.container=t,this._children.push(t),this._div.appendChild(t._accessibleDiv)}_dispatchEvent(t,e){let{container:r}=t.target,s=this._renderer.events.rootBoundary,n=Object.assign(new ur(s),{target:r});s.rootTarget=this._renderer.lastObjectRendered,e.forEach(o=>s.dispatchEvent(n,o))}_onClick(t){this._dispatchEvent(t,["click","pointertap","tap"])}_onFocus(t){t.target.getAttribute("aria-live")||t.target.setAttribute("aria-live","assertive"),this._dispatchEvent(t,["mouseover"])}_onFocusOut(t){t.target.getAttribute("aria-live")||t.target.setAttribute("aria-live","polite"),this._dispatchEvent(t,["mouseout"])}_onKeyDown(t){t.keyCode!==hS||!this._activateOnTab||this._activate()}_onMouseMove(t){t.movementX===0&&t.movementY===0||this._deactivate()}destroy(){this._deactivate(),this._destroyTouchHook(),this._canvasObserver?.destroy(),this._canvasObserver=null,this._div=null,this._pools=null,this._children=null,this._renderer=null,this._hookDiv=null,globalThis.removeEventListener("keydown",this._boundOnKeyDown),this._boundOnKeyDown=null,globalThis.document.removeEventListener("mousemove",this._boundOnMouseMove,!0),this._boundOnMouseMove=null}setAccessibilityEnabled(t){t?this._activate():this._deactivate()}_getPool(t){return this._pools[t]||(this._pools[t]=[]),this._pools[t]}};_c.extension={type:[y.WebGLSystem,y.WebGPUSystem],name:"accessibility"};_c.defaultOptions={enabledByDefault:!1,debug:!1,activateOnTab:!0,deactivateOnMouseMove:!0};wp=_c});var Ep,Pp=p(()=>{"use strict";Ep={accessible:!1,accessibleTitle:null,accessibleHint:null,tabIndex:0,accessibleType:"button",accessibleText:null,accessiblePointerEvents:"auto",accessibleChildren:!0,_accessibleActive:!1,_accessibleDiv:null,_renderId:-1}});var Mp=p(()=>{P();Pe();Cp();Pp();z.add(wp);z.mixin(mt,Ep)});var ws,Ap=p(()=>{P();pc();ws=class{constructor(t){this._attachedDomElements=[],this._renderer=t,this._renderer.runners.postrender.add(this),this._renderer.runners.init.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"}init(){this._canvasObserver=new Ti({domElement:this._domElement,renderer:this._renderer})}addRenderable(t,e){this._attachedDomElements.includes(t)||this._attachedDomElements.push(t)}updateRenderable(t){}validateRenderable(t){return!0}postrender(){let t=this._attachedDomElements;if(t.length===0){this._domElement.remove();return}this._canvasObserver.ensureAttached();for(let e=0;e<t.length;e++){let r=t[e],s=r.element;if(!r.parent||r.globalDisplayStatus<7)s?.remove(),t.splice(e,1),e--;else{this._domElement.contains(s)||(s.style.position="absolute",s.style.pointerEvents="auto",this._domElement.appendChild(s));let n=r.worldTransform,o=r._anchor,a=r.width*o.x,l=r.height*o.y;s.style.transformOrigin=`${a}px ${l}px`,s.style.transform=`matrix(${n.a}, ${n.b}, ${n.c}, ${n.d}, ${n.tx-a}, ${n.ty-l})`,s.style.opacity=r.groupAlpha.toString()}}}destroy(){this._renderer.runners.postrender.remove(this);for(let t=0;t<this._attachedDomElements.length;t++)this._attachedDomElements[t].element?.remove();this._attachedDomElements.length=0,this._domElement.remove(),this._canvasObserver.destroy(),this._renderer=null}};ws.extension={type:[y.WebGLPipes,y.WebGPUPipes,y.CanvasPipes],name:"dom"}});var Le,Cs=p(()=>{ie();Pe();Le=class extends mt{constructor(t){super(t),this.canBundle=!0,this.allowChildren=!1,this._roundPixels=0,this._lastUsed=-1,this._gpuData=Object.create(null),this.autoGarbageCollect=!0,this._gcLastUsed=-1,this._bounds=new dt(0,1,0,0),this._boundsDirty=!0,this.autoGarbageCollect=t.autoGarbageCollect??!0}get bounds(){return this._boundsDirty?(this.updateBounds(),this._boundsDirty=!1,this._bounds):this._bounds}get roundPixels(){return!!this._roundPixels}set roundPixels(t){this._roundPixels=t?1:0}containsPoint(t){let e=this.bounds,{x:r,y:s}=t;return r>=e.minX&&r<=e.maxX&&s>=e.minY&&s<=e.maxY}onViewUpdate(){if(this._didViewChangeTick++,this._boundsDirty=!0,this.didViewUpdate)return;this.didViewUpdate=!0;let t=this.renderGroup||this.parentRenderGroup;t&&t.onChildViewUpdate(this)}unload(){this.emit("unload",this);for(let t in this._gpuData)this._gpuData[t]?.destroy();this._gpuData=Object.create(null),this.onViewUpdate()}destroy(t){this.unload(),super.destroy(t),this._bounds=null}collectRenderablesSimple(t,e,r){let{renderPipes:s}=e;s.blendMode.pushBlendMode(this,this.groupBlendMode,t);let o=s[this.renderPipeId];o?.addRenderable&&o.addRenderable(this,t),this.didViewUpdate=!1;let a=this.children,l=a.length;for(let c=0;c<l;c++)a[c].collectRenderables(t,e,r);s.blendMode.popBlendMode(t)}}});var Rp=p(()=>{P();Ap();z.add(ws)});var yc,Me,bc=p(()=>{Ss();Si();yc=class{constructor(){this.interactionFrequency=10,this._deltaTime=0,this._didMove=!1,this._tickerAdded=!1,this._pauseUpdate=!0}init(t){this.removeTickerListener(),this.events=t,this.interactionFrequency=10,this._deltaTime=0,this._didMove=!1,this._tickerAdded=!1,this._pauseUpdate=!0}get pauseUpdate(){return this._pauseUpdate}set pauseUpdate(t){this._pauseUpdate=t}addTickerListener(){this._tickerAdded||!this.domElement||(qt.system.add(this._tickerUpdate,this,De.INTERACTION),this._tickerAdded=!0)}removeTickerListener(){this._tickerAdded&&(qt.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 t=this.events._rootPointerEvent;this.events.supportsTouchEvents&&t.pointerType==="touch"||globalThis.document.dispatchEvent(this.events.supportsPointerEvents?new PointerEvent("pointermove",{clientX:t.clientX,clientY:t.clientY,pointerType:t.pointerType,pointerId:t.pointerId}):new MouseEvent("mousemove",{clientX:t.clientX,clientY:t.clientY}))}_tickerUpdate(t){this._deltaTime+=t.deltaTime,!(this._deltaTime<this.interactionFrequency)&&(this._deltaTime=0,this._update())}destroy(){this.removeTickerListener(),this.events=null,this.domElement=null,this._deltaTime=0,this._didMove=!1,this._tickerAdded=!1,this._pauseUpdate=!0}},Me=new yc});var er,Uo=p(()=>{Ee();Go();er=class extends ur{constructor(){super(...arguments),this.client=new nt,this.movement=new nt,this.offset=new nt,this.global=new nt,this.screen=new nt}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(t,e,r){return t.worldTransform.applyInverse(r||this.global,e)}getModifierState(t){return"getModifierState"in this.nativeEvent&&this.nativeEvent.getModifierState(t)}initMouseEvent(t,e,r,s,n,o,a,l,c,h,u,d,f,m,g){throw new Error("Method not implemented.")}}});var se,vc=p(()=>{Uo();se=class extends er{constructor(){super(...arguments),this.width=0,this.height=0,this.isPrimary=!1,this.persistentDeviceId=0}getCoalescedEvents(){return this.type==="pointermove"||this.type==="mousemove"||this.type==="touchmove"?[this]:[]}getPredictedEvents(){throw new Error("getPredictedEvents is not supported!")}}});var Oe,Sc=p(()=>{Uo();Oe=class extends er{constructor(){super(...arguments),this.DOM_DELTA_PIXEL=0,this.DOM_DELTA_LINE=1,this.DOM_DELTA_PAGE=2}};Oe.DOM_DELTA_PIXEL=0;Oe.DOM_DELTA_LINE=1;Oe.DOM_DELTA_PAGE=2});var gS,xS,Es,Do,kp=p(()=>{Ht();Ee();ht();bc();Uo();vc();Sc();gS=2048,xS=new nt,Es=new nt,Do=class{constructor(t){this.dispatch=new ut,this.moveOnAll=!1,this.enableGlobalMoveEvents=!0,this.mappingState={trackingData:{}},this.eventPool=new Map,this._allInteractiveElements=[],this._hitElements=[],this._isPointerMoveEvent=!1,this.rootTarget=t,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(t,e){this.mappingTable[t]||(this.mappingTable[t]=[]),this.mappingTable[t].push({fn:e,priority:0}),this.mappingTable[t].sort((r,s)=>r.priority-s.priority)}dispatchEvent(t,e){t.propagationStopped=!1,t.propagationImmediatelyStopped=!1,this.propagate(t,e),this.dispatch.emit(e||t.type,t)}mapEvent(t){if(!this.rootTarget)return;let e=this.mappingTable[t.type];if(e)for(let r=0,s=e.length;r<s;r++)e[r].fn(t);else L(`[EventBoundary]: Event mapping not defined for ${t.type}`)}hitTest(t,e){Me.pauseUpdate=!0;let s=this._isPointerMoveEvent&&this.enableGlobalMoveEvents?"hitTestMoveRecursive":"hitTestRecursive",n=this[s](this.rootTarget,this.rootTarget.eventMode,xS.set(t,e),this.hitTestFn,this.hitPruneFn);return n&&n[0]}propagate(t,e){if(!t.target)return;let r=t.composedPath();t.eventPhase=t.CAPTURING_PHASE;for(let s=0,n=r.length-1;s<n;s++)if(t.currentTarget=r[s],this.notifyTarget(t,e),t.propagationStopped||t.propagationImmediatelyStopped)return;if(t.eventPhase=t.AT_TARGET,t.currentTarget=t.target,this.notifyTarget(t,e),!(t.propagationStopped||t.propagationImmediatelyStopped)){t.eventPhase=t.BUBBLING_PHASE;for(let s=r.length-2;s>=0;s--)if(t.currentTarget=r[s],this.notifyTarget(t,e),t.propagationStopped||t.propagationImmediatelyStopped)return}}all(t,e,r=this._allInteractiveElements){if(r.length===0)return;t.eventPhase=t.BUBBLING_PHASE;let s=Array.isArray(e)?e:[e];for(let n=r.length-1;n>=0;n--)s.forEach(o=>{t.currentTarget=r[n],this.notifyTarget(t,o)})}propagationPath(t){let e=[t];for(let r=0;r<gS&&t!==this.rootTarget&&t.parent;r++){if(!t.parent)throw new Error("Cannot find propagation path to disconnected target");e.push(t.parent),t=t.parent}return e.reverse(),e}hitTestMoveRecursive(t,e,r,s,n,o=!1){let a=!1;if(this._interactivePrune(t))return null;if((t.eventMode==="dynamic"||e==="dynamic")&&(Me.pauseUpdate=!1),t.interactiveChildren&&t.children){let h=t.children;for(let u=h.length-1;u>=0;u--){let d=h[u],f=this.hitTestMoveRecursive(d,this._isInteractive(e)?e:d.eventMode,r,s,n,o||n(t,r));if(f){if(f.length>0&&!f[f.length-1].parent)continue;let m=t.isInteractive();(f.length>0||m)&&(m&&this._allInteractiveElements.push(t),f.push(t)),this._hitElements.length===0&&(this._hitElements=f),a=!0}}}let l=this._isInteractive(e),c=t.isInteractive();return c&&c&&this._allInteractiveElements.push(t),o||this._hitElements.length>0?null:a?this._hitElements:l&&!n(t,r)&&s(t,r)?c?[t]:[]:null}hitTestRecursive(t,e,r,s,n){if(this._interactivePrune(t)||n(t,r))return null;if((t.eventMode==="dynamic"||e==="dynamic")&&(Me.pauseUpdate=!1),t.interactiveChildren&&t.children){let l=t.children,c=r;for(let h=l.length-1;h>=0;h--){let u=l[h],d=this.hitTestRecursive(u,this._isInteractive(e)?e:u.eventMode,c,s,n);if(d){if(d.length>0&&!d[d.length-1].parent)continue;let f=t.isInteractive();return(d.length>0||f)&&d.push(t),d}}}let o=this._isInteractive(e),a=t.isInteractive();return o&&s(t,r)?a?[t]:[]:null}_isInteractive(t){return t==="static"||t==="dynamic"}_interactivePrune(t){return!t||!t.visible||!t.renderable||!t.measurable||t.eventMode==="none"||t.eventMode==="passive"&&!t.interactiveChildren}hitPruneFn(t,e){if(t.hitArea&&(t.worldTransform.applyInverse(e,Es),!t.hitArea.contains(Es.x,Es.y)))return!0;if(t.effects&&t.effects.length)for(let r=0;r<t.effects.length;r++){let s=t.effects[r];if(s.containsPoint&&!s.containsPoint(e,this.hitTestFn))return!0}return!1}hitTestFn(t,e){return t.hitArea?!0:t?.containsPoint?(t.worldTransform.applyInverse(e,Es),t.containsPoint(Es)):!1}notifyTarget(t,e){if(!t.currentTarget.isInteractive())return;e??(e=t.type);let r=`on${e}`;t.currentTarget[r]?.(t);let s=t.eventPhase===t.CAPTURING_PHASE||t.eventPhase===t.AT_TARGET?`${e}capture`:e;this._notifyListeners(t,s),t.eventPhase===t.AT_TARGET&&this._notifyListeners(t,e)}mapPointerDown(t){if(!(t instanceof se)){L("EventBoundary cannot map a non-pointer event as a pointer event");return}let e=this.createPointerEvent(t);if(this.dispatchEvent(e,"pointerdown"),e.pointerType==="touch")this.dispatchEvent(e,"touchstart");else if(e.pointerType==="mouse"||e.pointerType==="pen"){let s=e.button===2;this.dispatchEvent(e,s?"rightdown":"mousedown")}let r=this.trackingData(t.pointerId);r.pressTargetsByButton[t.button]=e.composedPath(),this.freeEvent(e)}mapPointerMove(t){if(!(t instanceof se)){L("EventBoundary cannot map a non-pointer event as a pointer event");return}this._allInteractiveElements.length=0,this._hitElements.length=0,this._isPointerMoveEvent=!0;let e=this.createPointerEvent(t);this._isPointerMoveEvent=!1;let r=e.pointerType==="mouse"||e.pointerType==="pen",s=this.trackingData(t.pointerId),n=this.findMountedTarget(s.overTargets);if(s.overTargets?.length>0&&n!==e.target){let l=t.type==="mousemove"?"mouseout":"pointerout",c=this.createPointerEvent(t,l,n);if(this.dispatchEvent(c,"pointerout"),r&&this.dispatchEvent(c,"mouseout"),!e.composedPath().includes(n)){let h=this.createPointerEvent(t,"pointerleave",n);for(h.eventPhase=h.AT_TARGET;h.target&&!e.composedPath().includes(h.target);)h.currentTarget=h.target,this.notifyTarget(h),r&&this.notifyTarget(h,"mouseleave"),h.target=h.target.parent;this.freeEvent(h)}this.freeEvent(c)}if(n!==e.target){let l=t.type==="mousemove"?"mouseover":"pointerover",c=this.clonePointerEvent(e,l);this.dispatchEvent(c,"pointerover"),r&&this.dispatchEvent(c,"mouseover");let h=n?.parent;for(;h&&h!==this.rootTarget.parent&&h!==e.target;)h=h.parent;if(!h||h===this.rootTarget.parent){let d=this.clonePointerEvent(e,"pointerenter");for(d.eventPhase=d.AT_TARGET;d.target&&d.target!==n&&d.target!==this.rootTarget.parent;)d.currentTarget=d.target,this.notifyTarget(d),r&&this.notifyTarget(d,"mouseenter"),d.target=d.target.parent;this.freeEvent(d)}this.freeEvent(c)}let o=[],a=this.enableGlobalMoveEvents??!0;this.moveOnAll?o.push("pointermove"):this.dispatchEvent(e,"pointermove"),a&&o.push("globalpointermove"),e.pointerType==="touch"&&(this.moveOnAll?o.splice(1,0,"touchmove"):this.dispatchEvent(e,"touchmove"),a&&o.push("globaltouchmove")),r&&(this.moveOnAll?o.splice(1,0,"mousemove"):this.dispatchEvent(e,"mousemove"),a&&o.push("globalmousemove"),this.cursor=e.target?.cursor),o.length>0&&this.all(e,o),this._allInteractiveElements.length=0,this._hitElements.length=0,s.overTargets=e.composedPath(),this.freeEvent(e)}mapPointerOver(t){if(!(t instanceof se)){L("EventBoundary cannot map a non-pointer event as a pointer event");return}let e=this.trackingData(t.pointerId),r=this.createPointerEvent(t),s=r.pointerType==="mouse"||r.pointerType==="pen";this.dispatchEvent(r,"pointerover"),s&&this.dispatchEvent(r,"mouseover"),r.pointerType==="mouse"&&(this.cursor=r.target?.cursor);let n=this.clonePointerEvent(r,"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;e.overTargets=r.composedPath(),this.freeEvent(r),this.freeEvent(n)}mapPointerOut(t){if(!(t instanceof se)){L("EventBoundary cannot map a non-pointer event as a pointer event");return}let e=this.trackingData(t.pointerId);if(e.overTargets){let r=t.pointerType==="mouse"||t.pointerType==="pen",s=this.findMountedTarget(e.overTargets),n=this.createPointerEvent(t,"pointerout",s);this.dispatchEvent(n),r&&this.dispatchEvent(n,"mouseout");let o=this.createPointerEvent(t,"pointerleave",s);for(o.eventPhase=o.AT_TARGET;o.target&&o.target!==this.rootTarget.parent;)o.currentTarget=o.target,this.notifyTarget(o),r&&this.notifyTarget(o,"mouseleave"),o.target=o.target.parent;e.overTargets=null,this.freeEvent(n),this.freeEvent(o)}this.cursor=null}mapPointerUp(t){if(!(t instanceof se)){L("EventBoundary cannot map a non-pointer event as a pointer event");return}let e=performance.now(),r=this.createPointerEvent(t);if(this.dispatchEvent(r,"pointerup"),r.pointerType==="touch")this.dispatchEvent(r,"touchend");else if(r.pointerType==="mouse"||r.pointerType==="pen"){let a=r.button===2;this.dispatchEvent(r,a?"rightup":"mouseup")}let s=this.trackingData(t.pointerId),n=this.findMountedTarget(s.pressTargetsByButton[t.button]),o=n;if(n&&!r.composedPath().includes(n)){let a=n;for(;a&&!r.composedPath().includes(a);){if(r.currentTarget=a,this.notifyTarget(r,"pointerupoutside"),r.pointerType==="touch")this.notifyTarget(r,"touchendoutside");else if(r.pointerType==="mouse"||r.pointerType==="pen"){let l=r.button===2;this.notifyTarget(r,l?"rightupoutside":"mouseupoutside")}a=a.parent}delete s.pressTargetsByButton[t.button],o=a}if(o){let a=this.clonePointerEvent(r,"click");a.target=o,a.path=null,s.clicksByButton[t.button]||(s.clicksByButton[t.button]={clickCount:0,target:a.target,timeStamp:e});let l=s.clicksByButton[t.button];if(l.target===a.target&&e-l.timeStamp<200?++l.clickCount:l.clickCount=1,l.target=a.target,l.timeStamp=e,a.detail=l.clickCount,a.pointerType==="mouse"){let c=a.button===2;this.dispatchEvent(a,c?"rightclick":"click")}else a.pointerType==="touch"&&this.dispatchEvent(a,"tap");this.dispatchEvent(a,"pointertap"),this.freeEvent(a)}this.freeEvent(r)}mapPointerUpOutside(t){if(!(t instanceof se)){L("EventBoundary cannot map a non-pointer event as a pointer event");return}let e=this.trackingData(t.pointerId),r=this.findMountedTarget(e.pressTargetsByButton[t.button]),s=this.createPointerEvent(t);if(r){let n=r;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 e.pressTargetsByButton[t.button]}this.freeEvent(s)}mapWheel(t){if(!(t instanceof Oe)){L("EventBoundary cannot map a non-wheel event as a wheel event");return}let e=this.createWheelEvent(t);this.dispatchEvent(e),this.freeEvent(e)}findMountedTarget(t){if(!t)return null;let e=t[0];for(let r=1;r<t.length&&t[r].parent===e;r++)e=t[r];return e}createPointerEvent(t,e,r){let s=this.allocateEvent(se);return this.copyPointerData(t,s),this.copyMouseData(t,s),this.copyData(t,s),s.nativeEvent=t.nativeEvent,s.originalEvent=t,s.target=r??this.hitTest(s.global.x,s.global.y)??this._hitElements[0],typeof e=="string"&&(s.type=e),s}createWheelEvent(t){let e=this.allocateEvent(Oe);return this.copyWheelData(t,e),this.copyMouseData(t,e),this.copyData(t,e),e.nativeEvent=t.nativeEvent,e.originalEvent=t,e.target=this.hitTest(e.global.x,e.global.y),e}clonePointerEvent(t,e){let r=this.allocateEvent(se);return r.nativeEvent=t.nativeEvent,r.originalEvent=t.originalEvent,this.copyPointerData(t,r),this.copyMouseData(t,r),this.copyData(t,r),r.target=t.target,r.path=t.composedPath().slice(),r.type=e??r.type,r}copyWheelData(t,e){e.deltaMode=t.deltaMode,e.deltaX=t.deltaX,e.deltaY=t.deltaY,e.deltaZ=t.deltaZ}copyPointerData(t,e){t instanceof se&&e instanceof se&&(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,e.persistentDeviceId=t.persistentDeviceId)}copyMouseData(t,e){t instanceof er&&e instanceof er&&(e.altKey=t.altKey,e.button=t.button,e.buttons=t.buttons,e.client.copyFrom(t.client),e.ctrlKey=t.ctrlKey,e.metaKey=t.metaKey,e.movement.copyFrom(t.movement),e.screen.copyFrom(t.screen),e.shiftKey=t.shiftKey,e.global.copyFrom(t.global))}copyData(t,e){e.isTrusted=t.isTrusted,e.srcElement=t.srcElement,e.timeStamp=performance.now(),e.type=t.type,e.detail=t.detail,e.view=t.view,e.which=t.which,e.layer.copyFrom(t.layer),e.page.copyFrom(t.page)}trackingData(t){return this.mappingState.trackingData[t]||(this.mappingState.trackingData[t]={pressTargetsByButton:{},clicksByButton:{},overTarget:null}),this.mappingState.trackingData[t]}allocateEvent(t){this.eventPool.has(t)||this.eventPool.set(t,[]);let e=this.eventPool.get(t).pop()||new t(this);return e.eventPhase=e.NONE,e.currentTarget=null,e.defaultPrevented=!1,e.path=null,e.target=null,e}freeEvent(t){if(t.manager!==this)throw new Error("It is illegal to free an event not managed by this EventBoundary!");let e=t.constructor;this.eventPool.has(e)||this.eventPool.set(e,[]),this.eventPool.get(e).push(t)}_notifyListeners(t,e){let r=t.currentTarget._events[e];if(r)if("fn"in r)r.once&&t.currentTarget.removeListener(e,r.fn,void 0,!0),r.fn.call(r.context,t);else for(let s=0,n=r.length;s<n&&!t.propagationImmediatelyStopped;s++)r[s].once&&t.currentTarget.removeListener(e,r[s].fn,void 0,!0),r[s].fn.call(r[s].context,t)}}});var _S,yS,wc,Lo,Cc=p(()=>{P();kp();bc();vc();Sc();_S=1,yS={touchstart:"pointerdown",touchend:"pointerup",touchendoutside:"pointerupoutside",touchmove:"pointermove",touchcancel:"pointercancel"},wc=class Tc{constructor(t){this.supportsTouchEvents="ontouchstart"in globalThis,this.supportsPointerEvents=!!globalThis.PointerEvent,this.domElement=null,this.resolution=1,this.renderer=t,this.rootBoundary=new Do(null),Me.init(this),this.autoPreventDefault=!0,this._eventsAdded=!1,this._rootPointerEvent=new se(null),this._rootWheelEvent=new Oe(null),this.cursorStyles={default:"inherit",pointer:"pointer"},this.features=new Proxy({...Tc.defaultEventFeatures},{set:(e,r,s)=>(r==="globalMove"&&(this.rootBoundary.enableGlobalMoveEvents=s),e[r]=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(t){let{canvas:e,resolution:r}=this.renderer;this.setTargetElement(e),this.resolution=r,Tc._defaultEventMode=t.eventMode??"passive",Object.assign(this.features,t.eventFeatures??{}),this.rootBoundary.enableGlobalMoveEvents=this.features.globalMove}resolutionChange(t){this.resolution=t}destroy(){Me.destroy(),this.setTargetElement(null),this.renderer=null,this._currentCursor=null}setCursor(t){t||(t="default");let e=!0;if(globalThis.OffscreenCanvas&&this.domElement instanceof OffscreenCanvas&&(e=!1),this._currentCursor===t)return;this._currentCursor=t;let r=this.cursorStyles[t];if(r)switch(typeof r){case"string":e&&(this.domElement.style.cursor=r);break;case"function":r(t);break;case"object":e&&Object.assign(this.domElement.style,r);break}else e&&typeof t=="string"&&!Object.prototype.hasOwnProperty.call(this.cursorStyles,t)&&(this.domElement.style.cursor=t)}get pointer(){return this._rootPointerEvent}_onPointerDown(t){if(!this.features.click)return;this.rootBoundary.rootTarget=this.renderer.lastObjectRendered;let e=this._normalizeToPointerData(t);this.autoPreventDefault&&e[0].isNormalized&&(t.cancelable||!("cancelable"in t))&&t.preventDefault();for(let r=0,s=e.length;r<s;r++){let n=e[r],o=this._bootstrapEvent(this._rootPointerEvent,n);this.rootBoundary.mapEvent(o)}this.setCursor(this.rootBoundary.cursor)}_onPointerMove(t){if(!this.features.move)return;this.rootBoundary.rootTarget=this.renderer.lastObjectRendered,Me.pointerMoved();let e=this._normalizeToPointerData(t);for(let r=0,s=e.length;r<s;r++){let n=this._bootstrapEvent(this._rootPointerEvent,e[r]);this.rootBoundary.mapEvent(n)}this.setCursor(this.rootBoundary.cursor)}_onPointerUp(t){if(!this.features.click)return;this.rootBoundary.rootTarget=this.renderer.lastObjectRendered;let e=t.target;t.composedPath&&t.composedPath().length>0&&(e=t.composedPath()[0]);let r=e!==this.domElement?"outside":"",s=this._normalizeToPointerData(t);for(let n=0,o=s.length;n<o;n++){let a=this._bootstrapEvent(this._rootPointerEvent,s[n]);a.type+=r,this.rootBoundary.mapEvent(a)}this.setCursor(this.rootBoundary.cursor)}_onPointerOverOut(t){if(!this.features.click)return;this.rootBoundary.rootTarget=this.renderer.lastObjectRendered;let e=this._normalizeToPointerData(t);for(let r=0,s=e.length;r<s;r++){let n=this._bootstrapEvent(this._rootPointerEvent,e[r]);this.rootBoundary.mapEvent(n)}this.setCursor(this.rootBoundary.cursor)}onWheel(t){if(!this.features.wheel)return;let e=this.normalizeWheelEvent(t);this.rootBoundary.rootTarget=this.renderer.lastObjectRendered,this.rootBoundary.mapEvent(e)}setTargetElement(t){this._removeEvents(),this.domElement=t,Me.domElement=t,this._addEvents()}_addEvents(){if(this._eventsAdded||!this.domElement)return;Me.addTickerListener();let t=this.domElement.style;t&&(globalThis.navigator.msPointerEnabled?(t.msContentZooming="none",t.msTouchAction="none"):this.supportsPointerEvents&&(t.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;Me.removeTickerListener();let t=this.domElement.style;t&&(globalThis.navigator.msPointerEnabled?(t.msContentZooming="",t.msTouchAction=""):this.supportsPointerEvents&&(t.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(t,e,r){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;t.x=(e-s.left)*(this.domElement.width/s.width)*n,t.y=(r-s.top)*(this.domElement.height/s.height)*n}_normalizeToPointerData(t){let e=[];if(this.supportsTouchEvents&&t instanceof TouchEvent)for(let r=0,s=t.changedTouches.length;r<s;r++){let n=t.changedTouches[r];typeof n.button>"u"&&(n.button=0),typeof n.buttons>"u"&&(n.buttons=1),typeof n.isPrimary>"u"&&(n.isPrimary=t.touches.length===1&&t.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=t.type,n.altKey??(n.altKey=t.altKey),n.ctrlKey??(n.ctrlKey=t.ctrlKey),n.metaKey??(n.metaKey=t.metaKey),n.shiftKey??(n.shiftKey=t.shiftKey),e.push(n)}else if(!globalThis.MouseEvent||t instanceof MouseEvent&&(!this.supportsPointerEvents||!(t instanceof globalThis.PointerEvent))){let r=t;typeof r.isPrimary>"u"&&(r.isPrimary=!0),typeof r.width>"u"&&(r.width=1),typeof r.height>"u"&&(r.height=1),typeof r.tiltX>"u"&&(r.tiltX=0),typeof r.tiltY>"u"&&(r.tiltY=0),typeof r.pointerType>"u"&&(r.pointerType="mouse"),typeof r.pointerId>"u"&&(r.pointerId=_S),typeof r.pressure>"u"&&(r.pressure=.5),typeof r.twist>"u"&&(r.twist=0),typeof r.tangentialPressure>"u"&&(r.tangentialPressure=0),r.isNormalized=!0,e.push(r)}else e.push(t);return e}normalizeWheelEvent(t){let e=this._rootWheelEvent;return this._transferMouseData(e,t),e.deltaX=t.deltaX,e.deltaY=t.deltaY,e.deltaZ=t.deltaZ,e.deltaMode=t.deltaMode,this.mapPositionToPoint(e.screen,t.clientX,t.clientY),e.global.copyFrom(e.screen),e.offset.copyFrom(e.screen),e.nativeEvent=t,e.type=t.type,e}_bootstrapEvent(t,e){return t.originalEvent=null,t.nativeEvent=e,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,this._transferMouseData(t,e),this.mapPositionToPoint(t.screen,e.clientX,e.clientY),t.global.copyFrom(t.screen),t.offset.copyFrom(t.screen),t.isTrusted=e.isTrusted,t.type==="pointerleave"&&(t.type="pointerout"),t.type.startsWith("mouse")&&(t.type=t.type.replace("mouse","pointer")),t.type.startsWith("touch")&&(t.type=yS[t.type]||t.type),t}_transferMouseData(t,e){t.isTrusted=e.isTrusted,t.srcElement=e.srcElement,t.timeStamp=performance.now(),t.type=e.type,t.altKey=e.altKey,t.button=e.button,t.buttons=e.buttons,t.client.x=e.clientX,t.client.y=e.clientY,t.ctrlKey=e.ctrlKey,t.metaKey=e.metaKey,t.movement.x=e.movementX,t.movement.y=e.movementY,t.page.x=e.pageX,t.page.y=e.pageY,t.relatedTarget=null,t.shiftKey=e.shiftKey}};wc.extension={name:"events",type:[y.WebGLSystem,y.CanvasSystem,y.WebGPUSystem],priority:-1};wc.defaultEventFeatures={move:!0,globalMove:!0,click:!0,wheel:!0};Lo=wc});var Bp,Ip=p(()=>{Cc();Go();Bp={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(i){this.eventMode=i?"static":"passive"},_internalEventMode:void 0,get eventMode(){return this._internalEventMode??Lo.defaultEventMode},set eventMode(i){this._internalEventMode=i},isInteractive(){return this.eventMode==="static"||this.eventMode==="dynamic"},interactiveChildren:!0,hitArea:null,addEventListener(i,t,e){let r=typeof e=="boolean"&&e||typeof e=="object"&&e.capture,s=typeof e=="object"?e.signal:void 0,n=typeof e=="object"?e.once===!0:!1,o=typeof t=="function"?void 0:t;i=r?`${i}capture`:i;let a=typeof t=="function"?t:t.handleEvent,l=this;s&&s.addEventListener("abort",()=>{l.off(i,a,o)}),n?l.once(i,a,o):l.on(i,a,o)},removeEventListener(i,t,e){let r=typeof e=="boolean"&&e||typeof e=="object"&&e.capture,s=typeof t=="function"?void 0:t;i=r?`${i}capture`:i,t=typeof t=="function"?t:t.handleEvent,this.off(i,t,s)},dispatchEvent(i){if(!(i instanceof ur))throw new Error("Container cannot propagate events outside of the Federated Events API");return i.defaultPrevented=!1,i.path=null,i.target=this,i.manager.dispatchEvent(i),!i.defaultPrevented}}});var Gp=p(()=>{P();Pe();Cc();Ip();z.add(Lo);z.mixin(mt,Bp)});var Ec,Fp=p(()=>{"use strict";Ec=(i=>(i[i.Low=0]="Low",i[i.Normal=1]="Normal",i[i.High=2]="High",i))(Ec||{})});var Up,Dp=p(()=>{"use strict";Up={createCanvas:(i,t)=>{let e=document.createElement("canvas");return e.width=i,e.height=t,e},createImage:()=>new Image,getCanvasRenderingContext2D:()=>CanvasRenderingContext2D,getWebGLRenderingContext:()=>WebGLRenderingContext,getNavigator:()=>navigator,getBaseUrl:()=>document.baseURI??window.location.href,getFontFaceSet:()=>document.fonts,fetch:(i,t)=>fetch(i,t),parseXML:i=>new DOMParser().parseFromString(i,"text/xml")}});var Lp,W,xt=p(()=>{Dp();Lp=Up,W={get(){return Lp},set(i){Lp=i}}});function Ae(i){if(typeof i!="string")throw new TypeError(`Path must be a string. Received ${JSON.stringify(i)}`)}function Ps(i){return i.split("?")[0].split("#")[0]}function bS(i){return i.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function vS(i,t,e){return i.replace(new RegExp(bS(t),"g"),e)}function SS(i,t){let e="",r=0,s=-1,n=0,o=-1;for(let a=0;a<=i.length;++a){if(a<i.length)o=i.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(e.length<2||r!==2||e.charCodeAt(e.length-1)!==46||e.charCodeAt(e.length-2)!==46){if(e.length>2){let l=e.lastIndexOf("/");if(l!==e.length-1){l===-1?(e="",r=0):(e=e.slice(0,l),r=e.length-1-e.lastIndexOf("/")),s=a,n=0;continue}}else if(e.length===2||e.length===1){e="",r=0,s=a,n=0;continue}}t&&(e.length>0?e+="/..":e="..",r=2)}else e.length>0?e+=`/${i.slice(s+1,a)}`:e=i.slice(s+1,a),r=a-s-1;s=a,n=0}else o===46&&n!==-1?++n:n=-1}return e}var Lr,Pc=p(()=>{xt();Lr={toPosix(i){return vS(i,"\\","/")},isUrl(i){return/^https?:/.test(this.toPosix(i))},isDataUrl(i){return/^data:([a-z]+\/[a-z0-9-+.]+(;[a-z0-9-.!#$%*+.{}|~`]+=[a-z0-9-.!#$%*+.{}()_|~`]+)*)?(;base64)?,([a-z0-9!$&',()*+;=\-._~:@\/?%\s<>]*?)$/i.test(i)},isBlobUrl(i){return i.startsWith("blob:")},hasProtocol(i){return/^[^/:]+:/.test(this.toPosix(i))},getProtocol(i){Ae(i),i=this.toPosix(i);let t=/^file:\/\/\//.exec(i);if(t)return t[0];let e=/^[^/:]+:\/{0,2}/.exec(i);return e?e[0]:""},toAbsolute(i,t,e){if(Ae(i),this.isDataUrl(i)||this.isBlobUrl(i))return i;let r=Ps(this.toPosix(t??W.get().getBaseUrl())),s=Ps(this.toPosix(e??this.rootname(r)));return i=this.toPosix(i),i.startsWith("/")?Lr.join(s,i.slice(1)):this.isAbsolute(i)?i:this.join(r,i)},normalize(i){if(Ae(i),i.length===0)return".";if(this.isDataUrl(i)||this.isBlobUrl(i))return i;i=this.toPosix(i);let t="",e=i.startsWith("/");this.hasProtocol(i)&&(t=this.rootname(i),i=i.slice(t.length));let r=i.endsWith("/");return i=SS(i,!1),i.length>0&&r&&(i+="/"),e?`/${i}`:t+i},isAbsolute(i){return Ae(i),i=this.toPosix(i),this.hasProtocol(i)?!0:i.startsWith("/")},join(...i){if(i.length===0)return".";let t;for(let e=0;e<i.length;++e){let r=i[e];if(Ae(r),r.length>0)if(t===void 0)t=r;else{let s=i[e-1]??"";this.joinExtensions.includes(this.extname(s).toLowerCase())?t+=`/../${r}`:t+=`/${r}`}}return t===void 0?".":this.normalize(t)},dirname(i){if(Ae(i),i.length===0)return".";i=this.toPosix(i);let t=i.charCodeAt(0),e=t===47,r=-1,s=!0,n=this.getProtocol(i),o=i;i=i.slice(n.length);for(let a=i.length-1;a>=1;--a)if(t=i.charCodeAt(a),t===47){if(!s){r=a;break}}else s=!1;return r===-1?e?"/":this.isUrl(o)?n+i:n:e&&r===1?"//":n+i.slice(0,r)},rootname(i){Ae(i),i=this.toPosix(i);let t="";if(i.startsWith("/")?t="/":t=this.getProtocol(i),this.isUrl(i)){let e=i.indexOf("/",t.length);e!==-1?t=i.slice(0,e):t=i,t.endsWith("/")||(t+="/")}return t},basename(i,t){Ae(i),t&&Ae(t),i=Ps(this.toPosix(i));let e=0,r=-1,s=!0,n;if(t!==void 0&&t.length>0&&t.length<=i.length){if(t.length===i.length&&t===i)return"";let o=t.length-1,a=-1;for(n=i.length-1;n>=0;--n){let l=i.charCodeAt(n);if(l===47){if(!s){e=n+1;break}}else a===-1&&(s=!1,a=n+1),o>=0&&(l===t.charCodeAt(o)?--o===-1&&(r=n):(o=-1,r=a))}return e===r?r=a:r===-1&&(r=i.length),i.slice(e,r)}for(n=i.length-1;n>=0;--n)if(i.charCodeAt(n)===47){if(!s){e=n+1;break}}else r===-1&&(s=!1,r=n+1);return r===-1?"":i.slice(e,r)},extname(i){Ae(i),i=Ps(this.toPosix(i));let t=-1,e=0,r=-1,s=!0,n=0;for(let o=i.length-1;o>=0;--o){let a=i.charCodeAt(o);if(a===47){if(!s){e=o+1;break}continue}r===-1&&(s=!1,r=o+1),a===46?t===-1?t=o:n!==1&&(n=1):t!==-1&&(n=-1)}return t===-1||r===-1||n===0||n===1&&t===r-1&&t===e+1?"":i.slice(t,r)},parse(i){Ae(i);let t={root:"",dir:"",base:"",ext:"",name:""};if(i.length===0)return t;i=Ps(this.toPosix(i));let e=i.charCodeAt(0),r=this.isAbsolute(i),s,n="";t.root=this.rootname(i),r||this.hasProtocol(i)?s=1:s=0;let o=-1,a=0,l=-1,c=!0,h=i.length-1,u=0;for(;h>=s;--h){if(e=i.charCodeAt(h),e===47){if(!c){a=h+1;break}continue}l===-1&&(c=!1,l=h+1),e===46?o===-1?o=h:u!==1&&(u=1):o!==-1&&(u=-1)}return o===-1||l===-1||u===0||u===1&&o===l-1&&o===a+1?l!==-1&&(a===0&&r?t.base=t.name=i.slice(1,l):t.base=t.name=i.slice(a,l)):(a===0&&r?(t.name=i.slice(1,o),t.base=i.slice(1,l)):(t.name=i.slice(a,o),t.base=i.slice(a,l)),t.ext=i.slice(o,l)),t.dir=this.dirname(i),n&&(t.dir=n+t.dir),t},sep:"/",delimiter:":",joinExtensions:[".html"]}});var dr,Mc=p(()=>{"use strict";dr=(i,t,e=!1)=>(Array.isArray(i)||(i=[i]),t?i.map(r=>typeof r=="string"||e?t(r):r):i)});function Op(i,t,e,r,s){let n=t[e];for(let o=0;o<n.length;o++){let a=n[o];e<t.length-1?Op(i.replace(r[e],a),t,e+1,r,s):s.push(i.replace(r[e],a))}}function Np(i){let t=/\{(.*?)\}/g,e=i.match(t),r=[];if(e){let s=[];e.forEach(n=>{let o=n.substring(1,n.length-1).split(",");s.push(o)}),Op(i,s,0,e,r)}else r.push(i);return r}var zp=p(()=>{"use strict"});var Ac,Hp=p(()=>{"use strict";Ac=i=>!Array.isArray(i)});function TS(i){return i.split(".").pop().split("?").shift().split("#").shift()}var Ms,Wp=p(()=>{ht();Pc();Mc();zp();Hp();Ms=class{constructor(){this._defaultBundleIdentifierOptions={connector:"-",createBundleAssetId:(t,e)=>`${t}${this._bundleIdConnector}${e}`,extractAssetIdFromBundle:(t,e)=>e.replace(`${t}${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(t){if(this._bundleIdConnector=t.connector??this._bundleIdConnector,this._createBundleAssetId=t.createBundleAssetId??this._createBundleAssetId,this._extractAssetIdFromBundle=t.extractAssetIdFromBundle??this._extractAssetIdFromBundle,this._extractAssetIdFromBundle("foo",this._createBundleAssetId("foo","bar"))!=="bar")throw new Error("[Resolver] GenerateBundleAssetId are not working correctly")}prefer(...t){t.forEach(e=>{this._preferredOrder.push(e),e.priority||(e.priority=Object.keys(e.params))}),this._resolverHash={}}set basePath(t){this._basePath=t}get basePath(){return this._basePath}set rootPath(t){this._rootPath=t}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(t){if(typeof t=="string")this._defaultSearchParams=t;else{let e=t;this._defaultSearchParams=Object.keys(e).map(r=>`${encodeURIComponent(r)}=${encodeURIComponent(e[r])}`).join("&")}}getAlias(t){let{alias:e,src:r}=t;return dr(e||r,n=>typeof n=="string"?n:Array.isArray(n)?n.map(o=>o?.src??o):n?.src?n.src:n,!0)}removeAlias(t,e){this._assetMap[t]&&(e&&e!==this._resolverHash[t]||(delete this._resolverHash[t],delete this._assetMap[t]))}addManifest(t){this._manifest&&L("[Resolver] Manifest already exists, this will be overwritten"),this._manifest=t,t.bundles.forEach(e=>{this.addBundle(e.name,e.assets)})}addBundle(t,e){let r=[],s=e;Array.isArray(e)||(s=Object.entries(e).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,l;if(typeof a=="string"){let c=this._createBundleAssetId(t,a);r.push(c),l=[a,c]}else{let c=a.map(h=>this._createBundleAssetId(t,h));r.push(...c),l=[...a,...c]}this.add({...n,alias:l,src:o})}),this._bundles[t]=r}add(t){let e=[];Array.isArray(t)?e.push(...t):e.push(t);let r;r=n=>{this.hasKey(n)&&L(`[Resolver] already has key: ${n} overwriting`)},dr(e).forEach(n=>{let{src:o}=n,{data:a,format:l,loadParser:c,parser:h}=n,u=dr(o).map(g=>typeof g=="string"?Np(g):Array.isArray(g)?g:[g]),d=this.getAlias(n);Array.isArray(d)?d.forEach(r):r(d);let f=[],m=g=>{let _=this._parsers.find(x=>x.test(g));return{src:g,..._?.parse(g)}};u.forEach(g=>{g.forEach(_=>{let x={};if(typeof _!="object"?x=m(_):(a=_.data??a,l=_.format??l,(_.loadParser||_.parser)&&(c=_.loadParser??c,h=_.parser??h),x={...m(_.src),..._}),!d)throw new Error(`[Resolver] alias is undefined for this asset: ${x.src}`);x=this._buildResolvedAsset(x,{aliases:d,data:a,format:l,loadParser:c,parser:h,progressSize:n.progressSize}),f.push(x)})}),d.forEach(g=>{this._assetMap[g]=f})})}resolveBundle(t){let e=Ac(t);t=dr(t);let r={};return t.forEach(s=>{let n=this._bundles[s];if(n){let o=this.resolve(n),a={};for(let l in o){let c=o[l];a[this._extractAssetIdFromBundle(s,l)]=c}r[s]=a}}),e?r[t[0]]:r}resolveUrl(t){let e=this.resolve(t);if(typeof t!="string"){let r={};for(let s in e)r[s]=e[s].src;return r}return e.src}resolve(t){let e=Ac(t);t=dr(t);let r={};return t.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(l=>{let c=n.filter(h=>h[a]?h[a]===l:!1);c.length&&(n=c)})}),this._resolverHash[s]=n[0]}else this._resolverHash[s]=this._buildResolvedAsset({alias:[s],src:s},{});r[s]=this._resolverHash[s]}),e?r[t[0]]:r}hasKey(t){return!!this._assetMap[t]}hasBundle(t){return!!this._bundles[t]}_getPreferredOrder(t){for(let e=0;e<t.length;e++){let r=t[e],s=this._preferredOrder.find(n=>n.params.format.includes(r.format));if(s)return s}return this._preferredOrder[0]}_appendDefaultSearchParams(t){if(!this._defaultSearchParams)return t;let e=/\?/.test(t)?"&":"?";return`${t}${e}${this._defaultSearchParams}`}_buildResolvedAsset(t,e){let{aliases:r,data:s,loadParser:n,parser:o,format:a,progressSize:l}=e;return(this._basePath||this._rootPath)&&(t.src=Lr.toAbsolute(t.src,this._basePath,this._rootPath)),t.alias=r??t.alias??[t.src],t.src=this._appendDefaultSearchParams(t.src),t.data={...s||{},...t.data},t.loadParser=n??t.loadParser,t.parser=o??t.parser,t.format=a??t.format??TS(t.src),l!==void 0&&(t.progressSize=l),t}};Ms.RETINA_PREFIX=/@([0-9\.]+)x/});var Rc,Vp=p(()=>{"use strict";Rc=(i,t)=>{let e=t.split("?")[1];return e&&(i+=`?${e}`),i}});var jp,kc,Xp=p(()=>{Yt();$t();gt();jp=class As{constructor(t,e){this.linkedSheets=[];let r=t;t?.source instanceof st&&(r={texture:t,data:e});let{texture:s,data:n,cachePrefix:o=""}=r;this.cachePrefix=o,this._texture=s instanceof U?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(t=>{this._callback=t,this._batchIndex=0,this._frameKeys.length<=As.BATCH_SIZE?(this._processFrames(0),this._processAnimations(),this._parseComplete()):this._nextBatch()})}parseSync(){return this._processFrames(0,!0),this._processAnimations(),this.textures}_processFrames(t,e=!1){let r=t,s=e?1/0:As.BATCH_SIZE;for(;r-t<s&&r<this._frameKeys.length;){let n=this._frameKeys[r],o=this._frames[n],a=o.frame;if(a){let l=null,c=null,h=o.trimmed!==!1&&o.sourceSize?o.sourceSize:o.frame,u=new J(0,0,Math.floor(h.w)/this.resolution,Math.floor(h.h)/this.resolution);o.rotated?l=new J(Math.floor(a.x)/this.resolution,Math.floor(a.y)/this.resolution,Math.floor(a.h)/this.resolution,Math.floor(a.w)/this.resolution):l=new J(Math.floor(a.x)/this.resolution,Math.floor(a.y)/this.resolution,Math.floor(a.w)/this.resolution,Math.floor(a.h)/this.resolution),o.trimmed!==!1&&o.spriteSourceSize&&(c=new J(Math.floor(o.spriteSourceSize.x)/this.resolution,Math.floor(o.spriteSourceSize.y)/this.resolution,Math.floor(a.w)/this.resolution,Math.floor(a.h)/this.resolution)),this.textures[n]=new U({source:this.textureSource,frame:l,orig:u,trim:c,rotate:o.rotated?2:0,defaultAnchor:o.anchor,defaultBorders:o.borders,label:n.toString()})}r++}}_processAnimations(){let t=this.data.animations||{};for(let e in t){this.animations[e]=[];for(let r=0;r<t[e].length;r++){let s=t[e][r];this.animations[e].push(this.textures[s])}}}_parseComplete(){let t=this._callback;this._callback=null,this._batchIndex=0,t.call(this,this.textures)}_nextBatch(){this._processFrames(this._batchIndex*As.BATCH_SIZE),this._batchIndex++,setTimeout(()=>{this._batchIndex*As.BATCH_SIZE<this._frameKeys.length?this._nextBatch():(this._processAnimations(),this._parseComplete())},0)}destroy(t=!1){for(let e in this.textures)this.textures[e].destroy();this._frames=null,this._frameKeys=null,this.data=null,this.textures=null,t&&(this._texture?.destroy(),this.textureSource.destroy()),this._texture=null,this.textureSource=null,this.linkedSheets=[]}};jp.BATCH_SIZE=1e3;kc=jp});function Yp(i,t,e){let r={};if(i.forEach(s=>{r[s]=t}),Object.keys(t.textures).forEach(s=>{r[`${t.cachePrefix}${s}`]=t.textures[s]}),!e){let s=Lr.dirname(i[0]);t.linkedSheets.forEach((n,o)=>{let a=Yp([`${s}/${t.data.meta.related_multi_packs[o]}`],n,!0);Object.assign(r,a)})}return r}var wS,$p,qp=p(()=>{Fp();Wp();Vp();P();gt();Pc();Xp();wS=["jpg","png","jpeg","avif","webp","basis","etc2","bc7","bc6h","bc5","bc4","bc3","bc2","bc1","eac","astc"];$p={extension:y.Asset,cache:{test:i=>i instanceof kc,getCacheableAssets:(i,t)=>Yp(i,t,!1)},resolver:{extension:{type:y.ResolveParser,name:"resolveSpritesheet"},test:i=>{let e=i.split("?")[0].split("."),r=e.pop(),s=e.pop();return r==="json"&&wS.includes(s)},parse:i=>{let t=i.split(".");return{resolution:parseFloat(Ms.RETINA_PREFIX.exec(i)?.[1]??"1"),format:t[t.length-2],src:i}}},loader:{name:"spritesheetLoader",id:"spritesheet",extension:{type:y.LoadParser,priority:Ec.Normal,name:"spritesheetLoader"},async testParse(i,t){return Lr.extname(t.src).toLowerCase()===".json"&&!!i.frames},async parse(i,t,e){let{texture:r,imageFilename:s,textureOptions:n,cachePrefix:o}=t?.data??{},a=Lr.dirname(t.src);a&&a.lastIndexOf("/")!==a.length-1&&(a+="/");let l;if(r instanceof U)l=r;else{let u=Rc(a+(s??i.meta.image),t.src);l=(await e.load([{src:u,data:n}]))[u]}let c=new kc({texture:l.source,data:i,cachePrefix:o});await c.parse();let h=i?.meta?.related_multi_packs;if(Array.isArray(h)){let u=[];for(let f of h){if(typeof f!="string")continue;let m=a+f;t.data?.ignoreMultiPack||(m=Rc(m,t.src),u.push(e.load({src:m,data:{textureOptions:n,ignoreMultiPack:!0}})))}let d=await Promise.all(u);c.linkedSheets=d,d.forEach(f=>{f.linkedSheets=[c].concat(c.linkedSheets.filter(m=>m!==f))})}return c},async unload(i,t,e){await e.unload(i.textureSource._sourceOrigin),i.destroy(!1)}}}});var Oo=p(()=>{P();qp();z.add($p)});function No(i,t,e){let{width:r,height:s}=e.orig,n=e.trim;if(n){let o=n.width,a=n.height;i.minX=n.x-t._x*r,i.maxX=i.minX+o,i.minY=n.y-t._y*s,i.maxY=i.minY+a}else i.minX=-t._x*r,i.maxX=i.minX+r,i.minY=-t._y*s,i.maxY=i.minY+s}var Bc=p(()=>{"use strict"});var pe,zo=p(()=>{bo();gt();Bc();yt();Cs();pe=class i extends Le{constructor(t=U.EMPTY){t instanceof U&&(t={texture:t});let{texture:e=U.EMPTY,anchor:r,roundPixels:s,width:n,height:o,...a}=t;super({label:"Sprite",...a}),this.renderPipeId="sprite",this.batched=!0,this._visualBounds={minX:0,maxX:1,minY:0,maxY:0},this._anchor=new Gt({_onUpdate:()=>{this.onViewUpdate()}}),r?this.anchor=r:e.defaultAnchor&&(this.anchor=e.defaultAnchor),this.texture=e,this.allowChildren=!1,this.roundPixels=s??!1,n!==void 0&&(this.width=n),o!==void 0&&(this.height=o)}static from(t,e=!1){return t instanceof U?new i(t):new i(U.from(t,e))}set texture(t){t||(t=U.EMPTY);let e=this._texture;e!==t&&(e&&e.dynamic&&e.off("update",this.onViewUpdate,this),t.dynamic&&t.on("update",this.onViewUpdate,this),this._texture=t,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 No(this._visualBounds,this._anchor,this._texture),this._visualBounds}get sourceBounds(){return O("8.6.1","Sprite.sourceBounds is deprecated, use visualBounds instead."),this.visualBounds}updateBounds(){let t=this._anchor,e=this._texture,r=this._bounds,{width:s,height:n}=e.orig;r.minX=-t._x*s,r.maxX=r.minX+s,r.minY=-t._y*n,r.maxY=r.minY+n}destroy(t=!1){if(super.destroy(t),typeof t=="boolean"?t:t?.texture){let r=typeof t=="boolean"?t:t?.textureSource;this._texture.destroy(r)}this._texture=null,this._visualBounds=null,this._bounds=null,this._anchor=null}get anchor(){return this._anchor}set anchor(t){typeof t=="number"?this._anchor.set(t):this._anchor.copyFrom(t)}get width(){return Math.abs(this.scale.x)*this._texture.orig.width}set width(t){this._setWidth(t,this._texture.orig.width),this._width=t}get height(){return Math.abs(this.scale.y)*this._texture.orig.height}set height(t){this._setHeight(t,this._texture.orig.height),this._height=t}getSize(t){return t||(t={}),t.width=Math.abs(this.scale.x)*this._texture.orig.width,t.height=Math.abs(this.scale.y)*this._texture.orig.height,t}setSize(t,e){typeof t=="object"?(e=t.height??t.width,t=t.width):e??(e=t),t!==void 0&&this._setWidth(t,this._texture.orig.width),e!==void 0&&this._setHeight(e,this._texture.orig.height)}}});function Ho(i,t,e){let r=CS;i.measurable=!0,gi(i,e,r),t.addBoundsMask(r),i.measurable=!1}var CS,Ic=p(()=>{ie();xs();CS=new dt});function Wo(i,t,e){let r=de.get();i.measurable=!0;let s=Ut.get().identity(),n=Kp(i,e,s);_i(i,r,n),i.measurable=!1,t.addBoundsMask(r),Ut.return(s),de.return(r)}function Kp(i,t,e){return i?(i!==t&&(Kp(i.parent,t,e),i.updateLocalTransform(),e.append(i.localTransform)),e):(L("Mask bounds, renderable is not inside the root container"),e)}var Gc=p(()=>{Mo();Mr();ht()});var Rs,Zp=p(()=>{P();zo();Ic();Gc();Rs=class{constructor(t){this.priority=0,this.inverse=!1,this.channel="red",this.pipe="alphaMask",t?.mask&&this.init(t.mask)}init(t){this.mask=t,this.renderMaskToTexture=!(t instanceof pe),this.mask.renderable=this.renderMaskToTexture,this.mask.includeInBuild=!this.renderMaskToTexture,this.mask.measurable=!1}reset(){this.mask!==null&&(this.mask.measurable=!0,this.mask=null)}addBounds(t,e){this.inverse||Ho(this.mask,t,e)}addLocalBounds(t,e){Wo(this.mask,t,e)}containsPoint(t,e){let r=this.mask;return e(r,t)}destroy(){this.reset()}static test(t){return t instanceof pe}};Rs.extension=y.MaskEffect});var ks,Qp=p(()=>{P();ks=class{constructor(t){this.priority=0,this.pipe="colorMask",t?.mask&&this.init(t.mask)}init(t){this.mask=t}destroy(){}static test(t){return typeof t=="number"}};ks.extension=y.MaskEffect});var Bs,Jp=p(()=>{P();Pe();Ic();Gc();Bs=class{constructor(t){this.priority=0,this.pipe="stencilMask",t?.mask&&this.init(t.mask)}init(t){this.mask=t,this.mask.includeInBuild=!1,this.mask.measurable=!1}reset(){this.mask!==null&&(this.mask.measurable=!0,this.mask.includeInBuild=!0,this.mask=null)}addBounds(t,e){Ho(this.mask,t,e)}addLocalBounds(t,e){Wo(this.mask,t,e)}containsPoint(t,e){let r=this.mask;return e(r,t)}destroy(){this.reset()}static test(t){return t instanceof mt}};Bs.extension=y.MaskEffect});var wt,fr=p(()=>{xt();P();$t();wt=class extends st{constructor(t){t.resource||(t.resource=W.get().createCanvas()),t.width||(t.width=t.resource.width,t.autoDensity||(t.width/=t.resolution)),t.height||(t.height=t.resource.height,t.autoDensity||(t.height/=t.resolution)),super(t),this.uploadMethodId="image",this.autoDensity=t.autoDensity,this.resizeCanvas(),this.transparent=!!t.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(t=this.width,e=this.height,r=this._resolution){let s=super.resize(t,e,r);return s&&this.resizeCanvas(),s}static test(t){return globalThis.HTMLCanvasElement&&t instanceof HTMLCanvasElement||globalThis.OffscreenCanvas&&t instanceof OffscreenCanvas}get context2D(){return this._context2D||(this._context2D=this.resource.getContext("2d"))}};wt.extension=y.TextureSource});var Re,Vo=p(()=>{P();$t();Re=class extends st{constructor(t){super(t),this.uploadMethodId="image",this.autoGarbageCollect=!0}static test(t){return globalThis.HTMLImageElement&&t instanceof HTMLImageElement||typeof ImageBitmap<"u"&&t instanceof ImageBitmap||globalThis.VideoFrame&&t instanceof VideoFrame}};Re.extension=y.TextureSource});async function tm(){return Fc??(Fc=(async()=>{let t=W.get().createCanvas(1,1).getContext("webgl");if(!t)return"premultiply-alpha-on-upload";let e=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(!e)return"premultiply-alpha-on-upload";let r=t.createTexture();t.bindTexture(t.TEXTURE_2D,r);let s=t.createFramebuffer();t.bindFramebuffer(t.FRAMEBUFFER,s),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,r,0),t.pixelStorei(t.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),t.pixelStorei(t.UNPACK_COLORSPACE_CONVERSION_WEBGL,t.NONE),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,t.UNSIGNED_BYTE,e);let n=new Uint8Array(4);return t.readPixels(0,0,1,1,t.RGBA,t.UNSIGNED_BYTE,n),t.deleteFramebuffer(s),t.deleteTexture(r),t.getExtension("WEBGL_lose_context")?.loseContext(),n[0]<=n[3]?"premultiplied-alpha":"premultiply-alpha-on-upload"})()),Fc}var Fc,em=p(()=>{xt()});var jo,im,sm=p(()=>{P();Si();em();$t();jo=class rm extends st{constructor(t){super(t),this.isReady=!1,this.uploadMethodId="video",t={...rm.defaultOptions,...t},this._autoUpdate=!0,this._isConnectedToTicker=!1,this._updateFPS=t.updateFPS||0,this._msToNextUpdate=0,this.autoPlay=t.autoPlay!==!1,this.alphaMode=t.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),this._onLoadedMetadata=this._onLoadedMetadata.bind(this),t.autoLoad!==!1&&this.load()}updateFrame(){if(!this.destroyed){if(this._updateFPS){let t=qt.shared.elapsedMS*this.resource.playbackRate;this._msToNextUpdate=Math.floor(this._msToNextUpdate-t)}(!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 t=this.resource,e=this.options;return(t.readyState===t.HAVE_ENOUGH_DATA||t.readyState===t.HAVE_FUTURE_DATA)&&t.width&&t.height&&(t.complete=!0),t.addEventListener("play",this._onPlayStart),t.addEventListener("pause",this._onPlayStop),t.addEventListener("seeked",this._onSeeked),this._isSourceReady()?this._mediaReady():(e.preload||t.addEventListener("canplay",this._onCanPlay),t.addEventListener("canplaythrough",this._onCanPlayThrough),t.addEventListener("error",this._onError,!0)),this.isValid||t.addEventListener("loadedmetadata",this._onLoadedMetadata),this.alphaMode=await tm(),this._load=new Promise((r,s)=>{this.isValid?r(this):(this._resolve=r,this._reject=s,e.preloadTimeoutMs!==void 0&&(this._preloadTimeout=setTimeout(()=>{this._onError(new ErrorEvent(`Preload exceeded timeout of ${e.preloadTimeoutMs}ms`))})),t.load())}),this._load}_onError(t){this.resource.removeEventListener("error",this._onError,!0),this.emit("error",t),this._reject&&(this._reject(t),this._reject=null,this._resolve=null)}_isSourcePlaying(){let t=this.resource;return!t.paused&&!t.ended}_isSourceReady(){return this.resource.readyState>2}_onPlayStart(){this._configureAutoUpdate()}_onPlayStop(){this._configureAutoUpdate()}_onSeeked(){this._autoUpdate&&!this._isSourcePlaying()&&(this._msToNextUpdate=0,this.updateFrame(),this._msToNextUpdate=0)}_onLoadedMetadata(){this.isValid&&this._mediaReady()}_onCanPlay(){this.resource.removeEventListener("canplay",this._onCanPlay),this._mediaReady()}_onCanPlayThrough(){this.resource.removeEventListener("canplaythrough",this._onCanPlayThrough),this._preloadTimeout&&(clearTimeout(this._preloadTimeout),this._preloadTimeout=void 0),this._mediaReady()}_mediaReady(){let t=this.resource;this.isValid&&(this.isReady=!0,this.resize(t.videoWidth,t.videoHeight)),this._msToNextUpdate=0,this.updateFrame(),this._msToNextUpdate=0,this._resolve&&this.isValid&&(this._resolve(this),this._resolve=null,this._reject=null),this._isSourcePlaying()?this._onPlayStart():this.autoPlay&&this.resource.play()}destroy(){this._configureAutoUpdate();let t=this.resource;t&&(t.removeEventListener("play",this._onPlayStart),t.removeEventListener("pause",this._onPlayStop),t.removeEventListener("seeked",this._onSeeked),t.removeEventListener("canplay",this._onCanPlay),t.removeEventListener("canplaythrough",this._onCanPlayThrough),t.removeEventListener("loadedmetadata",this._onLoadedMetadata),t.removeEventListener("error",this._onError,!0),t.pause(),t.src="",t.load()),super.destroy()}get autoUpdate(){return this._autoUpdate}set autoUpdate(t){t!==this._autoUpdate&&(this._autoUpdate=t,this._configureAutoUpdate())}get updateFPS(){return this._updateFPS}set updateFPS(t){t!==this._updateFPS&&(this._updateFPS=t,this._configureAutoUpdate())}_configureAutoUpdate(){this._autoUpdate&&this._isSourcePlaying()?!this._updateFPS&&this.resource.requestVideoFrameCallback?(this._isConnectedToTicker&&(qt.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||(qt.shared.add(this.updateFrame,this),this._isConnectedToTicker=!0,this._msToNextUpdate=0)):(this._videoFrameRequestCallbackHandle!==null&&(this.resource.cancelVideoFrameCallback(this._videoFrameRequestCallbackHandle),this._videoFrameRequestCallbackHandle=null),this._isConnectedToTicker&&(qt.shared.remove(this.updateFrame,this),this._isConnectedToTicker=!1,this._msToNextUpdate=0))}static test(t){return globalThis.HTMLVideoElement&&t instanceof HTMLVideoElement}};jo.extension=y.TextureSource;jo.defaultOptions={...st.defaultOptions,autoLoad:!0,autoPlay:!0,updateFPS:0,crossorigin:!0,loop:!1,muted:!0,playsinline:!0,preload:!1};jo.MIME_TYPES={ogv:"video/ogg",mov:"video/quicktime",m4v:"video/mp4"};im=jo});var Uc,Or,nm=p(()=>{ht();Mc();Uc=class{constructor(){this._parsers=[],this._cache=new Map,this._cacheMap=new Map}reset(){this._cacheMap.clear(),this._cache.clear()}has(t){return this._cache.has(t)}get(t){let e=this._cache.get(t);return e||L(`[Assets] Asset id ${t} was not found in the Cache`),e}set(t,e){let r=dr(t),s;for(let l=0;l<this.parsers.length;l++){let c=this.parsers[l];if(c.test(e)){s=c.getCacheableAssets(r,e);break}}let n=new Map(Object.entries(s||{}));s||r.forEach(l=>{n.set(l,e)});let o=[...n.keys()],a={cacheKeys:o,keys:r};r.forEach(l=>{this._cacheMap.set(l,a)}),o.forEach(l=>{let c=s?s[l]:e;this._cache.has(l)&&this._cache.get(l)!==c&&L("[Cache] already has key:",l),this._cache.set(l,n.get(l))})}remove(t){if(!this._cacheMap.has(t)){L(`[Assets] Asset id ${t} was not found in the Cache`);return}let e=this._cacheMap.get(t);e.cacheKeys.forEach(s=>{this._cache.delete(s)}),e.keys.forEach(s=>{this._cacheMap.delete(s)})}get parsers(){return this._parsers}},Or=new Uc});function om(i={}){let t=i&&i.resource,e=t?i.resource:i,r=t?i:{resource:i};for(let s=0;s<Dc.length;s++){let n=Dc[s];if(n.test(e))return new n(r)}throw new Error(`Could not find a source type for resource: ${r.resource}`)}function am(i={},t=!1){let e=i&&i.resource,r=e?i.resource:i,s=e?i:{resource:i};if(!t&&Or.has(r))return Or.get(r);let n=new U({source:om(s)});return n.on("destroy",()=>{Or.has(r)&&Or.remove(r)}),t||Or.set(r,n),n}function lm(i,t=!1){return typeof i=="string"?Or.get(i):i instanceof st?new U({source:i}):am(i,t)}var Dc,Lc=p(()=>{nm();P();$t();gt();Dc=[];z.handleByList(y.TextureSource,Dc);U.from=lm;st.from=om});var Xo=p(()=>{P();Zp();Qp();Jp();lc();fr();Vo();sm();Lc();z.add(Rs,ks,Bs,im,Re,wt,Gr)});function cm(i){let t=W.get().createCanvas(6,1),e=t.getContext("2d");return e.fillStyle=i,e.fillRect(0,0,6,1),t}function Yo(){if(Ci!==void 0)return Ci;try{let i=cm("#ff00ff"),t=cm("#ffff00"),r=W.get().createCanvas(6,1).getContext("2d");r.globalCompositeOperation="multiply",r.drawImage(i,0,0),r.drawImage(t,2,0);let s=r.getImageData(2,0,1,1);if(!s)Ci=!1;else{let n=s.data;Ci=n[0]===255&&n[1]===0&&n[2]===0}}catch{Ci=!1}return Ci}var Ci,Oc=p(()=>{xt()});var Z,Ei=p(()=>{Qt();xt();bs();Oc();Z={canvas:null,convertTintToImage:!1,cacheStepsPerColorChannel:8,canUseMultiply:Yo(),tintMethod:null,_canvasSourceCache:new WeakMap,_unpremultipliedCache:new WeakMap,getCanvasSource:i=>{let t=i.source,e=t?.resource;if(!e)return null;let r=t.alphaMode==="premultiplied-alpha",s=t.resourceWidth??t.pixelWidth,n=t.resourceHeight??t.pixelHeight,o=s!==t.pixelWidth||n!==t.pixelHeight;if(r){if((e instanceof HTMLCanvasElement||typeof OffscreenCanvas<"u"&&e instanceof OffscreenCanvas)&&!o)return e;let a=Z._unpremultipliedCache.get(t);if(a?.resourceId===t._resourceId)return a.canvas}if(e instanceof Uint8Array||e instanceof Uint8ClampedArray||e instanceof Int8Array||e instanceof Uint16Array||e instanceof Int16Array||e instanceof Uint32Array||e instanceof Int32Array||e instanceof Float32Array||e instanceof ArrayBuffer){let a=Z._canvasSourceCache.get(t);if(a?.resourceId===t._resourceId)return a.canvas;let l=W.get().createCanvas(t.pixelWidth,t.pixelHeight),c=l.getContext("2d"),h=c.createImageData(t.pixelWidth,t.pixelHeight),u=h.data,d=e instanceof ArrayBuffer?new Uint8Array(e):new Uint8Array(e.buffer,e.byteOffset,e.byteLength);if(t.format==="bgra8unorm")for(let f=0;f<u.length&&f+3<d.length;f+=4)u[f]=d[f+2],u[f+1]=d[f+1],u[f+2]=d[f],u[f+3]=d[f+3];else u.set(d.subarray(0,u.length));return c.putImageData(h,0,0),Z._canvasSourceCache.set(t,{canvas:l,resourceId:t._resourceId}),l}if(r){let a=W.get().createCanvas(t.pixelWidth,t.pixelHeight),l=a.getContext("2d",{willReadFrequently:!0});a.width=t.pixelWidth,a.height=t.pixelHeight,l.drawImage(e,0,0);let c=l.getImageData(0,0,a.width,a.height),h=c.data;for(let u=0;u<h.length;u+=4){let d=h[u+3];if(d>0){let f=255/d;h[u]=Math.min(255,h[u]*f+.5),h[u+1]=Math.min(255,h[u+1]*f+.5),h[u+2]=Math.min(255,h[u+2]*f+.5)}}return l.putImageData(c,0,0),Z._unpremultipliedCache.set(t,{canvas:a,resourceId:t._resourceId}),a}if(o){let a=Z._canvasSourceCache.get(t);if(a?.resourceId===t._resourceId)return a.canvas;let l=W.get().createCanvas(t.pixelWidth,t.pixelHeight),c=l.getContext("2d");return l.width=t.pixelWidth,l.height=t.pixelHeight,c.drawImage(e,0,0),Z._canvasSourceCache.set(t,{canvas:l,resourceId:t._resourceId}),l}return e},getTintedCanvas:(i,t)=>{let e=i.texture,r=Q.shared.setValue(t).toHex(),s=e.tintCache||(e.tintCache={}),n=s[r],o=e.source._resourceId;if(n?.tintId===o)return n;let a=n&&"getContext"in n?n:W.get().createCanvas();if(Z.tintMethod(e,t,a),a.tintId=o,Z.convertTintToImage&&a.toDataURL!==void 0){let l=W.get().createImage();l.src=a.toDataURL(),l.tintId=o,s[r]=l}else s[r]=a;return s[r]},getTintedPattern:(i,t)=>{let e=Q.shared.setValue(t).toHex(),r=i.patternCache||(i.patternCache={}),s=i.source._resourceId,n=r[e];return n?.tintId===s||(Z.canvas||(Z.canvas=W.get().createCanvas()),Z.tintMethod(i,t,Z.canvas),n=Z.canvas.getContext("2d").createPattern(Z.canvas,"repeat"),n.tintId=s,r[e]=n),n},applyPatternTransform:(i,t,e=!0)=>{if(!t)return;let r=i;if(!r.setTransform)return;let s=globalThis.DOMMatrix;if(!s)return;let n=new s([t.a,t.b,t.c,t.d,t.tx,t.ty]);r.setTransform(e?n.inverse():n)},tintWithMultiply:(i,t,e)=>{let r=e.getContext("2d"),s=i.frame.clone(),n=i.source._resolution??i.source.resolution??1,o=i.rotate;s.x*=n,s.y*=n,s.width*=n,s.height*=n;let a=it.isVertical(o),l=a?s.height:s.width,c=a?s.width:s.height;e.width=Math.ceil(l),e.height=Math.ceil(c),r.save(),r.fillStyle=Q.shared.setValue(t).toHex(),r.fillRect(0,0,l,c),r.globalCompositeOperation="multiply";let h=Z.getCanvasSource(i);if(!h){r.restore();return}o&&Z._applyInverseRotation(r,o,s.width,s.height),r.drawImage(h,s.x,s.y,s.width,s.height,0,0,s.width,s.height),r.globalCompositeOperation="destination-atop",r.drawImage(h,s.x,s.y,s.width,s.height,0,0,s.width,s.height),r.restore()},tintWithOverlay:(i,t,e)=>{let r=e.getContext("2d"),s=i.frame.clone(),n=i.source._resolution??i.source.resolution??1,o=i.rotate;s.x*=n,s.y*=n,s.width*=n,s.height*=n;let a=it.isVertical(o),l=a?s.height:s.width,c=a?s.width:s.height;e.width=Math.ceil(l),e.height=Math.ceil(c),r.save(),r.globalCompositeOperation="copy",r.fillStyle=Q.shared.setValue(t).toHex(),r.fillRect(0,0,l,c),r.globalCompositeOperation="destination-atop";let h=Z.getCanvasSource(i);if(!h){r.restore();return}o&&Z._applyInverseRotation(r,o,s.width,s.height),r.drawImage(h,s.x,s.y,s.width,s.height,0,0,s.width,s.height),r.restore()},tintWithPerPixel:(i,t,e)=>{let r=e.getContext("2d"),s=i.frame.clone(),n=i.source._resolution??i.source.resolution??1,o=i.rotate;s.x*=n,s.y*=n,s.width*=n,s.height*=n;let a=it.isVertical(o),l=a?s.height:s.width,c=a?s.width:s.height;e.width=Math.ceil(l),e.height=Math.ceil(c),r.save(),r.globalCompositeOperation="copy";let h=Z.getCanvasSource(i);if(!h){r.restore();return}o&&Z._applyInverseRotation(r,o,s.width,s.height),r.drawImage(h,s.x,s.y,s.width,s.height,0,0,s.width,s.height),r.restore();let u=t>>16&255,d=t>>8&255,f=t&255,m=r.getImageData(0,0,l,c),g=m.data;for(let _=0;_<g.length;_+=4)g[_]=g[_]*u/255,g[_+1]=g[_+1]*d/255,g[_+2]=g[_+2]*f/255;r.putImageData(m,0,0)},_applyInverseRotation:(i,t,e,r)=>{let s=it.inv(t),n=it.uX(s),o=it.uY(s),a=it.vX(s),l=it.vY(s),c=-Math.min(0,n*e,a*r,n*e+a*r),h=-Math.min(0,o*e,l*r,o*e+l*r);i.transform(n,o,a,l,c,h)}};Z.tintMethod=Z.canUseMultiply?Z.tintWithMultiply:Z.tintWithPerPixel});var Nc,rr,$o=p(()=>{xt();ys();Pr();Nc=class{constructor(t){this._canvasPool=Object.create(null),this.canvasOptions=t||{},this.enableFullScreen=!1}_createCanvasAndContext(t,e){let r=W.get().createCanvas();r.width=t,r.height=e;let s=r.getContext("2d");return{canvas:r,context:s}}getOptimalCanvasAndContext(t,e,r=1){t=Math.ceil(t*r-1e-6),e=Math.ceil(e*r-1e-6),t=Je(t),e=Je(e);let s=(t<<17)+(e<<1);this._canvasPool[s]||(this._canvasPool[s]=[]);let n=this._canvasPool[s].pop();return n||(n=this._createCanvasAndContext(t,e)),n}returnCanvasAndContext(t){let e=t.canvas,{width:r,height:s}=e,n=(r<<17)+(s<<1);t.context.resetTransform(),t.context.clearRect(0,0,r,s),this._canvasPool[n].push(t)}clear(){this._canvasPool={}}},rr=new Nc;ye.register(rr)});function qo(i){let t=i.length;if(t<6)return 1;let e=0;for(let r=0,s=i[t-2],n=i[t-1];r<t;r+=2){let o=i[r],a=i[r+1];e+=(o-s)*(a+n),s=o,n=a}return e<0?-1:1}var zc=p(()=>{"use strict"});function hm(i,t,e,r,s,n){let o=i-e,a=t-r,l=s-e,c=n-r,h=o*l+a*c,u=l*l+c*c,d=-1;u!==0&&(d=h/u);let f,m;d<0?(f=e,m=r):d>1?(f=s,m=n):(f=e+d*l,m=r+d*c);let g=i-f,_=t-m;return g*g+_*_}var um=p(()=>{"use strict"});function Hc(i,t,e,r,s,n,o,a){let l=o-e,c=a-r,h=s-e,u=n-r,d=i-e,f=t-r,m=l*l+c*c,g=l*h+c*u,_=l*d+c*f,x=h*h+u*u,b=h*d+u*f,v=1/(m*x-g*g),S=(x*_-g*b)*v,T=(m*b-g*_)*v;return S>=0&&T>=0&&S+T<1}var dm=p(()=>{"use strict"});var Ko,fm=p(()=>{Yt();Ko=class i{constructor(t=0,e=0,r=0){this.type="circle",this.x=t,this.y=e,this.radius=r}clone(){return new i(this.x,this.y,this.radius)}contains(t,e){if(this.radius<=0)return!1;let r=this.radius*this.radius,s=this.x-t,n=this.y-e;return s*=s,n*=n,s+n<=r}strokeContains(t,e,r,s=.5){if(this.radius===0)return!1;let n=this.x-t,o=this.y-e,a=this.radius,l=(1-s)*r,c=Math.sqrt(n*n+o*o);return c<=a+l&&c>a-(r-l)}getBounds(t){return t||(t=new J),t.x=this.x-this.radius,t.y=this.y-this.radius,t.width=this.radius*2,t.height=this.radius*2,t}copyFrom(t){return this.x=t.x,this.y=t.y,this.radius=t.radius,this}copyTo(t){return t.copyFrom(this),t}toString(){return`[pixi.js/math:Circle x=${this.x} y=${this.y} radius=${this.radius}]`}}});var Zo,pm=p(()=>{Yt();Zo=class i{constructor(t=0,e=0,r=0,s=0){this.type="ellipse",this.x=t,this.y=e,this.halfWidth=r,this.halfHeight=s}clone(){return new i(this.x,this.y,this.halfWidth,this.halfHeight)}contains(t,e){if(this.halfWidth<=0||this.halfHeight<=0)return!1;let r=(t-this.x)/this.halfWidth,s=(e-this.y)/this.halfHeight;return r*=r,s*=s,r+s<=1}strokeContains(t,e,r,s=.5){let{halfWidth:n,halfHeight:o}=this;if(n<=0||o<=0)return!1;let a=r*(1-s),l=r-a,c=n-l,h=o-l,u=n+a,d=o+a,f=t-this.x,m=e-this.y,g=f*f/(c*c)+m*m/(h*h),_=f*f/(u*u)+m*m/(d*d);return g>1&&_<=1}getBounds(t){return t||(t=new J),t.x=this.x-this.halfWidth,t.y=this.y-this.halfHeight,t.width=this.halfWidth*2,t.height=this.halfHeight*2,t}copyFrom(t){return this.x=t.x,this.y=t.y,this.halfWidth=t.halfWidth,this.halfHeight=t.halfHeight,this}copyTo(t){return t.copyFrom(this),t}toString(){return`[pixi.js/math:Ellipse x=${this.x} y=${this.y} halfWidth=${this.halfWidth} halfHeight=${this.halfHeight}]`}}});var ES,PS,Pi,mm=p(()=>{yt();zc();um();Yt();Pi=class i{constructor(...t){this.type="polygon";let e=Array.isArray(t[0])?t[0]:t;if(typeof e[0]!="number"){let r=[];for(let s=0,n=e.length;s<n;s++)r.push(e[s].x,e[s].y);e=r}this.points=e,this.closePath=!0}isClockwise(){let t=0,e=this.points,r=e.length;for(let s=0;s<r;s+=2){let n=e[s],o=e[s+1],a=e[(s+2)%r],l=e[(s+3)%r];t+=(a-n)*(l+o)}return t<0}containsPolygon(t){let e=this.getBounds(ES),r=t.getBounds(PS);if(!e.containsRect(r))return!1;let s=t.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 t=this.points.slice(),e=new i(t);return e.closePath=this.closePath,e}contains(t,e){let r=!1,s=this.points.length/2;for(let n=0,o=s-1;n<s;o=n++){let a=this.points[n*2],l=this.points[n*2+1],c=this.points[o*2],h=this.points[o*2+1];l>e!=h>e&&t<(c-a)*((e-l)/(h-l))+a&&(r=!r)}return r}strokeContains(t,e,r,s=.5){let{points:n}=this,o=s===.5?s:(s-.5)*qo(n)+.5,a=r*o,l=r-a,c=a*a,h=l*l,u=n.length-(this.closePath?0:2);for(let d=0;d<u;d+=2){let f=n[d],m=n[d+1],g=n[(d+2)%n.length],_=n[(d+3)%n.length],x=hm(t,e,f,m,g,_),b=Math.sign((g-f)*(e-m)-(_-m)*(t-f));if(x<=(b<0?c:h))return!0}return!1}getBounds(t){t||(t=new J);let e=this.points,r=1/0,s=-1/0,n=1/0,o=-1/0;for(let a=0,l=e.length;a<l;a+=2){let c=e[a],h=e[a+1];r=c<r?c:r,s=c>s?c:s,n=h<n?h:n,o=h>o?h:o}return t.x=r,t.width=s-r,t.y=n,t.height=o-n,t}copyFrom(t){return this.points=t.points.slice(),this.closePath=t.closePath,this}copyTo(t){return t.copyFrom(this),t}toString(){return`[pixi.js/math:PolygoncloseStroke=${this.closePath}points=${this.points.reduce((t,e)=>`${t}, ${e}`,"")}]`}get lastX(){return this.points[this.points.length-2]}get lastY(){return this.points[this.points.length-1]}get x(){return O("8.11.0","Polygon.lastX is deprecated, please use Polygon.lastX instead."),this.points[this.points.length-2]}get y(){return O("8.11.0","Polygon.y is deprecated, please use Polygon.lastY instead."),this.points[this.points.length-1]}get startX(){return this.points[0]}get startY(){return this.points[1]}}});var Qo,Jo,gm=p(()=>{Yt();Qo=(i,t,e,r,s,n,o)=>{let a=i-e,l=t-r,c=Math.sqrt(a*a+l*l);return c>=s-n&&c<=s+o},Jo=class i{constructor(t=0,e=0,r=0,s=0,n=20){this.type="roundedRectangle",this.x=t,this.y=e,this.width=r,this.height=s,this.radius=n}getBounds(t){return t||(t=new J),t.x=this.x,t.y=this.y,t.width=this.width,t.height=this.height,t}clone(){return new i(this.x,this.y,this.width,this.height,this.radius)}copyFrom(t){return this.x=t.x,this.y=t.y,this.width=t.width,this.height=t.height,this.radius=t.radius,this}copyTo(t){return t.copyFrom(this),t}contains(t,e){if(this.width<=0||this.height<=0)return!1;if(t>=this.x&&t<=this.x+this.width&&e>=this.y&&e<=this.y+this.height){let r=Math.max(0,Math.min(this.radius,Math.min(this.width,this.height)/2));if(e>=this.y+r&&e<=this.y+this.height-r||t>=this.x+r&&t<=this.x+this.width-r)return!0;let s=t-(this.x+r),n=e-(this.y+r),o=r*r;if(s*s+n*n<=o||(s=t-(this.x+this.width-r),s*s+n*n<=o)||(n=e-(this.y+this.height-r),s*s+n*n<=o)||(s=t-(this.x+r),s*s+n*n<=o))return!0}return!1}strokeContains(t,e,r,s=.5){let{x:n,y:o,width:a,height:l,radius:c}=this,h=r*(1-s),u=r-h,d=n+c,f=o+c,m=a-c*2,g=l-c*2,_=n+a,x=o+l;return(t>=n-h&&t<=n+u||t>=_-u&&t<=_+h)&&e>=f&&e<=f+g||(e>=o-h&&e<=o+u||e>=x-u&&e<=x+h)&&t>=d&&t<=d+m?!0:t<d&&e<f&&Qo(t,e,d,f,c,u,h)||t>_-c&&e<f&&Qo(t,e,_-c,f,c,u,h)||t>_-c&&e>x-c&&Qo(t,e,_-c,x-c,c,u,h)||t<d&&e>x-c&&Qo(t,e,d,x-c,c,u,h)}toString(){return`[pixi.js/math:RoundedRectangle x=${this.x} y=${this.y}width=${this.width} height=${this.height} radius=${this.radius}]`}}});function ta(i,t){t.clear();let e=t.matrix;for(let r=0;r<i.length;r++){let s=i[r];if(s.globalDisplayStatus<7)continue;let n=s.renderGroup??s.parentRenderGroup;n?.isCachedAsTexture?t.matrix=xm.copyFrom(n.textureOffsetInverseTransform).append(s.worldTransform):n?._parentCacheAsTextureRenderGroup?t.matrix=xm.copyFrom(n._parentCacheAsTextureRenderGroup.inverseWorldTransform).append(s.groupTransform):t.matrix=s.worldTransform,t.addBounds(s.bounds)}return t.matrix=e,t}var xm,Wc=p(()=>{ot();xm=new k});function ea(i,t,e,r,s=!1){let n=MS;n.minX=0,n.minY=0,n.maxX=i.width/r|0,n.maxY=i.height/r|0;let o=Mt.getOptimalTexture(n.width,n.height,r,!1,s);return o.source.uploadMethodId="image",o.source.resource=i,o.source.alphaMode="premultiply-alpha-on-upload",o.frame.width=t/r,o.frame.height=e/r,o.source.emit("update",o.source),o.updateUvs(),o}var MS,Vc=p(()=>{Fr();ie();MS=new dt});function _m(i){return typeof i.getCanvasFilterString=="function"}var jc,Is,ym=p(()=>{P();Ei();$o();ie();Wc();Vc();jc=class{constructor(){this.skip=!1,this.useClip=!1,this.filters=null,this.container=null,this.bounds=new dt,this.cssFilterString=""}},Is=class{constructor(t){this._filterStack=[],this._filterStackIndex=0,this._savedStates=[],this._alphaMultiplier=1,this._warnedFilterTypes=new Set,this.renderer=t}push(t){let e=this._pushFilterFrame(),r=t.filterEffect.filters;if(e.skip=!1,e.useClip=!1,e.filters=r,e.container=t.container,e.cssFilterString="",r.every(l=>!l.enabled)){e.skip=!0;return}let s=[],n=1;for(let l of r){if(!l.enabled)continue;if(!_m(l)){this._warnUnsupportedFilter(l);continue}let c=l.getCanvasFilterString();if(c===null){this._warnUnsupportedFilter(l);continue}c&&s.push(c)}if(s.length===0&&n===1){e.skip=!0;return}e.cssFilterString=s.join(" "),this._calculateFilterArea(t,e.bounds),e.useClip=!!t.filterEffect.filterArea;let o=this.renderer.canvasContext.activeContext,a=o.filter||"none";if(this._savedStates.push({filter:a,alphaMultiplier:this._alphaMultiplier}),e.useClip&&Number.isFinite(e.bounds.width)&&Number.isFinite(e.bounds.height)&&e.bounds.width>0&&e.bounds.height>0){let l=this.renderer.canvasContext.activeResolution||1;o.save(),o.setTransform(1,0,0,1,0,0),o.beginPath(),o.rect(e.bounds.x*l,e.bounds.y*l,e.bounds.width*l,e.bounds.height*l),o.clip()}else e.useClip=!1;n!==1&&(this._alphaMultiplier*=n),e.cssFilterString&&(o.filter=a!=="none"?`${a} ${e.cssFilterString}`:e.cssFilterString)}pop(){let t=this._popFilterFrame();if(t.skip)return;let e=this._savedStates.pop();if(!e)return;let r=this.renderer.canvasContext.activeContext;t.useClip?r.restore():r.filter=e.filter,this._alphaMultiplier=e.alphaMultiplier}generateFilteredTexture({texture:t,filters:e}){if(!e?.length||e.every(x=>!x.enabled))return t;let r=[],s=1;for(let x of e){if(!x.enabled)continue;if(!_m(x)){this._warnUnsupportedFilter(x);continue}let b=x.getCanvasFilterString();if(b===null){this._warnUnsupportedFilter(x);continue}b&&r.push(b)}if(r.length===0&&s===1)return t;let n=Z.getCanvasSource(t);if(!n)return t;let o=t.frame,a=t.source._resolution??t.source.resolution??1,l=o.width,c=o.height,h=rr.getOptimalCanvasAndContext(l,c,a),{canvas:u,context:d}=h;d.setTransform(1,0,0,1,0,0),d.clearRect(0,0,u.width,u.height),r.length&&(d.filter=r.join(" ")),s!==1&&(d.globalAlpha=s);let f=o.x*a,m=o.y*a,g=l*a,_=c*a;return d.drawImage(n,f,m,g,_,0,0,g,_),d.filter="none",d.globalAlpha=1,ea(u,l,c,a)}_calculateFilterArea(t,e){if(t.renderables?ta(t.renderables,e):t.filterEffect.filterArea?(e.clear(),e.addRect(t.filterEffect.filterArea),e.applyMatrix(t.container.worldTransform)):t.container.getFastGlobalBounds(!0,e),t.container){let s=(t.container.renderGroup||t.container.parentRenderGroup)?.cacheToLocalTransform;s&&e.applyMatrix(s)}}_warnUnsupportedFilter(t){let e=t?.constructor?.name||"Filter";this._warnedFilterTypes.has(e)||(this._warnedFilterTypes.add(e),console.warn(`CanvasRenderer: filter "${e}" is not supported in Canvas2D and will be skipped.`))}get alphaMultiplier(){return this._alphaMultiplier}_pushFilterFrame(){let t=this._filterStack[this._filterStackIndex];return t||(t=this._filterStack[this._filterStackIndex]=new jc),this._filterStackIndex++,t}_popFilterFrame(){return this._filterStackIndex<=0?this._filterStack[0]:(this._filterStackIndex--,this._filterStack[this._filterStackIndex])}destroy(){this._filterStack=null,this._savedStates=null,this._warnedFilterTypes=null,this._alphaMultiplier=1}};Is.extension={type:[y.CanvasSystem],name:"filter"}});var Gs,bm=p(()=>{P();Gs=class{constructor(t){this._renderer=t}push(t,e,r){this._renderer.renderPipes.batch.break(r),r.add({renderPipeId:"filter",canBundle:!1,action:"pushFilter",container:e,filterEffect:t})}pop(t,e,r){this._renderer.renderPipes.batch.break(r),r.add({renderPipeId:"filter",action:"popFilter",canBundle:!1})}execute(t){t.action==="pushFilter"?this._renderer.filter.push(t):t.action==="popFilter"&&this._renderer.filter.pop()}destroy(){this._renderer=null}};Gs.extension={type:[y.WebGLPipes,y.WebGPUPipes,y.CanvasPipes],name:"filter"}});function ke(i,t){let e=vm[i];return e===void 0&&(Xc[t]===void 0&&(Xc[t]=1),vm[i]=e=Xc[t]++),e}var Xc,vm,Mi=p(()=>{"use strict";Xc=Object.create(null),vm=Object.create(null)});function ia(){return(!ra||ra?.isContextLost())&&(ra=W.get().createCanvas().getContext("webgl",{})),ra}var ra,Yc=p(()=>{xt()});function Sm(){if(!sa){sa="mediump";let i=ia();i&&i.getShaderPrecisionFormat&&(sa=i.getShaderPrecisionFormat(i.FRAGMENT_SHADER,i.HIGH_FLOAT).precision?"highp":"mediump")}return sa}var sa,Tm=p(()=>{Yc()});function wm(i,t,e){return t?i:e?(i=i.replace("out vec4 finalColor;",""),`
17
+ `,t.accessibleText&&(r.innerText=t.accessibleText)),r.style.width=`${Sp}px`,r.style.height=`${Sp}px`,r.style.backgroundColor=this.debug?"rgba(255,255,255,0.5)":"transparent",r.style.position="absolute",r.style.zIndex=Tp.toString(),r.style.borderStyle="none",navigator.userAgent.toLowerCase().includes("chrome")?r.setAttribute("aria-live","off"):r.setAttribute("aria-live","polite"),navigator.userAgent.match(/rv:.*Gecko\//)?r.setAttribute("aria-relevant","additions"):r.setAttribute("aria-relevant","text"),r.addEventListener("click",this._onClick.bind(this)),r.addEventListener("focus",this._onFocus.bind(this)),r.addEventListener("focusout",this._onFocusOut.bind(this))),r.style.pointerEvents=t.accessiblePointerEvents,r.type=t.accessibleType,t.accessibleTitle&&t.accessibleTitle!==null?r.title=t.accessibleTitle:(!t.accessibleHint||t.accessibleHint===null)&&(r.title=`container ${t.tabIndex}`),t.accessibleHint&&t.accessibleHint!==null&&r.setAttribute("aria-label",t.accessibleHint),t.interactive?r.tabIndex=t.tabIndex:r.tabIndex=0,this.debug&&this._updateDebugHTML(r),t._accessibleActive=!0,t._accessibleDiv=r,r.container=t,this._children.push(t),this._div.appendChild(t._accessibleDiv)}_dispatchEvent(t,e){let{container:r}=t.target,s=this._renderer.events.rootBoundary,n=Object.assign(new ur(s),{target:r});s.rootTarget=this._renderer.lastObjectRendered,e.forEach(o=>s.dispatchEvent(n,o))}_onClick(t){this._dispatchEvent(t,["click","pointertap","tap"])}_onFocus(t){t.target.getAttribute("aria-live")||t.target.setAttribute("aria-live","assertive"),this._dispatchEvent(t,["mouseover"])}_onFocusOut(t){t.target.getAttribute("aria-live")||t.target.setAttribute("aria-live","polite"),this._dispatchEvent(t,["mouseout"])}_onKeyDown(t){t.keyCode!==fS||!this._activateOnTab||this._activate()}_onMouseMove(t){t.movementX===0&&t.movementY===0||this._deactivate()}destroy(){this._deactivate(),this._destroyTouchHook(),this._canvasObserver?.destroy(),this._canvasObserver=null,this._div=null,this._pools=null,this._children=null,this._renderer=null,this._hookDiv=null,globalThis.removeEventListener("keydown",this._boundOnKeyDown),this._boundOnKeyDown=null,globalThis.document.removeEventListener("mousemove",this._boundOnMouseMove,!0),this._boundOnMouseMove=null}setAccessibilityEnabled(t){t?this._activate():this._deactivate()}_getPool(t){return this._pools[t]||(this._pools[t]=[]),this._pools[t]}};_c.extension={type:[y.WebGLSystem,y.WebGPUSystem],name:"accessibility"};_c.defaultOptions={enabledByDefault:!1,debug:!1,activateOnTab:!0,deactivateOnMouseMove:!0};Ep=_c});var Mp,Ap=p(()=>{"use strict";Mp={accessible:!1,accessibleTitle:null,accessibleHint:null,tabIndex:0,accessibleType:"button",accessibleText:null,accessiblePointerEvents:"auto",accessibleChildren:!0,_accessibleActive:!1,_accessibleDiv:null,_renderId:-1}});var Rp=p(()=>{P();Pe();Pp();Ap();z.add(Ep);z.mixin(mt,Mp)});var Cs,kp=p(()=>{P();pc();Cs=class{constructor(t){this._attachedDomElements=[],this._renderer=t,this._renderer.runners.postrender.add(this),this._renderer.runners.init.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"}init(){this._canvasObserver=new wi({domElement:this._domElement,renderer:this._renderer})}addRenderable(t,e){this._attachedDomElements.includes(t)||this._attachedDomElements.push(t)}updateRenderable(t){}validateRenderable(t){return!0}postrender(){let t=this._attachedDomElements;if(t.length===0){this._domElement.remove();return}this._canvasObserver.ensureAttached();for(let e=0;e<t.length;e++){let r=t[e],s=r.element;if(!r.parent||r.globalDisplayStatus<7)s?.remove(),t.splice(e,1),e--;else{this._domElement.contains(s)||(s.style.position="absolute",s.style.pointerEvents="auto",this._domElement.appendChild(s));let n=r.worldTransform,o=r._anchor,a=r.width*o.x,l=r.height*o.y;s.style.transformOrigin=`${a}px ${l}px`,s.style.transform=`matrix(${n.a}, ${n.b}, ${n.c}, ${n.d}, ${n.tx-a}, ${n.ty-l})`,s.style.opacity=r.groupAlpha.toString()}}}destroy(){this._renderer.runners.postrender.remove(this);for(let t=0;t<this._attachedDomElements.length;t++)this._attachedDomElements[t].element?.remove();this._attachedDomElements.length=0,this._domElement.remove(),this._canvasObserver.destroy(),this._renderer=null}};Cs.extension={type:[y.WebGLPipes,y.WebGPUPipes,y.CanvasPipes],name:"dom"}});var Le,Es=p(()=>{ie();Pe();Le=class extends mt{constructor(t){super(t),this.canBundle=!0,this.allowChildren=!1,this._roundPixels=0,this._lastUsed=-1,this._gpuData=Object.create(null),this.autoGarbageCollect=!0,this._gcLastUsed=-1,this._bounds=new dt(0,1,0,0),this._boundsDirty=!0,this.autoGarbageCollect=t.autoGarbageCollect??!0}get bounds(){return this._boundsDirty?(this.updateBounds(),this._boundsDirty=!1,this._bounds):this._bounds}get roundPixels(){return!!this._roundPixels}set roundPixels(t){this._roundPixels=t?1:0}containsPoint(t){let e=this.bounds,{x:r,y:s}=t;return r>=e.minX&&r<=e.maxX&&s>=e.minY&&s<=e.maxY}onViewUpdate(){if(this._didViewChangeTick++,this._boundsDirty=!0,this.didViewUpdate)return;this.didViewUpdate=!0;let t=this.renderGroup||this.parentRenderGroup;t&&t.onChildViewUpdate(this)}unload(){this.emit("unload",this);for(let t in this._gpuData)this._gpuData[t]?.destroy();this._gpuData=Object.create(null),this.onViewUpdate()}destroy(t){this.unload(),super.destroy(t),this._bounds=null}collectRenderablesSimple(t,e,r){let{renderPipes:s}=e;s.blendMode.pushBlendMode(this,this.groupBlendMode,t);let o=s[this.renderPipeId];o?.addRenderable&&o.addRenderable(this,t),this.didViewUpdate=!1;let a=this.children,l=a.length;for(let c=0;c<l;c++)a[c].collectRenderables(t,e,r);s.blendMode.popBlendMode(t)}}});var Bp=p(()=>{P();kp();z.add(Cs)});var yc,Me,bc=p(()=>{Ts();Ti();yc=class{constructor(){this.interactionFrequency=10,this._deltaTime=0,this._didMove=!1,this._tickerAdded=!1,this._pauseUpdate=!0}init(t){this.removeTickerListener(),this.events=t,this.interactionFrequency=10,this._deltaTime=0,this._didMove=!1,this._tickerAdded=!1,this._pauseUpdate=!0}get pauseUpdate(){return this._pauseUpdate}set pauseUpdate(t){this._pauseUpdate=t}addTickerListener(){this._tickerAdded||!this.domElement||(qt.system.add(this._tickerUpdate,this,De.INTERACTION),this._tickerAdded=!0)}removeTickerListener(){this._tickerAdded&&(qt.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 t=this.events._rootPointerEvent;this.events.supportsTouchEvents&&t.pointerType==="touch"||globalThis.document.dispatchEvent(this.events.supportsPointerEvents?new PointerEvent("pointermove",{clientX:t.clientX,clientY:t.clientY,pointerType:t.pointerType,pointerId:t.pointerId}):new MouseEvent("mousemove",{clientX:t.clientX,clientY:t.clientY}))}_tickerUpdate(t){this._deltaTime+=t.deltaTime,!(this._deltaTime<this.interactionFrequency)&&(this._deltaTime=0,this._update())}destroy(){this.removeTickerListener(),this.events=null,this.domElement=null,this._deltaTime=0,this._didMove=!1,this._tickerAdded=!1,this._pauseUpdate=!0}},Me=new yc});var er,Do=p(()=>{Ee();Fo();er=class extends ur{constructor(){super(...arguments),this.client=new nt,this.movement=new nt,this.offset=new nt,this.global=new nt,this.screen=new nt}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(t,e,r){return t.worldTransform.applyInverse(r||this.global,e)}getModifierState(t){return"getModifierState"in this.nativeEvent&&this.nativeEvent.getModifierState(t)}initMouseEvent(t,e,r,s,n,o,a,l,c,h,u,d,f,m,g){throw new Error("Method not implemented.")}}});var se,vc=p(()=>{Do();se=class extends er{constructor(){super(...arguments),this.width=0,this.height=0,this.isPrimary=!1,this.persistentDeviceId=0}getCoalescedEvents(){return this.type==="pointermove"||this.type==="mousemove"||this.type==="touchmove"?[this]:[]}getPredictedEvents(){throw new Error("getPredictedEvents is not supported!")}}});var Oe,Sc=p(()=>{Do();Oe=class extends er{constructor(){super(...arguments),this.DOM_DELTA_PIXEL=0,this.DOM_DELTA_LINE=1,this.DOM_DELTA_PAGE=2}};Oe.DOM_DELTA_PIXEL=0;Oe.DOM_DELTA_LINE=1;Oe.DOM_DELTA_PAGE=2});var yS,bS,Ps,Lo,Ip=p(()=>{Ht();Ee();ht();bc();Do();vc();Sc();yS=2048,bS=new nt,Ps=new nt,Lo=class{constructor(t){this.dispatch=new ut,this.moveOnAll=!1,this.enableGlobalMoveEvents=!0,this.mappingState={trackingData:{}},this.eventPool=new Map,this._allInteractiveElements=[],this._hitElements=[],this._isPointerMoveEvent=!1,this.rootTarget=t,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(t,e){this.mappingTable[t]||(this.mappingTable[t]=[]),this.mappingTable[t].push({fn:e,priority:0}),this.mappingTable[t].sort((r,s)=>r.priority-s.priority)}dispatchEvent(t,e){t.propagationStopped=!1,t.propagationImmediatelyStopped=!1,this.propagate(t,e),this.dispatch.emit(e||t.type,t)}mapEvent(t){if(!this.rootTarget)return;let e=this.mappingTable[t.type];if(e)for(let r=0,s=e.length;r<s;r++)e[r].fn(t);else L(`[EventBoundary]: Event mapping not defined for ${t.type}`)}hitTest(t,e){Me.pauseUpdate=!0;let s=this._isPointerMoveEvent&&this.enableGlobalMoveEvents?"hitTestMoveRecursive":"hitTestRecursive",n=this[s](this.rootTarget,this.rootTarget.eventMode,bS.set(t,e),this.hitTestFn,this.hitPruneFn);return n&&n[0]}propagate(t,e){if(!t.target)return;let r=t.composedPath();t.eventPhase=t.CAPTURING_PHASE;for(let s=0,n=r.length-1;s<n;s++)if(t.currentTarget=r[s],this.notifyTarget(t,e),t.propagationStopped||t.propagationImmediatelyStopped)return;if(t.eventPhase=t.AT_TARGET,t.currentTarget=t.target,this.notifyTarget(t,e),!(t.propagationStopped||t.propagationImmediatelyStopped)){t.eventPhase=t.BUBBLING_PHASE;for(let s=r.length-2;s>=0;s--)if(t.currentTarget=r[s],this.notifyTarget(t,e),t.propagationStopped||t.propagationImmediatelyStopped)return}}all(t,e,r=this._allInteractiveElements){if(r.length===0)return;t.eventPhase=t.BUBBLING_PHASE;let s=Array.isArray(e)?e:[e];for(let n=r.length-1;n>=0;n--)s.forEach(o=>{t.currentTarget=r[n],this.notifyTarget(t,o)})}propagationPath(t){let e=[t];for(let r=0;r<yS&&t!==this.rootTarget&&t.parent;r++){if(!t.parent)throw new Error("Cannot find propagation path to disconnected target");e.push(t.parent),t=t.parent}return e.reverse(),e}hitTestMoveRecursive(t,e,r,s,n,o=!1){let a=!1;if(this._interactivePrune(t))return null;if((t.eventMode==="dynamic"||e==="dynamic")&&(Me.pauseUpdate=!1),t.interactiveChildren&&t.children){let h=t.children;for(let u=h.length-1;u>=0;u--){let d=h[u],f=this.hitTestMoveRecursive(d,this._isInteractive(e)?e:d.eventMode,r,s,n,o||n(t,r));if(f){if(f.length>0&&!f[f.length-1].parent)continue;let m=t.isInteractive();(f.length>0||m)&&(m&&this._allInteractiveElements.push(t),f.push(t)),this._hitElements.length===0&&(this._hitElements=f),a=!0}}}let l=this._isInteractive(e),c=t.isInteractive();return c&&c&&this._allInteractiveElements.push(t),o||this._hitElements.length>0?null:a?this._hitElements:l&&!n(t,r)&&s(t,r)?c?[t]:[]:null}hitTestRecursive(t,e,r,s,n){if(this._interactivePrune(t)||n(t,r))return null;if((t.eventMode==="dynamic"||e==="dynamic")&&(Me.pauseUpdate=!1),t.interactiveChildren&&t.children){let l=t.children,c=r;for(let h=l.length-1;h>=0;h--){let u=l[h],d=this.hitTestRecursive(u,this._isInteractive(e)?e:u.eventMode,c,s,n);if(d){if(d.length>0&&!d[d.length-1].parent)continue;let f=t.isInteractive();return(d.length>0||f)&&d.push(t),d}}}let o=this._isInteractive(e),a=t.isInteractive();return o&&s(t,r)?a?[t]:[]:null}_isInteractive(t){return t==="static"||t==="dynamic"}_interactivePrune(t){return!t||!t.visible||!t.renderable||!t.measurable||t.eventMode==="none"||t.eventMode==="passive"&&!t.interactiveChildren}hitPruneFn(t,e){if(t.hitArea&&(t.worldTransform.applyInverse(e,Ps),!t.hitArea.contains(Ps.x,Ps.y)))return!0;if(t.effects&&t.effects.length)for(let r=0;r<t.effects.length;r++){let s=t.effects[r];if(s.containsPoint&&!s.containsPoint(e,this.hitTestFn))return!0}return!1}hitTestFn(t,e){return t.hitArea?!0:t?.containsPoint?(t.worldTransform.applyInverse(e,Ps),t.containsPoint(Ps)):!1}notifyTarget(t,e){if(!t.currentTarget.isInteractive())return;e??(e=t.type);let r=`on${e}`;t.currentTarget[r]?.(t);let s=t.eventPhase===t.CAPTURING_PHASE||t.eventPhase===t.AT_TARGET?`${e}capture`:e;this._notifyListeners(t,s),t.eventPhase===t.AT_TARGET&&this._notifyListeners(t,e)}mapPointerDown(t){if(!(t instanceof se)){L("EventBoundary cannot map a non-pointer event as a pointer event");return}let e=this.createPointerEvent(t);if(this.dispatchEvent(e,"pointerdown"),e.pointerType==="touch")this.dispatchEvent(e,"touchstart");else if(e.pointerType==="mouse"||e.pointerType==="pen"){let s=e.button===2;this.dispatchEvent(e,s?"rightdown":"mousedown")}let r=this.trackingData(t.pointerId);r.pressTargetsByButton[t.button]=e.composedPath(),this.freeEvent(e)}mapPointerMove(t){if(!(t instanceof se)){L("EventBoundary cannot map a non-pointer event as a pointer event");return}this._allInteractiveElements.length=0,this._hitElements.length=0,this._isPointerMoveEvent=!0;let e=this.createPointerEvent(t);this._isPointerMoveEvent=!1;let r=e.pointerType==="mouse"||e.pointerType==="pen",s=this.trackingData(t.pointerId),n=this.findMountedTarget(s.overTargets);if(s.overTargets?.length>0&&n!==e.target){let l=t.type==="mousemove"?"mouseout":"pointerout",c=this.createPointerEvent(t,l,n);if(this.dispatchEvent(c,"pointerout"),r&&this.dispatchEvent(c,"mouseout"),!e.composedPath().includes(n)){let h=this.createPointerEvent(t,"pointerleave",n);for(h.eventPhase=h.AT_TARGET;h.target&&!e.composedPath().includes(h.target);)h.currentTarget=h.target,this.notifyTarget(h),r&&this.notifyTarget(h,"mouseleave"),h.target=h.target.parent;this.freeEvent(h)}this.freeEvent(c)}if(n!==e.target){let l=t.type==="mousemove"?"mouseover":"pointerover",c=this.clonePointerEvent(e,l);this.dispatchEvent(c,"pointerover"),r&&this.dispatchEvent(c,"mouseover");let h=n?.parent;for(;h&&h!==this.rootTarget.parent&&h!==e.target;)h=h.parent;if(!h||h===this.rootTarget.parent){let d=this.clonePointerEvent(e,"pointerenter");for(d.eventPhase=d.AT_TARGET;d.target&&d.target!==n&&d.target!==this.rootTarget.parent;)d.currentTarget=d.target,this.notifyTarget(d),r&&this.notifyTarget(d,"mouseenter"),d.target=d.target.parent;this.freeEvent(d)}this.freeEvent(c)}let o=[],a=this.enableGlobalMoveEvents??!0;this.moveOnAll?o.push("pointermove"):this.dispatchEvent(e,"pointermove"),a&&o.push("globalpointermove"),e.pointerType==="touch"&&(this.moveOnAll?o.splice(1,0,"touchmove"):this.dispatchEvent(e,"touchmove"),a&&o.push("globaltouchmove")),r&&(this.moveOnAll?o.splice(1,0,"mousemove"):this.dispatchEvent(e,"mousemove"),a&&o.push("globalmousemove"),this.cursor=e.target?.cursor),o.length>0&&this.all(e,o),this._allInteractiveElements.length=0,this._hitElements.length=0,s.overTargets=e.composedPath(),this.freeEvent(e)}mapPointerOver(t){if(!(t instanceof se)){L("EventBoundary cannot map a non-pointer event as a pointer event");return}let e=this.trackingData(t.pointerId),r=this.createPointerEvent(t),s=r.pointerType==="mouse"||r.pointerType==="pen";this.dispatchEvent(r,"pointerover"),s&&this.dispatchEvent(r,"mouseover"),r.pointerType==="mouse"&&(this.cursor=r.target?.cursor);let n=this.clonePointerEvent(r,"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;e.overTargets=r.composedPath(),this.freeEvent(r),this.freeEvent(n)}mapPointerOut(t){if(!(t instanceof se)){L("EventBoundary cannot map a non-pointer event as a pointer event");return}let e=this.trackingData(t.pointerId);if(e.overTargets){let r=t.pointerType==="mouse"||t.pointerType==="pen",s=this.findMountedTarget(e.overTargets),n=this.createPointerEvent(t,"pointerout",s);this.dispatchEvent(n),r&&this.dispatchEvent(n,"mouseout");let o=this.createPointerEvent(t,"pointerleave",s);for(o.eventPhase=o.AT_TARGET;o.target&&o.target!==this.rootTarget.parent;)o.currentTarget=o.target,this.notifyTarget(o),r&&this.notifyTarget(o,"mouseleave"),o.target=o.target.parent;e.overTargets=null,this.freeEvent(n),this.freeEvent(o)}this.cursor=null}mapPointerUp(t){if(!(t instanceof se)){L("EventBoundary cannot map a non-pointer event as a pointer event");return}let e=performance.now(),r=this.createPointerEvent(t);if(this.dispatchEvent(r,"pointerup"),r.pointerType==="touch")this.dispatchEvent(r,"touchend");else if(r.pointerType==="mouse"||r.pointerType==="pen"){let a=r.button===2;this.dispatchEvent(r,a?"rightup":"mouseup")}let s=this.trackingData(t.pointerId),n=this.findMountedTarget(s.pressTargetsByButton[t.button]),o=n;if(n&&!r.composedPath().includes(n)){let a=n;for(;a&&!r.composedPath().includes(a);){if(r.currentTarget=a,this.notifyTarget(r,"pointerupoutside"),r.pointerType==="touch")this.notifyTarget(r,"touchendoutside");else if(r.pointerType==="mouse"||r.pointerType==="pen"){let l=r.button===2;this.notifyTarget(r,l?"rightupoutside":"mouseupoutside")}a=a.parent}delete s.pressTargetsByButton[t.button],o=a}if(o){let a=this.clonePointerEvent(r,"click");a.target=o,a.path=null,s.clicksByButton[t.button]||(s.clicksByButton[t.button]={clickCount:0,target:a.target,timeStamp:e});let l=s.clicksByButton[t.button];if(l.target===a.target&&e-l.timeStamp<200?++l.clickCount:l.clickCount=1,l.target=a.target,l.timeStamp=e,a.detail=l.clickCount,a.pointerType==="mouse"){let c=a.button===2;this.dispatchEvent(a,c?"rightclick":"click")}else a.pointerType==="touch"&&this.dispatchEvent(a,"tap");this.dispatchEvent(a,"pointertap"),this.freeEvent(a)}this.freeEvent(r)}mapPointerUpOutside(t){if(!(t instanceof se)){L("EventBoundary cannot map a non-pointer event as a pointer event");return}let e=this.trackingData(t.pointerId),r=this.findMountedTarget(e.pressTargetsByButton[t.button]),s=this.createPointerEvent(t);if(r){let n=r;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 e.pressTargetsByButton[t.button]}this.freeEvent(s)}mapWheel(t){if(!(t instanceof Oe)){L("EventBoundary cannot map a non-wheel event as a wheel event");return}let e=this.createWheelEvent(t);this.dispatchEvent(e),this.freeEvent(e)}findMountedTarget(t){if(!t)return null;let e=t[0];for(let r=1;r<t.length&&t[r].parent===e;r++)e=t[r];return e}createPointerEvent(t,e,r){let s=this.allocateEvent(se);return this.copyPointerData(t,s),this.copyMouseData(t,s),this.copyData(t,s),s.nativeEvent=t.nativeEvent,s.originalEvent=t,s.target=r??this.hitTest(s.global.x,s.global.y)??this._hitElements[0],typeof e=="string"&&(s.type=e),s}createWheelEvent(t){let e=this.allocateEvent(Oe);return this.copyWheelData(t,e),this.copyMouseData(t,e),this.copyData(t,e),e.nativeEvent=t.nativeEvent,e.originalEvent=t,e.target=this.hitTest(e.global.x,e.global.y),e}clonePointerEvent(t,e){let r=this.allocateEvent(se);return r.nativeEvent=t.nativeEvent,r.originalEvent=t.originalEvent,this.copyPointerData(t,r),this.copyMouseData(t,r),this.copyData(t,r),r.target=t.target,r.path=t.composedPath().slice(),r.type=e??r.type,r}copyWheelData(t,e){e.deltaMode=t.deltaMode,e.deltaX=t.deltaX,e.deltaY=t.deltaY,e.deltaZ=t.deltaZ}copyPointerData(t,e){t instanceof se&&e instanceof se&&(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,e.persistentDeviceId=t.persistentDeviceId)}copyMouseData(t,e){t instanceof er&&e instanceof er&&(e.altKey=t.altKey,e.button=t.button,e.buttons=t.buttons,e.client.copyFrom(t.client),e.ctrlKey=t.ctrlKey,e.metaKey=t.metaKey,e.movement.copyFrom(t.movement),e.screen.copyFrom(t.screen),e.shiftKey=t.shiftKey,e.global.copyFrom(t.global))}copyData(t,e){e.isTrusted=t.isTrusted,e.srcElement=t.srcElement,e.timeStamp=performance.now(),e.type=t.type,e.detail=t.detail,e.view=t.view,e.which=t.which,e.layer.copyFrom(t.layer),e.page.copyFrom(t.page)}trackingData(t){return this.mappingState.trackingData[t]||(this.mappingState.trackingData[t]={pressTargetsByButton:{},clicksByButton:{},overTarget:null}),this.mappingState.trackingData[t]}allocateEvent(t){this.eventPool.has(t)||this.eventPool.set(t,[]);let e=this.eventPool.get(t).pop()||new t(this);return e.eventPhase=e.NONE,e.currentTarget=null,e.defaultPrevented=!1,e.path=null,e.target=null,e}freeEvent(t){if(t.manager!==this)throw new Error("It is illegal to free an event not managed by this EventBoundary!");let e=t.constructor;this.eventPool.has(e)||this.eventPool.set(e,[]),this.eventPool.get(e).push(t)}_notifyListeners(t,e){let r=t.currentTarget._events[e];if(r)if("fn"in r)r.once&&t.currentTarget.removeListener(e,r.fn,void 0,!0),r.fn.call(r.context,t);else for(let s=0,n=r.length;s<n&&!t.propagationImmediatelyStopped;s++)r[s].once&&t.currentTarget.removeListener(e,r[s].fn,void 0,!0),r[s].fn.call(r[s].context,t)}}});var vS,SS,wc,Oo,Cc=p(()=>{P();Ip();bc();vc();Sc();vS=1,SS={touchstart:"pointerdown",touchend:"pointerup",touchendoutside:"pointerupoutside",touchmove:"pointermove",touchcancel:"pointercancel"},wc=class Tc{constructor(t){this.supportsTouchEvents="ontouchstart"in globalThis,this.supportsPointerEvents=!!globalThis.PointerEvent,this.domElement=null,this.resolution=1,this.renderer=t,this.rootBoundary=new Lo(null),Me.init(this),this.autoPreventDefault=!0,this._eventsAdded=!1,this._rootPointerEvent=new se(null),this._rootWheelEvent=new Oe(null),this.cursorStyles={default:"inherit",pointer:"pointer"},this.features=new Proxy({...Tc.defaultEventFeatures},{set:(e,r,s)=>(r==="globalMove"&&(this.rootBoundary.enableGlobalMoveEvents=s),e[r]=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(t){let{canvas:e,resolution:r}=this.renderer;this.setTargetElement(e),this.resolution=r,Tc._defaultEventMode=t.eventMode??"passive",Object.assign(this.features,t.eventFeatures??{}),this.rootBoundary.enableGlobalMoveEvents=this.features.globalMove}resolutionChange(t){this.resolution=t}destroy(){Me.destroy(),this.setTargetElement(null),this.renderer=null,this._currentCursor=null}setCursor(t){t||(t="default");let e=!0;if(globalThis.OffscreenCanvas&&this.domElement instanceof OffscreenCanvas&&(e=!1),this._currentCursor===t)return;this._currentCursor=t;let r=this.cursorStyles[t];if(r)switch(typeof r){case"string":e&&(this.domElement.style.cursor=r);break;case"function":r(t);break;case"object":e&&Object.assign(this.domElement.style,r);break}else e&&typeof t=="string"&&!Object.prototype.hasOwnProperty.call(this.cursorStyles,t)&&(this.domElement.style.cursor=t)}get pointer(){return this._rootPointerEvent}_onPointerDown(t){if(!this.features.click)return;this.rootBoundary.rootTarget=this.renderer.lastObjectRendered;let e=this._normalizeToPointerData(t);this.autoPreventDefault&&e[0].isNormalized&&(t.cancelable||!("cancelable"in t))&&t.preventDefault();for(let r=0,s=e.length;r<s;r++){let n=e[r],o=this._bootstrapEvent(this._rootPointerEvent,n);this.rootBoundary.mapEvent(o)}this.setCursor(this.rootBoundary.cursor)}_onPointerMove(t){if(!this.features.move)return;this.rootBoundary.rootTarget=this.renderer.lastObjectRendered,Me.pointerMoved();let e=this._normalizeToPointerData(t);for(let r=0,s=e.length;r<s;r++){let n=this._bootstrapEvent(this._rootPointerEvent,e[r]);this.rootBoundary.mapEvent(n)}this.setCursor(this.rootBoundary.cursor)}_onPointerUp(t){if(!this.features.click)return;this.rootBoundary.rootTarget=this.renderer.lastObjectRendered;let e=t.target;t.composedPath&&t.composedPath().length>0&&(e=t.composedPath()[0]);let r=e!==this.domElement?"outside":"",s=this._normalizeToPointerData(t);for(let n=0,o=s.length;n<o;n++){let a=this._bootstrapEvent(this._rootPointerEvent,s[n]);a.type+=r,this.rootBoundary.mapEvent(a)}this.setCursor(this.rootBoundary.cursor)}_onPointerOverOut(t){if(!this.features.click)return;this.rootBoundary.rootTarget=this.renderer.lastObjectRendered;let e=this._normalizeToPointerData(t);for(let r=0,s=e.length;r<s;r++){let n=this._bootstrapEvent(this._rootPointerEvent,e[r]);this.rootBoundary.mapEvent(n)}this.setCursor(this.rootBoundary.cursor)}onWheel(t){if(!this.features.wheel)return;let e=this.normalizeWheelEvent(t);this.rootBoundary.rootTarget=this.renderer.lastObjectRendered,this.rootBoundary.mapEvent(e)}setTargetElement(t){this._removeEvents(),this.domElement=t,Me.domElement=t,this._addEvents()}_addEvents(){if(this._eventsAdded||!this.domElement)return;Me.addTickerListener();let t=this.domElement.style;t&&(globalThis.navigator.msPointerEnabled?(t.msContentZooming="none",t.msTouchAction="none"):this.supportsPointerEvents&&(t.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;Me.removeTickerListener();let t=this.domElement.style;t&&(globalThis.navigator.msPointerEnabled?(t.msContentZooming="",t.msTouchAction=""):this.supportsPointerEvents&&(t.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(t,e,r){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;t.x=(e-s.left)*(this.domElement.width/s.width)*n,t.y=(r-s.top)*(this.domElement.height/s.height)*n}_normalizeToPointerData(t){let e=[];if(this.supportsTouchEvents&&t instanceof TouchEvent)for(let r=0,s=t.changedTouches.length;r<s;r++){let n=t.changedTouches[r];typeof n.button>"u"&&(n.button=0),typeof n.buttons>"u"&&(n.buttons=1),typeof n.isPrimary>"u"&&(n.isPrimary=t.touches.length===1&&t.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=t.type,n.altKey??(n.altKey=t.altKey),n.ctrlKey??(n.ctrlKey=t.ctrlKey),n.metaKey??(n.metaKey=t.metaKey),n.shiftKey??(n.shiftKey=t.shiftKey),e.push(n)}else if(!globalThis.MouseEvent||t instanceof MouseEvent&&(!this.supportsPointerEvents||!(t instanceof globalThis.PointerEvent))){let r=t;typeof r.isPrimary>"u"&&(r.isPrimary=!0),typeof r.width>"u"&&(r.width=1),typeof r.height>"u"&&(r.height=1),typeof r.tiltX>"u"&&(r.tiltX=0),typeof r.tiltY>"u"&&(r.tiltY=0),typeof r.pointerType>"u"&&(r.pointerType="mouse"),typeof r.pointerId>"u"&&(r.pointerId=vS),typeof r.pressure>"u"&&(r.pressure=.5),typeof r.twist>"u"&&(r.twist=0),typeof r.tangentialPressure>"u"&&(r.tangentialPressure=0),r.isNormalized=!0,e.push(r)}else e.push(t);return e}normalizeWheelEvent(t){let e=this._rootWheelEvent;return this._transferMouseData(e,t),e.deltaX=t.deltaX,e.deltaY=t.deltaY,e.deltaZ=t.deltaZ,e.deltaMode=t.deltaMode,this.mapPositionToPoint(e.screen,t.clientX,t.clientY),e.global.copyFrom(e.screen),e.offset.copyFrom(e.screen),e.nativeEvent=t,e.type=t.type,e}_bootstrapEvent(t,e){return t.originalEvent=null,t.nativeEvent=e,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,this._transferMouseData(t,e),this.mapPositionToPoint(t.screen,e.clientX,e.clientY),t.global.copyFrom(t.screen),t.offset.copyFrom(t.screen),t.isTrusted=e.isTrusted,t.type==="pointerleave"&&(t.type="pointerout"),t.type.startsWith("mouse")&&(t.type=t.type.replace("mouse","pointer")),t.type.startsWith("touch")&&(t.type=SS[t.type]||t.type),t}_transferMouseData(t,e){t.isTrusted=e.isTrusted,t.srcElement=e.srcElement,t.timeStamp=performance.now(),t.type=e.type,t.altKey=e.altKey,t.button=e.button,t.buttons=e.buttons,t.client.x=e.clientX,t.client.y=e.clientY,t.ctrlKey=e.ctrlKey,t.metaKey=e.metaKey,t.movement.x=e.movementX,t.movement.y=e.movementY,t.page.x=e.pageX,t.page.y=e.pageY,t.relatedTarget=null,t.shiftKey=e.shiftKey}};wc.extension={name:"events",type:[y.WebGLSystem,y.CanvasSystem,y.WebGPUSystem],priority:-1};wc.defaultEventFeatures={move:!0,globalMove:!0,click:!0,wheel:!0};Oo=wc});var Gp,Fp=p(()=>{Cc();Fo();Gp={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(i){this.eventMode=i?"static":"passive"},_internalEventMode:void 0,get eventMode(){return this._internalEventMode??Oo.defaultEventMode},set eventMode(i){this._internalEventMode=i},isInteractive(){return this.eventMode==="static"||this.eventMode==="dynamic"},interactiveChildren:!0,hitArea:null,addEventListener(i,t,e){let r=typeof e=="boolean"&&e||typeof e=="object"&&e.capture,s=typeof e=="object"?e.signal:void 0,n=typeof e=="object"?e.once===!0:!1,o=typeof t=="function"?void 0:t;i=r?`${i}capture`:i;let a=typeof t=="function"?t:t.handleEvent,l=this;s&&s.addEventListener("abort",()=>{l.off(i,a,o)}),n?l.once(i,a,o):l.on(i,a,o)},removeEventListener(i,t,e){let r=typeof e=="boolean"&&e||typeof e=="object"&&e.capture,s=typeof t=="function"?void 0:t;i=r?`${i}capture`:i,t=typeof t=="function"?t:t.handleEvent,this.off(i,t,s)},dispatchEvent(i){if(!(i instanceof ur))throw new Error("Container cannot propagate events outside of the Federated Events API");return i.defaultPrevented=!1,i.path=null,i.target=this,i.manager.dispatchEvent(i),!i.defaultPrevented}}});var Up=p(()=>{P();Pe();Cc();Fp();z.add(Oo);z.mixin(mt,Gp)});var Ec,Dp=p(()=>{"use strict";Ec=(i=>(i[i.Low=0]="Low",i[i.Normal=1]="Normal",i[i.High=2]="High",i))(Ec||{})});var Lp,Op=p(()=>{"use strict";Lp={createCanvas:(i,t)=>{let e=document.createElement("canvas");return e.width=i,e.height=t,e},createImage:()=>new Image,getCanvasRenderingContext2D:()=>CanvasRenderingContext2D,getWebGLRenderingContext:()=>WebGLRenderingContext,getNavigator:()=>navigator,getBaseUrl:()=>document.baseURI??window.location.href,getFontFaceSet:()=>document.fonts,fetch:(i,t)=>fetch(i,t),parseXML:i=>new DOMParser().parseFromString(i,"text/xml")}});var Np,W,xt=p(()=>{Op();Np=Lp,W={get(){return Np},set(i){Np=i}}});function Ae(i){if(typeof i!="string")throw new TypeError(`Path must be a string. Received ${JSON.stringify(i)}`)}function Ms(i){return i.split("?")[0].split("#")[0]}function TS(i){return i.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function wS(i,t,e){return i.replace(new RegExp(TS(t),"g"),e)}function CS(i,t){let e="",r=0,s=-1,n=0,o=-1;for(let a=0;a<=i.length;++a){if(a<i.length)o=i.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(e.length<2||r!==2||e.charCodeAt(e.length-1)!==46||e.charCodeAt(e.length-2)!==46){if(e.length>2){let l=e.lastIndexOf("/");if(l!==e.length-1){l===-1?(e="",r=0):(e=e.slice(0,l),r=e.length-1-e.lastIndexOf("/")),s=a,n=0;continue}}else if(e.length===2||e.length===1){e="",r=0,s=a,n=0;continue}}t&&(e.length>0?e+="/..":e="..",r=2)}else e.length>0?e+=`/${i.slice(s+1,a)}`:e=i.slice(s+1,a),r=a-s-1;s=a,n=0}else o===46&&n!==-1?++n:n=-1}return e}var Lr,Pc=p(()=>{xt();Lr={toPosix(i){return wS(i,"\\","/")},isUrl(i){return/^https?:/.test(this.toPosix(i))},isDataUrl(i){return/^data:([a-z]+\/[a-z0-9-+.]+(;[a-z0-9-.!#$%*+.{}|~`]+=[a-z0-9-.!#$%*+.{}()_|~`]+)*)?(;base64)?,([a-z0-9!$&',()*+;=\-._~:@\/?%\s<>]*?)$/i.test(i)},isBlobUrl(i){return i.startsWith("blob:")},hasProtocol(i){return/^[^/:]+:/.test(this.toPosix(i))},getProtocol(i){Ae(i),i=this.toPosix(i);let t=/^file:\/\/\//.exec(i);if(t)return t[0];let e=/^[^/:]+:\/{0,2}/.exec(i);return e?e[0]:""},toAbsolute(i,t,e){if(Ae(i),this.isDataUrl(i)||this.isBlobUrl(i))return i;let r=Ms(this.toPosix(t??W.get().getBaseUrl())),s=Ms(this.toPosix(e??this.rootname(r)));return i=this.toPosix(i),i.startsWith("/")?Lr.join(s,i.slice(1)):this.isAbsolute(i)?i:this.join(r,i)},normalize(i){if(Ae(i),i.length===0)return".";if(this.isDataUrl(i)||this.isBlobUrl(i))return i;i=this.toPosix(i);let t="",e=i.startsWith("/");this.hasProtocol(i)&&(t=this.rootname(i),i=i.slice(t.length));let r=i.endsWith("/");return i=CS(i,!1),i.length>0&&r&&(i+="/"),e?`/${i}`:t+i},isAbsolute(i){return Ae(i),i=this.toPosix(i),this.hasProtocol(i)?!0:i.startsWith("/")},join(...i){if(i.length===0)return".";let t;for(let e=0;e<i.length;++e){let r=i[e];if(Ae(r),r.length>0)if(t===void 0)t=r;else{let s=i[e-1]??"";this.joinExtensions.includes(this.extname(s).toLowerCase())?t+=`/../${r}`:t+=`/${r}`}}return t===void 0?".":this.normalize(t)},dirname(i){if(Ae(i),i.length===0)return".";i=this.toPosix(i);let t=i.charCodeAt(0),e=t===47,r=-1,s=!0,n=this.getProtocol(i),o=i;i=i.slice(n.length);for(let a=i.length-1;a>=1;--a)if(t=i.charCodeAt(a),t===47){if(!s){r=a;break}}else s=!1;return r===-1?e?"/":this.isUrl(o)?n+i:n:e&&r===1?"//":n+i.slice(0,r)},rootname(i){Ae(i),i=this.toPosix(i);let t="";if(i.startsWith("/")?t="/":t=this.getProtocol(i),this.isUrl(i)){let e=i.indexOf("/",t.length);e!==-1?t=i.slice(0,e):t=i,t.endsWith("/")||(t+="/")}return t},basename(i,t){Ae(i),t&&Ae(t),i=Ms(this.toPosix(i));let e=0,r=-1,s=!0,n;if(t!==void 0&&t.length>0&&t.length<=i.length){if(t.length===i.length&&t===i)return"";let o=t.length-1,a=-1;for(n=i.length-1;n>=0;--n){let l=i.charCodeAt(n);if(l===47){if(!s){e=n+1;break}}else a===-1&&(s=!1,a=n+1),o>=0&&(l===t.charCodeAt(o)?--o===-1&&(r=n):(o=-1,r=a))}return e===r?r=a:r===-1&&(r=i.length),i.slice(e,r)}for(n=i.length-1;n>=0;--n)if(i.charCodeAt(n)===47){if(!s){e=n+1;break}}else r===-1&&(s=!1,r=n+1);return r===-1?"":i.slice(e,r)},extname(i){Ae(i),i=Ms(this.toPosix(i));let t=-1,e=0,r=-1,s=!0,n=0;for(let o=i.length-1;o>=0;--o){let a=i.charCodeAt(o);if(a===47){if(!s){e=o+1;break}continue}r===-1&&(s=!1,r=o+1),a===46?t===-1?t=o:n!==1&&(n=1):t!==-1&&(n=-1)}return t===-1||r===-1||n===0||n===1&&t===r-1&&t===e+1?"":i.slice(t,r)},parse(i){Ae(i);let t={root:"",dir:"",base:"",ext:"",name:""};if(i.length===0)return t;i=Ms(this.toPosix(i));let e=i.charCodeAt(0),r=this.isAbsolute(i),s,n="";t.root=this.rootname(i),r||this.hasProtocol(i)?s=1:s=0;let o=-1,a=0,l=-1,c=!0,h=i.length-1,u=0;for(;h>=s;--h){if(e=i.charCodeAt(h),e===47){if(!c){a=h+1;break}continue}l===-1&&(c=!1,l=h+1),e===46?o===-1?o=h:u!==1&&(u=1):o!==-1&&(u=-1)}return o===-1||l===-1||u===0||u===1&&o===l-1&&o===a+1?l!==-1&&(a===0&&r?t.base=t.name=i.slice(1,l):t.base=t.name=i.slice(a,l)):(a===0&&r?(t.name=i.slice(1,o),t.base=i.slice(1,l)):(t.name=i.slice(a,o),t.base=i.slice(a,l)),t.ext=i.slice(o,l)),t.dir=this.dirname(i),n&&(t.dir=n+t.dir),t},sep:"/",delimiter:":",joinExtensions:[".html"]}});var dr,Mc=p(()=>{"use strict";dr=(i,t,e=!1)=>(Array.isArray(i)||(i=[i]),t?i.map(r=>typeof r=="string"||e?t(r):r):i)});function zp(i,t,e,r,s){let n=t[e];for(let o=0;o<n.length;o++){let a=n[o];e<t.length-1?zp(i.replace(r[e],a),t,e+1,r,s):s.push(i.replace(r[e],a))}}function Hp(i){let t=/\{(.*?)\}/g,e=i.match(t),r=[];if(e){let s=[];e.forEach(n=>{let o=n.substring(1,n.length-1).split(",");s.push(o)}),zp(i,s,0,e,r)}else r.push(i);return r}var Wp=p(()=>{"use strict"});var Ac,Vp=p(()=>{"use strict";Ac=i=>!Array.isArray(i)});function ES(i){return i.split(".").pop().split("?").shift().split("#").shift()}var As,jp=p(()=>{ht();Pc();Mc();Wp();Vp();As=class{constructor(){this._defaultBundleIdentifierOptions={connector:"-",createBundleAssetId:(t,e)=>`${t}${this._bundleIdConnector}${e}`,extractAssetIdFromBundle:(t,e)=>e.replace(`${t}${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(t){if(this._bundleIdConnector=t.connector??this._bundleIdConnector,this._createBundleAssetId=t.createBundleAssetId??this._createBundleAssetId,this._extractAssetIdFromBundle=t.extractAssetIdFromBundle??this._extractAssetIdFromBundle,this._extractAssetIdFromBundle("foo",this._createBundleAssetId("foo","bar"))!=="bar")throw new Error("[Resolver] GenerateBundleAssetId are not working correctly")}prefer(...t){t.forEach(e=>{this._preferredOrder.push(e),e.priority||(e.priority=Object.keys(e.params))}),this._resolverHash={}}set basePath(t){this._basePath=t}get basePath(){return this._basePath}set rootPath(t){this._rootPath=t}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(t){if(typeof t=="string")this._defaultSearchParams=t;else{let e=t;this._defaultSearchParams=Object.keys(e).map(r=>`${encodeURIComponent(r)}=${encodeURIComponent(e[r])}`).join("&")}}getAlias(t){let{alias:e,src:r}=t;return dr(e||r,n=>typeof n=="string"?n:Array.isArray(n)?n.map(o=>o?.src??o):n?.src?n.src:n,!0)}removeAlias(t,e){this._assetMap[t]&&(e&&e!==this._resolverHash[t]||(delete this._resolverHash[t],delete this._assetMap[t]))}addManifest(t){this._manifest&&L("[Resolver] Manifest already exists, this will be overwritten"),this._manifest=t,t.bundles.forEach(e=>{this.addBundle(e.name,e.assets)})}addBundle(t,e){let r=[],s=e;Array.isArray(e)||(s=Object.entries(e).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,l;if(typeof a=="string"){let c=this._createBundleAssetId(t,a);r.push(c),l=[a,c]}else{let c=a.map(h=>this._createBundleAssetId(t,h));r.push(...c),l=[...a,...c]}this.add({...n,alias:l,src:o})}),this._bundles[t]=r}add(t){let e=[];Array.isArray(t)?e.push(...t):e.push(t);let r;r=n=>{this.hasKey(n)&&L(`[Resolver] already has key: ${n} overwriting`)},dr(e).forEach(n=>{let{src:o}=n,{data:a,format:l,loadParser:c,parser:h}=n,u=dr(o).map(g=>typeof g=="string"?Hp(g):Array.isArray(g)?g:[g]),d=this.getAlias(n);Array.isArray(d)?d.forEach(r):r(d);let f=[],m=g=>{let _=this._parsers.find(x=>x.test(g));return{src:g,..._?.parse(g)}};u.forEach(g=>{g.forEach(_=>{let x={};if(typeof _!="object"?x=m(_):(a=_.data??a,l=_.format??l,(_.loadParser||_.parser)&&(c=_.loadParser??c,h=_.parser??h),x={...m(_.src),..._}),!d)throw new Error(`[Resolver] alias is undefined for this asset: ${x.src}`);x=this._buildResolvedAsset(x,{aliases:d,data:a,format:l,loadParser:c,parser:h,progressSize:n.progressSize}),f.push(x)})}),d.forEach(g=>{this._assetMap[g]=f})})}resolveBundle(t){let e=Ac(t);t=dr(t);let r={};return t.forEach(s=>{let n=this._bundles[s];if(n){let o=this.resolve(n),a={};for(let l in o){let c=o[l];a[this._extractAssetIdFromBundle(s,l)]=c}r[s]=a}}),e?r[t[0]]:r}resolveUrl(t){let e=this.resolve(t);if(typeof t!="string"){let r={};for(let s in e)r[s]=e[s].src;return r}return e.src}resolve(t){let e=Ac(t);t=dr(t);let r={};return t.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(l=>{let c=n.filter(h=>h[a]?h[a]===l:!1);c.length&&(n=c)})}),this._resolverHash[s]=n[0]}else this._resolverHash[s]=this._buildResolvedAsset({alias:[s],src:s},{});r[s]=this._resolverHash[s]}),e?r[t[0]]:r}hasKey(t){return!!this._assetMap[t]}hasBundle(t){return!!this._bundles[t]}_getPreferredOrder(t){for(let e=0;e<t.length;e++){let r=t[e],s=this._preferredOrder.find(n=>n.params.format.includes(r.format));if(s)return s}return this._preferredOrder[0]}_appendDefaultSearchParams(t){if(!this._defaultSearchParams)return t;let e=/\?/.test(t)?"&":"?";return`${t}${e}${this._defaultSearchParams}`}_buildResolvedAsset(t,e){let{aliases:r,data:s,loadParser:n,parser:o,format:a,progressSize:l}=e;return(this._basePath||this._rootPath)&&(t.src=Lr.toAbsolute(t.src,this._basePath,this._rootPath)),t.alias=r??t.alias??[t.src],t.src=this._appendDefaultSearchParams(t.src),t.data={...s||{},...t.data},t.loadParser=n??t.loadParser,t.parser=o??t.parser,t.format=a??t.format??ES(t.src),l!==void 0&&(t.progressSize=l),t}};As.RETINA_PREFIX=/@([0-9\.]+)x/});var Rc,Xp=p(()=>{"use strict";Rc=(i,t)=>{let e=t.split("?")[1];return e&&(i+=`?${e}`),i}});var Yp,kc,$p=p(()=>{Yt();$t();gt();Yp=class Rs{constructor(t,e){this.linkedSheets=[];let r=t;t?.source instanceof st&&(r={texture:t,data:e});let{texture:s,data:n,cachePrefix:o=""}=r;this.cachePrefix=o,this._texture=s instanceof F?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(t=>{this._callback=t,this._batchIndex=0,this._frameKeys.length<=Rs.BATCH_SIZE?(this._processFrames(0),this._processAnimations(),this._parseComplete()):this._nextBatch()})}parseSync(){return this._processFrames(0,!0),this._processAnimations(),this.textures}_processFrames(t,e=!1){let r=t,s=e?1/0:Rs.BATCH_SIZE;for(;r-t<s&&r<this._frameKeys.length;){let n=this._frameKeys[r],o=this._frames[n],a=o.frame;if(a){let l=null,c=null,h=o.trimmed!==!1&&o.sourceSize?o.sourceSize:o.frame,u=new J(0,0,Math.floor(h.w)/this.resolution,Math.floor(h.h)/this.resolution);o.rotated?l=new J(Math.floor(a.x)/this.resolution,Math.floor(a.y)/this.resolution,Math.floor(a.h)/this.resolution,Math.floor(a.w)/this.resolution):l=new J(Math.floor(a.x)/this.resolution,Math.floor(a.y)/this.resolution,Math.floor(a.w)/this.resolution,Math.floor(a.h)/this.resolution),o.trimmed!==!1&&o.spriteSourceSize&&(c=new J(Math.floor(o.spriteSourceSize.x)/this.resolution,Math.floor(o.spriteSourceSize.y)/this.resolution,Math.floor(a.w)/this.resolution,Math.floor(a.h)/this.resolution)),this.textures[n]=new F({source:this.textureSource,frame:l,orig:u,trim:c,rotate:o.rotated?2:0,defaultAnchor:o.anchor,defaultBorders:o.borders,label:n.toString()})}r++}}_processAnimations(){let t=this.data.animations||{};for(let e in t){this.animations[e]=[];for(let r=0;r<t[e].length;r++){let s=t[e][r];this.animations[e].push(this.textures[s])}}}_parseComplete(){let t=this._callback;this._callback=null,this._batchIndex=0,t.call(this,this.textures)}_nextBatch(){this._processFrames(this._batchIndex*Rs.BATCH_SIZE),this._batchIndex++,setTimeout(()=>{this._batchIndex*Rs.BATCH_SIZE<this._frameKeys.length?this._nextBatch():(this._processAnimations(),this._parseComplete())},0)}destroy(t=!1){for(let e in this.textures)this.textures[e].destroy();this._frames=null,this._frameKeys=null,this.data=null,this.textures=null,t&&(this._texture?.destroy(),this.textureSource.destroy()),this._texture=null,this.textureSource=null,this.linkedSheets=[]}};Yp.BATCH_SIZE=1e3;kc=Yp});function qp(i,t,e){let r={};if(i.forEach(s=>{r[s]=t}),Object.keys(t.textures).forEach(s=>{r[`${t.cachePrefix}${s}`]=t.textures[s]}),!e){let s=Lr.dirname(i[0]);t.linkedSheets.forEach((n,o)=>{let a=qp([`${s}/${t.data.meta.related_multi_packs[o]}`],n,!0);Object.assign(r,a)})}return r}var PS,Kp,Zp=p(()=>{Dp();jp();Xp();P();gt();Pc();$p();PS=["jpg","png","jpeg","avif","webp","basis","etc2","bc7","bc6h","bc5","bc4","bc3","bc2","bc1","eac","astc"];Kp={extension:y.Asset,cache:{test:i=>i instanceof kc,getCacheableAssets:(i,t)=>qp(i,t,!1)},resolver:{extension:{type:y.ResolveParser,name:"resolveSpritesheet"},test:i=>{let e=i.split("?")[0].split("."),r=e.pop(),s=e.pop();return r==="json"&&PS.includes(s)},parse:i=>{let t=i.split(".");return{resolution:parseFloat(As.RETINA_PREFIX.exec(i)?.[1]??"1"),format:t[t.length-2],src:i}}},loader:{name:"spritesheetLoader",id:"spritesheet",extension:{type:y.LoadParser,priority:Ec.Normal,name:"spritesheetLoader"},async testParse(i,t){return Lr.extname(t.src).toLowerCase()===".json"&&!!i.frames},async parse(i,t,e){let{texture:r,imageFilename:s,textureOptions:n,cachePrefix:o}=t?.data??{},a=Lr.dirname(t.src);a&&a.lastIndexOf("/")!==a.length-1&&(a+="/");let l;if(r instanceof F)l=r;else{let u=Rc(a+(s??i.meta.image),t.src);l=(await e.load([{src:u,data:n}]))[u]}let c=new kc({texture:l.source,data:i,cachePrefix:o});await c.parse();let h=i?.meta?.related_multi_packs;if(Array.isArray(h)){let u=[];for(let f of h){if(typeof f!="string")continue;let m=a+f;t.data?.ignoreMultiPack||(m=Rc(m,t.src),u.push(e.load({src:m,data:{textureOptions:n,ignoreMultiPack:!0}})))}let d=await Promise.all(u);c.linkedSheets=d,d.forEach(f=>{f.linkedSheets=[c].concat(c.linkedSheets.filter(m=>m!==f))})}return c},async unload(i,t,e){await e.unload(i.textureSource._sourceOrigin),i.destroy(!1)}}}});var No=p(()=>{P();Zp();z.add(Kp)});function zo(i,t,e){let{width:r,height:s}=e.orig,n=e.trim;if(n){let o=n.width,a=n.height;i.minX=n.x-t._x*r,i.maxX=i.minX+o,i.minY=n.y-t._y*s,i.maxY=i.minY+a}else i.minX=-t._x*r,i.maxX=i.minX+r,i.minY=-t._y*s,i.maxY=i.minY+s}var Bc=p(()=>{"use strict"});var he,Ho=p(()=>{vo();gt();Bc();yt();Es();he=class i extends Le{constructor(t=F.EMPTY){t instanceof F&&(t={texture:t});let{texture:e=F.EMPTY,anchor:r,roundPixels:s,width:n,height:o,...a}=t;super({label:"Sprite",...a}),this.renderPipeId="sprite",this.batched=!0,this._visualBounds={minX:0,maxX:1,minY:0,maxY:0},this._anchor=new Gt({_onUpdate:()=>{this.onViewUpdate()}}),r?this.anchor=r:e.defaultAnchor&&(this.anchor=e.defaultAnchor),this.texture=e,this.allowChildren=!1,this.roundPixels=s??!1,n!==void 0&&(this.width=n),o!==void 0&&(this.height=o)}static from(t,e=!1){return t instanceof F?new i(t):new i(F.from(t,e))}set texture(t){t||(t=F.EMPTY);let e=this._texture;e!==t&&(e&&e.dynamic&&e.off("update",this.onViewUpdate,this),t.dynamic&&t.on("update",this.onViewUpdate,this),this._texture=t,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 zo(this._visualBounds,this._anchor,this._texture),this._visualBounds}get sourceBounds(){return O("8.6.1","Sprite.sourceBounds is deprecated, use visualBounds instead."),this.visualBounds}updateBounds(){let t=this._anchor,e=this._texture,r=this._bounds,{width:s,height:n}=e.orig;r.minX=-t._x*s,r.maxX=r.minX+s,r.minY=-t._y*n,r.maxY=r.minY+n}destroy(t=!1){if(super.destroy(t),typeof t=="boolean"?t:t?.texture){let r=typeof t=="boolean"?t:t?.textureSource;this._texture.destroy(r)}this._texture=null,this._visualBounds=null,this._bounds=null,this._anchor=null}get anchor(){return this._anchor}set anchor(t){typeof t=="number"?this._anchor.set(t):this._anchor.copyFrom(t)}get width(){return Math.abs(this.scale.x)*this._texture.orig.width}set width(t){this._setWidth(t,this._texture.orig.width),this._width=t}get height(){return Math.abs(this.scale.y)*this._texture.orig.height}set height(t){this._setHeight(t,this._texture.orig.height),this._height=t}getSize(t){return t||(t={}),t.width=Math.abs(this.scale.x)*this._texture.orig.width,t.height=Math.abs(this.scale.y)*this._texture.orig.height,t}setSize(t,e){typeof t=="object"?(e=t.height??t.width,t=t.width):e??(e=t),t!==void 0&&this._setWidth(t,this._texture.orig.width),e!==void 0&&this._setHeight(e,this._texture.orig.height)}}});function Wo(i,t,e){let r=MS;i.measurable=!0,xi(i,e,r),t.addBoundsMask(r),i.measurable=!1}var MS,Ic=p(()=>{ie();_s();MS=new dt});function Vo(i,t,e){let r=fe.get();i.measurable=!0;let s=Ut.get().identity(),n=Qp(i,e,s);yi(i,r,n),i.measurable=!1,t.addBoundsMask(r),Ut.return(s),fe.return(r)}function Qp(i,t,e){return i?(i!==t&&(Qp(i.parent,t,e),i.updateLocalTransform(),e.append(i.localTransform)),e):(L("Mask bounds, renderable is not inside the root container"),e)}var Gc=p(()=>{Ao();Mr();ht()});var ks,Jp=p(()=>{P();Ho();Ic();Gc();ks=class{constructor(t){this.priority=0,this.inverse=!1,this.channel="red",this.pipe="alphaMask",t?.mask&&this.init(t.mask)}init(t){this.mask=t,this.renderMaskToTexture=!(t instanceof he),this.mask.renderable=this.renderMaskToTexture,this.mask.includeInBuild=!this.renderMaskToTexture,this.mask.measurable=!1}reset(){this.mask!==null&&(this.mask.measurable=!0,this.mask=null)}addBounds(t,e){this.inverse||Wo(this.mask,t,e)}addLocalBounds(t,e){Vo(this.mask,t,e)}containsPoint(t,e){let r=this.mask;return e(r,t)}destroy(){this.reset()}static test(t){return t instanceof he}};ks.extension=y.MaskEffect});var Bs,tm=p(()=>{P();Bs=class{constructor(t){this.priority=0,this.pipe="colorMask",t?.mask&&this.init(t.mask)}init(t){this.mask=t}destroy(){}static test(t){return typeof t=="number"}};Bs.extension=y.MaskEffect});var Is,em=p(()=>{P();Pe();Ic();Gc();Is=class{constructor(t){this.priority=0,this.pipe="stencilMask",t?.mask&&this.init(t.mask)}init(t){this.mask=t,this.mask.includeInBuild=!1,this.mask.measurable=!1}reset(){this.mask!==null&&(this.mask.measurable=!0,this.mask.includeInBuild=!0,this.mask=null)}addBounds(t,e){Wo(this.mask,t,e)}addLocalBounds(t,e){Vo(this.mask,t,e)}containsPoint(t,e){let r=this.mask;return e(r,t)}destroy(){this.reset()}static test(t){return t instanceof mt}};Is.extension=y.MaskEffect});var Tt,fr=p(()=>{xt();P();$t();Tt=class extends st{constructor(t){t.resource||(t.resource=W.get().createCanvas()),t.width||(t.width=t.resource.width,t.autoDensity||(t.width/=t.resolution)),t.height||(t.height=t.resource.height,t.autoDensity||(t.height/=t.resolution)),super(t),this.uploadMethodId="image",this.autoDensity=t.autoDensity,this.resizeCanvas(),this.transparent=!!t.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(t=this.width,e=this.height,r=this._resolution){let s=super.resize(t,e,r);return s&&this.resizeCanvas(),s}static test(t){return globalThis.HTMLCanvasElement&&t instanceof HTMLCanvasElement||globalThis.OffscreenCanvas&&t instanceof OffscreenCanvas}get context2D(){return this._context2D||(this._context2D=this.resource.getContext("2d"))}};Tt.extension=y.TextureSource});var Re,jo=p(()=>{P();$t();Re=class extends st{constructor(t){super(t),this.uploadMethodId="image",this.autoGarbageCollect=!0}static test(t){return globalThis.HTMLImageElement&&t instanceof HTMLImageElement||typeof ImageBitmap<"u"&&t instanceof ImageBitmap||globalThis.VideoFrame&&t instanceof VideoFrame}};Re.extension=y.TextureSource});async function rm(){return Fc??(Fc=(async()=>{let t=W.get().createCanvas(1,1).getContext("webgl");if(!t)return"premultiply-alpha-on-upload";let e=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(!e)return"premultiply-alpha-on-upload";let r=t.createTexture();t.bindTexture(t.TEXTURE_2D,r);let s=t.createFramebuffer();t.bindFramebuffer(t.FRAMEBUFFER,s),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,r,0),t.pixelStorei(t.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),t.pixelStorei(t.UNPACK_COLORSPACE_CONVERSION_WEBGL,t.NONE),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,t.UNSIGNED_BYTE,e);let n=new Uint8Array(4);return t.readPixels(0,0,1,1,t.RGBA,t.UNSIGNED_BYTE,n),t.deleteFramebuffer(s),t.deleteTexture(r),t.getExtension("WEBGL_lose_context")?.loseContext(),n[0]<=n[3]?"premultiplied-alpha":"premultiply-alpha-on-upload"})()),Fc}var Fc,im=p(()=>{xt()});var Xo,nm,om=p(()=>{P();Ti();im();$t();Xo=class sm extends st{constructor(t){super(t),this.isReady=!1,this.uploadMethodId="video",t={...sm.defaultOptions,...t},this._autoUpdate=!0,this._isConnectedToTicker=!1,this._updateFPS=t.updateFPS||0,this._msToNextUpdate=0,this.autoPlay=t.autoPlay!==!1,this.alphaMode=t.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),this._onLoadedMetadata=this._onLoadedMetadata.bind(this),t.autoLoad!==!1&&this.load()}updateFrame(){if(!this.destroyed){if(this._updateFPS){let t=qt.shared.elapsedMS*this.resource.playbackRate;this._msToNextUpdate=Math.floor(this._msToNextUpdate-t)}(!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 t=this.resource,e=this.options;return(t.readyState===t.HAVE_ENOUGH_DATA||t.readyState===t.HAVE_FUTURE_DATA)&&t.width&&t.height&&(t.complete=!0),t.addEventListener("play",this._onPlayStart),t.addEventListener("pause",this._onPlayStop),t.addEventListener("seeked",this._onSeeked),this._isSourceReady()?this._mediaReady():(e.preload||t.addEventListener("canplay",this._onCanPlay),t.addEventListener("canplaythrough",this._onCanPlayThrough),t.addEventListener("error",this._onError,!0)),this.isValid||t.addEventListener("loadedmetadata",this._onLoadedMetadata),this.alphaMode=await rm(),this._load=new Promise((r,s)=>{this.isValid?r(this):(this._resolve=r,this._reject=s,e.preloadTimeoutMs!==void 0&&(this._preloadTimeout=setTimeout(()=>{this._onError(new ErrorEvent(`Preload exceeded timeout of ${e.preloadTimeoutMs}ms`))})),t.load())}),this._load}_onError(t){this.resource.removeEventListener("error",this._onError,!0),this.emit("error",t),this._reject&&(this._reject(t),this._reject=null,this._resolve=null)}_isSourcePlaying(){let t=this.resource;return!t.paused&&!t.ended}_isSourceReady(){return this.resource.readyState>2}_onPlayStart(){this._configureAutoUpdate()}_onPlayStop(){this._configureAutoUpdate()}_onSeeked(){this._autoUpdate&&!this._isSourcePlaying()&&(this._msToNextUpdate=0,this.updateFrame(),this._msToNextUpdate=0)}_onLoadedMetadata(){this.isValid&&this._mediaReady()}_onCanPlay(){this.resource.removeEventListener("canplay",this._onCanPlay),this._mediaReady()}_onCanPlayThrough(){this.resource.removeEventListener("canplaythrough",this._onCanPlayThrough),this._preloadTimeout&&(clearTimeout(this._preloadTimeout),this._preloadTimeout=void 0),this._mediaReady()}_mediaReady(){let t=this.resource;this.isValid&&(this.isReady=!0,this.resize(t.videoWidth,t.videoHeight)),this._msToNextUpdate=0,this.updateFrame(),this._msToNextUpdate=0,this._resolve&&this.isValid&&(this._resolve(this),this._resolve=null,this._reject=null),this._isSourcePlaying()?this._onPlayStart():this.autoPlay&&this.resource.play()}destroy(){this._configureAutoUpdate();let t=this.resource;t&&(t.removeEventListener("play",this._onPlayStart),t.removeEventListener("pause",this._onPlayStop),t.removeEventListener("seeked",this._onSeeked),t.removeEventListener("canplay",this._onCanPlay),t.removeEventListener("canplaythrough",this._onCanPlayThrough),t.removeEventListener("loadedmetadata",this._onLoadedMetadata),t.removeEventListener("error",this._onError,!0),t.pause(),t.src="",t.load()),super.destroy()}get autoUpdate(){return this._autoUpdate}set autoUpdate(t){t!==this._autoUpdate&&(this._autoUpdate=t,this._configureAutoUpdate())}get updateFPS(){return this._updateFPS}set updateFPS(t){t!==this._updateFPS&&(this._updateFPS=t,this._configureAutoUpdate())}_configureAutoUpdate(){this._autoUpdate&&this._isSourcePlaying()?!this._updateFPS&&this.resource.requestVideoFrameCallback?(this._isConnectedToTicker&&(qt.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||(qt.shared.add(this.updateFrame,this),this._isConnectedToTicker=!0,this._msToNextUpdate=0)):(this._videoFrameRequestCallbackHandle!==null&&(this.resource.cancelVideoFrameCallback(this._videoFrameRequestCallbackHandle),this._videoFrameRequestCallbackHandle=null),this._isConnectedToTicker&&(qt.shared.remove(this.updateFrame,this),this._isConnectedToTicker=!1,this._msToNextUpdate=0))}static test(t){return globalThis.HTMLVideoElement&&t instanceof HTMLVideoElement}};Xo.extension=y.TextureSource;Xo.defaultOptions={...st.defaultOptions,autoLoad:!0,autoPlay:!0,updateFPS:0,crossorigin:!0,loop:!1,muted:!0,playsinline:!0,preload:!1};Xo.MIME_TYPES={ogv:"video/ogg",mov:"video/quicktime",m4v:"video/mp4"};nm=Xo});var Uc,Or,am=p(()=>{ht();Mc();Uc=class{constructor(){this._parsers=[],this._cache=new Map,this._cacheMap=new Map}reset(){this._cacheMap.clear(),this._cache.clear()}has(t){return this._cache.has(t)}get(t){let e=this._cache.get(t);return e||L(`[Assets] Asset id ${t} was not found in the Cache`),e}set(t,e){let r=dr(t),s;for(let l=0;l<this.parsers.length;l++){let c=this.parsers[l];if(c.test(e)){s=c.getCacheableAssets(r,e);break}}let n=new Map(Object.entries(s||{}));s||r.forEach(l=>{n.set(l,e)});let o=[...n.keys()],a={cacheKeys:o,keys:r};r.forEach(l=>{this._cacheMap.set(l,a)}),o.forEach(l=>{let c=s?s[l]:e;this._cache.has(l)&&this._cache.get(l)!==c&&L("[Cache] already has key:",l),this._cache.set(l,n.get(l))})}remove(t){if(!this._cacheMap.has(t)){L(`[Assets] Asset id ${t} was not found in the Cache`);return}let e=this._cacheMap.get(t);e.cacheKeys.forEach(s=>{this._cache.delete(s)}),e.keys.forEach(s=>{this._cacheMap.delete(s)})}get parsers(){return this._parsers}},Or=new Uc});function lm(i={}){let t=i&&i.resource,e=t?i.resource:i,r=t?i:{resource:i};for(let s=0;s<Dc.length;s++){let n=Dc[s];if(n.test(e))return new n(r)}throw new Error(`Could not find a source type for resource: ${r.resource}`)}function cm(i={},t=!1){let e=i&&i.resource,r=e?i.resource:i,s=e?i:{resource:i};if(!t&&Or.has(r))return Or.get(r);let n=new F({source:lm(s)});return n.on("destroy",()=>{Or.has(r)&&Or.remove(r)}),t||Or.set(r,n),n}function hm(i,t=!1){return typeof i=="string"?Or.get(i):i instanceof st?new F({source:i}):cm(i,t)}var Dc,Lc=p(()=>{am();P();$t();gt();Dc=[];z.handleByList(y.TextureSource,Dc);F.from=hm;st.from=lm});var Yo=p(()=>{P();Jp();tm();em();lc();fr();jo();om();Lc();z.add(ks,Bs,Is,nm,Re,Tt,Gr)});function um(i){let t=W.get().createCanvas(6,1),e=t.getContext("2d");return e.fillStyle=i,e.fillRect(0,0,6,1),t}function $o(){if(Ei!==void 0)return Ei;try{let i=um("#ff00ff"),t=um("#ffff00"),r=W.get().createCanvas(6,1).getContext("2d");r.globalCompositeOperation="multiply",r.drawImage(i,0,0),r.drawImage(t,2,0);let s=r.getImageData(2,0,1,1);if(!s)Ei=!1;else{let n=s.data;Ei=n[0]===255&&n[1]===0&&n[2]===0}}catch{Ei=!1}return Ei}var Ei,Oc=p(()=>{xt()});var Z,Pi=p(()=>{Qt();xt();vs();Oc();Z={canvas:null,convertTintToImage:!1,cacheStepsPerColorChannel:8,canUseMultiply:$o(),tintMethod:null,_canvasSourceCache:new WeakMap,_unpremultipliedCache:new WeakMap,getCanvasSource:i=>{let t=i.source,e=t?.resource;if(!e)return null;let r=t.alphaMode==="premultiplied-alpha",s=t.resourceWidth??t.pixelWidth,n=t.resourceHeight??t.pixelHeight,o=s!==t.pixelWidth||n!==t.pixelHeight;if(r){if((e instanceof HTMLCanvasElement||typeof OffscreenCanvas<"u"&&e instanceof OffscreenCanvas)&&!o)return e;let a=Z._unpremultipliedCache.get(t);if(a?.resourceId===t._resourceId)return a.canvas}if(e instanceof Uint8Array||e instanceof Uint8ClampedArray||e instanceof Int8Array||e instanceof Uint16Array||e instanceof Int16Array||e instanceof Uint32Array||e instanceof Int32Array||e instanceof Float32Array||e instanceof ArrayBuffer){let a=Z._canvasSourceCache.get(t);if(a?.resourceId===t._resourceId)return a.canvas;let l=W.get().createCanvas(t.pixelWidth,t.pixelHeight),c=l.getContext("2d"),h=c.createImageData(t.pixelWidth,t.pixelHeight),u=h.data,d=e instanceof ArrayBuffer?new Uint8Array(e):new Uint8Array(e.buffer,e.byteOffset,e.byteLength);if(t.format==="bgra8unorm")for(let f=0;f<u.length&&f+3<d.length;f+=4)u[f]=d[f+2],u[f+1]=d[f+1],u[f+2]=d[f],u[f+3]=d[f+3];else u.set(d.subarray(0,u.length));return c.putImageData(h,0,0),Z._canvasSourceCache.set(t,{canvas:l,resourceId:t._resourceId}),l}if(r){let a=W.get().createCanvas(t.pixelWidth,t.pixelHeight),l=a.getContext("2d",{willReadFrequently:!0});a.width=t.pixelWidth,a.height=t.pixelHeight,l.drawImage(e,0,0);let c=l.getImageData(0,0,a.width,a.height),h=c.data;for(let u=0;u<h.length;u+=4){let d=h[u+3];if(d>0){let f=255/d;h[u]=Math.min(255,h[u]*f+.5),h[u+1]=Math.min(255,h[u+1]*f+.5),h[u+2]=Math.min(255,h[u+2]*f+.5)}}return l.putImageData(c,0,0),Z._unpremultipliedCache.set(t,{canvas:a,resourceId:t._resourceId}),a}if(o){let a=Z._canvasSourceCache.get(t);if(a?.resourceId===t._resourceId)return a.canvas;let l=W.get().createCanvas(t.pixelWidth,t.pixelHeight),c=l.getContext("2d");return l.width=t.pixelWidth,l.height=t.pixelHeight,c.drawImage(e,0,0),Z._canvasSourceCache.set(t,{canvas:l,resourceId:t._resourceId}),l}return e},getTintedCanvas:(i,t)=>{let e=i.texture,r=Q.shared.setValue(t).toHex(),s=e.tintCache||(e.tintCache={}),n=s[r],o=e.source._resourceId;if(n?.tintId===o)return n;let a=n&&"getContext"in n?n:W.get().createCanvas();if(Z.tintMethod(e,t,a),a.tintId=o,Z.convertTintToImage&&a.toDataURL!==void 0){let l=W.get().createImage();l.src=a.toDataURL(),l.tintId=o,s[r]=l}else s[r]=a;return s[r]},getTintedPattern:(i,t)=>{let e=Q.shared.setValue(t).toHex(),r=i.patternCache||(i.patternCache={}),s=i.source._resourceId,n=r[e];return n?.tintId===s||(Z.canvas||(Z.canvas=W.get().createCanvas()),Z.tintMethod(i,t,Z.canvas),n=Z.canvas.getContext("2d").createPattern(Z.canvas,"repeat"),n.tintId=s,r[e]=n),n},applyPatternTransform:(i,t,e=!0)=>{if(!t)return;let r=i;if(!r.setTransform)return;let s=globalThis.DOMMatrix;if(!s)return;let n=new s([t.a,t.b,t.c,t.d,t.tx,t.ty]);r.setTransform(e?n.inverse():n)},tintWithMultiply:(i,t,e)=>{let r=e.getContext("2d"),s=i.frame.clone(),n=i.source._resolution??i.source.resolution??1,o=i.rotate;s.x*=n,s.y*=n,s.width*=n,s.height*=n;let a=it.isVertical(o),l=a?s.height:s.width,c=a?s.width:s.height;e.width=Math.ceil(l),e.height=Math.ceil(c),r.save(),r.fillStyle=Q.shared.setValue(t).toHex(),r.fillRect(0,0,l,c),r.globalCompositeOperation="multiply";let h=Z.getCanvasSource(i);if(!h){r.restore();return}o&&Z._applyInverseRotation(r,o,s.width,s.height),r.drawImage(h,s.x,s.y,s.width,s.height,0,0,s.width,s.height),r.globalCompositeOperation="destination-atop",r.drawImage(h,s.x,s.y,s.width,s.height,0,0,s.width,s.height),r.restore()},tintWithOverlay:(i,t,e)=>{let r=e.getContext("2d"),s=i.frame.clone(),n=i.source._resolution??i.source.resolution??1,o=i.rotate;s.x*=n,s.y*=n,s.width*=n,s.height*=n;let a=it.isVertical(o),l=a?s.height:s.width,c=a?s.width:s.height;e.width=Math.ceil(l),e.height=Math.ceil(c),r.save(),r.globalCompositeOperation="copy",r.fillStyle=Q.shared.setValue(t).toHex(),r.fillRect(0,0,l,c),r.globalCompositeOperation="destination-atop";let h=Z.getCanvasSource(i);if(!h){r.restore();return}o&&Z._applyInverseRotation(r,o,s.width,s.height),r.drawImage(h,s.x,s.y,s.width,s.height,0,0,s.width,s.height),r.restore()},tintWithPerPixel:(i,t,e)=>{let r=e.getContext("2d"),s=i.frame.clone(),n=i.source._resolution??i.source.resolution??1,o=i.rotate;s.x*=n,s.y*=n,s.width*=n,s.height*=n;let a=it.isVertical(o),l=a?s.height:s.width,c=a?s.width:s.height;e.width=Math.ceil(l),e.height=Math.ceil(c),r.save(),r.globalCompositeOperation="copy";let h=Z.getCanvasSource(i);if(!h){r.restore();return}o&&Z._applyInverseRotation(r,o,s.width,s.height),r.drawImage(h,s.x,s.y,s.width,s.height,0,0,s.width,s.height),r.restore();let u=t>>16&255,d=t>>8&255,f=t&255,m=r.getImageData(0,0,l,c),g=m.data;for(let _=0;_<g.length;_+=4)g[_]=g[_]*u/255,g[_+1]=g[_+1]*d/255,g[_+2]=g[_+2]*f/255;r.putImageData(m,0,0)},_applyInverseRotation:(i,t,e,r)=>{let s=it.inv(t),n=it.uX(s),o=it.uY(s),a=it.vX(s),l=it.vY(s),c=-Math.min(0,n*e,a*r,n*e+a*r),h=-Math.min(0,o*e,l*r,o*e+l*r);i.transform(n,o,a,l,c,h)}};Z.tintMethod=Z.canUseMultiply?Z.tintWithMultiply:Z.tintWithPerPixel});var Nc,rr,qo=p(()=>{xt();bs();Pr();Nc=class{constructor(t){this._canvasPool=Object.create(null),this.canvasOptions=t||{},this.enableFullScreen=!1}_createCanvasAndContext(t,e){let r=W.get().createCanvas();r.width=t,r.height=e;let s=r.getContext("2d");return{canvas:r,context:s}}getOptimalCanvasAndContext(t,e,r=1){t=Math.ceil(t*r-1e-6),e=Math.ceil(e*r-1e-6),t=Je(t),e=Je(e);let s=(t<<17)+(e<<1);this._canvasPool[s]||(this._canvasPool[s]=[]);let n=this._canvasPool[s].pop();return n||(n=this._createCanvasAndContext(t,e)),n}returnCanvasAndContext(t){let e=t.canvas,{width:r,height:s}=e,n=(r<<17)+(s<<1);t.context.resetTransform(),t.context.clearRect(0,0,r,s),this._canvasPool[n].push(t)}clear(){this._canvasPool={}}},rr=new Nc;ye.register(rr)});function Ko(i){let t=i.length;if(t<6)return 1;let e=0;for(let r=0,s=i[t-2],n=i[t-1];r<t;r+=2){let o=i[r],a=i[r+1];e+=(o-s)*(a+n),s=o,n=a}return e<0?-1:1}var zc=p(()=>{"use strict"});function dm(i,t,e,r,s,n){let o=i-e,a=t-r,l=s-e,c=n-r,h=o*l+a*c,u=l*l+c*c,d=-1;u!==0&&(d=h/u);let f,m;d<0?(f=e,m=r):d>1?(f=s,m=n):(f=e+d*l,m=r+d*c);let g=i-f,_=t-m;return g*g+_*_}var fm=p(()=>{"use strict"});function Hc(i,t,e,r,s,n,o,a){let l=o-e,c=a-r,h=s-e,u=n-r,d=i-e,f=t-r,m=l*l+c*c,g=l*h+c*u,_=l*d+c*f,x=h*h+u*u,b=h*d+u*f,v=1/(m*x-g*g),S=(x*_-g*b)*v,T=(m*b-g*_)*v;return S>=0&&T>=0&&S+T<1}var pm=p(()=>{"use strict"});var Zo,mm=p(()=>{Yt();Zo=class i{constructor(t=0,e=0,r=0){this.type="circle",this.x=t,this.y=e,this.radius=r}clone(){return new i(this.x,this.y,this.radius)}contains(t,e){if(this.radius<=0)return!1;let r=this.radius*this.radius,s=this.x-t,n=this.y-e;return s*=s,n*=n,s+n<=r}strokeContains(t,e,r,s=.5){if(this.radius===0)return!1;let n=this.x-t,o=this.y-e,a=this.radius,l=(1-s)*r,c=Math.sqrt(n*n+o*o);return c<=a+l&&c>a-(r-l)}getBounds(t){return t||(t=new J),t.x=this.x-this.radius,t.y=this.y-this.radius,t.width=this.radius*2,t.height=this.radius*2,t}copyFrom(t){return this.x=t.x,this.y=t.y,this.radius=t.radius,this}copyTo(t){return t.copyFrom(this),t}toString(){return`[pixi.js/math:Circle x=${this.x} y=${this.y} radius=${this.radius}]`}}});var Qo,gm=p(()=>{Yt();Qo=class i{constructor(t=0,e=0,r=0,s=0){this.type="ellipse",this.x=t,this.y=e,this.halfWidth=r,this.halfHeight=s}clone(){return new i(this.x,this.y,this.halfWidth,this.halfHeight)}contains(t,e){if(this.halfWidth<=0||this.halfHeight<=0)return!1;let r=(t-this.x)/this.halfWidth,s=(e-this.y)/this.halfHeight;return r*=r,s*=s,r+s<=1}strokeContains(t,e,r,s=.5){let{halfWidth:n,halfHeight:o}=this;if(n<=0||o<=0)return!1;let a=r*(1-s),l=r-a,c=n-l,h=o-l,u=n+a,d=o+a,f=t-this.x,m=e-this.y,g=f*f/(c*c)+m*m/(h*h),_=f*f/(u*u)+m*m/(d*d);return g>1&&_<=1}getBounds(t){return t||(t=new J),t.x=this.x-this.halfWidth,t.y=this.y-this.halfHeight,t.width=this.halfWidth*2,t.height=this.halfHeight*2,t}copyFrom(t){return this.x=t.x,this.y=t.y,this.halfWidth=t.halfWidth,this.halfHeight=t.halfHeight,this}copyTo(t){return t.copyFrom(this),t}toString(){return`[pixi.js/math:Ellipse x=${this.x} y=${this.y} halfWidth=${this.halfWidth} halfHeight=${this.halfHeight}]`}}});var AS,RS,Mi,xm=p(()=>{yt();zc();fm();Yt();Mi=class i{constructor(...t){this.type="polygon";let e=Array.isArray(t[0])?t[0]:t;if(typeof e[0]!="number"){let r=[];for(let s=0,n=e.length;s<n;s++)r.push(e[s].x,e[s].y);e=r}this.points=e,this.closePath=!0}isClockwise(){let t=0,e=this.points,r=e.length;for(let s=0;s<r;s+=2){let n=e[s],o=e[s+1],a=e[(s+2)%r],l=e[(s+3)%r];t+=(a-n)*(l+o)}return t<0}containsPolygon(t){let e=this.getBounds(AS),r=t.getBounds(RS);if(!e.containsRect(r))return!1;let s=t.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 t=this.points.slice(),e=new i(t);return e.closePath=this.closePath,e}contains(t,e){let r=!1,s=this.points.length/2;for(let n=0,o=s-1;n<s;o=n++){let a=this.points[n*2],l=this.points[n*2+1],c=this.points[o*2],h=this.points[o*2+1];l>e!=h>e&&t<(c-a)*((e-l)/(h-l))+a&&(r=!r)}return r}strokeContains(t,e,r,s=.5){let{points:n}=this,o=s===.5?s:(s-.5)*Ko(n)+.5,a=r*o,l=r-a,c=a*a,h=l*l,u=n.length-(this.closePath?0:2);for(let d=0;d<u;d+=2){let f=n[d],m=n[d+1],g=n[(d+2)%n.length],_=n[(d+3)%n.length],x=dm(t,e,f,m,g,_),b=Math.sign((g-f)*(e-m)-(_-m)*(t-f));if(x<=(b<0?c:h))return!0}return!1}getBounds(t){t||(t=new J);let e=this.points,r=1/0,s=-1/0,n=1/0,o=-1/0;for(let a=0,l=e.length;a<l;a+=2){let c=e[a],h=e[a+1];r=c<r?c:r,s=c>s?c:s,n=h<n?h:n,o=h>o?h:o}return t.x=r,t.width=s-r,t.y=n,t.height=o-n,t}copyFrom(t){return this.points=t.points.slice(),this.closePath=t.closePath,this}copyTo(t){return t.copyFrom(this),t}toString(){return`[pixi.js/math:PolygoncloseStroke=${this.closePath}points=${this.points.reduce((t,e)=>`${t}, ${e}`,"")}]`}get lastX(){return this.points[this.points.length-2]}get lastY(){return this.points[this.points.length-1]}get x(){return O("8.11.0","Polygon.lastX is deprecated, please use Polygon.lastX instead."),this.points[this.points.length-2]}get y(){return O("8.11.0","Polygon.y is deprecated, please use Polygon.lastY instead."),this.points[this.points.length-1]}get startX(){return this.points[0]}get startY(){return this.points[1]}}});var Jo,ta,_m=p(()=>{Yt();Jo=(i,t,e,r,s,n,o)=>{let a=i-e,l=t-r,c=Math.sqrt(a*a+l*l);return c>=s-n&&c<=s+o},ta=class i{constructor(t=0,e=0,r=0,s=0,n=20){this.type="roundedRectangle",this.x=t,this.y=e,this.width=r,this.height=s,this.radius=n}getBounds(t){return t||(t=new J),t.x=this.x,t.y=this.y,t.width=this.width,t.height=this.height,t}clone(){return new i(this.x,this.y,this.width,this.height,this.radius)}copyFrom(t){return this.x=t.x,this.y=t.y,this.width=t.width,this.height=t.height,this.radius=t.radius,this}copyTo(t){return t.copyFrom(this),t}contains(t,e){if(this.width<=0||this.height<=0)return!1;if(t>=this.x&&t<=this.x+this.width&&e>=this.y&&e<=this.y+this.height){let r=Math.max(0,Math.min(this.radius,Math.min(this.width,this.height)/2));if(e>=this.y+r&&e<=this.y+this.height-r||t>=this.x+r&&t<=this.x+this.width-r)return!0;let s=t-(this.x+r),n=e-(this.y+r),o=r*r;if(s*s+n*n<=o||(s=t-(this.x+this.width-r),s*s+n*n<=o)||(n=e-(this.y+this.height-r),s*s+n*n<=o)||(s=t-(this.x+r),s*s+n*n<=o))return!0}return!1}strokeContains(t,e,r,s=.5){let{x:n,y:o,width:a,height:l,radius:c}=this,h=r*(1-s),u=r-h,d=n+c,f=o+c,m=a-c*2,g=l-c*2,_=n+a,x=o+l;return(t>=n-h&&t<=n+u||t>=_-u&&t<=_+h)&&e>=f&&e<=f+g||(e>=o-h&&e<=o+u||e>=x-u&&e<=x+h)&&t>=d&&t<=d+m?!0:t<d&&e<f&&Jo(t,e,d,f,c,u,h)||t>_-c&&e<f&&Jo(t,e,_-c,f,c,u,h)||t>_-c&&e>x-c&&Jo(t,e,_-c,x-c,c,u,h)||t<d&&e>x-c&&Jo(t,e,d,x-c,c,u,h)}toString(){return`[pixi.js/math:RoundedRectangle x=${this.x} y=${this.y}width=${this.width} height=${this.height} radius=${this.radius}]`}}});function ea(i,t){t.clear();let e=t.matrix;for(let r=0;r<i.length;r++){let s=i[r];if(s.globalDisplayStatus<7)continue;let n=s.renderGroup??s.parentRenderGroup;n?.isCachedAsTexture?t.matrix=ym.copyFrom(n.textureOffsetInverseTransform).append(s.worldTransform):n?._parentCacheAsTextureRenderGroup?t.matrix=ym.copyFrom(n._parentCacheAsTextureRenderGroup.inverseWorldTransform).append(s.groupTransform):t.matrix=s.worldTransform,t.addBounds(s.bounds)}return t.matrix=e,t}var ym,Wc=p(()=>{ot();ym=new k});function ra(i,t,e,r,s=!1){let n=kS;n.minX=0,n.minY=0,n.maxX=i.width/r|0,n.maxY=i.height/r|0;let o=Mt.getOptimalTexture(n.width,n.height,r,!1,s);return o.source.uploadMethodId="image",o.source.resource=i,o.source.alphaMode="premultiply-alpha-on-upload",o.frame.width=t/r,o.frame.height=e/r,o.source.emit("update",o.source),o.updateUvs(),o}var kS,Vc=p(()=>{Fr();ie();kS=new dt});function bm(i){return typeof i.getCanvasFilterString=="function"}var jc,Gs,vm=p(()=>{P();Pi();qo();ie();Wc();Vc();jc=class{constructor(){this.skip=!1,this.useClip=!1,this.filters=null,this.container=null,this.bounds=new dt,this.cssFilterString=""}},Gs=class{constructor(t){this._filterStack=[],this._filterStackIndex=0,this._savedStates=[],this._alphaMultiplier=1,this._warnedFilterTypes=new Set,this.renderer=t}push(t){let e=this._pushFilterFrame(),r=t.filterEffect.filters;if(e.skip=!1,e.useClip=!1,e.filters=r,e.container=t.container,e.cssFilterString="",r.every(l=>!l.enabled)){e.skip=!0;return}let s=[],n=1;for(let l of r){if(!l.enabled)continue;if(!bm(l)){this._warnUnsupportedFilter(l);continue}let c=l.getCanvasFilterString();if(c===null){this._warnUnsupportedFilter(l);continue}c&&s.push(c)}if(s.length===0&&n===1){e.skip=!0;return}e.cssFilterString=s.join(" "),this._calculateFilterArea(t,e.bounds),e.useClip=!!t.filterEffect.filterArea;let o=this.renderer.canvasContext.activeContext,a=o.filter||"none";if(this._savedStates.push({filter:a,alphaMultiplier:this._alphaMultiplier}),e.useClip&&Number.isFinite(e.bounds.width)&&Number.isFinite(e.bounds.height)&&e.bounds.width>0&&e.bounds.height>0){let l=this.renderer.canvasContext.activeResolution||1;o.save(),o.setTransform(1,0,0,1,0,0),o.beginPath(),o.rect(e.bounds.x*l,e.bounds.y*l,e.bounds.width*l,e.bounds.height*l),o.clip()}else e.useClip=!1;n!==1&&(this._alphaMultiplier*=n),e.cssFilterString&&(o.filter=a!=="none"?`${a} ${e.cssFilterString}`:e.cssFilterString)}pop(){let t=this._popFilterFrame();if(t.skip)return;let e=this._savedStates.pop();if(!e)return;let r=this.renderer.canvasContext.activeContext;t.useClip?r.restore():r.filter=e.filter,this._alphaMultiplier=e.alphaMultiplier}generateFilteredTexture({texture:t,filters:e}){if(!e?.length||e.every(x=>!x.enabled))return t;let r=[],s=1;for(let x of e){if(!x.enabled)continue;if(!bm(x)){this._warnUnsupportedFilter(x);continue}let b=x.getCanvasFilterString();if(b===null){this._warnUnsupportedFilter(x);continue}b&&r.push(b)}if(r.length===0&&s===1)return t;let n=Z.getCanvasSource(t);if(!n)return t;let o=t.frame,a=t.source._resolution??t.source.resolution??1,l=o.width,c=o.height,h=rr.getOptimalCanvasAndContext(l,c,a),{canvas:u,context:d}=h;d.setTransform(1,0,0,1,0,0),d.clearRect(0,0,u.width,u.height),r.length&&(d.filter=r.join(" ")),s!==1&&(d.globalAlpha=s);let f=o.x*a,m=o.y*a,g=l*a,_=c*a;return d.drawImage(n,f,m,g,_,0,0,g,_),d.filter="none",d.globalAlpha=1,ra(u,l,c,a)}_calculateFilterArea(t,e){if(t.renderables?ea(t.renderables,e):t.filterEffect.filterArea?(e.clear(),e.addRect(t.filterEffect.filterArea),e.applyMatrix(t.container.worldTransform)):t.container.getFastGlobalBounds(!0,e),t.container){let s=(t.container.renderGroup||t.container.parentRenderGroup)?.cacheToLocalTransform;s&&e.applyMatrix(s)}}_warnUnsupportedFilter(t){let e=t?.constructor?.name||"Filter";this._warnedFilterTypes.has(e)||(this._warnedFilterTypes.add(e),console.warn(`CanvasRenderer: filter "${e}" is not supported in Canvas2D and will be skipped.`))}get alphaMultiplier(){return this._alphaMultiplier}_pushFilterFrame(){let t=this._filterStack[this._filterStackIndex];return t||(t=this._filterStack[this._filterStackIndex]=new jc),this._filterStackIndex++,t}_popFilterFrame(){return this._filterStackIndex<=0?this._filterStack[0]:(this._filterStackIndex--,this._filterStack[this._filterStackIndex])}destroy(){this._filterStack=null,this._savedStates=null,this._warnedFilterTypes=null,this._alphaMultiplier=1}};Gs.extension={type:[y.CanvasSystem],name:"filter"}});var Fs,Sm=p(()=>{P();Fs=class{constructor(t){this._renderer=t}push(t,e,r){this._renderer.renderPipes.batch.break(r),r.add({renderPipeId:"filter",canBundle:!1,action:"pushFilter",container:e,filterEffect:t})}pop(t,e,r){this._renderer.renderPipes.batch.break(r),r.add({renderPipeId:"filter",action:"popFilter",canBundle:!1})}execute(t){t.action==="pushFilter"?this._renderer.filter.push(t):t.action==="popFilter"&&this._renderer.filter.pop()}destroy(){this._renderer=null}};Fs.extension={type:[y.WebGLPipes,y.WebGPUPipes,y.CanvasPipes],name:"filter"}});function ke(i,t){let e=Tm[i];return e===void 0&&(Xc[t]===void 0&&(Xc[t]=1),Tm[i]=e=Xc[t]++),e}var Xc,Tm,Ai=p(()=>{"use strict";Xc=Object.create(null),Tm=Object.create(null)});function sa(){return(!ia||ia?.isContextLost())&&(ia=W.get().createCanvas().getContext("webgl",{})),ia}var ia,Yc=p(()=>{xt()});function wm(){if(!na){na="mediump";let i=sa();i&&i.getShaderPrecisionFormat&&(na=i.getShaderPrecisionFormat(i.FRAGMENT_SHADER,i.HIGH_FLOAT).precision?"highp":"mediump")}return na}var na,Cm=p(()=>{Yc()});function Em(i,t,e){return t?i:e?(i=i.replace("out vec4 finalColor;",""),`
18
18
 
19
19
  #ifdef GL_ES // This checks if it is WebGL1
20
20
  #define in varying
@@ -29,10 +29,10 @@ Deprecated since v${i}`,n=typeof console.groupCollapsed=="function"&&!mi.noColor
29
29
  #define out varying
30
30
  #endif
31
31
  ${i}
32
- `}var Cm=p(()=>{"use strict"});function Em(i,t,e){let r=e?t.maxSupportedFragmentPrecision:t.maxSupportedVertexPrecision;if(i.substring(0,9)!=="precision"){let s=e?t.requestedFragmentPrecision:t.requestedVertexPrecision;return s==="highp"&&r!=="highp"&&(s="mediump"),`precision ${s} float;
33
- ${i}`}else if(r!=="highp"&&i.substring(0,15)==="precision highp")return i.replace("precision highp","precision mediump");return i}var Pm=p(()=>{"use strict"});function Mm(i,t){return t?`#version 300 es
34
- ${i}`:i}var Am=p(()=>{"use strict"});function Rm(i,{name:t="pixi-program"},e=!0){t=t.replace(/\s+/g,"-"),t+=e?"-fragment":"-vertex";let r=e?AS:RS;return r[t]?(r[t]++,t+=`-${r[t]}`):r[t]=1,i.indexOf("#define SHADER_NAME")!==-1?i:`${`#define SHADER_NAME ${t}`}
35
- ${i}`}var AS,RS,km=p(()=>{"use strict";AS={},RS={}});function Bm(i,t){return t?i.replace("#version 300 es",""):i}var Im=p(()=>{"use strict"});var $c,Fs,Gm,be,Nr=p(()=>{Mi();Tm();Cm();Pm();Am();km();Im();$c={stripVersion:Bm,ensurePrecision:Em,addProgramDefines:wm,setProgramName:Rm,insertVersion:Mm},Fs=Object.create(null),Gm=class qc{constructor(t){t={...qc.defaultOptions,...t};let e=t.fragment.indexOf("#version 300 es")!==-1,r={stripVersion:e,ensurePrecision:{requestedFragmentPrecision:t.preferredFragmentPrecision,requestedVertexPrecision:t.preferredVertexPrecision,maxSupportedVertexPrecision:"highp",maxSupportedFragmentPrecision:Sm()},setProgramName:{name:t.name},addProgramDefines:e,insertVersion:e},s=t.fragment,n=t.vertex;Object.keys($c).forEach(o=>{let a=r[o];s=$c[o](s,a,!0),n=$c[o](n,a,!1)}),this.fragment=s,this.vertex=n,this.transformFeedbackVaryings=t.transformFeedbackVaryings,this._key=ke(`${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,Fs[this._cacheKey]=null}static from(t){let e=`${t.vertex}:${t.fragment}`;return Fs[e]||(Fs[e]=new qc(t),Fs[e]._cacheKey=e),Fs[e]}};Gm.defaultOptions={preferredVertexPrecision:"highp",preferredFragmentPrecision:"mediump"};be=Gm});function Jt(i){return Fm[i]??Fm.float32}var Fm,pr=p(()=>{"use strict";Fm={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 Dm(i,t){let e;for(;(e=Um.exec(i))!==null;){let r=kS[e[3]]??"float32";t[e[2]]={location:parseInt(e[1],10),format:r,stride:Jt(r).stride,offset:0,instance:!1,start:0}}Um.lastIndex=0}function BS(i){return i.replace(/\/\/.*$/gm,"").replace(/\/\*[\s\S]*?\*\//g,"")}function Lm({source:i,entryPoint:t}){let e={},r=BS(i),s=r.indexOf(`fn ${t}(`);if(s===-1)return e;let n=r.indexOf("->",s);if(n===-1)return e;let o=r.substring(s,n);if(Dm(o,e),Object.keys(e).length===0){let a=o.match(/\(\s*\w+\s*:\s*(\w+)/);if(a){let l=a[1],c=new RegExp(`struct\\s+${l}\\s*\\{([^}]+)\\}`,"s"),h=r.match(c);h&&Dm(h[1],e)}}return e}var kS,Um,Om=p(()=>{pr();kS={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",vec2i:"sint32x2",vec3i:"sint32x3",vec4i:"sint32x4",u32:"uint32","vec2<u32>":"uint32x2","vec3<u32>":"uint32x3","vec4<u32>":"uint32x4",vec2u:"uint32x2",vec3u:"uint32x3",vec4u:"uint32x4",bool:"uint32","vec2<bool>":"uint32x2","vec3<bool>":"uint32x3","vec4<bool>":"uint32x4"},Um=/@location\((\d+)\)\s+([a-zA-Z0-9_]+)\s*:\s*([a-zA-Z0-9_<>]+)(?:,|\s|\)|$)/g});function na(i){let t=/(^|[^/])@(group|binding)\(\d+\)[^;]+;/g,e=/@group\((\d+)\)/,r=/@binding\((\d+)\)/,s=/var(<[^>]+>)? (\w+)/,n=/:\s*([\w<>]+)/,o=/struct\s+(\w+)\s*{([^}]+)}/g,a=/(\w+)\s*:\s*([\w\<\>]+)/g,l=/struct\s+(\w+)/,c=i.match(t)?.map(u=>{let d=u.match(s),f=d?.[1]??"",m;return f==="<uniform>"?m="uniform":f.startsWith("<storage")&&(m="storage"),{group:parseInt(u.match(e)[1],10),binding:parseInt(u.match(r)[1],10),name:d[2],accessMode:m,type:u.match(n)[1]}});if(!c)return{groups:[],structs:[]};let h=i.match(o)?.map(u=>{let d=u.match(l)[1],f=u.match(a).reduce((m,g)=>{let[_,x]=g.split(":");return m[_.trim()]=x.trim(),m},{});return f?{name:d,members:f}:null}).filter(({name:u})=>c.some(d=>d.type===u||d.type.includes(`<${u}>`)))??[];return{groups:c,structs:h}}var Nm=p(()=>{"use strict"});var Dt,zm=p(()=>{"use strict";Dt=(i=>(i[i.VERTEX=1]="VERTEX",i[i.FRAGMENT=2]="FRAGMENT",i[i.COMPUTE=4]="COMPUTE",i))(Dt||{})});function Hm({groups:i}){let t=[];for(let e=0;e<i.length;e++){let r=i[e];t[r.group]||(t[r.group]=[]),r.accessMode==="uniform"?t[r.group].push({binding:r.binding,visibility:Dt.VERTEX|Dt.FRAGMENT,buffer:{type:"uniform"}}):r.accessMode==="storage"?t[r.group].push({binding:r.binding,visibility:Dt.VERTEX|Dt.FRAGMENT,buffer:{type:"read-only-storage"}}):r.type==="sampler"?t[r.group].push({binding:r.binding,visibility:Dt.VERTEX|Dt.FRAGMENT,sampler:{type:"filtering"}}):r.type==="sampler_comparison"?t[r.group].push({binding:r.binding,visibility:Dt.VERTEX|Dt.FRAGMENT,sampler:{type:"comparison"}}):r.type==="texture_2d"||r.type.startsWith("texture_2d<")?t[r.group].push({binding:r.binding,visibility:Dt.VERTEX|Dt.FRAGMENT,texture:{sampleType:"float",viewDimension:"2d",multisampled:!1}}):r.type==="texture_depth_2d"?t[r.group].push({binding:r.binding,visibility:Dt.VERTEX|Dt.FRAGMENT,texture:{sampleType:"depth",viewDimension:"2d",multisampled:!1}}):r.type==="texture_depth_2d_array"?t[r.group].push({binding:r.binding,visibility:Dt.VERTEX|Dt.FRAGMENT,texture:{sampleType:"depth",viewDimension:"2d-array",multisampled:!1}}):r.type==="texture_2d_array"||r.type.startsWith("texture_2d_array<")?t[r.group].push({binding:r.binding,visibility:Dt.VERTEX|Dt.FRAGMENT,texture:{sampleType:"float",viewDimension:"2d-array",multisampled:!1}}):(r.type==="texture_cube"||r.type.startsWith("texture_cube<"))&&t[r.group].push({binding:r.binding,visibility:Dt.VERTEX|Dt.FRAGMENT,texture:{sampleType:"float",viewDimension:"cube",multisampled:!1}})}for(let e=0;e<t.length;e++)t[e]||(t[e]=[]);return t}var Wm=p(()=>{zm()});function Vm({groups:i}){let t=[];for(let e=0;e<i.length;e++){let r=i[e];t[r.group]||(t[r.group]={}),t[r.group][r.name]=r.binding}return t}var jm=p(()=>{"use strict"});function Xm(i,t){let e=new Set,r=new Set,s=[...i.structs,...t.structs].filter(o=>e.has(o.name)?!1:(e.add(o.name),!0)),n=[...i.groups,...t.groups].filter(o=>{let a=`${o.name}-${o.binding}`;return r.has(a)?!1:(r.add(a),!0)});return{structs:s,groups:n}}var Ym=p(()=>{"use strict"});var Us,ve,Ai=p(()=>{Mi();Om();Nm();Wm();jm();Ym();Us=Object.create(null),ve=class i{constructor(t){this._layoutKey=0,this._attributeLocationsKey=0;let{fragment:e,vertex:r,layout:s,gpuLayout:n,name:o}=t;if(this.name=o,this.fragment=e,this.vertex=r,e.source===r.source){let a=na(e.source);this.structsAndGroups=a}else{let a=na(r.source),l=na(e.source);this.structsAndGroups=Xm(a,l)}this.layout=s??Vm(this.structsAndGroups),this.gpuLayout=n??Hm(this.structsAndGroups),this.autoAssignGlobalUniforms=this.layout[0]?.globalUniforms!==void 0,this.autoAssignLocalUniforms=this.layout[1]?.localUniforms!==void 0,this._generateProgramKey()}_generateProgramKey(){let{vertex:t,fragment:e}=this,r=t.source+e.source+t.entryPoint+e.entryPoint;this._layoutKey=ke(r,"program")}get attributeData(){return this._attributeData??(this._attributeData=Lm(this.vertex)),this._attributeData}destroy(){this.gpuLayout=null,this.layout=null,this.structsAndGroups=null,this.fragment=null,this.vertex=null,Us[this._cacheKey]=null}static from(t){let e=`${t.vertex.source}:${t.fragment.source}:${t.fragment.entryPoint}:${t.vertex.entryPoint}`;return Us[e]||(Us[e]=new i(t),Us[e]._cacheKey=e),Us[e]}}});var Vt,mr=p(()=>{ht();Vt=class{constructor(t){this.resources=Object.create(null),this._dirty=!0;let e=0;for(let r in t){let s=t[r];this.setResource(s,e++)}}get _key(){if(this._dirty){this._dirty=!1;let t=[],e=0;for(let r in this.resources)t[e++]=this.resources[r]?this.resources[r]._resourceId:-1;this._keyValue=t.join("|")}return this._keyValue}setResource(t,e){let r=this.resources[e];t!==r&&(r&&r.off?.("change",this.onResourceChange,this),t.on?.("change",this.onResourceChange,this),this.resources[e]=t,this._dirty=!0)}getResource(t){return this.resources[t]}_touch(t,e){let r=this.resources;for(let s in r){let n=r[s];n&&(n._gcLastUsed=t,n._touched=e)}}destroy(){let t=this.resources;for(let e in t)t[e]?.off?.("change",this.onResourceChange,this);this.resources=null}onResourceChange(t){if(this._dirty=!0,t.destroyed){let e=this.resources;for(let r in e)e[r]===t&&(e[r]=null);L(`[BindGroup] a '${t._resourceType}' was destroyed while still bound to a shader. Remove it from the shader before destroying it.`)}}}});var Lt,Ne=p(()=>{"use strict";Lt=(i=>(i[i.WEBGL=1]="WEBGL",i[i.WEBGPU=2]="WEBGPU",i[i.CANVAS=4]="CANVAS",i[i.BOTH=3]="BOTH",i))(Lt||{})});var Ri,Kc=p(()=>{Mi();Ri=class i{constructor(t){this.data={...t};let e=Object.keys(t).sort().map(r=>`${r}:${t[r]}`).join("|");this.id=ke(e,"shader-overrides")}static from(t){return t instanceof i?t:new i(t)}}});var Zc,$m,qm=p(()=>{"use strict";Zc=["f32","i32","u32","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>","vec2<u32>","vec3<u32>","vec4<u32>"],$m=Zc.reduce((i,t)=>(i[t]=!0,i),{})});function Km(i,t){switch(i){case"f32":return 0;case"vec2<f32>":return new Float32Array(2*t);case"vec3<f32>":return new Float32Array(3*t);case"vec4<f32>":return new Float32Array(4*t);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 Zm=p(()=>{"use strict"});var Qm,Ct,me=p(()=>{Ht();Ft();Mi();qm();Zm();Qm=class Jm extends ut{constructor(t,e){super(),this._touched=0,this.uid=$("uniform"),this._resourceType="uniformGroup",this._resourceId=$("resource"),this.isUniformGroup=!0,this._dirtyId=0,this.destroyed=!1,e={...Jm.defaultOptions,...e},this.uniformStructures=t;let r={};for(let s in t){let n=t[s];if(n.name=s,n.size=n.size??1,!$m[n.type]){let o=n.type.match(/^array<(\w+(?:<\w+>)?),\s*(\d+)>$/);if(o){let[,a,l]=o;throw new Error(`Uniform type ${n.type} is not supported. Use type: '${a}', size: ${l} instead.`)}throw new Error(`Uniform type ${n.type} is not supported. Supported uniform types are: ${Zc.join(", ")}`)}n.value??(n.value=Km(n.type,n.size)),r[s]=n.value}this.uniforms=r,this._dirtyId=1,this.ubo=e.ubo,this.isStatic=e.isStatic,this._signature=ke(Object.keys(r).map(s=>`${s}-${t[s].type}`).join("-"),"uniform-group")}get buffer(){return this._buffer}set buffer(t){this._buffer!==t&&(this._buffer?.off("change",this.onBufferChange,this),this._buffer=t,t?.on("change",this.onBufferChange,this))}get _gcLastUsed(){return this._buffer?._gcLastUsed??-1}set _gcLastUsed(t){this._buffer&&(this._buffer._gcLastUsed=t)}onBufferChange(){this._resourceId=$("resource"),this.emit("change",this)}update(){this._dirtyId++}};Qm.defaultOptions={ubo:!1,isStatic:!1};Ct=Qm});var te,gr=p(()=>{Ht();Ft();ht();Nr();mr();Ai();Ne();Kc();me();te=class i extends ut{constructor(t){super(),this.uid=$("shader"),this._uniformBindMap=Object.create(null),this._ownedBindGroups=[],this._destroyed=!1;let{gpuProgram:e,glProgram:r,groups:s,resources:n,compatibleRenderers:o,groupMap:a,overrides:l}=t;this._overrides=l?Ri.from(l):null,this.gpuProgram=e,this.glProgram=r,o===void 0&&(o=0,e&&(o|=Lt.WEBGPU),r&&(o|=Lt.WEBGL)),this.compatibleRenderers=o;let c={};if(a)for(let h in a)for(let u in a[h]){let d=a[h][u];c[d]={group:h,binding:u,name:d}}if(!n&&!s&&(n={}),n&&s)throw new Error("[Shader] Cannot have both resources and groups");if(!e&&s&&!a)throw new Error("[Shader] No group map or WebGPU shader provided - consider using resources instead.");if(e&&s&&!a){let h=e.structsAndGroups.groups;a={},h.forEach(u=>{a[u.group]=a[u.group]||{},a[u.group][u.binding]=u.name,c[u.name]=u})}else if(n){s={},a||(a={}),e&&e.structsAndGroups.groups.forEach(d=>{a[d.group]=a[d.group]||{},a[d.group][d.binding]=d.name,c[d.name]=d});let h=0;for(let u in n)c[u]||(e&&!r&&L(`[Shader] the resource '${u}' matches no binding in the WGSL source \u2014 is the name correct?`),s[99]||(s[99]=new Vt,this._ownedBindGroups.push(s[99])),c[u]={group:99,binding:h,name:u},a[99]=a[99]||{},a[99][h]=u,h++);for(let u in n){let d=u,f=n[u];!f.source&&!f._resourceType&&(f=new Ct(f));let m=c[d];m&&(s[m.group]||(s[m.group]=new Vt,this._ownedBindGroups.push(s[m.group])),s[m.group].setResource(f,m.binding))}}this.groups=s,this._uniformBindMap=a,this.resources=this._buildResourceAccessor(s,c)}addResource(t,e,r){var s,n;(s=this._uniformBindMap)[e]||(s[e]={}),(n=this._uniformBindMap[e])[r]||(n[r]=t),this.groups[e]||(this.groups[e]=new Vt,this._ownedBindGroups.push(this.groups[e]))}_buildResourceAccessor(t,e){let r={};for(let s in e){let n=e[s];Object.defineProperty(r,n.name,{get(){return t[n.group].getResource(n.binding)},set(o){t[n.group].setResource(o,n.binding)}})}return r}destroy(t=!1){this._destroyed||(this._destroyed=!0,this.emit("destroy",this),t&&(this.gpuProgram?.destroy(),this.glProgram?.destroy()),this.gpuProgram=null,this.glProgram=null,this.removeAllListeners(),this._uniformBindMap=null,this._ownedBindGroups.forEach(e=>{e.destroy()}),this._ownedBindGroups=null,this.resources=null,this.groups=null,this._overrides=null)}static from(t){let{gpu:e,gl:r,...s}=t,n,o;return e&&(n=ve.from(e)),r&&(o=be.from(r)),new i({gpuProgram:n,glProgram:o,...s})}}});var IS,nh,Qc,Jc,th,eh,rh,ih,sh,Ot,Be=p(()=>{"use strict";IS={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},nh={BLEND:0,OFFSET:1,CULLING:2,DEPTH_TEST:3,WINDING:4,DEPTH_MASK:5},{BLEND:Qc,OFFSET:Jc,CULLING:th,DEPTH_TEST:eh,WINDING:rh,DEPTH_MASK:ih}=nh,sh=class tg{constructor(){this.data=0,this.blendMode="normal",this.polygonOffset=0,this.blend=!0,this.depthMask=!0}get blend(){return!!(this.data&1<<Qc)}set blend(t){!!(this.data&1<<Qc)!==t&&(this.data^=1<<Qc)}get offsets(){return!!(this.data&1<<Jc)}set offsets(t){!!(this.data&1<<Jc)!==t&&(this.data^=1<<Jc)}set cullMode(t){if(t==="none"){this.culling=!1;return}this.culling=!0,this.clockwiseFrontFace=t==="front"}get cullMode(){return this.culling?this.clockwiseFrontFace?"front":"back":"none"}get culling(){return!!(this.data&1<<th)}set culling(t){!!(this.data&1<<th)!==t&&(this.data^=1<<th)}get depthTest(){return!!(this.data&1<<eh)}set depthTest(t){!!(this.data&1<<eh)!==t&&(this.data^=1<<eh)}get depthMask(){return!!(this.data&1<<ih)}set depthMask(t){!!(this.data&1<<ih)!==t&&(this.data^=1<<ih)}get clockwiseFrontFace(){return!!(this.data&1<<rh)}set clockwiseFrontFace(t){!!(this.data&1<<rh)!==t&&(this.data^=1<<rh)}get blendMode(){return this._blendMode}set blendMode(t){this.blend=t!=="none",this._blendMode=t,this._blendModeId=IS[t]||0}get polygonOffset(){return this._polygonOffset}set polygonOffset(t){this.offsets=!!t,this._polygonOffset=t}toString(){return`[pixi.js/core:State blendMode=${this.blendMode} clockwiseFrontFace=${this.clockwiseFrontFace} culling=${this.culling} depthMask=${this.depthMask} polygonOffset=${this.polygonOffset}]`}static for2d(){let t=new tg;return t.depthTest=!1,t.depthMask=!1,t.blend=!0,t}};sh.default2d=sh.for2d();Ot=sh});var eg,oa,ah=p(()=>{Nr();Ai();gr();Be();eg=class oh extends te{constructor(t){t={...oh.defaultOptions,...t},super(t),this.enabled=!0,this._state=Ot.for2d(),this.blendMode=t.blendMode,this.padding=t.padding,typeof t.antialias=="boolean"?this.antialias=t.antialias?"on":"off":this.antialias=t.antialias,this.resolution=t.resolution,this.blendRequired=t.blendRequired,this.clipToViewport=t.clipToViewport,this.addResource("uTexture",0,1),t.blendRequired&&this.addResource("uBackTexture",0,3)}apply(t,e,r,s){t.applyFilter(this,e,r,s)}get blendMode(){return this._state.blendMode}set blendMode(t){this._state.blendMode=t}static from(t){let{gpu:e,gl:r,...s}=t,n,o;return e&&(n=ve.from(e)),r&&(o=be.from(r)),new oh({gpuProgram:n,glProgram:o,...s})}};eg.defaultOptions={blendMode:"normal",resolution:1,padding:0,antialias:"off",blendRequired:!1,clipToViewport:!0};oa=eg});var rg,ig=p(()=>{rg=`in vec2 aPosition;
32
+ `}var Pm=p(()=>{"use strict"});function Mm(i,t,e){let r=e?t.maxSupportedFragmentPrecision:t.maxSupportedVertexPrecision;if(i.substring(0,9)!=="precision"){let s=e?t.requestedFragmentPrecision:t.requestedVertexPrecision;return s==="highp"&&r!=="highp"&&(s="mediump"),`precision ${s} float;
33
+ ${i}`}else if(r!=="highp"&&i.substring(0,15)==="precision highp")return i.replace("precision highp","precision mediump");return i}var Am=p(()=>{"use strict"});function Rm(i,t){return t?`#version 300 es
34
+ ${i}`:i}var km=p(()=>{"use strict"});function Bm(i,{name:t="pixi-program"},e=!0){t=t.replace(/\s+/g,"-"),t+=e?"-fragment":"-vertex";let r=e?BS:IS;return r[t]?(r[t]++,t+=`-${r[t]}`):r[t]=1,i.indexOf("#define SHADER_NAME")!==-1?i:`${`#define SHADER_NAME ${t}`}
35
+ ${i}`}var BS,IS,Im=p(()=>{"use strict";BS={},IS={}});function Gm(i,t){return t?i.replace("#version 300 es",""):i}var Fm=p(()=>{"use strict"});var $c,Us,Um,be,Nr=p(()=>{Ai();Cm();Pm();Am();km();Im();Fm();$c={stripVersion:Gm,ensurePrecision:Mm,addProgramDefines:Em,setProgramName:Bm,insertVersion:Rm},Us=Object.create(null),Um=class qc{constructor(t){t={...qc.defaultOptions,...t};let e=t.fragment.indexOf("#version 300 es")!==-1,r={stripVersion:e,ensurePrecision:{requestedFragmentPrecision:t.preferredFragmentPrecision,requestedVertexPrecision:t.preferredVertexPrecision,maxSupportedVertexPrecision:"highp",maxSupportedFragmentPrecision:wm()},setProgramName:{name:t.name},addProgramDefines:e,insertVersion:e},s=t.fragment,n=t.vertex;Object.keys($c).forEach(o=>{let a=r[o];s=$c[o](s,a,!0),n=$c[o](n,a,!1)}),this.fragment=s,this.vertex=n,this.transformFeedbackVaryings=t.transformFeedbackVaryings,this._key=ke(`${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,Us[this._cacheKey]=null}static from(t){let e=`${t.vertex}:${t.fragment}`;return Us[e]||(Us[e]=new qc(t),Us[e]._cacheKey=e),Us[e]}};Um.defaultOptions={preferredVertexPrecision:"highp",preferredFragmentPrecision:"mediump"};be=Um});function Jt(i){return Dm[i]??Dm.float32}var Dm,pr=p(()=>{"use strict";Dm={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 Om(i,t){let e;for(;(e=Lm.exec(i))!==null;){let r=GS[e[3]]??"float32";t[e[2]]={location:parseInt(e[1],10),format:r,stride:Jt(r).stride,offset:0,instance:!1,start:0}}Lm.lastIndex=0}function FS(i){return i.replace(/\/\/.*$/gm,"").replace(/\/\*[\s\S]*?\*\//g,"")}function Nm({source:i,entryPoint:t}){let e={},r=FS(i),s=r.indexOf(`fn ${t}(`);if(s===-1)return e;let n=r.indexOf("->",s);if(n===-1)return e;let o=r.substring(s,n);if(Om(o,e),Object.keys(e).length===0){let a=o.match(/\(\s*\w+\s*:\s*(\w+)/);if(a){let l=a[1],c=new RegExp(`struct\\s+${l}\\s*\\{([^}]+)\\}`,"s"),h=r.match(c);h&&Om(h[1],e)}}return e}var GS,Lm,zm=p(()=>{pr();GS={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",vec2i:"sint32x2",vec3i:"sint32x3",vec4i:"sint32x4",u32:"uint32","vec2<u32>":"uint32x2","vec3<u32>":"uint32x3","vec4<u32>":"uint32x4",vec2u:"uint32x2",vec3u:"uint32x3",vec4u:"uint32x4",bool:"uint32","vec2<bool>":"uint32x2","vec3<bool>":"uint32x3","vec4<bool>":"uint32x4"},Lm=/@location\((\d+)\)\s+([a-zA-Z0-9_]+)\s*:\s*([a-zA-Z0-9_<>]+)(?:,|\s|\)|$)/g});function oa(i){let t=/(^|[^/])@(group|binding)\(\d+\)[^;]+;/g,e=/@group\((\d+)\)/,r=/@binding\((\d+)\)/,s=/var(<[^>]+>)? (\w+)/,n=/:\s*([\w<>]+)/,o=/struct\s+(\w+)\s*{([^}]+)}/g,a=/(\w+)\s*:\s*([\w\<\>]+)/g,l=/struct\s+(\w+)/,c=i.match(t)?.map(u=>{let d=u.match(s),f=d?.[1]??"",m;return f==="<uniform>"?m="uniform":f.startsWith("<storage")&&(m="storage"),{group:parseInt(u.match(e)[1],10),binding:parseInt(u.match(r)[1],10),name:d[2],accessMode:m,type:u.match(n)[1]}});if(!c)return{groups:[],structs:[]};let h=i.match(o)?.map(u=>{let d=u.match(l)[1],f=u.match(a).reduce((m,g)=>{let[_,x]=g.split(":");return m[_.trim()]=x.trim(),m},{});return f?{name:d,members:f}:null}).filter(({name:u})=>c.some(d=>d.type===u||d.type.includes(`<${u}>`)))??[];return{groups:c,structs:h}}var Hm=p(()=>{"use strict"});var Dt,Wm=p(()=>{"use strict";Dt=(i=>(i[i.VERTEX=1]="VERTEX",i[i.FRAGMENT=2]="FRAGMENT",i[i.COMPUTE=4]="COMPUTE",i))(Dt||{})});function Vm({groups:i}){let t=[];for(let e=0;e<i.length;e++){let r=i[e];t[r.group]||(t[r.group]=[]),r.accessMode==="uniform"?t[r.group].push({binding:r.binding,visibility:Dt.VERTEX|Dt.FRAGMENT,buffer:{type:"uniform"}}):r.accessMode==="storage"?t[r.group].push({binding:r.binding,visibility:Dt.VERTEX|Dt.FRAGMENT,buffer:{type:"read-only-storage"}}):r.type==="sampler"?t[r.group].push({binding:r.binding,visibility:Dt.VERTEX|Dt.FRAGMENT,sampler:{type:"filtering"}}):r.type==="sampler_comparison"?t[r.group].push({binding:r.binding,visibility:Dt.VERTEX|Dt.FRAGMENT,sampler:{type:"comparison"}}):r.type==="texture_2d"||r.type.startsWith("texture_2d<")?t[r.group].push({binding:r.binding,visibility:Dt.VERTEX|Dt.FRAGMENT,texture:{sampleType:"float",viewDimension:"2d",multisampled:!1}}):r.type==="texture_depth_2d"?t[r.group].push({binding:r.binding,visibility:Dt.VERTEX|Dt.FRAGMENT,texture:{sampleType:"depth",viewDimension:"2d",multisampled:!1}}):r.type==="texture_depth_2d_array"?t[r.group].push({binding:r.binding,visibility:Dt.VERTEX|Dt.FRAGMENT,texture:{sampleType:"depth",viewDimension:"2d-array",multisampled:!1}}):r.type==="texture_2d_array"||r.type.startsWith("texture_2d_array<")?t[r.group].push({binding:r.binding,visibility:Dt.VERTEX|Dt.FRAGMENT,texture:{sampleType:"float",viewDimension:"2d-array",multisampled:!1}}):(r.type==="texture_cube"||r.type.startsWith("texture_cube<"))&&t[r.group].push({binding:r.binding,visibility:Dt.VERTEX|Dt.FRAGMENT,texture:{sampleType:"float",viewDimension:"cube",multisampled:!1}})}for(let e=0;e<t.length;e++)t[e]||(t[e]=[]);return t}var jm=p(()=>{Wm()});function Xm({groups:i}){let t=[];for(let e=0;e<i.length;e++){let r=i[e];t[r.group]||(t[r.group]={}),t[r.group][r.name]=r.binding}return t}var Ym=p(()=>{"use strict"});function $m(i,t){let e=new Set,r=new Set,s=[...i.structs,...t.structs].filter(o=>e.has(o.name)?!1:(e.add(o.name),!0)),n=[...i.groups,...t.groups].filter(o=>{let a=`${o.name}-${o.binding}`;return r.has(a)?!1:(r.add(a),!0)});return{structs:s,groups:n}}var qm=p(()=>{"use strict"});var Ds,ve,Ri=p(()=>{Ai();zm();Hm();jm();Ym();qm();Ds=Object.create(null),ve=class i{constructor(t){this._layoutKey=0,this._attributeLocationsKey=0;let{fragment:e,vertex:r,layout:s,gpuLayout:n,name:o}=t;if(this.name=o,this.fragment=e,this.vertex=r,e.source===r.source){let a=oa(e.source);this.structsAndGroups=a}else{let a=oa(r.source),l=oa(e.source);this.structsAndGroups=$m(a,l)}this.layout=s??Xm(this.structsAndGroups),this.gpuLayout=n??Vm(this.structsAndGroups),this.autoAssignGlobalUniforms=this.layout[0]?.globalUniforms!==void 0,this.autoAssignLocalUniforms=this.layout[1]?.localUniforms!==void 0,this._generateProgramKey()}_generateProgramKey(){let{vertex:t,fragment:e}=this,r=t.source+e.source+t.entryPoint+e.entryPoint;this._layoutKey=ke(r,"program")}get attributeData(){return this._attributeData??(this._attributeData=Nm(this.vertex)),this._attributeData}destroy(){this.gpuLayout=null,this.layout=null,this.structsAndGroups=null,this.fragment=null,this.vertex=null,Ds[this._cacheKey]=null}static from(t){let e=`${t.vertex.source}:${t.fragment.source}:${t.fragment.entryPoint}:${t.vertex.entryPoint}`;return Ds[e]||(Ds[e]=new i(t),Ds[e]._cacheKey=e),Ds[e]}}});var Vt,mr=p(()=>{ht();Vt=class{constructor(t){this.resources=Object.create(null),this._dirty=!0;let e=0;for(let r in t){let s=t[r];this.setResource(s,e++)}}get _key(){if(this._dirty){this._dirty=!1;let t=[],e=0;for(let r in this.resources)t[e++]=this.resources[r]?this.resources[r]._resourceId:-1;this._keyValue=t.join("|")}return this._keyValue}setResource(t,e){let r=this.resources[e];t!==r&&(r&&r.off?.("change",this.onResourceChange,this),t.on?.("change",this.onResourceChange,this),this.resources[e]=t,this._dirty=!0)}getResource(t){return this.resources[t]}_touch(t,e){let r=this.resources;for(let s in r){let n=r[s];n&&(n._gcLastUsed=t,n._touched=e)}}destroy(){let t=this.resources;for(let e in t)t[e]?.off?.("change",this.onResourceChange,this);this.resources=null}onResourceChange(t){if(this._dirty=!0,t.destroyed){let e=this.resources;for(let r in e)e[r]===t&&(e[r]=null);L(`[BindGroup] a '${t._resourceType}' was destroyed while still bound to a shader. Remove it from the shader before destroying it.`)}}}});var Lt,Ne=p(()=>{"use strict";Lt=(i=>(i[i.WEBGL=1]="WEBGL",i[i.WEBGPU=2]="WEBGPU",i[i.CANVAS=4]="CANVAS",i[i.BOTH=3]="BOTH",i))(Lt||{})});var ki,Kc=p(()=>{Ai();ki=class i{constructor(t){this.data={...t};let e=Object.keys(t).sort().map(r=>`${r}:${t[r]}`).join("|");this.id=ke(e,"shader-overrides")}static from(t){return t instanceof i?t:new i(t)}}});var Zc,Km,Zm=p(()=>{"use strict";Zc=["f32","i32","u32","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>","vec2<u32>","vec3<u32>","vec4<u32>"],Km=Zc.reduce((i,t)=>(i[t]=!0,i),{})});function Qm(i,t){switch(i){case"f32":return 0;case"vec2<f32>":return new Float32Array(2*t);case"vec3<f32>":return new Float32Array(3*t);case"vec4<f32>":return new Float32Array(4*t);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 Jm=p(()=>{"use strict"});var tg,Ct,me=p(()=>{Ht();Ft();Ai();Zm();Jm();tg=class eg extends ut{constructor(t,e){super(),this._touched=0,this.uid=$("uniform"),this._resourceType="uniformGroup",this._resourceId=$("resource"),this.isUniformGroup=!0,this._dirtyId=0,this.destroyed=!1,e={...eg.defaultOptions,...e},this.uniformStructures=t;let r={};for(let s in t){let n=t[s];if(n.name=s,n.size=n.size??1,!Km[n.type]){let o=n.type.match(/^array<(\w+(?:<\w+>)?),\s*(\d+)>$/);if(o){let[,a,l]=o;throw new Error(`Uniform type ${n.type} is not supported. Use type: '${a}', size: ${l} instead.`)}throw new Error(`Uniform type ${n.type} is not supported. Supported uniform types are: ${Zc.join(", ")}`)}n.value??(n.value=Qm(n.type,n.size)),r[s]=n.value}this.uniforms=r,this._dirtyId=1,this.ubo=e.ubo,this.isStatic=e.isStatic,this._signature=ke(Object.keys(r).map(s=>`${s}-${t[s].type}`).join("-"),"uniform-group")}get buffer(){return this._buffer}set buffer(t){this._buffer!==t&&(this._buffer?.off("change",this.onBufferChange,this),this._buffer=t,t?.on("change",this.onBufferChange,this))}get _gcLastUsed(){return this._buffer?._gcLastUsed??-1}set _gcLastUsed(t){this._buffer&&(this._buffer._gcLastUsed=t)}onBufferChange(){this._resourceId=$("resource"),this.emit("change",this)}update(){this._dirtyId++}};tg.defaultOptions={ubo:!1,isStatic:!1};Ct=tg});var te,gr=p(()=>{Ht();Ft();ht();Nr();mr();Ri();Ne();Kc();me();te=class i extends ut{constructor(t){super(),this.uid=$("shader"),this._uniformBindMap=Object.create(null),this._ownedBindGroups=[],this._destroyed=!1;let{gpuProgram:e,glProgram:r,groups:s,resources:n,compatibleRenderers:o,groupMap:a,overrides:l}=t;this._overrides=l?ki.from(l):null,this.gpuProgram=e,this.glProgram=r,o===void 0&&(o=0,e&&(o|=Lt.WEBGPU),r&&(o|=Lt.WEBGL)),this.compatibleRenderers=o;let c={};if(a)for(let h in a)for(let u in a[h]){let d=a[h][u];c[d]={group:h,binding:u,name:d}}if(!n&&!s&&(n={}),n&&s)throw new Error("[Shader] Cannot have both resources and groups");if(!e&&s&&!a)throw new Error("[Shader] No group map or WebGPU shader provided - consider using resources instead.");if(e&&s&&!a){let h=e.structsAndGroups.groups;a={},h.forEach(u=>{a[u.group]=a[u.group]||{},a[u.group][u.binding]=u.name,c[u.name]=u})}else if(n){s={},a||(a={}),e&&e.structsAndGroups.groups.forEach(d=>{a[d.group]=a[d.group]||{},a[d.group][d.binding]=d.name,c[d.name]=d});let h=0;for(let u in n)c[u]||(e&&!r&&L(`[Shader] the resource '${u}' matches no binding in the WGSL source \u2014 is the name correct?`),s[99]||(s[99]=new Vt,this._ownedBindGroups.push(s[99])),c[u]={group:99,binding:h,name:u},a[99]=a[99]||{},a[99][h]=u,h++);for(let u in n){let d=u,f=n[u];!f.source&&!f._resourceType&&(f=new Ct(f));let m=c[d];m&&(s[m.group]||(s[m.group]=new Vt,this._ownedBindGroups.push(s[m.group])),s[m.group].setResource(f,m.binding))}}this.groups=s,this._uniformBindMap=a,this.resources=this._buildResourceAccessor(s,c)}addResource(t,e,r){var s,n;(s=this._uniformBindMap)[e]||(s[e]={}),(n=this._uniformBindMap[e])[r]||(n[r]=t),this.groups[e]||(this.groups[e]=new Vt,this._ownedBindGroups.push(this.groups[e]))}_buildResourceAccessor(t,e){let r={};for(let s in e){let n=e[s];Object.defineProperty(r,n.name,{get(){return t[n.group].getResource(n.binding)},set(o){t[n.group].setResource(o,n.binding)}})}return r}destroy(t=!1){this._destroyed||(this._destroyed=!0,this.emit("destroy",this),t&&(this.gpuProgram?.destroy(),this.glProgram?.destroy()),this.gpuProgram=null,this.glProgram=null,this.removeAllListeners(),this._uniformBindMap=null,this._ownedBindGroups.forEach(e=>{e.destroy()}),this._ownedBindGroups=null,this.resources=null,this.groups=null,this._overrides=null)}static from(t){let{gpu:e,gl:r,...s}=t,n,o;return e&&(n=ve.from(e)),r&&(o=be.from(r)),new i({gpuProgram:n,glProgram:o,...s})}}});var US,nh,Qc,Jc,th,eh,rh,ih,sh,Ot,Be=p(()=>{"use strict";US={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},nh={BLEND:0,OFFSET:1,CULLING:2,DEPTH_TEST:3,WINDING:4,DEPTH_MASK:5},{BLEND:Qc,OFFSET:Jc,CULLING:th,DEPTH_TEST:eh,WINDING:rh,DEPTH_MASK:ih}=nh,sh=class rg{constructor(){this.data=0,this.blendMode="normal",this.polygonOffset=0,this.blend=!0,this.depthMask=!0}get blend(){return!!(this.data&1<<Qc)}set blend(t){!!(this.data&1<<Qc)!==t&&(this.data^=1<<Qc)}get offsets(){return!!(this.data&1<<Jc)}set offsets(t){!!(this.data&1<<Jc)!==t&&(this.data^=1<<Jc)}set cullMode(t){if(t==="none"){this.culling=!1;return}this.culling=!0,this.clockwiseFrontFace=t==="front"}get cullMode(){return this.culling?this.clockwiseFrontFace?"front":"back":"none"}get culling(){return!!(this.data&1<<th)}set culling(t){!!(this.data&1<<th)!==t&&(this.data^=1<<th)}get depthTest(){return!!(this.data&1<<eh)}set depthTest(t){!!(this.data&1<<eh)!==t&&(this.data^=1<<eh)}get depthMask(){return!!(this.data&1<<ih)}set depthMask(t){!!(this.data&1<<ih)!==t&&(this.data^=1<<ih)}get clockwiseFrontFace(){return!!(this.data&1<<rh)}set clockwiseFrontFace(t){!!(this.data&1<<rh)!==t&&(this.data^=1<<rh)}get blendMode(){return this._blendMode}set blendMode(t){this.blend=t!=="none",this._blendMode=t,this._blendModeId=US[t]||0}get polygonOffset(){return this._polygonOffset}set polygonOffset(t){this.offsets=!!t,this._polygonOffset=t}toString(){return`[pixi.js/core:State blendMode=${this.blendMode} clockwiseFrontFace=${this.clockwiseFrontFace} culling=${this.culling} depthMask=${this.depthMask} polygonOffset=${this.polygonOffset}]`}static for2d(){let t=new rg;return t.depthTest=!1,t.depthMask=!1,t.blend=!0,t}};sh.default2d=sh.for2d();Ot=sh});var ig,aa,ah=p(()=>{Nr();Ri();gr();Be();ig=class oh extends te{constructor(t){t={...oh.defaultOptions,...t},super(t),this.enabled=!0,this._state=Ot.for2d(),this.blendMode=t.blendMode,this.padding=t.padding,typeof t.antialias=="boolean"?this.antialias=t.antialias?"on":"off":this.antialias=t.antialias,this.resolution=t.resolution,this.blendRequired=t.blendRequired,this.clipToViewport=t.clipToViewport,this.addResource("uTexture",0,1),t.blendRequired&&this.addResource("uBackTexture",0,3)}apply(t,e,r,s){t.applyFilter(this,e,r,s)}get blendMode(){return this._state.blendMode}set blendMode(t){this._state.blendMode=t}static from(t){let{gpu:e,gl:r,...s}=t,n,o;return e&&(n=ve.from(e)),r&&(o=be.from(r)),new oh({gpuProgram:n,glProgram:o,...s})}};ig.defaultOptions={blendMode:"normal",resolution:1,padding:0,antialias:"off",blendRequired:!1,clipToViewport:!0};aa=ig});var sg,ng=p(()=>{sg=`in vec2 aPosition;
36
36
  out vec2 vTextureCoord;
37
37
 
38
38
  uniform vec4 uInputSize;
@@ -59,13 +59,13 @@ void main(void)
59
59
  gl_Position = filterVertexPosition();
60
60
  vTextureCoord = filterTextureCoord();
61
61
  }
62
- `});var sg,ng=p(()=>{sg=`in vec2 vTextureCoord;
62
+ `});var og,ag=p(()=>{og=`in vec2 vTextureCoord;
63
63
  out vec4 finalColor;
64
64
  uniform sampler2D uTexture;
65
65
  void main() {
66
66
  finalColor = texture(uTexture, vTextureCoord);
67
67
  }
68
- `});var lh,og=p(()=>{lh=`struct GlobalFilterUniforms {
68
+ `});var lh,lg=p(()=>{lh=`struct GlobalFilterUniforms {
69
69
  uInputSize: vec4<f32>,
70
70
  uInputPixel: vec4<f32>,
71
71
  uInputClamp: vec4<f32>,
@@ -114,24 +114,24 @@ fn mainFragment(
114
114
  ) -> @location(0) vec4<f32> {
115
115
  return textureSample(uTexture, uSampler, uv);
116
116
  }
117
- `});var aa,ag=p(()=>{Nr();Ai();ah();ig();ng();og();aa=class extends oa{constructor(){let t=ve.from({vertex:{source:lh,entryPoint:"mainVertex"},fragment:{source:lh,entryPoint:"mainFragment"},name:"passthrough-filter"}),e=be.from({vertex:rg,fragment:sg,name:"passthrough-filter"});super({gpuProgram:t,glProgram:e})}}});var tt,ir=p(()=>{"use strict";tt=(i=>(i[i.MAP_READ=1]="MAP_READ",i[i.MAP_WRITE=2]="MAP_WRITE",i[i.COPY_SRC=4]="COPY_SRC",i[i.COPY_DST=8]="COPY_DST",i[i.INDEX=16]="INDEX",i[i.VERTEX=32]="VERTEX",i[i.UNIFORM=64]="UNIFORM",i[i.STORAGE=128]="STORAGE",i[i.INDIRECT=256]="INDIRECT",i[i.QUERY_RESOLVE=512]="QUERY_RESOLVE",i[i.STATIC=1024]="STATIC",i))(tt||{})});var At,xr=p(()=>{Ht();Ft();ir();At=class extends ut{constructor(t){let{data:e,size:r}=t,{usage:s,label:n,shrinkToFit:o}=t;super(),this._gpuData=Object.create(null),this._gcLastUsed=-1,this.autoGarbageCollect=!0,this.uid=$("buffer"),this._resourceType="buffer",this._resourceId=$("resource"),this._touched=0,this._updateID=1,this._updateOffset=0,this._dataInt32=null,this.shrinkToFit=!0,this.destroyed=!1,e instanceof Array&&(e=new Float32Array(e)),this._data=e,r??(r=e?.byteLength);let a=!!e;this.descriptor={size:r,usage:s,mappedAtCreation:a,label:n},this.shrinkToFit=o??!0}get data(){return this._data}set data(t){this.setDataWithSize(t,t.length,!0)}get dataInt32(){return this._dataInt32||(this._dataInt32=new Int32Array(this.data.buffer)),this._dataInt32}get static(){return!!(this.descriptor.usage&tt.STATIC)}set static(t){t?this.descriptor.usage|=tt.STATIC:this.descriptor.usage&=~tt.STATIC}setDataWithSize(t,e,r){if(this._updateID++,this._updateSize=e*t.BYTES_PER_ELEMENT,this._updateOffset=0,this._data===t){r&&this.emit("update",this);return}let s=this._data;if(this._data=t,this._dataInt32=null,!s||s.length!==t.length){!this.shrinkToFit&&s&&t.byteLength<s.byteLength?r&&this.emit("update",this):(this.descriptor.size=t.byteLength,this._resourceId=$("resource"),this.emit("change",this));return}r&&this.emit("update",this)}update(t,e){this._updateSize=t??this._updateSize,this._updateOffset=e||0,this._updateID++,this.emit("update",this)}unload(){this.emit("unload",this);for(let t in this._gpuData)this._gpuData[t]?.destroy();this._gpuData=Object.create(null),this.destroyed||(this._resourceId=$("resource"),this.emit("change",this))}destroy(){this.destroyed=!0,this.unload(),this.emit("destroy",this),this.emit("change",this),this._data=null,this.descriptor=null,this.removeAllListeners()}}});function ch(i,t){if(!(i instanceof At)){let e=t?tt.INDEX:tt.VERTEX;i instanceof Array&&(t?(i=new Uint32Array(i),e=tt.INDEX|tt.COPY_DST):(i=new Float32Array(i),e=tt.VERTEX|tt.COPY_DST)),i=new At({data:i,label:t?"index-mesh-buffer":"vertex-mesh-buffer",usage:e})}return i}var lg=p(()=>{xr();ir()});function cg(i,t,e){let r=i.getAttribute(t);if(!r)return e.minX=0,e.minY=0,e.maxX=0,e.maxY=0,e;let s=r.buffer.data,n=1/0,o=1/0,a=-1/0,l=-1/0,c=s.BYTES_PER_ELEMENT,h=(r.offset||0)/c,u=(r.stride||8)/c;for(let d=h;d<s.length;d+=u){let f=s[d],m=s[d+1];f>a&&(a=f),m>l&&(l=m),f<n&&(n=f),m<o&&(o=m)}return e.minX=n,e.minY=o,e.maxX=a,e.maxY=l,e}var hg=p(()=>{"use strict"});function GS(i){return(i instanceof At||Array.isArray(i)||i.BYTES_PER_ELEMENT)&&(i={buffer:i}),i.buffer=ch(i.buffer,!1),i}var he,zr=p(()=>{Ht();ie();Ft();yt();xr();lg();hg();he=class extends ut{constructor(t={}){super(),this._gpuData=Object.create(null),this.autoGarbageCollect=!0,this._gcLastUsed=-1,this.uid=$("geometry"),this._layoutKey=0,this.instanceCount=1,this._bounds=new dt,this._boundsDirty=!0,this._vertexCount=0,this._vertexCountDirty=!0;let{attributes:e,indexBuffer:r,topology:s}=t;if(this.buffers=[],this.attributes={},e)for(let n in e)this.addAttribute(n,e[n]);this.instanceCount=t.instanceCount??1,r&&this.addIndex(r),this.topology=s||"triangle-list"}onBufferUpdate(){this._boundsDirty=!0,this._vertexCountDirty=!0,this.emit("update",this)}getAttribute(t){return this.attributes[t]}getIndex(){return this.indexBuffer}getBuffer(t){return this.getAttribute(t).buffer}get vertexCount(){if(!this._vertexCountDirty)return this._vertexCount;this._vertexCountDirty=!1;let t=this.attributes;for(let e in t){let r=t[e];if(r.instance)continue;let s=r.buffer;return this._vertexCount=s.data.length/(r.stride/4||r.size),this._vertexCount}return this._vertexCount=0,0}getSize(){return O("8.20.0","Geometry.getSize is deprecated, please use Geometry.vertexCount instead."),this.vertexCount}addAttribute(t,e){let r=GS(e);this.buffers.indexOf(r.buffer)===-1&&(this.buffers.push(r.buffer),r.buffer.on("update",this.onBufferUpdate,this),r.buffer.on("change",this.onBufferUpdate,this)),this.attributes[t]=r,this._vertexCountDirty=!0}addIndex(t){this.indexBuffer=ch(t,!0),this.buffers.push(this.indexBuffer)}get bounds(){return this._boundsDirty?(this._boundsDirty=!1,cg(this,"aPosition",this._bounds)):this._bounds}unload(){this.emit("unload",this);for(let t in this._gpuData)this._gpuData[t]?.destroy();this._gpuData=Object.create(null)}destroy(t=!1){this.emit("destroy",this),this.removeAllListeners(),t&&this.buffers.forEach(e=>e.destroy()),this.unload(),this.attributes=null,this.buffers=null,this.indexBuffer=null,this._bounds=null}}});var FS,hh,Ds,ug=p(()=>{P();ag();ot();mr();zr();me();gt();Fr();Ne();ie();Wc();ht();FS=new he({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])}),hh=class{constructor(){this.skip=!1,this.inputTexture=null,this.backTexture=null,this.filters=null,this.bounds=new dt,this.container=null,this.blendRequired=!1,this.outputRenderSurface=null,this.globalFrame={x:0,y:0,width:0,height:0},this.firstEnabledIndex=-1,this.lastEnabledIndex=-1}},Ds=class{constructor(t){this._filterStackIndex=0,this._filterStack=[],this._filterGlobalUniforms=new Ct({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 Vt({}),this.renderer=t}get activeBackTexture(){return this._activeFilterData?.backTexture}push(t){let e=this.renderer,r=t.filterEffect.filters,s=this._pushFilterData();s.skip=!1,s.filters=r,s.container=t.container,s.outputRenderSurface=e.renderTarget.renderSurface;let n=e.renderTarget.renderTarget.colorTexture.source,o=n.resolution,a=n.antialias;if(r.every(f=>!f.enabled)){s.skip=!0;return}let l=s.bounds;if(this._calculateFilterArea(t,l),this._calculateFilterBounds(s,e.renderTarget.rootViewPort,a,o,1),s.skip)return;let c=this._getPreviousFilterData(),h=this._findFilterResolution(o),u=0,d=0;c&&(u=c.bounds.minX,d=c.bounds.minY),this._calculateGlobalFrame(s,u,d,h,n.width,n.height),this._setupFilterTextures(s,l,e,c)}generateFilteredTexture({texture:t,filters:e}){let r=this._pushFilterData();this._activeFilterData=r,r.skip=!1,r.filters=e;let s=t.source,n=s.resolution,o=s.antialias;if(e.every(f=>!f.enabled))return r.skip=!0,t;let a=r.bounds;if(a.addRect(t.frame),this._calculateFilterBounds(r,a.rectangle,o,n,0),r.skip)return t;let l=n;this._calculateGlobalFrame(r,0,0,l,s.width,s.height),r.outputRenderSurface=Mt.getOptimalTexture(a.width,a.height,r.resolution,r.antialias),r.backTexture=U.EMPTY,r.inputTexture=t,this.renderer.renderTarget.finishRenderPass(),this._applyFiltersToTexture(r,!0);let d=r.outputRenderSurface;return d.source.alphaMode="premultiplied-alpha",d}pop(){let t=this.renderer,e=this._popFilterData();e.skip||(t.globalUniforms.pop(),t.renderTarget.finishRenderPass(),this._activeFilterData=e,this._applyFiltersToTexture(e,!1),e.blendRequired&&Mt.returnTexture(e.backTexture),Mt.returnTexture(e.inputTexture))}getBackTexture(t,e,r){let s=t.colorTexture.source._resolution,n=Mt.getOptimalTexture(e.width,e.height,s,!1),o=e.minX,a=e.minY;r&&(o-=r.minX,a-=r.minY),o=Math.floor(o*s),a=Math.floor(a*s);let l=Math.ceil(e.width*s),c=Math.ceil(e.height*s);return this.renderer.renderTarget.copyToTexture(t,n,{x:o,y:a},{width:l,height:c},{x:0,y:0}),n}applyFilter(t,e,r,s){let n=this.renderer,o=this._activeFilterData,l=o.outputRenderSurface===r,c=n.renderTarget.rootRenderTarget.colorTexture.source._resolution,h=this._findFilterResolution(c),u=0,d=0;if(l){let m=this._findPreviousFilterOffset();u=m.x,d=m.y}this._updateFilterUniforms(e,r,o,u,d,h,l,s);let f=t.enabled?t:this._getPassthroughFilter();this._setupBindGroupsAndRender(f,e,n)}calculateSpriteMatrix(t,e){let r=this._activeFilterData,s=t.set(r.inputTexture._source.width,0,0,r.inputTexture._source.height,r.bounds.minX,r.bounds.minY),n=e.worldTransform.copyTo(k.shared),o=e.renderGroup||e.parentRenderGroup;return o&&o.cacheToLocalTransform&&n.prepend(o.cacheToLocalTransform),n.invert(),s.prepend(n),s.scale(1/e.texture.orig.width,1/e.texture.orig.height),s.translate(e.anchor.x,e.anchor.y),s}destroy(){this._passthroughFilter?.destroy(!0),this._passthroughFilter=null}_getPassthroughFilter(){return this._passthroughFilter??(this._passthroughFilter=new aa),this._passthroughFilter}_setupBindGroupsAndRender(t,e,r){if(r.renderPipes.uniformBatch){let s=r.renderPipes.uniformBatch.getUboResource(this._filterGlobalUniforms);this._globalFilterBindGroup.setResource(s,0)}else this._globalFilterBindGroup.setResource(this._filterGlobalUniforms,0);this._globalFilterBindGroup.setResource(e.source,1),this._globalFilterBindGroup.setResource(e.source.style,2),t.groups[0]=this._globalFilterBindGroup,r.encoder.draw({geometry:FS,shader:t,state:t._state,topology:"triangle-list"}),r.type===Lt.WEBGL&&r.renderTarget.finishRenderPass()}_setupFilterTextures(t,e,r,s){if(t.backTexture=U.EMPTY,t.inputTexture=Mt.getOptimalTexture(e.width,e.height,t.resolution,t.antialias),t.blendRequired){r.renderTarget.finishRenderPass();let n=r.renderTarget.getRenderTarget(t.outputRenderSurface);t.backTexture=this.getBackTexture(n,e,s?.bounds)}r.renderTarget.bind({target:t.inputTexture,clear:!0}),r.globalUniforms.push({offset:e})}_calculateGlobalFrame(t,e,r,s,n,o){let a=t.globalFrame;a.x=e*s,a.y=r*s,a.width=n*s,a.height=o*s}_updateFilterUniforms(t,e,r,s,n,o,a,l){let c=this._filterGlobalUniforms.uniforms,h=c.uOutputFrame,u=c.uInputSize,d=c.uInputPixel,f=c.uInputClamp,m=c.uGlobalFrame,g=c.uOutputTexture;a?(h[0]=r.bounds.minX-s,h[1]=r.bounds.minY-n):(h[0]=0,h[1]=0),h[2]=t.frame.width,h[3]=t.frame.height,u[0]=t.source.width,u[1]=t.source.height,u[2]=1/u[0],u[3]=1/u[1],d[0]=t.source.pixelWidth,d[1]=t.source.pixelHeight,d[2]=1/d[0],d[3]=1/d[1],f[0]=.5*d[2],f[1]=.5*d[3],f[2]=t.frame.width*u[2]-.5*d[2],f[3]=t.frame.height*u[3]-.5*d[3];let _=this.renderer.renderTarget.rootRenderTarget.colorTexture;m[0]=s*o,m[1]=n*o,m[2]=_.source.width*o,m[3]=_.source.height*o,e instanceof U&&(e.source.resource=null);let x=this.renderer.renderTarget.getRenderTarget(e);this.renderer.renderTarget.bind({target:e,clear:!!l}),e instanceof U?(g[0]=e.frame.width,g[1]=e.frame.height):(g[0]=x.width,g[1]=x.height),g[2]=x.isRoot?-1:1,this._filterGlobalUniforms.update()}_findFilterResolution(t){let e=this._filterStackIndex-1;for(;e>0&&this._filterStack[e].skip;)--e;return e>0&&this._filterStack[e].inputTexture?this._filterStack[e].inputTexture.source._resolution:t}_findPreviousFilterOffset(){let t=0,e=0,r=this._filterStackIndex;for(;r>0;){r--;let s=this._filterStack[r];if(!s.skip){t=s.bounds.minX,e=s.bounds.minY;break}}return{x:t,y:e}}_calculateFilterArea(t,e){if(t.renderables?ta(t.renderables,e):t.filterEffect.filterArea?(e.clear(),e.addRect(t.filterEffect.filterArea),e.applyMatrix(t.container.worldTransform)):t.container.getFastGlobalBounds(!0,e),t.container){let s=(t.container.renderGroup||t.container.parentRenderGroup).cacheToLocalTransform;s&&e.applyMatrix(s)}}_applyFiltersToTexture(t,e){let r=t.inputTexture,s=t.bounds,n=t.filters,o=t.firstEnabledIndex,a=t.lastEnabledIndex;if(this._globalFilterBindGroup.setResource(r.source.style,2),this._globalFilterBindGroup.setResource(t.backTexture.source,3),o===a)n[o].apply(this,r,t.outputRenderSurface,e);else{let l=t.inputTexture,c=Mt.getOptimalTexture(s.width,s.height,l.source._resolution,!1),h=c;for(let u=o;u<a;u++){let d=n[u];if(!d.enabled)continue;d.apply(this,l,h,!0);let f=l;l=h,h=f}n[a].apply(this,l,t.outputRenderSurface,e),Mt.returnTexture(c)}}_calculateFilterBounds(t,e,r,s,n){let o=this.renderer,a=t.bounds,l=t.filters,c=1/0,h=0,u=!0,d=!1,f=!1,m=!0,g=-1,_=-1;for(let x=0;x<l.length;x++){let b=l[x];if(!b.enabled)continue;if(g===-1&&(g=x),_=x,c=Math.min(c,b.resolution==="inherit"?s:b.resolution),h+=b.padding,b.antialias==="off"?u=!1:b.antialias==="inherit"&&u&&(u=r),b.clipToViewport||(m=!1),!!!(b.compatibleRenderers&o.type)){f=!1;break}if(b.blendRequired&&!(o.backBuffer?.useBackBuffer??!0)){L("Blend filter requires backBuffer on WebGL renderer to be enabled. Set `useBackBuffer: true` in the renderer options."),f=!1;break}f=!0,d||(d=b.blendRequired)}if(!f){t.skip=!0;return}if(m&&a.fitBounds(0,e.width/s,0,e.height/s),a.scale(c).ceil().scale(1/c).pad((h|0)*n),!a.isPositive){t.skip=!0;return}t.antialias=u,t.resolution=c,t.blendRequired=d,t.firstEnabledIndex=g,t.lastEnabledIndex=_}_popFilterData(){return this._filterStackIndex--,this._filterStack[this._filterStackIndex]}_getPreviousFilterData(){let t,e=this._filterStackIndex-1;for(;e>0&&(e--,t=this._filterStack[e],!!t.skip););return t}_pushFilterData(){let t=this._filterStack[this._filterStackIndex];return t||(t=this._filterStack[this._filterStackIndex]=new hh),this._filterStackIndex++,t}};Ds.extension={type:[y.WebGLSystem,y.WebGPUSystem],name:"filter"}});var uh=p(()=>{P();ym();bm();ug();z.add(Ds,Is);z.add(Gs)});var US={};var dg=p(()=>{Mp();Rp();Gp();Oo();Xo();uh()});var DS={};var pg=p(()=>{Oo();Xo();uh()});async function gg(i){if(!i)for(let t=0;t<dh.length;t++){let e=dh[t];if(e.value.test()){await e.value.load();return}}}var dh,xg=p(()=>{P();dh=[];z.handleByNamedList(y.Environment,dh)});function la(){if(typeof Ls=="boolean")return Ls;try{Ls=new Function("param1","param2","param3","return param1[param2] === param3;")({a:"b"},"a","b")===!0}catch{Ls=!1}return Ls}var Ls,fh=p(()=>{"use strict"});function fa(i,t,e=2){let r=t&&t.length,s=r?t[0]*e:i.length;Hs.size&&Hs.clear();let n=vg(i,0,s,e,!0),o=[];if(!n||n.next===n.prev)return o;let a=0,l=0,c=0;if(r&&(n=HS(i,t,n,e)),i.length>80*e){a=i[0],l=i[1];let h=a,u=l;for(let d=e;d<s;d+=e){let f=i[d],m=i[d+1];f<a&&(a=f),m<l&&(l=m),f>h&&(h=f),m>u&&(u=m)}c=Math.max(h-a,u-l),c=c!==0?32767/c:0}return mh(n,o,a,l,c),o}function vg(i,t,e,r,s){let n=null;if(s===eT(i,t,e,r)>0)for(let o=t;o<e;o+=r)n=bg(o/r|0,i[o],i[o+1],n);else for(let o=e-r;o>=t;o-=r)n=bg(o/r|0,i[o],i[o+1],n);return n&&Ws(n,n.next)&&(js(n),n=n.next),n}function Wr(i,t=i){let e=t===i,r=i,s;do s=!1,r!==r.next&&(Hs.size===0||!Hs.has(r))&&(Ws(r,r.next)||Nt(r.prev,r,r.next)===0)?((e||r===t)&&(t=r.prev),ph=!0,js(r),r=r.prev,s=!0):(e||r!==t)&&(r=r.next,s=!e);while(s||r!==t);return t}function mh(i,t,e,r,s){s&&qS(i,e,r,s);let n=i,o=!1;for(;i.prev!==i.next;){let a=i.prev,l=i.next;if(Nt(a,i,l)<0&&(s?OS(i,e,r,s):LS(i))){t.push(a.i,i.i,l.i),js(i),i=l,n=l;continue}if(i=l,i===n){if(ph=!1,i=Wr(i),ph){n=i;continue}if(!o){i=NS(i,t),n=i,o=!0;continue}zS(i,t,e,r,s);break}}}function LS(i){let t=i.prev,e=i,r=i.next,s=t.x,n=e.x,o=r.x,a=t.y,l=e.y,c=r.y,h=Math.min(s,n,o),u=Math.min(a,l,c),d=Math.max(s,n,o),f=Math.max(a,l,c),m=r.next;for(;m!==t;){if(m.x>=h&&m.x<=d&&m.y>=u&&m.y<=f&&!(s===m.x&&a===m.y)&&da(s,a,n,l,o,c,m.x,m.y)&&Nt(m.prev,m,m.next)>=0)return!1;m=m.next}return!0}function OS(i,t,e,r){let s=i.prev,n=i,o=i.next,a=s.x,l=n.x,c=o.x,h=s.y,u=n.y,d=o.y,f=Math.min(a,l,c),m=Math.min(h,u,d),g=Math.max(a,l,c),_=Math.max(h,u,d),x=yh(f,m,t,e,r),b=yh(g,_,t,e,r),v=i.prevZ;for(;v&&v.z>=x;){if(v.x>=f&&v.x<=g&&v.y>=m&&v.y<=_&&v!==o&&!(a===v.x&&h===v.y)&&da(a,h,l,u,c,d,v.x,v.y)&&Nt(v.prev,v,v.next)>=0)return!1;v=v.prevZ}let S=i.nextZ;for(;S&&S.z<=b;){if(S.x>=f&&S.x<=g&&S.y>=m&&S.y<=_&&S!==o&&!(a===S.x&&h===S.y)&&da(a,h,l,u,c,d,S.x,S.y)&&Nt(S.prev,S,S.next)>=0)return!1;S=S.nextZ}return!0}function NS(i,t){let e=i,r=!1;do{let s=e.prev,n=e.next.next;wg(s,e,e.next,n,!1)&&Vs(s,n)&&Vs(n,s)&&(t.push(s.i,e.i,n.i),js(e),js(e.next),e=i=n,r=!0),e=e.next}while(e!==i);return r?Wr(e):e}function zS(i,t,e,r,s){let n=i;do{let o=n.next.next;for(;o!==n.prev;){if(n.i!==o.i&&QS(n,o)){let a=Cg(n,o);n=Wr(n,n.next),a=Wr(a,a.next),mh(n,t,e,r,s),mh(a,t,e,r,s);return}o=o.next}n=n.next}while(n!==i)}function HS(i,t,e,r){let s=[];for(let n=0,o=t.length;n<o;n++){let a=t[n]*r,l=n<o-1?t[n+1]*r:i.length,c=vg(i,a,l,r,!1);c===c.next&&Hs.add(c),s.push(ZS(c))}s.sort(WS),jS(i.length/r,t.length),Tg(e,e),gh=!0;for(let n=0;n<s.length;n++)e=VS(s[n],e);return gh=!1,Wr(e)}function WS(i,t){return i.x-t.x||i.y-t.y||(i.next.y-i.y)/(i.next.x-i.x)-(t.next.y-t.y)/(t.next.x-t.x)}function VS(i,t){let e=YS(i,t);if(!e)return t;let r=Cg(e,i),s=r.next;return Tg(e,s.next),Wr(r,r.next),Wr(e,e.next)}function jS(i,t){let e=Math.ceil((i+2*t)/Sg)+t+2;Rt.length<e*4&&(Rt=new Float64Array(e*4)),ua=0}function Tg(i,t){let e=i;do{let r=ua++;xh[r]=e;let s=1/0,n=1/0,o=-1/0,a=-1/0,l=0;do{let h=e.next;e.z=r,e.x<s&&(s=e.x),e.x>o&&(o=e.x),e.y<n&&(n=e.y),e.y>a&&(a=e.y),h.x<s&&(s=h.x),h.x>o&&(o=h.x),h.y<n&&(n=h.y),h.y>a&&(a=h.y),e=h}while(++l<Sg&&e!==t);_h[r]=e;let c=r*4;Rt[c]=s,Rt[c+1]=n,Rt[c+2]=o,Rt[c+3]=a}while(e!==t)}function XS(i,t){let e=i.z*4;t.x<Rt[e]&&(Rt[e]=t.x),t.y<Rt[e+1]&&(Rt[e+1]=t.y),t.x>Rt[e+2]&&(Rt[e+2]=t.x),t.y>Rt[e+3]&&(Rt[e+3]=t.y)}function _g(i){let t=_h[i];for(;t.prev.next!==t;)t=t.next;return _h[i]=t,t}function yg(i){let t=xh[i];for(;t.prev.next!==t;)t=t.next;return xh[i]=t,t}function YS(i,t){let e=t,r=i.x,s=i.y,n=-1/0,o;if(Ws(i,e))return e;for(let d=0,f=0;d<ua;d++,f+=4){if(s<Rt[f+1]||s>Rt[f+3]||Rt[f]>r||Rt[f+2]<=n)continue;let m=_g(d);e=yg(d);do{if(e.prev.next===e){if(Ws(i,e.next))return e.next;if(s<=e.y&&s>=e.next.y&&e.next.y!==e.y){let g=e.x+(s-e.y)*(e.next.x-e.x)/(e.next.y-e.y);if(g<=r&&g>n&&(n=g,o=e.x<e.next.x?e:e.next,g===r))return o}}e=e.next}while(e!==m)}if(!o)return null;let a=o.x,l=o.y,c=Math.min(s,l),h=Math.max(s,l),u=1/0;for(let d=0,f=0;d<ua;d++,f+=4){if(Rt[f+2]<a||Rt[f]>r||Rt[f+3]<c||Rt[f+1]>h)continue;let m=_g(d);e=yg(d);do{if(e.prev.next===e&&r>=e.x&&e.x>=a&&r!==e.x&&da(s<l?r:n,s,a,l,s<l?n:r,s,e.x,e.y)){let g=Math.abs(s-e.y)/(r-e.x);(Vs(e,i)||e.y===s&&e.next.y===s&&e.next.x>r)&&(g<u||g===u&&(e.x>o.x||e.x===o.x&&$S(o,e)))&&(o=e,u=g)}e=e.next}while(e!==m)}return o}function $S(i,t){return Nt(i.prev,i,t.prev)<0&&Nt(t.next,i,i.next)<0}function qS(i,t,e,r){let s=i,n=0;do s.z=yh(s.x,s.y,t,e,r),Se[n++]=s,s=s.next;while(s!==i);KS(n);let o=null;for(let a=0;a<n;a++){let l=Se[a];l.prevZ=o,o&&(o.nextZ=l),o=l}o.nextZ=null}function KS(i){if(i<=32){for(let t=1;t<i;t++){let e=Se[t],r=e.z,s=t-1;for(;s>=0&&Se[s].z>r;)Se[s+1]=Se[s],s--;Se[s+1]=e}return}Hr.length<i&&(Hr=new Uint32Array(i),Ns=new Uint32Array(i),Os=new Array(i));for(let t=0;t<i;t++)Hr[t]=Se[t].z;ca(i,Se,Hr,Os,Ns,0),ca(i,Os,Ns,Se,Hr,8),ca(i,Se,Hr,Os,Ns,16),ca(i,Os,Ns,Se,Hr,24)}function ca(i,t,e,r,s,n){zs.fill(0);for(let a=0;a<i;a++)zs[e[a]>>>n&255]++;let o=0;for(let a=0;a<256;a++){let l=zs[a];zs[a]=o,o+=l}for(let a=0;a<i;a++){let l=e[a],c=zs[l>>>n&255]++;r[c]=t[a],s[c]=l}}function yh(i,t,e,r,s){return i=(i-e)*s|0,t=(t-r)*s|0,i=(i|i<<8)&16711935,i=(i|i<<4)&252645135,i=(i|i<<2)&858993459,i=(i|i<<1)&1431655765,t=(t|t<<8)&16711935,t=(t|t<<4)&252645135,t=(t|t<<2)&858993459,t=(t|t<<1)&1431655765,i|t<<1}function ZS(i){let t=i,e=i;do(t.x<e.x||t.x===e.x&&t.y<e.y)&&(e=t),t=t.next;while(t!==i);return e}function da(i,t,e,r,s,n,o,a){return(s-o)*(t-a)>=(i-o)*(n-a)&&(i-o)*(r-a)>=(e-o)*(t-a)&&(e-o)*(n-a)>=(s-o)*(r-a)}function QS(i,t){let e=Ws(i,t)&&Nt(i.prev,i,i.next)>0&&Nt(t.prev,t,t.next)>0;return i.next.i!==t.i&&(e||Vs(i,t)&&Vs(t,i)&&(Nt(i.prev,i,t.prev)!==0||Nt(i,t.prev,t)!==0))&&!JS(i,t)&&(e||tT(i,t))}function Nt(i,t,e){return(t.y-i.y)*(e.x-t.x)-(t.x-i.x)*(e.y-t.y)}function Ws(i,t){return i.x===t.x&&i.y===t.y}function wg(i,t,e,r,s=!0){let n=Nt(i,t,e),o=Nt(i,t,r),a=Nt(e,r,i),l=Nt(e,r,t);return(n>0&&o<0||n<0&&o>0)&&(a>0&&l<0||a<0&&l>0)?!0:s?!!(n===0&&ha(i,e,t)||o===0&&ha(i,r,t)||a===0&&ha(e,i,r)||l===0&&ha(e,t,r)):!1}function ha(i,t,e){return t.x<=Math.max(i.x,e.x)&&t.x>=Math.min(i.x,e.x)&&t.y<=Math.max(i.y,e.y)&&t.y>=Math.min(i.y,e.y)}function JS(i,t){let e=Math.min(i.x,t.x),r=Math.max(i.x,t.x),s=Math.min(i.y,t.y),n=Math.max(i.y,t.y),o=i;do{let a=o.next;if(o.x>r&&a.x>r||o.x<e&&a.x<e||o.y>n&&a.y>n||o.y<s&&a.y<s){o=a;continue}if(o.i!==i.i&&a.i!==i.i&&o.i!==t.i&&a.i!==t.i&&wg(o,a,i,t))return!0;o=a}while(o!==i);return!1}function Vs(i,t){return Nt(i.prev,i,i.next)<0?Nt(i,t,i.next)>=0&&Nt(i,i.prev,t)>=0:Nt(i,t,i.prev)<0||Nt(i,i.next,t)<0}function tT(i,t){let e=i,r=!1,s=(i.x+t.x)/2,n=(i.y+t.y)/2;do{let o=e.next;e.y>n!=o.y>n&&s<(o.x-e.x)*(n-e.y)/(o.y-e.y)+e.x&&(r=!r),e=o}while(e!==i);return r}function Cg(i,t){let e=bh(i.i,i.x,i.y),r=bh(t.i,t.x,t.y),s=i.next,n=t.prev;return i.next=t,t.prev=i,e.next=s,s.prev=e,r.next=e,e.prev=r,n.next=r,r.prev=n,r}function bg(i,t,e,r){let s=bh(i,t,e);return r?(s.next=r.next,s.prev=r,r.next.prev=s,r.next=s):(s.prev=s,s.next=s),s}function js(i){i.next.prev=i.prev,i.prev.next=i.next,i.prevZ&&(i.prevZ.nextZ=i.nextZ),i.nextZ&&(i.nextZ.prevZ=i.prevZ),gh&&XS(i.prev,i.next)}function bh(i,t,e){return{i,x:t,y:e,prev:null,next:null,z:0,prevZ:null,nextZ:null}}function eT(i,t,e,r){let s=0;for(let n=t,o=e-r;n<e;n+=r)s+=(i[o]-i[n])*(i[n+1]+i[o+1]),o=n;return s}var Hs,ph,gh,Sg,Rt,ua,xh,_h,Se,Os,Hr,Ns,zs,Eg=p(()=>{Hs=new Set,ph=!1;gh=!1;Sg=16,Rt=new Float64Array(0),ua=0,xh=[],_h=[];Se=[],Os=[],Hr=new Uint32Array(0),Ns=new Uint32Array(0),zs=new Uint32Array(256)});var Pg,Mg=p(()=>{Eg();Ht();Pg=fa.default||fa});var Et,ki=p(()=>{"use strict";Et=(i=>(i[i.NONE=0]="NONE",i[i.COLOR=16384]="COLOR",i[i.STENCIL=1024]="STENCIL",i[i.DEPTH=256]="DEPTH",i[i.COLOR_DEPTH=16640]="COLOR_DEPTH",i[i.COLOR_STENCIL=17408]="COLOR_STENCIL",i[i.DEPTH_STENCIL=1280]="DEPTH_STENCIL",i[i.ALL=17664]="ALL",i))(Et||{})});var Bi,vh=p(()=>{"use strict";Bi=class{constructor(t){this.items=[],this._name=t}emit(t,e,r,s,n,o,a,l){let{name:c,items:h}=this;for(let u=0,d=h.length;u<d;u++)h[u][c](t,e,r,s,n,o,a,l);return this}add(t){return t[this._name]&&(this.remove(t),this.items.push(t)),this}remove(t){let e=this.items.indexOf(t);return e!==-1&&this.items.splice(e,1),this}contains(t){return this.items.indexOf(t)!==-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 rT,Ag,Te,Vr=p(()=>{Qt();xg();Pe();fh();Ft();yt();Pr();ki();vh();Ht();rT=["init","destroy","contextChange","resolutionChange","resetState","renderEnd","renderStart","render","update","postrender","prerender"],Ag=class Rg extends ut{constructor(t){super(),this.tick=0,this.uid=$("renderer"),this.runners=Object.create(null),this.renderPipes=Object.create(null),this._initOptions={},this._systemsHash=Object.create(null),this.type=t.type,this.name=t.name,this.config=t;let e=[...rT,...this.config.runners??[]];this._addRunners(...e),this._unsafeEvalCheck()}async init(t={}){let e=t.skipExtensionImports===!0?!0:t.manageImports===!1;await gg(e),this._addSystems(this.config.systems),this._addPipes(this.config.renderPipes,this.config.renderPipeAdaptors);for(let r in this._systemsHash)t={...this._systemsHash[r].constructor.defaultOptions,...t};t={...Rg.defaultOptions,...t},this._roundPixels=t.roundPixels?1:0;for(let r=0;r<this.runners.init.items.length;r++)await this.runners.init.items[r].init(t);this._initOptions=t}render(t,e){this.tick++;let r=t;if(r instanceof mt&&(r={container:r},e&&(O(rt,"passing a second argument is deprecated, please use render options instead"),r.target=e.renderTexture)),r.target||(r.target=this.view.renderTarget),r.target===this.view.renderTarget&&(this._lastObjectRendered=r.container,r.clearColor??(r.clearColor=this.background.colorRgba),r.clear??(r.clear=this.background.clearBeforeRender)),r.clearColor){let s=Array.isArray(r.clearColor)&&r.clearColor.length===4;r.clearColor=s?r.clearColor:Q.shared.setValue(r.clearColor).toArray()}r.transform||(r.container.updateLocalTransform(),r.transform=r.container.localTransform),r.container.visible&&(r.container.enableRenderGroup(),this.runners.prerender.emit(r),this.runners.renderStart.emit(r),this.runners.render.emit(r),this.runners.renderEnd.emit(r),this.runners.postrender.emit(r))}resize(t,e,r){let s=this.view.resolution;this.view.resize(t,e,r),this.emit("resize",this.view.screen.width,this.view.screen.height,this.view.resolution),r!==void 0&&r!==s&&this.runners.resolutionChange.emit(r)}clear(t={}){let e=this;t.target||(t.target=e.renderTarget.renderTarget),t.clearColor||(t.clearColor=this.background.colorRgba),t.clear??(t.clear=Et.ALL);let{clear:r,clearColor:s,target:n,mipLevel:o,layer:a}=t;Q.shared.setValue(s??this.background.colorRgba),e.renderTarget.clear(n,r,Q.shared.toArray(),o??0,a??0)}get resolution(){return this.view.resolution}set resolution(t){this.view.resolution=t,this.runners.resolutionChange.emit(t)}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(...t){t.forEach(e=>{this.runners[e]=new Bi(e)})}_addSystems(t){let e;for(e in t){let r=t[e];this._addSystem(r.value,r.name)}}_addSystem(t,e){let r=new t(this);if(this[e])throw new Error(`Whoops! The name "${e}" is already in use`);this[e]=r,this._systemsHash[e]=r;for(let s in this.runners)this.runners[s].add(r);return this}_addPipes(t,e){let r=e.reduce((s,n)=>(s[n.name]=n.value,s),{});t.forEach(s=>{let n=s.value,o=s.name,a=r[o];this.renderPipes[o]=new n(this,a?new a:null),this.runners.destroy.add(this.renderPipes[o])})}destroy(t=!1){this.runners.destroy.items.reverse(),this.runners.destroy.emit(t),(t===!0||typeof t=="object"&&t.releaseGlobalResources)&&ye.release(),Object.values(this.runners).forEach(e=>{e.destroy()}),this._systemsHash=null,this.renderPipes=null,this.removeAllListeners()}generateTexture(t){return this.textureGenerator.generateTexture(t)}get roundPixels(){return!!this._roundPixels}_unsafeEvalCheck(){if(!la())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()}};Ag.defaultOptions={resolution:1,failIfMajorPerformanceCaveat:!1,roundPixels:!1};Te=Ag});function Ii(i,t,e){let r=2166136261;for(let s=0;s<t;s++)r^=i[s].uid,r=Math.imul(r,16777619),r>>>=0;return Ig[r]||iT(i,t,r,e)}function iT(i,t,e,r){let s={},n=0;for(let a=0;a<r;a++){let l=a<t?i[a]:U.EMPTY.source;s[n++]=l.source,s[n++]=l.style}let o=new Vt(s);return Ig[e]=o,o}var Ig,ga=p(()=>{mr();gt();Ig={}});function Sh(i,t,e){if(i)for(let r in i){let s=r.toLocaleLowerCase(),n=t[s];if(n){let o=i[r];r==="header"&&(o=o.replace(/@in\s+[^;]+;\s*/g,"").replace(/@out\s+[^;]+;\s*/g,"")),e&&n.push(`//----${e}----//`),n.push(o)}else L(`${r} placement hook does not exist in shader`)}}var Gg=p(()=>{ht()});function Th(i){let t={};return(i.match(sT)?.map(r=>r.replace(/[{()}]/g,""))??[]).forEach(r=>{t[r]=[]}),t}var sT,Fg=p(()=>{"use strict";sT=/\{\{(.*?)\}\}/g});function Ug(i,t){let e,r=/@in\s+([^;]+);/g;for(;(e=r.exec(i))!==null;)t.push(e[1])}function wh(i,t,e=!1){let r=[];Ug(t,r),i.forEach(a=>{a.header&&Ug(a.header,r)});let s=r;e&&s.sort();let n=s.map((a,l)=>` @location(${l}) ${a},`).join(`
117
+ `});var la,cg=p(()=>{Nr();Ri();ah();ng();ag();lg();la=class extends aa{constructor(){let t=ve.from({vertex:{source:lh,entryPoint:"mainVertex"},fragment:{source:lh,entryPoint:"mainFragment"},name:"passthrough-filter"}),e=be.from({vertex:sg,fragment:og,name:"passthrough-filter"});super({gpuProgram:t,glProgram:e})}}});var tt,ir=p(()=>{"use strict";tt=(i=>(i[i.MAP_READ=1]="MAP_READ",i[i.MAP_WRITE=2]="MAP_WRITE",i[i.COPY_SRC=4]="COPY_SRC",i[i.COPY_DST=8]="COPY_DST",i[i.INDEX=16]="INDEX",i[i.VERTEX=32]="VERTEX",i[i.UNIFORM=64]="UNIFORM",i[i.STORAGE=128]="STORAGE",i[i.INDIRECT=256]="INDIRECT",i[i.QUERY_RESOLVE=512]="QUERY_RESOLVE",i[i.STATIC=1024]="STATIC",i))(tt||{})});var At,xr=p(()=>{Ht();Ft();ir();At=class extends ut{constructor(t){let{data:e,size:r}=t,{usage:s,label:n,shrinkToFit:o}=t;super(),this._gpuData=Object.create(null),this._gcLastUsed=-1,this.autoGarbageCollect=!0,this.uid=$("buffer"),this._resourceType="buffer",this._resourceId=$("resource"),this._touched=0,this._updateID=1,this._updateOffset=0,this._dataInt32=null,this.shrinkToFit=!0,this.destroyed=!1,e instanceof Array&&(e=new Float32Array(e)),this._data=e,r??(r=e?.byteLength);let a=!!e;this.descriptor={size:r,usage:s,mappedAtCreation:a,label:n},this.shrinkToFit=o??!0}get data(){return this._data}set data(t){this.setDataWithSize(t,t.length,!0)}get dataInt32(){return this._dataInt32||(this._dataInt32=new Int32Array(this.data.buffer)),this._dataInt32}get static(){return!!(this.descriptor.usage&tt.STATIC)}set static(t){t?this.descriptor.usage|=tt.STATIC:this.descriptor.usage&=~tt.STATIC}setDataWithSize(t,e,r){if(this._updateID++,this._updateSize=e*t.BYTES_PER_ELEMENT,this._updateOffset=0,this._data===t){r&&this.emit("update",this);return}let s=this._data;if(this._data=t,this._dataInt32=null,!s||s.length!==t.length){!this.shrinkToFit&&s&&t.byteLength<s.byteLength?r&&this.emit("update",this):(this.descriptor.size=t.byteLength,this._resourceId=$("resource"),this.emit("change",this));return}r&&this.emit("update",this)}update(t,e){this._updateSize=t??this._updateSize,this._updateOffset=e||0,this._updateID++,this.emit("update",this)}unload(){this.emit("unload",this);for(let t in this._gpuData)this._gpuData[t]?.destroy();this._gpuData=Object.create(null),this.destroyed||(this._resourceId=$("resource"),this.emit("change",this))}destroy(){this.destroyed=!0,this.unload(),this.emit("destroy",this),this.emit("change",this),this._data=null,this.descriptor=null,this.removeAllListeners()}}});function ch(i,t){if(!(i instanceof At)){let e=t?tt.INDEX:tt.VERTEX;i instanceof Array&&(t?(i=new Uint32Array(i),e=tt.INDEX|tt.COPY_DST):(i=new Float32Array(i),e=tt.VERTEX|tt.COPY_DST)),i=new At({data:i,label:t?"index-mesh-buffer":"vertex-mesh-buffer",usage:e})}return i}var hg=p(()=>{xr();ir()});function ug(i,t,e){let r=i.getAttribute(t);if(!r)return e.minX=0,e.minY=0,e.maxX=0,e.maxY=0,e;let s=r.buffer.data,n=1/0,o=1/0,a=-1/0,l=-1/0,c=s.BYTES_PER_ELEMENT,h=(r.offset||0)/c,u=(r.stride||8)/c;for(let d=h;d<s.length;d+=u){let f=s[d],m=s[d+1];f>a&&(a=f),m>l&&(l=m),f<n&&(n=f),m<o&&(o=m)}return e.minX=n,e.minY=o,e.maxX=a,e.maxY=l,e}var dg=p(()=>{"use strict"});function DS(i){return(i instanceof At||Array.isArray(i)||i.BYTES_PER_ELEMENT)&&(i={buffer:i}),i.buffer=ch(i.buffer,!1),i}var ue,zr=p(()=>{Ht();ie();Ft();yt();xr();hg();dg();ue=class extends ut{constructor(t={}){super(),this._gpuData=Object.create(null),this.autoGarbageCollect=!0,this._gcLastUsed=-1,this.uid=$("geometry"),this._layoutKey=0,this.instanceCount=1,this._bounds=new dt,this._boundsDirty=!0,this._vertexCount=0,this._vertexCountDirty=!0;let{attributes:e,indexBuffer:r,topology:s}=t;if(this.buffers=[],this.attributes={},e)for(let n in e)this.addAttribute(n,e[n]);this.instanceCount=t.instanceCount??1,r&&this.addIndex(r),this.topology=s||"triangle-list"}onBufferUpdate(){this._boundsDirty=!0,this._vertexCountDirty=!0,this.emit("update",this)}getAttribute(t){return this.attributes[t]}getIndex(){return this.indexBuffer}getBuffer(t){return this.getAttribute(t).buffer}get vertexCount(){if(!this._vertexCountDirty)return this._vertexCount;this._vertexCountDirty=!1;let t=this.attributes;for(let e in t){let r=t[e];if(r.instance)continue;let s=r.buffer;return this._vertexCount=s.data.length/(r.stride/4||r.size),this._vertexCount}return this._vertexCount=0,0}getSize(){return O("8.20.0","Geometry.getSize is deprecated, please use Geometry.vertexCount instead."),this.vertexCount}addAttribute(t,e){let r=DS(e);this.buffers.indexOf(r.buffer)===-1&&(this.buffers.push(r.buffer),r.buffer.on("update",this.onBufferUpdate,this),r.buffer.on("change",this.onBufferUpdate,this)),this.attributes[t]=r,this._vertexCountDirty=!0}addIndex(t){this.indexBuffer=ch(t,!0),this.buffers.push(this.indexBuffer)}get bounds(){return this._boundsDirty?(this._boundsDirty=!1,ug(this,"aPosition",this._bounds)):this._bounds}unload(){this.emit("unload",this);for(let t in this._gpuData)this._gpuData[t]?.destroy();this._gpuData=Object.create(null)}destroy(t=!1){this.emit("destroy",this),this.removeAllListeners(),t&&this.buffers.forEach(e=>e.destroy()),this.unload(),this.attributes=null,this.buffers=null,this.indexBuffer=null,this._bounds=null}}});var LS,hh,Ls,fg=p(()=>{P();cg();ot();mr();zr();me();gt();Fr();Ne();ie();Wc();ht();LS=new ue({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])}),hh=class{constructor(){this.skip=!1,this.inputTexture=null,this.backTexture=null,this.filters=null,this.bounds=new dt,this.container=null,this.blendRequired=!1,this.outputRenderSurface=null,this.globalFrame={x:0,y:0,width:0,height:0},this.firstEnabledIndex=-1,this.lastEnabledIndex=-1}},Ls=class{constructor(t){this._filterStackIndex=0,this._filterStack=[],this._filterGlobalUniforms=new Ct({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 Vt({}),this.renderer=t}get activeBackTexture(){return this._activeFilterData?.backTexture}push(t){let e=this.renderer,r=t.filterEffect.filters,s=this._pushFilterData();s.skip=!1,s.filters=r,s.container=t.container,s.outputRenderSurface=e.renderTarget.renderSurface;let n=e.renderTarget.renderTarget.colorTexture.source,o=n.resolution,a=n.antialias;if(r.every(f=>!f.enabled)){s.skip=!0;return}let l=s.bounds;if(this._calculateFilterArea(t,l),this._calculateFilterBounds(s,e.renderTarget.rootViewPort,a,o,1),s.skip)return;let c=this._getPreviousFilterData(),h=this._findFilterResolution(o),u=0,d=0;c&&(u=c.bounds.minX,d=c.bounds.minY),this._calculateGlobalFrame(s,u,d,h,n.width,n.height),this._setupFilterTextures(s,l,e,c)}generateFilteredTexture({texture:t,filters:e}){let r=this._pushFilterData();this._activeFilterData=r,r.skip=!1,r.filters=e;let s=t.source,n=s.resolution,o=s.antialias;if(e.every(f=>!f.enabled))return r.skip=!0,t;let a=r.bounds;if(a.addRect(t.frame),this._calculateFilterBounds(r,a.rectangle,o,n,0),r.skip)return t;let l=n;this._calculateGlobalFrame(r,0,0,l,s.width,s.height),r.outputRenderSurface=Mt.getOptimalTexture(a.width,a.height,r.resolution,r.antialias),r.backTexture=F.EMPTY,r.inputTexture=t,this.renderer.renderTarget.finishRenderPass(),this._applyFiltersToTexture(r,!0);let d=r.outputRenderSurface;return d.source.alphaMode="premultiplied-alpha",d}pop(){let t=this.renderer,e=this._popFilterData();e.skip||(t.globalUniforms.pop(),t.renderTarget.finishRenderPass(),this._activeFilterData=e,this._applyFiltersToTexture(e,!1),e.blendRequired&&Mt.returnTexture(e.backTexture),Mt.returnTexture(e.inputTexture))}getBackTexture(t,e,r){let s=t.colorTexture.source._resolution,n=Mt.getOptimalTexture(e.width,e.height,s,!1),o=e.minX,a=e.minY;r&&(o-=r.minX,a-=r.minY),o=Math.floor(o*s),a=Math.floor(a*s);let l=Math.ceil(e.width*s),c=Math.ceil(e.height*s);return this.renderer.renderTarget.copyToTexture(t,n,{x:o,y:a},{width:l,height:c},{x:0,y:0}),n}applyFilter(t,e,r,s){let n=this.renderer,o=this._activeFilterData,l=o.outputRenderSurface===r,c=n.renderTarget.rootRenderTarget.colorTexture.source._resolution,h=this._findFilterResolution(c),u=0,d=0;if(l){let m=this._findPreviousFilterOffset();u=m.x,d=m.y}this._updateFilterUniforms(e,r,o,u,d,h,l,s);let f=t.enabled?t:this._getPassthroughFilter();this._setupBindGroupsAndRender(f,e,n)}calculateSpriteMatrix(t,e){let r=this._activeFilterData,s=t.set(r.inputTexture._source.width,0,0,r.inputTexture._source.height,r.bounds.minX,r.bounds.minY),n=e.worldTransform.copyTo(k.shared),o=e.renderGroup||e.parentRenderGroup;return o&&o.cacheToLocalTransform&&n.prepend(o.cacheToLocalTransform),n.invert(),s.prepend(n),s.scale(1/e.texture.orig.width,1/e.texture.orig.height),s.translate(e.anchor.x,e.anchor.y),s}destroy(){this._passthroughFilter?.destroy(!0),this._passthroughFilter=null}_getPassthroughFilter(){return this._passthroughFilter??(this._passthroughFilter=new la),this._passthroughFilter}_setupBindGroupsAndRender(t,e,r){if(r.renderPipes.uniformBatch){let s=r.renderPipes.uniformBatch.getUboResource(this._filterGlobalUniforms);this._globalFilterBindGroup.setResource(s,0)}else this._globalFilterBindGroup.setResource(this._filterGlobalUniforms,0);this._globalFilterBindGroup.setResource(e.source,1),this._globalFilterBindGroup.setResource(e.source.style,2),t.groups[0]=this._globalFilterBindGroup,r.encoder.draw({geometry:LS,shader:t,state:t._state,topology:"triangle-list"}),r.type===Lt.WEBGL&&r.renderTarget.finishRenderPass()}_setupFilterTextures(t,e,r,s){if(t.backTexture=F.EMPTY,t.inputTexture=Mt.getOptimalTexture(e.width,e.height,t.resolution,t.antialias),t.blendRequired){r.renderTarget.finishRenderPass();let n=r.renderTarget.getRenderTarget(t.outputRenderSurface);t.backTexture=this.getBackTexture(n,e,s?.bounds)}r.renderTarget.bind({target:t.inputTexture,clear:!0}),r.globalUniforms.push({offset:e})}_calculateGlobalFrame(t,e,r,s,n,o){let a=t.globalFrame;a.x=e*s,a.y=r*s,a.width=n*s,a.height=o*s}_updateFilterUniforms(t,e,r,s,n,o,a,l){let c=this._filterGlobalUniforms.uniforms,h=c.uOutputFrame,u=c.uInputSize,d=c.uInputPixel,f=c.uInputClamp,m=c.uGlobalFrame,g=c.uOutputTexture;a?(h[0]=r.bounds.minX-s,h[1]=r.bounds.minY-n):(h[0]=0,h[1]=0),h[2]=t.frame.width,h[3]=t.frame.height,u[0]=t.source.width,u[1]=t.source.height,u[2]=1/u[0],u[3]=1/u[1],d[0]=t.source.pixelWidth,d[1]=t.source.pixelHeight,d[2]=1/d[0],d[3]=1/d[1],f[0]=.5*d[2],f[1]=.5*d[3],f[2]=t.frame.width*u[2]-.5*d[2],f[3]=t.frame.height*u[3]-.5*d[3];let _=this.renderer.renderTarget.rootRenderTarget.colorTexture;m[0]=s*o,m[1]=n*o,m[2]=_.source.width*o,m[3]=_.source.height*o,e instanceof F&&(e.source.resource=null);let x=this.renderer.renderTarget.getRenderTarget(e);this.renderer.renderTarget.bind({target:e,clear:!!l}),e instanceof F?(g[0]=e.frame.width,g[1]=e.frame.height):(g[0]=x.width,g[1]=x.height),g[2]=x.isRoot?-1:1,this._filterGlobalUniforms.update()}_findFilterResolution(t){let e=this._filterStackIndex-1;for(;e>0&&this._filterStack[e].skip;)--e;return e>0&&this._filterStack[e].inputTexture?this._filterStack[e].inputTexture.source._resolution:t}_findPreviousFilterOffset(){let t=0,e=0,r=this._filterStackIndex;for(;r>0;){r--;let s=this._filterStack[r];if(!s.skip){t=s.bounds.minX,e=s.bounds.minY;break}}return{x:t,y:e}}_calculateFilterArea(t,e){if(t.renderables?ea(t.renderables,e):t.filterEffect.filterArea?(e.clear(),e.addRect(t.filterEffect.filterArea),e.applyMatrix(t.container.worldTransform)):t.container.getFastGlobalBounds(!0,e),t.container){let s=(t.container.renderGroup||t.container.parentRenderGroup).cacheToLocalTransform;s&&e.applyMatrix(s)}}_applyFiltersToTexture(t,e){let r=t.inputTexture,s=t.bounds,n=t.filters,o=t.firstEnabledIndex,a=t.lastEnabledIndex;if(this._globalFilterBindGroup.setResource(r.source.style,2),this._globalFilterBindGroup.setResource(t.backTexture.source,3),o===a)n[o].apply(this,r,t.outputRenderSurface,e);else{let l=t.inputTexture,c=Mt.getOptimalTexture(s.width,s.height,l.source._resolution,!1),h=c;for(let u=o;u<a;u++){let d=n[u];if(!d.enabled)continue;d.apply(this,l,h,!0);let f=l;l=h,h=f}n[a].apply(this,l,t.outputRenderSurface,e),Mt.returnTexture(c)}}_calculateFilterBounds(t,e,r,s,n){let o=this.renderer,a=t.bounds,l=t.filters,c=1/0,h=0,u=!0,d=!1,f=!1,m=!0,g=-1,_=-1;for(let x=0;x<l.length;x++){let b=l[x];if(!b.enabled)continue;if(g===-1&&(g=x),_=x,c=Math.min(c,b.resolution==="inherit"?s:b.resolution),h+=b.padding,b.antialias==="off"?u=!1:b.antialias==="inherit"&&u&&(u=r),b.clipToViewport||(m=!1),!!!(b.compatibleRenderers&o.type)){f=!1;break}if(b.blendRequired&&!(o.backBuffer?.useBackBuffer??!0)){L("Blend filter requires backBuffer on WebGL renderer to be enabled. Set `useBackBuffer: true` in the renderer options."),f=!1;break}f=!0,d||(d=b.blendRequired)}if(!f){t.skip=!0;return}if(m&&a.fitBounds(0,e.width/s,0,e.height/s),a.scale(c).ceil().scale(1/c).pad((h|0)*n),!a.isPositive){t.skip=!0;return}t.antialias=u,t.resolution=c,t.blendRequired=d,t.firstEnabledIndex=g,t.lastEnabledIndex=_}_popFilterData(){return this._filterStackIndex--,this._filterStack[this._filterStackIndex]}_getPreviousFilterData(){let t,e=this._filterStackIndex-1;for(;e>0&&(e--,t=this._filterStack[e],!!t.skip););return t}_pushFilterData(){let t=this._filterStack[this._filterStackIndex];return t||(t=this._filterStack[this._filterStackIndex]=new hh),this._filterStackIndex++,t}};Ls.extension={type:[y.WebGLSystem,y.WebGPUSystem],name:"filter"}});var uh=p(()=>{P();vm();Sm();fg();z.add(Ls,Gs);z.add(Fs)});var OS={};var pg=p(()=>{Rp();Bp();Up();No();Yo();uh()});var NS={};var gg=p(()=>{No();Yo();uh()});async function _g(i){if(!i)for(let t=0;t<dh.length;t++){let e=dh[t];if(e.value.test()){await e.value.load();return}}}var dh,yg=p(()=>{P();dh=[];z.handleByNamedList(y.Environment,dh)});function ca(){if(typeof Os=="boolean")return Os;try{Os=new Function("param1","param2","param3","return param1[param2] === param3;")({a:"b"},"a","b")===!0}catch{Os=!1}return Os}var Os,fh=p(()=>{"use strict"});function pa(i,t,e=2){let r=t&&t.length,s=r?t[0]*e:i.length;Ws.size&&Ws.clear();let n=Tg(i,0,s,e,!0),o=[];if(!n||n.next===n.prev)return o;let a=0,l=0,c=0;if(r&&(n=jS(i,t,n,e)),i.length>80*e){a=i[0],l=i[1];let h=a,u=l;for(let d=e;d<s;d+=e){let f=i[d],m=i[d+1];f<a&&(a=f),m<l&&(l=m),f>h&&(h=f),m>u&&(u=m)}c=Math.max(h-a,u-l),c=c!==0?32767/c:0}return mh(n,o,a,l,c),o}function Tg(i,t,e,r,s){let n=null;if(s===sT(i,t,e,r)>0)for(let o=t;o<e;o+=r)n=Sg(o/r|0,i[o],i[o+1],n);else for(let o=e-r;o>=t;o-=r)n=Sg(o/r|0,i[o],i[o+1],n);return n&&Vs(n,n.next)&&(Xs(n),n=n.next),n}function Wr(i,t=i){let e=t===i,r=i,s;do s=!1,r!==r.next&&(Ws.size===0||!Ws.has(r))&&(Vs(r,r.next)||Nt(r.prev,r,r.next)===0)?((e||r===t)&&(t=r.prev),ph=!0,Xs(r),r=r.prev,s=!0):(e||r!==t)&&(r=r.next,s=!e);while(s||r!==t);return t}function mh(i,t,e,r,s){s&&QS(i,e,r,s);let n=i,o=!1;for(;i.prev!==i.next;){let a=i.prev,l=i.next;if(Nt(a,i,l)<0&&(s?HS(i,e,r,s):zS(i))){t.push(a.i,i.i,l.i),Xs(i),i=l,n=l;continue}if(i=l,i===n){if(ph=!1,i=Wr(i),ph){n=i;continue}if(!o){i=WS(i,t),n=i,o=!0;continue}VS(i,t,e,r,s);break}}}function zS(i){let t=i.prev,e=i,r=i.next,s=t.x,n=e.x,o=r.x,a=t.y,l=e.y,c=r.y,h=Math.min(s,n,o),u=Math.min(a,l,c),d=Math.max(s,n,o),f=Math.max(a,l,c),m=r.next;for(;m!==t;){if(m.x>=h&&m.x<=d&&m.y>=u&&m.y<=f&&!(s===m.x&&a===m.y)&&fa(s,a,n,l,o,c,m.x,m.y)&&Nt(m.prev,m,m.next)>=0)return!1;m=m.next}return!0}function HS(i,t,e,r){let s=i.prev,n=i,o=i.next,a=s.x,l=n.x,c=o.x,h=s.y,u=n.y,d=o.y,f=Math.min(a,l,c),m=Math.min(h,u,d),g=Math.max(a,l,c),_=Math.max(h,u,d),x=yh(f,m,t,e,r),b=yh(g,_,t,e,r),v=i.prevZ;for(;v&&v.z>=x;){if(v.x>=f&&v.x<=g&&v.y>=m&&v.y<=_&&v!==o&&!(a===v.x&&h===v.y)&&fa(a,h,l,u,c,d,v.x,v.y)&&Nt(v.prev,v,v.next)>=0)return!1;v=v.prevZ}let S=i.nextZ;for(;S&&S.z<=b;){if(S.x>=f&&S.x<=g&&S.y>=m&&S.y<=_&&S!==o&&!(a===S.x&&h===S.y)&&fa(a,h,l,u,c,d,S.x,S.y)&&Nt(S.prev,S,S.next)>=0)return!1;S=S.nextZ}return!0}function WS(i,t){let e=i,r=!1;do{let s=e.prev,n=e.next.next;Eg(s,e,e.next,n,!1)&&js(s,n)&&js(n,s)&&(t.push(s.i,e.i,n.i),Xs(e),Xs(e.next),e=i=n,r=!0),e=e.next}while(e!==i);return r?Wr(e):e}function VS(i,t,e,r,s){let n=i;do{let o=n.next.next;for(;o!==n.prev;){if(n.i!==o.i&&eT(n,o)){let a=Pg(n,o);n=Wr(n,n.next),a=Wr(a,a.next),mh(n,t,e,r,s),mh(a,t,e,r,s);return}o=o.next}n=n.next}while(n!==i)}function jS(i,t,e,r){let s=[];for(let n=0,o=t.length;n<o;n++){let a=t[n]*r,l=n<o-1?t[n+1]*r:i.length,c=Tg(i,a,l,r,!1);c===c.next&&Ws.add(c),s.push(tT(c))}s.sort(XS),$S(i.length/r,t.length),Cg(e,e),gh=!0;for(let n=0;n<s.length;n++)e=YS(s[n],e);return gh=!1,Wr(e)}function XS(i,t){return i.x-t.x||i.y-t.y||(i.next.y-i.y)/(i.next.x-i.x)-(t.next.y-t.y)/(t.next.x-t.x)}function YS(i,t){let e=KS(i,t);if(!e)return t;let r=Pg(e,i),s=r.next;return Cg(e,s.next),Wr(r,r.next),Wr(e,e.next)}function $S(i,t){let e=Math.ceil((i+2*t)/wg)+t+2;Rt.length<e*4&&(Rt=new Float64Array(e*4)),da=0}function Cg(i,t){let e=i;do{let r=da++;xh[r]=e;let s=1/0,n=1/0,o=-1/0,a=-1/0,l=0;do{let h=e.next;e.z=r,e.x<s&&(s=e.x),e.x>o&&(o=e.x),e.y<n&&(n=e.y),e.y>a&&(a=e.y),h.x<s&&(s=h.x),h.x>o&&(o=h.x),h.y<n&&(n=h.y),h.y>a&&(a=h.y),e=h}while(++l<wg&&e!==t);_h[r]=e;let c=r*4;Rt[c]=s,Rt[c+1]=n,Rt[c+2]=o,Rt[c+3]=a}while(e!==t)}function qS(i,t){let e=i.z*4;t.x<Rt[e]&&(Rt[e]=t.x),t.y<Rt[e+1]&&(Rt[e+1]=t.y),t.x>Rt[e+2]&&(Rt[e+2]=t.x),t.y>Rt[e+3]&&(Rt[e+3]=t.y)}function bg(i){let t=_h[i];for(;t.prev.next!==t;)t=t.next;return _h[i]=t,t}function vg(i){let t=xh[i];for(;t.prev.next!==t;)t=t.next;return xh[i]=t,t}function KS(i,t){let e=t,r=i.x,s=i.y,n=-1/0,o;if(Vs(i,e))return e;for(let d=0,f=0;d<da;d++,f+=4){if(s<Rt[f+1]||s>Rt[f+3]||Rt[f]>r||Rt[f+2]<=n)continue;let m=bg(d);e=vg(d);do{if(e.prev.next===e){if(Vs(i,e.next))return e.next;if(s<=e.y&&s>=e.next.y&&e.next.y!==e.y){let g=e.x+(s-e.y)*(e.next.x-e.x)/(e.next.y-e.y);if(g<=r&&g>n&&(n=g,o=e.x<e.next.x?e:e.next,g===r))return o}}e=e.next}while(e!==m)}if(!o)return null;let a=o.x,l=o.y,c=Math.min(s,l),h=Math.max(s,l),u=1/0;for(let d=0,f=0;d<da;d++,f+=4){if(Rt[f+2]<a||Rt[f]>r||Rt[f+3]<c||Rt[f+1]>h)continue;let m=bg(d);e=vg(d);do{if(e.prev.next===e&&r>=e.x&&e.x>=a&&r!==e.x&&fa(s<l?r:n,s,a,l,s<l?n:r,s,e.x,e.y)){let g=Math.abs(s-e.y)/(r-e.x);(js(e,i)||e.y===s&&e.next.y===s&&e.next.x>r)&&(g<u||g===u&&(e.x>o.x||e.x===o.x&&ZS(o,e)))&&(o=e,u=g)}e=e.next}while(e!==m)}return o}function ZS(i,t){return Nt(i.prev,i,t.prev)<0&&Nt(t.next,i,i.next)<0}function QS(i,t,e,r){let s=i,n=0;do s.z=yh(s.x,s.y,t,e,r),Se[n++]=s,s=s.next;while(s!==i);JS(n);let o=null;for(let a=0;a<n;a++){let l=Se[a];l.prevZ=o,o&&(o.nextZ=l),o=l}o.nextZ=null}function JS(i){if(i<=32){for(let t=1;t<i;t++){let e=Se[t],r=e.z,s=t-1;for(;s>=0&&Se[s].z>r;)Se[s+1]=Se[s],s--;Se[s+1]=e}return}Hr.length<i&&(Hr=new Uint32Array(i),zs=new Uint32Array(i),Ns=new Array(i));for(let t=0;t<i;t++)Hr[t]=Se[t].z;ha(i,Se,Hr,Ns,zs,0),ha(i,Ns,zs,Se,Hr,8),ha(i,Se,Hr,Ns,zs,16),ha(i,Ns,zs,Se,Hr,24)}function ha(i,t,e,r,s,n){Hs.fill(0);for(let a=0;a<i;a++)Hs[e[a]>>>n&255]++;let o=0;for(let a=0;a<256;a++){let l=Hs[a];Hs[a]=o,o+=l}for(let a=0;a<i;a++){let l=e[a],c=Hs[l>>>n&255]++;r[c]=t[a],s[c]=l}}function yh(i,t,e,r,s){return i=(i-e)*s|0,t=(t-r)*s|0,i=(i|i<<8)&16711935,i=(i|i<<4)&252645135,i=(i|i<<2)&858993459,i=(i|i<<1)&1431655765,t=(t|t<<8)&16711935,t=(t|t<<4)&252645135,t=(t|t<<2)&858993459,t=(t|t<<1)&1431655765,i|t<<1}function tT(i){let t=i,e=i;do(t.x<e.x||t.x===e.x&&t.y<e.y)&&(e=t),t=t.next;while(t!==i);return e}function fa(i,t,e,r,s,n,o,a){return(s-o)*(t-a)>=(i-o)*(n-a)&&(i-o)*(r-a)>=(e-o)*(t-a)&&(e-o)*(n-a)>=(s-o)*(r-a)}function eT(i,t){let e=Vs(i,t)&&Nt(i.prev,i,i.next)>0&&Nt(t.prev,t,t.next)>0;return i.next.i!==t.i&&(e||js(i,t)&&js(t,i)&&(Nt(i.prev,i,t.prev)!==0||Nt(i,t.prev,t)!==0))&&!rT(i,t)&&(e||iT(i,t))}function Nt(i,t,e){return(t.y-i.y)*(e.x-t.x)-(t.x-i.x)*(e.y-t.y)}function Vs(i,t){return i.x===t.x&&i.y===t.y}function Eg(i,t,e,r,s=!0){let n=Nt(i,t,e),o=Nt(i,t,r),a=Nt(e,r,i),l=Nt(e,r,t);return(n>0&&o<0||n<0&&o>0)&&(a>0&&l<0||a<0&&l>0)?!0:s?!!(n===0&&ua(i,e,t)||o===0&&ua(i,r,t)||a===0&&ua(e,i,r)||l===0&&ua(e,t,r)):!1}function ua(i,t,e){return t.x<=Math.max(i.x,e.x)&&t.x>=Math.min(i.x,e.x)&&t.y<=Math.max(i.y,e.y)&&t.y>=Math.min(i.y,e.y)}function rT(i,t){let e=Math.min(i.x,t.x),r=Math.max(i.x,t.x),s=Math.min(i.y,t.y),n=Math.max(i.y,t.y),o=i;do{let a=o.next;if(o.x>r&&a.x>r||o.x<e&&a.x<e||o.y>n&&a.y>n||o.y<s&&a.y<s){o=a;continue}if(o.i!==i.i&&a.i!==i.i&&o.i!==t.i&&a.i!==t.i&&Eg(o,a,i,t))return!0;o=a}while(o!==i);return!1}function js(i,t){return Nt(i.prev,i,i.next)<0?Nt(i,t,i.next)>=0&&Nt(i,i.prev,t)>=0:Nt(i,t,i.prev)<0||Nt(i,i.next,t)<0}function iT(i,t){let e=i,r=!1,s=(i.x+t.x)/2,n=(i.y+t.y)/2;do{let o=e.next;e.y>n!=o.y>n&&s<(o.x-e.x)*(n-e.y)/(o.y-e.y)+e.x&&(r=!r),e=o}while(e!==i);return r}function Pg(i,t){let e=bh(i.i,i.x,i.y),r=bh(t.i,t.x,t.y),s=i.next,n=t.prev;return i.next=t,t.prev=i,e.next=s,s.prev=e,r.next=e,e.prev=r,n.next=r,r.prev=n,r}function Sg(i,t,e,r){let s=bh(i,t,e);return r?(s.next=r.next,s.prev=r,r.next.prev=s,r.next=s):(s.prev=s,s.next=s),s}function Xs(i){i.next.prev=i.prev,i.prev.next=i.next,i.prevZ&&(i.prevZ.nextZ=i.nextZ),i.nextZ&&(i.nextZ.prevZ=i.prevZ),gh&&qS(i.prev,i.next)}function bh(i,t,e){return{i,x:t,y:e,prev:null,next:null,z:0,prevZ:null,nextZ:null}}function sT(i,t,e,r){let s=0;for(let n=t,o=e-r;n<e;n+=r)s+=(i[o]-i[n])*(i[n+1]+i[o+1]),o=n;return s}var Ws,ph,gh,wg,Rt,da,xh,_h,Se,Ns,Hr,zs,Hs,Mg=p(()=>{Ws=new Set,ph=!1;gh=!1;wg=16,Rt=new Float64Array(0),da=0,xh=[],_h=[];Se=[],Ns=[],Hr=new Uint32Array(0),zs=new Uint32Array(0),Hs=new Uint32Array(256)});var Ag,Rg=p(()=>{Mg();Ht();Ag=pa.default||pa});var Et,Bi=p(()=>{"use strict";Et=(i=>(i[i.NONE=0]="NONE",i[i.COLOR=16384]="COLOR",i[i.STENCIL=1024]="STENCIL",i[i.DEPTH=256]="DEPTH",i[i.COLOR_DEPTH=16640]="COLOR_DEPTH",i[i.COLOR_STENCIL=17408]="COLOR_STENCIL",i[i.DEPTH_STENCIL=1280]="DEPTH_STENCIL",i[i.ALL=17664]="ALL",i))(Et||{})});var Ii,vh=p(()=>{"use strict";Ii=class{constructor(t){this.items=[],this._name=t}emit(t,e,r,s,n,o,a,l){let{name:c,items:h}=this;for(let u=0,d=h.length;u<d;u++)h[u][c](t,e,r,s,n,o,a,l);return this}add(t){return t[this._name]&&(this.remove(t),this.items.push(t)),this}remove(t){let e=this.items.indexOf(t);return e!==-1&&this.items.splice(e,1),this}contains(t){return this.items.indexOf(t)!==-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 nT,kg,Te,Vr=p(()=>{Qt();yg();Pe();fh();Ft();yt();Pr();Bi();vh();Ht();nT=["init","destroy","contextChange","resolutionChange","resetState","renderEnd","renderStart","render","update","postrender","prerender"],kg=class Bg extends ut{constructor(t){super(),this.tick=0,this.uid=$("renderer"),this.runners=Object.create(null),this.renderPipes=Object.create(null),this._initOptions={},this._systemsHash=Object.create(null),this.type=t.type,this.name=t.name,this.config=t;let e=[...nT,...this.config.runners??[]];this._addRunners(...e),this._unsafeEvalCheck()}async init(t={}){let e=t.skipExtensionImports===!0?!0:t.manageImports===!1;await _g(e),this._addSystems(this.config.systems),this._addPipes(this.config.renderPipes,this.config.renderPipeAdaptors);for(let r in this._systemsHash)t={...this._systemsHash[r].constructor.defaultOptions,...t};t={...Bg.defaultOptions,...t},this._roundPixels=t.roundPixels?1:0;for(let r=0;r<this.runners.init.items.length;r++)await this.runners.init.items[r].init(t);this._initOptions=t}render(t,e){this.tick++;let r=t;if(r instanceof mt&&(r={container:r},e&&(O(rt,"passing a second argument is deprecated, please use render options instead"),r.target=e.renderTexture)),r.target||(r.target=this.view.renderTarget),r.target===this.view.renderTarget&&(this._lastObjectRendered=r.container,r.clearColor??(r.clearColor=this.background.colorRgba),r.clear??(r.clear=this.background.clearBeforeRender)),r.clearColor){let s=Array.isArray(r.clearColor)&&r.clearColor.length===4;r.clearColor=s?r.clearColor:Q.shared.setValue(r.clearColor).toArray()}r.transform||(r.container.updateLocalTransform(),r.transform=r.container.localTransform),r.container.visible&&(r.container.enableRenderGroup(),this.runners.prerender.emit(r),this.runners.renderStart.emit(r),this.runners.render.emit(r),this.runners.renderEnd.emit(r),this.runners.postrender.emit(r))}resize(t,e,r){let s=this.view.resolution;this.view.resize(t,e,r),this.emit("resize",this.view.screen.width,this.view.screen.height,this.view.resolution),r!==void 0&&r!==s&&this.runners.resolutionChange.emit(r)}clear(t={}){let e=this;t.target||(t.target=e.renderTarget.renderTarget),t.clearColor||(t.clearColor=this.background.colorRgba),t.clear??(t.clear=Et.ALL);let{clear:r,clearColor:s,target:n,mipLevel:o,layer:a}=t;Q.shared.setValue(s??this.background.colorRgba),e.renderTarget.clear(n,r,Q.shared.toArray(),o??0,a??0)}get resolution(){return this.view.resolution}set resolution(t){this.view.resolution=t,this.runners.resolutionChange.emit(t)}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(...t){t.forEach(e=>{this.runners[e]=new Ii(e)})}_addSystems(t){let e;for(e in t){let r=t[e];this._addSystem(r.value,r.name)}}_addSystem(t,e){let r=new t(this);if(this[e])throw new Error(`Whoops! The name "${e}" is already in use`);this[e]=r,this._systemsHash[e]=r;for(let s in this.runners)this.runners[s].add(r);return this}_addPipes(t,e){let r=e.reduce((s,n)=>(s[n.name]=n.value,s),{});t.forEach(s=>{let n=s.value,o=s.name,a=r[o];this.renderPipes[o]=new n(this,a?new a:null),this.runners.destroy.add(this.renderPipes[o])})}destroy(t=!1){this.runners.destroy.items.reverse(),this.runners.destroy.emit(t),(t===!0||typeof t=="object"&&t.releaseGlobalResources)&&ye.release(),Object.values(this.runners).forEach(e=>{e.destroy()}),this._systemsHash=null,this.renderPipes=null,this.removeAllListeners()}generateTexture(t){return this.textureGenerator.generateTexture(t)}get roundPixels(){return!!this._roundPixels}_unsafeEvalCheck(){if(!ca())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()}};kg.defaultOptions={resolution:1,failIfMajorPerformanceCaveat:!1,roundPixels:!1};Te=kg});function Gi(i,t,e){let r=2166136261;for(let s=0;s<t;s++)r^=i[s].uid,r=Math.imul(r,16777619),r>>>=0;return Fg[r]||oT(i,t,r,e)}function oT(i,t,e,r){let s={},n=0;for(let a=0;a<r;a++){let l=a<t?i[a]:F.EMPTY.source;s[n++]=l.source,s[n++]=l.style}let o=new Vt(s);return Fg[e]=o,o}var Fg,xa=p(()=>{mr();gt();Fg={}});function Sh(i,t,e){if(i)for(let r in i){let s=r.toLocaleLowerCase(),n=t[s];if(n){let o=i[r];r==="header"&&(o=o.replace(/@in\s+[^;]+;\s*/g,"").replace(/@out\s+[^;]+;\s*/g,"")),e&&n.push(`//----${e}----//`),n.push(o)}else L(`${r} placement hook does not exist in shader`)}}var Ug=p(()=>{ht()});function Th(i){let t={};return(i.match(aT)?.map(r=>r.replace(/[{()}]/g,""))??[]).forEach(r=>{t[r]=[]}),t}var aT,Dg=p(()=>{"use strict";aT=/\{\{(.*?)\}\}/g});function Lg(i,t){let e,r=/@in\s+([^;]+);/g;for(;(e=r.exec(i))!==null;)t.push(e[1])}function wh(i,t,e=!1){let r=[];Lg(t,r),i.forEach(a=>{a.header&&Lg(a.header,r)});let s=r;e&&s.sort();let n=s.map((a,l)=>` @location(${l}) ${a},`).join(`
118
118
  `),o=t.replace(/@in\s+[^;]+;\s*/g,"");return o=o.replace("{{in}}",`
119
119
  ${n}
120
- `),o}var Dg=p(()=>{"use strict"});function Lg(i,t){let e,r=/@out\s+([^;]+);/g;for(;(e=r.exec(i))!==null;)t.push(e[1])}function nT(i){let e=/\b(\w+)\s*:/g.exec(i);return e?e[1]:""}function oT(i){let t=/@.*?\s+/g;return i.replace(t,"")}function Og(i,t){let e=[];Lg(t,e),i.forEach(l=>{l.header&&Lg(l.header,e)});let r=0,s=e.sort().map(l=>l.indexOf("builtin")>-1?l:`@location(${r++}) ${l}`).join(`,
121
- `),n=e.sort().map(l=>` var ${oT(l)};`).join(`
120
+ `),o}var Og=p(()=>{"use strict"});function Ng(i,t){let e,r=/@out\s+([^;]+);/g;for(;(e=r.exec(i))!==null;)t.push(e[1])}function lT(i){let e=/\b(\w+)\s*:/g.exec(i);return e?e[1]:""}function cT(i){let t=/@.*?\s+/g;return i.replace(t,"")}function zg(i,t){let e=[];Ng(t,e),i.forEach(l=>{l.header&&Ng(l.header,e)});let r=0,s=e.sort().map(l=>l.indexOf("builtin")>-1?l:`@location(${r++}) ${l}`).join(`,
121
+ `),n=e.sort().map(l=>` var ${cT(l)};`).join(`
122
122
  `),o=`return VSOutput(
123
- ${e.sort().map(l=>` ${nT(l)}`).join(`,
123
+ ${e.sort().map(l=>` ${lT(l)}`).join(`,
124
124
  `)});`,a=t.replace(/@out\s+[^;]+;\s*/g,"");return a=a.replace("{{struct}}",`
125
125
  ${s}
126
126
  `),a=a.replace("{{start}}",`
127
127
  ${n}
128
128
  `),a=a.replace("{{return}}",`
129
129
  ${o}
130
- `),a}var Ng=p(()=>{"use strict"});function Ch(i,t){let e=i;for(let r in t){let s=t[r];s.join(`
130
+ `),a}var Hg=p(()=>{"use strict"});function Ch(i,t){let e=i;for(let r in t){let s=t[r];s.join(`
131
131
  `).length?e=e.replace(`{{${r}}}`,`//-----${r} START-----//
132
132
  ${s.join(`
133
133
  `)}
134
- //----${r} FINISH----//`):e=e.replace(`{{${r}}}`,"")}return e}var zg=p(()=>{"use strict"});function Hg({template:i,bits:t}){let e=Vg(i,t);if(_r[e])return _r[e];let{vertex:r,fragment:s}=lT(i,t);return _r[e]=jg(r,s,t),_r[e]}function Wg({template:i,bits:t}){let e=Vg(i,t);return _r[e]||(_r[e]=jg(i.vertex,i.fragment,t)),_r[e]}function lT(i,t){let e=t.map(o=>o.vertex).filter(o=>!!o),r=t.map(o=>o.fragment).filter(o=>!!o),s=wh(e,i.vertex,!0);s=Og(e,s);let n=wh(r,i.fragment,!0);return{vertex:s,fragment:n}}function Vg(i,t){return t.map(e=>(Eh.has(e)||Eh.set(e,aT++),Eh.get(e))).sort((e,r)=>e-r).join("-")+i.vertex+i.fragment}function jg(i,t,e){let r=Th(i),s=Th(t);return e.forEach(n=>{Sh(n.vertex,r,n.name),Sh(n.fragment,s,n.name)}),{vertex:Ch(i,r),fragment:Ch(t,s)}}var _r,Eh,aT,Xg=p(()=>{Gg();Fg();Dg();Ng();zg();_r=Object.create(null),Eh=new Map,aT=0});var Yg,$g,qg,Kg,Zg=p(()=>{"use strict";Yg=`
134
+ //----${r} FINISH----//`):e=e.replace(`{{${r}}}`,"")}return e}var Wg=p(()=>{"use strict"});function Vg({template:i,bits:t}){let e=Xg(i,t);if(_r[e])return _r[e];let{vertex:r,fragment:s}=uT(i,t);return _r[e]=Yg(r,s,t),_r[e]}function jg({template:i,bits:t}){let e=Xg(i,t);return _r[e]||(_r[e]=Yg(i.vertex,i.fragment,t)),_r[e]}function uT(i,t){let e=t.map(o=>o.vertex).filter(o=>!!o),r=t.map(o=>o.fragment).filter(o=>!!o),s=wh(e,i.vertex,!0);s=zg(e,s);let n=wh(r,i.fragment,!0);return{vertex:s,fragment:n}}function Xg(i,t){return t.map(e=>(Eh.has(e)||Eh.set(e,hT++),Eh.get(e))).sort((e,r)=>e-r).join("-")+i.vertex+i.fragment}function Yg(i,t,e){let r=Th(i),s=Th(t);return e.forEach(n=>{Sh(n.vertex,r,n.name),Sh(n.fragment,s,n.name)}),{vertex:Ch(i,r),fragment:Ch(t,s)}}var _r,Eh,hT,$g=p(()=>{Ug();Dg();Og();Hg();Wg();_r=Object.create(null),Eh=new Map,hT=0});var qg,Kg,Zg,Qg,Jg=p(()=>{"use strict";qg=`
135
135
  @in aPosition: vec2<f32>;
136
136
  @in aUV: vec2<f32>;
137
137
 
@@ -175,7 +175,7 @@ ${s.join(`
175
175
 
176
176
  {{return}}
177
177
  };
178
- `,$g=`
178
+ `,Kg=`
179
179
  @in vUV : vec2<f32>;
180
180
  @in vColor : vec4<f32>;
181
181
 
@@ -198,7 +198,7 @@ ${s.join(`
198
198
 
199
199
  return finalColor;
200
200
  };
201
- `,qg=`
201
+ `,Zg=`
202
202
  in vec2 aPosition;
203
203
  in vec2 aUV;
204
204
 
@@ -234,7 +234,7 @@ ${s.join(`
234
234
 
235
235
  {{end}}
236
236
  }
237
- `,Kg=`
237
+ `,Qg=`
238
238
 
239
239
  in vec4 vColor;
240
240
  in vec2 vUV;
@@ -255,7 +255,7 @@ ${s.join(`
255
255
 
256
256
  {{end}}
257
257
  }
258
- `});var Qg,Jg,tx=p(()=>{"use strict";Qg={name:"global-uniforms-bit",vertex:{header:`
258
+ `});var tx,ex,rx=p(()=>{"use strict";tx={name:"global-uniforms-bit",vertex:{header:`
259
259
  struct GlobalUniforms {
260
260
  uProjectionMatrix:mat3x3<f32>,
261
261
  uWorldTransformMatrix:mat3x3<f32>,
@@ -264,22 +264,22 @@ ${s.join(`
264
264
  }
265
265
 
266
266
  @group(0) @binding(0) var<uniform> globalUniforms : GlobalUniforms;
267
- `}},Jg={name:"global-uniforms-bit",vertex:{header:`
267
+ `}},ex={name:"global-uniforms-bit",vertex:{header:`
268
268
  uniform mat3 uProjectionMatrix;
269
269
  uniform mat3 uWorldTransformMatrix;
270
270
  uniform vec4 uWorldColorAlpha;
271
271
  uniform vec2 uResolution;
272
- `}}});function Gi({bits:i,name:t}){let e=Hg({template:{fragment:$g,vertex:Yg},bits:[Qg,...i]});return ve.from({name:t,vertex:{source:e.vertex,entryPoint:"main"},fragment:{source:e.fragment,entryPoint:"main"}})}function Fi({bits:i,name:t}){return new be({name:t,...Wg({template:{vertex:qg,fragment:Kg},bits:[Jg,...i]})})}var Ui=p(()=>{Nr();Ai();Xg();Zg();tx()});var xa,_a,ya=p(()=>{"use strict";xa={name:"color-bit",vertex:{header:`
272
+ `}}});function Fi({bits:i,name:t}){let e=Vg({template:{fragment:Kg,vertex:qg},bits:[tx,...i]});return ve.from({name:t,vertex:{source:e.vertex,entryPoint:"main"},fragment:{source:e.fragment,entryPoint:"main"}})}function Ui({bits:i,name:t}){return new be({name:t,...jg({template:{vertex:Zg,fragment:Qg},bits:[ex,...i]})})}var Di=p(()=>{Nr();Ri();$g();Jg();rx()});var _a,ya,ba=p(()=>{"use strict";_a={name:"color-bit",vertex:{header:`
273
273
  @in aColor: vec4<f32>;
274
274
  `,main:`
275
275
  vColor *= vec4<f32>(aColor.rgb * aColor.a, aColor.a);
276
- `}},_a={name:"color-bit",vertex:{header:`
276
+ `}},ya={name:"color-bit",vertex:{header:`
277
277
  in vec4 aColor;
278
278
  `,main:`
279
279
  vColor *= vec4(aColor.rgb * aColor.a, aColor.a);
280
- `}}});function cT(i){let t=[];if(i===1)t.push("@group(1) @binding(0) var textureSource1: texture_2d<f32>;"),t.push("@group(1) @binding(1) var textureSampler1: sampler;");else{let e=0;for(let r=0;r<i;r++)t.push(`@group(1) @binding(${e++}) var textureSource${r+1}: texture_2d<f32>;`),t.push(`@group(1) @binding(${e++}) var textureSampler${r+1}: sampler;`)}return t.join(`
281
- `)}function hT(i){let t=[];if(i===1)t.push("outColor = textureSampleGrad(textureSource1, textureSampler1, vUV, uvDx, uvDy);");else{t.push("switch vTextureId {");for(let e=0;e<i;e++)e===i-1?t.push(" default:{"):t.push(` case ${e}:{`),t.push(` outColor = textureSampleGrad(textureSource${e+1}, textureSampler${e+1}, vUV, uvDx, uvDy);`),t.push(" break;}");t.push("}")}return t.join(`
282
- `)}function ba(i){return Ph[i]||(Ph[i]={name:"texture-batch-bit",vertex:{header:`
280
+ `}}});function dT(i){let t=[];if(i===1)t.push("@group(1) @binding(0) var textureSource1: texture_2d<f32>;"),t.push("@group(1) @binding(1) var textureSampler1: sampler;");else{let e=0;for(let r=0;r<i;r++)t.push(`@group(1) @binding(${e++}) var textureSource${r+1}: texture_2d<f32>;`),t.push(`@group(1) @binding(${e++}) var textureSampler${r+1}: sampler;`)}return t.join(`
281
+ `)}function fT(i){let t=[];if(i===1)t.push("outColor = textureSampleGrad(textureSource1, textureSampler1, vUV, uvDx, uvDy);");else{t.push("switch vTextureId {");for(let e=0;e<i;e++)e===i-1?t.push(" default:{"):t.push(` case ${e}:{`),t.push(` outColor = textureSampleGrad(textureSource${e+1}, textureSampler${e+1}, vUV, uvDx, uvDy);`),t.push(" break;}");t.push("}")}return t.join(`
282
+ `)}function va(i){return Ph[i]||(Ph[i]={name:"texture-batch-bit",vertex:{header:`
283
283
  @in aTextureIdAndRound: vec2<u32>;
284
284
  @out @interpolate(flat) vTextureId : u32;
285
285
  `,main:`
@@ -292,14 +292,14 @@ ${s.join(`
292
292
  `},fragment:{header:`
293
293
  @in @interpolate(flat) vTextureId: u32;
294
294
 
295
- ${cT(i)}
295
+ ${dT(i)}
296
296
  `,main:`
297
297
  var uvDx = dpdx(vUV);
298
298
  var uvDy = dpdy(vUV);
299
299
 
300
- ${hT(i)}
301
- `}}),Ph[i]}function uT(i){let t=[];for(let e=0;e<i;e++)e>0&&t.push("else"),e<i-1&&t.push(`if(vTextureId < ${e}.5)`),t.push("{"),t.push(` outColor = texture(uTextures[${e}], vUV);`),t.push("}");return t.join(`
302
- `)}function va(i){return Mh[i]||(Mh[i]={name:"texture-batch-bit",vertex:{header:`
300
+ ${fT(i)}
301
+ `}}),Ph[i]}function pT(i){let t=[];for(let e=0;e<i;e++)e>0&&t.push("else"),e<i-1&&t.push(`if(vTextureId < ${e}.5)`),t.push("{"),t.push(` outColor = texture(uTextures[${e}], vUV);`),t.push("}");return t.join(`
302
+ `)}function Sa(i){return Mh[i]||(Mh[i]={name:"texture-batch-bit",vertex:{header:`
303
303
  in vec2 aTextureIdAndRound;
304
304
  out float vTextureId;
305
305
 
@@ -317,8 +317,8 @@ ${s.join(`
317
317
 
318
318
  `,main:`
319
319
 
320
- ${uT(i)}
321
- `}}),Mh[i]}var Ph,Mh,Sa=p(()=>{"use strict";Ph={};Mh={}});var Xs,ex,Ta,Ys=p(()=>{"use strict";Xs={name:"local-uniform-bit",vertex:{header:`
320
+ ${pT(i)}
321
+ `}}),Mh[i]}var Ph,Mh,Ta=p(()=>{"use strict";Ph={};Mh={}});var Ys,ix,wa,$s=p(()=>{"use strict";Ys={name:"local-uniform-bit",vertex:{header:`
322
322
 
323
323
  struct LocalUniforms {
324
324
  uTransformMatrix:mat3x3<f32>,
@@ -335,7 +335,7 @@ ${s.join(`
335
335
  {
336
336
  vPosition = vec4(roundPixels(vPosition.xy, globalUniforms.uResolution), vPosition.zw);
337
337
  }
338
- `}},ex={...Xs,vertex:{...Xs.vertex,header:Xs.vertex.header.replace("group(1)","group(2)")}},Ta={name:"local-uniform-bit",vertex:{header:`
338
+ `}},ix={...Ys,vertex:{...Ys.vertex,header:Ys.vertex.header.replace("group(1)","group(2)")}},wa={name:"local-uniform-bit",vertex:{header:`
339
339
 
340
340
  uniform mat3 uTransformMatrix;
341
341
  uniform vec4 uColor;
@@ -348,17 +348,17 @@ ${s.join(`
348
348
  {
349
349
  gl_Position.xy = roundPixels(gl_Position.xy, uResolution);
350
350
  }
351
- `}}});var Di,Li,Oi=p(()=>{"use strict";Di={name:"round-pixels-bit",vertex:{header:`
351
+ `}}});var Li,Oi,Ni=p(()=>{"use strict";Li={name:"round-pixels-bit",vertex:{header:`
352
352
  fn roundPixels(position: vec2<f32>, targetSize: vec2<f32>) -> vec2<f32>
353
353
  {
354
354
  return (floor(((position * 0.5 + 0.5) * targetSize) + 0.5) / targetSize) * 2.0 - 1.0;
355
355
  }
356
- `}},Li={name:"round-pixels-bit",vertex:{header:`
356
+ `}},Oi={name:"round-pixels-bit",vertex:{header:`
357
357
  vec2 roundPixels(vec2 position, vec2 targetSize)
358
358
  {
359
359
  return (floor(((position * 0.5 + 0.5) * targetSize) + 0.5) / targetSize) * 2.0 - 1.0;
360
360
  }
361
- `}}});var $s,rx=p(()=>{P();ot();ga();Ui();ya();Sa();Ys();Oi();gr();me();$s=class{constructor(){this._maxTextures=0}contextChange(t){let e=new Ct({uTransformMatrix:{value:new k,type:"mat3x3<f32>"},uColor:{value:new Float32Array([1,1,1,1]),type:"vec4<f32>"},uRound:{value:0,type:"f32"}});this._maxTextures=t.limits.maxBatchableTextures;let r=Gi({name:"graphics",bits:[xa,ba(this._maxTextures),ex,Di]});this.shader=new te({gpuProgram:r,resources:{localUniforms:e}})}execute(t,e){let r=e.context,s=r.customShader||this.shader,n=t.renderer,o=n.graphicsContext,{batcher:a,instructions:l}=o.getContextRenderData(r),c=n.encoder;c.setGeometry(a.geometry,s.gpuProgram);let h=n.globalUniforms.bindGroup;c.setBindGroup(0,h,s.gpuProgram);let u=n.renderPipes.uniformBatch.getUniformBindGroup(s.resources.localUniforms,!0);c.setBindGroup(2,u,s.gpuProgram);let d=l.instructions,f=null;for(let m=0;m<l.instructionSize;m++){let g=d[m];if(g.topology!==f&&(f=g.topology,c.setPipelineFromGeometryProgramAndState(a.geometry,s.gpuProgram,t.state,g.topology,s._overrides)),s.groups[1]=g.bindGroup,!g.gpuBindGroup){let _=g.textures;g.bindGroup=Ii(_.textures,_.count,this._maxTextures),g.gpuBindGroup=n.bindGroup.getBindGroup(g.bindGroup,s.gpuProgram,1)}c.setBindGroup(1,g.bindGroup,s.gpuProgram),c.renderPassEncoder.drawIndexed(g.size,1,g.start)}}destroy(){this.shader.destroy(!0),this.shader=null}};$s.extension={type:[y.WebGPUPipesAdaptor],name:"graphics"}});var ix,sx,Ah=p(()=>{"use strict";ix={name:"texture-bit",vertex:{header:`
361
+ `}}});var qs,sx=p(()=>{P();ot();xa();Di();ba();Ta();$s();Ni();gr();me();qs=class{constructor(){this._maxTextures=0}contextChange(t){let e=new Ct({uTransformMatrix:{value:new k,type:"mat3x3<f32>"},uColor:{value:new Float32Array([1,1,1,1]),type:"vec4<f32>"},uRound:{value:0,type:"f32"}});this._maxTextures=t.limits.maxBatchableTextures;let r=Fi({name:"graphics",bits:[_a,va(this._maxTextures),ix,Li]});this.shader=new te({gpuProgram:r,resources:{localUniforms:e}})}execute(t,e){let r=e.context,s=r.customShader||this.shader,n=t.renderer,o=n.graphicsContext,{batcher:a,instructions:l}=o.getContextRenderData(r),c=n.encoder;c.setGeometry(a.geometry,s.gpuProgram);let h=n.globalUniforms.bindGroup;c.setBindGroup(0,h,s.gpuProgram);let u=n.renderPipes.uniformBatch.getUniformBindGroup(s.resources.localUniforms,!0);c.setBindGroup(2,u,s.gpuProgram);let d=l.instructions,f=null;for(let m=0;m<l.instructionSize;m++){let g=d[m];if(g.topology!==f&&(f=g.topology,c.setPipelineFromGeometryProgramAndState(a.geometry,s.gpuProgram,t.state,g.topology,s._overrides)),s.groups[1]=g.bindGroup,!g.gpuBindGroup){let _=g.textures;g.bindGroup=Gi(_.textures,_.count,this._maxTextures),g.gpuBindGroup=n.bindGroup.getBindGroup(g.bindGroup,s.gpuProgram,1)}c.setBindGroup(1,g.bindGroup,s.gpuProgram),c.renderPassEncoder.drawIndexed(g.size,1,g.start)}}destroy(){this.shader.destroy(!0),this.shader=null}};qs.extension={type:[y.WebGPUPipesAdaptor],name:"graphics"}});var nx,ox,Ah=p(()=>{"use strict";nx={name:"texture-bit",vertex:{header:`
362
362
 
363
363
  struct TextureUniforms {
364
364
  uTextureMatrix:mat3x3<f32>,
@@ -374,7 +374,7 @@ ${s.join(`
374
374
 
375
375
  `,main:`
376
376
  outColor = textureSample(uTexture, uSampler, vUV);
377
- `}},sx={name:"texture-bit",vertex:{header:`
377
+ `}},ox={name:"texture-bit",vertex:{header:`
378
378
  uniform mat3 uTextureMatrix;
379
379
  `,main:`
380
380
  uv = (uTextureMatrix * vec3(uv, 1.0)).xy;
@@ -384,9 +384,9 @@ ${s.join(`
384
384
 
385
385
  `,main:`
386
386
  outColor = texture(uTexture, vUV);
387
- `}}});var qs,nx=p(()=>{P();ot();Ui();Ys();Oi();Ah();gr();gt();ht();qs=class{init(){let t=Gi({name:"mesh",bits:[Xs,ix,Di]});this._shader=new te({gpuProgram:t,resources:{uTexture:U.EMPTY._source,uSampler:U.EMPTY._source.style,textureUniforms:{uTextureMatrix:{type:"mat3x3<f32>",value:new k}}}})}execute(t,e){let r=t.renderer,s=e._shader;if(!s)s=this._shader,s.groups[2]=r.texture.getTextureBindGroup(e.texture);else if(!s.gpuProgram){L("Mesh shader has no gpuProgram",e.shader);return}let n=s.gpuProgram;if(n.autoAssignGlobalUniforms&&(s.groups[0]=r.globalUniforms.bindGroup),n.autoAssignLocalUniforms){let o=t.localUniforms;s.groups[1]=r.renderPipes.uniformBatch.getUniformBindGroup(o,!0)}r.encoder.draw({geometry:e._geometry,shader:s,state:e.state})}destroy(){this._shader.destroy(!0),this._shader=null}};qs.extension={type:[y.WebGPUPipesAdaptor],name:"mesh"}});var wa,Ks,ox=p(()=>{P();Be();ga();wa=Ot.for2d(),Ks=class{start(t,e,r){let s=t.renderer,n=s.encoder,o=r.gpuProgram;this._shader=r,this._geometry=e,n.setGeometry(e,o),wa.blendMode="normal",s.pipeline.getPipeline(e,o,wa,void 0,r._overrides);let a=s.globalUniforms.bindGroup;n.resetBindGroup(1),n.setBindGroup(0,a,o)}execute(t,e){let r=this._shader.gpuProgram,s=t.renderer,n=s.encoder;if(!e.bindGroup){let l=e.textures;e.bindGroup=Ii(l.textures,l.count,s.limits.maxBatchableTextures)}wa.blendMode=e.blendMode;let o=s.bindGroup.getBindGroup(e.bindGroup,r,1),a=s.pipeline.getPipeline(this._geometry,r,wa,e.topology,this._shader._overrides);e.bindGroup._touch(s.gc.now,s.tick),n.setPipeline(a),n.renderPassEncoder.setBindGroup(1,o),n.renderPassEncoder.drawIndexed(e.size,1,e.start)}};Ks.extension={type:[y.WebGPUPipesAdaptor],name:"batch"}});var jr,Rh=p(()=>{P();jr=class{constructor(t){this._renderer=t}updateRenderable(){}destroyRenderable(){}validateRenderable(){return!1}addRenderable(t,e){this._renderer.renderPipes.batch.break(e),e.add(t)}execute(t){t.isRenderable&&t.render(this._renderer)}destroy(){this._renderer=null}};jr.extension={type:[y.WebGLPipes,y.WebGPUPipes,y.CanvasPipes],name:"customRender"}});var yr,Ca=p(()=>{"use strict";yr=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(){this.reset()}}});function Zs(i,t){let e=i.instructionSet,r=e.instructions;for(let s=0;s<e.instructionSize;s++){let n=r[s];t[n.renderPipeId].execute(n)}}var kh=p(()=>{"use strict"});var Xr,Bh=p(()=>{P();ot();Ke();Ca();kh();Xr=class{constructor(t){this._renderer=t}addRenderGroup(t,e){t.isCachedAsTexture?this._addRenderableCacheAsTexture(t,e):this._addRenderableDirect(t,e)}execute(t){t.isRenderable&&(t.isCachedAsTexture?this._executeCacheAsTexture(t):this._executeDirect(t))}destroy(){this._renderer=null}_addRenderableDirect(t,e){this._renderer.renderPipes.batch.break(e),t._batchableRenderGroup&&(bt.return(t._batchableRenderGroup),t._batchableRenderGroup=null),e.add(t)}_addRenderableCacheAsTexture(t,e){let r=t._batchableRenderGroup??(t._batchableRenderGroup=bt.get(yr));r.renderable=t.root,r.transform=t.root.relativeGroupTransform,r.texture=t.texture,r.bounds=t._textureBounds,e.add(t),this._renderer.renderPipes.blendMode.pushBlendMode(t,t.root.groupBlendMode,e),this._renderer.renderPipes.batch.addToBatch(r,e),this._renderer.renderPipes.blendMode.popBlendMode(e)}_executeCacheAsTexture(t){if(t.textureNeedsUpdate){t.textureNeedsUpdate=!1;let e=new k().translate(-t._textureBounds.x,-t._textureBounds.y);this._renderer.renderTarget.push({target:t.texture,clear:!0,frame:t.texture.frame}),this._renderer.globalUniforms.push({worldTransformMatrix:e,worldColor:4294967295,offset:{x:0,y:0}}),Zs(t,this._renderer.renderPipes),this._renderer.renderTarget.finishRenderPass(),this._renderer.renderTarget.pop(),this._renderer.globalUniforms.pop()}t._batchableRenderGroup._batcher.updateElement(t._batchableRenderGroup),t._batchableRenderGroup._batcher.geometry.buffers[0].update()}_executeDirect(t){this._renderer.globalUniforms.push({worldTransformMatrix:t.inverseParentTextureTransform,worldColor:t.worldColorAlpha}),Zs(t,this._renderer.renderPipes),this._renderer.globalUniforms.pop()}};Xr.extension={type:[y.WebGLPipes,y.WebGPUPipes,y.CanvasPipes],name:"renderGroup"}});function Qs(i,t){t||(t=0);for(let e=t;e<i.length&&i[e];e++)i[e]=null}var Ih=p(()=>{"use strict"});function Gh(i,t=!1){fT(i);let e=i.childrenToUpdate,r=i.updateTick++;for(let s in e){let n=Number(s),o=e[s],a=o.list,l=o.index;for(let c=0;c<l;c++){let h=a[c];h.parentRenderGroup===i&&h.relativeRenderGroupDepth===n&&cx(h,r,0)}Qs(a,l),o.index=0}if(t)for(let s=0;s<i.renderGroupChildren.length;s++)Gh(i.renderGroupChildren[s],t)}function fT(i){let t=i.root,e;if(i.renderGroupParent){let r=i.renderGroupParent;i.worldTransform.appendFrom(t.relativeGroupTransform,r.worldTransform),i.worldColor=xi(t.groupColor,r.worldColor),e=t.groupAlpha*r.worldAlpha}else i.worldTransform.copyFrom(t.localTransform),i.worldColor=t.localColor,e=t.localAlpha;e=e<0?0:e>1?1:e,i.worldAlpha=e,i.worldColorAlpha=i.worldColor+((e*255|0)<<24)}function cx(i,t,e){if(t===i.updateTick)return;i.updateTick=t,i.didChange=!1;let r=i.localTransform;i.updateLocalTransform();let s=i.parent;if(s&&!s.renderGroup?(e|=i._updateFlags,i.relativeGroupTransform.appendFrom(r,s.relativeGroupTransform),e&ax&&lx(i,s,e)):(e=i._updateFlags,i.relativeGroupTransform.copyFrom(r),e&ax&&lx(i,dT,e)),!i.renderGroup){let n=i.children,o=n.length;for(let c=0;c<o;c++)cx(n[c],t,e);let a=i.parentRenderGroup,l=i;l.renderPipeId&&!a.structureDidChange&&a.updateRenderable(l)}}function lx(i,t,e){if(e&bi){i.groupColor=xi(i.localColor,t.groupColor);let r=i.localAlpha*t.groupAlpha;r=r<0?0:r>1?1:r,i.groupAlpha=r,i.groupColorAlpha=i.groupColor+((r*255|0)<<24)}e&vs&&(i.groupBlendMode=i.localBlendMode==="inherit"?t.groupBlendMode:i.localBlendMode),e&Dr&&(i.globalDisplayStatus=i.localDisplayStatus&t.globalDisplayStatus),i._updateFlags=0}var dT,ax,hx=p(()=>{Pe();Ih();rc();dT=new mt,ax=Dr|bi|vs});function ux(i,t){let{list:e}=i.childrenRenderablesToUpdate,r=!1;for(let s=0;s<i.childrenRenderablesToUpdate.index;s++){let n=e[s];if(r=t[n.renderPipeId].validateRenderable(n),r)break}return i.structureDidChange=r,r}var dx=p(()=>{"use strict"});var pT,Js,fx=p(()=>{P();ot();Fr();Ar();ie();Ih();kh();hx();dx();pT=new k,Js=class{constructor(t){this._renderer=t}render({container:t,transform:e}){let r=t.parent,s=t.renderGroup.renderGroupParent;t.parent=null,t.renderGroup.renderGroupParent=null;let n=this._renderer,o=pT;e&&(o.copyFrom(t.renderGroup.localTransform),t.renderGroup.localTransform.copyFrom(e));let a=n.renderPipes;this._updateCachedRenderGroups(t.renderGroup,null),this._updateRenderGroups(t.renderGroup),n.globalUniforms.start({worldTransformMatrix:e?t.renderGroup.localTransform:t.renderGroup.worldTransform,worldColor:t.renderGroup.worldColorAlpha}),Zs(t.renderGroup,a),a.uniformBatch&&a.uniformBatch.renderEnd(),e&&t.renderGroup.localTransform.copyFrom(o),t.parent=r,t.renderGroup.renderGroupParent=s}destroy(){this._renderer=null}_updateCachedRenderGroups(t,e){if(t._parentCacheAsTextureRenderGroup=e,t.isCachedAsTexture){if(!t.textureNeedsUpdate)return;e=t}for(let r=t.renderGroupChildren.length-1;r>=0;r--)this._updateCachedRenderGroups(t.renderGroupChildren[r],e);if(t.invalidateMatrices(),t.isCachedAsTexture){if(t.textureNeedsUpdate){let r=t.root.getLocalBounds(),s=this._renderer,n=t.textureOptions.resolution||s.view.resolution,o=t.textureOptions.antialias??s.view.antialias,a=t.textureOptions.scaleMode??"linear",l=t.texture;r.ceil(),t.texture&&Mt.returnTexture(t.texture,!0);let c=Mt.getOptimalTexture(r.width,r.height,n,o);c._source.style=new ce({scaleMode:a}),t.texture=c,t._textureBounds||(t._textureBounds=new dt),t._textureBounds.copyFrom(r),l!==t.texture&&t.renderGroupParent&&(t.renderGroupParent.structureDidChange=!0)}}else t.texture&&(Mt.returnTexture(t.texture,!0),t.texture=null)}_updateRenderGroups(t){let e=this._renderer,r=e.renderPipes;if(t.runOnRender(e),t.instructionSet.renderPipes=r,t.structureDidChange?Qs(t.childrenRenderablesToUpdate.list,0):ux(t,r),Gh(t),t.structureDidChange?(t.structureDidChange=!1,this._buildInstructions(t,e)):this._updateRenderables(t),t.childrenRenderablesToUpdate.index=0,e.renderPipes.batch.upload(t.instructionSet),!(t.isCachedAsTexture&&!t.textureNeedsUpdate))for(let s=0;s<t.renderGroupChildren.length;s++)this._updateRenderGroups(t.renderGroupChildren[s])}_updateRenderables(t){let{list:e,index:r}=t.childrenRenderablesToUpdate;for(let s=0;s<r;s++){let n=e[s];n.didViewUpdate&&t.updateRenderable(n)}Qs(e,r)}_buildInstructions(t,e){let r=t.root,s=t.instructionSet;s.reset();let n=e.renderPipes?e:e.batch.renderer,o=n.renderPipes;o.batch.buildStart(s),o.blendMode.buildStart(),o.colorMask.buildStart(),r.sortableChildren&&r.sortChildren(),r.collectRenderablesWithEffects(s,n,null),o.batch.buildEnd(s),o.blendMode.buildEnd(s)}};Js.extension={type:[y.WebGLSystem,y.WebGPUSystem,y.CanvasSystem],name:"renderGroup"}});var Yr,Fh=p(()=>{P();Ca();Yr=class{constructor(t){this._renderer=t}addRenderable(t,e){let r=this._getGpuSprite(t);t.didViewUpdate&&this._updateBatchableSprite(t,r),this._renderer.renderPipes.batch.addToBatch(r,e)}updateRenderable(t){let e=this._getGpuSprite(t);t.didViewUpdate&&this._updateBatchableSprite(t,e),e._batcher.updateElement(e)}validateRenderable(t){let e=this._getGpuSprite(t);return!e._batcher.checkAndUpdateTexture(e,t._texture)}_updateBatchableSprite(t,e){e.bounds=t.visualBounds,e.texture=t._texture}_getGpuSprite(t){return t._gpuData[this._renderer.uid]||this._initGPUSprite(t)}_initGPUSprite(t){let e=new yr;return e.renderable=t,e.transform=t.groupTransform,e.texture=t._texture,e.bounds=t.visualBounds,e.roundPixels=this._renderer._roundPixels|t._roundPixels,t._gpuData[this._renderer.uid]=e,e}destroy(){this._renderer=null}};Yr.extension={type:[y.WebGLPipes,y.WebGPUPipes,y.CanvasPipes],name:"sprite"}});var Ni,Uh=p(()=>{Ht();Ni="8.20.0"});var tn,en,Dh=p(()=>{P();Uh();tn=class{static init(){globalThis.__PIXI_APP_INIT__?.(this,Ni)}static destroy(){}};tn.extension=y.Application;en=class{constructor(t){this._renderer=t}init(){globalThis.__PIXI_RENDERER_INIT__?.(this._renderer,Ni)}destroy(){this._renderer=null}};en.extension={type:[y.WebGLSystem,y.WebGPUSystem],name:"initHook",priority:-10}});var ze,Lh=p(()=>{"use strict";ze=class{constructor(t){typeof t=="number"?this.rawBinaryData=new ArrayBuffer(t):t instanceof Uint8Array?this.rawBinaryData=t.buffer:this.rawBinaryData=t,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(t){return this[`${t}View`]}destroy(){this.rawBinaryData=null,this.uint32View=null,this.float32View=null,this.uint16View=null,this._int8View=null,this._uint8View=null,this._int16View=null,this._int32View=null,this._float64Array=null,this._bigUint64Array=null}static sizeOf(t){switch(t){case"int8":case"uint8":return 1;case"int16":case"uint16":return 2;case"int32":case"uint32":case"float32":return 4;default:throw new Error(`${t} isn't a valid view type`)}}}});function rn(i,t,e,r){if(e??(e=0),r??(r=Math.min(i.byteLength-e,t.byteLength)),!(e&7)&&!(r&7)){let s=r/8;new Float64Array(t,0,s).set(new Float64Array(i,e,s))}else if(!(e&3)&&!(r&3)){let s=r/4;new Float32Array(t,0,s).set(new Float32Array(i,e,s))}else new Uint8Array(t).set(new Uint8Array(i,e,r))}var Oh=p(()=>{"use strict"});var px,vt,$r=p(()=>{"use strict";px={normal:"normal-npm",add:"add-npm",screen:"screen-npm"},vt=(i=>(i[i.DISABLED=0]="DISABLED",i[i.RENDERING_MASK_ADD=1]="RENDERING_MASK_ADD",i[i.MASK_ACTIVE=2]="MASK_ACTIVE",i[i.INVERSE_MASK_ACTIVE=3]="INVERSE_MASK_ACTIVE",i[i.RENDERING_MASK_REMOVE=4]="RENDERING_MASK_REMOVE",i[i.NONE=5]="NONE",i))(vt||{})});function sn(i,t){return t.alphaMode==="no-premultiply-alpha"&&px[i]||i}var Nh=p(()=>{$r()});function gT(i){let t="";for(let e=0;e<i;++e)e>0&&(t+=`
388
- else `),e<i-1&&(t+=`if(test == ${e}.0){}`);return t}function Ea(i,t){if(i===0)throw new Error("Invalid value of `0` passed to `checkMaxIfStatementsInShader`");let e=t.createShader(t.FRAGMENT_SHADER);try{for(;;){let r=mT.replace(/%forloop%/gi,gT(i));if(t.shaderSource(e,r),t.compileShader(e),!t.getShaderParameter(e,t.COMPILE_STATUS))i=i/2|0;else break}}finally{t.deleteShader(e)}return i}var mT,zh=p(()=>{"use strict";mT=["precision mediump float;","void main(void){","float test = 0.1;","%forloop%","gl_FragColor = vec4(0.0);","}"].join(`
389
- `)});function mx(){if(zi)return zi;let i=ia();return zi=i.getParameter(i.MAX_TEXTURE_IMAGE_UNITS),zi=Ea(zi,i),i.getExtension("WEBGL_lose_context")?.loseContext(),zi}var zi,gx=p(()=>{Yc();zh();zi=null});var Pa,xx=p(()=>{"use strict";Pa=class{constructor(){this.ids=Object.create(null),this.textures=[],this.count=0}clear(){for(let t=0;t<this.count;t++){let e=this.textures[t];this.textures[t]=null,this.ids[e.uid]=null}this.count=0}}});function _x(){return Ma>0?on[--Ma]:new Hh}function yx(i){i.elements=null,on[Ma++]=i}var Hh,on,Ma,nn,bx,Sx,Tx=p(()=>{Ft();Lh();yt();Pr();Oh();Nh();gx();xx();Hh=class{constructor(){this.renderPipeId="batch",this.action="startBatch",this.start=0,this.size=0,this.textures=new Pa,this.blendMode="normal",this.topology="triangle-strip",this.canBundle=!0}destroy(){this.textures=null,this.gpuBindGroup=null,this.bindGroup=null,this.batcher=null,this.elements=null}},on=[],Ma=0;ye.register({clear:()=>{if(on.length>0)for(let i of on)i&&i.destroy();on.length=0,Ma=0}});nn=0,bx=class vx{constructor(t){this.uid=$("batcher"),this.dirty=!0,this.batchIndex=0,this.batches=[],this._elements=[],t={...vx.defaultOptions,...t},t.maxTextures||(O("v8.8.0","maxTextures is a required option for Batcher now, please pass it in the options"),t.maxTextures=mx());let{maxTextures:e,attributesInitialSize:r,indicesInitialSize:s}=t;this.attributeBuffer=new ze(r*4),this.indexBuffer=new Uint16Array(s),this.maxTextures=e}begin(){this.elementSize=0,this.elementStart=0,this.indexSize=0,this.attributeSize=0;for(let t=0;t<this.batchIndex;t++)yx(this.batches[t]);this.batchIndex=0,this._batchIndexStart=0,this._batchIndexSize=0,this.dirty=!0}add(t){this._elements[this.elementSize++]=t,t._indexStart=this.indexSize,t._attributeStart=this.attributeSize,t._batcher=this,this.indexSize+=t.indexSize,this.attributeSize+=t.attributeSize*this.vertexSize}checkAndUpdateTexture(t,e){let r=t._batch.textures.ids[e._source.uid];return!r&&r!==0?!1:(t._textureId=r,t.texture=e,!0)}updateElement(t){this.dirty=!0;let e=this.attributeBuffer;t.packAsQuad?this.packQuadAttributes(t,e.float32View,e.uint32View,t._attributeStart,t._textureId):this.packAttributes(t,e.float32View,e.uint32View,t._attributeStart,t._textureId)}break(t){let e=this._elements;if(!e[this.elementStart])return;let r=_x(),s=r.textures;s.clear();let n=e[this.elementStart],o=sn(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 l=this.attributeBuffer.float32View,c=this.attributeBuffer.uint32View,h=this.indexBuffer,u=this._batchIndexSize,d=this._batchIndexStart,f="startBatch",m=[],g=this.maxTextures;for(let _=this.elementStart;_<this.elementSize;++_){let x=e[_];e[_]=null;let v=x.texture._source,S=sn(x.blendMode,v),T=o!==S||a!==x.topology;if(v._batchTick===nn&&!T){x._textureId=v._textureBindLocation,u+=x.indexSize,x.packAsQuad?(this.packQuadAttributes(x,l,c,x._attributeStart,x._textureId),this.packQuadIndex(h,x._indexStart,x._attributeStart/this.vertexSize)):(this.packAttributes(x,l,c,x._attributeStart,x._textureId),this.packIndex(x,h,x._indexStart,x._attributeStart/this.vertexSize)),x._batch=r,m.push(x);continue}v._batchTick=nn,(s.count>=g||T)&&(this._finishBatch(r,d,u-d,s,o,a,t,f,m),f="renderBatch",d=u,o=S,a=x.topology,r=_x(),s=r.textures,s.clear(),m=[],++nn),x._textureId=v._textureBindLocation=s.count,s.ids[v.uid]=s.count,s.textures[s.count++]=v,x._batch=r,m.push(x),u+=x.indexSize,x.packAsQuad?(this.packQuadAttributes(x,l,c,x._attributeStart,x._textureId),this.packQuadIndex(h,x._indexStart,x._attributeStart/this.vertexSize)):(this.packAttributes(x,l,c,x._attributeStart,x._textureId),this.packIndex(x,h,x._indexStart,x._attributeStart/this.vertexSize))}s.count>0&&(this._finishBatch(r,d,u-d,s,o,a,t,f,m),d=u,++nn),this.elementStart=this.elementSize,this._batchIndexStart=d,this._batchIndexSize=u}_finishBatch(t,e,r,s,n,o,a,l,c){t.gpuBindGroup=null,t.bindGroup=null,t.action=l,t.batcher=this,t.textures=s,t.blendMode=n,t.topology=o,t.start=e,t.size=r,t.elements=c,++nn,this.batches[this.batchIndex++]=t,a.add(t)}finish(t){this.break(t)}ensureAttributeBuffer(t){t*4<=this.attributeBuffer.size||this._resizeAttributeBuffer(t*4)}ensureIndexBuffer(t){t<=this.indexBuffer.length||this._resizeIndexBuffer(t)}_resizeAttributeBuffer(t){let e=Math.max(t,this.attributeBuffer.size*2),r=new ze(e);rn(this.attributeBuffer.rawBinaryData,r.rawBinaryData),this.attributeBuffer=r}_resizeIndexBuffer(t){let e=this.indexBuffer,r=Math.max(t,e.length*1.5);r+=r%2;let s=r>65535?new Uint32Array(r):new Uint16Array(r);if(s.BYTES_PER_ELEMENT!==e.BYTES_PER_ELEMENT)for(let n=0;n<e.length;n++)s[n]=e[n];else rn(e.buffer,s.buffer);this.indexBuffer=s}packQuadIndex(t,e,r){t[e]=r+0,t[e+1]=r+1,t[e+2]=r+2,t[e+3]=r+0,t[e+4]=r+2,t[e+5]=r+3}packIndex(t,e,r,s){let n=t.indices,o=t.indexSize,a=t.indexOffset,l=t.attributeOffset;for(let c=0;c<o;c++)e[r++]=s+n[c+a]-l}destroy(t={}){if(this.batches!==null){for(let e=0;e<this.batchIndex;e++)yx(this.batches[e]);this.batches=null,this.geometry.destroy(!0),this.geometry=null,t.shader&&(this.shader?.destroy(),this.shader=null);for(let e=0;e<this._elements.length;e++)this._elements[e]&&(this._elements[e]._batch=null);this._elements=null,this.indexBuffer=null,this.attributeBuffer.destroy(),this.attributeBuffer=null}}};bx.defaultOptions={maxTextures:null,attributesInitialSize:4,indicesInitialSize:6};Sx=bx});var xT,_T,Aa,wx=p(()=>{xr();ir();zr();xT=new Float32Array(1),_T=new Uint32Array(1),Aa=class extends he{constructor(){let e=new At({data:xT,label:"attribute-batch-buffer",usage:tt.VERTEX|tt.COPY_DST,shrinkToFit:!1}),r=new At({data:_T,label:"index-batch-buffer",usage:tt.INDEX|tt.COPY_DST,shrinkToFit:!1}),s=24;super({attributes:{aPosition:{buffer:e,format:"float32x2",stride:s,offset:0},aUV:{buffer:e,format:"float32x2",stride:s,offset:8},aColor:{buffer:e,format:"unorm8x4",stride:s,offset:16},aTextureIdAndRound:{buffer:e,format:"uint16x2",stride:s,offset:20}},indexBuffer:r})}}});function Ra(i){let t=Cx[i];if(t)return t;let e=new Int32Array(i);for(let r=0;r<i;r++)e[r]=r;return t=Cx[i]=new Ct({uTextures:{value:e,type:"i32",size:i}},{isStatic:!0}),t}var Cx,Wh=p(()=>{me();Cx={}});var an,Ex=p(()=>{Ui();ya();Sa();Oi();Wh();gr();an=class extends te{constructor(t){let e=Fi({name:"batch",bits:[_a,va(t),Li]}),r=Gi({name:"batch",bits:[xa,ba(t),Di]});super({glProgram:e,gpuProgram:r,resources:{batchSamplers:Ra(t)}}),this.maxTextures=t}}});var ln,Px,cn,Vh=p(()=>{P();Tx();wx();Ex();ln=null,Px=class Mx extends Sx{constructor(t){super(t),this.geometry=new Aa,this.name=Mx.extension.name,this.vertexSize=6,ln??(ln=new an(t.maxTextures)),this.shader=ln}packAttributes(t,e,r,s,n){let o=n<<16|t.roundPixels&65535,a=t.transform,l=a.a,c=a.b,h=a.c,u=a.d,d=a.tx,f=a.ty,{positions:m,uvs:g}=t,_=t.color,x=t.attributeOffset,b=x+t.attributeSize;for(let v=x;v<b;v++){let S=v*2,T=m[S],w=m[S+1];e[s++]=l*T+h*w+d,e[s++]=u*w+c*T+f,e[s++]=g[S],e[s++]=g[S+1],r[s++]=_,r[s++]=o}}packQuadAttributes(t,e,r,s,n){let o=t.texture,a=t.transform,l=a.a,c=a.b,h=a.c,u=a.d,d=a.tx,f=a.ty,m=t.bounds,g=m.maxX,_=m.minX,x=m.maxY,b=m.minY,v=o.uvs,S=t.color,T=n<<16|t.roundPixels&65535;e[s+0]=l*_+h*b+d,e[s+1]=u*b+c*_+f,e[s+2]=v.x0,e[s+3]=v.y0,r[s+4]=S,r[s+5]=T,e[s+6]=l*g+h*b+d,e[s+7]=u*b+c*g+f,e[s+8]=v.x1,e[s+9]=v.y1,r[s+10]=S,r[s+11]=T,e[s+12]=l*g+h*x+d,e[s+13]=u*x+c*g+f,e[s+14]=v.x2,e[s+15]=v.y2,r[s+16]=S,r[s+17]=T,e[s+18]=l*_+h*x+d,e[s+19]=u*x+c*_+f,e[s+20]=v.x3,e[s+21]=v.y3,r[s+22]=S,r[s+23]=T}_updateMaxTextures(t){this.shader.maxTextures!==t&&(ln=new an(t),this.shader=ln)}destroy(){this.shader=null,super.destroy()}};Px.extension={type:[y.Batcher],name:"default"};cn=Px});var jh,hn,Xh=p(()=>{P();Be();Vh();jh=class Ax{constructor(t,e){this.state=Ot.for2d(),this._batchersByInstructionSet=Object.create(null),this._activeBatches=Object.create(null),this.renderer=t,this._adaptor=e,this._adaptor.init?.(this)}static getBatcher(t,e){return new this._availableBatchers[t]({maxTextures:e})}buildStart(t){let e=this._batchersByInstructionSet[t.uid];e||(e=this._batchersByInstructionSet[t.uid]=Object.create(null),e.default||(e.default=new cn({maxTextures:this.renderer.limits.maxBatchableTextures}))),this._activeBatches=e,this._activeBatch=this._activeBatches.default;for(let r in this._activeBatches)this._activeBatches[r].begin()}addToBatch(t,e){if(this._activeBatch.name!==t.batcherName){this._activeBatch.break(e);let r=this._activeBatches[t.batcherName];r||(r=this._activeBatches[t.batcherName]=Ax.getBatcher(t.batcherName,this.renderer.limits.maxBatchableTextures),r.begin()),this._activeBatch=r}this._activeBatch.add(t)}break(t){this._activeBatch.break(t)}buildEnd(t){this._activeBatch.break(t);let e=this._activeBatches;for(let r in e){let s=e[r],n=s.geometry;n.indexBuffer.setDataWithSize(s.indexBuffer,s.indexSize,!0),n.buffers[0].setDataWithSize(s.attributeBuffer.float32View,s.attributeSize,!1)}}upload(t){let e=this._batchersByInstructionSet[t.uid];for(let r in e){let s=e[r],n=s.geometry;s.dirty&&(s.dirty=!1,n.buffers[0].update(s.attributeSize*4))}}execute(t){if(t.action==="startBatch"){let e=t.batcher,r=e.geometry,s=e.shader;this._adaptor.start(this,r,s)}this._adaptor.execute(this,t)}destroy(){this.state=null,this.renderer=null,this._adaptor=null;for(let t in this._activeBatches)this._activeBatches[t].destroy();this._activeBatches=null}};jh.extension={type:[y.WebGLPipes,y.WebGPUPipes,y.CanvasPipes],name:"batch"};jh._availableBatchers=Object.create(null);hn=jh;z.handleByMap(y.Batcher,hn._availableBatchers);z.add(cn)});var Rx,kx=p(()=>{Rx=`in vec2 vMaskCoord;
387
+ `}}});var Ks,ax=p(()=>{P();ot();Di();$s();Ni();Ah();gr();gt();ht();Ks=class{init(){let t=Fi({name:"mesh",bits:[Ys,nx,Li]});this._shader=new te({gpuProgram:t,resources:{uTexture:F.EMPTY._source,uSampler:F.EMPTY._source.style,textureUniforms:{uTextureMatrix:{type:"mat3x3<f32>",value:new k}}}})}execute(t,e){let r=t.renderer,s=e._shader;if(!s)s=this._shader,s.groups[2]=r.texture.getTextureBindGroup(e.texture);else if(!s.gpuProgram){L("Mesh shader has no gpuProgram",e.shader);return}let n=s.gpuProgram;if(n.autoAssignGlobalUniforms&&(s.groups[0]=r.globalUniforms.bindGroup),n.autoAssignLocalUniforms){let o=t.localUniforms;s.groups[1]=r.renderPipes.uniformBatch.getUniformBindGroup(o,!0)}r.encoder.draw({geometry:e._geometry,shader:s,state:e.state})}destroy(){this._shader.destroy(!0),this._shader=null}};Ks.extension={type:[y.WebGPUPipesAdaptor],name:"mesh"}});var Ca,Zs,lx=p(()=>{P();Be();xa();Ca=Ot.for2d(),Zs=class{start(t,e,r){let s=t.renderer,n=s.encoder,o=r.gpuProgram;this._shader=r,this._geometry=e,n.setGeometry(e,o),Ca.blendMode="normal",s.pipeline.getPipeline(e,o,Ca,void 0,r._overrides);let a=s.globalUniforms.bindGroup;n.resetBindGroup(1),n.setBindGroup(0,a,o)}execute(t,e){let r=this._shader.gpuProgram,s=t.renderer,n=s.encoder;if(!e.bindGroup){let l=e.textures;e.bindGroup=Gi(l.textures,l.count,s.limits.maxBatchableTextures)}Ca.blendMode=e.blendMode;let o=s.bindGroup.getBindGroup(e.bindGroup,r,1),a=s.pipeline.getPipeline(this._geometry,r,Ca,e.topology,this._shader._overrides);e.bindGroup._touch(s.gc.now,s.tick),n.setPipeline(a),n.renderPassEncoder.setBindGroup(1,o),n.renderPassEncoder.drawIndexed(e.size,1,e.start)}};Zs.extension={type:[y.WebGPUPipesAdaptor],name:"batch"}});var jr,Rh=p(()=>{P();jr=class{constructor(t){this._renderer=t}updateRenderable(){}destroyRenderable(){}validateRenderable(){return!1}addRenderable(t,e){this._renderer.renderPipes.batch.break(e),e.add(t)}execute(t){t.isRenderable&&t.render(this._renderer)}destroy(){this._renderer=null}};jr.extension={type:[y.WebGLPipes,y.WebGPUPipes,y.CanvasPipes],name:"customRender"}});var yr,Ea=p(()=>{"use strict";yr=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(){this.reset()}}});function Qs(i,t){let e=i.instructionSet,r=e.instructions;for(let s=0;s<e.instructionSize;s++){let n=r[s];t[n.renderPipeId].execute(n)}}var kh=p(()=>{"use strict"});var Xr,Bh=p(()=>{P();ot();Ke();Ea();kh();Xr=class{constructor(t){this._renderer=t}addRenderGroup(t,e){t.isCachedAsTexture?this._addRenderableCacheAsTexture(t,e):this._addRenderableDirect(t,e)}execute(t){t.isRenderable&&(t.isCachedAsTexture?this._executeCacheAsTexture(t):this._executeDirect(t))}destroy(){this._renderer=null}_addRenderableDirect(t,e){this._renderer.renderPipes.batch.break(e),t._batchableRenderGroup&&(bt.return(t._batchableRenderGroup),t._batchableRenderGroup=null),e.add(t)}_addRenderableCacheAsTexture(t,e){let r=t._batchableRenderGroup??(t._batchableRenderGroup=bt.get(yr));r.renderable=t.root,r.transform=t.root.relativeGroupTransform,r.texture=t.texture,r.bounds=t._textureBounds,e.add(t),this._renderer.renderPipes.blendMode.pushBlendMode(t,t.root.groupBlendMode,e),this._renderer.renderPipes.batch.addToBatch(r,e),this._renderer.renderPipes.blendMode.popBlendMode(e)}_executeCacheAsTexture(t){if(t.textureNeedsUpdate){t.textureNeedsUpdate=!1;let e=new k().translate(-t._textureBounds.x,-t._textureBounds.y);this._renderer.renderTarget.push({target:t.texture,clear:!0,frame:t.texture.frame}),this._renderer.globalUniforms.push({worldTransformMatrix:e,worldColor:4294967295,offset:{x:0,y:0}}),Qs(t,this._renderer.renderPipes),this._renderer.renderTarget.finishRenderPass(),this._renderer.renderTarget.pop(),this._renderer.globalUniforms.pop()}t._batchableRenderGroup._batcher.updateElement(t._batchableRenderGroup),t._batchableRenderGroup._batcher.geometry.buffers[0].update()}_executeDirect(t){this._renderer.globalUniforms.push({worldTransformMatrix:t.inverseParentTextureTransform,worldColor:t.worldColorAlpha}),Qs(t,this._renderer.renderPipes),this._renderer.globalUniforms.pop()}};Xr.extension={type:[y.WebGLPipes,y.WebGPUPipes,y.CanvasPipes],name:"renderGroup"}});function Js(i,t){t||(t=0);for(let e=t;e<i.length&&i[e];e++)i[e]=null}var Ih=p(()=>{"use strict"});function Gh(i,t=!1){gT(i);let e=i.childrenToUpdate,r=i.updateTick++;for(let s in e){let n=Number(s),o=e[s],a=o.list,l=o.index;for(let c=0;c<l;c++){let h=a[c];h.parentRenderGroup===i&&h.relativeRenderGroupDepth===n&&ux(h,r,0)}Js(a,l),o.index=0}if(t)for(let s=0;s<i.renderGroupChildren.length;s++)Gh(i.renderGroupChildren[s],t)}function gT(i){let t=i.root,e;if(i.renderGroupParent){let r=i.renderGroupParent;i.worldTransform.appendFrom(t.relativeGroupTransform,r.worldTransform),i.worldColor=_i(t.groupColor,r.worldColor),e=t.groupAlpha*r.worldAlpha}else i.worldTransform.copyFrom(t.localTransform),i.worldColor=t.localColor,e=t.localAlpha;e=e<0?0:e>1?1:e,i.worldAlpha=e,i.worldColorAlpha=i.worldColor+((e*255|0)<<24)}function ux(i,t,e){if(t===i.updateTick)return;i.updateTick=t,i.didChange=!1;let r=i.localTransform;i.updateLocalTransform();let s=i.parent;if(s&&!s.renderGroup?(e|=i._updateFlags,i.relativeGroupTransform.appendFrom(r,s.relativeGroupTransform),e&cx&&hx(i,s,e)):(e=i._updateFlags,i.relativeGroupTransform.copyFrom(r),e&cx&&hx(i,mT,e)),!i.renderGroup){let n=i.children,o=n.length;for(let c=0;c<o;c++)ux(n[c],t,e);let a=i.parentRenderGroup,l=i;l.renderPipeId&&!a.structureDidChange&&a.updateRenderable(l)}}function hx(i,t,e){if(e&vi){i.groupColor=_i(i.localColor,t.groupColor);let r=i.localAlpha*t.groupAlpha;r=r<0?0:r>1?1:r,i.groupAlpha=r,i.groupColorAlpha=i.groupColor+((r*255|0)<<24)}e&Ss&&(i.groupBlendMode=i.localBlendMode==="inherit"?t.groupBlendMode:i.localBlendMode),e&Dr&&(i.globalDisplayStatus=i.localDisplayStatus&t.globalDisplayStatus),i._updateFlags=0}var mT,cx,dx=p(()=>{Pe();Ih();rc();mT=new mt,cx=Dr|vi|Ss});function fx(i,t){let{list:e}=i.childrenRenderablesToUpdate,r=!1;for(let s=0;s<i.childrenRenderablesToUpdate.index;s++){let n=e[s];if(r=t[n.renderPipeId].validateRenderable(n),r)break}return i.structureDidChange=r,r}var px=p(()=>{"use strict"});var xT,tn,mx=p(()=>{P();ot();Fr();Ar();ie();Ih();kh();dx();px();xT=new k,tn=class{constructor(t){this._renderer=t}render({container:t,transform:e}){let r=t.parent,s=t.renderGroup.renderGroupParent;t.parent=null,t.renderGroup.renderGroupParent=null;let n=this._renderer,o=xT;e&&(o.copyFrom(t.renderGroup.localTransform),t.renderGroup.localTransform.copyFrom(e));let a=n.renderPipes;this._updateCachedRenderGroups(t.renderGroup,null),this._updateRenderGroups(t.renderGroup),n.globalUniforms.start({worldTransformMatrix:e?t.renderGroup.localTransform:t.renderGroup.worldTransform,worldColor:t.renderGroup.worldColorAlpha}),Qs(t.renderGroup,a),a.uniformBatch&&a.uniformBatch.renderEnd(),e&&t.renderGroup.localTransform.copyFrom(o),t.parent=r,t.renderGroup.renderGroupParent=s}destroy(){this._renderer=null}_updateCachedRenderGroups(t,e){if(t._parentCacheAsTextureRenderGroup=e,t.isCachedAsTexture){if(!t.textureNeedsUpdate)return;e=t}for(let r=t.renderGroupChildren.length-1;r>=0;r--)this._updateCachedRenderGroups(t.renderGroupChildren[r],e);if(t.invalidateMatrices(),t.isCachedAsTexture){if(t.textureNeedsUpdate){let r=t.root.getLocalBounds(),s=this._renderer,n=t.textureOptions.resolution||s.view.resolution,o=t.textureOptions.antialias??s.view.antialias,a=t.textureOptions.scaleMode??"linear",l=t.texture;r.ceil(),t.texture&&Mt.returnTexture(t.texture,!0);let c=Mt.getOptimalTexture(r.width,r.height,n,o);c._source.style=new ce({scaleMode:a}),t.texture=c,t._textureBounds||(t._textureBounds=new dt),t._textureBounds.copyFrom(r),l!==t.texture&&t.renderGroupParent&&(t.renderGroupParent.structureDidChange=!0)}}else t.texture&&(Mt.returnTexture(t.texture,!0),t.texture=null)}_updateRenderGroups(t){let e=this._renderer,r=e.renderPipes;if(t.runOnRender(e),t.instructionSet.renderPipes=r,t.structureDidChange?Js(t.childrenRenderablesToUpdate.list,0):fx(t,r),Gh(t),t.structureDidChange?(t.structureDidChange=!1,this._buildInstructions(t,e)):this._updateRenderables(t),t.childrenRenderablesToUpdate.index=0,e.renderPipes.batch.upload(t.instructionSet),!(t.isCachedAsTexture&&!t.textureNeedsUpdate))for(let s=0;s<t.renderGroupChildren.length;s++)this._updateRenderGroups(t.renderGroupChildren[s])}_updateRenderables(t){let{list:e,index:r}=t.childrenRenderablesToUpdate;for(let s=0;s<r;s++){let n=e[s];n.didViewUpdate&&t.updateRenderable(n)}Js(e,r)}_buildInstructions(t,e){let r=t.root,s=t.instructionSet;s.reset();let n=e.renderPipes?e:e.batch.renderer,o=n.renderPipes;o.batch.buildStart(s),o.blendMode.buildStart(),o.colorMask.buildStart(),r.sortableChildren&&r.sortChildren(),r.collectRenderablesWithEffects(s,n,null),o.batch.buildEnd(s),o.blendMode.buildEnd(s)}};tn.extension={type:[y.WebGLSystem,y.WebGPUSystem,y.CanvasSystem],name:"renderGroup"}});var Yr,Fh=p(()=>{P();Ea();Yr=class{constructor(t){this._renderer=t}addRenderable(t,e){let r=this._getGpuSprite(t);t.didViewUpdate&&this._updateBatchableSprite(t,r),this._renderer.renderPipes.batch.addToBatch(r,e)}updateRenderable(t){let e=this._getGpuSprite(t);t.didViewUpdate&&this._updateBatchableSprite(t,e),e._batcher.updateElement(e)}validateRenderable(t){let e=this._getGpuSprite(t);return!e._batcher.checkAndUpdateTexture(e,t._texture)}_updateBatchableSprite(t,e){e.bounds=t.visualBounds,e.texture=t._texture}_getGpuSprite(t){return t._gpuData[this._renderer.uid]||this._initGPUSprite(t)}_initGPUSprite(t){let e=new yr;return e.renderable=t,e.transform=t.groupTransform,e.texture=t._texture,e.bounds=t.visualBounds,e.roundPixels=this._renderer._roundPixels|t._roundPixels,t._gpuData[this._renderer.uid]=e,e}destroy(){this._renderer=null}};Yr.extension={type:[y.WebGLPipes,y.WebGPUPipes,y.CanvasPipes],name:"sprite"}});var zi,Uh=p(()=>{Ht();zi="8.20.0"});var en,rn,Dh=p(()=>{P();Uh();en=class{static init(){globalThis.__PIXI_APP_INIT__?.(this,zi)}static destroy(){}};en.extension=y.Application;rn=class{constructor(t){this._renderer=t}init(){globalThis.__PIXI_RENDERER_INIT__?.(this._renderer,zi)}destroy(){this._renderer=null}};rn.extension={type:[y.WebGLSystem,y.WebGPUSystem],name:"initHook",priority:-10}});var ze,Lh=p(()=>{"use strict";ze=class{constructor(t){typeof t=="number"?this.rawBinaryData=new ArrayBuffer(t):t instanceof Uint8Array?this.rawBinaryData=t.buffer:this.rawBinaryData=t,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(t){return this[`${t}View`]}destroy(){this.rawBinaryData=null,this.uint32View=null,this.float32View=null,this.uint16View=null,this._int8View=null,this._uint8View=null,this._int16View=null,this._int32View=null,this._float64Array=null,this._bigUint64Array=null}static sizeOf(t){switch(t){case"int8":case"uint8":return 1;case"int16":case"uint16":return 2;case"int32":case"uint32":case"float32":return 4;default:throw new Error(`${t} isn't a valid view type`)}}}});function sn(i,t,e,r){if(e??(e=0),r??(r=Math.min(i.byteLength-e,t.byteLength)),!(e&7)&&!(r&7)){let s=r/8;new Float64Array(t,0,s).set(new Float64Array(i,e,s))}else if(!(e&3)&&!(r&3)){let s=r/4;new Float32Array(t,0,s).set(new Float32Array(i,e,s))}else new Uint8Array(t).set(new Uint8Array(i,e,r))}var Oh=p(()=>{"use strict"});var gx,vt,$r=p(()=>{"use strict";gx={normal:"normal-npm",add:"add-npm",screen:"screen-npm"},vt=(i=>(i[i.DISABLED=0]="DISABLED",i[i.RENDERING_MASK_ADD=1]="RENDERING_MASK_ADD",i[i.MASK_ACTIVE=2]="MASK_ACTIVE",i[i.INVERSE_MASK_ACTIVE=3]="INVERSE_MASK_ACTIVE",i[i.RENDERING_MASK_REMOVE=4]="RENDERING_MASK_REMOVE",i[i.NONE=5]="NONE",i))(vt||{})});function nn(i,t){return t.alphaMode==="no-premultiply-alpha"&&gx[i]||i}var Nh=p(()=>{$r()});function yT(i){let t="";for(let e=0;e<i;++e)e>0&&(t+=`
388
+ else `),e<i-1&&(t+=`if(test == ${e}.0){}`);return t}function Pa(i,t){if(i===0)throw new Error("Invalid value of `0` passed to `checkMaxIfStatementsInShader`");let e=t.createShader(t.FRAGMENT_SHADER);try{for(;;){let r=_T.replace(/%forloop%/gi,yT(i));if(t.shaderSource(e,r),t.compileShader(e),!t.getShaderParameter(e,t.COMPILE_STATUS))i=i/2|0;else break}}finally{t.deleteShader(e)}return i}var _T,zh=p(()=>{"use strict";_T=["precision mediump float;","void main(void){","float test = 0.1;","%forloop%","gl_FragColor = vec4(0.0);","}"].join(`
389
+ `)});function xx(){if(Hi)return Hi;let i=sa();return Hi=i.getParameter(i.MAX_TEXTURE_IMAGE_UNITS),Hi=Pa(Hi,i),i.getExtension("WEBGL_lose_context")?.loseContext(),Hi}var Hi,_x=p(()=>{Yc();zh();Hi=null});var Ma,yx=p(()=>{"use strict";Ma=class{constructor(){this.ids=Object.create(null),this.textures=[],this.count=0}clear(){for(let t=0;t<this.count;t++){let e=this.textures[t];this.textures[t]=null,this.ids[e.uid]=null}this.count=0}}});function bx(){return Aa>0?an[--Aa]:new Hh}function vx(i){i.elements=null,an[Aa++]=i}var Hh,an,Aa,on,Sx,wx,Cx=p(()=>{Ft();Lh();yt();Pr();Oh();Nh();_x();yx();Hh=class{constructor(){this.renderPipeId="batch",this.action="startBatch",this.start=0,this.size=0,this.textures=new Ma,this.blendMode="normal",this.topology="triangle-strip",this.canBundle=!0}destroy(){this.textures=null,this.gpuBindGroup=null,this.bindGroup=null,this.batcher=null,this.elements=null}},an=[],Aa=0;ye.register({clear:()=>{if(an.length>0)for(let i of an)i&&i.destroy();an.length=0,Aa=0}});on=0,Sx=class Tx{constructor(t){this.uid=$("batcher"),this.dirty=!0,this.batchIndex=0,this.batches=[],this._elements=[],t={...Tx.defaultOptions,...t},t.maxTextures||(O("v8.8.0","maxTextures is a required option for Batcher now, please pass it in the options"),t.maxTextures=xx());let{maxTextures:e,attributesInitialSize:r,indicesInitialSize:s}=t;this.attributeBuffer=new ze(r*4),this.indexBuffer=new Uint16Array(s),this.maxTextures=e}begin(){this.elementSize=0,this.elementStart=0,this.indexSize=0,this.attributeSize=0;for(let t=0;t<this.batchIndex;t++)vx(this.batches[t]);this.batchIndex=0,this._batchIndexStart=0,this._batchIndexSize=0,this.dirty=!0}add(t){this._elements[this.elementSize++]=t,t._indexStart=this.indexSize,t._attributeStart=this.attributeSize,t._batcher=this,this.indexSize+=t.indexSize,this.attributeSize+=t.attributeSize*this.vertexSize}checkAndUpdateTexture(t,e){let r=t._batch.textures.ids[e._source.uid];return!r&&r!==0?!1:(t._textureId=r,t.texture=e,!0)}updateElement(t){this.dirty=!0;let e=this.attributeBuffer;t.packAsQuad?this.packQuadAttributes(t,e.float32View,e.uint32View,t._attributeStart,t._textureId):this.packAttributes(t,e.float32View,e.uint32View,t._attributeStart,t._textureId)}break(t){let e=this._elements;if(!e[this.elementStart])return;let r=bx(),s=r.textures;s.clear();let n=e[this.elementStart],o=nn(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 l=this.attributeBuffer.float32View,c=this.attributeBuffer.uint32View,h=this.indexBuffer,u=this._batchIndexSize,d=this._batchIndexStart,f="startBatch",m=[],g=this.maxTextures;for(let _=this.elementStart;_<this.elementSize;++_){let x=e[_];e[_]=null;let v=x.texture._source,S=nn(x.blendMode,v),T=o!==S||a!==x.topology;if(v._batchTick===on&&!T){x._textureId=v._textureBindLocation,u+=x.indexSize,x.packAsQuad?(this.packQuadAttributes(x,l,c,x._attributeStart,x._textureId),this.packQuadIndex(h,x._indexStart,x._attributeStart/this.vertexSize)):(this.packAttributes(x,l,c,x._attributeStart,x._textureId),this.packIndex(x,h,x._indexStart,x._attributeStart/this.vertexSize)),x._batch=r,m.push(x);continue}v._batchTick=on,(s.count>=g||T)&&(this._finishBatch(r,d,u-d,s,o,a,t,f,m),f="renderBatch",d=u,o=S,a=x.topology,r=bx(),s=r.textures,s.clear(),m=[],++on),x._textureId=v._textureBindLocation=s.count,s.ids[v.uid]=s.count,s.textures[s.count++]=v,x._batch=r,m.push(x),u+=x.indexSize,x.packAsQuad?(this.packQuadAttributes(x,l,c,x._attributeStart,x._textureId),this.packQuadIndex(h,x._indexStart,x._attributeStart/this.vertexSize)):(this.packAttributes(x,l,c,x._attributeStart,x._textureId),this.packIndex(x,h,x._indexStart,x._attributeStart/this.vertexSize))}s.count>0&&(this._finishBatch(r,d,u-d,s,o,a,t,f,m),d=u,++on),this.elementStart=this.elementSize,this._batchIndexStart=d,this._batchIndexSize=u}_finishBatch(t,e,r,s,n,o,a,l,c){t.gpuBindGroup=null,t.bindGroup=null,t.action=l,t.batcher=this,t.textures=s,t.blendMode=n,t.topology=o,t.start=e,t.size=r,t.elements=c,++on,this.batches[this.batchIndex++]=t,a.add(t)}finish(t){this.break(t)}ensureAttributeBuffer(t){t*4<=this.attributeBuffer.size||this._resizeAttributeBuffer(t*4)}ensureIndexBuffer(t){t<=this.indexBuffer.length||this._resizeIndexBuffer(t)}_resizeAttributeBuffer(t){let e=Math.max(t,this.attributeBuffer.size*2),r=new ze(e);sn(this.attributeBuffer.rawBinaryData,r.rawBinaryData),this.attributeBuffer=r}_resizeIndexBuffer(t){let e=this.indexBuffer,r=Math.max(t,e.length*1.5);r+=r%2;let s=r>65535?new Uint32Array(r):new Uint16Array(r);if(s.BYTES_PER_ELEMENT!==e.BYTES_PER_ELEMENT)for(let n=0;n<e.length;n++)s[n]=e[n];else sn(e.buffer,s.buffer);this.indexBuffer=s}packQuadIndex(t,e,r){t[e]=r+0,t[e+1]=r+1,t[e+2]=r+2,t[e+3]=r+0,t[e+4]=r+2,t[e+5]=r+3}packIndex(t,e,r,s){let n=t.indices,o=t.indexSize,a=t.indexOffset,l=t.attributeOffset;for(let c=0;c<o;c++)e[r++]=s+n[c+a]-l}destroy(t={}){if(this.batches!==null){for(let e=0;e<this.batchIndex;e++)vx(this.batches[e]);this.batches=null,this.geometry.destroy(!0),this.geometry=null,t.shader&&(this.shader?.destroy(),this.shader=null);for(let e=0;e<this._elements.length;e++)this._elements[e]&&(this._elements[e]._batch=null);this._elements=null,this.indexBuffer=null,this.attributeBuffer.destroy(),this.attributeBuffer=null}}};Sx.defaultOptions={maxTextures:null,attributesInitialSize:4,indicesInitialSize:6};wx=Sx});var bT,vT,Ra,Ex=p(()=>{xr();ir();zr();bT=new Float32Array(1),vT=new Uint32Array(1),Ra=class extends ue{constructor(){let e=new At({data:bT,label:"attribute-batch-buffer",usage:tt.VERTEX|tt.COPY_DST,shrinkToFit:!1}),r=new At({data:vT,label:"index-batch-buffer",usage:tt.INDEX|tt.COPY_DST,shrinkToFit:!1}),s=24;super({attributes:{aPosition:{buffer:e,format:"float32x2",stride:s,offset:0},aUV:{buffer:e,format:"float32x2",stride:s,offset:8},aColor:{buffer:e,format:"unorm8x4",stride:s,offset:16},aTextureIdAndRound:{buffer:e,format:"uint16x2",stride:s,offset:20}},indexBuffer:r})}}});function ka(i){let t=Px[i];if(t)return t;let e=new Int32Array(i);for(let r=0;r<i;r++)e[r]=r;return t=Px[i]=new Ct({uTextures:{value:e,type:"i32",size:i}},{isStatic:!0}),t}var Px,Wh=p(()=>{me();Px={}});var ln,Mx=p(()=>{Di();ba();Ta();Ni();Wh();gr();ln=class extends te{constructor(t){let e=Ui({name:"batch",bits:[ya,Sa(t),Oi]}),r=Fi({name:"batch",bits:[_a,va(t),Li]});super({glProgram:e,gpuProgram:r,resources:{batchSamplers:ka(t)}}),this.maxTextures=t}}});var cn,Ax,hn,Vh=p(()=>{P();Cx();Ex();Mx();cn=null,Ax=class Rx extends wx{constructor(t){super(t),this.geometry=new Ra,this.name=Rx.extension.name,this.vertexSize=6,cn??(cn=new ln(t.maxTextures)),this.shader=cn}packAttributes(t,e,r,s,n){let o=n<<16|t.roundPixels&65535,a=t.transform,l=a.a,c=a.b,h=a.c,u=a.d,d=a.tx,f=a.ty,{positions:m,uvs:g}=t,_=t.color,x=t.attributeOffset,b=x+t.attributeSize;for(let v=x;v<b;v++){let S=v*2,T=m[S],w=m[S+1];e[s++]=l*T+h*w+d,e[s++]=u*w+c*T+f,e[s++]=g[S],e[s++]=g[S+1],r[s++]=_,r[s++]=o}}packQuadAttributes(t,e,r,s,n){let o=t.texture,a=t.transform,l=a.a,c=a.b,h=a.c,u=a.d,d=a.tx,f=a.ty,m=t.bounds,g=m.maxX,_=m.minX,x=m.maxY,b=m.minY,v=o.uvs,S=t.color,T=n<<16|t.roundPixels&65535;e[s+0]=l*_+h*b+d,e[s+1]=u*b+c*_+f,e[s+2]=v.x0,e[s+3]=v.y0,r[s+4]=S,r[s+5]=T,e[s+6]=l*g+h*b+d,e[s+7]=u*b+c*g+f,e[s+8]=v.x1,e[s+9]=v.y1,r[s+10]=S,r[s+11]=T,e[s+12]=l*g+h*x+d,e[s+13]=u*x+c*g+f,e[s+14]=v.x2,e[s+15]=v.y2,r[s+16]=S,r[s+17]=T,e[s+18]=l*_+h*x+d,e[s+19]=u*x+c*_+f,e[s+20]=v.x3,e[s+21]=v.y3,r[s+22]=S,r[s+23]=T}_updateMaxTextures(t){this.shader.maxTextures!==t&&(cn=new ln(t),this.shader=cn)}destroy(){this.shader=null,super.destroy()}};Ax.extension={type:[y.Batcher],name:"default"};hn=Ax});var jh,un,Xh=p(()=>{P();Be();Vh();jh=class kx{constructor(t,e){this.state=Ot.for2d(),this._batchersByInstructionSet=Object.create(null),this._activeBatches=Object.create(null),this.renderer=t,this._adaptor=e,this._adaptor.init?.(this)}static getBatcher(t,e){return new this._availableBatchers[t]({maxTextures:e})}buildStart(t){let e=this._batchersByInstructionSet[t.uid];e||(e=this._batchersByInstructionSet[t.uid]=Object.create(null),e.default||(e.default=new hn({maxTextures:this.renderer.limits.maxBatchableTextures}))),this._activeBatches=e,this._activeBatch=this._activeBatches.default;for(let r in this._activeBatches)this._activeBatches[r].begin()}addToBatch(t,e){if(this._activeBatch.name!==t.batcherName){this._activeBatch.break(e);let r=this._activeBatches[t.batcherName];r||(r=this._activeBatches[t.batcherName]=kx.getBatcher(t.batcherName,this.renderer.limits.maxBatchableTextures),r.begin()),this._activeBatch=r}this._activeBatch.add(t)}break(t){this._activeBatch.break(t)}buildEnd(t){this._activeBatch.break(t);let e=this._activeBatches;for(let r in e){let s=e[r],n=s.geometry;n.indexBuffer.setDataWithSize(s.indexBuffer,s.indexSize,!0),n.buffers[0].setDataWithSize(s.attributeBuffer.float32View,s.attributeSize,!1)}}upload(t){let e=this._batchersByInstructionSet[t.uid];for(let r in e){let s=e[r],n=s.geometry;s.dirty&&(s.dirty=!1,n.buffers[0].update(s.attributeSize*4))}}execute(t){if(t.action==="startBatch"){let e=t.batcher,r=e.geometry,s=e.shader;this._adaptor.start(this,r,s)}this._adaptor.execute(this,t)}destroy(){this.state=null,this.renderer=null,this._adaptor=null;for(let t in this._activeBatches)this._activeBatches[t].destroy();this._activeBatches=null}};jh.extension={type:[y.WebGLPipes,y.WebGPUPipes,y.CanvasPipes],name:"batch"};jh._availableBatchers=Object.create(null);un=jh;z.handleByMap(y.Batcher,un._availableBatchers);z.add(hn)});var Bx,Ix=p(()=>{Bx=`in vec2 vMaskCoord;
390
390
  in vec2 vTextureCoord;
391
391
 
392
392
  uniform sampler2D uTexture;
@@ -426,7 +426,7 @@ void main(void)
426
426
 
427
427
  finalColor = original * a;
428
428
  }
429
- `});var Bx,Ix=p(()=>{Bx=`in vec2 aPosition;
429
+ `});var Gx,Fx=p(()=>{Gx=`in vec2 aPosition;
430
430
 
431
431
  out vec2 vTextureCoord;
432
432
  out vec2 vMaskCoord;
@@ -463,7 +463,7 @@ void main(void)
463
463
  vTextureCoord = filterTextureCoord(aPosition);
464
464
  vMaskCoord = getFilterCoord(aPosition);
465
465
  }
466
- `});var Yh,Gx=p(()=>{Yh=`struct GlobalFilterUniforms {
466
+ `});var Yh,Ux=p(()=>{Yh=`struct GlobalFilterUniforms {
467
467
  uInputSize:vec4<f32>,
468
468
  uInputPixel:vec4<f32>,
469
469
  uInputClamp:vec4<f32>,
@@ -567,10 +567,10 @@ fn mainFragment(
567
567
 
568
568
  return source * a;
569
569
  }
570
- `});var ka,Fx=p(()=>{ot();Nr();Ai();me();gt();cc();ht();ah();kx();Ix();Gx();ka=class extends oa{constructor(t){let{sprite:e,...r}=t,s=new yi(e.texture),n=new Ct({uFilterMatrix:{value:new k,type:"mat3x3<f32>"},uMaskClamp:{value:s.uClampFrame,type:"vec4<f32>"},uAlpha:{value:1,type:"f32"},uInverse:{value:t.inverse?1:0,type:"f32"},uChannel:{value:t.channel==="alpha"?1:0,type:"f32"}}),o=ve.from({vertex:{source:Yh,entryPoint:"mainVertex"},fragment:{source:Yh,entryPoint:"mainFragment"}}),a=be.from({vertex:Bx,fragment:Rx,name:"mask-filter"});super({...r,gpuProgram:o,glProgram:a,clipToViewport:!1,resources:{filterUniforms:n,uMaskTexture:e.texture.source}}),this.sprite=e,this._textureMatrix=s}setSprite(t){this.sprite=t;let e=this._getSafeTexture();this._textureMatrix.texture=e,this.resources.uMaskTexture=e.source}set inverse(t){this.resources.filterUniforms.uniforms.uInverse=t?1:0}get inverse(){return this.resources.filterUniforms.uniforms.uInverse===1}set channel(t){this.resources.filterUniforms.uniforms.uChannel=t==="alpha"?1:0}get channel(){return this.resources.filterUniforms.uniforms.uChannel===1?"alpha":"red"}apply(t,e,r,s){let n=this._getSafeTexture();this._textureMatrix.texture=n,t.calculateSpriteMatrix(this.resources.filterUniforms.uniforms.uFilterMatrix,this.sprite).prepend(this._textureMatrix.mapCoord),this.resources.uMaskTexture=n.source,t.applyFilter(this,e,r,s)}_getSafeTexture(){let t=this.sprite.texture;return t.destroyed||!t.source||t.source.destroyed?(L("[MaskFilter] The mask texture was destroyed while the mask is still in use. Remove the mask before destroying its texture."),U.EMPTY):t}destroy(t=!1){this._textureMatrix.destroy(),super.destroy(t)}}});var yT,$h,qr,qh=p(()=>{P();To();Fx();ie();xs();zo();Ke();gt();Fr();Ne();yT=new dt,$h=class extends Ze{constructor(){super(),this._placeholderSprite=new pe(U.EMPTY),this.filters=[new ka({sprite:this._placeholderSprite,inverse:!1,resolution:"inherit",antialias:"inherit"})]}get sprite(){return this.filters[0].sprite}set sprite(t){this.filters[0].setSprite(t)}get inverse(){return this.filters[0].inverse}set inverse(t){this.filters[0].inverse=t}get channel(){return this.filters[0].channel}set channel(t){this.filters[0].channel=t}reset(){this._placeholderSprite.texture=U.EMPTY,this.sprite=this._placeholderSprite}},qr=class{constructor(t){this._activeMaskStage=[],this._usedEffects=[],this._renderer=t,t.runners.postrender.add(this)}push(t,e,r){let s=this._renderer;if(s.renderPipes.batch.break(r),r.add({renderPipeId:"alphaMask",action:"pushMaskBegin",mask:t,inverse:e._maskOptions.inverse,canBundle:!1,maskedContainer:e}),t.inverse=e._maskOptions.inverse,t.channel=e._maskOptions.channel??"red",t.renderMaskToTexture){let n=t.mask;n.includeInBuild=!0,n.collectRenderables(r,s,null),n.includeInBuild=!1}s.renderPipes.batch.break(r),r.add({renderPipeId:"alphaMask",action:"pushMaskEnd",mask:t,maskedContainer:e,inverse:e._maskOptions.inverse,canBundle:!1})}pop(t,e,r){this._renderer.renderPipes.batch.break(r),r.add({renderPipeId:"alphaMask",action:"popMaskEnd",mask:t,inverse:e._maskOptions.inverse,canBundle:!1})}execute(t){let e=this._renderer,r=t.mask.renderMaskToTexture;if(t.action==="pushMaskBegin"){let s=bt.get($h);if(s.inverse=t.inverse,s.channel=t.mask.channel,r){t.mask.mask.measurable=!0;let n=gi(t.mask.mask,!0,yT);t.mask.mask.measurable=!1,n.ceil();let o=e.renderTarget.renderTarget.colorTexture.source,a=Mt.getOptimalTexture(n.width,n.height,o._resolution,o.antialias);e.renderTarget.push({target:a,clear:!0}),e.globalUniforms.push({offset:n,worldColor:4294967295});let l=s.sprite;l.texture=a,l.worldTransform.tx=n.minX,l.worldTransform.ty=n.minY,this._activeMaskStage.push({filterEffect:s,maskedContainer:t.maskedContainer,filterTexture:a})}else s.sprite=t.mask.mask,this._activeMaskStage.push({filterEffect:s,maskedContainer:t.maskedContainer})}else if(t.action==="pushMaskEnd"){let s=this._activeMaskStage[this._activeMaskStage.length-1];r&&(e.type===Lt.WEBGL&&e.renderTarget.finishRenderPass(),e.renderTarget.pop(),e.globalUniforms.pop()),e.filter.push({renderPipeId:"filter",action:"pushFilter",container:s.maskedContainer,filterEffect:s.filterEffect,canBundle:!1})}else if(t.action==="popMaskEnd"){e.filter.pop();let s=this._activeMaskStage.pop();r&&Mt.returnTexture(s.filterTexture),this._usedEffects.push(s.filterEffect)}}postrender(){let t=this._usedEffects;for(let e=0;e<t.length;e++)bt.return(t[e]);t.length=0}destroy(){this.postrender(),this._renderer.runners.postrender.remove(this),this._renderer=null,this._activeMaskStage=null,this._usedEffects=null}};qr.extension={type:[y.WebGLPipes,y.WebGPUPipes,y.CanvasPipes],name:"alphaMask"}});var un,Ux=p(()=>{P();un=class{constructor(t){this._colorStack=[],this._colorStackIndex=0,this._currentColor=0,this._renderer=t}buildStart(){this._colorStack[0]=15,this._colorStackIndex=1,this._currentColor=15}push(t,e,r){this._renderer.renderPipes.batch.break(r);let n=this._colorStack;n[this._colorStackIndex]=n[this._colorStackIndex-1]&t.mask;let o=this._colorStack[this._colorStackIndex];o!==this._currentColor&&(this._currentColor=o,r.add({renderPipeId:"colorMask",colorMask:o,canBundle:!1})),this._colorStackIndex++}pop(t,e,r){this._renderer.renderPipes.batch.break(r);let n=this._colorStack;this._colorStackIndex--;let o=n[this._colorStackIndex-1];o!==this._currentColor&&(this._currentColor=o,r.add({renderPipeId:"colorMask",colorMask:o,canBundle:!1}))}execute(t){this._renderer.colorMask.setMask(t.colorMask)}destroy(){this._renderer=null,this._colorStack=null}};un.extension={type:[y.WebGLPipes,y.WebGPUPipes],name:"colorMask"}});var dn,Dx=p(()=>{P();ki();$r();dn=class{constructor(t){this._maskStackHash={},this._maskHash=new WeakMap,this._renderer=t}push(t,e,r){var s;let n=t,o=this._renderer;o.renderPipes.batch.break(r),o.renderPipes.blendMode.setBlendMode(n.mask,"none",r),r.add({renderPipeId:"stencilMask",action:"pushMaskBegin",mask:t,inverse:e._maskOptions.inverse,canBundle:!1});let a=n.mask;a.includeInBuild=!0,this._maskHash.has(n)||this._maskHash.set(n,{instructionsStart:0,instructionsLength:0});let l=this._maskHash.get(n);l.instructionsStart=r.instructionSize,a.collectRenderables(r,o,null),a.includeInBuild=!1,o.renderPipes.batch.break(r),r.add({renderPipeId:"stencilMask",action:"pushMaskEnd",mask:t,inverse:e._maskOptions.inverse,canBundle:!1});let c=r.instructionSize-l.instructionsStart-1;l.instructionsLength=c;let h=o.renderTarget.renderTarget.uid;(s=this._maskStackHash)[h]??(s[h]=0)}pop(t,e,r){let s=t,n=this._renderer;n.renderPipes.batch.break(r),n.renderPipes.blendMode.setBlendMode(s.mask,"none",r),r.add({renderPipeId:"stencilMask",action:"popMaskBegin",inverse:e._maskOptions.inverse,canBundle:!1});let o=this._maskHash.get(t);for(let a=0;a<o.instructionsLength;a++)r.instructions[r.instructionSize++]=r.instructions[o.instructionsStart++];r.add({renderPipeId:"stencilMask",action:"popMaskEnd",canBundle:!1})}execute(t){var e;let r=this._renderer,s=r,n=r.renderTarget.renderTarget.uid,o=(e=this._maskStackHash)[n]??(e[n]=0);t.action==="pushMaskBegin"?(s.renderTarget.ensureDepthStencil(),s.stencil.setStencilMode(vt.RENDERING_MASK_ADD,o),o++,s.colorMask.setMask(0)):t.action==="pushMaskEnd"?(t.inverse?s.stencil.setStencilMode(vt.INVERSE_MASK_ACTIVE,o):s.stencil.setStencilMode(vt.MASK_ACTIVE,o),s.colorMask.setMask(15)):t.action==="popMaskBegin"?(s.colorMask.setMask(0),o!==0?s.stencil.setStencilMode(vt.RENDERING_MASK_REMOVE,o):(s.renderTarget.clear(null,Et.STENCIL),s.stencil.setStencilMode(vt.DISABLED,o)),o--):t.action==="popMaskEnd"&&(t.inverse?s.stencil.setStencilMode(vt.INVERSE_MASK_ACTIVE,o):s.stencil.setStencilMode(vt.MASK_ACTIVE,o),s.colorMask.setMask(15)),this._maskStackHash[n]=o}destroy(){this._renderer=null,this._maskStackHash=null,this._maskHash=null}};dn.extension={type:[y.WebGLPipes,y.WebGPUPipes],name:"stencilMask"}});var Kh,Ox,Nx=p(()=>{Qt();P();ht();Kh=class Lx{constructor(){this.clearBeforeRender=!0,this._backgroundColor=new Q(0),this.color=this._backgroundColor,this.alpha=1}init(t){t={...Lx.defaultOptions,...t},this.clearBeforeRender=t.clearBeforeRender,this.color=t.background||t.backgroundColor||this._backgroundColor,this.alpha=t.backgroundAlpha,this._backgroundColor.setAlpha(t.backgroundAlpha)}get color(){return this._backgroundColor}set color(t){Q.shared.setValue(t).alpha<1&&this._backgroundColor.alpha===1&&L("Cannot set a transparent background on an opaque canvas. To enable transparency, set backgroundAlpha < 1 when initializing your Application."),this._backgroundColor.setValue(t)}get alpha(){return this._backgroundColor.alpha}set alpha(t){this._backgroundColor.setAlpha(t)}get colorRgba(){return this._backgroundColor.toArray()}destroy(){}};Kh.extension={type:[y.WebGLSystem,y.WebGPUSystem,y.CanvasSystem],name:"background",priority:0};Kh.defaultOptions={backgroundAlpha:1,backgroundColor:0,clearBeforeRender:!0};Ox=Kh});var fn,Kr,Zh=p(()=>{P();To();uc();ht();fn={};z.handle(y.BlendMode,i=>{if(!i.name)throw new Error("BlendMode extension must have a name property");fn[i.name]=i.ref},i=>{delete fn[i.name]});Kr=class{constructor(t){this._blendModeStack=[],this._isAdvanced=!1,this._filterHash=Object.create(null),this._renderer=t,this._renderer.runners.prerender.add(this)}prerender(){this._activeBlendMode="normal",this._isAdvanced=!1}pushBlendMode(t,e,r){this._blendModeStack.push(e),this.setBlendMode(t,e,r)}popBlendMode(t){this._blendModeStack.pop();let e=this._blendModeStack[this._activeBlendMode.length-1]??"normal";this.setBlendMode(null,e,t)}setBlendMode(t,e,r){let s=t instanceof Ur;if(this._activeBlendMode===e){this._isAdvanced&&t&&!s&&this._renderableList?.push(t);return}this._isAdvanced&&this._endAdvancedBlendMode(r),this._activeBlendMode=e,t&&(this._isAdvanced=!!fn[e],this._isAdvanced&&this._beginAdvancedBlendMode(t,r))}_beginAdvancedBlendMode(t,e){this._renderer.renderPipes.batch.break(e);let r=this._activeBlendMode;if(!fn[r]){L(`Unable to assign BlendMode: '${r}'. You may want to include: import 'pixi.js/advanced-blend-modes'`);return}let s=this._ensureFilterEffect(r),n=t instanceof Ur,o={renderPipeId:"filter",action:"pushFilter",filterEffect:s,renderables:n?null:[t],container:n?t.root:null,canBundle:!1};this._renderableList=o.renderables,e.add(o)}_ensureFilterEffect(t){let e=this._filterHash[t];return e||(e=this._filterHash[t]=new Ze,e.filters=[new fn[t]]),e}_endAdvancedBlendMode(t){this._isAdvanced=!1,this._renderableList=null,this._renderer.renderPipes.batch.break(t),t.add({renderPipeId:"filter",action:"popFilter",canBundle:!1})}buildStart(){this._isAdvanced=!1}buildEnd(t){this._isAdvanced&&this._endAdvancedBlendMode(t)}destroy(){this._renderer=null,this._renderableList=null;for(let t in this._filterHash)this._filterHash[t].destroy();this._filterHash=null}};Kr.extension={type:[y.WebGLPipes,y.WebGPUPipes,y.CanvasPipes],name:"blendMode"}});var Qh,Jh,Hx,Wx=p(()=>{xt();P();Pe();gt();Qh={png:"image/png",jpg:"image/jpeg",webp:"image/webp"},Jh=class zx{constructor(t){this._renderer=t}_normalizeOptions(t,e={}){return t instanceof mt||t instanceof U?{target:t,...e}:{...e,...t}}async image(t){let e=W.get().createImage();return e.src=await this.base64(t),e}async base64(t){t=this._normalizeOptions(t,zx.defaultImageOptions);let{format:e,quality:r}=t,s=this.canvas(t);if(s.toBlob!==void 0)return new Promise((n,o)=>{s.toBlob(a=>{if(!a){o(new Error("ICanvas.toBlob failed!"));return}let l=new FileReader;l.onload=()=>n(l.result),l.onerror=o,l.readAsDataURL(a)},Qh[e],r)});if(s.toDataURL!==void 0)return s.toDataURL(Qh[e],r);if(s.convertToBlob!==void 0){let n=await s.convertToBlob({type:Qh[e],quality:r});return new Promise((o,a)=>{let l=new FileReader;l.onload=()=>o(l.result),l.onerror=a,l.readAsDataURL(n)})}throw new Error("Extract.base64() requires ICanvas.toDataURL, ICanvas.toBlob, or ICanvas.convertToBlob to be implemented")}canvas(t){t=this._normalizeOptions(t);let e=t.target,r=this._renderer;if(e instanceof U)return r.texture.generateCanvas(e);let s=r.textureGenerator.generateTexture(t),n=r.texture.generateCanvas(s);return s.destroy(!0),n}pixels(t){t=this._normalizeOptions(t);let e=t.target,r=this._renderer,s=e instanceof U?e:r.textureGenerator.generateTexture(t),n=r.texture.getPixels(s);return e instanceof mt&&s.destroy(!0),n}texture(t){return t=this._normalizeOptions(t),t.target instanceof U?t.target:this._renderer.textureGenerator.generateTexture(t)}download(t){t=this._normalizeOptions(t);let e=this.canvas(t),r=document.createElement("a");r.download=t.filename??"image.png",r.href=e.toDataURL("image/png"),document.body.appendChild(r),r.click(),document.body.removeChild(r)}log(t){let e=t.width??200;t=this._normalizeOptions(t);let r=this.canvas(t),s=r.toDataURL();console.log(`[Pixi Texture] ${r.width}px ${r.height}px`);let n=["font-size: 1px;",`padding: ${e}px 300px;`,`background: url(${s}) no-repeat;`,"background-size: contain;"].join(" ");console.log("%c ",n)}destroy(){this._renderer=null}};Jh.extension={type:[y.WebGLSystem,y.WebGPUSystem,y.CanvasSystem],name:"extract"};Jh.defaultImageOptions={format:"png",quality:1};Hx=Jh});var Ba,Vx=p(()=>{$t();gt();Ba=class i extends U{static create(t){let{dynamic:e,textureOptions:r,...s}=t;return new i({...r,source:new st(s),dynamic:e??!1})}resize(t,e,r){return this.source.resize(t,e,r),this}}});var bT,vT,ST,pn,jx=p(()=>{Qt();P();ot();Yt();ie();Mo();Pe();Vx();bT=new J,vT=new dt,ST=[0,0,0,0],pn=class{constructor(t){this._renderer=t}generateTexture(t){t instanceof mt&&(t={target:t,frame:void 0,textureSourceOptions:{},resolution:void 0});let e=t.resolution||this._renderer.resolution,r=t.antialias||this._renderer.view.antialias,s=t.target,n=t.clearColor;n?n=Array.isArray(n)&&n.length===4?n:Q.shared.setValue(n).toArray():n=ST;let o=t.frame?.copyTo(bT)||_i(s,vT).rectangle,a=t.defaultAnchor&&{defaultAnchor:t.defaultAnchor};o.width=Math.max(o.width,1/e)|0,o.height=Math.max(o.height,1/e)|0;let l=Ba.create({...t.textureSourceOptions,width:o.width,height:o.height,resolution:e,antialias:r,textureOptions:a}),c=k.shared.translate(-o.x,-o.y);return this._renderer.render({container:s,transform:c,target:l,clearColor:n}),l.source.updateMipmaps(),l}destroy(){this._renderer=null}};pn.extension={type:[y.WebGLSystem,y.WebGPUSystem,y.CanvasSystem],name:"textureGenerator"}});function Xx(i){let t=!1;for(let r in i)if(i[r]==null){t=!0;break}if(!t)return i;let e=Object.create(null);for(let r in i){let s=i[r];s&&(e[r]=s)}return e}function Yx(i){let t=0;for(let e=0;e<i.length;e++)i[e]==null?t++:i[e-t]=i[e];return i.length-=t,i}var $x=p(()=>{"use strict"});var tu,Kx,Zx=p(()=>{P();$x();tu=class qx{constructor(t){this._managedResources=[],this._managedResourceHashes=[],this._managedCollections=[],this._ready=!1,this._renderer=t}init(t){t={...qx.defaultOptions,...t},this.maxUnusedTime=t.gcMaxUnusedTime,this._frequency=t.gcFrequency,this.enabled=t.gcActive,this.now=performance.now()}get enabled(){return!!this._handler}set enabled(t){this.enabled!==t&&(t?(this._handler=this._renderer.scheduler.repeat(()=>{this._ready=!0},this._frequency,!1),this._collectionsHandler=this._renderer.scheduler.repeat(()=>{for(let e of this._managedCollections){let{context:r,collection:s,type:n}=e;n==="hash"?r[s]=Xx(r[s]):r[s]=Yx(r[s])}},this._frequency)):(this._renderer.scheduler.cancel(this._handler),this._renderer.scheduler.cancel(this._collectionsHandler),this._handler=0,this._collectionsHandler=0))}prerender({container:t}){this.now=performance.now(),t.renderGroup.gcTick=this._renderer.tick++,this._updateInstructionGCTick(t.renderGroup,t.renderGroup.gcTick)}postrender(){!this._ready||!this.enabled||(this.run(),this._ready=!1)}_updateInstructionGCTick(t,e){t.instructionSet.gcTick=e,t.gcTick=e;for(let r of t.renderGroupChildren)this._updateInstructionGCTick(r,e)}addCollection(t,e,r){this._managedCollections.push({context:t,collection:e,type:r})}addResource(t,e){if(t._gcLastUsed!==-1){t._gcLastUsed=this.now,t._onTouch?.(this.now);return}let r=this._managedResources.length;t._gcData={index:r,type:e},t._gcLastUsed=this.now,t._onTouch?.(this.now),t.once("unload",this.removeResource,this),this._managedResources.push(t)}removeResource(t){let e=t._gcData;if(!e)return;let r=e.index,s=this._managedResources.length-1;if(r!==s){let n=this._managedResources[s];this._managedResources[r]=n,n._gcData.index=r}this._managedResources.length--,t._gcData=null,t._gcLastUsed=-1}addResourceHash(t,e,r,s=0){this._managedResourceHashes.push({context:t,hash:e,type:r,priority:s}),this._managedResourceHashes.sort((n,o)=>n.priority-o.priority)}run(){let t=performance.now(),e=this._managedResourceHashes;for(let s of e)this.runOnHash(s,t);let r=0;for(let s=0;s<this._managedResources.length;s++){let n=this._managedResources[s];r=this.runOnResource(n,t,r)}this._managedResources.length=r}updateRenderableGCTick(t,e){let r=t.renderGroup??t.parentRenderGroup,s=r?.instructionSet?.gcTick??-1;(r?.gcTick??0)===s&&(t._gcLastUsed=e,t._onTouch?.(e))}runOnResource(t,e,r){let s=t._gcData;return s.type==="renderable"&&this.updateRenderableGCTick(t,e),e-t._gcLastUsed<this.maxUnusedTime||!t.autoGarbageCollect?(this._managedResources[r]=t,s.index=r,r++):(t.unload(),t._gcData=null,t._gcLastUsed=-1,t.off("unload",this.removeResource,this)),r}_createHashClone(t,e){let r=Object.create(null);for(let s in t){if(s===e)break;t[s]!==null&&(r[s]=t[s])}return r}runOnHash(t,e){let{context:r,hash:s,type:n}=t,o=r[s],a=null,l=0;for(let c in o){let h=o[c];if(h===null){l++,l===1e4&&!a&&(a=this._createHashClone(o,c));continue}if(h._gcLastUsed===-1){h._gcLastUsed=e,h._onTouch?.(e),a&&(a[c]=h);continue}if(n==="renderable"&&this.updateRenderableGCTick(h,e),!(e-h._gcLastUsed<this.maxUnusedTime)&&h.autoGarbageCollect){if(n==="renderable"){let d=h,f=d.renderGroup??d.parentRenderGroup;f&&(f.structureDidChange=!0)}h.unload(),h._gcData=null,h._gcLastUsed=-1,a||(l+1!==1e4?(o[c]=null,l++):a=this._createHashClone(o,c))}else a&&(a[c]=h)}a&&(r[s]=a)}destroy(){this.enabled=!1,this._managedResources.forEach(t=>{t.off("unload",this.removeResource,this)}),this._managedResources.length=0,this._managedResourceHashes.length=0,this._managedCollections.length=0,this._renderer=null}};tu.extension={type:[y.WebGLSystem,y.WebGPUSystem,y.CanvasSystem],name:"gc",priority:0};tu.defaultOptions={gcActive:!0,gcMaxUnusedTime:6e4,gcFrequency:3e4};Kx=tu});function Hi(i,t,e){let r=(i>>24&255)/255;t[e++]=(i&255)/255*r,t[e++]=(i>>8&255)/255*r,t[e++]=(i>>16&255)/255*r,t[e++]=r}var Ia=p(()=>{"use strict"});var mn,Qx=p(()=>{P();ot();Ee();Ia();mr();Ne();me();mn=class{constructor(t){this._stackIndex=0,this._globalUniformDataStack=[],this._uniformsPool=[],this._activeUniforms=[],this._bindGroupPool=[],this._activeBindGroups=[],this._renderer=t}reset(){this._stackIndex=0;for(let t=0;t<this._activeUniforms.length;t++)this._uniformsPool.push(this._activeUniforms[t]);for(let t=0;t<this._activeBindGroups.length;t++)this._bindGroupPool.push(this._activeBindGroups[t]);this._activeUniforms.length=0,this._activeBindGroups.length=0}start(t){this.reset(),this.push(t)}bind({size:t,projectionMatrix:e,worldTransformMatrix:r,worldColor:s,offset:n}){let o=this._renderer.renderTarget.renderTarget,a=this._stackIndex?this._globalUniformDataStack[this._stackIndex-1]:{projectionData:o,worldTransformMatrix:new k,worldColor:4294967295,offset:new nt},l={projectionMatrix:e||this._renderer.renderTarget.projectionMatrix,resolution:t||o.size,worldTransformMatrix:r||a.worldTransformMatrix,worldColor:s||a.worldColor,offset:n||a.offset,bindGroup:null},c=this._uniformsPool.pop()||this._createUniforms();this._activeUniforms.push(c);let h=c.uniforms;h.uProjectionMatrix=l.projectionMatrix,h.uResolution=l.resolution,h.uWorldTransformMatrix.copyFrom(l.worldTransformMatrix),h.uWorldTransformMatrix.tx-=l.offset.x,h.uWorldTransformMatrix.ty-=l.offset.y,Hi(l.worldColor,h.uWorldColorAlpha,0),c.update();let u;this._renderer.renderPipes.uniformBatch?u=this._renderer.renderPipes.uniformBatch.getUniformBindGroup(c,!1):(u=this._bindGroupPool.pop()||new Vt,this._activeBindGroups.push(u),u.setResource(c,0)),l.bindGroup=u,this._currentGlobalUniformData=l}push(t){this.bind(t),this._globalUniformDataStack[this._stackIndex++]=this._currentGlobalUniformData}pop(){this._currentGlobalUniformData=this._globalUniformDataStack[--this._stackIndex-1],this._renderer.type===Lt.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 Ct({uProjectionMatrix:{value:new k,type:"mat3x3<f32>"},uWorldTransformMatrix:{value:new k,type:"mat3x3<f32>"},uWorldColorAlpha:{value:new Float32Array(4),type:"vec4<f32>"},uResolution:{value:[0,0],type:"vec2<f32>"}},{isStatic:!0})}destroy(){this._renderer=null,this._globalUniformDataStack.length=0,this._uniformsPool.length=0,this._activeUniforms.length=0,this._bindGroupPool.length=0,this._activeBindGroups.length=0,this._currentGlobalUniformData=null}};mn.extension={type:[y.WebGLSystem,y.WebGPUSystem,y.CanvasSystem],name:"globalUniforms"}});var TT,gn,Jx=p(()=>{P();Si();TT=1,gn=class{constructor(){this._tasks=[],this._offset=0}init(){qt.system.add(this._update,this)}repeat(t,e,r=!0){let s=TT++,n=0;return r&&(this._offset+=1e3,n=this._offset),this._tasks.push({func:t,duration:e,start:performance.now(),offset:n,last:performance.now(),repeat:!0,id:s}),s}cancel(t){for(let e=0;e<this._tasks.length;e++)if(this._tasks[e].id===t){this._tasks.splice(e,1);return}}_update(){let t=performance.now();for(let e=0;e<this._tasks.length;e++){let r=this._tasks[e];if(t-r.offset-r.last>=r.duration){let s=t-r.start;r.func(s),r.last=t}}}destroy(){qt.system.remove(this._update,this),this._tasks.length=0}};gn.extension={type:[y.WebGLSystem,y.WebGPUSystem,y.CanvasSystem],name:"scheduler",priority:0}});function e_(i){if(!t_){if(W.get().getNavigator().userAgent.toLowerCase().indexOf("chrome")>-1){let t=[`%c %c %c %c %c PixiJS %c v${Ni} (${i}) http://www.pixijs.com/
570
+ `});var Ba,Dx=p(()=>{ot();Nr();Ri();me();gt();cc();ht();ah();Ix();Fx();Ux();Ba=class extends aa{constructor(t){let{sprite:e,...r}=t,s=new bi(e.texture),n=new Ct({uFilterMatrix:{value:new k,type:"mat3x3<f32>"},uMaskClamp:{value:s.uClampFrame,type:"vec4<f32>"},uAlpha:{value:1,type:"f32"},uInverse:{value:t.inverse?1:0,type:"f32"},uChannel:{value:t.channel==="alpha"?1:0,type:"f32"}}),o=ve.from({vertex:{source:Yh,entryPoint:"mainVertex"},fragment:{source:Yh,entryPoint:"mainFragment"}}),a=be.from({vertex:Gx,fragment:Bx,name:"mask-filter"});super({...r,gpuProgram:o,glProgram:a,clipToViewport:!1,resources:{filterUniforms:n,uMaskTexture:e.texture.source}}),this.sprite=e,this._textureMatrix=s}setSprite(t){this.sprite=t;let e=this._getSafeTexture();this._textureMatrix.texture=e,this.resources.uMaskTexture=e.source}set inverse(t){this.resources.filterUniforms.uniforms.uInverse=t?1:0}get inverse(){return this.resources.filterUniforms.uniforms.uInverse===1}set channel(t){this.resources.filterUniforms.uniforms.uChannel=t==="alpha"?1:0}get channel(){return this.resources.filterUniforms.uniforms.uChannel===1?"alpha":"red"}apply(t,e,r,s){let n=this._getSafeTexture();this._textureMatrix.texture=n,t.calculateSpriteMatrix(this.resources.filterUniforms.uniforms.uFilterMatrix,this.sprite).prepend(this._textureMatrix.mapCoord),this.resources.uMaskTexture=n.source,t.applyFilter(this,e,r,s)}_getSafeTexture(){let t=this.sprite.texture;return t.destroyed||!t.source||t.source.destroyed?(L("[MaskFilter] The mask texture was destroyed while the mask is still in use. Remove the mask before destroying its texture."),F.EMPTY):t}destroy(t=!1){this._textureMatrix.destroy(),super.destroy(t)}}});var ST,$h,qr,qh=p(()=>{P();wo();Dx();ie();_s();Ho();Ke();gt();Fr();Ne();ST=new dt,$h=class extends Ze{constructor(){super(),this._placeholderSprite=new he(F.EMPTY),this.filters=[new Ba({sprite:this._placeholderSprite,inverse:!1,resolution:"inherit",antialias:"inherit"})]}get sprite(){return this.filters[0].sprite}set sprite(t){this.filters[0].setSprite(t)}get inverse(){return this.filters[0].inverse}set inverse(t){this.filters[0].inverse=t}get channel(){return this.filters[0].channel}set channel(t){this.filters[0].channel=t}reset(){this._placeholderSprite.texture=F.EMPTY,this.sprite=this._placeholderSprite}},qr=class{constructor(t){this._activeMaskStage=[],this._usedEffects=[],this._renderer=t,t.runners.postrender.add(this)}push(t,e,r){let s=this._renderer;if(s.renderPipes.batch.break(r),r.add({renderPipeId:"alphaMask",action:"pushMaskBegin",mask:t,inverse:e._maskOptions.inverse,canBundle:!1,maskedContainer:e}),t.inverse=e._maskOptions.inverse,t.channel=e._maskOptions.channel??"red",t.renderMaskToTexture){let n=t.mask;n.includeInBuild=!0,n.collectRenderables(r,s,null),n.includeInBuild=!1}s.renderPipes.batch.break(r),r.add({renderPipeId:"alphaMask",action:"pushMaskEnd",mask:t,maskedContainer:e,inverse:e._maskOptions.inverse,canBundle:!1})}pop(t,e,r){this._renderer.renderPipes.batch.break(r),r.add({renderPipeId:"alphaMask",action:"popMaskEnd",mask:t,inverse:e._maskOptions.inverse,canBundle:!1})}execute(t){let e=this._renderer,r=t.mask.renderMaskToTexture;if(t.action==="pushMaskBegin"){let s=bt.get($h);if(s.inverse=t.inverse,s.channel=t.mask.channel,r){t.mask.mask.measurable=!0;let n=xi(t.mask.mask,!0,ST);t.mask.mask.measurable=!1,n.ceil();let o=e.renderTarget.renderTarget.colorTexture.source,a=Mt.getOptimalTexture(n.width,n.height,o._resolution,o.antialias);e.renderTarget.push({target:a,clear:!0}),e.globalUniforms.push({offset:n,worldColor:4294967295});let l=s.sprite;l.texture=a,l.worldTransform.tx=n.minX,l.worldTransform.ty=n.minY,this._activeMaskStage.push({filterEffect:s,maskedContainer:t.maskedContainer,filterTexture:a})}else s.sprite=t.mask.mask,this._activeMaskStage.push({filterEffect:s,maskedContainer:t.maskedContainer})}else if(t.action==="pushMaskEnd"){let s=this._activeMaskStage[this._activeMaskStage.length-1];r&&(e.type===Lt.WEBGL&&e.renderTarget.finishRenderPass(),e.renderTarget.pop(),e.globalUniforms.pop()),e.filter.push({renderPipeId:"filter",action:"pushFilter",container:s.maskedContainer,filterEffect:s.filterEffect,canBundle:!1})}else if(t.action==="popMaskEnd"){e.filter.pop();let s=this._activeMaskStage.pop();r&&Mt.returnTexture(s.filterTexture),this._usedEffects.push(s.filterEffect)}}postrender(){let t=this._usedEffects;for(let e=0;e<t.length;e++)bt.return(t[e]);t.length=0}destroy(){this.postrender(),this._renderer.runners.postrender.remove(this),this._renderer=null,this._activeMaskStage=null,this._usedEffects=null}};qr.extension={type:[y.WebGLPipes,y.WebGPUPipes,y.CanvasPipes],name:"alphaMask"}});var dn,Lx=p(()=>{P();dn=class{constructor(t){this._colorStack=[],this._colorStackIndex=0,this._currentColor=0,this._renderer=t}buildStart(){this._colorStack[0]=15,this._colorStackIndex=1,this._currentColor=15}push(t,e,r){this._renderer.renderPipes.batch.break(r);let n=this._colorStack;n[this._colorStackIndex]=n[this._colorStackIndex-1]&t.mask;let o=this._colorStack[this._colorStackIndex];o!==this._currentColor&&(this._currentColor=o,r.add({renderPipeId:"colorMask",colorMask:o,canBundle:!1})),this._colorStackIndex++}pop(t,e,r){this._renderer.renderPipes.batch.break(r);let n=this._colorStack;this._colorStackIndex--;let o=n[this._colorStackIndex-1];o!==this._currentColor&&(this._currentColor=o,r.add({renderPipeId:"colorMask",colorMask:o,canBundle:!1}))}execute(t){this._renderer.colorMask.setMask(t.colorMask)}destroy(){this._renderer=null,this._colorStack=null}};dn.extension={type:[y.WebGLPipes,y.WebGPUPipes],name:"colorMask"}});var fn,Ox=p(()=>{P();Bi();$r();fn=class{constructor(t){this._maskStackHash={},this._maskHash=new WeakMap,this._renderer=t}push(t,e,r){var s;let n=t,o=this._renderer;o.renderPipes.batch.break(r),o.renderPipes.blendMode.setBlendMode(n.mask,"none",r),r.add({renderPipeId:"stencilMask",action:"pushMaskBegin",mask:t,inverse:e._maskOptions.inverse,canBundle:!1});let a=n.mask;a.includeInBuild=!0,this._maskHash.has(n)||this._maskHash.set(n,{instructionsStart:0,instructionsLength:0});let l=this._maskHash.get(n);l.instructionsStart=r.instructionSize,a.collectRenderables(r,o,null),a.includeInBuild=!1,o.renderPipes.batch.break(r),r.add({renderPipeId:"stencilMask",action:"pushMaskEnd",mask:t,inverse:e._maskOptions.inverse,canBundle:!1});let c=r.instructionSize-l.instructionsStart-1;l.instructionsLength=c;let h=o.renderTarget.renderTarget.uid;(s=this._maskStackHash)[h]??(s[h]=0)}pop(t,e,r){let s=t,n=this._renderer;n.renderPipes.batch.break(r),n.renderPipes.blendMode.setBlendMode(s.mask,"none",r),r.add({renderPipeId:"stencilMask",action:"popMaskBegin",inverse:e._maskOptions.inverse,canBundle:!1});let o=this._maskHash.get(t);for(let a=0;a<o.instructionsLength;a++)r.instructions[r.instructionSize++]=r.instructions[o.instructionsStart++];r.add({renderPipeId:"stencilMask",action:"popMaskEnd",canBundle:!1})}execute(t){var e;let r=this._renderer,s=r,n=r.renderTarget.renderTarget.uid,o=(e=this._maskStackHash)[n]??(e[n]=0);t.action==="pushMaskBegin"?(s.renderTarget.ensureDepthStencil(),s.stencil.setStencilMode(vt.RENDERING_MASK_ADD,o),o++,s.colorMask.setMask(0)):t.action==="pushMaskEnd"?(t.inverse?s.stencil.setStencilMode(vt.INVERSE_MASK_ACTIVE,o):s.stencil.setStencilMode(vt.MASK_ACTIVE,o),s.colorMask.setMask(15)):t.action==="popMaskBegin"?(s.colorMask.setMask(0),o!==0?s.stencil.setStencilMode(vt.RENDERING_MASK_REMOVE,o):(s.renderTarget.clear(null,Et.STENCIL),s.stencil.setStencilMode(vt.DISABLED,o)),o--):t.action==="popMaskEnd"&&(t.inverse?s.stencil.setStencilMode(vt.INVERSE_MASK_ACTIVE,o):s.stencil.setStencilMode(vt.MASK_ACTIVE,o),s.colorMask.setMask(15)),this._maskStackHash[n]=o}destroy(){this._renderer=null,this._maskStackHash=null,this._maskHash=null}};fn.extension={type:[y.WebGLPipes,y.WebGPUPipes],name:"stencilMask"}});var Kh,zx,Hx=p(()=>{Qt();P();ht();Kh=class Nx{constructor(){this.clearBeforeRender=!0,this._backgroundColor=new Q(0),this.color=this._backgroundColor,this.alpha=1}init(t){t={...Nx.defaultOptions,...t},this.clearBeforeRender=t.clearBeforeRender,this.color=t.background||t.backgroundColor||this._backgroundColor,this.alpha=t.backgroundAlpha,this._backgroundColor.setAlpha(t.backgroundAlpha)}get color(){return this._backgroundColor}set color(t){Q.shared.setValue(t).alpha<1&&this._backgroundColor.alpha===1&&L("Cannot set a transparent background on an opaque canvas. To enable transparency, set backgroundAlpha < 1 when initializing your Application."),this._backgroundColor.setValue(t)}get alpha(){return this._backgroundColor.alpha}set alpha(t){this._backgroundColor.setAlpha(t)}get colorRgba(){return this._backgroundColor.toArray()}destroy(){}};Kh.extension={type:[y.WebGLSystem,y.WebGPUSystem,y.CanvasSystem],name:"background",priority:0};Kh.defaultOptions={backgroundAlpha:1,backgroundColor:0,clearBeforeRender:!0};zx=Kh});var pn,Kr,Zh=p(()=>{P();wo();uc();ht();pn={};z.handle(y.BlendMode,i=>{if(!i.name)throw new Error("BlendMode extension must have a name property");pn[i.name]=i.ref},i=>{delete pn[i.name]});Kr=class{constructor(t){this._blendModeStack=[],this._isAdvanced=!1,this._filterHash=Object.create(null),this._renderer=t,this._renderer.runners.prerender.add(this)}prerender(){this._activeBlendMode="normal",this._isAdvanced=!1}pushBlendMode(t,e,r){this._blendModeStack.push(e),this.setBlendMode(t,e,r)}popBlendMode(t){this._blendModeStack.pop();let e=this._blendModeStack[this._activeBlendMode.length-1]??"normal";this.setBlendMode(null,e,t)}setBlendMode(t,e,r){let s=t instanceof Ur;if(this._activeBlendMode===e){this._isAdvanced&&t&&!s&&this._renderableList?.push(t);return}this._isAdvanced&&this._endAdvancedBlendMode(r),this._activeBlendMode=e,t&&(this._isAdvanced=!!pn[e],this._isAdvanced&&this._beginAdvancedBlendMode(t,r))}_beginAdvancedBlendMode(t,e){this._renderer.renderPipes.batch.break(e);let r=this._activeBlendMode;if(!pn[r]){L(`Unable to assign BlendMode: '${r}'. You may want to include: import 'pixi.js/advanced-blend-modes'`);return}let s=this._ensureFilterEffect(r),n=t instanceof Ur,o={renderPipeId:"filter",action:"pushFilter",filterEffect:s,renderables:n?null:[t],container:n?t.root:null,canBundle:!1};this._renderableList=o.renderables,e.add(o)}_ensureFilterEffect(t){let e=this._filterHash[t];return e||(e=this._filterHash[t]=new Ze,e.filters=[new pn[t]]),e}_endAdvancedBlendMode(t){this._isAdvanced=!1,this._renderableList=null,this._renderer.renderPipes.batch.break(t),t.add({renderPipeId:"filter",action:"popFilter",canBundle:!1})}buildStart(){this._isAdvanced=!1}buildEnd(t){this._isAdvanced&&this._endAdvancedBlendMode(t)}destroy(){this._renderer=null,this._renderableList=null;for(let t in this._filterHash)this._filterHash[t].destroy();this._filterHash=null}};Kr.extension={type:[y.WebGLPipes,y.WebGPUPipes,y.CanvasPipes],name:"blendMode"}});var Qh,Jh,Vx,jx=p(()=>{xt();P();Pe();gt();Qh={png:"image/png",jpg:"image/jpeg",webp:"image/webp"},Jh=class Wx{constructor(t){this._renderer=t}_normalizeOptions(t,e={}){return t instanceof mt||t instanceof F?{target:t,...e}:{...e,...t}}async image(t){let e=W.get().createImage();return e.src=await this.base64(t),e}async base64(t){t=this._normalizeOptions(t,Wx.defaultImageOptions);let{format:e,quality:r}=t,s=this.canvas(t);if(s.toBlob!==void 0)return new Promise((n,o)=>{s.toBlob(a=>{if(!a){o(new Error("ICanvas.toBlob failed!"));return}let l=new FileReader;l.onload=()=>n(l.result),l.onerror=o,l.readAsDataURL(a)},Qh[e],r)});if(s.toDataURL!==void 0)return s.toDataURL(Qh[e],r);if(s.convertToBlob!==void 0){let n=await s.convertToBlob({type:Qh[e],quality:r});return new Promise((o,a)=>{let l=new FileReader;l.onload=()=>o(l.result),l.onerror=a,l.readAsDataURL(n)})}throw new Error("Extract.base64() requires ICanvas.toDataURL, ICanvas.toBlob, or ICanvas.convertToBlob to be implemented")}canvas(t){t=this._normalizeOptions(t);let e=t.target,r=this._renderer;if(e instanceof F)return r.texture.generateCanvas(e);let s=r.textureGenerator.generateTexture(t),n=r.texture.generateCanvas(s);return s.destroy(!0),n}pixels(t){t=this._normalizeOptions(t);let e=t.target,r=this._renderer,s=e instanceof F?e:r.textureGenerator.generateTexture(t),n=r.texture.getPixels(s);return e instanceof mt&&s.destroy(!0),n}texture(t){return t=this._normalizeOptions(t),t.target instanceof F?t.target:this._renderer.textureGenerator.generateTexture(t)}download(t){t=this._normalizeOptions(t);let e=this.canvas(t),r=document.createElement("a");r.download=t.filename??"image.png",r.href=e.toDataURL("image/png"),document.body.appendChild(r),r.click(),document.body.removeChild(r)}log(t){let e=t.width??200;t=this._normalizeOptions(t);let r=this.canvas(t),s=r.toDataURL();console.log(`[Pixi Texture] ${r.width}px ${r.height}px`);let n=["font-size: 1px;",`padding: ${e}px 300px;`,`background: url(${s}) no-repeat;`,"background-size: contain;"].join(" ");console.log("%c ",n)}destroy(){this._renderer=null}};Jh.extension={type:[y.WebGLSystem,y.WebGPUSystem,y.CanvasSystem],name:"extract"};Jh.defaultImageOptions={format:"png",quality:1};Vx=Jh});var Ia,Xx=p(()=>{$t();gt();Ia=class i extends F{static create(t){let{dynamic:e,textureOptions:r,...s}=t;return new i({...r,source:new st(s),dynamic:e??!1})}resize(t,e,r){return this.source.resize(t,e,r),this}}});var TT,wT,CT,mn,Yx=p(()=>{Qt();P();ot();Yt();ie();Ao();Pe();Xx();TT=new J,wT=new dt,CT=[0,0,0,0],mn=class{constructor(t){this._renderer=t}generateTexture(t){t instanceof mt&&(t={target:t,frame:void 0,textureSourceOptions:{},resolution:void 0});let e=t.resolution||this._renderer.resolution,r=t.antialias||this._renderer.view.antialias,s=t.target,n=t.clearColor;n?n=Array.isArray(n)&&n.length===4?n:Q.shared.setValue(n).toArray():n=CT;let o=t.frame?.copyTo(TT)||yi(s,wT).rectangle,a=t.defaultAnchor&&{defaultAnchor:t.defaultAnchor};o.width=Math.max(o.width,1/e)|0,o.height=Math.max(o.height,1/e)|0;let l=Ia.create({...t.textureSourceOptions,width:o.width,height:o.height,resolution:e,antialias:r,textureOptions:a}),c=k.shared.translate(-o.x,-o.y);return this._renderer.render({container:s,transform:c,target:l,clearColor:n}),l.source.updateMipmaps(),l}destroy(){this._renderer=null}};mn.extension={type:[y.WebGLSystem,y.WebGPUSystem,y.CanvasSystem],name:"textureGenerator"}});function $x(i){let t=!1;for(let r in i)if(i[r]==null){t=!0;break}if(!t)return i;let e=Object.create(null);for(let r in i){let s=i[r];s&&(e[r]=s)}return e}function qx(i){let t=0;for(let e=0;e<i.length;e++)i[e]==null?t++:i[e-t]=i[e];return i.length-=t,i}var Kx=p(()=>{"use strict"});var tu,Qx,Jx=p(()=>{P();Kx();tu=class Zx{constructor(t){this._managedResources=[],this._managedResourceHashes=[],this._managedCollections=[],this._ready=!1,this._renderer=t}init(t){t={...Zx.defaultOptions,...t},this.maxUnusedTime=t.gcMaxUnusedTime,this._frequency=t.gcFrequency,this.enabled=t.gcActive,this.now=performance.now()}get enabled(){return!!this._handler}set enabled(t){this.enabled!==t&&(t?(this._handler=this._renderer.scheduler.repeat(()=>{this._ready=!0},this._frequency,!1),this._collectionsHandler=this._renderer.scheduler.repeat(()=>{for(let e of this._managedCollections){let{context:r,collection:s,type:n}=e;n==="hash"?r[s]=$x(r[s]):r[s]=qx(r[s])}},this._frequency)):(this._renderer.scheduler.cancel(this._handler),this._renderer.scheduler.cancel(this._collectionsHandler),this._handler=0,this._collectionsHandler=0))}prerender({container:t}){this.now=performance.now(),t.renderGroup.gcTick=this._renderer.tick++,this._updateInstructionGCTick(t.renderGroup,t.renderGroup.gcTick)}postrender(){!this._ready||!this.enabled||(this.run(),this._ready=!1)}_updateInstructionGCTick(t,e){t.instructionSet.gcTick=e,t.gcTick=e;for(let r of t.renderGroupChildren)this._updateInstructionGCTick(r,e)}addCollection(t,e,r){this._managedCollections.push({context:t,collection:e,type:r})}addResource(t,e){if(t._gcLastUsed!==-1){t._gcLastUsed=this.now,t._onTouch?.(this.now);return}let r=this._managedResources.length;t._gcData={index:r,type:e},t._gcLastUsed=this.now,t._onTouch?.(this.now),t.once("unload",this.removeResource,this),this._managedResources.push(t)}removeResource(t){let e=t._gcData;if(!e)return;let r=e.index,s=this._managedResources.length-1;if(r!==s){let n=this._managedResources[s];this._managedResources[r]=n,n._gcData.index=r}this._managedResources.length--,t._gcData=null,t._gcLastUsed=-1}addResourceHash(t,e,r,s=0){this._managedResourceHashes.push({context:t,hash:e,type:r,priority:s}),this._managedResourceHashes.sort((n,o)=>n.priority-o.priority)}run(){let t=performance.now(),e=this._managedResourceHashes;for(let s of e)this.runOnHash(s,t);let r=0;for(let s=0;s<this._managedResources.length;s++){let n=this._managedResources[s];r=this.runOnResource(n,t,r)}this._managedResources.length=r}updateRenderableGCTick(t,e){let r=t.renderGroup??t.parentRenderGroup,s=r?.instructionSet?.gcTick??-1;(r?.gcTick??0)===s&&(t._gcLastUsed=e,t._onTouch?.(e))}runOnResource(t,e,r){let s=t._gcData;return s.type==="renderable"&&this.updateRenderableGCTick(t,e),e-t._gcLastUsed<this.maxUnusedTime||!t.autoGarbageCollect?(this._managedResources[r]=t,s.index=r,r++):(t.unload(),t._gcData=null,t._gcLastUsed=-1,t.off("unload",this.removeResource,this)),r}_createHashClone(t,e){let r=Object.create(null);for(let s in t){if(s===e)break;t[s]!==null&&(r[s]=t[s])}return r}runOnHash(t,e){let{context:r,hash:s,type:n}=t,o=r[s],a=null,l=0;for(let c in o){let h=o[c];if(h===null){l++,l===1e4&&!a&&(a=this._createHashClone(o,c));continue}if(h._gcLastUsed===-1){h._gcLastUsed=e,h._onTouch?.(e),a&&(a[c]=h);continue}if(n==="renderable"&&this.updateRenderableGCTick(h,e),!(e-h._gcLastUsed<this.maxUnusedTime)&&h.autoGarbageCollect){if(n==="renderable"){let d=h,f=d.renderGroup??d.parentRenderGroup;f&&(f.structureDidChange=!0)}h.unload(),h._gcData=null,h._gcLastUsed=-1,a||(l+1!==1e4?(o[c]=null,l++):a=this._createHashClone(o,c))}else a&&(a[c]=h)}a&&(r[s]=a)}destroy(){this.enabled=!1,this._managedResources.forEach(t=>{t.off("unload",this.removeResource,this)}),this._managedResources.length=0,this._managedResourceHashes.length=0,this._managedCollections.length=0,this._renderer=null}};tu.extension={type:[y.WebGLSystem,y.WebGPUSystem,y.CanvasSystem],name:"gc",priority:0};tu.defaultOptions={gcActive:!0,gcMaxUnusedTime:6e4,gcFrequency:3e4};Qx=tu});function Wi(i,t,e){let r=(i>>24&255)/255;t[e++]=(i&255)/255*r,t[e++]=(i>>8&255)/255*r,t[e++]=(i>>16&255)/255*r,t[e++]=r}var Ga=p(()=>{"use strict"});var gn,t_=p(()=>{P();ot();Ee();Ga();mr();Ne();me();gn=class{constructor(t){this._stackIndex=0,this._globalUniformDataStack=[],this._uniformsPool=[],this._activeUniforms=[],this._bindGroupPool=[],this._activeBindGroups=[],this._renderer=t}reset(){this._stackIndex=0;for(let t=0;t<this._activeUniforms.length;t++)this._uniformsPool.push(this._activeUniforms[t]);for(let t=0;t<this._activeBindGroups.length;t++)this._bindGroupPool.push(this._activeBindGroups[t]);this._activeUniforms.length=0,this._activeBindGroups.length=0}start(t){this.reset(),this.push(t)}bind({size:t,projectionMatrix:e,worldTransformMatrix:r,worldColor:s,offset:n}){let o=this._renderer.renderTarget.renderTarget,a=this._stackIndex?this._globalUniformDataStack[this._stackIndex-1]:{projectionData:o,worldTransformMatrix:new k,worldColor:4294967295,offset:new nt},l={projectionMatrix:e||this._renderer.renderTarget.projectionMatrix,resolution:t||o.size,worldTransformMatrix:r||a.worldTransformMatrix,worldColor:s||a.worldColor,offset:n||a.offset,bindGroup:null},c=this._uniformsPool.pop()||this._createUniforms();this._activeUniforms.push(c);let h=c.uniforms;h.uProjectionMatrix=l.projectionMatrix,h.uResolution=l.resolution,h.uWorldTransformMatrix.copyFrom(l.worldTransformMatrix),h.uWorldTransformMatrix.tx-=l.offset.x,h.uWorldTransformMatrix.ty-=l.offset.y,Wi(l.worldColor,h.uWorldColorAlpha,0),c.update();let u;this._renderer.renderPipes.uniformBatch?u=this._renderer.renderPipes.uniformBatch.getUniformBindGroup(c,!1):(u=this._bindGroupPool.pop()||new Vt,this._activeBindGroups.push(u),u.setResource(c,0)),l.bindGroup=u,this._currentGlobalUniformData=l}push(t){this.bind(t),this._globalUniformDataStack[this._stackIndex++]=this._currentGlobalUniformData}pop(){this._currentGlobalUniformData=this._globalUniformDataStack[--this._stackIndex-1],this._renderer.type===Lt.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 Ct({uProjectionMatrix:{value:new k,type:"mat3x3<f32>"},uWorldTransformMatrix:{value:new k,type:"mat3x3<f32>"},uWorldColorAlpha:{value:new Float32Array(4),type:"vec4<f32>"},uResolution:{value:[0,0],type:"vec2<f32>"}},{isStatic:!0})}destroy(){this._renderer=null,this._globalUniformDataStack.length=0,this._uniformsPool.length=0,this._activeUniforms.length=0,this._bindGroupPool.length=0,this._activeBindGroups.length=0,this._currentGlobalUniformData=null}};gn.extension={type:[y.WebGLSystem,y.WebGPUSystem,y.CanvasSystem],name:"globalUniforms"}});var ET,xn,e_=p(()=>{P();Ti();ET=1,xn=class{constructor(){this._tasks=[],this._offset=0}init(){qt.system.add(this._update,this)}repeat(t,e,r=!0){let s=ET++,n=0;return r&&(this._offset+=1e3,n=this._offset),this._tasks.push({func:t,duration:e,start:performance.now(),offset:n,last:performance.now(),repeat:!0,id:s}),s}cancel(t){for(let e=0;e<this._tasks.length;e++)if(this._tasks[e].id===t){this._tasks.splice(e,1);return}}_update(){let t=performance.now();for(let e=0;e<this._tasks.length;e++){let r=this._tasks[e];if(t-r.offset-r.last>=r.duration){let s=t-r.start;r.func(s),r.last=t}}}destroy(){qt.system.remove(this._update,this),this._tasks.length=0}};xn.extension={type:[y.WebGLSystem,y.WebGPUSystem,y.CanvasSystem],name:"scheduler",priority:0}});function i_(i){if(!r_){if(W.get().getNavigator().userAgent.toLowerCase().indexOf("chrome")>-1){let t=[`%c %c %c %c %c PixiJS %c v${zi} (${i}) http://www.pixijs.com/
571
571
 
572
- `,"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(...t)}else globalThis.console&&globalThis.console.log(`PixiJS ${Ni} - ${i} - http://www.pixijs.com/`);t_=!0}}var t_,r_=p(()=>{xt();Uh();t_=!1});var Wi,i_=p(()=>{P();r_();Ne();Wi=class{constructor(t){this._renderer=t}init(t){if(t.hello){let e=this._renderer.name;this._renderer.type===Lt.WEBGL&&(e+=` ${this._renderer.context.webGLVersion}`),e_(e)}}};Wi.extension={type:[y.WebGLSystem,y.WebGPUSystem,y.CanvasSystem],name:"hello",priority:-2};Wi.defaultOptions={hello:!1}});var eu,n_,o_=p(()=>{P();yt();eu=class s_{constructor(t){this._renderer=t}init(t){t={...s_.defaultOptions,...t},this.maxUnusedTime=t.renderableGCMaxUnusedTime}get enabled(){return O("8.15.0","RenderableGCSystem.enabled is deprecated, please use the GCSystem.enabled instead."),this._renderer.gc.enabled}set enabled(t){O("8.15.0","RenderableGCSystem.enabled is deprecated, please use the GCSystem.enabled instead."),this._renderer.gc.enabled=t}addManagedHash(t,e){O("8.15.0","RenderableGCSystem.addManagedHash is deprecated, please use the GCSystem.addCollection instead."),this._renderer.gc.addCollection(t,e,"hash")}addManagedArray(t,e){O("8.15.0","RenderableGCSystem.addManagedArray is deprecated, please use the GCSystem.addCollection instead."),this._renderer.gc.addCollection(t,e,"array")}addRenderable(t){O("8.15.0","RenderableGCSystem.addRenderable is deprecated, please use the GCSystem instead."),this._renderer.gc.addResource(t,"renderable")}run(){O("8.15.0","RenderableGCSystem.run is deprecated, please use the GCSystem instead."),this._renderer.gc.run()}destroy(){this._renderer=null}};eu.extension={type:[y.WebGLSystem,y.WebGPUSystem,y.CanvasSystem],name:"renderableGC",priority:0};eu.defaultOptions={renderableGCActive:!0,renderableGCMaxUnusedTime:6e4,renderableGCFrequency:3e4};n_=eu});var ru,a_,l_=p(()=>{P();yt();ru=class Ga{get count(){return this._renderer.tick}get checkCount(){return this._checkCount}set checkCount(t){O("8.15.0","TextureGCSystem.run is deprecated, please use the GCSystem instead."),this._checkCount=t}get maxIdle(){return this._renderer.gc.maxUnusedTime/1e3*60}set maxIdle(t){O("8.15.0","TextureGCSystem.run is deprecated, please use the GCSystem instead."),this._renderer.gc.maxUnusedTime=t/60*1e3}get checkCountMax(){return Math.floor(this._renderer.gc._frequency/1e3)}set checkCountMax(t){O("8.15.0","TextureGCSystem.run is deprecated, please use the GCSystem instead.")}get active(){return this._renderer.gc.enabled}set active(t){O("8.15.0","TextureGCSystem.run is deprecated, please use the GCSystem instead."),this._renderer.gc.enabled=t}constructor(t){this._renderer=t,this._checkCount=0}init(t){t.textureGCActive!==Ga.defaultOptions.textureGCActive&&(this.active=t.textureGCActive),t.textureGCMaxIdle!==Ga.defaultOptions.textureGCMaxIdle&&(this.maxIdle=t.textureGCMaxIdle),t.textureGCCheckCountMax!==Ga.defaultOptions.textureGCCheckCountMax&&(this.checkCountMax=t.textureGCCheckCountMax)}run(){O("8.15.0","TextureGCSystem.run is deprecated, please use the GCSystem instead."),this._renderer.gc.run()}destroy(){this._renderer=null}};ru.extension={type:[y.WebGLSystem,y.WebGPUSystem],name:"textureGC"};ru.defaultOptions={textureGCActive:!0,textureGCAMaxIdle:null,textureGCMaxIdle:3600,textureGCCheckCountMax:600};a_=ru});var c_,Vi,iu=p(()=>{Ft();$t();gt();c_=class h_{constructor(t={}){this.uid=$("renderTarget"),this.colorAttachments=[],this.dirtyId=0,this.isRoot=!1,this._size=new Float32Array(2),this._managedColorTextures=!1,this._depth=!1,this._stencil=!1,this._colorTextures=null;let e="colorAttachments"in t?t:this._normalizeOptions(t);if(this.isRoot=e.isRoot??!1,this.label=e.label,this.colorAttachments=e.colorAttachments,this.depthStencilAttachment=e.depthStencilAttachment,this.depthStencilAttachment){let r=this.depthStencilAttachment.texture.format;this._depth||(this._depth=r.includes("depth")),this._stencil||(this._stencil=r.includes("stencil"))}if(this.colorAttachments.length===0&&!this.depthStencilAttachment)throw new Error("[RenderTarget] no color textures or depth textures were provided. Provide a depthStencilTexture or set depth/stencil to true when using colorTextures: 0.");if(this.colorAttachments.length>0){let r=this.colorTexture;this.resize(r.width,r.height,r._resolution)}this.sizeSource&&this.sizeSource.on("resize",this.onSourceResize,this)}_normalizeOptions(t){let e={...h_.defaultOptions,...t},r=[],s;if(typeof e.colorTextures=="number"){if(e.colorTextures>0){this._managedColorTextures=!0;for(let o=0;o<e.colorTextures;o++)r.push({texture:new st({width:e.width,height:e.height,resolution:e.resolution,antialias:e.antialias}),loadOp:"clear",storeOp:"store"})}}else e.colorTextures.forEach(o=>{r.push({texture:o.source,loadOp:"clear",storeOp:"store"})});let n=e.depthStencilTexture===!0;if(this._depth=!!(e.depth||n),this._stencil=!!(e.stencil||n),e.depthStencilTexture instanceof U||e.depthStencilTexture instanceof st){if(e.isRoot)throw new Error("[RenderTarget] cannot attach a depth-stencil texture to the screen \u2014 the canvas owns its own depth/stencil buffers. Render to a texture target instead.");s={texture:e.depthStencilTexture.source}}else(n&&!e.isRoot||(e.stencil||e.depth)&&r.length===0)&&(s=this._createDepthStencilTexture(e.width,e.height,e.resolution));return{colorAttachments:r,depthStencilAttachment:s,isRoot:e.isRoot,label:e.label}}get size(){let t=this._size;return t[0]=this.pixelWidth,t[1]=this.pixelHeight,t}get width(){return this.sizeSource.width}get height(){return this.sizeSource.height}get pixelWidth(){return this.sizeSource.pixelWidth}get pixelHeight(){return this.sizeSource.pixelHeight}get resolution(){return this.sizeSource._resolution}get colorTextures(){return this._colorTextures||(this._colorTextures=this.colorAttachments.map(t=>t.texture)),this._colorTextures}get depthStencilTexture(){return this.depthStencilAttachment?.texture??null}get depth(){return this._depth}get stencil(){return this._stencil}get colorTexture(){return this.colorAttachments[0]?.texture}get sizeSource(){return this.colorAttachments[0]?.texture??this.depthStencilAttachment?.texture}onSourceResize(t){this.resize(t.width,t.height,t._resolution,!0)}ensureDepthStencilTexture(){this._createDepthStencilTexture(this.sizeSource.width,this.sizeSource.height,this.sizeSource._resolution),this._depth=!0,this._stencil=!0}resize(t,e,r=this.resolution,s=!1){if(this.dirtyId++,this.colorAttachments.forEach((n,o)=>{s&&o===0||n.texture.resize(t,e,r)}),this.depthStencilAttachment){if(s&&this.colorAttachments.length===0)return;this.depthStencilAttachment.texture.resize(t,e,r)}}destroy(){!this.colorAttachments&&!this.depthStencilAttachment||(this.sizeSource.off("resize",this.onSourceResize,this),this._managedColorTextures&&this.colorAttachments.forEach(t=>{t.texture.destroy()}),this.depthStencilAttachment&&(this.depthStencilAttachment.texture.destroy(),delete this.depthStencilAttachment),this.colorAttachments=null,this._colorTextures=null)}_createDepthStencilTexture(t,e,r){return this.depthStencilAttachment??(this.depthStencilAttachment={texture:new st({width:t,height:e,resolution:r,format:"depth24plus-stencil8",autoGenerateMipmaps:!1,antialias:!1,mipLevelCount:1})}),this.depthStencilAttachment}};c_.defaultOptions={width:0,height:0,resolution:1,colorTextures:1,stencil:!1,depth:!1,antialias:!1,isRoot:!1};Vi=c_});function Fa(i,t){if(!ji.has(i)){let e=new U({source:new wt({resource:i,...t})}),r=()=>{ji.get(i)===e&&ji.delete(i)};e.once("destroy",r),e.source.once("destroy",r),ji.set(i,e)}return ji.get(i)}var ji,su=p(()=>{Pr();fr();gt();ji=new Map;ye.register(ji)});var nu,d_,f_=p(()=>{xt();P();Yt();yt();iu();su();nu=class u_{get autoDensity(){return this.texture.source.autoDensity}set autoDensity(t){this.texture.source.autoDensity=t}get resolution(){return this.texture.source._resolution}set resolution(t){this.texture.source.resize(this.texture.source.width,this.texture.source.height,t)}init(t){t={...u_.defaultOptions,...t},t.view&&(O(rt,"ViewSystem.view has been renamed to ViewSystem.canvas"),t.canvas=t.view),this.screen=new J(0,0,t.width,t.height),this.canvas=t.canvas||W.get().createCanvas(),this.antialias=!!t.antialias,this.texture=Fa(this.canvas,t),this.renderTarget=new Vi({colorTextures:[this.texture],depth:!!t.depth,isRoot:!0}),this.texture.source.transparent=t.backgroundAlpha<1,this.resolution=t.resolution}resize(t,e,r){this.texture.source.resize(t,e,r),this.screen.width=this.texture.frame.width,this.screen.height=this.texture.frame.height}destroy(t=!1){(typeof t=="boolean"?t:!!t?.removeView)&&this.canvas.parentNode&&this.canvas.parentNode.removeChild(this.canvas),this.texture.destroy()}};nu.extension={type:[y.WebGLSystem,y.WebGPUSystem,y.CanvasSystem],name:"view",priority:0};nu.defaultOptions={width:800,height:600,autoDensity:!1,antialias:!1};d_=nu});var Xi,Ua,Da=p(()=>{Rh();Bh();fx();Fh();Dh();Xh();qh();Ux();Dx();Nx();Zh();Wx();jx();Zx();Qx();Jx();i_();o_();l_();f_();Xi=[Ox,mn,Wi,d_,Js,Kx,a_,pn,Hx,en,n_,gn],Ua=[Kr,hn,Yr,Xr,qr,dn,un,jr]});var xn,p_=p(()=>{P();xn=class{constructor(t){this._hash=Object.create(null),this._renderer=t}contextChange(t){this._gpu=t}getBindGroup(t,e,r){let s=`${t._key}:${e._layoutKey<<4|r}`;return this._hash[s]||this._createBindGroup(s,t,e,r)}_createBindGroup(t,e,r,s){let n=this._gpu.device,o=r.layout[s],a=[],l=this._renderer;for(let u in o){let d=e.resources[u]??e.resources[o[u]];if(!d||d.destroyed)throw new Error(`[BindGroup] the resource bound as '${u}' was destroyed while a shader still uses it. Remove it from the shader before destroying it.`);let f;if(d._resourceType==="uniformGroup"){let m=d;l.ubo.updateUniformGroup(m);let g=m.buffer;f={buffer:l.buffer.getGPUBuffer(g),offset:0,size:g.descriptor.size}}else if(d._resourceType==="buffer"){let m=d;f={buffer:l.buffer.getGPUBuffer(m),offset:0,size:m.descriptor.size}}else if(d._resourceType==="bufferResource"){let m=d;f={buffer:l.buffer.getGPUBuffer(m.buffer),offset:m.offset,size:m.size??m.buffer.descriptor.size}}else if(d._resourceType==="textureSampler"){let m=d;f=l.texture.getGpuSampler(m)}else if(d._resourceType==="textureSource"){let m=d;f=l.texture.getTextureView(m)}else if(d._resourceType==="textureView"){let m=d;f=l.texture.getTextureView(m.source,m.viewDescriptor)}a.push({binding:o[u],resource:f})}let c=l.shader.getProgramData(r).bindGroups[s],h=n.createBindGroup({layout:c,entries:a});return this._hash[t]=h,h}destroy(){this._hash=null,this._renderer=null}};xn.extension={type:[y.WebGPUSystem],name:"bindGroup"}});var kt,Ie=p(()=>{"use strict";kt=class{constructor(t){this.items=Object.create(null);let{renderer:e,type:r,onUnload:s,priority:n,name:o}=t;this._renderer=e,e.gc.addResourceHash(this,"items",r,n??0),this._onUnload=s,this.name=o}add(t){return this.items[t.uid]?!1:(this.items[t.uid]=t,t.once("unload",this.remove,this),t._gcLastUsed=this._renderer.gc.now,!0)}remove(t,...e){if(!this.items[t.uid])return;let r=t._gpuData[this._renderer.uid];r&&(this._onUnload?.(t,...e),r.destroy(),t._gpuData[this._renderer.uid]=null,this.items[t.uid]=null)}removeAll(...t){Object.values(this.items).forEach(e=>e&&this.remove(e,...t))}destroy(...t){this.removeAll(...t),this.items=Object.create(null),this._renderer=null,this._onUnload=null}}});var ou,_n,m_=p(()=>{P();Ie();Oh();ou=class{constructor(t){this.gpuBuffer=t}destroy(){this.gpuBuffer.destroy(),this.gpuBuffer=null}},_n=class{constructor(t){this._renderer=t,this._managedBuffers=new kt({renderer:t,type:"resource",onUnload:this.onBufferUnload.bind(this),name:"gpuBuffer"})}contextChange(t){this._gpu=t}getGPUBuffer(t){return t._gcLastUsed=this._renderer.gc.now,t._gpuData[this._renderer.uid]?.gpuBuffer||this.createGPUBuffer(t)}updateBuffer(t){let e=this.getGPUBuffer(t),r=t.data;return t._updateID&&r&&(t._updateID=0,this._gpu.device.queue.writeBuffer(e,t._updateOffset,r.buffer,r.byteOffset+t._updateOffset,(t._updateSize||r.byteLength)+3&-4)),e}destroyAll(){this._managedBuffers.removeAll()}onBufferUnload(t){t.off("update",this.updateBuffer,this),t.off("change",this.onBufferChange,this)}createGPUBuffer(t){let e=this._gpu.device.createBuffer(t.descriptor);return t._updateID=0,t.data&&(rn(t.data.buffer,e.getMappedRange(),t.data.byteOffset,t.data.byteLength),e.unmap()),t._gpuData[this._renderer.uid]=new ou(e),this._managedBuffers.add(t)&&(t.on("update",this.updateBuffer,this),t.on("change",this.onBufferChange,this)),e}onBufferChange(t){this._managedBuffers.remove(t),t._updateID=0,this.createGPUBuffer(t)}destroy(){this._managedBuffers.destroy(),this._renderer=null,this._gpu=null}};_n.extension={type:[y.WebGPUSystem],name:"buffer"}});var yn,g_=p(()=>{P();yn=class{constructor(t){this._colorMaskCache=15,this._renderer=t}setMask(t){this._colorMaskCache!==t&&(this._colorMaskCache=t,this._renderer.pipeline.setColorMask(t))}destroy(){this._renderer=null,this._colorMaskCache=null}};yn.extension={type:[y.WebGPUSystem],name:"colorMask"}});var Yi,x_=p(()=>{xt();P();Yi=class{constructor(t){this._renderer=t}async init(t){return this._initPromise?this._initPromise:(this._initPromise=(t.gpu?Promise.resolve(t.gpu):this._createDeviceAndAdaptor(t)).then(e=>{this.gpu=e,this.extensions={transientAttachment:typeof GPUTextureUsage.TRANSIENT_ATTACHMENT=="number"},this._renderer.runners.contextChange.emit(this.gpu)}),this._initPromise)}contextChange(t){this._renderer.gpu=t}async _createDeviceAndAdaptor(t){let e=await W.get().getNavigator().gpu.requestAdapter({powerPreference:t.powerPreference,forceFallbackAdapter:t.forceFallbackAdapter});if(!e)throw new Error("WebGPU not supported. No GPU adapter was returned by navigator.gpu.requestAdapter().");let r=["texture-compression-bc","texture-compression-astc","texture-compression-etc2","indirect-first-instance"].filter(n=>e.features.has(n)),s=await e.requestDevice({requiredFeatures:r,requiredLimits:{maxSampledTexturesPerShaderStage:e.limits.maxSampledTexturesPerShaderStage,maxSamplersPerShaderStage:e.limits.maxSamplersPerShaderStage}});return{adapter:e,device:s}}destroy(){this.gpu=null,this.extensions=null,this._renderer=null}};Yi.extension={type:[y.WebGPUSystem],name:"device"};Yi.defaultOptions={powerPreference:void 0,forceFallbackAdapter:!1}});var bn,__=p(()=>{P();bn=class{constructor(t){this._boundBindGroup=Object.create(null),this._boundVertexBuffer=Object.create(null),this._renderer=t;for(let e=0;e<16;e++)this._boundBindGroup[e]={bindGroup:null,program:null,key:null}}renderStart(){this.commandFinished=new Promise(t=>{this._resolveCommandFinished=t}),this.commandEncoder=this._renderer.gpu.device.createCommandEncoder()}beginRenderPass(t){this.endRenderPass(),this._clearCache(),this._passEncoder=this.commandEncoder.beginRenderPass(t.descriptor),this.renderPassEncoder=this._passEncoder}endRenderPass(){this._passEncoder&&this._passEncoder.end(),this.renderPassEncoder=null,this._passEncoder=null}beginBundle(){if(this._passEncoder!==this.renderPassEncoder)throw new Error("Cannot begin a new render bundle while one is already being recorded.");this._clearCache();let t=this._renderer.pipeline.getBundleDescriptor();this.renderPassEncoder=this._gpu.device.createRenderBundleEncoder(t)}endBundle(){let t=this.renderPassEncoder;if(!t||!("finish"in t))throw new Error("endBundle called without an active render bundle.");let e=t.finish();return this.renderPassEncoder=this._passEncoder,this._clearCache(),e}executeBundle(t){this._clearCache(),this._passEncoder.executeBundles([t])}setViewport(t){this._passEncoder.setViewport(t.x,t.y,t.width,t.height,0,1)}setStencilReference(t){this._passEncoder.setStencilReference(t)}setPipelineFromGeometryProgramAndState(t,e,r,s,n){let o=this._renderer.pipeline.getPipeline(t,e,r,s,n);this.setPipeline(o)}setPipeline(t){this._boundPipeline!==t&&(this._boundPipeline=t,this.renderPassEncoder.setPipeline(t))}_setVertexBuffer(t,e){this._boundVertexBuffer[t]!==e&&(this._boundVertexBuffer[t]=e,this.renderPassEncoder.setVertexBuffer(t,this._renderer.buffer.updateBuffer(e)))}_setIndexBuffer(t){if(this._boundIndexBuffer===t)return;this._boundIndexBuffer=t;let e=t.data.BYTES_PER_ELEMENT===2?"uint16":"uint32";this.renderPassEncoder.setIndexBuffer(this._renderer.buffer.updateBuffer(t),e)}resetBindGroup(t){let e=this._boundBindGroup[t];e.bindGroup=null,e.program=null,e.key=null}setBindGroup(t,e,r){let s=this._boundBindGroup[t];if(s.bindGroup===e&&s.program===r&&s.key===e._key)return;s.bindGroup=e,s.program=r,s.key=e._key,e._touch(this._renderer.gc.now,this._renderer.tick);let n=this._renderer.bindGroup.getBindGroup(e,r,t);this.renderPassEncoder.setBindGroup(t,n)}setGeometry(t,e){let r=this._renderer.pipeline.getBufferNamesToBind(t,e);for(let s in r)this._setVertexBuffer(parseInt(s,10),t.attributes[r[s]].buffer);t.indexBuffer&&this._setIndexBuffer(t.indexBuffer)}_setShaderBindGroups(t,e){let r=t.gpuProgram;for(let s in t.groups){if(!r.layout[s])continue;let n=t.groups[s];e||this._syncBindGroup(n),this.setBindGroup(s,n,r)}}_syncBindGroup(t){for(let e in t.resources){let r=t.resources[e];r&&r.isUniformGroup&&this._renderer.ubo.updateUniformGroup(r)}}draw(t){let{geometry:e,shader:r,state:s,topology:n,size:o,start:a,baseVertex:l,instanceCount:c,skipSync:h,firstInstance:u}=t;this.setPipelineFromGeometryProgramAndState(e,r.gpuProgram,s,n,r._overrides),this.setGeometry(e,r.gpuProgram),this._setShaderBindGroups(r,h),e.indexBuffer?this.renderPassEncoder.drawIndexed(o||e.indexBuffer.data.length,c??e.instanceCount,a||0,l||0,u||0):this.renderPassEncoder.draw(o||e.vertexCount,c??e.instanceCount,a||0,u||0)}drawIndirect(t){let{geometry:e,shader:r,state:s,topology:n,skipSync:o,indirectBuffer:a,indirectOffset:l}=t;this.setPipelineFromGeometryProgramAndState(e,r.gpuProgram,s,n,r._overrides),this.setGeometry(e,r.gpuProgram),this._setShaderBindGroups(r,o),e.indexBuffer?this.renderPassEncoder.drawIndexedIndirect(a,l):this.renderPassEncoder.drawIndirect(a,l)}finishRenderPass(){this._passEncoder&&(this._passEncoder.end(),this.renderPassEncoder=null,this._passEncoder=null)}postrender(){this.finishRenderPass(),this._gpu.device.queue.submit([this.commandEncoder.finish()]),this._resolveCommandFinished(),this.commandEncoder=null}_clearCache(){for(let t=0;t<16;t++){let e=this._boundBindGroup[t];e.bindGroup=null,e.program=null,e.key=null,this._boundVertexBuffer[t]=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,this.renderPassEncoder=null,this._passEncoder=null}contextChange(t){this._gpu=t}};bn.extension={type:[y.WebGPUSystem],name:"encoder",priority:1}});var vn,y_=p(()=>{P();vn=class{constructor(t){this.supportsOverrideConstants=!1,this._renderer=t}contextChange(){let t=this._renderer.device.gpu.device;this.maxTextures=Math.min(t.limits.maxSampledTexturesPerShaderStage,t.limits.maxSamplersPerShaderStage),this.maxBatchableTextures=this.maxTextures,this._detectOverrideConstantsSupport(t)}_detectOverrideConstantsSupport(t){t.pushErrorScope("validation");let e=t.createShaderModule({code:`override TEST_VALUE: f32 = 0.0;
573
- @compute @workgroup_size(1) fn main() {}`});t.createComputePipeline({layout:"auto",compute:{module:e,entryPoint:"main",constants:{TEST_VALUE:1}}}),t.popErrorScope().then(r=>{this.supportsOverrideConstants=!r})}destroy(){}};vn.extension={type:[y.WebGPUSystem],name:"limits"}});var Sn,b_=p(()=>{P();$r();Sn=class{constructor(t){this._renderTargetStencilState=Object.create(null),this._renderer=t,t.renderTarget.onRenderTargetChange.add(this)}onRenderTargetChange(t){let e=this._renderTargetStencilState[t.uid];e||(e=this._renderTargetStencilState[t.uid]={stencilMode:vt.DISABLED,stencilReference:0}),this._activeRenderTarget=t,this.setStencilMode(e.stencilMode,e.stencilReference)}setStencilMode(t,e){let r=this._renderTargetStencilState[this._activeRenderTarget.uid];r.stencilMode=t,r.stencilReference=e;let s=this._renderer;s.pipeline.setStencilMode(t),s.encoder.setStencilReference(e)}destroy(){this._renderer.renderTarget.onRenderTargetChange.remove(this),this._renderer=null,this._activeRenderTarget=null,this._renderTargetStencilState=null}};Sn.extension={type:[y.WebGPUSystem],name:"stencil"}});var br,La=p(()=>{fh();xr();ir();br=class{constructor(t){this._syncFunctionHash=Object.create(null),this._adaptor=t,this._systemCheck()}_systemCheck(){if(!la())throw new Error("Current environment does not allow unsafe-eval, please use pixi.js/unsafe-eval module to enable support.")}ensureUniformGroup(t){let e=this.getUniformGroupData(t);t.buffer||(t.buffer=new At({data:new Float32Array(e.layout.size/4),usage:tt.UNIFORM|tt.COPY_DST}))}getUniformGroupData(t){return this._syncFunctionHash[t._signature]||this._initUniformGroup(t)}_initUniformGroup(t){let e=t._signature,r=this._syncFunctionHash[e];if(!r){let s=Object.keys(t.uniformStructures).map(a=>t.uniformStructures[a]),n=this._adaptor.createUboElements(s),o=this._generateUboSync(n.uboElements);r=this._syncFunctionHash[e]={layout:n,syncFunction:o}}return this._syncFunctionHash[e]}_generateUboSync(t){return this._adaptor.generateUboSync(t)}syncUniformGroup(t,e,r){let s=this.getUniformGroupData(t);t.buffer||(t.buffer=new At({data:new Float32Array(s.layout.size/4),usage:tt.UNIFORM|tt.COPY_DST}));let n=null;return e||(e=t.buffer.data,n=t.buffer.dataInt32),r||(r=0),s.syncFunction(t.uniforms,e,n,r),!0}updateUniformGroup(t){if(t.isStatic&&!t._dirtyId)return!1;t._dirtyId=0;let e=this.syncUniformGroup(t);return t.buffer.update(),e}destroy(){this._syncFunctionHash=null}}});function v_(i){let t=i.map(r=>({data:r,offset:0,size:0})),e=0;for(let r=0;r<t.length;r++){let s=t[r],n=Zr[s.data.type].size,o=Zr[s.data.type].align;if(!Zr[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),e=Math.ceil(e/o)*o,s.size=n,s.offset=e,e+=n}return e=Math.ceil(e/16)*16,{uboElements:t,size:e}}var Zr,Oa=p(()=>{"use strict";Zr={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 ue,Tn=p(()=>{"use strict";ue=[{type:"mat3x3<f32>",test:i=>i.value.a!==void 0,ubo:`
572
+ `,"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(...t)}else globalThis.console&&globalThis.console.log(`PixiJS ${zi} - ${i} - http://www.pixijs.com/`);r_=!0}}var r_,s_=p(()=>{xt();Uh();r_=!1});var Vi,n_=p(()=>{P();s_();Ne();Vi=class{constructor(t){this._renderer=t}init(t){if(t.hello){let e=this._renderer.name;this._renderer.type===Lt.WEBGL&&(e+=` ${this._renderer.context.webGLVersion}`),i_(e)}}};Vi.extension={type:[y.WebGLSystem,y.WebGPUSystem,y.CanvasSystem],name:"hello",priority:-2};Vi.defaultOptions={hello:!1}});var eu,a_,l_=p(()=>{P();yt();eu=class o_{constructor(t){this._renderer=t}init(t){t={...o_.defaultOptions,...t},this.maxUnusedTime=t.renderableGCMaxUnusedTime}get enabled(){return O("8.15.0","RenderableGCSystem.enabled is deprecated, please use the GCSystem.enabled instead."),this._renderer.gc.enabled}set enabled(t){O("8.15.0","RenderableGCSystem.enabled is deprecated, please use the GCSystem.enabled instead."),this._renderer.gc.enabled=t}addManagedHash(t,e){O("8.15.0","RenderableGCSystem.addManagedHash is deprecated, please use the GCSystem.addCollection instead."),this._renderer.gc.addCollection(t,e,"hash")}addManagedArray(t,e){O("8.15.0","RenderableGCSystem.addManagedArray is deprecated, please use the GCSystem.addCollection instead."),this._renderer.gc.addCollection(t,e,"array")}addRenderable(t){O("8.15.0","RenderableGCSystem.addRenderable is deprecated, please use the GCSystem instead."),this._renderer.gc.addResource(t,"renderable")}run(){O("8.15.0","RenderableGCSystem.run is deprecated, please use the GCSystem instead."),this._renderer.gc.run()}destroy(){this._renderer=null}};eu.extension={type:[y.WebGLSystem,y.WebGPUSystem,y.CanvasSystem],name:"renderableGC",priority:0};eu.defaultOptions={renderableGCActive:!0,renderableGCMaxUnusedTime:6e4,renderableGCFrequency:3e4};a_=eu});var ru,c_,h_=p(()=>{P();yt();ru=class Fa{get count(){return this._renderer.tick}get checkCount(){return this._checkCount}set checkCount(t){O("8.15.0","TextureGCSystem.run is deprecated, please use the GCSystem instead."),this._checkCount=t}get maxIdle(){return this._renderer.gc.maxUnusedTime/1e3*60}set maxIdle(t){O("8.15.0","TextureGCSystem.run is deprecated, please use the GCSystem instead."),this._renderer.gc.maxUnusedTime=t/60*1e3}get checkCountMax(){return Math.floor(this._renderer.gc._frequency/1e3)}set checkCountMax(t){O("8.15.0","TextureGCSystem.run is deprecated, please use the GCSystem instead.")}get active(){return this._renderer.gc.enabled}set active(t){O("8.15.0","TextureGCSystem.run is deprecated, please use the GCSystem instead."),this._renderer.gc.enabled=t}constructor(t){this._renderer=t,this._checkCount=0}init(t){t.textureGCActive!==Fa.defaultOptions.textureGCActive&&(this.active=t.textureGCActive),t.textureGCMaxIdle!==Fa.defaultOptions.textureGCMaxIdle&&(this.maxIdle=t.textureGCMaxIdle),t.textureGCCheckCountMax!==Fa.defaultOptions.textureGCCheckCountMax&&(this.checkCountMax=t.textureGCCheckCountMax)}run(){O("8.15.0","TextureGCSystem.run is deprecated, please use the GCSystem instead."),this._renderer.gc.run()}destroy(){this._renderer=null}};ru.extension={type:[y.WebGLSystem,y.WebGPUSystem],name:"textureGC"};ru.defaultOptions={textureGCActive:!0,textureGCAMaxIdle:null,textureGCMaxIdle:3600,textureGCCheckCountMax:600};c_=ru});var u_,ji,iu=p(()=>{Ft();$t();gt();u_=class d_{constructor(t={}){this.uid=$("renderTarget"),this.colorAttachments=[],this.dirtyId=0,this.isRoot=!1,this._size=new Float32Array(2),this._managedColorTextures=!1,this._depth=!1,this._stencil=!1,this._colorTextures=null;let e="colorAttachments"in t?t:this._normalizeOptions(t);if(this.isRoot=e.isRoot??!1,this.label=e.label,this.colorAttachments=e.colorAttachments,this.depthStencilAttachment=e.depthStencilAttachment,this.depthStencilAttachment){let r=this.depthStencilAttachment.texture.format;this._depth||(this._depth=r.includes("depth")),this._stencil||(this._stencil=r.includes("stencil"))}if(this.colorAttachments.length===0&&!this.depthStencilAttachment)throw new Error("[RenderTarget] no color textures or depth textures were provided. Provide a depthStencilTexture or set depth/stencil to true when using colorTextures: 0.");if(this.colorAttachments.length>0){let r=this.colorTexture;this.resize(r.width,r.height,r._resolution)}this.sizeSource&&this.sizeSource.on("resize",this.onSourceResize,this)}_normalizeOptions(t){let e={...d_.defaultOptions,...t},r=[],s;if(typeof e.colorTextures=="number"){if(e.colorTextures>0){this._managedColorTextures=!0;for(let o=0;o<e.colorTextures;o++)r.push({texture:new st({width:e.width,height:e.height,resolution:e.resolution,antialias:e.antialias}),loadOp:"clear",storeOp:"store"})}}else e.colorTextures.forEach(o=>{r.push({texture:o.source,loadOp:"clear",storeOp:"store"})});let n=e.depthStencilTexture===!0;if(this._depth=!!(e.depth||n),this._stencil=!!(e.stencil||n),e.depthStencilTexture instanceof F||e.depthStencilTexture instanceof st){if(e.isRoot)throw new Error("[RenderTarget] cannot attach a depth-stencil texture to the screen \u2014 the canvas owns its own depth/stencil buffers. Render to a texture target instead.");s={texture:e.depthStencilTexture.source}}else(n&&!e.isRoot||(e.stencil||e.depth)&&r.length===0)&&(s=this._createDepthStencilTexture(e.width,e.height,e.resolution));return{colorAttachments:r,depthStencilAttachment:s,isRoot:e.isRoot,label:e.label}}get size(){let t=this._size;return t[0]=this.pixelWidth,t[1]=this.pixelHeight,t}get width(){return this.sizeSource.width}get height(){return this.sizeSource.height}get pixelWidth(){return this.sizeSource.pixelWidth}get pixelHeight(){return this.sizeSource.pixelHeight}get resolution(){return this.sizeSource._resolution}get colorTextures(){return this._colorTextures||(this._colorTextures=this.colorAttachments.map(t=>t.texture)),this._colorTextures}get depthStencilTexture(){return this.depthStencilAttachment?.texture??null}get depth(){return this._depth}get stencil(){return this._stencil}get colorTexture(){return this.colorAttachments[0]?.texture}get sizeSource(){return this.colorAttachments[0]?.texture??this.depthStencilAttachment?.texture}onSourceResize(t){this.resize(t.width,t.height,t._resolution,!0)}ensureDepthStencilTexture(){this._createDepthStencilTexture(this.sizeSource.width,this.sizeSource.height,this.sizeSource._resolution),this._depth=!0,this._stencil=!0}resize(t,e,r=this.resolution,s=!1){if(this.dirtyId++,this.colorAttachments.forEach((n,o)=>{s&&o===0||n.texture.resize(t,e,r)}),this.depthStencilAttachment){if(s&&this.colorAttachments.length===0)return;this.depthStencilAttachment.texture.resize(t,e,r)}}destroy(){!this.colorAttachments&&!this.depthStencilAttachment||(this.sizeSource.off("resize",this.onSourceResize,this),this._managedColorTextures&&this.colorAttachments.forEach(t=>{t.texture.destroy()}),this.depthStencilAttachment&&(this.depthStencilAttachment.texture.destroy(),delete this.depthStencilAttachment),this.colorAttachments=null,this._colorTextures=null)}_createDepthStencilTexture(t,e,r){return this.depthStencilAttachment??(this.depthStencilAttachment={texture:new st({width:t,height:e,resolution:r,format:"depth24plus-stencil8",autoGenerateMipmaps:!1,antialias:!1,mipLevelCount:1})}),this.depthStencilAttachment}};u_.defaultOptions={width:0,height:0,resolution:1,colorTextures:1,stencil:!1,depth:!1,antialias:!1,isRoot:!1};ji=u_});function Ua(i,t){if(!Xi.has(i)){let e=new F({source:new Tt({resource:i,...t})}),r=()=>{Xi.get(i)===e&&Xi.delete(i)};e.once("destroy",r),e.source.once("destroy",r),Xi.set(i,e)}return Xi.get(i)}var Xi,su=p(()=>{Pr();fr();gt();Xi=new Map;ye.register(Xi)});var nu,p_,m_=p(()=>{xt();P();Yt();yt();iu();su();nu=class f_{get autoDensity(){return this.texture.source.autoDensity}set autoDensity(t){this.texture.source.autoDensity=t}get resolution(){return this.texture.source._resolution}set resolution(t){this.texture.source.resize(this.texture.source.width,this.texture.source.height,t)}init(t){t={...f_.defaultOptions,...t},t.view&&(O(rt,"ViewSystem.view has been renamed to ViewSystem.canvas"),t.canvas=t.view),this.screen=new J(0,0,t.width,t.height),this.canvas=t.canvas||W.get().createCanvas(),this.antialias=!!t.antialias,this.texture=Ua(this.canvas,t),this.renderTarget=new ji({colorTextures:[this.texture],depth:!!t.depth,isRoot:!0}),this.texture.source.transparent=t.backgroundAlpha<1,this.resolution=t.resolution}resize(t,e,r){this.texture.source.resize(t,e,r),this.screen.width=this.texture.frame.width,this.screen.height=this.texture.frame.height}destroy(t=!1){(typeof t=="boolean"?t:!!t?.removeView)&&this.canvas.parentNode&&this.canvas.parentNode.removeChild(this.canvas),this.texture.destroy()}};nu.extension={type:[y.WebGLSystem,y.WebGPUSystem,y.CanvasSystem],name:"view",priority:0};nu.defaultOptions={width:800,height:600,autoDensity:!1,antialias:!1};p_=nu});var Yi,Da,La=p(()=>{Rh();Bh();mx();Fh();Dh();Xh();qh();Lx();Ox();Hx();Zh();jx();Yx();Jx();t_();e_();n_();l_();h_();m_();Yi=[zx,gn,Vi,p_,tn,Qx,c_,mn,Vx,rn,a_,xn],Da=[Kr,un,Yr,Xr,qr,fn,dn,jr]});var _n,g_=p(()=>{P();_n=class{constructor(t){this._hash=Object.create(null),this._renderer=t}contextChange(t){this._gpu=t}getBindGroup(t,e,r){let s=`${t._key}:${e._layoutKey<<4|r}`;return this._hash[s]||this._createBindGroup(s,t,e,r)}_createBindGroup(t,e,r,s){let n=this._gpu.device,o=r.layout[s],a=[],l=this._renderer;for(let u in o){let d=e.resources[u]??e.resources[o[u]];if(!d||d.destroyed)throw new Error(`[BindGroup] the resource bound as '${u}' was destroyed while a shader still uses it. Remove it from the shader before destroying it.`);let f;if(d._resourceType==="uniformGroup"){let m=d;l.ubo.updateUniformGroup(m);let g=m.buffer;f={buffer:l.buffer.getGPUBuffer(g),offset:0,size:g.descriptor.size}}else if(d._resourceType==="buffer"){let m=d;f={buffer:l.buffer.getGPUBuffer(m),offset:0,size:m.descriptor.size}}else if(d._resourceType==="bufferResource"){let m=d;f={buffer:l.buffer.getGPUBuffer(m.buffer),offset:m.offset,size:m.size??m.buffer.descriptor.size}}else if(d._resourceType==="textureSampler"){let m=d;f=l.texture.getGpuSampler(m)}else if(d._resourceType==="textureSource"){let m=d;f=l.texture.getTextureView(m)}else if(d._resourceType==="textureView"){let m=d;f=l.texture.getTextureView(m.source,m.viewDescriptor)}a.push({binding:o[u],resource:f})}let c=l.shader.getProgramData(r).bindGroups[s],h=n.createBindGroup({layout:c,entries:a});return this._hash[t]=h,h}destroy(){this._hash=null,this._renderer=null}};_n.extension={type:[y.WebGPUSystem],name:"bindGroup"}});var kt,Ie=p(()=>{"use strict";kt=class{constructor(t){this.items=Object.create(null);let{renderer:e,type:r,onUnload:s,priority:n,name:o}=t;this._renderer=e,e.gc.addResourceHash(this,"items",r,n??0),this._onUnload=s,this.name=o}add(t){return this.items[t.uid]?!1:(this.items[t.uid]=t,t.once("unload",this.remove,this),t._gcLastUsed=this._renderer.gc.now,!0)}remove(t,...e){if(!this.items[t.uid])return;let r=t._gpuData[this._renderer.uid];r&&(this._onUnload?.(t,...e),r.destroy(),t._gpuData[this._renderer.uid]=null,this.items[t.uid]=null)}removeAll(...t){Object.values(this.items).forEach(e=>e&&this.remove(e,...t))}destroy(...t){this.removeAll(...t),this.items=Object.create(null),this._renderer=null,this._onUnload=null}}});var ou,yn,x_=p(()=>{P();Ie();Oh();ou=class{constructor(t){this.gpuBuffer=t}destroy(){this.gpuBuffer.destroy(),this.gpuBuffer=null}},yn=class{constructor(t){this._renderer=t,this._managedBuffers=new kt({renderer:t,type:"resource",onUnload:this.onBufferUnload.bind(this),name:"gpuBuffer"})}contextChange(t){this._gpu=t}getGPUBuffer(t){return t._gcLastUsed=this._renderer.gc.now,t._gpuData[this._renderer.uid]?.gpuBuffer||this.createGPUBuffer(t)}updateBuffer(t){let e=this.getGPUBuffer(t),r=t.data;return t._updateID&&r&&(t._updateID=0,this._gpu.device.queue.writeBuffer(e,t._updateOffset,r.buffer,r.byteOffset+t._updateOffset,(t._updateSize||r.byteLength)+3&-4)),e}destroyAll(){this._managedBuffers.removeAll()}onBufferUnload(t){t.off("update",this.updateBuffer,this),t.off("change",this.onBufferChange,this)}createGPUBuffer(t){let e=this._gpu.device.createBuffer(t.descriptor);return t._updateID=0,t.data&&(sn(t.data.buffer,e.getMappedRange(),t.data.byteOffset,t.data.byteLength),e.unmap()),t._gpuData[this._renderer.uid]=new ou(e),this._managedBuffers.add(t)&&(t.on("update",this.updateBuffer,this),t.on("change",this.onBufferChange,this)),e}onBufferChange(t){this._managedBuffers.remove(t),t._updateID=0,this.createGPUBuffer(t)}destroy(){this._managedBuffers.destroy(),this._renderer=null,this._gpu=null}};yn.extension={type:[y.WebGPUSystem],name:"buffer"}});var bn,__=p(()=>{P();bn=class{constructor(t){this._colorMaskCache=15,this._renderer=t}setMask(t){this._colorMaskCache!==t&&(this._colorMaskCache=t,this._renderer.pipeline.setColorMask(t))}destroy(){this._renderer=null,this._colorMaskCache=null}};bn.extension={type:[y.WebGPUSystem],name:"colorMask"}});var $i,y_=p(()=>{xt();P();$i=class{constructor(t){this._renderer=t}async init(t){return this._initPromise?this._initPromise:(this._initPromise=(t.gpu?Promise.resolve(t.gpu):this._createDeviceAndAdaptor(t)).then(e=>{this.gpu=e,this.extensions={transientAttachment:typeof GPUTextureUsage.TRANSIENT_ATTACHMENT=="number"},this._renderer.runners.contextChange.emit(this.gpu)}),this._initPromise)}contextChange(t){this._renderer.gpu=t}async _createDeviceAndAdaptor(t){let e=await W.get().getNavigator().gpu.requestAdapter({powerPreference:t.powerPreference,forceFallbackAdapter:t.forceFallbackAdapter});if(!e)throw new Error("WebGPU not supported. No GPU adapter was returned by navigator.gpu.requestAdapter().");let r=["texture-compression-bc","texture-compression-astc","texture-compression-etc2","indirect-first-instance"].filter(n=>e.features.has(n)),s=await e.requestDevice({requiredFeatures:r,requiredLimits:{maxSampledTexturesPerShaderStage:e.limits.maxSampledTexturesPerShaderStage,maxSamplersPerShaderStage:e.limits.maxSamplersPerShaderStage}});return{adapter:e,device:s}}destroy(){this.gpu=null,this.extensions=null,this._renderer=null}};$i.extension={type:[y.WebGPUSystem],name:"device"};$i.defaultOptions={powerPreference:void 0,forceFallbackAdapter:!1}});var vn,b_=p(()=>{P();vn=class{constructor(t){this._boundBindGroup=Object.create(null),this._boundVertexBuffer=Object.create(null),this._renderer=t;for(let e=0;e<16;e++)this._boundBindGroup[e]={bindGroup:null,program:null,key:null}}renderStart(){this.commandFinished=new Promise(t=>{this._resolveCommandFinished=t}),this.commandEncoder=this._renderer.gpu.device.createCommandEncoder()}beginRenderPass(t){this.endRenderPass(),this._clearCache(),this._passEncoder=this.commandEncoder.beginRenderPass(t.descriptor),this.renderPassEncoder=this._passEncoder}endRenderPass(){this._passEncoder&&this._passEncoder.end(),this.renderPassEncoder=null,this._passEncoder=null}beginBundle(){if(this._passEncoder!==this.renderPassEncoder)throw new Error("Cannot begin a new render bundle while one is already being recorded.");this._clearCache();let t=this._renderer.pipeline.getBundleDescriptor();this.renderPassEncoder=this._gpu.device.createRenderBundleEncoder(t)}endBundle(){let t=this.renderPassEncoder;if(!t||!("finish"in t))throw new Error("endBundle called without an active render bundle.");let e=t.finish();return this.renderPassEncoder=this._passEncoder,this._clearCache(),e}executeBundle(t){this._clearCache(),this._passEncoder.executeBundles([t])}setViewport(t){this._passEncoder.setViewport(t.x,t.y,t.width,t.height,0,1)}setStencilReference(t){this._passEncoder.setStencilReference(t)}setPipelineFromGeometryProgramAndState(t,e,r,s,n){let o=this._renderer.pipeline.getPipeline(t,e,r,s,n);this.setPipeline(o)}setPipeline(t){this._boundPipeline!==t&&(this._boundPipeline=t,this.renderPassEncoder.setPipeline(t))}_setVertexBuffer(t,e){this._boundVertexBuffer[t]!==e&&(this._boundVertexBuffer[t]=e,this.renderPassEncoder.setVertexBuffer(t,this._renderer.buffer.updateBuffer(e)))}_setIndexBuffer(t){if(this._boundIndexBuffer===t)return;this._boundIndexBuffer=t;let e=t.data.BYTES_PER_ELEMENT===2?"uint16":"uint32";this.renderPassEncoder.setIndexBuffer(this._renderer.buffer.updateBuffer(t),e)}resetBindGroup(t){let e=this._boundBindGroup[t];e.bindGroup=null,e.program=null,e.key=null}setBindGroup(t,e,r){let s=this._boundBindGroup[t];if(s.bindGroup===e&&s.program===r&&s.key===e._key)return;s.bindGroup=e,s.program=r,s.key=e._key,e._touch(this._renderer.gc.now,this._renderer.tick);let n=this._renderer.bindGroup.getBindGroup(e,r,t);this.renderPassEncoder.setBindGroup(t,n)}setGeometry(t,e){let r=this._renderer.pipeline.getBufferNamesToBind(t,e);for(let s in r)this._setVertexBuffer(parseInt(s,10),t.attributes[r[s]].buffer);t.indexBuffer&&this._setIndexBuffer(t.indexBuffer)}_setShaderBindGroups(t,e){let r=t.gpuProgram;for(let s in t.groups){if(!r.layout[s])continue;let n=t.groups[s];e||this._syncBindGroup(n),this.setBindGroup(s,n,r)}}_syncBindGroup(t){for(let e in t.resources){let r=t.resources[e];r&&r.isUniformGroup&&this._renderer.ubo.updateUniformGroup(r)}}draw(t){let{geometry:e,shader:r,state:s,topology:n,size:o,start:a,baseVertex:l,instanceCount:c,skipSync:h,firstInstance:u}=t;this.setPipelineFromGeometryProgramAndState(e,r.gpuProgram,s,n,r._overrides),this.setGeometry(e,r.gpuProgram),this._setShaderBindGroups(r,h),e.indexBuffer?this.renderPassEncoder.drawIndexed(o||e.indexBuffer.data.length,c??e.instanceCount,a||0,l||0,u||0):this.renderPassEncoder.draw(o||e.vertexCount,c??e.instanceCount,a||0,u||0)}drawIndirect(t){let{geometry:e,shader:r,state:s,topology:n,skipSync:o,indirectBuffer:a,indirectOffset:l}=t;this.setPipelineFromGeometryProgramAndState(e,r.gpuProgram,s,n,r._overrides),this.setGeometry(e,r.gpuProgram),this._setShaderBindGroups(r,o),e.indexBuffer?this.renderPassEncoder.drawIndexedIndirect(a,l):this.renderPassEncoder.drawIndirect(a,l)}finishRenderPass(){this._passEncoder&&(this._passEncoder.end(),this.renderPassEncoder=null,this._passEncoder=null)}postrender(){this.finishRenderPass(),this._gpu.device.queue.submit([this.commandEncoder.finish()]),this._resolveCommandFinished(),this.commandEncoder=null}_clearCache(){for(let t=0;t<16;t++){let e=this._boundBindGroup[t];e.bindGroup=null,e.program=null,e.key=null,this._boundVertexBuffer[t]=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,this.renderPassEncoder=null,this._passEncoder=null}contextChange(t){this._gpu=t}};vn.extension={type:[y.WebGPUSystem],name:"encoder",priority:1}});var Sn,v_=p(()=>{P();Sn=class{constructor(t){this.supportsOverrideConstants=!1,this._renderer=t}contextChange(){let t=this._renderer.device.gpu.device;this.maxTextures=Math.min(t.limits.maxSampledTexturesPerShaderStage,t.limits.maxSamplersPerShaderStage),this.maxBatchableTextures=this.maxTextures,this._detectOverrideConstantsSupport(t)}_detectOverrideConstantsSupport(t){t.pushErrorScope("validation");let e=t.createShaderModule({code:`override TEST_VALUE: f32 = 0.0;
573
+ @compute @workgroup_size(1) fn main() {}`});t.createComputePipeline({layout:"auto",compute:{module:e,entryPoint:"main",constants:{TEST_VALUE:1}}}),t.popErrorScope().then(r=>{this.supportsOverrideConstants=!r})}destroy(){}};Sn.extension={type:[y.WebGPUSystem],name:"limits"}});var Tn,S_=p(()=>{P();$r();Tn=class{constructor(t){this._renderTargetStencilState=Object.create(null),this._renderer=t,t.renderTarget.onRenderTargetChange.add(this)}onRenderTargetChange(t){let e=this._renderTargetStencilState[t.uid];e||(e=this._renderTargetStencilState[t.uid]={stencilMode:vt.DISABLED,stencilReference:0}),this._activeRenderTarget=t,this.setStencilMode(e.stencilMode,e.stencilReference)}setStencilMode(t,e){let r=this._renderTargetStencilState[this._activeRenderTarget.uid];r.stencilMode=t,r.stencilReference=e;let s=this._renderer;s.pipeline.setStencilMode(t),s.encoder.setStencilReference(e)}destroy(){this._renderer.renderTarget.onRenderTargetChange.remove(this),this._renderer=null,this._activeRenderTarget=null,this._renderTargetStencilState=null}};Tn.extension={type:[y.WebGPUSystem],name:"stencil"}});var br,Oa=p(()=>{fh();xr();ir();br=class{constructor(t){this._syncFunctionHash=Object.create(null),this._adaptor=t,this._systemCheck()}_systemCheck(){if(!ca())throw new Error("Current environment does not allow unsafe-eval, please use pixi.js/unsafe-eval module to enable support.")}ensureUniformGroup(t){let e=this.getUniformGroupData(t);t.buffer||(t.buffer=new At({data:new Float32Array(e.layout.size/4),usage:tt.UNIFORM|tt.COPY_DST}))}getUniformGroupData(t){return this._syncFunctionHash[t._signature]||this._initUniformGroup(t)}_initUniformGroup(t){let e=t._signature,r=this._syncFunctionHash[e];if(!r){let s=Object.keys(t.uniformStructures).map(a=>t.uniformStructures[a]),n=this._adaptor.createUboElements(s),o=this._generateUboSync(n.uboElements);r=this._syncFunctionHash[e]={layout:n,syncFunction:o}}return this._syncFunctionHash[e]}_generateUboSync(t){return this._adaptor.generateUboSync(t)}syncUniformGroup(t,e,r){let s=this.getUniformGroupData(t);t.buffer||(t.buffer=new At({data:new Float32Array(s.layout.size/4),usage:tt.UNIFORM|tt.COPY_DST}));let n=null;return e||(e=t.buffer.data,n=t.buffer.dataInt32),r||(r=0),s.syncFunction(t.uniforms,e,n,r),!0}updateUniformGroup(t){if(t.isStatic&&!t._dirtyId)return!1;t._dirtyId=0;let e=this.syncUniformGroup(t);return t.buffer.update(),e}destroy(){this._syncFunctionHash=null}}});function T_(i){let t=i.map(r=>({data:r,offset:0,size:0})),e=0;for(let r=0;r<t.length;r++){let s=t[r],n=Zr[s.data.type].size,o=Zr[s.data.type].align;if(!Zr[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),e=Math.ceil(e/o)*o,s.size=n,s.offset=e,e+=n}return e=Math.ceil(e/16)*16,{uboElements:t,size:e}}var Zr,Na=p(()=>{"use strict";Zr={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 de,wn=p(()=>{"use strict";de=[{type:"mat3x3<f32>",test:i=>i.value.a!==void 0,ubo:`
574
574
  var matrix = uv[name].toArray(true);
575
575
  data[offset] = matrix[0];
576
576
  data[offset + 1] = matrix[1];
@@ -641,23 +641,23 @@ fn mainFragment(
641
641
  cv[2] = v.blue;
642
642
  gl.uniform3f(ud[name].location, v.red, v.green, v.blue);
643
643
  }
644
- `}]});function Na(i,t,e){let r=[`
644
+ `}]});function za(i,t,e){let r=[`
645
645
  var v = null;
646
646
  var v2 = null;
647
647
  var t = 0;
648
648
  var index = 0;
649
649
  var name = null;
650
650
  var arrayOffset = null;
651
- `],s=0;for(let o=0;o<i.length;o++){let a=i[o],l=a.data.name,c=!1,h=0;for(let u=0;u<ue.length;u++)if(ue[u].test(a.data)){h=a.offset/4,r.push(`name = "${l}";`,`offset += ${h-s};`,ue[u].ubo),c=!0;break}if(!c)if(a.data.size>1)h=a.offset/4,r.push(e(a,h-s));else{let u=t[a.data.type];h=a.offset/4,r.push(`
651
+ `],s=0;for(let o=0;o<i.length;o++){let a=i[o],l=a.data.name,c=!1,h=0;for(let u=0;u<de.length;u++)if(de[u].test(a.data)){h=a.offset/4,r.push(`name = "${l}";`,`offset += ${h-s};`,de[u].ubo),c=!0;break}if(!c)if(a.data.size>1)h=a.offset/4,r.push(e(a,h-s));else{let u=t[a.data.type];h=a.offset/4,r.push(`
652
652
  v = uv.${l};
653
653
  offset += ${h-s};
654
654
  ${u};
655
655
  `)}s=h}let n=r.join(`
656
- `);return new Function("uv","data","dataInt32","offset",n)}var au=p(()=>{Tn()});function $i(i,t){return`
656
+ `);return new Function("uv","data","dataInt32","offset",n)}var au=p(()=>{wn()});function qi(i,t){return`
657
657
  for (let i = 0; i < ${i*t}; i++) {
658
658
  data[offset + (((i / ${i})|0) * 4) + (i % ${i})] = v[i];
659
659
  }
660
- `}var lu,S_,cu=p(()=>{"use strict";lu={f32:`
660
+ `}var lu,w_,cu=p(()=>{"use strict";lu={f32:`
661
661
  data[offset] = v;`,i32:`
662
662
  dataInt32[offset] = v;`,u32:`
663
663
  dataInt32[offset] = v;`,"vec2<f32>":`
@@ -703,12 +703,12 @@ fn mainFragment(
703
703
  data[offset + 10] = v[8];`,"mat4x4<f32>":`
704
704
  for (let i = 0; i < 16; i++) {
705
705
  data[offset + i] = v[i];
706
- }`,"mat3x2<f32>":$i(3,2),"mat4x2<f32>":$i(4,2),"mat2x3<f32>":$i(2,3),"mat4x3<f32>":$i(4,3),"mat2x4<f32>":$i(2,4),"mat3x4<f32>":$i(3,4)},S_={...lu,"mat2x2<f32>":`
706
+ }`,"mat3x2<f32>":qi(3,2),"mat4x2<f32>":qi(4,2),"mat2x3<f32>":qi(2,3),"mat4x3<f32>":qi(4,3),"mat2x4<f32>":qi(2,4),"mat3x4<f32>":qi(3,4)},w_={...lu,"mat2x2<f32>":`
707
707
  data[offset] = v[0];
708
708
  data[offset + 1] = v[1];
709
709
  data[offset + 2] = v[2];
710
710
  data[offset + 3] = v[3];
711
- `}});function T_(i,t){let{size:e,align:r}=Zr[i.data.type],s=(r-e)/4,n=i.data.type.indexOf("i32")>=0?"dataInt32":"data";return`
711
+ `}});function C_(i,t){let{size:e,align:r}=Zr[i.data.type],s=(r-e)/4,n=i.data.type.indexOf("i32")>=0?"dataInt32":"data";return`
712
712
  v = uv.${i.data.name};
713
713
  ${t!==0?`offset += ${t};`:""}
714
714
 
@@ -724,7 +724,7 @@ fn mainFragment(
724
724
  }
725
725
  ${s!==0?`arrayOffset += ${s};`:""}
726
726
  }
727
- `}var w_=p(()=>{Oa()});function C_(i){return Na(i,S_,T_)}var E_=p(()=>{au();cu();w_()});var Qr,hu=p(()=>{P();La();Oa();E_();Qr=class extends br{constructor(){super({createUboElements:v_,generateUboSync:C_})}};Qr.extension={type:[y.WebGPUSystem],name:"ubo"}});var He,wn=p(()=>{Ht();Ft();He=class extends ut{constructor({buffer:t,offset:e,size:r}){super(),this.uid=$("buffer"),this._resourceType="bufferResource",this._touched=0,this._resourceId=$("resource"),this._bufferResource=!0,this.destroyed=!1,this.buffer=t,this.offset=e|0,this.size=r,this.buffer.on("change",this.onBufferChange,this)}get _gcLastUsed(){return this.buffer?._gcLastUsed??-1}set _gcLastUsed(t){this.buffer&&(this.buffer._gcLastUsed=t)}onBufferChange(){this._resourceId=$("resource"),this.emit("change",this)}destroy(t=!1){this.destroyed=!0,t&&this.buffer.destroy(),this.emit("change",this),this.buffer=null,this.removeAllListeners()}}});var za,P_=p(()=>{"use strict";za=class{constructor({minUniformOffsetAlignment:t}){this._minUniformOffsetAlignment=256,this.byteIndex=0,this._minUniformOffsetAlignment=t,this.data=new Float32Array(65535)}clear(){this.byteIndex=0}addEmptyGroup(t){if(t>this._minUniformOffsetAlignment/4)throw new Error(`UniformBufferBatch: array is too large: ${t*4}`);let e=this.byteIndex,r=e+t*4;if(r=Math.ceil(r/this._minUniformOffsetAlignment)*this._minUniformOffsetAlignment,r>this.data.length*4)throw new Error("UniformBufferBatch: ubo batch got too big");return this.byteIndex=r,e}addGroup(t){let e=this.addEmptyGroup(t.length);for(let r=0;r<t.length;r++)this.data[e/4+r]=t[r];return e}destroy(){this.data=null}}});var vr,Cn,M_=p(()=>{P();xr();wn();ir();P_();mr();vr=128,Cn=class{constructor(t){this._bindGroupHash=Object.create(null),this._buffers=[],this._bindGroups=[],this._bufferResources=[],this._renderer=t,this._batchBuffer=new za({minUniformOffsetAlignment:vr});let e=256/vr;for(let r=0;r<e;r++){let s=tt.UNIFORM|tt.COPY_DST;r===0&&(s|=tt.COPY_SRC),this._buffers.push(new At({data:this._batchBuffer.data,usage:s}))}}renderEnd(){this._uploadBindGroups(),this._resetBindGroups()}_resetBindGroups(){this._bindGroupHash=Object.create(null),this._batchBuffer.clear()}getUniformBindGroup(t,e){if(!e&&this._bindGroupHash[t.uid])return this._bindGroupHash[t.uid];this._renderer.ubo.ensureUniformGroup(t);let r=t.buffer.data,s=this._batchBuffer.addEmptyGroup(r.length);return this._renderer.ubo.syncUniformGroup(t,this._batchBuffer.data,s/4),this._bindGroupHash[t.uid]=this._getBindGroup(s/vr),this._bindGroupHash[t.uid]}getUboResource(t){this._renderer.ubo.updateUniformGroup(t);let e=t.buffer.data,r=this._batchBuffer.addGroup(e);return this._getBufferResource(r/vr)}getArrayBindGroup(t){let e=this._batchBuffer.addGroup(t);return this._getBindGroup(e/vr)}getArrayBufferResource(t){let r=this._batchBuffer.addGroup(t)/vr;return this._getBufferResource(r)}_getBufferResource(t){if(!this._bufferResources[t]){let e=this._buffers[t%2];this._bufferResources[t]=new He({buffer:e,offset:(t/2|0)*256,size:vr})}return this._bufferResources[t]}_getBindGroup(t){if(!this._bindGroups[t]){let e=new Vt({0:this._getBufferResource(t)});this._bindGroups[t]=e}return this._bindGroups[t]}_uploadBindGroups(){let t=this._renderer.buffer,e=this._buffers[0];e.update(this._batchBuffer.byteIndex),t.updateBuffer(e);let r=this._renderer.gpu.device.createCommandEncoder();for(let s=1;s<this._buffers.length;s++){let n=this._buffers[s];r.copyBufferToBuffer(t.getGPUBuffer(e),vr,t.getGPUBuffer(n),0,this._batchBuffer.byteIndex)}this._renderer.gpu.device.queue.submit([r.finish()])}destroy(){for(let t=0;t<this._bindGroups.length;t++)this._bindGroups[t]?.destroy();this._bindGroups=null,this._bindGroupHash=null;for(let t=0;t<this._buffers.length;t++)this._buffers[t].destroy();this._buffers=null;for(let t=0;t<this._bufferResources.length;t++)this._bufferResources[t].destroy();this._bufferResources=null,this._batchBuffer.destroy(),this._renderer=null}};Cn.extension={type:[y.WebGPUPipes],name:"uniformBatch"}});function En(i,t){for(let e in i.attributes){let r=i.attributes[e],s=t[e];s?(r.format??(r.format=s.format),r.offset??(r.offset=s.offset),r.instance??(r.instance=s.instance)):L(`Attribute ${e} is not present in the shader, but is present in the geometry. Unable to infer attribute details.`)}wT(i)}function wT(i){let{buffers:t,attributes:e}=i,r={},s={};for(let n in t){let o=t[n];r[o.uid]=0,s[o.uid]=0}for(let n in e){let o=e[n];r[o.buffer.uid]+=Jt(o.format).stride}for(let n in e){let o=e[n];o.stride??(o.stride=r[o.buffer.uid]),o.start??(o.start=s[o.buffer.uid]),s[o.buffer.uid]+=Jt(o.format).stride}}var uu=p(()=>{ht();pr()});var We,du=p(()=>{$r();We=[];We[vt.NONE]=void 0;We[vt.DISABLED]={stencilWriteMask:0,stencilReadMask:0};We[vt.RENDERING_MASK_ADD]={stencilFront:{compare:"equal",passOp:"increment-clamp"},stencilBack:{compare:"equal",passOp:"increment-clamp"}};We[vt.RENDERING_MASK_REMOVE]={stencilFront:{compare:"equal",passOp:"decrement-clamp"},stencilBack:{compare:"equal",passOp:"decrement-clamp"}};We[vt.MASK_ACTIVE]={stencilWriteMask:0,stencilFront:{compare:"equal",passOp:"keep"},stencilBack:{compare:"equal",passOp:"keep"}};We[vt.INVERSE_MASK_ACTIVE]={stencilWriteMask:0,stencilFront:{compare:"not-equal",passOp:"keep"},stencilBack:{compare:"not-equal",passOp:"keep"}}});function k_(i,t){for(let[e,r]of Object.entries(t)){let s=new RegExp(`override\\s+${e}\\s*:\\s*(\\w+)\\s*(?:=[^;]*)?;`);i=i.replace(s,(n,o)=>{let a;return o==="u32"?a=`${Math.trunc(r)}u`:o==="i32"?a=`${Math.trunc(r)}`:a=Number.isInteger(r)?`${r}.0`:`${r}`,`const ${e}: ${o} = ${a};`})}return i}function B_(i,t,e,r,s,n){return i*35184372088832+t*536870912+n*16384+(e<<8)+(r<<3)+s}function G_(i){let t=I_[i];return t===void 0&&(t=I_[i]=PT++),t}function MT(i,t,e,r,s,n,o,a){return a<<20|n<<16|s<<13|e<<9|i<<6|o<<5|r<<1|t}var A_,CT,ET,R_,I_,PT,Pn,F_=p(()=>{P();ht();uu();Kc();$r();Mi();du();A_={"point-list":0,"line-list":1,"line-strip":2,"triangle-list":3,"triangle-strip":4},CT=new Ri({}),ET={"depth24plus-stencil8":{depth:!0,stencil:!0,index:1},depth24plus:{depth:!0,stencil:!1,index:2},depth32float:{depth:!0,stencil:!1,index:3},"depth32float-stencil8":{depth:!0,stencil:!0,index:4},depth16unorm:{depth:!0,stencil:!1,index:5},stencil8:{depth:!1,stencil:!0,index:6}},R_={depth:!1,stencil:!1,index:0};I_=Object.create(null),PT=0;Pn=class{constructor(t){this._moduleCache=Object.create(null),this._bufferLayoutsCache=Object.create(null),this._bindingNamesCache=Object.create(null),this._pipeCache=new Map,this._pipeStateCaches=Object.create(null),this._colorMask=15,this._multisampleCount=1,this._colorTargetCount=1,this._colorFormat="bgra8unorm",this._colorFormatId=G_("bgra8unorm"),this._depthStencilFormat="depth24plus-stencil8",this._depthStencilFormatData=R_,this._depthReadOnly=!1,this._invertFrontFace=!1,this._renderer=t}contextChange(t){this._gpu=t,this.setStencilMode(vt.DISABLED),this._updatePipeHash()}setMultisampleCount(t){this._multisampleCount!==t&&(this._multisampleCount=t,this._updatePipeHash())}setRenderTarget(t){let e=t.colorAttachments[0]?.texture;this._multisampleCount=e?.source.antialias?4:1,this._colorTargetCount=t.colorAttachments.length,this._colorFormat=e?.format??"bgra8unorm",this._colorFormatId=G_(this._colorFormat),this._depthStencilFormat=t.depthStencilAttachment?.texture.format,this._depthStencilFormatData=ET[this._depthStencilFormat]||R_,this._depthReadOnly=t.depthStencilAttachment?.depthReadOnly??!1,this._invertFrontFace=!!t.flipY,this._updatePipeHash()}setColorMask(t){this._colorMask!==t&&(this._colorMask=t,this._updatePipeHash())}setStencilMode(t){this._stencilMode!==t&&(this._stencilMode=t,this._stencilState=We[t],this._updatePipeHash())}getBundleDescriptor(){let t=[];for(let r=0;r<this._colorTargetCount;r++)t.push(this._colorFormat);let e={colorFormats:t,sampleCount:this._multisampleCount};return(this._depthStencilFormatData.depth||this._depthStencilFormatData.stencil)&&(e.depthStencilFormat=this._depthStencilFormat),e}setPipeline(t,e,r,s){let n=this.getPipeline(t,e,r);s.setPipeline(n)}getPipelineKey(t,e,r,s,n){return t._layoutKey||(En(t,e.attributeData),this._generateBufferKey(t)),B_(t._layoutKey,e._layoutKey,r.data,r._blendModeId,A_[s],n.id)}getPipeline(t,e,r,s,n){t._layoutKey||(En(t,e.attributeData),this._generateBufferKey(t)),s||(s=t.topology),n||(n=CT);let o=B_(t._layoutKey,e._layoutKey,r.data,r._blendModeId,A_[s],n.id),a=this._pipeCache.get(o);return a||(a=this._createPipeline(t,e,r,s,n),this._pipeCache.set(o,a)),a}_createPipeline(t,e,r,s,n){let o=this._gpu.device,a=this._createVertexBufferLayouts(t,e),l=this._renderer.state.getColorTargets(r,this._colorTargetCount,this._colorFormat),c=this._stencilMode===vt.RENDERING_MASK_ADD?0:this._colorMask;for(let x=0;x<l.length;x++)l[x].writeMask=c;let h=this._renderer.shader.getProgramData(e).pipeline,u=Object.keys(n.data).length>0,d=e.vertex.source,f=e.fragment.source,m;u&&(this._renderer.limits.supportsOverrideConstants?m=n.data:(d=k_(d,n.data),f=k_(f,n.data)));let g={vertex:{module:this._getModule(d),entryPoint:e.vertex.entryPoint,constants:m,buffers:a},fragment:{module:this._getModule(f),entryPoint:e.fragment.entryPoint,targets:l,constants:m},primitive:{topology:s,cullMode:r.culling?"back":"none",frontFace:r.clockwiseFrontFace!==this._invertFrontFace?"cw":"ccw"},layout:h,multisample:{count:this._multisampleCount},label:e.name?`PIXI Pipeline (${e.name})`:"PIXI Pipeline"};if(this._depthStencilFormatData.depth||this._depthStencilFormatData.stencil){let x=this._depthStencilFormatData;g.depthStencil={...this._stencilState,format:this._depthStencilFormat,depthWriteEnabled:x.depth?r.depthMask&&!this._depthReadOnly:!1,depthCompare:x.depth&&r.depthTest?"less":"always"}}return o.createRenderPipeline(g)}_getModule(t){return this._moduleCache[t]||this._createModule(t)}_createModule(t){let e=this._gpu.device;return this._moduleCache[t]=e.createShaderModule({code:t}),this._moduleCache[t]}_generateBufferKey(t){let e=[],r=0,s=Object.keys(t.attributes).sort();for(let o=0;o<s.length;o++){let a=t.attributes[s[o]];e[r++]=a.offset,e[r++]=a.format,e[r++]=a.stride,e[r++]=a.instance}let n=e.join("|");return t._layoutKey=ke(n,"geometry"),t._layoutKey}_generateAttributeLocationsKey(t){let e=[],r=0,s=Object.keys(t.attributeData).sort();for(let o=0;o<s.length;o++){let a=t.attributeData[s[o]];e[r++]=a.location}let n=e.join("|");return t._attributeLocationsKey=ke(n,"programAttributes"),t._attributeLocationsKey}getBufferNamesToBind(t,e){let r=t._layoutKey<<16|e._attributeLocationsKey;if(this._bindingNamesCache[r])return this._bindingNamesCache[r];let s=this._createVertexBufferLayouts(t,e),n=Object.create(null),o=e.attributeData;for(let a=0;a<s.length;a++){let c=Object.values(s[a].attributes)[0].shaderLocation;for(let h in o)if(o[h].location===c){n[a]=h;break}}return this._bindingNamesCache[r]=n,n}_createVertexBufferLayouts(t,e){e._attributeLocationsKey||this._generateAttributeLocationsKey(e);let r=t._layoutKey<<16|e._attributeLocationsKey;if(this._bufferLayoutsCache[r])return this._bufferLayoutsCache[r];let s=[];return t.buffers.forEach(n=>{let o={arrayStride:0,stepMode:"vertex",attributes:[]},a=o.attributes;for(let l in e.attributeData){let c=t.attributes[l];(c.divisor??1)!==1&&L(`Attribute ${l} has an invalid divisor value of '${c.divisor}'. WebGPU only supports a divisor value of 1`),c.buffer===n&&(o.arrayStride=c.stride,o.stepMode=c.instance?"instance":"vertex",a.push({shaderLocation:e.attributeData[l].location,offset:c.offset,format:c.format}))}a.length&&s.push(o)}),this._bufferLayoutsCache[r]=s,s}_updatePipeHash(){var t;let e=MT(this._stencilMode,this._multisampleCount===1?0:1,this._colorMask,this._colorTargetCount,this._depthStencilFormatData.index,this._colorFormatId,this._depthReadOnly?1:0,this._invertFrontFace?1:0);this._pipeCache=(t=this._pipeStateCaches)[e]??(t[e]=new Map)}destroy(){this._bufferLayoutsCache=null,this._pipeCache=null,this._gpu=null,this._renderer=null,this._bindingNamesCache=null,this._pipeStateCaches=null,this._moduleCache=null}};Pn.extension={type:[y.WebGPUSystem],name:"pipeline"}});function U_(i,t,e,r,s,n){let o=n?1:-1;return i.identity(),i.a=1/r*2,i.d=o*(1/s*2),i.tx=-1-t*i.a,i.ty=-o-e*i.d,i}var D_=p(()=>{"use strict"});function L_(i){if(i.colorAttachments.length===0)return!1;let t=i.colorTexture.resource;return globalThis.HTMLCanvasElement&&t instanceof HTMLCanvasElement&&document.body.contains(t)}var O_=p(()=>{"use strict"});var Sr,Ha=p(()=>{ot();Yt();yt();ht();ki();D_();Ne();vh();fr();$t();gt();su();O_();iu();Sr=class{constructor(t){this.rootViewPort=new J,this.viewport=new J,this.onRenderTargetChange=new Bi("onRenderTargetChange"),this.projectionMatrix=new k,this.defaultClearColor=[0,0,0,0],this._renderSurfaceToRenderTargetHash=new Map,this._gpuRenderTargetHash=Object.create(null),this._renderTargetStack=[],this._bindState={target:null,frame:void 0,mipLevel:0,layer:0,flipY:!1},this._bindFrame=new J,this._renderer=t,t.gc.addCollection(this,"_gpuRenderTargetHash","hash")}get renderSurface(){return this._bindState.target}get mipLevel(){return this._bindState.mipLevel}get layer(){return this._bindState.layer}finishRenderPass(){this.adaptor.finishRenderPass(this.renderTarget)}renderStart(t){this._renderTargetStack.length=0,this.push(t),this.rootViewPort.copyFrom(this.viewport),this.rootRenderTarget=this.renderTarget,this.renderingToScreen=L_(this.rootRenderTarget),this.adaptor.prerender?.(this.rootRenderTarget)}postrender(){this.adaptor.postrender?.(this.rootRenderTarget)}bind(t,e=!0,r,s,n=0,o=0,a){let l;"target"in t?l=t:(O("8.20.0","RenderTargetSystem.bind: positional arguments are deprecated, please use an options object instead: bind({ target, clear, clearColor, frame, mipLevel, layer, flipY })"),l={target:t,clear:e,clearColor:r,frame:s,mipLevel:n,layer:o,flipY:a});let c=l.target;e=l.clear??!0,r=l.clearColor,n=(l.mipLevel??0)|0,o=(l.layer??0)|0,a=l.flipY,s=l.frame;let h=this.getRenderTarget(c),u=this.renderTarget!==h;this.renderTarget=h;let d=this.getGpuRenderTarget(h);(h.pixelWidth!==d.width||h.pixelHeight!==d.height)&&(this.adaptor.resizeGpuRenderTarget(h),d.width=h.pixelWidth,d.height=h.pixelHeight);let f=h.colorAttachments[0]?.texture||h.depthStencilAttachment?.texture,m=this.viewport,g=f.arrayLayerCount||1;if(o<0||o>=g)throw new Error(`[RenderTargetSystem] layer ${o} is out of bounds (arrayLayerCount=${g}).`);let _=this._bindState;_.target=c,_.frame=s?this._bindFrame.copyFrom(s):void 0,_.mipLevel=n,_.layer=o,_.flipY=a;let x=Math.max(f.pixelWidth>>n,1),b=Math.max(f.pixelHeight>>n,1);if(!s&&c instanceof U&&(s=c.frame),s){let v=f._resolution,S=1<<Math.max(n,0),T=s.x*v+.5|0,w=s.y*v+.5|0,E=s.width*v+.5|0,B=s.height*v+.5|0,R=Math.floor(T/S),M=Math.floor(w/S),C=Math.ceil(E/S),A=Math.ceil(B/S);R<0&&(C+=R,R=0),M<0&&(A+=M,M=0),R=Math.min(R,x-1),M=Math.min(M,b-1),C=Math.min(C,x-R),A=Math.min(A,b-M),C=Math.max(C,1),A=Math.max(A,1),m.x=R,m.y=M,m.width=C,m.height=A}else m.x=0,m.y=0,m.width=x,m.height=b;return h.flipY=a,U_(this.projectionMatrix,0,0,m.width/f.resolution,m.height/f.resolution,!h.isRoot!=!!h.flipY),this.adaptor.startRenderPass(h,e,r,m,n,o),u&&this.onRenderTargetChange.emit(h),h}getBindState(t){if(!this.renderTarget)throw new Error("[RenderTargetSystem] getBindState is only valid while a render surface is bound");let e=this._bindState;return t??(t={}),t.target=e.target,t.clear=Et.NONE,t.clearColor=void 0,e.frame?t.frame?t.frame.copyFrom(e.frame):t.frame=e.frame.clone():t.frame=void 0,t.mipLevel=e.mipLevel,t.layer=e.layer,t.flipY=!!e.flipY,t}get frontFaceInverted(){let t=this.renderTarget;if(!t)return!1;let e=this._renderer.type===Lt.WEBGL&&!t.isRoot;return!!t.flipY!==e}clear(t,e=Et.ALL,r,s=this.mipLevel,n=this.layer){e&&(t&&(t=this.getRenderTarget(t)),this.adaptor.clear(t||this.renderTarget,e,r,this.viewport,s,n))}contextChange(){this._gpuRenderTargetHash=Object.create(null)}push(t,e=Et.ALL,r,s,n=0,o=0,a){let l;"target"in t?l=t:(O("8.20.0","RenderTargetSystem.push: positional arguments are deprecated, please use an options object instead: push({ target, clear, clearColor, frame, mipLevel, layer, flipY })"),l={target:t,clear:e,clearColor:r,frame:s,mipLevel:n,layer:o,flipY:a});let c=this.bind(l);return this._renderTargetStack.push({target:l.target,clear:!1,clearColor:void 0,frame:l.frame?l.frame.clone():void 0,mipLevel:l.mipLevel,layer:l.layer,flipY:l.flipY}),c}pop(){this._renderTargetStack.pop();let t=this._renderTargetStack[this._renderTargetStack.length-1];if(!t)throw new Error("[RenderTargetSystem] pop: no previous binding to restore (unbalanced pop)");return this.bind(t)}getRenderTarget(t){return t.isTexture&&(t=t.source),this._renderSurfaceToRenderTargetHash.get(t)??this._initRenderTarget(t)}copyToTexture(t,e,r,s,n){let o=this.getRenderTarget(t);r.x<0&&(s.width+=r.x,n.x-=r.x,r.x=0),r.y<0&&(s.height+=r.y,n.y-=r.y,r.y=0);let{pixelWidth:a,pixelHeight:l}=o;return s.width=Math.min(s.width,a-r.x),s.height=Math.min(s.height,l-r.y),this.adaptor.copyToTexture(o,e,r,s,n)}copyDepthTexture(t,e,r,s,n={x:0,y:0}){let o=this.getRenderTarget(t);if(!o.depthStencilAttachment){L("[RenderTargetSystem] copyDepthTexture: the source render target has no depth attachment to copy from");return}let a=e.source;if(!a.format.includes("depth")&&!a.format.includes("stencil")){L(`[RenderTargetSystem] copyDepthTexture: the destination texture must have a depth/stencil format (got '${a.format}')`);return}let l=r.x,c=r.y,h=n.x,u=n.y,d=s.width,f=s.height;l<0&&(d+=l,h-=l,l=0),c<0&&(f+=c,u-=c,c=0),d=Math.min(d,o.pixelWidth-l),f=Math.min(f,o.pixelHeight-c),d=Math.min(d,a.pixelWidth-h),f=Math.min(f,a.pixelHeight-u),!(d<=0||f<=0)&&this.adaptor.copyDepthTexture(o,e,{x:l,y:c},{width:d,height:f},{x:h,y:u})}ensureDepthStencil(){if(!this.renderTarget.stencil){if(this.renderTarget.depthStencilTexture){L(`[RenderTargetSystem] a stencil mask is being used, but the render target's depthStencilTexture format '${this.renderTarget.depthStencilTexture.format}' has no stencil aspect, so masking cannot work here. Use a 'depth24plus-stencil8' texture instead.`);return}this.renderTarget._depth=!0,this.renderTarget._stencil=!0,this.adaptor.startRenderPass(this.renderTarget,!1,null,this.viewport,0,this.layer)}}destroy(){this._renderer=null,this._renderSurfaceToRenderTargetHash.forEach((t,e)=>{t!==e&&this._releaseRenderTarget(e,t)}),this._renderSurfaceToRenderTargetHash.clear(),this._gpuRenderTargetHash=Object.create(null)}_initRenderTarget(t){let e=null;if(wt.test(t)&&(t=Fa(t).source),t instanceof Vi)e=t;else if(t instanceof st){let r=t.format;e=r.includes("depth")||r.includes("stencil")?new Vi({colorTextures:0,depthStencilTexture:t}):new Vi({colorTextures:[t]}),t.source instanceof wt&&(e.isRoot=!0),t.once("destroy",this._onRenderSurfaceDestroy,this)}return this._renderSurfaceToRenderTargetHash.set(t,e),e}_onRenderSurfaceDestroy(t){let e=this._renderSurfaceToRenderTargetHash.get(t);e&&this._releaseRenderTarget(t,e)}_releaseRenderTarget(t,e){e.destroy(),this._renderSurfaceToRenderTargetHash.delete(t),t.off("destroy",this._onRenderSurfaceDestroy,this);let r=this._gpuRenderTargetHash[e.uid];r&&(this._gpuRenderTargetHash[e.uid]=null,this.adaptor.destroyGpuRenderTarget(r))}getGpuRenderTarget(t){return this._gpuRenderTargetHash[t.uid]||(this._gpuRenderTargetHash[t.uid]=this.adaptor.initGpuRenderTarget(t))}resetState(){this.renderTarget=null,this._bindState.target=null}}});var Wa,N_=p(()=>{"use strict";Wa=class{constructor(){this.contexts=[],this.msaaTextures=[],this.msaaSamples=1}}});function RT(i){if(AT[i])return i;let t=navigator.gpu.getPreferredCanvasFormat();return L(`[WebGPU] CanvasSource format '${i}' is not a valid GPUCanvasContext format. Falling back to '${t}'. Allowed formats are: bgra8unorm, rgba8unorm, rgba16float.`),t}var AT,Va,z_=p(()=>{ht();ki();fr();$t();N_();AT={bgra8unorm:!0,rgba8unorm:!0,rgba16float:!0};Va=class{constructor(){this._activePass=null}init(t,e){this._renderer=t,this._renderTargetSystem=e}copyToTexture(t,e,r,s,n){let o=this._renderer;this.finishRenderPass();let a=this._getGpuColorTexture(t),l=o.texture.getGpuSource(e.source);return o.encoder.commandEncoder.copyTextureToTexture({texture:a,origin:r},{texture:l,origin:n},s),e}copyDepthTexture(t,e,r,s,n){let o=this._renderer;this.finishRenderPass();let a=t.depthStencilAttachment.texture,l=o.texture.getGpuSource(a),c=o.texture.getGpuSource(e.source),h=o.encoder.commandEncoder===null,u=h?o.gpu.device.createCommandEncoder():o.encoder.commandEncoder;u.copyTextureToTexture({texture:l,origin:r},{texture:c,origin:n},{width:s.width,height:s.height}),h&&o.gpu.device.queue.submit([u.finish()])}startRenderPass(t,e=!0,r,s,n=0,o=0){let l=this._renderTargetSystem.getGpuRenderTarget(t);if(o!==0&&l.msaaTextures?.length)throw new Error("[RenderTargetSystem] Rendering to array layers is not supported with MSAA render targets.");if(n>0&&l.msaaTextures?.length)throw new Error("[RenderTargetSystem] Rendering to mip levels is not supported with MSAA render targets.");let c=e;typeof c=="boolean"&&(c=c?Et.ALL:Et.NONE),(t.stencil||t.depth)&&!t.depthStencilAttachment&&t.ensureDepthStencilTexture();let h=!!t.depthStencilAttachment,u=this._activePass;if(u!==null&&u.renderTarget===t&&u.mipLevel===n&&u.layer===o&&u.depthStencil===h&&this._renderer.encoder.renderPassEncoder!==null&&c===Et.NONE){this._renderer.encoder.setViewport(s);return}let f=this.getDescriptor(t,e,r,n,o);l.descriptor=f,this._renderer.pipeline.setRenderTarget(t),this._renderer.encoder.beginRenderPass(l),this._renderer.encoder.setViewport(s),this._activePass={renderTarget:t,mipLevel:n,layer:o,depthStencil:h}}finishRenderPass(){this._renderer.encoder.endRenderPass(),this._activePass=null}_getGpuColorTexture(t){if(t.colorAttachments.length===0)throw new Error("[GpuRenderTargetAdaptor] cannot get gpu color texture from a depth-only render target");let e=t.colorAttachments[0].texture;return e instanceof wt&&e._gpuContext?e._gpuContext.getCurrentTexture():this._renderer.texture.getGpuSource(e)}getDescriptor(t,e,r,s=0,n=0){typeof e=="boolean"&&(e=e?Et.ALL:Et.NONE);let o=this._renderTargetSystem,a=o.getGpuRenderTarget(t),l=t.colorAttachments.map((u,d)=>{let f=u.texture,m=f instanceof wt?f._gpuContext:null,g,_;if(m){if(n!==0)throw new Error("[RenderTargetSystem] Rendering to array layers is not supported for canvas targets.");g=m.getCurrentTexture().createView(u.viewDescriptor)}else g=this._renderer.texture.getTextureRenderTargetView(u.texture,s,n,u.viewDescriptor);let x=!1;a.msaaTextures[d]&&(_=g,g=this._renderer.texture.getTextureView(a.msaaTextures[d]),x=a.msaaTextures[d].transient);let b=u.loadOp;e!==void 0&&(b=e&Et.COLOR?"clear":"load"),r??(r=o.defaultClearColor);let v=u.storeOp??"store",S={view:g,resolveTarget:_,storeOp:x?"discard":v,loadOp:b};b==="clear"&&(r??(r=u.clearValue??o.defaultClearColor),S.clearValue=r);for(let T in u)T!=="texture"&&T!=="viewDescriptor"&&T!=="clearValue"&&T!=="loadOp"&&T!=="storeOp"&&(S[T]=u[T]);return S}),c;if(t.depthStencilAttachment){a.msaa&&(t.depthStencilAttachment.texture.sampleCount=4),t.depthStencilAttachment.texture.transient=!!a.msaaTextures[0]?.transient;let u=t.depthStencilAttachment,d=u.texture.format.includes("stencil"),f=u.texture.format.includes("depth"),m=u.texture.transient?"discard":"store";c={view:this._renderer.texture.getTextureRenderTargetView(u.texture,s,n,u.viewDescriptor)};let g=u.depthReadOnly??!1,_=u.stencilReadOnly??g;d&&!_?(c.stencilLoadOp=e&Et.STENCIL?"clear":u.stencilLoadOp??"load",c.stencilStoreOp=u.stencilStoreOp??m,c.stencilLoadOp==="clear"&&(c.stencilClearValue=u.stencilClearValue??0)):d&&_&&(c.stencilReadOnly=!0),f&&!g?(c.depthLoadOp=e&Et.DEPTH?"clear":u.depthLoadOp??"load",c.depthStoreOp=u.depthStoreOp??m,c.depthLoadOp==="clear"&&(c.depthClearValue=u.depthClearValue??1)):f&&g&&(c.depthReadOnly=!0);for(let x in u)x!=="texture"&&x!=="viewDescriptor"&&x!=="stencilLoadOp"&&x!=="stencilStoreOp"&&x!=="stencilClearValue"&&x!=="stencilReadOnly"&&x!=="depthLoadOp"&&x!=="depthStoreOp"&&x!=="depthClearValue"&&x!=="depthReadOnly"&&(c[x]=u[x])}return{colorAttachments:l,depthStencilAttachment:c,label:t.label}}clear(t,e=!0,r,s,n=0,o=0){if(!e)return;let{gpu:a,encoder:l}=this._renderer,c=a.device;if(l.commandEncoder===null){let u=c.createCommandEncoder(),d=this.getDescriptor(t,e,r,n,o),f=u.beginRenderPass(d);f.setViewport(s.x,s.y,s.width,s.height,0,1),f.end();let m=u.finish();c.queue.submit([m])}else this.startRenderPass(t,e,r,s,n,o)}initGpuRenderTarget(t){t.isRoot=!0;let e=new Wa;return t.colorAttachments.forEach((r,s)=>{let n=r.texture;if(n instanceof wt){if(!n._gpuContext){let o=n.resource.getContext("webgpu"),a=n.transparent?"premultiplied":"opaque",l=RT(n.format);try{o.configure({device:this._renderer.gpu.device,usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST|GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.COPY_SRC,format:l,alphaMode:a,...l==="rgba16float"?{toneMapping:{mode:"extended"}}:{}})}catch(c){console.error(c)}n._gpuContext=o}e.contexts[s]=n._gpuContext}if(e.msaa=n.source.antialias,n.antialias){let o=new st({width:0,height:0,sampleCount:4,transient:n.transient,arrayLayerCount:n.arrayLayerCount,format:n.format});e.msaaTextures[s]=o}}),e.msaa&&(e.msaaSamples=4,t.depthStencilAttachment&&(t.depthStencilAttachment.texture.sampleCount=4,t.depthStencilAttachment.texture.transient=!!e.msaaTextures[0]?.transient)),e}destroyGpuRenderTarget(t){t.contexts.forEach(e=>{e.unconfigure()}),t.msaaTextures.forEach(e=>{e.destroy()}),t.msaaTextures.length=0,t.contexts.length=0}ensureDepthStencilTexture(t){let e=this._renderTargetSystem.getGpuRenderTarget(t);t.depthStencilAttachment&&e.msaa&&(t.depthStencilAttachment.texture.sampleCount=4)}resizeGpuRenderTarget(t){let e=this._renderTargetSystem.getGpuRenderTarget(t);e.width=t.width,e.height=t.height,e.msaa&&t.colorAttachments.forEach((r,s)=>{let n=r.texture;e.msaaTextures[s]?.resize(n.width,n.height,n._resolution)})}}});var Mn,H_=p(()=>{P();Ha();z_();Mn=class extends Sr{constructor(t){super(t),this.adaptor=new Va,this.adaptor.init(t,this)}};Mn.extension={type:[y.WebGPUSystem],name:"renderTarget"}});var An,W_=p(()=>{P();An=class{constructor(){this._gpuProgramData=Object.create(null)}contextChange(t){this._gpu=t}getProgramData(t){return this._gpuProgramData[t._layoutKey]||this._createGPUProgramData(t)}_createGPUProgramData(t){let e=this._gpu.device,r=t.gpuLayout.map(n=>e.createBindGroupLayout({entries:n})),s={bindGroupLayouts:r};return this._gpuProgramData[t._layoutKey]={bindGroups:r,pipeline:e.createPipelineLayout(s)},this._gpuProgramData[t._layoutKey]}destroy(){this._gpu=null,this._gpuProgramData=null}};An.extension={type:[y.WebGPUSystem],name:"shader"}});var ne,V_=p(()=>{"use strict";ne={};ne.normal={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"}};ne.add={alpha:{srcFactor:"src-alpha",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"one",dstFactor:"one",operation:"add"}};ne.multiply={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"dst",dstFactor:"one-minus-src-alpha",operation:"add"}};ne.screen={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"one",dstFactor:"one-minus-src",operation:"add"}};ne.overlay={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"one",dstFactor:"one-minus-src",operation:"add"}};ne.none={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"zero",dstFactor:"zero",operation:"add"}};ne["normal-npm"]={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"src-alpha",dstFactor:"one-minus-src-alpha",operation:"add"}};ne["add-npm"]={alpha:{srcFactor:"one",dstFactor:"one",operation:"add"},color:{srcFactor:"src-alpha",dstFactor:"one",operation:"add"}};ne["screen-npm"]={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"src-alpha",dstFactor:"one-minus-src",operation:"add"}};ne.erase={alpha:{srcFactor:"zero",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"zero",dstFactor:"one-minus-src",operation:"add"}};ne.min={alpha:{srcFactor:"one",dstFactor:"one",operation:"min"},color:{srcFactor:"one",dstFactor:"one",operation:"min"}};ne.max={alpha:{srcFactor:"one",dstFactor:"one",operation:"max"},color:{srcFactor:"one",dstFactor:"one",operation:"max"}}});var Rn,j_=p(()=>{P();Be();V_();Rn=class{constructor(){this.defaultState=new Ot,this.defaultState.blend=!0}contextChange(t){this.gpu=t}getColorTargets(t,e,r){let s=t.blend?ne[t.blendMode]||ne.normal:void 0,n=[];for(let o=0;o<e;o++)n[o]={format:r,writeMask:0,blend:s};return n}destroy(){this.gpu=null}};Rn.extension={type:[y.WebGPUSystem],name:"state"}});var X_,Y_=p(()=>{"use strict";X_={type:"image",upload(i,t,e,r=0){let s=i.resource,n=(i.pixelWidth|0)*(i.pixelHeight|0),o=s.byteLength/n;e.device.queue.writeTexture({texture:t,origin:{x:0,y:0,z:r}},s,{offset:0,rowsPerImage:i.pixelHeight,bytesPerRow:i.pixelWidth*o},{width:i.pixelWidth,height:i.pixelHeight,depthOrArrayLayers:1})}}});var fu,kT,$_,q_=p(()=>{"use strict";fu={"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}},kT={blockBytes:4,blockWidth:1,blockHeight:1},$_={type:"compressed",upload(i,t,e,r=0){let s=i.pixelWidth,n=i.pixelHeight,o=fu[i.format]||kT;for(let a=0;a<i.resource.length;a++){let l=i.resource[a],c=Math.ceil(s/o.blockWidth)*o.blockBytes;e.device.queue.writeTexture({texture:t,mipLevel:a,origin:{x:0,y:0,z:r}},l,{offset:0,bytesPerRow:c},{width:Math.ceil(s/o.blockWidth)*o.blockWidth,height:Math.ceil(n/o.blockHeight)*o.blockHeight,depthOrArrayLayers:1}),s=Math.max(s>>1,1),n=Math.max(n>>1,1)}}}});function Z_(i){return{type:"cube",upload(t,e,r){let s=t.faces;for(let n=0;n<K_.length;n++){let o=K_[n],a=s[o];(i[a.uploadMethodId]||i.image).upload(a,e,r,n)}}}}var K_,Q_=p(()=>{"use strict";K_=["right","left","top","bottom","front","back"]});var ja,pu=p(()=>{xt();ht();ja={type:"image",upload(i,t,e,r=0){let s=i.resource;if(!s)return;if(globalThis.HTMLImageElement&&s instanceof HTMLImageElement){let l=W.get().createCanvas(s.width,s.height);l.getContext("2d").drawImage(s,0,0,s.width,s.height),i.resource=l,L("ImageSource: Image element passed, converting to canvas and replacing resource.")}let n=Math.min(t.width,i.resourceWidth||i.pixelWidth),o=Math.min(t.height,i.resourceHeight||i.pixelHeight),a=i.alphaMode==="premultiply-alpha-on-upload";e.device.queue.copyExternalImageToTexture({source:s},{texture:t,origin:{x:0,y:0,z:r},premultipliedAlpha:a},{width:n,height:o})}}});var J_,ty=p(()=>{pu();J_={type:"video",upload(i,t,e,r){ja.upload(i,t,e,r)}}});var Xa,ey=p(()=>{"use strict";Xa=class{constructor(t){this.device=t,this.sampler=t.createSampler({minFilter:"linear"}),this.pipelines={}}_getMipmapPipeline(t){let e=this.pipelines[t];return e||(this.mipmapShaderModule||(this.mipmapShaderModule=this.device.createShaderModule({code:`
727
+ `}var E_=p(()=>{Na()});function P_(i){return za(i,w_,C_)}var M_=p(()=>{au();cu();E_()});var Qr,hu=p(()=>{P();Oa();Na();M_();Qr=class extends br{constructor(){super({createUboElements:T_,generateUboSync:P_})}};Qr.extension={type:[y.WebGPUSystem],name:"ubo"}});var He,Cn=p(()=>{Ht();Ft();He=class extends ut{constructor({buffer:t,offset:e,size:r}){super(),this.uid=$("buffer"),this._resourceType="bufferResource",this._touched=0,this._resourceId=$("resource"),this._bufferResource=!0,this.destroyed=!1,this.buffer=t,this.offset=e|0,this.size=r,this.buffer.on("change",this.onBufferChange,this)}get _gcLastUsed(){return this.buffer?._gcLastUsed??-1}set _gcLastUsed(t){this.buffer&&(this.buffer._gcLastUsed=t)}onBufferChange(){this._resourceId=$("resource"),this.emit("change",this)}destroy(t=!1){this.destroyed=!0,t&&this.buffer.destroy(),this.emit("change",this),this.buffer=null,this.removeAllListeners()}}});var Ha,A_=p(()=>{"use strict";Ha=class{constructor({minUniformOffsetAlignment:t}){this._minUniformOffsetAlignment=256,this.byteIndex=0,this._minUniformOffsetAlignment=t,this.data=new Float32Array(65535)}clear(){this.byteIndex=0}addEmptyGroup(t){if(t>this._minUniformOffsetAlignment/4)throw new Error(`UniformBufferBatch: array is too large: ${t*4}`);let e=this.byteIndex,r=e+t*4;if(r=Math.ceil(r/this._minUniformOffsetAlignment)*this._minUniformOffsetAlignment,r>this.data.length*4)throw new Error("UniformBufferBatch: ubo batch got too big");return this.byteIndex=r,e}addGroup(t){let e=this.addEmptyGroup(t.length);for(let r=0;r<t.length;r++)this.data[e/4+r]=t[r];return e}destroy(){this.data=null}}});var vr,En,R_=p(()=>{P();xr();Cn();ir();A_();mr();vr=128,En=class{constructor(t){this._bindGroupHash=Object.create(null),this._buffers=[],this._bindGroups=[],this._bufferResources=[],this._renderer=t,this._batchBuffer=new Ha({minUniformOffsetAlignment:vr});let e=256/vr;for(let r=0;r<e;r++){let s=tt.UNIFORM|tt.COPY_DST;r===0&&(s|=tt.COPY_SRC),this._buffers.push(new At({data:this._batchBuffer.data,usage:s}))}}renderEnd(){this._uploadBindGroups(),this._resetBindGroups()}_resetBindGroups(){this._bindGroupHash=Object.create(null),this._batchBuffer.clear()}getUniformBindGroup(t,e){if(!e&&this._bindGroupHash[t.uid])return this._bindGroupHash[t.uid];this._renderer.ubo.ensureUniformGroup(t);let r=t.buffer.data,s=this._batchBuffer.addEmptyGroup(r.length);return this._renderer.ubo.syncUniformGroup(t,this._batchBuffer.data,s/4),this._bindGroupHash[t.uid]=this._getBindGroup(s/vr),this._bindGroupHash[t.uid]}getUboResource(t){this._renderer.ubo.updateUniformGroup(t);let e=t.buffer.data,r=this._batchBuffer.addGroup(e);return this._getBufferResource(r/vr)}getArrayBindGroup(t){let e=this._batchBuffer.addGroup(t);return this._getBindGroup(e/vr)}getArrayBufferResource(t){let r=this._batchBuffer.addGroup(t)/vr;return this._getBufferResource(r)}_getBufferResource(t){if(!this._bufferResources[t]){let e=this._buffers[t%2];this._bufferResources[t]=new He({buffer:e,offset:(t/2|0)*256,size:vr})}return this._bufferResources[t]}_getBindGroup(t){if(!this._bindGroups[t]){let e=new Vt({0:this._getBufferResource(t)});this._bindGroups[t]=e}return this._bindGroups[t]}_uploadBindGroups(){let t=this._renderer.buffer,e=this._buffers[0];e.update(this._batchBuffer.byteIndex),t.updateBuffer(e);let r=this._renderer.gpu.device.createCommandEncoder();for(let s=1;s<this._buffers.length;s++){let n=this._buffers[s];r.copyBufferToBuffer(t.getGPUBuffer(e),vr,t.getGPUBuffer(n),0,this._batchBuffer.byteIndex)}this._renderer.gpu.device.queue.submit([r.finish()])}destroy(){for(let t=0;t<this._bindGroups.length;t++)this._bindGroups[t]?.destroy();this._bindGroups=null,this._bindGroupHash=null;for(let t=0;t<this._buffers.length;t++)this._buffers[t].destroy();this._buffers=null;for(let t=0;t<this._bufferResources.length;t++)this._bufferResources[t].destroy();this._bufferResources=null,this._batchBuffer.destroy(),this._renderer=null}};En.extension={type:[y.WebGPUPipes],name:"uniformBatch"}});function Pn(i,t){for(let e in i.attributes){let r=i.attributes[e],s=t[e];s?(r.format??(r.format=s.format),r.offset??(r.offset=s.offset),r.instance??(r.instance=s.instance)):L(`Attribute ${e} is not present in the shader, but is present in the geometry. Unable to infer attribute details.`)}PT(i)}function PT(i){let{buffers:t,attributes:e}=i,r={},s={};for(let n in t){let o=t[n];r[o.uid]=0,s[o.uid]=0}for(let n in e){let o=e[n];r[o.buffer.uid]+=Jt(o.format).stride}for(let n in e){let o=e[n];o.stride??(o.stride=r[o.buffer.uid]),o.start??(o.start=s[o.buffer.uid]),s[o.buffer.uid]+=Jt(o.format).stride}}var uu=p(()=>{ht();pr()});var We,du=p(()=>{$r();We=[];We[vt.NONE]=void 0;We[vt.DISABLED]={stencilWriteMask:0,stencilReadMask:0};We[vt.RENDERING_MASK_ADD]={stencilFront:{compare:"equal",passOp:"increment-clamp"},stencilBack:{compare:"equal",passOp:"increment-clamp"}};We[vt.RENDERING_MASK_REMOVE]={stencilFront:{compare:"equal",passOp:"decrement-clamp"},stencilBack:{compare:"equal",passOp:"decrement-clamp"}};We[vt.MASK_ACTIVE]={stencilWriteMask:0,stencilFront:{compare:"equal",passOp:"keep"},stencilBack:{compare:"equal",passOp:"keep"}};We[vt.INVERSE_MASK_ACTIVE]={stencilWriteMask:0,stencilFront:{compare:"not-equal",passOp:"keep"},stencilBack:{compare:"not-equal",passOp:"keep"}}});function I_(i,t){for(let[e,r]of Object.entries(t)){let s=new RegExp(`override\\s+${e}\\s*:\\s*(\\w+)\\s*(?:=[^;]*)?;`);i=i.replace(s,(n,o)=>{let a;return o==="u32"?a=`${Math.trunc(r)}u`:o==="i32"?a=`${Math.trunc(r)}`:a=Number.isInteger(r)?`${r}.0`:`${r}`,`const ${e}: ${o} = ${a};`})}return i}function G_(i,t,e,r,s,n){return i*35184372088832+t*536870912+n*16384+(e<<8)+(r<<3)+s}function U_(i){let t=F_[i];return t===void 0&&(t=F_[i]=RT++),t}function kT(i,t,e,r,s,n,o,a){return a<<20|n<<16|s<<13|e<<9|i<<6|o<<5|r<<1|t}var k_,MT,AT,B_,F_,RT,Mn,D_=p(()=>{P();ht();uu();Kc();$r();Ai();du();k_={"point-list":0,"line-list":1,"line-strip":2,"triangle-list":3,"triangle-strip":4},MT=new ki({}),AT={"depth24plus-stencil8":{depth:!0,stencil:!0,index:1},depth24plus:{depth:!0,stencil:!1,index:2},depth32float:{depth:!0,stencil:!1,index:3},"depth32float-stencil8":{depth:!0,stencil:!0,index:4},depth16unorm:{depth:!0,stencil:!1,index:5},stencil8:{depth:!1,stencil:!0,index:6}},B_={depth:!1,stencil:!1,index:0};F_=Object.create(null),RT=0;Mn=class{constructor(t){this._moduleCache=Object.create(null),this._bufferLayoutsCache=Object.create(null),this._bindingNamesCache=Object.create(null),this._pipeCache=new Map,this._pipeStateCaches=Object.create(null),this._colorMask=15,this._multisampleCount=1,this._colorTargetCount=1,this._colorFormat="bgra8unorm",this._colorFormatId=U_("bgra8unorm"),this._depthStencilFormat="depth24plus-stencil8",this._depthStencilFormatData=B_,this._depthReadOnly=!1,this._invertFrontFace=!1,this._renderer=t}contextChange(t){this._gpu=t,this.setStencilMode(vt.DISABLED),this._updatePipeHash()}setMultisampleCount(t){this._multisampleCount!==t&&(this._multisampleCount=t,this._updatePipeHash())}setRenderTarget(t){let e=t.colorAttachments[0]?.texture;this._multisampleCount=e?.source.antialias?4:1,this._colorTargetCount=t.colorAttachments.length,this._colorFormat=e?.format??"bgra8unorm",this._colorFormatId=U_(this._colorFormat),this._depthStencilFormat=t.depthStencilAttachment?.texture.format,this._depthStencilFormatData=AT[this._depthStencilFormat]||B_,this._depthReadOnly=t.depthStencilAttachment?.depthReadOnly??!1,this._invertFrontFace=!!t.flipY,this._updatePipeHash()}setColorMask(t){this._colorMask!==t&&(this._colorMask=t,this._updatePipeHash())}setStencilMode(t){this._stencilMode!==t&&(this._stencilMode=t,this._stencilState=We[t],this._updatePipeHash())}getBundleDescriptor(){let t=[];for(let r=0;r<this._colorTargetCount;r++)t.push(this._colorFormat);let e={colorFormats:t,sampleCount:this._multisampleCount};return(this._depthStencilFormatData.depth||this._depthStencilFormatData.stencil)&&(e.depthStencilFormat=this._depthStencilFormat),e}setPipeline(t,e,r,s){let n=this.getPipeline(t,e,r);s.setPipeline(n)}getPipelineKey(t,e,r,s,n){return t._layoutKey||(Pn(t,e.attributeData),this._generateBufferKey(t)),G_(t._layoutKey,e._layoutKey,r.data,r._blendModeId,k_[s],n.id)}getPipeline(t,e,r,s,n){t._layoutKey||(Pn(t,e.attributeData),this._generateBufferKey(t)),s||(s=t.topology),n||(n=MT);let o=G_(t._layoutKey,e._layoutKey,r.data,r._blendModeId,k_[s],n.id),a=this._pipeCache.get(o);return a||(a=this._createPipeline(t,e,r,s,n),this._pipeCache.set(o,a)),a}_createPipeline(t,e,r,s,n){let o=this._gpu.device,a=this._createVertexBufferLayouts(t,e),l=this._renderer.state.getColorTargets(r,this._colorTargetCount,this._colorFormat),c=this._stencilMode===vt.RENDERING_MASK_ADD?0:this._colorMask;for(let x=0;x<l.length;x++)l[x].writeMask=c;let h=this._renderer.shader.getProgramData(e).pipeline,u=Object.keys(n.data).length>0,d=e.vertex.source,f=e.fragment.source,m;u&&(this._renderer.limits.supportsOverrideConstants?m=n.data:(d=I_(d,n.data),f=I_(f,n.data)));let g={vertex:{module:this._getModule(d),entryPoint:e.vertex.entryPoint,constants:m,buffers:a},fragment:{module:this._getModule(f),entryPoint:e.fragment.entryPoint,targets:l,constants:m},primitive:{topology:s,cullMode:r.culling?"back":"none",frontFace:r.clockwiseFrontFace!==this._invertFrontFace?"cw":"ccw"},layout:h,multisample:{count:this._multisampleCount},label:e.name?`PIXI Pipeline (${e.name})`:"PIXI Pipeline"};if(this._depthStencilFormatData.depth||this._depthStencilFormatData.stencil){let x=this._depthStencilFormatData;g.depthStencil={...this._stencilState,format:this._depthStencilFormat,depthWriteEnabled:x.depth?r.depthMask&&!this._depthReadOnly:!1,depthCompare:x.depth&&r.depthTest?"less":"always"}}return o.createRenderPipeline(g)}_getModule(t){return this._moduleCache[t]||this._createModule(t)}_createModule(t){let e=this._gpu.device;return this._moduleCache[t]=e.createShaderModule({code:t}),this._moduleCache[t]}_generateBufferKey(t){let e=[],r=0,s=Object.keys(t.attributes).sort();for(let o=0;o<s.length;o++){let a=t.attributes[s[o]];e[r++]=a.offset,e[r++]=a.format,e[r++]=a.stride,e[r++]=a.instance}let n=e.join("|");return t._layoutKey=ke(n,"geometry"),t._layoutKey}_generateAttributeLocationsKey(t){let e=[],r=0,s=Object.keys(t.attributeData).sort();for(let o=0;o<s.length;o++){let a=t.attributeData[s[o]];e[r++]=a.location}let n=e.join("|");return t._attributeLocationsKey=ke(n,"programAttributes"),t._attributeLocationsKey}getBufferNamesToBind(t,e){let r=t._layoutKey<<16|e._attributeLocationsKey;if(this._bindingNamesCache[r])return this._bindingNamesCache[r];let s=this._createVertexBufferLayouts(t,e),n=Object.create(null),o=e.attributeData;for(let a=0;a<s.length;a++){let c=Object.values(s[a].attributes)[0].shaderLocation;for(let h in o)if(o[h].location===c){n[a]=h;break}}return this._bindingNamesCache[r]=n,n}_createVertexBufferLayouts(t,e){e._attributeLocationsKey||this._generateAttributeLocationsKey(e);let r=t._layoutKey<<16|e._attributeLocationsKey;if(this._bufferLayoutsCache[r])return this._bufferLayoutsCache[r];let s=[];return t.buffers.forEach(n=>{let o={arrayStride:0,stepMode:"vertex",attributes:[]},a=o.attributes;for(let l in e.attributeData){let c=t.attributes[l];(c.divisor??1)!==1&&L(`Attribute ${l} has an invalid divisor value of '${c.divisor}'. WebGPU only supports a divisor value of 1`),c.buffer===n&&(o.arrayStride=c.stride,o.stepMode=c.instance?"instance":"vertex",a.push({shaderLocation:e.attributeData[l].location,offset:c.offset,format:c.format}))}a.length&&s.push(o)}),this._bufferLayoutsCache[r]=s,s}_updatePipeHash(){var t;let e=kT(this._stencilMode,this._multisampleCount===1?0:1,this._colorMask,this._colorTargetCount,this._depthStencilFormatData.index,this._colorFormatId,this._depthReadOnly?1:0,this._invertFrontFace?1:0);this._pipeCache=(t=this._pipeStateCaches)[e]??(t[e]=new Map)}destroy(){this._bufferLayoutsCache=null,this._pipeCache=null,this._gpu=null,this._renderer=null,this._bindingNamesCache=null,this._pipeStateCaches=null,this._moduleCache=null}};Mn.extension={type:[y.WebGPUSystem],name:"pipeline"}});function L_(i,t,e,r,s,n){let o=n?1:-1;return i.identity(),i.a=1/r*2,i.d=o*(1/s*2),i.tx=-1-t*i.a,i.ty=-o-e*i.d,i}var O_=p(()=>{"use strict"});function N_(i){if(i.colorAttachments.length===0)return!1;let t=i.colorTexture.resource;return globalThis.HTMLCanvasElement&&t instanceof HTMLCanvasElement&&document.body.contains(t)}var z_=p(()=>{"use strict"});var Sr,Wa=p(()=>{ot();Yt();yt();ht();Bi();O_();Ne();vh();fr();$t();gt();su();z_();iu();Sr=class{constructor(t){this.rootViewPort=new J,this.viewport=new J,this.onRenderTargetChange=new Ii("onRenderTargetChange"),this.projectionMatrix=new k,this.defaultClearColor=[0,0,0,0],this._renderSurfaceToRenderTargetHash=new Map,this._gpuRenderTargetHash=Object.create(null),this._renderTargetStack=[],this._bindState={target:null,frame:void 0,mipLevel:0,layer:0,flipY:!1},this._bindFrame=new J,this._renderer=t,t.gc.addCollection(this,"_gpuRenderTargetHash","hash")}get renderSurface(){return this._bindState.target}get mipLevel(){return this._bindState.mipLevel}get layer(){return this._bindState.layer}finishRenderPass(){this.adaptor.finishRenderPass(this.renderTarget)}renderStart(t){this._renderTargetStack.length=0,this.push(t),this.rootViewPort.copyFrom(this.viewport),this.rootRenderTarget=this.renderTarget,this.renderingToScreen=N_(this.rootRenderTarget),this.adaptor.prerender?.(this.rootRenderTarget)}postrender(){this.adaptor.postrender?.(this.rootRenderTarget)}bind(t,e=!0,r,s,n=0,o=0,a){let l;"target"in t?l=t:(O("8.20.0","RenderTargetSystem.bind: positional arguments are deprecated, please use an options object instead: bind({ target, clear, clearColor, frame, mipLevel, layer, flipY })"),l={target:t,clear:e,clearColor:r,frame:s,mipLevel:n,layer:o,flipY:a});let c=l.target;e=l.clear??!0,r=l.clearColor,n=(l.mipLevel??0)|0,o=(l.layer??0)|0,a=l.flipY,s=l.frame;let h=this.getRenderTarget(c),u=this.renderTarget!==h;this.renderTarget=h;let d=this.getGpuRenderTarget(h);(h.pixelWidth!==d.width||h.pixelHeight!==d.height)&&(this.adaptor.resizeGpuRenderTarget(h),d.width=h.pixelWidth,d.height=h.pixelHeight);let f=h.colorAttachments[0]?.texture||h.depthStencilAttachment?.texture,m=this.viewport,g=f.arrayLayerCount||1;if(o<0||o>=g)throw new Error(`[RenderTargetSystem] layer ${o} is out of bounds (arrayLayerCount=${g}).`);let _=this._bindState;_.target=c,_.frame=s?this._bindFrame.copyFrom(s):void 0,_.mipLevel=n,_.layer=o,_.flipY=a;let x=Math.max(f.pixelWidth>>n,1),b=Math.max(f.pixelHeight>>n,1);if(!s&&c instanceof F&&(s=c.frame),s){let v=f._resolution,S=1<<Math.max(n,0),T=s.x*v+.5|0,w=s.y*v+.5|0,E=s.width*v+.5|0,B=s.height*v+.5|0,R=Math.floor(T/S),M=Math.floor(w/S),C=Math.ceil(E/S),A=Math.ceil(B/S);R<0&&(C+=R,R=0),M<0&&(A+=M,M=0),R=Math.min(R,x-1),M=Math.min(M,b-1),C=Math.min(C,x-R),A=Math.min(A,b-M),C=Math.max(C,1),A=Math.max(A,1),m.x=R,m.y=M,m.width=C,m.height=A}else m.x=0,m.y=0,m.width=x,m.height=b;return h.flipY=a,L_(this.projectionMatrix,0,0,m.width/f.resolution,m.height/f.resolution,!h.isRoot!=!!h.flipY),this.adaptor.startRenderPass(h,e,r,m,n,o),u&&this.onRenderTargetChange.emit(h),h}getBindState(t){if(!this.renderTarget)throw new Error("[RenderTargetSystem] getBindState is only valid while a render surface is bound");let e=this._bindState;return t??(t={}),t.target=e.target,t.clear=Et.NONE,t.clearColor=void 0,e.frame?t.frame?t.frame.copyFrom(e.frame):t.frame=e.frame.clone():t.frame=void 0,t.mipLevel=e.mipLevel,t.layer=e.layer,t.flipY=!!e.flipY,t}get frontFaceInverted(){let t=this.renderTarget;if(!t)return!1;let e=this._renderer.type===Lt.WEBGL&&!t.isRoot;return!!t.flipY!==e}clear(t,e=Et.ALL,r,s=this.mipLevel,n=this.layer){e&&(t&&(t=this.getRenderTarget(t)),this.adaptor.clear(t||this.renderTarget,e,r,this.viewport,s,n))}contextChange(){this._gpuRenderTargetHash=Object.create(null)}push(t,e=Et.ALL,r,s,n=0,o=0,a){let l;"target"in t?l=t:(O("8.20.0","RenderTargetSystem.push: positional arguments are deprecated, please use an options object instead: push({ target, clear, clearColor, frame, mipLevel, layer, flipY })"),l={target:t,clear:e,clearColor:r,frame:s,mipLevel:n,layer:o,flipY:a});let c=this.bind(l);return this._renderTargetStack.push({target:l.target,clear:!1,clearColor:void 0,frame:l.frame?l.frame.clone():void 0,mipLevel:l.mipLevel,layer:l.layer,flipY:l.flipY}),c}pop(){this._renderTargetStack.pop();let t=this._renderTargetStack[this._renderTargetStack.length-1];if(!t)throw new Error("[RenderTargetSystem] pop: no previous binding to restore (unbalanced pop)");return this.bind(t)}getRenderTarget(t){return t.isTexture&&(t=t.source),this._renderSurfaceToRenderTargetHash.get(t)??this._initRenderTarget(t)}copyToTexture(t,e,r,s,n){let o=this.getRenderTarget(t);r.x<0&&(s.width+=r.x,n.x-=r.x,r.x=0),r.y<0&&(s.height+=r.y,n.y-=r.y,r.y=0);let{pixelWidth:a,pixelHeight:l}=o;return s.width=Math.min(s.width,a-r.x),s.height=Math.min(s.height,l-r.y),this.adaptor.copyToTexture(o,e,r,s,n)}copyDepthTexture(t,e,r,s,n={x:0,y:0}){let o=this.getRenderTarget(t);if(!o.depthStencilAttachment){L("[RenderTargetSystem] copyDepthTexture: the source render target has no depth attachment to copy from");return}let a=e.source;if(!a.format.includes("depth")&&!a.format.includes("stencil")){L(`[RenderTargetSystem] copyDepthTexture: the destination texture must have a depth/stencil format (got '${a.format}')`);return}let l=r.x,c=r.y,h=n.x,u=n.y,d=s.width,f=s.height;l<0&&(d+=l,h-=l,l=0),c<0&&(f+=c,u-=c,c=0),d=Math.min(d,o.pixelWidth-l),f=Math.min(f,o.pixelHeight-c),d=Math.min(d,a.pixelWidth-h),f=Math.min(f,a.pixelHeight-u),!(d<=0||f<=0)&&this.adaptor.copyDepthTexture(o,e,{x:l,y:c},{width:d,height:f},{x:h,y:u})}ensureDepthStencil(){if(!this.renderTarget.stencil){if(this.renderTarget.depthStencilTexture){L(`[RenderTargetSystem] a stencil mask is being used, but the render target's depthStencilTexture format '${this.renderTarget.depthStencilTexture.format}' has no stencil aspect, so masking cannot work here. Use a 'depth24plus-stencil8' texture instead.`);return}this.renderTarget._depth=!0,this.renderTarget._stencil=!0,this.adaptor.startRenderPass(this.renderTarget,!1,null,this.viewport,0,this.layer)}}destroy(){this._renderer=null,this._renderSurfaceToRenderTargetHash.forEach((t,e)=>{t!==e&&this._releaseRenderTarget(e,t)}),this._renderSurfaceToRenderTargetHash.clear(),this._gpuRenderTargetHash=Object.create(null)}_initRenderTarget(t){let e=null;if(Tt.test(t)&&(t=Ua(t).source),t instanceof ji)e=t;else if(t instanceof st){let r=t.format;e=r.includes("depth")||r.includes("stencil")?new ji({colorTextures:0,depthStencilTexture:t}):new ji({colorTextures:[t]}),t.source instanceof Tt&&(e.isRoot=!0),t.once("destroy",this._onRenderSurfaceDestroy,this)}return this._renderSurfaceToRenderTargetHash.set(t,e),e}_onRenderSurfaceDestroy(t){let e=this._renderSurfaceToRenderTargetHash.get(t);e&&this._releaseRenderTarget(t,e)}_releaseRenderTarget(t,e){e.destroy(),this._renderSurfaceToRenderTargetHash.delete(t),t.off("destroy",this._onRenderSurfaceDestroy,this);let r=this._gpuRenderTargetHash[e.uid];r&&(this._gpuRenderTargetHash[e.uid]=null,this.adaptor.destroyGpuRenderTarget(r))}getGpuRenderTarget(t){return this._gpuRenderTargetHash[t.uid]||(this._gpuRenderTargetHash[t.uid]=this.adaptor.initGpuRenderTarget(t))}resetState(){this.renderTarget=null,this._bindState.target=null}}});var Va,H_=p(()=>{"use strict";Va=class{constructor(){this.contexts=[],this.msaaTextures=[],this.msaaSamples=1}}});function IT(i){if(BT[i])return i;let t=navigator.gpu.getPreferredCanvasFormat();return L(`[WebGPU] CanvasSource format '${i}' is not a valid GPUCanvasContext format. Falling back to '${t}'. Allowed formats are: bgra8unorm, rgba8unorm, rgba16float.`),t}var BT,ja,W_=p(()=>{ht();Bi();fr();$t();H_();BT={bgra8unorm:!0,rgba8unorm:!0,rgba16float:!0};ja=class{constructor(){this._activePass=null}init(t,e){this._renderer=t,this._renderTargetSystem=e}copyToTexture(t,e,r,s,n){let o=this._renderer;this.finishRenderPass();let a=this._getGpuColorTexture(t),l=o.texture.getGpuSource(e.source);return o.encoder.commandEncoder.copyTextureToTexture({texture:a,origin:r},{texture:l,origin:n},s),e}copyDepthTexture(t,e,r,s,n){let o=this._renderer;this.finishRenderPass();let a=t.depthStencilAttachment.texture,l=o.texture.getGpuSource(a),c=o.texture.getGpuSource(e.source),h=o.encoder.commandEncoder===null,u=h?o.gpu.device.createCommandEncoder():o.encoder.commandEncoder;u.copyTextureToTexture({texture:l,origin:r},{texture:c,origin:n},{width:s.width,height:s.height}),h&&o.gpu.device.queue.submit([u.finish()])}startRenderPass(t,e=!0,r,s,n=0,o=0){let l=this._renderTargetSystem.getGpuRenderTarget(t);if(o!==0&&l.msaaTextures?.length)throw new Error("[RenderTargetSystem] Rendering to array layers is not supported with MSAA render targets.");if(n>0&&l.msaaTextures?.length)throw new Error("[RenderTargetSystem] Rendering to mip levels is not supported with MSAA render targets.");let c=e;typeof c=="boolean"&&(c=c?Et.ALL:Et.NONE),(t.stencil||t.depth)&&!t.depthStencilAttachment&&t.ensureDepthStencilTexture();let h=!!t.depthStencilAttachment,u=this._activePass;if(u!==null&&u.renderTarget===t&&u.mipLevel===n&&u.layer===o&&u.depthStencil===h&&this._renderer.encoder.renderPassEncoder!==null&&c===Et.NONE){this._renderer.encoder.setViewport(s);return}let f=this.getDescriptor(t,e,r,n,o);l.descriptor=f,this._renderer.pipeline.setRenderTarget(t),this._renderer.encoder.beginRenderPass(l),this._renderer.encoder.setViewport(s),this._activePass={renderTarget:t,mipLevel:n,layer:o,depthStencil:h}}finishRenderPass(){this._renderer.encoder.endRenderPass(),this._activePass=null}_getGpuColorTexture(t){if(t.colorAttachments.length===0)throw new Error("[GpuRenderTargetAdaptor] cannot get gpu color texture from a depth-only render target");let e=t.colorAttachments[0].texture;return e instanceof Tt&&e._gpuContext?e._gpuContext.getCurrentTexture():this._renderer.texture.getGpuSource(e)}getDescriptor(t,e,r,s=0,n=0){typeof e=="boolean"&&(e=e?Et.ALL:Et.NONE);let o=this._renderTargetSystem,a=o.getGpuRenderTarget(t),l=t.colorAttachments.map((u,d)=>{let f=u.texture,m=f instanceof Tt?f._gpuContext:null,g,_;if(m){if(n!==0)throw new Error("[RenderTargetSystem] Rendering to array layers is not supported for canvas targets.");g=m.getCurrentTexture().createView(u.viewDescriptor)}else g=this._renderer.texture.getTextureRenderTargetView(u.texture,s,n,u.viewDescriptor);let x=!1;a.msaaTextures[d]&&(_=g,g=this._renderer.texture.getTextureView(a.msaaTextures[d]),x=a.msaaTextures[d].transient);let b=u.loadOp;e!==void 0&&(b=e&Et.COLOR?"clear":"load"),r??(r=o.defaultClearColor);let v=u.storeOp??"store",S={view:g,resolveTarget:_,storeOp:x?"discard":v,loadOp:b};b==="clear"&&(r??(r=u.clearValue??o.defaultClearColor),S.clearValue=r);for(let T in u)T!=="texture"&&T!=="viewDescriptor"&&T!=="clearValue"&&T!=="loadOp"&&T!=="storeOp"&&(S[T]=u[T]);return S}),c;if(t.depthStencilAttachment){a.msaa&&(t.depthStencilAttachment.texture.sampleCount=4),t.depthStencilAttachment.texture.transient=!!a.msaaTextures[0]?.transient;let u=t.depthStencilAttachment,d=u.texture.format.includes("stencil"),f=u.texture.format.includes("depth"),m=u.texture.transient?"discard":"store";c={view:this._renderer.texture.getTextureRenderTargetView(u.texture,s,n,u.viewDescriptor)};let g=u.depthReadOnly??!1,_=u.stencilReadOnly??g;d&&!_?(c.stencilLoadOp=e&Et.STENCIL?"clear":u.stencilLoadOp??"load",c.stencilStoreOp=u.stencilStoreOp??m,c.stencilLoadOp==="clear"&&(c.stencilClearValue=u.stencilClearValue??0)):d&&_&&(c.stencilReadOnly=!0),f&&!g?(c.depthLoadOp=e&Et.DEPTH?"clear":u.depthLoadOp??"load",c.depthStoreOp=u.depthStoreOp??m,c.depthLoadOp==="clear"&&(c.depthClearValue=u.depthClearValue??1)):f&&g&&(c.depthReadOnly=!0);for(let x in u)x!=="texture"&&x!=="viewDescriptor"&&x!=="stencilLoadOp"&&x!=="stencilStoreOp"&&x!=="stencilClearValue"&&x!=="stencilReadOnly"&&x!=="depthLoadOp"&&x!=="depthStoreOp"&&x!=="depthClearValue"&&x!=="depthReadOnly"&&(c[x]=u[x])}return{colorAttachments:l,depthStencilAttachment:c,label:t.label}}clear(t,e=!0,r,s,n=0,o=0){if(!e)return;let{gpu:a,encoder:l}=this._renderer,c=a.device;if(l.commandEncoder===null){let u=c.createCommandEncoder(),d=this.getDescriptor(t,e,r,n,o),f=u.beginRenderPass(d);f.setViewport(s.x,s.y,s.width,s.height,0,1),f.end();let m=u.finish();c.queue.submit([m])}else this.startRenderPass(t,e,r,s,n,o)}initGpuRenderTarget(t){t.isRoot=!0;let e=new Va;return t.colorAttachments.forEach((r,s)=>{let n=r.texture;if(n instanceof Tt){if(!n._gpuContext){let o=n.resource.getContext("webgpu"),a=n.transparent?"premultiplied":"opaque",l=IT(n.format);try{o.configure({device:this._renderer.gpu.device,usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST|GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.COPY_SRC,format:l,alphaMode:a,...l==="rgba16float"?{toneMapping:{mode:"extended"}}:{}})}catch(c){console.error(c)}n._gpuContext=o}e.contexts[s]=n._gpuContext}if(e.msaa=n.source.antialias,n.antialias){let o=new st({width:0,height:0,sampleCount:4,transient:n.transient,arrayLayerCount:n.arrayLayerCount,format:n.format});e.msaaTextures[s]=o}}),e.msaa&&(e.msaaSamples=4,t.depthStencilAttachment&&(t.depthStencilAttachment.texture.sampleCount=4,t.depthStencilAttachment.texture.transient=!!e.msaaTextures[0]?.transient)),e}destroyGpuRenderTarget(t){t.contexts.forEach(e=>{e.unconfigure()}),t.msaaTextures.forEach(e=>{e.destroy()}),t.msaaTextures.length=0,t.contexts.length=0}ensureDepthStencilTexture(t){let e=this._renderTargetSystem.getGpuRenderTarget(t);t.depthStencilAttachment&&e.msaa&&(t.depthStencilAttachment.texture.sampleCount=4)}resizeGpuRenderTarget(t){let e=this._renderTargetSystem.getGpuRenderTarget(t);e.width=t.width,e.height=t.height,e.msaa&&t.colorAttachments.forEach((r,s)=>{let n=r.texture;e.msaaTextures[s]?.resize(n.width,n.height,n._resolution)})}}});var An,V_=p(()=>{P();Wa();W_();An=class extends Sr{constructor(t){super(t),this.adaptor=new ja,this.adaptor.init(t,this)}};An.extension={type:[y.WebGPUSystem],name:"renderTarget"}});var Rn,j_=p(()=>{P();Rn=class{constructor(){this._gpuProgramData=Object.create(null)}contextChange(t){this._gpu=t}getProgramData(t){return this._gpuProgramData[t._layoutKey]||this._createGPUProgramData(t)}_createGPUProgramData(t){let e=this._gpu.device,r=t.gpuLayout.map(n=>e.createBindGroupLayout({entries:n})),s={bindGroupLayouts:r};return this._gpuProgramData[t._layoutKey]={bindGroups:r,pipeline:e.createPipelineLayout(s)},this._gpuProgramData[t._layoutKey]}destroy(){this._gpu=null,this._gpuProgramData=null}};Rn.extension={type:[y.WebGPUSystem],name:"shader"}});var ne,X_=p(()=>{"use strict";ne={};ne.normal={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"}};ne.add={alpha:{srcFactor:"src-alpha",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"one",dstFactor:"one",operation:"add"}};ne.multiply={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"dst",dstFactor:"one-minus-src-alpha",operation:"add"}};ne.screen={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"one",dstFactor:"one-minus-src",operation:"add"}};ne.overlay={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"one",dstFactor:"one-minus-src",operation:"add"}};ne.none={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"zero",dstFactor:"zero",operation:"add"}};ne["normal-npm"]={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"src-alpha",dstFactor:"one-minus-src-alpha",operation:"add"}};ne["add-npm"]={alpha:{srcFactor:"one",dstFactor:"one",operation:"add"},color:{srcFactor:"src-alpha",dstFactor:"one",operation:"add"}};ne["screen-npm"]={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"src-alpha",dstFactor:"one-minus-src",operation:"add"}};ne.erase={alpha:{srcFactor:"zero",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"zero",dstFactor:"one-minus-src",operation:"add"}};ne.min={alpha:{srcFactor:"one",dstFactor:"one",operation:"min"},color:{srcFactor:"one",dstFactor:"one",operation:"min"}};ne.max={alpha:{srcFactor:"one",dstFactor:"one",operation:"max"},color:{srcFactor:"one",dstFactor:"one",operation:"max"}}});var kn,Y_=p(()=>{P();Be();X_();kn=class{constructor(){this.defaultState=new Ot,this.defaultState.blend=!0}contextChange(t){this.gpu=t}getColorTargets(t,e,r){let s=t.blend?ne[t.blendMode]||ne.normal:void 0,n=[];for(let o=0;o<e;o++)n[o]={format:r,writeMask:0,blend:s};return n}destroy(){this.gpu=null}};kn.extension={type:[y.WebGPUSystem],name:"state"}});var $_,q_=p(()=>{"use strict";$_={type:"image",upload(i,t,e,r=0){let s=i.resource,n=(i.pixelWidth|0)*(i.pixelHeight|0),o=s.byteLength/n;e.device.queue.writeTexture({texture:t,origin:{x:0,y:0,z:r}},s,{offset:0,rowsPerImage:i.pixelHeight,bytesPerRow:i.pixelWidth*o},{width:i.pixelWidth,height:i.pixelHeight,depthOrArrayLayers:1})}}});var fu,GT,K_,Z_=p(()=>{"use strict";fu={"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}},GT={blockBytes:4,blockWidth:1,blockHeight:1},K_={type:"compressed",upload(i,t,e,r=0){let s=i.pixelWidth,n=i.pixelHeight,o=fu[i.format]||GT;for(let a=0;a<i.resource.length;a++){let l=i.resource[a],c=Math.ceil(s/o.blockWidth)*o.blockBytes;e.device.queue.writeTexture({texture:t,mipLevel:a,origin:{x:0,y:0,z:r}},l,{offset:0,bytesPerRow:c},{width:Math.ceil(s/o.blockWidth)*o.blockWidth,height:Math.ceil(n/o.blockHeight)*o.blockHeight,depthOrArrayLayers:1}),s=Math.max(s>>1,1),n=Math.max(n>>1,1)}}}});function J_(i){return{type:"cube",upload(t,e,r){let s=t.faces;for(let n=0;n<Q_.length;n++){let o=Q_[n],a=s[o];(i[a.uploadMethodId]||i.image).upload(a,e,r,n)}}}}var Q_,ty=p(()=>{"use strict";Q_=["right","left","top","bottom","front","back"]});var Xa,pu=p(()=>{xt();ht();Xa={type:"image",upload(i,t,e,r=0){let s=i.resource;if(!s)return;if(globalThis.HTMLImageElement&&s instanceof HTMLImageElement){let l=W.get().createCanvas(s.width,s.height);l.getContext("2d").drawImage(s,0,0,s.width,s.height),i.resource=l,L("ImageSource: Image element passed, converting to canvas and replacing resource.")}let n=Math.min(t.width,i.resourceWidth||i.pixelWidth),o=Math.min(t.height,i.resourceHeight||i.pixelHeight),a=i.alphaMode==="premultiply-alpha-on-upload";e.device.queue.copyExternalImageToTexture({source:s},{texture:t,origin:{x:0,y:0,z:r},premultipliedAlpha:a},{width:n,height:o})}}});var ey,ry=p(()=>{pu();ey={type:"video",upload(i,t,e,r){Xa.upload(i,t,e,r)}}});var Ya,iy=p(()=>{"use strict";Ya=class{constructor(t){this.device=t,this.sampler=t.createSampler({minFilter:"linear"}),this.pipelines={}}_getMipmapPipeline(t){let e=this.pipelines[t];return e||(this.mipmapShaderModule||(this.mipmapShaderModule=this.device.createShaderModule({code:`
728
728
  var<private> pos : array<vec2<f32>, 3> = array<vec2<f32>, 3>(
729
729
  vec2<f32>(-1.0, -1.0), vec2<f32>(-1.0, 3.0), vec2<f32>(3.0, -1.0));
730
730
 
@@ -748,7 +748,7 @@ fn mainFragment(
748
748
  fn fragmentMain(@location(0) texCoord : vec2<f32>) -> @location(0) vec4<f32> {
749
749
  return textureSample(img, imgSampler, texCoord);
750
750
  }
751
- `})),e=this.device.createRenderPipeline({layout:"auto",vertex:{module:this.mipmapShaderModule,entryPoint:"vertexMain"},fragment:{module:this.mipmapShaderModule,entryPoint:"fragmentMain",targets:[{format:t}]}}),this.pipelines[t]=e),e}generateMipmap(t){let e=this._getMipmapPipeline(t.format);if(t.dimension==="3d"||t.dimension==="1d")throw new Error("Generating mipmaps for non-2d textures is currently unsupported!");let r=t,s=t.depthOrArrayLayers||1,n=t.usage&GPUTextureUsage.RENDER_ATTACHMENT;if(!n){let l={size:{width:Math.ceil(t.width/2),height:Math.ceil(t.height/2),depthOrArrayLayers:s},format:t.format,usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_SRC|GPUTextureUsage.RENDER_ATTACHMENT,mipLevelCount:t.mipLevelCount-1};r=this.device.createTexture(l)}let o=this.device.createCommandEncoder({}),a=e.getBindGroupLayout(0);for(let l=0;l<s;++l){let c=t.createView({baseMipLevel:0,mipLevelCount:1,dimension:"2d",baseArrayLayer:l,arrayLayerCount:1}),h=n?1:0;for(let u=1;u<t.mipLevelCount;++u){let d=r.createView({baseMipLevel:h++,mipLevelCount:1,dimension:"2d",baseArrayLayer:l,arrayLayerCount:1}),f=o.beginRenderPass({colorAttachments:[{view:d,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:c}]});f.setPipeline(e),f.setBindGroup(0,m),f.draw(3,1,0,0),f.end(),c=d}}if(!n){let l={width:Math.ceil(t.width/2),height:Math.ceil(t.height/2),depthOrArrayLayers:s};for(let c=1;c<t.mipLevelCount;++c)o.copyTextureToTexture({texture:r,mipLevel:c-1},{texture:t,mipLevel:c},l),l.width=Math.ceil(l.width/2),l.height=Math.ceil(l.height/2)}return this.device.queue.submit([o.finish()]),n||r.destroy(),t}}});function ry(i){return`${i.format||""}.${i.dimension||""}.${i.aspect||""}.${i.baseMipLevel||0}.${i.mipLevelCount||""}.${i.baseArrayLayer||0}.${i.arrayLayerCount||""}`}var mu,gu,xu,sy=p(()=>{xt();P();Ie();me();$o();mr();Y_();q_();Q_();pu();ty();ey();mu=class{constructor(t){this.textureView=null,this.textureViews=Object.create(null),this.gpuTexture=t}destroy(){this.gpuTexture.destroy(),this.textureView=null,this.textureViews=null,this.gpuTexture=null}};gu=class iy{constructor(t){this._gpuSamplers=Object.create(null),this._bindGroupHash=Object.create(null),this._renderer=t,t.gc.addCollection(this,"_bindGroupHash","hash"),this._managedTextures=new kt({renderer:t,type:"resource",onUnload:this.onSourceUnload.bind(this),name:"gpuTextureSource"});let e={image:ja,buffer:X_,video:J_,compressed:$_,...iy.uploadExtensions};this._uploads={...e,cube:Z_(e)}}get managedTextures(){return Object.values(this._managedTextures.items)}contextChange(t){this._gpu=t}initSource(t){return t._gpuData[this._renderer.uid]?.gpuTexture||this._initSource(t)}_initSource(t){if(t.autoGenerateMipmaps){let c=Math.max(t.pixelWidth,t.pixelHeight);t.mipLevelCount=Math.floor(Math.log2(c))+1}let e;t.sampleCount>1?(e=GPUTextureUsage.RENDER_ATTACHMENT,t.transient&&this._renderer.device.extensions.transientAttachment&&(e|=GPUTextureUsage.TRANSIENT_ATTACHMENT)):(e=GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST,t.uploadMethodId!=="compressed"&&(e|=GPUTextureUsage.RENDER_ATTACHMENT,e|=GPUTextureUsage.COPY_SRC));let r=fu[t.format]||{blockBytes:4,blockWidth:1,blockHeight:1},s=Math.ceil(t.pixelWidth/r.blockWidth)*r.blockWidth,n=Math.ceil(t.pixelHeight/r.blockHeight)*r.blockHeight,o={label:t.label,size:{width:s,height:n,depthOrArrayLayers:t.arrayLayerCount},format:t.format,sampleCount:t.sampleCount,mipLevelCount:t.mipLevelCount,dimension:t.dimension,usage:e},a=this._gpu.device.createTexture(o);return t._gpuData[this._renderer.uid]=new mu(a),this._managedTextures.add(t)&&(t.on("update",this.onSourceUpdate,this),t.on("resize",this.onSourceResize,this),t.on("updateMipmaps",this.onUpdateMipmaps,this)),this.onSourceUpdate(t),a}onSourceUpdate(t){let e=this.getGpuSource(t);e&&(this._uploads[t.uploadMethodId]&&this._uploads[t.uploadMethodId].upload(t,e,this._gpu),t.autoGenerateMipmaps&&t.mipLevelCount>1&&this.onUpdateMipmaps(t))}onUpdateMipmaps(t){this._mipmapGenerator||(this._mipmapGenerator=new Xa(this._gpu.device));let e=this.getGpuSource(t);this._mipmapGenerator.generateMipmap(e)}onSourceUnload(t){t.off("update",this.onSourceUpdate,this),t.off("resize",this.onSourceResize,this),t.off("updateMipmaps",this.onUpdateMipmaps,this)}onSourceResize(t){t._gcLastUsed=this._renderer.gc.now;let e=t._gpuData[this._renderer.uid],r=e?.gpuTexture;r?(r.width!==t.pixelWidth||r.height!==t.pixelHeight)&&(e.destroy(),this._bindGroupHash[t.uid]=null,t._gpuData[this._renderer.uid]=null,this.initSource(t)):this.initSource(t)}_initSampler(t){return this._gpuSamplers[t._resourceId]=this._gpu.device.createSampler(t),this._gpuSamplers[t._resourceId]}getGpuSampler(t){return this._gpuSamplers[t._resourceId]||this._initSampler(t)}getGpuSource(t){return t._gcLastUsed=this._renderer.gc.now,t._gpuData[this._renderer.uid]?.gpuTexture||this.initSource(t)}getTextureBindGroup(t){return this._bindGroupHash[t.uid]||this._createTextureBindGroup(t)}_createTextureBindGroup(t){let e=t.source;return this._bindGroupHash[t.uid]=new Vt({0:e,1:e.style,2:new Ct({uTextureMatrix:{type:"mat3x3<f32>",value:t.textureMatrix.mapCoord}})}),this._bindGroupHash[t.uid]}getTextureView(t,e){var r;let s=t.source;s._gcLastUsed=this._renderer.gc.now;let n=s._gpuData[this._renderer.uid];n||(this.initSource(s),n=s._gpuData[this._renderer.uid]);let o=e?ry(e):0;return(r=n.textureViews)[o]||(r[o]=n.gpuTexture.createView({dimension:s.viewDimension,...e})),n.textureViews[o]}getTextureRenderTargetView(t,e=0,r=0,s){var n;let o=t.source;o._gcLastUsed=this._renderer.gc.now;let a=o._gpuData[this._renderer.uid];a||(this.initSource(o),a=o._gpuData[this._renderer.uid]);let l=r*(o.mipLevelCount||1)+e+1;return s&&(l=`${l}.${ry(s)}`),(n=a.textureViews)[l]||(n[l]=a.gpuTexture.createView({dimension:"2d",baseMipLevel:e,mipLevelCount:1,baseArrayLayer:r,arrayLayerCount:1,...s})),a.textureViews[l]}generateCanvas(t){let e=this._renderer,r=e.gpu.device.createCommandEncoder(),s=W.get().createCanvas();s.width=t.source.pixelWidth,s.height=t.source.pixelHeight;let n=s.getContext("webgpu");return n.configure({device:e.gpu.device,usage:GPUTextureUsage.COPY_DST|GPUTextureUsage.COPY_SRC,format:W.get().getNavigator().gpu.getPreferredCanvasFormat(),alphaMode:"premultiplied"}),r.copyTextureToTexture({texture:e.texture.getGpuSource(t.source),origin:{x:0,y:0}},{texture:n.getCurrentTexture()},{width:s.width,height:s.height}),e.gpu.device.queue.submit([r.finish()]),s}getPixels(t){let e=this.generateCanvas(t),r=rr.getOptimalCanvasAndContext(e.width,e.height),s=r.context;s.drawImage(e,0,0);let{width:n,height:o}=e,a=s.getImageData(0,0,n,o),l=new Uint8ClampedArray(a.data.buffer);return rr.returnCanvasAndContext(r),{pixels:l,width:n,height:o}}destroy(){this._managedTextures.destroy();for(let t of Object.keys(this._bindGroupHash)){let e=Number(t);this._bindGroupHash[e]?.destroy()}this._renderer=null,this._gpu=null,this._mipmapGenerator=null,this._gpuSamplers=null,this._bindGroupHash=null}};gu.extension={type:[y.WebGPUSystem],name:"texture"};gu.uploadExtensions=Object.create(null);xu=gu;z.handleByMap(y.TextureUploaderWebGPU,xu.uploadExtensions)});var ly={};zl(ly,{WebGPURenderer:()=>_u});var BT,IT,GT,ny,oy,ay,_u,cy=p(()=>{P();rx();nx();ox();Vr();Da();Ne();p_();m_();g_();x_();__();y_();b_();hu();M_();F_();H_();W_();j_();sy();BT=[...Xi,Qr,bn,Yi,vn,_n,xu,Mn,An,Rn,Pn,yn,Sn,xn],IT=[...Ua,Cn],GT=[Ks,qs,$s],ny=[],oy=[],ay=[];z.handleByNamedList(y.WebGPUSystem,ny);z.handleByNamedList(y.WebGPUPipes,oy);z.handleByNamedList(y.WebGPUPipesAdaptor,ay);z.add(...BT,...IT,...GT);_u=class extends Te{constructor(){let t={name:"webgpu",type:Lt.WEBGPU,systems:ny,renderPipes:oy,renderPipeAdaptors:ay};super(t)}}});var kn,hy=p(()=>{P();ot();Ui();ya();Sa();Ys();Oi();Wh();gr();me();kn=class{contextChange(t){let e=new Ct({uColor:{value:new Float32Array([1,1,1,1]),type:"vec4<f32>"},uTransformMatrix:{value:new k,type:"mat3x3<f32>"},uRound:{value:0,type:"f32"}}),r=t.limits.maxBatchableTextures,s=Fi({name:"graphics",bits:[_a,va(r),Ta,Li]});this.shader=new te({glProgram:s,resources:{localUniforms:e,batchSamplers:Ra(r)}})}execute(t,e){let r=e.context,s=r.customShader||this.shader,n=t.renderer,o=n.graphicsContext,{batcher:a,instructions:l}=o.getContextRenderData(r);s.groups[0]=n.globalUniforms.bindGroup,n.state.set(t.state),n.shader.bind(s),n.geometry.bind(a.geometry,s.glProgram);let c=l.instructions;for(let h=0;h<l.instructionSize;h++){let u=c[h];if(u.size){for(let d=0;d<u.textures.count;d++)n.texture.bind(u.textures.textures[d],d);n.geometry.draw(u.topology,u.size,u.start)}}}destroy(){this.shader.destroy(!0),this.shader=null}};kn.extension={type:[y.WebGLPipesAdaptor],name:"graphics"}});var Bn,uy=p(()=>{P();ot();Ui();Ys();Oi();Ah();gr();gt();ht();Bn=class{init(){let t=Fi({name:"mesh",bits:[Ta,sx,Li]});this._shader=new te({glProgram:t,resources:{uTexture:U.EMPTY.source,textureUniforms:{uTextureMatrix:{type:"mat3x3<f32>",value:new k}}}})}execute(t,e){let r=t.renderer,s=e._shader;if(s){if(!s.glProgram){L("Mesh shader has no glProgram",e.shader);return}}else{s=this._shader;let n=e.texture,o=n.source;s.resources.uTexture=o,s.resources.uSampler=o.style,s.resources.textureUniforms.uniforms.uTextureMatrix=n.textureMatrix.mapCoord}s.groups[100]=r.globalUniforms.bindGroup,s.groups[101]=t.localUniformsBindGroup,r.encoder.draw({geometry:e._geometry,shader:s,state:e.state})}destroy(){this._shader.destroy(!0),this._shader=null}};Bn.extension={type:[y.WebGLPipesAdaptor],name:"mesh"}});var In,dy=p(()=>{P();Be();In=class{constructor(){this._tempState=Ot.for2d(),this._didUploadHash={}}init(t){t.renderer.runners.contextChange.add(this)}contextChange(){this._didUploadHash={}}start(t,e,r){let s=t.renderer,n=this._didUploadHash[r.uid];s.shader.bind(r,n),n||(this._didUploadHash[r.uid]=!0),s.shader.updateUniformGroup(s.globalUniforms.uniformGroup),s.geometry.bind(e,r.glProgram)}execute(t,e){let r=t.renderer;this._tempState.blendMode=e.blendMode,r.state.set(this._tempState);let s=e.textures.textures;for(let n=0;n<e.textures.count;n++)r.texture.bind(s[n],n);r.geometry.draw(e.topology,e.size,e.start)}};In.extension={type:[y.WebGLPipesAdaptor],name:"batch"}});var Gn,fy=p(()=>{"use strict";Gn=(i=>(i[i.ELEMENT_ARRAY_BUFFER=34963]="ELEMENT_ARRAY_BUFFER",i[i.ARRAY_BUFFER=34962]="ARRAY_BUFFER",i[i.UNIFORM_BUFFER=35345]="UNIFORM_BUFFER",i))(Gn||{})});var Ya,py=p(()=>{"use strict";Ya=class{constructor(t,e){this._lastBindBaseLocation=-1,this._lastBindCallId=-1,this.buffer=t||null,this.updateID=-1,this.byteLength=-1,this.type=e}destroy(){this.buffer=null,this.updateID=-1,this.byteLength=-1,this.type=-1,this._lastBindBaseLocation=-1,this._lastBindCallId=-1}}});var Fn,my=p(()=>{P();Ie();ir();fy();py();Fn=class{constructor(t){this._boundBufferBases=Object.create(null),this._minBaseLocation=0,this._nextBindBaseIndex=this._minBaseLocation,this._bindCallId=0,this._renderer=t,this._managedBuffers=new kt({renderer:t,type:"resource",onUnload:this.onBufferUnload.bind(this),name:"glBuffer"})}destroy(){this._managedBuffers.destroy(),this._renderer=null,this._gl=null,this._boundBufferBases={}}contextChange(){this._gl=this._renderer.gl,this.destroyAll(!0),this._maxBindings=this._renderer.limits.maxUniformBindings}getGlBuffer(t){return t._gcLastUsed=this._renderer.gc.now,t._gpuData[this._renderer.uid]||this.createGLBuffer(t)}bind(t){let{_gl:e}=this,r=this.getGlBuffer(t);e.bindBuffer(r.type,r.buffer)}bindBufferBase(t,e){let{_gl:r}=this;this._boundBufferBases[e]!==t&&(this._boundBufferBases[e]=t,t._lastBindBaseLocation=e,r.bindBufferBase(r.UNIFORM_BUFFER,e,t.buffer))}nextBindBase(t){this._bindCallId++,this._minBaseLocation=0,t&&(this._boundBufferBases[0]=null,this._minBaseLocation=1,this._nextBindBaseIndex<1&&(this._nextBindBaseIndex=1))}freeLocationForBufferBase(t){let e=this.getLastBindBaseLocation(t);if(e>=this._minBaseLocation)return t._lastBindCallId=this._bindCallId,e;let r=0,s=this._nextBindBaseIndex;for(;r<2;){s>=this._maxBindings&&(s=this._minBaseLocation,r++);let n=this._boundBufferBases[s];if(n&&n._lastBindCallId===this._bindCallId){s++;continue}break}return e=s,this._nextBindBaseIndex=s+1,r>=2?-1:(t._lastBindCallId=this._bindCallId,this._boundBufferBases[e]=null,e)}getLastBindBaseLocation(t){let e=t._lastBindBaseLocation;return this._boundBufferBases[e]===t?e:-1}bindBufferRange(t,e,r,s){let{_gl:n}=this;r||(r=0),e||(e=0),this._boundBufferBases[e]=null,n.bindBufferRange(n.UNIFORM_BUFFER,e||0,t.buffer,r*256,s||256)}updateBuffer(t){let{_gl:e}=this,r=this.getGlBuffer(t);if(t._updateID===r.updateID)return r;r.updateID=t._updateID,e.bindBuffer(r.type,r.buffer);let s=t.data,n=t.descriptor.usage&tt.STATIC?e.STATIC_DRAW:e.DYNAMIC_DRAW;return s?r.byteLength>=s.byteLength?e.bufferSubData(r.type,t._updateOffset,s,t._updateOffset/s.BYTES_PER_ELEMENT,(t._updateSize||s.byteLength)/s.BYTES_PER_ELEMENT):(r.byteLength=s.byteLength,e.bufferData(r.type,s,n)):(r.byteLength=t.descriptor.size,e.bufferData(r.type,r.byteLength,n)),r}destroyAll(t=!1){this._managedBuffers.removeAll(t)}onBufferUnload(t,e=!1){let r=t._gpuData[this._renderer.uid];r&&(e||this._gl.deleteBuffer(r.buffer))}createGLBuffer(t){let{_gl:e}=this,r=Gn.ARRAY_BUFFER;t.descriptor.usage&tt.INDEX?r=Gn.ELEMENT_ARRAY_BUFFER:t.descriptor.usage&tt.UNIFORM&&(r=Gn.UNIFORM_BUFFER);let s=new Ya(e.createBuffer(),r);return t._gpuData[this._renderer.uid]=s,this._managedBuffers.add(t),s}resetState(){this._boundBufferBases=Object.create(null)}};Fn.extension={type:[y.WebGLSystem],name:"buffer"}});var yu,xy,_y=p(()=>{xt();P();ht();yu=class gy{constructor(t){this.supports={uint32Indices:!0,uniformBufferObject:!0,vertexArrayObject:!0,srgbTextures:!0,nonPowOf2wrapping:!0,msaa:!0,nonPowOf2mipmaps:!0},this._renderer=t,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(t){this.gl=t,this._renderer.gl=t}init(t){t={...gy.defaultOptions,...t};let e=this.multiView=t.multiView;if(t.context&&e&&(L("Renderer created with both a context and multiview enabled. Disabling multiView as both cannot work together."),e=!1),e?this.canvas=W.get().createCanvas(this._renderer.canvas.width,this._renderer.canvas.height):this.canvas=this._renderer.view.canvas,t.context)this.initFromContext(t.context);else{let r=this._renderer.background.alpha<1,s=t.premultipliedAlpha??!0,n=t.antialias&&!this._renderer.backBuffer.useBackBuffer;this.createContext(t.preferWebGLVersion,{alpha:r,premultipliedAlpha:s,antialias:n,stencil:!0,preserveDrawingBuffer:t.preserveDrawingBuffer,powerPreference:t.powerPreference??"default"})}}ensureCanvasSize(t){if(!this.multiView){t!==this.canvas&&L("multiView is disabled, but targetCanvas is not the main canvas");return}let{canvas:e}=this;(e.width<t.width||e.height<t.height)&&(e.width=Math.max(t.width,t.width),e.height=Math.max(t.height,t.height))}initFromContext(t){this.gl=t,this.webGLVersion=t instanceof W.get().getWebGLRenderingContext()?1:2,this.getExtensions(),this.validateContext(t),this._renderer.runners.contextChange.emit(t);let e=this._renderer.view.canvas;e.addEventListener("webglcontextlost",this.handleContextLost,!1),e.addEventListener("webglcontextrestored",this.handleContextRestored,!1)}createContext(t,e){let r,s=this.canvas;if(t===2&&(r=s.getContext("webgl2",e)),!r&&(r=s.getContext("webgl",e),!r))throw new Error("This browser does not support WebGL. Try using the canvas renderer");this.gl=r,this.initFromContext(this.gl)}getExtensions(){let{gl:t}=this,e={anisotropicFiltering:t.getExtension("EXT_texture_filter_anisotropic"),floatTextureLinear:t.getExtension("OES_texture_float_linear"),s3tc:t.getExtension("WEBGL_compressed_texture_s3tc"),s3tc_sRGB:t.getExtension("WEBGL_compressed_texture_s3tc_srgb"),etc:t.getExtension("WEBGL_compressed_texture_etc"),etc1:t.getExtension("WEBGL_compressed_texture_etc1"),pvrtc:t.getExtension("WEBGL_compressed_texture_pvrtc")||t.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc"),atc:t.getExtension("WEBGL_compressed_texture_atc"),astc:t.getExtension("WEBGL_compressed_texture_astc"),bptc:t.getExtension("EXT_texture_compression_bptc"),rgtc:t.getExtension("EXT_texture_compression_rgtc"),loseContext:t.getExtension("WEBGL_lose_context")};if(this.webGLVersion===1)this.extensions={...e,drawBuffers:t.getExtension("WEBGL_draw_buffers"),depthTexture:t.getExtension("WEBGL_depth_texture"),vertexArrayObject:t.getExtension("OES_vertex_array_object")||t.getExtension("MOZ_OES_vertex_array_object")||t.getExtension("WEBKIT_OES_vertex_array_object"),uint32ElementIndex:t.getExtension("OES_element_index_uint"),floatTexture:t.getExtension("OES_texture_float"),floatTextureLinear:t.getExtension("OES_texture_float_linear"),textureHalfFloat:t.getExtension("OES_texture_half_float"),textureHalfFloatLinear:t.getExtension("OES_texture_half_float_linear"),vertexAttribDivisorANGLE:t.getExtension("ANGLE_instanced_arrays"),srgb:t.getExtension("EXT_sRGB")};else{this.extensions={...e,colorBufferFloat:t.getExtension("EXT_color_buffer_float")};let r=t.getExtension("WEBGL_provoking_vertex");r&&r.provokingVertexWEBGL(r.FIRST_VERTEX_CONVENTION_WEBGL)}}handleContextLost(t){t.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 t=this._renderer.view.canvas;this._renderer=null,t.removeEventListener("webglcontextlost",this.handleContextLost),t.removeEventListener("webglcontextrestored",this.handleContextRestored),this.gl.useProgram(null),this.extensions.loseContext?.loseContext()}forceContextLoss(){this.extensions.loseContext?.loseContext(),this._contextLossForced=!0}validateContext(t){let e=t.getContextAttributes();e&&!e.stencil&&L("Provided WebGL context does not have a stencil buffer, masks may not render correctly");let r=this.supports,s=this.webGLVersion===2,n=this.extensions;r.uint32Indices=s||!!n.uint32ElementIndex,r.uniformBufferObject=s,r.vertexArrayObject=s||!!n.vertexArrayObject,r.srgbTextures=s||!!n.srgb,r.nonPowOf2wrapping=s,r.nonPowOf2mipmaps=s,r.msaa=s,r.uint32Indices||L("Provided WebGL context does not support 32 index buffer, large scenes may not render correctly")}};yu.extension={type:[y.WebGLSystem],name:"context"};yu.defaultOptions={context:null,premultipliedAlpha:!0,preserveDrawingBuffer:!1,powerPreference:void 0,preferWebGLVersion:2,multiView:!1};xy=yu});var $a,Un,at,qa=p(()=>{"use strict";$a=(i=>(i[i.RGBA=6408]="RGBA",i[i.RGB=6407]="RGB",i[i.RG=33319]="RG",i[i.RED=6403]="RED",i[i.RGBA_INTEGER=36249]="RGBA_INTEGER",i[i.RGB_INTEGER=36248]="RGB_INTEGER",i[i.RG_INTEGER=33320]="RG_INTEGER",i[i.RED_INTEGER=36244]="RED_INTEGER",i[i.ALPHA=6406]="ALPHA",i[i.LUMINANCE=6409]="LUMINANCE",i[i.LUMINANCE_ALPHA=6410]="LUMINANCE_ALPHA",i[i.DEPTH_COMPONENT=6402]="DEPTH_COMPONENT",i[i.DEPTH_STENCIL=34041]="DEPTH_STENCIL",i))($a||{}),Un=(i=>(i[i.TEXTURE_2D=3553]="TEXTURE_2D",i[i.TEXTURE_CUBE_MAP=34067]="TEXTURE_CUBE_MAP",i[i.TEXTURE_2D_ARRAY=35866]="TEXTURE_2D_ARRAY",i[i.TEXTURE_CUBE_MAP_POSITIVE_X=34069]="TEXTURE_CUBE_MAP_POSITIVE_X",i[i.TEXTURE_CUBE_MAP_NEGATIVE_X=34070]="TEXTURE_CUBE_MAP_NEGATIVE_X",i[i.TEXTURE_CUBE_MAP_POSITIVE_Y=34071]="TEXTURE_CUBE_MAP_POSITIVE_Y",i[i.TEXTURE_CUBE_MAP_NEGATIVE_Y=34072]="TEXTURE_CUBE_MAP_NEGATIVE_Y",i[i.TEXTURE_CUBE_MAP_POSITIVE_Z=34073]="TEXTURE_CUBE_MAP_POSITIVE_Z",i[i.TEXTURE_CUBE_MAP_NEGATIVE_Z=34074]="TEXTURE_CUBE_MAP_NEGATIVE_Z",i))(Un||{}),at=(i=>(i[i.UNSIGNED_BYTE=5121]="UNSIGNED_BYTE",i[i.UNSIGNED_SHORT=5123]="UNSIGNED_SHORT",i[i.UNSIGNED_SHORT_5_6_5=33635]="UNSIGNED_SHORT_5_6_5",i[i.UNSIGNED_SHORT_4_4_4_4=32819]="UNSIGNED_SHORT_4_4_4_4",i[i.UNSIGNED_SHORT_5_5_5_1=32820]="UNSIGNED_SHORT_5_5_5_1",i[i.UNSIGNED_INT=5125]="UNSIGNED_INT",i[i.UNSIGNED_INT_10F_11F_11F_REV=35899]="UNSIGNED_INT_10F_11F_11F_REV",i[i.UNSIGNED_INT_2_10_10_10_REV=33640]="UNSIGNED_INT_2_10_10_10_REV",i[i.UNSIGNED_INT_24_8=34042]="UNSIGNED_INT_24_8",i[i.UNSIGNED_INT_5_9_9_9_REV=35902]="UNSIGNED_INT_5_9_9_9_REV",i[i.BYTE=5120]="BYTE",i[i.SHORT=5122]="SHORT",i[i.INT=5124]="INT",i[i.FLOAT=5126]="FLOAT",i[i.FLOAT_32_UNSIGNED_INT_24_8_REV=36269]="FLOAT_32_UNSIGNED_INT_24_8_REV",i[i.HALF_FLOAT=36193]="HALF_FLOAT",i))(at||{})});function by(i){return yy[i]??yy.float32}var yy,vy=p(()=>{qa();yy={uint8x2:at.UNSIGNED_BYTE,uint8x4:at.UNSIGNED_BYTE,sint8x2:at.BYTE,sint8x4:at.BYTE,unorm8x2:at.UNSIGNED_BYTE,unorm8x4:at.UNSIGNED_BYTE,snorm8x2:at.BYTE,snorm8x4:at.BYTE,uint16x2:at.UNSIGNED_SHORT,uint16x4:at.UNSIGNED_SHORT,sint16x2:at.SHORT,sint16x4:at.SHORT,unorm16x2:at.UNSIGNED_SHORT,unorm16x4:at.UNSIGNED_SHORT,snorm16x2:at.SHORT,snorm16x4:at.SHORT,float16x2:at.HALF_FLOAT,float16x4:at.HALF_FLOAT,float32:at.FLOAT,float32x2:at.FLOAT,float32x3:at.FLOAT,float32x4:at.FLOAT,uint32:at.UNSIGNED_INT,uint32x2:at.UNSIGNED_INT,uint32x3:at.UNSIGNED_INT,uint32x4:at.UNSIGNED_INT,sint32:at.INT,sint32x2:at.INT,sint32x3:at.INT,sint32x4:at.INT}});var FT,bu,Dn,Sy=p(()=>{P();Ie();pr();uu();vy();FT={"point-list":0,"line-list":1,"line-strip":3,"triangle-list":4,"triangle-strip":5},bu=class{constructor(){this.vaoCache=Object.create(null)}destroy(){this.vaoCache=Object.create(null)}},Dn=class{constructor(t){this._renderer=t,this._activeGeometry=null,this._activeVao=null,this.hasVao=!0,this.hasInstance=!0,this._managedGeometries=new kt({renderer:t,type:"resource",onUnload:this.onGeometryUnload.bind(this),name:"glGeometry"})}contextChange(){let t=this.gl=this._renderer.gl;if(!this._renderer.context.supports.vertexArrayObject)throw new Error("[PixiJS] Vertex Array Objects are not supported on this device");this.destroyAll(!0);let e=this._renderer.context.extensions.vertexArrayObject;e&&(t.createVertexArray=()=>e.createVertexArrayOES(),t.bindVertexArray=s=>e.bindVertexArrayOES(s),t.deleteVertexArray=s=>e.deleteVertexArrayOES(s));let r=this._renderer.context.extensions.vertexAttribDivisorANGLE;r&&(t.drawArraysInstanced=(s,n,o,a)=>{r.drawArraysInstancedANGLE(s,n,o,a)},t.drawElementsInstanced=(s,n,o,a,l)=>{r.drawElementsInstancedANGLE(s,n,o,a,l)},t.vertexAttribDivisor=(s,n)=>r.vertexAttribDivisorANGLE(s,n)),this._activeGeometry=null,this._activeVao=null}bind(t,e){let r=this.gl;this._activeGeometry=t;let s=this.getVao(t,e);this._activeVao!==s&&(this._activeVao=s,r.bindVertexArray(s)),this.updateBuffers()}resetState(){this.unbind()}updateBuffers(){let t=this._activeGeometry,e=this._renderer.buffer;for(let r=0;r<t.buffers.length;r++){let s=t.buffers[r];e.updateBuffer(s)}t._gcLastUsed=this._renderer.gc.now}checkCompatibility(t,e){let r=t.attributes,s=e._attributeData;for(let n in s)if(!r[n])throw new Error(`shader and geometry incompatible, geometry missing the "${n}" attribute`)}getSignature(t,e){let r=t.attributes,s=e._attributeData,n=["g",t.uid];for(let o in r)s[o]&&n.push(o,s[o].location);return n.join("-")}getVao(t,e){return t._gpuData[this._renderer.uid]?.vaoCache[e._key]||this.initGeometryVao(t,e)}initGeometryVao(t,e,r=!0){let s=this._renderer.gl,n=this._renderer.buffer;this._renderer.shader._getProgramData(e),this.checkCompatibility(t,e);let o=this.getSignature(t,e),a=t._gpuData[this._renderer.uid];a||(a=new bu,t._gpuData[this._renderer.uid]=a,this._managedGeometries.add(t));let l=a.vaoCache,c=l[o];if(c)return l[e._key]=c,c;En(t,e._attributeData);let h=t.buffers;c=s.createVertexArray(),s.bindVertexArray(c);for(let u=0;u<h.length;u++){let d=h[u];n.bind(d)}return this.activateVao(t,e),l[e._key]=c,l[o]=c,s.bindVertexArray(null),c}onGeometryUnload(t,e=!1){let r=t._gpuData[this._renderer.uid];if(!r)return;let s=r.vaoCache;if(!e)for(let n in s)this._activeVao!==s[n]&&this.resetState(),this.gl.deleteVertexArray(s[n])}destroyAll(t=!1){this._managedGeometries.removeAll(t)}activateVao(t,e){let r=this._renderer.gl,s=this._renderer.buffer,n=t.attributes;t.indexBuffer&&s.bind(t.indexBuffer);let o=null;for(let a in n){let l=n[a],c=l.buffer,h=s.getGlBuffer(c),u=e._attributeData[a];if(u){o!==h&&(s.bind(c),o=h);let d=u.location;r.enableVertexAttribArray(d);let f=Jt(l.format),m=by(l.format);if(u.format?.substring(1,4)==="int"?r.vertexAttribIPointer(d,f.size,m,l.stride,l.offset):r.vertexAttribPointer(d,f.size,m,f.normalised,l.stride,l.offset),l.instance)if(this.hasInstance){let g=l.divisor??1;r.vertexAttribDivisor(d,g)}else throw new Error("geometry error, GPU Instancing is not supported on this device")}}}draw(t,e,r,s){let{gl:n}=this._renderer,o=this._activeGeometry,a=FT[t||o.topology];if(s??(s=o.instanceCount),o.indexBuffer){let l=o.indexBuffer.data.BYTES_PER_ELEMENT,c=l===2?n.UNSIGNED_SHORT:n.UNSIGNED_INT;s!==1?n.drawElementsInstanced(a,e||o.indexBuffer.data.length,c,(r||0)*l,s):n.drawElements(a,e||o.indexBuffer.data.length,c,(r||0)*l)}else s!==1?n.drawArraysInstanced(a,r||0,e||o.vertexCount,s):n.drawArrays(a,r||0,e||o.vertexCount);return this}unbind(){this.gl.bindVertexArray(null),this._activeVao=null,this._activeGeometry=null}destroy(){this._managedGeometries.destroy(),this._renderer=null,this.gl=null,this._activeVao=null,this._activeGeometry=null}};Dn.extension={type:[y.WebGLSystem],name:"geometry"}});var UT,vu,wy,Cy=p(()=>{P();ht();zr();gr();Be();$t();gt();Nr();UT=new he({attributes:{aPosition:[-1,-1,3,-1,-1,3]}}),vu=class Ty{constructor(t){this.useBackBuffer=!1,this._useBackBufferThisRender=!1,this._renderer=t}init(t={}){let{useBackBuffer:e,antialias:r}={...Ty.defaultOptions,...t};this.useBackBuffer=e,this._antialias=r,this._renderer.context.supports.msaa||(L("antialiasing, is not supported on when using the back buffer"),this._antialias=!1),this._state=Ot.for2d();let s=new be({vertex:`
751
+ `})),e=this.device.createRenderPipeline({layout:"auto",vertex:{module:this.mipmapShaderModule,entryPoint:"vertexMain"},fragment:{module:this.mipmapShaderModule,entryPoint:"fragmentMain",targets:[{format:t}]}}),this.pipelines[t]=e),e}generateMipmap(t){let e=this._getMipmapPipeline(t.format);if(t.dimension==="3d"||t.dimension==="1d")throw new Error("Generating mipmaps for non-2d textures is currently unsupported!");let r=t,s=t.depthOrArrayLayers||1,n=t.usage&GPUTextureUsage.RENDER_ATTACHMENT;if(!n){let l={size:{width:Math.ceil(t.width/2),height:Math.ceil(t.height/2),depthOrArrayLayers:s},format:t.format,usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_SRC|GPUTextureUsage.RENDER_ATTACHMENT,mipLevelCount:t.mipLevelCount-1};r=this.device.createTexture(l)}let o=this.device.createCommandEncoder({}),a=e.getBindGroupLayout(0);for(let l=0;l<s;++l){let c=t.createView({baseMipLevel:0,mipLevelCount:1,dimension:"2d",baseArrayLayer:l,arrayLayerCount:1}),h=n?1:0;for(let u=1;u<t.mipLevelCount;++u){let d=r.createView({baseMipLevel:h++,mipLevelCount:1,dimension:"2d",baseArrayLayer:l,arrayLayerCount:1}),f=o.beginRenderPass({colorAttachments:[{view:d,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:c}]});f.setPipeline(e),f.setBindGroup(0,m),f.draw(3,1,0,0),f.end(),c=d}}if(!n){let l={width:Math.ceil(t.width/2),height:Math.ceil(t.height/2),depthOrArrayLayers:s};for(let c=1;c<t.mipLevelCount;++c)o.copyTextureToTexture({texture:r,mipLevel:c-1},{texture:t,mipLevel:c},l),l.width=Math.ceil(l.width/2),l.height=Math.ceil(l.height/2)}return this.device.queue.submit([o.finish()]),n||r.destroy(),t}}});function sy(i){return`${i.format||""}.${i.dimension||""}.${i.aspect||""}.${i.baseMipLevel||0}.${i.mipLevelCount||""}.${i.baseArrayLayer||0}.${i.arrayLayerCount||""}`}var mu,gu,xu,oy=p(()=>{xt();P();Ie();me();qo();mr();q_();Z_();ty();pu();ry();iy();mu=class{constructor(t){this.textureView=null,this.textureViews=Object.create(null),this.gpuTexture=t}destroy(){this.gpuTexture.destroy(),this.textureView=null,this.textureViews=null,this.gpuTexture=null}};gu=class ny{constructor(t){this._gpuSamplers=Object.create(null),this._bindGroupHash=Object.create(null),this._renderer=t,t.gc.addCollection(this,"_bindGroupHash","hash"),this._managedTextures=new kt({renderer:t,type:"resource",onUnload:this.onSourceUnload.bind(this),name:"gpuTextureSource"});let e={image:Xa,buffer:$_,video:ey,compressed:K_,...ny.uploadExtensions};this._uploads={...e,cube:J_(e)}}get managedTextures(){return Object.values(this._managedTextures.items)}contextChange(t){this._gpu=t}initSource(t){return t._gpuData[this._renderer.uid]?.gpuTexture||this._initSource(t)}_initSource(t){if(t.autoGenerateMipmaps){let c=Math.max(t.pixelWidth,t.pixelHeight);t.mipLevelCount=Math.floor(Math.log2(c))+1}let e;t.sampleCount>1?(e=GPUTextureUsage.RENDER_ATTACHMENT,t.transient&&this._renderer.device.extensions.transientAttachment&&(e|=GPUTextureUsage.TRANSIENT_ATTACHMENT)):(e=GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST,t.uploadMethodId!=="compressed"&&(e|=GPUTextureUsage.RENDER_ATTACHMENT,e|=GPUTextureUsage.COPY_SRC));let r=fu[t.format]||{blockBytes:4,blockWidth:1,blockHeight:1},s=Math.ceil(t.pixelWidth/r.blockWidth)*r.blockWidth,n=Math.ceil(t.pixelHeight/r.blockHeight)*r.blockHeight,o={label:t.label,size:{width:s,height:n,depthOrArrayLayers:t.arrayLayerCount},format:t.format,sampleCount:t.sampleCount,mipLevelCount:t.mipLevelCount,dimension:t.dimension,usage:e},a=this._gpu.device.createTexture(o);return t._gpuData[this._renderer.uid]=new mu(a),this._managedTextures.add(t)&&(t.on("update",this.onSourceUpdate,this),t.on("resize",this.onSourceResize,this),t.on("updateMipmaps",this.onUpdateMipmaps,this)),this.onSourceUpdate(t),a}onSourceUpdate(t){let e=this.getGpuSource(t);e&&(this._uploads[t.uploadMethodId]&&this._uploads[t.uploadMethodId].upload(t,e,this._gpu),t.autoGenerateMipmaps&&t.mipLevelCount>1&&this.onUpdateMipmaps(t))}onUpdateMipmaps(t){this._mipmapGenerator||(this._mipmapGenerator=new Ya(this._gpu.device));let e=this.getGpuSource(t);this._mipmapGenerator.generateMipmap(e)}onSourceUnload(t){t.off("update",this.onSourceUpdate,this),t.off("resize",this.onSourceResize,this),t.off("updateMipmaps",this.onUpdateMipmaps,this)}onSourceResize(t){t._gcLastUsed=this._renderer.gc.now;let e=t._gpuData[this._renderer.uid],r=e?.gpuTexture;r?(r.width!==t.pixelWidth||r.height!==t.pixelHeight)&&(e.destroy(),this._bindGroupHash[t.uid]=null,t._gpuData[this._renderer.uid]=null,this.initSource(t)):this.initSource(t)}_initSampler(t){return this._gpuSamplers[t._resourceId]=this._gpu.device.createSampler(t),this._gpuSamplers[t._resourceId]}getGpuSampler(t){return this._gpuSamplers[t._resourceId]||this._initSampler(t)}getGpuSource(t){return t._gcLastUsed=this._renderer.gc.now,t._gpuData[this._renderer.uid]?.gpuTexture||this.initSource(t)}getTextureBindGroup(t){return this._bindGroupHash[t.uid]||this._createTextureBindGroup(t)}_createTextureBindGroup(t){let e=t.source;return this._bindGroupHash[t.uid]=new Vt({0:e,1:e.style,2:new Ct({uTextureMatrix:{type:"mat3x3<f32>",value:t.textureMatrix.mapCoord}})}),this._bindGroupHash[t.uid]}getTextureView(t,e){var r;let s=t.source;s._gcLastUsed=this._renderer.gc.now;let n=s._gpuData[this._renderer.uid];n||(this.initSource(s),n=s._gpuData[this._renderer.uid]);let o=e?sy(e):0;return(r=n.textureViews)[o]||(r[o]=n.gpuTexture.createView({dimension:s.viewDimension,...e})),n.textureViews[o]}getTextureRenderTargetView(t,e=0,r=0,s){var n;let o=t.source;o._gcLastUsed=this._renderer.gc.now;let a=o._gpuData[this._renderer.uid];a||(this.initSource(o),a=o._gpuData[this._renderer.uid]);let l=r*(o.mipLevelCount||1)+e+1;return s&&(l=`${l}.${sy(s)}`),(n=a.textureViews)[l]||(n[l]=a.gpuTexture.createView({dimension:"2d",baseMipLevel:e,mipLevelCount:1,baseArrayLayer:r,arrayLayerCount:1,...s})),a.textureViews[l]}generateCanvas(t){let e=this._renderer,r=e.gpu.device.createCommandEncoder(),s=W.get().createCanvas();s.width=t.source.pixelWidth,s.height=t.source.pixelHeight;let n=s.getContext("webgpu");return n.configure({device:e.gpu.device,usage:GPUTextureUsage.COPY_DST|GPUTextureUsage.COPY_SRC,format:W.get().getNavigator().gpu.getPreferredCanvasFormat(),alphaMode:"premultiplied"}),r.copyTextureToTexture({texture:e.texture.getGpuSource(t.source),origin:{x:0,y:0}},{texture:n.getCurrentTexture()},{width:s.width,height:s.height}),e.gpu.device.queue.submit([r.finish()]),s}getPixels(t){let e=this.generateCanvas(t),r=rr.getOptimalCanvasAndContext(e.width,e.height),s=r.context;s.drawImage(e,0,0);let{width:n,height:o}=e,a=s.getImageData(0,0,n,o),l=new Uint8ClampedArray(a.data.buffer);return rr.returnCanvasAndContext(r),{pixels:l,width:n,height:o}}destroy(){this._managedTextures.destroy();for(let t of Object.keys(this._bindGroupHash)){let e=Number(t);this._bindGroupHash[e]?.destroy()}this._renderer=null,this._gpu=null,this._mipmapGenerator=null,this._gpuSamplers=null,this._bindGroupHash=null}};gu.extension={type:[y.WebGPUSystem],name:"texture"};gu.uploadExtensions=Object.create(null);xu=gu;z.handleByMap(y.TextureUploaderWebGPU,xu.uploadExtensions)});var hy={};zl(hy,{WebGPURenderer:()=>_u});var FT,UT,DT,ay,ly,cy,_u,uy=p(()=>{P();sx();ax();lx();Vr();La();Ne();g_();x_();__();y_();b_();v_();S_();hu();R_();D_();V_();j_();Y_();oy();FT=[...Yi,Qr,vn,$i,Sn,yn,xu,An,Rn,kn,Mn,bn,Tn,_n],UT=[...Da,En],DT=[Zs,Ks,qs],ay=[],ly=[],cy=[];z.handleByNamedList(y.WebGPUSystem,ay);z.handleByNamedList(y.WebGPUPipes,ly);z.handleByNamedList(y.WebGPUPipesAdaptor,cy);z.add(...FT,...UT,...DT);_u=class extends Te{constructor(){let t={name:"webgpu",type:Lt.WEBGPU,systems:ay,renderPipes:ly,renderPipeAdaptors:cy};super(t)}}});var Bn,dy=p(()=>{P();ot();Di();ba();Ta();$s();Ni();Wh();gr();me();Bn=class{contextChange(t){let e=new Ct({uColor:{value:new Float32Array([1,1,1,1]),type:"vec4<f32>"},uTransformMatrix:{value:new k,type:"mat3x3<f32>"},uRound:{value:0,type:"f32"}}),r=t.limits.maxBatchableTextures,s=Ui({name:"graphics",bits:[ya,Sa(r),wa,Oi]});this.shader=new te({glProgram:s,resources:{localUniforms:e,batchSamplers:ka(r)}})}execute(t,e){let r=e.context,s=r.customShader||this.shader,n=t.renderer,o=n.graphicsContext,{batcher:a,instructions:l}=o.getContextRenderData(r);s.groups[0]=n.globalUniforms.bindGroup,n.state.set(t.state),n.shader.bind(s),n.geometry.bind(a.geometry,s.glProgram);let c=l.instructions;for(let h=0;h<l.instructionSize;h++){let u=c[h];if(u.size){for(let d=0;d<u.textures.count;d++)n.texture.bind(u.textures.textures[d],d);n.geometry.draw(u.topology,u.size,u.start)}}}destroy(){this.shader.destroy(!0),this.shader=null}};Bn.extension={type:[y.WebGLPipesAdaptor],name:"graphics"}});var In,fy=p(()=>{P();ot();Di();$s();Ni();Ah();gr();gt();ht();In=class{init(){let t=Ui({name:"mesh",bits:[wa,ox,Oi]});this._shader=new te({glProgram:t,resources:{uTexture:F.EMPTY.source,textureUniforms:{uTextureMatrix:{type:"mat3x3<f32>",value:new k}}}})}execute(t,e){let r=t.renderer,s=e._shader;if(s){if(!s.glProgram){L("Mesh shader has no glProgram",e.shader);return}}else{s=this._shader;let n=e.texture,o=n.source;s.resources.uTexture=o,s.resources.uSampler=o.style,s.resources.textureUniforms.uniforms.uTextureMatrix=n.textureMatrix.mapCoord}s.groups[100]=r.globalUniforms.bindGroup,s.groups[101]=t.localUniformsBindGroup,r.encoder.draw({geometry:e._geometry,shader:s,state:e.state})}destroy(){this._shader.destroy(!0),this._shader=null}};In.extension={type:[y.WebGLPipesAdaptor],name:"mesh"}});var Gn,py=p(()=>{P();Be();Gn=class{constructor(){this._tempState=Ot.for2d(),this._didUploadHash={}}init(t){t.renderer.runners.contextChange.add(this)}contextChange(){this._didUploadHash={}}start(t,e,r){let s=t.renderer,n=this._didUploadHash[r.uid];s.shader.bind(r,n),n||(this._didUploadHash[r.uid]=!0),s.shader.updateUniformGroup(s.globalUniforms.uniformGroup),s.geometry.bind(e,r.glProgram)}execute(t,e){let r=t.renderer;this._tempState.blendMode=e.blendMode,r.state.set(this._tempState);let s=e.textures.textures;for(let n=0;n<e.textures.count;n++)r.texture.bind(s[n],n);r.geometry.draw(e.topology,e.size,e.start)}};Gn.extension={type:[y.WebGLPipesAdaptor],name:"batch"}});var Fn,my=p(()=>{"use strict";Fn=(i=>(i[i.ELEMENT_ARRAY_BUFFER=34963]="ELEMENT_ARRAY_BUFFER",i[i.ARRAY_BUFFER=34962]="ARRAY_BUFFER",i[i.UNIFORM_BUFFER=35345]="UNIFORM_BUFFER",i))(Fn||{})});var $a,gy=p(()=>{"use strict";$a=class{constructor(t,e){this._lastBindBaseLocation=-1,this._lastBindCallId=-1,this.buffer=t||null,this.updateID=-1,this.byteLength=-1,this.type=e}destroy(){this.buffer=null,this.updateID=-1,this.byteLength=-1,this.type=-1,this._lastBindBaseLocation=-1,this._lastBindCallId=-1}}});var Un,xy=p(()=>{P();Ie();ir();my();gy();Un=class{constructor(t){this._boundBufferBases=Object.create(null),this._minBaseLocation=0,this._nextBindBaseIndex=this._minBaseLocation,this._bindCallId=0,this._renderer=t,this._managedBuffers=new kt({renderer:t,type:"resource",onUnload:this.onBufferUnload.bind(this),name:"glBuffer"})}destroy(){this._managedBuffers.destroy(),this._renderer=null,this._gl=null,this._boundBufferBases={}}contextChange(){this._gl=this._renderer.gl,this.destroyAll(!0),this._maxBindings=this._renderer.limits.maxUniformBindings}getGlBuffer(t){return t._gcLastUsed=this._renderer.gc.now,t._gpuData[this._renderer.uid]||this.createGLBuffer(t)}bind(t){let{_gl:e}=this,r=this.getGlBuffer(t);e.bindBuffer(r.type,r.buffer)}bindBufferBase(t,e){let{_gl:r}=this;this._boundBufferBases[e]!==t&&(this._boundBufferBases[e]=t,t._lastBindBaseLocation=e,r.bindBufferBase(r.UNIFORM_BUFFER,e,t.buffer))}nextBindBase(t){this._bindCallId++,this._minBaseLocation=0,t&&(this._boundBufferBases[0]=null,this._minBaseLocation=1,this._nextBindBaseIndex<1&&(this._nextBindBaseIndex=1))}freeLocationForBufferBase(t){let e=this.getLastBindBaseLocation(t);if(e>=this._minBaseLocation)return t._lastBindCallId=this._bindCallId,e;let r=0,s=this._nextBindBaseIndex;for(;r<2;){s>=this._maxBindings&&(s=this._minBaseLocation,r++);let n=this._boundBufferBases[s];if(n&&n._lastBindCallId===this._bindCallId){s++;continue}break}return e=s,this._nextBindBaseIndex=s+1,r>=2?-1:(t._lastBindCallId=this._bindCallId,this._boundBufferBases[e]=null,e)}getLastBindBaseLocation(t){let e=t._lastBindBaseLocation;return this._boundBufferBases[e]===t?e:-1}bindBufferRange(t,e,r,s){let{_gl:n}=this;r||(r=0),e||(e=0),this._boundBufferBases[e]=null,n.bindBufferRange(n.UNIFORM_BUFFER,e||0,t.buffer,r*256,s||256)}updateBuffer(t){let{_gl:e}=this,r=this.getGlBuffer(t);if(t._updateID===r.updateID)return r;r.updateID=t._updateID,e.bindBuffer(r.type,r.buffer);let s=t.data,n=t.descriptor.usage&tt.STATIC?e.STATIC_DRAW:e.DYNAMIC_DRAW;return s?r.byteLength>=s.byteLength?e.bufferSubData(r.type,t._updateOffset,s,t._updateOffset/s.BYTES_PER_ELEMENT,(t._updateSize||s.byteLength)/s.BYTES_PER_ELEMENT):(r.byteLength=s.byteLength,e.bufferData(r.type,s,n)):(r.byteLength=t.descriptor.size,e.bufferData(r.type,r.byteLength,n)),r}destroyAll(t=!1){this._managedBuffers.removeAll(t)}onBufferUnload(t,e=!1){let r=t._gpuData[this._renderer.uid];r&&(e||this._gl.deleteBuffer(r.buffer))}createGLBuffer(t){let{_gl:e}=this,r=Fn.ARRAY_BUFFER;t.descriptor.usage&tt.INDEX?r=Fn.ELEMENT_ARRAY_BUFFER:t.descriptor.usage&tt.UNIFORM&&(r=Fn.UNIFORM_BUFFER);let s=new $a(e.createBuffer(),r);return t._gpuData[this._renderer.uid]=s,this._managedBuffers.add(t),s}resetState(){this._boundBufferBases=Object.create(null)}};Un.extension={type:[y.WebGLSystem],name:"buffer"}});var yu,yy,by=p(()=>{xt();P();ht();yu=class _y{constructor(t){this.supports={uint32Indices:!0,uniformBufferObject:!0,vertexArrayObject:!0,srgbTextures:!0,nonPowOf2wrapping:!0,msaa:!0,nonPowOf2mipmaps:!0},this._renderer=t,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(t){this.gl=t,this._renderer.gl=t}init(t){t={..._y.defaultOptions,...t};let e=this.multiView=t.multiView;if(t.context&&e&&(L("Renderer created with both a context and multiview enabled. Disabling multiView as both cannot work together."),e=!1),e?this.canvas=W.get().createCanvas(this._renderer.canvas.width,this._renderer.canvas.height):this.canvas=this._renderer.view.canvas,t.context)this.initFromContext(t.context);else{let r=this._renderer.background.alpha<1,s=t.premultipliedAlpha??!0,n=t.antialias&&!this._renderer.backBuffer.useBackBuffer;this.createContext(t.preferWebGLVersion,{alpha:r,premultipliedAlpha:s,antialias:n,stencil:!0,preserveDrawingBuffer:t.preserveDrawingBuffer,powerPreference:t.powerPreference??"default"})}}ensureCanvasSize(t){if(!this.multiView){t!==this.canvas&&L("multiView is disabled, but targetCanvas is not the main canvas");return}let{canvas:e}=this;(e.width<t.width||e.height<t.height)&&(e.width=Math.max(t.width,t.width),e.height=Math.max(t.height,t.height))}initFromContext(t){this.gl=t,this.webGLVersion=t instanceof W.get().getWebGLRenderingContext()?1:2,this.getExtensions(),this.validateContext(t),this._renderer.runners.contextChange.emit(t);let e=this._renderer.view.canvas;e.addEventListener("webglcontextlost",this.handleContextLost,!1),e.addEventListener("webglcontextrestored",this.handleContextRestored,!1)}createContext(t,e){let r,s=this.canvas;if(t===2&&(r=s.getContext("webgl2",e)),!r&&(r=s.getContext("webgl",e),!r))throw new Error("This browser does not support WebGL. Try using the canvas renderer");this.gl=r,this.initFromContext(this.gl)}getExtensions(){let{gl:t}=this,e={anisotropicFiltering:t.getExtension("EXT_texture_filter_anisotropic"),floatTextureLinear:t.getExtension("OES_texture_float_linear"),s3tc:t.getExtension("WEBGL_compressed_texture_s3tc"),s3tc_sRGB:t.getExtension("WEBGL_compressed_texture_s3tc_srgb"),etc:t.getExtension("WEBGL_compressed_texture_etc"),etc1:t.getExtension("WEBGL_compressed_texture_etc1"),pvrtc:t.getExtension("WEBGL_compressed_texture_pvrtc")||t.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc"),atc:t.getExtension("WEBGL_compressed_texture_atc"),astc:t.getExtension("WEBGL_compressed_texture_astc"),bptc:t.getExtension("EXT_texture_compression_bptc"),rgtc:t.getExtension("EXT_texture_compression_rgtc"),loseContext:t.getExtension("WEBGL_lose_context")};if(this.webGLVersion===1)this.extensions={...e,drawBuffers:t.getExtension("WEBGL_draw_buffers"),depthTexture:t.getExtension("WEBGL_depth_texture"),vertexArrayObject:t.getExtension("OES_vertex_array_object")||t.getExtension("MOZ_OES_vertex_array_object")||t.getExtension("WEBKIT_OES_vertex_array_object"),uint32ElementIndex:t.getExtension("OES_element_index_uint"),floatTexture:t.getExtension("OES_texture_float"),floatTextureLinear:t.getExtension("OES_texture_float_linear"),textureHalfFloat:t.getExtension("OES_texture_half_float"),textureHalfFloatLinear:t.getExtension("OES_texture_half_float_linear"),vertexAttribDivisorANGLE:t.getExtension("ANGLE_instanced_arrays"),srgb:t.getExtension("EXT_sRGB")};else{this.extensions={...e,colorBufferFloat:t.getExtension("EXT_color_buffer_float")};let r=t.getExtension("WEBGL_provoking_vertex");r&&r.provokingVertexWEBGL(r.FIRST_VERTEX_CONVENTION_WEBGL)}}handleContextLost(t){t.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 t=this._renderer.view.canvas;this._renderer=null,t.removeEventListener("webglcontextlost",this.handleContextLost),t.removeEventListener("webglcontextrestored",this.handleContextRestored),this.gl.useProgram(null),this.extensions.loseContext?.loseContext()}forceContextLoss(){this.extensions.loseContext?.loseContext(),this._contextLossForced=!0}validateContext(t){let e=t.getContextAttributes();e&&!e.stencil&&L("Provided WebGL context does not have a stencil buffer, masks may not render correctly");let r=this.supports,s=this.webGLVersion===2,n=this.extensions;r.uint32Indices=s||!!n.uint32ElementIndex,r.uniformBufferObject=s,r.vertexArrayObject=s||!!n.vertexArrayObject,r.srgbTextures=s||!!n.srgb,r.nonPowOf2wrapping=s,r.nonPowOf2mipmaps=s,r.msaa=s,r.uint32Indices||L("Provided WebGL context does not support 32 index buffer, large scenes may not render correctly")}};yu.extension={type:[y.WebGLSystem],name:"context"};yu.defaultOptions={context:null,premultipliedAlpha:!0,preserveDrawingBuffer:!1,powerPreference:void 0,preferWebGLVersion:2,multiView:!1};yy=yu});var qa,Dn,at,Ka=p(()=>{"use strict";qa=(i=>(i[i.RGBA=6408]="RGBA",i[i.RGB=6407]="RGB",i[i.RG=33319]="RG",i[i.RED=6403]="RED",i[i.RGBA_INTEGER=36249]="RGBA_INTEGER",i[i.RGB_INTEGER=36248]="RGB_INTEGER",i[i.RG_INTEGER=33320]="RG_INTEGER",i[i.RED_INTEGER=36244]="RED_INTEGER",i[i.ALPHA=6406]="ALPHA",i[i.LUMINANCE=6409]="LUMINANCE",i[i.LUMINANCE_ALPHA=6410]="LUMINANCE_ALPHA",i[i.DEPTH_COMPONENT=6402]="DEPTH_COMPONENT",i[i.DEPTH_STENCIL=34041]="DEPTH_STENCIL",i))(qa||{}),Dn=(i=>(i[i.TEXTURE_2D=3553]="TEXTURE_2D",i[i.TEXTURE_CUBE_MAP=34067]="TEXTURE_CUBE_MAP",i[i.TEXTURE_2D_ARRAY=35866]="TEXTURE_2D_ARRAY",i[i.TEXTURE_CUBE_MAP_POSITIVE_X=34069]="TEXTURE_CUBE_MAP_POSITIVE_X",i[i.TEXTURE_CUBE_MAP_NEGATIVE_X=34070]="TEXTURE_CUBE_MAP_NEGATIVE_X",i[i.TEXTURE_CUBE_MAP_POSITIVE_Y=34071]="TEXTURE_CUBE_MAP_POSITIVE_Y",i[i.TEXTURE_CUBE_MAP_NEGATIVE_Y=34072]="TEXTURE_CUBE_MAP_NEGATIVE_Y",i[i.TEXTURE_CUBE_MAP_POSITIVE_Z=34073]="TEXTURE_CUBE_MAP_POSITIVE_Z",i[i.TEXTURE_CUBE_MAP_NEGATIVE_Z=34074]="TEXTURE_CUBE_MAP_NEGATIVE_Z",i))(Dn||{}),at=(i=>(i[i.UNSIGNED_BYTE=5121]="UNSIGNED_BYTE",i[i.UNSIGNED_SHORT=5123]="UNSIGNED_SHORT",i[i.UNSIGNED_SHORT_5_6_5=33635]="UNSIGNED_SHORT_5_6_5",i[i.UNSIGNED_SHORT_4_4_4_4=32819]="UNSIGNED_SHORT_4_4_4_4",i[i.UNSIGNED_SHORT_5_5_5_1=32820]="UNSIGNED_SHORT_5_5_5_1",i[i.UNSIGNED_INT=5125]="UNSIGNED_INT",i[i.UNSIGNED_INT_10F_11F_11F_REV=35899]="UNSIGNED_INT_10F_11F_11F_REV",i[i.UNSIGNED_INT_2_10_10_10_REV=33640]="UNSIGNED_INT_2_10_10_10_REV",i[i.UNSIGNED_INT_24_8=34042]="UNSIGNED_INT_24_8",i[i.UNSIGNED_INT_5_9_9_9_REV=35902]="UNSIGNED_INT_5_9_9_9_REV",i[i.BYTE=5120]="BYTE",i[i.SHORT=5122]="SHORT",i[i.INT=5124]="INT",i[i.FLOAT=5126]="FLOAT",i[i.FLOAT_32_UNSIGNED_INT_24_8_REV=36269]="FLOAT_32_UNSIGNED_INT_24_8_REV",i[i.HALF_FLOAT=36193]="HALF_FLOAT",i))(at||{})});function Sy(i){return vy[i]??vy.float32}var vy,Ty=p(()=>{Ka();vy={uint8x2:at.UNSIGNED_BYTE,uint8x4:at.UNSIGNED_BYTE,sint8x2:at.BYTE,sint8x4:at.BYTE,unorm8x2:at.UNSIGNED_BYTE,unorm8x4:at.UNSIGNED_BYTE,snorm8x2:at.BYTE,snorm8x4:at.BYTE,uint16x2:at.UNSIGNED_SHORT,uint16x4:at.UNSIGNED_SHORT,sint16x2:at.SHORT,sint16x4:at.SHORT,unorm16x2:at.UNSIGNED_SHORT,unorm16x4:at.UNSIGNED_SHORT,snorm16x2:at.SHORT,snorm16x4:at.SHORT,float16x2:at.HALF_FLOAT,float16x4:at.HALF_FLOAT,float32:at.FLOAT,float32x2:at.FLOAT,float32x3:at.FLOAT,float32x4:at.FLOAT,uint32:at.UNSIGNED_INT,uint32x2:at.UNSIGNED_INT,uint32x3:at.UNSIGNED_INT,uint32x4:at.UNSIGNED_INT,sint32:at.INT,sint32x2:at.INT,sint32x3:at.INT,sint32x4:at.INT}});var LT,bu,Ln,wy=p(()=>{P();Ie();pr();uu();Ty();LT={"point-list":0,"line-list":1,"line-strip":3,"triangle-list":4,"triangle-strip":5},bu=class{constructor(){this.vaoCache=Object.create(null)}destroy(){this.vaoCache=Object.create(null)}},Ln=class{constructor(t){this._renderer=t,this._activeGeometry=null,this._activeVao=null,this.hasVao=!0,this.hasInstance=!0,this._managedGeometries=new kt({renderer:t,type:"resource",onUnload:this.onGeometryUnload.bind(this),name:"glGeometry"})}contextChange(){let t=this.gl=this._renderer.gl;if(!this._renderer.context.supports.vertexArrayObject)throw new Error("[PixiJS] Vertex Array Objects are not supported on this device");this.destroyAll(!0);let e=this._renderer.context.extensions.vertexArrayObject;e&&(t.createVertexArray=()=>e.createVertexArrayOES(),t.bindVertexArray=s=>e.bindVertexArrayOES(s),t.deleteVertexArray=s=>e.deleteVertexArrayOES(s));let r=this._renderer.context.extensions.vertexAttribDivisorANGLE;r&&(t.drawArraysInstanced=(s,n,o,a)=>{r.drawArraysInstancedANGLE(s,n,o,a)},t.drawElementsInstanced=(s,n,o,a,l)=>{r.drawElementsInstancedANGLE(s,n,o,a,l)},t.vertexAttribDivisor=(s,n)=>r.vertexAttribDivisorANGLE(s,n)),this._activeGeometry=null,this._activeVao=null}bind(t,e){let r=this.gl;this._activeGeometry=t;let s=this.getVao(t,e);this._activeVao!==s&&(this._activeVao=s,r.bindVertexArray(s)),this.updateBuffers()}resetState(){this.unbind()}updateBuffers(){let t=this._activeGeometry,e=this._renderer.buffer;for(let r=0;r<t.buffers.length;r++){let s=t.buffers[r];e.updateBuffer(s)}t._gcLastUsed=this._renderer.gc.now}checkCompatibility(t,e){let r=t.attributes,s=e._attributeData;for(let n in s)if(!r[n])throw new Error(`shader and geometry incompatible, geometry missing the "${n}" attribute`)}getSignature(t,e){let r=t.attributes,s=e._attributeData,n=["g",t.uid];for(let o in r)s[o]&&n.push(o,s[o].location);return n.join("-")}getVao(t,e){return t._gpuData[this._renderer.uid]?.vaoCache[e._key]||this.initGeometryVao(t,e)}initGeometryVao(t,e,r=!0){let s=this._renderer.gl,n=this._renderer.buffer;this._renderer.shader._getProgramData(e),this.checkCompatibility(t,e);let o=this.getSignature(t,e),a=t._gpuData[this._renderer.uid];a||(a=new bu,t._gpuData[this._renderer.uid]=a,this._managedGeometries.add(t));let l=a.vaoCache,c=l[o];if(c)return l[e._key]=c,c;Pn(t,e._attributeData);let h=t.buffers;c=s.createVertexArray(),s.bindVertexArray(c);for(let u=0;u<h.length;u++){let d=h[u];n.bind(d)}return this.activateVao(t,e),l[e._key]=c,l[o]=c,s.bindVertexArray(null),c}onGeometryUnload(t,e=!1){let r=t._gpuData[this._renderer.uid];if(!r)return;let s=r.vaoCache;if(!e)for(let n in s)this._activeVao!==s[n]&&this.resetState(),this.gl.deleteVertexArray(s[n])}destroyAll(t=!1){this._managedGeometries.removeAll(t)}activateVao(t,e){let r=this._renderer.gl,s=this._renderer.buffer,n=t.attributes;t.indexBuffer&&s.bind(t.indexBuffer);let o=null;for(let a in n){let l=n[a],c=l.buffer,h=s.getGlBuffer(c),u=e._attributeData[a];if(u){o!==h&&(s.bind(c),o=h);let d=u.location;r.enableVertexAttribArray(d);let f=Jt(l.format),m=Sy(l.format);if(u.format?.substring(1,4)==="int"?r.vertexAttribIPointer(d,f.size,m,l.stride,l.offset):r.vertexAttribPointer(d,f.size,m,f.normalised,l.stride,l.offset),l.instance)if(this.hasInstance){let g=l.divisor??1;r.vertexAttribDivisor(d,g)}else throw new Error("geometry error, GPU Instancing is not supported on this device")}}}draw(t,e,r,s){let{gl:n}=this._renderer,o=this._activeGeometry,a=LT[t||o.topology];if(s??(s=o.instanceCount),o.indexBuffer){let l=o.indexBuffer.data.BYTES_PER_ELEMENT,c=l===2?n.UNSIGNED_SHORT:n.UNSIGNED_INT;s!==1?n.drawElementsInstanced(a,e||o.indexBuffer.data.length,c,(r||0)*l,s):n.drawElements(a,e||o.indexBuffer.data.length,c,(r||0)*l)}else s!==1?n.drawArraysInstanced(a,r||0,e||o.vertexCount,s):n.drawArrays(a,r||0,e||o.vertexCount);return this}unbind(){this.gl.bindVertexArray(null),this._activeVao=null,this._activeGeometry=null}destroy(){this._managedGeometries.destroy(),this._renderer=null,this.gl=null,this._activeVao=null,this._activeGeometry=null}};Ln.extension={type:[y.WebGLSystem],name:"geometry"}});var OT,vu,Ey,Py=p(()=>{P();ht();zr();gr();Be();$t();gt();Nr();OT=new ue({attributes:{aPosition:[-1,-1,3,-1,-1,3]}}),vu=class Cy{constructor(t){this.useBackBuffer=!1,this._useBackBufferThisRender=!1,this._renderer=t}init(t={}){let{useBackBuffer:e,antialias:r}={...Cy.defaultOptions,...t};this.useBackBuffer=e,this._antialias=r,this._renderer.context.supports.msaa||(L("antialiasing, is not supported on when using the back buffer"),this._antialias=!1),this._state=Ot.for2d();let s=new be({vertex:`
752
752
  attribute vec2 aPosition;
753
753
  out vec2 vUv;
754
754
 
@@ -767,7 +767,7 @@ fn mainFragment(
767
767
 
768
768
  void main() {
769
769
  finalColor = texture(uTexture, vUv);
770
- }`,name:"big-triangle"});this._bigTriangleShader=new te({glProgram:s,resources:{uTexture:U.WHITE.source}})}renderStart(t){let e=this._renderer.renderTarget.getRenderTarget(t.target);if(this._useBackBufferThisRender=this.useBackBuffer&&!!e.isRoot,this._useBackBufferThisRender){let r=this._renderer.renderTarget.getRenderTarget(t.target);this._targetTexture=r.colorTexture,t.target=this._getBackBufferTexture(r.colorTexture)}}renderEnd(){this._presentBackBuffer()}_presentBackBuffer(){let t=this._renderer;t.renderTarget.finishRenderPass(),this._useBackBufferThisRender&&(t.renderTarget.bind({target:this._targetTexture,clear:!1}),this._bigTriangleShader.resources.uTexture=this._backBufferTexture.source,t.encoder.draw({geometry:UT,shader:this._bigTriangleShader,state:this._state}))}_getBackBufferTexture(t){return this._backBufferTexture=this._backBufferTexture||new U({source:new st({width:t.width,height:t.height,resolution:t._resolution,antialias:this._antialias})}),this._backBufferTexture.source.resize(t.width,t.height,t._resolution),this._backBufferTexture}destroy(){this._backBufferTexture&&(this._backBufferTexture.destroy(),this._backBufferTexture=null)}};vu.extension={type:[y.WebGLSystem],name:"backBuffer",priority:1};vu.defaultOptions={useBackBuffer:!1};wy=vu});var Ln,Ey=p(()=>{P();Ln=class{constructor(t){this._colorMaskCache=15,this._renderer=t}setMask(t){this._colorMaskCache!==t&&(this._colorMaskCache=t,this._renderer.gl.colorMask(!!(t&8),!!(t&4),!!(t&2),!!(t&1)))}};Ln.extension={type:[y.WebGLSystem],name:"colorMask"}});var On,Py=p(()=>{P();On=class{constructor(t){this.commandFinished=Promise.resolve(),this._renderer=t}setGeometry(t,e){this._renderer.geometry.bind(t,e.glProgram)}finishRenderPass(){}draw(t){let e=this._renderer,{geometry:r,shader:s,state:n,skipSync:o,topology:a,size:l,start:c,instanceCount:h}=t;e.shader.bind(s,o),e.geometry.bind(r,e.shader._activeProgram),n&&e.state.set(n),e.geometry.draw(a,l,c,h??r.instanceCount)}destroy(){this._renderer=null}};On.extension={type:[y.WebGLSystem],name:"encoder"}});var Nn,My=p(()=>{P();zh();Nn=class{constructor(t){this._renderer=t}contextChange(){let t=this._renderer.gl;this.maxTextures=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS),this.maxBatchableTextures=Ea(this.maxTextures,t);let e=this._renderer.context.webGLVersion===2;this.maxUniformBindings=e?t.getParameter(t.MAX_UNIFORM_BUFFER_BINDINGS):0}destroy(){}};Nn.extension={type:[y.WebGLSystem],name:"limits"}});var zn,Ay=p(()=>{P();du();$r();zn=class{constructor(t){this._stencilCache={enabled:!1,stencilReference:0,stencilMode:vt.NONE},this._renderTargetStencilState=Object.create(null),t.renderTarget.onRenderTargetChange.add(this)}contextChange(t){this._gl=t,this._comparisonFuncMapping={always:t.ALWAYS,never:t.NEVER,equal:t.EQUAL,"not-equal":t.NOTEQUAL,less:t.LESS,"less-equal":t.LEQUAL,greater:t.GREATER,"greater-equal":t.GEQUAL},this._stencilOpsMapping={keep:t.KEEP,zero:t.ZERO,replace:t.REPLACE,invert:t.INVERT,"increment-clamp":t.INCR,"decrement-clamp":t.DECR,"increment-wrap":t.INCR_WRAP,"decrement-wrap":t.DECR_WRAP},this.resetState()}onRenderTargetChange(t){if(this._activeRenderTarget===t)return;this._activeRenderTarget=t;let e=this._renderTargetStencilState[t.uid];e||(e=this._renderTargetStencilState[t.uid]={stencilMode:vt.DISABLED,stencilReference:0}),this.setStencilMode(e.stencilMode,e.stencilReference)}resetState(){this._stencilCache.enabled=!1,this._stencilCache.stencilMode=vt.NONE,this._stencilCache.stencilReference=0}setStencilMode(t,e){let r=this._renderTargetStencilState[this._activeRenderTarget.uid],s=this._gl,n=We[t],o=this._stencilCache;if(r.stencilMode=t,r.stencilReference=e,t===vt.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)),(t!==o.stencilMode||o.stencilReference!==e)&&(o.stencilMode=t,o.stencilReference=e,s.stencilFunc(this._comparisonFuncMapping[n.stencilBack.compare],e,255),s.stencilOp(s.KEEP,s.KEEP,this._stencilOpsMapping[n.stencilBack.passOp]))}};zn.extension={type:[y.WebGLSystem],name:"stencil"}});function Ry(i){let t=i.map(n=>({data:n,offset:0,size:0})),e=16,r=0,s=0;for(let n=0;n<t.length;n++){let o=t[n];if(r=Hn[o.data.type],!r)throw new Error(`Unknown type ${o.data.type}`);o.data.size>1&&(r=Math.max(r,e)*o.data.size);let a=r===12?16:r;o.size=r;let l=s%e;l>0&&e-l<a?s+=(e-l)%16:s+=(r-l%r)%r,o.offset=s,s+=r}return s=Math.ceil(s/16)*16,{uboElements:t,size:s}}var Hn,Ka=p(()=>{"use strict";Hn={f32:4,i32:4,"vec2<f32>":8,"vec3<f32>":12,"vec4<f32>":16,"vec2<i32>":8,"vec3<i32>":12,"vec4<i32>":16,u32:4,"vec2<u32>":8,"vec3<u32>":12,"vec4<u32>":16,"mat2x2<f32>":32,"mat3x3<f32>":48,"mat4x4<f32>":64}});function ky(i,t){let e=Math.max(Hn[i.data.type]/16,1),r=i.data.value.length/i.data.size,s=(4-r%4)%4,n=i.data.type.indexOf("i32")>=0?"dataInt32":"data";return`
770
+ }`,name:"big-triangle"});this._bigTriangleShader=new te({glProgram:s,resources:{uTexture:F.WHITE.source}})}renderStart(t){let e=this._renderer.renderTarget.getRenderTarget(t.target);if(this._useBackBufferThisRender=this.useBackBuffer&&!!e.isRoot,this._useBackBufferThisRender){let r=this._renderer.renderTarget.getRenderTarget(t.target);this._targetTexture=r.colorTexture,t.target=this._getBackBufferTexture(r.colorTexture)}}renderEnd(){this._presentBackBuffer()}_presentBackBuffer(){let t=this._renderer;t.renderTarget.finishRenderPass(),this._useBackBufferThisRender&&(t.renderTarget.bind({target:this._targetTexture,clear:!1}),this._bigTriangleShader.resources.uTexture=this._backBufferTexture.source,t.encoder.draw({geometry:OT,shader:this._bigTriangleShader,state:this._state}))}_getBackBufferTexture(t){return this._backBufferTexture=this._backBufferTexture||new F({source:new st({width:t.width,height:t.height,resolution:t._resolution,antialias:this._antialias})}),this._backBufferTexture.source.resize(t.width,t.height,t._resolution),this._backBufferTexture}destroy(){this._backBufferTexture&&(this._backBufferTexture.destroy(),this._backBufferTexture=null)}};vu.extension={type:[y.WebGLSystem],name:"backBuffer",priority:1};vu.defaultOptions={useBackBuffer:!1};Ey=vu});var On,My=p(()=>{P();On=class{constructor(t){this._colorMaskCache=15,this._renderer=t}setMask(t){this._colorMaskCache!==t&&(this._colorMaskCache=t,this._renderer.gl.colorMask(!!(t&8),!!(t&4),!!(t&2),!!(t&1)))}};On.extension={type:[y.WebGLSystem],name:"colorMask"}});var Nn,Ay=p(()=>{P();Nn=class{constructor(t){this.commandFinished=Promise.resolve(),this._renderer=t}setGeometry(t,e){this._renderer.geometry.bind(t,e.glProgram)}finishRenderPass(){}draw(t){let e=this._renderer,{geometry:r,shader:s,state:n,skipSync:o,topology:a,size:l,start:c,instanceCount:h}=t;e.shader.bind(s,o),e.geometry.bind(r,e.shader._activeProgram),n&&e.state.set(n),e.geometry.draw(a,l,c,h??r.instanceCount)}destroy(){this._renderer=null}};Nn.extension={type:[y.WebGLSystem],name:"encoder"}});var zn,Ry=p(()=>{P();zh();zn=class{constructor(t){this._renderer=t}contextChange(){let t=this._renderer.gl;this.maxTextures=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS),this.maxBatchableTextures=Pa(this.maxTextures,t);let e=this._renderer.context.webGLVersion===2;this.maxUniformBindings=e?t.getParameter(t.MAX_UNIFORM_BUFFER_BINDINGS):0}destroy(){}};zn.extension={type:[y.WebGLSystem],name:"limits"}});var Hn,ky=p(()=>{P();du();$r();Hn=class{constructor(t){this._stencilCache={enabled:!1,stencilReference:0,stencilMode:vt.NONE},this._renderTargetStencilState=Object.create(null),t.renderTarget.onRenderTargetChange.add(this)}contextChange(t){this._gl=t,this._comparisonFuncMapping={always:t.ALWAYS,never:t.NEVER,equal:t.EQUAL,"not-equal":t.NOTEQUAL,less:t.LESS,"less-equal":t.LEQUAL,greater:t.GREATER,"greater-equal":t.GEQUAL},this._stencilOpsMapping={keep:t.KEEP,zero:t.ZERO,replace:t.REPLACE,invert:t.INVERT,"increment-clamp":t.INCR,"decrement-clamp":t.DECR,"increment-wrap":t.INCR_WRAP,"decrement-wrap":t.DECR_WRAP},this.resetState()}onRenderTargetChange(t){if(this._activeRenderTarget===t)return;this._activeRenderTarget=t;let e=this._renderTargetStencilState[t.uid];e||(e=this._renderTargetStencilState[t.uid]={stencilMode:vt.DISABLED,stencilReference:0}),this.setStencilMode(e.stencilMode,e.stencilReference)}resetState(){this._stencilCache.enabled=!1,this._stencilCache.stencilMode=vt.NONE,this._stencilCache.stencilReference=0}setStencilMode(t,e){let r=this._renderTargetStencilState[this._activeRenderTarget.uid],s=this._gl,n=We[t],o=this._stencilCache;if(r.stencilMode=t,r.stencilReference=e,t===vt.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)),(t!==o.stencilMode||o.stencilReference!==e)&&(o.stencilMode=t,o.stencilReference=e,s.stencilFunc(this._comparisonFuncMapping[n.stencilBack.compare],e,255),s.stencilOp(s.KEEP,s.KEEP,this._stencilOpsMapping[n.stencilBack.passOp]))}};Hn.extension={type:[y.WebGLSystem],name:"stencil"}});function By(i){let t=i.map(n=>({data:n,offset:0,size:0})),e=16,r=0,s=0;for(let n=0;n<t.length;n++){let o=t[n];if(r=Wn[o.data.type],!r)throw new Error(`Unknown type ${o.data.type}`);o.data.size>1&&(r=Math.max(r,e)*o.data.size);let a=r===12?16:r;o.size=r;let l=s%e;l>0&&e-l<a?s+=(e-l)%16:s+=(r-l%r)%r,o.offset=s,s+=r}return s=Math.ceil(s/16)*16,{uboElements:t,size:s}}var Wn,Za=p(()=>{"use strict";Wn={f32:4,i32:4,"vec2<f32>":8,"vec3<f32>":12,"vec4<f32>":16,"vec2<i32>":8,"vec3<i32>":12,"vec4<i32>":16,u32:4,"vec2<u32>":8,"vec3<u32>":12,"vec4<u32>":16,"mat2x2<f32>":32,"mat3x3<f32>":48,"mat4x4<f32>":64}});function Iy(i,t){let e=Math.max(Wn[i.data.type]/16,1),r=i.data.value.length/i.data.size,s=(4-r%4)%4,n=i.data.type.indexOf("i32")>=0?"dataInt32":"data";return`
771
771
  v = uv.${i.data.name};
772
772
  offset += ${t};
773
773
 
@@ -783,7 +783,7 @@ fn mainFragment(
783
783
  }
784
784
  ${s!==0?`arrayOffset += ${s};`:""}
785
785
  }
786
- `}var By=p(()=>{Ka()});function Iy(i){return Na(i,lu,ky)}var Gy=p(()=>{au();cu();By()});var Jr,Su=p(()=>{P();La();Ka();Gy();Jr=class extends br{constructor(){super({createUboElements:Ry,generateUboSync:Iy})}};Jr.extension={type:[y.WebGLSystem],name:"ubo"}});var Za,Fy=p(()=>{"use strict";Za=class{constructor(){this.width=-1,this.height=-1,this.msaa=!1,this._attachedMipLevel=0,this._attachedLayer=0,this.msaaRenderBuffer=[]}}});var Qa,Uy=p(()=>{Yt();ht();fr();ki();Fy();Qa=class{constructor(){this._clearColorCache=[0,0,0,0],this._viewPortCache=new J,this._boundFramebuffer=void 0}init(t,e){this._renderer=t,this._renderTargetSystem=e,t.runners.contextChange.add(this)}contextChange(){this._clearColorCache=[0,0,0,0],this._viewPortCache=new J,this._boundFramebuffer=void 0;let t=this._renderer.gl;this._drawBuffersCache=[];for(let e=1;e<=16;e++)this._drawBuffersCache[e]=Array.from({length:e},(r,s)=>t.COLOR_ATTACHMENT0+s)}copyToTexture(t,e,r,s,n){let o=this._renderTargetSystem,a=this._renderer,l=o.getGpuRenderTarget(t),c=a.gl;return this.finishRenderPass(t),c.bindFramebuffer(c.FRAMEBUFFER,l.resolveTargetFramebuffer),this._boundFramebuffer=l.resolveTargetFramebuffer,a.texture.bind(e,0),c.copyTexSubImage2D(c.TEXTURE_2D,0,n.x,n.y,r.x,r.y,s.width,s.height),e}copyDepthTexture(t,e,r,s,n){let o=this._renderTargetSystem,a=this._renderer.gl;this.finishRenderPass(t);let l=o.getRenderTarget(e),c=o.getGpuRenderTarget(t),h=o.getGpuRenderTarget(l);a.bindFramebuffer(a.READ_FRAMEBUFFER,c.framebuffer),a.bindFramebuffer(a.DRAW_FRAMEBUFFER,h.framebuffer),this._boundFramebuffer=void 0,a.blitFramebuffer(r.x,r.y,r.x+s.width,r.y+s.height,n.x,n.y,n.x+s.width,n.y+s.height,a.DEPTH_BUFFER_BIT,a.NEAREST)}startRenderPass(t,e=!0,r,s,n=0,o=0){let l=this._renderTargetSystem.getGpuRenderTarget(t);if(o!==0&&this._renderer.context.webGLVersion<2)throw new Error("[RenderTargetSystem] Rendering to array layers requires WebGL2.");if(n>0){if(l.msaa)throw new Error("[RenderTargetSystem] Rendering to mip levels is not supported with MSAA render targets.");if(this._renderer.context.webGLVersion<2)throw new Error("[RenderTargetSystem] Rendering to mip levels requires WebGL2.")}t.colorAttachments.forEach(d=>{this._renderer.texture.unbind(d.texture)});let c=this._renderer.gl;this.bindFramebuffer(l.framebuffer),!t.isRoot&&t.colorAttachments.length>0&&(l._attachedMipLevel!==n||l._attachedLayer!==o)&&(t.colorAttachments.forEach((d,f)=>{let m=d.texture,g=this._renderer.texture.getGlSource(m);if(g.target===c.TEXTURE_2D){if(o!==0)throw new Error("[RenderTargetSystem] layer must be 0 when rendering to 2D textures in WebGL.");c.framebufferTexture2D(c.FRAMEBUFFER,c.COLOR_ATTACHMENT0+f,c.TEXTURE_2D,g.texture,n)}else if(g.target===c.TEXTURE_2D_ARRAY){if(this._renderer.context.webGLVersion<2)throw new Error("[RenderTargetSystem] Rendering to 2D array textures requires WebGL2.");c.framebufferTextureLayer(c.FRAMEBUFFER,c.COLOR_ATTACHMENT0+f,g.texture,n,o)}else if(g.target===c.TEXTURE_CUBE_MAP){if(o<0||o>5)throw new Error("[RenderTargetSystem] Cube map layer must be between 0 and 5.");c.framebufferTexture2D(c.FRAMEBUFFER,c.COLOR_ATTACHMENT0+f,c.TEXTURE_CUBE_MAP_POSITIVE_X+o,g.texture,n)}else throw new Error("[RenderTargetSystem] Unsupported texture target for render-to-layer in WebGL.")}),l._attachedMipLevel=n,l._attachedLayer=o),l.framebuffer&&(t.depthStencilAttachment?this._attachDepthStencilTexture(t,n,o):!l.depthStencilRenderBuffer&&(t.stencil||t.depth)&&this._initStencil(l)),t.colorAttachments.length>1&&this._setDrawBuffers(t,c);let h=s.y;t.isRoot&&(h=t.pixelHeight-s.height-s.y);let u=this._viewPortCache;(u.x!==s.x||u.y!==h||u.width!==s.width||u.height!==s.height)&&(u.x=s.x,u.y=h,u.width=s.width,u.height=s.height,c.viewport(s.x,h,s.width,s.height)),this.clear(t,e,r)}finishRenderPass(t){let r=this._renderTargetSystem.getGpuRenderTarget(t);if(!r.msaa||t.colorAttachments.length===0)return;let s=this._renderer.gl;s.bindFramebuffer(s.FRAMEBUFFER,r.resolveTargetFramebuffer),s.bindFramebuffer(s.READ_FRAMEBUFFER,r.framebuffer),s.blitFramebuffer(0,0,r.width,r.height,0,0,r.width,r.height,s.COLOR_BUFFER_BIT,s.NEAREST),s.bindFramebuffer(s.FRAMEBUFFER,r.framebuffer),this._boundFramebuffer=r.framebuffer}initGpuRenderTarget(t){let r=this._renderer.gl,s=new Za;s._attachedMipLevel=0,s._attachedLayer=0;let n=t.colorTexture;return n instanceof wt?(this._renderer.context.ensureCanvasSize(n.resource),s.framebuffer=null,s):(s.width=t.pixelWidth,s.height=t.pixelHeight,t.colorAttachments.length===0?this._initDepth(t,s):this._initColor(t,s),t.depthStencilAttachment&&this._attachDepthStencilTexture(t,0,0),r.bindFramebuffer(r.FRAMEBUFFER,null),this._boundFramebuffer=null,s)}destroyGpuRenderTarget(t){let e=this._renderer.gl;t.framebuffer&&(e.deleteFramebuffer(t.framebuffer),t.framebuffer=null),t.resolveTargetFramebuffer&&(e.deleteFramebuffer(t.resolveTargetFramebuffer),t.resolveTargetFramebuffer=null),t.depthStencilRenderBuffer&&(e.deleteRenderbuffer(t.depthStencilRenderBuffer),t.depthStencilRenderBuffer=null),t.msaaRenderBuffer.forEach(r=>{e.deleteRenderbuffer(r)}),t.msaaRenderBuffer=null}clear(t,e,r,s,n=0,o=0){if(!e)return;if(o!==0)throw new Error("[RenderTargetSystem] Clearing array layers is not supported in WebGL renderer.");let a=this._renderTargetSystem;if(typeof e=="boolean"&&(e=e?Et.ALL:Et.NONE),t.colorAttachments.length===0&&(e&=~Et.COLOR,!e))return;let l=this._renderer.gl,c=!!(e&Et.DEPTH)&&!this._renderer.state.depthMaskEnabled;if(e&Et.COLOR){r??(r=a.defaultClearColor);let h=this._clearColorCache,u=r;(h[0]!==u[0]||h[1]!==u[1]||h[2]!==u[2]||h[3]!==u[3])&&(h[0]=u[0],h[1]=u[1],h[2]=u[2],h[3]=u[3],l.clearColor(u[0],u[1],u[2],u[3]))}c&&l.depthMask(!0),l.clear(e),c&&l.depthMask(!1)}resizeGpuRenderTarget(t){if(t.isRoot)return;let e=this._renderTargetSystem.getGpuRenderTarget(t);e.width=t.pixelWidth,e.height=t.pixelHeight,t.colorAttachments.length>0&&this._resizeColor(t,e),e.depthStencilRenderBuffer&&this._resizeStencil(e),this._boundFramebuffer=void 0}_initColor(t,e){let r=this._renderer,s=r.gl,n=s.createFramebuffer();if(e.resolveTargetFramebuffer=n,s.bindFramebuffer(s.FRAMEBUFFER,n),t.colorAttachments.forEach((a,l)=>{let c=a.texture;c.antialias&&(r.context.supports.msaa?e.msaa=!0:L("[RenderTexture] Antialiasing on textures is not supported in WebGL1")),r.texture.bindSource(c,0);let h=r.texture.getGlSource(c),u=h.texture;if(h.target===s.TEXTURE_2D)s.framebufferTexture2D(s.FRAMEBUFFER,s.COLOR_ATTACHMENT0+l,s.TEXTURE_2D,u,0);else if(h.target===s.TEXTURE_2D_ARRAY){if(r.context.webGLVersion<2)throw new Error("[RenderTargetSystem] TEXTURE_2D_ARRAY requires WebGL2.");s.framebufferTextureLayer(s.FRAMEBUFFER,s.COLOR_ATTACHMENT0+l,u,0,0)}else if(h.target===s.TEXTURE_CUBE_MAP)s.framebufferTexture2D(s.FRAMEBUFFER,s.COLOR_ATTACHMENT0+l,s.TEXTURE_CUBE_MAP_POSITIVE_X,u,0);else throw new Error("[RenderTargetSystem] Unsupported texture target for framebuffer attachment.")}),e.msaa){let a=s.createFramebuffer();e.framebuffer=a,s.bindFramebuffer(s.FRAMEBUFFER,a),t.colorAttachments.forEach((l,c)=>{let h=s.createRenderbuffer();e.msaaRenderBuffer[c]=h})}else e.framebuffer=n;this._resizeColor(t,e)}_initDepth(t,e){let r=this._renderer;if(r.context.webGLVersion<2)throw new Error("[RenderTargetSystem] Depth-only render targets require WebGL2.");let s=r.gl,n=s.createFramebuffer();e.resolveTargetFramebuffer=n,e.framebuffer=n,s.bindFramebuffer(s.FRAMEBUFFER,n),s.drawBuffers([s.NONE]),s.readBuffer(s.NONE)}_resizeColor(t,e){let r=t.colorAttachments[0].texture;if(e._attachedMipLevel=0,e._attachedLayer=0,t.colorAttachments.forEach((s,n)=>{n!==0&&s.texture.resize(r.width,r.height,r._resolution)}),e.msaa){let s=this._renderer,n=s.gl,o=e.framebuffer;n.bindFramebuffer(n.FRAMEBUFFER,o),t.colorAttachments.forEach((a,l)=>{let c=a.texture;s.texture.bindSource(c,0);let u=s.texture.getGlSource(c).internalFormat,d=e.msaaRenderBuffer[l];n.bindRenderbuffer(n.RENDERBUFFER,d),n.renderbufferStorageMultisample(n.RENDERBUFFER,4,u,c.pixelWidth,c.pixelHeight),n.framebufferRenderbuffer(n.FRAMEBUFFER,n.COLOR_ATTACHMENT0+l,n.RENDERBUFFER,d)})}}_attachDepthStencilTexture(t,e,r){let s=this._renderer,n=s.gl,o=t.depthStencilAttachment.texture,a=s.texture.getGlSource(o),l=a.texture,c=o.format,h;c==="depth24plus-stencil8"||c==="depth32float-stencil8"?h=n.DEPTH_STENCIL_ATTACHMENT:c==="stencil8"?h=n.STENCIL_ATTACHMENT:h=n.DEPTH_ATTACHMENT,a.target===n.TEXTURE_2D?n.framebufferTexture2D(n.FRAMEBUFFER,h,n.TEXTURE_2D,l,e):a.target===n.TEXTURE_2D_ARRAY?n.framebufferTextureLayer(n.FRAMEBUFFER,h,l,e,r):a.target===n.TEXTURE_CUBE_MAP&&n.framebufferTexture2D(n.FRAMEBUFFER,h,n.TEXTURE_CUBE_MAP_POSITIVE_X+r,l,e)}_initStencil(t){if(t.framebuffer===null)return;let e=this._renderer.gl,r=e.createRenderbuffer();t.depthStencilRenderBuffer=r,e.bindRenderbuffer(e.RENDERBUFFER,r),e.framebufferRenderbuffer(e.FRAMEBUFFER,e.DEPTH_STENCIL_ATTACHMENT,e.RENDERBUFFER,r),this._resizeStencil(t)}_resizeStencil(t){let e=this._renderer.gl;e.bindRenderbuffer(e.RENDERBUFFER,t.depthStencilRenderBuffer),t.msaa?e.renderbufferStorageMultisample(e.RENDERBUFFER,4,e.DEPTH24_STENCIL8,t.width,t.height):e.renderbufferStorage(e.RENDERBUFFER,this._renderer.context.webGLVersion===2?e.DEPTH24_STENCIL8:e.DEPTH_STENCIL,t.width,t.height)}prerender(t){if(t.colorAttachments.length===0)return;let e=t.colorAttachments[0].texture.resource;this._renderer.context.multiView&&wt.test(e)&&this._renderer.context.ensureCanvasSize(e)}postrender(t){if(!this._renderer.context.multiView||t.colorAttachments.length===0)return;let e=t.colorAttachments[0].texture;if(wt.test(e.resource)){let r=this._renderer.context.canvas,s=e;s.context2D.drawImage(r,0,s.pixelHeight-r.height)}}_setDrawBuffers(t,e){let r=t.colorAttachments.length,s=this._drawBuffersCache[r];if(this._renderer.context.webGLVersion===1){let n=this._renderer.context.extensions.drawBuffers;n?n.drawBuffersWEBGL(s):L("[RenderTexture] This WebGL1 context does not support rendering to multiple targets")}else e.drawBuffers(s)}resetState(){this._boundFramebuffer=void 0,this._viewPortCache=new J,this._clearColorCache=[0,0,0,0]}bindFramebuffer(t){this._boundFramebuffer!==t&&(this._boundFramebuffer=t,this._renderer.gl.bindFramebuffer(this._renderer.gl.FRAMEBUFFER,t))}}});var Wn,Dy=p(()=>{P();Ha();Uy();Wn=class extends Sr{constructor(t){super(t),this.adaptor=new Qa,this.adaptor.init(t,this)}resetState(){this.adaptor.resetState()}};Wn.extension={type:[y.WebGLSystem],name:"renderTarget"}});var qi,Tu=p(()=>{Ht();Ft();qi=class extends ut{constructor(t,e){super(),this._resourceType="textureView",this._resourceId=$("resource"),this._touched=0,this.source=t,this.viewDescriptor=e,this._onChange=this._onChange.bind(this),this._onDestroy=this._onDestroy.bind(this),this.source.on("change",this._onChange),this.source.on("destroy",this._onDestroy)}_onChange(){this.emit("change",this)}_onDestroy(){this.destroy()}get destroyed(){return this.source.destroyed}destroy(){this.source&&(this.source.off("change",this._onChange),this.source.off("destroy",this._onDestroy)),this.emit("destroy",this),this.removeAllListeners()}}});function Ly(i,t){let e=[],r=[`
786
+ `}var Gy=p(()=>{Za()});function Fy(i){return za(i,lu,Iy)}var Uy=p(()=>{au();cu();Gy()});var Jr,Su=p(()=>{P();Oa();Za();Uy();Jr=class extends br{constructor(){super({createUboElements:By,generateUboSync:Fy})}};Jr.extension={type:[y.WebGLSystem],name:"ubo"}});var Qa,Dy=p(()=>{"use strict";Qa=class{constructor(){this.width=-1,this.height=-1,this.msaa=!1,this._attachedMipLevel=0,this._attachedLayer=0,this.msaaRenderBuffer=[]}}});var Ja,Ly=p(()=>{Yt();ht();fr();Bi();Dy();Ja=class{constructor(){this._clearColorCache=[0,0,0,0],this._viewPortCache=new J,this._boundFramebuffer=void 0}init(t,e){this._renderer=t,this._renderTargetSystem=e,t.runners.contextChange.add(this)}contextChange(){this._clearColorCache=[0,0,0,0],this._viewPortCache=new J,this._boundFramebuffer=void 0;let t=this._renderer.gl;this._drawBuffersCache=[];for(let e=1;e<=16;e++)this._drawBuffersCache[e]=Array.from({length:e},(r,s)=>t.COLOR_ATTACHMENT0+s)}copyToTexture(t,e,r,s,n){let o=this._renderTargetSystem,a=this._renderer,l=o.getGpuRenderTarget(t),c=a.gl;return this.finishRenderPass(t),c.bindFramebuffer(c.FRAMEBUFFER,l.resolveTargetFramebuffer),this._boundFramebuffer=l.resolveTargetFramebuffer,a.texture.bind(e,0),c.copyTexSubImage2D(c.TEXTURE_2D,0,n.x,n.y,r.x,r.y,s.width,s.height),e}copyDepthTexture(t,e,r,s,n){let o=this._renderTargetSystem,a=this._renderer.gl;this.finishRenderPass(t);let l=o.getRenderTarget(e),c=o.getGpuRenderTarget(t),h=o.getGpuRenderTarget(l);a.bindFramebuffer(a.READ_FRAMEBUFFER,c.framebuffer),a.bindFramebuffer(a.DRAW_FRAMEBUFFER,h.framebuffer),this._boundFramebuffer=void 0,a.blitFramebuffer(r.x,r.y,r.x+s.width,r.y+s.height,n.x,n.y,n.x+s.width,n.y+s.height,a.DEPTH_BUFFER_BIT,a.NEAREST)}startRenderPass(t,e=!0,r,s,n=0,o=0){let l=this._renderTargetSystem.getGpuRenderTarget(t);if(o!==0&&this._renderer.context.webGLVersion<2)throw new Error("[RenderTargetSystem] Rendering to array layers requires WebGL2.");if(n>0){if(l.msaa)throw new Error("[RenderTargetSystem] Rendering to mip levels is not supported with MSAA render targets.");if(this._renderer.context.webGLVersion<2)throw new Error("[RenderTargetSystem] Rendering to mip levels requires WebGL2.")}t.colorAttachments.forEach(d=>{this._renderer.texture.unbind(d.texture)});let c=this._renderer.gl;this.bindFramebuffer(l.framebuffer),!t.isRoot&&t.colorAttachments.length>0&&(l._attachedMipLevel!==n||l._attachedLayer!==o)&&(t.colorAttachments.forEach((d,f)=>{let m=d.texture,g=this._renderer.texture.getGlSource(m);if(g.target===c.TEXTURE_2D){if(o!==0)throw new Error("[RenderTargetSystem] layer must be 0 when rendering to 2D textures in WebGL.");c.framebufferTexture2D(c.FRAMEBUFFER,c.COLOR_ATTACHMENT0+f,c.TEXTURE_2D,g.texture,n)}else if(g.target===c.TEXTURE_2D_ARRAY){if(this._renderer.context.webGLVersion<2)throw new Error("[RenderTargetSystem] Rendering to 2D array textures requires WebGL2.");c.framebufferTextureLayer(c.FRAMEBUFFER,c.COLOR_ATTACHMENT0+f,g.texture,n,o)}else if(g.target===c.TEXTURE_CUBE_MAP){if(o<0||o>5)throw new Error("[RenderTargetSystem] Cube map layer must be between 0 and 5.");c.framebufferTexture2D(c.FRAMEBUFFER,c.COLOR_ATTACHMENT0+f,c.TEXTURE_CUBE_MAP_POSITIVE_X+o,g.texture,n)}else throw new Error("[RenderTargetSystem] Unsupported texture target for render-to-layer in WebGL.")}),l._attachedMipLevel=n,l._attachedLayer=o),l.framebuffer&&(t.depthStencilAttachment?this._attachDepthStencilTexture(t,n,o):!l.depthStencilRenderBuffer&&(t.stencil||t.depth)&&this._initStencil(l)),t.colorAttachments.length>1&&this._setDrawBuffers(t,c);let h=s.y;t.isRoot&&(h=t.pixelHeight-s.height-s.y);let u=this._viewPortCache;(u.x!==s.x||u.y!==h||u.width!==s.width||u.height!==s.height)&&(u.x=s.x,u.y=h,u.width=s.width,u.height=s.height,c.viewport(s.x,h,s.width,s.height)),this.clear(t,e,r)}finishRenderPass(t){let r=this._renderTargetSystem.getGpuRenderTarget(t);if(!r.msaa||t.colorAttachments.length===0)return;let s=this._renderer.gl;s.bindFramebuffer(s.FRAMEBUFFER,r.resolveTargetFramebuffer),s.bindFramebuffer(s.READ_FRAMEBUFFER,r.framebuffer),s.blitFramebuffer(0,0,r.width,r.height,0,0,r.width,r.height,s.COLOR_BUFFER_BIT,s.NEAREST),s.bindFramebuffer(s.FRAMEBUFFER,r.framebuffer),this._boundFramebuffer=r.framebuffer}initGpuRenderTarget(t){let r=this._renderer.gl,s=new Qa;s._attachedMipLevel=0,s._attachedLayer=0;let n=t.colorTexture;return n instanceof Tt?(this._renderer.context.ensureCanvasSize(n.resource),s.framebuffer=null,s):(s.width=t.pixelWidth,s.height=t.pixelHeight,t.colorAttachments.length===0?this._initDepth(t,s):this._initColor(t,s),t.depthStencilAttachment&&this._attachDepthStencilTexture(t,0,0),r.bindFramebuffer(r.FRAMEBUFFER,null),this._boundFramebuffer=null,s)}destroyGpuRenderTarget(t){let e=this._renderer.gl;t.framebuffer&&(e.deleteFramebuffer(t.framebuffer),t.framebuffer=null),t.resolveTargetFramebuffer&&(e.deleteFramebuffer(t.resolveTargetFramebuffer),t.resolveTargetFramebuffer=null),t.depthStencilRenderBuffer&&(e.deleteRenderbuffer(t.depthStencilRenderBuffer),t.depthStencilRenderBuffer=null),t.msaaRenderBuffer.forEach(r=>{e.deleteRenderbuffer(r)}),t.msaaRenderBuffer=null}clear(t,e,r,s,n=0,o=0){if(!e)return;if(o!==0)throw new Error("[RenderTargetSystem] Clearing array layers is not supported in WebGL renderer.");let a=this._renderTargetSystem;if(typeof e=="boolean"&&(e=e?Et.ALL:Et.NONE),t.colorAttachments.length===0&&(e&=~Et.COLOR,!e))return;let l=this._renderer.gl,c=!!(e&Et.DEPTH)&&!this._renderer.state.depthMaskEnabled;if(e&Et.COLOR){r??(r=a.defaultClearColor);let h=this._clearColorCache,u=r;(h[0]!==u[0]||h[1]!==u[1]||h[2]!==u[2]||h[3]!==u[3])&&(h[0]=u[0],h[1]=u[1],h[2]=u[2],h[3]=u[3],l.clearColor(u[0],u[1],u[2],u[3]))}c&&l.depthMask(!0),l.clear(e),c&&l.depthMask(!1)}resizeGpuRenderTarget(t){if(t.isRoot)return;let e=this._renderTargetSystem.getGpuRenderTarget(t);e.width=t.pixelWidth,e.height=t.pixelHeight,t.colorAttachments.length>0&&this._resizeColor(t,e),e.depthStencilRenderBuffer&&this._resizeStencil(e),this._boundFramebuffer=void 0}_initColor(t,e){let r=this._renderer,s=r.gl,n=s.createFramebuffer();if(e.resolveTargetFramebuffer=n,s.bindFramebuffer(s.FRAMEBUFFER,n),t.colorAttachments.forEach((a,l)=>{let c=a.texture;c.antialias&&(r.context.supports.msaa?e.msaa=!0:L("[RenderTexture] Antialiasing on textures is not supported in WebGL1")),r.texture.bindSource(c,0);let h=r.texture.getGlSource(c),u=h.texture;if(h.target===s.TEXTURE_2D)s.framebufferTexture2D(s.FRAMEBUFFER,s.COLOR_ATTACHMENT0+l,s.TEXTURE_2D,u,0);else if(h.target===s.TEXTURE_2D_ARRAY){if(r.context.webGLVersion<2)throw new Error("[RenderTargetSystem] TEXTURE_2D_ARRAY requires WebGL2.");s.framebufferTextureLayer(s.FRAMEBUFFER,s.COLOR_ATTACHMENT0+l,u,0,0)}else if(h.target===s.TEXTURE_CUBE_MAP)s.framebufferTexture2D(s.FRAMEBUFFER,s.COLOR_ATTACHMENT0+l,s.TEXTURE_CUBE_MAP_POSITIVE_X,u,0);else throw new Error("[RenderTargetSystem] Unsupported texture target for framebuffer attachment.")}),e.msaa){let a=s.createFramebuffer();e.framebuffer=a,s.bindFramebuffer(s.FRAMEBUFFER,a),t.colorAttachments.forEach((l,c)=>{let h=s.createRenderbuffer();e.msaaRenderBuffer[c]=h})}else e.framebuffer=n;this._resizeColor(t,e)}_initDepth(t,e){let r=this._renderer;if(r.context.webGLVersion<2)throw new Error("[RenderTargetSystem] Depth-only render targets require WebGL2.");let s=r.gl,n=s.createFramebuffer();e.resolveTargetFramebuffer=n,e.framebuffer=n,s.bindFramebuffer(s.FRAMEBUFFER,n),s.drawBuffers([s.NONE]),s.readBuffer(s.NONE)}_resizeColor(t,e){let r=t.colorAttachments[0].texture;if(e._attachedMipLevel=0,e._attachedLayer=0,t.colorAttachments.forEach((s,n)=>{n!==0&&s.texture.resize(r.width,r.height,r._resolution)}),e.msaa){let s=this._renderer,n=s.gl,o=e.framebuffer;n.bindFramebuffer(n.FRAMEBUFFER,o),t.colorAttachments.forEach((a,l)=>{let c=a.texture;s.texture.bindSource(c,0);let u=s.texture.getGlSource(c).internalFormat,d=e.msaaRenderBuffer[l];n.bindRenderbuffer(n.RENDERBUFFER,d),n.renderbufferStorageMultisample(n.RENDERBUFFER,4,u,c.pixelWidth,c.pixelHeight),n.framebufferRenderbuffer(n.FRAMEBUFFER,n.COLOR_ATTACHMENT0+l,n.RENDERBUFFER,d)})}}_attachDepthStencilTexture(t,e,r){let s=this._renderer,n=s.gl,o=t.depthStencilAttachment.texture,a=s.texture.getGlSource(o),l=a.texture,c=o.format,h;c==="depth24plus-stencil8"||c==="depth32float-stencil8"?h=n.DEPTH_STENCIL_ATTACHMENT:c==="stencil8"?h=n.STENCIL_ATTACHMENT:h=n.DEPTH_ATTACHMENT,a.target===n.TEXTURE_2D?n.framebufferTexture2D(n.FRAMEBUFFER,h,n.TEXTURE_2D,l,e):a.target===n.TEXTURE_2D_ARRAY?n.framebufferTextureLayer(n.FRAMEBUFFER,h,l,e,r):a.target===n.TEXTURE_CUBE_MAP&&n.framebufferTexture2D(n.FRAMEBUFFER,h,n.TEXTURE_CUBE_MAP_POSITIVE_X+r,l,e)}_initStencil(t){if(t.framebuffer===null)return;let e=this._renderer.gl,r=e.createRenderbuffer();t.depthStencilRenderBuffer=r,e.bindRenderbuffer(e.RENDERBUFFER,r),e.framebufferRenderbuffer(e.FRAMEBUFFER,e.DEPTH_STENCIL_ATTACHMENT,e.RENDERBUFFER,r),this._resizeStencil(t)}_resizeStencil(t){let e=this._renderer.gl;e.bindRenderbuffer(e.RENDERBUFFER,t.depthStencilRenderBuffer),t.msaa?e.renderbufferStorageMultisample(e.RENDERBUFFER,4,e.DEPTH24_STENCIL8,t.width,t.height):e.renderbufferStorage(e.RENDERBUFFER,this._renderer.context.webGLVersion===2?e.DEPTH24_STENCIL8:e.DEPTH_STENCIL,t.width,t.height)}prerender(t){if(t.colorAttachments.length===0)return;let e=t.colorAttachments[0].texture.resource;this._renderer.context.multiView&&Tt.test(e)&&this._renderer.context.ensureCanvasSize(e)}postrender(t){if(!this._renderer.context.multiView||t.colorAttachments.length===0)return;let e=t.colorAttachments[0].texture;if(Tt.test(e.resource)){let r=this._renderer.context.canvas,s=e;s.context2D.drawImage(r,0,s.pixelHeight-r.height)}}_setDrawBuffers(t,e){let r=t.colorAttachments.length,s=this._drawBuffersCache[r];if(this._renderer.context.webGLVersion===1){let n=this._renderer.context.extensions.drawBuffers;n?n.drawBuffersWEBGL(s):L("[RenderTexture] This WebGL1 context does not support rendering to multiple targets")}else e.drawBuffers(s)}resetState(){this._boundFramebuffer=void 0,this._viewPortCache=new J,this._clearColorCache=[0,0,0,0]}bindFramebuffer(t){this._boundFramebuffer!==t&&(this._boundFramebuffer=t,this._renderer.gl.bindFramebuffer(this._renderer.gl.FRAMEBUFFER,t))}}});var Vn,Oy=p(()=>{P();Wa();Ly();Vn=class extends Sr{constructor(t){super(t),this.adaptor=new Ja,this.adaptor.init(t,this)}resetState(){this.adaptor.resetState()}};Vn.extension={type:[y.WebGLSystem],name:"renderTarget"}});var Ki,Tu=p(()=>{Ht();Ft();Ki=class extends ut{constructor(t,e){super(),this._resourceType="textureView",this._resourceId=$("resource"),this._touched=0,this.source=t,this.viewDescriptor=e,this._onChange=this._onChange.bind(this),this._onDestroy=this._onDestroy.bind(this),this.source.on("change",this._onChange),this.source.on("destroy",this._onDestroy)}_onChange(){this.emit("change",this)}_onDestroy(){this.destroy()}get destroyed(){return this.source.destroyed}destroy(){this.source&&(this.source.off("change",this._onChange),this.source.off("destroy",this._onDestroy)),this.emit("destroy",this),this.removeAllListeners()}}});function Ny(i,t){let e=[],r=[`
787
787
  var g = s.groups;
788
788
  var sS = r.shader;
789
789
  var p = s.glProgram;
@@ -805,15 +805,15 @@ fn mainFragment(
805
805
  '${d}',
806
806
  ${i.glProgram._uniformBlockData[d].index}
807
807
  );
808
- `)}else if(u instanceof st||u instanceof qi){let d=i._uniformBindMap[l][h],f=o.uniformData[d];f&&(s||(s=!0,r.push(`
808
+ `)}else if(u instanceof st||u instanceof Ki){let d=i._uniformBindMap[l][h],f=o.uniformData[d];f&&(s||(s=!0,r.push(`
809
809
  var tS = r.texture;
810
810
  `)),t._gl.uniform1i(f.location,n),e.push(`
811
811
  tS.bind(resources[${h}], ${n});
812
812
  `),n++)}}}let a=[...r,...e].join(`
813
- `);return new Function("r","s","sD",a)}var Oy=p(()=>{wn();me();$t();Tu()});var Ja,Ny=p(()=>{"use strict";Ja=class{constructor(t,e){this.program=t,this.uniformData=e,this.uniformGroups={},this.uniformDirtyGroups={},this.uniformBlockBindings={}}destroy(){this.uniformData=null,this.uniformGroups=null,this.uniformDirtyGroups=null,this.uniformBlockBindings=null,this.program=null}}});function wu(i,t,e){let r=i.createShader(t);return i.shaderSource(r,e),i.compileShader(r),r}var zy=p(()=>{"use strict"});function Cu(i){let t=new Array(i);for(let e=0;e<t.length;e++)t[e]=!1;return t}function tl(i,t){switch(i){case"float":return 0;case"vec2":return new Float32Array(2*t);case"vec3":return new Float32Array(3*t);case"vec4":return new Float32Array(4*t);case"int":case"uint":case"sampler2D":case"sampler2DArray":return 0;case"ivec2":return new Int32Array(2*t);case"ivec3":return new Int32Array(3*t);case"ivec4":return new Int32Array(4*t);case"uvec2":return new Uint32Array(2*t);case"uvec3":return new Uint32Array(3*t);case"uvec4":return new Uint32Array(4*t);case"bool":return!1;case"bvec2":return Cu(2*t);case"bvec3":return Cu(3*t);case"bvec4":return Cu(4*t);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 Eu=p(()=>{"use strict"});function Pu(i,t){if(!el){let e=Object.keys(Hy);el={};for(let r=0;r<e.length;++r){let s=e[r];el[i[s]]=Hy[s]}}return el[t]}function Wy(i,t){let e=Pu(i,t);return DT[e]||"float32"}var el,Hy,DT,Mu=p(()=>{"use strict";el=null,Hy={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_2D_SHADOW:"sampler2DShadow",SAMPLER_CUBE:"samplerCube",INT_SAMPLER_CUBE:"samplerCube",UNSIGNED_INT_SAMPLER_CUBE:"samplerCube",SAMPLER_CUBE_SHADOW:"samplerCubeShadow",SAMPLER_2D_ARRAY:"sampler2DArray",INT_SAMPLER_2D_ARRAY:"sampler2DArray",UNSIGNED_INT_SAMPLER_2D_ARRAY:"sampler2DArray",SAMPLER_2D_ARRAY_SHADOW:"sampler2DArrayShadow"},DT={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 Vy(i,t,e=!1){let r={},s=t.getProgramParameter(i,t.ACTIVE_ATTRIBUTES);for(let o=0;o<s;o++){let a=t.getActiveAttrib(i,o);if(a.name.startsWith("gl_"))continue;let l=Wy(t,a.type);r[a.name]={location:0,format:l,stride:Jt(l).stride,offset:0,instance:!1,start:0}}let n=Object.keys(r);if(e){n.sort((o,a)=>o>a?1:-1);for(let o=0;o<n.length;o++)r[n[o]].location=o,t.bindAttribLocation(i,o,n[o]);t.linkProgram(i)}else for(let o=0;o<n.length;o++)r[n[o]].location=t.getAttribLocation(i,n[o]);return r}var jy=p(()=>{pr();Mu()});function Xy(i,t){if(!t.ACTIVE_UNIFORM_BLOCKS)return{};let e={},r=t.getProgramParameter(i,t.ACTIVE_UNIFORM_BLOCKS);for(let s=0;s<r;s++){let n=t.getActiveUniformBlockName(i,s),o=t.getUniformBlockIndex(i,n),a=t.getActiveUniformBlockParameter(i,s,t.UNIFORM_BLOCK_DATA_SIZE);e[n]={name:n,index:o,size:a}}return e}var Yy=p(()=>{"use strict"});function $y(i,t){let e={},r=t.getProgramParameter(i,t.ACTIVE_UNIFORMS);for(let s=0;s<r;s++){let n=t.getActiveUniform(i,s),o=n.name.replace(/\[.*?\]$/,""),a=!!n.name.match(/\[.*?\]$/),l=Pu(t,n.type);e[o]={name:o,index:s,type:l,size:n.size,isArray:a,value:tl(l,n.size)}}return e}var qy=p(()=>{Eu();Mu()});function Ky(i,t){let e=i.getShaderSource(t);if(e===null){console.error("PixiJS Error: Could not retrieve shader source (WebGL context may be lost).");return}let r=e.split(`
813
+ `);return new Function("r","s","sD",a)}var zy=p(()=>{Cn();me();$t();Tu()});var tl,Hy=p(()=>{"use strict";tl=class{constructor(t,e){this.program=t,this.uniformData=e,this.uniformGroups={},this.uniformDirtyGroups={},this.uniformBlockBindings={}}destroy(){this.uniformData=null,this.uniformGroups=null,this.uniformDirtyGroups=null,this.uniformBlockBindings=null,this.program=null}}});function wu(i,t,e){let r=i.createShader(t);return i.shaderSource(r,e),i.compileShader(r),r}var Wy=p(()=>{"use strict"});function Cu(i){let t=new Array(i);for(let e=0;e<t.length;e++)t[e]=!1;return t}function el(i,t){switch(i){case"float":return 0;case"vec2":return new Float32Array(2*t);case"vec3":return new Float32Array(3*t);case"vec4":return new Float32Array(4*t);case"int":case"uint":case"sampler2D":case"sampler2DArray":return 0;case"ivec2":return new Int32Array(2*t);case"ivec3":return new Int32Array(3*t);case"ivec4":return new Int32Array(4*t);case"uvec2":return new Uint32Array(2*t);case"uvec3":return new Uint32Array(3*t);case"uvec4":return new Uint32Array(4*t);case"bool":return!1;case"bvec2":return Cu(2*t);case"bvec3":return Cu(3*t);case"bvec4":return Cu(4*t);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 Eu=p(()=>{"use strict"});function Pu(i,t){if(!rl){let e=Object.keys(Vy);rl={};for(let r=0;r<e.length;++r){let s=e[r];rl[i[s]]=Vy[s]}}return rl[t]}function jy(i,t){let e=Pu(i,t);return NT[e]||"float32"}var rl,Vy,NT,Mu=p(()=>{"use strict";rl=null,Vy={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_2D_SHADOW:"sampler2DShadow",SAMPLER_CUBE:"samplerCube",INT_SAMPLER_CUBE:"samplerCube",UNSIGNED_INT_SAMPLER_CUBE:"samplerCube",SAMPLER_CUBE_SHADOW:"samplerCubeShadow",SAMPLER_2D_ARRAY:"sampler2DArray",INT_SAMPLER_2D_ARRAY:"sampler2DArray",UNSIGNED_INT_SAMPLER_2D_ARRAY:"sampler2DArray",SAMPLER_2D_ARRAY_SHADOW:"sampler2DArrayShadow"},NT={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 Xy(i,t,e=!1){let r={},s=t.getProgramParameter(i,t.ACTIVE_ATTRIBUTES);for(let o=0;o<s;o++){let a=t.getActiveAttrib(i,o);if(a.name.startsWith("gl_"))continue;let l=jy(t,a.type);r[a.name]={location:0,format:l,stride:Jt(l).stride,offset:0,instance:!1,start:0}}let n=Object.keys(r);if(e){n.sort((o,a)=>o>a?1:-1);for(let o=0;o<n.length;o++)r[n[o]].location=o,t.bindAttribLocation(i,o,n[o]);t.linkProgram(i)}else for(let o=0;o<n.length;o++)r[n[o]].location=t.getAttribLocation(i,n[o]);return r}var Yy=p(()=>{pr();Mu()});function $y(i,t){if(!t.ACTIVE_UNIFORM_BLOCKS)return{};let e={},r=t.getProgramParameter(i,t.ACTIVE_UNIFORM_BLOCKS);for(let s=0;s<r;s++){let n=t.getActiveUniformBlockName(i,s),o=t.getUniformBlockIndex(i,n),a=t.getActiveUniformBlockParameter(i,s,t.UNIFORM_BLOCK_DATA_SIZE);e[n]={name:n,index:o,size:a}}return e}var qy=p(()=>{"use strict"});function Ky(i,t){let e={},r=t.getProgramParameter(i,t.ACTIVE_UNIFORMS);for(let s=0;s<r;s++){let n=t.getActiveUniform(i,s),o=n.name.replace(/\[.*?\]$/,""),a=!!n.name.match(/\[.*?\]$/),l=Pu(t,n.type);e[o]={name:o,index:s,type:l,size:n.size,isArray:a,value:el(l,n.size)}}return e}var Zy=p(()=>{Eu();Mu()});function Qy(i,t){let e=i.getShaderSource(t);if(e===null){console.error("PixiJS Error: Could not retrieve shader source (WebGL context may be lost).");return}let r=e.split(`
814
814
  `).map((h,u)=>`${u}: ${h}`),s=i.getShaderInfoLog(t)??"",n=s.split(`
815
815
  `),o={},a=n.map(h=>parseFloat(h.replace(/^ERROR\: 0\:([\d]+)\:.*$/,"$1"))).filter(h=>h&&!o[h]?(o[h]=!0,!0):!1),l=[""];a.forEach(h=>{r[h-1]=`%c${r[h-1]}%c`,l.push("background: #FF0000; color:#FFFFFF; font-size: 10px","font-size: 10px")});let c=r.join(`
816
- `);l[0]=c,console.error(s),console.groupCollapsed("click to view full shader code"),console.warn(...l),console.groupEnd()}function Zy(i,t,e,r){i.getProgramParameter(t,i.LINK_STATUS)||(i.getShaderParameter(e,i.COMPILE_STATUS)||Ky(i,e),i.getShaderParameter(r,i.COMPILE_STATUS)||Ky(i,r),console.error("PixiJS Error: Could not initialize shader."),i.getProgramInfoLog(t)!==""&&console.warn("PixiJS Warning: gl.getProgramInfoLog()",i.getProgramInfoLog(t)))}var Qy=p(()=>{"use strict"});function Jy(i,t){let e=wu(i,i.VERTEX_SHADER,t.vertex),r=wu(i,i.FRAGMENT_SHADER,t.fragment),s=i.createProgram();i.attachShader(s,e),i.attachShader(s,r);let n=t.transformFeedbackVaryings;n&&(typeof i.transformFeedbackVaryings!="function"?L("TransformFeedback is not supported but TransformFeedbackVaryings are given."):i.transformFeedbackVaryings(s,n.names,n.bufferMode==="separate"?i.SEPARATE_ATTRIBS:i.INTERLEAVED_ATTRIBS)),i.linkProgram(s),i.getProgramParameter(s,i.LINK_STATUS)||Zy(i,s,e,r),t._attributeData=Vy(s,i,!/^[ \t]*#[ \t]*version[ \t]+300[ \t]+es[ \t]*$/m.test(t.vertex)),t._uniformData=$y(s,i),t._uniformBlockData=Xy(s,i),i.deleteShader(e),i.deleteShader(r);let o={};for(let l in t._uniformData){let c=t._uniformData[l];o[l]={location:i.getUniformLocation(s,l),value:tl(c.type,c.size)}}return new Ja(s,o)}var tb=p(()=>{ht();Ny();zy();Eu();jy();Yy();qy();Qy()});var rl,ti,Au=p(()=>{P();Oy();tb();rl={textureCount:0,blockIndex:0},ti=class{constructor(t){this._activeProgram=null,this._programDataHash=Object.create(null),this._shaderSyncFunctions=Object.create(null),this._renderer=t}contextChange(t){this._gl=t,this._programDataHash=Object.create(null),this._shaderSyncFunctions=Object.create(null),this._activeProgram=null}bind(t,e){if(this._setProgram(t.glProgram),e)return;rl.textureCount=0,rl.blockIndex=0;let r=this._shaderSyncFunctions[t.glProgram._key];r||(r=this._shaderSyncFunctions[t.glProgram._key]=this._generateShaderSync(t,this)),this._renderer.buffer.nextBindBase(!!t.glProgram.transformFeedbackVaryings),r(this._renderer,t,rl)}updateUniformGroup(t){this._renderer.uniformGroup.updateUniformGroup(t,this._activeProgram,rl)}bindUniformBlock(t,e,r=0){let s=this._renderer.buffer,n=this._getProgramData(this._activeProgram),o=t._bufferResource;o||this._renderer.ubo.updateUniformGroup(t);let a=t.buffer,l=s.updateBuffer(a),c=s.freeLocationForBufferBase(l);if(o){let{offset:u,size:d}=t;u===0&&d===a.data.byteLength?s.bindBufferBase(l,c):s.bindBufferRange(l,c,u)}else s.getLastBindBaseLocation(l)!==c&&s.bindBufferBase(l,c);let h=this._activeProgram._uniformBlockData[e].index;n.uniformBlockBindings[r]!==c&&(n.uniformBlockBindings[r]=c,this._renderer.gl.uniformBlockBinding(n.program,h,c))}_setProgram(t){if(this._activeProgram===t)return;this._activeProgram=t;let e=this._getProgramData(t);this._gl.useProgram(e.program)}_getProgramData(t){return this._programDataHash[t._key]||this._createProgramData(t)}_createProgramData(t){let e=t._key;return this._programDataHash[e]=Jy(this._gl,t),this._programDataHash[e]}destroy(){for(let t of Object.keys(this._programDataHash))this._programDataHash[t].destroy();this._programDataHash=null,this._shaderSyncFunctions=null,this._activeProgram=null,this._renderer=null,this._gl=null}_generateShaderSync(t,e){return Ly(t,e)}resetState(){this._activeProgram=null}};ti.extension={type:[y.WebGLSystem],name:"shader"}});var eb,rb,ib=p(()=>{"use strict";eb={f32:`if (cv !== v) {
816
+ `);l[0]=c,console.error(s),console.groupCollapsed("click to view full shader code"),console.warn(...l),console.groupEnd()}function Jy(i,t,e,r){i.getProgramParameter(t,i.LINK_STATUS)||(i.getShaderParameter(e,i.COMPILE_STATUS)||Qy(i,e),i.getShaderParameter(r,i.COMPILE_STATUS)||Qy(i,r),console.error("PixiJS Error: Could not initialize shader."),i.getProgramInfoLog(t)!==""&&console.warn("PixiJS Warning: gl.getProgramInfoLog()",i.getProgramInfoLog(t)))}var tb=p(()=>{"use strict"});function eb(i,t){let e=wu(i,i.VERTEX_SHADER,t.vertex),r=wu(i,i.FRAGMENT_SHADER,t.fragment),s=i.createProgram();i.attachShader(s,e),i.attachShader(s,r);let n=t.transformFeedbackVaryings;n&&(typeof i.transformFeedbackVaryings!="function"?L("TransformFeedback is not supported but TransformFeedbackVaryings are given."):i.transformFeedbackVaryings(s,n.names,n.bufferMode==="separate"?i.SEPARATE_ATTRIBS:i.INTERLEAVED_ATTRIBS)),i.linkProgram(s),i.getProgramParameter(s,i.LINK_STATUS)||Jy(i,s,e,r),t._attributeData=Xy(s,i,!/^[ \t]*#[ \t]*version[ \t]+300[ \t]+es[ \t]*$/m.test(t.vertex)),t._uniformData=Ky(s,i),t._uniformBlockData=$y(s,i),i.deleteShader(e),i.deleteShader(r);let o={};for(let l in t._uniformData){let c=t._uniformData[l];o[l]={location:i.getUniformLocation(s,l),value:el(c.type,c.size)}}return new tl(s,o)}var rb=p(()=>{ht();Hy();Wy();Eu();Yy();qy();Zy();tb()});var il,ti,Au=p(()=>{P();zy();rb();il={textureCount:0,blockIndex:0},ti=class{constructor(t){this._activeProgram=null,this._programDataHash=Object.create(null),this._shaderSyncFunctions=Object.create(null),this._renderer=t}contextChange(t){this._gl=t,this._programDataHash=Object.create(null),this._shaderSyncFunctions=Object.create(null),this._activeProgram=null}bind(t,e){if(this._setProgram(t.glProgram),e)return;il.textureCount=0,il.blockIndex=0;let r=this._shaderSyncFunctions[t.glProgram._key];r||(r=this._shaderSyncFunctions[t.glProgram._key]=this._generateShaderSync(t,this)),this._renderer.buffer.nextBindBase(!!t.glProgram.transformFeedbackVaryings),r(this._renderer,t,il)}updateUniformGroup(t){this._renderer.uniformGroup.updateUniformGroup(t,this._activeProgram,il)}bindUniformBlock(t,e,r=0){let s=this._renderer.buffer,n=this._getProgramData(this._activeProgram),o=t._bufferResource;o||this._renderer.ubo.updateUniformGroup(t);let a=t.buffer,l=s.updateBuffer(a),c=s.freeLocationForBufferBase(l);if(o){let{offset:u,size:d}=t;u===0&&d===a.data.byteLength?s.bindBufferBase(l,c):s.bindBufferRange(l,c,u)}else s.getLastBindBaseLocation(l)!==c&&s.bindBufferBase(l,c);let h=this._activeProgram._uniformBlockData[e].index;n.uniformBlockBindings[r]!==c&&(n.uniformBlockBindings[r]=c,this._renderer.gl.uniformBlockBinding(n.program,h,c))}_setProgram(t){if(this._activeProgram===t)return;this._activeProgram=t;let e=this._getProgramData(t);this._gl.useProgram(e.program)}_getProgramData(t){return this._programDataHash[t._key]||this._createProgramData(t)}_createProgramData(t){let e=t._key;return this._programDataHash[e]=eb(this._gl,t),this._programDataHash[e]}destroy(){for(let t of Object.keys(this._programDataHash))this._programDataHash[t].destroy();this._programDataHash=null,this._shaderSyncFunctions=null,this._activeProgram=null,this._renderer=null,this._gl=null}_generateShaderSync(t,e){return Ny(t,e)}resetState(){this._activeProgram=null}};ti.extension={type:[y.WebGLSystem],name:"shader"}});var ib,sb,nb=p(()=>{"use strict";ib={f32:`if (cv !== v) {
817
817
  cu.value = v;
818
818
  gl.uniform1f(location, v);
819
819
  }`,"vec2<f32>":`if (cv[0] !== v[0] || cv[1] !== v[1]) {
@@ -885,7 +885,7 @@ fn mainFragment(
885
885
  cv[2] = v[2];
886
886
  cv[3] = v[3];
887
887
  gl.uniform4i(location, v[0], v[1], v[2], v[3]);
888
- }`,"mat2x2<f32>":"gl.uniformMatrix2fv(location, false, v);","mat3x3<f32>":"gl.uniformMatrix3fv(location, false, v);","mat4x4<f32>":"gl.uniformMatrix4fv(location, false, v);"},rb={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 sb(i,t){let e=[`
888
+ }`,"mat2x2<f32>":"gl.uniformMatrix2fv(location, false, v);","mat3x3<f32>":"gl.uniformMatrix3fv(location, false, v);","mat4x4<f32>":"gl.uniformMatrix4fv(location, false, v);"},sb={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 ob(i,t){let e=[`
889
889
  var v = null;
890
890
  var cv = null;
891
891
  var cu = null;
@@ -898,17 +898,17 @@ fn mainFragment(
898
898
  renderer.shader.updateUniformGroup(uv.${r});
899
899
  `):i.uniforms[r]instanceof He&&e.push(`
900
900
  renderer.shader.bindBufferResource(uv.${r}, "${r}");
901
- `);continue}let s=i.uniformStructures[r],n=!1;for(let o=0;o<ue.length;o++){let a=ue[o];if(s.type===a.type&&a.test(s)){e.push(`name = "${r}";`,ue[o].uniform),n=!0;break}}if(!n){let a=(s.size===1?eb:rb)[s.type].replace("location",`ud["${r}"].location`);e.push(`
901
+ `);continue}let s=i.uniformStructures[r],n=!1;for(let o=0;o<de.length;o++){let a=de[o];if(s.type===a.type&&a.test(s)){e.push(`name = "${r}";`,de[o].uniform),n=!0;break}}if(!n){let a=(s.size===1?ib:sb)[s.type].replace("location",`ud["${r}"].location`);e.push(`
902
902
  cu = ud["${r}"];
903
903
  cv = cu.value;
904
904
  v = uv["${r}"];
905
905
  ${a};`)}}return new Function("ud","uv","renderer","syncData",e.join(`
906
- `))}var nb=p(()=>{wn();me();Tn();ib()});var ei,Ru=p(()=>{P();nb();ei=class{constructor(t){this._cache={},this._uniformGroupSyncHash={},this._renderer=t,this.gl=null,this._cache={}}contextChange(t){this.gl=t}updateUniformGroup(t,e,r){let s=this._renderer.shader._getProgramData(e);(!t.isStatic||t._dirtyId!==s.uniformDirtyGroups[t.uid])&&(s.uniformDirtyGroups[t.uid]=t._dirtyId,this._getUniformSyncFunction(t,e)(s.uniformData,t.uniforms,this._renderer,r))}_getUniformSyncFunction(t,e){return this._uniformGroupSyncHash[t._signature]?.[e._key]||this._createUniformSyncFunction(t,e)}_createUniformSyncFunction(t,e){let r=this._uniformGroupSyncHash[t._signature]||(this._uniformGroupSyncHash[t._signature]={}),s=this._getSignature(t,e._uniformData,"u");return this._cache[s]||(this._cache[s]=this._generateUniformsSync(t,e._uniformData)),r[e._key]=this._cache[s],r[e._key]}_generateUniformsSync(t,e){return sb(t,e)}_getSignature(t,e,r){let s=t.uniforms,n=[`${r}-`];for(let o in s)n.push(o),e[o]&&n.push(e[o].type);return n.join("-")}destroy(){this._renderer=null,this._cache=null}};ei.extension={type:[y.WebGLSystem],name:"uniformGroup"}});function ob(i){let t={};if(t.normal=[i.ONE,i.ONE_MINUS_SRC_ALPHA],t.add=[i.ONE,i.ONE],t.multiply=[i.DST_COLOR,i.ONE_MINUS_SRC_ALPHA,i.ONE,i.ONE_MINUS_SRC_ALPHA],t.screen=[i.ONE,i.ONE_MINUS_SRC_COLOR,i.ONE,i.ONE_MINUS_SRC_ALPHA],t.none=[0,0],t["normal-npm"]=[i.SRC_ALPHA,i.ONE_MINUS_SRC_ALPHA,i.ONE,i.ONE_MINUS_SRC_ALPHA],t["add-npm"]=[i.SRC_ALPHA,i.ONE,i.ONE,i.ONE],t["screen-npm"]=[i.SRC_ALPHA,i.ONE_MINUS_SRC_COLOR,i.ONE,i.ONE_MINUS_SRC_ALPHA],t.erase=[i.ZERO,i.ONE_MINUS_SRC_ALPHA],!(i instanceof W.get().getWebGLRenderingContext()))t.min=[i.ONE,i.ONE,i.ONE,i.ONE,i.MIN,i.MIN],t.max=[i.ONE,i.ONE,i.ONE,i.ONE,i.MAX,i.MAX];else{let r=i.getExtension("EXT_blend_minmax");r&&(t.min=[i.ONE,i.ONE,i.ONE,i.ONE,r.MIN_EXT,r.MIN_EXT],t.max=[i.ONE,i.ONE,i.ONE,i.ONE,r.MAX_EXT,r.MAX_EXT])}return t}var ab=p(()=>{xt()});var LT,OT,NT,zT,HT,lb,cb,hb,ub=p(()=>{P();Be();ab();({BLEND:LT,OFFSET:OT,CULLING:NT,DEPTH_TEST:zT,WINDING:HT,DEPTH_MASK:lb}=nh),cb=class ku{constructor(t){this._invertFrontFace=!1,this.gl=null,this.stateId=0,this.polygonOffset=0,this.blendMode="none",this._blendEq=!1,this.map=[],this.map[LT]=this.setBlend,this.map[OT]=this.setOffset,this.map[NT]=this.setCullFace,this.map[zT]=this.setDepthTest,this.map[HT]=this.setFrontFace,this.map[lb]=this.setDepthMask,this.checks=[],this.defaultState=Ot.for2d(),t.renderTarget.onRenderTargetChange.add(this)}onRenderTargetChange(t){this._invertFrontFace=!t.isRoot!=!!t.flipY,this._cullFace?this.setFrontFace(this._frontFace):this._frontFaceDirty=!0}contextChange(t){this.gl=t,this.blendModesMap=ob(t),this.resetState()}set(t){if(t||(t=this.defaultState),this.stateId!==t.data){let e=this.stateId^t.data,r=0;for(;e;)e&1&&this.map[r].call(this,!!(t.data&1<<r)),e>>=1,r++;this.stateId=t.data}for(let e=0;e<this.checks.length;e++)this.checks[e](this,t)}forceState(t){t||(t=this.defaultState);for(let e=0;e<this.map.length;e++)this.map[e].call(this,!!(t.data&1<<e));for(let e=0;e<this.checks.length;e++)this.checks[e](this,t);this.stateId=t.data}setBlend(t){this._updateCheck(ku._checkBlendMode,t),this.gl[t?"enable":"disable"](this.gl.BLEND)}setOffset(t){this._updateCheck(ku._checkPolygonOffset,t),this.gl[t?"enable":"disable"](this.gl.POLYGON_OFFSET_FILL)}setDepthTest(t){this.gl[t?"enable":"disable"](this.gl.DEPTH_TEST)}setDepthMask(t){this.gl.depthMask(t)}get depthMaskEnabled(){return!!(this.stateId&1<<lb)}setCullFace(t){this._cullFace=t,this.gl[t?"enable":"disable"](this.gl.CULL_FACE),this._cullFace&&this._frontFaceDirty&&this.setFrontFace(this._frontFace)}setFrontFace(t){this._frontFace=t,this._frontFaceDirty=!1;let e=this._invertFrontFace?!t:t;this._glFrontFace!==e&&(this._glFrontFace=e,this.gl.frontFace(this.gl[e?"CW":"CCW"]))}setBlendMode(t){if(this.blendModesMap[t]||(t="normal"),t===this.blendMode)return;this.blendMode=t;let e=this.blendModesMap[t],r=this.gl;e.length===2?r.blendFunc(e[0],e[1]):r.blendFuncSeparate(e[0],e[1],e[2],e[3]),e.length===6?(this._blendEq=!0,r.blendEquationSeparate(e[4],e[5])):this._blendEq&&(this._blendEq=!1,r.blendEquationSeparate(r.FUNC_ADD,r.FUNC_ADD))}setPolygonOffset(t,e){this.gl.polygonOffset(t,e)}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(t,e){let r=this.checks.indexOf(t);e&&r===-1?this.checks.push(t):!e&&r!==-1&&this.checks.splice(r,1)}static _checkBlendMode(t,e){t.setBlendMode(e.blendMode)}static _checkPolygonOffset(t,e){t.setPolygonOffset(1,e.polygonOffset)}destroy(){this.gl=null,this.checks.length=0}};cb.extension={type:[y.WebGLSystem],name:"state"};hb=cb});var il,db=p(()=>{qa();il=class{constructor(t){this.target=Un.TEXTURE_2D,this._layerInitMask=0,this.texture=t,this.width=-1,this.height=-1,this.type=at.UNSIGNED_BYTE,this.internalFormat=$a.RGBA,this.format=$a.RGBA,this.samplerType=0}destroy(){}}});var fb,pb=p(()=>{"use strict";fb={id:"buffer",upload(i,t,e,r,s,n=!1){let o=s||t.target;!n&&t.width===i.width&&t.height===i.height?e.texSubImage2D(o,0,0,0,i.width,i.height,t.format,t.type,i.resource):e.texImage2D(o,0,t.internalFormat,i.width,i.height,0,t.format,t.type,i.resource),t.width=i.width,t.height=i.height}}});var WT,mb,gb=p(()=>{"use strict";WT={"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},mb={id:"compressed",upload(i,t,e,r,s,n){let o=s??t.target;e.pixelStorei(e.UNPACK_ALIGNMENT,4);let a=i.pixelWidth,l=i.pixelHeight,c=!!WT[i.format];for(let h=0;h<i.resource.length;h++){let u=i.resource[h];c?e.compressedTexImage2D(o,h,t.internalFormat,a,l,0,u):e.texImage2D(o,h,t.internalFormat,a,l,0,t.format,t.type,u),a=Math.max(a>>1,1),l=Math.max(l>>1,1)}}}});function _b(i){return{id:"cube",upload(t,e,r,s){let n=t.faces;for(let o=0;o<xb.length;o++){let a=xb[o],l=n[a];if(!l.resource)continue;(i[l.uploadMethodId]||i.image).upload(l,e,r,s,Un.TEXTURE_CUBE_MAP_POSITIVE_X+o,(e._layerInitMask&1<<o)===0),e._layerInitMask|=1<<o}e.width=t.pixelWidth,e.height=t.pixelHeight}}}var xb,yb=p(()=>{qa();xb=["right","left","top","bottom","front","back"]});function VT(i,t,e,r,s,n,o,a,l,c){if(!c){l&&i.texImage2D(t,0,e.internalFormat,r,s,0,e.format,e.type,null),i.texSubImage2D(t,0,0,0,n,o,e.format,e.type,a);return}if(!l){i.texSubImage2D(t,0,0,0,e.format,e.type,a);return}i.texImage2D(t,0,e.internalFormat,r,s,0,e.format,e.type,a)}function jT(i,t,e,r,s,n,o,a,l,c){if(!c){l&&i.texImage2D(t,0,e.internalFormat,r,s,0,e.format,e.type,null),i.texSubImage2D(t,0,0,0,e.format,e.type,a);return}if(!l){i.texSubImage2D(t,0,0,0,e.format,e.type,a);return}i.texImage2D(t,0,e.internalFormat,e.format,e.type,a)}var sl,Bu=p(()=>{"use strict";sl={id:"image",upload(i,t,e,r,s,n=!1){let o=s||t.target,a=i.pixelWidth,l=i.pixelHeight,c=i.resourceWidth,h=i.resourceHeight,u=r===2,d=n||t.width!==a||t.height!==l,f=c>=a&&h>=l,m=i.resource;(u?VT:jT)(e,o,t,a,l,c,h,m,d,f),t.width=a,t.height=l}}});function bb(){let{userAgent:i}=W.get().getNavigator();return/^((?!chrome|android).)*safari/i.test(i)}var vb=p(()=>{xt()});var XT,Sb,Tb=p(()=>{vb();Bu();XT=bb(),Sb={id:"video",upload(i,t,e,r,s,n=XT){if(!i.isValid){let o=s??t.target;e.texImage2D(o,0,t.internalFormat,1,1,0,t.format,t.type,null);return}sl.upload(i,t,e,r,s,n)}}});var Iu,wb,nl,Cb,Eb=p(()=>{"use strict";Iu={linear:9729,nearest:9728},wb={linear:{linear:9987,nearest:9985},nearest:{linear:9986,nearest:9984}},nl={"clamp-to-edge":33071,repeat:10497,"mirror-repeat":33648},Cb={never:512,less:513,equal:514,"less-equal":515,greater:516,"not-equal":517,"greater-equal":518,always:519}});function Gu(i,t,e,r,s,n,o,a){let l=n;if(!a||i.addressModeU!=="repeat"||i.addressModeV!=="repeat"||i.addressModeW!=="repeat"){let c=nl[o?"clamp-to-edge":i.addressModeU],h=nl[o?"clamp-to-edge":i.addressModeV],u=nl[o?"clamp-to-edge":i.addressModeW];t[s](l,t.TEXTURE_WRAP_S,c),t[s](l,t.TEXTURE_WRAP_T,h),t.TEXTURE_WRAP_R&&t[s](l,t.TEXTURE_WRAP_R,u)}if((!a||i.magFilter!=="linear")&&t[s](l,t.TEXTURE_MAG_FILTER,Iu[i.magFilter]),e){if(!a||i.mipmapFilter!=="linear"){let c=wb[i.minFilter][i.mipmapFilter];t[s](l,t.TEXTURE_MIN_FILTER,c)}}else t[s](l,t.TEXTURE_MIN_FILTER,Iu[i.minFilter]);if(r&&i.maxAnisotropy>1){let c=Math.min(i.maxAnisotropy,t.getParameter(r.MAX_TEXTURE_MAX_ANISOTROPY_EXT));t[s](l,r.TEXTURE_MAX_ANISOTROPY_EXT,c)}i.compare?(t[s](l,t.TEXTURE_COMPARE_FUNC,Cb[i.compare]),t[s](l,t.TEXTURE_COMPARE_MODE,t.COMPARE_REF_TO_TEXTURE)):a||t[s](l,t.TEXTURE_COMPARE_MODE,t.NONE)}var Pb=p(()=>{Eb()});function Mb(i){return{r8unorm:i.RED,r8snorm:i.RED,r8uint:i.RED,r8sint:i.RED,r16uint:i.RED,r16sint:i.RED,r16float:i.RED,rg8unorm:i.RG,rg8snorm:i.RG,rg8uint:i.RG,rg8sint:i.RG,r32uint:i.RED,r32sint:i.RED,r32float:i.RED,rg16uint:i.RG,rg16sint:i.RG,rg16float:i.RG,rgba8unorm:i.RGBA,"rgba8unorm-srgb":i.RGBA,rgba8snorm:i.RGBA,rgba8uint:i.RGBA,rgba8sint:i.RGBA,bgra8unorm:i.RGBA,"bgra8unorm-srgb":i.RGBA,rgb9e5ufloat:i.RGB,rgb10a2unorm:i.RGBA,rg11b10ufloat:i.RGB,rg32uint:i.RG,rg32sint:i.RG,rg32float:i.RG,rgba16uint:i.RGBA,rgba16sint:i.RGBA,rgba16float:i.RGBA,rgba32uint:i.RGBA,rgba32sint:i.RGBA,rgba32float:i.RGBA,stencil8:i.STENCIL_INDEX8,depth16unorm:i.DEPTH_COMPONENT,depth24plus:i.DEPTH_COMPONENT,"depth24plus-stencil8":i.DEPTH_STENCIL,depth32float:i.DEPTH_COMPONENT,"depth32float-stencil8":i.DEPTH_STENCIL}}var Ab=p(()=>{"use strict"});function Rb(i,t){let e={},r=i.RGBA;return i instanceof W.get().getWebGLRenderingContext()?t.srgb&&(e={"rgba8unorm-srgb":t.srgb.SRGB8_ALPHA8_EXT,"bgra8unorm-srgb":t.srgb.SRGB8_ALPHA8_EXT}):(e={"rgba8unorm-srgb":i.SRGB8_ALPHA8,"bgra8unorm-srgb":i.SRGB8_ALPHA8},r=i.RGBA8),{r8unorm:i.R8,r8snorm:i.R8_SNORM,r8uint:i.R8UI,r8sint:i.R8I,r16uint:i.R16UI,r16sint:i.R16I,r16float:i.R16F,rg8unorm:i.RG8,rg8snorm:i.RG8_SNORM,rg8uint:i.RG8UI,rg8sint:i.RG8I,r32uint:i.R32UI,r32sint:i.R32I,r32float:i.R32F,rg16uint:i.RG16UI,rg16sint:i.RG16I,rg16float:i.RG16F,rgba8unorm:i.RGBA,...e,rgba8snorm:i.RGBA8_SNORM,rgba8uint:i.RGBA8UI,rgba8sint:i.RGBA8I,bgra8unorm:r,rgb9e5ufloat:i.RGB9_E5,rgb10a2unorm:i.RGB10_A2,rg11b10ufloat:i.R11F_G11F_B10F,rg32uint:i.RG32UI,rg32sint:i.RG32I,rg32float:i.RG32F,rgba16uint:i.RGBA16UI,rgba16sint:i.RGBA16I,rgba16float:i.RGBA16F,rgba32uint:i.RGBA32UI,rgba32sint:i.RGBA32I,rgba32float:i.RGBA32F,stencil8:i.STENCIL_INDEX8,depth16unorm:i.DEPTH_COMPONENT16,depth24plus:i.DEPTH_COMPONENT24,"depth24plus-stencil8":i.DEPTH24_STENCIL8,depth32float:i.DEPTH_COMPONENT32F,"depth32float-stencil8":i.DEPTH32F_STENCIL8,...t.s3tc?{"bc1-rgba-unorm":t.s3tc.COMPRESSED_RGBA_S3TC_DXT1_EXT,"bc2-rgba-unorm":t.s3tc.COMPRESSED_RGBA_S3TC_DXT3_EXT,"bc3-rgba-unorm":t.s3tc.COMPRESSED_RGBA_S3TC_DXT5_EXT}:{},...t.s3tc_sRGB?{"bc1-rgba-unorm-srgb":t.s3tc_sRGB.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT,"bc2-rgba-unorm-srgb":t.s3tc_sRGB.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT,"bc3-rgba-unorm-srgb":t.s3tc_sRGB.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT}:{},...t.rgtc?{"bc4-r-unorm":t.rgtc.COMPRESSED_RED_RGTC1_EXT,"bc4-r-snorm":t.rgtc.COMPRESSED_SIGNED_RED_RGTC1_EXT,"bc5-rg-unorm":t.rgtc.COMPRESSED_RED_GREEN_RGTC2_EXT,"bc5-rg-snorm":t.rgtc.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT}:{},...t.bptc?{"bc6h-rgb-float":t.bptc.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT,"bc6h-rgb-ufloat":t.bptc.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT,"bc7-rgba-unorm":t.bptc.COMPRESSED_RGBA_BPTC_UNORM_EXT,"bc7-rgba-unorm-srgb":t.bptc.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT}:{},...t.etc?{"etc2-rgb8unorm":t.etc.COMPRESSED_RGB8_ETC2,"etc2-rgb8unorm-srgb":t.etc.COMPRESSED_SRGB8_ETC2,"etc2-rgb8a1unorm":t.etc.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2,"etc2-rgb8a1unorm-srgb":t.etc.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2,"etc2-rgba8unorm":t.etc.COMPRESSED_RGBA8_ETC2_EAC,"etc2-rgba8unorm-srgb":t.etc.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC,"eac-r11unorm":t.etc.COMPRESSED_R11_EAC,"eac-rg11unorm":t.etc.COMPRESSED_SIGNED_RG11_EAC}:{},...t.astc?{"astc-4x4-unorm":t.astc.COMPRESSED_RGBA_ASTC_4x4_KHR,"astc-4x4-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR,"astc-5x4-unorm":t.astc.COMPRESSED_RGBA_ASTC_5x4_KHR,"astc-5x4-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR,"astc-5x5-unorm":t.astc.COMPRESSED_RGBA_ASTC_5x5_KHR,"astc-5x5-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR,"astc-6x5-unorm":t.astc.COMPRESSED_RGBA_ASTC_6x5_KHR,"astc-6x5-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR,"astc-6x6-unorm":t.astc.COMPRESSED_RGBA_ASTC_6x6_KHR,"astc-6x6-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR,"astc-8x5-unorm":t.astc.COMPRESSED_RGBA_ASTC_8x5_KHR,"astc-8x5-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR,"astc-8x6-unorm":t.astc.COMPRESSED_RGBA_ASTC_8x6_KHR,"astc-8x6-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR,"astc-8x8-unorm":t.astc.COMPRESSED_RGBA_ASTC_8x8_KHR,"astc-8x8-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR,"astc-10x5-unorm":t.astc.COMPRESSED_RGBA_ASTC_10x5_KHR,"astc-10x5-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR,"astc-10x6-unorm":t.astc.COMPRESSED_RGBA_ASTC_10x6_KHR,"astc-10x6-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR,"astc-10x8-unorm":t.astc.COMPRESSED_RGBA_ASTC_10x8_KHR,"astc-10x8-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR,"astc-10x10-unorm":t.astc.COMPRESSED_RGBA_ASTC_10x10_KHR,"astc-10x10-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR,"astc-12x10-unorm":t.astc.COMPRESSED_RGBA_ASTC_12x10_KHR,"astc-12x10-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR,"astc-12x12-unorm":t.astc.COMPRESSED_RGBA_ASTC_12x12_KHR,"astc-12x12-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR}:{}}}var kb=p(()=>{xt()});function Bb(i){return{r8unorm:i.UNSIGNED_BYTE,r8snorm:i.BYTE,r8uint:i.UNSIGNED_BYTE,r8sint:i.BYTE,r16uint:i.UNSIGNED_SHORT,r16sint:i.SHORT,r16float:i.HALF_FLOAT,rg8unorm:i.UNSIGNED_BYTE,rg8snorm:i.BYTE,rg8uint:i.UNSIGNED_BYTE,rg8sint:i.BYTE,r32uint:i.UNSIGNED_INT,r32sint:i.INT,r32float:i.FLOAT,rg16uint:i.UNSIGNED_SHORT,rg16sint:i.SHORT,rg16float:i.HALF_FLOAT,rgba8unorm:i.UNSIGNED_BYTE,"rgba8unorm-srgb":i.UNSIGNED_BYTE,rgba8snorm:i.BYTE,rgba8uint:i.UNSIGNED_BYTE,rgba8sint:i.BYTE,bgra8unorm:i.UNSIGNED_BYTE,"bgra8unorm-srgb":i.UNSIGNED_BYTE,rgb9e5ufloat:i.UNSIGNED_INT_5_9_9_9_REV,rgb10a2unorm:i.UNSIGNED_INT_2_10_10_10_REV,rg11b10ufloat:i.UNSIGNED_INT_10F_11F_11F_REV,rg32uint:i.UNSIGNED_INT,rg32sint:i.INT,rg32float:i.FLOAT,rgba16uint:i.UNSIGNED_SHORT,rgba16sint:i.SHORT,rgba16float:i.HALF_FLOAT,rgba32uint:i.UNSIGNED_INT,rgba32sint:i.INT,rgba32float:i.FLOAT,stencil8:i.UNSIGNED_BYTE,depth16unorm:i.UNSIGNED_SHORT,depth24plus:i.UNSIGNED_INT,"depth24plus-stencil8":i.UNSIGNED_INT_24_8,depth32float:i.FLOAT,"depth32float-stencil8":i.FLOAT_32_UNSIGNED_INT_24_8_REV}}var Ib=p(()=>{"use strict"});function Gb(i){return{"2d":i.TEXTURE_2D,cube:i.TEXTURE_CUBE_MAP,"1d":null,"3d":i?.TEXTURE_3D||null,"2d-array":i?.TEXTURE_2D_ARRAY||null,"cube-array":i?.TEXTURE_CUBE_MAP_ARRAY||null}}var Fb=p(()=>{"use strict"});var YT,Fu,Uu,Db=p(()=>{xt();P();Ie();gt();db();pb();gb();yb();Bu();Tb();Pb();Ab();kb();Ib();Fb();YT=4,Fu=class Ub{constructor(t){this._glSamplers=Object.create(null),this._boundTextures=[],this._activeTextureLocation=-1,this._boundSamplers=Object.create(null),this._premultiplyAlpha=!1,this._useSeparateSamplers=!1,this._renderer=t,this._managedTextures=new kt({renderer:t,type:"resource",onUnload:this.onSourceUnload.bind(this),name:"glTexture"});let e={image:sl,buffer:fb,video:Sb,compressed:mb,...Ub.uploadExtensions};this._uploads={...e,cube:_b(e)}}get managedTextures(){return Object.values(this._managedTextures.items)}contextChange(t){this._gl=t,this._mapFormatToInternalFormat||(this._mapFormatToInternalFormat=Rb(t,this._renderer.context.extensions),this._mapFormatToType=Bb(t),this._mapFormatToFormat=Mb(t),this._mapViewDimensionToGlTarget=Gb(t)),this._managedTextures.removeAll(!0),this._glSamplers=Object.create(null),this._boundSamplers=Object.create(null),this._premultiplyAlpha=!1;for(let e=0;e<16;e++)this.bind(U.EMPTY,e)}initSource(t){this.bind(t)}bind(t,e=0){let r=t.source;t?(this.bindSource(r,e),this._useSeparateSamplers&&this._bindSampler(r.style,e)):(this.bindSource(null,e),this._useSeparateSamplers&&this._bindSampler(null,e))}bindSource(t,e=0){let r=this._gl;if(t._gcLastUsed=this._renderer.gc.now,this._boundTextures[e]!==t){this._boundTextures[e]=t,this._activateLocation(e),t||(t=U.EMPTY.source);let s=this.getGlSource(t);r.bindTexture(s.target,s.texture)}}_bindSampler(t,e=0){let r=this._gl;if(!t){this._boundSamplers[e]=null,r.bindSampler(e,null);return}let s=this._getGlSampler(t);this._boundSamplers[e]!==s&&(this._boundSamplers[e]=s,r.bindSampler(e,s))}unbind(t){let e=t.source,r=this._boundTextures,s=this._gl;for(let n=0;n<r.length;n++)if(r[n]===e){this._activateLocation(n);let o=this.getGlSource(e);s.bindTexture(o.target,null),r[n]=null}}_activateLocation(t){this._activeTextureLocation!==t&&(this._activeTextureLocation=t,this._gl.activeTexture(this._gl.TEXTURE0+t))}_initSource(t){let e=this._gl,r=new il(e.createTexture());if(r.type=this._mapFormatToType[t.format],r.internalFormat=this._mapFormatToInternalFormat[t.format],r.format=this._mapFormatToFormat[t.format],r.target=this._mapViewDimensionToGlTarget[t.viewDimension],r.target===null)throw new Error(`Unsupported view dimension: ${t.viewDimension} with this webgl version: ${this._renderer.context.webGLVersion}`);if(t.autoGenerateMipmaps&&(this._renderer.context.supports.nonPowOf2mipmaps||t.isPowerOfTwo)){let n=Math.max(t.width,t.height);t.mipLevelCount=Math.floor(Math.log2(n))+1}return t._gpuData[this._renderer.uid]=r,this._managedTextures.add(t)&&(t.on("update",this.onSourceUpdate,this),t.on("resize",this.onSourceUpdate,this),t.on("styleChange",this.onStyleChange,this),t.on("updateMipmaps",this.onUpdateMipmaps,this)),this.onSourceUpdate(t),this.updateStyle(t,!1),r}onStyleChange(t){this.updateStyle(t,!1)}updateStyle(t,e){let r=this._gl,s=this.getGlSource(t);r.bindTexture(s.target,s.texture),this._boundTextures[this._activeTextureLocation]=t,Gu(t.style,r,t.mipLevelCount>1,this._renderer.context.extensions.anisotropicFiltering,"texParameteri",s.target,!this._renderer.context.supports.nonPowOf2wrapping&&!t.isPowerOfTwo,e)}onSourceUnload(t,e=!1){let r=t._gpuData[this._renderer.uid];r&&(e||(this.unbind(t),this._gl.deleteTexture(r.texture)),t.off("update",this.onSourceUpdate,this),t.off("resize",this.onSourceUpdate,this),t.off("styleChange",this.onStyleChange,this),t.off("updateMipmaps",this.onUpdateMipmaps,this))}onSourceUpdate(t){let e=this._gl,r=this.getGlSource(t);e.bindTexture(r.target,r.texture),this._boundTextures[this._activeTextureLocation]=t;let s=t.alphaMode==="premultiply-alpha-on-upload";if(this._premultiplyAlpha!==s&&(this._premultiplyAlpha=s,e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,s)),this._uploads[t.uploadMethodId])this._uploads[t.uploadMethodId].upload(t,r,e,this._renderer.context.webGLVersion);else if(r.target===e.TEXTURE_2D)this._initEmptyTexture2D(r,t);else if(r.target===e.TEXTURE_2D_ARRAY)this._initEmptyTexture2DArray(r,t);else if(r.target===e.TEXTURE_CUBE_MAP)this._initEmptyTextureCube(r,t);else throw new Error("[GlTextureSystem] Unsupported texture target for empty allocation.");this._applyMipRange(r,t),t.autoGenerateMipmaps&&t.mipLevelCount>1&&this.onUpdateMipmaps(t,!1)}onUpdateMipmaps(t,e=!0){e&&this.bindSource(t,0);let r=this.getGlSource(t);this._gl.generateMipmap(r.target)}_initEmptyTexture2D(t,e){let r=this._gl;r.texImage2D(r.TEXTURE_2D,0,t.internalFormat,e.pixelWidth,e.pixelHeight,0,t.format,t.type,null);let s=Math.max(e.pixelWidth>>1,1),n=Math.max(e.pixelHeight>>1,1);for(let o=1;o<e.mipLevelCount;o++)r.texImage2D(r.TEXTURE_2D,o,t.internalFormat,s,n,0,t.format,t.type,null),s=Math.max(s>>1,1),n=Math.max(n>>1,1)}_initEmptyTexture2DArray(t,e){if(this._renderer.context.webGLVersion!==2)throw new Error("[GlTextureSystem] TEXTURE_2D_ARRAY requires WebGL2.");let r=this._gl,s=Math.max(e.arrayLayerCount|0,1);r.texImage3D(r.TEXTURE_2D_ARRAY,0,t.internalFormat,e.pixelWidth,e.pixelHeight,s,0,t.format,t.type,null);let n=Math.max(e.pixelWidth>>1,1),o=Math.max(e.pixelHeight>>1,1);for(let a=1;a<e.mipLevelCount;a++)r.texImage3D(r.TEXTURE_2D_ARRAY,a,t.internalFormat,n,o,s,0,t.format,t.type,null),n=Math.max(n>>1,1),o=Math.max(o>>1,1)}_initEmptyTextureCube(t,e){let r=this._gl,s=6;for(let a=0;a<s;a++)r.texImage2D(r.TEXTURE_CUBE_MAP_POSITIVE_X+a,0,t.internalFormat,e.pixelWidth,e.pixelHeight,0,t.format,t.type,null);let n=Math.max(e.pixelWidth>>1,1),o=Math.max(e.pixelHeight>>1,1);for(let a=1;a<e.mipLevelCount;a++){for(let l=0;l<s;l++)r.texImage2D(r.TEXTURE_CUBE_MAP_POSITIVE_X+l,a,t.internalFormat,n,o,0,t.format,t.type,null);n=Math.max(n>>1,1),o=Math.max(o>>1,1)}}_applyMipRange(t,e){if(this._renderer.context.webGLVersion!==2||e.mipLevelCount<=1)return;let r=this._gl,s=Math.max((e.mipLevelCount|0)-1,0);r.texParameteri(t.target,r.TEXTURE_BASE_LEVEL,0),r.texParameteri(t.target,r.TEXTURE_MAX_LEVEL,s)}_initSampler(t){let e=this._gl,r=this._gl.createSampler();return this._glSamplers[t._resourceId]=r,Gu(t,e,this._boundTextures[this._activeTextureLocation].mipLevelCount>1,this._renderer.context.extensions.anisotropicFiltering,"samplerParameteri",r,!1,!0),this._glSamplers[t._resourceId]}_getGlSampler(t){return this._glSamplers[t._resourceId]||this._initSampler(t)}getGlSource(t){return t._gcLastUsed=this._renderer.gc.now,t._gpuData[this._renderer.uid]||this._initSource(t)}generateCanvas(t){let{pixels:e,width:r,height:s}=this.getPixels(t),n=W.get().createCanvas();n.width=r,n.height=s;let o=n.getContext("2d");if(o){let a=o.createImageData(r,s);a.data.set(e),o.putImageData(a,0,0)}return n}getPixels(t){let e=t.source.resolution,r=t.frame,s=Math.max(Math.round(r.width*e),1),n=Math.max(Math.round(r.height*e),1),o=new Uint8Array(YT*s*n),a=this._renderer,l=a.renderTarget.getRenderTarget(t),c=a.renderTarget.getGpuRenderTarget(l),h=a.gl;return a.renderTarget.adaptor.bindFramebuffer(c.resolveTargetFramebuffer),h.readPixels(Math.round(r.x*e),Math.round(r.y*e),s,n,h.RGBA,h.UNSIGNED_BYTE,o),{pixels:new Uint8ClampedArray(o.buffer),width:s,height:n}}destroy(){this._managedTextures.destroy(),this._glSamplers=null,this._boundTextures=null,this._boundSamplers=null,this._mapFormatToInternalFormat=null,this._mapFormatToType=null,this._mapFormatToFormat=null,this._uploads=null,this._renderer=null}resetState(){this._activeTextureLocation=-1,this._boundTextures.fill(U.EMPTY.source),this._boundSamplers=Object.create(null);let t=this._gl;this._premultiplyAlpha=!1,t.pixelStorei(t.UNPACK_PREMULTIPLY_ALPHA_WEBGL,this._premultiplyAlpha)}};Fu.extension={type:[y.WebGLSystem],name:"texture"};Fu.uploadExtensions=Object.create(null);Uu=Fu;z.handleByMap(y.TextureUploaderWebGL,Uu.uploadExtensions)});var zb={};zl(zb,{WebGLRenderer:()=>Du});var $T,qT,KT,Lb,Ob,Nb,Du,Hb=p(()=>{P();hy();uy();dy();Vr();Da();Ne();my();_y();Sy();Cy();Ey();Py();My();Ay();Su();Dy();Au();Ru();ub();Db();$T=[...Xi,Jr,wy,xy,Nn,Fn,Uu,Wn,Dn,ei,ti,On,hb,zn,Ln],qT=[...Ua],KT=[In,Bn,kn],Lb=[],Ob=[],Nb=[];z.handleByNamedList(y.WebGLSystem,Lb);z.handleByNamedList(y.WebGLPipes,Ob);z.handleByNamedList(y.WebGLPipesAdaptor,Nb);z.add(...$T,...qT,...KT);Du=class extends Te{constructor(){let t={name:"webgl",type:Lt.WEBGL,systems:Lb,renderPipes:Ob,renderPipeAdaptors:Nb};super(t)}}});function Wb(i,t,e,r,s,n,o,a){let l=i-e*s,c=t-r*s,h=i+e*n,u=t+r*n,d,f;o?(d=r,f=-e):(d=-r,f=e);let m=l+d,g=c+f,_=h+d,x=u+f;return a.push(m,g),a.push(_,x),2}function ri(i,t,e,r,s,n,o,a){let l=e-i,c=r-t,h=Math.atan2(l,c),u=Math.atan2(s-i,n-t);a&&h<u?h+=Math.PI*2:!a&&h>u&&(u+=Math.PI*2);let d=h,f=u-h,m=Math.abs(f),g=Math.sqrt(l*l+c*c),_=(15*m*Math.sqrt(g)/Math.PI>>0)+1,x=f/_;if(d+=x,a){o.push(i,t),o.push(e,r);for(let b=1,v=d;b<_;b++,v+=x)o.push(i,t),o.push(i+Math.sin(v)*g,t+Math.cos(v)*g);o.push(i,t),o.push(s,n)}else{o.push(e,r),o.push(i,t);for(let b=1,v=d;b<_;b++,v+=x)o.push(i+Math.sin(v)*g,t+Math.cos(v)*g),o.push(i,t);o.push(s,n),o.push(i,t)}return _*2}function Ki(i,t,e,r,s,n){let o=1e-4;if(i.length===0)return;let a=t,l=a.alignment;if(t.alignment!==.5){let G=qo(i);e&&(G*=-1),l=(l-.5)*G+.5}let c=new nt(i[0],i[1]),h=new nt(i[i.length-2],i[i.length-1]),u=r,d=Math.abs(c.x-h.x)<o&&Math.abs(c.y-h.y)<o;if(u){i=i.slice(),d&&(i.pop(),i.pop(),h.set(i[i.length-2],i[i.length-1]));let G=(c.x+h.x)*.5,Y=(h.y+c.y)*.5;i.unshift(G,Y),i.push(G,Y)}let f=s,m=i.length/2,g=i.length,_=f.length/2,x=a.width/2,b=x*x,v=a.miterLimit*a.miterLimit,S=i[0],T=i[1],w=i[2],E=i[3],B=0,R=0,M=-(T-E),C=S-w,A=0,D=0,H=Math.sqrt(M*M+C*C);M/=H,C/=H,M*=x,C*=x;let K=l,I=(1-K)*2,F=K*2;u||(a.cap==="round"?g+=ri(S-M*(I-F)*.5,T-C*(I-F)*.5,S-M*I,T-C*I,S+M*F,T+C*F,f,!0)+2:a.cap==="square"&&(g+=Wb(S,T,M,C,I,F,!0,f))),f.push(S-M*I,T-C*I),f.push(S+M*F,T+C*F);for(let G=1;G<m-1;++G){S=i[(G-1)*2],T=i[(G-1)*2+1],w=i[G*2],E=i[G*2+1],B=i[(G+1)*2],R=i[(G+1)*2+1],M=-(T-E),C=S-w,H=Math.sqrt(M*M+C*C),M/=H,C/=H,M*=x,C*=x,A=-(E-R),D=w-B,H=Math.sqrt(A*A+D*D),A/=H,D/=H,A*=x,D*=x;let Y=w-S,pt=T-E,Tt=w-B,lt=R-E,ft=Y*Tt+pt*lt,q=pt*Tt-lt*Y,jt=q<0;if(Math.abs(q)<.001*Math.abs(ft)){f.push(w-M*I,E-C*I),f.push(w+M*F,E+C*F),ft>=0&&(a.join==="round"?g+=ri(w,E,w-M*I,E-C*I,w-A*I,E-D*I,f,!1)+4:g+=2,f.push(w-A*F,E-D*F),f.push(w+A*I,E+D*I));continue}let hi=(-M+S)*(-C+E)-(-M+w)*(-C+T),Cr=(-A+B)*(-D+E)-(-A+w)*(-D+R),N=(Y*Cr-Tt*hi)/q,et=(lt*hi-pt*Cr)/q,ct=(N-w)*(N-w)+(et-E)*(et-E),It=w+(N-w)*I,St=E+(et-E)*I,Kt=w-(N-w)*F,Bt=E-(et-E)*F,xe=Math.min(Y*Y+pt*pt,Tt*Tt+lt*lt),Xt=jt?I:F,$e=xe+Xt*Xt*b;ct<=$e?a.join==="bevel"||ct/b>v?(jt?(f.push(It,St),f.push(w+M*F,E+C*F),f.push(It,St),f.push(w+A*F,E+D*F)):(f.push(w-M*I,E-C*I),f.push(Kt,Bt),f.push(w-A*I,E-D*I),f.push(Kt,Bt)),g+=2):a.join==="round"?jt?(f.push(It,St),f.push(w+M*F,E+C*F),g+=ri(w,E,w+M*F,E+C*F,w+A*F,E+D*F,f,!0)+4,f.push(It,St),f.push(w+A*F,E+D*F)):(f.push(w-M*I,E-C*I),f.push(Kt,Bt),g+=ri(w,E,w-M*I,E-C*I,w-A*I,E-D*I,f,!1)+4,f.push(w-A*I,E-D*I),f.push(Kt,Bt)):(f.push(It,St),f.push(Kt,Bt)):(f.push(w-M*I,E-C*I),f.push(w+M*F,E+C*F),a.join==="round"?jt?g+=ri(w,E,w+M*F,E+C*F,w+A*F,E+D*F,f,!0)+2:g+=ri(w,E,w-M*I,E-C*I,w-A*I,E-D*I,f,!1)+2:a.join==="miter"&&ct/b<=v&&(jt?(f.push(Kt,Bt),f.push(Kt,Bt)):(f.push(It,St),f.push(It,St)),g+=2),f.push(w-A*I,E-D*I),f.push(w+A*F,E+D*F),g+=2)}S=i[(m-2)*2],T=i[(m-2)*2+1],w=i[(m-1)*2],E=i[(m-1)*2+1],M=-(T-E),C=S-w,H=Math.sqrt(M*M+C*C),M/=H,C/=H,M*=x,C*=x,f.push(w-M*I,E-C*I),f.push(w+M*F,E+C*F),u||(a.cap==="round"?g+=ri(w-M*(I-F)*.5,E-C*(I-F)*.5,w-M*I,E-C*I,w+M*F,E+C*F,f,!1)+2:a.cap==="square"&&(g+=Wb(w,E,M,C,I,F,!1,f)));let j=1e-4*1e-4;for(let G=_;G<g+_-2;++G)S=f[G*2],T=f[G*2+1],w=f[(G+1)*2],E=f[(G+1)*2+1],B=f[(G+2)*2],R=f[(G+2)*2+1],!(Math.abs(S*(E-R)+w*(R-T)+B*(T-E))<j)&&n.push(G,G+1,G+2)}var ol=p(()=>{zc();Ee()});function jb(i,t){for(let e=0;e<t.length;e++){let r=t[e];i.addColorStop(r.offset,r.color)}}function Xb(i,t){let e=W.get().createCanvas(i,t),r=e.getContext("2d");return{canvas:e,context:r}}function JT(i){let t=i[0]??{};return(typeof t=="number"||i[1])&&(O("8.5.2","use options object instead"),t={type:"linear",start:{x:i[0],y:i[1]},end:{x:i[2],y:i[3]},textureSpace:i[4],textureSize:i[5]??ee.defaultLinearOptions.textureSize}),t}var Vb,Ou,ee,ii=p(()=>{Qt();xt();ot();Vo();gt();Ft();yt();nc();Vb=[{offset:0,color:"white"},{offset:1,color:"black"}],Ou=class Lu{constructor(...t){this.uid=$("fillGradient"),this._tick=0,this.type="linear",this.colorStops=[];let e=JT(t);e={...e.type==="radial"?Lu.defaultRadialOptions:Lu.defaultLinearOptions,...Ro(e)},this._textureSize=e.textureSize,this._wrapMode=e.wrapMode,e.type==="radial"?(this.center=e.center,this.outerCenter=e.outerCenter??this.center,this.innerRadius=e.innerRadius,this.outerRadius=e.outerRadius,this.scale=e.scale,this.rotation=e.rotation):(this.start=e.start,this.end=e.end),this.textureSpace=e.textureSpace,this.type=e.type,e.colorStops.forEach(s=>{this.addColorStop(s.offset,s.color)})}addColorStop(t,e){return this.colorStops.push({offset:t,color:Q.shared.setValue(e).toHexa()}),this}buildLinearGradient(){if(this.texture)return;let{x:t,y:e}=this.start,{x:r,y:s}=this.end,n=r-t,o=s-e,a=n<0||o<0;if(this._wrapMode==="clamp-to-edge"){if(n<0){let _=t;t=r,r=_,n*=-1}if(o<0){let _=e;e=s,s=_,o*=-1}}let l=this.colorStops.length?this.colorStops:Vb,c=this._textureSize,{canvas:h,context:u}=Xb(c,1),d=a?u.createLinearGradient(this._textureSize,0,0,0):u.createLinearGradient(0,0,this._textureSize,0);jb(d,l),u.fillStyle=d,u.fillRect(0,0,c,1),this.texture=new U({source:new Re({resource:h,addressMode:this._wrapMode})});let f=Math.sqrt(n*n+o*o),m=Math.atan2(o,n),g=new k;g.scale(f/c,1),g.rotate(m),g.translate(t,e),this.textureSpace==="local"&&g.scale(c,c),this.transform=g}buildGradient(){this.texture||this._tick++,this.type==="linear"?this.buildLinearGradient():this.buildRadialGradient()}buildRadialGradient(){if(this.texture)return;let t=this.colorStops.length?this.colorStops:Vb,e=this._textureSize,{canvas:r,context:s}=Xb(e,e),{x:n,y:o}=this.center,{x:a,y:l}=this.outerCenter,c=this.innerRadius,h=this.outerRadius,u=a-h,d=l-h,f=e/(h*2),m=(n-u)*f,g=(o-d)*f,_=s.createRadialGradient(m,g,c*f,(a-u)*f,(l-d)*f,h*f);jb(_,t),s.fillStyle=t[t.length-1].color,s.fillRect(0,0,e,e),s.fillStyle=_,s.translate(m,g),s.rotate(this.rotation),s.scale(1,this.scale),s.translate(-m,-g),s.fillRect(0,0,e,e),this.texture=new U({source:new Re({resource:r,addressMode:this._wrapMode})});let x=new k;this.textureSpace==="local"?x.scale(2*h,2*h):x.scale(1/f,1/f),x.translate(u,d),this.transform=x}destroy(){this.texture?.destroy(!0),this.texture=null,this.transform=null,this.colorStops=[],this.start=null,this.end=null,this.center=null,this.outerCenter=null}get styleKey(){return`fill-gradient-${this.uid}-${this._tick}`}};Ou.defaultLinearOptions={start:{x:0,y:0},end:{x:0,y:1},colorStops:[],textureSpace:"local",type:"linear",textureSize:256,wrapMode:"clamp-to-edge"};Ou.defaultRadialOptions={center:{x:.5,y:.5},innerRadius:0,outerRadius:.5,colorStops:[],scale:1,rotation:0,textureSpace:"local",type:"radial",textureSize:256,wrapMode:"clamp-to-edge"};ee=Ou});function tw(i){return i.texture!==void 0}var Yb,Ge,Vn=p(()=>{ot();Ft();Yb={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"}},Ge=class{constructor(t,e){this.uid=$("fillPattern"),this._tick=0,this.transform=new k;let r=tw(t)?t:{texture:t,repetition:e};this.texture=r.texture,this.textureSpace=r.textureSpace??"global";let s=r.repetition;s&&(this.texture.source.style.addressModeU=Yb[s].addressModeU,this.texture.source.style.addressModeV=Yb[s].addressModeV)}setTransform(t){if(t){if(this.transform.equals(t))return;this.transform.copyFrom(t)}else{if(this.transform.isIdentity())return;this.transform.identity()}this._tick++}get texture(){return this._texture}set texture(t){this._texture!==t&&(this._texture=t,this._tick++)}get styleKey(){return`fill-pattern-${this.uid}-${this._tick}`}destroy(){this.texture.destroy(!0),this.texture=null}}});function $b(i,t,e,r,s,n,o,a=null){let l=0;e*=t,s*=n;let c=a.a,h=a.b,u=a.c,d=a.d,f=a.tx,m=a.ty;for(;l<o;){let g=i[e],_=i[e+1];r[s]=c*g+u*_+f,r[s+1]=h*g+d*_+m,s+=n,e+=t,l++}}function qb(i,t,e,r){let s=0;for(t*=e;s<r;)i[t]=0,i[t+1]=0,t+=e,s++}var Kb=p(()=>{"use strict"});function Nu(i,t,e,r,s){let n=t.a,o=t.b,a=t.c,l=t.d,c=t.tx,h=t.ty;e||(e=0),r||(r=2),s||(s=i.length/r-e);let u=e*r;for(let d=0;d<s;d++){let f=i[u],m=i[u+1];i[u]=n*f+a*m+c,i[u+1]=o*f+l*m+h,u+=r}}var Zb=p(()=>{"use strict"});var ew,si,zu=p(()=>{ot();_s();ew=new k,si=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 t=this.baseColor,e=t>>16|t&65280|(t&255)<<16,r=this.renderable;return r?Ue(e,r.groupColor)+(this.alpha*r.groupAlpha*255<<24):e+(this.alpha*255<<24)}get transform(){return this.renderable?.groupTransform||ew}copyTo(t){t.indexOffset=this.indexOffset,t.indexSize=this.indexSize,t.attributeOffset=this.attributeOffset,t.attributeSize=this.attributeSize,t.baseColor=this.baseColor,t.alpha=this.alpha,t.texture=this.texture,t.geometryData=this.geometryData,t.topology=this.topology}reset(){this.applyTransform=!0,this.renderable=null,this.topology="triangle-list"}destroy(){this.renderable=null,this.texture=null,this.geometryData=null,this._batcher=null,this._batch=null}}});var Zi,Qb,Jb,t0=p(()=>{P();Zi={extension:{type:y.ShapeBuilder,name:"circle"},build(i,t){let e,r,s,n,o,a;if(i.type==="circle"){let S=i;if(o=a=S.radius,o<=0)return!1;e=S.x,r=S.y,s=n=0}else if(i.type==="ellipse"){let S=i;if(o=S.halfWidth,a=S.halfHeight,o<=0||a<=0)return!1;e=S.x,r=S.y,s=n=0}else{let S=i,T=S.width/2,w=S.height/2;e=S.x+T,r=S.y+w,o=a=Math.max(0,Math.min(S.radius,Math.min(T,w))),s=T-o,n=w-a}if(s<0||n<0)return!1;let l=Math.ceil(2.3*Math.sqrt(o+a)),c=l*8+(s?4:0)+(n?4:0);if(c===0)return!1;if(l===0)return t[0]=t[6]=e+s,t[1]=t[3]=r+n,t[2]=t[4]=e-s,t[5]=t[7]=r-n,!0;let h=0,u=l*4+(s?2:0)+2,d=u,f=c,m=s+o,g=n,_=e+m,x=e-m,b=r+g;if(t[h++]=_,t[h++]=b,t[--u]=b,t[--u]=x,n){let S=r-g;t[d++]=x,t[d++]=S,t[--f]=S,t[--f]=_}for(let S=1;S<l;S++){let T=Math.PI/2*(S/l),w=s+Math.cos(T)*o,E=n+Math.sin(T)*a,B=e+w,R=e-w,M=r+E,C=r-E;t[h++]=B,t[h++]=M,t[--u]=M,t[--u]=R,t[d++]=R,t[d++]=C,t[--f]=C,t[--f]=B}m=s,g=n+a,_=e+m,x=e-m,b=r+g;let v=r-g;return t[h++]=_,t[h++]=b,t[--f]=v,t[--f]=_,s&&(t[h++]=x,t[h++]=b,t[--f]=v,t[--f]=x),!0},triangulate(i,t,e,r,s,n){if(i.length===0)return;let o=0,a=0;for(let h=0;h<i.length;h+=2)o+=i[h],a+=i[h+1];o/=i.length/2,a/=i.length/2;let l=r;t[l*e]=o,t[l*e+1]=a;let c=l++;for(let h=0;h<i.length;h+=2)t[l*e]=i[h],t[l*e+1]=i[h+1],h>0&&(s[n++]=l,s[n++]=c,s[n++]=l-1),l++;s[n++]=c+1,s[n++]=c,s[n++]=l-1}},Qb={...Zi,extension:{...Zi.extension,name:"ellipse"}},Jb={...Zi,extension:{...Zi.extension,name:"roundedRectangle"}}});function e0(i,t,e,r){let s=1e-4;if(i.length===0)return;let n=i[0],o=i[1],a=i[i.length-2],l=i[i.length-1],c=t||Math.abs(n-a)<s&&Math.abs(o-l)<s,h=e,u=i.length/2,d=h.length/2;for(let f=0;f<u;f++)h.push(i[f*2]),h.push(i[f*2+1]);for(let f=0;f<u-1;f++)r.push(d+f,d+f+1);c&&r.push(d+u-1,d)}var r0=p(()=>{});function al(i,t,e,r,s,n,o){let a=Pg(i,t,2);if(!a)return;for(let c=0;c<a.length;c+=3)n[o++]=a[c]+s,n[o++]=a[c+1]+s,n[o++]=a[c+2]+s;let l=s*r;for(let c=0;c<i.length;c+=2)e[l]=i[c],e[l+1]=i[c+1],l+=r}var Hu=p(()=>{Mg()});var rw,i0,s0=p(()=>{P();Hu();rw=[],i0={extension:{type:y.ShapeBuilder,name:"polygon"},build(i,t){for(let e=0;e<i.points.length;e++)t[e]=i.points[e];return!0},triangulate(i,t,e,r,s,n){al(i,rw,t,e,r,s,n)}}});var n0,o0=p(()=>{P();n0={extension:{type:y.ShapeBuilder,name:"rectangle"},build(i,t){let e=i,r=e.x,s=e.y,n=e.width,o=e.height;return n>0&&o>0?(t[0]=r,t[1]=s,t[2]=r+n,t[3]=s,t[4]=r+n,t[5]=s+o,t[6]=r,t[7]=s+o,!0):!1},triangulate(i,t,e,r,s,n){let o=0;r*=e,t[r+o]=i[0],t[r+o+1]=i[1],o+=e,t[r+o]=i[2],t[r+o+1]=i[3],o+=e,t[r+o]=i[6],t[r+o+1]=i[7],o+=e,t[r+o]=i[4],t[r+o+1]=i[5],o+=e;let a=r/e;s[n++]=a,s[n++]=a+1,s[n++]=a+2,s[n++]=a+1,s[n++]=a+3,s[n++]=a+2}}});var a0,l0=p(()=>{P();a0={extension:{type:y.ShapeBuilder,name:"triangle"},build(i,t){return t[0]=i.x,t[1]=i.y,t[2]=i.x2,t[3]=i.y2,t[4]=i.x3,t[5]=i.y3,!0},triangulate(i,t,e,r,s,n){let o=0;r*=e,t[r+o]=i[0],t[r+o+1]=i[1],o+=e,t[r+o]=i[2],t[r+o+1]=i[3],o+=e,t[r+o]=i[4],t[r+o+1]=i[5];let a=r/e;s[n++]=a,s[n++]=a+1,s[n++]=a+2}}});function ll(i,t,e,r){let s=t.matrix?i.copyFrom(t.matrix).invert():i.identity();if(t.textureSpace==="local"){let o=e.getBounds(sw);t.width&&o.pad(t.width);let{x:a,y:l}=o,c=1/o.width,h=1/o.height,u=-a*c,d=-l*h,f=s.a,m=s.b,g=s.c,_=s.d;s.a*=c,s.b*=c,s.c*=h,s.d*=h,s.tx=u*f+d*g+s.tx,s.ty=u*m+d*_+s.ty}else if(t.texture.rotate){let{uvs:o,orig:a}=t.texture;s.scale(1/a.width,1/a.height),s.prepend(nw.set(o.x1-o.x0,o.y1-o.y0,o.x3-o.x0,o.y3-o.y0,o.x0,o.y0))}else s.translate(t.texture.frame.x,t.texture.frame.y),s.scale(1/t.texture.source.width,1/t.texture.source.height);let n=t.texture.source.style;return!(t.fill instanceof ee)&&n.addressMode==="clamp-to-edge"&&(n.addressMode="repeat",n.update()),r&&s.append(iw.copyFrom(r).invert()),s}var iw,sw,nw,Wu=p(()=>{ot();Yt();ii();iw=new k,sw=new J,nw=new k});function h0(i,t){let{geometryData:e,batches:r}=t;r.length=0,e.indices.length=0,e.vertices.length=0,e.uvs.length=0;for(let s=0;s<i.instructions.length;s++){let n=i.instructions[s];if(n.action==="texture")lw(n.data,r,e);else if(n.action==="fill"||n.action==="stroke"){let o=n.action==="stroke",a=n.data.path.shapePath,l=n.data.style,c=n.data.hole;o&&c&&c0(c.shapePath,l,!0,r,e),c&&(a.shapePrimitives[a.shapePrimitives.length-1].holes=c.shapePath.shapePrimitives),c0(a,l,o,r,e)}}}function lw(i,t,e){let r=[],s=Tr.rectangle,n=ow;n.x=i.dx,n.y=i.dy,n.width=i.dw,n.height=i.dh;let o=i.transform;if(!s.build(n,r))return;let{vertices:a,uvs:l,indices:c}=e,h=c.length,u=a.length/2;o&&Nu(r,o),s.triangulate(r,a,2,u,c,h);let d=i.image,f=d.uvs;l.push(f.x0,f.y0,f.x1,f.y1,f.x3,f.y3,f.x2,f.y2);let m=bt.get(si);m.indexOffset=h,m.indexSize=c.length-h,m.attributeOffset=u,m.attributeSize=a.length/2-u,m.baseColor=i.style,m.alpha=i.alpha,m.texture=d,m.geometryData=e,t.push(m)}function c0(i,t,e,r,s){let{vertices:n,uvs:o,indices:a}=s;i.shapePrimitives.forEach(({shape:l,transform:c,holes:h})=>{let u=[],d=Tr[l.type];if(!d.build(l,u))return;let f=a.length,m=n.length/2,g="triangle-list";if(c&&Nu(u,c),e){let v=l.closePath??!0,S=t;S.pixelLine?(e0(u,v,n,a),g="line-list"):Ki(u,S,!1,v,n,a)}else if(h){let v=[],S=u.slice();cw(h).forEach(w=>{v.push(S.length/2),S.push(...w)}),al(S,v,n,2,m,a,f)}else d.triangulate(u,n,2,m,a,f);let _=o.length/2,x=t.texture;if(x!==U.WHITE){let v=ll(aw,t,l,c);$b(n,2,m,o,_,2,n.length/2-m,v)}else qb(o,_,2,n.length/2-m);let b=bt.get(si);b.indexOffset=f,b.indexSize=a.length-f,b.attributeOffset=m,b.attributeSize=n.length/2-m,b.baseColor=t.color,b.alpha=t.alpha,b.texture=x,b.geometryData=s,b.topology=g,r.push(b)})}function cw(i){let t=[];for(let e=0;e<i.length;e++){let r=i[e].shape,s=[];Tr[r.type].build(r,s)&&t.push(s)}return t}var Tr,ow,aw,cl=p(()=>{P();ot();Yt();Kb();Zb();gt();Ke();zu();t0();ol();r0();s0();o0();l0();Wu();Hu();Tr={};z.handleByMap(y.ShapeBuilder,Tr);z.add(n0,i0,a0,Zi,Qb,Jb);ow=new J,aw=new k});function pw(i,t,e){i.beginPath();for(let r=0;r<e.length;r+=3){let s=e[r]*2,n=e[r+1]*2,o=e[r+2]*2;i.moveTo(t[s],t[s+1]),i.lineTo(t[n],t[n+1]),i.lineTo(t[o],t[o+1]),i.closePath()}i.fill()}function mw(i){return`#${(i&16777215).toString(16).padStart(6,"0")}`}function gw(i,t,e,r,s,n){n=Math.max(0,Math.min(n,Math.min(r,s)/2)),i.moveTo(t+n,e),i.lineTo(t+r-n,e),i.quadraticCurveTo(t+r,e,t+r,e+n),i.lineTo(t+r,e+s-n),i.quadraticCurveTo(t+r,e+s,t+r-n,e+s),i.lineTo(t+n,e+s),i.quadraticCurveTo(t,e+s,t,e+s-n),i.lineTo(t,e+n),i.quadraticCurveTo(t,e,t+n,e)}function ul(i,t){switch(t.type){case"rectangle":{let e=t;i.rect(e.x,e.y,e.width,e.height);break}case"roundedRectangle":{let e=t;gw(i,e.x,e.y,e.width,e.height,e.radius);break}case"circle":{let e=t;i.arc(e.x,e.y,e.radius,0,Math.PI*2);break}case"ellipse":{let e=t;i.ellipse?i.ellipse(e.x,e.y,e.halfWidth,e.halfHeight,0,0,Math.PI*2):(i.save(),i.translate(e.x,e.y),i.scale(e.halfWidth,e.halfHeight),i.arc(0,0,1,0,Math.PI*2),i.restore());break}case"triangle":{let e=t;i.moveTo(e.x,e.y),i.lineTo(e.x2,e.y2),i.lineTo(e.x3,e.y3),i.closePath();break}case"polygon":default:{let e=t,r=e.points;if(!r?.length)break;i.moveTo(r[0],r[1]);for(let s=2;s<r.length;s+=2)i.lineTo(r[s],r[s+1]);e.closePath&&i.closePath();break}}}function xw(i,t){if(!t?.length)return!1;for(let e=0;e<t.length;e++){let r=t[e];if(!r?.shape)continue;let s=r.transform,n=s&&!s.isIdentity();n&&(i.save(),i.transform(s.a,s.b,s.c,s.d,s.tx,s.ty)),ul(i,r.shape),n&&i.restore()}return!0}function _w(i,t,e,r){let s=i.fill;if(s instanceof ee){s.buildGradient();let o=s.texture;if(o){let a=Z.getTintedPattern(o,t),l=e?Vu.copyFrom(e).scale(o.source.pixelWidth,o.source.pixelHeight):Vu.copyFrom(s.transform);return r&&!i.textureSpace&&l.append(r),Z.applyPatternTransform(a,l),a}}if(s instanceof Ge){let o=Z.getTintedPattern(s.texture,t);return Z.applyPatternTransform(o,s.transform,!1),o}let n=i.texture;if(n&&n!==U.WHITE){if(!n.source.resource)return hw;let o=Z.getTintedPattern(n,t),a=i.matrix;if(e){let{resolution:l}=n.source;if(a=Vu.copyFrom(e),n.rotate){let{uvs:c,orig:h}=n;a.prepend(fw.set(c.x1-c.x0,c.y1-c.y0,c.x3-c.x0,c.y3-c.y0,c.x0,c.y0).invert()).scale(h.width*l,h.height*l)}else a.scale(n.source.pixelWidth,n.source.pixelHeight).translate(-n.frame.x*l,-n.frame.y*l)}return Z.applyPatternTransform(o,a),o}return mw(t)}var hw,hl,uw,dw,Vu,fw,jn,u0=p(()=>{P();bs();ot();Ei();gt();Po();_s();ol();ii();Vn();cl();Wu();hw="#808080",hl=new k,uw=new k,dw=new k,Vu=new k,fw=new k;jn=class{constructor(){this.shader=null}contextChange(t){}execute(t,e){let r=t.renderer,s=r.canvasContext,n=s.activeContext,o=e.groupTransform,a=r.globalUniforms.globalUniformData?.worldColor??4294967295,l=e.groupColorAlpha,c=(a>>>24&255)/255,h=(l>>>24&255)/255,u=r.filter?.alphaMultiplier??1,d=c*h*u;if(d<=0)return;let f=a&16777215,m=l&16777215,g=Qe(Ue(m,f)),_=r._roundPixels|e._roundPixels;n.save(),s.setContextTransform(o,_===1),s.setBlendMode(e.groupBlendMode);let x=e.context.instructions;for(let b=0;b<x.length;b++){let v=x[b];if(v.action==="texture"){let C=v.data,A=C.image,D=A?Z.getCanvasSource(A):null;if(!D)continue;let H=C.alpha*d;if(H<=0)continue;let K=Ue(C.style,g);n.globalAlpha=H;let I=D;K!==16777215&&(I=Z.getTintedCanvas({texture:A},K));let F=A.frame,j=A.source._resolution??A.source.resolution??1,G=F.x*j,Y=F.y*j,pt=F.width*j,Tt=F.height*j;I!==D&&(G=0,Y=0);let lt=C.transform,ft=lt&&!lt.isIdentity(),q=A.rotate;ft||q?(hl.copyFrom(o),ft&&hl.append(lt),q&&it.matrixAppendRotationInv(hl,q,C.dx,C.dy,C.dw,C.dh),s.setContextTransform(hl,_===1)):s.setContextTransform(o,_===1),n.drawImage(I,G,Y,I===D?pt:I.width,I===D?Tt:I.height,q?0:C.dx,q?0:C.dy,C.dw,C.dh),(ft||q)&&s.setContextTransform(o,_===1);continue}let S=v.data,T=S?.path?.shapePath;if(!T?.shapePrimitives?.length)continue;let w=S.style,E=Ue(w.color,g),B=w.alpha*d;if(B<=0)continue;let R=v.action==="stroke";if(n.globalAlpha=B,R){let C=w;n.lineWidth=C.width,n.lineCap=C.cap,n.lineJoin=C.join,n.miterLimit=C.miterLimit}let M=T.shapePrimitives;if(!R&&S.hole?.shapePath?.shapePrimitives?.length){let C=M[M.length-1];C.holes=S.hole.shapePath.shapePrimitives}for(let C=0;C<M.length;C++){let A=M[C];if(!A?.shape)continue;let D=A.transform,H=D&&!D.isIdentity(),K=w.texture&&w.texture!==U.WHITE,I=w.textureSpace==="global"?D:null,F=K?ll(uw,w,A.shape,I):null,j=H?dw.copyFrom(o).append(D):o,G=_w(w,E,F,j);if(H&&(n.save(),n.transform(D.a,D.b,D.c,D.d,D.tx,D.ty)),R){let Y=w;if(Y.alignment!==.5&&!Y.pixelLine){let Tt=[],lt=[],ft=[];if(Tr[A.shape.type]?.build(A.shape,Tt)){let jt=A.shape.closePath??!0;Ki(Tt,Y,!1,jt,lt,ft),n.fillStyle=G,pw(n,lt,ft)}else n.strokeStyle=G,n.beginPath(),ul(n,A.shape),n.stroke()}else n.strokeStyle=G,n.beginPath(),ul(n,A.shape),n.stroke()}else n.fillStyle=G,n.beginPath(),ul(n,A.shape),xw(n,A.holes)?n.fill("evenodd"):n.fill();H&&n.restore()}}n.restore()}destroy(){this.shader=null}};jn.extension={type:[y.CanvasPipesAdaptor],name:"graphics"}});var ju,d0,f0=p(()=>{P();bs();ot();Po();_s();Ei();ju=class ni{static _getPatternRepeat(t,e){let r=t&&t!=="clamp-to-edge",s=e&&e!=="clamp-to-edge";return r&&s?"repeat":r?"repeat-x":s?"repeat-y":"no-repeat"}start(t,e,r){}execute(t,e){let r=e.elements;if(!r||!r.length)return;let s=t.renderer,n=s.canvasContext,o=n.activeContext;for(let a=0;a<r.length;a++){let l=r[a];if(!l.packAsQuad)continue;let c=l,h=c.texture,u=h?Z.getCanvasSource(h):null;if(!u)continue;let d=h.source.style,f=n.smoothProperty,m=d.scaleMode!=="nearest";o[f]!==m&&(o[f]=m),n.setBlendMode(e.blendMode);let g=s.globalUniforms.globalUniformData?.worldColor??4294967295,_=c.color,x=(g>>>24&255)/255,b=(_>>>24&255)/255,v=s.filter?.alphaMultiplier??1,S=x*b*v;if(S<=0)continue;o.globalAlpha=S;let T=g&16777215,w=_&16777215,E=Qe(Ue(w,T)),B=h.frame,R=d.addressModeU??d.addressMode,M=d.addressModeV??d.addressMode,C=ni._getPatternRepeat(R,M),A=h.source._resolution??h.source.resolution??1,D=c.renderable?.renderGroup?.isCachedAsTexture,H=B.x*A,K=B.y*A,I=B.width*A,F=B.height*A,j=c.bounds,G=s.renderTarget.renderTarget.isRoot,Y=j.minX,pt=j.minY,Tt=j.maxX-j.minX,lt=j.maxY-j.minY,ft=h.rotate,q=h.uvs,jt=Math.min(q.x0,q.x1,q.x2,q.x3,q.y0,q.y1,q.y2,q.y3),hi=Math.max(q.x0,q.x1,q.x2,q.x3,q.y0,q.y1,q.y2,q.y3),Cr=C!=="no-repeat"&&(jt<0||hi>1),et=ft&&!(!Cr&&(E!==16777215||ft));et?(ni._tempPatternMatrix.copyFrom(c.transform),it.matrixAppendRotationInv(ni._tempPatternMatrix,ft,Y,pt,Tt,lt),n.setContextTransform(ni._tempPatternMatrix,c.roundPixels===1,void 0,D&&G)):n.setContextTransform(c.transform,c.roundPixels===1,void 0,D&&G);let ct=Tt,It=lt,St=et?0:Y,Kt=et?0:pt;if(!et&&c.roundPixels===1&&(St|=0,Kt|=0),Cr){let Bt=u,xe=E!==16777215&&!ft,Xt=B.width<=h.source.width&&B.height<=h.source.height;xe&&Xt&&(Bt=Z.getTintedCanvas({texture:h},E));let $e=o.createPattern(Bt,C);if(!$e)continue;let as=ct,ls=It;if(as===0||ls===0)continue;let cr=1/as,Er=1/ls,cs=(q.x1-q.x0)*cr,hs=(q.y1-q.y0)*cr,us=(q.x3-q.x0)*Er,ds=(q.y3-q.y0)*Er,ui=q.x0-cs*St-us*Kt,go=q.y0-hs*St-ds*Kt,di=h.source.pixelWidth,fi=h.source.pixelHeight;ni._tempPatternMatrix.set(cs*di,hs*fi,us*di,ds*fi,ui*di,go*fi),Z.applyPatternTransform($e,ni._tempPatternMatrix),o.fillStyle=$e,o.fillRect(St,Kt,ct,It)}else{let xe=E!==16777215||ft?Z.getTintedCanvas({texture:h},E):u,Xt=xe!==u;o.drawImage(xe,Xt?0:H,Xt?0:K,Xt?xe.width:I,Xt?xe.height:F,St,Kt,ct,It)}}}};ju._tempPatternMatrix=new k;ju.extension={type:[y.CanvasPipesAdaptor],name:"batch"};d0=ju});var Xn,p0=p(()=>{P();Xn=class{constructor(t){this._colorStack=[],this._colorStackIndex=0,this._currentColor=0,this._renderer=t}buildStart(){this._colorStack[0]=15,this._colorStackIndex=1,this._currentColor=15}push(t,e,r){this._renderer.renderPipes.batch.break(r);let s=this._colorStack;s[this._colorStackIndex]=s[this._colorStackIndex-1]&t.mask;let n=this._colorStack[this._colorStackIndex];n!==this._currentColor&&(this._currentColor=n,r.add({renderPipeId:"colorMask",colorMask:n,canBundle:!1})),this._colorStackIndex++}pop(t,e,r){this._renderer.renderPipes.batch.break(r);let s=this._colorStack;this._colorStackIndex--;let n=s[this._colorStackIndex-1];n!==this._currentColor&&(this._currentColor=n,r.add({renderPipeId:"colorMask",colorMask:n,canBundle:!1}))}execute(t){}destroy(){this._renderer=null,this._colorStack=null}};Xn.extension={type:[y.CanvasPipes],name:"colorMask"}});function m0(i){let t=[];return i.replace(yw,(e,r,s)=>{let n=r.toLowerCase(),o=r,a=vw(s);for(n==="m"&&a.length>2&&(t.push([o,...a.splice(0,2)]),n="l",o=o==="m"?"l":"L");;){if(a.length===Xu[n])return t.push([o,...a]),"";if(a.length<Xu[n])throw new Error("malformed path data");t.push([o,...a.splice(0,Xu[n])])}}),t}function vw(i){let t=i.match(bw);return t?t.map(Number):[]}var Xu,yw,bw,g0=p(()=>{Xu={a:7,c:6,h:1,l:2,m:2,q:4,s:4,t:2,v:1,z:0},yw=/([astvzqmhlc])([^astvzqmhlc]*)/gi,bw=/-?[0-9]*\.?[0-9]+(?:e[-+]?\d+)?/gi});function x0(i,t){let e=m0(i),r=[],s=null,n=0,o=0;for(let a=0;a<e.length;a++){let l=e[a],c=l[0],h=l;switch(c){case"M":n=h[1],o=h[2],t.moveTo(n,o);break;case"m":n+=h[1],o+=h[2],t.moveTo(n,o);break;case"H":n=h[1],t.lineTo(n,o);break;case"h":n+=h[1],t.lineTo(n,o);break;case"V":o=h[1],t.lineTo(n,o);break;case"v":o+=h[1],t.lineTo(n,o);break;case"L":n=h[1],o=h[2],t.lineTo(n,o);break;case"l":n+=h[1],o+=h[2],t.lineTo(n,o);break;case"C":n=h[5],o=h[6],t.bezierCurveTo(h[1],h[2],h[3],h[4],n,o);break;case"c":t.bezierCurveTo(n+h[1],o+h[2],n+h[3],o+h[4],n+h[5],o+h[6]),n+=h[5],o+=h[6];break;case"S":n=h[3],o=h[4],t.bezierCurveToShort(h[1],h[2],n,o);break;case"s":t.bezierCurveToShort(n+h[1],o+h[2],n+h[3],o+h[4]),n+=h[3],o+=h[4];break;case"Q":n=h[3],o=h[4],t.quadraticCurveTo(h[1],h[2],n,o);break;case"q":t.quadraticCurveTo(n+h[1],o+h[2],n+h[3],o+h[4]),n+=h[3],o+=h[4];break;case"T":n=h[1],o=h[2],t.quadraticCurveToShort(n,o);break;case"t":n+=h[1],o+=h[2],t.quadraticCurveToShort(n,o);break;case"A":n=h[6],o=h[7],t.arcToSvg(h[1],h[2],h[3],h[4],h[5],n,o);break;case"a":n+=h[6],o+=h[7],t.arcToSvg(h[1],h[2],h[3],h[4],h[5],n,o);break;case"Z":case"z":t.closePath(),r.length>0&&(s=r.pop(),s?(n=s.startX,o=s.startY):(n=0,o=0)),s=null;break;default:L(`Unknown SVG path command: ${c}`)}c!=="Z"&&c!=="z"&&s===null&&(s={startX:n,startY:o},r.push(s))}return t}var _0=p(()=>{g0();ht()});var Yu,$u,Ku,Qi,dl=p(()=>{P();ga();Vh();Ao();Ie();yt();Ke();cl();Yu=class{constructor(){this.batches=[],this.geometryData={vertices:[],uvs:[],indices:[]}}reset(){this.batches&&this.batches.forEach(t=>{bt.return(t)}),this.graphicsData&&bt.return(this.graphicsData),this.isBatchable=!1,this.context=null,this.batches.length=0,this.geometryData.indices.length=0,this.geometryData.vertices.length=0,this.geometryData.uvs.length=0,this.graphicsData=null}destroy(){this.reset(),this.batches=null,this.geometryData=null}},$u=class{constructor(){this.instructions=new hr}init(t){let e=t.maxTextures;this.batcher?this.batcher._updateMaxTextures(e):this.batcher=new cn({maxTextures:e}),this.instructions.reset()}get geometry(){return O(_f,"GraphicsContextRenderData#geometry is deprecated, please use batcher.geometry instead."),this.batcher.geometry}destroy(){this.batcher.destroy(),this.instructions.destroy(),this.batcher=null,this.instructions=null}},Ku=class qu{constructor(t){this._renderer=t,this._managedContexts=new kt({renderer:t,type:"resource",name:"graphicsContext"})}init(t){qu.defaultOptions.bezierSmoothness=t?.bezierSmoothness??qu.defaultOptions.bezierSmoothness}getContextRenderData(t){return t._gpuData[this._renderer.uid].graphicsData||this._initContextRenderData(t)}updateGpuContext(t){let e=!!t._gpuData[this._renderer.uid],r=t._gpuData[this._renderer.uid]||this._initContext(t);if(t.dirty||!e){e&&r.reset(),h0(t,r);let s=t.batchMode;t.customShader||s==="no-batch"?r.isBatchable=!1:s==="auto"?r.isBatchable=r.geometryData.vertices.length<400:r.isBatchable=!0,t.dirty=!1}return r}getGpuContext(t){return t._gpuData[this._renderer.uid]||this._initContext(t)}_initContextRenderData(t){let e=bt.get($u,{maxTextures:this._renderer.limits.maxBatchableTextures}),r=t._gpuData[this._renderer.uid],{batches:s,geometryData:n}=r;r.graphicsData=e;let o=n.vertices.length,a=n.indices.length;for(let u=0;u<s.length;u++)s[u].applyTransform=!1;let l=e.batcher;l.ensureAttributeBuffer(o),l.ensureIndexBuffer(a),l.begin();for(let u=0;u<s.length;u++){let d=s[u];l.add(d)}l.finish(e.instructions);let c=l.geometry;c.indexBuffer.setDataWithSize(l.indexBuffer,l.indexSize,!0),c.buffers[0].setDataWithSize(l.attributeBuffer.float32View,l.attributeSize,!0);let h=l.batches;for(let u=0;u<h.length;u++){let d=h[u];d.bindGroup=Ii(d.textures.textures,d.textures.count,this._renderer.limits.maxBatchableTextures)}return e}_initContext(t){let e=new Yu;return e.context=t,t._gpuData[this._renderer.uid]=e,this._managedContexts.add(t),e}destroy(){this._managedContexts.destroy(),this._renderer=null}};Ku.extension={type:[y.WebGLSystem,y.WebGPUSystem],name:"graphicsContext"};Ku.defaultOptions={bezierSmoothness:.5};Qi=Ku});function pl(i,t,e,r,s,n,o,a,l,c){let u=Math.min(.99,Math.max(0,c??Qi.defaultOptions.bezierSmoothness)),d=(Tw-u)/1;return d*=d,ww(t,e,r,s,n,o,a,l,i,d),i}function ww(i,t,e,r,s,n,o,a,l,c){Qu(i,t,e,r,s,n,o,a,l,c,0),l.push(o,a)}function Qu(i,t,e,r,s,n,o,a,l,c,h){if(h>Sw)return;let u=Math.PI,d=(i+e)/2,f=(t+r)/2,m=(e+s)/2,g=(r+n)/2,_=(s+o)/2,x=(n+a)/2,b=(d+m)/2,v=(f+g)/2,S=(m+_)/2,T=(g+x)/2,w=(b+S)/2,E=(v+T)/2;if(h>0){let B=o-i,R=a-t,M=Math.abs((e-o)*R-(r-a)*B),C=Math.abs((s-o)*R-(n-a)*B),A,D;if(M>fl&&C>fl){if((M+C)*(M+C)<=c*(B*B+R*R)){if(Ji<Zu){l.push(w,E);return}let H=Math.atan2(n-r,s-e);if(A=Math.abs(H-Math.atan2(r-t,e-i)),D=Math.abs(Math.atan2(a-n,o-s)-H),A>=u&&(A=2*u-A),D>=u&&(D=2*u-D),A+D<Ji){l.push(w,E);return}if(oi!==0){if(A>oi){l.push(e,r);return}if(D>oi){l.push(s,n);return}}}}else if(M>fl){if(M*M<=c*(B*B+R*R)){if(Ji<Zu){l.push(w,E);return}if(A=Math.abs(Math.atan2(n-r,s-e)-Math.atan2(r-t,e-i)),A>=u&&(A=2*u-A),A<Ji){l.push(e,r),l.push(s,n);return}if(oi!==0&&A>oi){l.push(e,r);return}}}else if(C>fl){if(C*C<=c*(B*B+R*R)){if(Ji<Zu){l.push(w,E);return}if(A=Math.abs(Math.atan2(a-n,o-s)-Math.atan2(n-r,s-e)),A>=u&&(A=2*u-A),A<Ji){l.push(e,r),l.push(s,n);return}if(oi!==0&&A>oi){l.push(s,n);return}}}else if(B=w-(i+o)/2,R=E-(t+a)/2,B*B+R*R<=c){l.push(w,E);return}}Qu(i,t,d,f,b,v,w,E,l,c,h+1),Qu(w,E,S,T,_,x,o,a,l,c,h+1)}var Sw,fl,Tw,Zu,Ji,oi,Ju=p(()=>{dl();Sw=8,fl=11920929e-14,Tw=1,Zu=.01,Ji=0,oi=0});function b0(i,t,e,r,s,n,o,a){let c=Math.min(.99,Math.max(0,a??Qi.defaultOptions.bezierSmoothness)),h=(Pw-c)/1;return h*=h,Aw(t,e,r,s,n,o,i,h),i}function Aw(i,t,e,r,s,n,o,a){td(o,i,t,e,r,s,n,a,0),o.push(s,n)}function td(i,t,e,r,s,n,o,a,l){if(l>Cw)return;let c=Math.PI,h=(t+r)/2,u=(e+s)/2,d=(r+n)/2,f=(s+o)/2,m=(h+d)/2,g=(u+f)/2,_=n-t,x=o-e,b=Math.abs((r-n)*x-(s-o)*_);if(b>Ew){if(b*b<=a*(_*_+x*x)){if(y0<Mw){i.push(m,g);return}let v=Math.abs(Math.atan2(o-s,n-r)-Math.atan2(s-e,r-t));if(v>=c&&(v=2*c-v),v<y0){i.push(m,g);return}}}else if(_=m-(t+n)/2,x=g-(e+o)/2,_*_+x*x<=a){i.push(m,g);return}td(i,t,e,h,u,m,g,a,l+1),td(i,m,g,d,f,n,o,a,l+1)}var Cw,Ew,Pw,Mw,y0,v0=p(()=>{dl();Cw=8,Ew=11920929e-14,Pw=1,Mw=.01,y0=0});function ml(i,t,e,r,s,n,o,a){let l=Math.abs(s-n);(!o&&s>n||o&&n>s)&&(l=2*Math.PI-l),a||(a=Math.max(6,Math.floor(6*Math.pow(r,1/3)*(l/Math.PI)))),a=Math.max(a,3);let c=l/a,h=s;c*=o?-1:1;for(let u=0;u<a+1;u++){let d=Math.cos(h),f=Math.sin(h),m=t+d*r,g=e+f*r;i.push(m,g),h+=c}}var ed=p(()=>{"use strict"});function S0(i,t,e,r,s,n){let o=i[i.length-2],l=i[i.length-1]-e,c=o-t,h=s-e,u=r-t,d=Math.abs(l*u-c*h);if(d<1e-8||n===0){(i[i.length-2]!==t||i[i.length-1]!==e)&&i.push(t,e);return}let f=l*l+c*c,m=h*h+u*u,g=l*h+c*u,_=n*Math.sqrt(f)/d,x=n*Math.sqrt(m)/d,b=_*g/f,v=x*g/m,S=_*u+x*c,T=_*h+x*l,w=c*(x+b),E=l*(x+b),B=u*(_+v),R=h*(_+v),M=Math.atan2(E-T,w-S),C=Math.atan2(R-T,B-S);ml(i,S+t,T+e,n,M,C,c*h>u*l)}var T0=p(()=>{ed()});function Rw(i,t){let e=t===-1.5707963267948966?-.551915024494:1.3333333333333333*Math.tan(t/4),r=t===1.5707963267948966?.551915024494:e,s=Math.cos(i),n=Math.sin(i),o=Math.cos(i+t),a=Math.sin(i+t);return[{x:s-n*r,y:n+s*r},{x:o+a*r,y:a-o*r},{x:o,y:a}]}function C0(i,t,e,r,s,n,o,a=0,l=0,c=0){if(n===0||o===0)return;let h=Math.sin(a*Yn/360),u=Math.cos(a*Yn/360),d=u*(t-r)/2+h*(e-s)/2,f=-h*(t-r)/2+u*(e-s)/2;if(d===0&&f===0)return;n=Math.abs(n),o=Math.abs(o);let m=Math.pow(d,2)/Math.pow(n,2)+Math.pow(f,2)/Math.pow(o,2);m>1&&(n*=Math.sqrt(m),o*=Math.sqrt(m)),kw(t,e,r,s,n,o,l,c,h,u,d,f,rd);let{ang1:g,ang2:_}=rd,{centerX:x,centerY:b}=rd,v=Math.abs(_)/(Yn/4);Math.abs(1-v)<1e-7&&(v=1);let S=Math.max(Math.ceil(v),1);_/=S;let T=i[i.length-2],w=i[i.length-1],E={x:0,y:0};for(let B=0;B<S;B++){let R=Rw(g,_),{x:M,y:C}=id(R[0],n,o,u,h,x,b,E),{x:A,y:D}=id(R[1],n,o,u,h,x,b,E),{x:H,y:K}=id(R[2],n,o,u,h,x,b,E);pl(i,T,w,M,C,A,D,H,K),T=H,w=K,g+=_}}var Yn,rd,id,w0,kw,E0=p(()=>{Ju();Yn=Math.PI*2,rd={centerX:0,centerY:0,ang1:0,ang2:0},id=({x:i,y:t},e,r,s,n,o,a,l)=>{i*=e,t*=r;let c=s*i-n*t,h=n*i+s*t;return l.x=c+o,l.y=h+a,l};w0=(i,t,e,r)=>{let s=i*r-t*e<0?-1:1,n=i*e+t*r;return n>1&&(n=1),n<-1&&(n=-1),s*Math.acos(n)},kw=(i,t,e,r,s,n,o,a,l,c,h,u,d)=>{let f=Math.pow(s,2),m=Math.pow(n,2),g=Math.pow(h,2),_=Math.pow(u,2),x=f*m-f*_-m*g;x<0&&(x=0),x/=f*_+m*g,x=Math.sqrt(x)*(o===a?-1:1);let b=x*s/n*u,v=x*-n/s*h,S=c*b-l*v+(i+e)/2,T=l*b+c*v+(t+r)/2,w=(h-b)/s,E=(u-v)/n,B=(-h-b)/s,R=(-u-v)/n,M=w0(1,0,w,E),C=w0(w,E,B,R);a===0&&C>0&&(C-=Yn),a===1&&C<0&&(C+=Yn),d.centerX=S,d.centerY=T,d.ang1=M,d.ang2=C}});function P0(i,t,e){let r=(o,a)=>{let l=a.x-o.x,c=a.y-o.y,h=Math.sqrt(l*l+c*c),u=l/h,d=c/h;return{len:h,nx:u,ny:d}},s=(o,a)=>{o===0?i.moveTo(a.x,a.y):i.lineTo(a.x,a.y)},n=t[t.length-1];for(let o=0;o<t.length;o++){let a=t[o%t.length],l=a.radius??e;if(l<=0){s(o,a),n=a;continue}let c=t[(o+1)%t.length],h=r(a,n),u=r(a,c);if(h.len<1e-4||u.len<1e-4){s(o,a),n=a;continue}let d=Math.asin(h.nx*u.ny-h.ny*u.nx),f=1,m=!1;h.nx*u.nx-h.ny*-u.ny<0?d<0?d=Math.PI+d:(d=Math.PI-d,f=-1,m=!0):d>0&&(f=-1,m=!0);let g=d/2,_,x=Math.abs(Math.cos(g)*l/Math.sin(g));x>Math.min(h.len/2,u.len/2)?(x=Math.min(h.len/2,u.len/2),_=Math.abs(x*Math.sin(g)/Math.cos(g))):_=l;let b=a.x+u.nx*x+-u.ny*_*f,v=a.y+u.ny*x+u.nx*_*f,S=Math.atan2(h.ny,h.nx)+Math.PI/2*f,T=Math.atan2(u.ny,u.nx)-Math.PI/2*f;o===0&&i.moveTo(b+Math.cos(S)*_,v+Math.sin(S)*_),i.arc(b,v,_,S,T,m),n=a}}function M0(i,t,e,r){let s=(a,l)=>Math.sqrt((a.x-l.x)**2+(a.y-l.y)**2),n=(a,l,c)=>({x:a.x+(l.x-a.x)*c,y:a.y+(l.y-a.y)*c}),o=t.length;for(let a=0;a<o;a++){let l=t[(a+1)%o],c=l.radius??e;if(c<=0){a===0?i.moveTo(l.x,l.y):i.lineTo(l.x,l.y);continue}let h=t[a],u=t[(a+2)%o],d=s(h,l),f;if(d<1e-4)f=l;else{let _=Math.min(d/2,c);f=n(l,h,_/d)}let m=s(u,l),g;if(m<1e-4)g=l;else{let _=Math.min(m/2,c);g=n(l,u,_/m)}a===0?i.moveTo(f.x,f.y):i.lineTo(f.x,f.y),i.quadraticCurveTo(l.x,l.y,g.x,g.y,r)}}var A0=p(()=>{"use strict"});var Bw,gl,R0=p(()=>{fm();pm();mm();Yt();gm();ie();Ju();v0();ed();T0();E0();A0();Bw=new J,gl=class{constructor(t){this.shapePrimitives=[],this._currentPoly=null,this._bounds=new dt,this._graphicsPath2D=t,this.signed=t.checkForHoles}moveTo(t,e){return this.startPoly(t,e),this}lineTo(t,e){this._ensurePoly();let r=this._currentPoly.points,s=r[r.length-2],n=r[r.length-1];return(s!==t||n!==e)&&r.push(t,e),this}arc(t,e,r,s,n,o){this._ensurePoly(!1);let a=this._currentPoly.points;return ml(a,t,e,r,s,n,o),this}arcTo(t,e,r,s,n){this._ensurePoly();let o=this._currentPoly.points;return S0(o,t,e,r,s,n),this}arcToSvg(t,e,r,s,n,o,a){let l=this._currentPoly.points;return C0(l,this._currentPoly.lastX,this._currentPoly.lastY,o,a,t,e,r,s,n),this}bezierCurveTo(t,e,r,s,n,o,a){this._ensurePoly();let l=this._currentPoly;return pl(this._currentPoly.points,l.lastX,l.lastY,t,e,r,s,n,o,a),this}quadraticCurveTo(t,e,r,s,n){this._ensurePoly();let o=this._currentPoly;return b0(this._currentPoly.points,o.lastX,o.lastY,t,e,r,s,n),this}closePath(){return this.endPoly(!0),this}addPath(t,e){this.endPoly(),e&&!e.isIdentity()&&(t=t.clone(!0),t.transform(e));let r=this.shapePrimitives,s=r.length;for(let n=0;n<t.instructions.length;n++){let o=t.instructions[n];this[o.action](...o.data)}if(t.checkForHoles&&r.length-s>1){let n=null;for(let o=s;o<r.length;o++){let a=r[o];if(a.shape.type==="polygon"){let l=a.shape,c=n?.shape;c&&c.containsPolygon(l)?(n.holes||(n.holes=[]),n.holes.push(a),r.copyWithin(o,o+1),r.length--,o--):n=a}}}return this}finish(t=!1){this.endPoly(t)}rect(t,e,r,s,n){return this.drawShape(new J(t,e,r,s),n),this}circle(t,e,r,s){return this.drawShape(new Ko(t,e,r),s),this}poly(t,e,r){let s=new Pi(t);return s.closePath=e,this.drawShape(s,r),this}regularPoly(t,e,r,s,n=0,o){s=Math.max(s|0,3);let a=-1*Math.PI/2+n,l=Math.PI*2/s,c=[];for(let h=0;h<s;h++){let u=a-h*l;c.push(t+r*Math.cos(u),e+r*Math.sin(u))}return this.poly(c,!0,o),this}roundPoly(t,e,r,s,n,o=0,a){if(s=Math.max(s|0,3),n<=0)return this.regularPoly(t,e,r,s,o);let l=r*Math.sin(Math.PI/s)-.001;n=Math.min(n,l);let c=-1*Math.PI/2+o,h=Math.PI*2/s,u=(s-2)*Math.PI/s/2;for(let d=0;d<s;d++){let f=d*h+c,m=t+r*Math.cos(f),g=e+r*Math.sin(f),_=f+Math.PI+u,x=f-Math.PI-u,b=m+n*Math.cos(_),v=g+n*Math.sin(_),S=m+n*Math.cos(x),T=g+n*Math.sin(x);d===0?this.moveTo(b,v):this.lineTo(b,v),this.quadraticCurveTo(m,g,S,T,a)}return this.closePath()}roundShape(t,e,r=!1,s){return t.length<3?this:(r?M0(this,t,e,s):P0(this,t,e),this.closePath())}filletRect(t,e,r,s,n){if(n===0)return this.rect(t,e,r,s);let o=Math.min(r,s)/2,a=Math.min(o,Math.max(-o,n)),l=t+r,c=e+s,h=a<0?-a:0,u=Math.abs(a);return this.moveTo(t,e+u).arcTo(t+h,e+h,t+u,e,u).lineTo(l-u,e).arcTo(l-h,e+h,l,e+u,u).lineTo(l,c-u).arcTo(l-h,c-h,t+r-u,c,u).lineTo(t+u,c).arcTo(t+h,c-h,t,c-u,u).closePath()}chamferRect(t,e,r,s,n,o){if(n<=0)return this.rect(t,e,r,s);let a=Math.min(n,Math.min(r,s)/2),l=t+r,c=e+s,h=[t+a,e,l-a,e,l,e+a,l,c-a,l-a,c,t+a,c,t,c-a,t,e+a];for(let u=h.length-1;u>=2;u-=2)h[u]===h[u-2]&&h[u-1]===h[u-3]&&h.splice(u-1,2);return this.poly(h,!0,o)}ellipse(t,e,r,s,n){return this.drawShape(new Zo(t,e,r,s),n),this}roundRect(t,e,r,s,n,o){return this.drawShape(new Jo(t,e,r,s,n),o),this}drawShape(t,e){return this.endPoly(),this.shapePrimitives.push({shape:t,transform:e}),this}startPoly(t,e){let r=this._currentPoly;return r&&this.endPoly(),r=new Pi,r.points.push(t,e),this._currentPoly=r,this}endPoly(t=!1){let e=this._currentPoly;return e&&e.points.length>2&&(e.closePath=t,this.shapePrimitives.push({shape:e})),this._currentPoly=null,this}_ensurePoly(t=!0){if(!this._currentPoly&&(this._currentPoly=new Pi,t)){let e=this.shapePrimitives[this.shapePrimitives.length-1];if(e){let r=e.shape.x,s=e.shape.y;if(e.transform&&!e.transform.isIdentity()){let n=e.transform,o=r;r=n.a*r+n.c*s+n.tx,s=n.b*o+n.d*s+n.ty}this._currentPoly.points.push(r,s)}else this._currentPoly.points.push(0,0)}}buildPath(){let t=this._graphicsPath2D;this.shapePrimitives.length=0,this._currentPoly=null;for(let e=0;e<t.instructions.length;e++){let r=t.instructions[e];this[r.action](...r.data)}this.finish()}get bounds(){let t=this._bounds;t.clear();let e=this.shapePrimitives;for(let r=0;r<e.length;r++){let s=e[r],n=s.shape.getBounds(Bw);s.transform?t.addRect(n,s.transform):t.addRect(n)}return t}}});function ts(i,t){return i?i.prepend(t):t.clone()}var we,xl=p(()=>{Ee();Ft();ht();_0();R0();we=class i{constructor(t,e=!1){this.instructions=[],this.uid=$("graphicsPath"),this._dirty=!0,this.checkForHoles=e,typeof t=="string"?x0(t,this):this.instructions=t?.slice()??[]}get shapePath(){return this._shapePath||(this._shapePath=new gl(this)),this._dirty&&(this._dirty=!1,this._shapePath.buildPath()),this._shapePath}addPath(t,e){return t=t.clone(),this.instructions.push({action:"addPath",data:[t,e]}),this._dirty=!0,this}arc(...t){return this.instructions.push({action:"arc",data:t}),this._dirty=!0,this}arcTo(...t){return this.instructions.push({action:"arcTo",data:t}),this._dirty=!0,this}arcToSvg(...t){return this.instructions.push({action:"arcToSvg",data:t}),this._dirty=!0,this}bezierCurveTo(...t){return this.instructions.push({action:"bezierCurveTo",data:t}),this._dirty=!0,this}bezierCurveToShort(t,e,r,s,n){let o=this.instructions[this.instructions.length-1],a=this.getLastPoint(nt.shared),l=0,c=0;if(!o||o.action!=="bezierCurveTo")l=a.x,c=a.y;else{l=o.data[2],c=o.data[3];let h=a.x,u=a.y;l=h+(h-l),c=u+(u-c)}return this.instructions.push({action:"bezierCurveTo",data:[l,c,t,e,r,s,n]}),this._dirty=!0,this}closePath(){return this.instructions.push({action:"closePath",data:[]}),this._dirty=!0,this}ellipse(...t){return this.instructions.push({action:"ellipse",data:t}),this._dirty=!0,this}lineTo(...t){return this.instructions.push({action:"lineTo",data:t}),this._dirty=!0,this}moveTo(...t){return this.instructions.push({action:"moveTo",data:t}),this}quadraticCurveTo(...t){return this.instructions.push({action:"quadraticCurveTo",data:t}),this._dirty=!0,this}quadraticCurveToShort(t,e,r){let s=this.instructions[this.instructions.length-1],n=this.getLastPoint(nt.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 l=n.x,c=n.y;o=l+(l-o),a=c+(c-a)}return this.instructions.push({action:"quadraticCurveTo",data:[o,a,t,e,r]}),this._dirty=!0,this}rect(t,e,r,s,n){return this.instructions.push({action:"rect",data:[t,e,r,s,n]}),this._dirty=!0,this}circle(t,e,r,s){return this.instructions.push({action:"circle",data:[t,e,r,s]}),this._dirty=!0,this}roundRect(...t){return this.instructions.push({action:"roundRect",data:t}),this._dirty=!0,this}poly(...t){return this.instructions.push({action:"poly",data:t}),this._dirty=!0,this}regularPoly(...t){return this.instructions.push({action:"regularPoly",data:t}),this._dirty=!0,this}roundPoly(...t){return this.instructions.push({action:"roundPoly",data:t}),this._dirty=!0,this}roundShape(...t){return this.instructions.push({action:"roundShape",data:t}),this._dirty=!0,this}filletRect(...t){return this.instructions.push({action:"filletRect",data:t}),this._dirty=!0,this}chamferRect(...t){return this.instructions.push({action:"chamferRect",data:t}),this._dirty=!0,this}star(t,e,r,s,n,o,a){n||(n=s/2);let l=-1*Math.PI/2+o,c=r*2,h=Math.PI*2/c,u=[];for(let d=0;d<c;d++){let f=d%2?n:s,m=d*h+l;u.push(t+f*Math.cos(m),e+f*Math.sin(m))}return this.poly(u,!0,a),this}clone(t=!1){let e=new i;if(e.checkForHoles=this.checkForHoles,!t)e.instructions=this.instructions.slice();else for(let r=0;r<this.instructions.length;r++){let s=this.instructions[r];e.instructions.push({action:s.action,data:s.data.slice()})}return e}clear(){return this.instructions.length=0,this._dirty=!0,this}transform(t){if(t.isIdentity())return this;let e=t.a,r=t.b,s=t.c,n=t.d,o=t.tx,a=t.ty,l=0,c=0,h=0,u=0,d=0,f=0,m=0,g=0;for(let _=0;_<this.instructions.length;_++){let x=this.instructions[_],b=x.data;switch(x.action){case"moveTo":case"lineTo":l=b[0],c=b[1],b[0]=e*l+s*c+o,b[1]=r*l+n*c+a;break;case"bezierCurveTo":h=b[0],u=b[1],d=b[2],f=b[3],l=b[4],c=b[5],b[0]=e*h+s*u+o,b[1]=r*h+n*u+a,b[2]=e*d+s*f+o,b[3]=r*d+n*f+a,b[4]=e*l+s*c+o,b[5]=r*l+n*c+a;break;case"quadraticCurveTo":h=b[0],u=b[1],l=b[2],c=b[3],b[0]=e*h+s*u+o,b[1]=r*h+n*u+a,b[2]=e*l+s*c+o,b[3]=r*l+n*c+a;break;case"arcToSvg":l=b[5],c=b[6],m=b[0],g=b[1],b[0]=e*m+s*g,b[1]=r*m+n*g,b[5]=e*l+s*c+o,b[6]=r*l+n*c+a;break;case"circle":b[4]=ts(b[3],t);break;case"rect":b[4]=ts(b[4],t);break;case"ellipse":b[8]=ts(b[8],t);break;case"roundRect":b[5]=ts(b[5],t);break;case"addPath":b[0].transform(t);break;case"poly":b[2]=ts(b[2],t);break;case"regularPoly":case"chamferRect":b[5]=ts(b[5],t);break;case"closePath":break;default:L("unknown transform action",x.action);break}}return this._dirty=!0,this}get bounds(){return this.shapePath.bounds}getLastPoint(t){let e=this.instructions.length-1,r=this.instructions[e];if(!r)return t.x=0,t.y=0,t;for(;r.action==="closePath";){if(e--,e<0)return t.x=0,t.y=0,t;r=this.instructions[e]}switch(r.action){case"moveTo":case"lineTo":t.x=r.data[0],t.y=r.data[1];break;case"quadraticCurveTo":t.x=r.data[2],t.y=r.data[3];break;case"bezierCurveTo":t.x=r.data[4],t.y=r.data[5];break;case"arc":case"arcToSvg":t.x=r.data[5],t.y=r.data[6];break;case"addPath":r.data[0].getLastPoint(t);break}return t}}});function Pt(i,t,e){let r=i.getAttribute(t);return r?Number(r):e}var sd=p(()=>{"use strict"});function k0(i,t){let e=i.querySelectorAll("defs");for(let r=0;r<e.length;r++){let s=e[r];for(let n=0;n<s.children.length;n++){let o=s.children[n];switch(o.nodeName.toLowerCase()){case"lineargradient":t.defs[o.id]=Iw(o);break;case"radialgradient":t.defs[o.id]=Gw(o);break;default:break}}}}function Iw(i){let t=Pt(i,"x1",0),e=Pt(i,"y1",0),r=Pt(i,"x2",1),s=Pt(i,"y2",0),n=i.getAttribute("gradientUnits")||"objectBoundingBox",o=new ee(t,e,r,s,n==="objectBoundingBox"?"local":"global");for(let a=0;a<i.children.length;a++){let l=i.children[a],c=Pt(l,"offset",0),h=Q.shared.setValue(l.getAttribute("stop-color")).toNumber();o.addColorStop(c,h)}return o}function Gw(i){return L("[SVG Parser] Radial gradients are not yet supported"),new ee(0,0,1,0)}var B0=p(()=>{Qt();ht();ii();sd()});function nd(i){let t=i.match(/url\s*\(\s*['"]?\s*#([^'"\s)]+)\s*['"]?\s*\)/i);return t?t[1]:""}var I0=p(()=>{"use strict"});function od(i,t){let e=i.getAttribute("style"),r={},s={},n={strokeStyle:r,fillStyle:s,useFill:!1,useStroke:!1};for(let o in G0){let a=i.getAttribute(o);a&&F0(t,n,o,a.trim())}if(e){let o=e.split(";");for(let a=0;a<o.length;a++){let l=o[a].trim(),[c,h]=l.split(":");G0[c]&&F0(t,n,c,h.trim())}}return{strokeStyle:n.useStroke?r:null,fillStyle:n.useFill?s:null,useFill:n.useFill,useStroke:n.useStroke}}function F0(i,t,e,r){switch(e){case"stroke":if(r!=="none"){if(r.startsWith("url(")){let s=nd(r);t.strokeStyle.fill=i.defs[s]}else t.strokeStyle.color=Q.shared.setValue(r).toNumber();t.useStroke=!0}break;case"stroke-width":t.strokeStyle.width=Number(r);break;case"fill":if(r!=="none"){if(r.startsWith("url(")){let s=nd(r);t.fillStyle.fill=i.defs[s]}else t.fillStyle.color=Q.shared.setValue(r).toNumber();t.useFill=!0}break;case"fill-opacity":t.fillStyle.alpha=Number(r);break;case"stroke-opacity":t.strokeStyle.alpha=Number(r);break;case"opacity":t.fillStyle.alpha=Number(r),t.strokeStyle.alpha=Number(r);break}}var G0,U0=p(()=>{Qt();I0();G0={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 D0(i){if(i.length<=2)return!0;let t=i.map(a=>a.area).sort((a,l)=>l-a),[e,r]=t,s=t[t.length-1],n=e/r,o=r/s;return!(n>3&&o<2)}var L0=p(()=>{"use strict"});function O0(i){return i.split(/(?=[Mm])/).filter(r=>r.trim().length>0)}function N0(i){let t=i.match(/[-+]?[0-9]*\.?[0-9]+/g);if(!t||t.length<4)return 0;let e=t.map(Number),r=[],s=[];for(let h=0;h<e.length;h+=2)h+1<e.length&&(r.push(e[h]),s.push(e[h+1]));if(r.length===0||s.length===0)return 0;let n=Math.min(...r),o=Math.max(...r),a=Math.min(...s),l=Math.max(...s);return(o-n)*(l-a)}function ad(i,t){let e=new we(i,!1);for(let r of e.instructions)t.instructions.push(r)}var z0=p(()=>{xl()});function H0(i,t){if(typeof i=="string"){let o=document.createElement("div");o.innerHTML=i.trim(),i=o.querySelector("svg")}let e={context:t,defs:{},path:new we};k0(i,e);let r=i.children,{fillStyle:s,strokeStyle:n}=od(i,e);for(let o=0;o<r.length;o++){let a=r[o];a.nodeName.toLowerCase()!=="defs"&&W0(a,e,s,n)}return t}function W0(i,t,e,r){let s=i.children,{fillStyle:n,strokeStyle:o}=od(i,t);n&&e?e={...e,...n}:n&&(e=n),o&&r?r={...r,...o}:o&&(r=o);let a=!e&&!r;a&&(e={color:0});let l,c,h,u,d,f,m,g,_,x,b,v,S,T,w,E,B;switch(i.nodeName.toLowerCase()){case"path":{T=i.getAttribute("d");let R=i.getAttribute("fill-rule"),M=O0(T),C=R==="evenodd",A=M.length>1;if(C&&A){let H=M.map(I=>({path:I,area:N0(I)}));if(H.sort((I,F)=>F.area-I.area),M.length>3||!D0(H))for(let I=0;I<H.length;I++){let F=H[I],j=I===0;t.context.beginPath();let G=new we(void 0,!0);ad(F.path,G),t.context.path(G),j?(e&&t.context.fill(e),r&&t.context.stroke(r)):t.context.cut()}else for(let I=0;I<H.length;I++){let F=H[I],j=I%2===1;t.context.beginPath();let G=new we(void 0,!0);ad(F.path,G),t.context.path(G),j?t.context.cut():(e&&t.context.fill(e),r&&t.context.stroke(r))}}else{let H=R?R==="evenodd":!0;w=new we(T,H),t.context.path(w),e&&t.context.fill(e),r&&t.context.stroke(r)}break}case"circle":m=Pt(i,"cx",0),g=Pt(i,"cy",0),_=Pt(i,"r",0),t.context.ellipse(m,g,_,_),e&&t.context.fill(e),r&&t.context.stroke(r);break;case"rect":l=Pt(i,"x",0),c=Pt(i,"y",0),E=Pt(i,"width",0),B=Pt(i,"height",0),x=Pt(i,"rx",0),b=Pt(i,"ry",0),x||b?t.context.roundRect(l,c,E,B,x||b):t.context.rect(l,c,E,B),e&&t.context.fill(e),r&&t.context.stroke(r);break;case"ellipse":m=Pt(i,"cx",0),g=Pt(i,"cy",0),x=Pt(i,"rx",0),b=Pt(i,"ry",0),t.context.beginPath(),t.context.ellipse(m,g,x,b),e&&t.context.fill(e),r&&t.context.stroke(r);break;case"line":h=Pt(i,"x1",0),u=Pt(i,"y1",0),d=Pt(i,"x2",0),f=Pt(i,"y2",0),t.context.beginPath(),t.context.moveTo(h,u),t.context.lineTo(d,f),r&&t.context.stroke(r);break;case"polygon":S=i.getAttribute("points"),v=S.match(/-?\d+/g).map(R=>parseInt(R,10)),t.context.poly(v,!0),e&&t.context.fill(e),r&&t.context.stroke(r);break;case"polyline":S=i.getAttribute("points"),v=S.match(/-?\d+/g).map(R=>parseInt(R,10)),t.context.poly(v,!1),r&&t.context.stroke(r);break;case"g":case"svg":break;default:{L(`[SVG parser] <${i.nodeName}> elements unsupported`);break}}a&&(e=null);for(let R=0;R<s.length;R++)W0(s[R],t,e,r)}var V0=p(()=>{ht();xl();B0();sd();U0();L0();z0()});function Fw(i){return Q.isColorLike(i)}function j0(i){return i instanceof Ge}function X0(i){return i instanceof ee}function Uw(i){return i instanceof U}function Dw(i,t,e){let r=Q.shared.setValue(t??0);return i.color=r.toNumber(),i.alpha=r.alpha===1?e.alpha:r.alpha,i.texture=U.WHITE,{...e,...i}}function Lw(i,t,e){return i.texture=t,{...e,...i}}function Y0(i,t,e){return i.fill=t,i.color=16777215,i.texture=t.texture,i.matrix=t.transform,i.textureSpace=t.textureSpace,{...e,...i}}function $0(i,t,e){return t.buildGradient(),i.fill=t,i.color=16777215,i.texture=t.texture,i.matrix=t.transform,i.textureSpace=t.textureSpace,{...e,...i}}function Ow(i,t){let e={...t,...i},r=Q.shared.setValue(e.color);return e.alpha*=r.alpha,e.color=r.toNumber(),e}function sr(i,t){if(i==null)return null;let e={},r=i;return Fw(i)?Dw(e,i,t):Uw(i)?Lw(e,i,t):j0(i)?Y0(e,i,t):X0(i)?$0(e,i,t):r.fill&&j0(r.fill)?Y0(r,r.fill,t):r.fill&&X0(r.fill)?$0(r,r.fill,t):Ow(r,t)}function es(i,t){let{width:e,alignment:r,miterLimit:s,cap:n,join:o,pixelLine:a,...l}=t,c=sr(i,l);return c?{width:e,alignment:r,miterLimit:s,cap:n,join:o,pixelLine:a,...c}:null}var ld=p(()=>{Qt();gt();ii();Vn()});function q0(i,t){let e=1,r=i.shapePath.shapePrimitives;for(let s=0;s<r.length;s++){let n=r[s].shape;if(n.type!=="polygon")continue;let o=n.points,a=o.length;if(a<6)continue;let l=n.closePath;for(let c=0;c<a;c+=2){if(!l&&(c===0||c===a-2))continue;let h=(c-2+a)%a,u=(c+2)%a,d=o[h],f=o[h+1],m=o[c],g=o[c+1],_=o[u],x=o[u+1],b=d-m,v=f-g,S=_-m,T=x-g,w=b*b+v*v,E=S*S+T*T;if(w<1e-12||E<1e-12)continue;let M=(b*S+v*T)/Math.sqrt(w*E);M<-1?M=-1:M>1&&(M=1);let C=Math.sqrt((1-M)*.5);if(C<1e-6)continue;let A=Math.min(1/C,t);A>e&&(e=A)}}return e}var K0=p(()=>{"use strict"});var Nw,Z0,cd,ge,hd=p(()=>{Ht();Qt();ot();Ee();gt();Ft();yt();ie();xl();V0();ld();K0();Nw=new nt,Z0=new k,cd=class Ve extends ut{constructor(){super(...arguments),this._gpuData=Object.create(null),this.autoGarbageCollect=!0,this._gcLastUsed=-1,this.uid=$("graphicsContext"),this.dirty=!0,this.batchMode="auto",this.instructions=[],this.destroyed=!1,this._activePath=new we,this._transform=new k,this._fillStyle={...Ve.defaultFillStyle},this._strokeStyle={...Ve.defaultStrokeStyle},this._stateStack=[],this._tick=0,this._bounds=new dt,this._boundsDirty=!0}clone(){let t=new Ve;return t.batchMode=this.batchMode,t.instructions=this.instructions.slice(),t._activePath=this._activePath.clone(),t._transform=this._transform.clone(),t._fillStyle={...this._fillStyle},t._strokeStyle={...this._strokeStyle},t._stateStack=this._stateStack.slice(),t._bounds=this._bounds.clone(),t._boundsDirty=!0,t}get fillStyle(){return this._fillStyle}set fillStyle(t){this._fillStyle=sr(t,Ve.defaultFillStyle)}get strokeStyle(){return this._strokeStyle}set strokeStyle(t){this._strokeStyle=es(t,Ve.defaultStrokeStyle)}setFillStyle(t){return this._fillStyle=sr(t,Ve.defaultFillStyle),this}setStrokeStyle(t){return this._strokeStyle=sr(t,Ve.defaultStrokeStyle),this}texture(t,e,r,s,n,o){return this.instructions.push({action:"texture",data:{image:t,dx:r||0,dy:s||0,dw:n||t.frame.width,dh:o||t.frame.height,transform:this._transform.clone(),alpha:this._fillStyle.alpha,style:e||e===0?Q.shared.setValue(e).toNumber():16777215}}),this.onUpdate(),this}beginPath(){return this._activePath=new we,this}fill(t,e){let r,s=this.instructions[this.instructions.length-1];return this._tick===0&&s?.action==="stroke"?r=s.data.path:r=this._activePath.clone(),r?(t!=null&&(e!==void 0&&typeof t=="number"&&(O(rt,"GraphicsContext.fill(color, alpha) is deprecated, use GraphicsContext.fill({ color, alpha }) instead"),t={color:t,alpha:e}),this._fillStyle=sr(t,Ve.defaultFillStyle)),this.instructions.push({action:"fill",data:{style:this.fillStyle,path:r}}),this.onUpdate(),this._initNextPathLocation(),this._tick=0,this):this}_initNextPathLocation(){let{x:t,y:e}=this._activePath.getLastPoint(nt.shared);this._activePath.clear(),this._activePath.moveTo(t,e)}stroke(t){let e,r=this.instructions[this.instructions.length-1];return this._tick===0&&r?.action==="fill"?e=r.data.path:e=this._activePath.clone(),e?(t!=null&&(this._strokeStyle=es(t,Ve.defaultStrokeStyle)),this.instructions.push({action:"stroke",data:{style:this.strokeStyle,path:e}}),this.onUpdate(),this._initNextPathLocation(),this._tick=0,this):this}cut(){for(let t=0;t<2;t++){let e=this.instructions[this.instructions.length-1-t],r=this._activePath.clone();if(e&&(e.action==="stroke"||e.action==="fill"))if(e.data.hole)e.data.hole.addPath(r);else{e.data.hole=r;break}}return this._initNextPathLocation(),this}arc(t,e,r,s,n,o){this._tick++;let a=this._transform;return this._activePath.arc(a.a*t+a.c*e+a.tx,a.b*t+a.d*e+a.ty,r,s,n,o),this}arcTo(t,e,r,s,n){this._tick++;let o=this._transform;return this._activePath.arcTo(o.a*t+o.c*e+o.tx,o.b*t+o.d*e+o.ty,o.a*r+o.c*s+o.tx,o.b*r+o.d*s+o.ty,n),this}arcToSvg(t,e,r,s,n,o,a){this._tick++;let l=this._transform;return this._activePath.arcToSvg(t,e,r,s,n,l.a*o+l.c*a+l.tx,l.b*o+l.d*a+l.ty),this}bezierCurveTo(t,e,r,s,n,o,a){this._tick++;let l=this._transform;return this._activePath.bezierCurveTo(l.a*t+l.c*e+l.tx,l.b*t+l.d*e+l.ty,l.a*r+l.c*s+l.tx,l.b*r+l.d*s+l.ty,l.a*n+l.c*o+l.tx,l.b*n+l.d*o+l.ty,a),this}closePath(){return this._tick++,this._activePath?.closePath(),this}ellipse(t,e,r,s){return this._tick++,this._activePath.ellipse(t,e,r,s,this._transform.clone()),this}circle(t,e,r){return this._tick++,this._activePath.circle(t,e,r,this._transform.clone()),this}path(t){return this._tick++,this._activePath.addPath(t,this._transform.clone()),this}lineTo(t,e){this._tick++;let r=this._transform;return this._activePath.lineTo(r.a*t+r.c*e+r.tx,r.b*t+r.d*e+r.ty),this}moveTo(t,e){this._tick++;let r=this._transform,s=this._activePath.instructions,n=r.a*t+r.c*e+r.tx,o=r.b*t+r.d*e+r.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(t,e,r,s,n){this._tick++;let o=this._transform;return this._activePath.quadraticCurveTo(o.a*t+o.c*e+o.tx,o.b*t+o.d*e+o.ty,o.a*r+o.c*s+o.tx,o.b*r+o.d*s+o.ty,n),this}rect(t,e,r,s){return this._tick++,this._activePath.rect(t,e,r,s,this._transform.clone()),this}roundRect(t,e,r,s,n){return this._tick++,this._activePath.roundRect(t,e,r,s,n,this._transform.clone()),this}poly(t,e){return this._tick++,this._activePath.poly(t,e,this._transform.clone()),this}regularPoly(t,e,r,s,n=0,o){return this._tick++,this._activePath.regularPoly(t,e,r,s,n,o),this}roundPoly(t,e,r,s,n,o){return this._tick++,this._activePath.roundPoly(t,e,r,s,n,o),this}roundShape(t,e,r,s){return this._tick++,this._activePath.roundShape(t,e,r,s),this}filletRect(t,e,r,s,n){return this._tick++,this._activePath.filletRect(t,e,r,s,n),this}chamferRect(t,e,r,s,n,o){return this._tick++,this._activePath.chamferRect(t,e,r,s,n,o),this}star(t,e,r,s,n=0,o=0){return this._tick++,this._activePath.star(t,e,r,s,n,o,this._transform.clone()),this}svg(t){return this._tick++,H0(t,this),this}restore(){let t=this._stateStack.pop();return t&&(this._transform=t.transform,this._fillStyle=t.fillStyle,this._strokeStyle=t.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(t){return this._transform.rotate(t),this}scale(t,e=t){return this._transform.scale(t,e),this}setTransform(t,e,r,s,n,o){return t instanceof k?(this._transform.set(t.a,t.b,t.c,t.d,t.tx,t.ty),this):(this._transform.set(t,e,r,s,n,o),this)}transform(t,e,r,s,n,o){return t instanceof k?(this._transform.append(t),this):(Z0.set(t,e,r,s,n,o),this._transform.append(Z0),this)}translate(t,e=t){return this._transform.translate(t,e),this}clear(){return this._activePath.clear(),this.instructions.length=0,this.resetTransform(),this.onUpdate(),this}onUpdate(){this._boundsDirty=!0,this.dirty=!0,this.emit("update",this,16)}get bounds(){if(!this._boundsDirty)return this._bounds;this._boundsDirty=!1;let t=this._bounds;t.clear();for(let e=0;e<this.instructions.length;e++){let r=this.instructions[e],s=r.action;if(s==="fill"){let n=r.data;t.addBounds(n.path.bounds)}else if(s==="texture"){let n=r.data;t.addFrame(n.dx,n.dy,n.dx+n.dw,n.dy+n.dh,n.transform)}if(s==="stroke"){let n=r.data,o=n.style.alignment,a=n.style.width*(1-o);n.style.join==="miter"&&(a*=q0(n.path,n.style.miterLimit));let l=n.path.bounds;t.addFrame(l.minX-a,l.minY-a,l.maxX+a,l.maxY+a)}}return t.isValid||t.set(0,0,0,0),t}containsPoint(t){if(!this.bounds.containsPoint(t.x,t.y))return!1;let e=this.instructions,r=!1;for(let s=0;s<e.length;s++){let n=e[s],o=n.data,a=o.path;if(!n.action||!a)continue;let l=o.style,c=a.shapePath.shapePrimitives;for(let h=0;h<c.length;h++){let u=c[h].shape;if(!l||!u)continue;let d=c[h].transform,f=d?d.applyInverse(t,Nw):t;if(n.action==="fill")r=u.contains(f.x,f.y);else{let g=l;r=u.strokeContains(f.x,f.y,g.width,g.alignment)}let m=o.hole;if(m){let g=m.shapePath?.shapePrimitives;if(g)for(let _=0;_<g.length;_++)g[_].shape.contains(f.x,f.y)&&(r=!1)}if(r)return!0}}return r}unload(){this.emit("unload",this);for(let t in this._gpuData)this._gpuData[t]?.destroy();this._gpuData=Object.create(null)}destroy(t=!1){if(this.destroyed)return;if(this.destroyed=!0,this._stateStack.length=0,this._transform=null,this.unload(),this.emit("destroy",this),this.removeAllListeners(),typeof t=="boolean"?t:t?.texture){let r=typeof t=="boolean"?t:t?.textureSource;this._fillStyle.texture&&(this._fillStyle.fill&&"uid"in this._fillStyle.fill?this._fillStyle.fill.destroy():this._fillStyle.texture.destroy(r)),this._strokeStyle.texture&&(this._strokeStyle.fill&&"uid"in this._strokeStyle.fill?this._strokeStyle.fill.destroy():this._strokeStyle.texture.destroy(r))}this._fillStyle=null,this._strokeStyle=null,this.instructions=null,this._activePath=null,this._bounds=null,this._stateStack=null,this.customShader=null,this._transform=null}};cd.defaultFillStyle={color:16777215,alpha:1,texture:U.WHITE,matrix:null,fill:null,textureSpace:"local"};cd.defaultStrokeStyle={width:1,color:16777215,alpha:1,alignment:.5,miterLimit:10,cap:"butt",join:"miter",texture:U.WHITE,matrix:null,fill:null,textureSpace:"local",pixelLine:!1};ge=cd});var ud,dd,pd,Q0,J0=p(()=>{P();Ao();Ie();ud=class{constructor(){this.isBatchable=!1}reset(){this.isBatchable=!1,this.context=null,this.graphicsData&&(this.graphicsData.destroy(),this.graphicsData=null)}destroy(){this.reset()}},dd=class{constructor(){this.instructions=new hr}init(){this.instructions.reset()}destroy(){this.instructions.destroy(),this.instructions=null}},pd=class fd{constructor(t){this._renderer=t,this._managedContexts=new kt({renderer:t,type:"resource",name:"graphicsContext"})}init(t){fd.defaultOptions.bezierSmoothness=t?.bezierSmoothness??fd.defaultOptions.bezierSmoothness}getContextRenderData(t){return this.getGpuContext(t).graphicsData||this._initContextRenderData(t)}updateGpuContext(t){let e=t._gpuData,r=!!e[this._renderer.uid],s=e[this._renderer.uid]||this._initContext(t);return(t.dirty||!r)&&(r&&s.reset(),s.isBatchable=!1,t.dirty=!1),s}getGpuContext(t){return t._gpuData[this._renderer.uid]||this._initContext(t)}_initContextRenderData(t){let e=new dd,r=this.getGpuContext(t);return r.graphicsData=e,e.init(),e}_initContext(t){let e=new ud;return e.context=t,t._gpuData[this._renderer.uid]=e,this._managedContexts.add(t),e}destroy(){this._managedContexts.destroy(),this._renderer=null}};pd.extension={type:[y.CanvasSystem],name:"graphicsContext"};pd.defaultOptions={bezierSmoothness:.5};Q0=pd});var $n,tv=p(()=>{P();Be();Ie();$n=class{constructor(t,e){this.state=Ot.for2d(),this.renderer=t,this._adaptor=e,this.renderer.runners.contextChange.add(this),this._managedGraphics=new kt({renderer:t,type:"renderable",priority:-1,name:"graphics"})}contextChange(){this._adaptor.contextChange(this.renderer)}validateRenderable(t){return!1}addRenderable(t,e){this._managedGraphics.add(t),this.renderer.renderPipes.batch.break(e),e.add(t)}updateRenderable(t){}execute(t){t.isRenderable&&this._adaptor.execute(this,t)}destroy(){this._managedGraphics.destroy(),this.renderer=null,this._adaptor.destroy(),this._adaptor=null}};$n.extension={type:[y.CanvasPipes],name:"graphics"}});var md,qn,ev=p(()=>{P();Be();Ie();Ke();Ia();zu();md=class{constructor(){this.batches=[],this.batched=!1}destroy(){this.batches.forEach(t=>{bt.return(t)}),this.batches.length=0}},qn=class{constructor(t,e){this.state=Ot.for2d(),this.renderer=t,this._adaptor=e,this.renderer.runners.contextChange.add(this),this._managedGraphics=new kt({renderer:t,type:"renderable",priority:-1,name:"graphics"})}contextChange(){this._adaptor.contextChange(this.renderer)}validateRenderable(t){let e=t.context,r=!!t._gpuData,n=this.renderer.graphicsContext.updateGpuContext(e);return!!(n.isBatchable||r!==n.isBatchable)}addRenderable(t,e){let s=this.renderer.graphicsContext.updateGpuContext(t.context);t.didViewUpdate&&this._rebuild(t),s.isBatchable?this._addToBatcher(t,e):(this.renderer.renderPipes.batch.break(e),e.add(t))}updateRenderable(t){let r=this._getGpuDataForRenderable(t).batches;for(let s=0;s<r.length;s++){let n=r[s];n._batcher.updateElement(n)}}execute(t){if(!t.isRenderable)return;let e=this.renderer,r=t.context;if(!e.graphicsContext.getGpuContext(r).batches.length)return;let n=r.customShader||this._adaptor.shader;this.state.blendMode=t.groupBlendMode;let o=n.resources.localUniforms.uniforms;o.uTransformMatrix=t.groupTransform,o.uRound=e._roundPixels|t._roundPixels,Hi(t.groupColorAlpha,o.uColor,0),this._adaptor.execute(this,t)}_rebuild(t){let e=this._getGpuDataForRenderable(t),s=this.renderer.graphicsContext.updateGpuContext(t.context);e.destroy(),s.isBatchable&&this._updateBatchesForRenderable(t,e)}_addToBatcher(t,e){let r=this.renderer.renderPipes.batch,s=this._getGpuDataForRenderable(t).batches;for(let n=0;n<s.length;n++){let o=s[n];r.addToBatch(o,e)}}_getGpuDataForRenderable(t){return t._gpuData[this.renderer.uid]||this._initGpuDataForRenderable(t)}_initGpuDataForRenderable(t){let e=new md;return t._gpuData[this.renderer.uid]=e,this._managedGraphics.add(t),e}_updateBatchesForRenderable(t,e){let r=t.context,n=this.renderer.graphicsContext.getGpuContext(r),o=this.renderer._roundPixels|t._roundPixels;e.batches=n.batches.map(a=>{let l=bt.get(si);return a.copyTo(l),l.renderable=t,l.roundPixels=o,l})}destroy(){this._managedGraphics.destroy(),this.renderer=null,this._adaptor.destroy(),this._adaptor=null,this.state=null}};qn.extension={type:[y.WebGLPipes,y.WebGPUPipes],name:"graphics"}});var rv=p(()=>{P();J0();tv();dl();ev();z.add($n);z.add(qn);z.add(Q0);z.add(Qi)});var oe,gd=p(()=>{yt();Cs();hd();rv();oe=class i extends Le{constructor(t){t instanceof ge&&(t={context:t});let{context:e,roundPixels:r,...s}=t||{};super({label:"Graphics",...s}),this.renderPipeId="graphics",e?this.context=e:(this.context=this._ownedContext=new ge,this.context.autoGarbageCollect=this.autoGarbageCollect),this.didViewUpdate=!0,this.allowChildren=!1,this.roundPixels=r??!1}set context(t){t!==this._context&&(this._context&&(this._context.off("update",this.onViewUpdate,this),this._context.off("unload",this.unload,this)),this._context=t,this._context.on("update",this.onViewUpdate,this),this._context.on("unload",this.unload,this),this.onViewUpdate())}get context(){return this._context}get bounds(){return this._context.bounds}updateBounds(){}containsPoint(t){return this._context.containsPoint(t)}destroy(t){this._ownedContext&&!t?this._ownedContext.destroy(t):(t===!0||t?.context===!0)&&this._context.destroy(t),this._context?.off("update",this.onViewUpdate,this),this._context?.off("unload",this.unload,this),this._ownedContext=null,this._context=null,super.destroy(t)}_onTouch(t){this._gcLastUsed=t,this._context._gcLastUsed=t}_callContextMethod(t,e){return this.context[t](...e),this}setFillStyle(...t){return this._callContextMethod("setFillStyle",t)}setStrokeStyle(...t){return this._callContextMethod("setStrokeStyle",t)}fill(...t){return this._callContextMethod("fill",t)}stroke(...t){return this._callContextMethod("stroke",t)}texture(...t){return this._callContextMethod("texture",t)}beginPath(){return this._callContextMethod("beginPath",[])}cut(){return this._callContextMethod("cut",[])}arc(...t){return this._callContextMethod("arc",t)}arcTo(...t){return this._callContextMethod("arcTo",t)}arcToSvg(...t){return this._callContextMethod("arcToSvg",t)}bezierCurveTo(...t){return this._callContextMethod("bezierCurveTo",t)}closePath(){return this._callContextMethod("closePath",[])}ellipse(...t){return this._callContextMethod("ellipse",t)}circle(...t){return this._callContextMethod("circle",t)}path(...t){return this._callContextMethod("path",t)}lineTo(...t){return this._callContextMethod("lineTo",t)}moveTo(...t){return this._callContextMethod("moveTo",t)}quadraticCurveTo(...t){return this._callContextMethod("quadraticCurveTo",t)}rect(...t){return this._callContextMethod("rect",t)}roundRect(...t){return this._callContextMethod("roundRect",t)}poly(...t){return this._callContextMethod("poly",t)}regularPoly(...t){return this._callContextMethod("regularPoly",t)}roundPoly(...t){return this._callContextMethod("roundPoly",t)}roundShape(...t){return this._callContextMethod("roundShape",t)}filletRect(...t){return this._callContextMethod("filletRect",t)}chamferRect(...t){return this._callContextMethod("chamferRect",t)}star(...t){return this._callContextMethod("star",t)}svg(...t){return this._callContextMethod("svg",t)}restore(...t){return this._callContextMethod("restore",t)}save(){return this._callContextMethod("save",[])}getTransform(){return this.context.getTransform()}resetTransform(){return this._callContextMethod("resetTransform",[])}rotateTransform(...t){return this._callContextMethod("rotate",t)}scaleTransform(...t){return this._callContextMethod("scale",t)}setTransform(...t){return this._callContextMethod("setTransform",t)}transform(...t){return this._callContextMethod("transform",t)}translateTransform(...t){return this._callContextMethod("translate",t)}clear(){return this._callContextMethod("clear",[])}get fillStyle(){return this._context.fillStyle}set fillStyle(t){this._context.fillStyle=t}get strokeStyle(){return this._context.strokeStyle}set strokeStyle(t){this._context.strokeStyle=t}clone(t=!1){return t?new i(this._context.clone()):(this._ownedContext=null,new i(this._context))}lineStyle(t,e,r){O(rt,"Graphics#lineStyle is no longer needed. Use Graphics#setStrokeStyle to set the stroke style.");let s={};return t&&(s.width=t),e&&(s.color=e),r&&(s.alpha=r),this.context.strokeStyle=s,this}beginFill(t,e){O(rt,"Graphics#beginFill is no longer needed. Use Graphics#fill to fill the shape with the desired style.");let r={};return t!==void 0&&(r.color=t),e!==void 0&&(r.alpha=e),this.context.fillStyle=r,this}endFill(){O(rt,"Graphics#endFill is no longer needed. Use Graphics#fill to fill the shape with the desired style."),this.context.fill();let t=this.context.strokeStyle;return(t.width!==ge.defaultStrokeStyle.width||t.color!==ge.defaultStrokeStyle.color||t.alpha!==ge.defaultStrokeStyle.alpha)&&this.context.stroke(),this}drawCircle(...t){return O(rt,"Graphics#drawCircle has been renamed to Graphics#circle"),this._callContextMethod("circle",t)}drawEllipse(...t){return O(rt,"Graphics#drawEllipse has been renamed to Graphics#ellipse"),this._callContextMethod("ellipse",t)}drawPolygon(...t){return O(rt,"Graphics#drawPolygon has been renamed to Graphics#poly"),this._callContextMethod("poly",t)}drawRect(...t){return O(rt,"Graphics#drawRect has been renamed to Graphics#rect"),this._callContextMethod("rect",t)}drawRoundedRect(...t){return O(rt,"Graphics#drawRoundedRect has been renamed to Graphics#roundRect"),this._callContextMethod("roundRect",t)}drawStar(...t){return O(rt,"Graphics#drawStar has been renamed to Graphics#star"),this._callContextMethod("star",t)}}});function zw(i,t,e,r,s,n){n=Math.max(0,Math.min(n,Math.min(r,s)/2)),i.moveTo(t+n,e),i.lineTo(t+r-n,e),i.quadraticCurveTo(t+r,e,t+r,e+n),i.lineTo(t+r,e+s-n),i.quadraticCurveTo(t+r,e+s,t+r-n,e+s),i.lineTo(t+n,e+s),i.quadraticCurveTo(t,e+s,t,e+s-n),i.lineTo(t,e+n),i.quadraticCurveTo(t,e,t+n,e)}function iv(i,t){switch(t.type){case"rectangle":{let e=t;i.rect(e.x,e.y,e.width,e.height);break}case"roundedRectangle":{let e=t;zw(i,e.x,e.y,e.width,e.height,e.radius);break}case"circle":{let e=t;i.moveTo(e.x+e.radius,e.y),i.arc(e.x,e.y,e.radius,0,Math.PI*2);break}case"ellipse":{let e=t;i.ellipse?(i.moveTo(e.x+e.halfWidth,e.y),i.ellipse(e.x,e.y,e.halfWidth,e.halfHeight,0,0,Math.PI*2)):(i.save(),i.translate(e.x,e.y),i.scale(e.halfWidth,e.halfHeight),i.moveTo(1,0),i.arc(0,0,1,0,Math.PI*2),i.restore());break}case"triangle":{let e=t;i.moveTo(e.x,e.y),i.lineTo(e.x2,e.y2),i.lineTo(e.x3,e.y3),i.closePath();break}case"polygon":default:{let e=t,r=e.points;if(!r?.length)break;i.moveTo(r[0],r[1]);for(let s=2;s<r.length;s+=2)i.lineTo(r[s],r[s+1]);e.closePath&&i.closePath();break}}}function Hw(i,t,e){let r=[],s=[],n=[];if(!Tr[t.type]?.build(t,r))return!1;let a=t.closePath??!0;Ki(r,e,!1,a,s,n);for(let l=0;l<n.length;l+=3){let c=n[l]*2,h=n[l+1]*2,u=n[l+2]*2;i.moveTo(s[c],s[c+1]),i.lineTo(s[h],s[h+1]),i.lineTo(s[u],s[u+1]),i.closePath()}return!0}function Ww(i,t){if(!t?.length)return!1;for(let e=0;e<t.length;e++){let r=t[e];if(!r?.shape)continue;let s=r.transform,n=s&&!s.isIdentity();n&&(i.save(),i.transform(s.a,s.b,s.c,s.d,s.tx,s.ty)),iv(i,r.shape),n&&i.restore()}return!0}var Kn,sv=p(()=>{P();ol();gd();cl();ht();Kn=class{constructor(t){this._warnedMaskTypes=new Set,this._canvasMaskStack=[],this._renderer=t}push(t,e,r){this._renderer.renderPipes.batch.break(r),r.add({renderPipeId:"stencilMask",action:"pushMaskBegin",mask:t,inverse:e._maskOptions.inverse,canBundle:!1})}pop(t,e,r){this._renderer.renderPipes.batch.break(r),r.add({renderPipeId:"stencilMask",action:"popMaskEnd",mask:t,inverse:e._maskOptions.inverse,canBundle:!1})}execute(t){if(t.action!=="pushMaskBegin"&&t.action!=="popMaskEnd")return;let e=this._renderer,r=e.canvasContext,s=r?.activeContext;if(!s)return;if(t.action==="popMaskEnd"){this._canvasMaskStack.pop()&&s.restore();return}t.inverse&&this._warnOnce("inverse","CanvasRenderer: inverse masks are not supported on Canvas2D; ignoring inverse flag.");let n=t.mask.mask;if(!(n instanceof oe)){this._warnOnce("nonGraphics","CanvasRenderer: only Graphics masks are supported in Canvas2D; skipping mask."),this._canvasMaskStack.push(!1);return}let o=n,a=o.context?.instructions;if(!a?.length){this._canvasMaskStack.push(!1);return}s.save(),r.setContextTransform(o.groupTransform,(e._roundPixels|o._roundPixels)===1),s.beginPath();let l=!1,c=!1;for(let h=0;h<a.length;h++){let u=a[h],d=u.action;if(d!=="fill"&&d!=="stroke")continue;let f=u.data,m=f?.path?.shapePath;if(!m?.shapePrimitives?.length)continue;let g=d==="stroke",_=m.shapePrimitives;for(let x=0;x<_.length;x++){let b=_[x];if(!b?.shape)continue;let v=b.transform,S=v&&!v.isIdentity();S&&(s.save(),s.transform(v.a,v.b,v.c,v.d,v.tx,v.ty)),g&&f.style?l=Hw(s,b.shape,f.style)||l:(iv(s,b.shape),c=Ww(s,b.holes)||c,l=!0),S&&s.restore()}}if(!l){s.restore(),this._canvasMaskStack.push(!1);return}c?s.clip("evenodd"):s.clip(),this._canvasMaskStack.push(!0)}destroy(){this._renderer=null,this._warnedMaskTypes=null,this._canvasMaskStack=null}_warnOnce(t,e){this._warnedMaskTypes.has(t)||(this._warnedMaskTypes.add(t),L(e))}};Kn.extension={type:[y.CanvasPipes],name:"stencilMask"}});function nv(){let i=Yo(),t=Object.create(null);return t.inherit=_t,t.none=_t,t.normal="source-over",t.add="lighter",t.multiply=i?"multiply":_t,t.screen=i?"screen":_t,t.overlay=i?"overlay":_t,t.darken=i?"darken":_t,t.lighten=i?"lighten":_t,t["color-dodge"]=i?"color-dodge":_t,t["color-burn"]=i?"color-burn":_t,t["hard-light"]=i?"hard-light":_t,t["soft-light"]=i?"soft-light":_t,t.difference=i?"difference":_t,t.exclusion=i?"exclusion":_t,t.saturation=i?"saturation":_t,t.color=i?"color":_t,t.luminosity=i?"luminosity":_t,t["linear-burn"]=i?"color-burn":_t,t["linear-dodge"]=i?"color-dodge":_t,t["linear-light"]=i?"hard-light":_t,t["pin-light"]=i?"hard-light":_t,t["vivid-light"]=i?"hard-light":_t,t["hard-mix"]=_t,t.negation=i?"difference":_t,t["normal-npm"]=t.normal,t["add-npm"]=t.add,t["screen-npm"]=t.screen,t.erase="destination-out",t.subtract=_t,t.divide=_t,t.min=_t,t.max=_t,t}var _t,ov=p(()=>{Oc();_t="source-over"});var Vw,Zn,av=p(()=>{Qt();P();ot();ov();Vw=new k,Zn=class{constructor(t){this.activeResolution=1,this.smoothProperty="imageSmoothingEnabled",this.blendModes=nv(),this._activeBlendMode="normal",this._projTransform=null,this._outerBlend=!1,this._warnedBlendModes=new Set,this._renderer=t}resolutionChange(t){this.activeResolution=t}init(){let t=this._renderer.background.alpha<1;if(this.rootContext=this._renderer.canvas.getContext("2d",{alpha:t}),this.activeContext=this.rootContext,this.activeResolution=this._renderer.resolution,!this.rootContext.imageSmoothingEnabled){let e=this.rootContext;e.webkitImageSmoothingEnabled?this.smoothProperty="webkitImageSmoothingEnabled":e.mozImageSmoothingEnabled?this.smoothProperty="mozImageSmoothingEnabled":e.oImageSmoothingEnabled?this.smoothProperty="oImageSmoothingEnabled":e.msImageSmoothingEnabled&&(this.smoothProperty="msImageSmoothingEnabled")}}setContextTransform(t,e,r,s){let n=s?k.IDENTITY:this._renderer.globalUniforms.globalUniformData?.worldTransformMatrix||k.IDENTITY,o=Vw;o.copyFrom(n),o.append(t);let a=this._projTransform,l=this.activeResolution;if(r=r||l,a){let c=k.shared;c.copyFrom(o),c.prepend(a),o=c}e?this.activeContext.setTransform(o.a*r,o.b*r,o.c*r,o.d*r,o.tx*l|0,o.ty*l|0):this.activeContext.setTransform(o.a*r,o.b*r,o.c*r,o.d*r,o.tx*l,o.ty*l)}clear(t,e){let r=this.activeContext,s=this._renderer;if(r.clearRect(0,0,s.width,s.height),t){let n=Q.shared.setValue(t);r.globalAlpha=e??n.alpha,r.fillStyle=n.toHex(),r.fillRect(0,0,s.width,s.height),r.globalAlpha=1}}setBlendMode(t){if(this._activeBlendMode===t)return;this._activeBlendMode=t,this._outerBlend=!1;let e=this.blendModes[t];if(!e){this._warnedBlendModes.has(t)||(console.warn(`CanvasRenderer: blend mode "${t}" is not supported in Canvas2D; falling back to "source-over".`),this._warnedBlendModes.add(t)),this.activeContext.globalCompositeOperation="source-over";return}this.activeContext.globalCompositeOperation=e}destroy(){this.rootContext=null,this.activeContext=null,this._warnedBlendModes.clear()}};Zn.extension={type:[y.CanvasSystem],name:"canvasContext"}});var Qn,lv=p(()=>{P();Qn=class{constructor(){this.maxTextures=16,this.maxBatchableTextures=16,this.maxUniformBindings=0}init(){}};Qn.extension={type:[y.CanvasSystem],name:"limits"}});var _l,cv=p(()=>{Qt();xt();ht();fr();_l=class{init(t,e){this._renderer=t,this._renderTargetSystem=e}initGpuRenderTarget(t){let e=t.colorTexture,{canvas:r,context:s}=this._ensureCanvas(e);return{canvas:r,context:s,width:r.width,height:r.height}}resizeGpuRenderTarget(t){let e=t.colorTexture,{canvas:r}=this._ensureCanvas(e);r.width=t.pixelWidth,r.height=t.pixelHeight}startRenderPass(t,e,r,s){let n=this._renderTargetSystem.getGpuRenderTarget(t);this._renderer.canvasContext.activeContext=n.context,this._renderer.canvasContext.activeResolution=t.resolution,e&&this.clear(t,e,r,s)}clear(t,e,r,s){let o=this._renderTargetSystem.getGpuRenderTarget(t).context,a=s||{x:0,y:0,width:t.pixelWidth,height:t.pixelHeight};if(o.setTransform(1,0,0,1,0,0),o.clearRect(a.x,a.y,a.width,a.height),r){let l=Q.shared.setValue(r);l.alpha>0&&(o.globalAlpha=l.alpha,o.fillStyle=l.toHex(),o.fillRect(a.x,a.y,a.width,a.height),o.globalAlpha=1)}}finishRenderPass(){}copyToTexture(t,e,r,s,n){let a=this._renderTargetSystem.getGpuRenderTarget(t).canvas,l=e.source,{context:c}=this._ensureCanvas(l),h=n?.x??0,u=n?.y??0;return c.drawImage(a,r.x,r.y,s.width,s.height,h,u,s.width,s.height),l.update(),e}copyDepthTexture(t,e,r,s,n){L("[CanvasRenderTargetAdaptor] copyDepthTexture is not supported in the canvas renderer")}destroyGpuRenderTarget(t){}_ensureCanvas(t){let e=t.resource;(!e||!wt.test(e))&&(e=W.get().createCanvas(t.pixelWidth,t.pixelHeight),t.resource=e),(e.width!==t.pixelWidth||e.height!==t.pixelHeight)&&(e.width=t.pixelWidth,e.height=t.pixelHeight);let r=e.getContext("2d");return{canvas:e,context:r}}}});var Jn,hv=p(()=>{P();Ha();cv();Jn=class extends Sr{constructor(t){super(t),this.adaptor=new _l,this.adaptor.init(t,this)}};Jn.extension={type:[y.CanvasSystem],name:"renderTarget"}});var to,uv=p(()=>{xt();P();Ei();to=class{constructor(t){}init(){}initSource(t){}generateCanvas(t){let e=W.get().createCanvas(),r=e.getContext("2d"),s=Z.getCanvasSource(t);if(!s)return e;let n=t.frame,o=t.source._resolution??t.source.resolution??1,a=n.x*o,l=n.y*o,c=n.width*o,h=n.height*o;return e.width=Math.ceil(c),e.height=Math.ceil(h),r.drawImage(s,a,l,c,h,0,0,c,h),e}getPixels(t){let e=this.generateCanvas(t);return{pixels:e.getContext("2d",{willReadFrequently:!0}).getImageData(0,0,e.width,e.height).data,width:e.width,height:e.height}}destroy(){}};to.extension={type:[y.CanvasSystem],name:"texture"}});var mv={};zl(mv,{CanvasRenderer:()=>xd});var jw,Xw,Yw,dv,fv,pv,xd,gv=p(()=>{P();Rh();Bh();u0();Fh();f0();Xh();qh();p0();sv();Zh();Vr();Da();Ne();av();lv();hv();uv();jw=[...Xi,Zn,Qn,to,Jn],Xw=[Kr,hn,Yr,Xr,qr,Kn,Xn,jr],Yw=[d0,jn],dv=[],fv=[],pv=[];z.handleByNamedList(y.CanvasSystem,dv);z.handleByNamedList(y.CanvasPipes,fv);z.handleByNamedList(y.CanvasPipesAdaptor,pv);z.add(...jw,...Xw,...Yw);xd=class extends Te{constructor(){let t={name:"canvas",type:Lt.CANVAS,systems:dv,renderPipes:fv,renderPipeAdaptors:pv};super(t)}}});function Ev(i=1e3,t=0,e=!1){if(isNaN(i)||i<0)throw new TypeError("Invalid max value");if(isNaN(t)||t<0)throw new TypeError("Invalid ttl value");if(typeof e!="boolean")throw new TypeError("Invalid resetTtl value");return new yd(i,t,e)}var yd,Pv=p(()=>{yd=class{constructor(t=0,e=0,r=!1){this.first=null,this.items=Object.create(null),this.last=null,this.max=t,this.resetTtl=r,this.size=0,this.ttl=e}clear(){return this.first=null,this.items=Object.create(null),this.last=null,this.size=0,this}delete(t){if(this.has(t)){let e=this.items[t];delete this.items[t],this.size--,e.prev!==null&&(e.prev.next=e.next),e.next!==null&&(e.next.prev=e.prev),this.first===e&&(this.first=e.next),this.last===e&&(this.last=e.prev)}return this}entries(t=this.keys()){let e=new Array(t.length);for(let r=0;r<t.length;r++){let s=t[r];e[r]=[s,this.get(s)]}return e}evict(t=!1){if(t||this.size>0){let e=this.first;delete this.items[e.key],--this.size===0?(this.first=null,this.last=null):(this.first=e.next,this.first.prev=null)}return this}expiresAt(t){let e;return this.has(t)&&(e=this.items[t].expiry),e}get(t){let e=this.items[t];if(e!==void 0){if(this.ttl>0&&e.expiry<=Date.now()){this.delete(t);return}return this.moveToEnd(e),e.value}}has(t){return t in this.items}moveToEnd(t){this.last!==t&&(t.prev!==null&&(t.prev.next=t.next),t.next!==null&&(t.next.prev=t.prev),this.first===t&&(this.first=t.next),t.prev=this.last,t.next=null,this.last!==null&&(this.last.next=t),this.last=t,this.first===null&&(this.first=t))}keys(){let t=new Array(this.size),e=this.first,r=0;for(;e!==null;)t[r++]=e.key,e=e.next;return t}setWithEvicted(t,e,r=this.resetTtl){let s=null;if(this.has(t))this.set(t,e,!0,r);else{this.max>0&&this.size===this.max&&(s={...this.first},this.evict(!0));let n=this.items[t]={expiry:this.ttl>0?Date.now()+this.ttl:this.ttl,key:t,prev:this.last,next:null,value:e};++this.size===1?this.first=n:this.last.next=n,this.last=n}return s}set(t,e,r=!1,s=this.resetTtl){let n=this.items[t];return r||n!==void 0?(n.value=e,r===!1&&s&&(n.expiry=this.ttl>0?Date.now()+this.ttl:this.ttl),this.moveToEnd(n)):(this.max>0&&this.size===this.max&&this.evict(!0),n=this.items[t]={expiry:this.ttl>0?Date.now()+this.ttl:this.ttl,key:t,prev:this.last,next:null,value:e},++this.size===1?this.first=n:this.last.next=n,this.last=n),this}values(t=this.keys()){let e=new Array(t.length);for(let r=0;r<t.length;r++)e[r]=this.get(t[r]);return e}}});function bd(i){return!!i.tagStyles&&Object.keys(i.tagStyles).length>0}function vd(i){return i.includes("<")}function qw(i,t){return i.clone().assign(t)}function Mv(i,t){let e=[],r=t.tagStyles;if(!bd(t)||!vd(i))return e.push({text:i,style:t}),e;let s=[t],n=[],o="",a=0;for(;a<i.length;){let l=i[a];if(l==="<"){let c=i.indexOf(">",a);if(c===-1){o+=l,a++;continue}let h=i.indexOf("<",a+1);if(h!==-1&&h<c){o+=l,a++;continue}let u=i.slice(a+1,c);if(u.startsWith("/")){let d=u.slice(1).trim();if(n.length>0&&n[n.length-1]===d){o.length>0&&(e.push({text:o,style:s[s.length-1]}),o=""),s.pop(),n.pop(),a=c+1;continue}else{o+=i.slice(a,c+1),a=c+1;continue}}else{let d=u.trim();if(r[d]){o.length>0&&(e.push({text:o,style:s[s.length-1]}),o="");let f=s[s.length-1],m=qw(f,r[d]);s.push(m),n.push(d),a=c+1;continue}else{o+=i.slice(a,c+1),a=c+1;continue}}}else o+=l,a++}return o.length>0&&e.push({text:o,style:s[s.length-1]}),e}var Sd=p(()=>{"use strict"});function rs(i){return typeof i!="string"?!1:Zw.has(i.charCodeAt(0))}function ae(i,t){return typeof i!="string"?!1:Jw.has(i.charCodeAt(0))}function iC(i){return typeof i!="string"?!1:rC.has(i.charCodeAt(0))}function Tl(i){return i==="normal"||i==="pre-line"}function wl(i){return i==="normal"}function Fe(i){if(typeof i!="string")return"";let t=i.length-1;for(;t>=0&&ae(i[t]);)t--;return t<i.length-1?i.slice(0,t+1):i}function Cl(i){let t=[],e=[];if(typeof i!="string")return t;for(let r=0;r<i.length;r++){let s=i[r],n=i[r+1];if(ae(s,n)||rs(s)){e.length>0&&(t.push(e.join("")),e.length=0),s==="\r"&&n===`
906
+ `))}var ab=p(()=>{Cn();me();wn();nb()});var ei,Ru=p(()=>{P();ab();ei=class{constructor(t){this._cache={},this._uniformGroupSyncHash={},this._renderer=t,this.gl=null,this._cache={}}contextChange(t){this.gl=t}updateUniformGroup(t,e,r){let s=this._renderer.shader._getProgramData(e);(!t.isStatic||t._dirtyId!==s.uniformDirtyGroups[t.uid])&&(s.uniformDirtyGroups[t.uid]=t._dirtyId,this._getUniformSyncFunction(t,e)(s.uniformData,t.uniforms,this._renderer,r))}_getUniformSyncFunction(t,e){return this._uniformGroupSyncHash[t._signature]?.[e._key]||this._createUniformSyncFunction(t,e)}_createUniformSyncFunction(t,e){let r=this._uniformGroupSyncHash[t._signature]||(this._uniformGroupSyncHash[t._signature]={}),s=this._getSignature(t,e._uniformData,"u");return this._cache[s]||(this._cache[s]=this._generateUniformsSync(t,e._uniformData)),r[e._key]=this._cache[s],r[e._key]}_generateUniformsSync(t,e){return ob(t,e)}_getSignature(t,e,r){let s=t.uniforms,n=[`${r}-`];for(let o in s)n.push(o),e[o]&&n.push(e[o].type);return n.join("-")}destroy(){this._renderer=null,this._cache=null}};ei.extension={type:[y.WebGLSystem],name:"uniformGroup"}});function lb(i){let t={};if(t.normal=[i.ONE,i.ONE_MINUS_SRC_ALPHA],t.add=[i.ONE,i.ONE],t.multiply=[i.DST_COLOR,i.ONE_MINUS_SRC_ALPHA,i.ONE,i.ONE_MINUS_SRC_ALPHA],t.screen=[i.ONE,i.ONE_MINUS_SRC_COLOR,i.ONE,i.ONE_MINUS_SRC_ALPHA],t.none=[0,0],t["normal-npm"]=[i.SRC_ALPHA,i.ONE_MINUS_SRC_ALPHA,i.ONE,i.ONE_MINUS_SRC_ALPHA],t["add-npm"]=[i.SRC_ALPHA,i.ONE,i.ONE,i.ONE],t["screen-npm"]=[i.SRC_ALPHA,i.ONE_MINUS_SRC_COLOR,i.ONE,i.ONE_MINUS_SRC_ALPHA],t.erase=[i.ZERO,i.ONE_MINUS_SRC_ALPHA],!(i instanceof W.get().getWebGLRenderingContext()))t.min=[i.ONE,i.ONE,i.ONE,i.ONE,i.MIN,i.MIN],t.max=[i.ONE,i.ONE,i.ONE,i.ONE,i.MAX,i.MAX];else{let r=i.getExtension("EXT_blend_minmax");r&&(t.min=[i.ONE,i.ONE,i.ONE,i.ONE,r.MIN_EXT,r.MIN_EXT],t.max=[i.ONE,i.ONE,i.ONE,i.ONE,r.MAX_EXT,r.MAX_EXT])}return t}var cb=p(()=>{xt()});var zT,HT,WT,VT,jT,hb,ub,db,fb=p(()=>{P();Be();cb();({BLEND:zT,OFFSET:HT,CULLING:WT,DEPTH_TEST:VT,WINDING:jT,DEPTH_MASK:hb}=nh),ub=class ku{constructor(t){this._invertFrontFace=!1,this.gl=null,this.stateId=0,this.polygonOffset=0,this.blendMode="none",this._blendEq=!1,this.map=[],this.map[zT]=this.setBlend,this.map[HT]=this.setOffset,this.map[WT]=this.setCullFace,this.map[VT]=this.setDepthTest,this.map[jT]=this.setFrontFace,this.map[hb]=this.setDepthMask,this.checks=[],this.defaultState=Ot.for2d(),t.renderTarget.onRenderTargetChange.add(this)}onRenderTargetChange(t){this._invertFrontFace=!t.isRoot!=!!t.flipY,this._cullFace?this.setFrontFace(this._frontFace):this._frontFaceDirty=!0}contextChange(t){this.gl=t,this.blendModesMap=lb(t),this.resetState()}set(t){if(t||(t=this.defaultState),this.stateId!==t.data){let e=this.stateId^t.data,r=0;for(;e;)e&1&&this.map[r].call(this,!!(t.data&1<<r)),e>>=1,r++;this.stateId=t.data}for(let e=0;e<this.checks.length;e++)this.checks[e](this,t)}forceState(t){t||(t=this.defaultState);for(let e=0;e<this.map.length;e++)this.map[e].call(this,!!(t.data&1<<e));for(let e=0;e<this.checks.length;e++)this.checks[e](this,t);this.stateId=t.data}setBlend(t){this._updateCheck(ku._checkBlendMode,t),this.gl[t?"enable":"disable"](this.gl.BLEND)}setOffset(t){this._updateCheck(ku._checkPolygonOffset,t),this.gl[t?"enable":"disable"](this.gl.POLYGON_OFFSET_FILL)}setDepthTest(t){this.gl[t?"enable":"disable"](this.gl.DEPTH_TEST)}setDepthMask(t){this.gl.depthMask(t)}get depthMaskEnabled(){return!!(this.stateId&1<<hb)}setCullFace(t){this._cullFace=t,this.gl[t?"enable":"disable"](this.gl.CULL_FACE),this._cullFace&&this._frontFaceDirty&&this.setFrontFace(this._frontFace)}setFrontFace(t){this._frontFace=t,this._frontFaceDirty=!1;let e=this._invertFrontFace?!t:t;this._glFrontFace!==e&&(this._glFrontFace=e,this.gl.frontFace(this.gl[e?"CW":"CCW"]))}setBlendMode(t){if(this.blendModesMap[t]||(t="normal"),t===this.blendMode)return;this.blendMode=t;let e=this.blendModesMap[t],r=this.gl;e.length===2?r.blendFunc(e[0],e[1]):r.blendFuncSeparate(e[0],e[1],e[2],e[3]),e.length===6?(this._blendEq=!0,r.blendEquationSeparate(e[4],e[5])):this._blendEq&&(this._blendEq=!1,r.blendEquationSeparate(r.FUNC_ADD,r.FUNC_ADD))}setPolygonOffset(t,e){this.gl.polygonOffset(t,e)}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(t,e){let r=this.checks.indexOf(t);e&&r===-1?this.checks.push(t):!e&&r!==-1&&this.checks.splice(r,1)}static _checkBlendMode(t,e){t.setBlendMode(e.blendMode)}static _checkPolygonOffset(t,e){t.setPolygonOffset(1,e.polygonOffset)}destroy(){this.gl=null,this.checks.length=0}};ub.extension={type:[y.WebGLSystem],name:"state"};db=ub});var sl,pb=p(()=>{Ka();sl=class{constructor(t){this.target=Dn.TEXTURE_2D,this._layerInitMask=0,this.texture=t,this.width=-1,this.height=-1,this.type=at.UNSIGNED_BYTE,this.internalFormat=qa.RGBA,this.format=qa.RGBA,this.samplerType=0}destroy(){}}});var mb,gb=p(()=>{"use strict";mb={id:"buffer",upload(i,t,e,r,s,n=!1){let o=s||t.target;!n&&t.width===i.width&&t.height===i.height?e.texSubImage2D(o,0,0,0,i.width,i.height,t.format,t.type,i.resource):e.texImage2D(o,0,t.internalFormat,i.width,i.height,0,t.format,t.type,i.resource),t.width=i.width,t.height=i.height}}});var XT,xb,_b=p(()=>{"use strict";XT={"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},xb={id:"compressed",upload(i,t,e,r,s,n){let o=s??t.target;e.pixelStorei(e.UNPACK_ALIGNMENT,4);let a=i.pixelWidth,l=i.pixelHeight,c=!!XT[i.format];for(let h=0;h<i.resource.length;h++){let u=i.resource[h];c?e.compressedTexImage2D(o,h,t.internalFormat,a,l,0,u):e.texImage2D(o,h,t.internalFormat,a,l,0,t.format,t.type,u),a=Math.max(a>>1,1),l=Math.max(l>>1,1)}}}});function bb(i){return{id:"cube",upload(t,e,r,s){let n=t.faces;for(let o=0;o<yb.length;o++){let a=yb[o],l=n[a];if(!l.resource)continue;(i[l.uploadMethodId]||i.image).upload(l,e,r,s,Dn.TEXTURE_CUBE_MAP_POSITIVE_X+o,(e._layerInitMask&1<<o)===0),e._layerInitMask|=1<<o}e.width=t.pixelWidth,e.height=t.pixelHeight}}}var yb,vb=p(()=>{Ka();yb=["right","left","top","bottom","front","back"]});function YT(i,t,e,r,s,n,o,a,l,c){if(!c){l&&i.texImage2D(t,0,e.internalFormat,r,s,0,e.format,e.type,null),i.texSubImage2D(t,0,0,0,n,o,e.format,e.type,a);return}if(!l){i.texSubImage2D(t,0,0,0,e.format,e.type,a);return}i.texImage2D(t,0,e.internalFormat,r,s,0,e.format,e.type,a)}function $T(i,t,e,r,s,n,o,a,l,c){if(!c){l&&i.texImage2D(t,0,e.internalFormat,r,s,0,e.format,e.type,null),i.texSubImage2D(t,0,0,0,e.format,e.type,a);return}if(!l){i.texSubImage2D(t,0,0,0,e.format,e.type,a);return}i.texImage2D(t,0,e.internalFormat,e.format,e.type,a)}var nl,Bu=p(()=>{"use strict";nl={id:"image",upload(i,t,e,r,s,n=!1){let o=s||t.target,a=i.pixelWidth,l=i.pixelHeight,c=i.resourceWidth,h=i.resourceHeight,u=r===2,d=n||t.width!==a||t.height!==l,f=c>=a&&h>=l,m=i.resource;(u?YT:$T)(e,o,t,a,l,c,h,m,d,f),t.width=a,t.height=l}}});function Sb(){let{userAgent:i}=W.get().getNavigator();return/^((?!chrome|android).)*safari/i.test(i)}var Tb=p(()=>{xt()});var qT,wb,Cb=p(()=>{Tb();Bu();qT=Sb(),wb={id:"video",upload(i,t,e,r,s,n=qT){if(!i.isValid){let o=s??t.target;e.texImage2D(o,0,t.internalFormat,1,1,0,t.format,t.type,null);return}nl.upload(i,t,e,r,s,n)}}});var Iu,Eb,ol,Pb,Mb=p(()=>{"use strict";Iu={linear:9729,nearest:9728},Eb={linear:{linear:9987,nearest:9985},nearest:{linear:9986,nearest:9984}},ol={"clamp-to-edge":33071,repeat:10497,"mirror-repeat":33648},Pb={never:512,less:513,equal:514,"less-equal":515,greater:516,"not-equal":517,"greater-equal":518,always:519}});function Gu(i,t,e,r,s,n,o,a){let l=n;if(!a||i.addressModeU!=="repeat"||i.addressModeV!=="repeat"||i.addressModeW!=="repeat"){let c=ol[o?"clamp-to-edge":i.addressModeU],h=ol[o?"clamp-to-edge":i.addressModeV],u=ol[o?"clamp-to-edge":i.addressModeW];t[s](l,t.TEXTURE_WRAP_S,c),t[s](l,t.TEXTURE_WRAP_T,h),t.TEXTURE_WRAP_R&&t[s](l,t.TEXTURE_WRAP_R,u)}if((!a||i.magFilter!=="linear")&&t[s](l,t.TEXTURE_MAG_FILTER,Iu[i.magFilter]),e){if(!a||i.mipmapFilter!=="linear"){let c=Eb[i.minFilter][i.mipmapFilter];t[s](l,t.TEXTURE_MIN_FILTER,c)}}else t[s](l,t.TEXTURE_MIN_FILTER,Iu[i.minFilter]);if(r&&i.maxAnisotropy>1){let c=Math.min(i.maxAnisotropy,t.getParameter(r.MAX_TEXTURE_MAX_ANISOTROPY_EXT));t[s](l,r.TEXTURE_MAX_ANISOTROPY_EXT,c)}i.compare?(t[s](l,t.TEXTURE_COMPARE_FUNC,Pb[i.compare]),t[s](l,t.TEXTURE_COMPARE_MODE,t.COMPARE_REF_TO_TEXTURE)):a||t[s](l,t.TEXTURE_COMPARE_MODE,t.NONE)}var Ab=p(()=>{Mb()});function Rb(i){return{r8unorm:i.RED,r8snorm:i.RED,r8uint:i.RED,r8sint:i.RED,r16uint:i.RED,r16sint:i.RED,r16float:i.RED,rg8unorm:i.RG,rg8snorm:i.RG,rg8uint:i.RG,rg8sint:i.RG,r32uint:i.RED,r32sint:i.RED,r32float:i.RED,rg16uint:i.RG,rg16sint:i.RG,rg16float:i.RG,rgba8unorm:i.RGBA,"rgba8unorm-srgb":i.RGBA,rgba8snorm:i.RGBA,rgba8uint:i.RGBA,rgba8sint:i.RGBA,bgra8unorm:i.RGBA,"bgra8unorm-srgb":i.RGBA,rgb9e5ufloat:i.RGB,rgb10a2unorm:i.RGBA,rg11b10ufloat:i.RGB,rg32uint:i.RG,rg32sint:i.RG,rg32float:i.RG,rgba16uint:i.RGBA,rgba16sint:i.RGBA,rgba16float:i.RGBA,rgba32uint:i.RGBA,rgba32sint:i.RGBA,rgba32float:i.RGBA,stencil8:i.STENCIL_INDEX8,depth16unorm:i.DEPTH_COMPONENT,depth24plus:i.DEPTH_COMPONENT,"depth24plus-stencil8":i.DEPTH_STENCIL,depth32float:i.DEPTH_COMPONENT,"depth32float-stencil8":i.DEPTH_STENCIL}}var kb=p(()=>{"use strict"});function Bb(i,t){let e={},r=i.RGBA;return i instanceof W.get().getWebGLRenderingContext()?t.srgb&&(e={"rgba8unorm-srgb":t.srgb.SRGB8_ALPHA8_EXT,"bgra8unorm-srgb":t.srgb.SRGB8_ALPHA8_EXT}):(e={"rgba8unorm-srgb":i.SRGB8_ALPHA8,"bgra8unorm-srgb":i.SRGB8_ALPHA8},r=i.RGBA8),{r8unorm:i.R8,r8snorm:i.R8_SNORM,r8uint:i.R8UI,r8sint:i.R8I,r16uint:i.R16UI,r16sint:i.R16I,r16float:i.R16F,rg8unorm:i.RG8,rg8snorm:i.RG8_SNORM,rg8uint:i.RG8UI,rg8sint:i.RG8I,r32uint:i.R32UI,r32sint:i.R32I,r32float:i.R32F,rg16uint:i.RG16UI,rg16sint:i.RG16I,rg16float:i.RG16F,rgba8unorm:i.RGBA,...e,rgba8snorm:i.RGBA8_SNORM,rgba8uint:i.RGBA8UI,rgba8sint:i.RGBA8I,bgra8unorm:r,rgb9e5ufloat:i.RGB9_E5,rgb10a2unorm:i.RGB10_A2,rg11b10ufloat:i.R11F_G11F_B10F,rg32uint:i.RG32UI,rg32sint:i.RG32I,rg32float:i.RG32F,rgba16uint:i.RGBA16UI,rgba16sint:i.RGBA16I,rgba16float:i.RGBA16F,rgba32uint:i.RGBA32UI,rgba32sint:i.RGBA32I,rgba32float:i.RGBA32F,stencil8:i.STENCIL_INDEX8,depth16unorm:i.DEPTH_COMPONENT16,depth24plus:i.DEPTH_COMPONENT24,"depth24plus-stencil8":i.DEPTH24_STENCIL8,depth32float:i.DEPTH_COMPONENT32F,"depth32float-stencil8":i.DEPTH32F_STENCIL8,...t.s3tc?{"bc1-rgba-unorm":t.s3tc.COMPRESSED_RGBA_S3TC_DXT1_EXT,"bc2-rgba-unorm":t.s3tc.COMPRESSED_RGBA_S3TC_DXT3_EXT,"bc3-rgba-unorm":t.s3tc.COMPRESSED_RGBA_S3TC_DXT5_EXT}:{},...t.s3tc_sRGB?{"bc1-rgba-unorm-srgb":t.s3tc_sRGB.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT,"bc2-rgba-unorm-srgb":t.s3tc_sRGB.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT,"bc3-rgba-unorm-srgb":t.s3tc_sRGB.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT}:{},...t.rgtc?{"bc4-r-unorm":t.rgtc.COMPRESSED_RED_RGTC1_EXT,"bc4-r-snorm":t.rgtc.COMPRESSED_SIGNED_RED_RGTC1_EXT,"bc5-rg-unorm":t.rgtc.COMPRESSED_RED_GREEN_RGTC2_EXT,"bc5-rg-snorm":t.rgtc.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT}:{},...t.bptc?{"bc6h-rgb-float":t.bptc.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT,"bc6h-rgb-ufloat":t.bptc.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT,"bc7-rgba-unorm":t.bptc.COMPRESSED_RGBA_BPTC_UNORM_EXT,"bc7-rgba-unorm-srgb":t.bptc.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT}:{},...t.etc?{"etc2-rgb8unorm":t.etc.COMPRESSED_RGB8_ETC2,"etc2-rgb8unorm-srgb":t.etc.COMPRESSED_SRGB8_ETC2,"etc2-rgb8a1unorm":t.etc.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2,"etc2-rgb8a1unorm-srgb":t.etc.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2,"etc2-rgba8unorm":t.etc.COMPRESSED_RGBA8_ETC2_EAC,"etc2-rgba8unorm-srgb":t.etc.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC,"eac-r11unorm":t.etc.COMPRESSED_R11_EAC,"eac-rg11unorm":t.etc.COMPRESSED_SIGNED_RG11_EAC}:{},...t.astc?{"astc-4x4-unorm":t.astc.COMPRESSED_RGBA_ASTC_4x4_KHR,"astc-4x4-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR,"astc-5x4-unorm":t.astc.COMPRESSED_RGBA_ASTC_5x4_KHR,"astc-5x4-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR,"astc-5x5-unorm":t.astc.COMPRESSED_RGBA_ASTC_5x5_KHR,"astc-5x5-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR,"astc-6x5-unorm":t.astc.COMPRESSED_RGBA_ASTC_6x5_KHR,"astc-6x5-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR,"astc-6x6-unorm":t.astc.COMPRESSED_RGBA_ASTC_6x6_KHR,"astc-6x6-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR,"astc-8x5-unorm":t.astc.COMPRESSED_RGBA_ASTC_8x5_KHR,"astc-8x5-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR,"astc-8x6-unorm":t.astc.COMPRESSED_RGBA_ASTC_8x6_KHR,"astc-8x6-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR,"astc-8x8-unorm":t.astc.COMPRESSED_RGBA_ASTC_8x8_KHR,"astc-8x8-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR,"astc-10x5-unorm":t.astc.COMPRESSED_RGBA_ASTC_10x5_KHR,"astc-10x5-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR,"astc-10x6-unorm":t.astc.COMPRESSED_RGBA_ASTC_10x6_KHR,"astc-10x6-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR,"astc-10x8-unorm":t.astc.COMPRESSED_RGBA_ASTC_10x8_KHR,"astc-10x8-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR,"astc-10x10-unorm":t.astc.COMPRESSED_RGBA_ASTC_10x10_KHR,"astc-10x10-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR,"astc-12x10-unorm":t.astc.COMPRESSED_RGBA_ASTC_12x10_KHR,"astc-12x10-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR,"astc-12x12-unorm":t.astc.COMPRESSED_RGBA_ASTC_12x12_KHR,"astc-12x12-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR}:{}}}var Ib=p(()=>{xt()});function Gb(i){return{r8unorm:i.UNSIGNED_BYTE,r8snorm:i.BYTE,r8uint:i.UNSIGNED_BYTE,r8sint:i.BYTE,r16uint:i.UNSIGNED_SHORT,r16sint:i.SHORT,r16float:i.HALF_FLOAT,rg8unorm:i.UNSIGNED_BYTE,rg8snorm:i.BYTE,rg8uint:i.UNSIGNED_BYTE,rg8sint:i.BYTE,r32uint:i.UNSIGNED_INT,r32sint:i.INT,r32float:i.FLOAT,rg16uint:i.UNSIGNED_SHORT,rg16sint:i.SHORT,rg16float:i.HALF_FLOAT,rgba8unorm:i.UNSIGNED_BYTE,"rgba8unorm-srgb":i.UNSIGNED_BYTE,rgba8snorm:i.BYTE,rgba8uint:i.UNSIGNED_BYTE,rgba8sint:i.BYTE,bgra8unorm:i.UNSIGNED_BYTE,"bgra8unorm-srgb":i.UNSIGNED_BYTE,rgb9e5ufloat:i.UNSIGNED_INT_5_9_9_9_REV,rgb10a2unorm:i.UNSIGNED_INT_2_10_10_10_REV,rg11b10ufloat:i.UNSIGNED_INT_10F_11F_11F_REV,rg32uint:i.UNSIGNED_INT,rg32sint:i.INT,rg32float:i.FLOAT,rgba16uint:i.UNSIGNED_SHORT,rgba16sint:i.SHORT,rgba16float:i.HALF_FLOAT,rgba32uint:i.UNSIGNED_INT,rgba32sint:i.INT,rgba32float:i.FLOAT,stencil8:i.UNSIGNED_BYTE,depth16unorm:i.UNSIGNED_SHORT,depth24plus:i.UNSIGNED_INT,"depth24plus-stencil8":i.UNSIGNED_INT_24_8,depth32float:i.FLOAT,"depth32float-stencil8":i.FLOAT_32_UNSIGNED_INT_24_8_REV}}var Fb=p(()=>{"use strict"});function Ub(i){return{"2d":i.TEXTURE_2D,cube:i.TEXTURE_CUBE_MAP,"1d":null,"3d":i?.TEXTURE_3D||null,"2d-array":i?.TEXTURE_2D_ARRAY||null,"cube-array":i?.TEXTURE_CUBE_MAP_ARRAY||null}}var Db=p(()=>{"use strict"});var KT,Fu,Uu,Ob=p(()=>{xt();P();Ie();gt();pb();gb();_b();vb();Bu();Cb();Ab();kb();Ib();Fb();Db();KT=4,Fu=class Lb{constructor(t){this._glSamplers=Object.create(null),this._boundTextures=[],this._activeTextureLocation=-1,this._boundSamplers=Object.create(null),this._premultiplyAlpha=!1,this._useSeparateSamplers=!1,this._renderer=t,this._managedTextures=new kt({renderer:t,type:"resource",onUnload:this.onSourceUnload.bind(this),name:"glTexture"});let e={image:nl,buffer:mb,video:wb,compressed:xb,...Lb.uploadExtensions};this._uploads={...e,cube:bb(e)}}get managedTextures(){return Object.values(this._managedTextures.items)}contextChange(t){this._gl=t,this._mapFormatToInternalFormat||(this._mapFormatToInternalFormat=Bb(t,this._renderer.context.extensions),this._mapFormatToType=Gb(t),this._mapFormatToFormat=Rb(t),this._mapViewDimensionToGlTarget=Ub(t)),this._managedTextures.removeAll(!0),this._glSamplers=Object.create(null),this._boundSamplers=Object.create(null),this._premultiplyAlpha=!1;for(let e=0;e<16;e++)this.bind(F.EMPTY,e)}initSource(t){this.bind(t)}bind(t,e=0){let r=t.source;t?(this.bindSource(r,e),this._useSeparateSamplers&&this._bindSampler(r.style,e)):(this.bindSource(null,e),this._useSeparateSamplers&&this._bindSampler(null,e))}bindSource(t,e=0){let r=this._gl;if(t._gcLastUsed=this._renderer.gc.now,this._boundTextures[e]!==t){this._boundTextures[e]=t,this._activateLocation(e),t||(t=F.EMPTY.source);let s=this.getGlSource(t);r.bindTexture(s.target,s.texture)}}_bindSampler(t,e=0){let r=this._gl;if(!t){this._boundSamplers[e]=null,r.bindSampler(e,null);return}let s=this._getGlSampler(t);this._boundSamplers[e]!==s&&(this._boundSamplers[e]=s,r.bindSampler(e,s))}unbind(t){let e=t.source,r=this._boundTextures,s=this._gl;for(let n=0;n<r.length;n++)if(r[n]===e){this._activateLocation(n);let o=this.getGlSource(e);s.bindTexture(o.target,null),r[n]=null}}_activateLocation(t){this._activeTextureLocation!==t&&(this._activeTextureLocation=t,this._gl.activeTexture(this._gl.TEXTURE0+t))}_initSource(t){let e=this._gl,r=new sl(e.createTexture());if(r.type=this._mapFormatToType[t.format],r.internalFormat=this._mapFormatToInternalFormat[t.format],r.format=this._mapFormatToFormat[t.format],r.target=this._mapViewDimensionToGlTarget[t.viewDimension],r.target===null)throw new Error(`Unsupported view dimension: ${t.viewDimension} with this webgl version: ${this._renderer.context.webGLVersion}`);if(t.autoGenerateMipmaps&&(this._renderer.context.supports.nonPowOf2mipmaps||t.isPowerOfTwo)){let n=Math.max(t.width,t.height);t.mipLevelCount=Math.floor(Math.log2(n))+1}return t._gpuData[this._renderer.uid]=r,this._managedTextures.add(t)&&(t.on("update",this.onSourceUpdate,this),t.on("resize",this.onSourceUpdate,this),t.on("styleChange",this.onStyleChange,this),t.on("updateMipmaps",this.onUpdateMipmaps,this)),this.onSourceUpdate(t),this.updateStyle(t,!1),r}onStyleChange(t){this.updateStyle(t,!1)}updateStyle(t,e){let r=this._gl,s=this.getGlSource(t);r.bindTexture(s.target,s.texture),this._boundTextures[this._activeTextureLocation]=t,Gu(t.style,r,t.mipLevelCount>1,this._renderer.context.extensions.anisotropicFiltering,"texParameteri",s.target,!this._renderer.context.supports.nonPowOf2wrapping&&!t.isPowerOfTwo,e)}onSourceUnload(t,e=!1){let r=t._gpuData[this._renderer.uid];r&&(e||(this.unbind(t),this._gl.deleteTexture(r.texture)),t.off("update",this.onSourceUpdate,this),t.off("resize",this.onSourceUpdate,this),t.off("styleChange",this.onStyleChange,this),t.off("updateMipmaps",this.onUpdateMipmaps,this))}onSourceUpdate(t){let e=this._gl,r=this.getGlSource(t);e.bindTexture(r.target,r.texture),this._boundTextures[this._activeTextureLocation]=t;let s=t.alphaMode==="premultiply-alpha-on-upload";if(this._premultiplyAlpha!==s&&(this._premultiplyAlpha=s,e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,s)),this._uploads[t.uploadMethodId])this._uploads[t.uploadMethodId].upload(t,r,e,this._renderer.context.webGLVersion);else if(r.target===e.TEXTURE_2D)this._initEmptyTexture2D(r,t);else if(r.target===e.TEXTURE_2D_ARRAY)this._initEmptyTexture2DArray(r,t);else if(r.target===e.TEXTURE_CUBE_MAP)this._initEmptyTextureCube(r,t);else throw new Error("[GlTextureSystem] Unsupported texture target for empty allocation.");this._applyMipRange(r,t),t.autoGenerateMipmaps&&t.mipLevelCount>1&&this.onUpdateMipmaps(t,!1)}onUpdateMipmaps(t,e=!0){e&&this.bindSource(t,0);let r=this.getGlSource(t);this._gl.generateMipmap(r.target)}_initEmptyTexture2D(t,e){let r=this._gl;r.texImage2D(r.TEXTURE_2D,0,t.internalFormat,e.pixelWidth,e.pixelHeight,0,t.format,t.type,null);let s=Math.max(e.pixelWidth>>1,1),n=Math.max(e.pixelHeight>>1,1);for(let o=1;o<e.mipLevelCount;o++)r.texImage2D(r.TEXTURE_2D,o,t.internalFormat,s,n,0,t.format,t.type,null),s=Math.max(s>>1,1),n=Math.max(n>>1,1)}_initEmptyTexture2DArray(t,e){if(this._renderer.context.webGLVersion!==2)throw new Error("[GlTextureSystem] TEXTURE_2D_ARRAY requires WebGL2.");let r=this._gl,s=Math.max(e.arrayLayerCount|0,1);r.texImage3D(r.TEXTURE_2D_ARRAY,0,t.internalFormat,e.pixelWidth,e.pixelHeight,s,0,t.format,t.type,null);let n=Math.max(e.pixelWidth>>1,1),o=Math.max(e.pixelHeight>>1,1);for(let a=1;a<e.mipLevelCount;a++)r.texImage3D(r.TEXTURE_2D_ARRAY,a,t.internalFormat,n,o,s,0,t.format,t.type,null),n=Math.max(n>>1,1),o=Math.max(o>>1,1)}_initEmptyTextureCube(t,e){let r=this._gl,s=6;for(let a=0;a<s;a++)r.texImage2D(r.TEXTURE_CUBE_MAP_POSITIVE_X+a,0,t.internalFormat,e.pixelWidth,e.pixelHeight,0,t.format,t.type,null);let n=Math.max(e.pixelWidth>>1,1),o=Math.max(e.pixelHeight>>1,1);for(let a=1;a<e.mipLevelCount;a++){for(let l=0;l<s;l++)r.texImage2D(r.TEXTURE_CUBE_MAP_POSITIVE_X+l,a,t.internalFormat,n,o,0,t.format,t.type,null);n=Math.max(n>>1,1),o=Math.max(o>>1,1)}}_applyMipRange(t,e){if(this._renderer.context.webGLVersion!==2||e.mipLevelCount<=1)return;let r=this._gl,s=Math.max((e.mipLevelCount|0)-1,0);r.texParameteri(t.target,r.TEXTURE_BASE_LEVEL,0),r.texParameteri(t.target,r.TEXTURE_MAX_LEVEL,s)}_initSampler(t){let e=this._gl,r=this._gl.createSampler();return this._glSamplers[t._resourceId]=r,Gu(t,e,this._boundTextures[this._activeTextureLocation].mipLevelCount>1,this._renderer.context.extensions.anisotropicFiltering,"samplerParameteri",r,!1,!0),this._glSamplers[t._resourceId]}_getGlSampler(t){return this._glSamplers[t._resourceId]||this._initSampler(t)}getGlSource(t){return t._gcLastUsed=this._renderer.gc.now,t._gpuData[this._renderer.uid]||this._initSource(t)}generateCanvas(t){let{pixels:e,width:r,height:s}=this.getPixels(t),n=W.get().createCanvas();n.width=r,n.height=s;let o=n.getContext("2d");if(o){let a=o.createImageData(r,s);a.data.set(e),o.putImageData(a,0,0)}return n}getPixels(t){let e=t.source.resolution,r=t.frame,s=Math.max(Math.round(r.width*e),1),n=Math.max(Math.round(r.height*e),1),o=new Uint8Array(KT*s*n),a=this._renderer,l=a.renderTarget.getRenderTarget(t),c=a.renderTarget.getGpuRenderTarget(l),h=a.gl;return a.renderTarget.adaptor.bindFramebuffer(c.resolveTargetFramebuffer),h.readPixels(Math.round(r.x*e),Math.round(r.y*e),s,n,h.RGBA,h.UNSIGNED_BYTE,o),{pixels:new Uint8ClampedArray(o.buffer),width:s,height:n}}destroy(){this._managedTextures.destroy(),this._glSamplers=null,this._boundTextures=null,this._boundSamplers=null,this._mapFormatToInternalFormat=null,this._mapFormatToType=null,this._mapFormatToFormat=null,this._uploads=null,this._renderer=null}resetState(){this._activeTextureLocation=-1,this._boundTextures.fill(F.EMPTY.source),this._boundSamplers=Object.create(null);let t=this._gl;this._premultiplyAlpha=!1,t.pixelStorei(t.UNPACK_PREMULTIPLY_ALPHA_WEBGL,this._premultiplyAlpha)}};Fu.extension={type:[y.WebGLSystem],name:"texture"};Fu.uploadExtensions=Object.create(null);Uu=Fu;z.handleByMap(y.TextureUploaderWebGL,Uu.uploadExtensions)});var Wb={};zl(Wb,{WebGLRenderer:()=>Du});var ZT,QT,JT,Nb,zb,Hb,Du,Vb=p(()=>{P();dy();fy();py();Vr();La();Ne();xy();by();wy();Py();My();Ay();Ry();ky();Su();Oy();Au();Ru();fb();Ob();ZT=[...Yi,Jr,Ey,yy,zn,Un,Uu,Vn,Ln,ei,ti,Nn,db,Hn,On],QT=[...Da],JT=[Gn,In,Bn],Nb=[],zb=[],Hb=[];z.handleByNamedList(y.WebGLSystem,Nb);z.handleByNamedList(y.WebGLPipes,zb);z.handleByNamedList(y.WebGLPipesAdaptor,Hb);z.add(...ZT,...QT,...JT);Du=class extends Te{constructor(){let t={name:"webgl",type:Lt.WEBGL,systems:Nb,renderPipes:zb,renderPipeAdaptors:Hb};super(t)}}});function jb(i,t,e,r,s,n,o,a){let l=i-e*s,c=t-r*s,h=i+e*n,u=t+r*n,d,f;o?(d=r,f=-e):(d=-r,f=e);let m=l+d,g=c+f,_=h+d,x=u+f;return a.push(m,g),a.push(_,x),2}function ri(i,t,e,r,s,n,o,a){let l=e-i,c=r-t,h=Math.atan2(l,c),u=Math.atan2(s-i,n-t);a&&h<u?h+=Math.PI*2:!a&&h>u&&(u+=Math.PI*2);let d=h,f=u-h,m=Math.abs(f),g=Math.sqrt(l*l+c*c),_=(15*m*Math.sqrt(g)/Math.PI>>0)+1,x=f/_;if(d+=x,a){o.push(i,t),o.push(e,r);for(let b=1,v=d;b<_;b++,v+=x)o.push(i,t),o.push(i+Math.sin(v)*g,t+Math.cos(v)*g);o.push(i,t),o.push(s,n)}else{o.push(e,r),o.push(i,t);for(let b=1,v=d;b<_;b++,v+=x)o.push(i+Math.sin(v)*g,t+Math.cos(v)*g),o.push(i,t);o.push(s,n),o.push(i,t)}return _*2}function Zi(i,t,e,r,s,n){let o=1e-4;if(i.length===0)return;let a=t,l=a.alignment;if(t.alignment!==.5){let G=Ko(i);e&&(G*=-1),l=(l-.5)*G+.5}let c=new nt(i[0],i[1]),h=new nt(i[i.length-2],i[i.length-1]),u=r,d=Math.abs(c.x-h.x)<o&&Math.abs(c.y-h.y)<o;if(u){i=i.slice(),d&&(i.pop(),i.pop(),h.set(i[i.length-2],i[i.length-1]));let G=(c.x+h.x)*.5,Y=(h.y+c.y)*.5;i.unshift(G,Y),i.push(G,Y)}let f=s,m=i.length/2,g=i.length,_=f.length/2,x=a.width/2,b=x*x,v=a.miterLimit*a.miterLimit,S=i[0],T=i[1],w=i[2],E=i[3],B=0,R=0,M=-(T-E),C=S-w,A=0,D=0,H=Math.sqrt(M*M+C*C);M/=H,C/=H,M*=x,C*=x;let K=l,I=(1-K)*2,U=K*2;u||(a.cap==="round"?g+=ri(S-M*(I-U)*.5,T-C*(I-U)*.5,S-M*I,T-C*I,S+M*U,T+C*U,f,!0)+2:a.cap==="square"&&(g+=jb(S,T,M,C,I,U,!0,f))),f.push(S-M*I,T-C*I),f.push(S+M*U,T+C*U);for(let G=1;G<m-1;++G){S=i[(G-1)*2],T=i[(G-1)*2+1],w=i[G*2],E=i[G*2+1],B=i[(G+1)*2],R=i[(G+1)*2+1],M=-(T-E),C=S-w,H=Math.sqrt(M*M+C*C),M/=H,C/=H,M*=x,C*=x,A=-(E-R),D=w-B,H=Math.sqrt(A*A+D*D),A/=H,D/=H,A*=x,D*=x;let Y=w-S,pt=T-E,wt=w-B,lt=R-E,ft=Y*wt+pt*lt,q=pt*wt-lt*Y,jt=q<0;if(Math.abs(q)<.001*Math.abs(ft)){f.push(w-M*I,E-C*I),f.push(w+M*U,E+C*U),ft>=0&&(a.join==="round"?g+=ri(w,E,w-M*I,E-C*I,w-A*I,E-D*I,f,!1)+4:g+=2,f.push(w-A*U,E-D*U),f.push(w+A*I,E+D*I));continue}let ui=(-M+S)*(-C+E)-(-M+w)*(-C+T),Cr=(-A+B)*(-D+E)-(-A+w)*(-D+R),N=(Y*Cr-wt*ui)/q,et=(lt*ui-pt*Cr)/q,ct=(N-w)*(N-w)+(et-E)*(et-E),It=w+(N-w)*I,St=E+(et-E)*I,Kt=w-(N-w)*U,Bt=E-(et-E)*U,xe=Math.min(Y*Y+pt*pt,wt*wt+lt*lt),Xt=jt?I:U,$e=xe+Xt*Xt*b;ct<=$e?a.join==="bevel"||ct/b>v?(jt?(f.push(It,St),f.push(w+M*U,E+C*U),f.push(It,St),f.push(w+A*U,E+D*U)):(f.push(w-M*I,E-C*I),f.push(Kt,Bt),f.push(w-A*I,E-D*I),f.push(Kt,Bt)),g+=2):a.join==="round"?jt?(f.push(It,St),f.push(w+M*U,E+C*U),g+=ri(w,E,w+M*U,E+C*U,w+A*U,E+D*U,f,!0)+4,f.push(It,St),f.push(w+A*U,E+D*U)):(f.push(w-M*I,E-C*I),f.push(Kt,Bt),g+=ri(w,E,w-M*I,E-C*I,w-A*I,E-D*I,f,!1)+4,f.push(w-A*I,E-D*I),f.push(Kt,Bt)):(f.push(It,St),f.push(Kt,Bt)):(f.push(w-M*I,E-C*I),f.push(w+M*U,E+C*U),a.join==="round"?jt?g+=ri(w,E,w+M*U,E+C*U,w+A*U,E+D*U,f,!0)+2:g+=ri(w,E,w-M*I,E-C*I,w-A*I,E-D*I,f,!1)+2:a.join==="miter"&&ct/b<=v&&(jt?(f.push(Kt,Bt),f.push(Kt,Bt)):(f.push(It,St),f.push(It,St)),g+=2),f.push(w-A*I,E-D*I),f.push(w+A*U,E+D*U),g+=2)}S=i[(m-2)*2],T=i[(m-2)*2+1],w=i[(m-1)*2],E=i[(m-1)*2+1],M=-(T-E),C=S-w,H=Math.sqrt(M*M+C*C),M/=H,C/=H,M*=x,C*=x,f.push(w-M*I,E-C*I),f.push(w+M*U,E+C*U),u||(a.cap==="round"?g+=ri(w-M*(I-U)*.5,E-C*(I-U)*.5,w-M*I,E-C*I,w+M*U,E+C*U,f,!1)+2:a.cap==="square"&&(g+=jb(w,E,M,C,I,U,!1,f)));let j=1e-4*1e-4;for(let G=_;G<g+_-2;++G)S=f[G*2],T=f[G*2+1],w=f[(G+1)*2],E=f[(G+1)*2+1],B=f[(G+2)*2],R=f[(G+2)*2+1],!(Math.abs(S*(E-R)+w*(R-T)+B*(T-E))<j)&&n.push(G,G+1,G+2)}var al=p(()=>{zc();Ee()});function Yb(i,t){for(let e=0;e<t.length;e++){let r=t[e];i.addColorStop(r.offset,r.color)}}function $b(i,t){let e=W.get().createCanvas(i,t),r=e.getContext("2d");return{canvas:e,context:r}}function rw(i){let t=i[0]??{};return(typeof t=="number"||i[1])&&(O("8.5.2","use options object instead"),t={type:"linear",start:{x:i[0],y:i[1]},end:{x:i[2],y:i[3]},textureSpace:i[4],textureSize:i[5]??ee.defaultLinearOptions.textureSize}),t}var Xb,Ou,ee,ii=p(()=>{Qt();xt();ot();jo();gt();Ft();yt();nc();Xb=[{offset:0,color:"white"},{offset:1,color:"black"}],Ou=class Lu{constructor(...t){this.uid=$("fillGradient"),this._tick=0,this.type="linear",this.colorStops=[];let e=rw(t);e={...e.type==="radial"?Lu.defaultRadialOptions:Lu.defaultLinearOptions,...ko(e)},this._textureSize=e.textureSize,this._wrapMode=e.wrapMode,e.type==="radial"?(this.center=e.center,this.outerCenter=e.outerCenter??this.center,this.innerRadius=e.innerRadius,this.outerRadius=e.outerRadius,this.scale=e.scale,this.rotation=e.rotation):(this.start=e.start,this.end=e.end),this.textureSpace=e.textureSpace,this.type=e.type,e.colorStops.forEach(s=>{this.addColorStop(s.offset,s.color)})}addColorStop(t,e){return this.colorStops.push({offset:t,color:Q.shared.setValue(e).toHexa()}),this}buildLinearGradient(){if(this.texture)return;let{x:t,y:e}=this.start,{x:r,y:s}=this.end,n=r-t,o=s-e,a=n<0||o<0;if(this._wrapMode==="clamp-to-edge"){if(n<0){let _=t;t=r,r=_,n*=-1}if(o<0){let _=e;e=s,s=_,o*=-1}}let l=this.colorStops.length?this.colorStops:Xb,c=this._textureSize,{canvas:h,context:u}=$b(c,1),d=a?u.createLinearGradient(this._textureSize,0,0,0):u.createLinearGradient(0,0,this._textureSize,0);Yb(d,l),u.fillStyle=d,u.fillRect(0,0,c,1),this.texture=new F({source:new Re({resource:h,addressMode:this._wrapMode})});let f=Math.sqrt(n*n+o*o),m=Math.atan2(o,n),g=new k;g.scale(f/c,1),g.rotate(m),g.translate(t,e),this.textureSpace==="local"&&g.scale(c,c),this.transform=g}buildGradient(){this.texture||this._tick++,this.type==="linear"?this.buildLinearGradient():this.buildRadialGradient()}buildRadialGradient(){if(this.texture)return;let t=this.colorStops.length?this.colorStops:Xb,e=this._textureSize,{canvas:r,context:s}=$b(e,e),{x:n,y:o}=this.center,{x:a,y:l}=this.outerCenter,c=this.innerRadius,h=this.outerRadius,u=a-h,d=l-h,f=e/(h*2),m=(n-u)*f,g=(o-d)*f,_=s.createRadialGradient(m,g,c*f,(a-u)*f,(l-d)*f,h*f);Yb(_,t),s.fillStyle=t[t.length-1].color,s.fillRect(0,0,e,e),s.fillStyle=_,s.translate(m,g),s.rotate(this.rotation),s.scale(1,this.scale),s.translate(-m,-g),s.fillRect(0,0,e,e),this.texture=new F({source:new Re({resource:r,addressMode:this._wrapMode})});let x=new k;this.textureSpace==="local"?x.scale(2*h,2*h):x.scale(1/f,1/f),x.translate(u,d),this.transform=x}destroy(){this.texture?.destroy(!0),this.texture=null,this.transform=null,this.colorStops=[],this.start=null,this.end=null,this.center=null,this.outerCenter=null}get styleKey(){return`fill-gradient-${this.uid}-${this._tick}`}};Ou.defaultLinearOptions={start:{x:0,y:0},end:{x:0,y:1},colorStops:[],textureSpace:"local",type:"linear",textureSize:256,wrapMode:"clamp-to-edge"};Ou.defaultRadialOptions={center:{x:.5,y:.5},innerRadius:0,outerRadius:.5,colorStops:[],scale:1,rotation:0,textureSpace:"local",type:"radial",textureSize:256,wrapMode:"clamp-to-edge"};ee=Ou});function iw(i){return i.texture!==void 0}var qb,Ge,jn=p(()=>{ot();Ft();qb={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"}},Ge=class{constructor(t,e){this.uid=$("fillPattern"),this._tick=0,this.transform=new k;let r=iw(t)?t:{texture:t,repetition:e};this.texture=r.texture,this.textureSpace=r.textureSpace??"global";let s=r.repetition;s&&(this.texture.source.style.addressModeU=qb[s].addressModeU,this.texture.source.style.addressModeV=qb[s].addressModeV)}setTransform(t){if(t){if(this.transform.equals(t))return;this.transform.copyFrom(t)}else{if(this.transform.isIdentity())return;this.transform.identity()}this._tick++}get texture(){return this._texture}set texture(t){this._texture!==t&&(this._texture=t,this._tick++)}get styleKey(){return`fill-pattern-${this.uid}-${this._tick}`}destroy(){this.texture.destroy(!0),this.texture=null}}});function Kb(i,t,e,r,s,n,o,a=null){let l=0;e*=t,s*=n;let c=a.a,h=a.b,u=a.c,d=a.d,f=a.tx,m=a.ty;for(;l<o;){let g=i[e],_=i[e+1];r[s]=c*g+u*_+f,r[s+1]=h*g+d*_+m,s+=n,e+=t,l++}}function Zb(i,t,e,r){let s=0;for(t*=e;s<r;)i[t]=0,i[t+1]=0,t+=e,s++}var Qb=p(()=>{"use strict"});function Nu(i,t,e,r,s){let n=t.a,o=t.b,a=t.c,l=t.d,c=t.tx,h=t.ty;e||(e=0),r||(r=2),s||(s=i.length/r-e);let u=e*r;for(let d=0;d<s;d++){let f=i[u],m=i[u+1];i[u]=n*f+a*m+c,i[u+1]=o*f+l*m+h,u+=r}}var Jb=p(()=>{"use strict"});var sw,si,zu=p(()=>{ot();ys();sw=new k,si=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 t=this.baseColor,e=t>>16|t&65280|(t&255)<<16,r=this.renderable;return r?Ue(e,r.groupColor)+(this.alpha*r.groupAlpha*255<<24):e+(this.alpha*255<<24)}get transform(){return this.renderable?.groupTransform||sw}copyTo(t){t.indexOffset=this.indexOffset,t.indexSize=this.indexSize,t.attributeOffset=this.attributeOffset,t.attributeSize=this.attributeSize,t.baseColor=this.baseColor,t.alpha=this.alpha,t.texture=this.texture,t.geometryData=this.geometryData,t.topology=this.topology}reset(){this.applyTransform=!0,this.renderable=null,this.topology="triangle-list"}destroy(){this.renderable=null,this.texture=null,this.geometryData=null,this._batcher=null,this._batch=null}}});var Qi,t0,e0,r0=p(()=>{P();Qi={extension:{type:y.ShapeBuilder,name:"circle"},build(i,t){let e,r,s,n,o,a;if(i.type==="circle"){let S=i;if(o=a=S.radius,o<=0)return!1;e=S.x,r=S.y,s=n=0}else if(i.type==="ellipse"){let S=i;if(o=S.halfWidth,a=S.halfHeight,o<=0||a<=0)return!1;e=S.x,r=S.y,s=n=0}else{let S=i,T=S.width/2,w=S.height/2;e=S.x+T,r=S.y+w,o=a=Math.max(0,Math.min(S.radius,Math.min(T,w))),s=T-o,n=w-a}if(s<0||n<0)return!1;let l=Math.ceil(2.3*Math.sqrt(o+a)),c=l*8+(s?4:0)+(n?4:0);if(c===0)return!1;if(l===0)return t[0]=t[6]=e+s,t[1]=t[3]=r+n,t[2]=t[4]=e-s,t[5]=t[7]=r-n,!0;let h=0,u=l*4+(s?2:0)+2,d=u,f=c,m=s+o,g=n,_=e+m,x=e-m,b=r+g;if(t[h++]=_,t[h++]=b,t[--u]=b,t[--u]=x,n){let S=r-g;t[d++]=x,t[d++]=S,t[--f]=S,t[--f]=_}for(let S=1;S<l;S++){let T=Math.PI/2*(S/l),w=s+Math.cos(T)*o,E=n+Math.sin(T)*a,B=e+w,R=e-w,M=r+E,C=r-E;t[h++]=B,t[h++]=M,t[--u]=M,t[--u]=R,t[d++]=R,t[d++]=C,t[--f]=C,t[--f]=B}m=s,g=n+a,_=e+m,x=e-m,b=r+g;let v=r-g;return t[h++]=_,t[h++]=b,t[--f]=v,t[--f]=_,s&&(t[h++]=x,t[h++]=b,t[--f]=v,t[--f]=x),!0},triangulate(i,t,e,r,s,n){if(i.length===0)return;let o=0,a=0;for(let h=0;h<i.length;h+=2)o+=i[h],a+=i[h+1];o/=i.length/2,a/=i.length/2;let l=r;t[l*e]=o,t[l*e+1]=a;let c=l++;for(let h=0;h<i.length;h+=2)t[l*e]=i[h],t[l*e+1]=i[h+1],h>0&&(s[n++]=l,s[n++]=c,s[n++]=l-1),l++;s[n++]=c+1,s[n++]=c,s[n++]=l-1}},t0={...Qi,extension:{...Qi.extension,name:"ellipse"}},e0={...Qi,extension:{...Qi.extension,name:"roundedRectangle"}}});function i0(i,t,e,r){let s=1e-4;if(i.length===0)return;let n=i[0],o=i[1],a=i[i.length-2],l=i[i.length-1],c=t||Math.abs(n-a)<s&&Math.abs(o-l)<s,h=e,u=i.length/2,d=h.length/2;for(let f=0;f<u;f++)h.push(i[f*2]),h.push(i[f*2+1]);for(let f=0;f<u-1;f++)r.push(d+f,d+f+1);c&&r.push(d+u-1,d)}var s0=p(()=>{});function ll(i,t,e,r,s,n,o){let a=Ag(i,t,2);if(!a)return;for(let c=0;c<a.length;c+=3)n[o++]=a[c]+s,n[o++]=a[c+1]+s,n[o++]=a[c+2]+s;let l=s*r;for(let c=0;c<i.length;c+=2)e[l]=i[c],e[l+1]=i[c+1],l+=r}var Hu=p(()=>{Rg()});var nw,n0,o0=p(()=>{P();Hu();nw=[],n0={extension:{type:y.ShapeBuilder,name:"polygon"},build(i,t){for(let e=0;e<i.points.length;e++)t[e]=i.points[e];return!0},triangulate(i,t,e,r,s,n){ll(i,nw,t,e,r,s,n)}}});var a0,l0=p(()=>{P();a0={extension:{type:y.ShapeBuilder,name:"rectangle"},build(i,t){let e=i,r=e.x,s=e.y,n=e.width,o=e.height;return n>0&&o>0?(t[0]=r,t[1]=s,t[2]=r+n,t[3]=s,t[4]=r+n,t[5]=s+o,t[6]=r,t[7]=s+o,!0):!1},triangulate(i,t,e,r,s,n){let o=0;r*=e,t[r+o]=i[0],t[r+o+1]=i[1],o+=e,t[r+o]=i[2],t[r+o+1]=i[3],o+=e,t[r+o]=i[6],t[r+o+1]=i[7],o+=e,t[r+o]=i[4],t[r+o+1]=i[5],o+=e;let a=r/e;s[n++]=a,s[n++]=a+1,s[n++]=a+2,s[n++]=a+1,s[n++]=a+3,s[n++]=a+2}}});var c0,h0=p(()=>{P();c0={extension:{type:y.ShapeBuilder,name:"triangle"},build(i,t){return t[0]=i.x,t[1]=i.y,t[2]=i.x2,t[3]=i.y2,t[4]=i.x3,t[5]=i.y3,!0},triangulate(i,t,e,r,s,n){let o=0;r*=e,t[r+o]=i[0],t[r+o+1]=i[1],o+=e,t[r+o]=i[2],t[r+o+1]=i[3],o+=e,t[r+o]=i[4],t[r+o+1]=i[5];let a=r/e;s[n++]=a,s[n++]=a+1,s[n++]=a+2}}});function cl(i,t,e,r){let s=t.matrix?i.copyFrom(t.matrix).invert():i.identity();if(t.textureSpace==="local"){let o=e.getBounds(aw);t.width&&o.pad(t.width);let{x:a,y:l}=o,c=1/o.width,h=1/o.height,u=-a*c,d=-l*h,f=s.a,m=s.b,g=s.c,_=s.d;s.a*=c,s.b*=c,s.c*=h,s.d*=h,s.tx=u*f+d*g+s.tx,s.ty=u*m+d*_+s.ty}else if(t.texture.rotate){let{uvs:o,orig:a}=t.texture;s.scale(1/a.width,1/a.height),s.prepend(lw.set(o.x1-o.x0,o.y1-o.y0,o.x3-o.x0,o.y3-o.y0,o.x0,o.y0))}else s.translate(t.texture.frame.x,t.texture.frame.y),s.scale(1/t.texture.source.width,1/t.texture.source.height);let n=t.texture.source.style;return!(t.fill instanceof ee)&&n.addressMode==="clamp-to-edge"&&(n.addressMode="repeat",n.update()),r&&s.append(ow.copyFrom(r).invert()),s}var ow,aw,lw,Wu=p(()=>{ot();Yt();ii();ow=new k,aw=new J,lw=new k});function d0(i,t){let{geometryData:e,batches:r}=t;r.length=0,e.indices.length=0,e.vertices.length=0,e.uvs.length=0;for(let s=0;s<i.instructions.length;s++){let n=i.instructions[s];if(n.action==="texture")uw(n.data,r,e);else if(n.action==="fill"||n.action==="stroke"){let o=n.action==="stroke",a=n.data.path.shapePath,l=n.data.style,c=n.data.hole;o&&c&&u0(c.shapePath,l,!0,r,e),c&&(a.shapePrimitives[a.shapePrimitives.length-1].holes=c.shapePath.shapePrimitives),u0(a,l,o,r,e)}}}function uw(i,t,e){let r=[],s=Tr.rectangle,n=cw;n.x=i.dx,n.y=i.dy,n.width=i.dw,n.height=i.dh;let o=i.transform;if(!s.build(n,r))return;let{vertices:a,uvs:l,indices:c}=e,h=c.length,u=a.length/2;o&&Nu(r,o),s.triangulate(r,a,2,u,c,h);let d=i.image,f=d.uvs;l.push(f.x0,f.y0,f.x1,f.y1,f.x3,f.y3,f.x2,f.y2);let m=bt.get(si);m.indexOffset=h,m.indexSize=c.length-h,m.attributeOffset=u,m.attributeSize=a.length/2-u,m.baseColor=i.style,m.alpha=i.alpha,m.texture=d,m.geometryData=e,t.push(m)}function u0(i,t,e,r,s){let{vertices:n,uvs:o,indices:a}=s;i.shapePrimitives.forEach(({shape:l,transform:c,holes:h})=>{let u=[],d=Tr[l.type];if(!d.build(l,u))return;let f=a.length,m=n.length/2,g="triangle-list";if(c&&Nu(u,c),e){let v=l.closePath??!0,S=t;S.pixelLine?(i0(u,v,n,a),g="line-list"):Zi(u,S,!1,v,n,a)}else if(h){let v=[],S=u.slice();dw(h).forEach(w=>{v.push(S.length/2),S.push(...w)}),ll(S,v,n,2,m,a,f)}else d.triangulate(u,n,2,m,a,f);let _=o.length/2,x=t.texture;if(x!==F.WHITE){let v=cl(hw,t,l,c);Kb(n,2,m,o,_,2,n.length/2-m,v)}else Zb(o,_,2,n.length/2-m);let b=bt.get(si);b.indexOffset=f,b.indexSize=a.length-f,b.attributeOffset=m,b.attributeSize=n.length/2-m,b.baseColor=t.color,b.alpha=t.alpha,b.texture=x,b.geometryData=s,b.topology=g,r.push(b)})}function dw(i){let t=[];for(let e=0;e<i.length;e++){let r=i[e].shape,s=[];Tr[r.type].build(r,s)&&t.push(s)}return t}var Tr,cw,hw,hl=p(()=>{P();ot();Yt();Qb();Jb();gt();Ke();zu();r0();al();s0();o0();l0();h0();Wu();Hu();Tr={};z.handleByMap(y.ShapeBuilder,Tr);z.add(a0,n0,c0,Qi,t0,e0);cw=new J,hw=new k});function xw(i,t,e){i.beginPath();for(let r=0;r<e.length;r+=3){let s=e[r]*2,n=e[r+1]*2,o=e[r+2]*2;i.moveTo(t[s],t[s+1]),i.lineTo(t[n],t[n+1]),i.lineTo(t[o],t[o+1]),i.closePath()}i.fill()}function _w(i){return`#${(i&16777215).toString(16).padStart(6,"0")}`}function yw(i,t,e,r,s,n){n=Math.max(0,Math.min(n,Math.min(r,s)/2)),i.moveTo(t+n,e),i.lineTo(t+r-n,e),i.quadraticCurveTo(t+r,e,t+r,e+n),i.lineTo(t+r,e+s-n),i.quadraticCurveTo(t+r,e+s,t+r-n,e+s),i.lineTo(t+n,e+s),i.quadraticCurveTo(t,e+s,t,e+s-n),i.lineTo(t,e+n),i.quadraticCurveTo(t,e,t+n,e)}function dl(i,t){switch(t.type){case"rectangle":{let e=t;i.rect(e.x,e.y,e.width,e.height);break}case"roundedRectangle":{let e=t;yw(i,e.x,e.y,e.width,e.height,e.radius);break}case"circle":{let e=t;i.arc(e.x,e.y,e.radius,0,Math.PI*2);break}case"ellipse":{let e=t;i.ellipse?i.ellipse(e.x,e.y,e.halfWidth,e.halfHeight,0,0,Math.PI*2):(i.save(),i.translate(e.x,e.y),i.scale(e.halfWidth,e.halfHeight),i.arc(0,0,1,0,Math.PI*2),i.restore());break}case"triangle":{let e=t;i.moveTo(e.x,e.y),i.lineTo(e.x2,e.y2),i.lineTo(e.x3,e.y3),i.closePath();break}case"polygon":default:{let e=t,r=e.points;if(!r?.length)break;i.moveTo(r[0],r[1]);for(let s=2;s<r.length;s+=2)i.lineTo(r[s],r[s+1]);e.closePath&&i.closePath();break}}}function bw(i,t){if(!t?.length)return!1;for(let e=0;e<t.length;e++){let r=t[e];if(!r?.shape)continue;let s=r.transform,n=s&&!s.isIdentity();n&&(i.save(),i.transform(s.a,s.b,s.c,s.d,s.tx,s.ty)),dl(i,r.shape),n&&i.restore()}return!0}function vw(i,t,e,r){let s=i.fill;if(s instanceof ee){s.buildGradient();let o=s.texture;if(o){let a=Z.getTintedPattern(o,t),l=e?Vu.copyFrom(e).scale(o.source.pixelWidth,o.source.pixelHeight):Vu.copyFrom(s.transform);return r&&!i.textureSpace&&l.append(r),Z.applyPatternTransform(a,l),a}}if(s instanceof Ge){let o=Z.getTintedPattern(s.texture,t);return Z.applyPatternTransform(o,s.transform,!1),o}let n=i.texture;if(n&&n!==F.WHITE){if(!n.source.resource)return fw;let o=Z.getTintedPattern(n,t),a=i.matrix;if(e){let{resolution:l}=n.source;if(a=Vu.copyFrom(e),n.rotate){let{uvs:c,orig:h}=n;a.prepend(gw.set(c.x1-c.x0,c.y1-c.y0,c.x3-c.x0,c.y3-c.y0,c.x0,c.y0).invert()).scale(h.width*l,h.height*l)}else a.scale(n.source.pixelWidth,n.source.pixelHeight).translate(-n.frame.x*l,-n.frame.y*l)}return Z.applyPatternTransform(o,a),o}return _w(t)}var fw,ul,pw,mw,Vu,gw,Xn,f0=p(()=>{P();vs();ot();Pi();gt();Mo();ys();al();ii();jn();hl();Wu();fw="#808080",ul=new k,pw=new k,mw=new k,Vu=new k,gw=new k;Xn=class{constructor(){this.shader=null}contextChange(t){}execute(t,e){let r=t.renderer,s=r.canvasContext,n=s.activeContext,o=e.groupTransform,a=r.globalUniforms.globalUniformData?.worldColor??4294967295,l=e.groupColorAlpha,c=(a>>>24&255)/255,h=(l>>>24&255)/255,u=r.filter?.alphaMultiplier??1,d=c*h*u;if(d<=0)return;let f=a&16777215,m=l&16777215,g=Qe(Ue(m,f)),_=r._roundPixels|e._roundPixels;n.save(),s.setContextTransform(o,_===1),s.setBlendMode(e.groupBlendMode);let x=e.context.instructions;for(let b=0;b<x.length;b++){let v=x[b];if(v.action==="texture"){let C=v.data,A=C.image,D=A?Z.getCanvasSource(A):null;if(!D)continue;let H=C.alpha*d;if(H<=0)continue;let K=Ue(C.style,g);n.globalAlpha=H;let I=D;K!==16777215&&(I=Z.getTintedCanvas({texture:A},K));let U=A.frame,j=A.source._resolution??A.source.resolution??1,G=U.x*j,Y=U.y*j,pt=U.width*j,wt=U.height*j;I!==D&&(G=0,Y=0);let lt=C.transform,ft=lt&&!lt.isIdentity(),q=A.rotate;ft||q?(ul.copyFrom(o),ft&&ul.append(lt),q&&it.matrixAppendRotationInv(ul,q,C.dx,C.dy,C.dw,C.dh),s.setContextTransform(ul,_===1)):s.setContextTransform(o,_===1),n.drawImage(I,G,Y,I===D?pt:I.width,I===D?wt:I.height,q?0:C.dx,q?0:C.dy,C.dw,C.dh),(ft||q)&&s.setContextTransform(o,_===1);continue}let S=v.data,T=S?.path?.shapePath;if(!T?.shapePrimitives?.length)continue;let w=S.style,E=Ue(w.color,g),B=w.alpha*d;if(B<=0)continue;let R=v.action==="stroke";if(n.globalAlpha=B,R){let C=w;n.lineWidth=C.width,n.lineCap=C.cap,n.lineJoin=C.join,n.miterLimit=C.miterLimit}let M=T.shapePrimitives;if(!R&&S.hole?.shapePath?.shapePrimitives?.length){let C=M[M.length-1];C.holes=S.hole.shapePath.shapePrimitives}for(let C=0;C<M.length;C++){let A=M[C];if(!A?.shape)continue;let D=A.transform,H=D&&!D.isIdentity(),K=w.texture&&w.texture!==F.WHITE,I=w.textureSpace==="global"?D:null,U=K?cl(pw,w,A.shape,I):null,j=H?mw.copyFrom(o).append(D):o,G=vw(w,E,U,j);if(H&&(n.save(),n.transform(D.a,D.b,D.c,D.d,D.tx,D.ty)),R){let Y=w;if(Y.alignment!==.5&&!Y.pixelLine){let wt=[],lt=[],ft=[];if(Tr[A.shape.type]?.build(A.shape,wt)){let jt=A.shape.closePath??!0;Zi(wt,Y,!1,jt,lt,ft),n.fillStyle=G,xw(n,lt,ft)}else n.strokeStyle=G,n.beginPath(),dl(n,A.shape),n.stroke()}else n.strokeStyle=G,n.beginPath(),dl(n,A.shape),n.stroke()}else n.fillStyle=G,n.beginPath(),dl(n,A.shape),bw(n,A.holes)?n.fill("evenodd"):n.fill();H&&n.restore()}}n.restore()}destroy(){this.shader=null}};Xn.extension={type:[y.CanvasPipesAdaptor],name:"graphics"}});var ju,p0,m0=p(()=>{P();vs();ot();Mo();ys();Pi();ju=class ni{static _getPatternRepeat(t,e){let r=t&&t!=="clamp-to-edge",s=e&&e!=="clamp-to-edge";return r&&s?"repeat":r?"repeat-x":s?"repeat-y":"no-repeat"}start(t,e,r){}execute(t,e){let r=e.elements;if(!r||!r.length)return;let s=t.renderer,n=s.canvasContext,o=n.activeContext;for(let a=0;a<r.length;a++){let l=r[a];if(!l.packAsQuad)continue;let c=l,h=c.texture,u=h?Z.getCanvasSource(h):null;if(!u)continue;let d=h.source.style,f=n.smoothProperty,m=d.scaleMode!=="nearest";o[f]!==m&&(o[f]=m),n.setBlendMode(e.blendMode);let g=s.globalUniforms.globalUniformData?.worldColor??4294967295,_=c.color,x=(g>>>24&255)/255,b=(_>>>24&255)/255,v=s.filter?.alphaMultiplier??1,S=x*b*v;if(S<=0)continue;o.globalAlpha=S;let T=g&16777215,w=_&16777215,E=Qe(Ue(w,T)),B=h.frame,R=d.addressModeU??d.addressMode,M=d.addressModeV??d.addressMode,C=ni._getPatternRepeat(R,M),A=h.source._resolution??h.source.resolution??1,D=c.renderable?.renderGroup?.isCachedAsTexture,H=B.x*A,K=B.y*A,I=B.width*A,U=B.height*A,j=c.bounds,G=s.renderTarget.renderTarget.isRoot,Y=j.minX,pt=j.minY,wt=j.maxX-j.minX,lt=j.maxY-j.minY,ft=h.rotate,q=h.uvs,jt=Math.min(q.x0,q.x1,q.x2,q.x3,q.y0,q.y1,q.y2,q.y3),ui=Math.max(q.x0,q.x1,q.x2,q.x3,q.y0,q.y1,q.y2,q.y3),Cr=C!=="no-repeat"&&(jt<0||ui>1),et=ft&&!(!Cr&&(E!==16777215||ft));et?(ni._tempPatternMatrix.copyFrom(c.transform),it.matrixAppendRotationInv(ni._tempPatternMatrix,ft,Y,pt,wt,lt),n.setContextTransform(ni._tempPatternMatrix,c.roundPixels===1,void 0,D&&G)):n.setContextTransform(c.transform,c.roundPixels===1,void 0,D&&G);let ct=wt,It=lt,St=et?0:Y,Kt=et?0:pt;if(!et&&c.roundPixels===1&&(St|=0,Kt|=0),Cr){let Bt=u,xe=E!==16777215&&!ft,Xt=B.width<=h.source.width&&B.height<=h.source.height;xe&&Xt&&(Bt=Z.getTintedCanvas({texture:h},E));let $e=o.createPattern(Bt,C);if(!$e)continue;let ls=ct,cs=It;if(ls===0||cs===0)continue;let cr=1/ls,Er=1/cs,hs=(q.x1-q.x0)*cr,us=(q.y1-q.y0)*cr,ds=(q.x3-q.x0)*Er,fs=(q.y3-q.y0)*Er,di=q.x0-hs*St-ds*Kt,xo=q.y0-us*St-fs*Kt,fi=h.source.pixelWidth,pi=h.source.pixelHeight;ni._tempPatternMatrix.set(hs*fi,us*pi,ds*fi,fs*pi,di*fi,xo*pi),Z.applyPatternTransform($e,ni._tempPatternMatrix),o.fillStyle=$e,o.fillRect(St,Kt,ct,It)}else{let xe=E!==16777215||ft?Z.getTintedCanvas({texture:h},E):u,Xt=xe!==u;o.drawImage(xe,Xt?0:H,Xt?0:K,Xt?xe.width:I,Xt?xe.height:U,St,Kt,ct,It)}}}};ju._tempPatternMatrix=new k;ju.extension={type:[y.CanvasPipesAdaptor],name:"batch"};p0=ju});var Yn,g0=p(()=>{P();Yn=class{constructor(t){this._colorStack=[],this._colorStackIndex=0,this._currentColor=0,this._renderer=t}buildStart(){this._colorStack[0]=15,this._colorStackIndex=1,this._currentColor=15}push(t,e,r){this._renderer.renderPipes.batch.break(r);let s=this._colorStack;s[this._colorStackIndex]=s[this._colorStackIndex-1]&t.mask;let n=this._colorStack[this._colorStackIndex];n!==this._currentColor&&(this._currentColor=n,r.add({renderPipeId:"colorMask",colorMask:n,canBundle:!1})),this._colorStackIndex++}pop(t,e,r){this._renderer.renderPipes.batch.break(r);let s=this._colorStack;this._colorStackIndex--;let n=s[this._colorStackIndex-1];n!==this._currentColor&&(this._currentColor=n,r.add({renderPipeId:"colorMask",colorMask:n,canBundle:!1}))}execute(t){}destroy(){this._renderer=null,this._colorStack=null}};Yn.extension={type:[y.CanvasPipes],name:"colorMask"}});function x0(i){let t=[];return i.replace(Sw,(e,r,s)=>{let n=r.toLowerCase(),o=r,a=ww(s);for(n==="m"&&a.length>2&&(t.push([o,...a.splice(0,2)]),n="l",o=o==="m"?"l":"L");;){if(a.length===Xu[n])return t.push([o,...a]),"";if(a.length<Xu[n])throw new Error("malformed path data");t.push([o,...a.splice(0,Xu[n])])}}),t}function ww(i){let t=i.match(Tw);return t?t.map(Number):[]}var Xu,Sw,Tw,_0=p(()=>{Xu={a:7,c:6,h:1,l:2,m:2,q:4,s:4,t:2,v:1,z:0},Sw=/([astvzqmhlc])([^astvzqmhlc]*)/gi,Tw=/-?[0-9]*\.?[0-9]+(?:e[-+]?\d+)?/gi});function y0(i,t){let e=x0(i),r=[],s=null,n=0,o=0;for(let a=0;a<e.length;a++){let l=e[a],c=l[0],h=l;switch(c){case"M":n=h[1],o=h[2],t.moveTo(n,o);break;case"m":n+=h[1],o+=h[2],t.moveTo(n,o);break;case"H":n=h[1],t.lineTo(n,o);break;case"h":n+=h[1],t.lineTo(n,o);break;case"V":o=h[1],t.lineTo(n,o);break;case"v":o+=h[1],t.lineTo(n,o);break;case"L":n=h[1],o=h[2],t.lineTo(n,o);break;case"l":n+=h[1],o+=h[2],t.lineTo(n,o);break;case"C":n=h[5],o=h[6],t.bezierCurveTo(h[1],h[2],h[3],h[4],n,o);break;case"c":t.bezierCurveTo(n+h[1],o+h[2],n+h[3],o+h[4],n+h[5],o+h[6]),n+=h[5],o+=h[6];break;case"S":n=h[3],o=h[4],t.bezierCurveToShort(h[1],h[2],n,o);break;case"s":t.bezierCurveToShort(n+h[1],o+h[2],n+h[3],o+h[4]),n+=h[3],o+=h[4];break;case"Q":n=h[3],o=h[4],t.quadraticCurveTo(h[1],h[2],n,o);break;case"q":t.quadraticCurveTo(n+h[1],o+h[2],n+h[3],o+h[4]),n+=h[3],o+=h[4];break;case"T":n=h[1],o=h[2],t.quadraticCurveToShort(n,o);break;case"t":n+=h[1],o+=h[2],t.quadraticCurveToShort(n,o);break;case"A":n=h[6],o=h[7],t.arcToSvg(h[1],h[2],h[3],h[4],h[5],n,o);break;case"a":n+=h[6],o+=h[7],t.arcToSvg(h[1],h[2],h[3],h[4],h[5],n,o);break;case"Z":case"z":t.closePath(),r.length>0&&(s=r.pop(),s?(n=s.startX,o=s.startY):(n=0,o=0)),s=null;break;default:L(`Unknown SVG path command: ${c}`)}c!=="Z"&&c!=="z"&&s===null&&(s={startX:n,startY:o},r.push(s))}return t}var b0=p(()=>{_0();ht()});var Yu,$u,Ku,Ji,fl=p(()=>{P();xa();Vh();Ro();Ie();yt();Ke();hl();Yu=class{constructor(){this.batches=[],this.geometryData={vertices:[],uvs:[],indices:[]}}reset(){this.batches&&this.batches.forEach(t=>{bt.return(t)}),this.graphicsData&&bt.return(this.graphicsData),this.isBatchable=!1,this.context=null,this.batches.length=0,this.geometryData.indices.length=0,this.geometryData.vertices.length=0,this.geometryData.uvs.length=0,this.graphicsData=null}destroy(){this.reset(),this.batches=null,this.geometryData=null}},$u=class{constructor(){this.instructions=new hr}init(t){let e=t.maxTextures;this.batcher?this.batcher._updateMaxTextures(e):this.batcher=new hn({maxTextures:e}),this.instructions.reset()}get geometry(){return O(bf,"GraphicsContextRenderData#geometry is deprecated, please use batcher.geometry instead."),this.batcher.geometry}destroy(){this.batcher.destroy(),this.instructions.destroy(),this.batcher=null,this.instructions=null}},Ku=class qu{constructor(t){this._renderer=t,this._managedContexts=new kt({renderer:t,type:"resource",name:"graphicsContext"})}init(t){qu.defaultOptions.bezierSmoothness=t?.bezierSmoothness??qu.defaultOptions.bezierSmoothness}getContextRenderData(t){return t._gpuData[this._renderer.uid].graphicsData||this._initContextRenderData(t)}updateGpuContext(t){let e=!!t._gpuData[this._renderer.uid],r=t._gpuData[this._renderer.uid]||this._initContext(t);if(t.dirty||!e){e&&r.reset(),d0(t,r);let s=t.batchMode;t.customShader||s==="no-batch"?r.isBatchable=!1:s==="auto"?r.isBatchable=r.geometryData.vertices.length<400:r.isBatchable=!0,t.dirty=!1}return r}getGpuContext(t){return t._gpuData[this._renderer.uid]||this._initContext(t)}_initContextRenderData(t){let e=bt.get($u,{maxTextures:this._renderer.limits.maxBatchableTextures}),r=t._gpuData[this._renderer.uid],{batches:s,geometryData:n}=r;r.graphicsData=e;let o=n.vertices.length,a=n.indices.length;for(let u=0;u<s.length;u++)s[u].applyTransform=!1;let l=e.batcher;l.ensureAttributeBuffer(o),l.ensureIndexBuffer(a),l.begin();for(let u=0;u<s.length;u++){let d=s[u];l.add(d)}l.finish(e.instructions);let c=l.geometry;c.indexBuffer.setDataWithSize(l.indexBuffer,l.indexSize,!0),c.buffers[0].setDataWithSize(l.attributeBuffer.float32View,l.attributeSize,!0);let h=l.batches;for(let u=0;u<h.length;u++){let d=h[u];d.bindGroup=Gi(d.textures.textures,d.textures.count,this._renderer.limits.maxBatchableTextures)}return e}_initContext(t){let e=new Yu;return e.context=t,t._gpuData[this._renderer.uid]=e,this._managedContexts.add(t),e}destroy(){this._managedContexts.destroy(),this._renderer=null}};Ku.extension={type:[y.WebGLSystem,y.WebGPUSystem],name:"graphicsContext"};Ku.defaultOptions={bezierSmoothness:.5};Ji=Ku});function ml(i,t,e,r,s,n,o,a,l,c){let u=Math.min(.99,Math.max(0,c??Ji.defaultOptions.bezierSmoothness)),d=(Ew-u)/1;return d*=d,Pw(t,e,r,s,n,o,a,l,i,d),i}function Pw(i,t,e,r,s,n,o,a,l,c){Qu(i,t,e,r,s,n,o,a,l,c,0),l.push(o,a)}function Qu(i,t,e,r,s,n,o,a,l,c,h){if(h>Cw)return;let u=Math.PI,d=(i+e)/2,f=(t+r)/2,m=(e+s)/2,g=(r+n)/2,_=(s+o)/2,x=(n+a)/2,b=(d+m)/2,v=(f+g)/2,S=(m+_)/2,T=(g+x)/2,w=(b+S)/2,E=(v+T)/2;if(h>0){let B=o-i,R=a-t,M=Math.abs((e-o)*R-(r-a)*B),C=Math.abs((s-o)*R-(n-a)*B),A,D;if(M>pl&&C>pl){if((M+C)*(M+C)<=c*(B*B+R*R)){if(ts<Zu){l.push(w,E);return}let H=Math.atan2(n-r,s-e);if(A=Math.abs(H-Math.atan2(r-t,e-i)),D=Math.abs(Math.atan2(a-n,o-s)-H),A>=u&&(A=2*u-A),D>=u&&(D=2*u-D),A+D<ts){l.push(w,E);return}if(oi!==0){if(A>oi){l.push(e,r);return}if(D>oi){l.push(s,n);return}}}}else if(M>pl){if(M*M<=c*(B*B+R*R)){if(ts<Zu){l.push(w,E);return}if(A=Math.abs(Math.atan2(n-r,s-e)-Math.atan2(r-t,e-i)),A>=u&&(A=2*u-A),A<ts){l.push(e,r),l.push(s,n);return}if(oi!==0&&A>oi){l.push(e,r);return}}}else if(C>pl){if(C*C<=c*(B*B+R*R)){if(ts<Zu){l.push(w,E);return}if(A=Math.abs(Math.atan2(a-n,o-s)-Math.atan2(n-r,s-e)),A>=u&&(A=2*u-A),A<ts){l.push(e,r),l.push(s,n);return}if(oi!==0&&A>oi){l.push(s,n);return}}}else if(B=w-(i+o)/2,R=E-(t+a)/2,B*B+R*R<=c){l.push(w,E);return}}Qu(i,t,d,f,b,v,w,E,l,c,h+1),Qu(w,E,S,T,_,x,o,a,l,c,h+1)}var Cw,pl,Ew,Zu,ts,oi,Ju=p(()=>{fl();Cw=8,pl=11920929e-14,Ew=1,Zu=.01,ts=0,oi=0});function S0(i,t,e,r,s,n,o,a){let c=Math.min(.99,Math.max(0,a??Ji.defaultOptions.bezierSmoothness)),h=(Rw-c)/1;return h*=h,Bw(t,e,r,s,n,o,i,h),i}function Bw(i,t,e,r,s,n,o,a){td(o,i,t,e,r,s,n,a,0),o.push(s,n)}function td(i,t,e,r,s,n,o,a,l){if(l>Mw)return;let c=Math.PI,h=(t+r)/2,u=(e+s)/2,d=(r+n)/2,f=(s+o)/2,m=(h+d)/2,g=(u+f)/2,_=n-t,x=o-e,b=Math.abs((r-n)*x-(s-o)*_);if(b>Aw){if(b*b<=a*(_*_+x*x)){if(v0<kw){i.push(m,g);return}let v=Math.abs(Math.atan2(o-s,n-r)-Math.atan2(s-e,r-t));if(v>=c&&(v=2*c-v),v<v0){i.push(m,g);return}}}else if(_=m-(t+n)/2,x=g-(e+o)/2,_*_+x*x<=a){i.push(m,g);return}td(i,t,e,h,u,m,g,a,l+1),td(i,m,g,d,f,n,o,a,l+1)}var Mw,Aw,Rw,kw,v0,T0=p(()=>{fl();Mw=8,Aw=11920929e-14,Rw=1,kw=.01,v0=0});function gl(i,t,e,r,s,n,o,a){let l=Math.abs(s-n);(!o&&s>n||o&&n>s)&&(l=2*Math.PI-l),a||(a=Math.max(6,Math.floor(6*Math.pow(r,1/3)*(l/Math.PI)))),a=Math.max(a,3);let c=l/a,h=s;c*=o?-1:1;for(let u=0;u<a+1;u++){let d=Math.cos(h),f=Math.sin(h),m=t+d*r,g=e+f*r;i.push(m,g),h+=c}}var ed=p(()=>{"use strict"});function w0(i,t,e,r,s,n){let o=i[i.length-2],l=i[i.length-1]-e,c=o-t,h=s-e,u=r-t,d=Math.abs(l*u-c*h);if(d<1e-8||n===0){(i[i.length-2]!==t||i[i.length-1]!==e)&&i.push(t,e);return}let f=l*l+c*c,m=h*h+u*u,g=l*h+c*u,_=n*Math.sqrt(f)/d,x=n*Math.sqrt(m)/d,b=_*g/f,v=x*g/m,S=_*u+x*c,T=_*h+x*l,w=c*(x+b),E=l*(x+b),B=u*(_+v),R=h*(_+v),M=Math.atan2(E-T,w-S),C=Math.atan2(R-T,B-S);gl(i,S+t,T+e,n,M,C,c*h>u*l)}var C0=p(()=>{ed()});function Iw(i,t){let e=t===-1.5707963267948966?-.551915024494:1.3333333333333333*Math.tan(t/4),r=t===1.5707963267948966?.551915024494:e,s=Math.cos(i),n=Math.sin(i),o=Math.cos(i+t),a=Math.sin(i+t);return[{x:s-n*r,y:n+s*r},{x:o+a*r,y:a-o*r},{x:o,y:a}]}function P0(i,t,e,r,s,n,o,a=0,l=0,c=0){if(n===0||o===0)return;let h=Math.sin(a*$n/360),u=Math.cos(a*$n/360),d=u*(t-r)/2+h*(e-s)/2,f=-h*(t-r)/2+u*(e-s)/2;if(d===0&&f===0)return;n=Math.abs(n),o=Math.abs(o);let m=Math.pow(d,2)/Math.pow(n,2)+Math.pow(f,2)/Math.pow(o,2);m>1&&(n*=Math.sqrt(m),o*=Math.sqrt(m)),Gw(t,e,r,s,n,o,l,c,h,u,d,f,rd);let{ang1:g,ang2:_}=rd,{centerX:x,centerY:b}=rd,v=Math.abs(_)/($n/4);Math.abs(1-v)<1e-7&&(v=1);let S=Math.max(Math.ceil(v),1);_/=S;let T=i[i.length-2],w=i[i.length-1],E={x:0,y:0};for(let B=0;B<S;B++){let R=Iw(g,_),{x:M,y:C}=id(R[0],n,o,u,h,x,b,E),{x:A,y:D}=id(R[1],n,o,u,h,x,b,E),{x:H,y:K}=id(R[2],n,o,u,h,x,b,E);ml(i,T,w,M,C,A,D,H,K),T=H,w=K,g+=_}}var $n,rd,id,E0,Gw,M0=p(()=>{Ju();$n=Math.PI*2,rd={centerX:0,centerY:0,ang1:0,ang2:0},id=({x:i,y:t},e,r,s,n,o,a,l)=>{i*=e,t*=r;let c=s*i-n*t,h=n*i+s*t;return l.x=c+o,l.y=h+a,l};E0=(i,t,e,r)=>{let s=i*r-t*e<0?-1:1,n=i*e+t*r;return n>1&&(n=1),n<-1&&(n=-1),s*Math.acos(n)},Gw=(i,t,e,r,s,n,o,a,l,c,h,u,d)=>{let f=Math.pow(s,2),m=Math.pow(n,2),g=Math.pow(h,2),_=Math.pow(u,2),x=f*m-f*_-m*g;x<0&&(x=0),x/=f*_+m*g,x=Math.sqrt(x)*(o===a?-1:1);let b=x*s/n*u,v=x*-n/s*h,S=c*b-l*v+(i+e)/2,T=l*b+c*v+(t+r)/2,w=(h-b)/s,E=(u-v)/n,B=(-h-b)/s,R=(-u-v)/n,M=E0(1,0,w,E),C=E0(w,E,B,R);a===0&&C>0&&(C-=$n),a===1&&C<0&&(C+=$n),d.centerX=S,d.centerY=T,d.ang1=M,d.ang2=C}});function A0(i,t,e){let r=(o,a)=>{let l=a.x-o.x,c=a.y-o.y,h=Math.sqrt(l*l+c*c),u=l/h,d=c/h;return{len:h,nx:u,ny:d}},s=(o,a)=>{o===0?i.moveTo(a.x,a.y):i.lineTo(a.x,a.y)},n=t[t.length-1];for(let o=0;o<t.length;o++){let a=t[o%t.length],l=a.radius??e;if(l<=0){s(o,a),n=a;continue}let c=t[(o+1)%t.length],h=r(a,n),u=r(a,c);if(h.len<1e-4||u.len<1e-4){s(o,a),n=a;continue}let d=Math.asin(h.nx*u.ny-h.ny*u.nx),f=1,m=!1;h.nx*u.nx-h.ny*-u.ny<0?d<0?d=Math.PI+d:(d=Math.PI-d,f=-1,m=!0):d>0&&(f=-1,m=!0);let g=d/2,_,x=Math.abs(Math.cos(g)*l/Math.sin(g));x>Math.min(h.len/2,u.len/2)?(x=Math.min(h.len/2,u.len/2),_=Math.abs(x*Math.sin(g)/Math.cos(g))):_=l;let b=a.x+u.nx*x+-u.ny*_*f,v=a.y+u.ny*x+u.nx*_*f,S=Math.atan2(h.ny,h.nx)+Math.PI/2*f,T=Math.atan2(u.ny,u.nx)-Math.PI/2*f;o===0&&i.moveTo(b+Math.cos(S)*_,v+Math.sin(S)*_),i.arc(b,v,_,S,T,m),n=a}}function R0(i,t,e,r){let s=(a,l)=>Math.sqrt((a.x-l.x)**2+(a.y-l.y)**2),n=(a,l,c)=>({x:a.x+(l.x-a.x)*c,y:a.y+(l.y-a.y)*c}),o=t.length;for(let a=0;a<o;a++){let l=t[(a+1)%o],c=l.radius??e;if(c<=0){a===0?i.moveTo(l.x,l.y):i.lineTo(l.x,l.y);continue}let h=t[a],u=t[(a+2)%o],d=s(h,l),f;if(d<1e-4)f=l;else{let _=Math.min(d/2,c);f=n(l,h,_/d)}let m=s(u,l),g;if(m<1e-4)g=l;else{let _=Math.min(m/2,c);g=n(l,u,_/m)}a===0?i.moveTo(f.x,f.y):i.lineTo(f.x,f.y),i.quadraticCurveTo(l.x,l.y,g.x,g.y,r)}}var k0=p(()=>{"use strict"});var Fw,xl,B0=p(()=>{mm();gm();xm();Yt();_m();ie();Ju();T0();ed();C0();M0();k0();Fw=new J,xl=class{constructor(t){this.shapePrimitives=[],this._currentPoly=null,this._bounds=new dt,this._graphicsPath2D=t,this.signed=t.checkForHoles}moveTo(t,e){return this.startPoly(t,e),this}lineTo(t,e){this._ensurePoly();let r=this._currentPoly.points,s=r[r.length-2],n=r[r.length-1];return(s!==t||n!==e)&&r.push(t,e),this}arc(t,e,r,s,n,o){this._ensurePoly(!1);let a=this._currentPoly.points;return gl(a,t,e,r,s,n,o),this}arcTo(t,e,r,s,n){this._ensurePoly();let o=this._currentPoly.points;return w0(o,t,e,r,s,n),this}arcToSvg(t,e,r,s,n,o,a){let l=this._currentPoly.points;return P0(l,this._currentPoly.lastX,this._currentPoly.lastY,o,a,t,e,r,s,n),this}bezierCurveTo(t,e,r,s,n,o,a){this._ensurePoly();let l=this._currentPoly;return ml(this._currentPoly.points,l.lastX,l.lastY,t,e,r,s,n,o,a),this}quadraticCurveTo(t,e,r,s,n){this._ensurePoly();let o=this._currentPoly;return S0(this._currentPoly.points,o.lastX,o.lastY,t,e,r,s,n),this}closePath(){return this.endPoly(!0),this}addPath(t,e){this.endPoly(),e&&!e.isIdentity()&&(t=t.clone(!0),t.transform(e));let r=this.shapePrimitives,s=r.length;for(let n=0;n<t.instructions.length;n++){let o=t.instructions[n];this[o.action](...o.data)}if(t.checkForHoles&&r.length-s>1){let n=null;for(let o=s;o<r.length;o++){let a=r[o];if(a.shape.type==="polygon"){let l=a.shape,c=n?.shape;c&&c.containsPolygon(l)?(n.holes||(n.holes=[]),n.holes.push(a),r.copyWithin(o,o+1),r.length--,o--):n=a}}}return this}finish(t=!1){this.endPoly(t)}rect(t,e,r,s,n){return this.drawShape(new J(t,e,r,s),n),this}circle(t,e,r,s){return this.drawShape(new Zo(t,e,r),s),this}poly(t,e,r){let s=new Mi(t);return s.closePath=e,this.drawShape(s,r),this}regularPoly(t,e,r,s,n=0,o){s=Math.max(s|0,3);let a=-1*Math.PI/2+n,l=Math.PI*2/s,c=[];for(let h=0;h<s;h++){let u=a-h*l;c.push(t+r*Math.cos(u),e+r*Math.sin(u))}return this.poly(c,!0,o),this}roundPoly(t,e,r,s,n,o=0,a){if(s=Math.max(s|0,3),n<=0)return this.regularPoly(t,e,r,s,o);let l=r*Math.sin(Math.PI/s)-.001;n=Math.min(n,l);let c=-1*Math.PI/2+o,h=Math.PI*2/s,u=(s-2)*Math.PI/s/2;for(let d=0;d<s;d++){let f=d*h+c,m=t+r*Math.cos(f),g=e+r*Math.sin(f),_=f+Math.PI+u,x=f-Math.PI-u,b=m+n*Math.cos(_),v=g+n*Math.sin(_),S=m+n*Math.cos(x),T=g+n*Math.sin(x);d===0?this.moveTo(b,v):this.lineTo(b,v),this.quadraticCurveTo(m,g,S,T,a)}return this.closePath()}roundShape(t,e,r=!1,s){return t.length<3?this:(r?R0(this,t,e,s):A0(this,t,e),this.closePath())}filletRect(t,e,r,s,n){if(n===0)return this.rect(t,e,r,s);let o=Math.min(r,s)/2,a=Math.min(o,Math.max(-o,n)),l=t+r,c=e+s,h=a<0?-a:0,u=Math.abs(a);return this.moveTo(t,e+u).arcTo(t+h,e+h,t+u,e,u).lineTo(l-u,e).arcTo(l-h,e+h,l,e+u,u).lineTo(l,c-u).arcTo(l-h,c-h,t+r-u,c,u).lineTo(t+u,c).arcTo(t+h,c-h,t,c-u,u).closePath()}chamferRect(t,e,r,s,n,o){if(n<=0)return this.rect(t,e,r,s);let a=Math.min(n,Math.min(r,s)/2),l=t+r,c=e+s,h=[t+a,e,l-a,e,l,e+a,l,c-a,l-a,c,t+a,c,t,c-a,t,e+a];for(let u=h.length-1;u>=2;u-=2)h[u]===h[u-2]&&h[u-1]===h[u-3]&&h.splice(u-1,2);return this.poly(h,!0,o)}ellipse(t,e,r,s,n){return this.drawShape(new Qo(t,e,r,s),n),this}roundRect(t,e,r,s,n,o){return this.drawShape(new ta(t,e,r,s,n),o),this}drawShape(t,e){return this.endPoly(),this.shapePrimitives.push({shape:t,transform:e}),this}startPoly(t,e){let r=this._currentPoly;return r&&this.endPoly(),r=new Mi,r.points.push(t,e),this._currentPoly=r,this}endPoly(t=!1){let e=this._currentPoly;return e&&e.points.length>2&&(e.closePath=t,this.shapePrimitives.push({shape:e})),this._currentPoly=null,this}_ensurePoly(t=!0){if(!this._currentPoly&&(this._currentPoly=new Mi,t)){let e=this.shapePrimitives[this.shapePrimitives.length-1];if(e){let r=e.shape.x,s=e.shape.y;if(e.transform&&!e.transform.isIdentity()){let n=e.transform,o=r;r=n.a*r+n.c*s+n.tx,s=n.b*o+n.d*s+n.ty}this._currentPoly.points.push(r,s)}else this._currentPoly.points.push(0,0)}}buildPath(){let t=this._graphicsPath2D;this.shapePrimitives.length=0,this._currentPoly=null;for(let e=0;e<t.instructions.length;e++){let r=t.instructions[e];this[r.action](...r.data)}this.finish()}get bounds(){let t=this._bounds;t.clear();let e=this.shapePrimitives;for(let r=0;r<e.length;r++){let s=e[r],n=s.shape.getBounds(Fw);s.transform?t.addRect(n,s.transform):t.addRect(n)}return t}}});function es(i,t){return i?i.prepend(t):t.clone()}var we,_l=p(()=>{Ee();Ft();ht();b0();B0();we=class i{constructor(t,e=!1){this.instructions=[],this.uid=$("graphicsPath"),this._dirty=!0,this.checkForHoles=e,typeof t=="string"?y0(t,this):this.instructions=t?.slice()??[]}get shapePath(){return this._shapePath||(this._shapePath=new xl(this)),this._dirty&&(this._dirty=!1,this._shapePath.buildPath()),this._shapePath}addPath(t,e){return t=t.clone(),this.instructions.push({action:"addPath",data:[t,e]}),this._dirty=!0,this}arc(...t){return this.instructions.push({action:"arc",data:t}),this._dirty=!0,this}arcTo(...t){return this.instructions.push({action:"arcTo",data:t}),this._dirty=!0,this}arcToSvg(...t){return this.instructions.push({action:"arcToSvg",data:t}),this._dirty=!0,this}bezierCurveTo(...t){return this.instructions.push({action:"bezierCurveTo",data:t}),this._dirty=!0,this}bezierCurveToShort(t,e,r,s,n){let o=this.instructions[this.instructions.length-1],a=this.getLastPoint(nt.shared),l=0,c=0;if(!o||o.action!=="bezierCurveTo")l=a.x,c=a.y;else{l=o.data[2],c=o.data[3];let h=a.x,u=a.y;l=h+(h-l),c=u+(u-c)}return this.instructions.push({action:"bezierCurveTo",data:[l,c,t,e,r,s,n]}),this._dirty=!0,this}closePath(){return this.instructions.push({action:"closePath",data:[]}),this._dirty=!0,this}ellipse(...t){return this.instructions.push({action:"ellipse",data:t}),this._dirty=!0,this}lineTo(...t){return this.instructions.push({action:"lineTo",data:t}),this._dirty=!0,this}moveTo(...t){return this.instructions.push({action:"moveTo",data:t}),this}quadraticCurveTo(...t){return this.instructions.push({action:"quadraticCurveTo",data:t}),this._dirty=!0,this}quadraticCurveToShort(t,e,r){let s=this.instructions[this.instructions.length-1],n=this.getLastPoint(nt.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 l=n.x,c=n.y;o=l+(l-o),a=c+(c-a)}return this.instructions.push({action:"quadraticCurveTo",data:[o,a,t,e,r]}),this._dirty=!0,this}rect(t,e,r,s,n){return this.instructions.push({action:"rect",data:[t,e,r,s,n]}),this._dirty=!0,this}circle(t,e,r,s){return this.instructions.push({action:"circle",data:[t,e,r,s]}),this._dirty=!0,this}roundRect(...t){return this.instructions.push({action:"roundRect",data:t}),this._dirty=!0,this}poly(...t){return this.instructions.push({action:"poly",data:t}),this._dirty=!0,this}regularPoly(...t){return this.instructions.push({action:"regularPoly",data:t}),this._dirty=!0,this}roundPoly(...t){return this.instructions.push({action:"roundPoly",data:t}),this._dirty=!0,this}roundShape(...t){return this.instructions.push({action:"roundShape",data:t}),this._dirty=!0,this}filletRect(...t){return this.instructions.push({action:"filletRect",data:t}),this._dirty=!0,this}chamferRect(...t){return this.instructions.push({action:"chamferRect",data:t}),this._dirty=!0,this}star(t,e,r,s,n,o,a){n||(n=s/2);let l=-1*Math.PI/2+o,c=r*2,h=Math.PI*2/c,u=[];for(let d=0;d<c;d++){let f=d%2?n:s,m=d*h+l;u.push(t+f*Math.cos(m),e+f*Math.sin(m))}return this.poly(u,!0,a),this}clone(t=!1){let e=new i;if(e.checkForHoles=this.checkForHoles,!t)e.instructions=this.instructions.slice();else for(let r=0;r<this.instructions.length;r++){let s=this.instructions[r];e.instructions.push({action:s.action,data:s.data.slice()})}return e}clear(){return this.instructions.length=0,this._dirty=!0,this}transform(t){if(t.isIdentity())return this;let e=t.a,r=t.b,s=t.c,n=t.d,o=t.tx,a=t.ty,l=0,c=0,h=0,u=0,d=0,f=0,m=0,g=0;for(let _=0;_<this.instructions.length;_++){let x=this.instructions[_],b=x.data;switch(x.action){case"moveTo":case"lineTo":l=b[0],c=b[1],b[0]=e*l+s*c+o,b[1]=r*l+n*c+a;break;case"bezierCurveTo":h=b[0],u=b[1],d=b[2],f=b[3],l=b[4],c=b[5],b[0]=e*h+s*u+o,b[1]=r*h+n*u+a,b[2]=e*d+s*f+o,b[3]=r*d+n*f+a,b[4]=e*l+s*c+o,b[5]=r*l+n*c+a;break;case"quadraticCurveTo":h=b[0],u=b[1],l=b[2],c=b[3],b[0]=e*h+s*u+o,b[1]=r*h+n*u+a,b[2]=e*l+s*c+o,b[3]=r*l+n*c+a;break;case"arcToSvg":l=b[5],c=b[6],m=b[0],g=b[1],b[0]=e*m+s*g,b[1]=r*m+n*g,b[5]=e*l+s*c+o,b[6]=r*l+n*c+a;break;case"circle":b[4]=es(b[3],t);break;case"rect":b[4]=es(b[4],t);break;case"ellipse":b[8]=es(b[8],t);break;case"roundRect":b[5]=es(b[5],t);break;case"addPath":b[0].transform(t);break;case"poly":b[2]=es(b[2],t);break;case"regularPoly":case"chamferRect":b[5]=es(b[5],t);break;case"closePath":break;default:L("unknown transform action",x.action);break}}return this._dirty=!0,this}get bounds(){return this.shapePath.bounds}getLastPoint(t){let e=this.instructions.length-1,r=this.instructions[e];if(!r)return t.x=0,t.y=0,t;for(;r.action==="closePath";){if(e--,e<0)return t.x=0,t.y=0,t;r=this.instructions[e]}switch(r.action){case"moveTo":case"lineTo":t.x=r.data[0],t.y=r.data[1];break;case"quadraticCurveTo":t.x=r.data[2],t.y=r.data[3];break;case"bezierCurveTo":t.x=r.data[4],t.y=r.data[5];break;case"arc":case"arcToSvg":t.x=r.data[5],t.y=r.data[6];break;case"addPath":r.data[0].getLastPoint(t);break}return t}}});function Pt(i,t,e){let r=i.getAttribute(t);return r?Number(r):e}var sd=p(()=>{"use strict"});function I0(i,t){let e=i.querySelectorAll("defs");for(let r=0;r<e.length;r++){let s=e[r];for(let n=0;n<s.children.length;n++){let o=s.children[n];switch(o.nodeName.toLowerCase()){case"lineargradient":t.defs[o.id]=Uw(o);break;case"radialgradient":t.defs[o.id]=Dw(o);break;default:break}}}}function Uw(i){let t=Pt(i,"x1",0),e=Pt(i,"y1",0),r=Pt(i,"x2",1),s=Pt(i,"y2",0),n=i.getAttribute("gradientUnits")||"objectBoundingBox",o=new ee(t,e,r,s,n==="objectBoundingBox"?"local":"global");for(let a=0;a<i.children.length;a++){let l=i.children[a],c=Pt(l,"offset",0),h=Q.shared.setValue(l.getAttribute("stop-color")).toNumber();o.addColorStop(c,h)}return o}function Dw(i){return L("[SVG Parser] Radial gradients are not yet supported"),new ee(0,0,1,0)}var G0=p(()=>{Qt();ht();ii();sd()});function nd(i){let t=i.match(/url\s*\(\s*['"]?\s*#([^'"\s)]+)\s*['"]?\s*\)/i);return t?t[1]:""}var F0=p(()=>{"use strict"});function od(i,t){let e=i.getAttribute("style"),r={},s={},n={strokeStyle:r,fillStyle:s,useFill:!1,useStroke:!1};for(let o in U0){let a=i.getAttribute(o);a&&D0(t,n,o,a.trim())}if(e){let o=e.split(";");for(let a=0;a<o.length;a++){let l=o[a].trim(),[c,h]=l.split(":");U0[c]&&D0(t,n,c,h.trim())}}return{strokeStyle:n.useStroke?r:null,fillStyle:n.useFill?s:null,useFill:n.useFill,useStroke:n.useStroke}}function D0(i,t,e,r){switch(e){case"stroke":if(r!=="none"){if(r.startsWith("url(")){let s=nd(r);t.strokeStyle.fill=i.defs[s]}else t.strokeStyle.color=Q.shared.setValue(r).toNumber();t.useStroke=!0}break;case"stroke-width":t.strokeStyle.width=Number(r);break;case"fill":if(r!=="none"){if(r.startsWith("url(")){let s=nd(r);t.fillStyle.fill=i.defs[s]}else t.fillStyle.color=Q.shared.setValue(r).toNumber();t.useFill=!0}break;case"fill-opacity":t.fillStyle.alpha=Number(r);break;case"stroke-opacity":t.strokeStyle.alpha=Number(r);break;case"opacity":t.fillStyle.alpha=Number(r),t.strokeStyle.alpha=Number(r);break}}var U0,L0=p(()=>{Qt();F0();U0={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 O0(i){if(i.length<=2)return!0;let t=i.map(a=>a.area).sort((a,l)=>l-a),[e,r]=t,s=t[t.length-1],n=e/r,o=r/s;return!(n>3&&o<2)}var N0=p(()=>{"use strict"});function z0(i){return i.split(/(?=[Mm])/).filter(r=>r.trim().length>0)}function H0(i){let t=i.match(/[-+]?[0-9]*\.?[0-9]+/g);if(!t||t.length<4)return 0;let e=t.map(Number),r=[],s=[];for(let h=0;h<e.length;h+=2)h+1<e.length&&(r.push(e[h]),s.push(e[h+1]));if(r.length===0||s.length===0)return 0;let n=Math.min(...r),o=Math.max(...r),a=Math.min(...s),l=Math.max(...s);return(o-n)*(l-a)}function ad(i,t){let e=new we(i,!1);for(let r of e.instructions)t.instructions.push(r)}var W0=p(()=>{_l()});function V0(i,t){if(typeof i=="string"){let o=document.createElement("div");o.innerHTML=i.trim(),i=o.querySelector("svg")}let e={context:t,defs:{},path:new we};I0(i,e);let r=i.children,{fillStyle:s,strokeStyle:n}=od(i,e);for(let o=0;o<r.length;o++){let a=r[o];a.nodeName.toLowerCase()!=="defs"&&j0(a,e,s,n)}return t}function j0(i,t,e,r){let s=i.children,{fillStyle:n,strokeStyle:o}=od(i,t);n&&e?e={...e,...n}:n&&(e=n),o&&r?r={...r,...o}:o&&(r=o);let a=!e&&!r;a&&(e={color:0});let l,c,h,u,d,f,m,g,_,x,b,v,S,T,w,E,B;switch(i.nodeName.toLowerCase()){case"path":{T=i.getAttribute("d");let R=i.getAttribute("fill-rule"),M=z0(T),C=R==="evenodd",A=M.length>1;if(C&&A){let H=M.map(I=>({path:I,area:H0(I)}));if(H.sort((I,U)=>U.area-I.area),M.length>3||!O0(H))for(let I=0;I<H.length;I++){let U=H[I],j=I===0;t.context.beginPath();let G=new we(void 0,!0);ad(U.path,G),t.context.path(G),j?(e&&t.context.fill(e),r&&t.context.stroke(r)):t.context.cut()}else for(let I=0;I<H.length;I++){let U=H[I],j=I%2===1;t.context.beginPath();let G=new we(void 0,!0);ad(U.path,G),t.context.path(G),j?t.context.cut():(e&&t.context.fill(e),r&&t.context.stroke(r))}}else{let H=R?R==="evenodd":!0;w=new we(T,H),t.context.path(w),e&&t.context.fill(e),r&&t.context.stroke(r)}break}case"circle":m=Pt(i,"cx",0),g=Pt(i,"cy",0),_=Pt(i,"r",0),t.context.ellipse(m,g,_,_),e&&t.context.fill(e),r&&t.context.stroke(r);break;case"rect":l=Pt(i,"x",0),c=Pt(i,"y",0),E=Pt(i,"width",0),B=Pt(i,"height",0),x=Pt(i,"rx",0),b=Pt(i,"ry",0),x||b?t.context.roundRect(l,c,E,B,x||b):t.context.rect(l,c,E,B),e&&t.context.fill(e),r&&t.context.stroke(r);break;case"ellipse":m=Pt(i,"cx",0),g=Pt(i,"cy",0),x=Pt(i,"rx",0),b=Pt(i,"ry",0),t.context.beginPath(),t.context.ellipse(m,g,x,b),e&&t.context.fill(e),r&&t.context.stroke(r);break;case"line":h=Pt(i,"x1",0),u=Pt(i,"y1",0),d=Pt(i,"x2",0),f=Pt(i,"y2",0),t.context.beginPath(),t.context.moveTo(h,u),t.context.lineTo(d,f),r&&t.context.stroke(r);break;case"polygon":S=i.getAttribute("points"),v=S.match(/-?\d+/g).map(R=>parseInt(R,10)),t.context.poly(v,!0),e&&t.context.fill(e),r&&t.context.stroke(r);break;case"polyline":S=i.getAttribute("points"),v=S.match(/-?\d+/g).map(R=>parseInt(R,10)),t.context.poly(v,!1),r&&t.context.stroke(r);break;case"g":case"svg":break;default:{L(`[SVG parser] <${i.nodeName}> elements unsupported`);break}}a&&(e=null);for(let R=0;R<s.length;R++)j0(s[R],t,e,r)}var X0=p(()=>{ht();_l();G0();sd();L0();N0();W0()});function Lw(i){return Q.isColorLike(i)}function Y0(i){return i instanceof Ge}function $0(i){return i instanceof ee}function Ow(i){return i instanceof F}function Nw(i,t,e){let r=Q.shared.setValue(t??0);return i.color=r.toNumber(),i.alpha=r.alpha===1?e.alpha:r.alpha,i.texture=F.WHITE,{...e,...i}}function zw(i,t,e){return i.texture=t,{...e,...i}}function q0(i,t,e){return i.fill=t,i.color=16777215,i.texture=t.texture,i.matrix=t.transform,i.textureSpace=t.textureSpace,{...e,...i}}function K0(i,t,e){return t.buildGradient(),i.fill=t,i.color=16777215,i.texture=t.texture,i.matrix=t.transform,i.textureSpace=t.textureSpace,{...e,...i}}function Hw(i,t){let e={...t,...i},r=Q.shared.setValue(e.color);return e.alpha*=r.alpha,e.color=r.toNumber(),e}function sr(i,t){if(i==null)return null;let e={},r=i;return Lw(i)?Nw(e,i,t):Ow(i)?zw(e,i,t):Y0(i)?q0(e,i,t):$0(i)?K0(e,i,t):r.fill&&Y0(r.fill)?q0(r,r.fill,t):r.fill&&$0(r.fill)?K0(r,r.fill,t):Hw(r,t)}function rs(i,t){let{width:e,alignment:r,miterLimit:s,cap:n,join:o,pixelLine:a,...l}=t,c=sr(i,l);return c?{width:e,alignment:r,miterLimit:s,cap:n,join:o,pixelLine:a,...c}:null}var ld=p(()=>{Qt();gt();ii();jn()});function Z0(i,t){let e=1,r=i.shapePath.shapePrimitives;for(let s=0;s<r.length;s++){let n=r[s].shape;if(n.type!=="polygon")continue;let o=n.points,a=o.length;if(a<6)continue;let l=n.closePath;for(let c=0;c<a;c+=2){if(!l&&(c===0||c===a-2))continue;let h=(c-2+a)%a,u=(c+2)%a,d=o[h],f=o[h+1],m=o[c],g=o[c+1],_=o[u],x=o[u+1],b=d-m,v=f-g,S=_-m,T=x-g,w=b*b+v*v,E=S*S+T*T;if(w<1e-12||E<1e-12)continue;let M=(b*S+v*T)/Math.sqrt(w*E);M<-1?M=-1:M>1&&(M=1);let C=Math.sqrt((1-M)*.5);if(C<1e-6)continue;let A=Math.min(1/C,t);A>e&&(e=A)}}return e}var Q0=p(()=>{"use strict"});var Ww,J0,cd,ge,hd=p(()=>{Ht();Qt();ot();Ee();gt();Ft();yt();ie();_l();X0();ld();Q0();Ww=new nt,J0=new k,cd=class Ve extends ut{constructor(){super(...arguments),this._gpuData=Object.create(null),this.autoGarbageCollect=!0,this._gcLastUsed=-1,this.uid=$("graphicsContext"),this.dirty=!0,this.batchMode="auto",this.instructions=[],this.destroyed=!1,this._activePath=new we,this._transform=new k,this._fillStyle={...Ve.defaultFillStyle},this._strokeStyle={...Ve.defaultStrokeStyle},this._stateStack=[],this._tick=0,this._bounds=new dt,this._boundsDirty=!0}clone(){let t=new Ve;return t.batchMode=this.batchMode,t.instructions=this.instructions.slice(),t._activePath=this._activePath.clone(),t._transform=this._transform.clone(),t._fillStyle={...this._fillStyle},t._strokeStyle={...this._strokeStyle},t._stateStack=this._stateStack.slice(),t._bounds=this._bounds.clone(),t._boundsDirty=!0,t}get fillStyle(){return this._fillStyle}set fillStyle(t){this._fillStyle=sr(t,Ve.defaultFillStyle)}get strokeStyle(){return this._strokeStyle}set strokeStyle(t){this._strokeStyle=rs(t,Ve.defaultStrokeStyle)}setFillStyle(t){return this._fillStyle=sr(t,Ve.defaultFillStyle),this}setStrokeStyle(t){return this._strokeStyle=sr(t,Ve.defaultStrokeStyle),this}texture(t,e,r,s,n,o){return this.instructions.push({action:"texture",data:{image:t,dx:r||0,dy:s||0,dw:n||t.frame.width,dh:o||t.frame.height,transform:this._transform.clone(),alpha:this._fillStyle.alpha,style:e||e===0?Q.shared.setValue(e).toNumber():16777215}}),this.onUpdate(),this}beginPath(){return this._activePath=new we,this}fill(t,e){let r,s=this.instructions[this.instructions.length-1];return this._tick===0&&s?.action==="stroke"?r=s.data.path:r=this._activePath.clone(),r?(t!=null&&(e!==void 0&&typeof t=="number"&&(O(rt,"GraphicsContext.fill(color, alpha) is deprecated, use GraphicsContext.fill({ color, alpha }) instead"),t={color:t,alpha:e}),this._fillStyle=sr(t,Ve.defaultFillStyle)),this.instructions.push({action:"fill",data:{style:this.fillStyle,path:r}}),this.onUpdate(),this._initNextPathLocation(),this._tick=0,this):this}_initNextPathLocation(){let{x:t,y:e}=this._activePath.getLastPoint(nt.shared);this._activePath.clear(),this._activePath.moveTo(t,e)}stroke(t){let e,r=this.instructions[this.instructions.length-1];return this._tick===0&&r?.action==="fill"?e=r.data.path:e=this._activePath.clone(),e?(t!=null&&(this._strokeStyle=rs(t,Ve.defaultStrokeStyle)),this.instructions.push({action:"stroke",data:{style:this.strokeStyle,path:e}}),this.onUpdate(),this._initNextPathLocation(),this._tick=0,this):this}cut(){for(let t=0;t<2;t++){let e=this.instructions[this.instructions.length-1-t],r=this._activePath.clone();if(e&&(e.action==="stroke"||e.action==="fill"))if(e.data.hole)e.data.hole.addPath(r);else{e.data.hole=r;break}}return this._initNextPathLocation(),this}arc(t,e,r,s,n,o){this._tick++;let a=this._transform;return this._activePath.arc(a.a*t+a.c*e+a.tx,a.b*t+a.d*e+a.ty,r,s,n,o),this}arcTo(t,e,r,s,n){this._tick++;let o=this._transform;return this._activePath.arcTo(o.a*t+o.c*e+o.tx,o.b*t+o.d*e+o.ty,o.a*r+o.c*s+o.tx,o.b*r+o.d*s+o.ty,n),this}arcToSvg(t,e,r,s,n,o,a){this._tick++;let l=this._transform;return this._activePath.arcToSvg(t,e,r,s,n,l.a*o+l.c*a+l.tx,l.b*o+l.d*a+l.ty),this}bezierCurveTo(t,e,r,s,n,o,a){this._tick++;let l=this._transform;return this._activePath.bezierCurveTo(l.a*t+l.c*e+l.tx,l.b*t+l.d*e+l.ty,l.a*r+l.c*s+l.tx,l.b*r+l.d*s+l.ty,l.a*n+l.c*o+l.tx,l.b*n+l.d*o+l.ty,a),this}closePath(){return this._tick++,this._activePath?.closePath(),this}ellipse(t,e,r,s){return this._tick++,this._activePath.ellipse(t,e,r,s,this._transform.clone()),this}circle(t,e,r){return this._tick++,this._activePath.circle(t,e,r,this._transform.clone()),this}path(t){return this._tick++,this._activePath.addPath(t,this._transform.clone()),this}lineTo(t,e){this._tick++;let r=this._transform;return this._activePath.lineTo(r.a*t+r.c*e+r.tx,r.b*t+r.d*e+r.ty),this}moveTo(t,e){this._tick++;let r=this._transform,s=this._activePath.instructions,n=r.a*t+r.c*e+r.tx,o=r.b*t+r.d*e+r.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(t,e,r,s,n){this._tick++;let o=this._transform;return this._activePath.quadraticCurveTo(o.a*t+o.c*e+o.tx,o.b*t+o.d*e+o.ty,o.a*r+o.c*s+o.tx,o.b*r+o.d*s+o.ty,n),this}rect(t,e,r,s){return this._tick++,this._activePath.rect(t,e,r,s,this._transform.clone()),this}roundRect(t,e,r,s,n){return this._tick++,this._activePath.roundRect(t,e,r,s,n,this._transform.clone()),this}poly(t,e){return this._tick++,this._activePath.poly(t,e,this._transform.clone()),this}regularPoly(t,e,r,s,n=0,o){return this._tick++,this._activePath.regularPoly(t,e,r,s,n,o),this}roundPoly(t,e,r,s,n,o){return this._tick++,this._activePath.roundPoly(t,e,r,s,n,o),this}roundShape(t,e,r,s){return this._tick++,this._activePath.roundShape(t,e,r,s),this}filletRect(t,e,r,s,n){return this._tick++,this._activePath.filletRect(t,e,r,s,n),this}chamferRect(t,e,r,s,n,o){return this._tick++,this._activePath.chamferRect(t,e,r,s,n,o),this}star(t,e,r,s,n=0,o=0){return this._tick++,this._activePath.star(t,e,r,s,n,o,this._transform.clone()),this}svg(t){return this._tick++,V0(t,this),this}restore(){let t=this._stateStack.pop();return t&&(this._transform=t.transform,this._fillStyle=t.fillStyle,this._strokeStyle=t.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(t){return this._transform.rotate(t),this}scale(t,e=t){return this._transform.scale(t,e),this}setTransform(t,e,r,s,n,o){return t instanceof k?(this._transform.set(t.a,t.b,t.c,t.d,t.tx,t.ty),this):(this._transform.set(t,e,r,s,n,o),this)}transform(t,e,r,s,n,o){return t instanceof k?(this._transform.append(t),this):(J0.set(t,e,r,s,n,o),this._transform.append(J0),this)}translate(t,e=t){return this._transform.translate(t,e),this}clear(){return this._activePath.clear(),this.instructions.length=0,this.resetTransform(),this.onUpdate(),this}onUpdate(){this._boundsDirty=!0,this.dirty=!0,this.emit("update",this,16)}get bounds(){if(!this._boundsDirty)return this._bounds;this._boundsDirty=!1;let t=this._bounds;t.clear();for(let e=0;e<this.instructions.length;e++){let r=this.instructions[e],s=r.action;if(s==="fill"){let n=r.data;t.addBounds(n.path.bounds)}else if(s==="texture"){let n=r.data;t.addFrame(n.dx,n.dy,n.dx+n.dw,n.dy+n.dh,n.transform)}if(s==="stroke"){let n=r.data,o=n.style.alignment,a=n.style.width*(1-o);n.style.join==="miter"&&(a*=Z0(n.path,n.style.miterLimit));let l=n.path.bounds;t.addFrame(l.minX-a,l.minY-a,l.maxX+a,l.maxY+a)}}return t.isValid||t.set(0,0,0,0),t}containsPoint(t){if(!this.bounds.containsPoint(t.x,t.y))return!1;let e=this.instructions,r=!1;for(let s=0;s<e.length;s++){let n=e[s],o=n.data,a=o.path;if(!n.action||!a)continue;let l=o.style,c=a.shapePath.shapePrimitives;for(let h=0;h<c.length;h++){let u=c[h].shape;if(!l||!u)continue;let d=c[h].transform,f=d?d.applyInverse(t,Ww):t;if(n.action==="fill")r=u.contains(f.x,f.y);else{let g=l;r=u.strokeContains(f.x,f.y,g.width,g.alignment)}let m=o.hole;if(m){let g=m.shapePath?.shapePrimitives;if(g)for(let _=0;_<g.length;_++)g[_].shape.contains(f.x,f.y)&&(r=!1)}if(r)return!0}}return r}unload(){this.emit("unload",this);for(let t in this._gpuData)this._gpuData[t]?.destroy();this._gpuData=Object.create(null)}destroy(t=!1){if(this.destroyed)return;if(this.destroyed=!0,this._stateStack.length=0,this._transform=null,this.unload(),this.emit("destroy",this),this.removeAllListeners(),typeof t=="boolean"?t:t?.texture){let r=typeof t=="boolean"?t:t?.textureSource;this._fillStyle.texture&&(this._fillStyle.fill&&"uid"in this._fillStyle.fill?this._fillStyle.fill.destroy():this._fillStyle.texture.destroy(r)),this._strokeStyle.texture&&(this._strokeStyle.fill&&"uid"in this._strokeStyle.fill?this._strokeStyle.fill.destroy():this._strokeStyle.texture.destroy(r))}this._fillStyle=null,this._strokeStyle=null,this.instructions=null,this._activePath=null,this._bounds=null,this._stateStack=null,this.customShader=null,this._transform=null}};cd.defaultFillStyle={color:16777215,alpha:1,texture:F.WHITE,matrix:null,fill:null,textureSpace:"local"};cd.defaultStrokeStyle={width:1,color:16777215,alpha:1,alignment:.5,miterLimit:10,cap:"butt",join:"miter",texture:F.WHITE,matrix:null,fill:null,textureSpace:"local",pixelLine:!1};ge=cd});var ud,dd,pd,tv,ev=p(()=>{P();Ro();Ie();ud=class{constructor(){this.isBatchable=!1}reset(){this.isBatchable=!1,this.context=null,this.graphicsData&&(this.graphicsData.destroy(),this.graphicsData=null)}destroy(){this.reset()}},dd=class{constructor(){this.instructions=new hr}init(){this.instructions.reset()}destroy(){this.instructions.destroy(),this.instructions=null}},pd=class fd{constructor(t){this._renderer=t,this._managedContexts=new kt({renderer:t,type:"resource",name:"graphicsContext"})}init(t){fd.defaultOptions.bezierSmoothness=t?.bezierSmoothness??fd.defaultOptions.bezierSmoothness}getContextRenderData(t){return this.getGpuContext(t).graphicsData||this._initContextRenderData(t)}updateGpuContext(t){let e=t._gpuData,r=!!e[this._renderer.uid],s=e[this._renderer.uid]||this._initContext(t);return(t.dirty||!r)&&(r&&s.reset(),s.isBatchable=!1,t.dirty=!1),s}getGpuContext(t){return t._gpuData[this._renderer.uid]||this._initContext(t)}_initContextRenderData(t){let e=new dd,r=this.getGpuContext(t);return r.graphicsData=e,e.init(),e}_initContext(t){let e=new ud;return e.context=t,t._gpuData[this._renderer.uid]=e,this._managedContexts.add(t),e}destroy(){this._managedContexts.destroy(),this._renderer=null}};pd.extension={type:[y.CanvasSystem],name:"graphicsContext"};pd.defaultOptions={bezierSmoothness:.5};tv=pd});var qn,rv=p(()=>{P();Be();Ie();qn=class{constructor(t,e){this.state=Ot.for2d(),this.renderer=t,this._adaptor=e,this.renderer.runners.contextChange.add(this),this._managedGraphics=new kt({renderer:t,type:"renderable",priority:-1,name:"graphics"})}contextChange(){this._adaptor.contextChange(this.renderer)}validateRenderable(t){return!1}addRenderable(t,e){this._managedGraphics.add(t),this.renderer.renderPipes.batch.break(e),e.add(t)}updateRenderable(t){}execute(t){t.isRenderable&&this._adaptor.execute(this,t)}destroy(){this._managedGraphics.destroy(),this.renderer=null,this._adaptor.destroy(),this._adaptor=null}};qn.extension={type:[y.CanvasPipes],name:"graphics"}});var md,Kn,iv=p(()=>{P();Be();Ie();Ke();Ga();zu();md=class{constructor(){this.batches=[],this.batched=!1}destroy(){this.batches.forEach(t=>{bt.return(t)}),this.batches.length=0}},Kn=class{constructor(t,e){this.state=Ot.for2d(),this.renderer=t,this._adaptor=e,this.renderer.runners.contextChange.add(this),this._managedGraphics=new kt({renderer:t,type:"renderable",priority:-1,name:"graphics"})}contextChange(){this._adaptor.contextChange(this.renderer)}validateRenderable(t){let e=t.context,r=!!t._gpuData,n=this.renderer.graphicsContext.updateGpuContext(e);return!!(n.isBatchable||r!==n.isBatchable)}addRenderable(t,e){let s=this.renderer.graphicsContext.updateGpuContext(t.context);t.didViewUpdate&&this._rebuild(t),s.isBatchable?this._addToBatcher(t,e):(this.renderer.renderPipes.batch.break(e),e.add(t))}updateRenderable(t){let r=this._getGpuDataForRenderable(t).batches;for(let s=0;s<r.length;s++){let n=r[s];n._batcher.updateElement(n)}}execute(t){if(!t.isRenderable)return;let e=this.renderer,r=t.context;if(!e.graphicsContext.getGpuContext(r).batches.length)return;let n=r.customShader||this._adaptor.shader;this.state.blendMode=t.groupBlendMode;let o=n.resources.localUniforms.uniforms;o.uTransformMatrix=t.groupTransform,o.uRound=e._roundPixels|t._roundPixels,Wi(t.groupColorAlpha,o.uColor,0),this._adaptor.execute(this,t)}_rebuild(t){let e=this._getGpuDataForRenderable(t),s=this.renderer.graphicsContext.updateGpuContext(t.context);e.destroy(),s.isBatchable&&this._updateBatchesForRenderable(t,e)}_addToBatcher(t,e){let r=this.renderer.renderPipes.batch,s=this._getGpuDataForRenderable(t).batches;for(let n=0;n<s.length;n++){let o=s[n];r.addToBatch(o,e)}}_getGpuDataForRenderable(t){return t._gpuData[this.renderer.uid]||this._initGpuDataForRenderable(t)}_initGpuDataForRenderable(t){let e=new md;return t._gpuData[this.renderer.uid]=e,this._managedGraphics.add(t),e}_updateBatchesForRenderable(t,e){let r=t.context,n=this.renderer.graphicsContext.getGpuContext(r),o=this.renderer._roundPixels|t._roundPixels;e.batches=n.batches.map(a=>{let l=bt.get(si);return a.copyTo(l),l.renderable=t,l.roundPixels=o,l})}destroy(){this._managedGraphics.destroy(),this.renderer=null,this._adaptor.destroy(),this._adaptor=null,this.state=null}};Kn.extension={type:[y.WebGLPipes,y.WebGPUPipes],name:"graphics"}});var sv=p(()=>{P();ev();rv();fl();iv();z.add(qn);z.add(Kn);z.add(tv);z.add(Ji)});var oe,gd=p(()=>{yt();Es();hd();sv();oe=class i extends Le{constructor(t){t instanceof ge&&(t={context:t});let{context:e,roundPixels:r,...s}=t||{};super({label:"Graphics",...s}),this.renderPipeId="graphics",e?this.context=e:(this.context=this._ownedContext=new ge,this.context.autoGarbageCollect=this.autoGarbageCollect),this.didViewUpdate=!0,this.allowChildren=!1,this.roundPixels=r??!1}set context(t){t!==this._context&&(this._context&&(this._context.off("update",this.onViewUpdate,this),this._context.off("unload",this.unload,this)),this._context=t,this._context.on("update",this.onViewUpdate,this),this._context.on("unload",this.unload,this),this.onViewUpdate())}get context(){return this._context}get bounds(){return this._context.bounds}updateBounds(){}containsPoint(t){return this._context.containsPoint(t)}destroy(t){this._ownedContext&&!t?this._ownedContext.destroy(t):(t===!0||t?.context===!0)&&this._context.destroy(t),this._context?.off("update",this.onViewUpdate,this),this._context?.off("unload",this.unload,this),this._ownedContext=null,this._context=null,super.destroy(t)}_onTouch(t){this._gcLastUsed=t,this._context._gcLastUsed=t}_callContextMethod(t,e){return this.context[t](...e),this}setFillStyle(...t){return this._callContextMethod("setFillStyle",t)}setStrokeStyle(...t){return this._callContextMethod("setStrokeStyle",t)}fill(...t){return this._callContextMethod("fill",t)}stroke(...t){return this._callContextMethod("stroke",t)}texture(...t){return this._callContextMethod("texture",t)}beginPath(){return this._callContextMethod("beginPath",[])}cut(){return this._callContextMethod("cut",[])}arc(...t){return this._callContextMethod("arc",t)}arcTo(...t){return this._callContextMethod("arcTo",t)}arcToSvg(...t){return this._callContextMethod("arcToSvg",t)}bezierCurveTo(...t){return this._callContextMethod("bezierCurveTo",t)}closePath(){return this._callContextMethod("closePath",[])}ellipse(...t){return this._callContextMethod("ellipse",t)}circle(...t){return this._callContextMethod("circle",t)}path(...t){return this._callContextMethod("path",t)}lineTo(...t){return this._callContextMethod("lineTo",t)}moveTo(...t){return this._callContextMethod("moveTo",t)}quadraticCurveTo(...t){return this._callContextMethod("quadraticCurveTo",t)}rect(...t){return this._callContextMethod("rect",t)}roundRect(...t){return this._callContextMethod("roundRect",t)}poly(...t){return this._callContextMethod("poly",t)}regularPoly(...t){return this._callContextMethod("regularPoly",t)}roundPoly(...t){return this._callContextMethod("roundPoly",t)}roundShape(...t){return this._callContextMethod("roundShape",t)}filletRect(...t){return this._callContextMethod("filletRect",t)}chamferRect(...t){return this._callContextMethod("chamferRect",t)}star(...t){return this._callContextMethod("star",t)}svg(...t){return this._callContextMethod("svg",t)}restore(...t){return this._callContextMethod("restore",t)}save(){return this._callContextMethod("save",[])}getTransform(){return this.context.getTransform()}resetTransform(){return this._callContextMethod("resetTransform",[])}rotateTransform(...t){return this._callContextMethod("rotate",t)}scaleTransform(...t){return this._callContextMethod("scale",t)}setTransform(...t){return this._callContextMethod("setTransform",t)}transform(...t){return this._callContextMethod("transform",t)}translateTransform(...t){return this._callContextMethod("translate",t)}clear(){return this._callContextMethod("clear",[])}get fillStyle(){return this._context.fillStyle}set fillStyle(t){this._context.fillStyle=t}get strokeStyle(){return this._context.strokeStyle}set strokeStyle(t){this._context.strokeStyle=t}clone(t=!1){return t?new i(this._context.clone()):(this._ownedContext=null,new i(this._context))}lineStyle(t,e,r){O(rt,"Graphics#lineStyle is no longer needed. Use Graphics#setStrokeStyle to set the stroke style.");let s={};return t&&(s.width=t),e&&(s.color=e),r&&(s.alpha=r),this.context.strokeStyle=s,this}beginFill(t,e){O(rt,"Graphics#beginFill is no longer needed. Use Graphics#fill to fill the shape with the desired style.");let r={};return t!==void 0&&(r.color=t),e!==void 0&&(r.alpha=e),this.context.fillStyle=r,this}endFill(){O(rt,"Graphics#endFill is no longer needed. Use Graphics#fill to fill the shape with the desired style."),this.context.fill();let t=this.context.strokeStyle;return(t.width!==ge.defaultStrokeStyle.width||t.color!==ge.defaultStrokeStyle.color||t.alpha!==ge.defaultStrokeStyle.alpha)&&this.context.stroke(),this}drawCircle(...t){return O(rt,"Graphics#drawCircle has been renamed to Graphics#circle"),this._callContextMethod("circle",t)}drawEllipse(...t){return O(rt,"Graphics#drawEllipse has been renamed to Graphics#ellipse"),this._callContextMethod("ellipse",t)}drawPolygon(...t){return O(rt,"Graphics#drawPolygon has been renamed to Graphics#poly"),this._callContextMethod("poly",t)}drawRect(...t){return O(rt,"Graphics#drawRect has been renamed to Graphics#rect"),this._callContextMethod("rect",t)}drawRoundedRect(...t){return O(rt,"Graphics#drawRoundedRect has been renamed to Graphics#roundRect"),this._callContextMethod("roundRect",t)}drawStar(...t){return O(rt,"Graphics#drawStar has been renamed to Graphics#star"),this._callContextMethod("star",t)}}});function Vw(i,t,e,r,s,n){n=Math.max(0,Math.min(n,Math.min(r,s)/2)),i.moveTo(t+n,e),i.lineTo(t+r-n,e),i.quadraticCurveTo(t+r,e,t+r,e+n),i.lineTo(t+r,e+s-n),i.quadraticCurveTo(t+r,e+s,t+r-n,e+s),i.lineTo(t+n,e+s),i.quadraticCurveTo(t,e+s,t,e+s-n),i.lineTo(t,e+n),i.quadraticCurveTo(t,e,t+n,e)}function nv(i,t){switch(t.type){case"rectangle":{let e=t;i.rect(e.x,e.y,e.width,e.height);break}case"roundedRectangle":{let e=t;Vw(i,e.x,e.y,e.width,e.height,e.radius);break}case"circle":{let e=t;i.moveTo(e.x+e.radius,e.y),i.arc(e.x,e.y,e.radius,0,Math.PI*2);break}case"ellipse":{let e=t;i.ellipse?(i.moveTo(e.x+e.halfWidth,e.y),i.ellipse(e.x,e.y,e.halfWidth,e.halfHeight,0,0,Math.PI*2)):(i.save(),i.translate(e.x,e.y),i.scale(e.halfWidth,e.halfHeight),i.moveTo(1,0),i.arc(0,0,1,0,Math.PI*2),i.restore());break}case"triangle":{let e=t;i.moveTo(e.x,e.y),i.lineTo(e.x2,e.y2),i.lineTo(e.x3,e.y3),i.closePath();break}case"polygon":default:{let e=t,r=e.points;if(!r?.length)break;i.moveTo(r[0],r[1]);for(let s=2;s<r.length;s+=2)i.lineTo(r[s],r[s+1]);e.closePath&&i.closePath();break}}}function jw(i,t,e){let r=[],s=[],n=[];if(!Tr[t.type]?.build(t,r))return!1;let a=t.closePath??!0;Zi(r,e,!1,a,s,n);for(let l=0;l<n.length;l+=3){let c=n[l]*2,h=n[l+1]*2,u=n[l+2]*2;i.moveTo(s[c],s[c+1]),i.lineTo(s[h],s[h+1]),i.lineTo(s[u],s[u+1]),i.closePath()}return!0}function Xw(i,t){if(!t?.length)return!1;for(let e=0;e<t.length;e++){let r=t[e];if(!r?.shape)continue;let s=r.transform,n=s&&!s.isIdentity();n&&(i.save(),i.transform(s.a,s.b,s.c,s.d,s.tx,s.ty)),nv(i,r.shape),n&&i.restore()}return!0}var Zn,ov=p(()=>{P();al();gd();hl();ht();Zn=class{constructor(t){this._warnedMaskTypes=new Set,this._canvasMaskStack=[],this._renderer=t}push(t,e,r){this._renderer.renderPipes.batch.break(r),r.add({renderPipeId:"stencilMask",action:"pushMaskBegin",mask:t,inverse:e._maskOptions.inverse,canBundle:!1})}pop(t,e,r){this._renderer.renderPipes.batch.break(r),r.add({renderPipeId:"stencilMask",action:"popMaskEnd",mask:t,inverse:e._maskOptions.inverse,canBundle:!1})}execute(t){if(t.action!=="pushMaskBegin"&&t.action!=="popMaskEnd")return;let e=this._renderer,r=e.canvasContext,s=r?.activeContext;if(!s)return;if(t.action==="popMaskEnd"){this._canvasMaskStack.pop()&&s.restore();return}t.inverse&&this._warnOnce("inverse","CanvasRenderer: inverse masks are not supported on Canvas2D; ignoring inverse flag.");let n=t.mask.mask;if(!(n instanceof oe)){this._warnOnce("nonGraphics","CanvasRenderer: only Graphics masks are supported in Canvas2D; skipping mask."),this._canvasMaskStack.push(!1);return}let o=n,a=o.context?.instructions;if(!a?.length){this._canvasMaskStack.push(!1);return}s.save(),r.setContextTransform(o.groupTransform,(e._roundPixels|o._roundPixels)===1),s.beginPath();let l=!1,c=!1;for(let h=0;h<a.length;h++){let u=a[h],d=u.action;if(d!=="fill"&&d!=="stroke")continue;let f=u.data,m=f?.path?.shapePath;if(!m?.shapePrimitives?.length)continue;let g=d==="stroke",_=m.shapePrimitives;for(let x=0;x<_.length;x++){let b=_[x];if(!b?.shape)continue;let v=b.transform,S=v&&!v.isIdentity();S&&(s.save(),s.transform(v.a,v.b,v.c,v.d,v.tx,v.ty)),g&&f.style?l=jw(s,b.shape,f.style)||l:(nv(s,b.shape),c=Xw(s,b.holes)||c,l=!0),S&&s.restore()}}if(!l){s.restore(),this._canvasMaskStack.push(!1);return}c?s.clip("evenodd"):s.clip(),this._canvasMaskStack.push(!0)}destroy(){this._renderer=null,this._warnedMaskTypes=null,this._canvasMaskStack=null}_warnOnce(t,e){this._warnedMaskTypes.has(t)||(this._warnedMaskTypes.add(t),L(e))}};Zn.extension={type:[y.CanvasPipes],name:"stencilMask"}});function av(){let i=$o(),t=Object.create(null);return t.inherit=_t,t.none=_t,t.normal="source-over",t.add="lighter",t.multiply=i?"multiply":_t,t.screen=i?"screen":_t,t.overlay=i?"overlay":_t,t.darken=i?"darken":_t,t.lighten=i?"lighten":_t,t["color-dodge"]=i?"color-dodge":_t,t["color-burn"]=i?"color-burn":_t,t["hard-light"]=i?"hard-light":_t,t["soft-light"]=i?"soft-light":_t,t.difference=i?"difference":_t,t.exclusion=i?"exclusion":_t,t.saturation=i?"saturation":_t,t.color=i?"color":_t,t.luminosity=i?"luminosity":_t,t["linear-burn"]=i?"color-burn":_t,t["linear-dodge"]=i?"color-dodge":_t,t["linear-light"]=i?"hard-light":_t,t["pin-light"]=i?"hard-light":_t,t["vivid-light"]=i?"hard-light":_t,t["hard-mix"]=_t,t.negation=i?"difference":_t,t["normal-npm"]=t.normal,t["add-npm"]=t.add,t["screen-npm"]=t.screen,t.erase="destination-out",t.subtract=_t,t.divide=_t,t.min=_t,t.max=_t,t}var _t,lv=p(()=>{Oc();_t="source-over"});var Yw,Qn,cv=p(()=>{Qt();P();ot();lv();Yw=new k,Qn=class{constructor(t){this.activeResolution=1,this.smoothProperty="imageSmoothingEnabled",this.blendModes=av(),this._activeBlendMode="normal",this._projTransform=null,this._outerBlend=!1,this._warnedBlendModes=new Set,this._renderer=t}resolutionChange(t){this.activeResolution=t}init(){let t=this._renderer.background.alpha<1;if(this.rootContext=this._renderer.canvas.getContext("2d",{alpha:t}),this.activeContext=this.rootContext,this.activeResolution=this._renderer.resolution,!this.rootContext.imageSmoothingEnabled){let e=this.rootContext;e.webkitImageSmoothingEnabled?this.smoothProperty="webkitImageSmoothingEnabled":e.mozImageSmoothingEnabled?this.smoothProperty="mozImageSmoothingEnabled":e.oImageSmoothingEnabled?this.smoothProperty="oImageSmoothingEnabled":e.msImageSmoothingEnabled&&(this.smoothProperty="msImageSmoothingEnabled")}}setContextTransform(t,e,r,s){let n=s?k.IDENTITY:this._renderer.globalUniforms.globalUniformData?.worldTransformMatrix||k.IDENTITY,o=Yw;o.copyFrom(n),o.append(t);let a=this._projTransform,l=this.activeResolution;if(r=r||l,a){let c=k.shared;c.copyFrom(o),c.prepend(a),o=c}e?this.activeContext.setTransform(o.a*r,o.b*r,o.c*r,o.d*r,o.tx*l|0,o.ty*l|0):this.activeContext.setTransform(o.a*r,o.b*r,o.c*r,o.d*r,o.tx*l,o.ty*l)}clear(t,e){let r=this.activeContext,s=this._renderer;if(r.clearRect(0,0,s.width,s.height),t){let n=Q.shared.setValue(t);r.globalAlpha=e??n.alpha,r.fillStyle=n.toHex(),r.fillRect(0,0,s.width,s.height),r.globalAlpha=1}}setBlendMode(t){if(this._activeBlendMode===t)return;this._activeBlendMode=t,this._outerBlend=!1;let e=this.blendModes[t];if(!e){this._warnedBlendModes.has(t)||(console.warn(`CanvasRenderer: blend mode "${t}" is not supported in Canvas2D; falling back to "source-over".`),this._warnedBlendModes.add(t)),this.activeContext.globalCompositeOperation="source-over";return}this.activeContext.globalCompositeOperation=e}destroy(){this.rootContext=null,this.activeContext=null,this._warnedBlendModes.clear()}};Qn.extension={type:[y.CanvasSystem],name:"canvasContext"}});var Jn,hv=p(()=>{P();Jn=class{constructor(){this.maxTextures=16,this.maxBatchableTextures=16,this.maxUniformBindings=0}init(){}};Jn.extension={type:[y.CanvasSystem],name:"limits"}});var yl,uv=p(()=>{Qt();xt();ht();fr();yl=class{init(t,e){this._renderer=t,this._renderTargetSystem=e}initGpuRenderTarget(t){let e=t.colorTexture,{canvas:r,context:s}=this._ensureCanvas(e);return{canvas:r,context:s,width:r.width,height:r.height}}resizeGpuRenderTarget(t){let e=t.colorTexture,{canvas:r}=this._ensureCanvas(e);r.width=t.pixelWidth,r.height=t.pixelHeight}startRenderPass(t,e,r,s){let n=this._renderTargetSystem.getGpuRenderTarget(t);this._renderer.canvasContext.activeContext=n.context,this._renderer.canvasContext.activeResolution=t.resolution,e&&this.clear(t,e,r,s)}clear(t,e,r,s){let o=this._renderTargetSystem.getGpuRenderTarget(t).context,a=s||{x:0,y:0,width:t.pixelWidth,height:t.pixelHeight};if(o.setTransform(1,0,0,1,0,0),o.clearRect(a.x,a.y,a.width,a.height),r){let l=Q.shared.setValue(r);l.alpha>0&&(o.globalAlpha=l.alpha,o.fillStyle=l.toHex(),o.fillRect(a.x,a.y,a.width,a.height),o.globalAlpha=1)}}finishRenderPass(){}copyToTexture(t,e,r,s,n){let a=this._renderTargetSystem.getGpuRenderTarget(t).canvas,l=e.source,{context:c}=this._ensureCanvas(l),h=n?.x??0,u=n?.y??0;return c.drawImage(a,r.x,r.y,s.width,s.height,h,u,s.width,s.height),l.update(),e}copyDepthTexture(t,e,r,s,n){L("[CanvasRenderTargetAdaptor] copyDepthTexture is not supported in the canvas renderer")}destroyGpuRenderTarget(t){}_ensureCanvas(t){let e=t.resource;(!e||!Tt.test(e))&&(e=W.get().createCanvas(t.pixelWidth,t.pixelHeight),t.resource=e),(e.width!==t.pixelWidth||e.height!==t.pixelHeight)&&(e.width=t.pixelWidth,e.height=t.pixelHeight);let r=e.getContext("2d");return{canvas:e,context:r}}}});var to,dv=p(()=>{P();Wa();uv();to=class extends Sr{constructor(t){super(t),this.adaptor=new yl,this.adaptor.init(t,this)}};to.extension={type:[y.CanvasSystem],name:"renderTarget"}});var eo,fv=p(()=>{xt();P();Pi();eo=class{constructor(t){}init(){}initSource(t){}generateCanvas(t){let e=W.get().createCanvas(),r=e.getContext("2d"),s=Z.getCanvasSource(t);if(!s)return e;let n=t.frame,o=t.source._resolution??t.source.resolution??1,a=n.x*o,l=n.y*o,c=n.width*o,h=n.height*o;return e.width=Math.ceil(c),e.height=Math.ceil(h),r.drawImage(s,a,l,c,h,0,0,c,h),e}getPixels(t){let e=this.generateCanvas(t);return{pixels:e.getContext("2d",{willReadFrequently:!0}).getImageData(0,0,e.width,e.height).data,width:e.width,height:e.height}}destroy(){}};eo.extension={type:[y.CanvasSystem],name:"texture"}});var xv={};zl(xv,{CanvasRenderer:()=>xd});var $w,qw,Kw,pv,mv,gv,xd,_v=p(()=>{P();Rh();Bh();f0();Fh();m0();Xh();qh();g0();ov();Zh();Vr();La();Ne();cv();hv();dv();fv();$w=[...Yi,Qn,Jn,eo,to],qw=[Kr,un,Yr,Xr,qr,Zn,Yn,jr],Kw=[p0,Xn],pv=[],mv=[],gv=[];z.handleByNamedList(y.CanvasSystem,pv);z.handleByNamedList(y.CanvasPipes,mv);z.handleByNamedList(y.CanvasPipesAdaptor,gv);z.add(...$w,...qw,...Kw);xd=class extends Te{constructor(){let t={name:"canvas",type:Lt.CANVAS,systems:pv,renderPipes:mv,renderPipeAdaptors:gv};super(t)}}});function Mv(i=1e3,t=0,e=!1){if(isNaN(i)||i<0)throw new TypeError("Invalid max value");if(isNaN(t)||t<0)throw new TypeError("Invalid ttl value");if(typeof e!="boolean")throw new TypeError("Invalid resetTtl value");return new yd(i,t,e)}var yd,Av=p(()=>{yd=class{constructor(t=0,e=0,r=!1){this.first=null,this.items=Object.create(null),this.last=null,this.max=t,this.resetTtl=r,this.size=0,this.ttl=e}clear(){return this.first=null,this.items=Object.create(null),this.last=null,this.size=0,this}delete(t){if(this.has(t)){let e=this.items[t];delete this.items[t],this.size--,e.prev!==null&&(e.prev.next=e.next),e.next!==null&&(e.next.prev=e.prev),this.first===e&&(this.first=e.next),this.last===e&&(this.last=e.prev)}return this}entries(t=this.keys()){let e=new Array(t.length);for(let r=0;r<t.length;r++){let s=t[r];e[r]=[s,this.get(s)]}return e}evict(t=!1){if(t||this.size>0){let e=this.first;delete this.items[e.key],--this.size===0?(this.first=null,this.last=null):(this.first=e.next,this.first.prev=null)}return this}expiresAt(t){let e;return this.has(t)&&(e=this.items[t].expiry),e}get(t){let e=this.items[t];if(e!==void 0){if(this.ttl>0&&e.expiry<=Date.now()){this.delete(t);return}return this.moveToEnd(e),e.value}}has(t){return t in this.items}moveToEnd(t){this.last!==t&&(t.prev!==null&&(t.prev.next=t.next),t.next!==null&&(t.next.prev=t.prev),this.first===t&&(this.first=t.next),t.prev=this.last,t.next=null,this.last!==null&&(this.last.next=t),this.last=t,this.first===null&&(this.first=t))}keys(){let t=new Array(this.size),e=this.first,r=0;for(;e!==null;)t[r++]=e.key,e=e.next;return t}setWithEvicted(t,e,r=this.resetTtl){let s=null;if(this.has(t))this.set(t,e,!0,r);else{this.max>0&&this.size===this.max&&(s={...this.first},this.evict(!0));let n=this.items[t]={expiry:this.ttl>0?Date.now()+this.ttl:this.ttl,key:t,prev:this.last,next:null,value:e};++this.size===1?this.first=n:this.last.next=n,this.last=n}return s}set(t,e,r=!1,s=this.resetTtl){let n=this.items[t];return r||n!==void 0?(n.value=e,r===!1&&s&&(n.expiry=this.ttl>0?Date.now()+this.ttl:this.ttl),this.moveToEnd(n)):(this.max>0&&this.size===this.max&&this.evict(!0),n=this.items[t]={expiry:this.ttl>0?Date.now()+this.ttl:this.ttl,key:t,prev:this.last,next:null,value:e},++this.size===1?this.first=n:this.last.next=n,this.last=n),this}values(t=this.keys()){let e=new Array(t.length);for(let r=0;r<t.length;r++)e[r]=this.get(t[r]);return e}}});function bd(i){return!!i.tagStyles&&Object.keys(i.tagStyles).length>0}function vd(i){return i.includes("<")}function Qw(i,t){return i.clone().assign(t)}function Rv(i,t){let e=[],r=t.tagStyles;if(!bd(t)||!vd(i))return e.push({text:i,style:t}),e;let s=[t],n=[],o="",a=0;for(;a<i.length;){let l=i[a];if(l==="<"){let c=i.indexOf(">",a);if(c===-1){o+=l,a++;continue}let h=i.indexOf("<",a+1);if(h!==-1&&h<c){o+=l,a++;continue}let u=i.slice(a+1,c);if(u.startsWith("/")){let d=u.slice(1).trim();if(n.length>0&&n[n.length-1]===d){o.length>0&&(e.push({text:o,style:s[s.length-1]}),o=""),s.pop(),n.pop(),a=c+1;continue}else{o+=i.slice(a,c+1),a=c+1;continue}}else{let d=u.trim();if(r[d]){o.length>0&&(e.push({text:o,style:s[s.length-1]}),o="");let f=s[s.length-1],m=Qw(f,r[d]);s.push(m),n.push(d),a=c+1;continue}else{o+=i.slice(a,c+1),a=c+1;continue}}}else o+=l,a++}return o.length>0&&e.push({text:o,style:s[s.length-1]}),e}var Sd=p(()=>{"use strict"});function is(i){return typeof i!="string"?!1:tC.has(i.charCodeAt(0))}function ae(i,t){return typeof i!="string"?!1:rC.has(i.charCodeAt(0))}function oC(i){return typeof i!="string"?!1:nC.has(i.charCodeAt(0))}function wl(i){return i==="normal"||i==="pre-line"}function Cl(i){return i==="normal"}function Fe(i){if(typeof i!="string")return"";let t=i.length-1;for(;t>=0&&ae(i[t]);)t--;return t<i.length-1?i.slice(0,t+1):i}function El(i){let t=[],e=[];if(typeof i!="string")return t;for(let r=0;r<i.length;r++){let s=i[r],n=i[r+1];if(ae(s,n)||is(s)){e.length>0&&(t.push(e.join("")),e.length=0),s==="\r"&&n===`
907
907
  `?(t.push(`\r
908
- `),r++):t.push(s);continue}e.push(s),iC(s)&&n&&!ae(n)&&!rs(n)&&(t.push(e.join("")),e.length=0)}return e.length>0&&t.push(e.join("")),t}function El(i,t,e,r){let s=e(i),n=[];for(let o=0;o<s.length;o++){let a=s[o],l=a,c=1;for(;s[o+c];){let h=s[o+c];if(!r(l,h,i,o,t))a+=h,l=h,c++;else break}o+=c-1,n.push(a)}return n}var Kw,Zw,Qw,Jw,tC,JV,eC,rC,Av,Rv,Pl=p(()=>{"use strict";Kw=[10,13],Zw=new Set(Kw),Qw=[9,32,8192,8193,8194,8195,8196,8197,8198,8200,8201,8202,8287,12288],Jw=new Set(Qw),tC=[9,32],JV=new Set(tC),eC=[45,8208,8211,8212,173],rC=new Set(eC),Av=/(\r\n|\r|\n)/,Rv=/(?:\r\n|\r|\n)/});function kv(i,t,e,r,s,n,o,a,l){let c=Mv(i,t);if(wl(t.whiteSpace))for(let H=0;H<c.length;H++){let K=c[H];c[H]={text:K.text.replace(sC," "),style:K.style}}let u=[],d=[];for(let H of c){let K=H.text.split(Av);for(let I=0;I<K.length;I++){let F=K[I];F===`\r
909
- `||F==="\r"||F===`
910
- `?(u.push(d),d=[]):F.length>0&&d.push({text:F,style:H.style})}}(d.length>0||u.length===0)&&u.push(d);let f=e?nC(u,t,r,n,a,l):u,m=[],g=[],_=[],x=[],b=[],v=0,S=t._fontString,T=o(S);T.fontSize===0&&(T.fontSize=t.fontSize,T.ascent=t.fontSize);let w="",E=!!t.dropShadow,B=t._stroke?.width||0;for(let H of f){let K=0,I=T.ascent,F=T.descent,j="";for(let Y of H){let pt=Y.style._fontString,Tt=o(pt);pt!==w&&(r.font=pt,w=pt);let lt=s(Y.text,Y.style.letterSpacing,r);K+=lt,I=Math.max(I,Tt.ascent),F=Math.max(F,Tt.descent),j+=Y.text;let ft=Y.style._stroke?.width||0;ft>B&&(B=ft),!E&&Y.style.dropShadow&&(E=!0)}H.length===0&&(I=T.ascent,F=T.descent),m.push(K),g.push(I),_.push(F),b.push(j);let G=t.lineHeight||I+F;x.push(G+t.leading),v=Math.max(v,K)}let R=B,M=v+R+(t.dropShadow?t.dropShadow.distance:0),C=0;for(let H=0;H<x.length;H++)C+=x[H];C=Math.max(C,x[0]+R);let A=C+(t.dropShadow?t.dropShadow.distance:0),D=t.lineHeight||T.fontSize;return{width:M,height:A,lines:b,lineWidths:m,lineHeight:D+t.leading,maxLineWidth:v,fontProperties:T,runsByLine:f,lineAscents:g,lineDescents:_,lineHeights:x,hasDropShadow:E}}function nC(i,t,e,r,s,n){let{letterSpacing:o,whiteSpace:a,wordWrapWidth:l,breakWords:c}=t,h=Tl(a),u=l+o,d={},f="",m=(_,x)=>{let b=`${_}|${x.styleKey}`,v=d[b];if(v===void 0){let S=x._fontString;S!==f&&(e.font=S,f=S),v=r(_,x.letterSpacing,e)+x.letterSpacing,d[b]=v}return v},g=[];for(let _ of i){let x=oC(_),b=g.length,v=C=>{let A=0,D=C;do{let{token:H,style:K}=x[D];A+=m(H,K),D++}while(D<x.length&&x[D].continuesFromPrevious);return A},S=C=>{let A=[],D=C;do A.push({token:x[D].token,style:x[D].style}),D++;while(D<x.length&&x[D].continuesFromPrevious);return A},T=[],w=0,E=!h,B=null,R=()=>{B&&B.text.length>0&&T.push(B),B=null},M=()=>{if(R(),T.length>0){let C=T[T.length-1];C.text=Fe(C.text),C.text.length===0&&T.pop()}g.push(T),T=[],w=0,E=!1};for(let C=0;C<x.length;C++){let{token:A,style:D,continuesFromPrevious:H}=x[C],K=m(A,D);if(h){let j=ae(A),G=B?.text[B.text.length-1]??T[T.length-1]?.text.slice(-1)??"",Y=G?ae(G):!1;if(j&&Y)continue}let I=!H,F=I?v(C):K;if(F>u&&I)if(w>0&&M(),c){let j=S(C);for(let G=0;G<j.length;G++){let Y=j[G].token,pt=j[G].style,Tt=El(Y,c,n,s);for(let lt of Tt){let ft=m(lt,pt);ft+w>u&&M(),!B||B.style!==pt?(R(),B={text:lt,style:pt}):B.text+=lt,w+=ft}}C+=j.length-1}else{let j=S(C);R(),g.push(j.map(G=>({text:G.token,style:G.style}))),E=!1,C+=j.length-1}else if(F+w>u&&I){if(ae(A)){E=!1;continue}M(),B={text:A,style:D},w=K}else if(H&&!c)!B||B.style!==D?(R(),B={text:A,style:D}):B.text+=A,w+=K;else{let j=ae(A);if(w===0&&j&&!E)continue;!B||B.style!==D?(R(),B={text:A,style:D}):B.text+=A,w+=K}}if(R(),T.length>0){let C=T[T.length-1];C.text=Fe(C.text),C.text.length===0&&T.pop()}(T.length>0||g.length===b)&&g.push(T)}return g}function oC(i){let t=[],e=!1;for(let r of i){let s=Cl(r.text),n=!0;for(let o of s){let a=ae(o)||rs(o),l=n&&e&&!a;t.push({token:o,style:r.style,continuesFromPrevious:l}),e=!a,n=!1}}return t}var sC,Bv=p(()=>{Sd();Pl();sC=/\r\n|\r|\n/g});function Iv(i,t,e,r,s){let n=e[i];return typeof n!="number"&&(n=s(i,t,r)+t,e[i]=n),n}function Gv(i,t,e,r,s,n,o){let a=e.getContext("2d",aC);a.font=t._fontString;let l=0,c="",h=[],u=Object.create(null),{letterSpacing:d,whiteSpace:f}=t,m=Tl(f),g=wl(f),_=!m,x=t.wordWrapWidth+d,b=Cl(i);for(let S=0;S<b.length;S++){let T=b[S];if(rs(T)){if(!g){h.push(Fe(c)),_=!m,c="",l=0;continue}T=" "}if(m){let E=ae(T),B=ae(c[c.length-1]);if(E&&B)continue}let w=Iv(T,d,u,a,r);if(w>x)if(c!==""&&(h.push(Fe(c)),c="",l=0),s(T,t.breakWords)){let E=El(T,t.breakWords,o,n);for(let B of E){let R=Iv(B,d,u,a,r);R+l>x&&(h.push(Fe(c)),_=!1,c="",l=0),c+=B,l+=R}}else c.length>0&&(h.push(Fe(c)),c="",l=0),h.push(Fe(T)),_=!1,c="",l=0;else w+l>x&&(_=!1,h.push(Fe(c)),c="",l=0),(c.length>0||!ae(T)||_)&&(c+=T,l+=w)}let v=Fe(c);return v.length>0&&h.push(v),h.join(`
911
- `)}var aC,Fv=p(()=>{Pl();aC={willReadFrequently:!0}});var Uv,or,je,Td=p(()=>{Pv();xt();Bv();Sd();Pl();Fv();Uv={willReadFrequently:!0},or=class X{static get experimentalLetterSpacingSupported(){let t=X._experimentalLetterSpacingSupported;if(t===void 0){let e=W.get().getCanvasRenderingContext2D().prototype;t=X._experimentalLetterSpacingSupported="letterSpacing"in e||"textLetterSpacing"in e}return t}constructor(t,e,r,s,n,o,a,l,c,h){this.text=t,this.style=e,this.width=r,this.height=s,this.lines=n,this.lineWidths=o,this.lineHeight=a,this.maxLineWidth=l,this.fontProperties=c,h&&(this.runsByLine=h.runsByLine,this.lineAscents=h.lineAscents,this.lineDescents=h.lineDescents,this.lineHeights=h.lineHeights,this.hasDropShadow=h.hasDropShadow)}static measureText(t=" ",e,r=X._canvas,s=e.wordWrap){let n=`${t}-${e.styleKey}-wordWrap-${s}`;if(X._measurementCache.has(n))return X._measurementCache.get(n);if(bd(e)&&vd(t)){let S=kv(t,e,s,X._context,X._measureText,X._measureTextAdvance,X.measureFont,X.canBreakChars,X.wordWrapSplit),T=new X(t,e,S.width,S.height,S.lines,S.lineWidths,S.lineHeight,S.maxLineWidth,S.fontProperties,{runsByLine:S.runsByLine,lineAscents:S.lineAscents,lineDescents:S.lineDescents,lineHeights:S.lineHeights,hasDropShadow:S.hasDropShadow});return X._measurementCache.set(n,T),T}let a=e._fontString,l=X.measureFont(a);l.fontSize===0&&(l.fontSize=e.fontSize,l.ascent=e.fontSize,l.descent=0);let c=X._context;c.font=a;let u=(s?X._wordWrap(t,e,r):t).split(Rv),d=new Array(u.length),f=0;for(let S=0;S<u.length;S++){let T=X._measureText(u[S],e.letterSpacing,c);d[S]=T,f=Math.max(f,T)}let m=e._stroke?.width??0,g=e.lineHeight||l.fontSize,_=X._adjustWidthForStyle(f,e),x=Math.max(g,l.fontSize+m)+(u.length-1)*(g+e.leading),b=X._adjustHeightForStyle(x,e),v=new X(t,e,_,b,u,d,g+e.leading,f,l);return X._measurementCache.set(n,v),v}static _adjustWidthForStyle(t,e){let r=e._stroke?.width||0,s=t+r;return e.dropShadow&&(s+=e.dropShadow.distance),s}static _adjustHeightForStyle(t,e){let r=t;return e.dropShadow&&(r+=e.dropShadow.distance),r}static _measureText(t,e,r){let{metricWidth:s,metrics:n,letterSpacingVal:o}=X._measureTextCore(t,e,r),a=-(n.actualBoundingBoxLeft??0),c=(n.actualBoundingBoxRight??0)-a;return n.width>0&&(c+=o),Math.max(s,c)}static _measureTextAdvance(t,e,r){return X._measureTextCore(t,e,r).metricWidth}static _measureTextCore(t,e,r){let s=!1;X.experimentalLetterSpacingSupported&&(X.experimentalLetterSpacing?(r.letterSpacing=`${e}px`,r.textLetterSpacing=`${e}px`,s=!0):(r.letterSpacing="0px",r.textLetterSpacing="0px"));let n=r.measureText(t),o=n.width,a=0;return o>0&&(s?a=-e:a=(X.graphemeSegmenter(t).length-1)*e,o+=a),{metricWidth:o,metrics:n,letterSpacingVal:a}}static _wordWrap(t,e,r=X._canvas){return Gv(t,e,r,X._measureTextAdvance,X.canBreakWords,X.canBreakChars,X.wordWrapSplit)}static isBreakingSpace(t,e){return ae(t,e)}static canBreakWords(t,e){return e}static canBreakChars(t,e,r,s,n){return!0}static wordWrapSplit(t){return X.graphemeSegmenter(t)}static measureFont(t){if(X._fonts[t])return X._fonts[t];let e=X._context;e.font=t;let r=e.measureText(X.METRICS_STRING+X.BASELINE_SYMBOL),s=r.actualBoundingBoxAscent??0,n=r.actualBoundingBoxDescent??0,o={ascent:s,descent:n,fontSize:s+n};return X._fonts[t]=o,o}static clearMetrics(t=""){t?delete X._fonts[t]:X._fonts={}}static get _canvas(){if(!X.__canvas){let t;try{let e=new OffscreenCanvas(0,0);if(e.getContext("2d",Uv)?.measureText)return X.__canvas=e,e;t=W.get().createCanvas()}catch{t=W.get().createCanvas()}t.width=t.height=10,X.__canvas=t}return X.__canvas}static get _context(){return X.__context||(X.__context=X._canvas.getContext("2d",Uv)),X.__context}};or.METRICS_STRING="|\xC9q\xC5";or.BASELINE_SYMBOL="M";or.BASELINE_MULTIPLIER=1.4;or.HEIGHT_MULTIPLIER=2;or.graphemeSegmenter=(()=>{if(typeof Intl?.Segmenter=="function"){let i=new Intl.Segmenter;return t=>{let e=i.segment(t),r=[],s=0;for(let n of e)r[s++]=n.segment;return r}}return i=>[...i]})();or.experimentalLetterSpacing=!1;or._fonts={};or._measurementCache=Ev(1e3);je=or});function oo(i){let t=typeof i.fontSize=="number"?`${i.fontSize}px`:i.fontSize,e=i.fontFamily;Array.isArray(i.fontFamily)||(e=i.fontFamily.split(","));for(let r=e.length-1;r>=0;r--){let s=e[r].trim();!/([\"\'])[^\'\"]+\1/.test(s)&&!lC.includes(s)&&(s=`"${s}"`),e[r]=s}return`${i.fontStyle} ${i.fontVariant} ${i.fontWeight} ${t} ${e.join(",")}`}var lC,wd=p(()=>{"use strict";lC=["serif","sans-serif","monospace","cursive","fantasy","system-ui"]});function ao(i,t,e,r=0,s=0,n=0){if(i.texture===U.WHITE&&!i.fill)return Q.shared.setValue(i.color).setAlpha(i.alpha??1).toHexa();if(i.fill){if(i.fill instanceof Ge){let o=i.fill,a=t.createPattern(o.texture.source.resource,"repeat");return Z.applyPatternTransform(a,o.transform,!1),a}else if(i.fill instanceof ee){let o=i.fill,a=o.type==="linear",l=o.textureSpace==="local",c=1,h=1;l&&e&&(c=e.width+r,h=e.height+r);let u,d=!1;if(a){let{start:f,end:m}=o;u=t.createLinearGradient(f.x*c+s,f.y*h+n,m.x*c+s,m.y*h+n),d=Math.abs(m.x-f.x)<Math.abs((m.y-f.y)*.1)}else{let{center:f,innerRadius:m,outerCenter:g,outerRadius:_}=o;u=t.createRadialGradient(f.x*c+s,f.y*h+n,m*c,g.x*c+s,g.y*h+n,_*c)}if(d&&l&&e){let f=e.lineHeight/h;for(let m=0;m<e.lines.length;m++){let g=(m*e.lineHeight+r/2)/h;o.colorStops.forEach(_=>{let x=g+_.offset*f;x=Math.max(0,Math.min(1,x)),u.addColorStop(Math.floor(x*Dv)/Dv,Q.shared.setValue(_.color).toHex())})}}else o.colorStops.forEach(f=>{u.addColorStop(f.offset,Q.shared.setValue(f.color).toHex())});return u}}else{let o=t.createPattern(i.texture.source.resource,"repeat"),a=i.matrix.copyTo(k.shared);return a.scale(i.texture.source.pixelWidth,i.texture.source.pixelHeight),o.setTransform(a),o}return L("FillStyle not recognised",i),"red"}var Dv,Lv=p(()=>{Qt();ot();Ei();gt();ht();ii();Vn();Dv=1e5});function cC(i){let t=i;if(typeof t.dropShadow=="boolean"&&t.dropShadow){let e=Xe.defaultDropShadow;i.dropShadow={alpha:t.dropShadowAlpha??e.alpha,angle:t.dropShadowAngle??e.angle,blur:t.dropShadowBlur??e.blur,color:t.dropShadowColor??e.color,distance:t.dropShadowDistance??e.distance}}if(t.strokeThickness!==void 0){O(rt,"strokeThickness is now a part of stroke");let e=t.stroke,r={};if(Q.isColorLike(e))r.color=e;else if(e instanceof ee||e instanceof Ge)r.fill=e;else if(Object.hasOwnProperty.call(e,"color")||Object.hasOwnProperty.call(e,"fill"))r=e;else throw new Error("Invalid stroke value.");i.stroke={...r,width:t.strokeThickness}}if(Array.isArray(t.fillGradientStops)){if(O(rt,"gradient fill is now a fill pattern: `new FillGradient(...)`"),!Array.isArray(t.fill)||t.fill.length===0)throw new Error("Invalid fill value. Expected an array of colors for gradient fill.");t.fill.length!==t.fillGradientStops.length&&L("The number of fill colors must match the number of fill gradient stops.");let e=new ee({start:{x:0,y:0},end:{x:0,y:1},textureSpace:"local"}),r=t.fillGradientStops.slice(),s=t.fill.map(n=>Q.shared.setValue(n).toNumber());r.forEach((n,o)=>{e.addColorStop(n,s[o])}),i.fill={fill:e}}}var Ed,Xe,Ml=p(()=>{Ht();Qt();Ft();yt();ht();ii();Vn();hd();ld();wd();Ed=class li extends ut{constructor(t={}){super(),this.uid=$("textStyle"),this._tick=0,this._cachedFontString=null,cC(t),t instanceof li&&(t=t._toObject());let s={...li.defaultTextStyle,...t};for(let n in s){let o=n;this[o]=s[n]}this._tagStyles=t.tagStyles??void 0,this.update(),this._tick=0}get align(){return this._align}set align(t){this._align!==t&&(this._align=t,this.update())}get breakWords(){return this._breakWords}set breakWords(t){this._breakWords!==t&&(this._breakWords=t,this.update())}get dropShadow(){return this._dropShadow}set dropShadow(t){this._dropShadow!==t&&(t!==null&&typeof t=="object"?this._dropShadow=this._createProxy({...li.defaultDropShadow,...t}):this._dropShadow=t?this._createProxy({...li.defaultDropShadow}):null,this.update())}get fontFamily(){return this._fontFamily}set fontFamily(t){this._fontFamily!==t&&(this._fontFamily=t,this.update())}get fontSize(){return this._fontSize}set fontSize(t){this._fontSize!==t&&(typeof t=="string"?this._fontSize=parseInt(t,10):this._fontSize=t,this.update())}get fontStyle(){return this._fontStyle}set fontStyle(t){this._fontStyle!==t&&(this._fontStyle=t.toLowerCase(),this.update())}get fontVariant(){return this._fontVariant}set fontVariant(t){this._fontVariant!==t&&(this._fontVariant=t,this.update())}get fontWeight(){return this._fontWeight}set fontWeight(t){this._fontWeight!==t&&(this._fontWeight=t,this.update())}get leading(){return this._leading}set leading(t){this._leading!==t&&(this._leading=t,this.update())}get letterSpacing(){return this._letterSpacing}set letterSpacing(t){this._letterSpacing!==t&&(this._letterSpacing=t,this.update())}get lineHeight(){return this._lineHeight}set lineHeight(t){this._lineHeight!==t&&(this._lineHeight=t,this.update())}get padding(){return this._padding}set padding(t){this._padding!==t&&(this._padding=t,this.update())}get filters(){return this._filters}set filters(t){this._filters!==t&&(this._filters=Object.freeze(t),this.update())}get trim(){return this._trim}set trim(t){this._trim!==t&&(this._trim=t,this.update())}get textBaseline(){return this._textBaseline}set textBaseline(t){this._textBaseline!==t&&(this._textBaseline=t,this.update())}get whiteSpace(){return this._whiteSpace}set whiteSpace(t){this._whiteSpace!==t&&(this._whiteSpace=t,this.update())}get wordWrap(){return this._wordWrap}set wordWrap(t){this._wordWrap!==t&&(this._wordWrap=t,this.update())}get wordWrapWidth(){return this._wordWrapWidth}set wordWrapWidth(t){this._wordWrapWidth!==t&&(this._wordWrapWidth=t,this.update())}get fill(){return this._originalFill}set fill(t){t!==this._originalFill&&(this._originalFill=t,this._isFillStyle(t)&&(this._originalFill=this._createProxy({...ge.defaultFillStyle,...t},()=>{this._fill=sr({...this._originalFill},ge.defaultFillStyle)})),this._fill=sr(t===0?"black":t,ge.defaultFillStyle),this.update())}get stroke(){return this._originalStroke}set stroke(t){t!==this._originalStroke&&(this._originalStroke=t,this._isFillStyle(t)&&(this._originalStroke=this._createProxy({...ge.defaultStrokeStyle,...t},()=>{this._stroke=es({...this._originalStroke},ge.defaultStrokeStyle)})),this._stroke=es(t,ge.defaultStrokeStyle),this.update())}get tagStyles(){return this._tagStyles}set tagStyles(t){this._tagStyles!==t&&(this._tagStyles=t??void 0,this.update())}update(){this._tick++,this._cachedFontString=null,this.emit("update",this)}reset(){let t=li.defaultTextStyle;for(let e in t)this[e]=t[e]}assign(t){for(let e in t){let r=e;this[r]=t[e]}return this}get styleKey(){return`${this.uid}-${this._tick}`}get _fontString(){return this._cachedFontString===null&&(this._cachedFontString=oo(this)),this._cachedFontString}_toObject(){return{align:this.align,breakWords:this.breakWords,dropShadow:this._dropShadow?{...this._dropShadow}:null,fill:this._fill?{...this._fill}:void 0,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?{...this._stroke}:void 0,textBaseline:this.textBaseline,trim:this.trim,whiteSpace:this.whiteSpace,wordWrap:this.wordWrap,wordWrapWidth:this.wordWrapWidth,filters:this._filters?[...this._filters]:void 0,tagStyles:this._tagStyles?{...this._tagStyles}:void 0}}clone(){return new li(this._toObject())}_getFinalPadding(){let t=0;if(this._filters)for(let e=0;e<this._filters.length;e++)t+=this._filters[e].padding;return Math.max(this._padding,t)}destroy(t=!1){if(this.removeAllListeners(),typeof t=="boolean"?t:t?.texture){let r=typeof t=="boolean"?t:t?.textureSource;this._fill?.texture&&this._fill.texture.destroy(r),this._originalFill?.texture&&this._originalFill.texture.destroy(r),this._stroke?.texture&&this._stroke.texture.destroy(r),this._originalStroke?.texture&&this._originalStroke.texture.destroy(r)}this._fill=null,this._stroke=null,this.dropShadow=null,this._originalStroke=null,this._originalFill=null}_createProxy(t,e){return new Proxy(t,{set:(r,s,n)=>(r[s]===n||(r[s]=n,e?.(s,n),this.update()),!0)})}_isFillStyle(t){return(t??null)!==null&&!(Q.isColorLike(t)||t instanceof ee||t instanceof Ge)}};Ed.defaultDropShadow={alpha:1,angle:Math.PI/6,blur:0,color:"black",distance:5};Ed.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};Xe=Ed});P();var fg={extension:{type:y.Environment,name:"browser",priority:-1},test:()=>!0,load:async()=>{await Promise.resolve().then(()=>(dg(),US))}};P();var mg={extension:{type:y.Environment,name:"webworker",priority:0},test:()=>typeof self<"u"&&self.WorkerGlobalScope!==void 0,load:async()=>{await Promise.resolve().then(()=>(pg(),DS))}};P();Xo();Oo();P();xt();Vr();var pa;function kg(i){return pa!==void 0||(pa=(()=>{let t={stencil:!0,failIfMajorPerformanceCaveat:i??Te.defaultOptions.failIfMajorPerformanceCaveat};try{if(!W.get().getWebGLRenderingContext())return!1;let r=W.get().createCanvas().getContext("webgl",t),s=!!r?.getContextAttributes()?.stencil;if(r){let n=r.getExtension("WEBGL_lose_context");n&&n.loseContext()}return r=null,s}catch{return!1}})()),pa}xt();var ma;async function Bg(i={}){return ma!==void 0||(ma=await(async()=>{let t=W.get().getNavigator().gpu;if(!t)return!1;try{return await(await t.requestAdapter(i)).requestDevice(),!0}catch{return!1}})()),ma}Vr();var xv=["webgl","webgpu","canvas"];async function _v(i){let t=[];i.preference?Array.isArray(i.preference)?t=i.preference.slice():(t.push(i.preference),xv.forEach(n=>{n!==i.preference&&t.push(n)})):t=xv.slice();let e,r={};for(let n=0;n<t.length;n++){let o=t[n];if(o==="webgpu"&&await Bg()){let{WebGPURenderer:a}=await Promise.resolve().then(()=>(cy(),ly));e=a,r={...i,...i.webgpu};break}else if(o==="webgl"&&kg(i.failIfMajorPerformanceCaveat??Te.defaultOptions.failIfMajorPerformanceCaveat)){let{WebGLRenderer:a}=await Promise.resolve().then(()=>(Hb(),zb));e=a,r={...i,...i.webgl};break}else if(o==="canvas"){let{CanvasRenderer:a}=await Promise.resolve().then(()=>(gv(),mv));e=a,r={...i,...i.canvasOptions};break}}if(delete r.webgpu,delete r.webgl,delete r.canvasOptions,!e)throw new Error("No available renderer for the current environment");let s=new e;return await s.init(r),s}Pe();Dh();yt();P();P();var eo=class{static init(t){Object.defineProperty(this,"resizeTo",{configurable:!0,set(e){globalThis.removeEventListener("resize",this.queueResize),this._resizeTo=e,e&&(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 e,r;if(this._resizeTo===globalThis.window)e=globalThis.innerWidth,r=globalThis.innerHeight;else{let{clientWidth:s,clientHeight:n}=this._resizeTo;e=s,r=n}this.renderer.resize(e,r),this.render()},this._resizeId=null,this._resizeTo=null,this.resizeTo=t.resizeTo||null}static destroy(){globalThis.removeEventListener("resize",this.queueResize),this._cancelResize(),this._cancelResize=null,this.queueResize=null,this.resizeTo=null,this.resize=null}};eo.extension=y.Application;P();Ss();Si();var ro=class{static init(t){t=Object.assign({autoStart:!0,sharedTicker:!1},t),Object.defineProperty(this,"ticker",{configurable:!0,set(e){this._ticker&&this._ticker.remove(this.render,this),this._ticker=e,e&&e.add(this.render,this,De.LOW)},get(){return this._ticker}}),this.stop=()=>{this._ticker.stop()},this.start=()=>{this._ticker.start()},this._ticker=null,this.ticker=t.sharedTicker?qt.shared:new qt,t.autoStart&&this.start()}static destroy(){if(this._ticker){let t=this._ticker;this.ticker=null,t.destroy()}}};ro.extension=y.Application;z.add(eo);z.add(ro);var yv=class _d{constructor(...t){this.stage=new mt,t[0]!==void 0&&O(rt,"Application constructor options are deprecated, please use Application.init() instead.")}async init(t){t={...t},this.stage||(this.stage=new mt),this.renderer=await _v(t),_d._plugins.forEach(e=>{e.init.call(this,t)})}render(){this.renderer.render({container:this.stage})}get canvas(){return this.renderer.canvas}get view(){return O(rt,"Application.view is deprecated, please use Application.canvas instead."),this.renderer.canvas}get screen(){return this.renderer.screen}get domContainerRoot(){return this.renderer.renderPipes.dom?._domElement}destroy(t=!1,e=!1){let r=_d._plugins.slice(0);r.reverse(),r.forEach(s=>{s.destroy.call(this)}),this.stage.destroy(e),this.stage=null,this.renderer.destroy(t),this.renderer=null}};yv._plugins=[];var yl=yv;z.handleByList(y.Application,yl._plugins);z.add(tn);dm();zr();Be();gt();yt();Cs();xr();ir();zr();yt();var bv=class vv extends he{constructor(...t){let e=t[0]??{};e instanceof Float32Array&&(O(rt,"use new MeshGeometry({ positions, uvs, indices }) instead"),e={positions:e,uvs:t[1],indices:t[2]}),e={...vv.defaultOptions,...e};let r=e.positions||new Float32Array([0,0,1,0,1,1,0,1]),s=e.uvs;s||(e.positions?s=new Float32Array(r.length):s=new Float32Array([0,0,1,0,1,1,0,1]));let n=e.indices||new Uint32Array([0,1,2,0,2,3]),o=e.shrinkBuffersToFit,a=new At({data:r,label:"attribute-mesh-positions",shrinkToFit:o,usage:tt.VERTEX|tt.COPY_DST}),l=new At({data:s,label:"attribute-mesh-uvs",shrinkToFit:o,usage:tt.VERTEX|tt.COPY_DST}),c=new At({data:n,label:"index-mesh-buffer",shrinkToFit:o,usage:tt.INDEX|tt.COPY_DST});super({attributes:{aPosition:{buffer:a,format:"float32x2",stride:8,offset:0},aUV:{buffer:l,format:"float32x2",stride:8,offset:0}},indexBuffer:c,topology:e.topology}),this.batchMode="auto"}get positions(){return this.attributes.aPosition.buffer.data}set positions(t){this.attributes.aPosition.buffer.data=t}get uvs(){return this.attributes.aUV.buffer.data}set uvs(t){this.attributes.aUV.buffer.data=t}get indices(){return this.indexBuffer.data}set indices(t){this.indexBuffer.data=t}};bv.defaultOptions={topology:"triangle-list",shrinkBuffersToFit:!1};var io=bv;P();P();ot();mr();me();Nh();Ia();var bl=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(t){this._topology=t}reset(){this.renderable=null,this.texture=null,this._batcher=null,this._batch=null,this.geometry=null,this._uvUpdateId=-1,this._textureMatrixUpdateId=-1}setTexture(t){this.texture!==t&&(this.texture=t,this._textureMatrixUpdateId=-1)}get uvs(){let e=this.geometry.getBuffer("aUV"),r=e.data,s=r,n=this.texture.textureMatrix;return n.isSimple||(s=this._transformedUvs,(this._textureMatrixUpdateId!==n._updateID||this._uvUpdateId!==e._updateID)&&((!s||s.length<r.length)&&(s=this._transformedUvs=new Float32Array(r.length)),this._textureMatrixUpdateId=n._updateID,this._uvUpdateId=e._updateID,n.multiplyUvs(r,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 vl=class{destroy(){}},so=class{constructor(t,e){this.localUniforms=new Ct({uTransformMatrix:{value:new k,type:"mat3x3<f32>"},uColor:{value:new Float32Array([1,1,1,1]),type:"vec4<f32>"},uRound:{value:0,type:"f32"}}),this.localUniformsBindGroup=new Vt({0:this.localUniforms}),this.renderer=t,this._adaptor=e,this._adaptor.init()}validateRenderable(t){let e=this._getMeshData(t),r=e.batched,s=t.batched;if(e.batched=s,r!==s)return!0;if(s){let n=t._geometry;if(n.indices.length!==e.indexSize||n.positions.length!==e.vertexSize)return e.indexSize=n.indices.length,e.vertexSize=n.positions.length,!0;let o=this._getBatchableMesh(t);return o.texture.uid!==t._texture.uid&&(o._textureMatrixUpdateId=-1),!o._batcher.checkAndUpdateTexture(o,t._texture)}return!1}addRenderable(t,e){let r=this.renderer.renderPipes.batch,s=this._getMeshData(t);if(t.didViewUpdate&&(s.indexSize=t._geometry.indices?.length,s.vertexSize=t._geometry.positions?.length),s.batched){let n=this._getBatchableMesh(t);n.setTexture(t._texture),n.geometry=t._geometry,r.addToBatch(n,e)}else r.break(e),e.add(t)}updateRenderable(t){if(t.batched){let e=this._getBatchableMesh(t);e.setTexture(t._texture),e.geometry=t._geometry,e._batcher.updateElement(e)}}execute(t){if(!t.isRenderable)return;t.state.blend&&(t.state.blendMode=sn(t.groupBlendMode,t.texture._source));let e=this.localUniforms;e.uniforms.uTransformMatrix=t.groupTransform,e.uniforms.uRound=this.renderer._roundPixels|t._roundPixels,e.update(),Hi(t.groupColorAlpha,e.uniforms.uColor,0),this._adaptor.execute(this,t)}_getMeshData(t){var e,r;return(e=t._gpuData)[r=this.renderer.uid]||(e[r]=new vl),t._gpuData[this.renderer.uid].meshData||this._initMeshData(t)}_initMeshData(t){return t._gpuData[this.renderer.uid].meshData={batched:t.batched,indexSize:0,vertexSize:0},t._gpuData[this.renderer.uid].meshData}_getBatchableMesh(t){var e,r;return(e=t._gpuData)[r=this.renderer.uid]||(e[r]=new vl),t._gpuData[this.renderer.uid].batchableMesh||this._initBatchableMesh(t)}_initBatchableMesh(t){let e=new bl;return e.renderable=t,e.setTexture(t._texture),e.transform=t.groupTransform,e.roundPixels=this.renderer._roundPixels|t._roundPixels,t._gpuData[this.renderer.uid].batchableMesh=e,e}destroy(){this.localUniforms=null,this.localUniformsBindGroup=null,this._adaptor.destroy(),this._adaptor=null,this.renderer=null}};so.extension={type:[y.WebGLPipes,y.WebGPUPipes],name:"mesh"};z.add(so);var no=class extends Le{constructor(...t){let e=t[0];e instanceof he&&(O(rt,"Mesh: use new Mesh({ geometry, shader }) instead"),e={geometry:e,shader:t[1]},t[3]&&(O(rt,"Mesh: drawMode argument has been removed, use geometry.topology instead"),e.geometry.topology=t[3]));let{geometry:r,shader:s,texture:n,roundPixels:o,state:a,...l}=e;super({label:"Mesh",...l}),this.renderPipeId="mesh",this._shader=null,this.allowChildren=!1,this.shader=s??null,this.texture=n??s?.texture??U.WHITE,this.state=a??Ot.for2d(),this._geometry=r,this._geometry.on("update",this.onViewUpdate,this),this.roundPixels=o??!1}get material(){return O(rt,"mesh.material property has been removed, use mesh.shader instead"),this._shader}set shader(t){this._shader!==t&&(this._shader=t,this.onViewUpdate())}get shader(){return this._shader}set geometry(t){this._geometry!==t&&(this._geometry?.off("update",this.onViewUpdate,this),t.on("update",this.onViewUpdate,this),this._geometry=t,this.onViewUpdate())}get geometry(){return this._geometry}set texture(t){t||(t=U.EMPTY);let e=this._texture;e!==t&&(e&&e.dynamic&&e.off("update",this.onViewUpdate,this),t.dynamic&&t.on("update",this.onViewUpdate,this),this.shader&&(this.shader.texture=t),this._texture=t,this.onViewUpdate())}get texture(){return this._texture}get batched(){return this._shader||(this.state.data&12)!==0?!1:this._geometry instanceof io?this._geometry.batchMode==="auto"?this._geometry.positions.length/2<=100:this._geometry.batchMode==="batch":!1}get bounds(){return this._geometry.bounds}updateBounds(){this._bounds=this._geometry.bounds}containsPoint(t){let{x:e,y:r}=t;if(!this.bounds.containsPoint(e,r))return!1;let s=this.geometry.getBuffer("aPosition").data,n=this.geometry.topology==="triangle-strip"?3:1;if(this.geometry.getIndex()){let o=this.geometry.getIndex().data,a=o.length;for(let l=0;l+2<a;l+=n){let c=o[l]*2,h=o[l+1]*2,u=o[l+2]*2;if(Hc(e,r,s[c],s[c+1],s[h],s[h+1],s[u],s[u+1]))return!0}}else{let o=s.length/2;for(let a=0;a+2<o;a+=n){let l=a*2,c=(a+1)*2,h=(a+2)*2;if(Hc(e,r,s[l],s[l+1],s[c],s[c+1],s[h],s[h+1]))return!0}}return!1}destroy(t){if(super.destroy(t),typeof t=="boolean"?t:t?.texture){let r=typeof t=="boolean"?t:t?.textureSource;this._texture.destroy(r)}this._geometry?.off("update",this.onViewUpdate,this),this._texture=null,this._geometry=null,this._shader=null}};$t();Ar();bo();yt();Cs();var Sl=class extends Le{constructor(t,e){let{text:r,resolution:s,style:n,anchor:o,width:a,height:l,roundPixels:c,...h}=t;super({...h}),this.batched=!0,this._resolution=null,this._autoResolution=!0,this._didTextUpdate=!0,this._styleClass=e,this.text=r??"",this.style=n,this.resolution=s??null,this.allowChildren=!1,this._anchor=new Gt({_onUpdate:()=>{this.onViewUpdate()}}),o&&(this.anchor=o),this.roundPixels=c??!1,a!==void 0&&(this.width=a),l!==void 0&&(this.height=l)}get anchor(){return this._anchor}set anchor(t){typeof t=="number"?this._anchor.set(t):this._anchor.copyFrom(t)}set text(t){t=t.toString(),this._text!==t&&(this._text=t,this.onViewUpdate())}get text(){return this._text}set resolution(t){this._autoResolution=t===null,this._resolution=t,this.onViewUpdate()}get resolution(){return this._resolution}get style(){return this._style}set style(t){t||(t={}),this._style?.off("update",this.onViewUpdate,this),t instanceof this._styleClass?this._style=t:this._style=new this._styleClass(t),this._style.on("update",this.onViewUpdate,this),this.onViewUpdate()}get width(){return Math.abs(this.scale.x)*this.bounds.width}set width(t){this._setWidth(t,this.bounds.width)}get height(){return Math.abs(this.scale.y)*this.bounds.height}set height(t){this._setHeight(t,this.bounds.height)}getSize(t){return t||(t={}),t.width=Math.abs(this.scale.x)*this.bounds.width,t.height=Math.abs(this.scale.y)*this.bounds.height,t}setSize(t,e){typeof t=="object"?(e=t.height??t.width,t=t.width):e??(e=t),t!==void 0&&this._setWidth(t,this.bounds.width),e!==void 0&&this._setHeight(e,this.bounds.height)}containsPoint(t){let e=this.bounds.width,r=this.bounds.height,s=-e*this.anchor.x,n=0;return t.x>=s&&t.x<=s+e&&(n=-r*this.anchor.y,t.y>=n&&t.y<=n+r)}onViewUpdate(){this.didViewUpdate||(this._didTextUpdate=!0),super.onViewUpdate()}destroy(t=!1){super.destroy(t),this.owner=null,this._bounds=null,this._anchor=null,(typeof t=="boolean"?t:t?.style)&&this._style.destroy(t),this._style=null,this._text=null}get styleKey(){return`${this._text}:${this._style.styleKey}:${this._resolution}`}};function Sv(i,t){let e=i[0]??{};return(typeof e=="string"||i[1])&&(O(rt,`use new ${t}({ text: "hi!", style }) instead`),e={text:e,style:i[1]}),e}Qt();Yt();$o();xt();ys();Yt();var ai=null,nr=null;function $w(i,t){ai||(ai=W.get().createCanvas(256,128),nr=ai.getContext("2d",{willReadFrequently:!0}),nr.globalCompositeOperation="copy",nr.globalAlpha=1),(ai.width<i||ai.height<t)&&(ai.width=Je(i),ai.height=Je(t))}function Tv(i,t,e){for(let r=0,s=4*e*t;r<t;++r,s+=4)if(i[s+3]!==0)return!1;return!0}function wv(i,t,e,r,s){let n=4*t;for(let o=r,a=r*n+4*e;o<=s;++o,a+=n)if(i[a+3]!==0)return!1;return!0}function Cv(...i){let t=i[0];t.canvas||(t={canvas:i[0],resolution:i[1]});let{canvas:e}=t,r=Math.min(t.resolution??1,1),s=t.width??e.width,n=t.height??e.height,o=t.output;if($w(s,n),!nr)throw new TypeError("Failed to get canvas 2D context");nr.drawImage(e,0,0,s,n,0,0,s*r,n*r);let l=nr.getImageData(0,0,s,n).data,c=0,h=0,u=s-1,d=n-1;for(;h<n&&Tv(l,s,h);)++h;if(h===n)return J.EMPTY;for(;Tv(l,s,d);)--d;for(;wv(l,s,c,h,d);)++c;for(;wv(l,s,u,h,d);)--u;return++u,++d,nr.globalCompositeOperation="source-over",nr.strokeRect(c,h,u-c,d-h),nr.globalCompositeOperation="copy",o??(o=new J),o.set(c/r,h/r,(u-c)/r,(d-h)/r),o}Td();wd();Lv();var Ov=new J;function is(i){let t=0;for(let e=0;e<i.length;e++)i.charCodeAt(e)===32&&t++;return t}var Cd=class{getCanvasAndContext(t){let{text:e,style:r,resolution:s=1}=t,n=r._getFinalPadding(),o=je.measureText(e||" ",r),a=Math.ceil(Math.ceil(Math.max(1,o.width)+n*2)*s),l=Math.ceil(Math.ceil(Math.max(1,o.height)+n*2)*s),c=rr.getOptimalCanvasAndContext(a,l);this._renderTextToCanvas(r,n,s,c,o);let h=r.trim?Cv({canvas:c.canvas,width:a,height:l,resolution:1,output:Ov}):Ov.set(0,0,a,l);return{canvasAndContext:c,frame:h}}returnCanvasAndContext(t){rr.returnCanvasAndContext(t)}_renderTextToCanvas(t,e,r,s,n){if(n.runsByLine&&n.runsByLine.length>0){this._renderTaggedTextToCanvas(n,t,e,r,s);return}let{canvas:o,context:a}=s,l=oo(t),c=n.lines,h=n.lineHeight,u=n.lineWidths,d=n.maxLineWidth,f=n.fontProperties,m=o.height;if(a.resetTransform(),a.scale(r,r),a.textBaseline=t.textBaseline,t._stroke?.width){let T=t._stroke;a.lineWidth=T.width,a.miterLimit=T.miterLimit,a.lineJoin=T.join,a.lineCap=T.cap}a.font=l;let g,_,x=t.dropShadow?2:1,v=(t._stroke?.width??0)/2,S=(h-f.fontSize)/2;h-f.fontSize<0&&(S=0);for(let T=0;T<x;++T){let w=t.dropShadow&&T===0,E=w?Math.ceil(Math.max(1,m)+e*2):0,B=E*r;if(w)this._setupDropShadow(a,t,r,B);else{let R=t._gradientBounds,M=t._gradientOffset;if(R){let C={width:R.width,height:R.height,lineHeight:R.height,lines:n.lines};this._setFillAndStrokeStyles(a,t,C,e,v,M?.x??0,M?.y??0)}else M?this._setFillAndStrokeStyles(a,t,n,e,v,M.x,M.y):this._setFillAndStrokeStyles(a,t,n,e,v);a.shadowColor="rgba(0,0,0,0)"}for(let R=0;R<c.length;R++){g=v,_=v+R*h+f.ascent+S,g+=this._getAlignmentOffset(u[R],d,t.align);let M=0;if(t.align==="justify"&&t.wordWrap&&R<c.length-1){let C=is(c[R]);C>0&&(M=(d-u[R])/C)}t._stroke?.width&&this._drawLetterSpacing(c[R],t,s,g+e,_+e-E,!0,M),t._fill!==void 0&&this._drawLetterSpacing(c[R],t,s,g+e,_+e-E,!1,M)}}}_renderTaggedTextToCanvas(t,e,r,s,n){let{canvas:o,context:a}=n,{runsByLine:l,lineWidths:c,maxLineWidth:h,lineAscents:u,lineHeights:d,hasDropShadow:f}=t,m=o.height;a.resetTransform(),a.scale(s,s),a.textBaseline=e.textBaseline;let g=f?2:1,_=e._stroke?.width??0;for(let v of l)for(let S of v){let T=S.style._stroke?.width??0;T>_&&(_=T)}let x=_/2,b=[];for(let v=0;v<l.length;v++){let S=l[v],T=[];for(let w of S){let E=oo(w.style);a.font=E,T.push({width:je._measureText(w.text,w.style.letterSpacing,a),font:E})}b.push(T)}for(let v=0;v<g;++v){let S=f&&v===0,T=S?Math.ceil(Math.max(1,m)+r*2):0,w=T*s;S||(a.shadowColor="rgba(0,0,0,0)");let E=x;for(let B=0;B<l.length;B++){let R=l[B],M=c[B],C=u[B],A=d[B],D=b[B],H=x;H+=this._getAlignmentOffset(M,h,e.align);let K=0;if(e.align==="justify"&&e.wordWrap&&B<l.length-1){let j=0;for(let G of R)j+=is(G.text);j>0&&(K=(h-M)/j)}let I=E+C,F=H+r;for(let j=0;j<R.length;j++){let G=R[j],{width:Y,font:pt}=D[j];if(a.font=pt,a.textBaseline=G.style.textBaseline,G.style._stroke?.width){let lt=G.style._stroke;if(a.lineWidth=lt.width,a.miterLimit=lt.miterLimit,a.lineJoin=lt.join,a.lineCap=lt.cap,S)if(G.style.dropShadow)this._setupDropShadow(a,G.style,s,w);else{let ft=is(G.text);F+=Y+ft*K;continue}else{let ft=je.measureFont(pt),q=G.style.lineHeight||ft.fontSize,jt={width:Y,height:q,lineHeight:q,lines:[G.text]};a.strokeStyle=ao(lt,a,jt,r*2,F-r,E)}this._drawLetterSpacing(G.text,G.style,n,F,I+r-T,!0,K)}let Tt=is(G.text);F+=Y+Tt*K}F=H+r;for(let j=0;j<R.length;j++){let G=R[j],{width:Y,font:pt}=D[j];if(a.font=pt,a.textBaseline=G.style.textBaseline,G.style._fill!==void 0){if(S)if(G.style.dropShadow)this._setupDropShadow(a,G.style,s,w);else{let lt=is(G.text);F+=Y+lt*K;continue}else{let lt=je.measureFont(pt),ft=G.style.lineHeight||lt.fontSize,q={width:Y,height:ft,lineHeight:ft,lines:[G.text]};a.fillStyle=ao(G.style._fill,a,q,r*2,F-r,E)}this._drawLetterSpacing(G.text,G.style,n,F,I+r-T,!1,K)}let Tt=is(G.text);F+=Y+Tt*K}E+=A}}}_setFillAndStrokeStyles(t,e,r,s,n,o=0,a=0){if(t.fillStyle=e._fill?ao(e._fill,t,r,s*2,o,a):null,e._stroke?.width){let l=n+s*2;t.strokeStyle=ao(e._stroke,t,r,l,o,a)}}_setupDropShadow(t,e,r,s){t.fillStyle="black",t.strokeStyle="black";let n=e.dropShadow,o=n.color,a=n.alpha;t.shadowColor=Q.shared.setValue(o).setAlpha(a).toRgbaString();let l=n.blur*r,c=n.distance*r;t.shadowBlur=l,t.shadowOffsetX=Math.cos(n.angle)*c,t.shadowOffsetY=Math.sin(n.angle)*c+s}_getAlignmentOffset(t,e,r){return r==="right"?e-t:r==="center"?(e-t)/2:0}_drawLetterSpacing(t,e,r,s,n,o=!1,a=0){let{context:l}=r,c=e.letterSpacing,h=!1;if(je.experimentalLetterSpacingSupported&&(je.experimentalLetterSpacing?(l.letterSpacing=`${c}px`,l.textLetterSpacing=`${c}px`,h=!0):(l.letterSpacing="0px",l.textLetterSpacing="0px")),(c===0||h)&&a===0){o?l.strokeText(t,s,n):l.fillText(t,s,n);return}if(a!==0&&(c===0||h)){let g=t.split(" "),_=s,x=l.measureText(" ").width;for(let b=0;b<g.length;b++)o?l.strokeText(g[b],_,n):l.fillText(g[b],_,n),_+=l.measureText(g[b]).width+x+a;return}let u=s,d=je.graphemeSegmenter(t),f=l.measureText(t).width,m=0;for(let g=0;g<d.length;++g){let _=d[g];o?l.strokeText(_,u,n):l.fillText(_,u,n);let x="";for(let b=g+1;b<d.length;++b)x+=d[b];m=l.measureText(x).width,u+=f-m+c,_===" "&&(u+=a),f=m}}},wr=new Cd;Td();Ml();P();P();Ie();Bc();function Nv(i,t){let{texture:e,bounds:r}=i,s=t._style._getFinalPadding();No(r,t._anchor,e);let n=t._anchor._x*s*2,o=t._anchor._y*s*2;r.minX-=s-n,r.minY-=s-o,r.maxX-=s-n,r.maxY-=s-o}Ca();var Al=class extends yr{};var lo=class{constructor(t){this._renderer=t,t.runners.resolutionChange.add(this),this._managedTexts=new kt({renderer:t,type:"renderable",onUnload:this.onTextUnload.bind(this),name:"canvasText"})}resolutionChange(){for(let t in this._managedTexts.items){let e=this._managedTexts.items[t];e?._autoResolution&&e.onViewUpdate()}}validateRenderable(t){let e=this._getGpuText(t),r=t.styleKey;return e.currentKey!==r?!0:t._didTextUpdate}addRenderable(t,e){let r=this._getGpuText(t);if(t._didTextUpdate){let s=t._autoResolution?this._renderer.resolution:t.resolution;(r.currentKey!==t.styleKey||t._resolution!==s)&&this._updateGpuText(t),t._didTextUpdate=!1,Nv(r,t)}this._renderer.renderPipes.batch.addToBatch(r,e)}updateRenderable(t){let e=this._getGpuText(t);e._batcher.updateElement(e)}_updateGpuText(t){let e=this._getGpuText(t);e.texture&&this._renderer.canvasText.decreaseReferenceCount(e.currentKey),t._resolution=t._autoResolution?this._renderer.resolution:t.resolution,e.texture=this._renderer.canvasText.getManagedTexture(t),e.currentKey=t.styleKey}_getGpuText(t){return t._gpuData[this._renderer.uid]||this.initGpuText(t)}initGpuText(t){let e=new Al;return e.currentKey="--",e.renderable=t,e.transform=t.groupTransform,e.bounds={minX:0,maxX:1,minY:0,maxY:0},e.roundPixels=this._renderer._roundPixels|t._roundPixels,t._gpuData[this._renderer.uid]=e,this._managedTexts.add(t),e}onTextUnload(t){let e=t._gpuData[this._renderer.uid];if(!e)return;let{canvasText:r}=this._renderer;r.getReferenceCount(e.currentKey)>0?r.decreaseReferenceCount(e.currentKey):e.texture&&r.returnTexture(e.texture)}destroy(){this._managedTexts.destroy(),this._renderer=null}};lo.extension={type:[y.WebGLPipes,y.WebGPUPipes,y.CanvasPipes],name:"text"};P();Fr();Ar();yt();Ml();Vc();var ss=class{constructor(t,e){this._activeTextures={},this._renderer=t,this._retainCanvasContext=e}getTexture(t,e,r,s){typeof t=="string"&&(O("8.0.0","CanvasTextSystem.getTexture: Use object TextOptions instead of separate arguments"),t={text:t,style:r,resolution:e}),t.style instanceof Xe||(t.style=new Xe(t.style)),t.textureStyle instanceof ce||(t.textureStyle=new ce(t.textureStyle)),typeof t.text!="string"&&(t.text=t.text.toString());let{text:n,style:o,textureStyle:a,autoGenerateMipmaps:l}=t,c=t.resolution??this._renderer.resolution,{frame:h,canvasAndContext:u}=wr.getCanvasAndContext({text:n,style:o,resolution:c}),d=ea(u.canvas,h.width,h.height,c,l);if(a&&(d.source.style=a),o.trim&&(h.pad(o.padding),d.frame.copyFrom(h),d.frame.scale(1/c),d.updateUvs()),o.filters){let f=this._applyFilters(d,o.filters);return this.returnTexture(d),wr.returnCanvasAndContext(u),f}return this._renderer.texture.initSource(d._source),this._retainCanvasContext||wr.returnCanvasAndContext(u),d}returnTexture(t){let e=t.source,r=e.resource;if(this._retainCanvasContext&&r?.getContext){let s=r.getContext("2d");s&&wr.returnCanvasAndContext({canvas:r,context:s})}e.resource=null,e.uploadMethodId="unknown",e.alphaMode="no-premultiply-alpha",Mt.returnTexture(t,!0)}renderTextToCanvas(){O("8.10.0","CanvasTextSystem.renderTextToCanvas: no longer supported, use CanvasTextSystem.getTexture instead")}getManagedTexture(t){t._resolution=t._autoResolution?this._renderer.resolution:t.resolution;let e=t.styleKey;if(this._activeTextures[e])return this._increaseReferenceCount(e),this._activeTextures[e].texture;let r=this.getTexture({text:t.text,style:t.style,resolution:t._resolution,textureStyle:t.textureStyle,autoGenerateMipmaps:t.autoGenerateMipmaps});return this._activeTextures[e]={texture:r,usageCount:1},r}decreaseReferenceCount(t){let e=this._activeTextures[t];e&&(e.usageCount--,e.usageCount===0&&(this.returnTexture(e.texture),this._activeTextures[t]=null))}getReferenceCount(t){return this._activeTextures[t]?.usageCount??0}_increaseReferenceCount(t){this._activeTextures[t].usageCount++}_applyFilters(t,e){let r=this._renderer.renderTarget.renderTarget,s=this._renderer.filter.generateFilteredTexture({texture:t,filters:e});return this._renderer.renderTarget.bind({target:r,clear:!1}),s}destroy(){this._renderer=null;for(let t in this._activeTextures)this._activeTextures[t]&&this.returnTexture(this._activeTextures[t].texture);this._activeTextures=null}};var co=class extends ss{constructor(t){super(t,!0)}};co.extension={type:[y.CanvasSystem],name:"canvasText"};P();var ho=class extends ss{constructor(t){super(t,!1)}};ho.extension={type:[y.WebGLSystem,y.WebGPUSystem],name:"canvasText"};z.add(co);z.add(ho);z.add(lo);var uo=class extends Sl{constructor(...t){let e=Sv(t,"Text");super(e,Xe),this.renderPipeId="text",e.textureStyle&&(this.textureStyle=e.textureStyle instanceof ce?e.textureStyle:new ce(e.textureStyle)),this.autoGenerateMipmaps=e.autoGenerateMipmaps??st.defaultOptions.autoGenerateMipmaps}updateBounds(){let t=this._bounds,e=this._anchor,r=0,s=0;if(this._style.trim){let{frame:n,canvasAndContext:o}=wr.getCanvasAndContext({text:this.text,style:this._style,resolution:1});wr.returnCanvasAndContext(o),r=n.width,s=n.height}else{let n=je.measureText(this._text,this._style);r=n.width,s=n.height}t.minX=-e._x*r,t.maxX=t.minX+r,t.minY=-e._y*s,t.maxY=t.minY+s}};xr();ir();zr();pr();Lh();function Pd(i,t=null){let e=i*6;if(e>65535?t||(t=new Uint32Array(e)):t||(t=new Uint16Array(e)),t.length!==e)throw new Error(`Out buffer length is incorrect, got ${t.length} and expected ${e}`);for(let r=0,s=0;r<e;r+=6,s+=4)t[r+0]=s+0,t[r+1]=s+1,t[r+2]=s+2,t[r+3]=s+0,t[r+4]=s+2,t[r+5]=s+3;return t}pr();function Hv(i){return{dynamicUpdate:zv(i,!0),staticUpdate:zv(i,!1)}}function zv(i,t){let e=[];e.push(`
908
+ `),r++):t.push(s);continue}e.push(s),oC(s)&&n&&!ae(n)&&!is(n)&&(t.push(e.join("")),e.length=0)}return e.length>0&&t.push(e.join("")),t}function Pl(i,t,e,r){let s=e(i),n=[];for(let o=0;o<s.length;o++){let a=s[o],l=a,c=1;for(;s[o+c];){let h=s[o+c];if(!r(l,h,i,o,t))a+=h,l=h,c++;else break}o+=c-1,n.push(a)}return n}var Jw,tC,eC,rC,iC,ij,sC,nC,kv,Bv,Ml=p(()=>{"use strict";Jw=[10,13],tC=new Set(Jw),eC=[9,32,8192,8193,8194,8195,8196,8197,8198,8200,8201,8202,8287,12288],rC=new Set(eC),iC=[9,32],ij=new Set(iC),sC=[45,8208,8211,8212,173],nC=new Set(sC),kv=/(\r\n|\r|\n)/,Bv=/(?:\r\n|\r|\n)/});function Iv(i,t,e,r,s,n,o,a,l){let c=Rv(i,t);if(Cl(t.whiteSpace))for(let H=0;H<c.length;H++){let K=c[H];c[H]={text:K.text.replace(aC," "),style:K.style}}let u=[],d=[];for(let H of c){let K=H.text.split(kv);for(let I=0;I<K.length;I++){let U=K[I];U===`\r
909
+ `||U==="\r"||U===`
910
+ `?(u.push(d),d=[]):U.length>0&&d.push({text:U,style:H.style})}}(d.length>0||u.length===0)&&u.push(d);let f=e?lC(u,t,r,n,a,l):u,m=[],g=[],_=[],x=[],b=[],v=0,S=t._fontString,T=o(S);T.fontSize===0&&(T.fontSize=t.fontSize,T.ascent=t.fontSize);let w="",E=!!t.dropShadow,B=t._stroke?.width||0;for(let H of f){let K=0,I=T.ascent,U=T.descent,j="";for(let Y of H){let pt=Y.style._fontString,wt=o(pt);pt!==w&&(r.font=pt,w=pt);let lt=s(Y.text,Y.style.letterSpacing,r);K+=lt,I=Math.max(I,wt.ascent),U=Math.max(U,wt.descent),j+=Y.text;let ft=Y.style._stroke?.width||0;ft>B&&(B=ft),!E&&Y.style.dropShadow&&(E=!0)}H.length===0&&(I=T.ascent,U=T.descent),m.push(K),g.push(I),_.push(U),b.push(j);let G=t.lineHeight||I+U;x.push(G+t.leading),v=Math.max(v,K)}let R=B,M=v+R+(t.dropShadow?t.dropShadow.distance:0),C=0;for(let H=0;H<x.length;H++)C+=x[H];C=Math.max(C,x[0]+R);let A=C+(t.dropShadow?t.dropShadow.distance:0),D=t.lineHeight||T.fontSize;return{width:M,height:A,lines:b,lineWidths:m,lineHeight:D+t.leading,maxLineWidth:v,fontProperties:T,runsByLine:f,lineAscents:g,lineDescents:_,lineHeights:x,hasDropShadow:E}}function lC(i,t,e,r,s,n){let{letterSpacing:o,whiteSpace:a,wordWrapWidth:l,breakWords:c}=t,h=wl(a),u=l+o,d={},f="",m=(_,x)=>{let b=`${_}|${x.styleKey}`,v=d[b];if(v===void 0){let S=x._fontString;S!==f&&(e.font=S,f=S),v=r(_,x.letterSpacing,e)+x.letterSpacing,d[b]=v}return v},g=[];for(let _ of i){let x=cC(_),b=g.length,v=C=>{let A=0,D=C;do{let{token:H,style:K}=x[D];A+=m(H,K),D++}while(D<x.length&&x[D].continuesFromPrevious);return A},S=C=>{let A=[],D=C;do A.push({token:x[D].token,style:x[D].style}),D++;while(D<x.length&&x[D].continuesFromPrevious);return A},T=[],w=0,E=!h,B=null,R=()=>{B&&B.text.length>0&&T.push(B),B=null},M=()=>{if(R(),T.length>0){let C=T[T.length-1];C.text=Fe(C.text),C.text.length===0&&T.pop()}g.push(T),T=[],w=0,E=!1};for(let C=0;C<x.length;C++){let{token:A,style:D,continuesFromPrevious:H}=x[C],K=m(A,D);if(h){let j=ae(A),G=B?.text[B.text.length-1]??T[T.length-1]?.text.slice(-1)??"",Y=G?ae(G):!1;if(j&&Y)continue}let I=!H,U=I?v(C):K;if(U>u&&I)if(w>0&&M(),c){let j=S(C);for(let G=0;G<j.length;G++){let Y=j[G].token,pt=j[G].style,wt=Pl(Y,c,n,s);for(let lt of wt){let ft=m(lt,pt);ft+w>u&&M(),!B||B.style!==pt?(R(),B={text:lt,style:pt}):B.text+=lt,w+=ft}}C+=j.length-1}else{let j=S(C);R(),g.push(j.map(G=>({text:G.token,style:G.style}))),E=!1,C+=j.length-1}else if(U+w>u&&I){if(ae(A)){E=!1;continue}M(),B={text:A,style:D},w=K}else if(H&&!c)!B||B.style!==D?(R(),B={text:A,style:D}):B.text+=A,w+=K;else{let j=ae(A);if(w===0&&j&&!E)continue;!B||B.style!==D?(R(),B={text:A,style:D}):B.text+=A,w+=K}}if(R(),T.length>0){let C=T[T.length-1];C.text=Fe(C.text),C.text.length===0&&T.pop()}(T.length>0||g.length===b)&&g.push(T)}return g}function cC(i){let t=[],e=!1;for(let r of i){let s=El(r.text),n=!0;for(let o of s){let a=ae(o)||is(o),l=n&&e&&!a;t.push({token:o,style:r.style,continuesFromPrevious:l}),e=!a,n=!1}}return t}var aC,Gv=p(()=>{Sd();Ml();aC=/\r\n|\r|\n/g});function Fv(i,t,e,r,s){let n=e[i];return typeof n!="number"&&(n=s(i,t,r)+t,e[i]=n),n}function Uv(i,t,e,r,s,n,o){let a=e.getContext("2d",hC);a.font=t._fontString;let l=0,c="",h=[],u=Object.create(null),{letterSpacing:d,whiteSpace:f}=t,m=wl(f),g=Cl(f),_=!m,x=t.wordWrapWidth+d,b=El(i);for(let S=0;S<b.length;S++){let T=b[S];if(is(T)){if(!g){h.push(Fe(c)),_=!m,c="",l=0;continue}T=" "}if(m){let E=ae(T),B=ae(c[c.length-1]);if(E&&B)continue}let w=Fv(T,d,u,a,r);if(w>x)if(c!==""&&(h.push(Fe(c)),c="",l=0),s(T,t.breakWords)){let E=Pl(T,t.breakWords,o,n);for(let B of E){let R=Fv(B,d,u,a,r);R+l>x&&(h.push(Fe(c)),_=!1,c="",l=0),c+=B,l+=R}}else c.length>0&&(h.push(Fe(c)),c="",l=0),h.push(Fe(T)),_=!1,c="",l=0;else w+l>x&&(_=!1,h.push(Fe(c)),c="",l=0),(c.length>0||!ae(T)||_)&&(c+=T,l+=w)}let v=Fe(c);return v.length>0&&h.push(v),h.join(`
911
+ `)}var hC,Dv=p(()=>{Ml();hC={willReadFrequently:!0}});var Lv,or,je,Td=p(()=>{Av();xt();Gv();Sd();Ml();Dv();Lv={willReadFrequently:!0},or=class X{static get experimentalLetterSpacingSupported(){let t=X._experimentalLetterSpacingSupported;if(t===void 0){let e=W.get().getCanvasRenderingContext2D().prototype;t=X._experimentalLetterSpacingSupported="letterSpacing"in e||"textLetterSpacing"in e}return t}constructor(t,e,r,s,n,o,a,l,c,h){this.text=t,this.style=e,this.width=r,this.height=s,this.lines=n,this.lineWidths=o,this.lineHeight=a,this.maxLineWidth=l,this.fontProperties=c,h&&(this.runsByLine=h.runsByLine,this.lineAscents=h.lineAscents,this.lineDescents=h.lineDescents,this.lineHeights=h.lineHeights,this.hasDropShadow=h.hasDropShadow)}static measureText(t=" ",e,r=X._canvas,s=e.wordWrap){let n=`${t}-${e.styleKey}-wordWrap-${s}`;if(X._measurementCache.has(n))return X._measurementCache.get(n);if(bd(e)&&vd(t)){let S=Iv(t,e,s,X._context,X._measureText,X._measureTextAdvance,X.measureFont,X.canBreakChars,X.wordWrapSplit),T=new X(t,e,S.width,S.height,S.lines,S.lineWidths,S.lineHeight,S.maxLineWidth,S.fontProperties,{runsByLine:S.runsByLine,lineAscents:S.lineAscents,lineDescents:S.lineDescents,lineHeights:S.lineHeights,hasDropShadow:S.hasDropShadow});return X._measurementCache.set(n,T),T}let a=e._fontString,l=X.measureFont(a);l.fontSize===0&&(l.fontSize=e.fontSize,l.ascent=e.fontSize,l.descent=0);let c=X._context;c.font=a;let u=(s?X._wordWrap(t,e,r):t).split(Bv),d=new Array(u.length),f=0;for(let S=0;S<u.length;S++){let T=X._measureText(u[S],e.letterSpacing,c);d[S]=T,f=Math.max(f,T)}let m=e._stroke?.width??0,g=e.lineHeight||l.fontSize,_=X._adjustWidthForStyle(f,e),x=Math.max(g,l.fontSize+m)+(u.length-1)*(g+e.leading),b=X._adjustHeightForStyle(x,e),v=new X(t,e,_,b,u,d,g+e.leading,f,l);return X._measurementCache.set(n,v),v}static _adjustWidthForStyle(t,e){let r=e._stroke?.width||0,s=t+r;return e.dropShadow&&(s+=e.dropShadow.distance),s}static _adjustHeightForStyle(t,e){let r=t;return e.dropShadow&&(r+=e.dropShadow.distance),r}static _measureText(t,e,r){let{metricWidth:s,metrics:n,letterSpacingVal:o}=X._measureTextCore(t,e,r),a=-(n.actualBoundingBoxLeft??0),c=(n.actualBoundingBoxRight??0)-a;return n.width>0&&(c+=o),Math.max(s,c)}static _measureTextAdvance(t,e,r){return X._measureTextCore(t,e,r).metricWidth}static _measureTextCore(t,e,r){let s=!1;X.experimentalLetterSpacingSupported&&(X.experimentalLetterSpacing?(r.letterSpacing=`${e}px`,r.textLetterSpacing=`${e}px`,s=!0):(r.letterSpacing="0px",r.textLetterSpacing="0px"));let n=r.measureText(t),o=n.width,a=0;return o>0&&(s?a=-e:a=(X.graphemeSegmenter(t).length-1)*e,o+=a),{metricWidth:o,metrics:n,letterSpacingVal:a}}static _wordWrap(t,e,r=X._canvas){return Uv(t,e,r,X._measureTextAdvance,X.canBreakWords,X.canBreakChars,X.wordWrapSplit)}static isBreakingSpace(t,e){return ae(t,e)}static canBreakWords(t,e){return e}static canBreakChars(t,e,r,s,n){return!0}static wordWrapSplit(t){return X.graphemeSegmenter(t)}static measureFont(t){if(X._fonts[t])return X._fonts[t];let e=X._context;e.font=t;let r=e.measureText(X.METRICS_STRING+X.BASELINE_SYMBOL),s=r.actualBoundingBoxAscent??0,n=r.actualBoundingBoxDescent??0,o={ascent:s,descent:n,fontSize:s+n};return X._fonts[t]=o,o}static clearMetrics(t=""){t?delete X._fonts[t]:X._fonts={}}static get _canvas(){if(!X.__canvas){let t;try{let e=new OffscreenCanvas(0,0);if(e.getContext("2d",Lv)?.measureText)return X.__canvas=e,e;t=W.get().createCanvas()}catch{t=W.get().createCanvas()}t.width=t.height=10,X.__canvas=t}return X.__canvas}static get _context(){return X.__context||(X.__context=X._canvas.getContext("2d",Lv)),X.__context}};or.METRICS_STRING="|\xC9q\xC5";or.BASELINE_SYMBOL="M";or.BASELINE_MULTIPLIER=1.4;or.HEIGHT_MULTIPLIER=2;or.graphemeSegmenter=(()=>{if(typeof Intl?.Segmenter=="function"){let i=new Intl.Segmenter;return t=>{let e=i.segment(t),r=[],s=0;for(let n of e)r[s++]=n.segment;return r}}return i=>[...i]})();or.experimentalLetterSpacing=!1;or._fonts={};or._measurementCache=Mv(1e3);je=or});function ao(i){let t=typeof i.fontSize=="number"?`${i.fontSize}px`:i.fontSize,e=i.fontFamily;Array.isArray(i.fontFamily)||(e=i.fontFamily.split(","));for(let r=e.length-1;r>=0;r--){let s=e[r].trim();!/([\"\'])[^\'\"]+\1/.test(s)&&!uC.includes(s)&&(s=`"${s}"`),e[r]=s}return`${i.fontStyle} ${i.fontVariant} ${i.fontWeight} ${t} ${e.join(",")}`}var uC,wd=p(()=>{"use strict";uC=["serif","sans-serif","monospace","cursive","fantasy","system-ui"]});function lo(i,t,e,r=0,s=0,n=0){if(i.texture===F.WHITE&&!i.fill)return Q.shared.setValue(i.color).setAlpha(i.alpha??1).toHexa();if(i.fill){if(i.fill instanceof Ge){let o=i.fill,a=t.createPattern(o.texture.source.resource,"repeat");return Z.applyPatternTransform(a,o.transform,!1),a}else if(i.fill instanceof ee){let o=i.fill,a=o.type==="linear",l=o.textureSpace==="local",c=1,h=1;l&&e&&(c=e.width+r,h=e.height+r);let u,d=!1;if(a){let{start:f,end:m}=o;u=t.createLinearGradient(f.x*c+s,f.y*h+n,m.x*c+s,m.y*h+n),d=Math.abs(m.x-f.x)<Math.abs((m.y-f.y)*.1)}else{let{center:f,innerRadius:m,outerCenter:g,outerRadius:_}=o;u=t.createRadialGradient(f.x*c+s,f.y*h+n,m*c,g.x*c+s,g.y*h+n,_*c)}if(d&&l&&e){let f=e.lineHeight/h;for(let m=0;m<e.lines.length;m++){let g=(m*e.lineHeight+r/2)/h;o.colorStops.forEach(_=>{let x=g+_.offset*f;x=Math.max(0,Math.min(1,x)),u.addColorStop(Math.floor(x*Ov)/Ov,Q.shared.setValue(_.color).toHex())})}}else o.colorStops.forEach(f=>{u.addColorStop(f.offset,Q.shared.setValue(f.color).toHex())});return u}}else{let o=t.createPattern(i.texture.source.resource,"repeat"),a=i.matrix.copyTo(k.shared);return a.scale(i.texture.source.pixelWidth,i.texture.source.pixelHeight),o.setTransform(a),o}return L("FillStyle not recognised",i),"red"}var Ov,Nv=p(()=>{Qt();ot();Pi();gt();ht();ii();jn();Ov=1e5});function dC(i){let t=i;if(typeof t.dropShadow=="boolean"&&t.dropShadow){let e=Xe.defaultDropShadow;i.dropShadow={alpha:t.dropShadowAlpha??e.alpha,angle:t.dropShadowAngle??e.angle,blur:t.dropShadowBlur??e.blur,color:t.dropShadowColor??e.color,distance:t.dropShadowDistance??e.distance}}if(t.strokeThickness!==void 0){O(rt,"strokeThickness is now a part of stroke");let e=t.stroke,r={};if(Q.isColorLike(e))r.color=e;else if(e instanceof ee||e instanceof Ge)r.fill=e;else if(Object.hasOwnProperty.call(e,"color")||Object.hasOwnProperty.call(e,"fill"))r=e;else throw new Error("Invalid stroke value.");i.stroke={...r,width:t.strokeThickness}}if(Array.isArray(t.fillGradientStops)){if(O(rt,"gradient fill is now a fill pattern: `new FillGradient(...)`"),!Array.isArray(t.fill)||t.fill.length===0)throw new Error("Invalid fill value. Expected an array of colors for gradient fill.");t.fill.length!==t.fillGradientStops.length&&L("The number of fill colors must match the number of fill gradient stops.");let e=new ee({start:{x:0,y:0},end:{x:0,y:1},textureSpace:"local"}),r=t.fillGradientStops.slice(),s=t.fill.map(n=>Q.shared.setValue(n).toNumber());r.forEach((n,o)=>{e.addColorStop(n,s[o])}),i.fill={fill:e}}}var Ed,Xe,Al=p(()=>{Ht();Qt();Ft();yt();ht();ii();jn();hd();ld();wd();Ed=class li extends ut{constructor(t={}){super(),this.uid=$("textStyle"),this._tick=0,this._cachedFontString=null,dC(t),t instanceof li&&(t=t._toObject());let s={...li.defaultTextStyle,...t};for(let n in s){let o=n;this[o]=s[n]}this._tagStyles=t.tagStyles??void 0,this.update(),this._tick=0}get align(){return this._align}set align(t){this._align!==t&&(this._align=t,this.update())}get breakWords(){return this._breakWords}set breakWords(t){this._breakWords!==t&&(this._breakWords=t,this.update())}get dropShadow(){return this._dropShadow}set dropShadow(t){this._dropShadow!==t&&(t!==null&&typeof t=="object"?this._dropShadow=this._createProxy({...li.defaultDropShadow,...t}):this._dropShadow=t?this._createProxy({...li.defaultDropShadow}):null,this.update())}get fontFamily(){return this._fontFamily}set fontFamily(t){this._fontFamily!==t&&(this._fontFamily=t,this.update())}get fontSize(){return this._fontSize}set fontSize(t){this._fontSize!==t&&(typeof t=="string"?this._fontSize=parseInt(t,10):this._fontSize=t,this.update())}get fontStyle(){return this._fontStyle}set fontStyle(t){this._fontStyle!==t&&(this._fontStyle=t.toLowerCase(),this.update())}get fontVariant(){return this._fontVariant}set fontVariant(t){this._fontVariant!==t&&(this._fontVariant=t,this.update())}get fontWeight(){return this._fontWeight}set fontWeight(t){this._fontWeight!==t&&(this._fontWeight=t,this.update())}get leading(){return this._leading}set leading(t){this._leading!==t&&(this._leading=t,this.update())}get letterSpacing(){return this._letterSpacing}set letterSpacing(t){this._letterSpacing!==t&&(this._letterSpacing=t,this.update())}get lineHeight(){return this._lineHeight}set lineHeight(t){this._lineHeight!==t&&(this._lineHeight=t,this.update())}get padding(){return this._padding}set padding(t){this._padding!==t&&(this._padding=t,this.update())}get filters(){return this._filters}set filters(t){this._filters!==t&&(this._filters=Object.freeze(t),this.update())}get trim(){return this._trim}set trim(t){this._trim!==t&&(this._trim=t,this.update())}get textBaseline(){return this._textBaseline}set textBaseline(t){this._textBaseline!==t&&(this._textBaseline=t,this.update())}get whiteSpace(){return this._whiteSpace}set whiteSpace(t){this._whiteSpace!==t&&(this._whiteSpace=t,this.update())}get wordWrap(){return this._wordWrap}set wordWrap(t){this._wordWrap!==t&&(this._wordWrap=t,this.update())}get wordWrapWidth(){return this._wordWrapWidth}set wordWrapWidth(t){this._wordWrapWidth!==t&&(this._wordWrapWidth=t,this.update())}get fill(){return this._originalFill}set fill(t){t!==this._originalFill&&(this._originalFill=t,this._isFillStyle(t)&&(this._originalFill=this._createProxy({...ge.defaultFillStyle,...t},()=>{this._fill=sr({...this._originalFill},ge.defaultFillStyle)})),this._fill=sr(t===0?"black":t,ge.defaultFillStyle),this.update())}get stroke(){return this._originalStroke}set stroke(t){t!==this._originalStroke&&(this._originalStroke=t,this._isFillStyle(t)&&(this._originalStroke=this._createProxy({...ge.defaultStrokeStyle,...t},()=>{this._stroke=rs({...this._originalStroke},ge.defaultStrokeStyle)})),this._stroke=rs(t,ge.defaultStrokeStyle),this.update())}get tagStyles(){return this._tagStyles}set tagStyles(t){this._tagStyles!==t&&(this._tagStyles=t??void 0,this.update())}update(){this._tick++,this._cachedFontString=null,this.emit("update",this)}reset(){let t=li.defaultTextStyle;for(let e in t)this[e]=t[e]}assign(t){for(let e in t){let r=e;this[r]=t[e]}return this}get styleKey(){return`${this.uid}-${this._tick}`}get _fontString(){return this._cachedFontString===null&&(this._cachedFontString=ao(this)),this._cachedFontString}_toObject(){return{align:this.align,breakWords:this.breakWords,dropShadow:this._dropShadow?{...this._dropShadow}:null,fill:this._fill?{...this._fill}:void 0,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?{...this._stroke}:void 0,textBaseline:this.textBaseline,trim:this.trim,whiteSpace:this.whiteSpace,wordWrap:this.wordWrap,wordWrapWidth:this.wordWrapWidth,filters:this._filters?[...this._filters]:void 0,tagStyles:this._tagStyles?{...this._tagStyles}:void 0}}clone(){return new li(this._toObject())}_getFinalPadding(){let t=0;if(this._filters)for(let e=0;e<this._filters.length;e++)t+=this._filters[e].padding;return Math.max(this._padding,t)}destroy(t=!1){if(this.removeAllListeners(),typeof t=="boolean"?t:t?.texture){let r=typeof t=="boolean"?t:t?.textureSource;this._fill?.texture&&this._fill.texture.destroy(r),this._originalFill?.texture&&this._originalFill.texture.destroy(r),this._stroke?.texture&&this._stroke.texture.destroy(r),this._originalStroke?.texture&&this._originalStroke.texture.destroy(r)}this._fill=null,this._stroke=null,this.dropShadow=null,this._originalStroke=null,this._originalFill=null}_createProxy(t,e){return new Proxy(t,{set:(r,s,n)=>(r[s]===n||(r[s]=n,e?.(s,n),this.update()),!0)})}_isFillStyle(t){return(t??null)!==null&&!(Q.isColorLike(t)||t instanceof ee||t instanceof Ge)}};Ed.defaultDropShadow={alpha:1,angle:Math.PI/6,blur:0,color:"black",distance:5};Ed.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};Xe=Ed});P();var mg={extension:{type:y.Environment,name:"browser",priority:-1},test:()=>!0,load:async()=>{await Promise.resolve().then(()=>(pg(),OS))}};P();var xg={extension:{type:y.Environment,name:"webworker",priority:0},test:()=>typeof self<"u"&&self.WorkerGlobalScope!==void 0,load:async()=>{await Promise.resolve().then(()=>(gg(),NS))}};P();Yo();No();P();xt();Vr();var ma;function Ig(i){return ma!==void 0||(ma=(()=>{let t={stencil:!0,failIfMajorPerformanceCaveat:i??Te.defaultOptions.failIfMajorPerformanceCaveat};try{if(!W.get().getWebGLRenderingContext())return!1;let r=W.get().createCanvas().getContext("webgl",t),s=!!r?.getContextAttributes()?.stencil;if(r){let n=r.getExtension("WEBGL_lose_context");n&&n.loseContext()}return r=null,s}catch{return!1}})()),ma}xt();var ga;async function Gg(i={}){return ga!==void 0||(ga=await(async()=>{let t=W.get().getNavigator().gpu;if(!t)return!1;try{return await(await t.requestAdapter(i)).requestDevice(),!0}catch{return!1}})()),ga}Vr();var yv=["webgl","webgpu","canvas"];async function bv(i){let t=[];i.preference?Array.isArray(i.preference)?t=i.preference.slice():(t.push(i.preference),yv.forEach(n=>{n!==i.preference&&t.push(n)})):t=yv.slice();let e,r={};for(let n=0;n<t.length;n++){let o=t[n];if(o==="webgpu"&&await Gg()){let{WebGPURenderer:a}=await Promise.resolve().then(()=>(uy(),hy));e=a,r={...i,...i.webgpu};break}else if(o==="webgl"&&Ig(i.failIfMajorPerformanceCaveat??Te.defaultOptions.failIfMajorPerformanceCaveat)){let{WebGLRenderer:a}=await Promise.resolve().then(()=>(Vb(),Wb));e=a,r={...i,...i.webgl};break}else if(o==="canvas"){let{CanvasRenderer:a}=await Promise.resolve().then(()=>(_v(),xv));e=a,r={...i,...i.canvasOptions};break}}if(delete r.webgpu,delete r.webgl,delete r.canvasOptions,!e)throw new Error("No available renderer for the current environment");let s=new e;return await s.init(r),s}Pe();Dh();yt();P();P();var ro=class{static init(t){Object.defineProperty(this,"resizeTo",{configurable:!0,set(e){globalThis.removeEventListener("resize",this.queueResize),this._resizeTo=e,e&&(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 e,r;if(this._resizeTo===globalThis.window)e=globalThis.innerWidth,r=globalThis.innerHeight;else{let{clientWidth:s,clientHeight:n}=this._resizeTo;e=s,r=n}this.renderer.resize(e,r),this.render()},this._resizeId=null,this._resizeTo=null,this.resizeTo=t.resizeTo||null}static destroy(){globalThis.removeEventListener("resize",this.queueResize),this._cancelResize(),this._cancelResize=null,this.queueResize=null,this.resizeTo=null,this.resize=null}};ro.extension=y.Application;P();Ts();Ti();var io=class{static init(t){t=Object.assign({autoStart:!0,sharedTicker:!1},t),Object.defineProperty(this,"ticker",{configurable:!0,set(e){this._ticker&&this._ticker.remove(this.render,this),this._ticker=e,e&&e.add(this.render,this,De.LOW)},get(){return this._ticker}}),this.stop=()=>{this._ticker.stop()},this.start=()=>{this._ticker.start()},this._ticker=null,this.ticker=t.sharedTicker?qt.shared:new qt,t.autoStart&&this.start()}static destroy(){if(this._ticker){let t=this._ticker;this.ticker=null,t.destroy()}}};io.extension=y.Application;z.add(ro);z.add(io);var vv=class _d{constructor(...t){this.stage=new mt,t[0]!==void 0&&O(rt,"Application constructor options are deprecated, please use Application.init() instead.")}async init(t){t={...t},this.stage||(this.stage=new mt),this.renderer=await bv(t),_d._plugins.forEach(e=>{e.init.call(this,t)})}render(){this.renderer.render({container:this.stage})}get canvas(){return this.renderer.canvas}get view(){return O(rt,"Application.view is deprecated, please use Application.canvas instead."),this.renderer.canvas}get screen(){return this.renderer.screen}get domContainerRoot(){return this.renderer.renderPipes.dom?._domElement}destroy(t=!1,e=!1){let r=_d._plugins.slice(0);r.reverse(),r.forEach(s=>{s.destroy.call(this)}),this.stage.destroy(e),this.stage=null,this.renderer.destroy(t),this.renderer=null}};vv._plugins=[];var bl=vv;z.handleByList(y.Application,bl._plugins);z.add(en);pm();zr();Be();gt();yt();Es();xr();ir();zr();yt();var Sv=class Tv extends ue{constructor(...t){let e=t[0]??{};e instanceof Float32Array&&(O(rt,"use new MeshGeometry({ positions, uvs, indices }) instead"),e={positions:e,uvs:t[1],indices:t[2]}),e={...Tv.defaultOptions,...e};let r=e.positions||new Float32Array([0,0,1,0,1,1,0,1]),s=e.uvs;s||(e.positions?s=new Float32Array(r.length):s=new Float32Array([0,0,1,0,1,1,0,1]));let n=e.indices||new Uint32Array([0,1,2,0,2,3]),o=e.shrinkBuffersToFit,a=new At({data:r,label:"attribute-mesh-positions",shrinkToFit:o,usage:tt.VERTEX|tt.COPY_DST}),l=new At({data:s,label:"attribute-mesh-uvs",shrinkToFit:o,usage:tt.VERTEX|tt.COPY_DST}),c=new At({data:n,label:"index-mesh-buffer",shrinkToFit:o,usage:tt.INDEX|tt.COPY_DST});super({attributes:{aPosition:{buffer:a,format:"float32x2",stride:8,offset:0},aUV:{buffer:l,format:"float32x2",stride:8,offset:0}},indexBuffer:c,topology:e.topology}),this.batchMode="auto"}get positions(){return this.attributes.aPosition.buffer.data}set positions(t){this.attributes.aPosition.buffer.data=t}get uvs(){return this.attributes.aUV.buffer.data}set uvs(t){this.attributes.aUV.buffer.data=t}get indices(){return this.indexBuffer.data}set indices(t){this.indexBuffer.data=t}};Sv.defaultOptions={topology:"triangle-list",shrinkBuffersToFit:!1};var so=Sv;P();P();ot();mr();me();Nh();Ga();var vl=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(t){this._topology=t}reset(){this.renderable=null,this.texture=null,this._batcher=null,this._batch=null,this.geometry=null,this._uvUpdateId=-1,this._textureMatrixUpdateId=-1}setTexture(t){this.texture!==t&&(this.texture=t,this._textureMatrixUpdateId=-1)}get uvs(){let e=this.geometry.getBuffer("aUV"),r=e.data,s=r,n=this.texture.textureMatrix;return n.isSimple||(s=this._transformedUvs,(this._textureMatrixUpdateId!==n._updateID||this._uvUpdateId!==e._updateID)&&((!s||s.length<r.length)&&(s=this._transformedUvs=new Float32Array(r.length)),this._textureMatrixUpdateId=n._updateID,this._uvUpdateId=e._updateID,n.multiplyUvs(r,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 Sl=class{destroy(){}},no=class{constructor(t,e){this.localUniforms=new Ct({uTransformMatrix:{value:new k,type:"mat3x3<f32>"},uColor:{value:new Float32Array([1,1,1,1]),type:"vec4<f32>"},uRound:{value:0,type:"f32"}}),this.localUniformsBindGroup=new Vt({0:this.localUniforms}),this.renderer=t,this._adaptor=e,this._adaptor.init()}validateRenderable(t){let e=this._getMeshData(t),r=e.batched,s=t.batched;if(e.batched=s,r!==s)return!0;if(s){let n=t._geometry;if(n.indices.length!==e.indexSize||n.positions.length!==e.vertexSize)return e.indexSize=n.indices.length,e.vertexSize=n.positions.length,!0;let o=this._getBatchableMesh(t);return o.texture.uid!==t._texture.uid&&(o._textureMatrixUpdateId=-1),!o._batcher.checkAndUpdateTexture(o,t._texture)}return!1}addRenderable(t,e){let r=this.renderer.renderPipes.batch,s=this._getMeshData(t);if(t.didViewUpdate&&(s.indexSize=t._geometry.indices?.length,s.vertexSize=t._geometry.positions?.length),s.batched){let n=this._getBatchableMesh(t);n.setTexture(t._texture),n.geometry=t._geometry,r.addToBatch(n,e)}else r.break(e),e.add(t)}updateRenderable(t){if(t.batched){let e=this._getBatchableMesh(t);e.setTexture(t._texture),e.geometry=t._geometry,e._batcher.updateElement(e)}}execute(t){if(!t.isRenderable)return;t.state.blend&&(t.state.blendMode=nn(t.groupBlendMode,t.texture._source));let e=this.localUniforms;e.uniforms.uTransformMatrix=t.groupTransform,e.uniforms.uRound=this.renderer._roundPixels|t._roundPixels,e.update(),Wi(t.groupColorAlpha,e.uniforms.uColor,0),this._adaptor.execute(this,t)}_getMeshData(t){var e,r;return(e=t._gpuData)[r=this.renderer.uid]||(e[r]=new Sl),t._gpuData[this.renderer.uid].meshData||this._initMeshData(t)}_initMeshData(t){return t._gpuData[this.renderer.uid].meshData={batched:t.batched,indexSize:0,vertexSize:0},t._gpuData[this.renderer.uid].meshData}_getBatchableMesh(t){var e,r;return(e=t._gpuData)[r=this.renderer.uid]||(e[r]=new Sl),t._gpuData[this.renderer.uid].batchableMesh||this._initBatchableMesh(t)}_initBatchableMesh(t){let e=new vl;return e.renderable=t,e.setTexture(t._texture),e.transform=t.groupTransform,e.roundPixels=this.renderer._roundPixels|t._roundPixels,t._gpuData[this.renderer.uid].batchableMesh=e,e}destroy(){this.localUniforms=null,this.localUniformsBindGroup=null,this._adaptor.destroy(),this._adaptor=null,this.renderer=null}};no.extension={type:[y.WebGLPipes,y.WebGPUPipes],name:"mesh"};z.add(no);var oo=class extends Le{constructor(...t){let e=t[0];e instanceof ue&&(O(rt,"Mesh: use new Mesh({ geometry, shader }) instead"),e={geometry:e,shader:t[1]},t[3]&&(O(rt,"Mesh: drawMode argument has been removed, use geometry.topology instead"),e.geometry.topology=t[3]));let{geometry:r,shader:s,texture:n,roundPixels:o,state:a,...l}=e;super({label:"Mesh",...l}),this.renderPipeId="mesh",this._shader=null,this.allowChildren=!1,this.shader=s??null,this.texture=n??s?.texture??F.WHITE,this.state=a??Ot.for2d(),this._geometry=r,this._geometry.on("update",this.onViewUpdate,this),this.roundPixels=o??!1}get material(){return O(rt,"mesh.material property has been removed, use mesh.shader instead"),this._shader}set shader(t){this._shader!==t&&(this._shader=t,this.onViewUpdate())}get shader(){return this._shader}set geometry(t){this._geometry!==t&&(this._geometry?.off("update",this.onViewUpdate,this),t.on("update",this.onViewUpdate,this),this._geometry=t,this.onViewUpdate())}get geometry(){return this._geometry}set texture(t){t||(t=F.EMPTY);let e=this._texture;e!==t&&(e&&e.dynamic&&e.off("update",this.onViewUpdate,this),t.dynamic&&t.on("update",this.onViewUpdate,this),this.shader&&(this.shader.texture=t),this._texture=t,this.onViewUpdate())}get texture(){return this._texture}get batched(){return this._shader||(this.state.data&12)!==0?!1:this._geometry instanceof so?this._geometry.batchMode==="auto"?this._geometry.positions.length/2<=100:this._geometry.batchMode==="batch":!1}get bounds(){return this._geometry.bounds}updateBounds(){this._bounds=this._geometry.bounds}containsPoint(t){let{x:e,y:r}=t;if(!this.bounds.containsPoint(e,r))return!1;let s=this.geometry.getBuffer("aPosition").data,n=this.geometry.topology==="triangle-strip"?3:1;if(this.geometry.getIndex()){let o=this.geometry.getIndex().data,a=o.length;for(let l=0;l+2<a;l+=n){let c=o[l]*2,h=o[l+1]*2,u=o[l+2]*2;if(Hc(e,r,s[c],s[c+1],s[h],s[h+1],s[u],s[u+1]))return!0}}else{let o=s.length/2;for(let a=0;a+2<o;a+=n){let l=a*2,c=(a+1)*2,h=(a+2)*2;if(Hc(e,r,s[l],s[l+1],s[c],s[c+1],s[h],s[h+1]))return!0}}return!1}destroy(t){if(super.destroy(t),typeof t=="boolean"?t:t?.texture){let r=typeof t=="boolean"?t:t?.textureSource;this._texture.destroy(r)}this._geometry?.off("update",this.onViewUpdate,this),this._texture=null,this._geometry=null,this._shader=null}};$t();Ar();vo();yt();Es();var Tl=class extends Le{constructor(t,e){let{text:r,resolution:s,style:n,anchor:o,width:a,height:l,roundPixels:c,...h}=t;super({...h}),this.batched=!0,this._resolution=null,this._autoResolution=!0,this._didTextUpdate=!0,this._styleClass=e,this.text=r??"",this.style=n,this.resolution=s??null,this.allowChildren=!1,this._anchor=new Gt({_onUpdate:()=>{this.onViewUpdate()}}),o&&(this.anchor=o),this.roundPixels=c??!1,a!==void 0&&(this.width=a),l!==void 0&&(this.height=l)}get anchor(){return this._anchor}set anchor(t){typeof t=="number"?this._anchor.set(t):this._anchor.copyFrom(t)}set text(t){t=t.toString(),this._text!==t&&(this._text=t,this.onViewUpdate())}get text(){return this._text}set resolution(t){this._autoResolution=t===null,this._resolution=t,this.onViewUpdate()}get resolution(){return this._resolution}get style(){return this._style}set style(t){t||(t={}),this._style?.off("update",this.onViewUpdate,this),t instanceof this._styleClass?this._style=t:this._style=new this._styleClass(t),this._style.on("update",this.onViewUpdate,this),this.onViewUpdate()}get width(){return Math.abs(this.scale.x)*this.bounds.width}set width(t){this._setWidth(t,this.bounds.width)}get height(){return Math.abs(this.scale.y)*this.bounds.height}set height(t){this._setHeight(t,this.bounds.height)}getSize(t){return t||(t={}),t.width=Math.abs(this.scale.x)*this.bounds.width,t.height=Math.abs(this.scale.y)*this.bounds.height,t}setSize(t,e){typeof t=="object"?(e=t.height??t.width,t=t.width):e??(e=t),t!==void 0&&this._setWidth(t,this.bounds.width),e!==void 0&&this._setHeight(e,this.bounds.height)}containsPoint(t){let e=this.bounds.width,r=this.bounds.height,s=-e*this.anchor.x,n=0;return t.x>=s&&t.x<=s+e&&(n=-r*this.anchor.y,t.y>=n&&t.y<=n+r)}onViewUpdate(){this.didViewUpdate||(this._didTextUpdate=!0),super.onViewUpdate()}destroy(t=!1){super.destroy(t),this.owner=null,this._bounds=null,this._anchor=null,(typeof t=="boolean"?t:t?.style)&&this._style.destroy(t),this._style=null,this._text=null}get styleKey(){return`${this._text}:${this._style.styleKey}:${this._resolution}`}};function wv(i,t){let e=i[0]??{};return(typeof e=="string"||i[1])&&(O(rt,`use new ${t}({ text: "hi!", style }) instead`),e={text:e,style:i[1]}),e}Qt();Yt();qo();xt();bs();Yt();var ai=null,nr=null;function Zw(i,t){ai||(ai=W.get().createCanvas(256,128),nr=ai.getContext("2d",{willReadFrequently:!0}),nr.globalCompositeOperation="copy",nr.globalAlpha=1),(ai.width<i||ai.height<t)&&(ai.width=Je(i),ai.height=Je(t))}function Cv(i,t,e){for(let r=0,s=4*e*t;r<t;++r,s+=4)if(i[s+3]!==0)return!1;return!0}function Ev(i,t,e,r,s){let n=4*t;for(let o=r,a=r*n+4*e;o<=s;++o,a+=n)if(i[a+3]!==0)return!1;return!0}function Pv(...i){let t=i[0];t.canvas||(t={canvas:i[0],resolution:i[1]});let{canvas:e}=t,r=Math.min(t.resolution??1,1),s=t.width??e.width,n=t.height??e.height,o=t.output;if(Zw(s,n),!nr)throw new TypeError("Failed to get canvas 2D context");nr.drawImage(e,0,0,s,n,0,0,s*r,n*r);let l=nr.getImageData(0,0,s,n).data,c=0,h=0,u=s-1,d=n-1;for(;h<n&&Cv(l,s,h);)++h;if(h===n)return J.EMPTY;for(;Cv(l,s,d);)--d;for(;Ev(l,s,c,h,d);)++c;for(;Ev(l,s,u,h,d);)--u;return++u,++d,nr.globalCompositeOperation="source-over",nr.strokeRect(c,h,u-c,d-h),nr.globalCompositeOperation="copy",o??(o=new J),o.set(c/r,h/r,(u-c)/r,(d-h)/r),o}Td();wd();Nv();var zv=new J;function ss(i){let t=0;for(let e=0;e<i.length;e++)i.charCodeAt(e)===32&&t++;return t}var Cd=class{getCanvasAndContext(t){let{text:e,style:r,resolution:s=1}=t,n=r._getFinalPadding(),o=je.measureText(e||" ",r),a=Math.ceil(Math.ceil(Math.max(1,o.width)+n*2)*s),l=Math.ceil(Math.ceil(Math.max(1,o.height)+n*2)*s),c=rr.getOptimalCanvasAndContext(a,l);this._renderTextToCanvas(r,n,s,c,o);let h=r.trim?Pv({canvas:c.canvas,width:a,height:l,resolution:1,output:zv}):zv.set(0,0,a,l);return{canvasAndContext:c,frame:h}}returnCanvasAndContext(t){rr.returnCanvasAndContext(t)}_renderTextToCanvas(t,e,r,s,n){if(n.runsByLine&&n.runsByLine.length>0){this._renderTaggedTextToCanvas(n,t,e,r,s);return}let{canvas:o,context:a}=s,l=ao(t),c=n.lines,h=n.lineHeight,u=n.lineWidths,d=n.maxLineWidth,f=n.fontProperties,m=o.height;if(a.resetTransform(),a.scale(r,r),a.textBaseline=t.textBaseline,t._stroke?.width){let T=t._stroke;a.lineWidth=T.width,a.miterLimit=T.miterLimit,a.lineJoin=T.join,a.lineCap=T.cap}a.font=l;let g,_,x=t.dropShadow?2:1,v=(t._stroke?.width??0)/2,S=(h-f.fontSize)/2;h-f.fontSize<0&&(S=0);for(let T=0;T<x;++T){let w=t.dropShadow&&T===0,E=w?Math.ceil(Math.max(1,m)+e*2):0,B=E*r;if(w)this._setupDropShadow(a,t,r,B);else{let R=t._gradientBounds,M=t._gradientOffset;if(R){let C={width:R.width,height:R.height,lineHeight:R.height,lines:n.lines};this._setFillAndStrokeStyles(a,t,C,e,v,M?.x??0,M?.y??0)}else M?this._setFillAndStrokeStyles(a,t,n,e,v,M.x,M.y):this._setFillAndStrokeStyles(a,t,n,e,v);a.shadowColor="rgba(0,0,0,0)"}for(let R=0;R<c.length;R++){g=v,_=v+R*h+f.ascent+S,g+=this._getAlignmentOffset(u[R],d,t.align);let M=0;if(t.align==="justify"&&t.wordWrap&&R<c.length-1){let C=ss(c[R]);C>0&&(M=(d-u[R])/C)}t._stroke?.width&&this._drawLetterSpacing(c[R],t,s,g+e,_+e-E,!0,M),t._fill!==void 0&&this._drawLetterSpacing(c[R],t,s,g+e,_+e-E,!1,M)}}}_renderTaggedTextToCanvas(t,e,r,s,n){let{canvas:o,context:a}=n,{runsByLine:l,lineWidths:c,maxLineWidth:h,lineAscents:u,lineHeights:d,hasDropShadow:f}=t,m=o.height;a.resetTransform(),a.scale(s,s),a.textBaseline=e.textBaseline;let g=f?2:1,_=e._stroke?.width??0;for(let v of l)for(let S of v){let T=S.style._stroke?.width??0;T>_&&(_=T)}let x=_/2,b=[];for(let v=0;v<l.length;v++){let S=l[v],T=[];for(let w of S){let E=ao(w.style);a.font=E,T.push({width:je._measureText(w.text,w.style.letterSpacing,a),font:E})}b.push(T)}for(let v=0;v<g;++v){let S=f&&v===0,T=S?Math.ceil(Math.max(1,m)+r*2):0,w=T*s;S||(a.shadowColor="rgba(0,0,0,0)");let E=x;for(let B=0;B<l.length;B++){let R=l[B],M=c[B],C=u[B],A=d[B],D=b[B],H=x;H+=this._getAlignmentOffset(M,h,e.align);let K=0;if(e.align==="justify"&&e.wordWrap&&B<l.length-1){let j=0;for(let G of R)j+=ss(G.text);j>0&&(K=(h-M)/j)}let I=E+C,U=H+r;for(let j=0;j<R.length;j++){let G=R[j],{width:Y,font:pt}=D[j];if(a.font=pt,a.textBaseline=G.style.textBaseline,G.style._stroke?.width){let lt=G.style._stroke;if(a.lineWidth=lt.width,a.miterLimit=lt.miterLimit,a.lineJoin=lt.join,a.lineCap=lt.cap,S)if(G.style.dropShadow)this._setupDropShadow(a,G.style,s,w);else{let ft=ss(G.text);U+=Y+ft*K;continue}else{let ft=je.measureFont(pt),q=G.style.lineHeight||ft.fontSize,jt={width:Y,height:q,lineHeight:q,lines:[G.text]};a.strokeStyle=lo(lt,a,jt,r*2,U-r,E)}this._drawLetterSpacing(G.text,G.style,n,U,I+r-T,!0,K)}let wt=ss(G.text);U+=Y+wt*K}U=H+r;for(let j=0;j<R.length;j++){let G=R[j],{width:Y,font:pt}=D[j];if(a.font=pt,a.textBaseline=G.style.textBaseline,G.style._fill!==void 0){if(S)if(G.style.dropShadow)this._setupDropShadow(a,G.style,s,w);else{let lt=ss(G.text);U+=Y+lt*K;continue}else{let lt=je.measureFont(pt),ft=G.style.lineHeight||lt.fontSize,q={width:Y,height:ft,lineHeight:ft,lines:[G.text]};a.fillStyle=lo(G.style._fill,a,q,r*2,U-r,E)}this._drawLetterSpacing(G.text,G.style,n,U,I+r-T,!1,K)}let wt=ss(G.text);U+=Y+wt*K}E+=A}}}_setFillAndStrokeStyles(t,e,r,s,n,o=0,a=0){if(t.fillStyle=e._fill?lo(e._fill,t,r,s*2,o,a):null,e._stroke?.width){let l=n+s*2;t.strokeStyle=lo(e._stroke,t,r,l,o,a)}}_setupDropShadow(t,e,r,s){t.fillStyle="black",t.strokeStyle="black";let n=e.dropShadow,o=n.color,a=n.alpha;t.shadowColor=Q.shared.setValue(o).setAlpha(a).toRgbaString();let l=n.blur*r,c=n.distance*r;t.shadowBlur=l,t.shadowOffsetX=Math.cos(n.angle)*c,t.shadowOffsetY=Math.sin(n.angle)*c+s}_getAlignmentOffset(t,e,r){return r==="right"?e-t:r==="center"?(e-t)/2:0}_drawLetterSpacing(t,e,r,s,n,o=!1,a=0){let{context:l}=r,c=e.letterSpacing,h=!1;if(je.experimentalLetterSpacingSupported&&(je.experimentalLetterSpacing?(l.letterSpacing=`${c}px`,l.textLetterSpacing=`${c}px`,h=!0):(l.letterSpacing="0px",l.textLetterSpacing="0px")),(c===0||h)&&a===0){o?l.strokeText(t,s,n):l.fillText(t,s,n);return}if(a!==0&&(c===0||h)){let g=t.split(" "),_=s,x=l.measureText(" ").width;for(let b=0;b<g.length;b++)o?l.strokeText(g[b],_,n):l.fillText(g[b],_,n),_+=l.measureText(g[b]).width+x+a;return}let u=s,d=je.graphemeSegmenter(t),f=l.measureText(t).width,m=0;for(let g=0;g<d.length;++g){let _=d[g];o?l.strokeText(_,u,n):l.fillText(_,u,n);let x="";for(let b=g+1;b<d.length;++b)x+=d[b];m=l.measureText(x).width,u+=f-m+c,_===" "&&(u+=a),f=m}}},wr=new Cd;Td();Al();P();P();Ie();Bc();function Hv(i,t){let{texture:e,bounds:r}=i,s=t._style._getFinalPadding();zo(r,t._anchor,e);let n=t._anchor._x*s*2,o=t._anchor._y*s*2;r.minX-=s-n,r.minY-=s-o,r.maxX-=s-n,r.maxY-=s-o}Ea();var Rl=class extends yr{};var co=class{constructor(t){this._renderer=t,t.runners.resolutionChange.add(this),this._managedTexts=new kt({renderer:t,type:"renderable",onUnload:this.onTextUnload.bind(this),name:"canvasText"})}resolutionChange(){for(let t in this._managedTexts.items){let e=this._managedTexts.items[t];e?._autoResolution&&e.onViewUpdate()}}validateRenderable(t){let e=this._getGpuText(t),r=t.styleKey;return e.currentKey!==r?!0:t._didTextUpdate}addRenderable(t,e){let r=this._getGpuText(t);if(t._didTextUpdate){let s=t._autoResolution?this._renderer.resolution:t.resolution;(r.currentKey!==t.styleKey||t._resolution!==s)&&this._updateGpuText(t),t._didTextUpdate=!1,Hv(r,t)}this._renderer.renderPipes.batch.addToBatch(r,e)}updateRenderable(t){let e=this._getGpuText(t);e._batcher.updateElement(e)}_updateGpuText(t){let e=this._getGpuText(t);e.texture&&this._renderer.canvasText.decreaseReferenceCount(e.currentKey),t._resolution=t._autoResolution?this._renderer.resolution:t.resolution,e.texture=this._renderer.canvasText.getManagedTexture(t),e.currentKey=t.styleKey}_getGpuText(t){return t._gpuData[this._renderer.uid]||this.initGpuText(t)}initGpuText(t){let e=new Rl;return e.currentKey="--",e.renderable=t,e.transform=t.groupTransform,e.bounds={minX:0,maxX:1,minY:0,maxY:0},e.roundPixels=this._renderer._roundPixels|t._roundPixels,t._gpuData[this._renderer.uid]=e,this._managedTexts.add(t),e}onTextUnload(t){let e=t._gpuData[this._renderer.uid];if(!e)return;let{canvasText:r}=this._renderer;r.getReferenceCount(e.currentKey)>0?r.decreaseReferenceCount(e.currentKey):e.texture&&r.returnTexture(e.texture)}destroy(){this._managedTexts.destroy(),this._renderer=null}};co.extension={type:[y.WebGLPipes,y.WebGPUPipes,y.CanvasPipes],name:"text"};P();Fr();Ar();yt();Al();Vc();var ns=class{constructor(t,e){this._activeTextures={},this._renderer=t,this._retainCanvasContext=e}getTexture(t,e,r,s){typeof t=="string"&&(O("8.0.0","CanvasTextSystem.getTexture: Use object TextOptions instead of separate arguments"),t={text:t,style:r,resolution:e}),t.style instanceof Xe||(t.style=new Xe(t.style)),t.textureStyle instanceof ce||(t.textureStyle=new ce(t.textureStyle)),typeof t.text!="string"&&(t.text=t.text.toString());let{text:n,style:o,textureStyle:a,autoGenerateMipmaps:l}=t,c=t.resolution??this._renderer.resolution,{frame:h,canvasAndContext:u}=wr.getCanvasAndContext({text:n,style:o,resolution:c}),d=ra(u.canvas,h.width,h.height,c,l);if(a&&(d.source.style=a),o.trim&&(h.pad(o.padding),d.frame.copyFrom(h),d.frame.scale(1/c),d.updateUvs()),o.filters){let f=this._applyFilters(d,o.filters);return this.returnTexture(d),wr.returnCanvasAndContext(u),f}return this._renderer.texture.initSource(d._source),this._retainCanvasContext||wr.returnCanvasAndContext(u),d}returnTexture(t){let e=t.source,r=e.resource;if(this._retainCanvasContext&&r?.getContext){let s=r.getContext("2d");s&&wr.returnCanvasAndContext({canvas:r,context:s})}e.resource=null,e.uploadMethodId="unknown",e.alphaMode="no-premultiply-alpha",Mt.returnTexture(t,!0)}renderTextToCanvas(){O("8.10.0","CanvasTextSystem.renderTextToCanvas: no longer supported, use CanvasTextSystem.getTexture instead")}getManagedTexture(t){t._resolution=t._autoResolution?this._renderer.resolution:t.resolution;let e=t.styleKey;if(this._activeTextures[e])return this._increaseReferenceCount(e),this._activeTextures[e].texture;let r=this.getTexture({text:t.text,style:t.style,resolution:t._resolution,textureStyle:t.textureStyle,autoGenerateMipmaps:t.autoGenerateMipmaps});return this._activeTextures[e]={texture:r,usageCount:1},r}decreaseReferenceCount(t){let e=this._activeTextures[t];e&&(e.usageCount--,e.usageCount===0&&(this.returnTexture(e.texture),this._activeTextures[t]=null))}getReferenceCount(t){return this._activeTextures[t]?.usageCount??0}_increaseReferenceCount(t){this._activeTextures[t].usageCount++}_applyFilters(t,e){let r=this._renderer.renderTarget.renderTarget,s=this._renderer.filter.generateFilteredTexture({texture:t,filters:e});return this._renderer.renderTarget.bind({target:r,clear:!1}),s}destroy(){this._renderer=null;for(let t in this._activeTextures)this._activeTextures[t]&&this.returnTexture(this._activeTextures[t].texture);this._activeTextures=null}};var ho=class extends ns{constructor(t){super(t,!0)}};ho.extension={type:[y.CanvasSystem],name:"canvasText"};P();var uo=class extends ns{constructor(t){super(t,!1)}};uo.extension={type:[y.WebGLSystem,y.WebGPUSystem],name:"canvasText"};z.add(ho);z.add(uo);z.add(co);var fo=class extends Tl{constructor(...t){let e=wv(t,"Text");super(e,Xe),this.renderPipeId="text",e.textureStyle&&(this.textureStyle=e.textureStyle instanceof ce?e.textureStyle:new ce(e.textureStyle)),this.autoGenerateMipmaps=e.autoGenerateMipmaps??st.defaultOptions.autoGenerateMipmaps}updateBounds(){let t=this._bounds,e=this._anchor,r=0,s=0;if(this._style.trim){let{frame:n,canvasAndContext:o}=wr.getCanvasAndContext({text:this.text,style:this._style,resolution:1});wr.returnCanvasAndContext(o),r=n.width,s=n.height}else{let n=je.measureText(this._text,this._style);r=n.width,s=n.height}t.minX=-e._x*r,t.maxX=t.minX+r,t.minY=-e._y*s,t.maxY=t.minY+s}};xr();ir();zr();pr();Lh();function Pd(i,t=null){let e=i*6;if(e>65535?t||(t=new Uint32Array(e)):t||(t=new Uint16Array(e)),t.length!==e)throw new Error(`Out buffer length is incorrect, got ${t.length} and expected ${e}`);for(let r=0,s=0;r<e;r+=6,s+=4)t[r+0]=s+0,t[r+1]=s+1,t[r+2]=s+2,t[r+3]=s+0,t[r+4]=s+2,t[r+5]=s+3;return t}pr();function Vv(i){return{dynamicUpdate:Wv(i,!0),staticUpdate:Wv(i,!1)}}function Wv(i,t){let e=[];e.push(`
912
912
 
913
913
  var index = 0;
914
914
 
@@ -922,9 +922,9 @@ fn mainFragment(
922
922
  `),e.unshift(`
923
923
  var stride = ${r};
924
924
  `);let s=e.join(`
925
- `);return new Function("ps","f32v","u32v",s)}var Rl=class{constructor(t){this._size=0,this._generateParticleUpdateCache={};let e=this._size=t.size??1e3,r=t.properties,s=0,n=0;for(let h in r){let u=r[h],d=Jt(u.format);u.dynamic?n+=d.stride:s+=d.stride}this._dynamicStride=n/4,this._staticStride=s/4,this.staticAttributeBuffer=new ze(e*4*s),this.dynamicAttributeBuffer=new ze(e*4*n),this.indexBuffer=Pd(e);let o=new he,a=0,l=0;this._staticBuffer=new At({data:new Float32Array(1),label:"static-particle-buffer",shrinkToFit:!1,usage:tt.VERTEX|tt.COPY_DST}),this._dynamicBuffer=new At({data:new Float32Array(1),label:"dynamic-particle-buffer",shrinkToFit:!1,usage:tt.VERTEX|tt.COPY_DST});for(let h in r){let u=r[h],d=Jt(u.format);u.dynamic?(o.addAttribute(u.attributeName,{buffer:this._dynamicBuffer,stride:this._dynamicStride*4,offset:a*4,format:u.format}),a+=d.size):(o.addAttribute(u.attributeName,{buffer:this._staticBuffer,stride:this._staticStride*4,offset:l*4,format:u.format}),l+=d.size)}o.addIndex(this.indexBuffer);let c=this.getParticleUpdate(r);this._dynamicUpload=c.dynamicUpdate,this._staticUpload=c.staticUpdate,this.geometry=o}getParticleUpdate(t){let e=hC(t);return this._generateParticleUpdateCache[e]?this._generateParticleUpdateCache[e]:(this._generateParticleUpdateCache[e]=this.generateParticleUpdate(t),this._generateParticleUpdateCache[e])}generateParticleUpdate(t){return Hv(t)}update(t,e){t.length>this._size&&(e=!0,this._size=Math.max(t.length,this._size*1.5|0),this.staticAttributeBuffer=new ze(this._size*this._staticStride*4*4),this.dynamicAttributeBuffer=new ze(this._size*this._dynamicStride*4*4),this.indexBuffer=Pd(this._size),this.geometry.indexBuffer.setDataWithSize(this.indexBuffer,this.indexBuffer.byteLength,!0));let r=this.dynamicAttributeBuffer;if(this._dynamicUpload(t,r.float32View,r.uint32View),this._dynamicBuffer.setDataWithSize(this.dynamicAttributeBuffer.float32View,t.length*this._dynamicStride*4,!0),e){let s=this.staticAttributeBuffer;this._staticUpload(t,s.float32View,s.uint32View),this._staticBuffer.setDataWithSize(s.float32View,t.length*this._staticStride*4,!0)}}destroy(){this._staticBuffer.destroy(),this._dynamicBuffer.destroy(),this.geometry.destroy()}};function hC(i){let t=[];for(let e in i){let r=i[e];t.push(e,r.code,r.dynamic?"d":"s")}return t.join("_")}xt();ot();fr();Vo();gt();Lc();Pe();gd();zo();Ml();Ht();z.add(fg,mg);function Md(i,t,e){if(i.fillType!=="Horizontal"&&i.fillType!=="Vertical")return null;let r=Number(i.fillAmount??1),s=Number.isFinite(r)?Math.max(0,Math.min(1,r)):1;if(i.fillType==="Horizontal"){let o=t*s;return{x:i.fillHorizontalType==="Right"?t/2-o:-t/2,y:-e/2,width:o,height:e}}let n=e*s;return{x:-t/2,y:i.fillVerticalType==="Top"?-e/2:e/2-n,width:t,height:n}}var Wv="prefab-v1",uC=[[10003004,10003004],[10005001,10005142],[10006001,10006002],[10007002,10007002],[10008001,10008001],[10009001,10009011],[20001001,20001074],[20001076,20001121],[20001123,20001156],[20001158,20001302],[20001304,20001568],[20001570,20001999],[20002001,20002755],[20002757,20002999],[20003001,20003455],[30001001,30001016],[30002001,30002017],[30003001,30003011],[30004001,30004001],[30005001,30005020],[30006001,30006026],[30007001,30007013],[30008001,30008011]];function Vv(i){return!Number.isSafeInteger(i)||!uC.some(([t,e])=>i>=t&&i<=e)?null:i===10003004||i===10008001?128:256}var dC="sprite-v1",fC="/qxqy-assets/",pC=[[100001,100006],[100101,100213],[101001,101018],[101020,101028],[101030,101046],[101048,101048],[101050,101054],[101056,101080],[102001,102052],[103001,103148],[104001,104010],[105001,105140],[105142,105219],[105221,105317],[106001,106047],[106049,106096],[107001,107007],[107010,107020],[107031,107092],[107094,107180],[107183,107201],[107203,107205],[107207,107228],[107231,107278],[107280,107402],[108001,108017],[108019,108020],[109001,109031],[109033,109034],[109036,109075],[110001,110053],[111001,111139],[112001,112042]];function ar(i){return i==null||i===""?"StaticReference":typeof i=="string"?i:typeof i.Name=="string"?i.Name:"Unknown"}function Ye(i,t){return`${ar(t)}:${i}`}function kl(i,t){let e=ar(t);return e==="Prefab"?Vv(i)!==null:e==="StaticReference"&&Number.isSafeInteger(i)&&i>100006&&pC.some(([r,s])=>i>=r&&i<=s)}function Ad(i,t=0,e){let r=ar(e);if(!["StaticReference","Prefab"].includes(r))throw new Error(`Unsupported image source: ${r}`);return`${fC}${r==="Prefab"?Wv:dC}/${i}.png${t?`?refresh=${t}`:""}`}function jv(i,t=0,e){return Ad(i,t,e).replace(".png",".json")}var mC=Object.freeze(["KEYBOARD","TOUCHSCREEN","CONTROLLER_CONSOLE","CONTROLLER_MOBILE"]),gC=Object.freeze({"pc-16-9":{id:"pc-16-9",device:"pc",platform:"KEYBOARD",width:1600,height:900,ratio:"16:9",luaDevice:"KeyboardAndMouse",label:"PC 1600\xD7900"},"pc-21-9":{id:"pc-21-9",device:"pc",platform:"KEYBOARD",width:2100,height:900,ratio:"21:9",luaDevice:"KeyboardAndMouse",label:"PC 2100\xD7900"},"mobile-16-9":{id:"mobile-16-9",device:"mobile",platform:"TOUCHSCREEN",width:1280,height:720,ratio:"16:9",luaDevice:"Mobile",label:"\u624B\u673A 1280\xD7720"},"mobile-19.5-9":{id:"mobile-19.5-9",device:"mobile",platform:"TOUCHSCREEN",width:1560,height:720,ratio:"19.5:9",luaDevice:"Mobile",label:"\u624B\u673A 1560\xD7720"},"mobile-4-3":{id:"mobile-4-3",device:"mobile",platform:"TOUCHSCREEN",width:1280,height:960,ratio:"4:3",luaDevice:"Mobile",label:"\u624B\u673A 1280\xD7960"}});var oY=Object.freeze({KEYBOARD:"pc-16-9",TOUCHSCREEN:"mobile-16-9",CONTROLLER_CONSOLE:"pc-16-9",CONTROLLER_MOBILE:"mobile-16-9"}),aY=Object.freeze({"server-container":"\u5BA2\u6237\u7AEF\u63A7\u4EF6\u5BB9\u5668",container:"\u5BB9\u5668\u8282\u70B9",textbox:"\u6587\u672C\u6846",image:"\u56FE\u7247",button:"\u9884\u8BBE\u6309\u94AE",cursor:"\u5149\u6807\u68C0\u6D4B\u533A\u57DF",grid:"\u7F51\u683C\u89C6\u7A97",reference:"\u6A21\u677F\u5F15\u7528\u63A7\u4EF6",textwindow:"\u6587\u672C\u89C6\u7A97",keyhint:"\u6309\u952E\u63D0\u793A",animation:"\u754C\u9762\u52A8\u6548",fullscreen:"\u5168\u5C4F\u52A8\u6548"}),lY=Object.freeze(["server-container","container","textbox","cursor","reference","grid","image","button","textwindow","keyhint","animation","fullscreen"]),cY=Object.freeze({"server-container":null,container:[150,150],textbox:[100,40],image:[80,80],button:[150,50],cursor:[150,50],grid:[80,80],reference:[80,80],textwindow:[100,40],keyhint:[40,40],animation:[100,100],fullscreen:null}),hY=Object.freeze({100001:"rect",100002:"circle",100003:"triangle",100004:"fourstar",100005:"fivestar",100006:"ring"});var uY=Object.freeze({font:4294967295,bg:16777215,outline:858993459,image:4294967295});function Xv(i,t,e){return{x:i.a*t+i.c*e+i.tx,y:i.b*t+i.d*e+i.ty}}function Rd(i){let t=i.a*i.d-i.b*i.c;return!Number.isFinite(t)||Math.abs(t)<1e-8?null:{a:i.d/t,b:-i.b/t,c:-i.c/t,d:i.a/t,tx:(i.c*i.ty-i.d*i.tx)/t,ty:(i.b*i.tx-i.a*i.ty)/t}}var Bl=i=>Number.isFinite(Number(i))?Math.max(0,Number(i)):0;function $v(i,t){if(!i||i.kind!=="image"||i.enableMask!==!0||!t)return null;let e=Bl(i.sourceWidth??i.width),r=Bl(i.sourceHeight??i.height),s=i.enableSoftEdge===!0,n=i.softEdgeMode!=="Pixel",o=s?Bl(i.softEdgeWidthX):0,a=s?Bl(i.softEdgeWidthY):0;return{id:i.id,matrix:t,width:e,height:r,featherX:n?e*o/100:o,featherY:n?r*a/100:a}}function xC(i,t,e){let r=(s,n)=>s<=0?0:!(n>0)||s>=n?1:s/n;return Math.min(r(i+e.width/2,e.featherX),r(e.width/2-i,e.featherX),r(t+e.height/2,e.featherY),r(e.height/2-t,e.featherY))}function _C(i){let t={children:[]},e=[t],r=[];for(let s of i||[]){if(!s||s.id==null)continue;let n=s.masks||[],o=n.map(l=>JSON.stringify([l.id,l.matrix,l.width,l.height,l.featherX,l.featherY])),a=0;for(;a<r.length&&a<o.length&&r[a]===o[a];)a++;e.length=a+1;for(let l=a;l<n.length;l++){let c={mask:n[l],children:[]};e.at(-1).children.push(c),e.push(c)}e.at(-1).children.push({item:s}),r=o}return t.children}var qv=()=>({a:1,b:0,c:0,d:1,tx:0,ty:0});function Yv(i,t){let e=Rd(i)||qv();return{a:e.a*t.a+e.c*t.b,b:e.b*t.a+e.d*t.b,c:e.a*t.c+e.c*t.d,d:e.b*t.c+e.d*t.d,tx:e.a*t.tx+e.c*t.ty+e.tx,ty:e.b*t.tx+e.d*t.ty+e.ty}}function Kv(i){let t=[],e=0,r=(s,n=null,o=qv())=>{s.forEach((a,l)=>{let c=`paint-mask:${e++}`,h=s.length-1-l;if(a.mask){let u=a.mask;t.push({id:c,parent:n,z:h,group:!1,kind:"image",primitive:"rect",imageColor:0,sourceWidth:u.width,sourceHeight:u.height,matrix:Yv(o,u.matrix),enableMask:!0,enableSoftEdge:!0,softEdgeMode:"Pixel",softEdgeWidthX:u.featherX,softEdgeWidthY:u.featherY}),r(a.children,c,u.matrix)}else{let u=a.item,d=u.sourceWidth??u.width??0,f=u.sourceHeight??u.height??0,m=(u.rotationZ||0)*Math.PI/180,g=u.matrix||{a:Math.cos(m),b:Math.sin(m),c:-Math.sin(m),d:Math.cos(m),tx:(u.left||0)+d/2,ty:(u.bottom||0)+f/2},_=Rd(o),x=(u.clipPolygons||[]).map(S=>S.map(T=>_?Xv(_,T.x,T.y):T)),{masks:b,...v}=u;t.push({...v,id:c,parent:n,z:h,group:!1,enableMask:!1,clipToParent:!1,sourceWidth:d,sourceHeight:f,matrix:Yv(o,g),clipPolygons:x})}})};return r(_C(i)),{format:"tree-v1",reset:!0,nodes:t}}function kd(i,t){let e=Math.max(1,i.width),r=Math.max(1,i.height),s=i.getContext("2d"),n=s.createImageData(e,r),o=n.data;for(let a=0;a<r;a+=1){let l=t.height/2-(a+.5)*t.height/r;for(let c=0;c<e;c+=1){let h=-t.width/2+(c+.5)*t.width/e,u=Math.round(255*xC(h,l,t)),d=(a*e+c)*4;o[d]=255,o[d+1]=255,o[d+2]=255,o[d+3]=u}}return s.putImageData(n,0,0),i}function Bd(i,t,e){if(!i?.showBar||i.max<=0||t<=0||e<=0)return null;let r=i.horizontal===!0,s=r?t:e,n=Math.max(0,s-4),o=Math.min(n,Math.max(18,n*s/(s+i.max))),a=n-o,l=a*i.offset/i.max,c=Math.min(8,r?e:t),h=r?{x:-t/2+2,y:e/2-c-2,width:n,height:c}:{x:t/2-c-2,y:-e/2+2,width:c,height:n},u=r?{...h,x:h.x+l,width:o}:{...h,y:h.y+l,height:o};return{track:h,thumb:u,travel:a}}function Zv(i,t){let e=Math.max(0,Math.floor(i.offset/i.lineHeight)-1),r=Math.min(i.lines.length,Math.ceil((i.offset+t)/i.lineHeight)+1);return{text:i.lines.slice(e,r).join(`
926
- `),y:e*i.lineHeight}}function Qv(i){let t=i[0]||[],e=(r,s,n)=>(s.x-r.x)*(n.y-r.y)-(s.y-r.y)*(n.x-r.x);for(let r of i.slice(1)){let n=r.reduce((o,a,l)=>{let c=r[(l+1)%r.length];return o+a.x*c.y-c.x*a.y},0)>=0?1:-1;for(let o=0;o<r.length&&t.length;o++){let a=r[o],l=r[(o+1)%r.length],c=t;t=[];let h=c[c.length-1],u=e(a,l,h)*n;for(let d of c){let f=e(a,l,d)*n;if(f>=0!=u>=0){let m=u/(u-f);t.push({x:h.x+m*(d.x-h.x),y:h.y+m*(d.y-h.y)})}f>=0&&t.push(d),h=d,u=f}}}return t}var Jv="qxqy-image-refresh",lr=new Map,fo=new Map,po=new Map,Id=new Set,yC=16777216,t1=!1;function bC(i,t){po.set(i,t),lr.delete(i),fo.delete(i);for(let e of Id)e(i)}var e1=i=>/^\d+$/.test(i)?Ye(Number(i)):i;function Gd(){if(!(t1||typeof window>"u")){t1=!0;try{for(let[i,t]of Object.entries(JSON.parse(localStorage.getItem(Jv)||"{}")))po.set(e1(i),t)}catch{}window.addEventListener("storage",i=>{if(i.key===Jv)try{for(let[t,e]of Object.entries(JSON.parse(i.newValue||"{}"))){let r=e1(t);po.get(r)!==e&&bC(r,e)}}catch{}})}}function r1(i){return Gd(),Id.add(i),()=>Id.delete(i)}function vC(i,t){if(Gd(),ar(t)!=="StaticReference"||!kl(i,t))return Promise.resolve(null);let e=Ye(i,t),r=fo.get(e);if(r)return r;let s=fetch(jv(i,po.get(e),t),{signal:AbortSignal.timeout(3e4)}).then(async n=>{if(!n.ok)throw new Error(`\u56FE\u7247 ${i} \u5143\u6570\u636E\u52A0\u8F7D\u5931\u8D25\uFF1AHTTP ${n.status}`);return n.json()}).catch(n=>{throw fo.get(e)===s&&fo.delete(e),n});return fo.set(e,s),s}async function i1(i,t){let[e,r]=await Promise.all([SC(i,t),vC(i,t).then(s=>({meta:s,error:""}),s=>({meta:void 0,error:s.message}))]);return{image:e,...r}}function SC(i,t){if(Gd(),!kl(i,t))return Promise.reject(new Error("Image source/ID is not in the preview allowlist"));let e=Ye(i,t),r=lr.get(e);if(r&&(!r.failed||Date.now()<r.retryAt))return lr.delete(e),lr.set(e,r),r.promise;let s={pixels:0,failed:!1};return s.promise=new Promise((n,o)=>{let a=new Image,l=setTimeout(()=>{a.src="",c(new Error("\u56FE\u7247\u52A0\u8F7D\u8D85\u65F6"))},45e3);function c(h){if(clearTimeout(l),a.onload=a.onerror=null,h){s.failed=!0,s.retryAt=Date.now()+6e4,o(h);return}s.pixels=a.width*a.height;let u=[...lr.values()].reduce((d,f)=>d+f.pixels,0);for(let[d,f]of lr){if(u<=yC&&lr.size<=128)break;d!==e&&(!f.pixels&&!f.failed||(lr.delete(d),u-=f.pixels))}n(a)}a.onload=()=>c(),a.onerror=()=>c(new Error(`\u56FE\u7247 ${i} \u52A0\u8F7D\u5931\u8D25\uFF0C\u53EF\u5728\u5C5E\u6027\u9762\u677F\u5237\u65B0\u7D20\u6750`)),a.src=Ad(i,po.get(e),t)}),lr.set(e,s),s.promise}function TC(i){return!!i?.border&&Object.values(i.border).some(t=>Number.isFinite(t)&&t>0)}function n1(i,t){let e=typeof t=="object"?t?.Name:t;return TC(i)&&e!=="Basic"?"Stretch":"Basic"}function s1(i,t,e,r){t=Number.isFinite(t)?Math.max(0,t):0,e=Number.isFinite(e)?Math.max(0,e):0;let s=Math.min(1,i/(t+e||1));t*=s,e*=s;let n=Math.min(1,r/(t+e||1));return{source:[0,t,i-e,i],target:[0,t*n,r-e*n,r]}}function o1(i,t,e){if(!(i?.width>0&&i?.height>0&&t>0&&e>0))return[];let r=s1(i.width,i.border.left,i.border.right,t),s=s1(i.height,i.border.top,i.border.bottom,e),n=[];for(let o=0;o<3;o++)for(let a=0;a<3;a++){let l=[r.target[a],s.target[o],r.target[a+1]-r.target[a],s.target[o+1]-s.target[o]];l[2]<=0||l[3]<=0||n.push({source:[r.source[a],s.source[o],r.source[a+1]-r.source[a],s.source[o+1]-s.source[o]],target:l})}return n}var Il='"Microsoft YaHei UI","Microsoft YaHei","HarmonyOS Sans SC","Noto Sans CJK SC",sans-serif',Fd="/qxqy-font";var Ud=i=>`QxqyLocal_${i}`,a1=i=>i?`"${Ud(i)}",${Il}`:Il;var Dd;function CC(){return Dd||=EC().catch(i=>{throw Dd=null,i}),Dd}async function EC(){let i={cache:"no-store",credentials:"same-origin",mode:"same-origin",signal:AbortSignal.timeout(1e4)},t=await fetch(`${Fd}/manifest`,i);if(!t.ok)throw new Error("\u65E0\u6CD5\u8BFB\u53D6\u672C\u5730\u5B57\u4F53\u914D\u7F6E\uFF0C\u8BF7\u68C0\u67E5\u5BBF\u4E3B\u914D\u7F6E\u53CA\u672C\u673A\u8FDE\u63A5");let{id:e,scope:r="all"}=await t.json();if(e===null)return null;if(typeof e!="string"||!/^[a-f0-9]{64}$/.test(e))throw new Error("\u672C\u5730\u5B57\u4F53\u6807\u8BC6\u65E0\u6548");let s=await fetch(`${Fd}/file/${e}`,i);if(!s.ok)throw new Error("\u672C\u5730\u5B57\u4F53\u52A0\u8F7D\u5931\u8D25\uFF0C\u8BF7\u91CD\u542F\u5BBF\u4E3B\u5E76\u5237\u65B0\u9875\u9762");let n=await s.arrayBuffer();if(!n.byteLength||n.byteLength>33554432)throw new Error("\u672C\u5730\u5B57\u4F53\u5927\u5C0F\u65E0\u6548");let o=new FontFace(Ud(e),n);await o.load(),document.fonts.add(o);let a=a1(e),l="qxqy-local-font-style",c=document.getElementById(l);return r==="game"?c?.remove():(c||(c=document.createElement("style"),c.id=l,document.head.appendChild(c)),c.textContent=`[data-qxqy-font-ui], [data-qxqy-font-ui] * { font-family: ${a} !important; }`),a}var Gl={"\u5F53\u524D\u540E\u53F0\u5C1A\u672A\u52A0\u8F7D\u5B57\u4F53\u8BBE\u7F6E\u529F\u80FD\uFF0C\u8BF7\u91CD\u542F Web \u6216 Harness \u5BBF\u4E3B\u540E\u91CD\u8BD5\u3002":"The running backend does not support font settings yet. Restart the Web or Harness host, then retry.","\u5F53\u524D\u540E\u53F0\u5C1A\u672A\u52A0\u8F7D\u68C0\u67E5\u66F4\u65B0\u529F\u80FD\uFF0C\u8BF7\u91CD\u542F Web \u6216 Harness \u5BBF\u4E3B\u540E\u91CD\u8BD5\u3002":"The running backend does not support update checks yet. Restart the Web or Harness host, then retry.","\u8BF7\u8F93\u5165\u516D\u4F4D\u989C\u8272\uFF0C\u4F8B\u5982 #FF8800":"Enter a six-digit color, e.g. #FF8800","\u900F\u660E\u5EA6\u8BF7\u8F93\u5165 0\u2013100 \u7684\u6574\u6570":"Enter an integer from 0 to 100 for opacity","Alpha\uFF1A0% \u5B8C\u5168\u900F\u660E\uFF0C100% \u5B8C\u5168\u4E0D\u900F\u660E":"Alpha: 0% is transparent; 100% is opaque","{0}\u4E0E\u900F\u660E\u5EA6":"{0} and opacity",\u6253\u5F00\u53D6\u8272\u5668:"Open color picker","{0}\u53D6\u8272\u5668":"{0} color picker",\u900F\u660E\u5EA6:"Opacity","{0}\u900F\u660E\u5EA6\u6ED1\u5757":"{0} opacity slider","{0}\u900F\u660E\u5EA6":"{0} opacity","Lua \u7D22\u5F15\u5F85\u540C\u6B65\uFF08{0} \u9879\uFF09\xB7 \u5C55\u5F00":"Lua index references need updating ({0}) \xB7 Expand","Lua \u7D22\u5F15\u540C\u6B65":"Update Lua Index References","\u4E0B\u4E00\u6B65\uFF1A\u540C\u6B65 Lua \u7D22\u5F15\u5F15\u7528\uFF08{0} \u9879\uFF09":"Next: Update Lua index references ({0})",\u811A\u672C\u5168\u91CF\u66FF\u6362\u5DF2\u5B8C\u6210:"Script index replacement completed",\u5173\u95ED\u7D22\u5F15\u540C\u6B65\u63D0\u793A:"Close index update notice","\u6536\u8D77\u63D0\u793A\uFF0C\u4FDD\u7559\u5F85\u540C\u6B65\u8BB0\u5F55":"Collapse notice and keep pending changes",\u5173\u95ED:"Close","\u540C\u6B65\u4EFB\u52A1\uFF08\u7C98\u8D34\u7ED9\u5F53\u524D\u9879\u76EE\u7684 AI\uFF09":"Update task (paste into this project's AI chat)","AI \u7D22\u5F15\u540C\u6B65\u4EFB\u52A1":"AI task: Update index references","AI \u5DF2\u5904\u7406\uFF0C\u91CD\u65B0\u8F7D\u5165\u5B58\u6863":"AI finished \u2014 reload the save","\u63A7\u4EF6\u7D22\u5F15\u5DF2\u4FEE\u6539\uFF0C\u8BF7\u9009\u62E9\u4E00\u79CD\u65B9\u5F0F\u540C\u6B65\u811A\u672C\u3002":"Control indices changed. Choose how to update script references.","\u8BF7\u68C0\u67E5\u66FF\u6362\u7ED3\u679C\u5E76\u4FDD\u5B58\u5B58\u6863\uFF0C\u518D\u5230\u300CLua \u811A\u672C \u2192 \u5B9E\u673A\u811A\u672C\u540C\u6B65\u300D\u66F4\u65B0\u6E38\u620F\u91CC\u7684\u6587\u4EF6\u5E76\u91CD\u65B0\u8BD5\u73A9\u3002":"Review the replacements and save. Then use Lua Scripts \u2192 Sync Scripts to Game and test again in the game.",\u7D22\u5F15\u540C\u6B65\u65B9\u5F0F:"Update method",\u5168\u91CF\u66FF\u6362\u811A\u672C\u7D22\u5F15:"Replace All Script Indices","\u53EF\u80FD\u9519\u8BEF\u5730\u66FF\u6362\u975E\u7D22\u5F15\u5185\u5BB9\u3002":"This may replace numbers unrelated to control indices.","\u6309\u5B8C\u6574\u5341\u8FDB\u5236\u6570\u5B57\u66FF\u6362\u6240\u6709\u5DF2\u767B\u8BB0\u811A\u672C\uFF0C\u5305\u62EC\u914D\u7F6E\u8868\u3001\u5B57\u7B26\u4E32\u548C\u6CE8\u91CA\uFF1B\u540C\u65F6\u66F4\u65B0\u5185\u5BB9\u4E00\u81F4\u7684\u5DE5\u4F5C\u533A\u6E90\u6587\u4EF6\uFF0C\u66FF\u6362\u524D\u81EA\u52A8\u5907\u4EFD\u3002":"Replace whole decimal numbers in all registered scripts, including tables, strings, and comments. Matching workspace source files are updated too, with backups.","\u590D\u5236\u63D0\u793A\u8BCD\u7ED9 AI":"Copy Task for AI","\u5148\u4FDD\u5B58\u6700\u65B0\u5B58\u6863\uFF0C\u518D\u590D\u5236\u5305\u542B\u6620\u5C04\u8BFB\u53D6\u65B9\u5F0F\u548C\u811A\u672C\u4F4D\u7F6E\u7684\u63D0\u793A\u8BCD\uFF0C\u7531 AI \u5224\u65AD\u54EA\u4E9B\u5F15\u7528\u9700\u8981\u66F4\u65B0\u3002":"Save first, then copy the index mapping instructions and script locations so the AI can identify references to update.","\u67E5\u770B\u7D22\u5F15\u53D8\u66F4\uFF08{0} \u9879\uFF09":"View index changes ({0})","\u8FD9\u91CC\u663E\u793A\u524D 20 \u9879\uFF1B\u5B8C\u6574\u6620\u5C04\u968F\u5B58\u6863\u4FDD\u5B58\uFF0C\u590D\u5236\u7684\u4EFB\u52A1\u4F1A\u5F15\u5BFC AI \u8BFB\u53D6\u5168\u90E8\u3002":"Showing the first 20 changes. The save includes the complete mapping; the copied task tells the AI how to read it.","Lua \u7D22\u5F15\u540C\u6B65\u95EE\u9898":"Lua index update issues","\u6E90\u7801\u6587\u4EF6\u6216\u7D22\u5F15\u6620\u5C04\u5B58\u5728\u51B2\u7A81\uFF0C\u672C\u6B21\u6CA1\u6709\u4FEE\u6539\u811A\u672C\u3002\u53EF\u590D\u5236\u63D0\u793A\u8BCD\u7ED9 AI \u5904\u7406\u3002":"Source files or index mappings conflict. No scripts were changed. You can copy a task for the AI.",\u5185\u8054\u811A\u672C:"Inline script","\u7B2C {0} \u884C\uFF1A":"Line {0}:","\u5176\u4F59\u95EE\u9898\u8BF7\u7531 AI \u6838\u5BF9\u3002":"Ask the AI to review the remaining issues.","\u5DF2\u66FF\u6362 {0} \u4E2A\u811A\u672C\u7684 {1} \u5904\u6587\u672C\uFF0C\u66F4\u65B0 {2} \u4E2A\u9879\u76EE\u6587\u4EF6\u3002\u5907\u4EFD\uFF1A{3}":"Replaced {1} occurrences in {0} scripts and updated {2} project files. Backups: {3}","\u524D\u5F80 Lua \u811A\u672C":"Open Lua Scripts",\u65E0\u6CD5\u8BFB\u53D6\u5B57\u4F53\u8BBE\u7F6E:"Unable to read font settings","\u627E\u5230\u5B57\u4F53\uFF1A{0}\u3002":"Font found: {0}.","\u9ED8\u8BA4\u4F4D\u7F6E\u672A\u627E\u5230\u5B57\u4F53\uFF0C\u5C06\u4F7F\u7528\u7CFB\u7EDF\u5B57\u4F53\u3002":"No font found in the default locations. The system font will be used.","\u5DF2\u4FDD\u5B58\u3002{0}\u91CD\u542F Web\u3001MCP \u6216 Harness \u5BBF\u4E3B\u540E\uFF0C\u5237\u65B0\u7F16\u8F91\u5668\u53CA\u8BD5\u73A9\u9875\u751F\u6548\u3002":"Saved. {0}Restart the Web, MCP, or Harness host, then refresh the editor and playtest pages to apply.",\u5B57\u4F53\u8BBE\u7F6E:"Font Settings","\u81EA\u5B9A\u4E49\u5B57\u4F53\u53EF\u7528\u4E8E\u6E38\u620F\u5185\u6587\u672C\u6216\u6574\u4F53 UI\u3002\u8BBE\u7F6E\u4EC5\u4FDD\u5B58\u5728\u672C\u673A\uFF0C\u91CD\u542F\u5BBF\u4E3B\u540E\u751F\u6548\u3002":"Apply the custom font to in-game text or the entire UI. Settings stay on this machine and apply after restarting the host.",\u5E94\u7528\u8303\u56F4:"Apply to",\u4EC5\u6E38\u620F\u5185\u6587\u672C:"In-game text only","\u6574\u4F53 UI":"Entire UI","\u4EC5\u6E38\u620F\u5185\u6587\u672C\uFF1A\u7528\u4E8E\u753B\u5E03\u3001\u8BD5\u73A9\u548C\u622A\u56FE\uFF1B\u6574\u4F53 UI\uFF1A\u540C\u65F6\u66FF\u6362\u5DE5\u5177\u680F\u3001\u9762\u677F\u3001\u4EE3\u7801\u548C\u65E5\u5FD7\u5B57\u4F53\u3002":"In-game text only: canvas, playtests, and screenshots. Entire UI: also changes fonts in toolbars, panels, code, and logs.",\u8BF7\u9009\u62E9\u5B57\u4F53\u5E94\u7528\u8303\u56F4:"Choose where to apply the font","\u5F53\u524D\u5B57\u4F53\uFF1A{0}":"Active font: {0}",\u7CFB\u7EDF\u5B57\u4F53:"System font","\u5B57\u4F53\u6587\u4EF6\u7531\u73AF\u5883\u53D8\u91CF QXQY_FONT_PATH \u6307\u5B9A\uFF0C\u4ECD\u53EF\u8C03\u6574\u5E94\u7528\u8303\u56F4\u3002":"QXQY_FONT_PATH selects the font file. You can still change where it applies.",\u5B57\u4F53\u6765\u6E90:"Font source",\u81EA\u52A8\u5C1D\u8BD5\u539F\u795E\u7684\u9ED8\u8BA4\u5B89\u88C5\u4F4D\u7F6E:"Look in Genshin Impact's default installation locations",\u6307\u5B9A\u672C\u673A\u5B57\u4F53\u6587\u4EF6:"Use a local font file",\u4F7F\u7528\u7CFB\u7EDF\u5B57\u4F53:"Use the system font",\u5B57\u4F53\u6587\u4EF6\u8DEF\u5F84:"Font file path","\u586B\u5199 TTF / OTF \u7684\u7EDD\u5BF9\u8DEF\u5F84\uFF0C\u6700\u5927 32 MiB\uFF1B\u53EF\u4EE5\u76F4\u63A5\u7C98\u8D34\u5E26\u5F15\u53F7\u7684 Windows \u8DEF\u5F84\u3002":"Enter an absolute TTF / OTF path (up to 32 MiB). Quoted Windows paths are accepted.","\u6309\u987A\u5E8F\u5C1D\u8BD5\u4EE5\u4E0B\u4F4D\u7F6E\uFF1B\u90FD\u672A\u627E\u5230\u65F6\u4F7F\u7528\u7CFB\u7EDF\u5B57\u4F53\u3002\u5B89\u88C5\u5728\u5176\u4ED6\u76D8\u7B26\u65F6\u8BF7\u9009\u62E9\u201C\u6307\u5B9A\u672C\u673A\u5B57\u4F53\u6587\u4EF6\u201D\u3002":"These locations are checked in order. If none contains a font, the system font is used. For another drive, select \u201CUse a local font file\u201D.","\u5F53\u524D\u7CFB\u7EDF\u4E0D\u81EA\u52A8\u67E5\u627E\uFF0C\u8BF7\u6307\u5B9A\u5B57\u4F53\u6587\u4EF6\u3002":"Automatic font discovery is unavailable on this system. Specify a font file.","\u6709\u5DF2\u4FDD\u5B58\u7684\u5B57\u4F53\u8BBE\u7F6E\uFF0C\u91CD\u542F\u5BBF\u4E3B\u5E76\u5237\u65B0\u9875\u9762\u540E\u751F\u6548\u3002":"Font settings have been saved. Restart the host and refresh the pages to apply them.","\u6B63\u5728\u8BFB\u53D6\u8BBE\u7F6E\u2026":"Loading settings\u2026","\u4FDD\u5B58\u4E2D\u2026":"Saving...",\u4FDD\u5B58\u8BBE\u7F6E:"Save Settings","\u56FE\u7247 {0} \u52A0\u8F7D\u5931\u8D25":"Failed to load image {0}","\u52A0\u8F7D\u56FE\u7247 {0}\u2026":"Loading image {0}\u2026","\u56FE\u7247 {0}":"Image {0}",\u56FE\u7247\u7C7B\u578B:"Image Type",\u5143\u6570\u636E\u52A0\u8F7D\u5931\u8D25:"Failed to load image metadata","\u8BFB\u53D6\u7D20\u6750\u8FB9\u754C\u2026":"Loading asset borders\u2026",\u57FA\u7840:"Basic",\u62C9\u4F38:"Stretch",\u5BA2\u6237\u7AEF\u63A7\u4EF6\u5BB9\u5668:"Client Control Container",\u5BB9\u5668\u8282\u70B9:"Container Control",\u6587\u672C\u6846:"Text Box",\u5149\u6807\u68C0\u6D4B\u533A\u57DF:"CursorEventArea",\u6A21\u677F\u5F15\u7528\u63A7\u4EF6:"Reference Control",\u7F51\u683C\u89C6\u7A97:"Grid Scroller",\u56FE\u7247:"Image",\u9884\u8BBE\u6309\u94AE:"Preset Button",\u6587\u672C\u89C6\u7A97:"Text Window",\u6309\u952E\u63D0\u793A:"Key Hint",\u754C\u9762\u52A8\u6548:"UI Animation",\u5168\u5C4F\u52A8\u6548:"Fullscreen UI Animation",\u5149\u6807\u68C0\u6D4B:"CursorEventArea",\u6A21\u677F\u5F15\u7528:"Reference Control","\u5BFC\u51FA\u5185\u5BB9\u89E3\u7801\u5931\u8D25\uFF0C\u8BF7\u91CD\u8BD5\u6216\u5237\u65B0\u9875\u9762":"Unable to decode the export. Retry or refresh the page.","PC KEYBOARD \u753B\u5E03\uFF1A1600\xD7900 / 2100\xD7900":"PC KEYBOARD canvas: 1600\xD7900 / 2100\xD7900",\u624B\u673A:"Mobile","\u624B\u673A TOUCHSCREEN \u753B\u5E03\uFF1A1280\xD7720 / 1560\xD7720 / 1280\xD7960":"Mobile TOUCHSCREEN canvas: 1280\xD7720 / 1560\xD7720 / 1280\xD7960",\u5C1A\u65E0\u53EF\u7F16\u8F91\u503C:"No editable value available","\u672A\u8BC6\u522B\u9009\u9879 {0}\uFF08\u4FDD\u7559\u539F\u503C\uFF09":"Unknown option {0} (original value preserved)",\u7A7A:"None","\u65B0\u5EFA\u5E76\u7ED1\u5B9A{0}\u56FE\u7247":"Create and assign a {0} image",\u7FBD\u5316\u5BBD\u5EA6:"Soft Edge Width",\u7FBD\u5316\u8303\u56F4:"Soft Edge Range",\u56FE\u7247\u8BBE\u7F6E:"Image Settings",\u906E\u7F69\u8BBE\u7F6E:"Mask Settings",\u6587\u672C\u6846\u8BBE\u7F6E:"Text Box Settings",\u6309\u94AE\u8BBE\u7F6E:"Button Settings","{0}\u8BBE\u7F6E":"{0} Settings",\u8282\u70B9\u4FE1\u606F:"Node Information",\u53D8\u6362:"Transform",\u4F4D\u7F6E:"Location",\u5927\u5C0F:"Size",\u4E2D\u5FC3:"Pivot",\u521B\u5EFA\u8BBE\u7F6E:"Create Settings",\u624B\u67C4\u5BFC\u822A:"Controller Navigation",\u5B9E\u73B0\u72B6\u6001:"Support Status","\u5B58\u6863\u5185 Lua \u811A\u672C\uFF08{0}\uFF09":"Lua Scripts in This Save ({0})","\uFF0B \u65B0\u5EFA\u811A\u672C":"\uFF0B New Script","(\u672A\u547D\u540D\u811A\u672C)":"(Unnamed script)","\u6302\u8F7D\uFF1A{0} \xB7 {1}":"Attached to: {0} \xB7 {1}","\u672A\u6302\u8F7D\uFF08\u4EC5\u53EF\u88AB require\uFF09":"Not attached (available through require only)","\u4E0B\u8F7D\u8BE5\u811A\u672C .lua":"Download this script as .lua",\u5220\u9664\u8BE5\u811A\u672C:"Delete this script","\u8FD8\u6CA1\u6709\u811A\u672C\uFF0C\u70B9\u51FB\u201C\u65B0\u5EFA\u811A\u672C\u201D\u5F00\u59CB":"No scripts yet. Click \u201CNew Script\u201D to begin.","\u5C5E\u4E8E\u5B58\u6863\u201C{0}\u201D \xB7 Lua \u811A\u672C\u662F\u5B58\u6863\u5185\u72EC\u7ACB\u8D44\u4EA7":"Save: \u201C{0}\u201D \xB7 Lua scripts are separate assets within the save",\u672A\u547D\u540D\u5B58\u6863:"Untitled Save","\u811A\u672C {0}":"Script {0}","\u811A\u672C\u8DEF\u5F84\uFF08\u5DE5\u4F5C\u533A\u76F8\u5BF9\u8DEF\u5F84\uFF09":"Script path (relative to the workspace)","\u6302\u8F7D\u76EE\u6807\uFF08\u5BA2\u6237\u7AEF\u63A7\u4EF6 / \u5BA2\u6237\u7AEF\u63A7\u4EF6\u6A21\u677F\uFF09":"Attach to (client control / client control template)","\u672A\u6302\u8F7D\uFF08\u4E0D\u751F\u6548\uFF0C\u4EC5\u53EF\u88AB require\uFF09":"Not attached (does not run automatically; require only)","\u670D\u52A1\u5668\u63A7\u4EF6\u6A21\u677F \xB7 \u5BA2\u6237\u7AEF\u63A7\u4EF6\u5BB9\u5668\u5185":"Server Control Template \xB7 Inside the Client Control Container",\u5BA2\u6237\u7AEF\u63A7\u4EF6\u6A21\u677F:"Client Control Template","Lua \u6E90\u7801":"Lua Source","-- \u5728\u8FD9\u91CC\u8F93\u5165\u5BA2\u6237\u7AEF Lua\uFF1B\u811A\u672C\u53EA\u6709\u6302\u8F7D\u5230\u5BA2\u6237\u7AEF\u63A7\u4EF6\u540E\u624D\u4F1A\u5728\u8BD5\u73A9\u65F6\u751F\u6548":"-- Enter client-side Lua here; attach the script to a client control to run it in playtests",\u6709\u672A\u4FDD\u5B58\u7684\u4FEE\u6539:"Unsaved changes","\u5DF2\u6302\u8F7D\uFF1A{0}":"Attached to: {0}","\u5F53\u524D\u672A\u6302\u8F7D\uFF0C\u8BD5\u73A9\u65F6\u4E0D\u4F1A\u81EA\u52A8\u8FD0\u884C":"Not attached; it will not run automatically in playtests","\u21E9 \u811A\u672C\u5305 JSON":"\u21E9 Script Bundle JSON","\u21E9 \u811A\u672C\u5305 GIA":"\u21E9 Script Bundle GIA",\u4FDD\u5B58\u811A\u672C:"Save Script",\u8BF7\u65B0\u5EFA\u6216\u9009\u62E9\u4E00\u4E2A\u811A\u672C:"Create or select a script","PlayerSelf \u5F53\u524D\u73A9\u5BB6":"PlayerSelf \u2014 Current Player","AllPlayers \u5168\u90E8\u73A9\u5BB6":"AllPlayers \u2014 All Players","Level \u5173\u5361":"Level \u2014 Stage","Player1 \u73A9\u5BB61":"Player1 \u2014 Player 1","Player2 \u73A9\u5BB62":"Player2 \u2014 Player 2","Player3 \u73A9\u5BB63":"Player3 \u2014 Player 3","Player4 \u73A9\u5BB64":"Player4 \u2014 Player 4","Player5 \u73A9\u5BB65":"Player5 \u2014 Player 5","Player6 \u73A9\u5BB66":"Player6 \u2014 Player 6","Player7 \u73A9\u5BB67":"Player7 \u2014 Player 7","Player8 \u73A9\u5BB68":"Player8 \u2014 Player 8","\u89C4\u5219 {0} \u9700\u8981\u76D1\u542C\u4FE1\u53F7\u540D":"Rule {0} needs a signal name to listen for","\u89C4\u5219 {0} \u81F3\u5C11\u9700\u8981\u4E00\u4E2A\u52A8\u4F5C":"Rule {0} needs at least one action","\u89C4\u5219 {0} \u52A8\u4F5C {1} \u9700\u8981\u5BA2\u6237\u7AEF\u4FE1\u53F7\u540D":"Rule {0}, action {1} needs a client signal name","\u89C4\u5219 {0} \u52A8\u4F5C {1} \u9700\u8981\u53D8\u91CF\u540D":"Rule {0}, action {1} needs a variable name","{0}\u6765\u6E90":"{0} source","\u5B57\u9762\u91CF\uFF08JSON\uFF09":"Literal (JSON)",\u5F15\u7528\u76D1\u542C\u4FE1\u53F7\u53C2\u6570:"Use a received signal argument","{0}\u53C2\u6570\u5E8F\u53F7":"{0} argument index","{0}\u5B57\u9762\u91CF":"{0} literal","\u5BA2\u6237\u7AEF\u4FE1\u53F7\u53C2\u6570\uFF08\u6309\u6DFB\u52A0\u987A\u5E8F\uFF09":"Client signal arguments (in order)","\u53C2\u6570 {0}":"Argument {0}",\u5220\u9664\u53C2\u6570:"Remove argument","\u6682\u65E0\u53C2\u6570\uFF0C\u53EF\u53D1\u9001\u7A7A\u53C2\u6570\u5217\u8868":"No arguments; an empty argument list can be sent","\uFF0B \u6DFB\u52A0\u53C2\u6570":"\uFF0B Add Argument",\u670D\u52A1\u7AEF\u903B\u8F91:"Server Logic","\u5C5E\u4E8E\u5B58\u6863\u201C{0}\u201D \xB7 \u76D1\u542C\u5BA2\u6237\u7AEF\u4FE1\u53F7\u540E\u8BBE\u7F6E Level / \u73A9\u5BB6\u53D8\u91CF\uFF0C\u6216\u5411\u6307\u5B9A\u73A9\u5BB6\u53D1\u9001\u5BA2\u6237\u7AEF\u811A\u672C\u4FE1\u53F7":"Save: \u201C{0}\u201D \xB7 Listen for client signals to set Level / player variables or send client script signals to selected players",\u4FDD\u5B58\u670D\u52A1\u7AEF\u903B\u8F91:"Save Server Logic","\u8FD9\u662F\u6A21\u62DF\u5668\u5B58\u6863\u683C\u5F0F\uFF0C\u4E0D\u662F\u5B98\u65B9\u8282\u70B9\u56FE\u3002PlayerSelf \u8868\u793A\u53D1\u4FE1\u53F7\u7684\u90A3\u4F4D\u73A9\u5BB6\uFF1BPlayer1\u20138 \u662F\u56FA\u5B9A\u5EA7\u4F4D\uFF1BAllPlayers \u5411\u672C\u5C40\u5168\u90E8\u8BD5\u73A9\u73A9\u5BB6\u5E7F\u64AD\u3002":"This uses the simulator's save format. PlayerSelf is the player who sent the signal; Player1\u20138 are fixed slots; AllPlayers broadcasts to every player in this playtest.","\u89C4\u5219 {0}":"Rule {0}",\u76D1\u542C\u4FE1\u53F7\u540D:"Signal to listen for","\u89C4\u5219 {0} \u76D1\u542C\u4FE1\u53F7\u540D":"Rule {0}: signal to listen for",\u5220\u9664\u89C4\u5219:"Remove rule","\u52A8\u4F5C {0}":"Action {0}","\u89C4\u5219 {0} \u52A8\u4F5C {1} \u7C7B\u578B":"Rule {0}, action {1}: type",\u8BBE\u7F6E\u81EA\u5B9A\u4E49\u53D8\u91CF:"Set Custom Variable",\u53D1\u9001\u5BA2\u6237\u7AEF\u811A\u672C\u4FE1\u53F7:"Send Client Script Signal","\u53D1\u7ED9\u5F53\u524D\u73A9\u5BB6\u3001\u6307\u5B9A\u73A9\u5BB6\u6216\u5168\u90E8\u73A9\u5BB6":"Send to the current player, a selected player, or all players","\u5199\u5165 Level / \u5F53\u524D\u73A9\u5BB6 / \u73A9\u5BB61-8":"Write to Level / current player / Player1\u20138",\u5220\u9664\u52A8\u4F5C:"Remove action",\u53D1\u9001\u76EE\u6807:"Send to",\u5BA2\u6237\u7AEF\u4FE1\u53F7\u540D:"Client signal name",\u5B9E\u4F53:"Entity",\u53D8\u91CF\u540D:"Variable name",\u53D8\u91CF\u503C:"Variable value","\uFF0B \u8BBE\u7F6E\u81EA\u5B9A\u4E49\u53D8\u91CF":"\uFF0B Set Custom Variable","\uFF0B \u53D1\u9001\u5BA2\u6237\u7AEF\u811A\u672C\u4FE1\u53F7":"\uFF0B Send Client Script Signal","\u8FD8\u6CA1\u6709\u76D1\u542C\u89C4\u5219\u3002\u8BD5\u73A9\u65F6\u5BA2\u6237\u7AEF SendSignal \u4E0D\u4F1A\u81EA\u52A8\u6539\u53D8\u91CF\u6216\u56DE\u4F20\u4FE1\u53F7\u3002":"No signal rules yet. In a playtest, client SendSignal calls do not automatically change variables or send signals back.","\uFF0B \u6DFB\u52A0\u76D1\u542C\u89C4\u5219":"\uFF0B Add Signal Rule","\u4FDD\u5B58\u540E\u4F1A\u5199\u5165\u5F53\u524D\u5B58\u6863\uFF0C\u4E0B\u6B21\u8BD5\u73A9\u751F\u6548":"Saved to the current save; applies on the next playtest","\u8BF7\u8F93\u5165 1\u20132147483647 \u4E4B\u95F4\u7684\u6574\u6570\u7D22\u5F15\u3002":"Enter an integer index from 1 to 2147483647.",\u5BA2\u6237\u7AEF\u63A7\u4EF6\u7D22\u5F15:"Client Control Index",\u4FDD\u5B58\u4E2D:"Saving",\u4FEE\u6539:"Edit",\u81EA\u52A8\u4FEE\u6539\u5176\u4ED6\u5BA2\u6237\u7AEF\u7D22\u5F15\u503C:"Automatically fill other client control indices",\u81EA\u52A8\u586B\u5145\u7D22\u5F15\u9884\u89C8:"Index Autofill Preview","\u4EE5\u5F53\u524D\u63A7\u4EF6\u4E3A\u57FA\u51C6\uFF0C\u6309 GIA \u5BFC\u5165\u987A\u5E8F\u586B\u5145 {0} \u4E2A\u63A7\u4EF6\uFF08{1} \u4E2A\u6A21\u677F\u53CA\u5176\u5B50\u63A7\u4EF6\uFF09\u3002":"Using this control as the anchor, assign indices in GIA import order to {0} controls ({1} templates and their children).","\u7D22\u5F15\u8303\u56F4\uFF1A{0}\u2013{1}":"Index range: {0}\u2013{1}","\u7D22\u5F15\u8303\u56F4\u8D85\u51FA\u6709\u6548\u8303\u56F4\uFF0C\u8BF7\u68C0\u67E5\u8F93\u5165\u3002":"Index range exceeds the valid bounds. Check your input.","\u9002\u7528\u4E8E\u6574\u6279\u5BFC\u5165\u540E\u672A\u589E\u5220\u3001\u91CD\u6392\u7684\u6A21\u677F\u3002\u670D\u52A1\u7AEF\u754C\u9762\u548C\u811A\u672C\u7D22\u5F15\u9700\u5355\u72EC\u586B\u5199\u3002":"For templates imported together without structural changes or reordering. Server UI and script indices must be entered separately.","\u586B\u5199 GIA \u5BFC\u5165\u540E\u5B9E\u9645\u663E\u793A\u7684\u7D22\u5F15\uFF1B\u4FEE\u6539\u540E\u4ECE\u9875\u9762\u4E0A\u65B9\u7EE7\u7EED\u540C\u6B65 Lua\u3002":"Enter the actual index shown after importing the GIA. Then update Lua references using the notice above.",\u6302\u8F7D\u5230\u8BE5\u63A7\u4EF6\u7684\u811A\u672C:"Scripts Attached to This Control","\u89E3\u9664\u6302\u8F7D\uFF08\u4FDD\u7559\u811A\u672C\uFF09":"Detach (keep script)","\u8BE5\u63A7\u4EF6\u5C1A\u672A\u6302\u8F7D\u811A\u672C\u3002\u811A\u672C\u6302\u8F7D\u5230\u5BA2\u6237\u7AEF\u63A7\u4EF6\u540E\u624D\u4F1A\u5728\u8BD5\u73A9\u65F6\u751F\u6548\u3002":"No script is attached to this control. Attach a script to a client control to run it in playtests.",\u6302\u8F7D\u5DF2\u6709\u811A\u672C:"Attach an Existing Script",\u9009\u62E9\u811A\u672C\u6302\u8F7D\u5230\u8BE5\u63A7\u4EF6:"Choose a script to attach to this control","\u9009\u62E9\u811A\u672C\u2026":"Select a script\u2026","\uFF08\u5F53\u524D\u6302\u8F7D\u4E8E {0} \xB7 {1}\uFF0C\u5C06\u79FB\u52A8\u5230\u6B64\u63A7\u4EF6\uFF09":"(currently on {0} \xB7 {1}; will move to this control)","\uFF08\u672A\u6302\u8F7D\uFF09":"(not attached)","\u5B58\u6863\u5185\u8FD8\u6CA1\u6709\u5176\u4ED6\u811A\u672C\uFF0C\u53EF\u70B9\u51FB\u4E0B\u65B9\u6309\u94AE\u65B0\u5EFA\u3002":"No other scripts in this save. Create one using the button below.","\uFF0B \u65B0\u5EFA\u811A\u672C\u5E76\u6302\u8F7D\u5230\u6B64\u63A7\u4EF6":"\uFF0B Create and Attach a Script","\u7F3A\u5C11\u56FE\u7247 {0}":"Missing image {0}",\u672C\u5730\u5B57\u4F53\u52A0\u8F7D\u5931\u8D25:"Failed to load the local font","\u5F53\u524D\u8D44\u4EA7\u5DF2\u5207\u6362\uFF0C\u8BF7\u91CD\u65B0\u9009\u62E9\u63A7\u4EF6\u540E\u4FEE\u6539\u7D22\u5F15":"The active asset changed. Select the control again before changing its index.","\u63A7\u4EF6\u7D22\u5F15\u5DF2\u4FEE\u6539\u3002\u8BF7\u9009\u62E9\u4E0A\u65B9\u300C\u5168\u91CF\u66FF\u6362\u811A\u672C\u7D22\u5F15\u300D\u6216\u300C\u590D\u5236\u63D0\u793A\u8BCD\u7ED9 AI\u300D\u3002":"Control indices changed. Choose \u201CReplace All Script Indices\u201D or \u201CCopy Task for AI\u201D above.","\u8BF7\u5148\u4FDD\u5B58\u5B8C\u6574\u5B58\u6863\uFF0C\u518D\u590D\u5236\u63D0\u793A\u8BCD\uFF1BAI \u9700\u8981\u8BFB\u53D6\u8FD9\u6B21\u5B9E\u9645\u4FEE\u6539\u7684\u5B58\u6863\u3002":"Save the complete project before copying the task. The AI needs the save containing these changes.","\u8BF7\u5B8C\u6210\u6A21\u62DF\u5668\u63A7\u4EF6\u7D22\u5F15\u4E0E Lua \u5F15\u7528\u540C\u6B65\u3002":"Update the simulator's control indices and Lua references.","\u5DE5\u4F5C\u533A\uFF1A{0}":"Workspace: {0}",\u8BF7\u5148\u6838\u5BF9\u5DE5\u4F5C\u533A:"Verify the workspace first","\u6700\u65B0\u5B8C\u6574\u5B58\u6863\uFF1A{0}\uFF08\u7F16\u8F91\u5668\u5DF2\u4FDD\u5B58\uFF09":"Latest complete save: {0} (saved by the editor)","Lua \u6587\u4EF6\uFF1A{0}":"Lua files: {0}","\u5185\u8054\u811A\u672C {0}":"Inline script {0}",\u6682\u65E0:"None","\u5148\u4ECE\u4E0A\u8FF0\u6587\u4EF6\u91CD\u65B0\u52A0\u8F7D\u6700\u65B0\u5B58\u6863\uFF0C\u4E0D\u8981\u4F7F\u7528\u53E6\u4E00\u4E2A MCP/Web \u8FDB\u7A0B\u91CC\u7684\u65E7\u5DE5\u7A0B\u3002":"Reload the latest save from the file above. Do not use an older project from another MCP/Web process.","\u83B7\u53D6\u65B0\u65E7\u6620\u5C04\uFF1A\u8BFB\u53D6\u8BE5 JSON \u9876\u5C42\u7684 controlGuidChanges \u6570\u7EC4\uFF0C\u5F53\u524D\u5171 {0} \u6761\uFF0C\u5FC5\u987B\u8BFB\u53D6\u5168\u90E8\u8BB0\u5F55\u3002oldGuid \u662F\u65E7\u7D22\u5F15\uFF0CnewGuid \u662F\u65B0\u7D22\u5F15\uFF1BcontrolAsset + controlId \u6807\u8BC6\u63A7\u4EF6\uFF0CcontrolName \u662F\u540D\u79F0\uFF0Cid \u662F\u8BB0\u5F55\u7F16\u53F7\uFF0CbatchId \u662F\u6279\u6B21\u3002":"Read all {0} entries in the save's top-level controlGuidChanges array. oldGuid/newGuid are the old/new indices. controlAsset + controlId identifies the control; controlName is its name; id identifies the change; batchId identifies the batch.","\u83B7\u53D6\u811A\u672C\uFF1A\u8BFB\u53D6 assets.scripts \u6570\u7EC4\uFF1B\u6BCF\u9879\u7684 source \u662F\u5B58\u6863\u5185\u6E90\u7801\uFF0Cpath \u662F\u811A\u672C\u6587\u4EF6\u8DEF\u5F84\uFF08\u76F8\u5BF9\u8DEF\u5F84\u4EE5\u5DE5\u4F5C\u533A\u4E3A\u57FA\u51C6\uFF09\u3002":"Read scripts from assets.scripts. Each source contains the saved code; path identifies its file, relative to the workspace where applicable.","\u6309\u63A7\u4EF6\u8EAB\u4EFD\u548C\u53D8\u66F4\u987A\u5E8F\u6838\u5BF9\u5168\u90E8 Lua \u811A\u672C\u7684\u7D22\u5F15\u5E38\u91CF\u3001\u914D\u7F6E\u8868\u4E0E\u8C03\u7528\uFF0C\u4FEE\u6539\u5B58\u6863\u4E2D\u7684 source \u53CA\u76F8\u5173 Lua \u6E90\u6587\u4EF6\u548C\u751F\u6210\u5668\u6620\u5C04\uFF0C\u907F\u514D\u91CD\u5EFA\u540E\u8986\u76D6\u3002\u4E0D\u8981\u5168\u5C40\u66FF\u6362\u540C\u503C\u6570\u5B57\uFF0C\u4E5F\u4E0D\u8981\u6539\u8FD0\u884C\u65F6\u5B9E\u4F8B ID \u6216\u56FE\u7247\u8D44\u6E90 ID\u3002":"Review index constants, tables, and calls in all Lua scripts by control identity and change order. Update saved source, related Lua files, and generator mappings. Do not globally replace equal numbers or alter runtime instance IDs or image resource IDs.","\u540C\u4E00 batchId \u662F\u540C\u65F6\u6620\u5C04\uFF0C\u987B\u6309\u539F\u503C\u4E00\u6B21\u6027\u5E94\u7528\uFF0C\u4E0D\u80FD\u9010\u6761\u66FF\u6362\u5BFC\u81F4\u7D22\u5F15\u4E32\u6539\u3002":"Changes sharing batchId form one simultaneous mapping. Apply them to original values together to avoid cascading replacements.","\u68C0\u67E5\u65E7\u7D22\u5F15\u5F15\u7528\u5E76\u91CD\u65B0\u8BD5\u73A9\uFF1B\u4EC5\u5728\u5F15\u7528\u5168\u90E8\u540C\u6B65\u6216\u660E\u786E\u6CA1\u6709\u5F15\u7528\u540E\uFF0C\u7528 acknowledgeControlGuidChanges \u7684 changeIds \u6E05\u9664\u5DF2\u6838\u5BF9\u8BB0\u5F55\uFF0C\u4FDD\u5B58\u5B8C\u6574\u5B58\u6863\u3002\u672A\u5224\u65AD\u7684\u8BB0\u5F55\u7EE7\u7EED\u4FDD\u7559\u3002":"Check old references and playtest again. Only after updating every reference or confirming none exist, acknowledge reviewed changeIds with acknowledgeControlGuidChanges and save. Keep unreviewed changes.","\u5B8C\u6210\u540E\u544A\u77E5\u7528\u6237\u91CD\u65B0\u8F7D\u5165\u8FD9\u4E2A\u5B58\u6863\uFF0C\u518D\u901A\u8FC7\u300CLua \u811A\u672C \u2192 \u5B9E\u673A\u811A\u672C\u540C\u6B65\u300D\u66F4\u65B0\u6E38\u620F\u6587\u4EF6\uFF1B\u4E0D\u8981\u91CD\u65B0\u5BFC\u5165 GIA\uFF0C\u4E5F\u4E0D\u8981\u64C5\u81EA\u590D\u5236\u5230\u6E38\u620F\u76EE\u5F55\u3002":"Tell the user to reload this save and use Lua Scripts \u2192 Sync Scripts to Game. Do not reimport GIA or copy files into the game directory without authorization.","\u5B58\u6863\u5DF2\u4FDD\u5B58\uFF0C\u63D0\u793A\u8BCD\u5DF2\u590D\u5236\uFF0C\u5305\u542B\u5B8C\u6574\u6620\u5C04\u7684\u8BFB\u53D6\u65B9\u5F0F\u3002\u7C98\u8D34\u7ED9 AI\uFF1B\u5904\u7406\u540E\u91CD\u65B0\u8F7D\u5165\u5B58\u6863\u3002":"Save written and task copied, including instructions for reading the full mapping. Paste it into the AI chat, then reload the save when finished.","\u5B58\u6863\u5DF2\u4FDD\u5B58\u3002\u526A\u8D34\u677F\u4E0D\u53EF\u7528\uFF0C\u53EF\u4ECE\u4E0B\u65B9\u6587\u672C\u6846\u624B\u52A8\u590D\u5236\u63D0\u793A\u8BCD\u3002":"Save written. Clipboard access is unavailable; copy the task from the text box below.","\u56FE\u7247 {0} \u5DF2\u91CD\u65B0\u4E0B\u8F7D\uFF1B\u540C\u6E90\u8BD5\u73A9\u9875\u4F1A\u540C\u6B65\u5237\u65B0\u3002":"Image {0} downloaded again. Playtest pages on this origin will refresh it too.","{0}\u56FE\u7247":"{0} Image","{0}\u5DF2\u521B\u5EFA\u5E76\u7ED1\u5B9A\uFF1B\u53EF\u5728\u63A7\u4EF6\u6811\u4E2D\u7EE7\u7EED\u7F16\u8F91\u56FE\u7247\u3002":"Created and assigned {0}. Edit the image in the control tree.","Lua \u811A\u672C\u5DF2\u4FDD\u5B58\u5230\u5F53\u524D\u5B58\u6863":"Lua script saved to the current save",\u670D\u52A1\u7AEF\u903B\u8F91\u5DF2\u4FDD\u5B58\u5230\u5F53\u524D\u5B58\u6863:"Server logic saved to the current save",\u5DF2\u65B0\u5EFA\u811A\u672C\u5E76\u6302\u8F7D\u5230\u8BE5\u63A7\u4EF6:"Script created and attached to this control","\u5DF2\u65B0\u5EFA\u811A\u672C\uFF0C\u53EF\u7F16\u8F91\u8DEF\u5F84\u3001\u6E90\u7801\u548C\u6302\u8F7D\u76EE\u6807":"Script created. Edit its path, source, and attachment target.",\u811A\u672C\u5DF2\u5220\u9664:"Script deleted","\u5DF2\u89E3\u9664\u6302\u8F7D\uFF0C\u811A\u672C\u4ECD\u4FDD\u7559\u5728\u5B58\u6863\u4E2D":"Script detached and kept in the save",\u5DF2\u6302\u8F7D\u5230\u5F53\u524D\u63A7\u4EF6:"Attached to the current control","\u5DF2\u5207\u6362\u5230\u5B58\u6863\u5185\u7684{0}":"Switched to {0} in this save","{0}\u6A21\u677F":"{0} Template","\u5DF2\u65B0\u589E{0}\u6A21\u677F":"Created a {0} template","\u5DF2\u6DFB\u52A0{0}\u5B50\u63A7\u4EF6":"Added a {0} child control","\u5DF2\u5BFC\u51FA {0} \u4E2A GIA \u6587\u4EF6\uFF08{1}\uFF09\uFF1B\u82E5\u6D4F\u89C8\u5668\u62E6\u622A\u591A\u6587\u4EF6\u4E0B\u8F7D\uFF0C\u8BF7\u5141\u8BB8\u540E\u91CD\u8BD5\u3002":"Exported {0} GIA files ({1}). If downloads are blocked, allow multiple downloads and retry.","\u5DF2\u5BFC\u51FA {0}\uFF1B\u8BF7\u67E5\u770B\u4E0A\u65B9\u5BFC\u51FA\u8BF4\u660E\u3002":"Exported {0}. Review the export notes above.","\u5DF2\u5BFC\u51FA {0}":"Exported {0}","\u5DF2\u4ECE\u5DE5\u4F5C\u533A\u62C9\u53D6 {0}":"Loaded {0} from the workspace","\u4EC5\u652F\u6301 .json\u3001.gia \u6216 .lua \u6587\u4EF6":"Only .json, .gia, and .lua files are supported","\u5DF2\u5BFC\u5165 {0}":"Imported {0}","\u5DF2\u4FDD\u5B58\u5230 {0}":"Saved to {0}","\u6B63\u5728\u8F7D\u5165\u5343\u661F\u6C99\u7BB1\u2026":"Loading Miliastra Sandbox\u2026","\u5DF2\u5207\u6362\u5230{0}":"Switched to {0}",\u4FDD\u5B58\u5230\u5DE5\u4F5C\u533A:"Save to Workspace",\u5B58\u6863\u76F8\u5BF9\u8DEF\u5F84:"Save path (relative to workspace)",\u53D6\u6D88:"Cancel",\u4FDD\u5B58:"Save",\u5DE5\u4F5C\u533A\u672A\u7ED1\u5B9A:"No workspace bound",\u5C1A\u672A\u5BFC\u5165\u6587\u4EF6:"No file imported","\u5B58\u6863\uFF1A{0}":"Save: {0}","\u5DE5\u4F5C\u533A\uFF1A{0} \xB7 \u5F53\u524D\u8D44\u4EA7\uFF1A{1}":"Workspace: {0} \xB7 Active asset: {1}",\u672A\u7ED1\u5B9A:"Unbound",UI\u63A7\u4EF6:"UI Controls",\u76EE\u6807\u8BBE\u5907:"Target device",\u5C4F\u5E55\u6BD4\u4F8B:"Aspect ratio",\u753B\u5E03\u7F29\u653E:"Canvas zoom",\u9002\u5E94:"Fit","\u670D\u52A1\u7AEF\u903B\u8F91\uFF1A\u76D1\u542C\u4FE1\u53F7 / \u81EA\u5B9A\u4E49\u53D8\u91CF / \u73A9\u5BB61-8 \u56DE\u4F20":"Server logic: signals / custom variables / Player1\u20138 responses","Lua \u811A\u672C\u8D44\u4EA7\u7F16\u8F91":"Lua script asset editor",\u4FDD\u5B58\u5B8C\u6574\u5B58\u6863\u5230\u5DE5\u4F5C\u533A:"Save the complete project to the workspace",\u4FDD\u5B58\u5B58\u6863:"Save Project",\u4ECE\u5DE5\u4F5C\u533A\u62C9\u53D6\u5B58\u6863:"Load a save from the workspace","\u2913 \u5DE5\u4F5C\u533A\u5B58\u6863":"\u2913 Workspace Saves","\u672A\u53D1\u73B0 qxqy-simulator-save":"No qxqy-simulator-save found",\u5148\u7ED1\u5B9A\u4F1A\u8BDD\u5DE5\u4F5C\u533A:"Bind a session workspace first","\u5BFC\u5165\u5B58\u6863\u3001\u5355\u9879 UI \u8D44\u4EA7\u6216 Lua":"Import a save, individual UI asset, or Lua script","\u21E7 \u5BFC\u5165":"\u21E7 Import",\u5BFC\u51FA\u683C\u5F0F:"Export format","\u21E9 \u5BFC\u51FA":"\u21E9 Export","\u8D44\u4EA7\u5305 JSON\uFF08\u4E09\u7C7B\u5408\u4E00\uFF09":"Complete Save JSON (all three asset types)","\u8D44\u4EA7\u5305 GIA\uFF08\u5DF2\u6539\u52A8\u9879\uFF09":"Asset Bundle GIA (modified assets)","\u8D44\u4EA7\u5305 GIA \u6574\u5408\u5305\uFF08\u63A7\u4EF6+\u811A\u672C\uFF09":"Combined GIA (controls + scripts)","\u5F53\u524D\u754C\u9762\uFF08\u5DE6\u680F\u6B63\u5728\u770B\u7684\u90A3\u68F5\u6811\uFF09":"Current UI (the tree shown on the left)","\u5F53\u524D\u754C\u9762 Authoring JSON":"Current UI Authoring JSON","\u5F53\u524D\u754C\u9762 GIA":"Current UI GIA",\u670D\u52A1\u5668\u63A7\u4EF6\u6A21\u677F:"Server Control Template","\u5BA2\u6237\u7AEF\u63A7\u4EF6\u6A21\u677F\uFF08\u4EC5\u5F53\u5DE6\u680F\u5207\u5230\u300CUI\u63A7\u4EF6-\u5BA2\u6237\u7AEF\u300D\u65F6\u624D\u662F\u9875\u9762\u5185\u5BB9\uFF09":"Client Control Templates (shown in the Client UI tab)","Lua \u811A\u672C":"Lua Scripts","\u811A\u672C\u5305 JSON\uFF08\u5168\u90E8\u811A\u672C\uFF09":"Script Bundle JSON (all scripts)","\u811A\u672C\u5305 GIA\uFF08\u5168\u90E8\u811A\u672C\uFF09":"Script Bundle GIA (all scripts)","\u6253\u5F00\u8BD5\u73A9\uFF1B\u65B0\u7A97\u53E3\u4E0D\u53EF\u7528\u65F6\u5728\u5E94\u7528\u5185\u8BD5\u73A9":"Open a playtest; use an embedded view if new windows are unavailable","\u6B63\u5728\u51C6\u5907\u2026":"Preparing\u2026","\u25B7 \u8BD5\u73A9 \u2197":"\u25B7 Playtest \u2197",\u91CD\u65B0\u8F7D\u5165:"Reload",\u7F16\u8F91\u9875\u9762:"Editor page","UI \u7F16\u8F91":"UI Editor","\u4E00\u4E2A\u5B58\u6863 \xB7 \u670D\u52A1\u5668\u63A7\u4EF6\u6A21\u677F + \u5BA2\u6237\u7AEF\u63A7\u4EF6\u6A21\u677F + Lua \u811A\u672C + \u670D\u52A1\u7AEF\u903B\u8F91":"One save \xB7 Server Control Templates + Client Control Templates + Lua Scripts + Server Logic","\u4E0A\u6B21\u5BFC\u51FA\u8BF4\u660E\uFF08{0} \u9879\uFF0C\u8BF7\u6838\u5BF9\u5BFC\u5165\u540E\u7684\u6548\u679C\uFF09":"Export notes ({0}; verify the result after import)",\u5173\u95ED\u5BFC\u51FA\u8BF4\u660E:"Close export notes",\u7F16\u8F91\u8D44\u6E90\u7C7B\u578B:"Asset type","\u7F16\u8F91\u5B58\u6863\u5185\u7684\u670D\u52A1\u7AEF UI \u63A7\u4EF6":"Edit the save's server UI controls","UI\u63A7\u4EF6-\u670D\u52A1\u7AEF":"Server UI",\u7F16\u8F91\u5B58\u6863\u5185\u7684\u5BA2\u6237\u7AEF\u63A7\u4EF6\u6A21\u677F:"Edit the save's client control templates","UI\u63A7\u4EF6-\u5BA2\u6237\u7AEF":"Client UI",\u6A21\u677F\u4E0E\u5B50\u63A7\u4EF6:"Templates and Children",\u63A7\u4EF6\u6811:"Control Tree","{0} \u4E2A\u6A21\u677F \xB7 {1} \u4E2A\u63A7\u4EF6":"{0} templates \xB7 {1} controls","{0} \u4E2A\u8282\u70B9":"{0} nodes",\u641C\u7D22\u6A21\u677F\u6216\u63A7\u4EF6:"Search templates or controls",\u641C\u7D22\u63A7\u4EF6:"Search controls",\u6A21\u677F:"Template",\u6682\u4E0D\u652F\u6301:"Not supported yet","\u5728\u753B\u5E03\u4E0A\u663E\u793A\uFF08\u4E0D\u5F71\u54CD\u63A7\u4EF6\u521D\u59CB\u53EF\u89C1\u6027\uFF09":"Show on canvas (does not change initial visibility)","\u5728\u753B\u5E03\u4E0A\u9690\u85CF\uFF08\u4E0D\u5F71\u54CD\u63A7\u4EF6\u521D\u59CB\u53EF\u89C1\u6027\uFF09":"Hide on canvas (does not change initial visibility)","{0}\u753B\u5E03\u53EF\u89C1\u6027":"Canvas visibility: {0}",\u6CA1\u6709\u5339\u914D\u7684\u63A7\u4EF6:"No matching controls",\u5C42\u7EA7\u4E0E\u6A21\u677F\u8FB9\u754C:"Hierarchy and Templates",\u7236\u7EA7\u63A7\u4EF6:"Parent control",\u5DF2\u63D0\u5347\u4E3A\u53EF\u5B9E\u4F8B\u5316\u9876\u5C42\u6A21\u677F:"Promoted to an instantiable top-level template",\u5DF2\u8C03\u6574\u63A7\u4EF6\u7236\u7EA7:"Control parent changed","\u9876\u5C42\u6A21\u677F\uFF08\u53EF\u5B9E\u4F8B\u5316\uFF09":"Top-level template (instantiable)",\u5728\u540C\u7EA7\u4E2D\u4E0A\u79FB:"Move up among siblings",\u5728\u540C\u7EA7\u4E2D\u4E0B\u79FB:"Move down among siblings","\u8BE5\u8282\u70B9\u4F1A\u5199\u5165\u72EC\u7ACB UIControlTemplate\uFF0C\u53EF\u76F4\u63A5\u4F5C\u4E3A prefabId\u3002":"This node exports as a separate UIControlTemplate and can be used directly as prefabId.","\u5F53\u524D\u4E3A\u7B2C {0} \u5C42\u5B50\u63A7\u4EF6\uFF0C\u4E0D\u4F1A\u5355\u72EC\u6210\u4E3A prefabId\u3002":"This is a depth-{0} child control, not a standalone template for prefabId instantiation.",\u65B0\u589E\u72EC\u7ACB\u53EF\u5B9E\u4F8B\u5316\u6A21\u677F:"Create a separate instantiable template","\u6DFB\u52A0\u5230{0}":"Add to {0}",\u5F53\u524D\u63A7\u4EF6:"Current control",\u65B0\u589E\u9876\u5C42\u6A21\u677F:"Create a top-level template",\u9876\u5C42:"Top Level",\u5B50\u63A7\u4EF6:"Child",\u65B0\u589E:"New",\u6DFB\u52A0:"Add","Lua \u6A21\u677F\u9884\u89C8":"Lua Template Preview",\u754C\u9762\u63A7\u4EF6\u7EC4:"UI Control Group","{0} \xB7 {1}\xD7{2} \xB7 \u5DE6\u4E0B\u539F\u70B9":"{0} \xB7 {1}\xD7{2} \xB7 Bottom-left origin","\u25CF {0}\u7F16\u8F91":"\u25CF Editing {0}",\u63A7\u4EF6:"Control","\u5F53\u524D\uFF1A{0}":"Selected: {0}","GIA \u5BFC\u51FA\u540E\u53EF\u5728 Lua \u4E2D\u6309 prefabId \u5B9E\u4F8B\u5316":"After exporting GIA, instantiate in Lua using prefabId","\u5B57\u6BB5\u5728\u5931\u7126\u6216 Enter \u65F6\u63D0\u4EA4":"Commit fields on blur or Enter","\u4F5C\u8005 B\u7AD9\u4E3B\u9875":"Author's Bilibili profile",\u4F5C\u8005B\u7AD9:"Bilibili",\u53EF\u5B9E\u4F8B\u5316:"Instantiable","\u6A21\u677F\u7D22\u5F15 ":"Template index ","\u63A7\u4EF6 GUID ":"Control GUID ",\u8282\u70B9:"Node",\u57FA\u7840\u5C5E\u6027:"Properties",\u811A\u672C:"Script","\u6B63\u5728\u5237\u65B0\u7D20\u6750\u2026":"Refreshing asset\u2026","\u21BB \u91CD\u65B0\u4E0B\u8F7D\u6B64\u7D20\u6750":"\u21BB Download This Asset Again","\u767D\u540D\u5355\u56FE\u7247\u6309\u9700\u7F13\u5B58\uFF1B\u5237\u65B0\u4F1A\u91CD\u65B0\u8BBF\u95EE\u7D20\u6750\u6E90\u3002":"Supported images are cached on demand. Refreshing downloads them from the asset source.","\u232B \u5220\u9664\u5F53\u524D\u6A21\u677F":"\u232B Delete Template","\u232B \u5220\u9664\u5F53\u524D\u63A7\u4EF6":"\u232B Delete Control",\u8BF7\u9009\u62E9\u4E00\u4E2A\u63A7\u4EF6:"Select a control",'<!doctype html><meta charset="utf-8"><title>\u6B63\u5728\u51C6\u5907\u8BD5\u73A9\u2026</title><p>\u6B63\u5728\u4FDD\u5B58\u9879\u76EE\u5E76\u51C6\u5907\u8BD5\u73A9\u2026</p>':'<!doctype html><meta charset="utf-8"><title>Preparing playtest\u2026</title><p>Saving the project and preparing the playtest\u2026</p>',"\u505C\u6B62\u8BD5\u73A9\u5931\u8D25\uFF0C\u8BF7\u91CD\u8BD5\uFF1A{0}":"Could not stop the playtest. Retry: {0}","\u8BD5\u73A9\u9875\u672A\u80FD\u52A0\u8F7D\uFF0C\u8BF7\u8FD4\u56DE\u7F16\u8F91\u540E\u91CD\u8BD5\u3002":"The playtest page could not load. Return to the editor and retry.",\u8BD5\u73A9\u6B63\u5728\u5173\u95ED:"Closing playtest",\u5185\u5D4C\u8BD5\u73A9:"Embedded Playtest","\u6B63\u5728\u505C\u6B62\u8BD5\u73A9\u2026":"Stopping playtest\u2026","\u6B63\u5728\u8F7D\u5165\u8BD5\u73A9\u2026":"Loading playtest\u2026",\u5173\u95ED\u8BD5\u73A9:"Close Playtest",\u5343\u661F\u6C99\u7BB1\u8BD5\u73A9:"Miliastra Sandbox Playtest",\u672A\u53D8\u5316:"Unchanged","\u3010\u5343\u661F\u6C99\u7BB1\u811A\u672C\u6587\u4EF6\u5939\u3011":"[Miliastra Sandbox Script Folder]",\u65B0\u589E\u6587\u4EF6:"New file",\u66F4\u65B0\u5DF2\u6709\u6587\u4EF6:"Update existing file","\u5185\u5BB9\u76F8\u540C\uFF0C\u65E0\u9700\u66F4\u65B0":"Identical; no update needed",\u65E0\u6CD5\u590D\u5236:"Cannot copy",\u5B58\u6863\u91CC\u7F16\u8F91\u7684\u4EE3\u7801:"Code edited in the save","\u9879\u76EE\u4E2D\u7684 .lua \u6587\u4EF6":"Project .lua file","\u5B9E\u673A\u811A\u672C\u540C\u6B65 \xB7 {0}":"Sync Scripts to Game \xB7 {0}",\u5DF2\u8BBE\u7F6E\u6587\u4EF6\u5939:"Folders configured",\u5148\u8BBE\u7F6E\u6587\u4EF6\u5939:"Configure folders first","\u628A\u5F53\u524D\u5B58\u6863\u91CC\u7684 Lua \u811A\u672C\u590D\u5236\u5230\u5343\u661F\u6C99\u7BB1\uFF0C\u7528\u4E8E\u6E38\u620F\u5185\u6D4B\u8BD5\u3002\u64CD\u4F5C\u987A\u5E8F\uFF1A\u586B\u5199\u811A\u672C\u4F4D\u7F6E \u2192 \u4FDD\u5B58\u8BBE\u7F6E \u2192 \u4FDD\u5B58\u5B58\u6863\u5E76\u67E5\u770B\u66F4\u65B0 \u2192 \u786E\u8BA4\u590D\u5236\u3002":"Copy this save's Lua scripts into Miliastra Sandbox for in-game testing. Set folders \u2192 Save Settings \u2192 Save and Preview Changes \u2192 Confirm Copy.",\u9879\u76EE\u811A\u672C\u6587\u4EF6\u5939:"Project script folder","\u4F8B\u5982 workspace/my-game\uFF1B\u4E5F\u53EF\u4EE5\u7559\u7A7A":"e.g. workspace/my-game; may be left blank","\u586B\u5199\u5728\u5DE5\u4F5C\u533A\u91CC\u7684\u4F4D\u7F6E\uFF0C\u4F8B\u5982 workspace/my-game\uFF1B\u7559\u7A7A\u8868\u793A\u4F7F\u7528\u5DE5\u4F5C\u533A\u672C\u8EAB\u3002":"Enter a workspace-relative folder, e.g. workspace/my-game. Leave blank to use the workspace root.",\u5343\u661F\u6C99\u7BB1\u811A\u672C\u6587\u4EF6\u5939:"Miliastra Sandbox script folder","\u7C98\u8D34\u4EE5 default_import_file \u7ED3\u5C3E\u7684\u5B8C\u6574\u8DEF\u5F84":"Paste the full path ending in default_import_file","\u5173\u5361\u5B58\u653E\u5916\u90E8 Lua \u811A\u672C\u7684\u6587\u4EF6\u5939\uFF0C\u53EF\u70B9\u51FB\u300C\u53D1\u73B0\u672C\u673A\u76EE\u5F55\u300D\u67E5\u627E\u3002\u8BF7\u586B\u5199\u8FD0\u884C\u6A21\u62DF\u5668\u90A3\u53F0\u7535\u8111\u4E0A\u7684\u5B8C\u6574\u8DEF\u5F84\u3002":"The stage's folder for external Lua scripts. Use \u201CFind Local Folders\u201D to locate it. Enter the full path on the simulator host machine.",\u6E38\u620F\u91CC\u7684\u9879\u76EE\u5B50\u6587\u4EF6\u5939:"Project subfolder in the game","\u4E00\u822C\u548C\u201C\u9879\u76EE\u811A\u672C\u6587\u4EF6\u5939\u201D\u586B\u4E00\u6837\u7684\u5185\u5BB9\uFF0C\u4FDD\u7559\u539F\u6765\u7684\u6587\u4EF6\u4F4D\u7F6E\u3002\u7559\u7A7A\u5219\u76F4\u63A5\u653E\u8FDB\u5343\u661F\u6C99\u7BB1\u811A\u672C\u6587\u4EF6\u5939\u3002":"Usually matches the project script folder to preserve file locations. Leave blank to place files directly in the Miliastra Sandbox script folder.",\u590D\u5236\u8DEF\u5F84\u793A\u4F8B:"Copy Path Example","\u590D\u5236\u793A\u4F8B\uFF1A":"Example destination:","\u6E38\u620F\u8D26\u53F7 UID\uFF1A{0} \xB7 \u5173\u5361\u76EE\u5F55\u7F16\u53F7\uFF1A{1}":"Game account UID: {0} \xB7 Stage folder ID: {1}",\u53D1\u73B0\u672C\u673A\u76EE\u5F55:"Find Local Folders","\u6CA1\u6709\u627E\u5230\u6E38\u620F\u811A\u672C\u6587\u4EF6\u5939\u3002\u53EF\u4EE5\u624B\u52A8\u7C98\u8D34 default_import_file \u6587\u4EF6\u5939\u7684\u5B8C\u6574\u8DEF\u5F84\uFF1B\u5982\u679C\u8FD8\u6CA1\u5BFC\u5165\u811A\u672C\uFF0C\u8BF7\u5148\u5728\u5343\u661F\u6C99\u7BB1\u5B8C\u6210\u5BFC\u5165\u3002":"No game script folder found. Paste the full default_import_file path manually. If you have not imported scripts yet, do so in Miliastra Sandbox first.","\u627E\u5230 {0} \u4E2A\u6E38\u620F\u811A\u672C\u6587\u4EF6\u5939\uFF0C\u8BF7\u9009\u62E9\u8981\u66F4\u65B0\u7684\u8D26\u53F7\u548C\u5173\u5361\u3002":"Found {0} game script folders. Select the account and stage to update.","\u811A\u672C\u4F4D\u7F6E\u5DF2\u4FDD\u5B58\u3002\u4E0B\u4E00\u6B65\u70B9\u51FB\u300C\u4FDD\u5B58\u5B58\u6863\u5E76\u67E5\u770B\u66F4\u65B0\u300D\u3002":"Script folders saved. Next, click \u201CSave and Preview Changes\u201D.",\u6E05\u9664\u8BBE\u7F6E:"Clear Settings","\u5DF2\u6E05\u9664\u811A\u672C\u4F4D\u7F6E\u8BBE\u7F6E\u3002\u6E38\u620F\u91CC\u7684\u811A\u672C\u6587\u4EF6\u4ECD\u7136\u4FDD\u7559\u3002":"Script folder settings cleared. Existing files in the game are kept.",\u9009\u62E9\u8981\u66F4\u65B0\u7684\u8D26\u53F7\u548C\u5173\u5361:"Select the Account and Stage","\u8BF7\u9009\u62E9\u6E38\u620F\u8D26\u53F7\u548C\u5173\u5361\u6587\u4EF6\u5939\u2026":"Select a game account and stage folder\u2026","\u8D26\u53F7 {0} / \u5173\u5361\u76EE\u5F55 {1} \xB7 {2}":"Account {0} / Stage folder {1} \xB7 {2}",\u6A21\u62DF\u5668\u5B58\u6863\u6587\u4EF6:"Simulator save file","\u4F8B\u5982 my-game.save.json":"e.g. my-game.save.json","\u586B\u5199\u5DE5\u4F5C\u533A\u91CC\u7684\u5B58\u6863\u6587\u4EF6\u540D\u6216\u8DEF\u5F84\u3002\u4FDD\u5B58\u8BBE\u7F6E\u65F6\u4F1A\u4E00\u8D77\u4FDD\u5B58\u9879\u76EE\uFF0C\u4E0B\u6B21\u6253\u5F00\u5B58\u6863\u5373\u53EF\u590D\u7528\u3002":"Enter a save filename or path within the workspace. Saving these settings also saves the project so they are available next time.",\u4FDD\u5B58\u5B58\u6863\u5E76\u67E5\u770B\u66F4\u65B0:"Save and Preview Changes","\u8BF7\u5148\u586B\u5199\u5343\u661F\u6C99\u7BB1\u811A\u672C\u6587\u4EF6\u5939\uFF0C\u5E76\u70B9\u51FB\u300C\u4FDD\u5B58\u8BBE\u7F6E\u300D\u3002":"Enter the Miliastra Sandbox script folder and click \u201CSave Settings\u201D first.","\u811A\u672C\u4F4D\u7F6E\u5DF2\u6539\u52A8\uFF0C\u8BF7\u5148\u70B9\u51FB\u300C\u4FDD\u5B58\u8BBE\u7F6E\u300D\u3002":"Script folders changed. Click \u201CSave Settings\u201D first.","\u8BF7\u5148\u586B\u5199\u6A21\u62DF\u5668\u5B58\u6863\u6587\u4EF6\u540D\u3002":"Enter a simulator save filename first.","\u6B63\u5728\u5904\u7406\uFF0C\u8BF7\u7A0D\u5019\u2026":"Working, please wait\u2026",\u811A\u672C\u540C\u6B65\u786E\u8BA4:"Confirm Script Copy","\u672C\u6B21\u66F4\u65B0\u5230\uFF1A{0}":"Destination: {0}","\u8FD9\u4E2A\u5B58\u6863\u8FD8\u6CA1\u6709 Lua \u811A\u672C\u3002\u8BF7\u5148\u5728\u4E0B\u65B9\u6DFB\u52A0\u811A\u672C\uFF0C\u518D\u67E5\u770B\u66F4\u65B0\u3002":"This save has no Lua scripts. Add a script below, then preview the changes.","\u6240\u6709\u811A\u672C\u90FD\u4E0E\u6E38\u620F\u6587\u4EF6\u5939\u91CC\u7684\u5185\u5BB9\u76F8\u540C\uFF0C\u65E0\u9700\u590D\u5236\u3002":"All scripts match the game folder. Nothing to copy.","\u6709\u63A7\u4EF6\u7D22\u5F15\u5C1A\u672A\u540C\u6B65\u5230 Lua\u3002\u8BF7\u5148\u5728\u4E0A\u65B9\u300C\u5168\u91CF\u66FF\u6362\u811A\u672C\u7D22\u5F15\u300D\uFF0C\u6216\u300C\u590D\u5236\u63D0\u793A\u8BCD\u7ED9 AI\u300D\uFF1B\u5904\u7406\u5B8C\u6210\u540E\u518D\u67E5\u770B\u6E38\u620F\u811A\u672C\u66F4\u65B0\u3002":"Some control index changes are not reflected in Lua. Use \u201CReplace All Script Indices\u201D or \u201CCopy Task for AI\u201D above before previewing game script changes.","\u590D\u5236\u7684\u4EE3\u7801\u6765\u81EA\uFF1A{0}":"Code source: {0}","\u65E0\u6CD5\u590D\u5236\uFF1A{0}":"Cannot copy: {0}","\u590D\u5236\u5230\uFF1A{0}":"Copy to: {0}","\u8FD9\u4E2A\u811A\u672C\u5728\u5B58\u6863\u91CC\u548C\u9879\u76EE\u6587\u4EF6\u91CC\u7684\u4EE3\u7801\u4E0D\u540C\u3002\u672C\u6B21\u4F1A\u590D\u5236\u5B58\u6863\u91CC\u7684\u4EE3\u7801\uFF1B\u5982\u679C\u8981\u4F7F\u7528\u9879\u76EE\u6587\u4EF6\uFF0C\u8BF7\u70B9\u51FB\u300C\u6539\u7528\u9879\u76EE\u6587\u4EF6\u91CC\u7684\u4EE3\u7801\u300D\uFF0C\u7136\u540E\u91CD\u65B0\u67E5\u770B\u66F4\u65B0\u3002":"The saved script differs from its project file. This copy uses the saved code. To use the project file instead, choose \u201CUse Project File Code\u201D, then preview changes again.",\u67E5\u770B\u9879\u76EE\u6587\u4EF6\u91CC\u7684\u4EE3\u7801:"View Project File Code",\u6539\u7528\u9879\u76EE\u6587\u4EF6\u91CC\u7684\u4EE3\u7801:"Use Project File Code",\u5BF9\u6BD4\u66F4\u65B0\u524D\u540E\u7684\u4EE3\u7801:"Compare Changes",\u6E38\u620F\u91CC\u73B0\u5728\u7684\u4EE3\u7801:"Current Code in the Game","\uFF08\u6E38\u620F\u91CC\u8FD8\u6CA1\u6709\u8FD9\u4E2A\u6587\u4EF6\uFF09":"(This file does not exist in the game yet)",\u672C\u6B21\u8981\u590D\u5236\u7684\u4EE3\u7801:"Code to Copy","\u65B0\u589E\u811A\u672C\u590D\u5236\u540E\uFF0C\u8FD8\u9700\u8981\u5728\u5343\u661F\u6C99\u7BB1\u91CC\u5173\u8054\u5BF9\u5E94\u7684\u811A\u672C\u6587\u4EF6\uFF1B\u9700\u8981\u76F4\u63A5\u8FD0\u884C\u7684\u811A\u672C\u8FD8\u8981\u6302\u5230\u63A7\u4EF6\u4E0A\u3002":"After copying new scripts, link their files in Miliastra Sandbox. Scripts that should run directly must also be attached to controls.","\u5DF2\u9009 {0} \u4E2A\u811A\u672C\uFF0C\u5176\u4E2D {1} \u4E2A\u4F1A\u66FF\u6362\u6E38\u620F\u91CC\u7684\u65E7\u6587\u4EF6\u3002\u66FF\u6362\u524D\u4F1A\u81EA\u52A8\u5907\u4EFD\u65E7\u6587\u4EF6\uFF0C\u6E38\u620F\u91CC\u7684\u5176\u4ED6\u6587\u4EF6\u4F1A\u4FDD\u7559\u3002":"Selected {0} scripts; {1} will replace existing game files. Replaced files are backed up. Other files are kept.",\u8986\u76D6:"Replace",\u6682\u4E0D\u590D\u5236:"Cancel","\u786E\u8BA4\u590D\u5236 {0} \u4E2A\u811A\u672C":"Confirm Copy of {0} Scripts",\u811A\u672C\u5DF2\u590D\u5236\u5230\u5343\u661F\u6C99\u7BB1:"Scripts Copied to Miliastra Sandbox",\u6709\u4E9B\u811A\u672C\u672A\u590D\u5236\u6210\u529F:"Some Scripts Could Not Be Copied","\u4E0B\u4E00\u6B65\uFF1A\u56DE\u5230\u5343\u661F\u6C99\u7BB1\uFF0C\u4FDD\u5B58\u5173\u5361\u5E76\u91CD\u65B0\u8BD5\u73A9\uFF0C\u8BA9\u6E38\u620F\u52A0\u8F7D\u66F4\u65B0\u540E\u7684\u811A\u672C\u3002":"Next: Return to Miliastra Sandbox, save the stage, and start a new playtest to load the updated scripts.","\u8BF7\u6309\u4E0B\u65B9\u63D0\u793A\u5904\u7406\u5931\u8D25\u7684\u6587\u4EF6\uFF0C\u518D\u91CD\u65B0\u67E5\u770B\u66F4\u65B0\u5E76\u590D\u5236\u3002":"Resolve the failed files using the notes below, then preview and copy again.","\u590D\u5236\u65F6\u95F4\uFF1A{0} \xB7 \u65E7\u6587\u4EF6\u5907\u4EFD\u4FDD\u5B58\u5728\uFF1A{1}":"Copied at: {0} \xB7 Backups: {1}",\u6210\u529F:"Success",\u5DF2\u590D\u5236:"Copied",\u672A\u590D\u5236:"Not copied",\u5207\u6362\u5230\u4EAE\u8272\u4E3B\u9898:"Switch to light theme",\u5207\u6362\u5230\u6697\u8272\u4E3B\u9898:"Switch to dark theme",\u5F53\u524D\u5B58\u6863:"Current save","\u5F53\u524D\u8D44\u4EA7\u6CA1\u6709\u63A7\u4EF6\u3002":"This asset has no controls.","\u6253\u5F00\u5B58\u6863\u540E\u663E\u793A\u63A7\u4EF6\u7ED3\u6784\u3002":"Open a save to view its control structure.",\u672A\u9009\u62E9:"None selected",\u7C7B\u578B:"Type",\u6811\u6DF1\u5EA6:"Tree depth",\u7236\u8282\u70B9:"Parent node","\u8BD5\u73A9\u542F\u52A8\u540E\u663E\u793A Lua \u65E5\u5FD7\u3002":"Lua logs appear after starting a playtest.",\u5B58\u6863\u52A0\u8F7D\u5931\u8D25:"Failed to Load Save",\u7B49\u5F85\u5DE5\u4F5C\u533A\u5B58\u6863:"Waiting for a Workspace Save","\u6B63\u5728\u76D1\u542C {0}\u3002":"Watching {0}.","{0}Codex \u4FDD\u5B58 qxqy-simulator-save JSON \u540E\u4F1A\u81EA\u52A8\u51FA\u73B0\u5728\u8FD9\u91CC\u3002":"{0}Saves appear here automatically when Codex writes a qxqy-simulator-save JSON file.",\u8BD5\u73A9\u5C1A\u672A\u542F\u52A8:"Playtest Not Started","\u9009\u62E9\u8BBE\u5907\u5E76\u70B9\u51FB\u201C\u542F\u52A8\u201D\uFF0C\u5373\u53EF\u8FD0\u884C Lua \u548C\u4EA4\u4E92\u903B\u8F91\u3002":"Select a device and click \u201CStart\u201D to run Lua scripts and interactions.",\u7B49\u5F85\u5B58\u6863:"Waiting for a Save",\u5C1A\u672A\u6253\u5F00\u5B58\u6863:"No save open"," \xB7 \u5DF2\u6682\u505C":" \xB7 Paused","\u7B49\u5F85\u542F\u52A8 Runtime":"Waiting to start Runtime","\u7F16\u8F91\u5668\u9759\u6001\u9884\u89C8 \xB7 \u78C1\u76D8\u81EA\u52A8\u5237\u65B0":"Static editor preview \xB7 Refreshes from disk automatically","\u7F16\u8F91\u5668\u753B\u9762\u52A0\u8F7D\u5931\u8D25\u3002":"Failed to load the editor preview.","\u670D\u52A1\u7248\u672C\u672A\u77E5\uFF0C\u8BF7\u66F4\u65B0 Web":"Unknown server version. Update the Web package.",\u5B9E\u65F6\u76D1\u542C\u4E2D:"Live",\u8FDE\u63A5\u4E2D\u65AD:"Disconnected",\u5F00\u542F\u58F0\u97F3:"Enable Sound",\u58F0\u97F3\u5DF2\u5173\u95ED:"Sound Off",\u58F0\u97F3\u5DF2\u5F00\u542F:"Sound On",\u70B9\u51FB\u6216\u5728\u753B\u5E03\u5185\u64CD\u4F5C\u4EE5\u89E3\u9501\u97F3\u6548:"Click or interact with the canvas to enable audio",\u5207\u6362\u9759\u97F3:"Toggle mute","\u952E\u4F4D\u54CD\u5E94\uFF1A\u5F00":"Key Input: On","\u952E\u4F4D\u54CD\u5E94\uFF1A\u5173":"Key Input: Off",\u5DF2\u6253\u5F00\u5B58\u6863:"Save opened",\u5DF2\u91CD\u65B0\u8BFB\u53D6\u78C1\u76D8\u5B58\u6863:"Save reloaded from disk","\u65E5\u5FD7\u5DF2\u5728\u5F53\u524D\u89C6\u56FE\u6E05\u7A7A\u3002":"Logs cleared in this view.",\u6B63\u5728\u91CD\u8FDE:"Reconnecting","\u68C0\u6D4B\u5230\u5B58\u6863\u53D8\u5316\uFF0C\u9884\u89C8\u5DF2\u66F4\u65B0":"Save changed; preview updated",\u9884\u89C8\u5B58\u6863\u5DF2\u6253\u5F00:"Preview save opened","\u624B\u673A 1280\xD7720":"Mobile 1280\xD7720","\u624B\u673A 1560\xD7720":"Mobile 1560\xD7720","\u624B\u673A 1280\xD7960":"Mobile 1280\xD7960",\u540D\u79F0:"Name",\u521D\u59CB\u6FC0\u6D3B:"Initially Active",\u521D\u59CB\u53EF\u89C1\u6027:"Initially Visible",\u53EF\u88AB\u624B\u67C4\u6447\u6746\u5BFC\u822A\u9009\u4E2D:"Selectable by Controller Navigation","\u4F4D\u7F6E X":"Location X","\u4F4D\u7F6E Y":"Location Y","\u5927\u5C0F W":"Width","\u5927\u5C0F H":"Height","\u65CB\u8F6C X":"Rotation X","\u65CB\u8F6C Y":"Rotation Y","\u65CB\u8F6C Z":"Rotation Z",\u540C\u6B65\u4FE1\u606F\u81F3\u6240\u6709\u8BBE\u5907:"Sync Layout Across Devices",\u951A\u70B9\u7C7B\u578B:"Anchor Preset",\u5C45\u4E2D:"Center",\u5DE6\u4E0A:"Top Left",\u4E0A\u65B9:"Top",\u53F3\u4E0A:"Top Right",\u5DE6\u4FA7:"Left",\u53F3\u4FA7:"Right",\u5DE6\u4E0B:"Bottom Left",\u4E0B\u65B9:"Bottom",\u53F3\u4E0B:"Bottom Right",\u53CC\u5411\u62C9\u4F38:"Stretch Both Axes",\u6C34\u5E73\u62C9\u4F38:"Stretch Horizontally",\u5782\u76F4\u62C9\u4F38:"Stretch Vertically",\u81EA\u5B9A\u4E49:"Custom","\u951A\u70B9 Min X":"Anchor Min X","\u951A\u70B9 Min Y":"Anchor Min Y","\u951A\u70B9 Max X":"Anchor Max X","\u951A\u70B9 Max Y":"Anchor Max Y","\u4E2D\u5FC3 X":"Pivot X","\u4E2D\u5FC3 Y":"Pivot Y",\u9694\u79BB\u624B\u67C4\u5BFC\u822A:"Isolate Controller Navigation",\u5C4F\u853D\u6309\u952E\u4E8B\u4EF6\u7A7F\u900F:"Block Key Event Passthrough",\u5C4F\u853D\u533A\u57DF\u5185\u70B9\u51FB\u4E8B\u4EF6\u7A7F\u900F:"Block Click Event Passthrough in Area",\u663E\u793A\u5E38\u9A7B\u5149\u6807:"Show Persistent Cursor",\u5B57\u53F7:"Font Size",\u5B57\u53F7\u81EA\u9002\u5E94:"Auto Font Size",\u6700\u5C0F\u5B57\u53F7:"Minimum Font Size",\u6587\u672C\u8272:"Text Color",\u80CC\u666F\u8272:"Background Color",\u542F\u7528\u63CF\u8FB9:"Enable Outline",\u63CF\u8FB9\u8272:"Outline Color",\u6C34\u5E73\u5BF9\u9F50:"Horizontal Alignment",\u5DE6\u5BF9\u9F50:"Left",\u53F3\u5BF9\u9F50:"Right",\u5782\u76F4\u5BF9\u9F50:"Vertical Alignment",\u9876\u90E8:"Top",\u5E95\u90E8:"Bottom",\u6587\u672C:"Text",\u56FE\u7247\u6E90:"Image Source",\u9759\u6001\u5F15\u7528:"Static Reference",\u5143\u4EF6:"Prefab",\u586B\u5145\u8272:"Fill Color",\u5F00\u542F\u906E\u7F69:"Enable Mask",\u8FB9\u7F18\u7FBD\u5316:"Soft Edge",\u7FBD\u5316\u6A21\u5F0F:"Soft Edge Mode",\u767E\u5206\u6BD4:"Percentage",\u50CF\u7D20:"Pixels","\u7FBD\u5316\u5BBD\u5EA6 X":"Soft Edge Width X","\u7FBD\u5316\u5BBD\u5EA6 Y":"Soft Edge Width Y",\u6C34\u5E73\u7FBD\u5316\u8303\u56F4:"Horizontal Soft Edge Range",\u5782\u76F4\u7FBD\u5316\u8303\u56F4:"Vertical Soft Edge Range",\u6309\u8FDB\u5EA6\u586B\u5145:"Fill by Progress",\u5F62\u72B6:"Shape",\u6A2A\u5411:"Horizontal",\u7EB5\u5411:"Vertical","90\u5EA6\u73AF\u7ED5":"Radial90","180\u5EA6\u73AF\u7ED5":"Radial180","360\u5EA6\u73AF\u7ED5":"Radial360",\u65B9\u5411:"Direction",\u4ECE\u5DE6\u81F3\u53F3:"From Left to Right",\u4ECE\u53F3\u81F3\u5DE6:"From Right to Left",\u4ECE\u4E0B\u81F3\u4E0A:"From Bottom to Top",\u4ECE\u4E0A\u81F3\u4E0B:"From Top to Bottom",\u8D77\u70B9:"Origin",\u8FDB\u5EA6:"Progress",\u906E\u7F69\u533A\u57DF\u53CD\u8F6C:"Invert Mask Area",\u672A\u8BBE\u7F6E:"Not set",\u53EF\u88AB\u5149\u6807\u5C04\u7EBF\u68C0\u6D4B:"Raycast Target",\u6309\u94AE\u662F\u5426\u53EF\u7528:"Interactable",\u4E0D\u53EF\u7528\u72B6\u6001\u8282\u70B9:"Unavailable Status Nodes",\u60AC\u505C\u72B6\u6001\u8282\u70B9:"Hover Status Nodes",\u6309\u4E0B\u72B6\u6001\u8282\u70B9:"Pressed Status Nodes",\u9009\u4E2D\u72B6\u6001\u8282\u70B9:"Selected Status Nodes",\u70B9\u51FB\u97F3\u6548:"Click Sound",\u5F15\u7528\u63A7\u4EF6\u6A21\u677F\u7D22\u5F15:"Referenced Control Template Index",\u5141\u8BB8\u6EDA\u52A8\u4EA4\u4E92:"Enable Scrolling",\u663E\u793A\u6EDA\u52A8\u6761:"Show Scrollbar",\u5217\u8868\u9879\u6A21\u677F\u7D22\u5F15:"Item Template Index",\u6EDA\u52A8\u65B9\u5411:"Scroll Direction",\u6392\u5217\u9650\u5236:"Layout Constraint",\u81EA\u52A8\u6362\u884C:"Automatic Wrapping",\u56FA\u5B9A\u884C\u5217\u6570:"Fixed Row / Column Count",\u6BCF\u884C\u6216\u6BCF\u5217\u6570\u91CF:"Items per Row / Column","\u5217\u8868\u9879\u5927\u5C0F W":"Item Width","\u5217\u8868\u9879\u5927\u5C0F H":"Item Height","\u5217\u8868\u9879\u95F4\u9694 X":"Item Spacing X","\u5217\u8868\u9879\u95F4\u9694 Y":"Item Spacing Y","\u8FB9\u8DDD\u5411\u91CF 1 X":"Padding 1 X","\u8FB9\u8DDD\u5411\u91CF 1 Y":"Padding 1 Y","\u8FB9\u8DDD\u5411\u91CF 2 X":"Padding 2 X","\u8FB9\u8DDD\u5411\u91CF 2 Y":"Padding 2 Y",\u9884\u89C8\u6570\u91CF:"Preview Count",\u952E\u9F20\u6309\u952E:"Keyboard / Mouse Key",\u624B\u67C4\u6309\u952E:"Controller Button",\u52A8\u6548\u7D22\u5F15:"Animation Index",\u5168\u5C4F\u52A8\u6548\u7D22\u5F15:"Fullscreen Animation Index",\u5B8C\u6574\u5EA6:"Support Status","\u8BD5\u73A9\u652F\u6301\u57FA\u7840\u6EDA\u52A8\uFF1B\u6EDA\u52A8\u4EA4\u4E92\u3001\u6EDA\u52A8\u6761\u53CA\u5217\u8868\u914D\u7F6E\u4EE5 JSON/Lua \u4E3A\u51C6\uFF0C\u76F8\u5173 GIA \u5F00\u5173\u6620\u5C04\u5C1A\u672A\u6838\u5B9E\u3002":"Basic scrolling is supported in playtests. Configure interaction, scrollbars, and lists through JSON/Lua; the related GIA flags are not yet verified.","\u672C\u9636\u6BB5\u4EC5\u516C\u5171\u53D8\u6362\uFF0C\u4E1A\u52A1\u69FD\u4E0D\u5B8C\u6574":"Only common transforms are supported at this stage; control-specific fields are incomplete.",\u5173\u5361:"Stage",\u5F53\u524D\u73A9\u5BB6:"Current Player",\u5F53\u524D\u89D2\u8272:"Current Character","\u73A9\u5BB6{0}":"Player {0}","\u89D2\u8272{0}":"Character {0}","\u63A7\u4EF6\u7D22\u5F15\u5FC5\u987B\u662F 1\u20132147483647 \u8303\u56F4\u5185\u7684\u6574\u6570":"Control indices must be integers from 1 to 2147483647","controlGuidChanges \u5FC5\u987B\u662F\u6570\u7EC4":"controlGuidChanges must be an array","controlGuidChanges \u5305\u542B\u65E0\u6548\u6216\u91CD\u590D\u7684\u53D8\u66F4\u8BB0\u5F55":"controlGuidChanges contains invalid or duplicate changes","controlGuidChanges \u5305\u542B\u65E0\u6548\u7684 batchId":"controlGuidChanges contains an invalid batchId","controlGuidChanges \u5305\u542B\u65E0\u6548\u7684 scriptSignature":"controlGuidChanges contains an invalid scriptSignature",\u672A\u547D\u540D\u754C\u9762:"Untitled UI",\u672A\u547D\u540D\u754C\u9762\u63A7\u4EF6\u7EC4:"Untitled UI Control Group",\u6574\u5408\u5305\u9700\u8981\u670D\u52A1\u7AEF\u5BA2\u6237\u7AEF\u63A7\u4EF6\u5BB9\u5668\u4E0B\u81F3\u5C11\u6709\u4E00\u4E2A\u6839\u63A7\u4EF6:"A combined bundle requires at least one root control inside the server-side Client Control Container","{0} \xB7 \u6574\u5408\u5305.gia":"{0} \xB7 Combined.gia",\u6302\u8F7D\u76EE\u6807\u5FC5\u987B\u662F\u5B58\u6863\u5185\u7684\u5BA2\u6237\u7AEF\u63A7\u4EF6\u6216\u5BA2\u6237\u7AEF\u63A7\u4EF6\u6A21\u677F:"Attachment targets must be client controls or client control templates in the save","\u811A\u672C\u4E0D\u5B58\u5728: {0}":"Script not found: {0}",\u4EC5\u5BA2\u6237\u7AEF\u63A7\u4EF6\u6216\u5BA2\u6237\u7AEF\u63A7\u4EF6\u6A21\u677F\u5141\u8BB8\u4FEE\u6539\u7D22\u5F15:"Only client controls and client control templates support index changes","autoFillClientGuids \u5FC5\u987B\u662F\u5E03\u5C14\u503C":"autoFillClientGuids must be a boolean","\u81EA\u52A8\u586B\u5145\u4EC5\u652F\u6301\u5BA2\u6237\u7AEF\u6A21\u677F\u5217\u8868\uFF1B\u670D\u52A1\u7AEF\u754C\u9762\u7684\u7D22\u5F15\u9700\u5355\u72EC\u586B\u5199":"Autofill is only available for client templates. Enter server UI indices separately.","\u5BA2\u6237\u7AEF\u6A21\u677F\u5B58\u5728\u91CD\u590D\u65E7\u7D22\u5F15\uFF0C\u65E0\u6CD5\u81EA\u52A8\u586B\u5145\uFF1B\u8BF7\u5148\u6D88\u9664\u6B67\u4E49":"Client templates contain duplicate old indices. Resolve the ambiguity before using autofill.","\u63A7\u4EF6\u7D22\u5F15 {0} \u5DF2\u88AB\u300C{1}\u300D\u5360\u7528\uFF1B\u8BF7\u5148\u586B\u5199\u5B83\u7684\u5B9E\u9645\u7D22\u5F15\u3002\u672C\u6B21\u672A\u4FEE\u6539\u4EFB\u4F55\u7D22\u5F15\u3002":"Control index {0} is already used by \u201C{1}\u201D. Enter its actual index first. No indices were changed.","\u65E7\u7D22\u5F15 {0} \u5728\u591A\u68F5\u8D44\u4EA7\u6811\u4E2D\u91CD\u590D\uFF0C\u65E0\u6CD5\u786E\u5B9A\u6A21\u677F\u5F15\u7528\u5F52\u5C5E\uFF1B\u8BF7\u5148\u6D88\u9664\u6B67\u4E49\u540E\u4FEE\u6539":"Old index {0} appears in multiple asset trees, so the template reference is ambiguous. Resolve it before making changes.","\u8BF7\u660E\u786E\u6307\u5B9A\u5DF2\u6838\u5BF9 Lua \u5F15\u7528\u7684\u6709\u6548\u7D22\u5F15\u53D8\u66F4\u8BB0\u5F55 changeIds":"Specify valid changeIds whose Lua references have been reviewed",\u5B58\u6863\u540D\u79F0\u4E0D\u80FD\u4E3A\u7A7A:"The save name cannot be empty","\u63A7\u4EF6\u7D22\u5F15\u5F85\u6838\u5BF9 Lua \u5F15\u7528\uFF1A{0} / {1} ({2})\uFF1A{3} \u2192 {4}\u3002\u8BF7\u6309\u8BED\u4E49\u66F4\u65B0\u811A\u672C\u4E2D\u7684\u63A7\u4EF6\u7D22\u5F15\u5F15\u7528\uFF0C\u6838\u5BF9\u540E\u786E\u8BA4\u53D8\u66F4\u8BB0\u5F55 {5}\uFF1B\u4E0D\u8981\u5168\u5C40\u66FF\u6362\u540C\u503C\u6570\u5B57\u3002":"Review Lua references for control index change: {0} / {1} ({2}): {3} \u2192 {4}. Update references by meaning, then acknowledge change {5}. Do not globally replace equal numbers.","{0} \xB7 \u8D44\u4EA7\u5305.json":"{0} \xB7 Assets.json","\u670D\u52A1\u5668\u63A7\u4EF6\u6A21\u677F\u4ECD\u662F\u9ED8\u8BA4\u6A71\u7A97\uFF0C\u672A\u6539\u52A8\u4E14\u5F53\u524D\u672A\u663E\u793A\uFF0C\u5DF2\u4ECE\u8D44\u4EA7\u5305 GIA \u4E2D\u7701\u7565\u3002":"The unchanged, hidden default server UI was omitted from the asset bundle GIA.","\u5BA2\u6237\u7AEF\u63A7\u4EF6\u6A21\u677F\u4ECD\u662F\u9ED8\u8BA4\u300CLua\u5B9E\u4F8B\u5316\u9762\u677F\u300D\uFF0C\u672A\u6539\u52A8\u4E14\u5F53\u524D\u672A\u663E\u793A\uFF0C\u5DF2\u4ECE\u8D44\u4EA7\u5305 GIA \u4E2D\u7701\u7565\u3002":"The unchanged, hidden default client control template was omitted from the asset bundle GIA.","\u8D44\u4EA7\u5305 GIA \u6CA1\u6709\u53EF\u5BFC\u51FA\u7684\u5DF2\u6539\u52A8\u9879\uFF1B\u8BF7\u5148\u7F16\u8F91\u5F53\u524D\u754C\u9762\uFF0C\u6216\u6539\u7528\u300C\u5F53\u524D\u754C\u9762 GIA\u300D\u3002":"There are no modified assets to export. Edit the UI first, or use \u201CCurrent UI GIA\u201D.","{0} \xB7 \u811A\u672C.json":"{0} \xB7 Scripts.json","{0} \xB7 \u811A\u672C.gia":"{0} \xB7 Scripts.gia","\u6CA1\u6709\u53EF\u5BFC\u51FA\u7684 Lua \u811A\u672C\uFF0C\u8BF7\u5148\u5728\u201CLua \u811A\u672C\u201D\u9875\u521B\u5EFA":"No Lua scripts to export. Create one on the Lua Scripts page first.","\u5F53\u524D\u670D\u52A1\u5668\u63A7\u4EF6 GIA \u4E0D\u5305\u542B {0} \u4E2A Lua \u811A\u672C\u7684\u6E90\u7801\uFF1B\u8BF7\u4F7F\u7528\u300C\u8D44\u4EA7\u5305 GIA \u6574\u5408\u5305\u300D\uFF0C\u6216\u53E6\u884C\u5BFC\u5165\u811A\u672C\u5305\u5E76\u6838\u5BF9\u6302\u8F7D\u3002":"This server UI GIA does not contain source for {0} Lua scripts. Use \u201CCombined GIA\u201D or import the script bundle separately and check attachments.","JSON \u6587\u4EF6\u65E0\u6548":"Invalid JSON file","\u6574\u5408\u5305\u5DF2\u62C6\u56DE\u300CUI\u63A7\u4EF6-\u670D\u52A1\u7AEF\u300D\u4E0E\u300CUI\u63A7\u4EF6-\u5BA2\u6237\u7AEF\u300D\uFF1B\u5BA2\u6237\u7AEF\u6A21\u677F\u8FB9\u754C\u5DF2\u4FDD\u7559\u3002":"Combined bundle split back into Server UI and Client UI. Client template boundaries were preserved.","\u811A\u672C GUID {0} \u540C\u65F6\u6302\u8F7D\u5230\u591A\u4E2A\u63A7\u4EF6\uFF0C\u5DF2\u4FDD\u7559\u201C{1}\u201D\u76EE\u6807\u3002":"Script GUID {0} was attached to multiple controls. The \u201C{1}\u201D target was kept.",\u670D\u52A1\u7AEF:"Server",\u5BA2\u6237\u7AEF:"Client","\u5355\u8D44\u4EA7 JSON \u7684\u7D22\u5F15\u53D8\u66F4\u8BB0\u5F55\u5FC5\u987B\u5C5E\u4E8E\u5F53\u524D\u5BFC\u5165\u8D44\u4EA7":"Index change records in a single-asset JSON must belong to the imported asset","\u811A\u672C {0} \u8BFB\u53D6\u5931\u8D25: {1}":"Failed to read script {0}: {1}","\u5343\u661F\u6C99\u7BB1 \xB7 \u72EC\u7ACB\u8BD5\u73A9":"Miliastra Sandbox \xB7 Standalone Playtest",\u6A21\u62DF\u5668:"Simulator",\u5207\u6362\u8BBE\u5907\u753B\u5E03:"Switch Device Canvas","\u5207\u6362\u8BBE\u5907\u753B\u5E03\uFF1A\u4EE5\u65B0\u753B\u5E03\u91CD\u5EFA\u8FD0\u884C\u65F6\uFF0CGetUICanvasSize \u4E0E\u9884\u8BBE\u50CF\u7D20\u4E00\u81F4":"Rebuild the runtime for the selected canvas. GetUICanvasSize matches the preset's pixel dimensions.",\u8BD5\u73A9\u4EBA\u6570:"Player count","\u8BD5\u73A9\u4EBA\u6570\uFF1A\u6700\u591A 8 \u4EBA\uFF0C\u6BCF\u4EBA\u4E00\u4EFD\u72EC\u7ACB\u5BA2\u6237\u7AEF":"Up to 8 players, each with a separate client instance",\u5F53\u524D\u73A9\u5BB6\u89C6\u89D2:"Current player view","\u5207\u6362\u5F53\u524D\u73A9\u5BB6\u89C6\u89D2\uFF1A\u8F93\u5165\u3001\u753B\u9762\u548C PlayerSelf \u90FD\u8DDF\u968F\u8BE5\u73A9\u5BB6":"Change the active player for input, rendering, and PlayerSelf",\u8BBE\u5907:"Device","\u51C6\u5907\u4E2D\u2026":"Preparing...",\u8BD5\u73A9\u9875\u9762:"Playtest page",\u8BD5\u73A9:"Playtest",\u65E5\u5FD7:"Logs","\u8F6C\u53D1\u5B98\u65B9\u952E\u4F4D\u7684\u6309\u4E0B/\u62AC\u8D77\u4E8B\u4EF6\uFF08\u542B\u9F20\u6807\u5DE6\u53F3\u952E\uFF09\uFF1B\u5173\u95ED\u4E0D\u5F71\u54CD\u753B\u5E03\u70B9\u51FB":"Forward supported key/button down and up events, including mouse buttons. Turning this off does not disable canvas clicks.",\u70B9\u51FB\u89E3\u9501\u6D4F\u89C8\u5668\u97F3\u6548:"Click to enable browser audio","\u2161 \u6682\u505C\u8FD0\u884C":"\u2161 Pause",\u6682\u505C\u540E\u53EF\u5355\u5E27\u8C03\u8BD5:"Pause to step through individual frames","\u25B7 \u5355\u5E27\u8C03\u8BD5":"\u25B7 Step One Frame","\u25A0 \u7ED3\u675F\u8BD5\u73A9":"\u25A0 Stop Playtest","\u21BB \u91CD\u65B0\u5F00\u59CB":"\u21BB Restart",\u5207\u6362\u4EAE\u6697\u4E3B\u9898:"Toggle light / dark theme",\u8FD4\u56DE\u7F16\u8F91:"Back to Editor","\u6B63\u5728\u51C6\u5907\u8BD5\u73A9\u2026":"Preparing playtest\u2026",\u8FD0\u884C\u65F6\u573A\u666F\u6811:"Runtime Scene Tree","0 \u8282\u70B9":"0 nodes",\u670D\u52A1\u7AEF\u53D8\u91CF:"Server Variables","0 \u9879":"0 items",\u5BA2\u6237\u7AEF\u811A\u672C\u65E5\u5FD7:"Client Script Logs","\u6700\u8FD1 100 \u6761":"Latest 100 entries",\u670D\u52A1\u7AEF\u65E5\u5FD7:"Server Logs","\u53D8\u91CF / \u4FE1\u53F7":"Variables / signals",\u81EA\u52A8\u6D4B\u7528\u4F8B:"Automated Test Case","\u5148\u8BD5\u73A9\uFF0C\u518D\u4FDD\u5B58\u56DE\u653E":"Play first, then save a replay",'\u65AD\u8A00 JSON \u6570\u7EC4\uFF0C\u4F8B\u5982 [{"kind":"log","contains":"clicked"}]':'JSON assertion array, e.g. [{"kind":"log","contains":"clicked"}]',\u4FDD\u5B58\u7528\u4F8B:"Save Test Case",\u56DE\u653E\u7528\u4F8B:"Replay Test Case","\u25CF \u6B63\u5728\u542F\u52A8":"\u25CF Starting","\u9875\u9762\uFF1A\u8BD5\u73A9":"View: Playtest","\u9875\u9762\uFF1A\u65E5\u5FD7":"View: Logs",\u8BD5\u73A9\u8BF7\u6C42\u5931\u8D25:"Playtest request failed"," \u9879":" items","\u6682\u65E0\u81EA\u5B9A\u4E49\u53D8\u91CF\u3002\u811A\u672C Get/Set \u6216 serverSet \u4E4B\u540E\u4F1A\u51FA\u73B0\u5728\u8FD9\u91CC\u3002":"No custom variables yet. They appear after script Get/Set calls or serverSet.","\u5B8C\u6574\u8FD0\u884C\u6811\u8BF7\u7528 Agent \u7684 inspect \u5FEB\u7167\u3002\u821E\u53F0\u6309\u5DE6\u6811\u4E0A\u65B9\u76D6\u4F4F\u4E0B\u65B9\u7ED8\u5236\u3002":"Use an Agent inspect snapshot for the full runtime tree. Items higher in the left tree draw over those below."," \u4E2A\u53EF\u89C1\u56FE\u5143":" visible primitives","\u25B6 \u7EE7\u7EED\u8FD0\u884C":"\u25B6 Resume"," \u4EBA":" players",\u73A9\u5BB6:"Player"," \xB7 \u73A9\u5BB6":" \xB7 Player "," \xB7 \u70B9\u51FB\u8F93\u5165":" \xB7 Click to focus","\u26A0 \u811A\u672C\u6302\u8F7D\u5931\u8D25":"\u26A0 Script attachment failed","\u2161 \u5DF2\u6682\u505C":"\u2161 Paused","\u25CF \u8BD5\u73A9\u8FD0\u884C\u4E2D":"\u25CF Playtest running","\u5DF2\u8BB0\u5F55 ":"Recorded "," \u6B65":" steps","\u26A0 \u8BD5\u73A9\u9519\u8BEF":"\u26A0 Playtest error","\u25A0 \u8BD5\u73A9\u5DF2\u7ED3\u675F\uFF0C\u53EF\u91CD\u65B0\u5F00\u59CB\u6216\u8FD4\u56DE\u7F16\u8F91":"\u25A0 Playtest stopped. Restart or return to the editor.","\u65AD\u8A00\u5FC5\u987B\u662F JSON \u6570\u7EC4":"Assertions must be a JSON array","\u5DF2\u4FDD\u5B58 ":"Saved "," \u6B65 / ":" steps / "," \u6761\u65AD\u8A00":" assertions",\u56DE\u653E\u901A\u8FC7:"Replay passed","\u56DE\u653E\u5931\u8D25 @":"Replay failed @","\u7F3A\u5C11\u4F1A\u8BDD ID":"Missing session ID","\u5343\u661F\u6A21\u62DF\u5668 \xB7 Live Preview":"Miliastra Simulator \xB7 Live Preview","\u5343\u661F\u6A21\u62DF\u5668 \xB7 \u7F16\u8F91\u5DE5\u4F5C\u53F0":"Miliastra Simulator \xB7 Editor","Web Preview \xB7 \u5B9E\u65F6\u9884\u89C8":"Web Preview \xB7 Live Preview",\u5DE5\u4F5C\u533A\u5B58\u6863:"Workspace Saves",\u91CD\u65B0\u8BFB\u53D6\u5B58\u6863:"Reload save from disk","\u7F16\u8F91\u5DE5\u4F5C\u53F0 \u2197":"Open Editor \u2197",\u6B63\u5728\u8FDE\u63A5:"Connecting",\u9884\u89C8\u6A21\u5F0F:"Preview mode",\u7F16\u8F91\u5668:"Editor",\u8D44\u4EA7:"Asset","\u670D\u52A1\u7AEF UI":"Server UI",\u5BA2\u6237\u7AEF\u6A21\u677F:"Client Templates","\u25B6 \u542F\u52A8":"\u25B6 Start","\u2161 \u6682\u505C":"\u2161 Pause","\u25B7 \u7EE7\u7EED":"\u25B7 Resume","+ 1 \u5E27":"+ 1 Frame","\u25A0 \u505C\u6B62":"\u25A0 Stop",\u6A21\u62DF\u5668\u9884\u89C8\u753B\u5E03:"Simulator preview canvas","Codex \u4FDD\u5B58 qxqy-simulator-save JSON \u540E\u4F1A\u81EA\u52A8\u51FA\u73B0\u5728\u8FD9\u91CC\u3002":"Saves appear here automatically when Codex writes a qxqy-simulator-save JSON file.","\u6B63\u5728\u66F4\u65B0\u753B\u9762\u2026":"Updating preview\u2026",\u7F16\u8F91\u5668\u9759\u6001\u9884\u89C8:"Static Editor Preview",\u9884\u89C8\u4FE1\u606F:"Preview Details",\u5F53\u524D\u8282\u70B9:"Selected Node",\u753B\u5E03:"Canvas",\u6E05\u7A7A:"Clear",\u9884\u89C8\u8FDE\u63A5:"Preview Connection","\u6B63\u5728\u8FDE\u63A5\u670D\u52A1\u2026":"Connecting to the service\u2026","\u5F53\u524D\u5B58\u6863\u4FDD\u5B58\u540E\u81EA\u52A8\u5237\u65B0\uFF1B\u9996\u6B21\u5B58\u6863\u4F1A\u81EA\u52A8\u53D1\u73B0\u3002\u5207\u6362\u5176\u4ED6\u5B58\u6863\u8BF7\u4F7F\u7528\u9876\u90E8\u5217\u8868\u6216 MCP \u9884\u89C8\u5DE5\u5177\u3002":"Refreshes automatically when the current save changes, and discovers the first save. Switch saves using the list above or the MCP preview tool.","\u68C0\u67E5\u66F4\u65B0\u5931\u8D25\uFF0C\u8BF7\u68C0\u67E5\u7F51\u7EDC\u8FDE\u63A5\u540E\u91CD\u8BD5\u3002":"Update check failed. Check your network connection and retry.",\u53D1\u73B0\u65B0\u7248\u672C:"A new version is available",\u5F53\u524D\u5DF2\u662F\u6700\u65B0\u7248\u672C:"You are up to date",\u5F53\u524D\u7248\u672C\u6BD4\u516C\u5F00\u7248\u672C\u66F4\u65B0:"Your version is newer than the public release",\u6682\u672A\u627E\u5230\u6B64\u5B89\u88C5\u5305\u7684\u6B63\u5F0F\u7248\u672C:"No stable release found for this package",\u754C\u9762\u8BED\u8A00:"Interface language","\u81EA\u52A8\uFF08\u7CFB\u7EDF\u8BED\u8A00\uFF09":"Auto (system language)","\u6B63\u5728\u68C0\u67E5\u66F4\u65B0\u2026":"Checking for updates\u2026",\u68C0\u67E5\u66F4\u65B0:"Check for Updates",\u8054\u7CFB\u4F5C\u8005:"Contact Author",QQ\u7FA4\u53F71007538100:"QQ Group: 1007538100","\u4F5C\u8005\u90AE\u7BB1 ":"Email: ","\u5F00\u6E90\u4ED3\u5E93 ":"Source repository: ","\u5F53\u524D\u7248\u672C\uFF1A{0}":"Current version: {0}","\u516C\u5F00\u7248\u672C\uFF1A{0}":"Public version: {0}","\u66F4\u65B0\u540E\u8BF7\u91CD\u542F\u5BBF\u4E3B\u5E76\u5237\u65B0\u7F16\u8F91\u5668\u4E0E\u8BD5\u73A9\u9875\u3002":"After updating, restart the host and refresh the editor and playtest pages.",\u67E5\u770B\u66F4\u65B0\u8BF4\u660E:"View Release Notes",\u4E0B\u8F7D\u66F4\u65B0\u5305:"Download Update",\u91CD\u8BD5:"Retry","\u8BF7\u9009\u62E9\u81EA\u52A8\u67E5\u627E\u3001\u6307\u5B9A\u6587\u4EF6\u6216\u7CFB\u7EDF\u5B57\u4F53":"Choose automatic discovery, a local file, or the system font",\u5B57\u4F53\u8DEF\u5F84\u8FC7\u957F:"The font path is too long",\u8BF7\u586B\u5199\u5B57\u4F53\u6587\u4EF6\u7684\u7EDD\u5BF9\u8DEF\u5F84:"Enter an absolute font file path","\u672C\u673A\u5B57\u4F53\u8BBE\u7F6E\u65E0\u6CD5\u8BFB\u53D6\uFF0C\u8BF7\u5728\u300C\u5B57\u4F53\u8BBE\u7F6E\u300D\u4E2D\u91CD\u65B0\u4FDD\u5B58":"Unable to read local font settings. Save them again in Font Settings.","\u65E0\u6CD5\u4FDD\u5B58\u672C\u673A\u5B57\u4F53\u8BBE\u7F6E\uFF0C\u8BF7\u68C0\u67E5\u914D\u7F6E\u76EE\u5F55\u7684\u5199\u5165\u6743\u9650":"Unable to save local font settings. Check write permissions for the configuration directory.","\u5F53\u524D\u5B57\u4F53\u7531 QXQY_FONT_PATH \u56FA\u5B9A\uFF0C\u8BF7\u79FB\u9664\u8BE5\u73AF\u5883\u53D8\u91CF\u5E76\u91CD\u542F\u540E\u518D\u4F7F\u7528\u524D\u7AEF\u8BBE\u7F6E":"QXQY_FONT_PATH overrides font settings. Remove it and restart before editing settings here.",\u5B57\u4F53\u8BBE\u7F6E\u4EC5\u9650\u672C\u673A\u76F4\u63A5\u8BBF\u95EE:"Font settings require a direct connection from this machine",\u5B57\u4F53\u8BBE\u7F6E\u8FC7\u5927:"Font settings exceed the size limit",\u5343\u661F\u6C99\u7BB1:"Miliastra Sandbox",\u5343\u661F\u5947\u57DF:"Miliastra Wonderland",\u670D\u52A1\u7AEF\u63A7\u4EF6\u6A21\u677F:"Server Control Template",\u670D\u52A1\u7AEF\u63A7\u4EF6:"Server Controls",\u5BA2\u6237\u7AEF\u63A7\u4EF6:"Client Controls","1 \u4EBA":"1 player","{0} \u4EBA":"{0} players"};var Od="qxqy-ui-language",Ul="qxqy-ui-language-change",ci=new Set,l1=i=>["auto","zh","en"].includes(i);function Nd(){try{let i=globalThis.localStorage?.getItem(Od);return l1(i)?i:"auto"}catch{return"auto"}}var mo=Nd(),c1=null;function PC(i="auto",t="zh-CN",e=""){return i==="zh"||i==="en"?i:/^(?:zh|cmn|yue|wuu|hak|nan|gan|hsn)(?:[-_]|$)/i.test(e||t)?"zh":"en"}var MC=()=>mo,zd=()=>c1||{language:typeof window>"u"?"zh-CN":globalThis.navigator?.language||globalThis.navigator?.languages?.[0]||Intl.DateTimeFormat().resolvedOptions().locale||"en",source:"browser"},Hd=()=>PC(mo,zd().language);async function AC(i,t=globalThis.fetch){try{let e=await t(i,{method:"POST",mode:"same-origin",credentials:"same-origin",cache:"no-store",headers:{"content-type":"application/json"},body:"{}",signal:AbortSignal.timeout(4e3)});if(e.ok){let r=await e.json(),s=r.ok?r.value:null;if(typeof s?.language=="string"&&s.language.length<=80){let n=Intl.getCanonicalLocales(s.language.replaceAll("_","-"))[0];if(n){c1={language:n,source:s.source||"host"};for(let o of ci)o()}}}}catch{}return zd()}function ns(i){if(!(i?.type==="storage"&&i.key!==Od&&i.key!==null)){mo=i?.type===Ul?i.detail:Nd();for(let t of ci)t()}}function RC(i){if(l1(i)){mo=i;try{globalThis.localStorage?.setItem(Od,i)}catch{}if(typeof window<"u")window.dispatchEvent(new CustomEvent(Ul,{detail:i}));else for(let t of ci)t()}}function kC(i){return!ci.size&&typeof window<"u"&&(mo=Nd(),window.addEventListener("storage",ns),window.addEventListener(Ul,ns),window.addEventListener("languagechange",ns)),ci.add(i),()=>{ci.delete(i),!ci.size&&typeof window<"u"&&(window.removeEventListener("storage",ns),window.removeEventListener(Ul,ns),window.removeEventListener("languagechange",ns))}}var Fl=(i,t)=>i.replace(/\{(\d+)\}/g,(e,r)=>r<t.length?String(t[r]??""):e),BC=Object.entries(Gl).filter(([i])=>/\{\d+\}/.test(i)).map(([i,t])=>{let e=[],r=i.split(/(\{\d+\})/).map(s=>{let n=s.match(/^\{(\d+)\}$/);return n?(e.push(Number(n[1])),"([\\s\\S]*?)"):s.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}).join("");return{expression:new RegExp(`^${r}$`),value:t,slots:e}});function IC(i,t,...e){if(Array.isArray(t)&&Object.hasOwn(t,"raw")&&(t=t.reduce((r,s,n)=>r+(n?`{${n-1}}`:"")+s,"")),typeof t!="string")return t;if(i!=="en")return Fl(t,e);if(Object.hasOwn(Gl,t))return Fl(Gl[t],e);if(!e.length&&/[\p{Script=Han}]/u.test(t))for(let r of BC){let s=r.expression.exec(t);if(!s)continue;let n=[];return r.slots.forEach((o,a)=>{n[o]=s[a+1]}),Fl(r.value,n)}return Fl(t,e)}var Ld=(i,...t)=>IC(Hd(),i,...t);function GC(i=document){for(let t of i.querySelectorAll("[data-i18n]"))t.textContent=Ld(t.dataset.i18n);for(let t of["title","placeholder","aria-label"])for(let e of i.querySelectorAll(`[data-i18n-${t}]`))e.setAttribute(t,Ld(e.getAttribute(`data-i18n-${t}`)));i===document&&(document.documentElement.lang=Hd()==="zh"?"zh-CN":"en")}Su();Au();Ru();hu();La();Vr();pr();var h1={aVertex:(i,t,e,r,s)=>{let n=0,o=0,a=0,l=0;for(let c=0;c<i.length;++c){let h=i[c],u=h.texture,d=h.scaleX,f=h.scaleY,m=h.anchorX,g=h.anchorY,_=u.trim,x=u.orig;_?(o=_.x-m*x.width,n=o+_.width,l=_.y-g*x.height,a=l+_.height):(n=x.width*(1-m),o=x.width*-m,a=x.height*(1-g),l=x.height*-g),t[r]=o*d,t[r+1]=l*f,t[r+s]=n*d,t[r+s+1]=l*f,t[r+s*2]=n*d,t[r+s*2+1]=a*f,t[r+s*3]=o*d,t[r+s*3+1]=a*f,r+=s*4}},aPosition:(i,t,e,r,s)=>{for(let n=0;n<i.length;++n){let o=i[n],a=o.x,l=o.y;t[r]=a,t[r+1]=l,t[r+s]=a,t[r+s+1]=l,t[r+s*2]=a,t[r+s*2+1]=l,t[r+s*3]=a,t[r+s*3+1]=l,r+=s*4}},aRotation:(i,t,e,r,s)=>{for(let n=0;n<i.length;++n){let o=i[n].rotation;t[r]=o,t[r+s]=o,t[r+s*2]=o,t[r+s*3]=o,r+=s*4}},aUV:(i,t,e,r,s)=>{for(let n=0;n<i.length;++n){let o=i[n].texture.uvs;t[r]=o.x0,t[r+1]=o.y0,t[r+s]=o.x1,t[r+s+1]=o.y1,t[r+s*2]=o.x2,t[r+s*2+1]=o.y2,t[r+s*3]=o.x3,t[r+s*3+1]=o.y3,r+=s*4}},aColor:(i,t,e,r,s)=>{for(let n=0;n<i.length;++n){let o=i[n].color;e[r]=o,e[r+s]=o,e[r+s*2]=o,e[r+s*3]=o,r+=s*4}}};function d1(i){let t=Object.values(i),e=t.filter(s=>s.dynamic),r=t.filter(s=>!s.dynamic);return{dynamicUpdate:u1(e),staticUpdate:u1(r)}}function u1(i){let t=0,e=[];for(let r=0;r<i.length;r++){let s=i[r],n=Jt(s.format).stride/4;t+=n,e.push({stride:n,updateFunction:s.updateFunction||h1[s.attributeName]})}return(r,s,n)=>{let o=0;for(let a=0;a<e.length;a++){let l=e[a];l.updateFunction(r,s,n,o,t),o+=l.stride}}}wn();me();$t();Ar();Tu();function f1(){return FC}function FC(i,t,e){let r=i.gl,s=i.shader,n=s._getProgramData(t.glProgram);for(let o in t.groups){let a=t.groups[o];for(let l in a.resources){let c=a.resources[l];if(c instanceof Ct)c.ubo?s.bindUniformBlock(c,t._uniformBindMap[o][l],e.blockIndex++):s.updateUniformGroup(c);else if(c instanceof He)s.bindUniformBlock(c,t._uniformBindMap[o][l],e.blockIndex++);else if(c instanceof st||c instanceof qi){i.texture.bind(c,e.textureCount);let h=t._uniformBindMap[o][l],u=n.uniformData[h];u&&(u.value!==e.textureCount&&r.uniform1i(u.location,e.textureCount),e.textureCount++)}else c instanceof ce}}}Ka();Oa();Tn();var p1=[(i,t,e,r,s)=>{let n=r[i].toArray(!0);t[e]=n[0],t[e+1]=n[1],t[e+2]=n[2],t[e+4]=n[3],t[e+5]=n[4],t[e+6]=n[5],t[e+8]=n[6],t[e+9]=n[7],t[e+10]=n[8]},(i,t,e,r,s)=>{s=r[i],t[e]=s.x,t[e+1]=s.y,t[e+2]=s.width,t[e+3]=s.height},(i,t,e,r,s)=>{s=r[i],t[e]=s.x,t[e+1]=s.y},(i,t,e,r,s)=>{s=r[i],t[e]=s.red,t[e+1]=s.green,t[e+2]=s.blue,t[e+3]=s.alpha},(i,t,e,r,s)=>{s=r[i],t[e]=s.red,t[e+1]=s.green,t[e+2]=s.blue}],m1={f32:(i,t,e,r,s)=>{t[e]=s},i32:(i,t,e,r,s)=>{t[e]=s},"vec2<f32>":(i,t,e,r,s)=>{t[e]=s[0],t[e+1]=s[1]},"vec3<f32>":(i,t,e,r,s)=>{t[e]=s[0],t[e+1]=s[1],t[e+2]=s[2]},"vec4<f32>":(i,t,e,r,s)=>{t[e]=s[0],t[e+1]=s[1],t[e+2]=s[2],t[e+3]=s[3]},"mat2x2<f32>":(i,t,e,r,s)=>{t[e]=s[0],t[e+1]=s[1],t[e+2]=s[2],t[e+3]=s[3]},"mat3x3<f32>":(i,t,e,r,s)=>{t[e]=s[0],t[e+1]=s[1],t[e+2]=s[2],t[e+4]=s[3],t[e+5]=s[4],t[e+6]=s[5],t[e+8]=s[6],t[e+9]=s[7],t[e+10]=s[8]},"mat4x4<f32>":(i,t,e,r,s)=>{for(let n=0;n<16;n++)t[e+n]=s[n]},"mat3x2<f32>":(i,t,e,r,s)=>{for(let n=0;n<6;n++)t[e+(n/3|0)*4+n%3]=s[n]},"mat4x2<f32>":(i,t,e,r,s)=>{for(let n=0;n<8;n++)t[e+(n/4|0)*4+n%4]=s[n]},"mat2x3<f32>":(i,t,e,r,s)=>{for(let n=0;n<6;n++)t[e+(n/2|0)*4+n%2]=s[n]},"mat4x3<f32>":(i,t,e,r,s)=>{for(let n=0;n<12;n++)t[e+(n/4|0)*4+n%4]=s[n]},"mat2x4<f32>":(i,t,e,r,s)=>{for(let n=0;n<8;n++)t[e+(n/2|0)*4+n%2]=s[n]},"mat3x4<f32>":(i,t,e,r,s)=>{for(let n=0;n<12;n++)t[e+(n/3|0)*4+n%3]=s[n]}},g1={f32:(i,t,e,r,s)=>{t[e]=s},i32:(i,t,e,r,s)=>{t[e]=s},"vec2<f32>":(i,t,e,r,s)=>{t[e]=s[0],t[e+1]=s[1]},"vec3<f32>":(i,t,e,r,s)=>{t[e]=s[0],t[e+1]=s[1],t[e+2]=s[2]},"vec4<f32>":(i,t,e,r,s)=>{t[e]=s[0],t[e+1]=s[1],t[e+2]=s[2],t[e+3]=s[3]},"mat2x2<f32>":(i,t,e,r,s)=>{t[e]=s[0],t[e+1]=s[1],t[e+4]=s[2],t[e+5]=s[3]},"mat3x3<f32>":(i,t,e,r,s)=>{t[e]=s[0],t[e+1]=s[1],t[e+2]=s[2],t[e+4]=s[3],t[e+5]=s[4],t[e+6]=s[5],t[e+8]=s[6],t[e+9]=s[7],t[e+10]=s[8]},"mat4x4<f32>":(i,t,e,r,s)=>{for(let n=0;n<16;n++)t[e+n]=s[n]},"mat3x2<f32>":(i,t,e,r,s)=>{for(let n=0;n<6;n++)t[e+(n/3|0)*4+n%3]=s[n]},"mat4x2<f32>":(i,t,e,r,s)=>{for(let n=0;n<8;n++)t[e+(n/4|0)*4+n%4]=s[n]},"mat2x3<f32>":(i,t,e,r,s)=>{for(let n=0;n<6;n++)t[e+(n/2|0)*4+n%2]=s[n]},"mat4x3<f32>":(i,t,e,r,s)=>{for(let n=0;n<12;n++)t[e+(n/4|0)*4+n%4]=s[n]},"mat2x4<f32>":(i,t,e,r,s)=>{for(let n=0;n<8;n++)t[e+(n/2|0)*4+n%2]=s[n]},"mat3x4<f32>":(i,t,e,r,s)=>{for(let n=0;n<12;n++)t[e+(n/3|0)*4+n%3]=s[n]}};function x1(i){return y1(i,g1,t=>{let e=Math.max(Hn[t.data.type]/16,1),r=t.data.value.length/t.data.size,s=(4-r%4)%4;return(n,o,a,l,c)=>{let h=0;for(let u=0;u<t.data.size*e;u++){for(let d=0;d<r;d++)o[a++]=c[h++];a+=s}}})}function _1(i){return y1(i,m1,t=>{let{size:e,align:r}=Zr[t.data.type],s=(e-r)/4;return(n,o,a,l,c)=>{let h=0;for(let u=0;u<t.data.size*(e/4);u++){for(let d=0;d<e/4;d++)o[a++]=c[h++];a+=s}}})}function y1(i,t,e){let r={};for(let s in i){let n=i[s],o=n.data,a=!1;r[o.name]={offset:n.offset/4,func:null};for(let l=0;l<ue.length;l++){let c=ue[l];if(o.type===c.type&&c.test(o)){r[o.name].func=p1[l],a=!0;break}}a||(o.size===1?r[o.name].func=t[o.type]:r[o.name].func=e(n))}return(s,n,o)=>{for(let a in r)r[a].func(a,n,o+r[a].offset,s,s[a])}}Tn();var b1={f32(i,t,e,r,s,n,o){e!==r&&(t.value=r,o.uniform1f(s[i].location,r))},"vec2<f32>"(i,t,e,r,s,n,o){(e[0]!==r[0]||e[1]!==r[1])&&(e[0]=r[0],e[1]=r[1],o.uniform2f(s[i].location,r[0],r[1]))},"vec3<f32>"(i,t,e,r,s,n,o){(e[0]!==r[0]||e[1]!==r[1]||e[2]!==r[2])&&(e[0]=r[0],e[1]=r[1],e[2]=r[2],o.uniform3f(s[i].location,r[0],r[1],r[2]))},"vec4<f32>"(i,t,e,r,s,n,o){(e[0]!==r[0]||e[1]!==r[1]||e[2]!==r[2]||e[3]!==r[3])&&(e[0]=r[0],e[1]=r[1],e[2]=r[2],e[3]=r[3],o.uniform4f(s[i].location,r[0],r[1],r[2],r[3]))},i32(i,t,e,r,s,n,o){e!==r&&(t.value=r,o.uniform1i(s[i].location,r))},"vec2<i32>"(i,t,e,r,s,n,o){(e[0]!==r[0]||e[1]!==r[1])&&(e[0]=r[0],e[1]=r[1],o.uniform2i(s[i].location,r[0],r[1]))},"vec3<i32>"(i,t,e,r,s,n,o){(e[0]!==r[0]||e[1]!==r[1]||e[2]!==r[2])&&(e[0]=r[0],e[1]=r[1],e[2]=r[2],o.uniform3i(s[i].location,r[0],r[1],r[2]))},"vec4<i32>"(i,t,e,r,s,n,o){(e[0]!==r[0]||e[1]!==r[1]||e[2]!==r[2]||e[3]!==r[3])&&(e[0]=r[0],e[1]=r[1],e[2]=r[2],e[3]=r[3],o.uniform4i(s[i].location,r[0],r[1],r[2],r[3]))},u32(i,t,e,r,s,n,o){e!==r&&(t.value=r,o.uniform1ui(s[i].location,r))},"vec2<u32>"(i,t,e,r,s,n,o){(e[0]!==r[0]||e[1]!==r[1])&&(e[0]=r[0],e[1]=r[1],o.uniform2ui(s[i].location,r[0],r[1]))},"vec3<u32>"(i,t,e,r,s,n,o){(e[0]!==r[0]||e[1]!==r[1]||e[2]!==r[2])&&(e[0]=r[0],e[1]=r[1],e[2]=r[2],o.uniform3ui(s[i].location,r[0],r[1],r[2]))},"vec4<u32>"(i,t,e,r,s,n,o){(e[0]!==r[0]||e[1]!==r[1]||e[2]!==r[2]||e[3]!==r[3])&&(e[0]=r[0],e[1]=r[1],e[2]=r[2],e[3]=r[3],o.uniform4ui(s[i].location,r[0],r[1],r[2],r[3]))},bool(i,t,e,r,s,n,o){e!==r&&(t.value=r,o.uniform1i(s[i].location,r))},"vec2<bool>"(i,t,e,r,s,n,o){(e[0]!==r[0]||e[1]!==r[1])&&(e[0]=r[0],e[1]=r[1],o.uniform2i(s[i].location,r[0],r[1]))},"vec3<bool>"(i,t,e,r,s,n,o){(e[0]!==r[0]||e[1]!==r[1]||e[2]!==r[2])&&(e[0]=r[0],e[1]=r[1],e[2]=r[2],o.uniform3i(s[i].location,r[0],r[1],r[2]))},"vec4<bool>"(i,t,e,r,s,n,o){(e[0]!==r[0]||e[1]!==r[1]||e[2]!==r[2]||e[3]!==r[3])&&(e[0]=r[0],e[1]=r[1],e[2]=r[2],e[3]=r[3],o.uniform4i(s[i].location,r[0],r[1],r[2],r[3]))},"mat2x2<f32>"(i,t,e,r,s,n,o){o.uniformMatrix2fv(s[i].location,!1,r)},"mat3x3<f32>"(i,t,e,r,s,n,o){o.uniformMatrix3fv(s[i].location,!1,r)},"mat4x4<f32>"(i,t,e,r,s,n,o){o.uniformMatrix4fv(s[i].location,!1,r)}},v1={f32(i,t,e,r,s,n,o){o.uniform1fv(s[i].location,r)},"vec2<f32>"(i,t,e,r,s,n,o){o.uniform2fv(s[i].location,r)},"vec3<f32>"(i,t,e,r,s,n,o){o.uniform3fv(s[i].location,r)},"vec4<f32>"(i,t,e,r,s,n,o){o.uniform4fv(s[i].location,r)},"mat2x2<f32>"(i,t,e,r,s,n,o){o.uniformMatrix2fv(s[i].location,!1,r)},"mat3x3<f32>"(i,t,e,r,s,n,o){o.uniformMatrix3fv(s[i].location,!1,r)},"mat4x4<f32>"(i,t,e,r,s,n,o){o.uniformMatrix4fv(s[i].location,!1,r)},i32(i,t,e,r,s,n,o){o.uniform1iv(s[i].location,r)},"vec2<i32>"(i,t,e,r,s,n,o){o.uniform2iv(s[i].location,r)},"vec3<i32>"(i,t,e,r,s,n,o){o.uniform3iv(s[i].location,r)},"vec4<i32>"(i,t,e,r,s,n,o){o.uniform4iv(s[i].location,r)},u32(i,t,e,r,s,n,o){o.uniform1iv(s[i].location,r)},"vec2<u32>"(i,t,e,r,s,n,o){o.uniform2iv(s[i].location,r)},"vec3<u32>"(i,t,e,r,s,n,o){o.uniform3iv(s[i].location,r)},"vec4<u32>"(i,t,e,r,s,n,o){o.uniform4iv(s[i].location,r)},bool(i,t,e,r,s,n,o){o.uniform1iv(s[i].location,r)},"vec2<bool>"(i,t,e,r,s,n,o){o.uniform2iv(s[i].location,r)},"vec3<bool>"(i,t,e,r,s,n,o){o.uniform3iv(s[i].location,r)},"vec4<bool>"(i,t,e,r,s,n,o){o.uniform4iv(s[i].location,r)}},S1=[(i,t,e,r,s,n,o)=>{o.uniformMatrix3fv(s[i].location,!1,n[i].toArray(!0))},(i,t,e,r,s,n,o)=>{e=s[i].value,r=n[i],(e[0]!==r.x||e[1]!==r.y||e[2]!==r.width||e[3]!==r.height)&&(e[0]=r.x,e[1]=r.y,e[2]=r.width,e[3]=r.height,o.uniform4f(s[i].location,r.x,r.y,r.width,r.height))},(i,t,e,r,s,n,o)=>{e=s[i].value,r=n[i],(e[0]!==r.x||e[1]!==r.y)&&(e[0]=r.x,e[1]=r.y,o.uniform2f(s[i].location,r.x,r.y))},(i,t,e,r,s,n,o)=>{e=s[i].value,r=n[i],(e[0]!==r.red||e[1]!==r.green||e[2]!==r.blue||e[3]!==r.alpha)&&(e[0]=r.red,e[1]=r.green,e[2]=r.blue,e[3]=r.alpha,o.uniform4f(s[i].location,r.red,r.green,r.blue,r.alpha))},(i,t,e,r,s,n,o)=>{e=s[i].value,r=n[i],(e[0]!==r.red||e[1]!==r.green||e[2]!==r.blue)&&(e[0]=r.red,e[1]=r.green,e[2]=r.blue,o.uniform3f(s[i].location,r.red,r.green,r.blue))}];function T1(i,t){let e={};for(let r in i.uniformStructures){if(!t[r])continue;let s=i.uniformStructures[r],n=!1;for(let o=0;o<ue.length;o++){let a=ue[o];if(s.type===a.type&&a.test(s)){e[r]=S1[o],n=!0;break}}if(!n){let o=s.size===1?b1:v1;e[r]=o[s.type]}}return(r,s,n)=>{let o=n.gl;for(let a in e){let l=s[a],c=r[a],h=r[a].value;e[a](a,c,h,l,r,s,o)}}}function UC(){Object.assign(Te.prototype,{_unsafeEvalCheck(){}}),Object.assign(br.prototype,{_systemCheck(){}}),Object.assign(ei.prototype,{_generateUniformsSync:T1}),Object.assign(Jr.prototype,{_generateUboSync:x1}),Object.assign(Qr.prototype,{_generateUboSync:_1}),Object.assign(ti.prototype,{_generateShaderSync:f1}),Object.assign(Rl.prototype,{generateParticleUpdate:d1})}UC();var DC="mp3-v1",LC="/qxqy-audio/",OC=[[10001,"ura.1ht4.2ag9.1hh5.jbb.k02.jcw.2tv.2wn.2xk.2r3.d5s.94l.ebv.kcr.b40.77k.9gp.97w.1hb5.jag.btu.jc9.hp5.bmj.blq.blq.ff9.ffk.o74.1owl.rp.mg.l3.lf.lh.qy.1a3z.2xk.2xk.2xk.2xk.2xk.17dc.1f2b.2bc.2bc.2bc.2bc.2bc.ffo.ffo.126.1fk.4mo.4mo.15e.1h2.237.2ba.2kd.2bc.4mo.4mo.4mo.4mo.1mc.1n6.2cu.1ud.2b1.2ee.1tj.1tk"],[20001,"o6.fh.kb.cr.og.sm.6x.8c.87.o7.vz.kt.qo.lg.ob.9w.mg.1kz.zc.1ex.1d5.ps.uu.su.qs.ys.zp.10k.15a.xc.uk.mx.1ax.nt.tu.19m.uj.1ku.tt.100.ie.d3.fp.ie.ie.d3.fp.ie.8p.7k.fw.h0.qc.ot.uc.ot.rk.gb.1c2.ff.cl.9v.wg.1ir.1lr.1b8.1ri.1p0.104.10n.mw.j6.jb.f1.dv.84.a0.cp.bx.1ko.1au.1ia.rs.rt.rs.t7.x6.wi.zc.16f.1i6.2jh.28d.qh.k8.1gz.1ko.2iv.1xp.1l4.1gk.10j.yo.1jk.1jk.xv.104.15o.1xg.1xg.1xi.25i.p1.t1.yh.1ak.1i6.1y2.xt.32u.3g6.1bz.2mn.14l.14c.1e1.op.s8.p2.v5.2ix.1a0.ry.16m.17n.13c.134.ys.yu.xr.sl.sr.sd.yh.z5.gd.gl.hx.h2.g8.fj.iy.hz.jj.th.12n.16r.d3.j9.dg.lj.fl.a7.f9.iw.el.27f.1dh.1rh.2ph.yd.w5.x5.tr.pq.zf.16h.1a5.17t.wy.vn.y8.wl.yv.2ye.2qt.1ah.163.19t.uf.119.2vv.1bm.13h.14p.1so.c3.as.9z.19w.1l4.1nl.rj.we"],[30001,"jo.my.ss.dw.c1.b4.hl.hl.hl.cz.dw.dw.b4.dw.fr.kd.qv.px.px.74.6u.8h.60.8q.8b.eo.eo.eo.8k.a5.99.12v.13y.lg.m4.qr.dw.ex.g0.ef.cd.br.11n.17h.1b8.1c9.9p.ag.9z.l9.m8.m8.lw.m8.cz.99.b4.8c.63.7f.6h.99.re.pp.pi.cq.c9.cp.ck.c6.b0.bd.al.f6.gl.ed.fs.lc.k6.kh.i6.cx.j1.hk.gb.d7.h7.g2.em.kj.kn.k4.j5.rh.t0.qt.mj.i7.ih.i2.hd.3r.8d.6u.6z.by.de.dg.cr.1a5.1ab.16c.18g.n2.ly.no.nt.f9.de.lr.fe.f0.fj.el.fo.t1.g9.ly.h3.g6.de.2ak.2f3.wf.kg.qn.11p.rg.uj.u6.11c.22o.2cs.3dp.3dq.3d5.3d6.1zx.18v"],[40001,"19x.215.2zt.1ex.2pj.7hy.1ur.1gn.1g7.1b1.u9.1tw.108.1ew.rs.1qu.w9.lk.244.qi.b6.tk.jg.jg.jg.y4.c1.b4.iv.hi.r4.n7.gy.ev.qe.12z.18n.dw.1l6.ou.wz.1un.19t.18k.yy.1hs.sl.dw.1vl.100.14k.1q8.209.1jk.1xr.ua.1j2.pr.26h.1gs.s9.px.15v.pf.1jk.xc.1hb.111.172.ut.285.1oh.149.zj.22r.2l9.14a.ok.23y.1eh.xe.1j0.1rp.1cz.wf.1mh.22k.334.1z2.1xo.1br.4ji.5nq.5nf.2za.18r.h3.eo.ia.1kn.dc.ss.s0.1bl.1oc.is.km.177.1ec.1ao.h4.hp.dx.l9.iw.i3.12w.n1.yq.12w.1ju.yx.14s.18b.22t.u3.my.2rb.36w.13u.z8.20r.18g.19r.2x9.w4.q2.1d2.wo.13a.v6.17w.ur.288.1b6.14m.1fi.1xx.1ee.kj.121.j2.1d2.2ad.1ri.2lc.1vk.138.12r.xj.1h5.1c5.2qx.1gj.t2.lv.rf.18q.1kz.dw.2aq.ia.1i9.k5.199.f4.10y.18a.xf.rk.1g9.1q3.10h.sj.15o.e3.dz.sv.135.w9.yg.aw.2a2.19m.22w.1c8.272.13o.104.1sr.rs.1pb.d5.df.kp.jq.1a7.s8.1ao.ba.rb.in.pz.q8.140.ij.1e7.jl.yk.117.10i.1tn.1oj.1sv.sj.1e3.2so.1c7.1gv.178.107.10n.1dx.1qi.1wp.2bc.218.16r.105.xc.z6.11w.1mc.1y9.17p.1cs.2ij.18c.1ie.nn.16c.1ce.xb.1ei.3j0.ve.14x.1sx.285.1b8.1at.v4.rv.rs.10z.xq.11o.15k.xq.u1.i2.pu.i4.l3.9u.oh.mc.nm.pw.1i3.1h4.pj.111.l4.lb.qq.qf.u0.h4.nk.yf.6h.ij.ds.oy.re.m8.1gl.cz.16z.a1.1f8.1x6.vp.dz.gp.g6.fr.vl.fr.gg.qc.aj.99.go.ij.fz.11a.x5.mo.1u9.h0.m8.10m.1an.2bc.3uw.2gk.124.xb.1uk.1b6.2xj.1os.11a.vs.1i9.1lr.2gv.265.668.1xg.45j.404.2x1.1io.3om.4q2.4mo.1d4.2bp.1pr.166.2y6.2bv.361.2nc.2bc.3g0.7g4.334.2bc.2xo.3uw.6ic.4ig.3uw.23v.1la.2zr.1jt.1cq.27a.1n1.19x.1qg.1jn.1ca.26y.2d6.4v4.4mo.4mo.7ps.1jk.153.1fo.1dm.1s2.1w1.oe.1lb.319.2eg.58p.4mo.3dw.2y2.2xm.1u8.1ko.12n.1e0.2sd.1md.2cl.1q2.372.4mo.48s.b14.3fu.334.334.34i.4nf.4ji.5eg.3uw.2u8.1g1.110.37x.2jo.su.334.3aj.3uw.63f.2bc.2bc.8v4.1ts.ax5.5du.34d.3oc.34j.4si.174.rt.1rp.2b0.37d.1ta.2gh.28a.22z.1nc.1a5.1pa.4dd.3ha.2cs.5mv.4mq.5c2.3uw.1gf.4md.113.10x.21o.2hj.1b3.1cx.1ol.3ar.1fv.17t.1a7.2uj.2we.1jk"],[50001,"1o8.1k1.mo.1wu.2c9.22d.1kb.23n.1b8.1ic.24c.2wz.1mq.1mu.1jx.1z1.o3.190.vp.1h7.th.4mo.1rp.4mo.4mo.7ps.zz.143.21v.1nf.34s.1s3.r9.18t.s1.r9.21w.277.ls.25k.5v1.2bc.1kh.wt.14i.1eq.15o.668.sh.rl.3wi.3vc.43c.3yn.17c.f5.xu.jg.176.19v.1xy.23m.18x.30c.10l.13k.v8.vp.17t.qj.17m.1wr.1la.8t.s7.18d.1l2.152.mx.1c8.1l4.1f5.1xe.rz.2hz.1et.13t.xb.14r.15o.z0.1zo.ur.257.1gb.li.12d.15a.132.1m1.3vu.296.1mg.11m.z0.159.mp.hd.x4.1go.ns.xh.2a7.tt.2vb.1bx.1kh.u3.11i.1y1.24e.2hp.2mn.1w6.3zm.166.14g.1mo.2v9.2rg.2f9.1r0.139.m1.k3.ys.1dy.29k.1mm.22m.3zx.4dr.2h7.22o.tv.rm.1et.2wv.2ar.1t7.ku.12s.10b.1v9.1gu.12m.1b3.tv.1c8.tk.10s.ul.1tt.ka.oi.qb.13f.13f.13k.17h.1uh.ez.en.2x7.2ln.2h8.3h8.ig.n9.27o.18b.hl.nm.uk.11a.1ta.1k4.1eh.wv.1go.1gg.sc.18u.1dz.2aq.vt.2l7.25h.1l5.1kn.1vc.1b4.28i.17t.1d6.1k2.18z.jy.jw.dh.1mx.fr.vp.35w.34z.35w.34z.4so.vf.yx.1bg.1d3.2yc.1tg.8q3.99g.am.2du.rm.rg.xa.2cw.xc.1j6.1if.18z.13a.yz.142.1z5.262.1bj.1y8.ur.u5.16j.1pf.1bi.l8.1il.3vz.2dr.jo.ls.18s.16l.18c.141.219.1yz.1fc.24t.27e.481.1vp.25h.1yq.1zn.1uw.11u.1jp.1pz.39o.t6.1mj.1u5.11l.1vd.1dk.1zb.1ic.3ql.14p.1wq.25x.267.zn.zn.1pf.13z.1j7.r9.1hb.4yp.1lt.1cw.1z4.19z.1og.1j4.1cl.1eg.u8.16s.1en.zu.1hr.1js.19g.303.22j.2oa.180.1v7.2ud.2d7.21s.3g9.vh.v1.284.3lg.3lg.17q.1h3.4mo.1cm.1rv.22i.2mc.2j3.27o.333.1q8.237.2ll.23b.2sp.2ll.2ox.2cf.2f8.2hz.1uo.y4.s9.w6.2dg.2q9.up.1m1.1vz.2n8.192.1eb.z7.2em.2q3.1sd.1gj.348.3vf.2iu.29x.1dc.7oj.4pq.5vb.4mx.5me.5sf.5yf.7ps.yj.q0.10w.13p.18b.2wd.11q.2vx.dd.iv.12p.jh.u9.1uy.w0.3f0.3bj.126.qo.1gj.11k.pu.22h.1z6.rp.y4.y0.xl.1d0.11s.wa.1a6.127.10m.12r.1nh.1fy.yo.1js.162.n4.174.1aj.y4.o8.qz.rh.qa.18s.mr.j3.ii.sr.sx.1jk.17l.mj.zr.uy.wa.19t.2bt.xe.1od.hs.xr.5b.12c.1ab.we.gz.mz.4y.sf.11s.e0.1l7.ew.h6.jz.l0.e8.1cx.p6.17u.bw.1ah.10r.10e.o9.1bc.uv.lq.tl.zb.100.jy.b8.bj.336.10n.na.sq.14r.yr.nm.123.tf.l1.zp.1xc.1vk.31l.zl.2bj.2b9.2fv.17p.y0.so.1ln.29c.1eh.nh.xn.131.qc.186.ff.fc.xq.1bm.la.l8.14f.243.111.xi.qw.1qn.11v.1ur.1jx.1ks.s9.nz.269.1zj.2zd.1pv.18n.2vk.p3.1fh.13v.1lf.1lu.2db.1sr.1k3.26o.1dl.1f3.187.2lh.166.v9.xh.1e3.119.s2.mt.1iu.1k6.1o2.12s.u4.2br.1q3.qv.1e4.1zu.1v4.1vk.1t3.3p7.1ob.14d.1ns.1ef.1e4.12w.2kk.1ba.2jx.1e0.1s5.12w.17r.14s.wz.1qp.183.3fb.188.1gr.2ot.168.1u7.w8.28o.1zd.32z.230.w7.vq.x8.1qh.19f.14o.2r9.qg.1ey.1qr.1p6.3a3.1ov.13d.tz.wk.22v.1qa.2l9.yw.yf.nw.p6.1ly.1jk.1nh.x9.q0.17r.17h.ux.uw.12y.p7.g7.kt.14c.ze.1kh.1eo.18a.1d8.26j.15k.19f.1ym.1j5.1c6.11k.1sd.1jp.1ws.13s.1o5.214.sx.px.20x.14h.1ja.s6.1q8.w8.1ks.so.ub.121.202.1ej.1g1.1s8.2bc.4t1.bih.3uw.3pb.avp.6c7.bko.5eg.79c.6wh.3wd.4pn.55j.4a5.3gg.bko.5ei.52p.578.bcv.6gr.2bc.4j9.5y7.9d2.2bb.2bc.668.73z.5pg.50f.5m7.788.267.642.8h2.8h2.49s.64g.5e8.5e8.2bb.3ih.5ur.6bk.578.4ck.3sg.5fe.23i.e9w.2b8.5oj.6bw.2al.2rk.2rk.5pj.n6e.350.6v9.70t.639.3uw.3uw.2bg.639.2bb.2bd.6gj.2bh.660.578.3bk.65e.359.3o0.44i.4tn.1zq.5ee.4a5.3zu.rs.639.33q.5eg.1k1.15o.dw.3uw.b7p.7qd.898.4l4.5uu.5uu.b4g.2yh.2yh.3uw.51a.51a.5kk.66f.iq9.3n7.4nb.46a.1wb.20p.bih.8xa.7ps.70t.70t.4rv.5p1.6aq.ts.63z.668.5v2.5nu.563.55s.55s.5p3.2ga.32x.42x.5cr.4c2.71b.5zp.5c2.66t.4c8.2bc.2bc.2gn.3ea.2kp.fz6.8hz.3e8.4an.bko.j7e.jag.7sr.2bc.3zx.7qd.5ut.5jp.2wk.5q7.3uw.334.4i3.3uw.4bd.5eu.46h.4i2.6t4.446.5s7.5cg.4bk.5nd.7bf.4rt.23b.2bc.2bc.2bc.2bc.2ba.4mo.4dv.3wn.2bc.1we.4he.2bc.4gz.3wn.3km.4xy.4hi.4mr.2bc.247.3yj.2c6.2bc.3aj.446.4ub.3uw.51.e0.86.is.i1.hg.mn.m4.2c.7h.sg.e3.jb.7r.eq.nf.u0.60.4o.ke.47.47.47.47.b8.4x.dr.dy.rw.rw.59.8j.5z.a5.l3.c0.ik.f7.li.lr.7x.dv.du.dd.5e.91.1b.ce.cc.59.bh.e6.8m.9n.cl.lt.7ip.4mr.4si.4kf.vo.we.13e.17n.1iw.2pi.lp.r6.gw.7x.xz.qt.bq.ls.q1.eh.bx.cr.3c.j7.b8.fz.4k.8p.bg.5w.iy.j3.12o.rs.cz.dp.yz.jk.63.63.7ps.7ps.7ps.40g.3jp.4tw.89k.88a.7s0.83d.668.7ps.2fw.2ev.2fp.7ps.2jb.2dh.2ud.25i.24c.2bt.1pa.17r.1a7.7ps.7pt.5rg.4nl.3vv.7qo.31a.2p0.2k0.49a.3v4.3nl.1ug.1ug.1l6.7s1.7ps.2cp.2f8.2i7.7ps.28q.2be.275.1ma.1oz.1q7.16s.1iq.1e0.78m.7ps.2bc.2bc.2bc.bko.2wu.2wu.2wu.3b4.38f.3uw.3uw.3uw.3uw.7ps.7qa.32n.2gg.2wk.7rv.1v3.1qq.1rb.1zk.1my.1zp.1yn.1oh.1uh.7st.9q.9q.9q.9q.9q.kk.kk.kk.kk.kk.dw.dp.dw.rs.rs.rs.rs.s4.sd.54j.5n8.2n6.21r.1nu.1o5.14u.t6.3f7.2j0.32c.304.189.1gf.18w.18j.1st.1vq.116.kw.3uw.3uw.vr.zx.xc.tc.7d.7r.9d.9w.8s.9p.3b.3b"]].map(([i,t])=>[i,t.split(".").map(e=>parseInt(e,36)/1e3)]);function w1(i){if(!Number.isSafeInteger(i))return null;for(let[t,e]of OC)if(i>=t&&i<t+e.length)return e[i-t];return null}function C1(i){return`${LC}${DC}/${i}.mp3`}var Dl=class{constructor({contextFactory:t=()=>new(globalThis.AudioContext||globalThis.webkitAudioContext),fetch:e=(...n)=>globalThis.fetch(...n),onStatus:r=()=>{},now:s=()=>performance.now()}={}){Object.assign(this,{contextFactory:t,fetcher:e,onStatus:r,now:s}),this.context=null,this.output=null,this.buffers=new Map,this.voices=new Map,this.key="",this.sequence=0,this.paused=!1,this.muted=!1,this.disposed=!1,this.error="",this.revision=-1,this.unlockHandlers=[]}status(){return{unlocked:this.context?.state==="running",muted:this.muted,error:this.error,voices:this.voices.size}}publish(){this.onStatus(this.status())}ensureContext(){return this.context||(this.context=this.contextFactory(),this.output=this.context.createGain(),this.output.gain.value=this.muted?0:1,this.output.connect(this.context.destination),this.context.onstatechange=()=>this.publish()),this.context}unlock(){if(!this.disposed)try{this.ensureContext().resume().then(()=>{if(!this.disposed){for(let e of this.voices.values())this.playVoice(e);this.publish()}}).catch(e=>{this.error=e.message,this.publish()});for(let e of this.voices.values())this.playVoice(e)}catch(t){this.error=t.message,this.publish()}}bindUnlock(t){let e=s=>{s.target?.closest?.("[data-audio-toggle]")||this.unlock()};for(let s of["pointerdown","keydown"])t.addEventListener(s,e,{capture:!0});let r=()=>{for(let s of["pointerdown","keydown"])t.removeEventListener(s,e,{capture:!0})};return this.unlockHandlers.push(r),r}toggle(){this.context?.state!=="running"?this.unlock():this.setMuted(!this.muted)}setMuted(t){this.muted=!!t,this.output&&(this.output.gain.value=this.muted?0:1),this.publish()}buffer(t){let e=this.buffers.get(t);if(e&&(!e.failed||this.now()<e.retryAt))return this.buffers.delete(t),this.buffers.set(t,e),e.promise;let r={bytes:0,failed:!1,abort:new AbortController},s=setTimeout(()=>r.abort.abort(),3e4);return r.promise=(async()=>{let n=await this.fetcher(C1(t),{signal:r.abort.signal});if(!n.ok)throw new Error(`\u97F3\u6548 ${t} \u52A0\u8F7D\u5931\u8D25\uFF1AHTTP ${n.status}`);let o=await n.arrayBuffer();if(this.disposed)throw new Error("audio player disposed");let a=await this.ensureContext().decodeAudioData(o);r.bytes=a.length*a.numberOfChannels*4;let l=[...this.buffers.values()].reduce((c,h)=>c+h.bytes,0);for(let[c,h]of this.buffers){if(l<=32*1024*1024&&this.buffers.size<=64)break;c===t||!h.bytes&&!h.failed||(this.buffers.delete(c),l-=h.bytes)}return a})().catch(n=>{throw r.failed=!0,r.retryAt=this.now()+6e4,n}).finally(()=>clearTimeout(s)),this.buffers.set(t,r),r.promise}stopSource(t){let e=t.source;if(t.source=null,!!e){e.onended=null;try{e.stop()}catch{}e.disconnect()}}removeVoice(t){let e=this.voices.get(t);e&&(this.stopSource(e),this.voices.delete(t))}playVoice(t){if(this.disposed||this.voices.get(t.row.instanceId)!==t||this.paused||t.source||t.loading||t.done)return;if(!t.buffer){t.loading=!0,this.buffer(t.row.audioId).then(r=>{t.loading=!1,!(this.disposed||this.voices.get(t.row.instanceId)!==t)&&(t.buffer=r,this.playVoice(t))}).catch(r=>{this.disposed||this.voices.get(t.row.instanceId)!==t||(this.removeVoice(t.row.instanceId),this.error=r.message,this.publish())});return}if(this.context?.state!=="running"){this.publish();return}if(t.offset>=t.buffer.duration){t.done=!0;return}let e=this.context.createBufferSource();e.buffer=t.buffer,e.connect(this.output),t.source=e,t.beganAt=this.context.currentTime,e.onended=()=>{t.source===e&&(e.disconnect(),t.source=null,t.done=!0,this.publish())},e.start(0,t.offset),this.publish()}sync(t,{fresh:e=!1}={}){if(this.disposed)return;if(t?.running===!1){this.reset();return}let r=t?.audio;if(!r)return;let s=`${r.sessionId}:${r.playerIndex}`,n=s!==this.key;if(n&&(this.reset(),this.key=s),!n&&(r.sequence<this.sequence||r.revision<this.revision))return;this.revision=r.revision;let o=this.paused;this.paused=!!t.paused;let a=new Map(r.active.map(h=>[h.instanceId,h])),l=new Map(r.recent.map(h=>[h.instanceId,h]));for(let[h,u]of this.voices){let d=l.get(h)||a.get(h);if(d?.stopped||u.done&&!a.has(h)||!d){this.removeVoice(h);continue}this.paused&&!o&&u.source&&(u.offset+=Math.max(0,this.context.currentTime-u.beganAt),this.stopSource(u))}let c=n&&!e?r.active:r.recent;for(let h of c){if(!n&&h.instanceId<=this.sequence||h.stopped||w1(h.audioId)===null||h.duration<=0)continue;this.voices.size>=64&&this.removeVoice(this.voices.keys().next().value);let u={row:h,offset:n&&!e?Math.max(0,t.time-h.startedAt):0,source:null,buffer:null,loading:!1,done:!1};this.voices.set(h.instanceId,u)}this.sequence=r.sequence;for(let h of this.voices.values())this.playVoice(h);this.publish()}reset(){for(let t of this.voices.keys())this.removeVoice(t);this.key="",this.sequence=0,this.revision=-1,this.paused=!1,this.publish()}destroy(){this.disposed=!0,this.reset();for(let t of this.buffers.values())t.abort.abort();this.buffers.clear();for(let t of this.unlockHandlers)t();this.unlockHandlers.length=0,this.context&&(this.context.onstatechange=null,this.context.close().catch(()=>{}))}};var NC=["Digit1","Digit2","Digit3","Digit4","Digit5","Digit6","Digit7","Digit8","Digit9","Digit0","KeyU","KeyZ","KeyY","KeyG","KeyH","KeyI","KeyO","KeyP","KeyJ","KeyK","KeyL","KeyV","F5","F6","F7","F8","F9","F10","Backquote","Minus","Equal","BracketLeft","Comma","Period","Slash","ArrowUp","ArrowDown","ArrowLeft","ArrowRight","ControlRight","ShiftRight","Backspace","CapsLock"],E1=new Map(NC.map((i,t)=>[i,`CraftspersonKey${t+1}`]));for(let[i,t]of Object.entries({KeyW:"MoveForwardKey",KeyS:"MoveBackwardKey",KeyA:"MoveLeftKey",KeyD:"MoveRightKey",ControlLeft:"SwitchToWalkOrRunKey",Space:"JumpKey",KeyX:"DropKey",Tab:"OpenShortcutWheelKey",KeyF:"InteractKey",KeyE:"CharacterSkill1Key",KeyQ:"CharacterSkill2Key",KeyR:"CharacterSkill3Key",KeyT:"CharacterSkill4Key"}))E1.set(i,t);function Ll(i,t){if(t!=="Down"&&t!=="Up"||i.isComposing||i.keyCode===229||i.key==="Process"||i.key==="Dead")return"";let e=String(i.key||""),r=/^[a-z]$/i.test(e)?`Key${e.toUpperCase()}`:i.code,s=E1.get(r);return s?`Keyboard${s}${t}`:""}function P1(i,t){if(t!=="Down"&&t!=="Up")return"";let e=i===0?"NormalAttackKey":i===2?"SprintKey":"";return e?`Keyboard${e}${t}`:""}var M1=33,A1=60;function R1(i,t,e,r){return{x:(i.clientX-t.left)*e/t.width,y:(t.bottom-i.clientY)*r/t.height}}function zC({renderer:i,api:t,onSnapshot:e,onStatus:r,onError:s,onAudioStatus:n,audio:o,isActive:a,isInputActive:l,keyInputEnabled:c=!0}={}){o||=typeof window<"u"?new Dl({onStatus:n}):null,typeof window<"u"&&o?.bindUnlock(window);let h=0,u=null,d=!1,f=!1,m=null,g=null,_=0,x=null,b=null,v=null,S=!1,T=[],w=new Set,E=Promise.resolve();function B(N){let et=h;return E=E.then(()=>et===h&&d?Y("key",{key:N},{allowInactive:!0}):null),E}function R(N=!0){return Promise.all([...w].map(et=>et(N))).then(()=>E)}function M(N){c=!!N,c||R()}function C(N){s&&s(N)}async function A(N,{freshAudio:et=!1}={}){u=N,d=N?.running!==!1,o?.sync(N,{fresh:et}),N?.scene&&N.scene.format==="tree-v1"?(N.scene.reset&&(_=0),await i.applyScene(N.scene,N.canvasWidth,N.canvasHeight),_=N.scene.revision||_):Array.isArray(N?.paint)&&await i.render(N.paint,N.canvasWidth,N.canvasHeight),e&&await e(N)}async function D(){if(!d||f)return;if(a&&!a()){o?.reset();return}f=!0;let N=h;try{let et=await t("get",{view:!0,sceneRev:_,compact:!0});if(N!==h)return;await A(et)}catch(et){if(N!==h)return;d=!1,K(),o?.reset(),C(et)}finally{f=!1}}function H(){m||(m=setInterval(()=>{D()},M1))}function K(){m&&clearInterval(m),m=null,g&&clearTimeout(g),g=null}function I(N=30){g||(g=setTimeout(()=>{g=null,D()},N))}function F(){x&&clearTimeout(x),x=null}function j(){x&&(F(),Y("pointer",{type:"move",...b}))}function G(){R(!1),h++,o?.reset(),F(),v=null,S=!1,d=!1,_=0,K()}async function Y(N,et,{allowInactive:ct=!1}={}){if(!ct&&a&&!a())return null;let It=h;try{let St=await t(N,{light:!0,...et||{}});return It!==h||!d||(St&&typeof St=="object"&&St.frame!==void 0&&r&&r(St),I(30)),St}catch(St){return It===h&&C(St),null}}async function pt(N={}){G(),o?.unlock();let et=h;_=0;let ct=await t("start",{view:!0,compact:!0,...N});return et!==h||(await A({...ct,running:!0},{freshAudio:!0}),et!==h)||(d=!0,K(),H()),ct}async function Tt(){await R(),G();let N=h;_=0,K();let et=await t("get",{view:!0,compact:!0,sceneRev:0});return N!==h||(await A(et),N!==h)||d&&H(),et}async function lt(N={}){G();let et=h;_=0,K();let ct=await t("device",{view:!0,compact:!0,...N});return et!==h||(await A({...ct,running:!0},{freshAudio:!0}),et!==h)||(d=!0,H()),ct}async function ft(N={}){S=!0;let et=h;try{if(await R(),et!==h)return null;et=++h,o?.reset(),_=0;let ct=await t("view",{view:!0,compact:!0,...N});return et!==h||await A({...ct,running:!0}),ct}finally{et===h&&(S=!1)}}async function q(){return G(),t("stop")}function jt(N,et){return R1(N,et.getBoundingClientRect(),u.canvasWidth,u.canvasHeight)}function hi(N,{keysOn:et}={}){let ct=et||N,It=N.ownerDocument||ct.ownerDocument,St=It?.defaultView||ct,Kt=It||ct,Bt=new Map,xe="",Xt=()=>u&&d&&!S&&(!a||a())&&(!l||l()),$e=()=>c&&Xt(),as=V=>V.target?.isContentEditable||V.target?.closest?.('input,textarea,select,button,a[href],[role="textbox"],[contenteditable]:not([contenteditable="false"])'),ls=(V,zt)=>{if(!zt||Bt.has(V))return;let Ol=[...Bt.values()].includes(zt);Bt.set(V,zt),Ol||B(zt)},cr=V=>{let zt=Bt.get(V);return zt?(Bt.delete(V),d&&![...Bt.values()].includes(zt)?B(zt.replace(/Down$/,"Up")):null):null},Er=(V=!0)=>V?Promise.all([...Bt.keys()].map(cr)):(Bt.clear(),Promise.resolve());w.add(Er);let cs=V=>{xe=V.pointerType||"",Xt()&&(v!==null||V.button!=null&&V.button!==0||(v=V.pointerId,N.setPointerCapture?.(V.pointerId),j(),Y("pointer",{type:"down",...jt(V,N)})))},hs=V=>{Xt()&&v===V.pointerId&&(j(),Y("pointer",{type:"up",...jt(V,N)}),v=null)},us=V=>{Xt()&&(v!==null&&v!==V.pointerId||(b=jt(V,N),!x&&(x=setTimeout(()=>{x=null,Xt()&&Y("pointer",{type:"move",...b})},A1))))},ds=()=>{v===null&&(F(),Xt()&&Y("pointer",{type:"move",x:-1,y:-1}))},ui=V=>{V.pointerType==="mouse"&&(cr("mouse:0"),cr("mouse:2")),v===V.pointerId&&(F(),v=null,u&&d&&Y("pointer",{type:"cancel",...jt(V,N)}))},go=V=>{if(!Xt())return;V.preventDefault();let zt=N.getBoundingClientRect(),Ol=V.deltaMode===2?zt.width:V.deltaMode===1?16:1,U1=V.deltaMode===2?zt.height:V.deltaMode===1?16:1;Y("pointer",{type:"wheel",...jt(V,N),deltaX:V.deltaX*Ol*u.canvasWidth/zt.width,deltaY:V.deltaY*U1*u.canvasHeight/zt.height})},di=V=>{if(!$e()||as(V))return;let zt=Ll(V,"Down");zt&&(V.preventDefault(),V.repeat||ls(`key:${V.code||V.key}`,zt))},fi=V=>{let zt=`key:${V.code||V.key}`;Bt.has(zt)&&(V.preventDefault(),cr(zt))},Wd=V=>{!$e()||xe&&xe!=="mouse"||V.sourceCapabilities?.firesTouchEvents||ls(`mouse:${V.button}`,P1(V.button,"Down"))},Vd=V=>{cr(`mouse:${V.button}`)},fs=()=>{Er()},jd=()=>{It?.hidden&&fs()},Xd=V=>{$e()&&V.preventDefault()};N.addEventListener("pointerdown",cs),N.addEventListener("pointerup",hs),N.addEventListener("pointermove",us),N.addEventListener("pointerleave",ds),N.addEventListener("pointercancel",ui),N.addEventListener("lostpointercapture",ui),N.addEventListener("wheel",go,{passive:!1}),N.addEventListener("mousedown",Wd),N.addEventListener("contextmenu",Xd),Kt.addEventListener("mouseup",Vd),ct.addEventListener("keydown",di),ct.addEventListener("keyup",fi),ct.addEventListener("focusout",fs),St.addEventListener("blur",fs),It?.addEventListener("visibilitychange",jd);let Yd=()=>{Er(),w.delete(Er),N.removeEventListener("pointerdown",cs),N.removeEventListener("pointerup",hs),N.removeEventListener("pointermove",us),N.removeEventListener("pointerleave",ds),N.removeEventListener("pointercancel",ui),N.removeEventListener("lostpointercapture",ui),N.removeEventListener("wheel",go),N.removeEventListener("mousedown",Wd),N.removeEventListener("contextmenu",Xd),Kt.removeEventListener("mouseup",Vd),ct.removeEventListener("keydown",di),ct.removeEventListener("keyup",fi),ct.removeEventListener("focusout",fs),St.removeEventListener("blur",fs),It?.removeEventListener("visibilitychange",jd),F()};return T.push(Yd),Yd}function Cr(){for(G();T.length;)T.pop()();i?.destroy?.(),o?.destroy()}return{audio:o,get snapshot(){return u},get running(){return d},get sceneRev(){return _},get keyInputEnabled(){return c},setKeyInputEnabled:M,releaseKeys:R,applyScene:A,poll:D,pollSoon:I,startPolling:H,stopPolling:K,reset:G,act:Y,start:pt,attach:Tt,device:lt,view:ft,stop:q,bindInput:hi,destroy:Cr}}var HC=[0,-.5,.5,.5,-.5,.5],WC=[0,-.5,.12,-.12,.5,0,.12,.12,0,.5,-.12,.12,-.5,0,-.12,-.12],VC=[0,-.5,.11,-.15,.48,-.15,.18,.07,.29,.41,0,.2,-.29,.41,-.18,.07,-.48,-.15,-.11,-.15],jC=new Set(["image","textbox","textwindow","button","grid"]);function os(i,t=4294967295){let e=Number(i??t)>>>0;return{color:e&16777215,alpha:(e>>>24&255)/255}}function le(i,t=0){let e=Number(i);return Number.isFinite(e)?e:t}function k1(i){let t=i?.matrix;if(!t||typeof t!="object")return null;let e=[t.a,t.b,t.c,t.d,t.tx,t.ty].map(Number);return e.every(Number.isFinite)?e:null}function XC(i){let t=i.horizontalAlignment==="Right"?1:i.horizontalAlignment==="Middle"?.5:0,e=i.verticalAlignment==="Bottom"?1:i.verticalAlignment==="Middle"?.5:0;return{x:t,y:e}}function B1(i,t,e,r){let s=i.textLayout,n=s?.fontSize??Math.max(1,le(i.fontSize,12)),o=XC(i),a=i.kind==="textwindow"?i.scroll:null,l=a?Zv(a,e):null,c={fontFamily:r||Il,fontSize:n,fill:os(i.fontColor,4294967295),stroke:i.enableOutline?{...os(i.outlineColor,4278190080),width:Math.max(2,n*.12),join:"round"}:void 0,wordWrap:!a&&!s,wordWrapWidth:Math.max(4,t-4),breakWords:!0,align:o.x===1?"right":o.x===.5?"center":"left",lineHeight:s?.lineHeight??n*1.2};return{text:l?l.text:s?s.lines.join(`
927
- `):String(i.text||""),style:c,anchorX:o.x,anchorY:a?0:o.y,x:a?-t/2+2+o.x*a.textWidth:o.x===0?-t/2+2:o.x===1?t/2-2:0,y:a?-e/2-a.offset+l.y+(a.max>0?0:o.y*(e-a.contentLength)):o.y===0?-e/2:o.y===1?e/2:0}}function I1(i,t,e){return JSON.stringify([i.kind,t,e,i.bgColor,Bd(i.scroll,t,e)])}function YC(i,t,e){let r=i.primitive==="triangle"?HC:i.primitive==="fourstar"?WC:VC,s=[];for(let n=0;n<r.length;n+=2)s.push(r[n]*t,r[n+1]*e);return s}function $C(i,t,e){return F1(i)?[i.kind,i.primitive,i.imageId,ar(i.imageSource),"sprite"].join(" "):[i.kind,i.primitive,t,e,i.imageColor,i.imageId,ar(i.imageSource),i.imageType,i.fillType,i.fillHorizontalType,i.fillVerticalType,i.fillAmount,i.text,i.fontSize,i.fontColor,i.bgColor,i.enableOutline,i.adaptiveFontSize,i.minimumFontSize,JSON.stringify(i.textLayout),i.outlineColor,i.horizontalAlignment,i.verticalAlignment,i.pressed,JSON.stringify(i.scroll)].join(" ")}function F1(i){return i.kind==="image"&&i.primitive==="circle"&&(!i.fillType||i.fillType==="Unused")}function qC(i){let t=W.get().createCanvas(i,i);t.width=t.height=i;let e=t.getContext("2d");return e.fillStyle="#ffffff",e.beginPath(),e.arc(i/2,i/2,i/2,0,Math.PI*2),e.fill(),new U({source:new wt({resource:t,width:i,height:i,resolution:1})})}var G1=class{constructor(t,{fontReady:e=null}={}){this.canvas=t,this.app=null,this.nodes=new Map,this.circleTextures=new Map,this.imageTextures=new Map,this.disposed=!1,this.unsubscribeImages=r1(r=>this.invalidateImage(r)),this.canvasWidth=0,this.canvasHeight=0,this.scratch=new k,this.ready=this.initialize(e)}async initialize(t){this.fontFamily=await t;let e=new yl;await e.init({canvas:this.canvas,width:1,height:1,autoStart:!1,autoDensity:!1,resolution:Math.min(2,window.devicePixelRatio||1),antialias:!0,backgroundAlpha:0,preference:"webgl",powerPreference:"high-performance"}),e.ticker.stop(),e.stage.eventMode="none",e.stage.sortableChildren=!0,this.app=e}resize(t,e){let r=Math.max(1,Math.round(le(t,1))),s=Math.max(1,Math.round(le(e,1)));r===this.canvasWidth&&s===this.canvasHeight||(this.canvasWidth=r,this.canvasHeight=s,this.app.renderer.resize(r,s))}createNode(t,{group:e=!1}={}){let r=new mt({isRenderGroup:!!e});return r.label=`runtime:${t.id}`,r.eventMode="none",r.sortableChildren=!0,r.__runtimeId=t.id,r.__group=!!e,this.nodes.set(t.id,r),this.app.stage.addChild(r),r}clearVisual(t){if(!t.__visual)return;let e=t.__visual.__text,r=this.app?.renderer,s=r?.renderPipes?.text?._managedTexts?.items,n=e?._gpuData?.[r?.uid]?.currentKey,o=e?.uid;t.__visual.parent?.removeChild(t.__visual);let a=t.__visual.__sliceGeometry;t.__visual.destroy({children:!0,context:!0,style:!0}),s&&o!==void 0&&s[o]===null&&delete s[o],n&&this.retireTextKey(n),a?.destroy(!0),t.__visual=null,t.__visualKey=""}retireTextKey(t){t&&(this.retiredTextKeys||=new Set,this.retiredTextKeys.add(t))}pruneTextKeys(){let t=this.app?.renderer?.canvasText?._activeTextures;for(let e of this.retiredTextKeys||[])t?.[e]===null&&delete t[e],t?.[e]||this.retiredTextKeys.delete(e)}updateTextVisual(t,e,r,s){let n=t.__visual;if(!n?.__text||n.__textChromeKey!==I1(e,r,s))return!1;let o=n.__text,a=B1(e,r,s,this.fontFamily),l=JSON.stringify(a.style);if(o.text!==a.text||n.__textStyleKey!==l){if(this.retireTextKey(o._gpuData?.[this.app?.renderer?.uid]?.currentKey),n.__textStyleKey!==l){let c=o.style;o.style=new Xe(a.style),c.destroy(),n.__textStyleKey=l}o.text=a.text}return o.anchor.set(a.anchorX,a.anchorY),o.position.set(a.x,a.y),!0}circleTexture(t){let e=this.app?.renderer.resolution||2,r=Math.min(4096,Math.max(256,2**Math.ceil(Math.log2(Math.max(1,t*e)))));this.circleTextures||=new Map;let s=this.circleTextures.get(r);return s||(s=qC(r),this.circleTextures.set(r,s)),s}imageTexture(t,e){this.imageTextures||=new Map;let r=Ye(t,e);if(this.imageTextures.has(r))return this.imageTextures.get(r);let s={texture:null,error:""};return this.imageTextures.set(r,s),s.promise=i1(t,e).then(({image:n,meta:o,error:a})=>{if(!(this.disposed||this.imageTextures.get(r)!==s)){s.texture=new U({source:new Re({resource:n})}),s.meta=o,s.error=a;for(let l of this.nodes.values()){let c=l.__sceneItem;c?.kind!=="image"||Ye(c.imageId,c.imageSource)!==r||(l.__visualKey="",this.updateNode(l,c,{nested:!l.__flat&&c.parent!=null}))}this.app?.render()}}).catch(n=>{s.error=n.message}),s}invalidateImage(t){let e=this.imageTextures.get(t);this.imageTextures.delete(t);for(let r of this.nodes.values()){let s=r.__sceneItem;s?.kind!=="image"||Ye(s.imageId,s.imageSource)!==t||(r.__visualKey="",this.updateNode(r,s,{nested:!r.__flat&&s.parent!=null}))}e?.texture?.destroy(!0),this.app?.render()}pruneImageTextures(){if(!this.imageTextures?.size)return;let t=new Set([...this.nodes.values()].filter(e=>e.__sceneItem?.primitive==="sprite").map(e=>Ye(e.__sceneItem.imageId,e.__sceneItem.imageSource)));for(let[e,r]of this.imageTextures||[])t.has(e)||(this.imageTextures.delete(e),r.texture?.destroy(!0))}replaceVisual(t,e,r,s){if(this.clearVisual(t),!jC.has(e.kind))return;let n=new mt;if(n.eventMode="none",n.label=`visual:${e.id}`,n.zIndex=e.kind==="grid"?Number.MAX_SAFE_INTEGER:-Number.MAX_SAFE_INTEGER,e.kind==="textbox"||e.kind==="textwindow"){let l=new oe,c=os(e.bgColor,16777215);l.rect(-r/2,-s/2,r,s).fill(c),n.addChild(l);let h=B1(e,r,s,this.fontFamily),u=new uo({text:h.text,style:new Xe(h.style)});u.anchor.set(h.anchorX,h.anchorY),u.position.set(h.x,h.y),n.__text=u,n.__textStyleKey=JSON.stringify(h.style),n.__textChromeKey=I1(e,r,s);let d=new oe().rect(-r/2,-s/2,r,s).fill({color:16777215,alpha:1});u.mask=d,n.addChild(d,u)}else if(e.kind==="button"){let l=new oe;l.roundRect(-r/2,-s/2,r,s,6).fill({color:3303631,alpha:1}),l.roundRect(-r/2,-s/2,r,s,6).stroke({color:7381247,alpha:.8,width:1}),e.pressed&&l.roundRect(-r/2,-s/2,r,s,6).fill({color:0,alpha:.28}),n.addChild(l)}else if(e.kind==="image"&&e.primitive==="sprite"&&this.imageTexture(e.imageId,e.imageSource).texture){let l=this.imageTextures.get(Ye(e.imageId,e.imageSource)),c;if(r>0&&s>0&&n1(l.meta,e.imageType)==="Stretch"){let d=[],f=[],m=[];for(let{source:[_,x,b,v],target:[S,T,w,E]}of o1(l.meta,r,s)){let B=d.length/2,R=S-r/2,M=T-s/2;d.push(R,M,R+w,M,R+w,M+E,R,M+E);let C=_/l.meta.width,A=(_+b)/l.meta.width,D=x/l.meta.height,H=(x+v)/l.meta.height;f.push(C,D,A,D,A,H,C,H),m.push(B,B+1,B+2,B,B+2,B+3)}let g=new io({positions:new Float32Array(d),uvs:new Float32Array(f),indices:new Uint32Array(m)});n.__sliceGeometry=g,c=new no({geometry:g,texture:l.texture})}else c=new pe({texture:l.texture,anchor:.5}),c.width=r,c.height=s;let h=os(e.imageColor,4294967295);c.tint=h.color,c.alpha=h.alpha;let u=Md(e,r,s);if(c.visible=r>0&&s>0&&(!u||u.width>0&&u.height>0),u&&c.visible){let d=new oe().rect(u.x,u.y,u.width,u.height).fill(16777215);c.mask=d,n.addChild(d)}n.addChild(c)}else if(F1(e)){let l=new pe({texture:this.circleTexture(Math.max(r,s)),anchor:.5});n.__circle=l,n.addChild(l)}else if(e.kind!=="grid"){let l=new oe,c=os(e.imageColor,4294967295);e.primitive==="missing"||e.primitive==="sprite"?(l.rect(-r/2,-s/2,r,s).fill({color:4727336,alpha:.36}),l.rect(-r/2+.5,-s/2+.5,Math.max(0,r-1),Math.max(0,s-1)).stroke({color:16741505,alpha:1,width:1})):e.primitive==="circle"?l.ellipse(0,0,r/2,s/2).fill(c):e.primitive==="ring"?l.ellipse(0,0,Math.max(1,r/2-3.5),Math.max(1,s/2-3.5)).stroke({...c,width:7}):e.primitive==="triangle"||e.primitive==="fourstar"||e.primitive==="fivestar"?l.poly(YC(e,r,s)).fill(c):l.rect(-r/2,-s/2,r,s).fill(c);let h=Md(e,r,s);if(h&&(l.visible=h.width>0&&h.height>0,l.visible)){let u=new oe().rect(h.x,h.y,h.width,h.height).fill({color:16777215,alpha:1});l.mask=u,n.addChild(u)}n.addChild(l)}let o=Bd(e.scroll,r,s);if(o){let l=new oe;l.label="scrollbar";for(let[c,h]of[[o.track,2503751],[o.thumb,9481931]])l.rect(c.x,c.y,c.width,c.height).fill({color:h,alpha:1});n.addChild(l)}n.scale.set(e.pressed?.98:1),(t.__imageContent||t).addChildAt(n,0),t.__visual=n}applyMatrix(t,e,r){let s=k1(e);if(!s){let u=Math.max(0,le(e.sourceWidth,le(e.width))),d=Math.max(0,le(e.sourceHeight,le(e.height)));t.x=le(e.left)+u/2,t.y=this.canvasHeight-le(e.bottom)-d/2,t.rotation=-le(e.rotationZ)*Math.PI/180,t.scale.set(1);return}let[n,o,a,l,c,h]=s;this.scratch.set(n,-o,-a,l,c,r?-h:this.canvasHeight-h),t.setFromMatrix(this.scratch)}updateNode(t,e,{nested:r=!1}={}){let s=Math.max(0,le(e.sourceWidth,le(e.width))),n=Math.max(0,le(e.sourceHeight,le(e.height))),o=$C(e,s,n);t.__visualKey!==o&&(this.updateTextVisual(t,e,s,n)||this.replaceVisual(t,e,s,n),t.__visualKey=o),t.__visual&&t.__visual.scale.set(e.pressed?.98:1);let a=t.__visual?.__circle;if(a){let l=Math.max(s,n),c=os(e.imageColor,4294967295);a.texture=this.circleTexture(l),a.width=s,a.height=n,a.tint=c.color,a.alpha=c.alpha,a.visible=s>0&&n>0}this.applyMatrix(t,e,r),this.updateImageMask(t,e,s,n)}updateImageMask(t,e,r,s){let n=e.kind==="image"?$v({...e,sourceWidth:r,sourceHeight:s},{a:1,b:0,c:0,d:1,tx:0,ty:0}):null,o=n?[n.width,n.height,n.featherX,n.featherY].join(":"):"";if(t.__maskKey===o)return;if(t.__maskKey=o,!t.__imageContent&&n){let f=new mt;f.sortableChildren=!0,f.eventMode="none";for(let m of[...t.children])m!==t.__viewportClip&&f.addChild(m);t.addChildAt(f,0),t.__imageContent=f}let a=t.__imageContent;if(!a)return;a.visible=!n||r>0&&s>0;let l=n&&(n.featherX>0||n.featherY>0),c=Math.min(2048,Math.max(1,Math.ceil(r))),h=Math.min(2048,Math.max(1,Math.ceil(s))),u=t.__imageMask;if(l&&a.visible&&u instanceof pe&&u.texture.source.resource.width===c&&u.texture.source.resource.height===h){kd(u.texture.source.resource,n),u.texture.source.update(),u.width=r,u.height=s;return}if(a.mask=null,u?.destroy({context:!0,texture:!0,textureSource:!0}),t.__imageMask=null,!n||!a.visible)return;let d;if(l){let f=W.get().createCanvas(c,h);kd(f,n),d=new pe({texture:new U({source:new wt({resource:f})}),anchor:.5}),d.width=r,d.height=s}else d=new oe().rect(-r/2,-s/2,r,s).fill(16777215);d.eventMode="none",a.addChild(d),a.setMask({mask:d,channel:"alpha"}),t.__imageMask=d}attachNode(t,e){let r=e.parent,s=r==null?this.app.stage:this.nodes.get(r),n=s?.__imageContent||s||this.app.stage;t.parent!==n&&n.addChild(t),n.sortableChildren=!0,t.zIndex=-le(e.z)}upsertSceneNode(t){if(!t||t.id===void 0||t.id===null)return;let e=t.group===!0,r=this.nodes.get(t.id);r?r.__group!==e&&(e?r.enableRenderGroup?.():r.disableRenderGroup?.(),r.__group=e):r=this.createNode(t,{group:e}),this.updateNode(r,t,{nested:t.parent!=null}),this.attachNode(r,t),r.__sceneItem=t,r.__flat=!1}updateViewportClip(t){let e=t.__sceneItem,r=this.nodes.get(e?.parent)?.__sceneItem,s=e?.clipPolygons||[];if(!t.__flat&&e?.clipToParent&&r){let h=r.sourceWidth/2,u=r.sourceHeight/2;s=[[[-h,-u],[h,-u],[h,u],[-h,u]].map(([d,f])=>({x:d,y:f}))]}let n=JSON.stringify([s,e?.matrix]);if(t.__clipKey===n||(t.__clipKey=n,t.mask=null,t.__viewportClip?.destroy({context:!0}),t.__viewportClip=null,t.visible=!0,!s.length))return;let o=k1(e);if(!o||Math.abs(o[0]*o[3]-o[1]*o[2])<1e-8){t.visible=!1;return}let a=new k(...o).invert(),l=Qv(s).flatMap(h=>{let u=a.apply(h);return[u.x,-u.y]});if(l.length<6||!l.every(Number.isFinite)){t.visible=!1;return}let c=new oe().poly(l).fill({color:16777215,alpha:1});t.addChild(c),t.mask=c,t.__viewportClip=c}removeNode(t){let e=this.nodes.get(t);if(e){for(let r of[...e.children,...e.__imageContent?.children||[]])r.__runtimeId!=null&&r.parent?.removeChild(r);e.parent?.removeChild(e),this.clearVisual(e),e.mask=null,e.__imageContent&&(e.__imageContent.mask=null),e.__imageMask?.destroy({context:!0,texture:!0,textureSource:!0}),e.__imageMask=null,e.__viewportClip?.destroy({context:!0}),e.__imageContent?.destroy({children:!1}),e.destroy({children:!1}),this.nodes.delete(t)}}clearNodes(){for(let t of[...this.nodes.keys()])this.removeNode(t);this.pruneTextKeys()}async applyScene(t,e,r){if(await this.ready,this.resize(e,r),!t||t.format!=="tree-v1"){this.app.render();return}t.reset&&this.clearNodes();for(let n of t.removed||[])this.removeNode(n);let s=t.reset?t.nodes:t.changed;for(let n=0;n<(s||[]).length;n+=1){let o=s[n];!o||o.id===void 0||o.id===null||this.nodes.has(o.id)||this.createNode(o,{group:o.group===!0})}for(let n=0;n<(s||[]).length;n+=1)this.upsertSceneNode(s[n]);for(let n of this.nodes.values())(n.__sceneItem?.clipToParent||n.__sceneItem?.clipPolygons?.length||n.__clipKey!==void 0)&&this.updateViewportClip(n);this.pruneImageTextures(),this.app.render(),this.pruneTextKeys()}async render(t,e,r){if(t?.some(o=>o?.masks?.length))return this.__maskedPaint=!0,this.applyScene(Kv(t),e,r);await this.ready,this.__maskedPaint&&(this.clearNodes(),this.__maskedPaint=!1),this.resize(e,r);let s=new Set,n=Array.isArray(t)?t:[];for(let o=0;o<n.length;o+=1){let a=n[o];if(!a||a.id===void 0||a.id===null)continue;s.add(a.id);let l=this.nodes.get(a.id)||this.createNode(a);this.updateNode(l,a),l.__sceneItem=a,l.__flat=!0,this.updateViewportClip(l),l.zIndex=o,l.parent!==this.app.stage&&this.app.stage.addChild(l)}for(let[o]of this.nodes)s.has(o)||this.removeNode(o);this.pruneImageTextures(),this.app.render(),this.pruneTextKeys()}destroy(){this.disposed=!0,this.unsubscribeImages?.(),this.clearNodes();for(let t of this.imageTextures?.values()||[])t.texture?.destroy(!0);this.imageTextures?.clear();for(let t of this.circleTextures.values())t.destroy(!0);this.circleTextures.clear(),this.app?.destroy({removeView:!1},{children:!0,texture:!0,textureSource:!0}),this.app=null}};export{A1 as PLAY_MOVE_THROTTLE_MS,M1 as PLAY_POLL_INTERVAL_MS,G1 as PixiPlayRenderer,qC as createCircleTexture,zC as createPlaySession,MC as getLanguagePreference,Hd as getLocale,zd as getSystemLanguage,Ll as keyEventName,CC as loadBrowserFont,AC as loadSystemLanguage,GC as localizePage,RC as setLanguagePreference,R1 as stagePoint,kC as subscribeLocale,Ld as t};
925
+ `);return new Function("ps","f32v","u32v",s)}var kl=class{constructor(t){this._size=0,this._generateParticleUpdateCache={};let e=this._size=t.size??1e3,r=t.properties,s=0,n=0;for(let h in r){let u=r[h],d=Jt(u.format);u.dynamic?n+=d.stride:s+=d.stride}this._dynamicStride=n/4,this._staticStride=s/4,this.staticAttributeBuffer=new ze(e*4*s),this.dynamicAttributeBuffer=new ze(e*4*n),this.indexBuffer=Pd(e);let o=new ue,a=0,l=0;this._staticBuffer=new At({data:new Float32Array(1),label:"static-particle-buffer",shrinkToFit:!1,usage:tt.VERTEX|tt.COPY_DST}),this._dynamicBuffer=new At({data:new Float32Array(1),label:"dynamic-particle-buffer",shrinkToFit:!1,usage:tt.VERTEX|tt.COPY_DST});for(let h in r){let u=r[h],d=Jt(u.format);u.dynamic?(o.addAttribute(u.attributeName,{buffer:this._dynamicBuffer,stride:this._dynamicStride*4,offset:a*4,format:u.format}),a+=d.size):(o.addAttribute(u.attributeName,{buffer:this._staticBuffer,stride:this._staticStride*4,offset:l*4,format:u.format}),l+=d.size)}o.addIndex(this.indexBuffer);let c=this.getParticleUpdate(r);this._dynamicUpload=c.dynamicUpdate,this._staticUpload=c.staticUpdate,this.geometry=o}getParticleUpdate(t){let e=fC(t);return this._generateParticleUpdateCache[e]?this._generateParticleUpdateCache[e]:(this._generateParticleUpdateCache[e]=this.generateParticleUpdate(t),this._generateParticleUpdateCache[e])}generateParticleUpdate(t){return Vv(t)}update(t,e){t.length>this._size&&(e=!0,this._size=Math.max(t.length,this._size*1.5|0),this.staticAttributeBuffer=new ze(this._size*this._staticStride*4*4),this.dynamicAttributeBuffer=new ze(this._size*this._dynamicStride*4*4),this.indexBuffer=Pd(this._size),this.geometry.indexBuffer.setDataWithSize(this.indexBuffer,this.indexBuffer.byteLength,!0));let r=this.dynamicAttributeBuffer;if(this._dynamicUpload(t,r.float32View,r.uint32View),this._dynamicBuffer.setDataWithSize(this.dynamicAttributeBuffer.float32View,t.length*this._dynamicStride*4,!0),e){let s=this.staticAttributeBuffer;this._staticUpload(t,s.float32View,s.uint32View),this._staticBuffer.setDataWithSize(s.float32View,t.length*this._staticStride*4,!0)}}destroy(){this._staticBuffer.destroy(),this._dynamicBuffer.destroy(),this.geometry.destroy()}};function fC(i){let t=[];for(let e in i){let r=i[e];t.push(e,r.code,r.dynamic?"d":"s")}return t.join("_")}xt();ot();fr();jo();gt();Lc();Pe();gd();Ho();Al();Ht();z.add(mg,xg);function Md(i,t,e){if(i.fillType!=="Horizontal"&&i.fillType!=="Vertical")return null;let r=Number(i.fillAmount??1),s=Number.isFinite(r)?Math.max(0,Math.min(1,r)):1;if(i.fillType==="Horizontal"){let o=t*s;return{x:i.fillHorizontalType==="Right"?t/2-o:-t/2,y:-e/2,width:o,height:e}}let n=e*s;return{x:-t/2,y:i.fillVerticalType==="Top"?-e/2:e/2-n,width:t,height:n}}var jv="prefab-v1",pC=[[10003004,10003004],[10005001,10005142],[10006001,10006002],[10007002,10007002],[10008001,10008001],[10009001,10009011],[20001001,20001074],[20001076,20001121],[20001123,20001156],[20001158,20001302],[20001304,20001568],[20001570,20001999],[20002001,20002755],[20002757,20002999],[20003001,20003455],[30001001,30001016],[30002001,30002017],[30003001,30003011],[30004001,30004001],[30005001,30005020],[30006001,30006026],[30007001,30007013],[30008001,30008011]];function Xv(i){return!Number.isSafeInteger(i)||!pC.some(([t,e])=>i>=t&&i<=e)?null:i===10003004||i===10008001?128:256}var mC="sprite-v1",gC="/qxqy-assets/",xC=[[100001,100006],[100101,100213],[101001,101018],[101020,101028],[101030,101046],[101048,101048],[101050,101054],[101056,101080],[102001,102052],[103001,103148],[104001,104010],[105001,105140],[105142,105219],[105221,105317],[106001,106047],[106049,106096],[107001,107007],[107010,107020],[107031,107092],[107094,107180],[107183,107201],[107203,107205],[107207,107228],[107231,107278],[107280,107402],[108001,108017],[108019,108020],[109001,109031],[109033,109034],[109036,109075],[110001,110053],[111001,111139],[112001,112042]];function ar(i){return i==null||i===""?"StaticReference":typeof i=="string"?i:typeof i.Name=="string"?i.Name:"Unknown"}function Ye(i,t){return`${ar(t)}:${i}`}function Bl(i,t){let e=ar(t);return e==="Prefab"?Xv(i)!==null:e==="StaticReference"&&Number.isSafeInteger(i)&&i>100006&&xC.some(([r,s])=>i>=r&&i<=s)}function Ad(i,t=0,e){let r=ar(e);if(!["StaticReference","Prefab"].includes(r))throw new Error(`Unsupported image source: ${r}`);return`${gC}${r==="Prefab"?jv:mC}/${i}.png${t?`?refresh=${t}`:""}`}function Yv(i,t=0,e){return Ad(i,t,e).replace(".png",".json")}var _C=Object.freeze(["KEYBOARD","TOUCHSCREEN","CONTROLLER_CONSOLE","CONTROLLER_MOBILE"]),yC=Object.freeze({"pc-16-9":{id:"pc-16-9",device:"pc",platform:"KEYBOARD",width:1600,height:900,ratio:"16:9",luaDevice:"KeyboardAndMouse",label:"PC 1600\xD7900"},"pc-21-9":{id:"pc-21-9",device:"pc",platform:"KEYBOARD",width:2100,height:900,ratio:"21:9",luaDevice:"KeyboardAndMouse",label:"PC 2100\xD7900"},"mobile-16-9":{id:"mobile-16-9",device:"mobile",platform:"TOUCHSCREEN",width:1280,height:720,ratio:"16:9",luaDevice:"Mobile",label:"\u624B\u673A 1280\xD7720"},"mobile-19.5-9":{id:"mobile-19.5-9",device:"mobile",platform:"TOUCHSCREEN",width:1560,height:720,ratio:"19.5:9",luaDevice:"Mobile",label:"\u624B\u673A 1560\xD7720"},"mobile-4-3":{id:"mobile-4-3",device:"mobile",platform:"TOUCHSCREEN",width:1280,height:960,ratio:"4:3",luaDevice:"Mobile",label:"\u624B\u673A 1280\xD7960"}});var hY=Object.freeze({KEYBOARD:"pc-16-9",TOUCHSCREEN:"mobile-16-9",CONTROLLER_CONSOLE:"pc-16-9",CONTROLLER_MOBILE:"mobile-16-9"}),uY=Object.freeze({"server-container":"\u5BA2\u6237\u7AEF\u63A7\u4EF6\u5BB9\u5668",container:"\u5BB9\u5668\u8282\u70B9",textbox:"\u6587\u672C\u6846",image:"\u56FE\u7247",button:"\u9884\u8BBE\u6309\u94AE",cursor:"\u5149\u6807\u68C0\u6D4B\u533A\u57DF",grid:"\u7F51\u683C\u89C6\u7A97",reference:"\u6A21\u677F\u5F15\u7528\u63A7\u4EF6",textwindow:"\u6587\u672C\u89C6\u7A97",keyhint:"\u6309\u952E\u63D0\u793A",animation:"\u754C\u9762\u52A8\u6548",fullscreen:"\u5168\u5C4F\u52A8\u6548"}),dY=Object.freeze(["server-container","container","textbox","cursor","reference","grid","image","button","textwindow","keyhint","animation","fullscreen"]),fY=Object.freeze({"server-container":null,container:[150,150],textbox:[100,40],image:[80,80],button:[150,50],cursor:[150,50],grid:[80,80],reference:[80,80],textwindow:[100,40],keyhint:[40,40],animation:[100,100],fullscreen:null}),pY=Object.freeze({100001:"rect",100002:"circle",100003:"triangle",100004:"fourstar",100005:"fivestar",100006:"ring"});var mY=Object.freeze({font:4294967295,bg:16777215,outline:858993459,image:4294967295});function $v(i,t,e){return{x:i.a*t+i.c*e+i.tx,y:i.b*t+i.d*e+i.ty}}function Rd(i){let t=i.a*i.d-i.b*i.c;return!Number.isFinite(t)||Math.abs(t)<1e-8?null:{a:i.d/t,b:-i.b/t,c:-i.c/t,d:i.a/t,tx:(i.c*i.ty-i.d*i.tx)/t,ty:(i.b*i.tx-i.a*i.ty)/t}}var Il=i=>Number.isFinite(Number(i))?Math.max(0,Number(i)):0;function Kv(i,t){if(!i||i.kind!=="image"||i.enableMask!==!0||!t)return null;let e=Il(i.sourceWidth??i.width),r=Il(i.sourceHeight??i.height),s=i.enableSoftEdge===!0,n=i.softEdgeMode!=="Pixel",o=s?Il(i.softEdgeWidthX):0,a=s?Il(i.softEdgeWidthY):0;return{id:i.id,matrix:t,width:e,height:r,featherX:n?e*o/100:o,featherY:n?r*a/100:a}}function bC(i,t,e){let r=(s,n)=>s<=0?0:!(n>0)||s>=n?1:s/n;return Math.min(r(i+e.width/2,e.featherX),r(e.width/2-i,e.featherX),r(t+e.height/2,e.featherY),r(e.height/2-t,e.featherY))}function vC(i){let t={children:[]},e=[t],r=[];for(let s of i||[]){if(!s||s.id==null)continue;let n=s.masks||[],o=n.map(l=>JSON.stringify([l.id,l.matrix,l.width,l.height,l.featherX,l.featherY])),a=0;for(;a<r.length&&a<o.length&&r[a]===o[a];)a++;e.length=a+1;for(let l=a;l<n.length;l++){let c={mask:n[l],children:[]};e.at(-1).children.push(c),e.push(c)}e.at(-1).children.push({item:s}),r=o}return t.children}var Zv=()=>({a:1,b:0,c:0,d:1,tx:0,ty:0});function qv(i,t){let e=Rd(i)||Zv();return{a:e.a*t.a+e.c*t.b,b:e.b*t.a+e.d*t.b,c:e.a*t.c+e.c*t.d,d:e.b*t.c+e.d*t.d,tx:e.a*t.tx+e.c*t.ty+e.tx,ty:e.b*t.tx+e.d*t.ty+e.ty}}function Qv(i){let t=[],e=0,r=(s,n=null,o=Zv())=>{s.forEach((a,l)=>{let c=`paint-mask:${e++}`,h=s.length-1-l;if(a.mask){let u=a.mask;t.push({id:c,parent:n,z:h,group:!1,kind:"image",primitive:"rect",imageColor:0,sourceWidth:u.width,sourceHeight:u.height,matrix:qv(o,u.matrix),enableMask:!0,enableSoftEdge:!0,softEdgeMode:"Pixel",softEdgeWidthX:u.featherX,softEdgeWidthY:u.featherY}),r(a.children,c,u.matrix)}else{let u=a.item,d=u.sourceWidth??u.width??0,f=u.sourceHeight??u.height??0,m=(u.rotationZ||0)*Math.PI/180,g=u.matrix||{a:Math.cos(m),b:Math.sin(m),c:-Math.sin(m),d:Math.cos(m),tx:(u.left||0)+d/2,ty:(u.bottom||0)+f/2},_=Rd(o),x=(u.clipPolygons||[]).map(S=>S.map(T=>_?$v(_,T.x,T.y):T)),{masks:b,...v}=u;t.push({...v,id:c,parent:n,z:h,group:!1,enableMask:!1,clipToParent:!1,sourceWidth:d,sourceHeight:f,matrix:qv(o,g),clipPolygons:x})}})};return r(vC(i)),{format:"tree-v1",reset:!0,nodes:t}}function kd(i,t){let e=Math.max(1,i.width),r=Math.max(1,i.height),s=i.getContext("2d"),n=s.createImageData(e,r),o=n.data;for(let a=0;a<r;a+=1){let l=t.height/2-(a+.5)*t.height/r;for(let c=0;c<e;c+=1){let h=-t.width/2+(c+.5)*t.width/e,u=Math.round(255*bC(h,l,t)),d=(a*e+c)*4;o[d]=255,o[d+1]=255,o[d+2]=255,o[d+3]=u}}return s.putImageData(n,0,0),i}function Bd(i,t,e){if(!i?.showBar||i.max<=0||t<=0||e<=0)return null;let r=i.horizontal===!0,s=r?t:e,n=Math.max(0,s-4),o=Math.min(n,Math.max(18,n*s/(s+i.max))),a=n-o,l=a*i.offset/i.max,c=Math.min(8,r?e:t),h=r?{x:-t/2+2,y:e/2-c-2,width:n,height:c}:{x:t/2-c-2,y:-e/2+2,width:c,height:n},u=r?{...h,x:h.x+l,width:o}:{...h,y:h.y+l,height:o};return{track:h,thumb:u,travel:a}}function Jv(i,t){let e=Math.max(0,Math.floor(i.offset/i.lineHeight)-1),r=Math.min(i.lines.length,Math.ceil((i.offset+t)/i.lineHeight)+1);return{text:i.lines.slice(e,r).join(`
926
+ `),y:e*i.lineHeight}}function t1(i){let t=i[0]||[],e=(r,s,n)=>(s.x-r.x)*(n.y-r.y)-(s.y-r.y)*(n.x-r.x);for(let r of i.slice(1)){let n=r.reduce((o,a,l)=>{let c=r[(l+1)%r.length];return o+a.x*c.y-c.x*a.y},0)>=0?1:-1;for(let o=0;o<r.length&&t.length;o++){let a=r[o],l=r[(o+1)%r.length],c=t;t=[];let h=c[c.length-1],u=e(a,l,h)*n;for(let d of c){let f=e(a,l,d)*n;if(f>=0!=u>=0){let m=u/(u-f);t.push({x:h.x+m*(d.x-h.x),y:h.y+m*(d.y-h.y)})}f>=0&&t.push(d),h=d,u=f}}}return t}var e1="qxqy-image-refresh",lr=new Map,po=new Map,mo=new Map,Id=new Set,SC=16777216,r1=!1;function TC(i,t){mo.set(i,t),lr.delete(i),po.delete(i);for(let e of Id)e(i)}var i1=i=>/^\d+$/.test(i)?Ye(Number(i)):i;function Gd(){if(!(r1||typeof window>"u")){r1=!0;try{for(let[i,t]of Object.entries(JSON.parse(localStorage.getItem(e1)||"{}")))mo.set(i1(i),t)}catch{}window.addEventListener("storage",i=>{if(i.key===e1)try{for(let[t,e]of Object.entries(JSON.parse(i.newValue||"{}"))){let r=i1(t);mo.get(r)!==e&&TC(r,e)}}catch{}})}}function s1(i){return Gd(),Id.add(i),()=>Id.delete(i)}function wC(i,t){if(Gd(),ar(t)!=="StaticReference"||!Bl(i,t))return Promise.resolve(null);let e=Ye(i,t),r=po.get(e);if(r)return r;let s=fetch(Yv(i,mo.get(e),t),{signal:AbortSignal.timeout(3e4)}).then(async n=>{if(!n.ok)throw new Error(`\u56FE\u7247 ${i} \u5143\u6570\u636E\u52A0\u8F7D\u5931\u8D25\uFF1AHTTP ${n.status}`);return n.json()}).catch(n=>{throw po.get(e)===s&&po.delete(e),n});return po.set(e,s),s}async function n1(i,t){let[e,r]=await Promise.all([CC(i,t),wC(i,t).then(s=>({meta:s,error:""}),s=>({meta:void 0,error:s.message}))]);return{image:e,...r}}function CC(i,t){if(Gd(),!Bl(i,t))return Promise.reject(new Error("Image source/ID is not in the preview allowlist"));let e=Ye(i,t),r=lr.get(e);if(r&&(!r.failed||Date.now()<r.retryAt))return lr.delete(e),lr.set(e,r),r.promise;let s={pixels:0,failed:!1};return s.promise=new Promise((n,o)=>{let a=new Image,l=setTimeout(()=>{a.src="",c(new Error("\u56FE\u7247\u52A0\u8F7D\u8D85\u65F6"))},45e3);function c(h){if(clearTimeout(l),a.onload=a.onerror=null,h){s.failed=!0,s.retryAt=Date.now()+6e4,o(h);return}s.pixels=a.width*a.height;let u=[...lr.values()].reduce((d,f)=>d+f.pixels,0);for(let[d,f]of lr){if(u<=SC&&lr.size<=128)break;d!==e&&(!f.pixels&&!f.failed||(lr.delete(d),u-=f.pixels))}n(a)}a.onload=()=>c(),a.onerror=()=>c(new Error(`\u56FE\u7247 ${i} \u52A0\u8F7D\u5931\u8D25\uFF0C\u53EF\u5728\u5C5E\u6027\u9762\u677F\u5237\u65B0\u7D20\u6750`)),a.src=Ad(i,mo.get(e),t)}),lr.set(e,s),s.promise}function EC(i){return!!i?.border&&Object.values(i.border).some(t=>Number.isFinite(t)&&t>0)}function a1(i,t){let e=typeof t=="object"?t?.Name:t;return EC(i)&&e!=="Basic"?"Stretch":"Basic"}function o1(i,t,e,r){t=Number.isFinite(t)?Math.max(0,t):0,e=Number.isFinite(e)?Math.max(0,e):0;let s=Math.min(1,i/(t+e||1));t*=s,e*=s;let n=Math.min(1,r/(t+e||1));return{source:[0,t,i-e,i],target:[0,t*n,r-e*n,r]}}function l1(i,t,e){if(!(i?.width>0&&i?.height>0&&t>0&&e>0))return[];let r=o1(i.width,i.border.left,i.border.right,t),s=o1(i.height,i.border.top,i.border.bottom,e),n=[];for(let o=0;o<3;o++)for(let a=0;a<3;a++){let l=[r.target[a],s.target[o],r.target[a+1]-r.target[a],s.target[o+1]-s.target[o]];l[2]<=0||l[3]<=0||n.push({source:[r.source[a],s.source[o],r.source[a+1]-r.source[a],s.source[o+1]-s.source[o]],target:l})}return n}var ci='"Microsoft YaHei UI","Microsoft YaHei","HarmonyOS Sans SC","Noto Sans CJK SC",sans-serif',Fd="/qxqy-font";var Ud=i=>`QxqyLocal_${i}`,c1=i=>i?`"${Ud(i)}",${ci}`:ci;var Dd;function MC(){return Dd||=AC().catch(i=>{throw Dd=null,i}),Dd}async function AC(){let i={cache:"no-store",credentials:"same-origin",mode:"same-origin",signal:AbortSignal.timeout(1e4)},t=await fetch(`${Fd}/manifest`,i);if(!t.ok)throw new Error("\u65E0\u6CD5\u8BFB\u53D6\u672C\u5730\u5B57\u4F53\u914D\u7F6E\uFF0C\u8BF7\u68C0\u67E5\u5BBF\u4E3B\u914D\u7F6E\u53CA\u672C\u673A\u8FDE\u63A5");let{id:e,scope:r="all"}=await t.json();if(e===null)return null;if(typeof e!="string"||!/^[a-f0-9]{64}$/.test(e))throw new Error("\u672C\u5730\u5B57\u4F53\u6807\u8BC6\u65E0\u6548");let s=await fetch(`${Fd}/file/${e}`,i);if(!s.ok)throw new Error("\u672C\u5730\u5B57\u4F53\u52A0\u8F7D\u5931\u8D25\uFF0C\u8BF7\u91CD\u542F\u5BBF\u4E3B\u5E76\u5237\u65B0\u9875\u9762");let n=await s.arrayBuffer();if(!n.byteLength||n.byteLength>33554432)throw new Error("\u672C\u5730\u5B57\u4F53\u5927\u5C0F\u65E0\u6548");let o=new FontFace(Ud(e),n);await o.load(),document.fonts.add(o);let a=c1(e),l="qxqy-local-font-style",c=document.getElementById(l);return r==="game"?c?.remove():(c||(c=document.createElement("style"),c.id=l,document.head.appendChild(c)),c.textContent=`[data-qxqy-font-ui], [data-qxqy-font-ui] * { font-family: ${a} !important; }`),a}var Gl={"\u5F53\u524D\u540E\u53F0\u5C1A\u672A\u52A0\u8F7D\u5B57\u4F53\u8BBE\u7F6E\u529F\u80FD\uFF0C\u8BF7\u91CD\u542F Web \u6216 Harness \u5BBF\u4E3B\u540E\u91CD\u8BD5\u3002":"The running backend does not support font settings yet. Restart the Web or Harness host, then retry.","\u5F53\u524D\u540E\u53F0\u5C1A\u672A\u52A0\u8F7D\u68C0\u67E5\u66F4\u65B0\u529F\u80FD\uFF0C\u8BF7\u91CD\u542F Web \u6216 Harness \u5BBF\u4E3B\u540E\u91CD\u8BD5\u3002":"The running backend does not support update checks yet. Restart the Web or Harness host, then retry.","\u8BF7\u8F93\u5165\u516D\u4F4D\u989C\u8272\uFF0C\u4F8B\u5982 #FF8800":"Enter a six-digit color, e.g. #FF8800","\u900F\u660E\u5EA6\u8BF7\u8F93\u5165 0\u2013100 \u7684\u6574\u6570":"Enter an integer from 0 to 100 for opacity","Alpha\uFF1A0% \u5B8C\u5168\u900F\u660E\uFF0C100% \u5B8C\u5168\u4E0D\u900F\u660E":"Alpha: 0% is transparent; 100% is opaque","{0}\u4E0E\u900F\u660E\u5EA6":"{0} and opacity",\u6253\u5F00\u53D6\u8272\u5668:"Open color picker","{0}\u53D6\u8272\u5668":"{0} color picker",\u900F\u660E\u5EA6:"Opacity","{0}\u900F\u660E\u5EA6\u6ED1\u5757":"{0} opacity slider","{0}\u900F\u660E\u5EA6":"{0} opacity","Lua \u7D22\u5F15\u5F85\u540C\u6B65\uFF08{0} \u9879\uFF09\xB7 \u5C55\u5F00":"Lua index references need updating ({0}) \xB7 Expand","Lua \u7D22\u5F15\u540C\u6B65":"Update Lua Index References","\u4E0B\u4E00\u6B65\uFF1A\u540C\u6B65 Lua \u7D22\u5F15\u5F15\u7528\uFF08{0} \u9879\uFF09":"Next: Update Lua index references ({0})",\u811A\u672C\u5168\u91CF\u66FF\u6362\u5DF2\u5B8C\u6210:"Script index replacement completed",\u5173\u95ED\u7D22\u5F15\u540C\u6B65\u63D0\u793A:"Close index update notice","\u6536\u8D77\u63D0\u793A\uFF0C\u4FDD\u7559\u5F85\u540C\u6B65\u8BB0\u5F55":"Collapse notice and keep pending changes",\u5173\u95ED:"Close","\u540C\u6B65\u4EFB\u52A1\uFF08\u7C98\u8D34\u7ED9\u5F53\u524D\u9879\u76EE\u7684 AI\uFF09":"Update task (paste into this project's AI chat)","AI \u7D22\u5F15\u540C\u6B65\u4EFB\u52A1":"AI task: Update index references","AI \u5DF2\u5904\u7406\uFF0C\u91CD\u65B0\u8F7D\u5165\u5B58\u6863":"AI finished \u2014 reload the save","\u63A7\u4EF6\u7D22\u5F15\u5DF2\u4FEE\u6539\uFF0C\u8BF7\u9009\u62E9\u4E00\u79CD\u65B9\u5F0F\u540C\u6B65\u811A\u672C\u3002":"Control indices changed. Choose how to update script references.","\u8BF7\u68C0\u67E5\u66FF\u6362\u7ED3\u679C\u5E76\u4FDD\u5B58\u5B58\u6863\uFF0C\u518D\u5230\u300CLua \u811A\u672C \u2192 \u5B9E\u673A\u811A\u672C\u540C\u6B65\u300D\u66F4\u65B0\u6E38\u620F\u91CC\u7684\u6587\u4EF6\u5E76\u91CD\u65B0\u8BD5\u73A9\u3002":"Review the replacements and save. Then use Lua Scripts \u2192 Sync Scripts to Game and test again in the game.",\u7D22\u5F15\u540C\u6B65\u65B9\u5F0F:"Update method",\u5168\u91CF\u66FF\u6362\u811A\u672C\u7D22\u5F15:"Replace All Script Indices","\u53EF\u80FD\u9519\u8BEF\u5730\u66FF\u6362\u975E\u7D22\u5F15\u5185\u5BB9\u3002":"This may replace numbers unrelated to control indices.","\u6309\u5B8C\u6574\u5341\u8FDB\u5236\u6570\u5B57\u66FF\u6362\u6240\u6709\u5DF2\u767B\u8BB0\u811A\u672C\uFF0C\u5305\u62EC\u914D\u7F6E\u8868\u3001\u5B57\u7B26\u4E32\u548C\u6CE8\u91CA\uFF1B\u540C\u65F6\u66F4\u65B0\u5185\u5BB9\u4E00\u81F4\u7684\u5DE5\u4F5C\u533A\u6E90\u6587\u4EF6\uFF0C\u66FF\u6362\u524D\u81EA\u52A8\u5907\u4EFD\u3002":"Replace whole decimal numbers in all registered scripts, including tables, strings, and comments. Matching workspace source files are updated too, with backups.","\u590D\u5236\u63D0\u793A\u8BCD\u7ED9 AI":"Copy Task for AI","\u5148\u4FDD\u5B58\u6700\u65B0\u5B58\u6863\uFF0C\u518D\u590D\u5236\u5305\u542B\u6620\u5C04\u8BFB\u53D6\u65B9\u5F0F\u548C\u811A\u672C\u4F4D\u7F6E\u7684\u63D0\u793A\u8BCD\uFF0C\u7531 AI \u5224\u65AD\u54EA\u4E9B\u5F15\u7528\u9700\u8981\u66F4\u65B0\u3002":"Save first, then copy the index mapping instructions and script locations so the AI can identify references to update.","\u67E5\u770B\u7D22\u5F15\u53D8\u66F4\uFF08{0} \u9879\uFF09":"View index changes ({0})","\u8FD9\u91CC\u663E\u793A\u524D 20 \u9879\uFF1B\u5B8C\u6574\u6620\u5C04\u968F\u5B58\u6863\u4FDD\u5B58\uFF0C\u590D\u5236\u7684\u4EFB\u52A1\u4F1A\u5F15\u5BFC AI \u8BFB\u53D6\u5168\u90E8\u3002":"Showing the first 20 changes. The save includes the complete mapping; the copied task tells the AI how to read it.","Lua \u7D22\u5F15\u540C\u6B65\u95EE\u9898":"Lua index update issues","\u6E90\u7801\u6587\u4EF6\u6216\u7D22\u5F15\u6620\u5C04\u5B58\u5728\u51B2\u7A81\uFF0C\u672C\u6B21\u6CA1\u6709\u4FEE\u6539\u811A\u672C\u3002\u53EF\u590D\u5236\u63D0\u793A\u8BCD\u7ED9 AI \u5904\u7406\u3002":"Source files or index mappings conflict. No scripts were changed. You can copy a task for the AI.",\u5185\u8054\u811A\u672C:"Inline script","\u7B2C {0} \u884C\uFF1A":"Line {0}:","\u5176\u4F59\u95EE\u9898\u8BF7\u7531 AI \u6838\u5BF9\u3002":"Ask the AI to review the remaining issues.","\u5DF2\u66FF\u6362 {0} \u4E2A\u811A\u672C\u7684 {1} \u5904\u6587\u672C\uFF0C\u66F4\u65B0 {2} \u4E2A\u9879\u76EE\u6587\u4EF6\u3002\u5907\u4EFD\uFF1A{3}":"Replaced {1} occurrences in {0} scripts and updated {2} project files. Backups: {3}","\u524D\u5F80 Lua \u811A\u672C":"Open Lua Scripts",\u65E0\u6CD5\u8BFB\u53D6\u5B57\u4F53\u8BBE\u7F6E:"Unable to read font settings","\u627E\u5230\u5B57\u4F53\uFF1A{0}\u3002":"Font found: {0}.","\u9ED8\u8BA4\u4F4D\u7F6E\u672A\u627E\u5230\u5B57\u4F53\uFF0C\u5C06\u4F7F\u7528\u7CFB\u7EDF\u5B57\u4F53\u3002":"No font found in the default locations. The system font will be used.","\u5DF2\u4FDD\u5B58\u3002{0}\u91CD\u542F Web\u3001MCP \u6216 Harness \u5BBF\u4E3B\u540E\uFF0C\u5237\u65B0\u7F16\u8F91\u5668\u53CA\u8BD5\u73A9\u9875\u751F\u6548\u3002":"Saved. {0}Restart the Web, MCP, or Harness host, then refresh the editor and playtest pages to apply.",\u5B57\u4F53\u8BBE\u7F6E:"Font Settings","\u81EA\u5B9A\u4E49\u5B57\u4F53\u53EF\u7528\u4E8E\u6E38\u620F\u5185\u6587\u672C\u6216\u6574\u4F53 UI\u3002\u8BBE\u7F6E\u4EC5\u4FDD\u5B58\u5728\u672C\u673A\uFF0C\u91CD\u542F\u5BBF\u4E3B\u540E\u751F\u6548\u3002":"Apply the custom font to in-game text or the entire UI. Settings stay on this machine and apply after restarting the host.",\u5E94\u7528\u8303\u56F4:"Apply to",\u4EC5\u6E38\u620F\u5185\u6587\u672C:"In-game text only","\u6574\u4F53 UI":"Entire UI","\u4EC5\u6E38\u620F\u5185\u6587\u672C\uFF1A\u7528\u4E8E\u753B\u5E03\u3001\u8BD5\u73A9\u548C\u622A\u56FE\uFF1B\u6574\u4F53 UI\uFF1A\u540C\u65F6\u66FF\u6362\u5DE5\u5177\u680F\u3001\u9762\u677F\u3001\u4EE3\u7801\u548C\u65E5\u5FD7\u5B57\u4F53\u3002":"In-game text only: canvas, playtests, and screenshots. Entire UI: also changes fonts in toolbars, panels, code, and logs.",\u8BF7\u9009\u62E9\u5B57\u4F53\u5E94\u7528\u8303\u56F4:"Choose where to apply the font","\u5F53\u524D\u5B57\u4F53\uFF1A{0}":"Active font: {0}",\u7CFB\u7EDF\u5B57\u4F53:"System font","\u5B57\u4F53\u6587\u4EF6\u7531\u73AF\u5883\u53D8\u91CF QXQY_FONT_PATH \u6307\u5B9A\uFF0C\u4ECD\u53EF\u8C03\u6574\u5E94\u7528\u8303\u56F4\u3002":"QXQY_FONT_PATH selects the font file. You can still change where it applies.",\u5B57\u4F53\u6765\u6E90:"Font source",\u81EA\u52A8\u5C1D\u8BD5\u539F\u795E\u7684\u9ED8\u8BA4\u5B89\u88C5\u4F4D\u7F6E:"Look in Genshin Impact's default installation locations",\u6307\u5B9A\u672C\u673A\u5B57\u4F53\u6587\u4EF6:"Use a local font file",\u4F7F\u7528\u7CFB\u7EDF\u5B57\u4F53:"Use the system font",\u5B57\u4F53\u6587\u4EF6\u8DEF\u5F84:"Font file path","\u586B\u5199 TTF / OTF \u7684\u7EDD\u5BF9\u8DEF\u5F84\uFF0C\u6700\u5927 32 MiB\uFF1B\u53EF\u4EE5\u76F4\u63A5\u7C98\u8D34\u5E26\u5F15\u53F7\u7684 Windows \u8DEF\u5F84\u3002":"Enter an absolute TTF / OTF path (up to 32 MiB). Quoted Windows paths are accepted.","\u6309\u987A\u5E8F\u5C1D\u8BD5\u4EE5\u4E0B\u4F4D\u7F6E\uFF1B\u90FD\u672A\u627E\u5230\u65F6\u4F7F\u7528\u7CFB\u7EDF\u5B57\u4F53\u3002\u5B89\u88C5\u5728\u5176\u4ED6\u76D8\u7B26\u65F6\u8BF7\u9009\u62E9\u201C\u6307\u5B9A\u672C\u673A\u5B57\u4F53\u6587\u4EF6\u201D\u3002":"These locations are checked in order. If none contains a font, the system font is used. For another drive, select \u201CUse a local font file\u201D.","\u5F53\u524D\u7CFB\u7EDF\u4E0D\u81EA\u52A8\u67E5\u627E\uFF0C\u8BF7\u6307\u5B9A\u5B57\u4F53\u6587\u4EF6\u3002":"Automatic font discovery is unavailable on this system. Specify a font file.","\u6709\u5DF2\u4FDD\u5B58\u7684\u5B57\u4F53\u8BBE\u7F6E\uFF0C\u91CD\u542F\u5BBF\u4E3B\u5E76\u5237\u65B0\u9875\u9762\u540E\u751F\u6548\u3002":"Font settings have been saved. Restart the host and refresh the pages to apply them.","\u6B63\u5728\u8BFB\u53D6\u8BBE\u7F6E\u2026":"Loading settings\u2026","\u4FDD\u5B58\u4E2D\u2026":"Saving...",\u4FDD\u5B58\u8BBE\u7F6E:"Save Settings","\u56FE\u7247 {0} \u52A0\u8F7D\u5931\u8D25":"Failed to load image {0}","\u52A0\u8F7D\u56FE\u7247 {0}\u2026":"Loading image {0}\u2026","\u56FE\u7247 {0}":"Image {0}",\u56FE\u7247\u7C7B\u578B:"Image Type",\u5143\u6570\u636E\u52A0\u8F7D\u5931\u8D25:"Failed to load image metadata","\u8BFB\u53D6\u7D20\u6750\u8FB9\u754C\u2026":"Loading asset borders\u2026",\u57FA\u7840:"Basic",\u62C9\u4F38:"Stretch",\u5BA2\u6237\u7AEF\u63A7\u4EF6\u5BB9\u5668:"Client Control Container",\u5BB9\u5668\u8282\u70B9:"Container Control",\u6587\u672C\u6846:"Text Box",\u5149\u6807\u68C0\u6D4B\u533A\u57DF:"CursorEventArea",\u6A21\u677F\u5F15\u7528\u63A7\u4EF6:"Reference Control",\u7F51\u683C\u89C6\u7A97:"Grid Scroller",\u56FE\u7247:"Image",\u9884\u8BBE\u6309\u94AE:"Preset Button",\u6587\u672C\u89C6\u7A97:"Text Window",\u6309\u952E\u63D0\u793A:"Key Hint",\u754C\u9762\u52A8\u6548:"UI Animation",\u5168\u5C4F\u52A8\u6548:"Fullscreen UI Animation",\u5149\u6807\u68C0\u6D4B:"CursorEventArea",\u6A21\u677F\u5F15\u7528:"Reference Control","\u5BFC\u51FA\u5185\u5BB9\u89E3\u7801\u5931\u8D25\uFF0C\u8BF7\u91CD\u8BD5\u6216\u5237\u65B0\u9875\u9762":"Unable to decode the export. Retry or refresh the page.","PC KEYBOARD \u753B\u5E03\uFF1A1600\xD7900 / 2100\xD7900":"PC KEYBOARD canvas: 1600\xD7900 / 2100\xD7900",\u624B\u673A:"Mobile","\u624B\u673A TOUCHSCREEN \u753B\u5E03\uFF1A1280\xD7720 / 1560\xD7720 / 1280\xD7960":"Mobile TOUCHSCREEN canvas: 1280\xD7720 / 1560\xD7720 / 1280\xD7960",\u5C1A\u65E0\u53EF\u7F16\u8F91\u503C:"No editable value available","\u672A\u8BC6\u522B\u9009\u9879 {0}\uFF08\u4FDD\u7559\u539F\u503C\uFF09":"Unknown option {0} (original value preserved)",\u7A7A:"None","\u65B0\u5EFA\u5E76\u7ED1\u5B9A{0}\u56FE\u7247":"Create and assign a {0} image",\u7FBD\u5316\u5BBD\u5EA6:"Soft Edge Width",\u7FBD\u5316\u8303\u56F4:"Soft Edge Range",\u56FE\u7247\u8BBE\u7F6E:"Image Settings",\u906E\u7F69\u8BBE\u7F6E:"Mask Settings",\u6587\u672C\u6846\u8BBE\u7F6E:"Text Box Settings",\u6309\u94AE\u8BBE\u7F6E:"Button Settings","{0}\u8BBE\u7F6E":"{0} Settings",\u8282\u70B9\u4FE1\u606F:"Node Information",\u53D8\u6362:"Transform",\u4F4D\u7F6E:"Location",\u5927\u5C0F:"Size",\u4E2D\u5FC3:"Pivot",\u521B\u5EFA\u8BBE\u7F6E:"Create Settings",\u624B\u67C4\u5BFC\u822A:"Controller Navigation",\u5B9E\u73B0\u72B6\u6001:"Support Status","\u5B58\u6863\u5185 Lua \u811A\u672C\uFF08{0}\uFF09":"Lua Scripts in This Save ({0})","\uFF0B \u65B0\u5EFA\u811A\u672C":"\uFF0B New Script","(\u672A\u547D\u540D\u811A\u672C)":"(Unnamed script)","\u6302\u8F7D\uFF1A{0} \xB7 {1}":"Attached to: {0} \xB7 {1}","\u672A\u6302\u8F7D\uFF08\u4EC5\u53EF\u88AB require\uFF09":"Not attached (available through require only)","\u4E0B\u8F7D\u8BE5\u811A\u672C .lua":"Download this script as .lua",\u5220\u9664\u8BE5\u811A\u672C:"Delete this script","\u8FD8\u6CA1\u6709\u811A\u672C\uFF0C\u70B9\u51FB\u201C\u65B0\u5EFA\u811A\u672C\u201D\u5F00\u59CB":"No scripts yet. Click \u201CNew Script\u201D to begin.","\u5C5E\u4E8E\u5B58\u6863\u201C{0}\u201D \xB7 Lua \u811A\u672C\u662F\u5B58\u6863\u5185\u72EC\u7ACB\u8D44\u4EA7":"Save: \u201C{0}\u201D \xB7 Lua scripts are separate assets within the save",\u672A\u547D\u540D\u5B58\u6863:"Untitled Save","\u811A\u672C {0}":"Script {0}","\u811A\u672C\u8DEF\u5F84\uFF08\u5DE5\u4F5C\u533A\u76F8\u5BF9\u8DEF\u5F84\uFF09":"Script path (relative to the workspace)","\u6302\u8F7D\u76EE\u6807\uFF08\u5BA2\u6237\u7AEF\u63A7\u4EF6 / \u5BA2\u6237\u7AEF\u63A7\u4EF6\u6A21\u677F\uFF09":"Attach to (client control / client control template)","\u672A\u6302\u8F7D\uFF08\u4E0D\u751F\u6548\uFF0C\u4EC5\u53EF\u88AB require\uFF09":"Not attached (does not run automatically; require only)","\u670D\u52A1\u5668\u63A7\u4EF6\u6A21\u677F \xB7 \u5BA2\u6237\u7AEF\u63A7\u4EF6\u5BB9\u5668\u5185":"Server Control Template \xB7 Inside the Client Control Container",\u5BA2\u6237\u7AEF\u63A7\u4EF6\u6A21\u677F:"Client Control Template","Lua \u6E90\u7801":"Lua Source","-- \u5728\u8FD9\u91CC\u8F93\u5165\u5BA2\u6237\u7AEF Lua\uFF1B\u811A\u672C\u53EA\u6709\u6302\u8F7D\u5230\u5BA2\u6237\u7AEF\u63A7\u4EF6\u540E\u624D\u4F1A\u5728\u8BD5\u73A9\u65F6\u751F\u6548":"-- Enter client-side Lua here; attach the script to a client control to run it in playtests",\u6709\u672A\u4FDD\u5B58\u7684\u4FEE\u6539:"Unsaved changes","\u5DF2\u6302\u8F7D\uFF1A{0}":"Attached to: {0}","\u5F53\u524D\u672A\u6302\u8F7D\uFF0C\u8BD5\u73A9\u65F6\u4E0D\u4F1A\u81EA\u52A8\u8FD0\u884C":"Not attached; it will not run automatically in playtests","\u21E9 \u811A\u672C\u5305 JSON":"\u21E9 Script Bundle JSON","\u21E9 \u811A\u672C\u5305 GIA":"\u21E9 Script Bundle GIA",\u4FDD\u5B58\u811A\u672C:"Save Script",\u8BF7\u65B0\u5EFA\u6216\u9009\u62E9\u4E00\u4E2A\u811A\u672C:"Create or select a script","PlayerSelf \u5F53\u524D\u73A9\u5BB6":"PlayerSelf \u2014 Current Player","AllPlayers \u5168\u90E8\u73A9\u5BB6":"AllPlayers \u2014 All Players","Level \u5173\u5361":"Level \u2014 Stage","Player1 \u73A9\u5BB61":"Player1 \u2014 Player 1","Player2 \u73A9\u5BB62":"Player2 \u2014 Player 2","Player3 \u73A9\u5BB63":"Player3 \u2014 Player 3","Player4 \u73A9\u5BB64":"Player4 \u2014 Player 4","Player5 \u73A9\u5BB65":"Player5 \u2014 Player 5","Player6 \u73A9\u5BB66":"Player6 \u2014 Player 6","Player7 \u73A9\u5BB67":"Player7 \u2014 Player 7","Player8 \u73A9\u5BB68":"Player8 \u2014 Player 8","\u89C4\u5219 {0} \u9700\u8981\u76D1\u542C\u4FE1\u53F7\u540D":"Rule {0} needs a signal name to listen for","\u89C4\u5219 {0} \u81F3\u5C11\u9700\u8981\u4E00\u4E2A\u52A8\u4F5C":"Rule {0} needs at least one action","\u89C4\u5219 {0} \u52A8\u4F5C {1} \u9700\u8981\u5BA2\u6237\u7AEF\u4FE1\u53F7\u540D":"Rule {0}, action {1} needs a client signal name","\u89C4\u5219 {0} \u52A8\u4F5C {1} \u9700\u8981\u53D8\u91CF\u540D":"Rule {0}, action {1} needs a variable name","{0}\u6765\u6E90":"{0} source","\u5B57\u9762\u91CF\uFF08JSON\uFF09":"Literal (JSON)",\u5F15\u7528\u76D1\u542C\u4FE1\u53F7\u53C2\u6570:"Use a received signal argument","{0}\u53C2\u6570\u5E8F\u53F7":"{0} argument index","{0}\u5B57\u9762\u91CF":"{0} literal","\u5BA2\u6237\u7AEF\u4FE1\u53F7\u53C2\u6570\uFF08\u6309\u6DFB\u52A0\u987A\u5E8F\uFF09":"Client signal arguments (in order)","\u53C2\u6570 {0}":"Argument {0}",\u5220\u9664\u53C2\u6570:"Remove argument","\u6682\u65E0\u53C2\u6570\uFF0C\u53EF\u53D1\u9001\u7A7A\u53C2\u6570\u5217\u8868":"No arguments; an empty argument list can be sent","\uFF0B \u6DFB\u52A0\u53C2\u6570":"\uFF0B Add Argument",\u670D\u52A1\u7AEF\u903B\u8F91:"Server Logic","\u5C5E\u4E8E\u5B58\u6863\u201C{0}\u201D \xB7 \u76D1\u542C\u5BA2\u6237\u7AEF\u4FE1\u53F7\u540E\u8BBE\u7F6E Level / \u73A9\u5BB6\u53D8\u91CF\uFF0C\u6216\u5411\u6307\u5B9A\u73A9\u5BB6\u53D1\u9001\u5BA2\u6237\u7AEF\u811A\u672C\u4FE1\u53F7":"Save: \u201C{0}\u201D \xB7 Listen for client signals to set Level / player variables or send client script signals to selected players",\u4FDD\u5B58\u670D\u52A1\u7AEF\u903B\u8F91:"Save Server Logic","\u8FD9\u662F\u6A21\u62DF\u5668\u5B58\u6863\u683C\u5F0F\uFF0C\u4E0D\u662F\u5B98\u65B9\u8282\u70B9\u56FE\u3002PlayerSelf \u8868\u793A\u53D1\u4FE1\u53F7\u7684\u90A3\u4F4D\u73A9\u5BB6\uFF1BPlayer1\u20138 \u662F\u56FA\u5B9A\u5EA7\u4F4D\uFF1BAllPlayers \u5411\u672C\u5C40\u5168\u90E8\u8BD5\u73A9\u73A9\u5BB6\u5E7F\u64AD\u3002":"This uses the simulator's save format. PlayerSelf is the player who sent the signal; Player1\u20138 are fixed slots; AllPlayers broadcasts to every player in this playtest.","\u89C4\u5219 {0}":"Rule {0}",\u76D1\u542C\u4FE1\u53F7\u540D:"Signal to listen for","\u89C4\u5219 {0} \u76D1\u542C\u4FE1\u53F7\u540D":"Rule {0}: signal to listen for",\u5220\u9664\u89C4\u5219:"Remove rule","\u52A8\u4F5C {0}":"Action {0}","\u89C4\u5219 {0} \u52A8\u4F5C {1} \u7C7B\u578B":"Rule {0}, action {1}: type",\u8BBE\u7F6E\u81EA\u5B9A\u4E49\u53D8\u91CF:"Set Custom Variable",\u53D1\u9001\u5BA2\u6237\u7AEF\u811A\u672C\u4FE1\u53F7:"Send Client Script Signal","\u53D1\u7ED9\u5F53\u524D\u73A9\u5BB6\u3001\u6307\u5B9A\u73A9\u5BB6\u6216\u5168\u90E8\u73A9\u5BB6":"Send to the current player, a selected player, or all players","\u5199\u5165 Level / \u5F53\u524D\u73A9\u5BB6 / \u73A9\u5BB61-8":"Write to Level / current player / Player1\u20138",\u5220\u9664\u52A8\u4F5C:"Remove action",\u53D1\u9001\u76EE\u6807:"Send to",\u5BA2\u6237\u7AEF\u4FE1\u53F7\u540D:"Client signal name",\u5B9E\u4F53:"Entity",\u53D8\u91CF\u540D:"Variable name",\u53D8\u91CF\u503C:"Variable value","\uFF0B \u8BBE\u7F6E\u81EA\u5B9A\u4E49\u53D8\u91CF":"\uFF0B Set Custom Variable","\uFF0B \u53D1\u9001\u5BA2\u6237\u7AEF\u811A\u672C\u4FE1\u53F7":"\uFF0B Send Client Script Signal","\u8FD8\u6CA1\u6709\u76D1\u542C\u89C4\u5219\u3002\u8BD5\u73A9\u65F6\u5BA2\u6237\u7AEF SendSignal \u4E0D\u4F1A\u81EA\u52A8\u6539\u53D8\u91CF\u6216\u56DE\u4F20\u4FE1\u53F7\u3002":"No signal rules yet. In a playtest, client SendSignal calls do not automatically change variables or send signals back.","\uFF0B \u6DFB\u52A0\u76D1\u542C\u89C4\u5219":"\uFF0B Add Signal Rule","\u4FDD\u5B58\u540E\u4F1A\u5199\u5165\u5F53\u524D\u5B58\u6863\uFF0C\u4E0B\u6B21\u8BD5\u73A9\u751F\u6548":"Saved to the current save; applies on the next playtest","\u8BF7\u8F93\u5165 1\u20132147483647 \u4E4B\u95F4\u7684\u6574\u6570\u7D22\u5F15\u3002":"Enter an integer index from 1 to 2147483647.",\u5BA2\u6237\u7AEF\u63A7\u4EF6\u7D22\u5F15:"Client Control Index",\u4FDD\u5B58\u4E2D:"Saving",\u4FEE\u6539:"Edit",\u81EA\u52A8\u4FEE\u6539\u5176\u4ED6\u5BA2\u6237\u7AEF\u7D22\u5F15\u503C:"Automatically fill other client control indices",\u81EA\u52A8\u586B\u5145\u7D22\u5F15\u9884\u89C8:"Index Autofill Preview","\u4EE5\u5F53\u524D\u63A7\u4EF6\u4E3A\u57FA\u51C6\uFF0C\u6309 GIA \u5BFC\u5165\u987A\u5E8F\u586B\u5145 {0} \u4E2A\u63A7\u4EF6\uFF08{1} \u4E2A\u6A21\u677F\u53CA\u5176\u5B50\u63A7\u4EF6\uFF09\u3002":"Using this control as the anchor, assign indices in GIA import order to {0} controls ({1} templates and their children).","\u7D22\u5F15\u8303\u56F4\uFF1A{0}\u2013{1}":"Index range: {0}\u2013{1}","\u7D22\u5F15\u8303\u56F4\u8D85\u51FA\u6709\u6548\u8303\u56F4\uFF0C\u8BF7\u68C0\u67E5\u8F93\u5165\u3002":"Index range exceeds the valid bounds. Check your input.","\u9002\u7528\u4E8E\u6574\u6279\u5BFC\u5165\u540E\u672A\u589E\u5220\u3001\u91CD\u6392\u7684\u6A21\u677F\u3002\u670D\u52A1\u7AEF\u754C\u9762\u548C\u811A\u672C\u7D22\u5F15\u9700\u5355\u72EC\u586B\u5199\u3002":"For templates imported together without structural changes or reordering. Server UI and script indices must be entered separately.","\u586B\u5199 GIA \u5BFC\u5165\u540E\u5B9E\u9645\u663E\u793A\u7684\u7D22\u5F15\uFF1B\u4FEE\u6539\u540E\u4ECE\u9875\u9762\u4E0A\u65B9\u7EE7\u7EED\u540C\u6B65 Lua\u3002":"Enter the actual index shown after importing the GIA. Then update Lua references using the notice above.",\u6302\u8F7D\u5230\u8BE5\u63A7\u4EF6\u7684\u811A\u672C:"Scripts Attached to This Control","\u89E3\u9664\u6302\u8F7D\uFF08\u4FDD\u7559\u811A\u672C\uFF09":"Detach (keep script)","\u8BE5\u63A7\u4EF6\u5C1A\u672A\u6302\u8F7D\u811A\u672C\u3002\u811A\u672C\u6302\u8F7D\u5230\u5BA2\u6237\u7AEF\u63A7\u4EF6\u540E\u624D\u4F1A\u5728\u8BD5\u73A9\u65F6\u751F\u6548\u3002":"No script is attached to this control. Attach a script to a client control to run it in playtests.",\u6302\u8F7D\u5DF2\u6709\u811A\u672C:"Attach an Existing Script",\u9009\u62E9\u811A\u672C\u6302\u8F7D\u5230\u8BE5\u63A7\u4EF6:"Choose a script to attach to this control","\u9009\u62E9\u811A\u672C\u2026":"Select a script\u2026","\uFF08\u5F53\u524D\u6302\u8F7D\u4E8E {0} \xB7 {1}\uFF0C\u5C06\u79FB\u52A8\u5230\u6B64\u63A7\u4EF6\uFF09":"(currently on {0} \xB7 {1}; will move to this control)","\uFF08\u672A\u6302\u8F7D\uFF09":"(not attached)","\u5B58\u6863\u5185\u8FD8\u6CA1\u6709\u5176\u4ED6\u811A\u672C\uFF0C\u53EF\u70B9\u51FB\u4E0B\u65B9\u6309\u94AE\u65B0\u5EFA\u3002":"No other scripts in this save. Create one using the button below.","\uFF0B \u65B0\u5EFA\u811A\u672C\u5E76\u6302\u8F7D\u5230\u6B64\u63A7\u4EF6":"\uFF0B Create and Attach a Script","\u7F3A\u5C11\u56FE\u7247 {0}":"Missing image {0}",\u672C\u5730\u5B57\u4F53\u52A0\u8F7D\u5931\u8D25:"Failed to load the local font","\u5F53\u524D\u8D44\u4EA7\u5DF2\u5207\u6362\uFF0C\u8BF7\u91CD\u65B0\u9009\u62E9\u63A7\u4EF6\u540E\u4FEE\u6539\u7D22\u5F15":"The active asset changed. Select the control again before changing its index.","\u63A7\u4EF6\u7D22\u5F15\u5DF2\u4FEE\u6539\u3002\u8BF7\u9009\u62E9\u4E0A\u65B9\u300C\u5168\u91CF\u66FF\u6362\u811A\u672C\u7D22\u5F15\u300D\u6216\u300C\u590D\u5236\u63D0\u793A\u8BCD\u7ED9 AI\u300D\u3002":"Control indices changed. Choose \u201CReplace All Script Indices\u201D or \u201CCopy Task for AI\u201D above.","\u8BF7\u5148\u4FDD\u5B58\u5B8C\u6574\u5B58\u6863\uFF0C\u518D\u590D\u5236\u63D0\u793A\u8BCD\uFF1BAI \u9700\u8981\u8BFB\u53D6\u8FD9\u6B21\u5B9E\u9645\u4FEE\u6539\u7684\u5B58\u6863\u3002":"Save the complete project before copying the task. The AI needs the save containing these changes.","\u8BF7\u5B8C\u6210\u6A21\u62DF\u5668\u63A7\u4EF6\u7D22\u5F15\u4E0E Lua \u5F15\u7528\u540C\u6B65\u3002":"Update the simulator's control indices and Lua references.","\u5DE5\u4F5C\u533A\uFF1A{0}":"Workspace: {0}",\u8BF7\u5148\u6838\u5BF9\u5DE5\u4F5C\u533A:"Verify the workspace first","\u6700\u65B0\u5B8C\u6574\u5B58\u6863\uFF1A{0}\uFF08\u7F16\u8F91\u5668\u5DF2\u4FDD\u5B58\uFF09":"Latest complete save: {0} (saved by the editor)","Lua \u6587\u4EF6\uFF1A{0}":"Lua files: {0}","\u5185\u8054\u811A\u672C {0}":"Inline script {0}",\u6682\u65E0:"None","\u5148\u4ECE\u4E0A\u8FF0\u6587\u4EF6\u91CD\u65B0\u52A0\u8F7D\u6700\u65B0\u5B58\u6863\uFF0C\u4E0D\u8981\u4F7F\u7528\u53E6\u4E00\u4E2A MCP/Web \u8FDB\u7A0B\u91CC\u7684\u65E7\u5DE5\u7A0B\u3002":"Reload the latest save from the file above. Do not use an older project from another MCP/Web process.","\u83B7\u53D6\u65B0\u65E7\u6620\u5C04\uFF1A\u8BFB\u53D6\u8BE5 JSON \u9876\u5C42\u7684 controlGuidChanges \u6570\u7EC4\uFF0C\u5F53\u524D\u5171 {0} \u6761\uFF0C\u5FC5\u987B\u8BFB\u53D6\u5168\u90E8\u8BB0\u5F55\u3002oldGuid \u662F\u65E7\u7D22\u5F15\uFF0CnewGuid \u662F\u65B0\u7D22\u5F15\uFF1BcontrolAsset + controlId \u6807\u8BC6\u63A7\u4EF6\uFF0CcontrolName \u662F\u540D\u79F0\uFF0Cid \u662F\u8BB0\u5F55\u7F16\u53F7\uFF0CbatchId \u662F\u6279\u6B21\u3002":"Read all {0} entries in the save's top-level controlGuidChanges array. oldGuid/newGuid are the old/new indices. controlAsset + controlId identifies the control; controlName is its name; id identifies the change; batchId identifies the batch.","\u83B7\u53D6\u811A\u672C\uFF1A\u8BFB\u53D6 assets.scripts \u6570\u7EC4\uFF1B\u6BCF\u9879\u7684 source \u662F\u5B58\u6863\u5185\u6E90\u7801\uFF0Cpath \u662F\u811A\u672C\u6587\u4EF6\u8DEF\u5F84\uFF08\u76F8\u5BF9\u8DEF\u5F84\u4EE5\u5DE5\u4F5C\u533A\u4E3A\u57FA\u51C6\uFF09\u3002":"Read scripts from assets.scripts. Each source contains the saved code; path identifies its file, relative to the workspace where applicable.","\u6309\u63A7\u4EF6\u8EAB\u4EFD\u548C\u53D8\u66F4\u987A\u5E8F\u6838\u5BF9\u5168\u90E8 Lua \u811A\u672C\u7684\u7D22\u5F15\u5E38\u91CF\u3001\u914D\u7F6E\u8868\u4E0E\u8C03\u7528\uFF0C\u4FEE\u6539\u5B58\u6863\u4E2D\u7684 source \u53CA\u76F8\u5173 Lua \u6E90\u6587\u4EF6\u548C\u751F\u6210\u5668\u6620\u5C04\uFF0C\u907F\u514D\u91CD\u5EFA\u540E\u8986\u76D6\u3002\u4E0D\u8981\u5168\u5C40\u66FF\u6362\u540C\u503C\u6570\u5B57\uFF0C\u4E5F\u4E0D\u8981\u6539\u8FD0\u884C\u65F6\u5B9E\u4F8B ID \u6216\u56FE\u7247\u8D44\u6E90 ID\u3002":"Review index constants, tables, and calls in all Lua scripts by control identity and change order. Update saved source, related Lua files, and generator mappings. Do not globally replace equal numbers or alter runtime instance IDs or image resource IDs.","\u540C\u4E00 batchId \u662F\u540C\u65F6\u6620\u5C04\uFF0C\u987B\u6309\u539F\u503C\u4E00\u6B21\u6027\u5E94\u7528\uFF0C\u4E0D\u80FD\u9010\u6761\u66FF\u6362\u5BFC\u81F4\u7D22\u5F15\u4E32\u6539\u3002":"Changes sharing batchId form one simultaneous mapping. Apply them to original values together to avoid cascading replacements.","\u68C0\u67E5\u65E7\u7D22\u5F15\u5F15\u7528\u5E76\u91CD\u65B0\u8BD5\u73A9\uFF1B\u4EC5\u5728\u5F15\u7528\u5168\u90E8\u540C\u6B65\u6216\u660E\u786E\u6CA1\u6709\u5F15\u7528\u540E\uFF0C\u7528 acknowledgeControlGuidChanges \u7684 changeIds \u6E05\u9664\u5DF2\u6838\u5BF9\u8BB0\u5F55\uFF0C\u4FDD\u5B58\u5B8C\u6574\u5B58\u6863\u3002\u672A\u5224\u65AD\u7684\u8BB0\u5F55\u7EE7\u7EED\u4FDD\u7559\u3002":"Check old references and playtest again. Only after updating every reference or confirming none exist, acknowledge reviewed changeIds with acknowledgeControlGuidChanges and save. Keep unreviewed changes.","\u5B8C\u6210\u540E\u544A\u77E5\u7528\u6237\u91CD\u65B0\u8F7D\u5165\u8FD9\u4E2A\u5B58\u6863\uFF0C\u518D\u901A\u8FC7\u300CLua \u811A\u672C \u2192 \u5B9E\u673A\u811A\u672C\u540C\u6B65\u300D\u66F4\u65B0\u6E38\u620F\u6587\u4EF6\uFF1B\u4E0D\u8981\u91CD\u65B0\u5BFC\u5165 GIA\uFF0C\u4E5F\u4E0D\u8981\u64C5\u81EA\u590D\u5236\u5230\u6E38\u620F\u76EE\u5F55\u3002":"Tell the user to reload this save and use Lua Scripts \u2192 Sync Scripts to Game. Do not reimport GIA or copy files into the game directory without authorization.","\u5B58\u6863\u5DF2\u4FDD\u5B58\uFF0C\u63D0\u793A\u8BCD\u5DF2\u590D\u5236\uFF0C\u5305\u542B\u5B8C\u6574\u6620\u5C04\u7684\u8BFB\u53D6\u65B9\u5F0F\u3002\u7C98\u8D34\u7ED9 AI\uFF1B\u5904\u7406\u540E\u91CD\u65B0\u8F7D\u5165\u5B58\u6863\u3002":"Save written and task copied, including instructions for reading the full mapping. Paste it into the AI chat, then reload the save when finished.","\u5B58\u6863\u5DF2\u4FDD\u5B58\u3002\u526A\u8D34\u677F\u4E0D\u53EF\u7528\uFF0C\u53EF\u4ECE\u4E0B\u65B9\u6587\u672C\u6846\u624B\u52A8\u590D\u5236\u63D0\u793A\u8BCD\u3002":"Save written. Clipboard access is unavailable; copy the task from the text box below.","\u56FE\u7247 {0} \u5DF2\u91CD\u65B0\u4E0B\u8F7D\uFF1B\u540C\u6E90\u8BD5\u73A9\u9875\u4F1A\u540C\u6B65\u5237\u65B0\u3002":"Image {0} downloaded again. Playtest pages on this origin will refresh it too.","{0}\u56FE\u7247":"{0} Image","{0}\u5DF2\u521B\u5EFA\u5E76\u7ED1\u5B9A\uFF1B\u53EF\u5728\u63A7\u4EF6\u6811\u4E2D\u7EE7\u7EED\u7F16\u8F91\u56FE\u7247\u3002":"Created and assigned {0}. Edit the image in the control tree.","Lua \u811A\u672C\u5DF2\u4FDD\u5B58\u5230\u5F53\u524D\u5B58\u6863":"Lua script saved to the current save",\u670D\u52A1\u7AEF\u903B\u8F91\u5DF2\u4FDD\u5B58\u5230\u5F53\u524D\u5B58\u6863:"Server logic saved to the current save",\u5DF2\u65B0\u5EFA\u811A\u672C\u5E76\u6302\u8F7D\u5230\u8BE5\u63A7\u4EF6:"Script created and attached to this control","\u5DF2\u65B0\u5EFA\u811A\u672C\uFF0C\u53EF\u7F16\u8F91\u8DEF\u5F84\u3001\u6E90\u7801\u548C\u6302\u8F7D\u76EE\u6807":"Script created. Edit its path, source, and attachment target.",\u811A\u672C\u5DF2\u5220\u9664:"Script deleted","\u5DF2\u89E3\u9664\u6302\u8F7D\uFF0C\u811A\u672C\u4ECD\u4FDD\u7559\u5728\u5B58\u6863\u4E2D":"Script detached and kept in the save",\u5DF2\u6302\u8F7D\u5230\u5F53\u524D\u63A7\u4EF6:"Attached to the current control","\u5DF2\u5207\u6362\u5230\u5B58\u6863\u5185\u7684{0}":"Switched to {0} in this save","{0}\u6A21\u677F":"{0} Template","\u5DF2\u65B0\u589E{0}\u6A21\u677F":"Created a {0} template","\u5DF2\u6DFB\u52A0{0}\u5B50\u63A7\u4EF6":"Added a {0} child control","\u5DF2\u5BFC\u51FA {0} \u4E2A GIA \u6587\u4EF6\uFF08{1}\uFF09\uFF1B\u82E5\u6D4F\u89C8\u5668\u62E6\u622A\u591A\u6587\u4EF6\u4E0B\u8F7D\uFF0C\u8BF7\u5141\u8BB8\u540E\u91CD\u8BD5\u3002":"Exported {0} GIA files ({1}). If downloads are blocked, allow multiple downloads and retry.","\u5DF2\u5BFC\u51FA {0}\uFF1B\u8BF7\u67E5\u770B\u4E0A\u65B9\u5BFC\u51FA\u8BF4\u660E\u3002":"Exported {0}. Review the export notes above.","\u5DF2\u5BFC\u51FA {0}":"Exported {0}","\u5DF2\u4ECE\u5DE5\u4F5C\u533A\u62C9\u53D6 {0}":"Loaded {0} from the workspace","\u4EC5\u652F\u6301 .json\u3001.gia \u6216 .lua \u6587\u4EF6":"Only .json, .gia, and .lua files are supported","\u5DF2\u5BFC\u5165 {0}":"Imported {0}","\u5DF2\u4FDD\u5B58\u5230 {0}":"Saved to {0}","\u6B63\u5728\u8F7D\u5165\u5343\u661F\u6C99\u7BB1\u2026":"Loading Miliastra Sandbox\u2026","\u5DF2\u5207\u6362\u5230{0}":"Switched to {0}",\u4FDD\u5B58\u5230\u5DE5\u4F5C\u533A:"Save to Workspace",\u5B58\u6863\u76F8\u5BF9\u8DEF\u5F84:"Save path (relative to workspace)",\u53D6\u6D88:"Cancel",\u4FDD\u5B58:"Save",\u5DE5\u4F5C\u533A\u672A\u7ED1\u5B9A:"No workspace bound",\u5C1A\u672A\u5BFC\u5165\u6587\u4EF6:"No file imported","\u5B58\u6863\uFF1A{0}":"Save: {0}","\u5DE5\u4F5C\u533A\uFF1A{0} \xB7 \u5F53\u524D\u8D44\u4EA7\uFF1A{1}":"Workspace: {0} \xB7 Active asset: {1}",\u672A\u7ED1\u5B9A:"Unbound",UI\u63A7\u4EF6:"UI Controls",\u76EE\u6807\u8BBE\u5907:"Target device",\u5C4F\u5E55\u6BD4\u4F8B:"Aspect ratio",\u753B\u5E03\u7F29\u653E:"Canvas zoom",\u9002\u5E94:"Fit","\u670D\u52A1\u7AEF\u903B\u8F91\uFF1A\u76D1\u542C\u4FE1\u53F7 / \u81EA\u5B9A\u4E49\u53D8\u91CF / \u73A9\u5BB61-8 \u56DE\u4F20":"Server logic: signals / custom variables / Player1\u20138 responses","Lua \u811A\u672C\u8D44\u4EA7\u7F16\u8F91":"Lua script asset editor",\u4FDD\u5B58\u5B8C\u6574\u5B58\u6863\u5230\u5DE5\u4F5C\u533A:"Save the complete project to the workspace",\u4FDD\u5B58\u5B58\u6863:"Save Project",\u4ECE\u5DE5\u4F5C\u533A\u62C9\u53D6\u5B58\u6863:"Load a save from the workspace","\u2913 \u5DE5\u4F5C\u533A\u5B58\u6863":"\u2913 Workspace Saves","\u672A\u53D1\u73B0 qxqy-simulator-save":"No qxqy-simulator-save found",\u5148\u7ED1\u5B9A\u4F1A\u8BDD\u5DE5\u4F5C\u533A:"Bind a session workspace first","\u5BFC\u5165\u5B58\u6863\u3001\u5355\u9879 UI \u8D44\u4EA7\u6216 Lua":"Import a save, individual UI asset, or Lua script","\u21E7 \u5BFC\u5165":"\u21E7 Import",\u5BFC\u51FA\u683C\u5F0F:"Export format","\u21E9 \u5BFC\u51FA":"\u21E9 Export","\u8D44\u4EA7\u5305 JSON\uFF08\u4E09\u7C7B\u5408\u4E00\uFF09":"Complete Save JSON (all three asset types)","\u8D44\u4EA7\u5305 GIA\uFF08\u5DF2\u6539\u52A8\u9879\uFF09":"Asset Bundle GIA (modified assets)","\u8D44\u4EA7\u5305 GIA \u6574\u5408\u5305\uFF08\u63A7\u4EF6+\u811A\u672C\uFF09":"Combined GIA (controls + scripts)","\u5F53\u524D\u754C\u9762\uFF08\u5DE6\u680F\u6B63\u5728\u770B\u7684\u90A3\u68F5\u6811\uFF09":"Current UI (the tree shown on the left)","\u5F53\u524D\u754C\u9762 Authoring JSON":"Current UI Authoring JSON","\u5F53\u524D\u754C\u9762 GIA":"Current UI GIA",\u670D\u52A1\u5668\u63A7\u4EF6\u6A21\u677F:"Server Control Template","\u5BA2\u6237\u7AEF\u63A7\u4EF6\u6A21\u677F\uFF08\u4EC5\u5F53\u5DE6\u680F\u5207\u5230\u300CUI\u63A7\u4EF6-\u5BA2\u6237\u7AEF\u300D\u65F6\u624D\u662F\u9875\u9762\u5185\u5BB9\uFF09":"Client Control Templates (shown in the Client UI tab)","Lua \u811A\u672C":"Lua Scripts","\u811A\u672C\u5305 JSON\uFF08\u5168\u90E8\u811A\u672C\uFF09":"Script Bundle JSON (all scripts)","\u811A\u672C\u5305 GIA\uFF08\u5168\u90E8\u811A\u672C\uFF09":"Script Bundle GIA (all scripts)","\u6253\u5F00\u8BD5\u73A9\uFF1B\u65B0\u7A97\u53E3\u4E0D\u53EF\u7528\u65F6\u5728\u5E94\u7528\u5185\u8BD5\u73A9":"Open a playtest; use an embedded view if new windows are unavailable","\u6B63\u5728\u51C6\u5907\u2026":"Preparing\u2026","\u25B7 \u8BD5\u73A9 \u2197":"\u25B7 Playtest \u2197",\u91CD\u65B0\u8F7D\u5165:"Reload",\u7F16\u8F91\u9875\u9762:"Editor page","UI \u7F16\u8F91":"UI Editor","\u4E00\u4E2A\u5B58\u6863 \xB7 \u670D\u52A1\u5668\u63A7\u4EF6\u6A21\u677F + \u5BA2\u6237\u7AEF\u63A7\u4EF6\u6A21\u677F + Lua \u811A\u672C + \u670D\u52A1\u7AEF\u903B\u8F91":"One save \xB7 Server Control Templates + Client Control Templates + Lua Scripts + Server Logic","\u4E0A\u6B21\u5BFC\u51FA\u8BF4\u660E\uFF08{0} \u9879\uFF0C\u8BF7\u6838\u5BF9\u5BFC\u5165\u540E\u7684\u6548\u679C\uFF09":"Export notes ({0}; verify the result after import)",\u5173\u95ED\u5BFC\u51FA\u8BF4\u660E:"Close export notes",\u7F16\u8F91\u8D44\u6E90\u7C7B\u578B:"Asset type","\u7F16\u8F91\u5B58\u6863\u5185\u7684\u670D\u52A1\u7AEF UI \u63A7\u4EF6":"Edit the save's server UI controls","UI\u63A7\u4EF6-\u670D\u52A1\u7AEF":"Server UI",\u7F16\u8F91\u5B58\u6863\u5185\u7684\u5BA2\u6237\u7AEF\u63A7\u4EF6\u6A21\u677F:"Edit the save's client control templates","UI\u63A7\u4EF6-\u5BA2\u6237\u7AEF":"Client UI",\u6A21\u677F\u4E0E\u5B50\u63A7\u4EF6:"Templates and Children",\u63A7\u4EF6\u6811:"Control Tree","{0} \u4E2A\u6A21\u677F \xB7 {1} \u4E2A\u63A7\u4EF6":"{0} templates \xB7 {1} controls","{0} \u4E2A\u8282\u70B9":"{0} nodes",\u641C\u7D22\u6A21\u677F\u6216\u63A7\u4EF6:"Search templates or controls",\u641C\u7D22\u63A7\u4EF6:"Search controls",\u6A21\u677F:"Template",\u6682\u4E0D\u652F\u6301:"Not supported yet","\u5728\u753B\u5E03\u4E0A\u663E\u793A\uFF08\u4E0D\u5F71\u54CD\u63A7\u4EF6\u521D\u59CB\u53EF\u89C1\u6027\uFF09":"Show on canvas (does not change initial visibility)","\u5728\u753B\u5E03\u4E0A\u9690\u85CF\uFF08\u4E0D\u5F71\u54CD\u63A7\u4EF6\u521D\u59CB\u53EF\u89C1\u6027\uFF09":"Hide on canvas (does not change initial visibility)","{0}\u753B\u5E03\u53EF\u89C1\u6027":"Canvas visibility: {0}",\u6CA1\u6709\u5339\u914D\u7684\u63A7\u4EF6:"No matching controls",\u5C42\u7EA7\u4E0E\u6A21\u677F\u8FB9\u754C:"Hierarchy and Templates",\u7236\u7EA7\u63A7\u4EF6:"Parent control",\u5DF2\u63D0\u5347\u4E3A\u53EF\u5B9E\u4F8B\u5316\u9876\u5C42\u6A21\u677F:"Promoted to an instantiable top-level template",\u5DF2\u8C03\u6574\u63A7\u4EF6\u7236\u7EA7:"Control parent changed","\u9876\u5C42\u6A21\u677F\uFF08\u53EF\u5B9E\u4F8B\u5316\uFF09":"Top-level template (instantiable)",\u5728\u540C\u7EA7\u4E2D\u4E0A\u79FB:"Move up among siblings",\u5728\u540C\u7EA7\u4E2D\u4E0B\u79FB:"Move down among siblings","\u8BE5\u8282\u70B9\u4F1A\u5199\u5165\u72EC\u7ACB UIControlTemplate\uFF0C\u53EF\u76F4\u63A5\u4F5C\u4E3A prefabId\u3002":"This node exports as a separate UIControlTemplate and can be used directly as prefabId.","\u5F53\u524D\u4E3A\u7B2C {0} \u5C42\u5B50\u63A7\u4EF6\uFF0C\u4E0D\u4F1A\u5355\u72EC\u6210\u4E3A prefabId\u3002":"This is a depth-{0} child control, not a standalone template for prefabId instantiation.",\u65B0\u589E\u72EC\u7ACB\u53EF\u5B9E\u4F8B\u5316\u6A21\u677F:"Create a separate instantiable template","\u6DFB\u52A0\u5230{0}":"Add to {0}",\u5F53\u524D\u63A7\u4EF6:"Current control",\u65B0\u589E\u9876\u5C42\u6A21\u677F:"Create a top-level template",\u9876\u5C42:"Top Level",\u5B50\u63A7\u4EF6:"Child",\u65B0\u589E:"New",\u6DFB\u52A0:"Add","Lua \u6A21\u677F\u9884\u89C8":"Lua Template Preview",\u754C\u9762\u63A7\u4EF6\u7EC4:"UI Control Group","{0} \xB7 {1}\xD7{2} \xB7 \u5DE6\u4E0B\u539F\u70B9":"{0} \xB7 {1}\xD7{2} \xB7 Bottom-left origin","\u25CF {0}\u7F16\u8F91":"\u25CF Editing {0}",\u63A7\u4EF6:"Control","\u5F53\u524D\uFF1A{0}":"Selected: {0}","GIA \u5BFC\u51FA\u540E\u53EF\u5728 Lua \u4E2D\u6309 prefabId \u5B9E\u4F8B\u5316":"After exporting GIA, instantiate in Lua using prefabId","\u5B57\u6BB5\u5728\u5931\u7126\u6216 Enter \u65F6\u63D0\u4EA4":"Commit fields on blur or Enter","\u4F5C\u8005 B\u7AD9\u4E3B\u9875":"Author's Bilibili profile",\u4F5C\u8005B\u7AD9:"Bilibili",\u53EF\u5B9E\u4F8B\u5316:"Instantiable","\u6A21\u677F\u7D22\u5F15 ":"Template index ","\u63A7\u4EF6 GUID ":"Control GUID ",\u8282\u70B9:"Node",\u57FA\u7840\u5C5E\u6027:"Properties",\u811A\u672C:"Script","\u6B63\u5728\u5237\u65B0\u7D20\u6750\u2026":"Refreshing asset\u2026","\u21BB \u91CD\u65B0\u4E0B\u8F7D\u6B64\u7D20\u6750":"\u21BB Download This Asset Again","\u767D\u540D\u5355\u56FE\u7247\u6309\u9700\u7F13\u5B58\uFF1B\u5237\u65B0\u4F1A\u91CD\u65B0\u8BBF\u95EE\u7D20\u6750\u6E90\u3002":"Supported images are cached on demand. Refreshing downloads them from the asset source.","\u232B \u5220\u9664\u5F53\u524D\u6A21\u677F":"\u232B Delete Template","\u232B \u5220\u9664\u5F53\u524D\u63A7\u4EF6":"\u232B Delete Control",\u8BF7\u9009\u62E9\u4E00\u4E2A\u63A7\u4EF6:"Select a control",'<!doctype html><meta charset="utf-8"><title>\u6B63\u5728\u51C6\u5907\u8BD5\u73A9\u2026</title><p>\u6B63\u5728\u4FDD\u5B58\u9879\u76EE\u5E76\u51C6\u5907\u8BD5\u73A9\u2026</p>':'<!doctype html><meta charset="utf-8"><title>Preparing playtest\u2026</title><p>Saving the project and preparing the playtest\u2026</p>',"\u505C\u6B62\u8BD5\u73A9\u5931\u8D25\uFF0C\u8BF7\u91CD\u8BD5\uFF1A{0}":"Could not stop the playtest. Retry: {0}","\u8BD5\u73A9\u9875\u672A\u80FD\u52A0\u8F7D\uFF0C\u8BF7\u8FD4\u56DE\u7F16\u8F91\u540E\u91CD\u8BD5\u3002":"The playtest page could not load. Return to the editor and retry.",\u8BD5\u73A9\u6B63\u5728\u5173\u95ED:"Closing playtest",\u5185\u5D4C\u8BD5\u73A9:"Embedded Playtest","\u6B63\u5728\u505C\u6B62\u8BD5\u73A9\u2026":"Stopping playtest\u2026","\u6B63\u5728\u8F7D\u5165\u8BD5\u73A9\u2026":"Loading playtest\u2026",\u5173\u95ED\u8BD5\u73A9:"Close Playtest",\u5343\u661F\u6C99\u7BB1\u8BD5\u73A9:"Miliastra Sandbox Playtest",\u672A\u53D8\u5316:"Unchanged","\u3010\u5343\u661F\u6C99\u7BB1\u811A\u672C\u6587\u4EF6\u5939\u3011":"[Miliastra Sandbox Script Folder]",\u65B0\u589E\u6587\u4EF6:"New file",\u66F4\u65B0\u5DF2\u6709\u6587\u4EF6:"Update existing file","\u5185\u5BB9\u76F8\u540C\uFF0C\u65E0\u9700\u66F4\u65B0":"Identical; no update needed",\u65E0\u6CD5\u590D\u5236:"Cannot copy",\u5B58\u6863\u91CC\u7F16\u8F91\u7684\u4EE3\u7801:"Code edited in the save","\u9879\u76EE\u4E2D\u7684 .lua \u6587\u4EF6":"Project .lua file","\u5B9E\u673A\u811A\u672C\u540C\u6B65 \xB7 {0}":"Sync Scripts to Game \xB7 {0}",\u5DF2\u8BBE\u7F6E\u6587\u4EF6\u5939:"Folders configured",\u5148\u8BBE\u7F6E\u6587\u4EF6\u5939:"Configure folders first","\u628A\u5F53\u524D\u5B58\u6863\u91CC\u7684 Lua \u811A\u672C\u590D\u5236\u5230\u5343\u661F\u6C99\u7BB1\uFF0C\u7528\u4E8E\u6E38\u620F\u5185\u6D4B\u8BD5\u3002\u64CD\u4F5C\u987A\u5E8F\uFF1A\u586B\u5199\u811A\u672C\u4F4D\u7F6E \u2192 \u4FDD\u5B58\u8BBE\u7F6E \u2192 \u4FDD\u5B58\u5B58\u6863\u5E76\u67E5\u770B\u66F4\u65B0 \u2192 \u786E\u8BA4\u590D\u5236\u3002":"Copy this save's Lua scripts into Miliastra Sandbox for in-game testing. Set folders \u2192 Save Settings \u2192 Save and Preview Changes \u2192 Confirm Copy.",\u9879\u76EE\u811A\u672C\u6587\u4EF6\u5939:"Project script folder","\u4F8B\u5982 workspace/my-game\uFF1B\u4E5F\u53EF\u4EE5\u7559\u7A7A":"e.g. workspace/my-game; may be left blank","\u586B\u5199\u5728\u5DE5\u4F5C\u533A\u91CC\u7684\u4F4D\u7F6E\uFF0C\u4F8B\u5982 workspace/my-game\uFF1B\u7559\u7A7A\u8868\u793A\u4F7F\u7528\u5DE5\u4F5C\u533A\u672C\u8EAB\u3002":"Enter a workspace-relative folder, e.g. workspace/my-game. Leave blank to use the workspace root.",\u5343\u661F\u6C99\u7BB1\u811A\u672C\u6587\u4EF6\u5939:"Miliastra Sandbox script folder","\u7C98\u8D34\u4EE5 default_import_file \u7ED3\u5C3E\u7684\u5B8C\u6574\u8DEF\u5F84":"Paste the full path ending in default_import_file","\u5173\u5361\u5B58\u653E\u5916\u90E8 Lua \u811A\u672C\u7684\u6587\u4EF6\u5939\uFF0C\u53EF\u70B9\u51FB\u300C\u53D1\u73B0\u672C\u673A\u76EE\u5F55\u300D\u67E5\u627E\u3002\u8BF7\u586B\u5199\u8FD0\u884C\u6A21\u62DF\u5668\u90A3\u53F0\u7535\u8111\u4E0A\u7684\u5B8C\u6574\u8DEF\u5F84\u3002":"The stage's folder for external Lua scripts. Use \u201CFind Local Folders\u201D to locate it. Enter the full path on the simulator host machine.",\u6E38\u620F\u91CC\u7684\u9879\u76EE\u5B50\u6587\u4EF6\u5939:"Project subfolder in the game","\u4E00\u822C\u548C\u201C\u9879\u76EE\u811A\u672C\u6587\u4EF6\u5939\u201D\u586B\u4E00\u6837\u7684\u5185\u5BB9\uFF0C\u4FDD\u7559\u539F\u6765\u7684\u6587\u4EF6\u4F4D\u7F6E\u3002\u7559\u7A7A\u5219\u76F4\u63A5\u653E\u8FDB\u5343\u661F\u6C99\u7BB1\u811A\u672C\u6587\u4EF6\u5939\u3002":"Usually matches the project script folder to preserve file locations. Leave blank to place files directly in the Miliastra Sandbox script folder.",\u590D\u5236\u8DEF\u5F84\u793A\u4F8B:"Copy Path Example","\u590D\u5236\u793A\u4F8B\uFF1A":"Example destination:","\u6E38\u620F\u8D26\u53F7 UID\uFF1A{0} \xB7 \u5173\u5361\u76EE\u5F55\u7F16\u53F7\uFF1A{1}":"Game account UID: {0} \xB7 Stage folder ID: {1}",\u53D1\u73B0\u672C\u673A\u76EE\u5F55:"Find Local Folders","\u6CA1\u6709\u627E\u5230\u6E38\u620F\u811A\u672C\u6587\u4EF6\u5939\u3002\u53EF\u4EE5\u624B\u52A8\u7C98\u8D34 default_import_file \u6587\u4EF6\u5939\u7684\u5B8C\u6574\u8DEF\u5F84\uFF1B\u5982\u679C\u8FD8\u6CA1\u5BFC\u5165\u811A\u672C\uFF0C\u8BF7\u5148\u5728\u5343\u661F\u6C99\u7BB1\u5B8C\u6210\u5BFC\u5165\u3002":"No game script folder found. Paste the full default_import_file path manually. If you have not imported scripts yet, do so in Miliastra Sandbox first.","\u627E\u5230 {0} \u4E2A\u6E38\u620F\u811A\u672C\u6587\u4EF6\u5939\uFF0C\u8BF7\u9009\u62E9\u8981\u66F4\u65B0\u7684\u8D26\u53F7\u548C\u5173\u5361\u3002":"Found {0} game script folders. Select the account and stage to update.","\u811A\u672C\u4F4D\u7F6E\u5DF2\u4FDD\u5B58\u3002\u4E0B\u4E00\u6B65\u70B9\u51FB\u300C\u4FDD\u5B58\u5B58\u6863\u5E76\u67E5\u770B\u66F4\u65B0\u300D\u3002":"Script folders saved. Next, click \u201CSave and Preview Changes\u201D.",\u6E05\u9664\u8BBE\u7F6E:"Clear Settings","\u5DF2\u6E05\u9664\u811A\u672C\u4F4D\u7F6E\u8BBE\u7F6E\u3002\u6E38\u620F\u91CC\u7684\u811A\u672C\u6587\u4EF6\u4ECD\u7136\u4FDD\u7559\u3002":"Script folder settings cleared. Existing files in the game are kept.",\u9009\u62E9\u8981\u66F4\u65B0\u7684\u8D26\u53F7\u548C\u5173\u5361:"Select the Account and Stage","\u8BF7\u9009\u62E9\u6E38\u620F\u8D26\u53F7\u548C\u5173\u5361\u6587\u4EF6\u5939\u2026":"Select a game account and stage folder\u2026","\u8D26\u53F7 {0} / \u5173\u5361\u76EE\u5F55 {1} \xB7 {2}":"Account {0} / Stage folder {1} \xB7 {2}",\u6A21\u62DF\u5668\u5B58\u6863\u6587\u4EF6:"Simulator save file","\u4F8B\u5982 my-game.save.json":"e.g. my-game.save.json","\u586B\u5199\u5DE5\u4F5C\u533A\u91CC\u7684\u5B58\u6863\u6587\u4EF6\u540D\u6216\u8DEF\u5F84\u3002\u4FDD\u5B58\u8BBE\u7F6E\u65F6\u4F1A\u4E00\u8D77\u4FDD\u5B58\u9879\u76EE\uFF0C\u4E0B\u6B21\u6253\u5F00\u5B58\u6863\u5373\u53EF\u590D\u7528\u3002":"Enter a save filename or path within the workspace. Saving these settings also saves the project so they are available next time.",\u4FDD\u5B58\u5B58\u6863\u5E76\u67E5\u770B\u66F4\u65B0:"Save and Preview Changes","\u8BF7\u5148\u586B\u5199\u5343\u661F\u6C99\u7BB1\u811A\u672C\u6587\u4EF6\u5939\uFF0C\u5E76\u70B9\u51FB\u300C\u4FDD\u5B58\u8BBE\u7F6E\u300D\u3002":"Enter the Miliastra Sandbox script folder and click \u201CSave Settings\u201D first.","\u811A\u672C\u4F4D\u7F6E\u5DF2\u6539\u52A8\uFF0C\u8BF7\u5148\u70B9\u51FB\u300C\u4FDD\u5B58\u8BBE\u7F6E\u300D\u3002":"Script folders changed. Click \u201CSave Settings\u201D first.","\u8BF7\u5148\u586B\u5199\u6A21\u62DF\u5668\u5B58\u6863\u6587\u4EF6\u540D\u3002":"Enter a simulator save filename first.","\u6B63\u5728\u5904\u7406\uFF0C\u8BF7\u7A0D\u5019\u2026":"Working, please wait\u2026",\u811A\u672C\u540C\u6B65\u786E\u8BA4:"Confirm Script Copy","\u672C\u6B21\u66F4\u65B0\u5230\uFF1A{0}":"Destination: {0}","\u8FD9\u4E2A\u5B58\u6863\u8FD8\u6CA1\u6709 Lua \u811A\u672C\u3002\u8BF7\u5148\u5728\u4E0B\u65B9\u6DFB\u52A0\u811A\u672C\uFF0C\u518D\u67E5\u770B\u66F4\u65B0\u3002":"This save has no Lua scripts. Add a script below, then preview the changes.","\u6240\u6709\u811A\u672C\u90FD\u4E0E\u6E38\u620F\u6587\u4EF6\u5939\u91CC\u7684\u5185\u5BB9\u76F8\u540C\uFF0C\u65E0\u9700\u590D\u5236\u3002":"All scripts match the game folder. Nothing to copy.","\u6709\u63A7\u4EF6\u7D22\u5F15\u5C1A\u672A\u540C\u6B65\u5230 Lua\u3002\u8BF7\u5148\u5728\u4E0A\u65B9\u300C\u5168\u91CF\u66FF\u6362\u811A\u672C\u7D22\u5F15\u300D\uFF0C\u6216\u300C\u590D\u5236\u63D0\u793A\u8BCD\u7ED9 AI\u300D\uFF1B\u5904\u7406\u5B8C\u6210\u540E\u518D\u67E5\u770B\u6E38\u620F\u811A\u672C\u66F4\u65B0\u3002":"Some control index changes are not reflected in Lua. Use \u201CReplace All Script Indices\u201D or \u201CCopy Task for AI\u201D above before previewing game script changes.","\u590D\u5236\u7684\u4EE3\u7801\u6765\u81EA\uFF1A{0}":"Code source: {0}","\u65E0\u6CD5\u590D\u5236\uFF1A{0}":"Cannot copy: {0}","\u590D\u5236\u5230\uFF1A{0}":"Copy to: {0}","\u8FD9\u4E2A\u811A\u672C\u5728\u5B58\u6863\u91CC\u548C\u9879\u76EE\u6587\u4EF6\u91CC\u7684\u4EE3\u7801\u4E0D\u540C\u3002\u672C\u6B21\u4F1A\u590D\u5236\u5B58\u6863\u91CC\u7684\u4EE3\u7801\uFF1B\u5982\u679C\u8981\u4F7F\u7528\u9879\u76EE\u6587\u4EF6\uFF0C\u8BF7\u70B9\u51FB\u300C\u6539\u7528\u9879\u76EE\u6587\u4EF6\u91CC\u7684\u4EE3\u7801\u300D\uFF0C\u7136\u540E\u91CD\u65B0\u67E5\u770B\u66F4\u65B0\u3002":"The saved script differs from its project file. This copy uses the saved code. To use the project file instead, choose \u201CUse Project File Code\u201D, then preview changes again.",\u67E5\u770B\u9879\u76EE\u6587\u4EF6\u91CC\u7684\u4EE3\u7801:"View Project File Code",\u6539\u7528\u9879\u76EE\u6587\u4EF6\u91CC\u7684\u4EE3\u7801:"Use Project File Code",\u5BF9\u6BD4\u66F4\u65B0\u524D\u540E\u7684\u4EE3\u7801:"Compare Changes",\u6E38\u620F\u91CC\u73B0\u5728\u7684\u4EE3\u7801:"Current Code in the Game","\uFF08\u6E38\u620F\u91CC\u8FD8\u6CA1\u6709\u8FD9\u4E2A\u6587\u4EF6\uFF09":"(This file does not exist in the game yet)",\u672C\u6B21\u8981\u590D\u5236\u7684\u4EE3\u7801:"Code to Copy","\u65B0\u589E\u811A\u672C\u590D\u5236\u540E\uFF0C\u8FD8\u9700\u8981\u5728\u5343\u661F\u6C99\u7BB1\u91CC\u5173\u8054\u5BF9\u5E94\u7684\u811A\u672C\u6587\u4EF6\uFF1B\u9700\u8981\u76F4\u63A5\u8FD0\u884C\u7684\u811A\u672C\u8FD8\u8981\u6302\u5230\u63A7\u4EF6\u4E0A\u3002":"After copying new scripts, link their files in Miliastra Sandbox. Scripts that should run directly must also be attached to controls.","\u5DF2\u9009 {0} \u4E2A\u811A\u672C\uFF0C\u5176\u4E2D {1} \u4E2A\u4F1A\u66FF\u6362\u6E38\u620F\u91CC\u7684\u65E7\u6587\u4EF6\u3002\u66FF\u6362\u524D\u4F1A\u81EA\u52A8\u5907\u4EFD\u65E7\u6587\u4EF6\uFF0C\u6E38\u620F\u91CC\u7684\u5176\u4ED6\u6587\u4EF6\u4F1A\u4FDD\u7559\u3002":"Selected {0} scripts; {1} will replace existing game files. Replaced files are backed up. Other files are kept.",\u8986\u76D6:"Replace",\u6682\u4E0D\u590D\u5236:"Cancel","\u786E\u8BA4\u590D\u5236 {0} \u4E2A\u811A\u672C":"Confirm Copy of {0} Scripts",\u811A\u672C\u5DF2\u590D\u5236\u5230\u5343\u661F\u6C99\u7BB1:"Scripts Copied to Miliastra Sandbox",\u6709\u4E9B\u811A\u672C\u672A\u590D\u5236\u6210\u529F:"Some Scripts Could Not Be Copied","\u4E0B\u4E00\u6B65\uFF1A\u56DE\u5230\u5343\u661F\u6C99\u7BB1\uFF0C\u4FDD\u5B58\u5173\u5361\u5E76\u91CD\u65B0\u8BD5\u73A9\uFF0C\u8BA9\u6E38\u620F\u52A0\u8F7D\u66F4\u65B0\u540E\u7684\u811A\u672C\u3002":"Next: Return to Miliastra Sandbox, save the stage, and start a new playtest to load the updated scripts.","\u8BF7\u6309\u4E0B\u65B9\u63D0\u793A\u5904\u7406\u5931\u8D25\u7684\u6587\u4EF6\uFF0C\u518D\u91CD\u65B0\u67E5\u770B\u66F4\u65B0\u5E76\u590D\u5236\u3002":"Resolve the failed files using the notes below, then preview and copy again.","\u590D\u5236\u65F6\u95F4\uFF1A{0} \xB7 \u65E7\u6587\u4EF6\u5907\u4EFD\u4FDD\u5B58\u5728\uFF1A{1}":"Copied at: {0} \xB7 Backups: {1}",\u6210\u529F:"Success",\u5DF2\u590D\u5236:"Copied",\u672A\u590D\u5236:"Not copied",\u5207\u6362\u5230\u4EAE\u8272\u4E3B\u9898:"Switch to light theme",\u5207\u6362\u5230\u6697\u8272\u4E3B\u9898:"Switch to dark theme",\u5F53\u524D\u5B58\u6863:"Current save","\u5F53\u524D\u8D44\u4EA7\u6CA1\u6709\u63A7\u4EF6\u3002":"This asset has no controls.","\u6253\u5F00\u5B58\u6863\u540E\u663E\u793A\u63A7\u4EF6\u7ED3\u6784\u3002":"Open a save to view its control structure.",\u672A\u9009\u62E9:"None selected",\u7C7B\u578B:"Type",\u6811\u6DF1\u5EA6:"Tree depth",\u7236\u8282\u70B9:"Parent node","\u8BD5\u73A9\u542F\u52A8\u540E\u663E\u793A Lua \u65E5\u5FD7\u3002":"Lua logs appear after starting a playtest.",\u5B58\u6863\u52A0\u8F7D\u5931\u8D25:"Failed to Load Save",\u7B49\u5F85\u5DE5\u4F5C\u533A\u5B58\u6863:"Waiting for a Workspace Save","\u6B63\u5728\u76D1\u542C {0}\u3002":"Watching {0}.","{0}Codex \u4FDD\u5B58 qxqy-simulator-save JSON \u540E\u4F1A\u81EA\u52A8\u51FA\u73B0\u5728\u8FD9\u91CC\u3002":"{0}Saves appear here automatically when Codex writes a qxqy-simulator-save JSON file.",\u8BD5\u73A9\u5C1A\u672A\u542F\u52A8:"Playtest Not Started","\u9009\u62E9\u8BBE\u5907\u5E76\u70B9\u51FB\u201C\u542F\u52A8\u201D\uFF0C\u5373\u53EF\u8FD0\u884C Lua \u548C\u4EA4\u4E92\u903B\u8F91\u3002":"Select a device and click \u201CStart\u201D to run Lua scripts and interactions.",\u7B49\u5F85\u5B58\u6863:"Waiting for a Save",\u5C1A\u672A\u6253\u5F00\u5B58\u6863:"No save open"," \xB7 \u5DF2\u6682\u505C":" \xB7 Paused","\u7B49\u5F85\u542F\u52A8 Runtime":"Waiting to start Runtime","\u7F16\u8F91\u5668\u9759\u6001\u9884\u89C8 \xB7 \u78C1\u76D8\u81EA\u52A8\u5237\u65B0":"Static editor preview \xB7 Refreshes from disk automatically","\u7F16\u8F91\u5668\u753B\u9762\u52A0\u8F7D\u5931\u8D25\u3002":"Failed to load the editor preview.","\u670D\u52A1\u7248\u672C\u672A\u77E5\uFF0C\u8BF7\u66F4\u65B0 Web":"Unknown server version. Update the Web package.",\u5B9E\u65F6\u76D1\u542C\u4E2D:"Live",\u8FDE\u63A5\u4E2D\u65AD:"Disconnected",\u5F00\u542F\u58F0\u97F3:"Enable Sound",\u58F0\u97F3\u5DF2\u5173\u95ED:"Sound Off",\u58F0\u97F3\u5DF2\u5F00\u542F:"Sound On",\u70B9\u51FB\u6216\u5728\u753B\u5E03\u5185\u64CD\u4F5C\u4EE5\u89E3\u9501\u97F3\u6548:"Click or interact with the canvas to enable audio",\u5207\u6362\u9759\u97F3:"Toggle mute","\u952E\u4F4D\u54CD\u5E94\uFF1A\u5F00":"Key Input: On","\u952E\u4F4D\u54CD\u5E94\uFF1A\u5173":"Key Input: Off",\u5DF2\u6253\u5F00\u5B58\u6863:"Save opened",\u5DF2\u91CD\u65B0\u8BFB\u53D6\u78C1\u76D8\u5B58\u6863:"Save reloaded from disk","\u65E5\u5FD7\u5DF2\u5728\u5F53\u524D\u89C6\u56FE\u6E05\u7A7A\u3002":"Logs cleared in this view.",\u6B63\u5728\u91CD\u8FDE:"Reconnecting","\u68C0\u6D4B\u5230\u5B58\u6863\u53D8\u5316\uFF0C\u9884\u89C8\u5DF2\u66F4\u65B0":"Save changed; preview updated",\u9884\u89C8\u5B58\u6863\u5DF2\u6253\u5F00:"Preview save opened","\u624B\u673A 1280\xD7720":"Mobile 1280\xD7720","\u624B\u673A 1560\xD7720":"Mobile 1560\xD7720","\u624B\u673A 1280\xD7960":"Mobile 1280\xD7960",\u540D\u79F0:"Name",\u521D\u59CB\u6FC0\u6D3B:"Initially Active",\u521D\u59CB\u53EF\u89C1\u6027:"Initially Visible",\u53EF\u88AB\u624B\u67C4\u6447\u6746\u5BFC\u822A\u9009\u4E2D:"Selectable by Controller Navigation","\u4F4D\u7F6E X":"Location X","\u4F4D\u7F6E Y":"Location Y","\u5927\u5C0F W":"Width","\u5927\u5C0F H":"Height","\u65CB\u8F6C X":"Rotation X","\u65CB\u8F6C Y":"Rotation Y","\u65CB\u8F6C Z":"Rotation Z",\u540C\u6B65\u4FE1\u606F\u81F3\u6240\u6709\u8BBE\u5907:"Sync Layout Across Devices",\u951A\u70B9\u7C7B\u578B:"Anchor Preset",\u5C45\u4E2D:"Center",\u5DE6\u4E0A:"Top Left",\u4E0A\u65B9:"Top",\u53F3\u4E0A:"Top Right",\u5DE6\u4FA7:"Left",\u53F3\u4FA7:"Right",\u5DE6\u4E0B:"Bottom Left",\u4E0B\u65B9:"Bottom",\u53F3\u4E0B:"Bottom Right",\u53CC\u5411\u62C9\u4F38:"Stretch Both Axes",\u6C34\u5E73\u62C9\u4F38:"Stretch Horizontally",\u5782\u76F4\u62C9\u4F38:"Stretch Vertically",\u81EA\u5B9A\u4E49:"Custom","\u951A\u70B9 Min X":"Anchor Min X","\u951A\u70B9 Min Y":"Anchor Min Y","\u951A\u70B9 Max X":"Anchor Max X","\u951A\u70B9 Max Y":"Anchor Max Y","\u4E2D\u5FC3 X":"Pivot X","\u4E2D\u5FC3 Y":"Pivot Y",\u9694\u79BB\u624B\u67C4\u5BFC\u822A:"Isolate Controller Navigation",\u5C4F\u853D\u6309\u952E\u4E8B\u4EF6\u7A7F\u900F:"Block Key Event Passthrough",\u5C4F\u853D\u533A\u57DF\u5185\u70B9\u51FB\u4E8B\u4EF6\u7A7F\u900F:"Block Click Event Passthrough in Area",\u663E\u793A\u5E38\u9A7B\u5149\u6807:"Show Persistent Cursor",\u5B57\u53F7:"Font Size",\u5B57\u53F7\u81EA\u9002\u5E94:"Auto Font Size",\u6700\u5C0F\u5B57\u53F7:"Minimum Font Size",\u6587\u672C\u8272:"Text Color",\u80CC\u666F\u8272:"Background Color",\u542F\u7528\u63CF\u8FB9:"Enable Outline",\u63CF\u8FB9\u8272:"Outline Color",\u6C34\u5E73\u5BF9\u9F50:"Horizontal Alignment",\u5DE6\u5BF9\u9F50:"Left",\u53F3\u5BF9\u9F50:"Right",\u5782\u76F4\u5BF9\u9F50:"Vertical Alignment",\u9876\u90E8:"Top",\u5E95\u90E8:"Bottom",\u6587\u672C:"Text",\u56FE\u7247\u6E90:"Image Source",\u9759\u6001\u5F15\u7528:"Static Reference",\u5143\u4EF6:"Prefab",\u586B\u5145\u8272:"Fill Color",\u5F00\u542F\u906E\u7F69:"Enable Mask",\u8FB9\u7F18\u7FBD\u5316:"Soft Edge",\u7FBD\u5316\u6A21\u5F0F:"Soft Edge Mode",\u767E\u5206\u6BD4:"Percentage",\u50CF\u7D20:"Pixels","\u7FBD\u5316\u5BBD\u5EA6 X":"Soft Edge Width X","\u7FBD\u5316\u5BBD\u5EA6 Y":"Soft Edge Width Y",\u6C34\u5E73\u7FBD\u5316\u8303\u56F4:"Horizontal Soft Edge Range",\u5782\u76F4\u7FBD\u5316\u8303\u56F4:"Vertical Soft Edge Range",\u6309\u8FDB\u5EA6\u586B\u5145:"Fill by Progress",\u5F62\u72B6:"Shape",\u6A2A\u5411:"Horizontal",\u7EB5\u5411:"Vertical","90\u5EA6\u73AF\u7ED5":"Radial90","180\u5EA6\u73AF\u7ED5":"Radial180","360\u5EA6\u73AF\u7ED5":"Radial360",\u65B9\u5411:"Direction",\u4ECE\u5DE6\u81F3\u53F3:"From Left to Right",\u4ECE\u53F3\u81F3\u5DE6:"From Right to Left",\u4ECE\u4E0B\u81F3\u4E0A:"From Bottom to Top",\u4ECE\u4E0A\u81F3\u4E0B:"From Top to Bottom",\u8D77\u70B9:"Origin",\u8FDB\u5EA6:"Progress",\u906E\u7F69\u533A\u57DF\u53CD\u8F6C:"Invert Mask Area",\u672A\u8BBE\u7F6E:"Not set",\u53EF\u88AB\u5149\u6807\u5C04\u7EBF\u68C0\u6D4B:"Raycast Target",\u6309\u94AE\u662F\u5426\u53EF\u7528:"Interactable",\u4E0D\u53EF\u7528\u72B6\u6001\u8282\u70B9:"Unavailable Status Nodes",\u60AC\u505C\u72B6\u6001\u8282\u70B9:"Hover Status Nodes",\u6309\u4E0B\u72B6\u6001\u8282\u70B9:"Pressed Status Nodes",\u9009\u4E2D\u72B6\u6001\u8282\u70B9:"Selected Status Nodes",\u70B9\u51FB\u97F3\u6548:"Click Sound",\u5F15\u7528\u63A7\u4EF6\u6A21\u677F\u7D22\u5F15:"Referenced Control Template Index",\u5141\u8BB8\u6EDA\u52A8\u4EA4\u4E92:"Enable Scrolling",\u663E\u793A\u6EDA\u52A8\u6761:"Show Scrollbar",\u5217\u8868\u9879\u6A21\u677F\u7D22\u5F15:"Item Template Index",\u6EDA\u52A8\u65B9\u5411:"Scroll Direction",\u6392\u5217\u9650\u5236:"Layout Constraint",\u81EA\u52A8\u6362\u884C:"Automatic Wrapping",\u56FA\u5B9A\u884C\u5217\u6570:"Fixed Row / Column Count",\u6BCF\u884C\u6216\u6BCF\u5217\u6570\u91CF:"Items per Row / Column","\u5217\u8868\u9879\u5927\u5C0F W":"Item Width","\u5217\u8868\u9879\u5927\u5C0F H":"Item Height","\u5217\u8868\u9879\u95F4\u9694 X":"Item Spacing X","\u5217\u8868\u9879\u95F4\u9694 Y":"Item Spacing Y","\u8FB9\u8DDD\u5411\u91CF 1 X":"Padding 1 X","\u8FB9\u8DDD\u5411\u91CF 1 Y":"Padding 1 Y","\u8FB9\u8DDD\u5411\u91CF 2 X":"Padding 2 X","\u8FB9\u8DDD\u5411\u91CF 2 Y":"Padding 2 Y",\u9884\u89C8\u6570\u91CF:"Preview Count",\u952E\u9F20\u6309\u952E:"Keyboard / Mouse Key",\u624B\u67C4\u6309\u952E:"Controller Button",\u52A8\u6548\u7D22\u5F15:"Animation Index",\u5168\u5C4F\u52A8\u6548\u7D22\u5F15:"Fullscreen Animation Index",\u5B8C\u6574\u5EA6:"Support Status","\u8BD5\u73A9\u652F\u6301\u57FA\u7840\u6EDA\u52A8\uFF1B\u6EDA\u52A8\u4EA4\u4E92\u3001\u6EDA\u52A8\u6761\u53CA\u5217\u8868\u914D\u7F6E\u4EE5 JSON/Lua \u4E3A\u51C6\uFF0C\u76F8\u5173 GIA \u5F00\u5173\u6620\u5C04\u5C1A\u672A\u6838\u5B9E\u3002":"Basic scrolling is supported in playtests. Configure interaction, scrollbars, and lists through JSON/Lua; the related GIA flags are not yet verified.","\u672C\u9636\u6BB5\u4EC5\u516C\u5171\u53D8\u6362\uFF0C\u4E1A\u52A1\u69FD\u4E0D\u5B8C\u6574":"Only common transforms are supported at this stage; control-specific fields are incomplete.",\u5173\u5361:"Stage",\u5F53\u524D\u73A9\u5BB6:"Current Player",\u5F53\u524D\u89D2\u8272:"Current Character","\u73A9\u5BB6{0}":"Player {0}","\u89D2\u8272{0}":"Character {0}","\u63A7\u4EF6\u7D22\u5F15\u5FC5\u987B\u662F 1\u20132147483647 \u8303\u56F4\u5185\u7684\u6574\u6570":"Control indices must be integers from 1 to 2147483647","controlGuidChanges \u5FC5\u987B\u662F\u6570\u7EC4":"controlGuidChanges must be an array","controlGuidChanges \u5305\u542B\u65E0\u6548\u6216\u91CD\u590D\u7684\u53D8\u66F4\u8BB0\u5F55":"controlGuidChanges contains invalid or duplicate changes","controlGuidChanges \u5305\u542B\u65E0\u6548\u7684 batchId":"controlGuidChanges contains an invalid batchId","controlGuidChanges \u5305\u542B\u65E0\u6548\u7684 scriptSignature":"controlGuidChanges contains an invalid scriptSignature",\u672A\u547D\u540D\u754C\u9762:"Untitled UI",\u672A\u547D\u540D\u754C\u9762\u63A7\u4EF6\u7EC4:"Untitled UI Control Group",\u6574\u5408\u5305\u9700\u8981\u670D\u52A1\u7AEF\u5BA2\u6237\u7AEF\u63A7\u4EF6\u5BB9\u5668\u4E0B\u81F3\u5C11\u6709\u4E00\u4E2A\u6839\u63A7\u4EF6:"A combined bundle requires at least one root control inside the server-side Client Control Container","{0} \xB7 \u6574\u5408\u5305.gia":"{0} \xB7 Combined.gia",\u6302\u8F7D\u76EE\u6807\u5FC5\u987B\u662F\u5B58\u6863\u5185\u7684\u5BA2\u6237\u7AEF\u63A7\u4EF6\u6216\u5BA2\u6237\u7AEF\u63A7\u4EF6\u6A21\u677F:"Attachment targets must be client controls or client control templates in the save","\u811A\u672C\u4E0D\u5B58\u5728: {0}":"Script not found: {0}",\u4EC5\u5BA2\u6237\u7AEF\u63A7\u4EF6\u6216\u5BA2\u6237\u7AEF\u63A7\u4EF6\u6A21\u677F\u5141\u8BB8\u4FEE\u6539\u7D22\u5F15:"Only client controls and client control templates support index changes","autoFillClientGuids \u5FC5\u987B\u662F\u5E03\u5C14\u503C":"autoFillClientGuids must be a boolean","\u81EA\u52A8\u586B\u5145\u4EC5\u652F\u6301\u5BA2\u6237\u7AEF\u6A21\u677F\u5217\u8868\uFF1B\u670D\u52A1\u7AEF\u754C\u9762\u7684\u7D22\u5F15\u9700\u5355\u72EC\u586B\u5199":"Autofill is only available for client templates. Enter server UI indices separately.","\u5BA2\u6237\u7AEF\u6A21\u677F\u5B58\u5728\u91CD\u590D\u65E7\u7D22\u5F15\uFF0C\u65E0\u6CD5\u81EA\u52A8\u586B\u5145\uFF1B\u8BF7\u5148\u6D88\u9664\u6B67\u4E49":"Client templates contain duplicate old indices. Resolve the ambiguity before using autofill.","\u63A7\u4EF6\u7D22\u5F15 {0} \u5DF2\u88AB\u300C{1}\u300D\u5360\u7528\uFF1B\u8BF7\u5148\u586B\u5199\u5B83\u7684\u5B9E\u9645\u7D22\u5F15\u3002\u672C\u6B21\u672A\u4FEE\u6539\u4EFB\u4F55\u7D22\u5F15\u3002":"Control index {0} is already used by \u201C{1}\u201D. Enter its actual index first. No indices were changed.","\u65E7\u7D22\u5F15 {0} \u5728\u591A\u68F5\u8D44\u4EA7\u6811\u4E2D\u91CD\u590D\uFF0C\u65E0\u6CD5\u786E\u5B9A\u6A21\u677F\u5F15\u7528\u5F52\u5C5E\uFF1B\u8BF7\u5148\u6D88\u9664\u6B67\u4E49\u540E\u4FEE\u6539":"Old index {0} appears in multiple asset trees, so the template reference is ambiguous. Resolve it before making changes.","\u8BF7\u660E\u786E\u6307\u5B9A\u5DF2\u6838\u5BF9 Lua \u5F15\u7528\u7684\u6709\u6548\u7D22\u5F15\u53D8\u66F4\u8BB0\u5F55 changeIds":"Specify valid changeIds whose Lua references have been reviewed",\u5B58\u6863\u540D\u79F0\u4E0D\u80FD\u4E3A\u7A7A:"The save name cannot be empty","\u63A7\u4EF6\u7D22\u5F15\u5F85\u6838\u5BF9 Lua \u5F15\u7528\uFF1A{0} / {1} ({2})\uFF1A{3} \u2192 {4}\u3002\u8BF7\u6309\u8BED\u4E49\u66F4\u65B0\u811A\u672C\u4E2D\u7684\u63A7\u4EF6\u7D22\u5F15\u5F15\u7528\uFF0C\u6838\u5BF9\u540E\u786E\u8BA4\u53D8\u66F4\u8BB0\u5F55 {5}\uFF1B\u4E0D\u8981\u5168\u5C40\u66FF\u6362\u540C\u503C\u6570\u5B57\u3002":"Review Lua references for control index change: {0} / {1} ({2}): {3} \u2192 {4}. Update references by meaning, then acknowledge change {5}. Do not globally replace equal numbers.","{0} \xB7 \u8D44\u4EA7\u5305.json":"{0} \xB7 Assets.json","\u670D\u52A1\u5668\u63A7\u4EF6\u6A21\u677F\u4ECD\u662F\u9ED8\u8BA4\u6A71\u7A97\uFF0C\u672A\u6539\u52A8\u4E14\u5F53\u524D\u672A\u663E\u793A\uFF0C\u5DF2\u4ECE\u8D44\u4EA7\u5305 GIA \u4E2D\u7701\u7565\u3002":"The unchanged, hidden default server UI was omitted from the asset bundle GIA.","\u5BA2\u6237\u7AEF\u63A7\u4EF6\u6A21\u677F\u4ECD\u662F\u9ED8\u8BA4\u300CLua\u5B9E\u4F8B\u5316\u9762\u677F\u300D\uFF0C\u672A\u6539\u52A8\u4E14\u5F53\u524D\u672A\u663E\u793A\uFF0C\u5DF2\u4ECE\u8D44\u4EA7\u5305 GIA \u4E2D\u7701\u7565\u3002":"The unchanged, hidden default client control template was omitted from the asset bundle GIA.","\u8D44\u4EA7\u5305 GIA \u6CA1\u6709\u53EF\u5BFC\u51FA\u7684\u5DF2\u6539\u52A8\u9879\uFF1B\u8BF7\u5148\u7F16\u8F91\u5F53\u524D\u754C\u9762\uFF0C\u6216\u6539\u7528\u300C\u5F53\u524D\u754C\u9762 GIA\u300D\u3002":"There are no modified assets to export. Edit the UI first, or use \u201CCurrent UI GIA\u201D.","{0} \xB7 \u811A\u672C.json":"{0} \xB7 Scripts.json","{0} \xB7 \u811A\u672C.gia":"{0} \xB7 Scripts.gia","\u6CA1\u6709\u53EF\u5BFC\u51FA\u7684 Lua \u811A\u672C\uFF0C\u8BF7\u5148\u5728\u201CLua \u811A\u672C\u201D\u9875\u521B\u5EFA":"No Lua scripts to export. Create one on the Lua Scripts page first.","\u5F53\u524D\u670D\u52A1\u5668\u63A7\u4EF6 GIA \u4E0D\u5305\u542B {0} \u4E2A Lua \u811A\u672C\u7684\u6E90\u7801\uFF1B\u8BF7\u4F7F\u7528\u300C\u8D44\u4EA7\u5305 GIA \u6574\u5408\u5305\u300D\uFF0C\u6216\u53E6\u884C\u5BFC\u5165\u811A\u672C\u5305\u5E76\u6838\u5BF9\u6302\u8F7D\u3002":"This server UI GIA does not contain source for {0} Lua scripts. Use \u201CCombined GIA\u201D or import the script bundle separately and check attachments.","JSON \u6587\u4EF6\u65E0\u6548":"Invalid JSON file","\u6574\u5408\u5305\u5DF2\u62C6\u56DE\u300CUI\u63A7\u4EF6-\u670D\u52A1\u7AEF\u300D\u4E0E\u300CUI\u63A7\u4EF6-\u5BA2\u6237\u7AEF\u300D\uFF1B\u5BA2\u6237\u7AEF\u6A21\u677F\u8FB9\u754C\u5DF2\u4FDD\u7559\u3002":"Combined bundle split back into Server UI and Client UI. Client template boundaries were preserved.","\u811A\u672C GUID {0} \u540C\u65F6\u6302\u8F7D\u5230\u591A\u4E2A\u63A7\u4EF6\uFF0C\u5DF2\u4FDD\u7559\u201C{1}\u201D\u76EE\u6807\u3002":"Script GUID {0} was attached to multiple controls. The \u201C{1}\u201D target was kept.",\u670D\u52A1\u7AEF:"Server",\u5BA2\u6237\u7AEF:"Client","\u5355\u8D44\u4EA7 JSON \u7684\u7D22\u5F15\u53D8\u66F4\u8BB0\u5F55\u5FC5\u987B\u5C5E\u4E8E\u5F53\u524D\u5BFC\u5165\u8D44\u4EA7":"Index change records in a single-asset JSON must belong to the imported asset","\u811A\u672C {0} \u8BFB\u53D6\u5931\u8D25: {1}":"Failed to read script {0}: {1}","\u5343\u661F\u6C99\u7BB1 \xB7 \u72EC\u7ACB\u8BD5\u73A9":"Miliastra Sandbox \xB7 Standalone Playtest",\u6A21\u62DF\u5668:"Simulator",\u5207\u6362\u8BBE\u5907\u753B\u5E03:"Switch Device Canvas","\u5207\u6362\u8BBE\u5907\u753B\u5E03\uFF1A\u4EE5\u65B0\u753B\u5E03\u91CD\u5EFA\u8FD0\u884C\u65F6\uFF0CGetUICanvasSize \u4E0E\u9884\u8BBE\u50CF\u7D20\u4E00\u81F4":"Rebuild the runtime for the selected canvas. GetUICanvasSize matches the preset's pixel dimensions.",\u8BD5\u73A9\u4EBA\u6570:"Player count","\u8BD5\u73A9\u4EBA\u6570\uFF1A\u6700\u591A 8 \u4EBA\uFF0C\u6BCF\u4EBA\u4E00\u4EFD\u72EC\u7ACB\u5BA2\u6237\u7AEF":"Up to 8 players, each with a separate client instance",\u5F53\u524D\u73A9\u5BB6\u89C6\u89D2:"Current player view","\u5207\u6362\u5F53\u524D\u73A9\u5BB6\u89C6\u89D2\uFF1A\u8F93\u5165\u3001\u753B\u9762\u548C PlayerSelf \u90FD\u8DDF\u968F\u8BE5\u73A9\u5BB6":"Change the active player for input, rendering, and PlayerSelf",\u8BBE\u5907:"Device","\u51C6\u5907\u4E2D\u2026":"Preparing...",\u8BD5\u73A9\u9875\u9762:"Playtest page",\u8BD5\u73A9:"Playtest",\u65E5\u5FD7:"Logs","\u8F6C\u53D1\u5B98\u65B9\u952E\u4F4D\u7684\u6309\u4E0B/\u62AC\u8D77\u4E8B\u4EF6\uFF08\u542B\u9F20\u6807\u5DE6\u53F3\u952E\uFF09\uFF1B\u5173\u95ED\u4E0D\u5F71\u54CD\u753B\u5E03\u70B9\u51FB":"Forward supported key/button down and up events, including mouse buttons. Turning this off does not disable canvas clicks.",\u70B9\u51FB\u89E3\u9501\u6D4F\u89C8\u5668\u97F3\u6548:"Click to enable browser audio","\u2161 \u6682\u505C\u8FD0\u884C":"\u2161 Pause",\u6682\u505C\u540E\u53EF\u5355\u5E27\u8C03\u8BD5:"Pause to step through individual frames","\u25B7 \u5355\u5E27\u8C03\u8BD5":"\u25B7 Step One Frame","\u25A0 \u7ED3\u675F\u8BD5\u73A9":"\u25A0 Stop Playtest","\u21BB \u91CD\u65B0\u5F00\u59CB":"\u21BB Restart",\u5207\u6362\u4EAE\u6697\u4E3B\u9898:"Toggle light / dark theme",\u8FD4\u56DE\u7F16\u8F91:"Back to Editor","\u6B63\u5728\u51C6\u5907\u8BD5\u73A9\u2026":"Preparing playtest\u2026",\u8FD0\u884C\u65F6\u573A\u666F\u6811:"Runtime Scene Tree","0 \u8282\u70B9":"0 nodes",\u670D\u52A1\u7AEF\u53D8\u91CF:"Server Variables","0 \u9879":"0 items",\u5BA2\u6237\u7AEF\u811A\u672C\u65E5\u5FD7:"Client Script Logs","\u6700\u8FD1 100 \u6761":"Latest 100 entries",\u670D\u52A1\u7AEF\u65E5\u5FD7:"Server Logs","\u53D8\u91CF / \u4FE1\u53F7":"Variables / signals",\u81EA\u52A8\u6D4B\u7528\u4F8B:"Automated Test Case","\u5148\u8BD5\u73A9\uFF0C\u518D\u4FDD\u5B58\u56DE\u653E":"Play first, then save a replay",'\u65AD\u8A00 JSON \u6570\u7EC4\uFF0C\u4F8B\u5982 [{"kind":"log","contains":"clicked"}]':'JSON assertion array, e.g. [{"kind":"log","contains":"clicked"}]',\u4FDD\u5B58\u7528\u4F8B:"Save Test Case",\u56DE\u653E\u7528\u4F8B:"Replay Test Case","\u25CF \u6B63\u5728\u542F\u52A8":"\u25CF Starting","\u9875\u9762\uFF1A\u8BD5\u73A9":"View: Playtest","\u9875\u9762\uFF1A\u65E5\u5FD7":"View: Logs",\u8BD5\u73A9\u8BF7\u6C42\u5931\u8D25:"Playtest request failed"," \u9879":" items","\u6682\u65E0\u81EA\u5B9A\u4E49\u53D8\u91CF\u3002\u811A\u672C Get/Set \u6216 serverSet \u4E4B\u540E\u4F1A\u51FA\u73B0\u5728\u8FD9\u91CC\u3002":"No custom variables yet. They appear after script Get/Set calls or serverSet.","\u5B8C\u6574\u8FD0\u884C\u6811\u8BF7\u7528 Agent \u7684 inspect \u5FEB\u7167\u3002\u821E\u53F0\u6309\u5DE6\u6811\u4E0A\u65B9\u76D6\u4F4F\u4E0B\u65B9\u7ED8\u5236\u3002":"Use an Agent inspect snapshot for the full runtime tree. Items higher in the left tree draw over those below."," \u4E2A\u53EF\u89C1\u56FE\u5143":" visible primitives","\u25B6 \u7EE7\u7EED\u8FD0\u884C":"\u25B6 Resume"," \u4EBA":" players",\u73A9\u5BB6:"Player"," \xB7 \u73A9\u5BB6":" \xB7 Player "," \xB7 \u70B9\u51FB\u8F93\u5165":" \xB7 Click to focus","\u26A0 \u811A\u672C\u6302\u8F7D\u5931\u8D25":"\u26A0 Script attachment failed","\u2161 \u5DF2\u6682\u505C":"\u2161 Paused","\u25CF \u8BD5\u73A9\u8FD0\u884C\u4E2D":"\u25CF Playtest running","\u5DF2\u8BB0\u5F55 ":"Recorded "," \u6B65":" steps","\u26A0 \u8BD5\u73A9\u9519\u8BEF":"\u26A0 Playtest error","\u25A0 \u8BD5\u73A9\u5DF2\u7ED3\u675F\uFF0C\u53EF\u91CD\u65B0\u5F00\u59CB\u6216\u8FD4\u56DE\u7F16\u8F91":"\u25A0 Playtest stopped. Restart or return to the editor.","\u65AD\u8A00\u5FC5\u987B\u662F JSON \u6570\u7EC4":"Assertions must be a JSON array","\u5DF2\u4FDD\u5B58 ":"Saved "," \u6B65 / ":" steps / "," \u6761\u65AD\u8A00":" assertions",\u56DE\u653E\u901A\u8FC7:"Replay passed","\u56DE\u653E\u5931\u8D25 @":"Replay failed @","\u7F3A\u5C11\u4F1A\u8BDD ID":"Missing session ID","\u5343\u661F\u6A21\u62DF\u5668 \xB7 Live Preview":"Miliastra Simulator \xB7 Live Preview","\u5343\u661F\u6A21\u62DF\u5668 \xB7 \u7F16\u8F91\u5DE5\u4F5C\u53F0":"Miliastra Simulator \xB7 Editor","Web Preview \xB7 \u5B9E\u65F6\u9884\u89C8":"Web Preview \xB7 Live Preview",\u5DE5\u4F5C\u533A\u5B58\u6863:"Workspace Saves",\u91CD\u65B0\u8BFB\u53D6\u5B58\u6863:"Reload save from disk","\u7F16\u8F91\u5DE5\u4F5C\u53F0 \u2197":"Open Editor \u2197",\u6B63\u5728\u8FDE\u63A5:"Connecting",\u9884\u89C8\u6A21\u5F0F:"Preview mode",\u7F16\u8F91\u5668:"Editor",\u8D44\u4EA7:"Asset","\u670D\u52A1\u7AEF UI":"Server UI",\u5BA2\u6237\u7AEF\u6A21\u677F:"Client Templates","\u25B6 \u542F\u52A8":"\u25B6 Start","\u2161 \u6682\u505C":"\u2161 Pause","\u25B7 \u7EE7\u7EED":"\u25B7 Resume","+ 1 \u5E27":"+ 1 Frame","\u25A0 \u505C\u6B62":"\u25A0 Stop",\u6A21\u62DF\u5668\u9884\u89C8\u753B\u5E03:"Simulator preview canvas","Codex \u4FDD\u5B58 qxqy-simulator-save JSON \u540E\u4F1A\u81EA\u52A8\u51FA\u73B0\u5728\u8FD9\u91CC\u3002":"Saves appear here automatically when Codex writes a qxqy-simulator-save JSON file.","\u6B63\u5728\u66F4\u65B0\u753B\u9762\u2026":"Updating preview\u2026",\u7F16\u8F91\u5668\u9759\u6001\u9884\u89C8:"Static Editor Preview",\u9884\u89C8\u4FE1\u606F:"Preview Details",\u5F53\u524D\u8282\u70B9:"Selected Node",\u753B\u5E03:"Canvas",\u6E05\u7A7A:"Clear",\u9884\u89C8\u8FDE\u63A5:"Preview Connection","\u6B63\u5728\u8FDE\u63A5\u670D\u52A1\u2026":"Connecting to the service\u2026","\u5F53\u524D\u5B58\u6863\u4FDD\u5B58\u540E\u81EA\u52A8\u5237\u65B0\uFF1B\u9996\u6B21\u5B58\u6863\u4F1A\u81EA\u52A8\u53D1\u73B0\u3002\u5207\u6362\u5176\u4ED6\u5B58\u6863\u8BF7\u4F7F\u7528\u9876\u90E8\u5217\u8868\u6216 MCP \u9884\u89C8\u5DE5\u5177\u3002":"Refreshes automatically when the current save changes, and discovers the first save. Switch saves using the list above or the MCP preview tool.","\u68C0\u67E5\u66F4\u65B0\u5931\u8D25\uFF0C\u8BF7\u68C0\u67E5\u7F51\u7EDC\u8FDE\u63A5\u540E\u91CD\u8BD5\u3002":"Update check failed. Check your network connection and retry.",\u53D1\u73B0\u65B0\u7248\u672C:"A new version is available",\u5F53\u524D\u5DF2\u662F\u6700\u65B0\u7248\u672C:"You are up to date",\u5F53\u524D\u7248\u672C\u6BD4\u516C\u5F00\u7248\u672C\u66F4\u65B0:"Your version is newer than the public release",\u6682\u672A\u627E\u5230\u6B64\u5B89\u88C5\u5305\u7684\u6B63\u5F0F\u7248\u672C:"No stable release found for this package",\u754C\u9762\u8BED\u8A00:"Interface language","\u81EA\u52A8\uFF08\u7CFB\u7EDF\u8BED\u8A00\uFF09":"Auto (system language)","\u6B63\u5728\u68C0\u67E5\u66F4\u65B0\u2026":"Checking for updates\u2026",\u68C0\u67E5\u66F4\u65B0:"Check for Updates",\u8054\u7CFB\u4F5C\u8005:"Contact Author",QQ\u7FA4\u53F71007538100:"QQ Group: 1007538100","\u4F5C\u8005\u90AE\u7BB1 ":"Email: ","\u5F00\u6E90\u4ED3\u5E93 ":"Source repository: ","\u5F53\u524D\u7248\u672C\uFF1A{0}":"Current version: {0}","\u516C\u5F00\u7248\u672C\uFF1A{0}":"Public version: {0}","\u66F4\u65B0\u540E\u8BF7\u91CD\u542F\u5BBF\u4E3B\u5E76\u5237\u65B0\u7F16\u8F91\u5668\u4E0E\u8BD5\u73A9\u9875\u3002":"After updating, restart the host and refresh the editor and playtest pages.",\u67E5\u770B\u66F4\u65B0\u8BF4\u660E:"View Release Notes",\u4E0B\u8F7D\u66F4\u65B0\u5305:"Download Update",\u91CD\u8BD5:"Retry","\u8BF7\u9009\u62E9\u81EA\u52A8\u67E5\u627E\u3001\u6307\u5B9A\u6587\u4EF6\u6216\u7CFB\u7EDF\u5B57\u4F53":"Choose automatic discovery, a local file, or the system font",\u5B57\u4F53\u8DEF\u5F84\u8FC7\u957F:"The font path is too long",\u8BF7\u586B\u5199\u5B57\u4F53\u6587\u4EF6\u7684\u7EDD\u5BF9\u8DEF\u5F84:"Enter an absolute font file path","\u672C\u673A\u5B57\u4F53\u8BBE\u7F6E\u65E0\u6CD5\u8BFB\u53D6\uFF0C\u8BF7\u5728\u300C\u5B57\u4F53\u8BBE\u7F6E\u300D\u4E2D\u91CD\u65B0\u4FDD\u5B58":"Unable to read local font settings. Save them again in Font Settings.","\u65E0\u6CD5\u4FDD\u5B58\u672C\u673A\u5B57\u4F53\u8BBE\u7F6E\uFF0C\u8BF7\u68C0\u67E5\u914D\u7F6E\u76EE\u5F55\u7684\u5199\u5165\u6743\u9650":"Unable to save local font settings. Check write permissions for the configuration directory.","\u5F53\u524D\u5B57\u4F53\u7531 QXQY_FONT_PATH \u56FA\u5B9A\uFF0C\u8BF7\u79FB\u9664\u8BE5\u73AF\u5883\u53D8\u91CF\u5E76\u91CD\u542F\u540E\u518D\u4F7F\u7528\u524D\u7AEF\u8BBE\u7F6E":"QXQY_FONT_PATH overrides font settings. Remove it and restart before editing settings here.",\u5B57\u4F53\u8BBE\u7F6E\u4EC5\u9650\u672C\u673A\u76F4\u63A5\u8BBF\u95EE:"Font settings require a direct connection from this machine",\u5B57\u4F53\u8BBE\u7F6E\u8FC7\u5927:"Font settings exceed the size limit",\u5343\u661F\u6C99\u7BB1:"Miliastra Sandbox",\u5343\u661F\u5947\u57DF:"Miliastra Wonderland",\u670D\u52A1\u7AEF\u63A7\u4EF6\u6A21\u677F:"Server Control Template",\u670D\u52A1\u7AEF\u63A7\u4EF6:"Server Controls",\u5BA2\u6237\u7AEF\u63A7\u4EF6:"Client Controls","1 \u4EBA":"1 player","{0} \u4EBA":"{0} players"};var Od="qxqy-ui-language",Ul="qxqy-ui-language-change",hi=new Set,h1=i=>["auto","zh","en"].includes(i);function Nd(){try{let i=globalThis.localStorage?.getItem(Od);return h1(i)?i:"auto"}catch{return"auto"}}var go=Nd(),u1=null;function RC(i="auto",t="zh-CN",e=""){return i==="zh"||i==="en"?i:/^(?:zh|cmn|yue|wuu|hak|nan|gan|hsn)(?:[-_]|$)/i.test(e||t)?"zh":"en"}var kC=()=>go,zd=()=>u1||{language:typeof window>"u"?"zh-CN":globalThis.navigator?.language||globalThis.navigator?.languages?.[0]||Intl.DateTimeFormat().resolvedOptions().locale||"en",source:"browser"},Hd=()=>RC(go,zd().language);async function BC(i,t=globalThis.fetch){try{let e=await t(i,{method:"POST",mode:"same-origin",credentials:"same-origin",cache:"no-store",headers:{"content-type":"application/json"},body:"{}",signal:AbortSignal.timeout(4e3)});if(e.ok){let r=await e.json(),s=r.ok?r.value:null;if(typeof s?.language=="string"&&s.language.length<=80){let n=Intl.getCanonicalLocales(s.language.replaceAll("_","-"))[0];if(n){u1={language:n,source:s.source||"host"};for(let o of hi)o()}}}}catch{}return zd()}function os(i){if(!(i?.type==="storage"&&i.key!==Od&&i.key!==null)){go=i?.type===Ul?i.detail:Nd();for(let t of hi)t()}}function IC(i){if(h1(i)){go=i;try{globalThis.localStorage?.setItem(Od,i)}catch{}if(typeof window<"u")window.dispatchEvent(new CustomEvent(Ul,{detail:i}));else for(let t of hi)t()}}function GC(i){return!hi.size&&typeof window<"u"&&(go=Nd(),window.addEventListener("storage",os),window.addEventListener(Ul,os),window.addEventListener("languagechange",os)),hi.add(i),()=>{hi.delete(i),!hi.size&&typeof window<"u"&&(window.removeEventListener("storage",os),window.removeEventListener(Ul,os),window.removeEventListener("languagechange",os))}}var Fl=(i,t)=>i.replace(/\{(\d+)\}/g,(e,r)=>r<t.length?String(t[r]??""):e),FC=Object.entries(Gl).filter(([i])=>/\{\d+\}/.test(i)).map(([i,t])=>{let e=[],r=i.split(/(\{\d+\})/).map(s=>{let n=s.match(/^\{(\d+)\}$/);return n?(e.push(Number(n[1])),"([\\s\\S]*?)"):s.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}).join("");return{expression:new RegExp(`^${r}$`),value:t,slots:e}});function UC(i,t,...e){if(Array.isArray(t)&&Object.hasOwn(t,"raw")&&(t=t.reduce((r,s,n)=>r+(n?`{${n-1}}`:"")+s,"")),typeof t!="string")return t;if(i!=="en")return Fl(t,e);if(Object.hasOwn(Gl,t))return Fl(Gl[t],e);if(!e.length&&/[\p{Script=Han}]/u.test(t))for(let r of FC){let s=r.expression.exec(t);if(!s)continue;let n=[];return r.slots.forEach((o,a)=>{n[o]=s[a+1]}),Fl(r.value,n)}return Fl(t,e)}var Ld=(i,...t)=>UC(Hd(),i,...t);function DC(i=document){for(let t of i.querySelectorAll("[data-i18n]"))t.textContent=Ld(t.dataset.i18n);for(let t of["title","placeholder","aria-label"])for(let e of i.querySelectorAll(`[data-i18n-${t}]`))e.setAttribute(t,Ld(e.getAttribute(`data-i18n-${t}`)));i===document&&(document.documentElement.lang=Hd()==="zh"?"zh-CN":"en")}var BY=Object.freeze({aqua:"00ffff",black:"000000",blue:"0000ff",brown:"a52a2a",cyan:"00ffff",darkblue:"0000a0",fuchsia:"ff00ff",green:"008000",grey:"808080",lightblue:"add8e6",lime:"00ff00",magenta:"ff00ff",maroon:"800000",navy:"000080",olive:"808000",orange:"ffa500",purple:"800080",red:"ff0000",silver:"c0c0c0",teal:"008080",white:"ffffff",yellow:"ffff00"});function d1(i,t){return`${i.italic?"italic ":""}${i.bold?"bold ":""}${i.fontSize}px ${t}`}function f1(i){let t=Number(i)>>>0;return`rgba(${t>>>16&255},${t>>>8&255},${t&255},${(t>>>24)/255})`}function LC(i,t,e,r,s=ci){let n=t.textLayout;if(!n?.richLines||e<=0||r<=0)return;let o=t.horizontalAlignment==="Right"?1:t.horizontalAlignment==="Middle"?.5:0,a=t.verticalAlignment==="Bottom"?1:t.verticalAlignment==="Middle"?.5:0,l=t.kind==="textwindow"?t.scroll:null,c=n.visibleLineCount??n.richLines.length,h=n.visibleContentHeight??n.contentHeight,u=t.kind==="textwindow"&&n.contentHeight>r?-(l?.offset||0):a*(r-h);i.save(),i.beginPath(),i.rect(0,0,e,r),i.clip(),i.textAlign="left",i.textBaseline="alphabetic",i.lineJoin="round",i.strokeStyle=f1(t.outlineColor??4278190080);for(let d=0;d<c;d++){let f=n.richLines[d],m=u+f.top;if(m+f.height<0||m>r)continue;let g=2+o*(n.textWidth-f.width);for(let _ of f.runs)i.font=d1(_,s||ci),i.fillStyle=f1(_.color??t.fontColor??4294967295),t.enableOutline&&(i.lineWidth=Math.max(2,_.fontSize*.12),i.strokeText(_.text,g+_.x,m+f.baseline)),i.fillText(_.text,g+_.x,m+f.baseline)}i.restore()}function Wd(i,t,e,r,s,n=1){let o=Math.min(Math.max(1,n),4096/Math.max(1,e,r)),a=Math.max(1,Math.ceil(e*o)),l=Math.max(1,Math.ceil(r*o));i.width!==a&&(i.width=a),i.height!==l&&(i.height=l);let c=i.getContext("2d");c.setTransform(1,0,0,1,0,0),c.clearRect(0,0,a,l),c.save(),c.scale(a/(e>0?e:1),l/(r>0?r:1)),LC(c,t,e,r,s),c.restore()}Su();Au();Ru();hu();Oa();Vr();pr();var p1={aVertex:(i,t,e,r,s)=>{let n=0,o=0,a=0,l=0;for(let c=0;c<i.length;++c){let h=i[c],u=h.texture,d=h.scaleX,f=h.scaleY,m=h.anchorX,g=h.anchorY,_=u.trim,x=u.orig;_?(o=_.x-m*x.width,n=o+_.width,l=_.y-g*x.height,a=l+_.height):(n=x.width*(1-m),o=x.width*-m,a=x.height*(1-g),l=x.height*-g),t[r]=o*d,t[r+1]=l*f,t[r+s]=n*d,t[r+s+1]=l*f,t[r+s*2]=n*d,t[r+s*2+1]=a*f,t[r+s*3]=o*d,t[r+s*3+1]=a*f,r+=s*4}},aPosition:(i,t,e,r,s)=>{for(let n=0;n<i.length;++n){let o=i[n],a=o.x,l=o.y;t[r]=a,t[r+1]=l,t[r+s]=a,t[r+s+1]=l,t[r+s*2]=a,t[r+s*2+1]=l,t[r+s*3]=a,t[r+s*3+1]=l,r+=s*4}},aRotation:(i,t,e,r,s)=>{for(let n=0;n<i.length;++n){let o=i[n].rotation;t[r]=o,t[r+s]=o,t[r+s*2]=o,t[r+s*3]=o,r+=s*4}},aUV:(i,t,e,r,s)=>{for(let n=0;n<i.length;++n){let o=i[n].texture.uvs;t[r]=o.x0,t[r+1]=o.y0,t[r+s]=o.x1,t[r+s+1]=o.y1,t[r+s*2]=o.x2,t[r+s*2+1]=o.y2,t[r+s*3]=o.x3,t[r+s*3+1]=o.y3,r+=s*4}},aColor:(i,t,e,r,s)=>{for(let n=0;n<i.length;++n){let o=i[n].color;e[r]=o,e[r+s]=o,e[r+s*2]=o,e[r+s*3]=o,r+=s*4}}};function g1(i){let t=Object.values(i),e=t.filter(s=>s.dynamic),r=t.filter(s=>!s.dynamic);return{dynamicUpdate:m1(e),staticUpdate:m1(r)}}function m1(i){let t=0,e=[];for(let r=0;r<i.length;r++){let s=i[r],n=Jt(s.format).stride/4;t+=n,e.push({stride:n,updateFunction:s.updateFunction||p1[s.attributeName]})}return(r,s,n)=>{let o=0;for(let a=0;a<e.length;a++){let l=e[a];l.updateFunction(r,s,n,o,t),o+=l.stride}}}Cn();me();$t();Ar();Tu();function x1(){return OC}function OC(i,t,e){let r=i.gl,s=i.shader,n=s._getProgramData(t.glProgram);for(let o in t.groups){let a=t.groups[o];for(let l in a.resources){let c=a.resources[l];if(c instanceof Ct)c.ubo?s.bindUniformBlock(c,t._uniformBindMap[o][l],e.blockIndex++):s.updateUniformGroup(c);else if(c instanceof He)s.bindUniformBlock(c,t._uniformBindMap[o][l],e.blockIndex++);else if(c instanceof st||c instanceof Ki){i.texture.bind(c,e.textureCount);let h=t._uniformBindMap[o][l],u=n.uniformData[h];u&&(u.value!==e.textureCount&&r.uniform1i(u.location,e.textureCount),e.textureCount++)}else c instanceof ce}}}Za();Na();wn();var _1=[(i,t,e,r,s)=>{let n=r[i].toArray(!0);t[e]=n[0],t[e+1]=n[1],t[e+2]=n[2],t[e+4]=n[3],t[e+5]=n[4],t[e+6]=n[5],t[e+8]=n[6],t[e+9]=n[7],t[e+10]=n[8]},(i,t,e,r,s)=>{s=r[i],t[e]=s.x,t[e+1]=s.y,t[e+2]=s.width,t[e+3]=s.height},(i,t,e,r,s)=>{s=r[i],t[e]=s.x,t[e+1]=s.y},(i,t,e,r,s)=>{s=r[i],t[e]=s.red,t[e+1]=s.green,t[e+2]=s.blue,t[e+3]=s.alpha},(i,t,e,r,s)=>{s=r[i],t[e]=s.red,t[e+1]=s.green,t[e+2]=s.blue}],y1={f32:(i,t,e,r,s)=>{t[e]=s},i32:(i,t,e,r,s)=>{t[e]=s},"vec2<f32>":(i,t,e,r,s)=>{t[e]=s[0],t[e+1]=s[1]},"vec3<f32>":(i,t,e,r,s)=>{t[e]=s[0],t[e+1]=s[1],t[e+2]=s[2]},"vec4<f32>":(i,t,e,r,s)=>{t[e]=s[0],t[e+1]=s[1],t[e+2]=s[2],t[e+3]=s[3]},"mat2x2<f32>":(i,t,e,r,s)=>{t[e]=s[0],t[e+1]=s[1],t[e+2]=s[2],t[e+3]=s[3]},"mat3x3<f32>":(i,t,e,r,s)=>{t[e]=s[0],t[e+1]=s[1],t[e+2]=s[2],t[e+4]=s[3],t[e+5]=s[4],t[e+6]=s[5],t[e+8]=s[6],t[e+9]=s[7],t[e+10]=s[8]},"mat4x4<f32>":(i,t,e,r,s)=>{for(let n=0;n<16;n++)t[e+n]=s[n]},"mat3x2<f32>":(i,t,e,r,s)=>{for(let n=0;n<6;n++)t[e+(n/3|0)*4+n%3]=s[n]},"mat4x2<f32>":(i,t,e,r,s)=>{for(let n=0;n<8;n++)t[e+(n/4|0)*4+n%4]=s[n]},"mat2x3<f32>":(i,t,e,r,s)=>{for(let n=0;n<6;n++)t[e+(n/2|0)*4+n%2]=s[n]},"mat4x3<f32>":(i,t,e,r,s)=>{for(let n=0;n<12;n++)t[e+(n/4|0)*4+n%4]=s[n]},"mat2x4<f32>":(i,t,e,r,s)=>{for(let n=0;n<8;n++)t[e+(n/2|0)*4+n%2]=s[n]},"mat3x4<f32>":(i,t,e,r,s)=>{for(let n=0;n<12;n++)t[e+(n/3|0)*4+n%3]=s[n]}},b1={f32:(i,t,e,r,s)=>{t[e]=s},i32:(i,t,e,r,s)=>{t[e]=s},"vec2<f32>":(i,t,e,r,s)=>{t[e]=s[0],t[e+1]=s[1]},"vec3<f32>":(i,t,e,r,s)=>{t[e]=s[0],t[e+1]=s[1],t[e+2]=s[2]},"vec4<f32>":(i,t,e,r,s)=>{t[e]=s[0],t[e+1]=s[1],t[e+2]=s[2],t[e+3]=s[3]},"mat2x2<f32>":(i,t,e,r,s)=>{t[e]=s[0],t[e+1]=s[1],t[e+4]=s[2],t[e+5]=s[3]},"mat3x3<f32>":(i,t,e,r,s)=>{t[e]=s[0],t[e+1]=s[1],t[e+2]=s[2],t[e+4]=s[3],t[e+5]=s[4],t[e+6]=s[5],t[e+8]=s[6],t[e+9]=s[7],t[e+10]=s[8]},"mat4x4<f32>":(i,t,e,r,s)=>{for(let n=0;n<16;n++)t[e+n]=s[n]},"mat3x2<f32>":(i,t,e,r,s)=>{for(let n=0;n<6;n++)t[e+(n/3|0)*4+n%3]=s[n]},"mat4x2<f32>":(i,t,e,r,s)=>{for(let n=0;n<8;n++)t[e+(n/4|0)*4+n%4]=s[n]},"mat2x3<f32>":(i,t,e,r,s)=>{for(let n=0;n<6;n++)t[e+(n/2|0)*4+n%2]=s[n]},"mat4x3<f32>":(i,t,e,r,s)=>{for(let n=0;n<12;n++)t[e+(n/4|0)*4+n%4]=s[n]},"mat2x4<f32>":(i,t,e,r,s)=>{for(let n=0;n<8;n++)t[e+(n/2|0)*4+n%2]=s[n]},"mat3x4<f32>":(i,t,e,r,s)=>{for(let n=0;n<12;n++)t[e+(n/3|0)*4+n%3]=s[n]}};function v1(i){return T1(i,b1,t=>{let e=Math.max(Wn[t.data.type]/16,1),r=t.data.value.length/t.data.size,s=(4-r%4)%4;return(n,o,a,l,c)=>{let h=0;for(let u=0;u<t.data.size*e;u++){for(let d=0;d<r;d++)o[a++]=c[h++];a+=s}}})}function S1(i){return T1(i,y1,t=>{let{size:e,align:r}=Zr[t.data.type],s=(e-r)/4;return(n,o,a,l,c)=>{let h=0;for(let u=0;u<t.data.size*(e/4);u++){for(let d=0;d<e/4;d++)o[a++]=c[h++];a+=s}}})}function T1(i,t,e){let r={};for(let s in i){let n=i[s],o=n.data,a=!1;r[o.name]={offset:n.offset/4,func:null};for(let l=0;l<de.length;l++){let c=de[l];if(o.type===c.type&&c.test(o)){r[o.name].func=_1[l],a=!0;break}}a||(o.size===1?r[o.name].func=t[o.type]:r[o.name].func=e(n))}return(s,n,o)=>{for(let a in r)r[a].func(a,n,o+r[a].offset,s,s[a])}}wn();var w1={f32(i,t,e,r,s,n,o){e!==r&&(t.value=r,o.uniform1f(s[i].location,r))},"vec2<f32>"(i,t,e,r,s,n,o){(e[0]!==r[0]||e[1]!==r[1])&&(e[0]=r[0],e[1]=r[1],o.uniform2f(s[i].location,r[0],r[1]))},"vec3<f32>"(i,t,e,r,s,n,o){(e[0]!==r[0]||e[1]!==r[1]||e[2]!==r[2])&&(e[0]=r[0],e[1]=r[1],e[2]=r[2],o.uniform3f(s[i].location,r[0],r[1],r[2]))},"vec4<f32>"(i,t,e,r,s,n,o){(e[0]!==r[0]||e[1]!==r[1]||e[2]!==r[2]||e[3]!==r[3])&&(e[0]=r[0],e[1]=r[1],e[2]=r[2],e[3]=r[3],o.uniform4f(s[i].location,r[0],r[1],r[2],r[3]))},i32(i,t,e,r,s,n,o){e!==r&&(t.value=r,o.uniform1i(s[i].location,r))},"vec2<i32>"(i,t,e,r,s,n,o){(e[0]!==r[0]||e[1]!==r[1])&&(e[0]=r[0],e[1]=r[1],o.uniform2i(s[i].location,r[0],r[1]))},"vec3<i32>"(i,t,e,r,s,n,o){(e[0]!==r[0]||e[1]!==r[1]||e[2]!==r[2])&&(e[0]=r[0],e[1]=r[1],e[2]=r[2],o.uniform3i(s[i].location,r[0],r[1],r[2]))},"vec4<i32>"(i,t,e,r,s,n,o){(e[0]!==r[0]||e[1]!==r[1]||e[2]!==r[2]||e[3]!==r[3])&&(e[0]=r[0],e[1]=r[1],e[2]=r[2],e[3]=r[3],o.uniform4i(s[i].location,r[0],r[1],r[2],r[3]))},u32(i,t,e,r,s,n,o){e!==r&&(t.value=r,o.uniform1ui(s[i].location,r))},"vec2<u32>"(i,t,e,r,s,n,o){(e[0]!==r[0]||e[1]!==r[1])&&(e[0]=r[0],e[1]=r[1],o.uniform2ui(s[i].location,r[0],r[1]))},"vec3<u32>"(i,t,e,r,s,n,o){(e[0]!==r[0]||e[1]!==r[1]||e[2]!==r[2])&&(e[0]=r[0],e[1]=r[1],e[2]=r[2],o.uniform3ui(s[i].location,r[0],r[1],r[2]))},"vec4<u32>"(i,t,e,r,s,n,o){(e[0]!==r[0]||e[1]!==r[1]||e[2]!==r[2]||e[3]!==r[3])&&(e[0]=r[0],e[1]=r[1],e[2]=r[2],e[3]=r[3],o.uniform4ui(s[i].location,r[0],r[1],r[2],r[3]))},bool(i,t,e,r,s,n,o){e!==r&&(t.value=r,o.uniform1i(s[i].location,r))},"vec2<bool>"(i,t,e,r,s,n,o){(e[0]!==r[0]||e[1]!==r[1])&&(e[0]=r[0],e[1]=r[1],o.uniform2i(s[i].location,r[0],r[1]))},"vec3<bool>"(i,t,e,r,s,n,o){(e[0]!==r[0]||e[1]!==r[1]||e[2]!==r[2])&&(e[0]=r[0],e[1]=r[1],e[2]=r[2],o.uniform3i(s[i].location,r[0],r[1],r[2]))},"vec4<bool>"(i,t,e,r,s,n,o){(e[0]!==r[0]||e[1]!==r[1]||e[2]!==r[2]||e[3]!==r[3])&&(e[0]=r[0],e[1]=r[1],e[2]=r[2],e[3]=r[3],o.uniform4i(s[i].location,r[0],r[1],r[2],r[3]))},"mat2x2<f32>"(i,t,e,r,s,n,o){o.uniformMatrix2fv(s[i].location,!1,r)},"mat3x3<f32>"(i,t,e,r,s,n,o){o.uniformMatrix3fv(s[i].location,!1,r)},"mat4x4<f32>"(i,t,e,r,s,n,o){o.uniformMatrix4fv(s[i].location,!1,r)}},C1={f32(i,t,e,r,s,n,o){o.uniform1fv(s[i].location,r)},"vec2<f32>"(i,t,e,r,s,n,o){o.uniform2fv(s[i].location,r)},"vec3<f32>"(i,t,e,r,s,n,o){o.uniform3fv(s[i].location,r)},"vec4<f32>"(i,t,e,r,s,n,o){o.uniform4fv(s[i].location,r)},"mat2x2<f32>"(i,t,e,r,s,n,o){o.uniformMatrix2fv(s[i].location,!1,r)},"mat3x3<f32>"(i,t,e,r,s,n,o){o.uniformMatrix3fv(s[i].location,!1,r)},"mat4x4<f32>"(i,t,e,r,s,n,o){o.uniformMatrix4fv(s[i].location,!1,r)},i32(i,t,e,r,s,n,o){o.uniform1iv(s[i].location,r)},"vec2<i32>"(i,t,e,r,s,n,o){o.uniform2iv(s[i].location,r)},"vec3<i32>"(i,t,e,r,s,n,o){o.uniform3iv(s[i].location,r)},"vec4<i32>"(i,t,e,r,s,n,o){o.uniform4iv(s[i].location,r)},u32(i,t,e,r,s,n,o){o.uniform1iv(s[i].location,r)},"vec2<u32>"(i,t,e,r,s,n,o){o.uniform2iv(s[i].location,r)},"vec3<u32>"(i,t,e,r,s,n,o){o.uniform3iv(s[i].location,r)},"vec4<u32>"(i,t,e,r,s,n,o){o.uniform4iv(s[i].location,r)},bool(i,t,e,r,s,n,o){o.uniform1iv(s[i].location,r)},"vec2<bool>"(i,t,e,r,s,n,o){o.uniform2iv(s[i].location,r)},"vec3<bool>"(i,t,e,r,s,n,o){o.uniform3iv(s[i].location,r)},"vec4<bool>"(i,t,e,r,s,n,o){o.uniform4iv(s[i].location,r)}},E1=[(i,t,e,r,s,n,o)=>{o.uniformMatrix3fv(s[i].location,!1,n[i].toArray(!0))},(i,t,e,r,s,n,o)=>{e=s[i].value,r=n[i],(e[0]!==r.x||e[1]!==r.y||e[2]!==r.width||e[3]!==r.height)&&(e[0]=r.x,e[1]=r.y,e[2]=r.width,e[3]=r.height,o.uniform4f(s[i].location,r.x,r.y,r.width,r.height))},(i,t,e,r,s,n,o)=>{e=s[i].value,r=n[i],(e[0]!==r.x||e[1]!==r.y)&&(e[0]=r.x,e[1]=r.y,o.uniform2f(s[i].location,r.x,r.y))},(i,t,e,r,s,n,o)=>{e=s[i].value,r=n[i],(e[0]!==r.red||e[1]!==r.green||e[2]!==r.blue||e[3]!==r.alpha)&&(e[0]=r.red,e[1]=r.green,e[2]=r.blue,e[3]=r.alpha,o.uniform4f(s[i].location,r.red,r.green,r.blue,r.alpha))},(i,t,e,r,s,n,o)=>{e=s[i].value,r=n[i],(e[0]!==r.red||e[1]!==r.green||e[2]!==r.blue)&&(e[0]=r.red,e[1]=r.green,e[2]=r.blue,o.uniform3f(s[i].location,r.red,r.green,r.blue))}];function P1(i,t){let e={};for(let r in i.uniformStructures){if(!t[r])continue;let s=i.uniformStructures[r],n=!1;for(let o=0;o<de.length;o++){let a=de[o];if(s.type===a.type&&a.test(s)){e[r]=E1[o],n=!0;break}}if(!n){let o=s.size===1?w1:C1;e[r]=o[s.type]}}return(r,s,n)=>{let o=n.gl;for(let a in e){let l=s[a],c=r[a],h=r[a].value;e[a](a,c,h,l,r,s,o)}}}function NC(){Object.assign(Te.prototype,{_unsafeEvalCheck(){}}),Object.assign(br.prototype,{_systemCheck(){}}),Object.assign(ei.prototype,{_generateUniformsSync:P1}),Object.assign(Jr.prototype,{_generateUboSync:v1}),Object.assign(Qr.prototype,{_generateUboSync:S1}),Object.assign(ti.prototype,{_generateShaderSync:x1}),Object.assign(kl.prototype,{generateParticleUpdate:g1})}NC();var zC="mp3-v1",HC="/qxqy-audio/",WC=[[10001,"ura.1ht4.2ag9.1hh5.jbb.k02.jcw.2tv.2wn.2xk.2r3.d5s.94l.ebv.kcr.b40.77k.9gp.97w.1hb5.jag.btu.jc9.hp5.bmj.blq.blq.ff9.ffk.o74.1owl.rp.mg.l3.lf.lh.qy.1a3z.2xk.2xk.2xk.2xk.2xk.17dc.1f2b.2bc.2bc.2bc.2bc.2bc.ffo.ffo.126.1fk.4mo.4mo.15e.1h2.237.2ba.2kd.2bc.4mo.4mo.4mo.4mo.1mc.1n6.2cu.1ud.2b1.2ee.1tj.1tk"],[20001,"o6.fh.kb.cr.og.sm.6x.8c.87.o7.vz.kt.qo.lg.ob.9w.mg.1kz.zc.1ex.1d5.ps.uu.su.qs.ys.zp.10k.15a.xc.uk.mx.1ax.nt.tu.19m.uj.1ku.tt.100.ie.d3.fp.ie.ie.d3.fp.ie.8p.7k.fw.h0.qc.ot.uc.ot.rk.gb.1c2.ff.cl.9v.wg.1ir.1lr.1b8.1ri.1p0.104.10n.mw.j6.jb.f1.dv.84.a0.cp.bx.1ko.1au.1ia.rs.rt.rs.t7.x6.wi.zc.16f.1i6.2jh.28d.qh.k8.1gz.1ko.2iv.1xp.1l4.1gk.10j.yo.1jk.1jk.xv.104.15o.1xg.1xg.1xi.25i.p1.t1.yh.1ak.1i6.1y2.xt.32u.3g6.1bz.2mn.14l.14c.1e1.op.s8.p2.v5.2ix.1a0.ry.16m.17n.13c.134.ys.yu.xr.sl.sr.sd.yh.z5.gd.gl.hx.h2.g8.fj.iy.hz.jj.th.12n.16r.d3.j9.dg.lj.fl.a7.f9.iw.el.27f.1dh.1rh.2ph.yd.w5.x5.tr.pq.zf.16h.1a5.17t.wy.vn.y8.wl.yv.2ye.2qt.1ah.163.19t.uf.119.2vv.1bm.13h.14p.1so.c3.as.9z.19w.1l4.1nl.rj.we"],[30001,"jo.my.ss.dw.c1.b4.hl.hl.hl.cz.dw.dw.b4.dw.fr.kd.qv.px.px.74.6u.8h.60.8q.8b.eo.eo.eo.8k.a5.99.12v.13y.lg.m4.qr.dw.ex.g0.ef.cd.br.11n.17h.1b8.1c9.9p.ag.9z.l9.m8.m8.lw.m8.cz.99.b4.8c.63.7f.6h.99.re.pp.pi.cq.c9.cp.ck.c6.b0.bd.al.f6.gl.ed.fs.lc.k6.kh.i6.cx.j1.hk.gb.d7.h7.g2.em.kj.kn.k4.j5.rh.t0.qt.mj.i7.ih.i2.hd.3r.8d.6u.6z.by.de.dg.cr.1a5.1ab.16c.18g.n2.ly.no.nt.f9.de.lr.fe.f0.fj.el.fo.t1.g9.ly.h3.g6.de.2ak.2f3.wf.kg.qn.11p.rg.uj.u6.11c.22o.2cs.3dp.3dq.3d5.3d6.1zx.18v"],[40001,"19x.215.2zt.1ex.2pj.7hy.1ur.1gn.1g7.1b1.u9.1tw.108.1ew.rs.1qu.w9.lk.244.qi.b6.tk.jg.jg.jg.y4.c1.b4.iv.hi.r4.n7.gy.ev.qe.12z.18n.dw.1l6.ou.wz.1un.19t.18k.yy.1hs.sl.dw.1vl.100.14k.1q8.209.1jk.1xr.ua.1j2.pr.26h.1gs.s9.px.15v.pf.1jk.xc.1hb.111.172.ut.285.1oh.149.zj.22r.2l9.14a.ok.23y.1eh.xe.1j0.1rp.1cz.wf.1mh.22k.334.1z2.1xo.1br.4ji.5nq.5nf.2za.18r.h3.eo.ia.1kn.dc.ss.s0.1bl.1oc.is.km.177.1ec.1ao.h4.hp.dx.l9.iw.i3.12w.n1.yq.12w.1ju.yx.14s.18b.22t.u3.my.2rb.36w.13u.z8.20r.18g.19r.2x9.w4.q2.1d2.wo.13a.v6.17w.ur.288.1b6.14m.1fi.1xx.1ee.kj.121.j2.1d2.2ad.1ri.2lc.1vk.138.12r.xj.1h5.1c5.2qx.1gj.t2.lv.rf.18q.1kz.dw.2aq.ia.1i9.k5.199.f4.10y.18a.xf.rk.1g9.1q3.10h.sj.15o.e3.dz.sv.135.w9.yg.aw.2a2.19m.22w.1c8.272.13o.104.1sr.rs.1pb.d5.df.kp.jq.1a7.s8.1ao.ba.rb.in.pz.q8.140.ij.1e7.jl.yk.117.10i.1tn.1oj.1sv.sj.1e3.2so.1c7.1gv.178.107.10n.1dx.1qi.1wp.2bc.218.16r.105.xc.z6.11w.1mc.1y9.17p.1cs.2ij.18c.1ie.nn.16c.1ce.xb.1ei.3j0.ve.14x.1sx.285.1b8.1at.v4.rv.rs.10z.xq.11o.15k.xq.u1.i2.pu.i4.l3.9u.oh.mc.nm.pw.1i3.1h4.pj.111.l4.lb.qq.qf.u0.h4.nk.yf.6h.ij.ds.oy.re.m8.1gl.cz.16z.a1.1f8.1x6.vp.dz.gp.g6.fr.vl.fr.gg.qc.aj.99.go.ij.fz.11a.x5.mo.1u9.h0.m8.10m.1an.2bc.3uw.2gk.124.xb.1uk.1b6.2xj.1os.11a.vs.1i9.1lr.2gv.265.668.1xg.45j.404.2x1.1io.3om.4q2.4mo.1d4.2bp.1pr.166.2y6.2bv.361.2nc.2bc.3g0.7g4.334.2bc.2xo.3uw.6ic.4ig.3uw.23v.1la.2zr.1jt.1cq.27a.1n1.19x.1qg.1jn.1ca.26y.2d6.4v4.4mo.4mo.7ps.1jk.153.1fo.1dm.1s2.1w1.oe.1lb.319.2eg.58p.4mo.3dw.2y2.2xm.1u8.1ko.12n.1e0.2sd.1md.2cl.1q2.372.4mo.48s.b14.3fu.334.334.34i.4nf.4ji.5eg.3uw.2u8.1g1.110.37x.2jo.su.334.3aj.3uw.63f.2bc.2bc.8v4.1ts.ax5.5du.34d.3oc.34j.4si.174.rt.1rp.2b0.37d.1ta.2gh.28a.22z.1nc.1a5.1pa.4dd.3ha.2cs.5mv.4mq.5c2.3uw.1gf.4md.113.10x.21o.2hj.1b3.1cx.1ol.3ar.1fv.17t.1a7.2uj.2we.1jk"],[50001,"1o8.1k1.mo.1wu.2c9.22d.1kb.23n.1b8.1ic.24c.2wz.1mq.1mu.1jx.1z1.o3.190.vp.1h7.th.4mo.1rp.4mo.4mo.7ps.zz.143.21v.1nf.34s.1s3.r9.18t.s1.r9.21w.277.ls.25k.5v1.2bc.1kh.wt.14i.1eq.15o.668.sh.rl.3wi.3vc.43c.3yn.17c.f5.xu.jg.176.19v.1xy.23m.18x.30c.10l.13k.v8.vp.17t.qj.17m.1wr.1la.8t.s7.18d.1l2.152.mx.1c8.1l4.1f5.1xe.rz.2hz.1et.13t.xb.14r.15o.z0.1zo.ur.257.1gb.li.12d.15a.132.1m1.3vu.296.1mg.11m.z0.159.mp.hd.x4.1go.ns.xh.2a7.tt.2vb.1bx.1kh.u3.11i.1y1.24e.2hp.2mn.1w6.3zm.166.14g.1mo.2v9.2rg.2f9.1r0.139.m1.k3.ys.1dy.29k.1mm.22m.3zx.4dr.2h7.22o.tv.rm.1et.2wv.2ar.1t7.ku.12s.10b.1v9.1gu.12m.1b3.tv.1c8.tk.10s.ul.1tt.ka.oi.qb.13f.13f.13k.17h.1uh.ez.en.2x7.2ln.2h8.3h8.ig.n9.27o.18b.hl.nm.uk.11a.1ta.1k4.1eh.wv.1go.1gg.sc.18u.1dz.2aq.vt.2l7.25h.1l5.1kn.1vc.1b4.28i.17t.1d6.1k2.18z.jy.jw.dh.1mx.fr.vp.35w.34z.35w.34z.4so.vf.yx.1bg.1d3.2yc.1tg.8q3.99g.am.2du.rm.rg.xa.2cw.xc.1j6.1if.18z.13a.yz.142.1z5.262.1bj.1y8.ur.u5.16j.1pf.1bi.l8.1il.3vz.2dr.jo.ls.18s.16l.18c.141.219.1yz.1fc.24t.27e.481.1vp.25h.1yq.1zn.1uw.11u.1jp.1pz.39o.t6.1mj.1u5.11l.1vd.1dk.1zb.1ic.3ql.14p.1wq.25x.267.zn.zn.1pf.13z.1j7.r9.1hb.4yp.1lt.1cw.1z4.19z.1og.1j4.1cl.1eg.u8.16s.1en.zu.1hr.1js.19g.303.22j.2oa.180.1v7.2ud.2d7.21s.3g9.vh.v1.284.3lg.3lg.17q.1h3.4mo.1cm.1rv.22i.2mc.2j3.27o.333.1q8.237.2ll.23b.2sp.2ll.2ox.2cf.2f8.2hz.1uo.y4.s9.w6.2dg.2q9.up.1m1.1vz.2n8.192.1eb.z7.2em.2q3.1sd.1gj.348.3vf.2iu.29x.1dc.7oj.4pq.5vb.4mx.5me.5sf.5yf.7ps.yj.q0.10w.13p.18b.2wd.11q.2vx.dd.iv.12p.jh.u9.1uy.w0.3f0.3bj.126.qo.1gj.11k.pu.22h.1z6.rp.y4.y0.xl.1d0.11s.wa.1a6.127.10m.12r.1nh.1fy.yo.1js.162.n4.174.1aj.y4.o8.qz.rh.qa.18s.mr.j3.ii.sr.sx.1jk.17l.mj.zr.uy.wa.19t.2bt.xe.1od.hs.xr.5b.12c.1ab.we.gz.mz.4y.sf.11s.e0.1l7.ew.h6.jz.l0.e8.1cx.p6.17u.bw.1ah.10r.10e.o9.1bc.uv.lq.tl.zb.100.jy.b8.bj.336.10n.na.sq.14r.yr.nm.123.tf.l1.zp.1xc.1vk.31l.zl.2bj.2b9.2fv.17p.y0.so.1ln.29c.1eh.nh.xn.131.qc.186.ff.fc.xq.1bm.la.l8.14f.243.111.xi.qw.1qn.11v.1ur.1jx.1ks.s9.nz.269.1zj.2zd.1pv.18n.2vk.p3.1fh.13v.1lf.1lu.2db.1sr.1k3.26o.1dl.1f3.187.2lh.166.v9.xh.1e3.119.s2.mt.1iu.1k6.1o2.12s.u4.2br.1q3.qv.1e4.1zu.1v4.1vk.1t3.3p7.1ob.14d.1ns.1ef.1e4.12w.2kk.1ba.2jx.1e0.1s5.12w.17r.14s.wz.1qp.183.3fb.188.1gr.2ot.168.1u7.w8.28o.1zd.32z.230.w7.vq.x8.1qh.19f.14o.2r9.qg.1ey.1qr.1p6.3a3.1ov.13d.tz.wk.22v.1qa.2l9.yw.yf.nw.p6.1ly.1jk.1nh.x9.q0.17r.17h.ux.uw.12y.p7.g7.kt.14c.ze.1kh.1eo.18a.1d8.26j.15k.19f.1ym.1j5.1c6.11k.1sd.1jp.1ws.13s.1o5.214.sx.px.20x.14h.1ja.s6.1q8.w8.1ks.so.ub.121.202.1ej.1g1.1s8.2bc.4t1.bih.3uw.3pb.avp.6c7.bko.5eg.79c.6wh.3wd.4pn.55j.4a5.3gg.bko.5ei.52p.578.bcv.6gr.2bc.4j9.5y7.9d2.2bb.2bc.668.73z.5pg.50f.5m7.788.267.642.8h2.8h2.49s.64g.5e8.5e8.2bb.3ih.5ur.6bk.578.4ck.3sg.5fe.23i.e9w.2b8.5oj.6bw.2al.2rk.2rk.5pj.n6e.350.6v9.70t.639.3uw.3uw.2bg.639.2bb.2bd.6gj.2bh.660.578.3bk.65e.359.3o0.44i.4tn.1zq.5ee.4a5.3zu.rs.639.33q.5eg.1k1.15o.dw.3uw.b7p.7qd.898.4l4.5uu.5uu.b4g.2yh.2yh.3uw.51a.51a.5kk.66f.iq9.3n7.4nb.46a.1wb.20p.bih.8xa.7ps.70t.70t.4rv.5p1.6aq.ts.63z.668.5v2.5nu.563.55s.55s.5p3.2ga.32x.42x.5cr.4c2.71b.5zp.5c2.66t.4c8.2bc.2bc.2gn.3ea.2kp.fz6.8hz.3e8.4an.bko.j7e.jag.7sr.2bc.3zx.7qd.5ut.5jp.2wk.5q7.3uw.334.4i3.3uw.4bd.5eu.46h.4i2.6t4.446.5s7.5cg.4bk.5nd.7bf.4rt.23b.2bc.2bc.2bc.2bc.2ba.4mo.4dv.3wn.2bc.1we.4he.2bc.4gz.3wn.3km.4xy.4hi.4mr.2bc.247.3yj.2c6.2bc.3aj.446.4ub.3uw.51.e0.86.is.i1.hg.mn.m4.2c.7h.sg.e3.jb.7r.eq.nf.u0.60.4o.ke.47.47.47.47.b8.4x.dr.dy.rw.rw.59.8j.5z.a5.l3.c0.ik.f7.li.lr.7x.dv.du.dd.5e.91.1b.ce.cc.59.bh.e6.8m.9n.cl.lt.7ip.4mr.4si.4kf.vo.we.13e.17n.1iw.2pi.lp.r6.gw.7x.xz.qt.bq.ls.q1.eh.bx.cr.3c.j7.b8.fz.4k.8p.bg.5w.iy.j3.12o.rs.cz.dp.yz.jk.63.63.7ps.7ps.7ps.40g.3jp.4tw.89k.88a.7s0.83d.668.7ps.2fw.2ev.2fp.7ps.2jb.2dh.2ud.25i.24c.2bt.1pa.17r.1a7.7ps.7pt.5rg.4nl.3vv.7qo.31a.2p0.2k0.49a.3v4.3nl.1ug.1ug.1l6.7s1.7ps.2cp.2f8.2i7.7ps.28q.2be.275.1ma.1oz.1q7.16s.1iq.1e0.78m.7ps.2bc.2bc.2bc.bko.2wu.2wu.2wu.3b4.38f.3uw.3uw.3uw.3uw.7ps.7qa.32n.2gg.2wk.7rv.1v3.1qq.1rb.1zk.1my.1zp.1yn.1oh.1uh.7st.9q.9q.9q.9q.9q.kk.kk.kk.kk.kk.dw.dp.dw.rs.rs.rs.rs.s4.sd.54j.5n8.2n6.21r.1nu.1o5.14u.t6.3f7.2j0.32c.304.189.1gf.18w.18j.1st.1vq.116.kw.3uw.3uw.vr.zx.xc.tc.7d.7r.9d.9w.8s.9p.3b.3b"]].map(([i,t])=>[i,t.split(".").map(e=>parseInt(e,36)/1e3)]);function M1(i){if(!Number.isSafeInteger(i))return null;for(let[t,e]of WC)if(i>=t&&i<t+e.length)return e[i-t];return null}function A1(i){return`${HC}${zC}/${i}.mp3`}var Dl=class{constructor({contextFactory:t=()=>new(globalThis.AudioContext||globalThis.webkitAudioContext),fetch:e=(...n)=>globalThis.fetch(...n),onStatus:r=()=>{},now:s=()=>performance.now()}={}){Object.assign(this,{contextFactory:t,fetcher:e,onStatus:r,now:s}),this.context=null,this.output=null,this.buffers=new Map,this.voices=new Map,this.key="",this.sequence=0,this.paused=!1,this.muted=!1,this.disposed=!1,this.error="",this.revision=-1,this.unlockHandlers=[]}status(){return{unlocked:this.context?.state==="running",muted:this.muted,error:this.error,voices:this.voices.size}}publish(){this.onStatus(this.status())}ensureContext(){return this.context||(this.context=this.contextFactory(),this.output=this.context.createGain(),this.output.gain.value=this.muted?0:1,this.output.connect(this.context.destination),this.context.onstatechange=()=>this.publish()),this.context}unlock(){if(!this.disposed)try{this.ensureContext().resume().then(()=>{if(!this.disposed){for(let e of this.voices.values())this.playVoice(e);this.publish()}}).catch(e=>{this.error=e.message,this.publish()});for(let e of this.voices.values())this.playVoice(e)}catch(t){this.error=t.message,this.publish()}}bindUnlock(t){let e=s=>{s.target?.closest?.("[data-audio-toggle]")||this.unlock()};for(let s of["pointerdown","keydown"])t.addEventListener(s,e,{capture:!0});let r=()=>{for(let s of["pointerdown","keydown"])t.removeEventListener(s,e,{capture:!0})};return this.unlockHandlers.push(r),r}toggle(){this.context?.state!=="running"?this.unlock():this.setMuted(!this.muted)}setMuted(t){this.muted=!!t,this.output&&(this.output.gain.value=this.muted?0:1),this.publish()}buffer(t){let e=this.buffers.get(t);if(e&&(!e.failed||this.now()<e.retryAt))return this.buffers.delete(t),this.buffers.set(t,e),e.promise;let r={bytes:0,failed:!1,abort:new AbortController},s=setTimeout(()=>r.abort.abort(),3e4);return r.promise=(async()=>{let n=await this.fetcher(A1(t),{signal:r.abort.signal});if(!n.ok)throw new Error(`\u97F3\u6548 ${t} \u52A0\u8F7D\u5931\u8D25\uFF1AHTTP ${n.status}`);let o=await n.arrayBuffer();if(this.disposed)throw new Error("audio player disposed");let a=await this.ensureContext().decodeAudioData(o);r.bytes=a.length*a.numberOfChannels*4;let l=[...this.buffers.values()].reduce((c,h)=>c+h.bytes,0);for(let[c,h]of this.buffers){if(l<=32*1024*1024&&this.buffers.size<=64)break;c===t||!h.bytes&&!h.failed||(this.buffers.delete(c),l-=h.bytes)}return a})().catch(n=>{throw r.failed=!0,r.retryAt=this.now()+6e4,n}).finally(()=>clearTimeout(s)),this.buffers.set(t,r),r.promise}stopSource(t){let e=t.source;if(t.source=null,!!e){e.onended=null;try{e.stop()}catch{}e.disconnect()}}removeVoice(t){let e=this.voices.get(t);e&&(this.stopSource(e),this.voices.delete(t))}playVoice(t){if(this.disposed||this.voices.get(t.row.instanceId)!==t||this.paused||t.source||t.loading||t.done)return;if(!t.buffer){t.loading=!0,this.buffer(t.row.audioId).then(r=>{t.loading=!1,!(this.disposed||this.voices.get(t.row.instanceId)!==t)&&(t.buffer=r,this.playVoice(t))}).catch(r=>{this.disposed||this.voices.get(t.row.instanceId)!==t||(this.removeVoice(t.row.instanceId),this.error=r.message,this.publish())});return}if(this.context?.state!=="running"){this.publish();return}if(t.offset>=t.buffer.duration){t.done=!0;return}let e=this.context.createBufferSource();e.buffer=t.buffer,e.connect(this.output),t.source=e,t.beganAt=this.context.currentTime,e.onended=()=>{t.source===e&&(e.disconnect(),t.source=null,t.done=!0,this.publish())},e.start(0,t.offset),this.publish()}sync(t,{fresh:e=!1}={}){if(this.disposed)return;if(t?.running===!1){this.reset();return}let r=t?.audio;if(!r)return;let s=`${r.sessionId}:${r.playerIndex}`,n=s!==this.key;if(n&&(this.reset(),this.key=s),!n&&(r.sequence<this.sequence||r.revision<this.revision))return;this.revision=r.revision;let o=this.paused;this.paused=!!t.paused;let a=new Map(r.active.map(h=>[h.instanceId,h])),l=new Map(r.recent.map(h=>[h.instanceId,h]));for(let[h,u]of this.voices){let d=l.get(h)||a.get(h);if(d?.stopped||u.done&&!a.has(h)||!d){this.removeVoice(h);continue}this.paused&&!o&&u.source&&(u.offset+=Math.max(0,this.context.currentTime-u.beganAt),this.stopSource(u))}let c=n&&!e?r.active:r.recent;for(let h of c){if(!n&&h.instanceId<=this.sequence||h.stopped||M1(h.audioId)===null||h.duration<=0)continue;this.voices.size>=64&&this.removeVoice(this.voices.keys().next().value);let u={row:h,offset:n&&!e?Math.max(0,t.time-h.startedAt):0,source:null,buffer:null,loading:!1,done:!1};this.voices.set(h.instanceId,u)}this.sequence=r.sequence;for(let h of this.voices.values())this.playVoice(h);this.publish()}reset(){for(let t of this.voices.keys())this.removeVoice(t);this.key="",this.sequence=0,this.revision=-1,this.paused=!1,this.publish()}destroy(){this.disposed=!0,this.reset();for(let t of this.buffers.values())t.abort.abort();this.buffers.clear();for(let t of this.unlockHandlers)t();this.unlockHandlers.length=0,this.context&&(this.context.onstatechange=null,this.context.close().catch(()=>{}))}};var VC=["Digit1","Digit2","Digit3","Digit4","Digit5","Digit6","Digit7","Digit8","Digit9","Digit0","KeyU","KeyZ","KeyY","KeyG","KeyH","KeyI","KeyO","KeyP","KeyJ","KeyK","KeyL","KeyV","F5","F6","F7","F8","F9","F10","Backquote","Minus","Equal","BracketLeft","Comma","Period","Slash","ArrowUp","ArrowDown","ArrowLeft","ArrowRight","ControlRight","ShiftRight","Backspace","CapsLock"],R1=new Map(VC.map((i,t)=>[i,`CraftspersonKey${t+1}`]));for(let[i,t]of Object.entries({KeyW:"MoveForwardKey",KeyS:"MoveBackwardKey",KeyA:"MoveLeftKey",KeyD:"MoveRightKey",ControlLeft:"SwitchToWalkOrRunKey",Space:"JumpKey",KeyX:"DropKey",Tab:"OpenShortcutWheelKey",KeyF:"InteractKey",KeyE:"CharacterSkill1Key",KeyQ:"CharacterSkill2Key",KeyR:"CharacterSkill3Key",KeyT:"CharacterSkill4Key"}))R1.set(i,t);function Ll(i,t){if(t!=="Down"&&t!=="Up"||i.isComposing||i.keyCode===229||i.key==="Process"||i.key==="Dead")return"";let e=String(i.key||""),r=/^[a-z]$/i.test(e)?`Key${e.toUpperCase()}`:i.code,s=R1.get(r);return s?`Keyboard${s}${t}`:""}function k1(i,t){if(t!=="Down"&&t!=="Up")return"";let e=i===0?"NormalAttackKey":i===2?"SprintKey":"";return e?`Keyboard${e}${t}`:""}var B1=33,I1=60;function G1(i,t,e,r){return{x:(i.clientX-t.left)*e/t.width,y:(t.bottom-i.clientY)*r/t.height}}function jC({renderer:i,api:t,onSnapshot:e,onStatus:r,onError:s,onAudioStatus:n,audio:o,isActive:a,isInputActive:l,keyInputEnabled:c=!0}={}){o||=typeof window<"u"?new Dl({onStatus:n}):null,typeof window<"u"&&o?.bindUnlock(window);let h=0,u=null,d=!1,f=!1,m=null,g=null,_=0,x=null,b=null,v=null,S=!1,T=[],w=new Set,E=Promise.resolve();function B(N){let et=h;return E=E.then(()=>et===h&&d?Y("key",{key:N},{allowInactive:!0}):null),E}function R(N=!0){return Promise.all([...w].map(et=>et(N))).then(()=>E)}function M(N){c=!!N,c||R()}function C(N){s&&s(N)}async function A(N,{freshAudio:et=!1}={}){u=N,d=N?.running!==!1,o?.sync(N,{fresh:et}),N?.scene&&N.scene.format==="tree-v1"?(N.scene.reset&&(_=0),await i.applyScene(N.scene,N.canvasWidth,N.canvasHeight),_=N.scene.revision||_):Array.isArray(N?.paint)&&await i.render(N.paint,N.canvasWidth,N.canvasHeight),e&&await e(N)}async function D(){if(!d||f)return;if(a&&!a()){o?.reset();return}f=!0;let N=h;try{let et=await t("get",{view:!0,sceneRev:_,compact:!0});if(N!==h)return;await A(et)}catch(et){if(N!==h)return;d=!1,K(),o?.reset(),C(et)}finally{f=!1}}function H(){m||(m=setInterval(()=>{D()},B1))}function K(){m&&clearInterval(m),m=null,g&&clearTimeout(g),g=null}function I(N=30){g||(g=setTimeout(()=>{g=null,D()},N))}function U(){x&&clearTimeout(x),x=null}function j(){x&&(U(),Y("pointer",{type:"move",...b}))}function G(){R(!1),h++,o?.reset(),U(),v=null,S=!1,d=!1,_=0,K()}async function Y(N,et,{allowInactive:ct=!1}={}){if(!ct&&a&&!a())return null;let It=h;try{let St=await t(N,{light:!0,...et||{}});return It!==h||!d||(St&&typeof St=="object"&&St.frame!==void 0&&r&&r(St),I(30)),St}catch(St){return It===h&&C(St),null}}async function pt(N={}){G(),o?.unlock();let et=h;_=0;let ct=await t("start",{view:!0,compact:!0,...N});return et!==h||(await A({...ct,running:!0},{freshAudio:!0}),et!==h)||(d=!0,K(),H()),ct}async function wt(){await R(),G();let N=h;_=0,K();let et=await t("get",{view:!0,compact:!0,sceneRev:0});return N!==h||(await A(et),N!==h)||d&&H(),et}async function lt(N={}){G();let et=h;_=0,K();let ct=await t("device",{view:!0,compact:!0,...N});return et!==h||(await A({...ct,running:!0},{freshAudio:!0}),et!==h)||(d=!0,H()),ct}async function ft(N={}){S=!0;let et=h;try{if(await R(),et!==h)return null;et=++h,o?.reset(),_=0;let ct=await t("view",{view:!0,compact:!0,...N});return et!==h||await A({...ct,running:!0}),ct}finally{et===h&&(S=!1)}}async function q(){return G(),t("stop")}function jt(N,et){return G1(N,et.getBoundingClientRect(),u.canvasWidth,u.canvasHeight)}function ui(N,{keysOn:et}={}){let ct=et||N,It=N.ownerDocument||ct.ownerDocument,St=It?.defaultView||ct,Kt=It||ct,Bt=new Map,xe="",Xt=()=>u&&d&&!S&&(!a||a())&&(!l||l()),$e=()=>c&&Xt(),ls=V=>V.target?.isContentEditable||V.target?.closest?.('input,textarea,select,button,a[href],[role="textbox"],[contenteditable]:not([contenteditable="false"])'),cs=(V,zt)=>{if(!zt||Bt.has(V))return;let Ol=[...Bt.values()].includes(zt);Bt.set(V,zt),Ol||B(zt)},cr=V=>{let zt=Bt.get(V);return zt?(Bt.delete(V),d&&![...Bt.values()].includes(zt)?B(zt.replace(/Down$/,"Up")):null):null},Er=(V=!0)=>V?Promise.all([...Bt.keys()].map(cr)):(Bt.clear(),Promise.resolve());w.add(Er);let hs=V=>{xe=V.pointerType||"",Xt()&&(v!==null||V.button!=null&&V.button!==0||(v=V.pointerId,N.setPointerCapture?.(V.pointerId),j(),Y("pointer",{type:"down",...jt(V,N)})))},us=V=>{Xt()&&v===V.pointerId&&(j(),Y("pointer",{type:"up",...jt(V,N)}),v=null)},ds=V=>{Xt()&&(v!==null&&v!==V.pointerId||(b=jt(V,N),!x&&(x=setTimeout(()=>{x=null,Xt()&&Y("pointer",{type:"move",...b})},I1))))},fs=()=>{v===null&&(U(),Xt()&&Y("pointer",{type:"move",x:-1,y:-1}))},di=V=>{V.pointerType==="mouse"&&(cr("mouse:0"),cr("mouse:2")),v===V.pointerId&&(U(),v=null,u&&d&&Y("pointer",{type:"cancel",...jt(V,N)}))},xo=V=>{if(!Xt())return;V.preventDefault();let zt=N.getBoundingClientRect(),Ol=V.deltaMode===2?zt.width:V.deltaMode===1?16:1,O1=V.deltaMode===2?zt.height:V.deltaMode===1?16:1;Y("pointer",{type:"wheel",...jt(V,N),deltaX:V.deltaX*Ol*u.canvasWidth/zt.width,deltaY:V.deltaY*O1*u.canvasHeight/zt.height})},fi=V=>{if(!$e()||ls(V))return;let zt=Ll(V,"Down");zt&&(V.preventDefault(),V.repeat||cs(`key:${V.code||V.key}`,zt))},pi=V=>{let zt=`key:${V.code||V.key}`;Bt.has(zt)&&(V.preventDefault(),cr(zt))},jd=V=>{!$e()||xe&&xe!=="mouse"||V.sourceCapabilities?.firesTouchEvents||cs(`mouse:${V.button}`,k1(V.button,"Down"))},Xd=V=>{cr(`mouse:${V.button}`)},ps=()=>{Er()},Yd=()=>{It?.hidden&&ps()},$d=V=>{$e()&&V.preventDefault()};N.addEventListener("pointerdown",hs),N.addEventListener("pointerup",us),N.addEventListener("pointermove",ds),N.addEventListener("pointerleave",fs),N.addEventListener("pointercancel",di),N.addEventListener("lostpointercapture",di),N.addEventListener("wheel",xo,{passive:!1}),N.addEventListener("mousedown",jd),N.addEventListener("contextmenu",$d),Kt.addEventListener("mouseup",Xd),ct.addEventListener("keydown",fi),ct.addEventListener("keyup",pi),ct.addEventListener("focusout",ps),St.addEventListener("blur",ps),It?.addEventListener("visibilitychange",Yd);let qd=()=>{Er(),w.delete(Er),N.removeEventListener("pointerdown",hs),N.removeEventListener("pointerup",us),N.removeEventListener("pointermove",ds),N.removeEventListener("pointerleave",fs),N.removeEventListener("pointercancel",di),N.removeEventListener("lostpointercapture",di),N.removeEventListener("wheel",xo),N.removeEventListener("mousedown",jd),N.removeEventListener("contextmenu",$d),Kt.removeEventListener("mouseup",Xd),ct.removeEventListener("keydown",fi),ct.removeEventListener("keyup",pi),ct.removeEventListener("focusout",ps),St.removeEventListener("blur",ps),It?.removeEventListener("visibilitychange",Yd),U()};return T.push(qd),qd}function Cr(){for(G();T.length;)T.pop()();i?.destroy?.(),o?.destroy()}return{audio:o,get snapshot(){return u},get running(){return d},get sceneRev(){return _},get keyInputEnabled(){return c},setKeyInputEnabled:M,releaseKeys:R,applyScene:A,poll:D,pollSoon:I,startPolling:H,stopPolling:K,reset:G,act:Y,start:pt,attach:wt,device:lt,view:ft,stop:q,bindInput:ui,destroy:Cr}}var XC=[0,-.5,.5,.5,-.5,.5],YC=[0,-.5,.12,-.12,.5,0,.12,.12,0,.5,-.12,.12,-.5,0,-.12,-.12],$C=[0,-.5,.11,-.15,.48,-.15,.18,.07,.29,.41,0,.2,-.29,.41,-.18,.07,-.48,-.15,-.11,-.15],qC=new Set(["image","textbox","textwindow","button","grid"]);function as(i,t=4294967295){let e=Number(i??t)>>>0;return{color:e&16777215,alpha:(e>>>24&255)/255}}function le(i,t=0){let e=Number(i);return Number.isFinite(e)?e:t}function F1(i){let t=i?.matrix;if(!t||typeof t!="object")return null;let e=[t.a,t.b,t.c,t.d,t.tx,t.ty].map(Number);return e.every(Number.isFinite)?e:null}function KC(i){let t=i.horizontalAlignment==="Right"?1:i.horizontalAlignment==="Middle"?.5:0,e=i.verticalAlignment==="Bottom"?1:i.verticalAlignment==="Middle"?.5:0;return{x:t,y:e}}function U1(i,t,e,r){let s=i.textLayout,n=s?.fontSize??Math.max(1,le(i.fontSize,12)),o=KC(i),a=i.kind==="textwindow"?i.scroll:null,l=a?Jv(a,e):null,c={fontFamily:r||ci,fontSize:n,fill:as(i.fontColor,4294967295),stroke:i.enableOutline?{...as(i.outlineColor,4278190080),width:Math.max(2,n*.12),join:"round"}:void 0,wordWrap:!a&&!s,wordWrapWidth:Math.max(4,t-4),breakWords:!0,align:o.x===1?"right":o.x===.5?"center":"left",lineHeight:s?.lineHeight??n*1.2};return{text:l?l.text:s?s.lines.slice(0,s.visibleLineCount??s.lines.length).join(`
927
+ `):String(i.text||""),style:c,anchorX:o.x,anchorY:a?0:o.y,x:a?-t/2+2+o.x*a.textWidth:o.x===0?-t/2+2:o.x===1?t/2-2:0,y:a?-e/2-a.offset+l.y+(a.max>0?0:o.y*(e-a.contentLength)):o.y===0?-e/2:o.y===1?e/2:0}}function Vd(i,t,e){return JSON.stringify([i.kind,t,e,i.bgColor,Bd(i.scroll,t,e)])}function ZC(i,t,e){let r=i.primitive==="triangle"?XC:i.primitive==="fourstar"?YC:$C,s=[];for(let n=0;n<r.length;n+=2)s.push(r[n]*t,r[n+1]*e);return s}function QC(i,t,e){return L1(i)?[i.kind,i.primitive,i.imageId,ar(i.imageSource),"sprite"].join(" "):[i.kind,i.primitive,t,e,i.imageColor,i.imageId,ar(i.imageSource),i.imageType,i.fillType,i.fillHorizontalType,i.fillVerticalType,i.fillAmount,i.text,i.fontSize,i.fontColor,i.bgColor,i.enableOutline,i.adaptiveFontSize,i.minimumFontSize,JSON.stringify(i.textLayout),i.outlineColor,i.horizontalAlignment,i.verticalAlignment,i.pressed,JSON.stringify(i.scroll)].join(" ")}function L1(i){return i.kind==="image"&&i.primitive==="circle"&&(!i.fillType||i.fillType==="Unused")}function JC(i){let t=W.get().createCanvas(i,i);t.width=t.height=i;let e=t.getContext("2d");return e.fillStyle="#ffffff",e.beginPath(),e.arc(i/2,i/2,i/2,0,Math.PI*2),e.fill(),new F({source:new Tt({resource:t,width:i,height:i,resolution:1})})}var D1=class{constructor(t,{fontReady:e=null}={}){this.canvas=t,this.app=null,this.nodes=new Map,this.circleTextures=new Map,this.imageTextures=new Map,this.disposed=!1,this.unsubscribeImages=s1(r=>this.invalidateImage(r)),this.canvasWidth=0,this.canvasHeight=0,this.scratch=new k,this.ready=this.initialize(e)}async initialize(t){this.fontFamily=await t;let e=new bl;await e.init({canvas:this.canvas,width:1,height:1,autoStart:!1,autoDensity:!1,resolution:Math.min(2,window.devicePixelRatio||1),antialias:!0,backgroundAlpha:0,preference:"webgl",powerPreference:"high-performance"}),e.ticker.stop(),e.stage.eventMode="none",e.stage.sortableChildren=!0,this.app=e}resize(t,e){let r=Math.max(1,Math.round(le(t,1))),s=Math.max(1,Math.round(le(e,1)));r===this.canvasWidth&&s===this.canvasHeight||(this.canvasWidth=r,this.canvasHeight=s,this.app.renderer.resize(r,s))}createNode(t,{group:e=!1}={}){let r=new mt({isRenderGroup:!!e});return r.label=`runtime:${t.id}`,r.eventMode="none",r.sortableChildren=!0,r.__runtimeId=t.id,r.__group=!!e,this.nodes.set(t.id,r),this.app.stage.addChild(r),r}clearVisual(t){if(!t.__visual)return;let e=t.__visual.__text,r=this.app?.renderer,s=r?.renderPipes?.text?._managedTexts?.items,n=e?._gpuData?.[r?.uid]?.currentKey,o=e?.uid;t.__visual.parent?.removeChild(t.__visual);let a=t.__visual.__sliceGeometry,l=t.__visual.__richText?.texture;t.__visual.destroy({children:!0,context:!0,style:!0}),l?.destroy(!0),s&&o!==void 0&&s[o]===null&&delete s[o],n&&this.retireTextKey(n),a?.destroy(!0),t.__visual=null,t.__visualKey=""}retireTextKey(t){t&&(this.retiredTextKeys||=new Set,this.retiredTextKeys.add(t))}pruneTextKeys(){let t=this.app?.renderer?.canvasText?._activeTextures;for(let e of this.retiredTextKeys||[])t?.[e]===null&&delete t[e],t?.[e]||this.retiredTextKeys.delete(e)}updateTextVisual(t,e,r,s){let n=t.__visual;if(e.kind!=="textbox"&&e.kind!=="textwindow")return!1;if(n?.__richText){if(!e.textLayout?.richLines||n.__textChromeKey!==Vd(e,r,s))return!1;let c=n.__richText;return Wd(c.texture.source.resource,e,r,s,this.fontFamily,this.app?.renderer?.resolution||1),c.texture.source.update(),!0}if(e.textLayout?.richLines||!n?.__text||n.__textChromeKey!==Vd(e,r,s))return!1;let o=n.__text,a=U1(e,r,s,this.fontFamily),l=JSON.stringify(a.style);if(o.text!==a.text||n.__textStyleKey!==l){if(this.retireTextKey(o._gpuData?.[this.app?.renderer?.uid]?.currentKey),n.__textStyleKey!==l){let c=o.style;o.style=new Xe(a.style),c.destroy(),n.__textStyleKey=l}o.text=a.text}return o.anchor.set(a.anchorX,a.anchorY),o.position.set(a.x,a.y),!0}circleTexture(t){let e=this.app?.renderer.resolution||2,r=Math.min(4096,Math.max(256,2**Math.ceil(Math.log2(Math.max(1,t*e)))));this.circleTextures||=new Map;let s=this.circleTextures.get(r);return s||(s=JC(r),this.circleTextures.set(r,s)),s}imageTexture(t,e){this.imageTextures||=new Map;let r=Ye(t,e);if(this.imageTextures.has(r))return this.imageTextures.get(r);let s={texture:null,error:""};return this.imageTextures.set(r,s),s.promise=n1(t,e).then(({image:n,meta:o,error:a})=>{if(!(this.disposed||this.imageTextures.get(r)!==s)){s.texture=new F({source:new Re({resource:n})}),s.meta=o,s.error=a;for(let l of this.nodes.values()){let c=l.__sceneItem;c?.kind!=="image"||Ye(c.imageId,c.imageSource)!==r||(l.__visualKey="",this.updateNode(l,c,{nested:!l.__flat&&c.parent!=null}))}this.app?.render()}}).catch(n=>{s.error=n.message}),s}invalidateImage(t){let e=this.imageTextures.get(t);this.imageTextures.delete(t);for(let r of this.nodes.values()){let s=r.__sceneItem;s?.kind!=="image"||Ye(s.imageId,s.imageSource)!==t||(r.__visualKey="",this.updateNode(r,s,{nested:!r.__flat&&s.parent!=null}))}e?.texture?.destroy(!0),this.app?.render()}pruneImageTextures(){if(!this.imageTextures?.size)return;let t=new Set([...this.nodes.values()].filter(e=>e.__sceneItem?.primitive==="sprite").map(e=>Ye(e.__sceneItem.imageId,e.__sceneItem.imageSource)));for(let[e,r]of this.imageTextures||[])t.has(e)||(this.imageTextures.delete(e),r.texture?.destroy(!0))}replaceVisual(t,e,r,s){if(this.clearVisual(t),!qC.has(e.kind))return;let n=new mt;if(n.eventMode="none",n.label=`visual:${e.id}`,n.zIndex=e.kind==="grid"?Number.MAX_SAFE_INTEGER:-Number.MAX_SAFE_INTEGER,e.kind==="textbox"||e.kind==="textwindow"){let l=new oe,c=as(e.bgColor,16777215);if(l.rect(-r/2,-s/2,r,s).fill(c),n.addChild(l),e.textLayout?.richLines){let h=W.get().createCanvas(1,1);Wd(h,e,r,s,this.fontFamily,this.app?.renderer?.resolution||1);let u=new he({texture:new F({source:new Tt({resource:h})}),anchor:.5});u.width=r,u.height=s,n.__richText=u,n.addChild(u)}else{let h=U1(e,r,s,this.fontFamily),u=new fo({text:h.text,style:new Xe(h.style)});u.anchor.set(h.anchorX,h.anchorY),u.position.set(h.x,h.y),n.__text=u,n.__textStyleKey=JSON.stringify(h.style);let d=new oe().rect(-r/2,-s/2,r,s).fill({color:16777215,alpha:1});u.mask=d,n.addChild(d,u)}n.__textChromeKey=Vd(e,r,s)}else if(e.kind==="button"){let l=new oe;l.roundRect(-r/2,-s/2,r,s,6).fill({color:3303631,alpha:1}),l.roundRect(-r/2,-s/2,r,s,6).stroke({color:7381247,alpha:.8,width:1}),e.pressed&&l.roundRect(-r/2,-s/2,r,s,6).fill({color:0,alpha:.28}),n.addChild(l)}else if(e.kind==="image"&&e.primitive==="sprite"&&this.imageTexture(e.imageId,e.imageSource).texture){let l=this.imageTextures.get(Ye(e.imageId,e.imageSource)),c;if(r>0&&s>0&&a1(l.meta,e.imageType)==="Stretch"){let d=[],f=[],m=[];for(let{source:[_,x,b,v],target:[S,T,w,E]}of l1(l.meta,r,s)){let B=d.length/2,R=S-r/2,M=T-s/2;d.push(R,M,R+w,M,R+w,M+E,R,M+E);let C=_/l.meta.width,A=(_+b)/l.meta.width,D=x/l.meta.height,H=(x+v)/l.meta.height;f.push(C,D,A,D,A,H,C,H),m.push(B,B+1,B+2,B,B+2,B+3)}let g=new so({positions:new Float32Array(d),uvs:new Float32Array(f),indices:new Uint32Array(m)});n.__sliceGeometry=g,c=new oo({geometry:g,texture:l.texture})}else c=new he({texture:l.texture,anchor:.5}),c.width=r,c.height=s;let h=as(e.imageColor,4294967295);c.tint=h.color,c.alpha=h.alpha;let u=Md(e,r,s);if(c.visible=r>0&&s>0&&(!u||u.width>0&&u.height>0),u&&c.visible){let d=new oe().rect(u.x,u.y,u.width,u.height).fill(16777215);c.mask=d,n.addChild(d)}n.addChild(c)}else if(L1(e)){let l=new he({texture:this.circleTexture(Math.max(r,s)),anchor:.5});n.__circle=l,n.addChild(l)}else if(e.kind!=="grid"){let l=new oe,c=as(e.imageColor,4294967295);e.primitive==="missing"||e.primitive==="sprite"?(l.rect(-r/2,-s/2,r,s).fill({color:4727336,alpha:.36}),l.rect(-r/2+.5,-s/2+.5,Math.max(0,r-1),Math.max(0,s-1)).stroke({color:16741505,alpha:1,width:1})):e.primitive==="circle"?l.ellipse(0,0,r/2,s/2).fill(c):e.primitive==="ring"?l.ellipse(0,0,Math.max(1,r/2-3.5),Math.max(1,s/2-3.5)).stroke({...c,width:7}):e.primitive==="triangle"||e.primitive==="fourstar"||e.primitive==="fivestar"?l.poly(ZC(e,r,s)).fill(c):l.rect(-r/2,-s/2,r,s).fill(c);let h=Md(e,r,s);if(h&&(l.visible=h.width>0&&h.height>0,l.visible)){let u=new oe().rect(h.x,h.y,h.width,h.height).fill({color:16777215,alpha:1});l.mask=u,n.addChild(u)}n.addChild(l)}let o=Bd(e.scroll,r,s);if(o){let l=new oe;l.label="scrollbar";for(let[c,h]of[[o.track,2503751],[o.thumb,9481931]])l.rect(c.x,c.y,c.width,c.height).fill({color:h,alpha:1});n.addChild(l)}n.scale.set(e.pressed?.98:1),(t.__imageContent||t).addChildAt(n,0),t.__visual=n}applyMatrix(t,e,r){let s=F1(e);if(!s){let u=Math.max(0,le(e.sourceWidth,le(e.width))),d=Math.max(0,le(e.sourceHeight,le(e.height)));t.x=le(e.left)+u/2,t.y=this.canvasHeight-le(e.bottom)-d/2,t.rotation=-le(e.rotationZ)*Math.PI/180,t.scale.set(1);return}let[n,o,a,l,c,h]=s;this.scratch.set(n,-o,-a,l,c,r?-h:this.canvasHeight-h),t.setFromMatrix(this.scratch)}updateNode(t,e,{nested:r=!1}={}){let s=Math.max(0,le(e.sourceWidth,le(e.width))),n=Math.max(0,le(e.sourceHeight,le(e.height))),o=QC(e,s,n);t.__visualKey!==o&&(this.updateTextVisual(t,e,s,n)||this.replaceVisual(t,e,s,n),t.__visualKey=o),t.__visual&&t.__visual.scale.set(e.pressed?.98:1);let a=t.__visual?.__circle;if(a){let l=Math.max(s,n),c=as(e.imageColor,4294967295);a.texture=this.circleTexture(l),a.width=s,a.height=n,a.tint=c.color,a.alpha=c.alpha,a.visible=s>0&&n>0}this.applyMatrix(t,e,r),this.updateImageMask(t,e,s,n)}updateImageMask(t,e,r,s){let n=e.kind==="image"?Kv({...e,sourceWidth:r,sourceHeight:s},{a:1,b:0,c:0,d:1,tx:0,ty:0}):null,o=n?[n.width,n.height,n.featherX,n.featherY].join(":"):"";if(t.__maskKey===o)return;if(t.__maskKey=o,!t.__imageContent&&n){let f=new mt;f.sortableChildren=!0,f.eventMode="none";for(let m of[...t.children])m!==t.__viewportClip&&f.addChild(m);t.addChildAt(f,0),t.__imageContent=f}let a=t.__imageContent;if(!a)return;a.visible=!n||r>0&&s>0;let l=n&&(n.featherX>0||n.featherY>0),c=Math.min(2048,Math.max(1,Math.ceil(r))),h=Math.min(2048,Math.max(1,Math.ceil(s))),u=t.__imageMask;if(l&&a.visible&&u instanceof he&&u.texture.source.resource.width===c&&u.texture.source.resource.height===h){kd(u.texture.source.resource,n),u.texture.source.update(),u.width=r,u.height=s;return}if(a.mask=null,u?.destroy({context:!0,texture:!0,textureSource:!0}),t.__imageMask=null,!n||!a.visible)return;let d;if(l){let f=W.get().createCanvas(c,h);kd(f,n),d=new he({texture:new F({source:new Tt({resource:f})}),anchor:.5}),d.width=r,d.height=s}else d=new oe().rect(-r/2,-s/2,r,s).fill(16777215);d.eventMode="none",a.addChild(d),a.setMask({mask:d,channel:"alpha"}),t.__imageMask=d}attachNode(t,e){let r=e.parent,s=r==null?this.app.stage:this.nodes.get(r),n=s?.__imageContent||s||this.app.stage;t.parent!==n&&n.addChild(t),n.sortableChildren=!0,t.zIndex=-le(e.z)}upsertSceneNode(t){if(!t||t.id===void 0||t.id===null)return;let e=t.group===!0,r=this.nodes.get(t.id);r?r.__group!==e&&(e?r.enableRenderGroup?.():r.disableRenderGroup?.(),r.__group=e):r=this.createNode(t,{group:e}),this.updateNode(r,t,{nested:t.parent!=null}),this.attachNode(r,t),r.__sceneItem=t,r.__flat=!1}updateViewportClip(t){let e=t.__sceneItem,r=this.nodes.get(e?.parent)?.__sceneItem,s=e?.clipPolygons||[];if(!t.__flat&&e?.clipToParent&&r){let h=r.sourceWidth/2,u=r.sourceHeight/2;s=[[[-h,-u],[h,-u],[h,u],[-h,u]].map(([d,f])=>({x:d,y:f}))]}let n=JSON.stringify([s,e?.matrix]);if(t.__clipKey===n||(t.__clipKey=n,t.mask=null,t.__viewportClip?.destroy({context:!0}),t.__viewportClip=null,t.visible=!0,!s.length))return;let o=F1(e);if(!o||Math.abs(o[0]*o[3]-o[1]*o[2])<1e-8){t.visible=!1;return}let a=new k(...o).invert(),l=t1(s).flatMap(h=>{let u=a.apply(h);return[u.x,-u.y]});if(l.length<6||!l.every(Number.isFinite)){t.visible=!1;return}let c=new oe().poly(l).fill({color:16777215,alpha:1});t.addChild(c),t.mask=c,t.__viewportClip=c}removeNode(t){let e=this.nodes.get(t);if(e){for(let r of[...e.children,...e.__imageContent?.children||[]])r.__runtimeId!=null&&r.parent?.removeChild(r);e.parent?.removeChild(e),this.clearVisual(e),e.mask=null,e.__imageContent&&(e.__imageContent.mask=null),e.__imageMask?.destroy({context:!0,texture:!0,textureSource:!0}),e.__imageMask=null,e.__viewportClip?.destroy({context:!0}),e.__imageContent?.destroy({children:!1}),e.destroy({children:!1}),this.nodes.delete(t)}}clearNodes(){for(let t of[...this.nodes.keys()])this.removeNode(t);this.pruneTextKeys()}async applyScene(t,e,r){if(await this.ready,this.resize(e,r),!t||t.format!=="tree-v1"){this.app.render();return}t.reset&&this.clearNodes();for(let n of t.removed||[])this.removeNode(n);let s=t.reset?t.nodes:t.changed;for(let n=0;n<(s||[]).length;n+=1){let o=s[n];!o||o.id===void 0||o.id===null||this.nodes.has(o.id)||this.createNode(o,{group:o.group===!0})}for(let n=0;n<(s||[]).length;n+=1)this.upsertSceneNode(s[n]);for(let n of this.nodes.values())(n.__sceneItem?.clipToParent||n.__sceneItem?.clipPolygons?.length||n.__clipKey!==void 0)&&this.updateViewportClip(n);this.pruneImageTextures(),this.app.render(),this.pruneTextKeys()}async render(t,e,r){if(t?.some(o=>o?.masks?.length))return this.__maskedPaint=!0,this.applyScene(Qv(t),e,r);await this.ready,this.__maskedPaint&&(this.clearNodes(),this.__maskedPaint=!1),this.resize(e,r);let s=new Set,n=Array.isArray(t)?t:[];for(let o=0;o<n.length;o+=1){let a=n[o];if(!a||a.id===void 0||a.id===null)continue;s.add(a.id);let l=this.nodes.get(a.id)||this.createNode(a);this.updateNode(l,a),l.__sceneItem=a,l.__flat=!0,this.updateViewportClip(l),l.zIndex=o,l.parent!==this.app.stage&&this.app.stage.addChild(l)}for(let[o]of this.nodes)s.has(o)||this.removeNode(o);this.pruneImageTextures(),this.app.render(),this.pruneTextKeys()}destroy(){this.disposed=!0,this.unsubscribeImages?.(),this.clearNodes();for(let t of this.imageTextures?.values()||[])t.texture?.destroy(!0);this.imageTextures?.clear();for(let t of this.circleTextures.values())t.destroy(!0);this.circleTextures.clear(),this.app?.destroy({removeView:!1},{children:!0,texture:!0,textureSource:!0}),this.app=null}};export{I1 as PLAY_MOVE_THROTTLE_MS,B1 as PLAY_POLL_INTERVAL_MS,D1 as PixiPlayRenderer,JC as createCircleTexture,jC as createPlaySession,kC as getLanguagePreference,Hd as getLocale,zd as getSystemLanguage,Ll as keyEventName,MC as loadBrowserFont,BC as loadSystemLanguage,DC as localizePage,IC as setLanguagePreference,G1 as stagePoint,GC as subscribeLocale,Ld as t};
928
928
  /*! Bundled license information:
929
929
 
930
930
  tiny-lru/dist/tiny-lru.js: