handler-playable-sdk 0.3.31 → 0.3.32

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,5 +1,5 @@
1
- import{c as Ka,d as He,e as Xa}from"./chunk-I5OOVR5U.js";import{i as lr}from"./chunk-LV4HGC5G.js";import{c as tn,d as or,g as lc,h as Za,j as Ja,l as cc,m as dc,n as Qa,o as uc}from"./chunk-ZLL42OOV.js";import{a as Ne,b as P,c as gg}from"./chunk-Q7FPWOA3.js";var rn=P((mw,os)=>{"use strict";typeof process=="undefined"||!process.version||process.version.indexOf("v0.")===0||process.version.indexOf("v1.")===0&&process.version.indexOf("v1.8.")!==0?os.exports={nextTick:_g}:os.exports=process;function _g(e,t,i,n){if(typeof e!="function")throw new TypeError('"callback" argument must be a function');var r=arguments.length,a,s;switch(r){case 0:case 1:return process.nextTick(e);case 2:return process.nextTick(function(){e.call(null,t)});case 3:return process.nextTick(function(){e.call(null,t,i)});case 4:return process.nextTick(function(){e.call(null,t,i,n)});default:for(a=new Array(r-1),s=0;s<a.length;)a[s++]=arguments[s];return process.nextTick(function(){e.apply(null,a)})}}});var Wc=P((bw,Gc)=>{"use strict";var Eg={}.toString;Gc.exports=Array.isArray||function(e){return Eg.call(e)=="[object Array]"}});var ls=P((vw,Yc)=>{"use strict";Yc.exports=Ne("stream")});var an=P((cs,Kc)=>{"use strict";var Cr=Ne("buffer"),tt=Cr.Buffer;function Vc(e,t){for(var i in e)t[i]=e[i]}tt.from&&tt.alloc&&tt.allocUnsafe&&tt.allocUnsafeSlow?Kc.exports=Cr:(Vc(Cr,cs),cs.Buffer=pi);function pi(e,t,i){return tt(e,t,i)}Vc(tt,pi);pi.from=function(e,t,i){if(typeof e=="number")throw new TypeError("Argument must not be a number");return tt(e,t,i)};pi.alloc=function(e,t,i){if(typeof e!="number")throw new TypeError("Argument must be a number");var n=tt(e);return t!==void 0?typeof i=="string"?n.fill(t,i):n.fill(t):n.fill(0),n};pi.allocUnsafe=function(e){if(typeof e!="number")throw new TypeError("Argument must be a number");return tt(e)};pi.allocUnsafeSlow=function(e){if(typeof e!="number")throw new TypeError("Argument must be a number");return Cr.SlowBuffer(e)}});var fi=P(le=>{"use strict";function Sg(e){return Array.isArray?Array.isArray(e):Tr(e)==="[object Array]"}le.isArray=Sg;function Ag(e){return typeof e=="boolean"}le.isBoolean=Ag;function Cg(e){return e===null}le.isNull=Cg;function Tg(e){return e==null}le.isNullOrUndefined=Tg;function kg(e){return typeof e=="number"}le.isNumber=kg;function Lg(e){return typeof e=="string"}le.isString=Lg;function Rg(e){return typeof e=="symbol"}le.isSymbol=Rg;function Mg(e){return e===void 0}le.isUndefined=Mg;function Pg(e){return Tr(e)==="[object RegExp]"}le.isRegExp=Pg;function Ig(e){return typeof e=="object"&&e!==null}le.isObject=Ig;function Og(e){return Tr(e)==="[object Date]"}le.isDate=Og;function Dg(e){return Tr(e)==="[object Error]"||e instanceof Error}le.isError=Dg;function jg(e){return typeof e=="function"}le.isFunction=jg;function zg(e){return e===null||typeof e=="boolean"||typeof e=="number"||typeof e=="string"||typeof e=="symbol"||typeof e=="undefined"}le.isPrimitive=zg;le.isBuffer=Ne("buffer").Buffer.isBuffer;function Tr(e){return Object.prototype.toString.call(e)}});var Xc=P((xw,ds)=>{"use strict";typeof Object.create=="function"?ds.exports=function(t,i){i&&(t.super_=i,t.prototype=Object.create(i.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}))}:ds.exports=function(t,i){if(i){t.super_=i;var n=function(){};n.prototype=i.prototype,t.prototype=new n,t.prototype.constructor=t}}});var hi=P((ww,ps)=>{"use strict";try{if(us=Ne("util"),typeof us.inherits!="function")throw"";ps.exports=us.inherits}catch{ps.exports=Xc()}var us});var Jc=P((_w,fs)=>{"use strict";function Bg(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var Zc=an().Buffer,sn=Ne("util");function Fg(e,t,i){e.copy(t,i)}fs.exports=(function(){function e(){Bg(this,e),this.head=null,this.tail=null,this.length=0}return e.prototype.push=function(i){var n={data:i,next:null};this.length>0?this.tail.next=n:this.head=n,this.tail=n,++this.length},e.prototype.unshift=function(i){var n={data:i,next:this.head};this.length===0&&(this.tail=n),this.head=n,++this.length},e.prototype.shift=function(){if(this.length!==0){var i=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,i}},e.prototype.clear=function(){this.head=this.tail=null,this.length=0},e.prototype.join=function(i){if(this.length===0)return"";for(var n=this.head,r=""+n.data;n=n.next;)r+=i+n.data;return r},e.prototype.concat=function(i){if(this.length===0)return Zc.alloc(0);for(var n=Zc.allocUnsafe(i>>>0),r=this.head,a=0;r;)Fg(r.data,n,a),a+=r.data.length,r=r.next;return n},e})();sn&&sn.inspect&&sn.inspect.custom&&(fs.exports.prototype[sn.inspect.custom]=function(){var e=sn.inspect({length:this.length});return this.constructor.name+" "+e})});var hs=P((Ew,Qc)=>{"use strict";var kr=rn();function Ng(e,t){var i=this,n=this._readableState&&this._readableState.destroyed,r=this._writableState&&this._writableState.destroyed;return n||r?(t?t(e):e&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,kr.nextTick(Lr,this,e)):kr.nextTick(Lr,this,e)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,function(a){!t&&a?i._writableState?i._writableState.errorEmitted||(i._writableState.errorEmitted=!0,kr.nextTick(Lr,i,a)):kr.nextTick(Lr,i,a):t&&t(a)}),this)}function Hg(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function Lr(e,t){e.emit("error",t)}Qc.exports={destroy:Ng,undestroy:Hg}});var td=P((Sw,ed)=>{"use strict";ed.exports=Ne("util").deprecate});var ms=P((Aw,cd)=>{"use strict";var Ft=rn();cd.exports=Q;function nd(e){var t=this;this.next=null,this.entry=null,this.finish=function(){am(t,e)}}var Ug=!process.browser&&["v0.10","v0.9."].indexOf(process.version.slice(0,5))>-1?setImmediate:Ft.nextTick,gi;Q.WritableState=ln;var rd=Object.create(fi());rd.inherits=hi();var $g={deprecate:td()},ad=ls(),Mr=an().Buffer,qg=(typeof global!="undefined"?global:typeof window!="undefined"?window:typeof self!="undefined"?self:{}).Uint8Array||function(){};function Gg(e){return Mr.from(e)}function Wg(e){return Mr.isBuffer(e)||e instanceof qg}var sd=hs();rd.inherits(Q,ad);function Yg(){}function ln(e,t){gi=gi||Nt(),e=e||{};var i=t instanceof gi;this.objectMode=!!e.objectMode,i&&(this.objectMode=this.objectMode||!!e.writableObjectMode);var n=e.highWaterMark,r=e.writableHighWaterMark,a=this.objectMode?16:16*1024;n||n===0?this.highWaterMark=n:i&&(r||r===0)?this.highWaterMark=r:this.highWaterMark=a,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var s=e.decodeStrings===!1;this.decodeStrings=!s,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(o){em(t,o)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new nd(this)}ln.prototype.getBuffer=function(){for(var t=this.bufferedRequest,i=[];t;)i.push(t),t=t.next;return i};(function(){try{Object.defineProperty(ln.prototype,"buffer",{get:$g.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}})();var Rr;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(Rr=Function.prototype[Symbol.hasInstance],Object.defineProperty(Q,Symbol.hasInstance,{value:function(e){return Rr.call(this,e)?!0:this!==Q?!1:e&&e._writableState instanceof ln}})):Rr=function(e){return e instanceof this};function Q(e){if(gi=gi||Nt(),!Rr.call(Q,this)&&!(this instanceof gi))return new Q(e);this._writableState=new ln(e,this),this.writable=!0,e&&(typeof e.write=="function"&&(this._write=e.write),typeof e.writev=="function"&&(this._writev=e.writev),typeof e.destroy=="function"&&(this._destroy=e.destroy),typeof e.final=="function"&&(this._final=e.final)),ad.call(this)}Q.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))};function Vg(e,t){var i=new Error("write after end");e.emit("error",i),Ft.nextTick(t,i)}function Kg(e,t,i,n){var r=!0,a=!1;return i===null?a=new TypeError("May not write null values to stream"):typeof i!="string"&&i!==void 0&&!t.objectMode&&(a=new TypeError("Invalid non-string/buffer chunk")),a&&(e.emit("error",a),Ft.nextTick(n,a),r=!1),r}Q.prototype.write=function(e,t,i){var n=this._writableState,r=!1,a=!n.objectMode&&Wg(e);return a&&!Mr.isBuffer(e)&&(e=Gg(e)),typeof t=="function"&&(i=t,t=null),a?t="buffer":t||(t=n.defaultEncoding),typeof i!="function"&&(i=Yg),n.ended?Vg(this,i):(a||Kg(this,n,e,i))&&(n.pendingcb++,r=Zg(this,n,a,e,t,i)),r};Q.prototype.cork=function(){var e=this._writableState;e.corked++};Q.prototype.uncork=function(){var e=this._writableState;e.corked&&(e.corked--,!e.writing&&!e.corked&&!e.bufferProcessing&&e.bufferedRequest&&od(this,e))};Q.prototype.setDefaultEncoding=function(t){if(typeof t=="string"&&(t=t.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((t+"").toLowerCase())>-1))throw new TypeError("Unknown encoding: "+t);return this._writableState.defaultEncoding=t,this};function Xg(e,t,i){return!e.objectMode&&e.decodeStrings!==!1&&typeof t=="string"&&(t=Mr.from(t,i)),t}Object.defineProperty(Q.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function Zg(e,t,i,n,r,a){if(!i){var s=Xg(t,n,r);n!==s&&(i=!0,r="buffer",n=s)}var o=t.objectMode?1:n.length;t.length+=o;var c=t.length<t.highWaterMark;if(c||(t.needDrain=!0),t.writing||t.corked){var l=t.lastBufferedRequest;t.lastBufferedRequest={chunk:n,encoding:r,isBuf:i,callback:a,next:null},l?l.next=t.lastBufferedRequest:t.bufferedRequest=t.lastBufferedRequest,t.bufferedRequestCount+=1}else gs(e,t,!1,o,n,r,a);return c}function gs(e,t,i,n,r,a,s){t.writelen=n,t.writecb=s,t.writing=!0,t.sync=!0,i?e._writev(r,t.onwrite):e._write(r,a,t.onwrite),t.sync=!1}function Jg(e,t,i,n,r){--t.pendingcb,i?(Ft.nextTick(r,n),Ft.nextTick(on,e,t),e._writableState.errorEmitted=!0,e.emit("error",n)):(r(n),e._writableState.errorEmitted=!0,e.emit("error",n),on(e,t))}function Qg(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}function em(e,t){var i=e._writableState,n=i.sync,r=i.writecb;if(Qg(i),t)Jg(e,i,n,t,r);else{var a=ld(i);!a&&!i.corked&&!i.bufferProcessing&&i.bufferedRequest&&od(e,i),n?Ug(id,e,i,a,r):id(e,i,a,r)}}function id(e,t,i,n){i||tm(e,t),t.pendingcb--,n(),on(e,t)}function tm(e,t){t.length===0&&t.needDrain&&(t.needDrain=!1,e.emit("drain"))}function od(e,t){t.bufferProcessing=!0;var i=t.bufferedRequest;if(e._writev&&i&&i.next){var n=t.bufferedRequestCount,r=new Array(n),a=t.corkedRequestsFree;a.entry=i;for(var s=0,o=!0;i;)r[s]=i,i.isBuf||(o=!1),i=i.next,s+=1;r.allBuffers=o,gs(e,t,!0,t.length,r,"",a.finish),t.pendingcb++,t.lastBufferedRequest=null,a.next?(t.corkedRequestsFree=a.next,a.next=null):t.corkedRequestsFree=new nd(t),t.bufferedRequestCount=0}else{for(;i;){var c=i.chunk,l=i.encoding,d=i.callback,u=t.objectMode?1:c.length;if(gs(e,t,!1,u,c,l,d),i=i.next,t.bufferedRequestCount--,t.writing)break}i===null&&(t.lastBufferedRequest=null)}t.bufferedRequest=i,t.bufferProcessing=!1}Q.prototype._write=function(e,t,i){i(new Error("_write() is not implemented"))};Q.prototype._writev=null;Q.prototype.end=function(e,t,i){var n=this._writableState;typeof e=="function"?(i=e,e=null,t=null):typeof t=="function"&&(i=t,t=null),e!=null&&this.write(e,t),n.corked&&(n.corked=1,this.uncork()),n.ending||rm(this,n,i)};function ld(e){return e.ending&&e.length===0&&e.bufferedRequest===null&&!e.finished&&!e.writing}function im(e,t){e._final(function(i){t.pendingcb--,i&&e.emit("error",i),t.prefinished=!0,e.emit("prefinish"),on(e,t)})}function nm(e,t){!t.prefinished&&!t.finalCalled&&(typeof e._final=="function"?(t.pendingcb++,t.finalCalled=!0,Ft.nextTick(im,e,t)):(t.prefinished=!0,e.emit("prefinish")))}function on(e,t){var i=ld(t);return i&&(nm(e,t),t.pendingcb===0&&(t.finished=!0,e.emit("finish"))),i}function rm(e,t,i){t.ending=!0,on(e,t),i&&(t.finished?Ft.nextTick(i):e.once("finish",i)),t.ended=!0,e.writable=!1}function am(e,t,i){var n=e.entry;for(e.entry=null;n;){var r=n.callback;t.pendingcb--,r(i),n=n.next}t.corkedRequestsFree.next=e}Object.defineProperty(Q.prototype,"destroyed",{get:function(){return this._writableState===void 0?!1:this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}});Q.prototype.destroy=sd.destroy;Q.prototype._undestroy=sd.undestroy;Q.prototype._destroy=function(e,t){this.end(),t(e)}});var Nt=P((Cw,fd)=>{"use strict";var dd=rn(),sm=Object.keys||function(e){var t=[];for(var i in e)t.push(i);return t};fd.exports=it;var ud=Object.create(fi());ud.inherits=hi();var pd=ys(),vs=ms();ud.inherits(it,pd);for(bs=sm(vs.prototype),Pr=0;Pr<bs.length;Pr++)Ir=bs[Pr],it.prototype[Ir]||(it.prototype[Ir]=vs.prototype[Ir]);var bs,Ir,Pr;function it(e){if(!(this instanceof it))return new it(e);pd.call(this,e),vs.call(this,e),e&&e.readable===!1&&(this.readable=!1),e&&e.writable===!1&&(this.writable=!1),this.allowHalfOpen=!0,e&&e.allowHalfOpen===!1&&(this.allowHalfOpen=!1),this.once("end",om)}Object.defineProperty(it.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function om(){this.allowHalfOpen||this._writableState.ended||dd.nextTick(lm,this)}function lm(e){e.end()}Object.defineProperty(it.prototype,"destroyed",{get:function(){return this._readableState===void 0||this._writableState===void 0?!1:this._readableState.destroyed&&this._writableState.destroyed},set:function(e){this._readableState===void 0||this._writableState===void 0||(this._readableState.destroyed=e,this._writableState.destroyed=e)}});it.prototype._destroy=function(e,t){this.push(null),this.end(),dd.nextTick(t,e)}});var _s=P(gd=>{"use strict";var ws=an().Buffer,hd=ws.isEncoding||function(e){switch(e=""+e,e&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function cm(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}function dm(e){var t=cm(e);if(typeof t!="string"&&(ws.isEncoding===hd||!hd(e)))throw new Error("Unknown encoding: "+e);return t||e}gd.StringDecoder=cn;function cn(e){this.encoding=dm(e);var t;switch(this.encoding){case"utf16le":this.text=mm,this.end=bm,t=4;break;case"utf8":this.fillLast=fm,t=4;break;case"base64":this.text=vm,this.end=ym,t=3;break;default:this.write=xm,this.end=wm;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=ws.allocUnsafe(t)}cn.prototype.write=function(e){if(e.length===0)return"";var t,i;if(this.lastNeed){if(t=this.fillLast(e),t===void 0)return"";i=this.lastNeed,this.lastNeed=0}else i=0;return i<e.length?t?t+this.text(e,i):this.text(e,i):t||""};cn.prototype.end=gm;cn.prototype.text=hm;cn.prototype.fillLast=function(e){if(this.lastNeed<=e.length)return e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length),this.lastNeed-=e.length};function xs(e){return e<=127?0:e>>5===6?2:e>>4===14?3:e>>3===30?4:e>>6===2?-1:-2}function um(e,t,i){var n=t.length-1;if(n<i)return 0;var r=xs(t[n]);return r>=0?(r>0&&(e.lastNeed=r-1),r):--n<i||r===-2?0:(r=xs(t[n]),r>=0?(r>0&&(e.lastNeed=r-2),r):--n<i||r===-2?0:(r=xs(t[n]),r>=0?(r>0&&(r===2?r=0:e.lastNeed=r-3),r):0))}function pm(e,t,i){if((t[0]&192)!==128)return e.lastNeed=0,"\uFFFD";if(e.lastNeed>1&&t.length>1){if((t[1]&192)!==128)return e.lastNeed=1,"\uFFFD";if(e.lastNeed>2&&t.length>2&&(t[2]&192)!==128)return e.lastNeed=2,"\uFFFD"}}function fm(e){var t=this.lastTotal-this.lastNeed,i=pm(this,e,t);if(i!==void 0)return i;if(this.lastNeed<=e.length)return e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,t,0,e.length),this.lastNeed-=e.length}function hm(e,t){var i=um(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=i;var n=e.length-(i-this.lastNeed);return e.copy(this.lastChar,0,n),e.toString("utf8",t,n)}function gm(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+"\uFFFD":t}function mm(e,t){if((e.length-t)%2===0){var i=e.toString("utf16le",t);if(i){var n=i.charCodeAt(i.length-1);if(n>=55296&&n<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],i.slice(0,-1)}return i}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function bm(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var i=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,i)}return t}function vm(e,t){var i=(e.length-t)%3;return i===0?e.toString("base64",t):(this.lastNeed=3-i,this.lastTotal=3,i===1?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-i))}function ym(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function xm(e){return e.toString(this.encoding)}function wm(e){return e&&e.length?this.write(e):""}});var ys=P((Lw,Td)=>{"use strict";var bi=rn();Td.exports=G;var _m=Wc(),dn;G.ReadableState=_d;var kw=Ne("events").EventEmitter,yd=function(e,t){return e.listeners(t).length},Ts=ls(),un=an().Buffer,Em=(typeof global!="undefined"?global:typeof window!="undefined"?window:typeof self!="undefined"?self:{}).Uint8Array||function(){};function Sm(e){return un.from(e)}function Am(e){return un.isBuffer(e)||e instanceof Em}var xd=Object.create(fi());xd.inherits=hi();var Es=Ne("util"),H=void 0;Es&&Es.debuglog?H=Es.debuglog("stream"):H=function(){};var Cm=Jc(),wd=hs(),mi;xd.inherits(G,Ts);var Ss=["error","close","destroy","pause","resume"];function Tm(e,t,i){if(typeof e.prependListener=="function")return e.prependListener(t,i);!e._events||!e._events[t]?e.on(t,i):_m(e._events[t])?e._events[t].unshift(i):e._events[t]=[i,e._events[t]]}function _d(e,t){dn=dn||Nt(),e=e||{};var i=t instanceof dn;this.objectMode=!!e.objectMode,i&&(this.objectMode=this.objectMode||!!e.readableObjectMode);var n=e.highWaterMark,r=e.readableHighWaterMark,a=this.objectMode?16:16*1024;n||n===0?this.highWaterMark=n:i&&(r||r===0)?this.highWaterMark=r:this.highWaterMark=a,this.highWaterMark=Math.floor(this.highWaterMark),this.buffer=new Cm,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.destroyed=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(mi||(mi=_s().StringDecoder),this.decoder=new mi(e.encoding),this.encoding=e.encoding)}function G(e){if(dn=dn||Nt(),!(this instanceof G))return new G(e);this._readableState=new _d(e,this),this.readable=!0,e&&(typeof e.read=="function"&&(this._read=e.read),typeof e.destroy=="function"&&(this._destroy=e.destroy)),Ts.call(this)}Object.defineProperty(G.prototype,"destroyed",{get:function(){return this._readableState===void 0?!1:this._readableState.destroyed},set:function(e){this._readableState&&(this._readableState.destroyed=e)}});G.prototype.destroy=wd.destroy;G.prototype._undestroy=wd.undestroy;G.prototype._destroy=function(e,t){this.push(null),t(e)};G.prototype.push=function(e,t){var i=this._readableState,n;return i.objectMode?n=!0:typeof e=="string"&&(t=t||i.defaultEncoding,t!==i.encoding&&(e=un.from(e,t),t=""),n=!0),Ed(this,e,t,!1,n)};G.prototype.unshift=function(e){return Ed(this,e,null,!0,!1)};function Ed(e,t,i,n,r){var a=e._readableState;if(t===null)a.reading=!1,Mm(e,a);else{var s;r||(s=km(a,t)),s?e.emit("error",s):a.objectMode||t&&t.length>0?(typeof t!="string"&&!a.objectMode&&Object.getPrototypeOf(t)!==un.prototype&&(t=Sm(t)),n?a.endEmitted?e.emit("error",new Error("stream.unshift() after end event")):As(e,a,t,!0):a.ended?e.emit("error",new Error("stream.push() after EOF")):(a.reading=!1,a.decoder&&!i?(t=a.decoder.write(t),a.objectMode||t.length!==0?As(e,a,t,!1):Sd(e,a)):As(e,a,t,!1))):n||(a.reading=!1)}return Lm(a)}function As(e,t,i,n){t.flowing&&t.length===0&&!t.sync?(e.emit("data",i),e.read(0)):(t.length+=t.objectMode?1:i.length,n?t.buffer.unshift(i):t.buffer.push(i),t.needReadable&&Or(e)),Sd(e,t)}function km(e,t){var i;return!Am(t)&&typeof t!="string"&&t!==void 0&&!e.objectMode&&(i=new TypeError("Invalid non-string/buffer chunk")),i}function Lm(e){return!e.ended&&(e.needReadable||e.length<e.highWaterMark||e.length===0)}G.prototype.isPaused=function(){return this._readableState.flowing===!1};G.prototype.setEncoding=function(e){return mi||(mi=_s().StringDecoder),this._readableState.decoder=new mi(e),this._readableState.encoding=e,this};var md=8388608;function Rm(e){return e>=md?e=md:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}function bd(e,t){return e<=0||t.length===0&&t.ended?0:t.objectMode?1:e!==e?t.flowing&&t.length?t.buffer.head.data.length:t.length:(e>t.highWaterMark&&(t.highWaterMark=Rm(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}G.prototype.read=function(e){H("read",e),e=parseInt(e,10);var t=this._readableState,i=e;if(e!==0&&(t.emittedReadable=!1),e===0&&t.needReadable&&(t.length>=t.highWaterMark||t.ended))return H("read: emitReadable",t.length,t.ended),t.length===0&&t.ended?Cs(this):Or(this),null;if(e=bd(e,t),e===0&&t.ended)return t.length===0&&Cs(this),null;var n=t.needReadable;H("need readable",n),(t.length===0||t.length-e<t.highWaterMark)&&(n=!0,H("length less than watermark",n)),t.ended||t.reading?(n=!1,H("reading or ended",n)):n&&(H("do read"),t.reading=!0,t.sync=!0,t.length===0&&(t.needReadable=!0),this._read(t.highWaterMark),t.sync=!1,t.reading||(e=bd(i,t)));var r;return e>0?r=Ad(e,t):r=null,r===null?(t.needReadable=!0,e=0):t.length-=e,t.length===0&&(t.ended||(t.needReadable=!0),i!==e&&t.ended&&Cs(this)),r!==null&&this.emit("data",r),r};function Mm(e,t){if(!t.ended){if(t.decoder){var i=t.decoder.end();i&&i.length&&(t.buffer.push(i),t.length+=t.objectMode?1:i.length)}t.ended=!0,Or(e)}}function Or(e){var t=e._readableState;t.needReadable=!1,t.emittedReadable||(H("emitReadable",t.flowing),t.emittedReadable=!0,t.sync?bi.nextTick(vd,e):vd(e))}function vd(e){H("emit readable"),e.emit("readable"),ks(e)}function Sd(e,t){t.readingMore||(t.readingMore=!0,bi.nextTick(Pm,e,t))}function Pm(e,t){for(var i=t.length;!t.reading&&!t.flowing&&!t.ended&&t.length<t.highWaterMark&&(H("maybeReadMore read 0"),e.read(0),i!==t.length);)i=t.length;t.readingMore=!1}G.prototype._read=function(e){this.emit("error",new Error("_read() is not implemented"))};G.prototype.pipe=function(e,t){var i=this,n=this._readableState;switch(n.pipesCount){case 0:n.pipes=e;break;case 1:n.pipes=[n.pipes,e];break;default:n.pipes.push(e);break}n.pipesCount+=1,H("pipe count=%d opts=%j",n.pipesCount,t);var r=(!t||t.end!==!1)&&e!==process.stdout&&e!==process.stderr,a=r?o:m;n.endEmitted?bi.nextTick(a):i.once("end",a),e.on("unpipe",s);function s(b,v){H("onunpipe"),b===i&&v&&v.hasUnpiped===!1&&(v.hasUnpiped=!0,d())}function o(){H("onend"),e.end()}var c=Im(i);e.on("drain",c);var l=!1;function d(){H("cleanup"),e.removeListener("close",g),e.removeListener("finish",h),e.removeListener("drain",c),e.removeListener("error",f),e.removeListener("unpipe",s),i.removeListener("end",o),i.removeListener("end",m),i.removeListener("data",p),l=!0,n.awaitDrain&&(!e._writableState||e._writableState.needDrain)&&c()}var u=!1;i.on("data",p);function p(b){H("ondata"),u=!1;var v=e.write(b);v===!1&&!u&&((n.pipesCount===1&&n.pipes===e||n.pipesCount>1&&Cd(n.pipes,e)!==-1)&&!l&&(H("false write response, pause",n.awaitDrain),n.awaitDrain++,u=!0),i.pause())}function f(b){H("onerror",b),m(),e.removeListener("error",f),yd(e,"error")===0&&e.emit("error",b)}Tm(e,"error",f);function g(){e.removeListener("finish",h),m()}e.once("close",g);function h(){H("onfinish"),e.removeListener("close",g),m()}e.once("finish",h);function m(){H("unpipe"),i.unpipe(e)}return e.emit("pipe",i),n.flowing||(H("pipe resume"),i.resume()),e};function Im(e){return function(){var t=e._readableState;H("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,t.awaitDrain===0&&yd(e,"data")&&(t.flowing=!0,ks(e))}}G.prototype.unpipe=function(e){var t=this._readableState,i={hasUnpiped:!1};if(t.pipesCount===0)return this;if(t.pipesCount===1)return e&&e!==t.pipes?this:(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this,i),this);if(!e){var n=t.pipes,r=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var a=0;a<r;a++)n[a].emit("unpipe",this,{hasUnpiped:!1});return this}var s=Cd(t.pipes,e);return s===-1?this:(t.pipes.splice(s,1),t.pipesCount-=1,t.pipesCount===1&&(t.pipes=t.pipes[0]),e.emit("unpipe",this,i),this)};G.prototype.on=function(e,t){var i=Ts.prototype.on.call(this,e,t);if(e==="data")this._readableState.flowing!==!1&&this.resume();else if(e==="readable"){var n=this._readableState;!n.endEmitted&&!n.readableListening&&(n.readableListening=n.needReadable=!0,n.emittedReadable=!1,n.reading?n.length&&Or(this):bi.nextTick(Om,this))}return i};G.prototype.addListener=G.prototype.on;function Om(e){H("readable nexttick read 0"),e.read(0)}G.prototype.resume=function(){var e=this._readableState;return e.flowing||(H("resume"),e.flowing=!0,Dm(this,e)),this};function Dm(e,t){t.resumeScheduled||(t.resumeScheduled=!0,bi.nextTick(jm,e,t))}function jm(e,t){t.reading||(H("resume read 0"),e.read(0)),t.resumeScheduled=!1,t.awaitDrain=0,e.emit("resume"),ks(e),t.flowing&&!t.reading&&e.read(0)}G.prototype.pause=function(){return H("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(H("pause"),this._readableState.flowing=!1,this.emit("pause")),this};function ks(e){var t=e._readableState;for(H("flow",t.flowing);t.flowing&&e.read()!==null;);}G.prototype.wrap=function(e){var t=this,i=this._readableState,n=!1;e.on("end",function(){if(H("wrapped end"),i.decoder&&!i.ended){var s=i.decoder.end();s&&s.length&&t.push(s)}t.push(null)}),e.on("data",function(s){if(H("wrapped data"),i.decoder&&(s=i.decoder.write(s)),!(i.objectMode&&s==null)&&!(!i.objectMode&&(!s||!s.length))){var o=t.push(s);o||(n=!0,e.pause())}});for(var r in e)this[r]===void 0&&typeof e[r]=="function"&&(this[r]=(function(s){return function(){return e[s].apply(e,arguments)}})(r));for(var a=0;a<Ss.length;a++)e.on(Ss[a],this.emit.bind(this,Ss[a]));return this._read=function(s){H("wrapped _read",s),n&&(n=!1,e.resume())},this};Object.defineProperty(G.prototype,"readableHighWaterMark",{enumerable:!1,get:function(){return this._readableState.highWaterMark}});G._fromList=Ad;function Ad(e,t){if(t.length===0)return null;var i;return t.objectMode?i=t.buffer.shift():!e||e>=t.length?(t.decoder?i=t.buffer.join(""):t.buffer.length===1?i=t.buffer.head.data:i=t.buffer.concat(t.length),t.buffer.clear()):i=zm(e,t.buffer,t.decoder),i}function zm(e,t,i){var n;return e<t.head.data.length?(n=t.head.data.slice(0,e),t.head.data=t.head.data.slice(e)):e===t.head.data.length?n=t.shift():n=i?Bm(e,t):Fm(e,t),n}function Bm(e,t){var i=t.head,n=1,r=i.data;for(e-=r.length;i=i.next;){var a=i.data,s=e>a.length?a.length:e;if(s===a.length?r+=a:r+=a.slice(0,e),e-=s,e===0){s===a.length?(++n,i.next?t.head=i.next:t.head=t.tail=null):(t.head=i,i.data=a.slice(s));break}++n}return t.length-=n,r}function Fm(e,t){var i=un.allocUnsafe(e),n=t.head,r=1;for(n.data.copy(i),e-=n.data.length;n=n.next;){var a=n.data,s=e>a.length?a.length:e;if(a.copy(i,i.length-e,0,s),e-=s,e===0){s===a.length?(++r,n.next?t.head=n.next:t.head=t.tail=null):(t.head=n,n.data=a.slice(s));break}++r}return t.length-=r,i}function Cs(e){var t=e._readableState;if(t.length>0)throw new Error('"endReadable()" called on non-empty stream');t.endEmitted||(t.ended=!0,bi.nextTick(Nm,t,e))}function Nm(e,t){!e.endEmitted&&e.length===0&&(e.endEmitted=!0,t.readable=!1,t.emit("end"))}function Cd(e,t){for(var i=0,n=e.length;i<n;i++)if(e[i]===t)return i;return-1}});var Ls=P((Rw,Rd)=>{"use strict";Rd.exports=nt;var Dr=Nt(),Ld=Object.create(fi());Ld.inherits=hi();Ld.inherits(nt,Dr);function Hm(e,t){var i=this._transformState;i.transforming=!1;var n=i.writecb;if(!n)return this.emit("error",new Error("write callback called multiple times"));i.writechunk=null,i.writecb=null,t!=null&&this.push(t),n(e);var r=this._readableState;r.reading=!1,(r.needReadable||r.length<r.highWaterMark)&&this._read(r.highWaterMark)}function nt(e){if(!(this instanceof nt))return new nt(e);Dr.call(this,e),this._transformState={afterTransform:Hm.bind(this),needTransform:!1,transforming:!1,writecb:null,writechunk:null,writeencoding:null},this._readableState.needReadable=!0,this._readableState.sync=!1,e&&(typeof e.transform=="function"&&(this._transform=e.transform),typeof e.flush=="function"&&(this._flush=e.flush)),this.on("prefinish",Um)}function Um(){var e=this;typeof this._flush=="function"?this._flush(function(t,i){kd(e,t,i)}):kd(this,null,null)}nt.prototype.push=function(e,t){return this._transformState.needTransform=!1,Dr.prototype.push.call(this,e,t)};nt.prototype._transform=function(e,t,i){throw new Error("_transform() is not implemented")};nt.prototype._write=function(e,t,i){var n=this._transformState;if(n.writecb=i,n.writechunk=e,n.writeencoding=t,!n.transforming){var r=this._readableState;(n.needTransform||r.needReadable||r.length<r.highWaterMark)&&this._read(r.highWaterMark)}};nt.prototype._read=function(e){var t=this._transformState;t.writechunk!==null&&t.writecb&&!t.transforming?(t.transforming=!0,this._transform(t.writechunk,t.writeencoding,t.afterTransform)):t.needTransform=!0};nt.prototype._destroy=function(e,t){var i=this;Dr.prototype._destroy.call(this,e,function(n){t(n),i.emit("close")})};function kd(e,t,i){if(t)return e.emit("error",t);if(i!=null&&e.push(i),e._writableState.length)throw new Error("Calling transform done when ws.length != 0");if(e._transformState.transforming)throw new Error("Calling transform done when still transforming");return e.push(null)}});var Od=P((Mw,Id)=>{"use strict";Id.exports=pn;var Md=Ls(),Pd=Object.create(fi());Pd.inherits=hi();Pd.inherits(pn,Md);function pn(e){if(!(this instanceof pn))return new pn(e);Md.call(this,e)}pn.prototype._transform=function(e,t,i){i(null,e)}});var Rs=P((re,jr)=>{"use strict";var Ue=Ne("stream");process.env.READABLE_STREAM==="disable"&&Ue?(jr.exports=Ue,re=jr.exports=Ue.Readable,re.Readable=Ue.Readable,re.Writable=Ue.Writable,re.Duplex=Ue.Duplex,re.Transform=Ue.Transform,re.PassThrough=Ue.PassThrough,re.Stream=Ue):(re=jr.exports=ys(),re.Stream=Ue||re,re.Readable=re,re.Writable=ms(),re.Duplex=Nt(),re.Transform=Ls(),re.PassThrough=Od())});var rt=P(ve=>{"use strict";ve.base64=!0;ve.array=!0;ve.string=!0;ve.arraybuffer=typeof ArrayBuffer!="undefined"&&typeof Uint8Array!="undefined";ve.nodebuffer=typeof Buffer!="undefined";ve.uint8array=typeof Uint8Array!="undefined";if(typeof ArrayBuffer=="undefined")ve.blob=!1;else{Ms=new ArrayBuffer(0);try{ve.blob=new Blob([Ms],{type:"application/zip"}).size===0}catch{try{Dd=self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder,Ps=new Dd,Ps.append(Ms),ve.blob=Ps.getBlob("application/zip").size===0}catch{ve.blob=!1}}}var Ms,Dd,Ps;try{ve.nodestream=!!Rs().Readable}catch{ve.nodestream=!1}});var Os=P(Is=>{"use strict";var $m=Y(),qm=rt(),$e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";Is.encode=function(e){for(var t=[],i,n,r,a,s,o,c,l=0,d=e.length,u=d,p=$m.getTypeOf(e)!=="string";l<e.length;)u=d-l,p?(i=e[l++],n=l<d?e[l++]:0,r=l<d?e[l++]:0):(i=e.charCodeAt(l++),n=l<d?e.charCodeAt(l++):0,r=l<d?e.charCodeAt(l++):0),a=i>>2,s=(i&3)<<4|n>>4,o=u>1?(n&15)<<2|r>>6:64,c=u>2?r&63:64,t.push($e.charAt(a)+$e.charAt(s)+$e.charAt(o)+$e.charAt(c));return t.join("")};Is.decode=function(e){var t,i,n,r,a,s,o,c=0,l=0,d="data:";if(e.substr(0,d.length)===d)throw new Error("Invalid base64 input, it looks like a data url.");e=e.replace(/[^A-Za-z0-9+/=]/g,"");var u=e.length*3/4;if(e.charAt(e.length-1)===$e.charAt(64)&&u--,e.charAt(e.length-2)===$e.charAt(64)&&u--,u%1!==0)throw new Error("Invalid base64 input, bad content length.");var p;for(qm.uint8array?p=new Uint8Array(u|0):p=new Array(u|0);c<e.length;)r=$e.indexOf(e.charAt(c++)),a=$e.indexOf(e.charAt(c++)),s=$e.indexOf(e.charAt(c++)),o=$e.indexOf(e.charAt(c++)),t=r<<2|a>>4,i=(a&15)<<4|s>>2,n=(s&3)<<6|o,p[l++]=t,s!==64&&(p[l++]=i),o!==64&&(p[l++]=n);return p}});var fn=P((Ow,jd)=>{"use strict";jd.exports={isNode:typeof Buffer!="undefined",newBufferFrom:function(e,t){if(Buffer.from&&Buffer.from!==Uint8Array.from)return Buffer.from(e,t);if(typeof e=="number")throw new Error('The "data" argument must not be a number');return new Buffer(e,t)},allocBuffer:function(e){if(Buffer.alloc)return Buffer.alloc(e);var t=new Buffer(e);return t.fill(0),t},isBuffer:function(e){return Buffer.isBuffer(e)},isStream:function(e){return e&&typeof e.on=="function"&&typeof e.pause=="function"&&typeof e.resume=="function"}}});var Nd=P((Dw,Fd)=>{"use strict";var zd=global.MutationObserver||global.WebKitMutationObserver,vi;process.browser?zd?(Ds=0,Bd=new zd(hn),js=global.document.createTextNode(""),Bd.observe(js,{characterData:!0}),vi=function(){js.data=Ds=++Ds%2}):!global.setImmediate&&typeof global.MessageChannel!="undefined"?(zs=new global.MessageChannel,zs.port1.onmessage=hn,vi=function(){zs.port2.postMessage(0)}):"document"in global&&"onreadystatechange"in global.document.createElement("script")?vi=function(){var e=global.document.createElement("script");e.onreadystatechange=function(){hn(),e.onreadystatechange=null,e.parentNode.removeChild(e),e=null},global.document.documentElement.appendChild(e)}:vi=function(){setTimeout(hn,0)}:vi=function(){process.nextTick(hn)};var Ds,Bd,js,zs,Bs,gn=[];function hn(){Bs=!0;for(var e,t,i=gn.length;i;){for(t=gn,gn=[],e=-1;++e<i;)t[e]();i=gn.length}Bs=!1}Fd.exports=Gm;function Gm(e){gn.push(e)===1&&!Bs&&vi()}});var Yd=P((jw,Wd)=>{"use strict";var Hd=Nd();function yi(){}var ce={},Ud=["REJECTED"],Fs=["FULFILLED"],$d=["PENDING"];process.browser||(mn=["UNHANDLED"]);var mn;Wd.exports=wt;function wt(e){if(typeof e!="function")throw new TypeError("resolver must be a function");this.state=$d,this.queue=[],this.outcome=void 0,process.browser||(this.handled=mn),e!==yi&&qd(this,e)}wt.prototype.finally=function(e){if(typeof e!="function")return this;var t=this.constructor;return this.then(i,n);function i(r){function a(){return r}return t.resolve(e()).then(a)}function n(r){function a(){throw r}return t.resolve(e()).then(a)}};wt.prototype.catch=function(e){return this.then(null,e)};wt.prototype.then=function(e,t){if(typeof e!="function"&&this.state===Fs||typeof t!="function"&&this.state===Ud)return this;var i=new this.constructor(yi);if(process.browser||this.handled===mn&&(this.handled=null),this.state!==$d){var n=this.state===Fs?e:t;Ns(i,n,this.outcome)}else this.queue.push(new bn(i,e,t));return i};function bn(e,t,i){this.promise=e,typeof t=="function"&&(this.onFulfilled=t,this.callFulfilled=this.otherCallFulfilled),typeof i=="function"&&(this.onRejected=i,this.callRejected=this.otherCallRejected)}bn.prototype.callFulfilled=function(e){ce.resolve(this.promise,e)};bn.prototype.otherCallFulfilled=function(e){Ns(this.promise,this.onFulfilled,e)};bn.prototype.callRejected=function(e){ce.reject(this.promise,e)};bn.prototype.otherCallRejected=function(e){Ns(this.promise,this.onRejected,e)};function Ns(e,t,i){Hd(function(){var n;try{n=t(i)}catch(r){return ce.reject(e,r)}n===e?ce.reject(e,new TypeError("Cannot resolve promise with itself")):ce.resolve(e,n)})}ce.resolve=function(e,t){var i=Gd(Wm,t);if(i.status==="error")return ce.reject(e,i.value);var n=i.value;if(n)qd(e,n);else{e.state=Fs,e.outcome=t;for(var r=-1,a=e.queue.length;++r<a;)e.queue[r].callFulfilled(t)}return e};ce.reject=function(e,t){e.state=Ud,e.outcome=t,process.browser||e.handled===mn&&Hd(function(){e.handled===mn&&process.emit("unhandledRejection",t,e)});for(var i=-1,n=e.queue.length;++i<n;)e.queue[i].callRejected(t);return e};function Wm(e){var t=e&&e.then;if(e&&(typeof e=="object"||typeof e=="function")&&typeof t=="function")return function(){t.apply(e,arguments)}}function qd(e,t){var i=!1;function n(o){i||(i=!0,ce.reject(e,o))}function r(o){i||(i=!0,ce.resolve(e,o))}function a(){t(r,n)}var s=Gd(a);s.status==="error"&&n(s.value)}function Gd(e,t){var i={};try{i.value=e(t),i.status="success"}catch(n){i.status="error",i.value=n}return i}wt.resolve=Ym;function Ym(e){return e instanceof this?e:ce.resolve(new this(yi),e)}wt.reject=Vm;function Vm(e){var t=new this(yi);return ce.reject(t,e)}wt.all=Km;function Km(e){var t=this;if(Object.prototype.toString.call(e)!=="[object Array]")return this.reject(new TypeError("must be an array"));var i=e.length,n=!1;if(!i)return this.resolve([]);for(var r=new Array(i),a=0,s=-1,o=new this(yi);++s<i;)c(e[s],s);return o;function c(l,d){t.resolve(l).then(u,function(p){n||(n=!0,ce.reject(o,p))});function u(p){r[d]=p,++a===i&&!n&&(n=!0,ce.resolve(o,r))}}}wt.race=Xm;function Xm(e){var t=this;if(Object.prototype.toString.call(e)!=="[object Array]")return this.reject(new TypeError("must be an array"));var i=e.length,n=!1;if(!i)return this.resolve([]);for(var r=-1,a=new this(yi);++r<i;)s(e[r]);return a;function s(o){t.resolve(o).then(function(c){n||(n=!0,ce.resolve(a,c))},function(c){n||(n=!0,ce.reject(a,c))})}}});var xi=P((zw,Vd)=>{"use strict";var Hs=null;typeof Promise!="undefined"?Hs=Promise:Hs=Yd();Vd.exports={Promise:Hs}});var Xd=P(Kd=>{"use strict";(function(e,t){"use strict";if(e.setImmediate)return;var i=1,n={},r=!1,a=e.document,s;function o(v){typeof v!="function"&&(v=new Function(""+v));for(var y=new Array(arguments.length-1),x=0;x<y.length;x++)y[x]=arguments[x+1];var w={callback:v,args:y};return n[i]=w,s(i),i++}function c(v){delete n[v]}function l(v){var y=v.callback,x=v.args;switch(x.length){case 0:y();break;case 1:y(x[0]);break;case 2:y(x[0],x[1]);break;case 3:y(x[0],x[1],x[2]);break;default:y.apply(t,x);break}}function d(v){if(r)setTimeout(d,0,v);else{var y=n[v];if(y){r=!0;try{l(y)}finally{c(v),r=!1}}}}function u(){s=function(v){process.nextTick(function(){d(v)})}}function p(){if(e.postMessage&&!e.importScripts){var v=!0,y=e.onmessage;return e.onmessage=function(){v=!1},e.postMessage("","*"),e.onmessage=y,v}}function f(){var v="setImmediate$"+Math.random()+"$",y=function(x){x.source===e&&typeof x.data=="string"&&x.data.indexOf(v)===0&&d(+x.data.slice(v.length))};e.addEventListener?e.addEventListener("message",y,!1):e.attachEvent("onmessage",y),s=function(x){e.postMessage(v+x,"*")}}function g(){var v=new MessageChannel;v.port1.onmessage=function(y){var x=y.data;d(x)},s=function(y){v.port2.postMessage(y)}}function h(){var v=a.documentElement;s=function(y){var x=a.createElement("script");x.onreadystatechange=function(){d(y),x.onreadystatechange=null,v.removeChild(x),x=null},v.appendChild(x)}}function m(){s=function(v){setTimeout(d,0,v)}}var b=Object.getPrototypeOf&&Object.getPrototypeOf(e);b=b&&b.setTimeout?b:e,{}.toString.call(e.process)==="[object process]"?u():p()?f():e.MessageChannel?g():a&&"onreadystatechange"in a.createElement("script")?h():m(),b.setImmediate=o,b.clearImmediate=c})(typeof self=="undefined"?typeof global=="undefined"?Kd:global:self)});var Y=P(ee=>{"use strict";var _t=rt(),Zm=Os(),wi=fn(),Us=xi();Xd();function Jm(e){var t=null;return _t.uint8array?t=new Uint8Array(e.length):t=new Array(e.length),Br(e,t)}ee.newBlob=function(e,t){ee.checkSupport("blob");try{return new Blob([e],{type:t})}catch{try{var i=self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder,n=new i;return n.append(e),n.getBlob(t)}catch{throw new Error("Bug : can't construct the Blob.")}}};function vn(e){return e}function Br(e,t){for(var i=0;i<e.length;++i)t[i]=e.charCodeAt(i)&255;return t}var zr={stringifyByChunk:function(e,t,i){var n=[],r=0,a=e.length;if(a<=i)return String.fromCharCode.apply(null,e);for(;r<a;)t==="array"||t==="nodebuffer"?n.push(String.fromCharCode.apply(null,e.slice(r,Math.min(r+i,a)))):n.push(String.fromCharCode.apply(null,e.subarray(r,Math.min(r+i,a)))),r+=i;return n.join("")},stringifyByChar:function(e){for(var t="",i=0;i<e.length;i++)t+=String.fromCharCode(e[i]);return t},applyCanBeUsed:{uint8array:(function(){try{return _t.uint8array&&String.fromCharCode.apply(null,new Uint8Array(1)).length===1}catch{return!1}})(),nodebuffer:(function(){try{return _t.nodebuffer&&String.fromCharCode.apply(null,wi.allocBuffer(1)).length===1}catch{return!1}})()}};function yn(e){var t=65536,i=ee.getTypeOf(e),n=!0;if(i==="uint8array"?n=zr.applyCanBeUsed.uint8array:i==="nodebuffer"&&(n=zr.applyCanBeUsed.nodebuffer),n)for(;t>1;)try{return zr.stringifyByChunk(e,i,t)}catch{t=Math.floor(t/2)}return zr.stringifyByChar(e)}ee.applyFromCharCode=yn;function Fr(e,t){for(var i=0;i<e.length;i++)t[i]=e[i];return t}var Et={};Et.string={string:vn,array:function(e){return Br(e,new Array(e.length))},arraybuffer:function(e){return Et.string.uint8array(e).buffer},uint8array:function(e){return Br(e,new Uint8Array(e.length))},nodebuffer:function(e){return Br(e,wi.allocBuffer(e.length))}};Et.array={string:yn,array:vn,arraybuffer:function(e){return new Uint8Array(e).buffer},uint8array:function(e){return new Uint8Array(e)},nodebuffer:function(e){return wi.newBufferFrom(e)}};Et.arraybuffer={string:function(e){return yn(new Uint8Array(e))},array:function(e){return Fr(new Uint8Array(e),new Array(e.byteLength))},arraybuffer:vn,uint8array:function(e){return new Uint8Array(e)},nodebuffer:function(e){return wi.newBufferFrom(new Uint8Array(e))}};Et.uint8array={string:yn,array:function(e){return Fr(e,new Array(e.length))},arraybuffer:function(e){return e.buffer},uint8array:vn,nodebuffer:function(e){return wi.newBufferFrom(e)}};Et.nodebuffer={string:yn,array:function(e){return Fr(e,new Array(e.length))},arraybuffer:function(e){return Et.nodebuffer.uint8array(e).buffer},uint8array:function(e){return Fr(e,new Uint8Array(e.length))},nodebuffer:vn};ee.transformTo=function(e,t){if(t||(t=""),!e)return t;ee.checkSupport(e);var i=ee.getTypeOf(t),n=Et[i][e](t);return n};ee.resolve=function(e){for(var t=e.split("/"),i=[],n=0;n<t.length;n++){var r=t[n];r==="."||r===""&&n!==0&&n!==t.length-1||(r===".."?i.pop():i.push(r))}return i.join("/")};ee.getTypeOf=function(e){if(typeof e=="string")return"string";if(Object.prototype.toString.call(e)==="[object Array]")return"array";if(_t.nodebuffer&&wi.isBuffer(e))return"nodebuffer";if(_t.uint8array&&e instanceof Uint8Array)return"uint8array";if(_t.arraybuffer&&e instanceof ArrayBuffer)return"arraybuffer"};ee.checkSupport=function(e){var t=_t[e.toLowerCase()];if(!t)throw new Error(e+" is not supported by this platform")};ee.MAX_VALUE_16BITS=65535;ee.MAX_VALUE_32BITS=-1;ee.pretty=function(e){var t="",i,n;for(n=0;n<(e||"").length;n++)i=e.charCodeAt(n),t+="\\x"+(i<16?"0":"")+i.toString(16).toUpperCase();return t};ee.delay=function(e,t,i){setImmediate(function(){e.apply(i||null,t||[])})};ee.inherits=function(e,t){var i=function(){};i.prototype=t.prototype,e.prototype=new i};ee.extend=function(){var e={},t,i;for(t=0;t<arguments.length;t++)for(i in arguments[t])Object.prototype.hasOwnProperty.call(arguments[t],i)&&typeof e[i]=="undefined"&&(e[i]=arguments[t][i]);return e};ee.prepareContent=function(e,t,i,n,r){var a=Us.Promise.resolve(t).then(function(s){var o=_t.blob&&(s instanceof Blob||["[object File]","[object Blob]"].indexOf(Object.prototype.toString.call(s))!==-1);return o&&typeof FileReader!="undefined"?new Us.Promise(function(c,l){var d=new FileReader;d.onload=function(u){c(u.target.result)},d.onerror=function(u){l(u.target.error)},d.readAsArrayBuffer(s)}):s});return a.then(function(s){var o=ee.getTypeOf(s);return o?(o==="arraybuffer"?s=ee.transformTo("uint8array",s):o==="string"&&(r?s=Zm.decode(s):i&&n!==!0&&(s=Jm(s))),s):Us.Promise.reject(new Error("Can't read the data of '"+e+"'. Is it in a supported JavaScript type (String, Blob, ArrayBuffer, etc) ?"))})}});var ye=P((Nw,Jd)=>{"use strict";function Zd(e){this.name=e||"default",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}Zd.prototype={push:function(e){this.emit("data",e)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit("end"),this.cleanUp(),this.isFinished=!0}catch(e){this.emit("error",e)}return!0},error:function(e){return this.isFinished?!1:(this.isPaused?this.generatedError=e:(this.isFinished=!0,this.emit("error",e),this.previous&&this.previous.error(e),this.cleanUp()),!0)},on:function(e,t){return this._listeners[e].push(t),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(e,t){if(this._listeners[e])for(var i=0;i<this._listeners[e].length;i++)this._listeners[e][i].call(this,t)},pipe:function(e){return e.registerPrevious(this)},registerPrevious:function(e){if(this.isLocked)throw new Error("The stream '"+this+"' has already been used.");this.streamInfo=e.streamInfo,this.mergeStreamInfo(),this.previous=e;var t=this;return e.on("data",function(i){t.processChunk(i)}),e.on("end",function(){t.end()}),e.on("error",function(i){t.error(i)}),this},pause:function(){return this.isPaused||this.isFinished?!1:(this.isPaused=!0,this.previous&&this.previous.pause(),!0)},resume:function(){if(!this.isPaused||this.isFinished)return!1;this.isPaused=!1;var e=!1;return this.generatedError&&(this.error(this.generatedError),e=!0),this.previous&&this.previous.resume(),!e},flush:function(){},processChunk:function(e){this.push(e)},withStreamInfo:function(e,t){return this.extraStreamInfo[e]=t,this.mergeStreamInfo(),this},mergeStreamInfo:function(){for(var e in this.extraStreamInfo)Object.prototype.hasOwnProperty.call(this.extraStreamInfo,e)&&(this.streamInfo[e]=this.extraStreamInfo[e])},lock:function(){if(this.isLocked)throw new Error("The stream '"+this+"' has already been used.");this.isLocked=!0,this.previous&&this.previous.lock()},toString:function(){var e="Worker "+this.name;return this.previous?this.previous+" -> "+e:e}};Jd.exports=Zd});var Ei=P(St=>{"use strict";var _i=Y(),Ht=rt(),Qm=fn(),Nr=ye(),xn=new Array(256);for(at=0;at<256;at++)xn[at]=at>=252?6:at>=248?5:at>=240?4:at>=224?3:at>=192?2:1;var at;xn[254]=xn[254]=1;var eb=function(e){var t,i,n,r,a,s=e.length,o=0;for(r=0;r<s;r++)i=e.charCodeAt(r),(i&64512)===55296&&r+1<s&&(n=e.charCodeAt(r+1),(n&64512)===56320&&(i=65536+(i-55296<<10)+(n-56320),r++)),o+=i<128?1:i<2048?2:i<65536?3:4;for(Ht.uint8array?t=new Uint8Array(o):t=new Array(o),a=0,r=0;a<o;r++)i=e.charCodeAt(r),(i&64512)===55296&&r+1<s&&(n=e.charCodeAt(r+1),(n&64512)===56320&&(i=65536+(i-55296<<10)+(n-56320),r++)),i<128?t[a++]=i:i<2048?(t[a++]=192|i>>>6,t[a++]=128|i&63):i<65536?(t[a++]=224|i>>>12,t[a++]=128|i>>>6&63,t[a++]=128|i&63):(t[a++]=240|i>>>18,t[a++]=128|i>>>12&63,t[a++]=128|i>>>6&63,t[a++]=128|i&63);return t},tb=function(e,t){var i;for(t=t||e.length,t>e.length&&(t=e.length),i=t-1;i>=0&&(e[i]&192)===128;)i--;return i<0||i===0?t:i+xn[e[i]]>t?i:t},ib=function(e){var t,i,n,r,a=e.length,s=new Array(a*2);for(i=0,t=0;t<a;){if(n=e[t++],n<128){s[i++]=n;continue}if(r=xn[n],r>4){s[i++]=65533,t+=r-1;continue}for(n&=r===2?31:r===3?15:7;r>1&&t<a;)n=n<<6|e[t++]&63,r--;if(r>1){s[i++]=65533;continue}n<65536?s[i++]=n:(n-=65536,s[i++]=55296|n>>10&1023,s[i++]=56320|n&1023)}return s.length!==i&&(s.subarray?s=s.subarray(0,i):s.length=i),_i.applyFromCharCode(s)};St.utf8encode=function(t){return Ht.nodebuffer?Qm.newBufferFrom(t,"utf-8"):eb(t)};St.utf8decode=function(t){return Ht.nodebuffer?_i.transformTo("nodebuffer",t).toString("utf-8"):(t=_i.transformTo(Ht.uint8array?"uint8array":"array",t),ib(t))};function Hr(){Nr.call(this,"utf-8 decode"),this.leftOver=null}_i.inherits(Hr,Nr);Hr.prototype.processChunk=function(e){var t=_i.transformTo(Ht.uint8array?"uint8array":"array",e.data);if(this.leftOver&&this.leftOver.length){if(Ht.uint8array){var i=t;t=new Uint8Array(i.length+this.leftOver.length),t.set(this.leftOver,0),t.set(i,this.leftOver.length)}else t=this.leftOver.concat(t);this.leftOver=null}var n=tb(t),r=t;n!==t.length&&(Ht.uint8array?(r=t.subarray(0,n),this.leftOver=t.subarray(n,t.length)):(r=t.slice(0,n),this.leftOver=t.slice(n,t.length))),this.push({data:St.utf8decode(r),meta:e.meta})};Hr.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:St.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)};St.Utf8DecodeWorker=Hr;function $s(){Nr.call(this,"utf-8 encode")}_i.inherits($s,Nr);$s.prototype.processChunk=function(e){this.push({data:St.utf8encode(e.data),meta:e.meta})};St.Utf8EncodeWorker=$s});var iu=P((Uw,tu)=>{"use strict";var Qd=ye(),eu=Y();function qs(e){Qd.call(this,"ConvertWorker to "+e),this.destType=e}eu.inherits(qs,Qd);qs.prototype.processChunk=function(e){this.push({data:eu.transformTo(this.destType,e.data),meta:e.meta})};tu.exports=qs});var au=P(($w,ru)=>{"use strict";var nu=Rs().Readable,nb=Y();nb.inherits(Gs,nu);function Gs(e,t,i){nu.call(this,t),this._helper=e;var n=this;e.on("data",function(r,a){n.push(r)||n._helper.pause(),i&&i(a)}).on("error",function(r){n.emit("error",r)}).on("end",function(){n.push(null)})}Gs.prototype._read=function(){this._helper.resume()};ru.exports=Gs});var Ws=P((qw,lu)=>{"use strict";var Ut=Y(),rb=iu(),ab=ye(),sb=Os(),ob=rt(),lb=xi(),su=null;if(ob.nodestream)try{su=au()}catch{}function cb(e,t,i){switch(e){case"blob":return Ut.newBlob(Ut.transformTo("arraybuffer",t),i);case"base64":return sb.encode(t);default:return Ut.transformTo(e,t)}}function db(e,t){var i,n=0,r=null,a=0;for(i=0;i<t.length;i++)a+=t[i].length;switch(e){case"string":return t.join("");case"array":return Array.prototype.concat.apply([],t);case"uint8array":for(r=new Uint8Array(a),i=0;i<t.length;i++)r.set(t[i],n),n+=t[i].length;return r;case"nodebuffer":return Buffer.concat(t);default:throw new Error("concat : unsupported type '"+e+"'")}}function ub(e,t){return new lb.Promise(function(i,n){var r=[],a=e._internalType,s=e._outputType,o=e._mimeType;e.on("data",function(c,l){r.push(c),t&&t(l)}).on("error",function(c){r=[],n(c)}).on("end",function(){try{var c=cb(s,db(a,r),o);i(c)}catch(l){n(l)}r=[]}).resume()})}function ou(e,t,i){var n=t;switch(t){case"blob":case"arraybuffer":n="uint8array";break;case"base64":n="string";break}try{this._internalType=n,this._outputType=t,this._mimeType=i,Ut.checkSupport(n),this._worker=e.pipe(new rb(n)),e.lock()}catch(r){this._worker=new ab("error"),this._worker.error(r)}}ou.prototype={accumulate:function(e){return ub(this,e)},on:function(e,t){var i=this;return e==="data"?this._worker.on(e,function(n){t.call(i,n.data,n.meta)}):this._worker.on(e,function(){Ut.delay(t,arguments,i)}),this},resume:function(){return Ut.delay(this._worker.resume,[],this._worker),this},pause:function(){return this._worker.pause(),this},toNodejsStream:function(e){if(Ut.checkSupport("nodestream"),this._outputType!=="nodebuffer")throw new Error(this._outputType+" is not supported by this method");return new su(this,{objectMode:this._outputType!=="nodebuffer"},e)}};lu.exports=ou});var Ys=P(Pe=>{"use strict";Pe.base64=!1;Pe.binary=!1;Pe.dir=!1;Pe.createFolders=!0;Pe.date=null;Pe.compression=null;Pe.compressionOptions=null;Pe.comment=null;Pe.unixPermissions=null;Pe.dosPermissions=null});var Vs=P((Ww,cu)=>{"use strict";var Ur=Y(),$r=ye(),pb=16*1024;function Si(e){$r.call(this,"DataWorker");var t=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type="",this._tickScheduled=!1,e.then(function(i){t.dataIsReady=!0,t.data=i,t.max=i&&i.length||0,t.type=Ur.getTypeOf(i),t.isPaused||t._tickAndRepeat()},function(i){t.error(i)})}Ur.inherits(Si,$r);Si.prototype.cleanUp=function(){$r.prototype.cleanUp.call(this),this.data=null};Si.prototype.resume=function(){return $r.prototype.resume.call(this)?(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,Ur.delay(this._tickAndRepeat,[],this)),!0):!1};Si.prototype._tickAndRepeat=function(){this._tickScheduled=!1,!(this.isPaused||this.isFinished)&&(this._tick(),this.isFinished||(Ur.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))};Si.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var e=pb,t=null,i=Math.min(this.max,this.index+e);if(this.index>=this.max)return this.end();switch(this.type){case"string":t=this.data.substring(this.index,i);break;case"uint8array":t=this.data.subarray(this.index,i);break;case"array":case"nodebuffer":t=this.data.slice(this.index,i);break}return this.index=i,this.push({data:t,meta:{percent:this.max?this.index/this.max*100:0}})};cu.exports=Si});var qr=P((Yw,uu)=>{"use strict";var fb=Y();function hb(){for(var e,t=[],i=0;i<256;i++){e=i;for(var n=0;n<8;n++)e=e&1?3988292384^e>>>1:e>>>1;t[i]=e}return t}var du=hb();function gb(e,t,i,n){var r=du,a=n+i;e=e^-1;for(var s=n;s<a;s++)e=e>>>8^r[(e^t[s])&255];return e^-1}function mb(e,t,i,n){var r=du,a=n+i;e=e^-1;for(var s=n;s<a;s++)e=e>>>8^r[(e^t.charCodeAt(s))&255];return e^-1}uu.exports=function(t,i){if(typeof t=="undefined"||!t.length)return 0;var n=fb.getTypeOf(t)!=="string";return n?gb(i|0,t,t.length,0):mb(i|0,t,t.length,0)}});var Xs=P((Vw,fu)=>{"use strict";var pu=ye(),bb=qr(),vb=Y();function Ks(){pu.call(this,"Crc32Probe"),this.withStreamInfo("crc32",0)}vb.inherits(Ks,pu);Ks.prototype.processChunk=function(e){this.streamInfo.crc32=bb(e.data,this.streamInfo.crc32||0),this.push(e)};fu.exports=Ks});var gu=P((Kw,hu)=>{"use strict";var yb=Y(),Zs=ye();function Js(e){Zs.call(this,"DataLengthProbe for "+e),this.propName=e,this.withStreamInfo(e,0)}yb.inherits(Js,Zs);Js.prototype.processChunk=function(e){if(e){var t=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=t+e.data.length}Zs.prototype.processChunk.call(this,e)};hu.exports=Js});var Gr=P((Xw,vu)=>{"use strict";var mu=xi(),bu=Vs(),xb=Xs(),Qs=gu();function eo(e,t,i,n,r){this.compressedSize=e,this.uncompressedSize=t,this.crc32=i,this.compression=n,this.compressedContent=r}eo.prototype={getContentWorker:function(){var e=new bu(mu.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new Qs("data_length")),t=this;return e.on("end",function(){if(this.streamInfo.data_length!==t.uncompressedSize)throw new Error("Bug : uncompressed data size mismatch")}),e},getCompressedWorker:function(){return new bu(mu.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize",this.compressedSize).withStreamInfo("uncompressedSize",this.uncompressedSize).withStreamInfo("crc32",this.crc32).withStreamInfo("compression",this.compression)}};eo.createWorkerFrom=function(e,t,i){return e.pipe(new xb).pipe(new Qs("uncompressedSize")).pipe(t.compressWorker(i)).pipe(new Qs("compressedSize")).withStreamInfo("compression",t)};vu.exports=eo});var _u=P((Zw,wu)=>{"use strict";var wb=Ws(),_b=Vs(),to=Ei(),io=Gr(),yu=ye(),no=function(e,t,i){this.name=e,this.dir=i.dir,this.date=i.date,this.comment=i.comment,this.unixPermissions=i.unixPermissions,this.dosPermissions=i.dosPermissions,this._data=t,this._dataBinary=i.binary,this.options={compression:i.compression,compressionOptions:i.compressionOptions}};no.prototype={internalStream:function(e){var t=null,i="string";try{if(!e)throw new Error("No output type specified.");i=e.toLowerCase();var n=i==="string"||i==="text";(i==="binarystring"||i==="text")&&(i="string"),t=this._decompressWorker();var r=!this._dataBinary;r&&!n&&(t=t.pipe(new to.Utf8EncodeWorker)),!r&&n&&(t=t.pipe(new to.Utf8DecodeWorker))}catch(a){t=new yu("error"),t.error(a)}return new wb(t,i,"")},async:function(e,t){return this.internalStream(e).accumulate(t)},nodeStream:function(e,t){return this.internalStream(e||"nodebuffer").toNodejsStream(t)},_compressWorker:function(e,t){if(this._data instanceof io&&this._data.compression.magic===e.magic)return this._data.getCompressedWorker();var i=this._decompressWorker();return this._dataBinary||(i=i.pipe(new to.Utf8EncodeWorker)),io.createWorkerFrom(i,e,t)},_decompressWorker:function(){return this._data instanceof io?this._data.getContentWorker():this._data instanceof yu?this._data:new _b(this._data)}};var xu=["asText","asBinary","asNodeBuffer","asUint8Array","asArrayBuffer"],Eb=function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")};for(Wr=0;Wr<xu.length;Wr++)no.prototype[xu[Wr]]=Eb;var Wr;wu.exports=no});var st=P(he=>{"use strict";var Sb=typeof Uint8Array!="undefined"&&typeof Uint16Array!="undefined"&&typeof Int32Array!="undefined";function Ab(e,t){return Object.prototype.hasOwnProperty.call(e,t)}he.assign=function(e){for(var t=Array.prototype.slice.call(arguments,1);t.length;){var i=t.shift();if(i){if(typeof i!="object")throw new TypeError(i+"must be non-object");for(var n in i)Ab(i,n)&&(e[n]=i[n])}}return e};he.shrinkBuf=function(e,t){return e.length===t?e:e.subarray?e.subarray(0,t):(e.length=t,e)};var Cb={arraySet:function(e,t,i,n,r){if(t.subarray&&e.subarray){e.set(t.subarray(i,i+n),r);return}for(var a=0;a<n;a++)e[r+a]=t[i+a]},flattenChunks:function(e){var t,i,n,r,a,s;for(n=0,t=0,i=e.length;t<i;t++)n+=e[t].length;for(s=new Uint8Array(n),r=0,t=0,i=e.length;t<i;t++)a=e[t],s.set(a,r),r+=a.length;return s}},Tb={arraySet:function(e,t,i,n,r){for(var a=0;a<n;a++)e[r+a]=t[i+a]},flattenChunks:function(e){return[].concat.apply([],e)}};he.setTyped=function(e){e?(he.Buf8=Uint8Array,he.Buf16=Uint16Array,he.Buf32=Int32Array,he.assign(he,Cb)):(he.Buf8=Array,he.Buf16=Array,he.Buf32=Array,he.assign(he,Tb))};he.setTyped(Sb)});var Gu=P(Ti=>{"use strict";var kb=st(),Lb=4,Eu=0,Su=1,Rb=2;function Ci(e){for(var t=e.length;--t>=0;)e[t]=0}var Mb=0,Ru=1,Pb=2,Ib=3,Ob=258,uo=29,Cn=256,_n=Cn+1+uo,Ai=30,po=19,Mu=2*_n+1,$t=15,ro=16,Db=7,fo=256,Pu=16,Iu=17,Ou=18,lo=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],Yr=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],jb=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],Du=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],zb=512,ot=new Array((_n+2)*2);Ci(ot);var wn=new Array(Ai*2);Ci(wn);var En=new Array(zb);Ci(En);var Sn=new Array(Ob-Ib+1);Ci(Sn);var ho=new Array(uo);Ci(ho);var Vr=new Array(Ai);Ci(Vr);function ao(e,t,i,n,r){this.static_tree=e,this.extra_bits=t,this.extra_base=i,this.elems=n,this.max_length=r,this.has_stree=e&&e.length}var ju,zu,Bu;function so(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}function Fu(e){return e<256?En[e]:En[256+(e>>>7)]}function An(e,t){e.pending_buf[e.pending++]=t&255,e.pending_buf[e.pending++]=t>>>8&255}function me(e,t,i){e.bi_valid>ro-i?(e.bi_buf|=t<<e.bi_valid&65535,An(e,e.bi_buf),e.bi_buf=t>>ro-e.bi_valid,e.bi_valid+=i-ro):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=i)}function qe(e,t,i){me(e,i[t*2],i[t*2+1])}function Nu(e,t){var i=0;do i|=e&1,e>>>=1,i<<=1;while(--t>0);return i>>>1}function Bb(e){e.bi_valid===16?(An(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=e.bi_buf&255,e.bi_buf>>=8,e.bi_valid-=8)}function Fb(e,t){var i=t.dyn_tree,n=t.max_code,r=t.stat_desc.static_tree,a=t.stat_desc.has_stree,s=t.stat_desc.extra_bits,o=t.stat_desc.extra_base,c=t.stat_desc.max_length,l,d,u,p,f,g,h=0;for(p=0;p<=$t;p++)e.bl_count[p]=0;for(i[e.heap[e.heap_max]*2+1]=0,l=e.heap_max+1;l<Mu;l++)d=e.heap[l],p=i[i[d*2+1]*2+1]+1,p>c&&(p=c,h++),i[d*2+1]=p,!(d>n)&&(e.bl_count[p]++,f=0,d>=o&&(f=s[d-o]),g=i[d*2],e.opt_len+=g*(p+f),a&&(e.static_len+=g*(r[d*2+1]+f)));if(h!==0){do{for(p=c-1;e.bl_count[p]===0;)p--;e.bl_count[p]--,e.bl_count[p+1]+=2,e.bl_count[c]--,h-=2}while(h>0);for(p=c;p!==0;p--)for(d=e.bl_count[p];d!==0;)u=e.heap[--l],!(u>n)&&(i[u*2+1]!==p&&(e.opt_len+=(p-i[u*2+1])*i[u*2],i[u*2+1]=p),d--)}}function Hu(e,t,i){var n=new Array($t+1),r=0,a,s;for(a=1;a<=$t;a++)n[a]=r=r+i[a-1]<<1;for(s=0;s<=t;s++){var o=e[s*2+1];o!==0&&(e[s*2]=Nu(n[o]++,o))}}function Nb(){var e,t,i,n,r,a=new Array($t+1);for(i=0,n=0;n<uo-1;n++)for(ho[n]=i,e=0;e<1<<lo[n];e++)Sn[i++]=n;for(Sn[i-1]=n,r=0,n=0;n<16;n++)for(Vr[n]=r,e=0;e<1<<Yr[n];e++)En[r++]=n;for(r>>=7;n<Ai;n++)for(Vr[n]=r<<7,e=0;e<1<<Yr[n]-7;e++)En[256+r++]=n;for(t=0;t<=$t;t++)a[t]=0;for(e=0;e<=143;)ot[e*2+1]=8,e++,a[8]++;for(;e<=255;)ot[e*2+1]=9,e++,a[9]++;for(;e<=279;)ot[e*2+1]=7,e++,a[7]++;for(;e<=287;)ot[e*2+1]=8,e++,a[8]++;for(Hu(ot,_n+1,a),e=0;e<Ai;e++)wn[e*2+1]=5,wn[e*2]=Nu(e,5);ju=new ao(ot,lo,Cn+1,_n,$t),zu=new ao(wn,Yr,0,Ai,$t),Bu=new ao(new Array(0),jb,0,po,Db)}function Uu(e){var t;for(t=0;t<_n;t++)e.dyn_ltree[t*2]=0;for(t=0;t<Ai;t++)e.dyn_dtree[t*2]=0;for(t=0;t<po;t++)e.bl_tree[t*2]=0;e.dyn_ltree[fo*2]=1,e.opt_len=e.static_len=0,e.last_lit=e.matches=0}function $u(e){e.bi_valid>8?An(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0}function Hb(e,t,i,n){$u(e),n&&(An(e,i),An(e,~i)),kb.arraySet(e.pending_buf,e.window,t,i,e.pending),e.pending+=i}function Au(e,t,i,n){var r=t*2,a=i*2;return e[r]<e[a]||e[r]===e[a]&&n[t]<=n[i]}function oo(e,t,i){for(var n=e.heap[i],r=i<<1;r<=e.heap_len&&(r<e.heap_len&&Au(t,e.heap[r+1],e.heap[r],e.depth)&&r++,!Au(t,n,e.heap[r],e.depth));)e.heap[i]=e.heap[r],i=r,r<<=1;e.heap[i]=n}function Cu(e,t,i){var n,r,a=0,s,o;if(e.last_lit!==0)do n=e.pending_buf[e.d_buf+a*2]<<8|e.pending_buf[e.d_buf+a*2+1],r=e.pending_buf[e.l_buf+a],a++,n===0?qe(e,r,t):(s=Sn[r],qe(e,s+Cn+1,t),o=lo[s],o!==0&&(r-=ho[s],me(e,r,o)),n--,s=Fu(n),qe(e,s,i),o=Yr[s],o!==0&&(n-=Vr[s],me(e,n,o)));while(a<e.last_lit);qe(e,fo,t)}function co(e,t){var i=t.dyn_tree,n=t.stat_desc.static_tree,r=t.stat_desc.has_stree,a=t.stat_desc.elems,s,o,c=-1,l;for(e.heap_len=0,e.heap_max=Mu,s=0;s<a;s++)i[s*2]!==0?(e.heap[++e.heap_len]=c=s,e.depth[s]=0):i[s*2+1]=0;for(;e.heap_len<2;)l=e.heap[++e.heap_len]=c<2?++c:0,i[l*2]=1,e.depth[l]=0,e.opt_len--,r&&(e.static_len-=n[l*2+1]);for(t.max_code=c,s=e.heap_len>>1;s>=1;s--)oo(e,i,s);l=a;do s=e.heap[1],e.heap[1]=e.heap[e.heap_len--],oo(e,i,1),o=e.heap[1],e.heap[--e.heap_max]=s,e.heap[--e.heap_max]=o,i[l*2]=i[s*2]+i[o*2],e.depth[l]=(e.depth[s]>=e.depth[o]?e.depth[s]:e.depth[o])+1,i[s*2+1]=i[o*2+1]=l,e.heap[1]=l++,oo(e,i,1);while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],Fb(e,t),Hu(i,c,e.bl_count)}function Tu(e,t,i){var n,r=-1,a,s=t[1],o=0,c=7,l=4;for(s===0&&(c=138,l=3),t[(i+1)*2+1]=65535,n=0;n<=i;n++)a=s,s=t[(n+1)*2+1],!(++o<c&&a===s)&&(o<l?e.bl_tree[a*2]+=o:a!==0?(a!==r&&e.bl_tree[a*2]++,e.bl_tree[Pu*2]++):o<=10?e.bl_tree[Iu*2]++:e.bl_tree[Ou*2]++,o=0,r=a,s===0?(c=138,l=3):a===s?(c=6,l=3):(c=7,l=4))}function ku(e,t,i){var n,r=-1,a,s=t[1],o=0,c=7,l=4;for(s===0&&(c=138,l=3),n=0;n<=i;n++)if(a=s,s=t[(n+1)*2+1],!(++o<c&&a===s)){if(o<l)do qe(e,a,e.bl_tree);while(--o!==0);else a!==0?(a!==r&&(qe(e,a,e.bl_tree),o--),qe(e,Pu,e.bl_tree),me(e,o-3,2)):o<=10?(qe(e,Iu,e.bl_tree),me(e,o-3,3)):(qe(e,Ou,e.bl_tree),me(e,o-11,7));o=0,r=a,s===0?(c=138,l=3):a===s?(c=6,l=3):(c=7,l=4)}}function Ub(e){var t;for(Tu(e,e.dyn_ltree,e.l_desc.max_code),Tu(e,e.dyn_dtree,e.d_desc.max_code),co(e,e.bl_desc),t=po-1;t>=3&&e.bl_tree[Du[t]*2+1]===0;t--);return e.opt_len+=3*(t+1)+5+5+4,t}function $b(e,t,i,n){var r;for(me(e,t-257,5),me(e,i-1,5),me(e,n-4,4),r=0;r<n;r++)me(e,e.bl_tree[Du[r]*2+1],3);ku(e,e.dyn_ltree,t-1),ku(e,e.dyn_dtree,i-1)}function qb(e){var t=4093624447,i;for(i=0;i<=31;i++,t>>>=1)if(t&1&&e.dyn_ltree[i*2]!==0)return Eu;if(e.dyn_ltree[18]!==0||e.dyn_ltree[20]!==0||e.dyn_ltree[26]!==0)return Su;for(i=32;i<Cn;i++)if(e.dyn_ltree[i*2]!==0)return Su;return Eu}var Lu=!1;function Gb(e){Lu||(Nb(),Lu=!0),e.l_desc=new so(e.dyn_ltree,ju),e.d_desc=new so(e.dyn_dtree,zu),e.bl_desc=new so(e.bl_tree,Bu),e.bi_buf=0,e.bi_valid=0,Uu(e)}function qu(e,t,i,n){me(e,(Mb<<1)+(n?1:0),3),Hb(e,t,i,!0)}function Wb(e){me(e,Ru<<1,3),qe(e,fo,ot),Bb(e)}function Yb(e,t,i,n){var r,a,s=0;e.level>0?(e.strm.data_type===Rb&&(e.strm.data_type=qb(e)),co(e,e.l_desc),co(e,e.d_desc),s=Ub(e),r=e.opt_len+3+7>>>3,a=e.static_len+3+7>>>3,a<=r&&(r=a)):r=a=i+5,i+4<=r&&t!==-1?qu(e,t,i,n):e.strategy===Lb||a===r?(me(e,(Ru<<1)+(n?1:0),3),Cu(e,ot,wn)):(me(e,(Pb<<1)+(n?1:0),3),$b(e,e.l_desc.max_code+1,e.d_desc.max_code+1,s+1),Cu(e,e.dyn_ltree,e.dyn_dtree)),Uu(e),n&&$u(e)}function Vb(e,t,i){return e.pending_buf[e.d_buf+e.last_lit*2]=t>>>8&255,e.pending_buf[e.d_buf+e.last_lit*2+1]=t&255,e.pending_buf[e.l_buf+e.last_lit]=i&255,e.last_lit++,t===0?e.dyn_ltree[i*2]++:(e.matches++,t--,e.dyn_ltree[(Sn[i]+Cn+1)*2]++,e.dyn_dtree[Fu(t)*2]++),e.last_lit===e.lit_bufsize-1}Ti._tr_init=Gb;Ti._tr_stored_block=qu;Ti._tr_flush_block=Yb;Ti._tr_tally=Vb;Ti._tr_align=Wb});var go=P((e1,Wu)=>{"use strict";function Kb(e,t,i,n){for(var r=e&65535|0,a=e>>>16&65535|0,s=0;i!==0;){s=i>2e3?2e3:i,i-=s;do r=r+t[n++]|0,a=a+r|0;while(--s);r%=65521,a%=65521}return r|a<<16|0}Wu.exports=Kb});var mo=P((t1,Yu)=>{"use strict";function Xb(){for(var e,t=[],i=0;i<256;i++){e=i;for(var n=0;n<8;n++)e=e&1?3988292384^e>>>1:e>>>1;t[i]=e}return t}var Zb=Xb();function Jb(e,t,i,n){var r=Zb,a=n+i;e^=-1;for(var s=n;s<a;s++)e=e>>>8^r[(e^t[s])&255];return e^-1}Yu.exports=Jb});var Kr=P((i1,Vu)=>{"use strict";Vu.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}});var np=P(Ye=>{"use strict";var ge=st(),Se=Gu(),Ju=go(),At=mo(),Qb=Kr(),Yt=0,ev=1,tv=3,Rt=4,Ku=5,We=0,Xu=1,Ae=-2,iv=-3,bo=-5,nv=-1,rv=1,Xr=2,av=3,sv=4,ov=0,lv=2,ea=8,cv=9,dv=15,uv=8,pv=29,fv=256,yo=fv+1+pv,hv=30,gv=19,mv=2*yo+1,bv=15,B=3,kt=258,Ie=kt+B+1,vv=32,ta=42,xo=69,Zr=73,Jr=91,Qr=103,qt=113,kn=666,ne=1,Ln=2,Gt=3,Ri=4,yv=3;function Lt(e,t){return e.msg=Qb[t],t}function Zu(e){return(e<<1)-(e>4?9:0)}function Tt(e){for(var t=e.length;--t>=0;)e[t]=0}function Ct(e){var t=e.state,i=t.pending;i>e.avail_out&&(i=e.avail_out),i!==0&&(ge.arraySet(e.output,t.pending_buf,t.pending_out,i,e.next_out),e.next_out+=i,t.pending_out+=i,e.total_out+=i,e.avail_out-=i,t.pending-=i,t.pending===0&&(t.pending_out=0))}function ae(e,t){Se._tr_flush_block(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,Ct(e.strm)}function F(e,t){e.pending_buf[e.pending++]=t}function Tn(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=t&255}function xv(e,t,i,n){var r=e.avail_in;return r>n&&(r=n),r===0?0:(e.avail_in-=r,ge.arraySet(t,e.input,e.next_in,r,i),e.state.wrap===1?e.adler=Ju(e.adler,t,r,i):e.state.wrap===2&&(e.adler=At(e.adler,t,r,i)),e.next_in+=r,e.total_in+=r,r)}function Qu(e,t){var i=e.max_chain_length,n=e.strstart,r,a,s=e.prev_length,o=e.nice_match,c=e.strstart>e.w_size-Ie?e.strstart-(e.w_size-Ie):0,l=e.window,d=e.w_mask,u=e.prev,p=e.strstart+kt,f=l[n+s-1],g=l[n+s];e.prev_length>=e.good_match&&(i>>=2),o>e.lookahead&&(o=e.lookahead);do if(r=t,!(l[r+s]!==g||l[r+s-1]!==f||l[r]!==l[n]||l[++r]!==l[n+1])){n+=2,r++;do;while(l[++n]===l[++r]&&l[++n]===l[++r]&&l[++n]===l[++r]&&l[++n]===l[++r]&&l[++n]===l[++r]&&l[++n]===l[++r]&&l[++n]===l[++r]&&l[++n]===l[++r]&&n<p);if(a=kt-(p-n),n=p-kt,a>s){if(e.match_start=t,s=a,a>=o)break;f=l[n+s-1],g=l[n+s]}}while((t=u[t&d])>c&&--i!==0);return s<=e.lookahead?s:e.lookahead}function Wt(e){var t=e.w_size,i,n,r,a,s;do{if(a=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-Ie)){ge.arraySet(e.window,e.window,t,t,0),e.match_start-=t,e.strstart-=t,e.block_start-=t,n=e.hash_size,i=n;do r=e.head[--i],e.head[i]=r>=t?r-t:0;while(--n);n=t,i=n;do r=e.prev[--i],e.prev[i]=r>=t?r-t:0;while(--n);a+=t}if(e.strm.avail_in===0)break;if(n=xv(e.strm,e.window,e.strstart+e.lookahead,a),e.lookahead+=n,e.lookahead+e.insert>=B)for(s=e.strstart-e.insert,e.ins_h=e.window[s],e.ins_h=(e.ins_h<<e.hash_shift^e.window[s+1])&e.hash_mask;e.insert&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[s+B-1])&e.hash_mask,e.prev[s&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=s,s++,e.insert--,!(e.lookahead+e.insert<B)););}while(e.lookahead<Ie&&e.strm.avail_in!==0)}function wv(e,t){var i=65535;for(i>e.pending_buf_size-5&&(i=e.pending_buf_size-5);;){if(e.lookahead<=1){if(Wt(e),e.lookahead===0&&t===Yt)return ne;if(e.lookahead===0)break}e.strstart+=e.lookahead,e.lookahead=0;var n=e.block_start+i;if((e.strstart===0||e.strstart>=n)&&(e.lookahead=e.strstart-n,e.strstart=n,ae(e,!1),e.strm.avail_out===0)||e.strstart-e.block_start>=e.w_size-Ie&&(ae(e,!1),e.strm.avail_out===0))return ne}return e.insert=0,t===Rt?(ae(e,!0),e.strm.avail_out===0?Gt:Ri):(e.strstart>e.block_start&&(ae(e,!1),e.strm.avail_out===0),ne)}function vo(e,t){for(var i,n;;){if(e.lookahead<Ie){if(Wt(e),e.lookahead<Ie&&t===Yt)return ne;if(e.lookahead===0)break}if(i=0,e.lookahead>=B&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+B-1])&e.hash_mask,i=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),i!==0&&e.strstart-i<=e.w_size-Ie&&(e.match_length=Qu(e,i)),e.match_length>=B)if(n=Se._tr_tally(e,e.strstart-e.match_start,e.match_length-B),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=B){e.match_length--;do e.strstart++,e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+B-1])&e.hash_mask,i=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart;while(--e.match_length!==0);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+1])&e.hash_mask;else n=Se._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(n&&(ae(e,!1),e.strm.avail_out===0))return ne}return e.insert=e.strstart<B-1?e.strstart:B-1,t===Rt?(ae(e,!0),e.strm.avail_out===0?Gt:Ri):e.last_lit&&(ae(e,!1),e.strm.avail_out===0)?ne:Ln}function ki(e,t){for(var i,n,r;;){if(e.lookahead<Ie){if(Wt(e),e.lookahead<Ie&&t===Yt)return ne;if(e.lookahead===0)break}if(i=0,e.lookahead>=B&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+B-1])&e.hash_mask,i=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=B-1,i!==0&&e.prev_length<e.max_lazy_match&&e.strstart-i<=e.w_size-Ie&&(e.match_length=Qu(e,i),e.match_length<=5&&(e.strategy===rv||e.match_length===B&&e.strstart-e.match_start>4096)&&(e.match_length=B-1)),e.prev_length>=B&&e.match_length<=e.prev_length){r=e.strstart+e.lookahead-B,n=Se._tr_tally(e,e.strstart-1-e.prev_match,e.prev_length-B),e.lookahead-=e.prev_length-1,e.prev_length-=2;do++e.strstart<=r&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+B-1])&e.hash_mask,i=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart);while(--e.prev_length!==0);if(e.match_available=0,e.match_length=B-1,e.strstart++,n&&(ae(e,!1),e.strm.avail_out===0))return ne}else if(e.match_available){if(n=Se._tr_tally(e,0,e.window[e.strstart-1]),n&&ae(e,!1),e.strstart++,e.lookahead--,e.strm.avail_out===0)return ne}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(n=Se._tr_tally(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<B-1?e.strstart:B-1,t===Rt?(ae(e,!0),e.strm.avail_out===0?Gt:Ri):e.last_lit&&(ae(e,!1),e.strm.avail_out===0)?ne:Ln}function _v(e,t){for(var i,n,r,a,s=e.window;;){if(e.lookahead<=kt){if(Wt(e),e.lookahead<=kt&&t===Yt)return ne;if(e.lookahead===0)break}if(e.match_length=0,e.lookahead>=B&&e.strstart>0&&(r=e.strstart-1,n=s[r],n===s[++r]&&n===s[++r]&&n===s[++r])){a=e.strstart+kt;do;while(n===s[++r]&&n===s[++r]&&n===s[++r]&&n===s[++r]&&n===s[++r]&&n===s[++r]&&n===s[++r]&&n===s[++r]&&r<a);e.match_length=kt-(a-r),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=B?(i=Se._tr_tally(e,1,e.match_length-B),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(i=Se._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),i&&(ae(e,!1),e.strm.avail_out===0))return ne}return e.insert=0,t===Rt?(ae(e,!0),e.strm.avail_out===0?Gt:Ri):e.last_lit&&(ae(e,!1),e.strm.avail_out===0)?ne:Ln}function Ev(e,t){for(var i;;){if(e.lookahead===0&&(Wt(e),e.lookahead===0)){if(t===Yt)return ne;break}if(e.match_length=0,i=Se._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,i&&(ae(e,!1),e.strm.avail_out===0))return ne}return e.insert=0,t===Rt?(ae(e,!0),e.strm.avail_out===0?Gt:Ri):e.last_lit&&(ae(e,!1),e.strm.avail_out===0)?ne:Ln}function Ge(e,t,i,n,r){this.good_length=e,this.max_lazy=t,this.nice_length=i,this.max_chain=n,this.func=r}var Li;Li=[new Ge(0,0,0,0,wv),new Ge(4,4,8,4,vo),new Ge(4,5,16,8,vo),new Ge(4,6,32,32,vo),new Ge(4,4,16,16,ki),new Ge(8,16,32,32,ki),new Ge(8,16,128,128,ki),new Ge(8,32,128,256,ki),new Ge(32,128,258,1024,ki),new Ge(32,258,258,4096,ki)];function Sv(e){e.window_size=2*e.w_size,Tt(e.head),e.max_lazy_match=Li[e.level].max_lazy,e.good_match=Li[e.level].good_length,e.nice_match=Li[e.level].nice_length,e.max_chain_length=Li[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=B-1,e.match_available=0,e.ins_h=0}function Av(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=ea,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new ge.Buf16(mv*2),this.dyn_dtree=new ge.Buf16((2*hv+1)*2),this.bl_tree=new ge.Buf16((2*gv+1)*2),Tt(this.dyn_ltree),Tt(this.dyn_dtree),Tt(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new ge.Buf16(bv+1),this.heap=new ge.Buf16(2*yo+1),Tt(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new ge.Buf16(2*yo+1),Tt(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function ep(e){var t;return!e||!e.state?Lt(e,Ae):(e.total_in=e.total_out=0,e.data_type=lv,t=e.state,t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap?ta:qt,e.adler=t.wrap===2?0:1,t.last_flush=Yt,Se._tr_init(t),We)}function tp(e){var t=ep(e);return t===We&&Sv(e.state),t}function Cv(e,t){return!e||!e.state||e.state.wrap!==2?Ae:(e.state.gzhead=t,We)}function ip(e,t,i,n,r,a){if(!e)return Ae;var s=1;if(t===nv&&(t=6),n<0?(s=0,n=-n):n>15&&(s=2,n-=16),r<1||r>cv||i!==ea||n<8||n>15||t<0||t>9||a<0||a>sv)return Lt(e,Ae);n===8&&(n=9);var o=new Av;return e.state=o,o.strm=e,o.wrap=s,o.gzhead=null,o.w_bits=n,o.w_size=1<<o.w_bits,o.w_mask=o.w_size-1,o.hash_bits=r+7,o.hash_size=1<<o.hash_bits,o.hash_mask=o.hash_size-1,o.hash_shift=~~((o.hash_bits+B-1)/B),o.window=new ge.Buf8(o.w_size*2),o.head=new ge.Buf16(o.hash_size),o.prev=new ge.Buf16(o.w_size),o.lit_bufsize=1<<r+6,o.pending_buf_size=o.lit_bufsize*4,o.pending_buf=new ge.Buf8(o.pending_buf_size),o.d_buf=1*o.lit_bufsize,o.l_buf=3*o.lit_bufsize,o.level=t,o.strategy=a,o.method=i,tp(e)}function Tv(e,t){return ip(e,t,ea,dv,uv,ov)}function kv(e,t){var i,n,r,a;if(!e||!e.state||t>Ku||t<0)return e?Lt(e,Ae):Ae;if(n=e.state,!e.output||!e.input&&e.avail_in!==0||n.status===kn&&t!==Rt)return Lt(e,e.avail_out===0?bo:Ae);if(n.strm=e,i=n.last_flush,n.last_flush=t,n.status===ta)if(n.wrap===2)e.adler=0,F(n,31),F(n,139),F(n,8),n.gzhead?(F(n,(n.gzhead.text?1:0)+(n.gzhead.hcrc?2:0)+(n.gzhead.extra?4:0)+(n.gzhead.name?8:0)+(n.gzhead.comment?16:0)),F(n,n.gzhead.time&255),F(n,n.gzhead.time>>8&255),F(n,n.gzhead.time>>16&255),F(n,n.gzhead.time>>24&255),F(n,n.level===9?2:n.strategy>=Xr||n.level<2?4:0),F(n,n.gzhead.os&255),n.gzhead.extra&&n.gzhead.extra.length&&(F(n,n.gzhead.extra.length&255),F(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(e.adler=At(e.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=xo):(F(n,0),F(n,0),F(n,0),F(n,0),F(n,0),F(n,n.level===9?2:n.strategy>=Xr||n.level<2?4:0),F(n,yv),n.status=qt);else{var s=ea+(n.w_bits-8<<4)<<8,o=-1;n.strategy>=Xr||n.level<2?o=0:n.level<6?o=1:n.level===6?o=2:o=3,s|=o<<6,n.strstart!==0&&(s|=vv),s+=31-s%31,n.status=qt,Tn(n,s),n.strstart!==0&&(Tn(n,e.adler>>>16),Tn(n,e.adler&65535)),e.adler=1}if(n.status===xo)if(n.gzhead.extra){for(r=n.pending;n.gzindex<(n.gzhead.extra.length&65535)&&!(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>r&&(e.adler=At(e.adler,n.pending_buf,n.pending-r,r)),Ct(e),r=n.pending,n.pending===n.pending_buf_size));)F(n,n.gzhead.extra[n.gzindex]&255),n.gzindex++;n.gzhead.hcrc&&n.pending>r&&(e.adler=At(e.adler,n.pending_buf,n.pending-r,r)),n.gzindex===n.gzhead.extra.length&&(n.gzindex=0,n.status=Zr)}else n.status=Zr;if(n.status===Zr)if(n.gzhead.name){r=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>r&&(e.adler=At(e.adler,n.pending_buf,n.pending-r,r)),Ct(e),r=n.pending,n.pending===n.pending_buf_size)){a=1;break}n.gzindex<n.gzhead.name.length?a=n.gzhead.name.charCodeAt(n.gzindex++)&255:a=0,F(n,a)}while(a!==0);n.gzhead.hcrc&&n.pending>r&&(e.adler=At(e.adler,n.pending_buf,n.pending-r,r)),a===0&&(n.gzindex=0,n.status=Jr)}else n.status=Jr;if(n.status===Jr)if(n.gzhead.comment){r=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>r&&(e.adler=At(e.adler,n.pending_buf,n.pending-r,r)),Ct(e),r=n.pending,n.pending===n.pending_buf_size)){a=1;break}n.gzindex<n.gzhead.comment.length?a=n.gzhead.comment.charCodeAt(n.gzindex++)&255:a=0,F(n,a)}while(a!==0);n.gzhead.hcrc&&n.pending>r&&(e.adler=At(e.adler,n.pending_buf,n.pending-r,r)),a===0&&(n.status=Qr)}else n.status=Qr;if(n.status===Qr&&(n.gzhead.hcrc?(n.pending+2>n.pending_buf_size&&Ct(e),n.pending+2<=n.pending_buf_size&&(F(n,e.adler&255),F(n,e.adler>>8&255),e.adler=0,n.status=qt)):n.status=qt),n.pending!==0){if(Ct(e),e.avail_out===0)return n.last_flush=-1,We}else if(e.avail_in===0&&Zu(t)<=Zu(i)&&t!==Rt)return Lt(e,bo);if(n.status===kn&&e.avail_in!==0)return Lt(e,bo);if(e.avail_in!==0||n.lookahead!==0||t!==Yt&&n.status!==kn){var c=n.strategy===Xr?Ev(n,t):n.strategy===av?_v(n,t):Li[n.level].func(n,t);if((c===Gt||c===Ri)&&(n.status=kn),c===ne||c===Gt)return e.avail_out===0&&(n.last_flush=-1),We;if(c===Ln&&(t===ev?Se._tr_align(n):t!==Ku&&(Se._tr_stored_block(n,0,0,!1),t===tv&&(Tt(n.head),n.lookahead===0&&(n.strstart=0,n.block_start=0,n.insert=0))),Ct(e),e.avail_out===0))return n.last_flush=-1,We}return t!==Rt?We:n.wrap<=0?Xu:(n.wrap===2?(F(n,e.adler&255),F(n,e.adler>>8&255),F(n,e.adler>>16&255),F(n,e.adler>>24&255),F(n,e.total_in&255),F(n,e.total_in>>8&255),F(n,e.total_in>>16&255),F(n,e.total_in>>24&255)):(Tn(n,e.adler>>>16),Tn(n,e.adler&65535)),Ct(e),n.wrap>0&&(n.wrap=-n.wrap),n.pending!==0?We:Xu)}function Lv(e){var t;return!e||!e.state?Ae:(t=e.state.status,t!==ta&&t!==xo&&t!==Zr&&t!==Jr&&t!==Qr&&t!==qt&&t!==kn?Lt(e,Ae):(e.state=null,t===qt?Lt(e,iv):We))}function Rv(e,t){var i=t.length,n,r,a,s,o,c,l,d;if(!e||!e.state||(n=e.state,s=n.wrap,s===2||s===1&&n.status!==ta||n.lookahead))return Ae;for(s===1&&(e.adler=Ju(e.adler,t,i,0)),n.wrap=0,i>=n.w_size&&(s===0&&(Tt(n.head),n.strstart=0,n.block_start=0,n.insert=0),d=new ge.Buf8(n.w_size),ge.arraySet(d,t,i-n.w_size,n.w_size,0),t=d,i=n.w_size),o=e.avail_in,c=e.next_in,l=e.input,e.avail_in=i,e.next_in=0,e.input=t,Wt(n);n.lookahead>=B;){r=n.strstart,a=n.lookahead-(B-1);do n.ins_h=(n.ins_h<<n.hash_shift^n.window[r+B-1])&n.hash_mask,n.prev[r&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=r,r++;while(--a);n.strstart=r,n.lookahead=B-1,Wt(n)}return n.strstart+=n.lookahead,n.block_start=n.strstart,n.insert=n.lookahead,n.lookahead=0,n.match_length=n.prev_length=B-1,n.match_available=0,e.next_in=c,e.input=l,e.avail_in=o,n.wrap=s,We}Ye.deflateInit=Tv;Ye.deflateInit2=ip;Ye.deflateReset=tp;Ye.deflateResetKeep=ep;Ye.deflateSetHeader=Cv;Ye.deflate=kv;Ye.deflateEnd=Lv;Ye.deflateSetDictionary=Rv;Ye.deflateInfo="pako deflate (from Nodeca project)"});var wo=P(Mi=>{"use strict";var ia=st(),rp=!0,ap=!0;try{String.fromCharCode.apply(null,[0])}catch{rp=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{ap=!1}var Rn=new ia.Buf8(256);for(lt=0;lt<256;lt++)Rn[lt]=lt>=252?6:lt>=248?5:lt>=240?4:lt>=224?3:lt>=192?2:1;var lt;Rn[254]=Rn[254]=1;Mi.string2buf=function(e){var t,i,n,r,a,s=e.length,o=0;for(r=0;r<s;r++)i=e.charCodeAt(r),(i&64512)===55296&&r+1<s&&(n=e.charCodeAt(r+1),(n&64512)===56320&&(i=65536+(i-55296<<10)+(n-56320),r++)),o+=i<128?1:i<2048?2:i<65536?3:4;for(t=new ia.Buf8(o),a=0,r=0;a<o;r++)i=e.charCodeAt(r),(i&64512)===55296&&r+1<s&&(n=e.charCodeAt(r+1),(n&64512)===56320&&(i=65536+(i-55296<<10)+(n-56320),r++)),i<128?t[a++]=i:i<2048?(t[a++]=192|i>>>6,t[a++]=128|i&63):i<65536?(t[a++]=224|i>>>12,t[a++]=128|i>>>6&63,t[a++]=128|i&63):(t[a++]=240|i>>>18,t[a++]=128|i>>>12&63,t[a++]=128|i>>>6&63,t[a++]=128|i&63);return t};function sp(e,t){if(t<65534&&(e.subarray&&ap||!e.subarray&&rp))return String.fromCharCode.apply(null,ia.shrinkBuf(e,t));for(var i="",n=0;n<t;n++)i+=String.fromCharCode(e[n]);return i}Mi.buf2binstring=function(e){return sp(e,e.length)};Mi.binstring2buf=function(e){for(var t=new ia.Buf8(e.length),i=0,n=t.length;i<n;i++)t[i]=e.charCodeAt(i);return t};Mi.buf2string=function(e,t){var i,n,r,a,s=t||e.length,o=new Array(s*2);for(n=0,i=0;i<s;){if(r=e[i++],r<128){o[n++]=r;continue}if(a=Rn[r],a>4){o[n++]=65533,i+=a-1;continue}for(r&=a===2?31:a===3?15:7;a>1&&i<s;)r=r<<6|e[i++]&63,a--;if(a>1){o[n++]=65533;continue}r<65536?o[n++]=r:(r-=65536,o[n++]=55296|r>>10&1023,o[n++]=56320|r&1023)}return sp(o,n)};Mi.utf8border=function(e,t){var i;for(t=t||e.length,t>e.length&&(t=e.length),i=t-1;i>=0&&(e[i]&192)===128;)i--;return i<0||i===0?t:i+Rn[e[i]]>t?i:t}});var _o=P((a1,op)=>{"use strict";function Mv(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}op.exports=Mv});var up=P(In=>{"use strict";var Mn=np(),Pn=st(),So=wo(),Ao=Kr(),Pv=_o(),dp=Object.prototype.toString,Iv=0,Eo=4,Pi=0,lp=1,cp=2,Ov=-1,Dv=0,jv=8;function Vt(e){if(!(this instanceof Vt))return new Vt(e);this.options=Pn.assign({level:Ov,method:jv,chunkSize:16384,windowBits:15,memLevel:8,strategy:Dv,to:""},e||{});var t=this.options;t.raw&&t.windowBits>0?t.windowBits=-t.windowBits:t.gzip&&t.windowBits>0&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Pv,this.strm.avail_out=0;var i=Mn.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(i!==Pi)throw new Error(Ao[i]);if(t.header&&Mn.deflateSetHeader(this.strm,t.header),t.dictionary){var n;if(typeof t.dictionary=="string"?n=So.string2buf(t.dictionary):dp.call(t.dictionary)==="[object ArrayBuffer]"?n=new Uint8Array(t.dictionary):n=t.dictionary,i=Mn.deflateSetDictionary(this.strm,n),i!==Pi)throw new Error(Ao[i]);this._dict_set=!0}}Vt.prototype.push=function(e,t){var i=this.strm,n=this.options.chunkSize,r,a;if(this.ended)return!1;a=t===~~t?t:t===!0?Eo:Iv,typeof e=="string"?i.input=So.string2buf(e):dp.call(e)==="[object ArrayBuffer]"?i.input=new Uint8Array(e):i.input=e,i.next_in=0,i.avail_in=i.input.length;do{if(i.avail_out===0&&(i.output=new Pn.Buf8(n),i.next_out=0,i.avail_out=n),r=Mn.deflate(i,a),r!==lp&&r!==Pi)return this.onEnd(r),this.ended=!0,!1;(i.avail_out===0||i.avail_in===0&&(a===Eo||a===cp))&&(this.options.to==="string"?this.onData(So.buf2binstring(Pn.shrinkBuf(i.output,i.next_out))):this.onData(Pn.shrinkBuf(i.output,i.next_out)))}while((i.avail_in>0||i.avail_out===0)&&r!==lp);return a===Eo?(r=Mn.deflateEnd(this.strm),this.onEnd(r),this.ended=!0,r===Pi):(a===cp&&(this.onEnd(Pi),i.avail_out=0),!0)};Vt.prototype.onData=function(e){this.chunks.push(e)};Vt.prototype.onEnd=function(e){e===Pi&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=Pn.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function Co(e,t){var i=new Vt(t);if(i.push(e,!0),i.err)throw i.msg||Ao[i.err];return i.result}function zv(e,t){return t=t||{},t.raw=!0,Co(e,t)}function Bv(e,t){return t=t||{},t.gzip=!0,Co(e,t)}In.Deflate=Vt;In.deflate=Co;In.deflateRaw=zv;In.gzip=Bv});var fp=P((o1,pp)=>{"use strict";var na=30,Fv=12;pp.exports=function(t,i){var n,r,a,s,o,c,l,d,u,p,f,g,h,m,b,v,y,x,w,E,A,S,k,I,_;n=t.state,r=t.next_in,I=t.input,a=r+(t.avail_in-5),s=t.next_out,_=t.output,o=s-(i-t.avail_out),c=s+(t.avail_out-257),l=n.dmax,d=n.wsize,u=n.whave,p=n.wnext,f=n.window,g=n.hold,h=n.bits,m=n.lencode,b=n.distcode,v=(1<<n.lenbits)-1,y=(1<<n.distbits)-1;e:do{h<15&&(g+=I[r++]<<h,h+=8,g+=I[r++]<<h,h+=8),x=m[g&v];t:for(;;){if(w=x>>>24,g>>>=w,h-=w,w=x>>>16&255,w===0)_[s++]=x&65535;else if(w&16){E=x&65535,w&=15,w&&(h<w&&(g+=I[r++]<<h,h+=8),E+=g&(1<<w)-1,g>>>=w,h-=w),h<15&&(g+=I[r++]<<h,h+=8,g+=I[r++]<<h,h+=8),x=b[g&y];i:for(;;){if(w=x>>>24,g>>>=w,h-=w,w=x>>>16&255,w&16){if(A=x&65535,w&=15,h<w&&(g+=I[r++]<<h,h+=8,h<w&&(g+=I[r++]<<h,h+=8)),A+=g&(1<<w)-1,A>l){t.msg="invalid distance too far back",n.mode=na;break e}if(g>>>=w,h-=w,w=s-o,A>w){if(w=A-w,w>u&&n.sane){t.msg="invalid distance too far back",n.mode=na;break e}if(S=0,k=f,p===0){if(S+=d-w,w<E){E-=w;do _[s++]=f[S++];while(--w);S=s-A,k=_}}else if(p<w){if(S+=d+p-w,w-=p,w<E){E-=w;do _[s++]=f[S++];while(--w);if(S=0,p<E){w=p,E-=w;do _[s++]=f[S++];while(--w);S=s-A,k=_}}}else if(S+=p-w,w<E){E-=w;do _[s++]=f[S++];while(--w);S=s-A,k=_}for(;E>2;)_[s++]=k[S++],_[s++]=k[S++],_[s++]=k[S++],E-=3;E&&(_[s++]=k[S++],E>1&&(_[s++]=k[S++]))}else{S=s-A;do _[s++]=_[S++],_[s++]=_[S++],_[s++]=_[S++],E-=3;while(E>2);E&&(_[s++]=_[S++],E>1&&(_[s++]=_[S++]))}}else if((w&64)===0){x=b[(x&65535)+(g&(1<<w)-1)];continue i}else{t.msg="invalid distance code",n.mode=na;break e}break}}else if((w&64)===0){x=m[(x&65535)+(g&(1<<w)-1)];continue t}else if(w&32){n.mode=Fv;break e}else{t.msg="invalid literal/length code",n.mode=na;break e}break}}while(r<a&&s<c);E=h>>3,r-=E,h-=E<<3,g&=(1<<h)-1,t.next_in=r,t.next_out=s,t.avail_in=r<a?5+(a-r):5-(r-a),t.avail_out=s<c?257+(c-s):257-(s-c),n.hold=g,n.bits=h}});var xp=P((l1,yp)=>{"use strict";var hp=st(),Ii=15,gp=852,mp=592,bp=0,To=1,vp=2,Nv=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],Hv=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],Uv=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],$v=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];yp.exports=function(t,i,n,r,a,s,o,c){var l=c.bits,d=0,u=0,p=0,f=0,g=0,h=0,m=0,b=0,v=0,y=0,x,w,E,A,S,k=null,I=0,_,C=new hp.Buf16(Ii+1),R=new hp.Buf16(Ii+1),M=null,O=0,T,j,L;for(d=0;d<=Ii;d++)C[d]=0;for(u=0;u<r;u++)C[i[n+u]]++;for(g=l,f=Ii;f>=1&&C[f]===0;f--);if(g>f&&(g=f),f===0)return a[s++]=1<<24|64<<16|0,a[s++]=1<<24|64<<16|0,c.bits=1,0;for(p=1;p<f&&C[p]===0;p++);for(g<p&&(g=p),b=1,d=1;d<=Ii;d++)if(b<<=1,b-=C[d],b<0)return-1;if(b>0&&(t===bp||f!==1))return-1;for(R[1]=0,d=1;d<Ii;d++)R[d+1]=R[d]+C[d];for(u=0;u<r;u++)i[n+u]!==0&&(o[R[i[n+u]]++]=u);if(t===bp?(k=M=o,_=19):t===To?(k=Nv,I-=257,M=Hv,O-=257,_=256):(k=Uv,M=$v,_=-1),y=0,u=0,d=p,S=s,h=g,m=0,E=-1,v=1<<g,A=v-1,t===To&&v>gp||t===vp&&v>mp)return 1;for(;;){T=d-m,o[u]<_?(j=0,L=o[u]):o[u]>_?(j=M[O+o[u]],L=k[I+o[u]]):(j=96,L=0),x=1<<d-m,w=1<<h,p=w;do w-=x,a[S+(y>>m)+w]=T<<24|j<<16|L|0;while(w!==0);for(x=1<<d-1;y&x;)x>>=1;if(x!==0?(y&=x-1,y+=x):y=0,u++,--C[d]===0){if(d===f)break;d=i[n+o[u]]}if(d>g&&(y&A)!==E){for(m===0&&(m=g),S+=p,h=d-m,b=1<<h;h+m<f&&(b-=C[h+m],!(b<=0));)h++,b<<=1;if(v+=1<<h,t===To&&v>gp||t===vp&&v>mp)return 1;E=y&A,a[E]=g<<24|h<<16|S-s|0}}return y!==0&&(a[S+y]=d-m<<24|64<<16|0),c.bits=g,0}});var tf=P(Oe=>{"use strict";var xe=st(),Io=go(),Ve=mo(),qv=fp(),On=xp(),Gv=0,Wp=1,Yp=2,wp=4,Wv=5,ra=6,Kt=0,Yv=1,Vv=2,Ce=-2,Vp=-3,Oo=-4,Kv=-5,_p=8,Kp=1,Ep=2,Sp=3,Ap=4,Cp=5,Tp=6,kp=7,Lp=8,Rp=9,Mp=10,oa=11,ct=12,ko=13,Pp=14,Lo=15,Ip=16,Op=17,Dp=18,jp=19,aa=20,sa=21,zp=22,Bp=23,Fp=24,Np=25,Hp=26,Ro=27,Up=28,$p=29,W=30,Do=31,Xv=32,Zv=852,Jv=592,Qv=15,ey=Qv;function qp(e){return(e>>>24&255)+(e>>>8&65280)+((e&65280)<<8)+((e&255)<<24)}function ty(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new xe.Buf16(320),this.work=new xe.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function Xp(e){var t;return!e||!e.state?Ce:(t=e.state,e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=t.wrap&1),t.mode=Kp,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new xe.Buf32(Zv),t.distcode=t.distdyn=new xe.Buf32(Jv),t.sane=1,t.back=-1,Kt)}function Zp(e){var t;return!e||!e.state?Ce:(t=e.state,t.wsize=0,t.whave=0,t.wnext=0,Xp(e))}function Jp(e,t){var i,n;return!e||!e.state||(n=e.state,t<0?(i=0,t=-t):(i=(t>>4)+1,t<48&&(t&=15)),t&&(t<8||t>15))?Ce:(n.window!==null&&n.wbits!==t&&(n.window=null),n.wrap=i,n.wbits=t,Zp(e))}function Qp(e,t){var i,n;return e?(n=new ty,e.state=n,n.window=null,i=Jp(e,t),i!==Kt&&(e.state=null),i):Ce}function iy(e){return Qp(e,ey)}var Gp=!0,Mo,Po;function ny(e){if(Gp){var t;for(Mo=new xe.Buf32(512),Po=new xe.Buf32(32),t=0;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(On(Wp,e.lens,0,288,Mo,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;On(Yp,e.lens,0,32,Po,0,e.work,{bits:5}),Gp=!1}e.lencode=Mo,e.lenbits=9,e.distcode=Po,e.distbits=5}function ef(e,t,i,n){var r,a=e.state;return a.window===null&&(a.wsize=1<<a.wbits,a.wnext=0,a.whave=0,a.window=new xe.Buf8(a.wsize)),n>=a.wsize?(xe.arraySet(a.window,t,i-a.wsize,a.wsize,0),a.wnext=0,a.whave=a.wsize):(r=a.wsize-a.wnext,r>n&&(r=n),xe.arraySet(a.window,t,i-n,r,a.wnext),n-=r,n?(xe.arraySet(a.window,t,i-n,n,0),a.wnext=n,a.whave=a.wsize):(a.wnext+=r,a.wnext===a.wsize&&(a.wnext=0),a.whave<a.wsize&&(a.whave+=r))),0}function ry(e,t){var i,n,r,a,s,o,c,l,d,u,p,f,g,h,m=0,b,v,y,x,w,E,A,S,k=new xe.Buf8(4),I,_,C=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!e||!e.state||!e.output||!e.input&&e.avail_in!==0)return Ce;i=e.state,i.mode===ct&&(i.mode=ko),s=e.next_out,r=e.output,c=e.avail_out,a=e.next_in,n=e.input,o=e.avail_in,l=i.hold,d=i.bits,u=o,p=c,S=Kt;e:for(;;)switch(i.mode){case Kp:if(i.wrap===0){i.mode=ko;break}for(;d<16;){if(o===0)break e;o--,l+=n[a++]<<d,d+=8}if(i.wrap&2&&l===35615){i.check=0,k[0]=l&255,k[1]=l>>>8&255,i.check=Ve(i.check,k,2,0),l=0,d=0,i.mode=Ep;break}if(i.flags=0,i.head&&(i.head.done=!1),!(i.wrap&1)||(((l&255)<<8)+(l>>8))%31){e.msg="incorrect header check",i.mode=W;break}if((l&15)!==_p){e.msg="unknown compression method",i.mode=W;break}if(l>>>=4,d-=4,A=(l&15)+8,i.wbits===0)i.wbits=A;else if(A>i.wbits){e.msg="invalid window size",i.mode=W;break}i.dmax=1<<A,e.adler=i.check=1,i.mode=l&512?Mp:ct,l=0,d=0;break;case Ep:for(;d<16;){if(o===0)break e;o--,l+=n[a++]<<d,d+=8}if(i.flags=l,(i.flags&255)!==_p){e.msg="unknown compression method",i.mode=W;break}if(i.flags&57344){e.msg="unknown header flags set",i.mode=W;break}i.head&&(i.head.text=l>>8&1),i.flags&512&&(k[0]=l&255,k[1]=l>>>8&255,i.check=Ve(i.check,k,2,0)),l=0,d=0,i.mode=Sp;case Sp:for(;d<32;){if(o===0)break e;o--,l+=n[a++]<<d,d+=8}i.head&&(i.head.time=l),i.flags&512&&(k[0]=l&255,k[1]=l>>>8&255,k[2]=l>>>16&255,k[3]=l>>>24&255,i.check=Ve(i.check,k,4,0)),l=0,d=0,i.mode=Ap;case Ap:for(;d<16;){if(o===0)break e;o--,l+=n[a++]<<d,d+=8}i.head&&(i.head.xflags=l&255,i.head.os=l>>8),i.flags&512&&(k[0]=l&255,k[1]=l>>>8&255,i.check=Ve(i.check,k,2,0)),l=0,d=0,i.mode=Cp;case Cp:if(i.flags&1024){for(;d<16;){if(o===0)break e;o--,l+=n[a++]<<d,d+=8}i.length=l,i.head&&(i.head.extra_len=l),i.flags&512&&(k[0]=l&255,k[1]=l>>>8&255,i.check=Ve(i.check,k,2,0)),l=0,d=0}else i.head&&(i.head.extra=null);i.mode=Tp;case Tp:if(i.flags&1024&&(f=i.length,f>o&&(f=o),f&&(i.head&&(A=i.head.extra_len-i.length,i.head.extra||(i.head.extra=new Array(i.head.extra_len)),xe.arraySet(i.head.extra,n,a,f,A)),i.flags&512&&(i.check=Ve(i.check,n,f,a)),o-=f,a+=f,i.length-=f),i.length))break e;i.length=0,i.mode=kp;case kp:if(i.flags&2048){if(o===0)break e;f=0;do A=n[a+f++],i.head&&A&&i.length<65536&&(i.head.name+=String.fromCharCode(A));while(A&&f<o);if(i.flags&512&&(i.check=Ve(i.check,n,f,a)),o-=f,a+=f,A)break e}else i.head&&(i.head.name=null);i.length=0,i.mode=Lp;case Lp:if(i.flags&4096){if(o===0)break e;f=0;do A=n[a+f++],i.head&&A&&i.length<65536&&(i.head.comment+=String.fromCharCode(A));while(A&&f<o);if(i.flags&512&&(i.check=Ve(i.check,n,f,a)),o-=f,a+=f,A)break e}else i.head&&(i.head.comment=null);i.mode=Rp;case Rp:if(i.flags&512){for(;d<16;){if(o===0)break e;o--,l+=n[a++]<<d,d+=8}if(l!==(i.check&65535)){e.msg="header crc mismatch",i.mode=W;break}l=0,d=0}i.head&&(i.head.hcrc=i.flags>>9&1,i.head.done=!0),e.adler=i.check=0,i.mode=ct;break;case Mp:for(;d<32;){if(o===0)break e;o--,l+=n[a++]<<d,d+=8}e.adler=i.check=qp(l),l=0,d=0,i.mode=oa;case oa:if(i.havedict===0)return e.next_out=s,e.avail_out=c,e.next_in=a,e.avail_in=o,i.hold=l,i.bits=d,Vv;e.adler=i.check=1,i.mode=ct;case ct:if(t===Wv||t===ra)break e;case ko:if(i.last){l>>>=d&7,d-=d&7,i.mode=Ro;break}for(;d<3;){if(o===0)break e;o--,l+=n[a++]<<d,d+=8}switch(i.last=l&1,l>>>=1,d-=1,l&3){case 0:i.mode=Pp;break;case 1:if(ny(i),i.mode=aa,t===ra){l>>>=2,d-=2;break e}break;case 2:i.mode=Op;break;case 3:e.msg="invalid block type",i.mode=W}l>>>=2,d-=2;break;case Pp:for(l>>>=d&7,d-=d&7;d<32;){if(o===0)break e;o--,l+=n[a++]<<d,d+=8}if((l&65535)!==(l>>>16^65535)){e.msg="invalid stored block lengths",i.mode=W;break}if(i.length=l&65535,l=0,d=0,i.mode=Lo,t===ra)break e;case Lo:i.mode=Ip;case Ip:if(f=i.length,f){if(f>o&&(f=o),f>c&&(f=c),f===0)break e;xe.arraySet(r,n,a,f,s),o-=f,a+=f,c-=f,s+=f,i.length-=f;break}i.mode=ct;break;case Op:for(;d<14;){if(o===0)break e;o--,l+=n[a++]<<d,d+=8}if(i.nlen=(l&31)+257,l>>>=5,d-=5,i.ndist=(l&31)+1,l>>>=5,d-=5,i.ncode=(l&15)+4,l>>>=4,d-=4,i.nlen>286||i.ndist>30){e.msg="too many length or distance symbols",i.mode=W;break}i.have=0,i.mode=Dp;case Dp:for(;i.have<i.ncode;){for(;d<3;){if(o===0)break e;o--,l+=n[a++]<<d,d+=8}i.lens[C[i.have++]]=l&7,l>>>=3,d-=3}for(;i.have<19;)i.lens[C[i.have++]]=0;if(i.lencode=i.lendyn,i.lenbits=7,I={bits:i.lenbits},S=On(Gv,i.lens,0,19,i.lencode,0,i.work,I),i.lenbits=I.bits,S){e.msg="invalid code lengths set",i.mode=W;break}i.have=0,i.mode=jp;case jp:for(;i.have<i.nlen+i.ndist;){for(;m=i.lencode[l&(1<<i.lenbits)-1],b=m>>>24,v=m>>>16&255,y=m&65535,!(b<=d);){if(o===0)break e;o--,l+=n[a++]<<d,d+=8}if(y<16)l>>>=b,d-=b,i.lens[i.have++]=y;else{if(y===16){for(_=b+2;d<_;){if(o===0)break e;o--,l+=n[a++]<<d,d+=8}if(l>>>=b,d-=b,i.have===0){e.msg="invalid bit length repeat",i.mode=W;break}A=i.lens[i.have-1],f=3+(l&3),l>>>=2,d-=2}else if(y===17){for(_=b+3;d<_;){if(o===0)break e;o--,l+=n[a++]<<d,d+=8}l>>>=b,d-=b,A=0,f=3+(l&7),l>>>=3,d-=3}else{for(_=b+7;d<_;){if(o===0)break e;o--,l+=n[a++]<<d,d+=8}l>>>=b,d-=b,A=0,f=11+(l&127),l>>>=7,d-=7}if(i.have+f>i.nlen+i.ndist){e.msg="invalid bit length repeat",i.mode=W;break}for(;f--;)i.lens[i.have++]=A}}if(i.mode===W)break;if(i.lens[256]===0){e.msg="invalid code -- missing end-of-block",i.mode=W;break}if(i.lenbits=9,I={bits:i.lenbits},S=On(Wp,i.lens,0,i.nlen,i.lencode,0,i.work,I),i.lenbits=I.bits,S){e.msg="invalid literal/lengths set",i.mode=W;break}if(i.distbits=6,i.distcode=i.distdyn,I={bits:i.distbits},S=On(Yp,i.lens,i.nlen,i.ndist,i.distcode,0,i.work,I),i.distbits=I.bits,S){e.msg="invalid distances set",i.mode=W;break}if(i.mode=aa,t===ra)break e;case aa:i.mode=sa;case sa:if(o>=6&&c>=258){e.next_out=s,e.avail_out=c,e.next_in=a,e.avail_in=o,i.hold=l,i.bits=d,qv(e,p),s=e.next_out,r=e.output,c=e.avail_out,a=e.next_in,n=e.input,o=e.avail_in,l=i.hold,d=i.bits,i.mode===ct&&(i.back=-1);break}for(i.back=0;m=i.lencode[l&(1<<i.lenbits)-1],b=m>>>24,v=m>>>16&255,y=m&65535,!(b<=d);){if(o===0)break e;o--,l+=n[a++]<<d,d+=8}if(v&&(v&240)===0){for(x=b,w=v,E=y;m=i.lencode[E+((l&(1<<x+w)-1)>>x)],b=m>>>24,v=m>>>16&255,y=m&65535,!(x+b<=d);){if(o===0)break e;o--,l+=n[a++]<<d,d+=8}l>>>=x,d-=x,i.back+=x}if(l>>>=b,d-=b,i.back+=b,i.length=y,v===0){i.mode=Hp;break}if(v&32){i.back=-1,i.mode=ct;break}if(v&64){e.msg="invalid literal/length code",i.mode=W;break}i.extra=v&15,i.mode=zp;case zp:if(i.extra){for(_=i.extra;d<_;){if(o===0)break e;o--,l+=n[a++]<<d,d+=8}i.length+=l&(1<<i.extra)-1,l>>>=i.extra,d-=i.extra,i.back+=i.extra}i.was=i.length,i.mode=Bp;case Bp:for(;m=i.distcode[l&(1<<i.distbits)-1],b=m>>>24,v=m>>>16&255,y=m&65535,!(b<=d);){if(o===0)break e;o--,l+=n[a++]<<d,d+=8}if((v&240)===0){for(x=b,w=v,E=y;m=i.distcode[E+((l&(1<<x+w)-1)>>x)],b=m>>>24,v=m>>>16&255,y=m&65535,!(x+b<=d);){if(o===0)break e;o--,l+=n[a++]<<d,d+=8}l>>>=x,d-=x,i.back+=x}if(l>>>=b,d-=b,i.back+=b,v&64){e.msg="invalid distance code",i.mode=W;break}i.offset=y,i.extra=v&15,i.mode=Fp;case Fp:if(i.extra){for(_=i.extra;d<_;){if(o===0)break e;o--,l+=n[a++]<<d,d+=8}i.offset+=l&(1<<i.extra)-1,l>>>=i.extra,d-=i.extra,i.back+=i.extra}if(i.offset>i.dmax){e.msg="invalid distance too far back",i.mode=W;break}i.mode=Np;case Np:if(c===0)break e;if(f=p-c,i.offset>f){if(f=i.offset-f,f>i.whave&&i.sane){e.msg="invalid distance too far back",i.mode=W;break}f>i.wnext?(f-=i.wnext,g=i.wsize-f):g=i.wnext-f,f>i.length&&(f=i.length),h=i.window}else h=r,g=s-i.offset,f=i.length;f>c&&(f=c),c-=f,i.length-=f;do r[s++]=h[g++];while(--f);i.length===0&&(i.mode=sa);break;case Hp:if(c===0)break e;r[s++]=i.length,c--,i.mode=sa;break;case Ro:if(i.wrap){for(;d<32;){if(o===0)break e;o--,l|=n[a++]<<d,d+=8}if(p-=c,e.total_out+=p,i.total+=p,p&&(e.adler=i.check=i.flags?Ve(i.check,r,p,s-p):Io(i.check,r,p,s-p)),p=c,(i.flags?l:qp(l))!==i.check){e.msg="incorrect data check",i.mode=W;break}l=0,d=0}i.mode=Up;case Up:if(i.wrap&&i.flags){for(;d<32;){if(o===0)break e;o--,l+=n[a++]<<d,d+=8}if(l!==(i.total&4294967295)){e.msg="incorrect length check",i.mode=W;break}l=0,d=0}i.mode=$p;case $p:S=Yv;break e;case W:S=Vp;break e;case Do:return Oo;case Xv:default:return Ce}return e.next_out=s,e.avail_out=c,e.next_in=a,e.avail_in=o,i.hold=l,i.bits=d,(i.wsize||p!==e.avail_out&&i.mode<W&&(i.mode<Ro||t!==wp))&&ef(e,e.output,e.next_out,p-e.avail_out)?(i.mode=Do,Oo):(u-=e.avail_in,p-=e.avail_out,e.total_in+=u,e.total_out+=p,i.total+=p,i.wrap&&p&&(e.adler=i.check=i.flags?Ve(i.check,r,p,e.next_out-p):Io(i.check,r,p,e.next_out-p)),e.data_type=i.bits+(i.last?64:0)+(i.mode===ct?128:0)+(i.mode===aa||i.mode===Lo?256:0),(u===0&&p===0||t===wp)&&S===Kt&&(S=Kv),S)}function ay(e){if(!e||!e.state)return Ce;var t=e.state;return t.window&&(t.window=null),e.state=null,Kt}function sy(e,t){var i;return!e||!e.state||(i=e.state,(i.wrap&2)===0)?Ce:(i.head=t,t.done=!1,Kt)}function oy(e,t){var i=t.length,n,r,a;return!e||!e.state||(n=e.state,n.wrap!==0&&n.mode!==oa)?Ce:n.mode===oa&&(r=1,r=Io(r,t,i,0),r!==n.check)?Vp:(a=ef(e,t,i,i),a?(n.mode=Do,Oo):(n.havedict=1,Kt))}Oe.inflateReset=Zp;Oe.inflateReset2=Jp;Oe.inflateResetKeep=Xp;Oe.inflateInit=iy;Oe.inflateInit2=Qp;Oe.inflate=ry;Oe.inflateEnd=ay;Oe.inflateGetHeader=sy;Oe.inflateSetDictionary=oy;Oe.inflateInfo="pako inflate (from Nodeca project)"});var jo=P((d1,nf)=>{"use strict";nf.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}});var af=P((u1,rf)=>{"use strict";function ly(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}rf.exports=ly});var of=P(jn=>{"use strict";var Oi=tf(),Dn=st(),la=wo(),J=jo(),zo=Kr(),cy=_o(),dy=af(),sf=Object.prototype.toString;function Xt(e){if(!(this instanceof Xt))return new Xt(e);this.options=Dn.assign({chunkSize:16384,windowBits:0,to:""},e||{});var t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,t.windowBits===0&&(t.windowBits=-15)),t.windowBits>=0&&t.windowBits<16&&!(e&&e.windowBits)&&(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&(t.windowBits&15)===0&&(t.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new cy,this.strm.avail_out=0;var i=Oi.inflateInit2(this.strm,t.windowBits);if(i!==J.Z_OK)throw new Error(zo[i]);if(this.header=new dy,Oi.inflateGetHeader(this.strm,this.header),t.dictionary&&(typeof t.dictionary=="string"?t.dictionary=la.string2buf(t.dictionary):sf.call(t.dictionary)==="[object ArrayBuffer]"&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(i=Oi.inflateSetDictionary(this.strm,t.dictionary),i!==J.Z_OK)))throw new Error(zo[i])}Xt.prototype.push=function(e,t){var i=this.strm,n=this.options.chunkSize,r=this.options.dictionary,a,s,o,c,l,d=!1;if(this.ended)return!1;s=t===~~t?t:t===!0?J.Z_FINISH:J.Z_NO_FLUSH,typeof e=="string"?i.input=la.binstring2buf(e):sf.call(e)==="[object ArrayBuffer]"?i.input=new Uint8Array(e):i.input=e,i.next_in=0,i.avail_in=i.input.length;do{if(i.avail_out===0&&(i.output=new Dn.Buf8(n),i.next_out=0,i.avail_out=n),a=Oi.inflate(i,J.Z_NO_FLUSH),a===J.Z_NEED_DICT&&r&&(a=Oi.inflateSetDictionary(this.strm,r)),a===J.Z_BUF_ERROR&&d===!0&&(a=J.Z_OK,d=!1),a!==J.Z_STREAM_END&&a!==J.Z_OK)return this.onEnd(a),this.ended=!0,!1;i.next_out&&(i.avail_out===0||a===J.Z_STREAM_END||i.avail_in===0&&(s===J.Z_FINISH||s===J.Z_SYNC_FLUSH))&&(this.options.to==="string"?(o=la.utf8border(i.output,i.next_out),c=i.next_out-o,l=la.buf2string(i.output,o),i.next_out=c,i.avail_out=n-c,c&&Dn.arraySet(i.output,i.output,o,c,0),this.onData(l)):this.onData(Dn.shrinkBuf(i.output,i.next_out))),i.avail_in===0&&i.avail_out===0&&(d=!0)}while((i.avail_in>0||i.avail_out===0)&&a!==J.Z_STREAM_END);return a===J.Z_STREAM_END&&(s=J.Z_FINISH),s===J.Z_FINISH?(a=Oi.inflateEnd(this.strm),this.onEnd(a),this.ended=!0,a===J.Z_OK):(s===J.Z_SYNC_FLUSH&&(this.onEnd(J.Z_OK),i.avail_out=0),!0)};Xt.prototype.onData=function(e){this.chunks.push(e)};Xt.prototype.onEnd=function(e){e===J.Z_OK&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=Dn.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function Bo(e,t){var i=new Xt(t);if(i.push(e,!0),i.err)throw i.msg||zo[i.err];return i.result}function uy(e,t){return t=t||{},t.raw=!0,Bo(e,t)}jn.Inflate=Xt;jn.inflate=Bo;jn.inflateRaw=uy;jn.ungzip=Bo});var df=P((f1,cf)=>{"use strict";var py=st().assign,fy=up(),hy=of(),gy=jo(),lf={};py(lf,fy,hy,gy);cf.exports=lf});var pf=P(da=>{"use strict";var my=typeof Uint8Array!="undefined"&&typeof Uint16Array!="undefined"&&typeof Uint32Array!="undefined",by=df(),uf=Y(),ca=ye(),vy=my?"uint8array":"array";da.magic="\b\0";function Zt(e,t){ca.call(this,"FlateWorker/"+e),this._pako=null,this._pakoAction=e,this._pakoOptions=t,this.meta={}}uf.inherits(Zt,ca);Zt.prototype.processChunk=function(e){this.meta=e.meta,this._pako===null&&this._createPako(),this._pako.push(uf.transformTo(vy,e.data),!1)};Zt.prototype.flush=function(){ca.prototype.flush.call(this),this._pako===null&&this._createPako(),this._pako.push([],!0)};Zt.prototype.cleanUp=function(){ca.prototype.cleanUp.call(this),this._pako=null};Zt.prototype._createPako=function(){this._pako=new by[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var e=this;this._pako.onData=function(t){e.push({data:t,meta:e.meta})}};da.compressWorker=function(e){return new Zt("Deflate",e)};da.uncompressWorker=function(){return new Zt("Inflate",{})}});var No=P(Fo=>{"use strict";var ff=ye();Fo.STORE={magic:"\0\0",compressWorker:function(){return new ff("STORE compression")},uncompressWorker:function(){return new ff("STORE decompression")}};Fo.DEFLATE=pf()});var Ho=P(Jt=>{"use strict";Jt.LOCAL_FILE_HEADER="PK";Jt.CENTRAL_FILE_HEADER="PK";Jt.CENTRAL_DIRECTORY_END="PK";Jt.ZIP64_CENTRAL_DIRECTORY_LOCATOR="PK\x07";Jt.ZIP64_CENTRAL_DIRECTORY_END="PK";Jt.DATA_DESCRIPTOR="PK\x07\b"});var bf=P((b1,mf)=>{"use strict";var Di=Y(),ji=ye(),Uo=Ei(),hf=qr(),ua=Ho(),U=function(e,t){var i="",n;for(n=0;n<t;n++)i+=String.fromCharCode(e&255),e=e>>>8;return i},yy=function(e,t){var i=e;return e||(i=t?16893:33204),(i&65535)<<16},xy=function(e){return(e||0)&63},gf=function(e,t,i,n,r,a){var s=e.file,o=e.compression,c=a!==Uo.utf8encode,l=Di.transformTo("string",a(s.name)),d=Di.transformTo("string",Uo.utf8encode(s.name)),u=s.comment,p=Di.transformTo("string",a(u)),f=Di.transformTo("string",Uo.utf8encode(u)),g=d.length!==s.name.length,h=f.length!==u.length,m,b,v="",y="",x="",w=s.dir,E=s.date,A={crc32:0,compressedSize:0,uncompressedSize:0};(!t||i)&&(A.crc32=e.crc32,A.compressedSize=e.compressedSize,A.uncompressedSize=e.uncompressedSize);var S=0;t&&(S|=8),!c&&(g||h)&&(S|=2048);var k=0,I=0;w&&(k|=16),r==="UNIX"?(I=798,k|=yy(s.unixPermissions,w)):(I=20,k|=xy(s.dosPermissions,w)),m=E.getUTCHours(),m=m<<6,m=m|E.getUTCMinutes(),m=m<<5,m=m|E.getUTCSeconds()/2,b=E.getUTCFullYear()-1980,b=b<<4,b=b|E.getUTCMonth()+1,b=b<<5,b=b|E.getUTCDate(),g&&(y=U(1,1)+U(hf(l),4)+d,v+="up"+U(y.length,2)+y),h&&(x=U(1,1)+U(hf(p),4)+f,v+="uc"+U(x.length,2)+x);var _="";_+=`
2
- \0`,_+=U(S,2),_+=o.magic,_+=U(m,2),_+=U(b,2),_+=U(A.crc32,4),_+=U(A.compressedSize,4),_+=U(A.uncompressedSize,4),_+=U(l.length,2),_+=U(v.length,2);var C=ua.LOCAL_FILE_HEADER+_+l+v,R=ua.CENTRAL_FILE_HEADER+U(I,2)+_+U(p.length,2)+"\0\0\0\0"+U(k,4)+U(n,4)+l+v+p;return{fileRecord:C,dirRecord:R}},wy=function(e,t,i,n,r){var a="",s=Di.transformTo("string",r(n));return a=ua.CENTRAL_DIRECTORY_END+"\0\0\0\0"+U(e,2)+U(e,2)+U(t,4)+U(i,4)+U(s.length,2)+s,a},_y=function(e){var t="";return t=ua.DATA_DESCRIPTOR+U(e.crc32,4)+U(e.compressedSize,4)+U(e.uncompressedSize,4),t};function De(e,t,i,n){ji.call(this,"ZipFileWorker"),this.bytesWritten=0,this.zipComment=t,this.zipPlatform=i,this.encodeFileName=n,this.streamFiles=e,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}Di.inherits(De,ji);De.prototype.push=function(e){var t=e.meta.percent||0,i=this.entriesCount,n=this._sources.length;this.accumulate?this.contentBuffer.push(e):(this.bytesWritten+=e.data.length,ji.prototype.push.call(this,{data:e.data,meta:{currentFile:this.currentFile,percent:i?(t+100*(i-n-1))/i:100}}))};De.prototype.openedSource=function(e){this.currentSourceOffset=this.bytesWritten,this.currentFile=e.file.name;var t=this.streamFiles&&!e.file.dir;if(t){var i=gf(e,t,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:i.fileRecord,meta:{percent:0}})}else this.accumulate=!0};De.prototype.closedSource=function(e){this.accumulate=!1;var t=this.streamFiles&&!e.file.dir,i=gf(e,t,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(i.dirRecord),t)this.push({data:_y(e),meta:{percent:100}});else for(this.push({data:i.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null};De.prototype.flush=function(){for(var e=this.bytesWritten,t=0;t<this.dirRecords.length;t++)this.push({data:this.dirRecords[t],meta:{percent:100}});var i=this.bytesWritten-e,n=wy(this.dirRecords.length,i,e,this.zipComment,this.encodeFileName);this.push({data:n,meta:{percent:100}})};De.prototype.prepareNextSource=function(){this.previous=this._sources.shift(),this.openedSource(this.previous.streamInfo),this.isPaused?this.previous.pause():this.previous.resume()};De.prototype.registerPrevious=function(e){this._sources.push(e);var t=this;return e.on("data",function(i){t.processChunk(i)}),e.on("end",function(){t.closedSource(t.previous.streamInfo),t._sources.length?t.prepareNextSource():t.end()}),e.on("error",function(i){t.error(i)}),this};De.prototype.resume=function(){if(!ji.prototype.resume.call(this))return!1;if(!this.previous&&this._sources.length)return this.prepareNextSource(),!0;if(!this.previous&&!this._sources.length&&!this.generatedError)return this.end(),!0};De.prototype.error=function(e){var t=this._sources;if(!ji.prototype.error.call(this,e))return!1;for(var i=0;i<t.length;i++)try{t[i].error(e)}catch{}return!0};De.prototype.lock=function(){ji.prototype.lock.call(this);for(var e=this._sources,t=0;t<e.length;t++)e[t].lock()};mf.exports=De});var yf=P(vf=>{"use strict";var Ey=No(),Sy=bf(),Ay=function(e,t){var i=e||t,n=Ey[i];if(!n)throw new Error(i+" is not a valid compression method !");return n};vf.generateWorker=function(e,t,i){var n=new Sy(t.streamFiles,i,t.platform,t.encodeFileName),r=0;try{e.forEach(function(a,s){r++;var o=Ay(s.options.compression,t.compression),c=s.options.compressionOptions||t.compressionOptions||{},l=s.dir,d=s.date;s._compressWorker(o,c).withStreamInfo("file",{name:a,dir:l,date:d,comment:s.comment||"",unixPermissions:s.unixPermissions,dosPermissions:s.dosPermissions}).pipe(n)}),n.entriesCount=r}catch(a){n.error(a)}return n}});var wf=P((y1,xf)=>{"use strict";var Cy=Y(),pa=ye();function zn(e,t){pa.call(this,"Nodejs stream input adapter for "+e),this._upstreamEnded=!1,this._bindStream(t)}Cy.inherits(zn,pa);zn.prototype._bindStream=function(e){var t=this;this._stream=e,e.pause(),e.on("data",function(i){t.push({data:i,meta:{percent:0}})}).on("error",function(i){t.isPaused?this.generatedError=i:t.error(i)}).on("end",function(){t.isPaused?t._upstreamEnded=!0:t.end()})};zn.prototype.pause=function(){return pa.prototype.pause.call(this)?(this._stream.pause(),!0):!1};zn.prototype.resume=function(){return pa.prototype.resume.call(this)?(this._upstreamEnded?this.end():this._stream.resume(),!0):!1};xf.exports=zn});var Mf=P((x1,Rf)=>{"use strict";var Ty=Ei(),Bn=Y(),Af=ye(),ky=Ws(),Cf=Ys(),_f=Gr(),Ly=_u(),Ry=yf(),Ef=fn(),My=wf(),Tf=function(e,t,i){var n=Bn.getTypeOf(t),r,a=Bn.extend(i||{},Cf);a.date=a.date||new Date,a.compression!==null&&(a.compression=a.compression.toUpperCase()),typeof a.unixPermissions=="string"&&(a.unixPermissions=parseInt(a.unixPermissions,8)),a.unixPermissions&&a.unixPermissions&16384&&(a.dir=!0),a.dosPermissions&&a.dosPermissions&16&&(a.dir=!0),a.dir&&(e=kf(e)),a.createFolders&&(r=Py(e))&&Lf.call(this,r,!0);var s=n==="string"&&a.binary===!1&&a.base64===!1;(!i||typeof i.binary=="undefined")&&(a.binary=!s);var o=t instanceof _f&&t.uncompressedSize===0;(o||a.dir||!t||t.length===0)&&(a.base64=!1,a.binary=!0,t="",a.compression="STORE",n="string");var c=null;t instanceof _f||t instanceof Af?c=t:Ef.isNode&&Ef.isStream(t)?c=new My(e,t):c=Bn.prepareContent(e,t,a.binary,a.optimizedBinaryString,a.base64);var l=new Ly(e,c,a);this.files[e]=l},Py=function(e){e.slice(-1)==="/"&&(e=e.substring(0,e.length-1));var t=e.lastIndexOf("/");return t>0?e.substring(0,t):""},kf=function(e){return e.slice(-1)!=="/"&&(e+="/"),e},Lf=function(e,t){return t=typeof t!="undefined"?t:Cf.createFolders,e=kf(e),this.files[e]||Tf.call(this,e,null,{dir:!0,createFolders:t}),this.files[e]};function Sf(e){return Object.prototype.toString.call(e)==="[object RegExp]"}var Iy={load:function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},forEach:function(e){var t,i,n;for(t in this.files)n=this.files[t],i=t.slice(this.root.length,t.length),i&&t.slice(0,this.root.length)===this.root&&e(i,n)},filter:function(e){var t=[];return this.forEach(function(i,n){e(i,n)&&t.push(n)}),t},file:function(e,t,i){if(arguments.length===1)if(Sf(e)){var n=e;return this.filter(function(a,s){return!s.dir&&n.test(a)})}else{var r=this.files[this.root+e];return r&&!r.dir?r:null}else e=this.root+e,Tf.call(this,e,t,i);return this},folder:function(e){if(!e)return this;if(Sf(e))return this.filter(function(r,a){return a.dir&&e.test(r)});var t=this.root+e,i=Lf.call(this,t),n=this.clone();return n.root=i.name,n},remove:function(e){e=this.root+e;var t=this.files[e];if(t||(e.slice(-1)!=="/"&&(e+="/"),t=this.files[e]),t&&!t.dir)delete this.files[e];else for(var i=this.filter(function(r,a){return a.name.slice(0,e.length)===e}),n=0;n<i.length;n++)delete this.files[i[n].name];return this},generate:function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},generateInternalStream:function(e){var t,i={};try{if(i=Bn.extend(e||{},{streamFiles:!1,compression:"STORE",compressionOptions:null,type:"",platform:"DOS",comment:null,mimeType:"application/zip",encodeFileName:Ty.utf8encode}),i.type=i.type.toLowerCase(),i.compression=i.compression.toUpperCase(),i.type==="binarystring"&&(i.type="string"),!i.type)throw new Error("No output type specified.");Bn.checkSupport(i.type),(i.platform==="darwin"||i.platform==="freebsd"||i.platform==="linux"||i.platform==="sunos")&&(i.platform="UNIX"),i.platform==="win32"&&(i.platform="DOS");var n=i.comment||this.comment||"";t=Ry.generateWorker(this,i,n)}catch(r){t=new Af("error"),t.error(r)}return new ky(t,i.type||"string",i.mimeType)},generateAsync:function(e,t){return this.generateInternalStream(e).accumulate(t)},generateNodeStream:function(e,t){return e=e||{},e.type||(e.type="nodebuffer"),this.generateInternalStream(e).toNodejsStream(t)}};Rf.exports=Iy});var $o=P((w1,If)=>{"use strict";var Oy=Y();function Pf(e){this.data=e,this.length=e.length,this.index=0,this.zero=0}Pf.prototype={checkOffset:function(e){this.checkIndex(this.index+e)},checkIndex:function(e){if(this.length<this.zero+e||e<0)throw new Error("End of data reached (data length = "+this.length+", asked index = "+e+"). Corrupted zip ?")},setIndex:function(e){this.checkIndex(e),this.index=e},skip:function(e){this.setIndex(this.index+e)},byteAt:function(){},readInt:function(e){var t=0,i;for(this.checkOffset(e),i=this.index+e-1;i>=this.index;i--)t=(t<<8)+this.byteAt(i);return this.index+=e,t},readString:function(e){return Oy.transformTo("string",this.readData(e))},readData:function(){},lastIndexOfSignature:function(){},readAndCheckSignature:function(){},readDate:function(){var e=this.readInt(4);return new Date(Date.UTC((e>>25&127)+1980,(e>>21&15)-1,e>>16&31,e>>11&31,e>>5&63,(e&31)<<1))}};If.exports=Pf});var qo=P((_1,Df)=>{"use strict";var Of=$o(),Dy=Y();function zi(e){Of.call(this,e);for(var t=0;t<this.data.length;t++)e[t]=e[t]&255}Dy.inherits(zi,Of);zi.prototype.byteAt=function(e){return this.data[this.zero+e]};zi.prototype.lastIndexOfSignature=function(e){for(var t=e.charCodeAt(0),i=e.charCodeAt(1),n=e.charCodeAt(2),r=e.charCodeAt(3),a=this.length-4;a>=0;--a)if(this.data[a]===t&&this.data[a+1]===i&&this.data[a+2]===n&&this.data[a+3]===r)return a-this.zero;return-1};zi.prototype.readAndCheckSignature=function(e){var t=e.charCodeAt(0),i=e.charCodeAt(1),n=e.charCodeAt(2),r=e.charCodeAt(3),a=this.readData(4);return t===a[0]&&i===a[1]&&n===a[2]&&r===a[3]};zi.prototype.readData=function(e){if(this.checkOffset(e),e===0)return[];var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t};Df.exports=zi});var Bf=P((E1,zf)=>{"use strict";var jf=$o(),jy=Y();function Bi(e){jf.call(this,e)}jy.inherits(Bi,jf);Bi.prototype.byteAt=function(e){return this.data.charCodeAt(this.zero+e)};Bi.prototype.lastIndexOfSignature=function(e){return this.data.lastIndexOf(e)-this.zero};Bi.prototype.readAndCheckSignature=function(e){var t=this.readData(4);return e===t};Bi.prototype.readData=function(e){this.checkOffset(e);var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t};zf.exports=Bi});var Wo=P((S1,Nf)=>{"use strict";var Ff=qo(),zy=Y();function Go(e){Ff.call(this,e)}zy.inherits(Go,Ff);Go.prototype.readData=function(e){if(this.checkOffset(e),e===0)return new Uint8Array(0);var t=this.data.subarray(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t};Nf.exports=Go});var $f=P((A1,Uf)=>{"use strict";var Hf=Wo(),By=Y();function Yo(e){Hf.call(this,e)}By.inherits(Yo,Hf);Yo.prototype.readData=function(e){this.checkOffset(e);var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t};Uf.exports=Yo});var Vo=P((C1,Gf)=>{"use strict";var fa=Y(),qf=rt(),Fy=qo(),Ny=Bf(),Hy=$f(),Uy=Wo();Gf.exports=function(e){var t=fa.getTypeOf(e);return fa.checkSupport(t),t==="string"&&!qf.uint8array?new Ny(e):t==="nodebuffer"?new Hy(e):qf.uint8array?new Uy(fa.transformTo("uint8array",e)):new Fy(fa.transformTo("array",e))}});var Kf=P((T1,Vf)=>{"use strict";var Ko=Vo(),Mt=Y(),$y=Gr(),Wf=qr(),ha=Ei(),ga=No(),qy=rt(),Gy=0,Wy=3,Yy=function(e){for(var t in ga)if(Object.prototype.hasOwnProperty.call(ga,t)&&ga[t].magic===e)return ga[t];return null};function Yf(e,t){this.options=e,this.loadOptions=t}Yf.prototype={isEncrypted:function(){return(this.bitFlag&1)===1},useUTF8:function(){return(this.bitFlag&2048)===2048},readLocalPart:function(e){var t,i;if(e.skip(22),this.fileNameLength=e.readInt(2),i=e.readInt(2),this.fileName=e.readData(this.fileNameLength),e.skip(i),this.compressedSize===-1||this.uncompressedSize===-1)throw new Error("Bug or corrupted zip : didn't get enough information from the central directory (compressedSize === -1 || uncompressedSize === -1)");if(t=Yy(this.compressionMethod),t===null)throw new Error("Corrupted zip : compression "+Mt.pretty(this.compressionMethod)+" unknown (inner file : "+Mt.transformTo("string",this.fileName)+")");this.decompressed=new $y(this.compressedSize,this.uncompressedSize,this.crc32,t,e.readData(this.compressedSize))},readCentralPart:function(e){this.versionMadeBy=e.readInt(2),e.skip(2),this.bitFlag=e.readInt(2),this.compressionMethod=e.readString(2),this.date=e.readDate(),this.crc32=e.readInt(4),this.compressedSize=e.readInt(4),this.uncompressedSize=e.readInt(4);var t=e.readInt(2);if(this.extraFieldsLength=e.readInt(2),this.fileCommentLength=e.readInt(2),this.diskNumberStart=e.readInt(2),this.internalFileAttributes=e.readInt(2),this.externalFileAttributes=e.readInt(4),this.localHeaderOffset=e.readInt(4),this.isEncrypted())throw new Error("Encrypted zip are not supported");e.skip(t),this.readExtraFields(e),this.parseZIP64ExtraField(e),this.fileComment=e.readData(this.fileCommentLength)},processAttributes:function(){this.unixPermissions=null,this.dosPermissions=null;var e=this.versionMadeBy>>8;this.dir=!!(this.externalFileAttributes&16),e===Gy&&(this.dosPermissions=this.externalFileAttributes&63),e===Wy&&(this.unixPermissions=this.externalFileAttributes>>16&65535),!this.dir&&this.fileNameStr.slice(-1)==="/"&&(this.dir=!0)},parseZIP64ExtraField:function(){if(this.extraFields[1]){var e=Ko(this.extraFields[1].value);this.uncompressedSize===Mt.MAX_VALUE_32BITS&&(this.uncompressedSize=e.readInt(8)),this.compressedSize===Mt.MAX_VALUE_32BITS&&(this.compressedSize=e.readInt(8)),this.localHeaderOffset===Mt.MAX_VALUE_32BITS&&(this.localHeaderOffset=e.readInt(8)),this.diskNumberStart===Mt.MAX_VALUE_32BITS&&(this.diskNumberStart=e.readInt(4))}},readExtraFields:function(e){var t=e.index+this.extraFieldsLength,i,n,r;for(this.extraFields||(this.extraFields={});e.index+4<t;)i=e.readInt(2),n=e.readInt(2),r=e.readData(n),this.extraFields[i]={id:i,length:n,value:r};e.setIndex(t)},handleUTF8:function(){var e=qy.uint8array?"uint8array":"array";if(this.useUTF8())this.fileNameStr=ha.utf8decode(this.fileName),this.fileCommentStr=ha.utf8decode(this.fileComment);else{var t=this.findExtraFieldUnicodePath();if(t!==null)this.fileNameStr=t;else{var i=Mt.transformTo(e,this.fileName);this.fileNameStr=this.loadOptions.decodeFileName(i)}var n=this.findExtraFieldUnicodeComment();if(n!==null)this.fileCommentStr=n;else{var r=Mt.transformTo(e,this.fileComment);this.fileCommentStr=this.loadOptions.decodeFileName(r)}}},findExtraFieldUnicodePath:function(){var e=this.extraFields[28789];if(e){var t=Ko(e.value);return t.readInt(1)!==1||Wf(this.fileName)!==t.readInt(4)?null:ha.utf8decode(t.readData(e.length-5))}return null},findExtraFieldUnicodeComment:function(){var e=this.extraFields[25461];if(e){var t=Ko(e.value);return t.readInt(1)!==1||Wf(this.fileComment)!==t.readInt(4)?null:ha.utf8decode(t.readData(e.length-5))}return null}};Vf.exports=Yf});var Jf=P((k1,Zf)=>{"use strict";var Vy=Vo(),dt=Y(),je=Ho(),Ky=Kf(),Xy=rt();function Xf(e){this.files=[],this.loadOptions=e}Xf.prototype={checkSignature:function(e){if(!this.reader.readAndCheckSignature(e)){this.reader.index-=4;var t=this.reader.readString(4);throw new Error("Corrupted zip or bug: unexpected signature ("+dt.pretty(t)+", expected "+dt.pretty(e)+")")}},isSignature:function(e,t){var i=this.reader.index;this.reader.setIndex(e);var n=this.reader.readString(4),r=n===t;return this.reader.setIndex(i),r},readBlockEndOfCentral:function(){this.diskNumber=this.reader.readInt(2),this.diskWithCentralDirStart=this.reader.readInt(2),this.centralDirRecordsOnThisDisk=this.reader.readInt(2),this.centralDirRecords=this.reader.readInt(2),this.centralDirSize=this.reader.readInt(4),this.centralDirOffset=this.reader.readInt(4),this.zipCommentLength=this.reader.readInt(2);var e=this.reader.readData(this.zipCommentLength),t=Xy.uint8array?"uint8array":"array",i=dt.transformTo(t,e);this.zipComment=this.loadOptions.decodeFileName(i)},readBlockZip64EndOfCentral:function(){this.zip64EndOfCentralSize=this.reader.readInt(8),this.reader.skip(4),this.diskNumber=this.reader.readInt(4),this.diskWithCentralDirStart=this.reader.readInt(4),this.centralDirRecordsOnThisDisk=this.reader.readInt(8),this.centralDirRecords=this.reader.readInt(8),this.centralDirSize=this.reader.readInt(8),this.centralDirOffset=this.reader.readInt(8),this.zip64ExtensibleData={};for(var e=this.zip64EndOfCentralSize-44,t=0,i,n,r;t<e;)i=this.reader.readInt(2),n=this.reader.readInt(4),r=this.reader.readData(n),this.zip64ExtensibleData[i]={id:i,length:n,value:r}},readBlockZip64EndOfCentralLocator:function(){if(this.diskWithZip64CentralDirStart=this.reader.readInt(4),this.relativeOffsetEndOfZip64CentralDir=this.reader.readInt(8),this.disksCount=this.reader.readInt(4),this.disksCount>1)throw new Error("Multi-volumes zip are not supported")},readLocalFiles:function(){var e,t;for(e=0;e<this.files.length;e++)t=this.files[e],this.reader.setIndex(t.localHeaderOffset),this.checkSignature(je.LOCAL_FILE_HEADER),t.readLocalPart(this.reader),t.handleUTF8(),t.processAttributes()},readCentralDir:function(){var e;for(this.reader.setIndex(this.centralDirOffset);this.reader.readAndCheckSignature(je.CENTRAL_FILE_HEADER);)e=new Ky({zip64:this.zip64},this.loadOptions),e.readCentralPart(this.reader),this.files.push(e);if(this.centralDirRecords!==this.files.length&&this.centralDirRecords!==0&&this.files.length===0)throw new Error("Corrupted zip or bug: expected "+this.centralDirRecords+" records in central dir, got "+this.files.length)},readEndOfCentral:function(){var e=this.reader.lastIndexOfSignature(je.CENTRAL_DIRECTORY_END);if(e<0){var t=!this.isSignature(0,je.LOCAL_FILE_HEADER);throw t?new Error("Can't find end of central directory : is this a zip file ? If it is, see https://stuk.github.io/jszip/documentation/howto/read_zip.html"):new Error("Corrupted zip: can't find end of central directory")}this.reader.setIndex(e);var i=e;if(this.checkSignature(je.CENTRAL_DIRECTORY_END),this.readBlockEndOfCentral(),this.diskNumber===dt.MAX_VALUE_16BITS||this.diskWithCentralDirStart===dt.MAX_VALUE_16BITS||this.centralDirRecordsOnThisDisk===dt.MAX_VALUE_16BITS||this.centralDirRecords===dt.MAX_VALUE_16BITS||this.centralDirSize===dt.MAX_VALUE_32BITS||this.centralDirOffset===dt.MAX_VALUE_32BITS){if(this.zip64=!0,e=this.reader.lastIndexOfSignature(je.ZIP64_CENTRAL_DIRECTORY_LOCATOR),e<0)throw new Error("Corrupted zip: can't find the ZIP64 end of central directory locator");if(this.reader.setIndex(e),this.checkSignature(je.ZIP64_CENTRAL_DIRECTORY_LOCATOR),this.readBlockZip64EndOfCentralLocator(),!this.isSignature(this.relativeOffsetEndOfZip64CentralDir,je.ZIP64_CENTRAL_DIRECTORY_END)&&(this.relativeOffsetEndOfZip64CentralDir=this.reader.lastIndexOfSignature(je.ZIP64_CENTRAL_DIRECTORY_END),this.relativeOffsetEndOfZip64CentralDir<0))throw new Error("Corrupted zip: can't find the ZIP64 end of central directory");this.reader.setIndex(this.relativeOffsetEndOfZip64CentralDir),this.checkSignature(je.ZIP64_CENTRAL_DIRECTORY_END),this.readBlockZip64EndOfCentral()}var n=this.centralDirOffset+this.centralDirSize;this.zip64&&(n+=20,n+=12+this.zip64EndOfCentralSize);var r=i-n;if(r>0)this.isSignature(i,je.CENTRAL_FILE_HEADER)||(this.reader.zero=r);else if(r<0)throw new Error("Corrupted zip: missing "+Math.abs(r)+" bytes.")},prepareReader:function(e){this.reader=Vy(e)},load:function(e){this.prepareReader(e),this.readEndOfCentral(),this.readCentralDir(),this.readLocalFiles()}};Zf.exports=Xf});var th=P((L1,eh)=>{"use strict";var Xo=Y(),ma=xi(),Zy=Ei(),Jy=Jf(),Qy=Xs(),Qf=fn();function ex(e){return new ma.Promise(function(t,i){var n=e.decompressed.getContentWorker().pipe(new Qy);n.on("error",function(r){i(r)}).on("end",function(){n.streamInfo.crc32!==e.decompressed.crc32?i(new Error("Corrupted zip : CRC32 mismatch")):t()}).resume()})}eh.exports=function(e,t){var i=this;return t=Xo.extend(t||{},{base64:!1,checkCRC32:!1,optimizedBinaryString:!1,createFolders:!1,decodeFileName:Zy.utf8decode}),Qf.isNode&&Qf.isStream(e)?ma.Promise.reject(new Error("JSZip can't accept a stream when loading a zip file.")):Xo.prepareContent("the loaded zip file",e,!0,t.optimizedBinaryString,t.base64).then(function(n){var r=new Jy(t);return r.load(n),r}).then(function(r){var a=[ma.Promise.resolve(r)],s=r.files;if(t.checkCRC32)for(var o=0;o<s.length;o++)a.push(ex(s[o]));return ma.Promise.all(a)}).then(function(r){for(var a=r.shift(),s=a.files,o=0;o<s.length;o++){var c=s[o],l=c.fileNameStr,d=Xo.resolve(c.fileNameStr);i.file(d,c.decompressed,{binary:!0,optimizedBinaryString:!0,date:c.date,dir:c.dir,comment:c.fileCommentStr.length?c.fileCommentStr:null,unixPermissions:c.unixPermissions,dosPermissions:c.dosPermissions,createFolders:t.createFolders}),c.dir||(i.file(d).unsafeOriginalName=l)}return a.zipComment.length&&(i.comment=a.zipComment),i})}});var nh=P((R1,ih)=>{"use strict";function Te(){if(!(this instanceof Te))return new Te;if(arguments.length)throw new Error("The constructor with parameters has been removed in JSZip 3.0, please check the upgrade guide.");this.files=Object.create(null),this.comment=null,this.root="",this.clone=function(){var e=new Te;for(var t in this)typeof this[t]!="function"&&(e[t]=this[t]);return e}}Te.prototype=Mf();Te.prototype.loadAsync=th();Te.support=rt();Te.defaults=Ys();Te.version="3.10.1";Te.loadAsync=function(e,t){return new Te().loadAsync(e,t)};Te.external=xi();ih.exports=Te});import{Application as Bx}from"pixi.js";var xt={};function cr(e,t,i=!1){xt[e]||(xt[e]=[]),xt[e].push({fn:t,once:i})}function es(e,t){if(xt[e]){if(!t){delete xt[e];return}xt[e]=xt[e].filter(i=>i.fn!==t)}}function dr(e,...t){let i=xt[e];if(i)for(let n of[...i])n.fn(...t),n.once&&es(e,n.fn)}function _e(e,t){cr(e,t,!0)}var te=null,Me=[],oi=null;function hc(e){te=e,Me=[],oi!==null&&(clearTimeout(oi),oi=null)}function gc(){var e,t,i;return{endpoint:(te==null?void 0:te.endpoint)||"",transport:(te==null?void 0:te.transport)||"beacon",batchSize:(e=te==null?void 0:te.batchSize)!=null?e:10,flushIntervalMs:(t=te==null?void 0:te.flushIntervalMs)!=null?t:300,maxQueue:(i=te==null?void 0:te.maxQueue)!=null?i:200,debug:!!(te!=null&&te.debug)}}async function pc(e,t,i,n){let r=JSON.stringify(t);if(i==="beacon"&&typeof navigator!="undefined"&&typeof navigator.sendBeacon=="function")try{let a=navigator.sendBeacon(e,new Blob([r],{type:"application/json"}));n&&console.log("[handler.telemetry] beacon",a,t);return}catch(a){n&&console.warn("[handler.telemetry] beacon failed, fallback to fetch",a)}try{await fetch(e,{method:"POST",headers:{"Content-Type":"application/json"},body:r,keepalive:!0}),n&&console.log("[handler.telemetry] fetch",t)}catch(a){n&&console.warn("[handler.telemetry] fetch failed",a)}}function ts(e,t){let i=gc();if(t&&i.endpoint){if(Me.push(e),Me.length>i.maxQueue&&(Me=Me.slice(Me.length-i.maxQueue)),Me.length>=i.batchSize){fc();return}oi===null&&(oi=window.setTimeout(()=>{oi=null,fc()},i.flushIntervalMs))}}async function fc(){let e=gc();if(!e.endpoint||Me.length===0)return;let t=Me.splice(0,e.batchSize);await pc(e.endpoint,{events:t},e.transport,e.debug),Me.length>0&&await pc(e.endpoint,{events:Me.splice(0,e.batchSize)},e.transport,e.debug)}function mc(e){return Math.max(0,Math.min(1,e))}function mg(e){let t=String(e!=null?e:"power2.out");if(t==="linear")return i=>i;if(t==="sine.inOut")return i=>.5-Math.cos(Math.PI*i)/2;if(t==="power2.out"||t==="easeOutQuad")return i=>1-(1-i)*(1-i);if(t.startsWith("back.out")){let i=t.match(/back\.out\(([\d.]+)\)/),n=i?Number(i[1]):1.8;return r=>1+(n+1)*Math.pow(r-1,3)+n*Math.pow(r-1,2)}return i=>1-(1-i)*(1-i)}function nn(){return typeof performance!="undefined"&&performance.now?performance.now():Date.now()}function bg(e,t){let i=e==null?void 0:e[t];return typeof i=="number"?i:0}function bc(e,t,i){try{e[t]=i}catch{}}function vg(e){let t=e==null?void 0:e.scale;if(!t)return null;let i=typeof t.x=="number"?t.x:1,n=typeof t.y=="number"?t.y:1;return{x:i,y:n}}function vc(e,t){let i=e==null?void 0:e.scale;if(i)try{typeof i.set=="function"?i.set(t.x,t.y):(typeof i.x=="number"&&(i.x=t.x),typeof i.y=="number"&&(i.y=t.y))}catch{}}function yc(e,t){let i=vg(e);if(!i)return{from:null,to:null};let n=null,r=null;return typeof t.scale=="number"?(n=t.scale,r=t.scale):t.scale&&typeof t.scale=="object"&&(typeof t.scale.x=="number"&&(n=t.scale.x),typeof t.scale.y=="number"&&(r=t.scale.y)),typeof t.scaleX=="number"&&(n=t.scaleX),typeof t.scaleY=="number"&&(r=t.scaleY),n===null&&r===null?{from:null,to:null}:{from:{x:i.x,y:i.y},to:{x:n!=null?n:i.x,y:r!=null?r:i.y}}}function xc(){let e=new Set,t=new WeakMap,i=null,n=()=>{if(i!=null)return;i=requestAnimationFrame(()=>{i=null,o(),e.size>0&&n()})},r=d=>{var p;e.add(d);let u=(p=t.get(d.target))!=null?p:new Set;u.add(d),t.set(d.target,u),n()},a=d=>{e.delete(d);let u=t.get(d.target);u&&(u.delete(d),u.size===0&&t.delete(d.target))},s=d=>{d.killed||(d.killed=!0,a(d))},o=()=>{var u,p;let d=nn();for(let f of Array.from(e)){if(f.killed||f.paused)continue;let g=d-f.startMs-f.delayMs;if(g<0)continue;let h=f.durationMs>0?g/f.durationMs:1,m=mc(h),b=f.repeat>=0?f.repeat+1:1,v=f.repeat>0?Math.min(Math.floor(h),b-1):0;if(f.repeat>0&&h>=1){let w=h-v;m=mc(w)}let y=f.ease(m);f.yoyo&&v%2===1&&(y=1-y);for(let w of f.props)bc(f.target,w.key,w.from+(w.to-w.from)*y);f.scaleFrom&&f.scaleTo&&vc(f.target,{x:f.scaleFrom.x+(f.scaleTo.x-f.scaleFrom.x)*y,y:f.scaleFrom.y+(f.scaleTo.y-f.scaleFrom.y)*y});try{(u=f.onUpdate)==null||u.call(f)}catch{}if(h>=b){s(f);try{(p=f.onComplete)==null||p.call(f)}catch{}}}},c=(d,u,p)=>{var w;let f=Math.max(0,(typeof u.duration=="number"?u.duration:.5)*1e3),g=Math.max(0,(typeof u.delay=="number"?u.delay:0)*1e3+((w=p==null?void 0:p.delayMsOverride)!=null?w:0)),h=mg(u.ease),m=typeof u.repeat=="number"?Math.max(0,u.repeat|0):0,b=u.yoyo===!0,v=new Set(["duration","delay","ease","repeat","yoyo","onUpdate","onComplete","scale","scaleX","scaleY"]),y=[];for(let E of Object.keys(u)){if(v.has(E))continue;let A=u[E];typeof A=="number"&&y.push({key:E,from:bg(d,E),to:A})}let x=yc(d,u);return{target:d,startMs:nn(),delayMs:g,durationMs:f,ease:h,props:y,scaleFrom:x.from,scaleTo:x.to,repeat:m,yoyo:b,onUpdate:typeof u.onUpdate=="function"?u.onUpdate:void 0,onComplete:typeof u.onComplete=="function"?u.onComplete:void 0,killed:!1,paused:!1,pauseAtMs:null}},l={to(d,u){let p=c(d,u);return r(p),{kill:()=>s(p),pause:()=>{p.paused||(p.paused=!0,p.pauseAtMs=nn())},resume:()=>{var h;if(!p.paused)return;let f=(h=p.pauseAtMs)!=null?h:nn(),g=nn()-f;p.startMs+=g,p.paused=!1,p.pauseAtMs=null},isActive:()=>!p.killed&&!p.paused}},fromTo(d,u,p){return l.set(d,u),l.to(d,p)},set(d,u){if(!d||!u)return;for(let f of Object.keys(u)){let g=u[f];f==="scale"||f==="scaleX"||f==="scaleY"||typeof g=="number"&&bc(d,f,g)}let p=yc(d,u);p.to&&vc(d,p.to)},killTweensOf(d){let u=t.get(d);if(u)for(let p of Array.from(u))s(p)},timeline(d={}){let u=[],p=0,f=!1,g=[],h=v=>{if(typeof v=="number")return Math.max(0,v*1e3);let y=typeof v=="string"?v.trim():"";return y.startsWith("+=")?p+Math.max(0,Number(y.slice(2))*1e3||0):y?Math.max(0,Number(y)*1e3||0):p},m=v=>{u.push(v);let y=Math.max(0,(typeof v.vars.duration=="number"?v.vars.duration:.5)*1e3);p=Math.max(p,v.atMs+y)},b={to(v,y,x){return m({kind:"to",target:v,vars:y,atMs:h(x)}),b},fromTo(v,y,x,w){return m({kind:"fromTo",target:v,vars:x,from:y,atMs:h(w)}),b},play(){var v,y;if(f)return b;f=!0,g=[];for(let x of u)x.kind==="fromTo"&&l.set(x.target,(v=x.from)!=null?v:{}),g.push(l.to(x.target,{...x.vars,delay:x.atMs/1e3+((y=x.vars.delay)!=null?y:0)}));return b},pause(){for(let v of g)v.pause();return b},kill(){for(let v of g)v.kill();g=[],f=!1}};return d.paused||b.play(),b}};return l}function wc(){if(typeof window=="undefined")return;let e=window;if(!e.gsap)try{e.gsap=xc()}catch{}}var _c={name:"handler-playable-sdk",version:"0.3.31",type:"module",description:"Handler Playable SDK v0.1 with contract-aligned surface (root sandbox, canonical event envelope).",main:"dist/index.cjs",module:"dist/index.js",types:"dist/index.d.ts",exports:{".":{types:"./dist/index.d.ts",import:"./dist/index.js",require:"./dist/index.cjs"},"./pixi":{types:"./dist/pixi/index.d.ts",import:"./dist/pixi/index.js",require:"./dist/pixi/index.cjs"},"./pixi/index.css":{import:"./dist/pixi/index.css",require:"./dist/pixi/index.css"},"./three":{types:"./dist/three/index.d.ts",import:"./dist/three/index.js",require:"./dist/three/index.cjs"}},scripts:{prebuild:"python3 src/preview/build-css.py",build:"tsup src/index.ts src/pixi/index.ts src/three/index.ts --format cjs,esm --dts --clean --minify --external lottie-web && npm run create-mjs-symlinks && npm run obfuscate && npm run postbuild",postbuild:"python3 src/preview/copy-css-to-dist.py","create-mjs-symlinks":"cd dist && ln -sf index.js index.mjs && cd pixi && ln -sf index.js index.mjs && cd ../three && ln -sf index.js index.mjs","build:dev":"tsup src/index.ts src/pixi/index.ts src/three/index.ts --format cjs,esm --dts --clean --external lottie-web && npm run create-mjs-symlinks",obfuscate:"javascript-obfuscator dist/pixi/index.js --output dist/pixi/index.js --config obfuscator.config.json && javascript-obfuscator dist/three/index.js --output dist/three/index.js --config obfuscator.config.json",lint:"eslint 'src/**/*.{ts,tsx}'",typecheck:"tsc --noEmit",prepublishOnly:"npm run build","publish:update":"node scripts/publish-and-update.cjs patch","publish:update:minor":"node scripts/publish-and-update.cjs minor","publish:update:major":"node scripts/publish-and-update.cjs major"},author:"Handler",license:"MIT",publishConfig:{access:"public"},repository:{type:"git",url:"https://github.com/HandlerAIGames/handler-playable-sdk.git"},files:["dist","LICENSE","README.md"],peerDependencies:{"lottie-web":"^5.0.0","pixi.js":"^8.0.0",three:"^0.182.0"},peerDependenciesMeta:{"pixi.js":{optional:!0},three:{optional:!0},"lottie-web":{optional:!0}},devDependencies:{"@types/three":"^0.182.0",eslint:"^9.39.2","javascript-obfuscator":"^5.1.0","pixi.js":"8.8.1",three:"^0.182.0","ts-node":"^10.9.2",tsup:"^8.4.0",typescript:"^5.7.2","typescript-eslint":"^8.53.0"},dependencies:{"@google/genai":"^1.35.0","@google/generative-ai":"^0.24.1",sharp:"^0.34.5"}};var Ee=0,xg=Ee++,Ec=Ee++,Sc=Ee++,Ac=Ee++,Cc=Ee++,Tc=Ee++,kc=Ee++,Lc=Ee++,Rc=Ee++,Mc=Ee++,Pc=Ee++,Ic=Ee++,K=xg;function Oc(){return K===Ec}function Dc(){return K===Sc}function jc(){return K===Ac}function zc(){return K===Cc}function li(){return K===Tc}function ci(){return K===kc}function Bc(){return K===Lc}function Fc(){return K===Rc}function Nc(){return K===Mc}function is(){return K===Pc}function ns(){return K===Ic}function Hc(){let e=typeof AD_PROTOCOL!="undefined"?AD_PROTOCOL:"none",t=typeof AD_NETWORK!="undefined"?AD_NETWORK:"web_embed";if(e==="mraid")try{mraid.getState(),K=Ec;return}catch{}else if(e==="dapi")try{dapi.isReady(),K=Sc;return}catch{}if(t==="facebook")try{typeof FbPlayableAd!="undefined"&&(K=Ac)}catch{}else if(t==="google")try{typeof ExitApi!="undefined"&&(K=Cc)}catch{}else if(t==="mintegral")window.gameReady&&(K=Tc);else if(t==="tapjoy")window.TJ_API&&(K=kc);else if(t==="tiktok")window.openAppStore&&(K=Lc);else if(t==="smadex")try{window.smxTracking&&(K=Rc)}catch{}else if(t==="snapchat")try{window.ScPlayableAd&&(K=Mc)}catch{}else t==="vungle"?K=Pc:(e==="nucleo"||t==="nucleo")&&(K=Ic)}import rs from"lottie-web";var Uc=rs;typeof window!="undefined"&&(window.lottie=rs,window.__baseLottie=rs);function ie(e,t){let i=(r,a)=>a===0?r:i(a,r%a),n=i(e,t);return`${e/n}:${t/n}`}var I0=[{id:"iphone-15-pro-max",label:"iPhone 15 Pro Max",width:430,height:932,category:"iphone",ratio:ie(430,932)},{id:"iphone-15-pro",label:"iPhone 15 Pro",width:393,height:852,category:"iphone",ratio:ie(393,852)},{id:"iphone-15",label:"iPhone 15",width:393,height:852,category:"iphone",ratio:ie(393,852)},{id:"iphone-14",label:"iPhone 14",width:390,height:844,category:"iphone",ratio:ie(390,844)},{id:"iphone-se",label:"iPhone SE",width:375,height:667,category:"iphone",ratio:ie(375,667)},{id:"iphone-12-mini",label:"iPhone 12 Mini",width:360,height:780,category:"iphone",ratio:ie(360,780)}],O0=[{id:"pixel-8-pro",label:"Pixel 8 Pro",width:448,height:998,category:"android",ratio:ie(448,998)},{id:"pixel-8",label:"Pixel 8",width:412,height:915,category:"android",ratio:ie(412,915)},{id:"samsung-s24-ultra",label:"Samsung S24 Ultra",width:412,height:915,category:"android",ratio:ie(412,915)},{id:"samsung-s24",label:"Samsung S24",width:360,height:780,category:"android",ratio:ie(360,780)},{id:"samsung-a54",label:"Samsung A54",width:412,height:915,category:"android",ratio:ie(412,915)},{id:"oneplus-12",label:"OnePlus 12",width:412,height:915,category:"android",ratio:ie(412,915)}],D0=[{id:"ipad-pro-12",label:'iPad Pro 12.9"',width:1024,height:1366,category:"tablet",ratio:ie(1024,1366)},{id:"ipad-pro-11",label:'iPad Pro 11"',width:834,height:1194,category:"tablet",ratio:ie(834,1194)},{id:"ipad-air",label:"iPad Air",width:820,height:1180,category:"tablet",ratio:ie(820,1180)},{id:"ipad-mini",label:"iPad Mini",width:768,height:1024,category:"tablet",ratio:ie(768,1024)},{id:"samsung-tab-s9",label:"Samsung Tab S9",width:800,height:1280,category:"tablet",ratio:ie(800,1280)}],as=[{id:"playable-portrait",label:"Playable Portrait",width:320,height:480,category:"playable",ratio:"2:3",mraidScale:1},{id:"mraid-320x480",label:"MRAID 320\xD7480",width:320,height:480,category:"playable",ratio:"2:3",mraidScale:1},{id:"iphone-14",label:"iPhone 14",width:390,height:844,category:"playable",ratio:ie(390,844),mraidScale:.7},{id:"ipad-mini",label:"iPad Mini",width:768,height:1024,category:"playable",ratio:ie(768,1024),mraidScale:.7}];var $c=[...as],qc=[{category:"playable",label:"Playable Ad",devices:as}],ss=as[0];function di(e){return $c.find(t=>t.id===e)||ss}function j0(e){return $c.filter(t=>t.category===e)}var ur=class{constructor(){this.root=null;this.listContainer=null;this.searchInput=null;this.selectedId=null;this.options=null;this.retryTimer=null;this.screenFilter="all"}getScreenFilterStorageKey(){return`handler_preview_screen_filter::${typeof window!="undefined"&&window.__HANDLER_PROJECT_ID||"default"}`}render(){return`
1
+ import{c as Ka,d as He,e as Xa}from"./chunk-I5OOVR5U.js";import{i as lr}from"./chunk-LV4HGC5G.js";import{c as tn,d as or,e as Za,g as dc,h as Ja,j as Qa,k as uc,l as pc,m as es,n as ts,o as fc}from"./chunk-ZLL42OOV.js";import{a as Fe,b as P,c as bg}from"./chunk-Q7FPWOA3.js";var rn=P((vw,cs)=>{"use strict";typeof process=="undefined"||!process.version||process.version.indexOf("v0.")===0||process.version.indexOf("v1.")===0&&process.version.indexOf("v1.8.")!==0?cs.exports={nextTick:Sg}:cs.exports=process;function Sg(e,t,i,n){if(typeof e!="function")throw new TypeError('"callback" argument must be a function');var r=arguments.length,a,s;switch(r){case 0:case 1:return process.nextTick(e);case 2:return process.nextTick(function(){e.call(null,t)});case 3:return process.nextTick(function(){e.call(null,t,i)});case 4:return process.nextTick(function(){e.call(null,t,i,n)});default:for(a=new Array(r-1),s=0;s<a.length;)a[s++]=arguments[s];return process.nextTick(function(){e.apply(null,a)})}}});var Yc=P((yw,Vc)=>{"use strict";var Ag={}.toString;Vc.exports=Array.isArray||function(e){return Ag.call(e)=="[object Array]"}});var ds=P((xw,Kc)=>{"use strict";Kc.exports=Fe("stream")});var an=P((us,Zc)=>{"use strict";var Cr=Fe("buffer"),tt=Cr.Buffer;function Xc(e,t){for(var i in e)t[i]=e[i]}tt.from&&tt.alloc&&tt.allocUnsafe&&tt.allocUnsafeSlow?Zc.exports=Cr:(Xc(Cr,us),us.Buffer=pi);function pi(e,t,i){return tt(e,t,i)}Xc(tt,pi);pi.from=function(e,t,i){if(typeof e=="number")throw new TypeError("Argument must not be a number");return tt(e,t,i)};pi.alloc=function(e,t,i){if(typeof e!="number")throw new TypeError("Argument must be a number");var n=tt(e);return t!==void 0?typeof i=="string"?n.fill(t,i):n.fill(t):n.fill(0),n};pi.allocUnsafe=function(e){if(typeof e!="number")throw new TypeError("Argument must be a number");return tt(e)};pi.allocUnsafeSlow=function(e){if(typeof e!="number")throw new TypeError("Argument must be a number");return Cr.SlowBuffer(e)}});var fi=P(le=>{"use strict";function Cg(e){return Array.isArray?Array.isArray(e):Tr(e)==="[object Array]"}le.isArray=Cg;function Tg(e){return typeof e=="boolean"}le.isBoolean=Tg;function kg(e){return e===null}le.isNull=kg;function Lg(e){return e==null}le.isNullOrUndefined=Lg;function Rg(e){return typeof e=="number"}le.isNumber=Rg;function Mg(e){return typeof e=="string"}le.isString=Mg;function Pg(e){return typeof e=="symbol"}le.isSymbol=Pg;function Ig(e){return e===void 0}le.isUndefined=Ig;function Og(e){return Tr(e)==="[object RegExp]"}le.isRegExp=Og;function Dg(e){return typeof e=="object"&&e!==null}le.isObject=Dg;function jg(e){return Tr(e)==="[object Date]"}le.isDate=jg;function zg(e){return Tr(e)==="[object Error]"||e instanceof Error}le.isError=zg;function Bg(e){return typeof e=="function"}le.isFunction=Bg;function Ng(e){return e===null||typeof e=="boolean"||typeof e=="number"||typeof e=="string"||typeof e=="symbol"||typeof e=="undefined"}le.isPrimitive=Ng;le.isBuffer=Fe("buffer").Buffer.isBuffer;function Tr(e){return Object.prototype.toString.call(e)}});var Jc=P((_w,ps)=>{"use strict";typeof Object.create=="function"?ps.exports=function(t,i){i&&(t.super_=i,t.prototype=Object.create(i.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}))}:ps.exports=function(t,i){if(i){t.super_=i;var n=function(){};n.prototype=i.prototype,t.prototype=new n,t.prototype.constructor=t}}});var hi=P((Ew,hs)=>{"use strict";try{if(fs=Fe("util"),typeof fs.inherits!="function")throw"";hs.exports=fs.inherits}catch{hs.exports=Jc()}var fs});var ed=P((Sw,gs)=>{"use strict";function Fg(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var Qc=an().Buffer,sn=Fe("util");function Hg(e,t,i){e.copy(t,i)}gs.exports=(function(){function e(){Fg(this,e),this.head=null,this.tail=null,this.length=0}return e.prototype.push=function(i){var n={data:i,next:null};this.length>0?this.tail.next=n:this.head=n,this.tail=n,++this.length},e.prototype.unshift=function(i){var n={data:i,next:this.head};this.length===0&&(this.tail=n),this.head=n,++this.length},e.prototype.shift=function(){if(this.length!==0){var i=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,i}},e.prototype.clear=function(){this.head=this.tail=null,this.length=0},e.prototype.join=function(i){if(this.length===0)return"";for(var n=this.head,r=""+n.data;n=n.next;)r+=i+n.data;return r},e.prototype.concat=function(i){if(this.length===0)return Qc.alloc(0);for(var n=Qc.allocUnsafe(i>>>0),r=this.head,a=0;r;)Hg(r.data,n,a),a+=r.data.length,r=r.next;return n},e})();sn&&sn.inspect&&sn.inspect.custom&&(gs.exports.prototype[sn.inspect.custom]=function(){var e=sn.inspect({length:this.length});return this.constructor.name+" "+e})});var ms=P((Aw,td)=>{"use strict";var kr=rn();function Ug(e,t){var i=this,n=this._readableState&&this._readableState.destroyed,r=this._writableState&&this._writableState.destroyed;return n||r?(t?t(e):e&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,kr.nextTick(Lr,this,e)):kr.nextTick(Lr,this,e)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,function(a){!t&&a?i._writableState?i._writableState.errorEmitted||(i._writableState.errorEmitted=!0,kr.nextTick(Lr,i,a)):kr.nextTick(Lr,i,a):t&&t(a)}),this)}function $g(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function Lr(e,t){e.emit("error",t)}td.exports={destroy:Ug,undestroy:$g}});var nd=P((Cw,id)=>{"use strict";id.exports=Fe("util").deprecate});var vs=P((Tw,ud)=>{"use strict";var Nt=rn();ud.exports=Q;function ad(e){var t=this;this.next=null,this.entry=null,this.finish=function(){om(t,e)}}var qg=!process.browser&&["v0.10","v0.9."].indexOf(process.version.slice(0,5))>-1?setImmediate:Nt.nextTick,gi;Q.WritableState=ln;var sd=Object.create(fi());sd.inherits=hi();var Gg={deprecate:nd()},od=ds(),Mr=an().Buffer,Wg=(typeof global!="undefined"?global:typeof window!="undefined"?window:typeof self!="undefined"?self:{}).Uint8Array||function(){};function Vg(e){return Mr.from(e)}function Yg(e){return Mr.isBuffer(e)||e instanceof Wg}var ld=ms();sd.inherits(Q,od);function Kg(){}function ln(e,t){gi=gi||Ft(),e=e||{};var i=t instanceof gi;this.objectMode=!!e.objectMode,i&&(this.objectMode=this.objectMode||!!e.writableObjectMode);var n=e.highWaterMark,r=e.writableHighWaterMark,a=this.objectMode?16:16*1024;n||n===0?this.highWaterMark=n:i&&(r||r===0)?this.highWaterMark=r:this.highWaterMark=a,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var s=e.decodeStrings===!1;this.decodeStrings=!s,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(o){im(t,o)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new ad(this)}ln.prototype.getBuffer=function(){for(var t=this.bufferedRequest,i=[];t;)i.push(t),t=t.next;return i};(function(){try{Object.defineProperty(ln.prototype,"buffer",{get:Gg.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}})();var Rr;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(Rr=Function.prototype[Symbol.hasInstance],Object.defineProperty(Q,Symbol.hasInstance,{value:function(e){return Rr.call(this,e)?!0:this!==Q?!1:e&&e._writableState instanceof ln}})):Rr=function(e){return e instanceof this};function Q(e){if(gi=gi||Ft(),!Rr.call(Q,this)&&!(this instanceof gi))return new Q(e);this._writableState=new ln(e,this),this.writable=!0,e&&(typeof e.write=="function"&&(this._write=e.write),typeof e.writev=="function"&&(this._writev=e.writev),typeof e.destroy=="function"&&(this._destroy=e.destroy),typeof e.final=="function"&&(this._final=e.final)),od.call(this)}Q.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))};function Xg(e,t){var i=new Error("write after end");e.emit("error",i),Nt.nextTick(t,i)}function Zg(e,t,i,n){var r=!0,a=!1;return i===null?a=new TypeError("May not write null values to stream"):typeof i!="string"&&i!==void 0&&!t.objectMode&&(a=new TypeError("Invalid non-string/buffer chunk")),a&&(e.emit("error",a),Nt.nextTick(n,a),r=!1),r}Q.prototype.write=function(e,t,i){var n=this._writableState,r=!1,a=!n.objectMode&&Yg(e);return a&&!Mr.isBuffer(e)&&(e=Vg(e)),typeof t=="function"&&(i=t,t=null),a?t="buffer":t||(t=n.defaultEncoding),typeof i!="function"&&(i=Kg),n.ended?Xg(this,i):(a||Zg(this,n,e,i))&&(n.pendingcb++,r=Qg(this,n,a,e,t,i)),r};Q.prototype.cork=function(){var e=this._writableState;e.corked++};Q.prototype.uncork=function(){var e=this._writableState;e.corked&&(e.corked--,!e.writing&&!e.corked&&!e.bufferProcessing&&e.bufferedRequest&&cd(this,e))};Q.prototype.setDefaultEncoding=function(t){if(typeof t=="string"&&(t=t.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((t+"").toLowerCase())>-1))throw new TypeError("Unknown encoding: "+t);return this._writableState.defaultEncoding=t,this};function Jg(e,t,i){return!e.objectMode&&e.decodeStrings!==!1&&typeof t=="string"&&(t=Mr.from(t,i)),t}Object.defineProperty(Q.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function Qg(e,t,i,n,r,a){if(!i){var s=Jg(t,n,r);n!==s&&(i=!0,r="buffer",n=s)}var o=t.objectMode?1:n.length;t.length+=o;var c=t.length<t.highWaterMark;if(c||(t.needDrain=!0),t.writing||t.corked){var l=t.lastBufferedRequest;t.lastBufferedRequest={chunk:n,encoding:r,isBuf:i,callback:a,next:null},l?l.next=t.lastBufferedRequest:t.bufferedRequest=t.lastBufferedRequest,t.bufferedRequestCount+=1}else bs(e,t,!1,o,n,r,a);return c}function bs(e,t,i,n,r,a,s){t.writelen=n,t.writecb=s,t.writing=!0,t.sync=!0,i?e._writev(r,t.onwrite):e._write(r,a,t.onwrite),t.sync=!1}function em(e,t,i,n,r){--t.pendingcb,i?(Nt.nextTick(r,n),Nt.nextTick(on,e,t),e._writableState.errorEmitted=!0,e.emit("error",n)):(r(n),e._writableState.errorEmitted=!0,e.emit("error",n),on(e,t))}function tm(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}function im(e,t){var i=e._writableState,n=i.sync,r=i.writecb;if(tm(i),t)em(e,i,n,t,r);else{var a=dd(i);!a&&!i.corked&&!i.bufferProcessing&&i.bufferedRequest&&cd(e,i),n?qg(rd,e,i,a,r):rd(e,i,a,r)}}function rd(e,t,i,n){i||nm(e,t),t.pendingcb--,n(),on(e,t)}function nm(e,t){t.length===0&&t.needDrain&&(t.needDrain=!1,e.emit("drain"))}function cd(e,t){t.bufferProcessing=!0;var i=t.bufferedRequest;if(e._writev&&i&&i.next){var n=t.bufferedRequestCount,r=new Array(n),a=t.corkedRequestsFree;a.entry=i;for(var s=0,o=!0;i;)r[s]=i,i.isBuf||(o=!1),i=i.next,s+=1;r.allBuffers=o,bs(e,t,!0,t.length,r,"",a.finish),t.pendingcb++,t.lastBufferedRequest=null,a.next?(t.corkedRequestsFree=a.next,a.next=null):t.corkedRequestsFree=new ad(t),t.bufferedRequestCount=0}else{for(;i;){var c=i.chunk,l=i.encoding,d=i.callback,u=t.objectMode?1:c.length;if(bs(e,t,!1,u,c,l,d),i=i.next,t.bufferedRequestCount--,t.writing)break}i===null&&(t.lastBufferedRequest=null)}t.bufferedRequest=i,t.bufferProcessing=!1}Q.prototype._write=function(e,t,i){i(new Error("_write() is not implemented"))};Q.prototype._writev=null;Q.prototype.end=function(e,t,i){var n=this._writableState;typeof e=="function"?(i=e,e=null,t=null):typeof t=="function"&&(i=t,t=null),e!=null&&this.write(e,t),n.corked&&(n.corked=1,this.uncork()),n.ending||sm(this,n,i)};function dd(e){return e.ending&&e.length===0&&e.bufferedRequest===null&&!e.finished&&!e.writing}function rm(e,t){e._final(function(i){t.pendingcb--,i&&e.emit("error",i),t.prefinished=!0,e.emit("prefinish"),on(e,t)})}function am(e,t){!t.prefinished&&!t.finalCalled&&(typeof e._final=="function"?(t.pendingcb++,t.finalCalled=!0,Nt.nextTick(rm,e,t)):(t.prefinished=!0,e.emit("prefinish")))}function on(e,t){var i=dd(t);return i&&(am(e,t),t.pendingcb===0&&(t.finished=!0,e.emit("finish"))),i}function sm(e,t,i){t.ending=!0,on(e,t),i&&(t.finished?Nt.nextTick(i):e.once("finish",i)),t.ended=!0,e.writable=!1}function om(e,t,i){var n=e.entry;for(e.entry=null;n;){var r=n.callback;t.pendingcb--,r(i),n=n.next}t.corkedRequestsFree.next=e}Object.defineProperty(Q.prototype,"destroyed",{get:function(){return this._writableState===void 0?!1:this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}});Q.prototype.destroy=ld.destroy;Q.prototype._undestroy=ld.undestroy;Q.prototype._destroy=function(e,t){this.end(),t(e)}});var Ft=P((kw,gd)=>{"use strict";var pd=rn(),lm=Object.keys||function(e){var t=[];for(var i in e)t.push(i);return t};gd.exports=it;var fd=Object.create(fi());fd.inherits=hi();var hd=ws(),xs=vs();fd.inherits(it,hd);for(ys=lm(xs.prototype),Pr=0;Pr<ys.length;Pr++)Ir=ys[Pr],it.prototype[Ir]||(it.prototype[Ir]=xs.prototype[Ir]);var ys,Ir,Pr;function it(e){if(!(this instanceof it))return new it(e);hd.call(this,e),xs.call(this,e),e&&e.readable===!1&&(this.readable=!1),e&&e.writable===!1&&(this.writable=!1),this.allowHalfOpen=!0,e&&e.allowHalfOpen===!1&&(this.allowHalfOpen=!1),this.once("end",cm)}Object.defineProperty(it.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function cm(){this.allowHalfOpen||this._writableState.ended||pd.nextTick(dm,this)}function dm(e){e.end()}Object.defineProperty(it.prototype,"destroyed",{get:function(){return this._readableState===void 0||this._writableState===void 0?!1:this._readableState.destroyed&&this._writableState.destroyed},set:function(e){this._readableState===void 0||this._writableState===void 0||(this._readableState.destroyed=e,this._writableState.destroyed=e)}});it.prototype._destroy=function(e,t){this.push(null),this.end(),pd.nextTick(t,e)}});var Ss=P(bd=>{"use strict";var Es=an().Buffer,md=Es.isEncoding||function(e){switch(e=""+e,e&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function um(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}function pm(e){var t=um(e);if(typeof t!="string"&&(Es.isEncoding===md||!md(e)))throw new Error("Unknown encoding: "+e);return t||e}bd.StringDecoder=cn;function cn(e){this.encoding=pm(e);var t;switch(this.encoding){case"utf16le":this.text=vm,this.end=ym,t=4;break;case"utf8":this.fillLast=gm,t=4;break;case"base64":this.text=xm,this.end=wm,t=3;break;default:this.write=_m,this.end=Em;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=Es.allocUnsafe(t)}cn.prototype.write=function(e){if(e.length===0)return"";var t,i;if(this.lastNeed){if(t=this.fillLast(e),t===void 0)return"";i=this.lastNeed,this.lastNeed=0}else i=0;return i<e.length?t?t+this.text(e,i):this.text(e,i):t||""};cn.prototype.end=bm;cn.prototype.text=mm;cn.prototype.fillLast=function(e){if(this.lastNeed<=e.length)return e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length),this.lastNeed-=e.length};function _s(e){return e<=127?0:e>>5===6?2:e>>4===14?3:e>>3===30?4:e>>6===2?-1:-2}function fm(e,t,i){var n=t.length-1;if(n<i)return 0;var r=_s(t[n]);return r>=0?(r>0&&(e.lastNeed=r-1),r):--n<i||r===-2?0:(r=_s(t[n]),r>=0?(r>0&&(e.lastNeed=r-2),r):--n<i||r===-2?0:(r=_s(t[n]),r>=0?(r>0&&(r===2?r=0:e.lastNeed=r-3),r):0))}function hm(e,t,i){if((t[0]&192)!==128)return e.lastNeed=0,"\uFFFD";if(e.lastNeed>1&&t.length>1){if((t[1]&192)!==128)return e.lastNeed=1,"\uFFFD";if(e.lastNeed>2&&t.length>2&&(t[2]&192)!==128)return e.lastNeed=2,"\uFFFD"}}function gm(e){var t=this.lastTotal-this.lastNeed,i=hm(this,e,t);if(i!==void 0)return i;if(this.lastNeed<=e.length)return e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,t,0,e.length),this.lastNeed-=e.length}function mm(e,t){var i=fm(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=i;var n=e.length-(i-this.lastNeed);return e.copy(this.lastChar,0,n),e.toString("utf8",t,n)}function bm(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+"\uFFFD":t}function vm(e,t){if((e.length-t)%2===0){var i=e.toString("utf16le",t);if(i){var n=i.charCodeAt(i.length-1);if(n>=55296&&n<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],i.slice(0,-1)}return i}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function ym(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var i=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,i)}return t}function xm(e,t){var i=(e.length-t)%3;return i===0?e.toString("base64",t):(this.lastNeed=3-i,this.lastTotal=3,i===1?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-i))}function wm(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function _m(e){return e.toString(this.encoding)}function Em(e){return e&&e.length?this.write(e):""}});var ws=P((Mw,Ld)=>{"use strict";var bi=rn();Ld.exports=G;var Sm=Yc(),dn;G.ReadableState=Sd;var Rw=Fe("events").EventEmitter,wd=function(e,t){return e.listeners(t).length},Ls=ds(),un=an().Buffer,Am=(typeof global!="undefined"?global:typeof window!="undefined"?window:typeof self!="undefined"?self:{}).Uint8Array||function(){};function Cm(e){return un.from(e)}function Tm(e){return un.isBuffer(e)||e instanceof Am}var _d=Object.create(fi());_d.inherits=hi();var As=Fe("util"),H=void 0;As&&As.debuglog?H=As.debuglog("stream"):H=function(){};var km=ed(),Ed=ms(),mi;_d.inherits(G,Ls);var Cs=["error","close","destroy","pause","resume"];function Lm(e,t,i){if(typeof e.prependListener=="function")return e.prependListener(t,i);!e._events||!e._events[t]?e.on(t,i):Sm(e._events[t])?e._events[t].unshift(i):e._events[t]=[i,e._events[t]]}function Sd(e,t){dn=dn||Ft(),e=e||{};var i=t instanceof dn;this.objectMode=!!e.objectMode,i&&(this.objectMode=this.objectMode||!!e.readableObjectMode);var n=e.highWaterMark,r=e.readableHighWaterMark,a=this.objectMode?16:16*1024;n||n===0?this.highWaterMark=n:i&&(r||r===0)?this.highWaterMark=r:this.highWaterMark=a,this.highWaterMark=Math.floor(this.highWaterMark),this.buffer=new km,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.destroyed=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(mi||(mi=Ss().StringDecoder),this.decoder=new mi(e.encoding),this.encoding=e.encoding)}function G(e){if(dn=dn||Ft(),!(this instanceof G))return new G(e);this._readableState=new Sd(e,this),this.readable=!0,e&&(typeof e.read=="function"&&(this._read=e.read),typeof e.destroy=="function"&&(this._destroy=e.destroy)),Ls.call(this)}Object.defineProperty(G.prototype,"destroyed",{get:function(){return this._readableState===void 0?!1:this._readableState.destroyed},set:function(e){this._readableState&&(this._readableState.destroyed=e)}});G.prototype.destroy=Ed.destroy;G.prototype._undestroy=Ed.undestroy;G.prototype._destroy=function(e,t){this.push(null),t(e)};G.prototype.push=function(e,t){var i=this._readableState,n;return i.objectMode?n=!0:typeof e=="string"&&(t=t||i.defaultEncoding,t!==i.encoding&&(e=un.from(e,t),t=""),n=!0),Ad(this,e,t,!1,n)};G.prototype.unshift=function(e){return Ad(this,e,null,!0,!1)};function Ad(e,t,i,n,r){var a=e._readableState;if(t===null)a.reading=!1,Im(e,a);else{var s;r||(s=Rm(a,t)),s?e.emit("error",s):a.objectMode||t&&t.length>0?(typeof t!="string"&&!a.objectMode&&Object.getPrototypeOf(t)!==un.prototype&&(t=Cm(t)),n?a.endEmitted?e.emit("error",new Error("stream.unshift() after end event")):Ts(e,a,t,!0):a.ended?e.emit("error",new Error("stream.push() after EOF")):(a.reading=!1,a.decoder&&!i?(t=a.decoder.write(t),a.objectMode||t.length!==0?Ts(e,a,t,!1):Cd(e,a)):Ts(e,a,t,!1))):n||(a.reading=!1)}return Mm(a)}function Ts(e,t,i,n){t.flowing&&t.length===0&&!t.sync?(e.emit("data",i),e.read(0)):(t.length+=t.objectMode?1:i.length,n?t.buffer.unshift(i):t.buffer.push(i),t.needReadable&&Or(e)),Cd(e,t)}function Rm(e,t){var i;return!Tm(t)&&typeof t!="string"&&t!==void 0&&!e.objectMode&&(i=new TypeError("Invalid non-string/buffer chunk")),i}function Mm(e){return!e.ended&&(e.needReadable||e.length<e.highWaterMark||e.length===0)}G.prototype.isPaused=function(){return this._readableState.flowing===!1};G.prototype.setEncoding=function(e){return mi||(mi=Ss().StringDecoder),this._readableState.decoder=new mi(e),this._readableState.encoding=e,this};var vd=8388608;function Pm(e){return e>=vd?e=vd:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}function yd(e,t){return e<=0||t.length===0&&t.ended?0:t.objectMode?1:e!==e?t.flowing&&t.length?t.buffer.head.data.length:t.length:(e>t.highWaterMark&&(t.highWaterMark=Pm(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}G.prototype.read=function(e){H("read",e),e=parseInt(e,10);var t=this._readableState,i=e;if(e!==0&&(t.emittedReadable=!1),e===0&&t.needReadable&&(t.length>=t.highWaterMark||t.ended))return H("read: emitReadable",t.length,t.ended),t.length===0&&t.ended?ks(this):Or(this),null;if(e=yd(e,t),e===0&&t.ended)return t.length===0&&ks(this),null;var n=t.needReadable;H("need readable",n),(t.length===0||t.length-e<t.highWaterMark)&&(n=!0,H("length less than watermark",n)),t.ended||t.reading?(n=!1,H("reading or ended",n)):n&&(H("do read"),t.reading=!0,t.sync=!0,t.length===0&&(t.needReadable=!0),this._read(t.highWaterMark),t.sync=!1,t.reading||(e=yd(i,t)));var r;return e>0?r=Td(e,t):r=null,r===null?(t.needReadable=!0,e=0):t.length-=e,t.length===0&&(t.ended||(t.needReadable=!0),i!==e&&t.ended&&ks(this)),r!==null&&this.emit("data",r),r};function Im(e,t){if(!t.ended){if(t.decoder){var i=t.decoder.end();i&&i.length&&(t.buffer.push(i),t.length+=t.objectMode?1:i.length)}t.ended=!0,Or(e)}}function Or(e){var t=e._readableState;t.needReadable=!1,t.emittedReadable||(H("emitReadable",t.flowing),t.emittedReadable=!0,t.sync?bi.nextTick(xd,e):xd(e))}function xd(e){H("emit readable"),e.emit("readable"),Rs(e)}function Cd(e,t){t.readingMore||(t.readingMore=!0,bi.nextTick(Om,e,t))}function Om(e,t){for(var i=t.length;!t.reading&&!t.flowing&&!t.ended&&t.length<t.highWaterMark&&(H("maybeReadMore read 0"),e.read(0),i!==t.length);)i=t.length;t.readingMore=!1}G.prototype._read=function(e){this.emit("error",new Error("_read() is not implemented"))};G.prototype.pipe=function(e,t){var i=this,n=this._readableState;switch(n.pipesCount){case 0:n.pipes=e;break;case 1:n.pipes=[n.pipes,e];break;default:n.pipes.push(e);break}n.pipesCount+=1,H("pipe count=%d opts=%j",n.pipesCount,t);var r=(!t||t.end!==!1)&&e!==process.stdout&&e!==process.stderr,a=r?o:m;n.endEmitted?bi.nextTick(a):i.once("end",a),e.on("unpipe",s);function s(b,v){H("onunpipe"),b===i&&v&&v.hasUnpiped===!1&&(v.hasUnpiped=!0,d())}function o(){H("onend"),e.end()}var c=Dm(i);e.on("drain",c);var l=!1;function d(){H("cleanup"),e.removeListener("close",g),e.removeListener("finish",h),e.removeListener("drain",c),e.removeListener("error",f),e.removeListener("unpipe",s),i.removeListener("end",o),i.removeListener("end",m),i.removeListener("data",p),l=!0,n.awaitDrain&&(!e._writableState||e._writableState.needDrain)&&c()}var u=!1;i.on("data",p);function p(b){H("ondata"),u=!1;var v=e.write(b);v===!1&&!u&&((n.pipesCount===1&&n.pipes===e||n.pipesCount>1&&kd(n.pipes,e)!==-1)&&!l&&(H("false write response, pause",n.awaitDrain),n.awaitDrain++,u=!0),i.pause())}function f(b){H("onerror",b),m(),e.removeListener("error",f),wd(e,"error")===0&&e.emit("error",b)}Lm(e,"error",f);function g(){e.removeListener("finish",h),m()}e.once("close",g);function h(){H("onfinish"),e.removeListener("close",g),m()}e.once("finish",h);function m(){H("unpipe"),i.unpipe(e)}return e.emit("pipe",i),n.flowing||(H("pipe resume"),i.resume()),e};function Dm(e){return function(){var t=e._readableState;H("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,t.awaitDrain===0&&wd(e,"data")&&(t.flowing=!0,Rs(e))}}G.prototype.unpipe=function(e){var t=this._readableState,i={hasUnpiped:!1};if(t.pipesCount===0)return this;if(t.pipesCount===1)return e&&e!==t.pipes?this:(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this,i),this);if(!e){var n=t.pipes,r=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var a=0;a<r;a++)n[a].emit("unpipe",this,{hasUnpiped:!1});return this}var s=kd(t.pipes,e);return s===-1?this:(t.pipes.splice(s,1),t.pipesCount-=1,t.pipesCount===1&&(t.pipes=t.pipes[0]),e.emit("unpipe",this,i),this)};G.prototype.on=function(e,t){var i=Ls.prototype.on.call(this,e,t);if(e==="data")this._readableState.flowing!==!1&&this.resume();else if(e==="readable"){var n=this._readableState;!n.endEmitted&&!n.readableListening&&(n.readableListening=n.needReadable=!0,n.emittedReadable=!1,n.reading?n.length&&Or(this):bi.nextTick(jm,this))}return i};G.prototype.addListener=G.prototype.on;function jm(e){H("readable nexttick read 0"),e.read(0)}G.prototype.resume=function(){var e=this._readableState;return e.flowing||(H("resume"),e.flowing=!0,zm(this,e)),this};function zm(e,t){t.resumeScheduled||(t.resumeScheduled=!0,bi.nextTick(Bm,e,t))}function Bm(e,t){t.reading||(H("resume read 0"),e.read(0)),t.resumeScheduled=!1,t.awaitDrain=0,e.emit("resume"),Rs(e),t.flowing&&!t.reading&&e.read(0)}G.prototype.pause=function(){return H("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(H("pause"),this._readableState.flowing=!1,this.emit("pause")),this};function Rs(e){var t=e._readableState;for(H("flow",t.flowing);t.flowing&&e.read()!==null;);}G.prototype.wrap=function(e){var t=this,i=this._readableState,n=!1;e.on("end",function(){if(H("wrapped end"),i.decoder&&!i.ended){var s=i.decoder.end();s&&s.length&&t.push(s)}t.push(null)}),e.on("data",function(s){if(H("wrapped data"),i.decoder&&(s=i.decoder.write(s)),!(i.objectMode&&s==null)&&!(!i.objectMode&&(!s||!s.length))){var o=t.push(s);o||(n=!0,e.pause())}});for(var r in e)this[r]===void 0&&typeof e[r]=="function"&&(this[r]=(function(s){return function(){return e[s].apply(e,arguments)}})(r));for(var a=0;a<Cs.length;a++)e.on(Cs[a],this.emit.bind(this,Cs[a]));return this._read=function(s){H("wrapped _read",s),n&&(n=!1,e.resume())},this};Object.defineProperty(G.prototype,"readableHighWaterMark",{enumerable:!1,get:function(){return this._readableState.highWaterMark}});G._fromList=Td;function Td(e,t){if(t.length===0)return null;var i;return t.objectMode?i=t.buffer.shift():!e||e>=t.length?(t.decoder?i=t.buffer.join(""):t.buffer.length===1?i=t.buffer.head.data:i=t.buffer.concat(t.length),t.buffer.clear()):i=Nm(e,t.buffer,t.decoder),i}function Nm(e,t,i){var n;return e<t.head.data.length?(n=t.head.data.slice(0,e),t.head.data=t.head.data.slice(e)):e===t.head.data.length?n=t.shift():n=i?Fm(e,t):Hm(e,t),n}function Fm(e,t){var i=t.head,n=1,r=i.data;for(e-=r.length;i=i.next;){var a=i.data,s=e>a.length?a.length:e;if(s===a.length?r+=a:r+=a.slice(0,e),e-=s,e===0){s===a.length?(++n,i.next?t.head=i.next:t.head=t.tail=null):(t.head=i,i.data=a.slice(s));break}++n}return t.length-=n,r}function Hm(e,t){var i=un.allocUnsafe(e),n=t.head,r=1;for(n.data.copy(i),e-=n.data.length;n=n.next;){var a=n.data,s=e>a.length?a.length:e;if(a.copy(i,i.length-e,0,s),e-=s,e===0){s===a.length?(++r,n.next?t.head=n.next:t.head=t.tail=null):(t.head=n,n.data=a.slice(s));break}++r}return t.length-=r,i}function ks(e){var t=e._readableState;if(t.length>0)throw new Error('"endReadable()" called on non-empty stream');t.endEmitted||(t.ended=!0,bi.nextTick(Um,t,e))}function Um(e,t){!e.endEmitted&&e.length===0&&(e.endEmitted=!0,t.readable=!1,t.emit("end"))}function kd(e,t){for(var i=0,n=e.length;i<n;i++)if(e[i]===t)return i;return-1}});var Ms=P((Pw,Pd)=>{"use strict";Pd.exports=nt;var Dr=Ft(),Md=Object.create(fi());Md.inherits=hi();Md.inherits(nt,Dr);function $m(e,t){var i=this._transformState;i.transforming=!1;var n=i.writecb;if(!n)return this.emit("error",new Error("write callback called multiple times"));i.writechunk=null,i.writecb=null,t!=null&&this.push(t),n(e);var r=this._readableState;r.reading=!1,(r.needReadable||r.length<r.highWaterMark)&&this._read(r.highWaterMark)}function nt(e){if(!(this instanceof nt))return new nt(e);Dr.call(this,e),this._transformState={afterTransform:$m.bind(this),needTransform:!1,transforming:!1,writecb:null,writechunk:null,writeencoding:null},this._readableState.needReadable=!0,this._readableState.sync=!1,e&&(typeof e.transform=="function"&&(this._transform=e.transform),typeof e.flush=="function"&&(this._flush=e.flush)),this.on("prefinish",qm)}function qm(){var e=this;typeof this._flush=="function"?this._flush(function(t,i){Rd(e,t,i)}):Rd(this,null,null)}nt.prototype.push=function(e,t){return this._transformState.needTransform=!1,Dr.prototype.push.call(this,e,t)};nt.prototype._transform=function(e,t,i){throw new Error("_transform() is not implemented")};nt.prototype._write=function(e,t,i){var n=this._transformState;if(n.writecb=i,n.writechunk=e,n.writeencoding=t,!n.transforming){var r=this._readableState;(n.needTransform||r.needReadable||r.length<r.highWaterMark)&&this._read(r.highWaterMark)}};nt.prototype._read=function(e){var t=this._transformState;t.writechunk!==null&&t.writecb&&!t.transforming?(t.transforming=!0,this._transform(t.writechunk,t.writeencoding,t.afterTransform)):t.needTransform=!0};nt.prototype._destroy=function(e,t){var i=this;Dr.prototype._destroy.call(this,e,function(n){t(n),i.emit("close")})};function Rd(e,t,i){if(t)return e.emit("error",t);if(i!=null&&e.push(i),e._writableState.length)throw new Error("Calling transform done when ws.length != 0");if(e._transformState.transforming)throw new Error("Calling transform done when still transforming");return e.push(null)}});var jd=P((Iw,Dd)=>{"use strict";Dd.exports=pn;var Id=Ms(),Od=Object.create(fi());Od.inherits=hi();Od.inherits(pn,Id);function pn(e){if(!(this instanceof pn))return new pn(e);Id.call(this,e)}pn.prototype._transform=function(e,t,i){i(null,e)}});var Ps=P((re,jr)=>{"use strict";var Ue=Fe("stream");process.env.READABLE_STREAM==="disable"&&Ue?(jr.exports=Ue,re=jr.exports=Ue.Readable,re.Readable=Ue.Readable,re.Writable=Ue.Writable,re.Duplex=Ue.Duplex,re.Transform=Ue.Transform,re.PassThrough=Ue.PassThrough,re.Stream=Ue):(re=jr.exports=ws(),re.Stream=Ue||re,re.Readable=re,re.Writable=vs(),re.Duplex=Ft(),re.Transform=Ms(),re.PassThrough=jd())});var rt=P(ve=>{"use strict";ve.base64=!0;ve.array=!0;ve.string=!0;ve.arraybuffer=typeof ArrayBuffer!="undefined"&&typeof Uint8Array!="undefined";ve.nodebuffer=typeof Buffer!="undefined";ve.uint8array=typeof Uint8Array!="undefined";if(typeof ArrayBuffer=="undefined")ve.blob=!1;else{Is=new ArrayBuffer(0);try{ve.blob=new Blob([Is],{type:"application/zip"}).size===0}catch{try{zd=self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder,Os=new zd,Os.append(Is),ve.blob=Os.getBlob("application/zip").size===0}catch{ve.blob=!1}}}var Is,zd,Os;try{ve.nodestream=!!Ps().Readable}catch{ve.nodestream=!1}});var js=P(Ds=>{"use strict";var Gm=V(),Wm=rt(),$e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";Ds.encode=function(e){for(var t=[],i,n,r,a,s,o,c,l=0,d=e.length,u=d,p=Gm.getTypeOf(e)!=="string";l<e.length;)u=d-l,p?(i=e[l++],n=l<d?e[l++]:0,r=l<d?e[l++]:0):(i=e.charCodeAt(l++),n=l<d?e.charCodeAt(l++):0,r=l<d?e.charCodeAt(l++):0),a=i>>2,s=(i&3)<<4|n>>4,o=u>1?(n&15)<<2|r>>6:64,c=u>2?r&63:64,t.push($e.charAt(a)+$e.charAt(s)+$e.charAt(o)+$e.charAt(c));return t.join("")};Ds.decode=function(e){var t,i,n,r,a,s,o,c=0,l=0,d="data:";if(e.substr(0,d.length)===d)throw new Error("Invalid base64 input, it looks like a data url.");e=e.replace(/[^A-Za-z0-9+/=]/g,"");var u=e.length*3/4;if(e.charAt(e.length-1)===$e.charAt(64)&&u--,e.charAt(e.length-2)===$e.charAt(64)&&u--,u%1!==0)throw new Error("Invalid base64 input, bad content length.");var p;for(Wm.uint8array?p=new Uint8Array(u|0):p=new Array(u|0);c<e.length;)r=$e.indexOf(e.charAt(c++)),a=$e.indexOf(e.charAt(c++)),s=$e.indexOf(e.charAt(c++)),o=$e.indexOf(e.charAt(c++)),t=r<<2|a>>4,i=(a&15)<<4|s>>2,n=(s&3)<<6|o,p[l++]=t,s!==64&&(p[l++]=i),o!==64&&(p[l++]=n);return p}});var fn=P((jw,Bd)=>{"use strict";Bd.exports={isNode:typeof Buffer!="undefined",newBufferFrom:function(e,t){if(Buffer.from&&Buffer.from!==Uint8Array.from)return Buffer.from(e,t);if(typeof e=="number")throw new Error('The "data" argument must not be a number');return new Buffer(e,t)},allocBuffer:function(e){if(Buffer.alloc)return Buffer.alloc(e);var t=new Buffer(e);return t.fill(0),t},isBuffer:function(e){return Buffer.isBuffer(e)},isStream:function(e){return e&&typeof e.on=="function"&&typeof e.pause=="function"&&typeof e.resume=="function"}}});var Ud=P((zw,Hd)=>{"use strict";var Nd=global.MutationObserver||global.WebKitMutationObserver,vi;process.browser?Nd?(zs=0,Fd=new Nd(hn),Bs=global.document.createTextNode(""),Fd.observe(Bs,{characterData:!0}),vi=function(){Bs.data=zs=++zs%2}):!global.setImmediate&&typeof global.MessageChannel!="undefined"?(Ns=new global.MessageChannel,Ns.port1.onmessage=hn,vi=function(){Ns.port2.postMessage(0)}):"document"in global&&"onreadystatechange"in global.document.createElement("script")?vi=function(){var e=global.document.createElement("script");e.onreadystatechange=function(){hn(),e.onreadystatechange=null,e.parentNode.removeChild(e),e=null},global.document.documentElement.appendChild(e)}:vi=function(){setTimeout(hn,0)}:vi=function(){process.nextTick(hn)};var zs,Fd,Bs,Ns,Fs,gn=[];function hn(){Fs=!0;for(var e,t,i=gn.length;i;){for(t=gn,gn=[],e=-1;++e<i;)t[e]();i=gn.length}Fs=!1}Hd.exports=Vm;function Vm(e){gn.push(e)===1&&!Fs&&vi()}});var Kd=P((Bw,Yd)=>{"use strict";var $d=Ud();function yi(){}var ce={},qd=["REJECTED"],Hs=["FULFILLED"],Gd=["PENDING"];process.browser||(mn=["UNHANDLED"]);var mn;Yd.exports=wt;function wt(e){if(typeof e!="function")throw new TypeError("resolver must be a function");this.state=Gd,this.queue=[],this.outcome=void 0,process.browser||(this.handled=mn),e!==yi&&Wd(this,e)}wt.prototype.finally=function(e){if(typeof e!="function")return this;var t=this.constructor;return this.then(i,n);function i(r){function a(){return r}return t.resolve(e()).then(a)}function n(r){function a(){throw r}return t.resolve(e()).then(a)}};wt.prototype.catch=function(e){return this.then(null,e)};wt.prototype.then=function(e,t){if(typeof e!="function"&&this.state===Hs||typeof t!="function"&&this.state===qd)return this;var i=new this.constructor(yi);if(process.browser||this.handled===mn&&(this.handled=null),this.state!==Gd){var n=this.state===Hs?e:t;Us(i,n,this.outcome)}else this.queue.push(new bn(i,e,t));return i};function bn(e,t,i){this.promise=e,typeof t=="function"&&(this.onFulfilled=t,this.callFulfilled=this.otherCallFulfilled),typeof i=="function"&&(this.onRejected=i,this.callRejected=this.otherCallRejected)}bn.prototype.callFulfilled=function(e){ce.resolve(this.promise,e)};bn.prototype.otherCallFulfilled=function(e){Us(this.promise,this.onFulfilled,e)};bn.prototype.callRejected=function(e){ce.reject(this.promise,e)};bn.prototype.otherCallRejected=function(e){Us(this.promise,this.onRejected,e)};function Us(e,t,i){$d(function(){var n;try{n=t(i)}catch(r){return ce.reject(e,r)}n===e?ce.reject(e,new TypeError("Cannot resolve promise with itself")):ce.resolve(e,n)})}ce.resolve=function(e,t){var i=Vd(Ym,t);if(i.status==="error")return ce.reject(e,i.value);var n=i.value;if(n)Wd(e,n);else{e.state=Hs,e.outcome=t;for(var r=-1,a=e.queue.length;++r<a;)e.queue[r].callFulfilled(t)}return e};ce.reject=function(e,t){e.state=qd,e.outcome=t,process.browser||e.handled===mn&&$d(function(){e.handled===mn&&process.emit("unhandledRejection",t,e)});for(var i=-1,n=e.queue.length;++i<n;)e.queue[i].callRejected(t);return e};function Ym(e){var t=e&&e.then;if(e&&(typeof e=="object"||typeof e=="function")&&typeof t=="function")return function(){t.apply(e,arguments)}}function Wd(e,t){var i=!1;function n(o){i||(i=!0,ce.reject(e,o))}function r(o){i||(i=!0,ce.resolve(e,o))}function a(){t(r,n)}var s=Vd(a);s.status==="error"&&n(s.value)}function Vd(e,t){var i={};try{i.value=e(t),i.status="success"}catch(n){i.status="error",i.value=n}return i}wt.resolve=Km;function Km(e){return e instanceof this?e:ce.resolve(new this(yi),e)}wt.reject=Xm;function Xm(e){var t=new this(yi);return ce.reject(t,e)}wt.all=Zm;function Zm(e){var t=this;if(Object.prototype.toString.call(e)!=="[object Array]")return this.reject(new TypeError("must be an array"));var i=e.length,n=!1;if(!i)return this.resolve([]);for(var r=new Array(i),a=0,s=-1,o=new this(yi);++s<i;)c(e[s],s);return o;function c(l,d){t.resolve(l).then(u,function(p){n||(n=!0,ce.reject(o,p))});function u(p){r[d]=p,++a===i&&!n&&(n=!0,ce.resolve(o,r))}}}wt.race=Jm;function Jm(e){var t=this;if(Object.prototype.toString.call(e)!=="[object Array]")return this.reject(new TypeError("must be an array"));var i=e.length,n=!1;if(!i)return this.resolve([]);for(var r=-1,a=new this(yi);++r<i;)s(e[r]);return a;function s(o){t.resolve(o).then(function(c){n||(n=!0,ce.resolve(a,c))},function(c){n||(n=!0,ce.reject(a,c))})}}});var xi=P((Nw,Xd)=>{"use strict";var $s=null;typeof Promise!="undefined"?$s=Promise:$s=Kd();Xd.exports={Promise:$s}});var Jd=P(Zd=>{"use strict";(function(e,t){"use strict";if(e.setImmediate)return;var i=1,n={},r=!1,a=e.document,s;function o(v){typeof v!="function"&&(v=new Function(""+v));for(var y=new Array(arguments.length-1),x=0;x<y.length;x++)y[x]=arguments[x+1];var w={callback:v,args:y};return n[i]=w,s(i),i++}function c(v){delete n[v]}function l(v){var y=v.callback,x=v.args;switch(x.length){case 0:y();break;case 1:y(x[0]);break;case 2:y(x[0],x[1]);break;case 3:y(x[0],x[1],x[2]);break;default:y.apply(t,x);break}}function d(v){if(r)setTimeout(d,0,v);else{var y=n[v];if(y){r=!0;try{l(y)}finally{c(v),r=!1}}}}function u(){s=function(v){process.nextTick(function(){d(v)})}}function p(){if(e.postMessage&&!e.importScripts){var v=!0,y=e.onmessage;return e.onmessage=function(){v=!1},e.postMessage("","*"),e.onmessage=y,v}}function f(){var v="setImmediate$"+Math.random()+"$",y=function(x){x.source===e&&typeof x.data=="string"&&x.data.indexOf(v)===0&&d(+x.data.slice(v.length))};e.addEventListener?e.addEventListener("message",y,!1):e.attachEvent("onmessage",y),s=function(x){e.postMessage(v+x,"*")}}function g(){var v=new MessageChannel;v.port1.onmessage=function(y){var x=y.data;d(x)},s=function(y){v.port2.postMessage(y)}}function h(){var v=a.documentElement;s=function(y){var x=a.createElement("script");x.onreadystatechange=function(){d(y),x.onreadystatechange=null,v.removeChild(x),x=null},v.appendChild(x)}}function m(){s=function(v){setTimeout(d,0,v)}}var b=Object.getPrototypeOf&&Object.getPrototypeOf(e);b=b&&b.setTimeout?b:e,{}.toString.call(e.process)==="[object process]"?u():p()?f():e.MessageChannel?g():a&&"onreadystatechange"in a.createElement("script")?h():m(),b.setImmediate=o,b.clearImmediate=c})(typeof self=="undefined"?typeof global=="undefined"?Zd:global:self)});var V=P(ee=>{"use strict";var _t=rt(),Qm=js(),wi=fn(),qs=xi();Jd();function eb(e){var t=null;return _t.uint8array?t=new Uint8Array(e.length):t=new Array(e.length),Br(e,t)}ee.newBlob=function(e,t){ee.checkSupport("blob");try{return new Blob([e],{type:t})}catch{try{var i=self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder,n=new i;return n.append(e),n.getBlob(t)}catch{throw new Error("Bug : can't construct the Blob.")}}};function vn(e){return e}function Br(e,t){for(var i=0;i<e.length;++i)t[i]=e.charCodeAt(i)&255;return t}var zr={stringifyByChunk:function(e,t,i){var n=[],r=0,a=e.length;if(a<=i)return String.fromCharCode.apply(null,e);for(;r<a;)t==="array"||t==="nodebuffer"?n.push(String.fromCharCode.apply(null,e.slice(r,Math.min(r+i,a)))):n.push(String.fromCharCode.apply(null,e.subarray(r,Math.min(r+i,a)))),r+=i;return n.join("")},stringifyByChar:function(e){for(var t="",i=0;i<e.length;i++)t+=String.fromCharCode(e[i]);return t},applyCanBeUsed:{uint8array:(function(){try{return _t.uint8array&&String.fromCharCode.apply(null,new Uint8Array(1)).length===1}catch{return!1}})(),nodebuffer:(function(){try{return _t.nodebuffer&&String.fromCharCode.apply(null,wi.allocBuffer(1)).length===1}catch{return!1}})()}};function yn(e){var t=65536,i=ee.getTypeOf(e),n=!0;if(i==="uint8array"?n=zr.applyCanBeUsed.uint8array:i==="nodebuffer"&&(n=zr.applyCanBeUsed.nodebuffer),n)for(;t>1;)try{return zr.stringifyByChunk(e,i,t)}catch{t=Math.floor(t/2)}return zr.stringifyByChar(e)}ee.applyFromCharCode=yn;function Nr(e,t){for(var i=0;i<e.length;i++)t[i]=e[i];return t}var Et={};Et.string={string:vn,array:function(e){return Br(e,new Array(e.length))},arraybuffer:function(e){return Et.string.uint8array(e).buffer},uint8array:function(e){return Br(e,new Uint8Array(e.length))},nodebuffer:function(e){return Br(e,wi.allocBuffer(e.length))}};Et.array={string:yn,array:vn,arraybuffer:function(e){return new Uint8Array(e).buffer},uint8array:function(e){return new Uint8Array(e)},nodebuffer:function(e){return wi.newBufferFrom(e)}};Et.arraybuffer={string:function(e){return yn(new Uint8Array(e))},array:function(e){return Nr(new Uint8Array(e),new Array(e.byteLength))},arraybuffer:vn,uint8array:function(e){return new Uint8Array(e)},nodebuffer:function(e){return wi.newBufferFrom(new Uint8Array(e))}};Et.uint8array={string:yn,array:function(e){return Nr(e,new Array(e.length))},arraybuffer:function(e){return e.buffer},uint8array:vn,nodebuffer:function(e){return wi.newBufferFrom(e)}};Et.nodebuffer={string:yn,array:function(e){return Nr(e,new Array(e.length))},arraybuffer:function(e){return Et.nodebuffer.uint8array(e).buffer},uint8array:function(e){return Nr(e,new Uint8Array(e.length))},nodebuffer:vn};ee.transformTo=function(e,t){if(t||(t=""),!e)return t;ee.checkSupport(e);var i=ee.getTypeOf(t),n=Et[i][e](t);return n};ee.resolve=function(e){for(var t=e.split("/"),i=[],n=0;n<t.length;n++){var r=t[n];r==="."||r===""&&n!==0&&n!==t.length-1||(r===".."?i.pop():i.push(r))}return i.join("/")};ee.getTypeOf=function(e){if(typeof e=="string")return"string";if(Object.prototype.toString.call(e)==="[object Array]")return"array";if(_t.nodebuffer&&wi.isBuffer(e))return"nodebuffer";if(_t.uint8array&&e instanceof Uint8Array)return"uint8array";if(_t.arraybuffer&&e instanceof ArrayBuffer)return"arraybuffer"};ee.checkSupport=function(e){var t=_t[e.toLowerCase()];if(!t)throw new Error(e+" is not supported by this platform")};ee.MAX_VALUE_16BITS=65535;ee.MAX_VALUE_32BITS=-1;ee.pretty=function(e){var t="",i,n;for(n=0;n<(e||"").length;n++)i=e.charCodeAt(n),t+="\\x"+(i<16?"0":"")+i.toString(16).toUpperCase();return t};ee.delay=function(e,t,i){setImmediate(function(){e.apply(i||null,t||[])})};ee.inherits=function(e,t){var i=function(){};i.prototype=t.prototype,e.prototype=new i};ee.extend=function(){var e={},t,i;for(t=0;t<arguments.length;t++)for(i in arguments[t])Object.prototype.hasOwnProperty.call(arguments[t],i)&&typeof e[i]=="undefined"&&(e[i]=arguments[t][i]);return e};ee.prepareContent=function(e,t,i,n,r){var a=qs.Promise.resolve(t).then(function(s){var o=_t.blob&&(s instanceof Blob||["[object File]","[object Blob]"].indexOf(Object.prototype.toString.call(s))!==-1);return o&&typeof FileReader!="undefined"?new qs.Promise(function(c,l){var d=new FileReader;d.onload=function(u){c(u.target.result)},d.onerror=function(u){l(u.target.error)},d.readAsArrayBuffer(s)}):s});return a.then(function(s){var o=ee.getTypeOf(s);return o?(o==="arraybuffer"?s=ee.transformTo("uint8array",s):o==="string"&&(r?s=Qm.decode(s):i&&n!==!0&&(s=eb(s))),s):qs.Promise.reject(new Error("Can't read the data of '"+e+"'. Is it in a supported JavaScript type (String, Blob, ArrayBuffer, etc) ?"))})}});var ye=P((Uw,eu)=>{"use strict";function Qd(e){this.name=e||"default",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}Qd.prototype={push:function(e){this.emit("data",e)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit("end"),this.cleanUp(),this.isFinished=!0}catch(e){this.emit("error",e)}return!0},error:function(e){return this.isFinished?!1:(this.isPaused?this.generatedError=e:(this.isFinished=!0,this.emit("error",e),this.previous&&this.previous.error(e),this.cleanUp()),!0)},on:function(e,t){return this._listeners[e].push(t),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(e,t){if(this._listeners[e])for(var i=0;i<this._listeners[e].length;i++)this._listeners[e][i].call(this,t)},pipe:function(e){return e.registerPrevious(this)},registerPrevious:function(e){if(this.isLocked)throw new Error("The stream '"+this+"' has already been used.");this.streamInfo=e.streamInfo,this.mergeStreamInfo(),this.previous=e;var t=this;return e.on("data",function(i){t.processChunk(i)}),e.on("end",function(){t.end()}),e.on("error",function(i){t.error(i)}),this},pause:function(){return this.isPaused||this.isFinished?!1:(this.isPaused=!0,this.previous&&this.previous.pause(),!0)},resume:function(){if(!this.isPaused||this.isFinished)return!1;this.isPaused=!1;var e=!1;return this.generatedError&&(this.error(this.generatedError),e=!0),this.previous&&this.previous.resume(),!e},flush:function(){},processChunk:function(e){this.push(e)},withStreamInfo:function(e,t){return this.extraStreamInfo[e]=t,this.mergeStreamInfo(),this},mergeStreamInfo:function(){for(var e in this.extraStreamInfo)Object.prototype.hasOwnProperty.call(this.extraStreamInfo,e)&&(this.streamInfo[e]=this.extraStreamInfo[e])},lock:function(){if(this.isLocked)throw new Error("The stream '"+this+"' has already been used.");this.isLocked=!0,this.previous&&this.previous.lock()},toString:function(){var e="Worker "+this.name;return this.previous?this.previous+" -> "+e:e}};eu.exports=Qd});var Ei=P(St=>{"use strict";var _i=V(),Ht=rt(),tb=fn(),Fr=ye(),xn=new Array(256);for(at=0;at<256;at++)xn[at]=at>=252?6:at>=248?5:at>=240?4:at>=224?3:at>=192?2:1;var at;xn[254]=xn[254]=1;var ib=function(e){var t,i,n,r,a,s=e.length,o=0;for(r=0;r<s;r++)i=e.charCodeAt(r),(i&64512)===55296&&r+1<s&&(n=e.charCodeAt(r+1),(n&64512)===56320&&(i=65536+(i-55296<<10)+(n-56320),r++)),o+=i<128?1:i<2048?2:i<65536?3:4;for(Ht.uint8array?t=new Uint8Array(o):t=new Array(o),a=0,r=0;a<o;r++)i=e.charCodeAt(r),(i&64512)===55296&&r+1<s&&(n=e.charCodeAt(r+1),(n&64512)===56320&&(i=65536+(i-55296<<10)+(n-56320),r++)),i<128?t[a++]=i:i<2048?(t[a++]=192|i>>>6,t[a++]=128|i&63):i<65536?(t[a++]=224|i>>>12,t[a++]=128|i>>>6&63,t[a++]=128|i&63):(t[a++]=240|i>>>18,t[a++]=128|i>>>12&63,t[a++]=128|i>>>6&63,t[a++]=128|i&63);return t},nb=function(e,t){var i;for(t=t||e.length,t>e.length&&(t=e.length),i=t-1;i>=0&&(e[i]&192)===128;)i--;return i<0||i===0?t:i+xn[e[i]]>t?i:t},rb=function(e){var t,i,n,r,a=e.length,s=new Array(a*2);for(i=0,t=0;t<a;){if(n=e[t++],n<128){s[i++]=n;continue}if(r=xn[n],r>4){s[i++]=65533,t+=r-1;continue}for(n&=r===2?31:r===3?15:7;r>1&&t<a;)n=n<<6|e[t++]&63,r--;if(r>1){s[i++]=65533;continue}n<65536?s[i++]=n:(n-=65536,s[i++]=55296|n>>10&1023,s[i++]=56320|n&1023)}return s.length!==i&&(s.subarray?s=s.subarray(0,i):s.length=i),_i.applyFromCharCode(s)};St.utf8encode=function(t){return Ht.nodebuffer?tb.newBufferFrom(t,"utf-8"):ib(t)};St.utf8decode=function(t){return Ht.nodebuffer?_i.transformTo("nodebuffer",t).toString("utf-8"):(t=_i.transformTo(Ht.uint8array?"uint8array":"array",t),rb(t))};function Hr(){Fr.call(this,"utf-8 decode"),this.leftOver=null}_i.inherits(Hr,Fr);Hr.prototype.processChunk=function(e){var t=_i.transformTo(Ht.uint8array?"uint8array":"array",e.data);if(this.leftOver&&this.leftOver.length){if(Ht.uint8array){var i=t;t=new Uint8Array(i.length+this.leftOver.length),t.set(this.leftOver,0),t.set(i,this.leftOver.length)}else t=this.leftOver.concat(t);this.leftOver=null}var n=nb(t),r=t;n!==t.length&&(Ht.uint8array?(r=t.subarray(0,n),this.leftOver=t.subarray(n,t.length)):(r=t.slice(0,n),this.leftOver=t.slice(n,t.length))),this.push({data:St.utf8decode(r),meta:e.meta})};Hr.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:St.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)};St.Utf8DecodeWorker=Hr;function Gs(){Fr.call(this,"utf-8 encode")}_i.inherits(Gs,Fr);Gs.prototype.processChunk=function(e){this.push({data:St.utf8encode(e.data),meta:e.meta})};St.Utf8EncodeWorker=Gs});var ru=P((qw,nu)=>{"use strict";var tu=ye(),iu=V();function Ws(e){tu.call(this,"ConvertWorker to "+e),this.destType=e}iu.inherits(Ws,tu);Ws.prototype.processChunk=function(e){this.push({data:iu.transformTo(this.destType,e.data),meta:e.meta})};nu.exports=Ws});var ou=P((Gw,su)=>{"use strict";var au=Ps().Readable,ab=V();ab.inherits(Vs,au);function Vs(e,t,i){au.call(this,t),this._helper=e;var n=this;e.on("data",function(r,a){n.push(r)||n._helper.pause(),i&&i(a)}).on("error",function(r){n.emit("error",r)}).on("end",function(){n.push(null)})}Vs.prototype._read=function(){this._helper.resume()};su.exports=Vs});var Ys=P((Ww,du)=>{"use strict";var Ut=V(),sb=ru(),ob=ye(),lb=js(),cb=rt(),db=xi(),lu=null;if(cb.nodestream)try{lu=ou()}catch{}function ub(e,t,i){switch(e){case"blob":return Ut.newBlob(Ut.transformTo("arraybuffer",t),i);case"base64":return lb.encode(t);default:return Ut.transformTo(e,t)}}function pb(e,t){var i,n=0,r=null,a=0;for(i=0;i<t.length;i++)a+=t[i].length;switch(e){case"string":return t.join("");case"array":return Array.prototype.concat.apply([],t);case"uint8array":for(r=new Uint8Array(a),i=0;i<t.length;i++)r.set(t[i],n),n+=t[i].length;return r;case"nodebuffer":return Buffer.concat(t);default:throw new Error("concat : unsupported type '"+e+"'")}}function fb(e,t){return new db.Promise(function(i,n){var r=[],a=e._internalType,s=e._outputType,o=e._mimeType;e.on("data",function(c,l){r.push(c),t&&t(l)}).on("error",function(c){r=[],n(c)}).on("end",function(){try{var c=ub(s,pb(a,r),o);i(c)}catch(l){n(l)}r=[]}).resume()})}function cu(e,t,i){var n=t;switch(t){case"blob":case"arraybuffer":n="uint8array";break;case"base64":n="string";break}try{this._internalType=n,this._outputType=t,this._mimeType=i,Ut.checkSupport(n),this._worker=e.pipe(new sb(n)),e.lock()}catch(r){this._worker=new ob("error"),this._worker.error(r)}}cu.prototype={accumulate:function(e){return fb(this,e)},on:function(e,t){var i=this;return e==="data"?this._worker.on(e,function(n){t.call(i,n.data,n.meta)}):this._worker.on(e,function(){Ut.delay(t,arguments,i)}),this},resume:function(){return Ut.delay(this._worker.resume,[],this._worker),this},pause:function(){return this._worker.pause(),this},toNodejsStream:function(e){if(Ut.checkSupport("nodestream"),this._outputType!=="nodebuffer")throw new Error(this._outputType+" is not supported by this method");return new lu(this,{objectMode:this._outputType!=="nodebuffer"},e)}};du.exports=cu});var Ks=P(Pe=>{"use strict";Pe.base64=!1;Pe.binary=!1;Pe.dir=!1;Pe.createFolders=!0;Pe.date=null;Pe.compression=null;Pe.compressionOptions=null;Pe.comment=null;Pe.unixPermissions=null;Pe.dosPermissions=null});var Xs=P((Yw,uu)=>{"use strict";var Ur=V(),$r=ye(),hb=16*1024;function Si(e){$r.call(this,"DataWorker");var t=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type="",this._tickScheduled=!1,e.then(function(i){t.dataIsReady=!0,t.data=i,t.max=i&&i.length||0,t.type=Ur.getTypeOf(i),t.isPaused||t._tickAndRepeat()},function(i){t.error(i)})}Ur.inherits(Si,$r);Si.prototype.cleanUp=function(){$r.prototype.cleanUp.call(this),this.data=null};Si.prototype.resume=function(){return $r.prototype.resume.call(this)?(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,Ur.delay(this._tickAndRepeat,[],this)),!0):!1};Si.prototype._tickAndRepeat=function(){this._tickScheduled=!1,!(this.isPaused||this.isFinished)&&(this._tick(),this.isFinished||(Ur.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))};Si.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var e=hb,t=null,i=Math.min(this.max,this.index+e);if(this.index>=this.max)return this.end();switch(this.type){case"string":t=this.data.substring(this.index,i);break;case"uint8array":t=this.data.subarray(this.index,i);break;case"array":case"nodebuffer":t=this.data.slice(this.index,i);break}return this.index=i,this.push({data:t,meta:{percent:this.max?this.index/this.max*100:0}})};uu.exports=Si});var qr=P((Kw,fu)=>{"use strict";var gb=V();function mb(){for(var e,t=[],i=0;i<256;i++){e=i;for(var n=0;n<8;n++)e=e&1?3988292384^e>>>1:e>>>1;t[i]=e}return t}var pu=mb();function bb(e,t,i,n){var r=pu,a=n+i;e=e^-1;for(var s=n;s<a;s++)e=e>>>8^r[(e^t[s])&255];return e^-1}function vb(e,t,i,n){var r=pu,a=n+i;e=e^-1;for(var s=n;s<a;s++)e=e>>>8^r[(e^t.charCodeAt(s))&255];return e^-1}fu.exports=function(t,i){if(typeof t=="undefined"||!t.length)return 0;var n=gb.getTypeOf(t)!=="string";return n?bb(i|0,t,t.length,0):vb(i|0,t,t.length,0)}});var Js=P((Xw,gu)=>{"use strict";var hu=ye(),yb=qr(),xb=V();function Zs(){hu.call(this,"Crc32Probe"),this.withStreamInfo("crc32",0)}xb.inherits(Zs,hu);Zs.prototype.processChunk=function(e){this.streamInfo.crc32=yb(e.data,this.streamInfo.crc32||0),this.push(e)};gu.exports=Zs});var bu=P((Zw,mu)=>{"use strict";var wb=V(),Qs=ye();function eo(e){Qs.call(this,"DataLengthProbe for "+e),this.propName=e,this.withStreamInfo(e,0)}wb.inherits(eo,Qs);eo.prototype.processChunk=function(e){if(e){var t=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=t+e.data.length}Qs.prototype.processChunk.call(this,e)};mu.exports=eo});var Gr=P((Jw,xu)=>{"use strict";var vu=xi(),yu=Xs(),_b=Js(),to=bu();function io(e,t,i,n,r){this.compressedSize=e,this.uncompressedSize=t,this.crc32=i,this.compression=n,this.compressedContent=r}io.prototype={getContentWorker:function(){var e=new yu(vu.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new to("data_length")),t=this;return e.on("end",function(){if(this.streamInfo.data_length!==t.uncompressedSize)throw new Error("Bug : uncompressed data size mismatch")}),e},getCompressedWorker:function(){return new yu(vu.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize",this.compressedSize).withStreamInfo("uncompressedSize",this.uncompressedSize).withStreamInfo("crc32",this.crc32).withStreamInfo("compression",this.compression)}};io.createWorkerFrom=function(e,t,i){return e.pipe(new _b).pipe(new to("uncompressedSize")).pipe(t.compressWorker(i)).pipe(new to("compressedSize")).withStreamInfo("compression",t)};xu.exports=io});var Su=P((Qw,Eu)=>{"use strict";var Eb=Ys(),Sb=Xs(),no=Ei(),ro=Gr(),wu=ye(),ao=function(e,t,i){this.name=e,this.dir=i.dir,this.date=i.date,this.comment=i.comment,this.unixPermissions=i.unixPermissions,this.dosPermissions=i.dosPermissions,this._data=t,this._dataBinary=i.binary,this.options={compression:i.compression,compressionOptions:i.compressionOptions}};ao.prototype={internalStream:function(e){var t=null,i="string";try{if(!e)throw new Error("No output type specified.");i=e.toLowerCase();var n=i==="string"||i==="text";(i==="binarystring"||i==="text")&&(i="string"),t=this._decompressWorker();var r=!this._dataBinary;r&&!n&&(t=t.pipe(new no.Utf8EncodeWorker)),!r&&n&&(t=t.pipe(new no.Utf8DecodeWorker))}catch(a){t=new wu("error"),t.error(a)}return new Eb(t,i,"")},async:function(e,t){return this.internalStream(e).accumulate(t)},nodeStream:function(e,t){return this.internalStream(e||"nodebuffer").toNodejsStream(t)},_compressWorker:function(e,t){if(this._data instanceof ro&&this._data.compression.magic===e.magic)return this._data.getCompressedWorker();var i=this._decompressWorker();return this._dataBinary||(i=i.pipe(new no.Utf8EncodeWorker)),ro.createWorkerFrom(i,e,t)},_decompressWorker:function(){return this._data instanceof ro?this._data.getContentWorker():this._data instanceof wu?this._data:new Sb(this._data)}};var _u=["asText","asBinary","asNodeBuffer","asUint8Array","asArrayBuffer"],Ab=function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")};for(Wr=0;Wr<_u.length;Wr++)ao.prototype[_u[Wr]]=Ab;var Wr;Eu.exports=ao});var st=P(he=>{"use strict";var Cb=typeof Uint8Array!="undefined"&&typeof Uint16Array!="undefined"&&typeof Int32Array!="undefined";function Tb(e,t){return Object.prototype.hasOwnProperty.call(e,t)}he.assign=function(e){for(var t=Array.prototype.slice.call(arguments,1);t.length;){var i=t.shift();if(i){if(typeof i!="object")throw new TypeError(i+"must be non-object");for(var n in i)Tb(i,n)&&(e[n]=i[n])}}return e};he.shrinkBuf=function(e,t){return e.length===t?e:e.subarray?e.subarray(0,t):(e.length=t,e)};var kb={arraySet:function(e,t,i,n,r){if(t.subarray&&e.subarray){e.set(t.subarray(i,i+n),r);return}for(var a=0;a<n;a++)e[r+a]=t[i+a]},flattenChunks:function(e){var t,i,n,r,a,s;for(n=0,t=0,i=e.length;t<i;t++)n+=e[t].length;for(s=new Uint8Array(n),r=0,t=0,i=e.length;t<i;t++)a=e[t],s.set(a,r),r+=a.length;return s}},Lb={arraySet:function(e,t,i,n,r){for(var a=0;a<n;a++)e[r+a]=t[i+a]},flattenChunks:function(e){return[].concat.apply([],e)}};he.setTyped=function(e){e?(he.Buf8=Uint8Array,he.Buf16=Uint16Array,he.Buf32=Int32Array,he.assign(he,kb)):(he.Buf8=Array,he.Buf16=Array,he.Buf32=Array,he.assign(he,Lb))};he.setTyped(Cb)});var Vu=P(Ti=>{"use strict";var Rb=st(),Mb=4,Au=0,Cu=1,Pb=2;function Ci(e){for(var t=e.length;--t>=0;)e[t]=0}var Ib=0,Pu=1,Ob=2,Db=3,jb=258,fo=29,Cn=256,_n=Cn+1+fo,Ai=30,ho=19,Iu=2*_n+1,$t=15,so=16,zb=7,go=256,Ou=16,Du=17,ju=18,uo=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],Vr=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],Bb=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],zu=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],Nb=512,ot=new Array((_n+2)*2);Ci(ot);var wn=new Array(Ai*2);Ci(wn);var En=new Array(Nb);Ci(En);var Sn=new Array(jb-Db+1);Ci(Sn);var mo=new Array(fo);Ci(mo);var Yr=new Array(Ai);Ci(Yr);function oo(e,t,i,n,r){this.static_tree=e,this.extra_bits=t,this.extra_base=i,this.elems=n,this.max_length=r,this.has_stree=e&&e.length}var Bu,Nu,Fu;function lo(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}function Hu(e){return e<256?En[e]:En[256+(e>>>7)]}function An(e,t){e.pending_buf[e.pending++]=t&255,e.pending_buf[e.pending++]=t>>>8&255}function me(e,t,i){e.bi_valid>so-i?(e.bi_buf|=t<<e.bi_valid&65535,An(e,e.bi_buf),e.bi_buf=t>>so-e.bi_valid,e.bi_valid+=i-so):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=i)}function qe(e,t,i){me(e,i[t*2],i[t*2+1])}function Uu(e,t){var i=0;do i|=e&1,e>>>=1,i<<=1;while(--t>0);return i>>>1}function Fb(e){e.bi_valid===16?(An(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=e.bi_buf&255,e.bi_buf>>=8,e.bi_valid-=8)}function Hb(e,t){var i=t.dyn_tree,n=t.max_code,r=t.stat_desc.static_tree,a=t.stat_desc.has_stree,s=t.stat_desc.extra_bits,o=t.stat_desc.extra_base,c=t.stat_desc.max_length,l,d,u,p,f,g,h=0;for(p=0;p<=$t;p++)e.bl_count[p]=0;for(i[e.heap[e.heap_max]*2+1]=0,l=e.heap_max+1;l<Iu;l++)d=e.heap[l],p=i[i[d*2+1]*2+1]+1,p>c&&(p=c,h++),i[d*2+1]=p,!(d>n)&&(e.bl_count[p]++,f=0,d>=o&&(f=s[d-o]),g=i[d*2],e.opt_len+=g*(p+f),a&&(e.static_len+=g*(r[d*2+1]+f)));if(h!==0){do{for(p=c-1;e.bl_count[p]===0;)p--;e.bl_count[p]--,e.bl_count[p+1]+=2,e.bl_count[c]--,h-=2}while(h>0);for(p=c;p!==0;p--)for(d=e.bl_count[p];d!==0;)u=e.heap[--l],!(u>n)&&(i[u*2+1]!==p&&(e.opt_len+=(p-i[u*2+1])*i[u*2],i[u*2+1]=p),d--)}}function $u(e,t,i){var n=new Array($t+1),r=0,a,s;for(a=1;a<=$t;a++)n[a]=r=r+i[a-1]<<1;for(s=0;s<=t;s++){var o=e[s*2+1];o!==0&&(e[s*2]=Uu(n[o]++,o))}}function Ub(){var e,t,i,n,r,a=new Array($t+1);for(i=0,n=0;n<fo-1;n++)for(mo[n]=i,e=0;e<1<<uo[n];e++)Sn[i++]=n;for(Sn[i-1]=n,r=0,n=0;n<16;n++)for(Yr[n]=r,e=0;e<1<<Vr[n];e++)En[r++]=n;for(r>>=7;n<Ai;n++)for(Yr[n]=r<<7,e=0;e<1<<Vr[n]-7;e++)En[256+r++]=n;for(t=0;t<=$t;t++)a[t]=0;for(e=0;e<=143;)ot[e*2+1]=8,e++,a[8]++;for(;e<=255;)ot[e*2+1]=9,e++,a[9]++;for(;e<=279;)ot[e*2+1]=7,e++,a[7]++;for(;e<=287;)ot[e*2+1]=8,e++,a[8]++;for($u(ot,_n+1,a),e=0;e<Ai;e++)wn[e*2+1]=5,wn[e*2]=Uu(e,5);Bu=new oo(ot,uo,Cn+1,_n,$t),Nu=new oo(wn,Vr,0,Ai,$t),Fu=new oo(new Array(0),Bb,0,ho,zb)}function qu(e){var t;for(t=0;t<_n;t++)e.dyn_ltree[t*2]=0;for(t=0;t<Ai;t++)e.dyn_dtree[t*2]=0;for(t=0;t<ho;t++)e.bl_tree[t*2]=0;e.dyn_ltree[go*2]=1,e.opt_len=e.static_len=0,e.last_lit=e.matches=0}function Gu(e){e.bi_valid>8?An(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0}function $b(e,t,i,n){Gu(e),n&&(An(e,i),An(e,~i)),Rb.arraySet(e.pending_buf,e.window,t,i,e.pending),e.pending+=i}function Tu(e,t,i,n){var r=t*2,a=i*2;return e[r]<e[a]||e[r]===e[a]&&n[t]<=n[i]}function co(e,t,i){for(var n=e.heap[i],r=i<<1;r<=e.heap_len&&(r<e.heap_len&&Tu(t,e.heap[r+1],e.heap[r],e.depth)&&r++,!Tu(t,n,e.heap[r],e.depth));)e.heap[i]=e.heap[r],i=r,r<<=1;e.heap[i]=n}function ku(e,t,i){var n,r,a=0,s,o;if(e.last_lit!==0)do n=e.pending_buf[e.d_buf+a*2]<<8|e.pending_buf[e.d_buf+a*2+1],r=e.pending_buf[e.l_buf+a],a++,n===0?qe(e,r,t):(s=Sn[r],qe(e,s+Cn+1,t),o=uo[s],o!==0&&(r-=mo[s],me(e,r,o)),n--,s=Hu(n),qe(e,s,i),o=Vr[s],o!==0&&(n-=Yr[s],me(e,n,o)));while(a<e.last_lit);qe(e,go,t)}function po(e,t){var i=t.dyn_tree,n=t.stat_desc.static_tree,r=t.stat_desc.has_stree,a=t.stat_desc.elems,s,o,c=-1,l;for(e.heap_len=0,e.heap_max=Iu,s=0;s<a;s++)i[s*2]!==0?(e.heap[++e.heap_len]=c=s,e.depth[s]=0):i[s*2+1]=0;for(;e.heap_len<2;)l=e.heap[++e.heap_len]=c<2?++c:0,i[l*2]=1,e.depth[l]=0,e.opt_len--,r&&(e.static_len-=n[l*2+1]);for(t.max_code=c,s=e.heap_len>>1;s>=1;s--)co(e,i,s);l=a;do s=e.heap[1],e.heap[1]=e.heap[e.heap_len--],co(e,i,1),o=e.heap[1],e.heap[--e.heap_max]=s,e.heap[--e.heap_max]=o,i[l*2]=i[s*2]+i[o*2],e.depth[l]=(e.depth[s]>=e.depth[o]?e.depth[s]:e.depth[o])+1,i[s*2+1]=i[o*2+1]=l,e.heap[1]=l++,co(e,i,1);while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],Hb(e,t),$u(i,c,e.bl_count)}function Lu(e,t,i){var n,r=-1,a,s=t[1],o=0,c=7,l=4;for(s===0&&(c=138,l=3),t[(i+1)*2+1]=65535,n=0;n<=i;n++)a=s,s=t[(n+1)*2+1],!(++o<c&&a===s)&&(o<l?e.bl_tree[a*2]+=o:a!==0?(a!==r&&e.bl_tree[a*2]++,e.bl_tree[Ou*2]++):o<=10?e.bl_tree[Du*2]++:e.bl_tree[ju*2]++,o=0,r=a,s===0?(c=138,l=3):a===s?(c=6,l=3):(c=7,l=4))}function Ru(e,t,i){var n,r=-1,a,s=t[1],o=0,c=7,l=4;for(s===0&&(c=138,l=3),n=0;n<=i;n++)if(a=s,s=t[(n+1)*2+1],!(++o<c&&a===s)){if(o<l)do qe(e,a,e.bl_tree);while(--o!==0);else a!==0?(a!==r&&(qe(e,a,e.bl_tree),o--),qe(e,Ou,e.bl_tree),me(e,o-3,2)):o<=10?(qe(e,Du,e.bl_tree),me(e,o-3,3)):(qe(e,ju,e.bl_tree),me(e,o-11,7));o=0,r=a,s===0?(c=138,l=3):a===s?(c=6,l=3):(c=7,l=4)}}function qb(e){var t;for(Lu(e,e.dyn_ltree,e.l_desc.max_code),Lu(e,e.dyn_dtree,e.d_desc.max_code),po(e,e.bl_desc),t=ho-1;t>=3&&e.bl_tree[zu[t]*2+1]===0;t--);return e.opt_len+=3*(t+1)+5+5+4,t}function Gb(e,t,i,n){var r;for(me(e,t-257,5),me(e,i-1,5),me(e,n-4,4),r=0;r<n;r++)me(e,e.bl_tree[zu[r]*2+1],3);Ru(e,e.dyn_ltree,t-1),Ru(e,e.dyn_dtree,i-1)}function Wb(e){var t=4093624447,i;for(i=0;i<=31;i++,t>>>=1)if(t&1&&e.dyn_ltree[i*2]!==0)return Au;if(e.dyn_ltree[18]!==0||e.dyn_ltree[20]!==0||e.dyn_ltree[26]!==0)return Cu;for(i=32;i<Cn;i++)if(e.dyn_ltree[i*2]!==0)return Cu;return Au}var Mu=!1;function Vb(e){Mu||(Ub(),Mu=!0),e.l_desc=new lo(e.dyn_ltree,Bu),e.d_desc=new lo(e.dyn_dtree,Nu),e.bl_desc=new lo(e.bl_tree,Fu),e.bi_buf=0,e.bi_valid=0,qu(e)}function Wu(e,t,i,n){me(e,(Ib<<1)+(n?1:0),3),$b(e,t,i,!0)}function Yb(e){me(e,Pu<<1,3),qe(e,go,ot),Fb(e)}function Kb(e,t,i,n){var r,a,s=0;e.level>0?(e.strm.data_type===Pb&&(e.strm.data_type=Wb(e)),po(e,e.l_desc),po(e,e.d_desc),s=qb(e),r=e.opt_len+3+7>>>3,a=e.static_len+3+7>>>3,a<=r&&(r=a)):r=a=i+5,i+4<=r&&t!==-1?Wu(e,t,i,n):e.strategy===Mb||a===r?(me(e,(Pu<<1)+(n?1:0),3),ku(e,ot,wn)):(me(e,(Ob<<1)+(n?1:0),3),Gb(e,e.l_desc.max_code+1,e.d_desc.max_code+1,s+1),ku(e,e.dyn_ltree,e.dyn_dtree)),qu(e),n&&Gu(e)}function Xb(e,t,i){return e.pending_buf[e.d_buf+e.last_lit*2]=t>>>8&255,e.pending_buf[e.d_buf+e.last_lit*2+1]=t&255,e.pending_buf[e.l_buf+e.last_lit]=i&255,e.last_lit++,t===0?e.dyn_ltree[i*2]++:(e.matches++,t--,e.dyn_ltree[(Sn[i]+Cn+1)*2]++,e.dyn_dtree[Hu(t)*2]++),e.last_lit===e.lit_bufsize-1}Ti._tr_init=Vb;Ti._tr_stored_block=Wu;Ti._tr_flush_block=Kb;Ti._tr_tally=Xb;Ti._tr_align=Yb});var bo=P((i1,Yu)=>{"use strict";function Zb(e,t,i,n){for(var r=e&65535|0,a=e>>>16&65535|0,s=0;i!==0;){s=i>2e3?2e3:i,i-=s;do r=r+t[n++]|0,a=a+r|0;while(--s);r%=65521,a%=65521}return r|a<<16|0}Yu.exports=Zb});var vo=P((n1,Ku)=>{"use strict";function Jb(){for(var e,t=[],i=0;i<256;i++){e=i;for(var n=0;n<8;n++)e=e&1?3988292384^e>>>1:e>>>1;t[i]=e}return t}var Qb=Jb();function ev(e,t,i,n){var r=Qb,a=n+i;e^=-1;for(var s=n;s<a;s++)e=e>>>8^r[(e^t[s])&255];return e^-1}Ku.exports=ev});var Kr=P((r1,Xu)=>{"use strict";Xu.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}});var ap=P(Ve=>{"use strict";var ge=st(),Se=Vu(),ep=bo(),At=vo(),tv=Kr(),Vt=0,iv=1,nv=3,Rt=4,Zu=5,We=0,Ju=1,Ae=-2,rv=-3,yo=-5,av=-1,sv=1,Xr=2,ov=3,lv=4,cv=0,dv=2,ea=8,uv=9,pv=15,fv=8,hv=29,gv=256,wo=gv+1+hv,mv=30,bv=19,vv=2*wo+1,yv=15,B=3,kt=258,Ie=kt+B+1,xv=32,ta=42,_o=69,Zr=73,Jr=91,Qr=103,qt=113,kn=666,ne=1,Ln=2,Gt=3,Ri=4,wv=3;function Lt(e,t){return e.msg=tv[t],t}function Qu(e){return(e<<1)-(e>4?9:0)}function Tt(e){for(var t=e.length;--t>=0;)e[t]=0}function Ct(e){var t=e.state,i=t.pending;i>e.avail_out&&(i=e.avail_out),i!==0&&(ge.arraySet(e.output,t.pending_buf,t.pending_out,i,e.next_out),e.next_out+=i,t.pending_out+=i,e.total_out+=i,e.avail_out-=i,t.pending-=i,t.pending===0&&(t.pending_out=0))}function ae(e,t){Se._tr_flush_block(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,Ct(e.strm)}function N(e,t){e.pending_buf[e.pending++]=t}function Tn(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=t&255}function _v(e,t,i,n){var r=e.avail_in;return r>n&&(r=n),r===0?0:(e.avail_in-=r,ge.arraySet(t,e.input,e.next_in,r,i),e.state.wrap===1?e.adler=ep(e.adler,t,r,i):e.state.wrap===2&&(e.adler=At(e.adler,t,r,i)),e.next_in+=r,e.total_in+=r,r)}function tp(e,t){var i=e.max_chain_length,n=e.strstart,r,a,s=e.prev_length,o=e.nice_match,c=e.strstart>e.w_size-Ie?e.strstart-(e.w_size-Ie):0,l=e.window,d=e.w_mask,u=e.prev,p=e.strstart+kt,f=l[n+s-1],g=l[n+s];e.prev_length>=e.good_match&&(i>>=2),o>e.lookahead&&(o=e.lookahead);do if(r=t,!(l[r+s]!==g||l[r+s-1]!==f||l[r]!==l[n]||l[++r]!==l[n+1])){n+=2,r++;do;while(l[++n]===l[++r]&&l[++n]===l[++r]&&l[++n]===l[++r]&&l[++n]===l[++r]&&l[++n]===l[++r]&&l[++n]===l[++r]&&l[++n]===l[++r]&&l[++n]===l[++r]&&n<p);if(a=kt-(p-n),n=p-kt,a>s){if(e.match_start=t,s=a,a>=o)break;f=l[n+s-1],g=l[n+s]}}while((t=u[t&d])>c&&--i!==0);return s<=e.lookahead?s:e.lookahead}function Wt(e){var t=e.w_size,i,n,r,a,s;do{if(a=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-Ie)){ge.arraySet(e.window,e.window,t,t,0),e.match_start-=t,e.strstart-=t,e.block_start-=t,n=e.hash_size,i=n;do r=e.head[--i],e.head[i]=r>=t?r-t:0;while(--n);n=t,i=n;do r=e.prev[--i],e.prev[i]=r>=t?r-t:0;while(--n);a+=t}if(e.strm.avail_in===0)break;if(n=_v(e.strm,e.window,e.strstart+e.lookahead,a),e.lookahead+=n,e.lookahead+e.insert>=B)for(s=e.strstart-e.insert,e.ins_h=e.window[s],e.ins_h=(e.ins_h<<e.hash_shift^e.window[s+1])&e.hash_mask;e.insert&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[s+B-1])&e.hash_mask,e.prev[s&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=s,s++,e.insert--,!(e.lookahead+e.insert<B)););}while(e.lookahead<Ie&&e.strm.avail_in!==0)}function Ev(e,t){var i=65535;for(i>e.pending_buf_size-5&&(i=e.pending_buf_size-5);;){if(e.lookahead<=1){if(Wt(e),e.lookahead===0&&t===Vt)return ne;if(e.lookahead===0)break}e.strstart+=e.lookahead,e.lookahead=0;var n=e.block_start+i;if((e.strstart===0||e.strstart>=n)&&(e.lookahead=e.strstart-n,e.strstart=n,ae(e,!1),e.strm.avail_out===0)||e.strstart-e.block_start>=e.w_size-Ie&&(ae(e,!1),e.strm.avail_out===0))return ne}return e.insert=0,t===Rt?(ae(e,!0),e.strm.avail_out===0?Gt:Ri):(e.strstart>e.block_start&&(ae(e,!1),e.strm.avail_out===0),ne)}function xo(e,t){for(var i,n;;){if(e.lookahead<Ie){if(Wt(e),e.lookahead<Ie&&t===Vt)return ne;if(e.lookahead===0)break}if(i=0,e.lookahead>=B&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+B-1])&e.hash_mask,i=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),i!==0&&e.strstart-i<=e.w_size-Ie&&(e.match_length=tp(e,i)),e.match_length>=B)if(n=Se._tr_tally(e,e.strstart-e.match_start,e.match_length-B),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=B){e.match_length--;do e.strstart++,e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+B-1])&e.hash_mask,i=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart;while(--e.match_length!==0);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+1])&e.hash_mask;else n=Se._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(n&&(ae(e,!1),e.strm.avail_out===0))return ne}return e.insert=e.strstart<B-1?e.strstart:B-1,t===Rt?(ae(e,!0),e.strm.avail_out===0?Gt:Ri):e.last_lit&&(ae(e,!1),e.strm.avail_out===0)?ne:Ln}function ki(e,t){for(var i,n,r;;){if(e.lookahead<Ie){if(Wt(e),e.lookahead<Ie&&t===Vt)return ne;if(e.lookahead===0)break}if(i=0,e.lookahead>=B&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+B-1])&e.hash_mask,i=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=B-1,i!==0&&e.prev_length<e.max_lazy_match&&e.strstart-i<=e.w_size-Ie&&(e.match_length=tp(e,i),e.match_length<=5&&(e.strategy===sv||e.match_length===B&&e.strstart-e.match_start>4096)&&(e.match_length=B-1)),e.prev_length>=B&&e.match_length<=e.prev_length){r=e.strstart+e.lookahead-B,n=Se._tr_tally(e,e.strstart-1-e.prev_match,e.prev_length-B),e.lookahead-=e.prev_length-1,e.prev_length-=2;do++e.strstart<=r&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+B-1])&e.hash_mask,i=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart);while(--e.prev_length!==0);if(e.match_available=0,e.match_length=B-1,e.strstart++,n&&(ae(e,!1),e.strm.avail_out===0))return ne}else if(e.match_available){if(n=Se._tr_tally(e,0,e.window[e.strstart-1]),n&&ae(e,!1),e.strstart++,e.lookahead--,e.strm.avail_out===0)return ne}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(n=Se._tr_tally(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<B-1?e.strstart:B-1,t===Rt?(ae(e,!0),e.strm.avail_out===0?Gt:Ri):e.last_lit&&(ae(e,!1),e.strm.avail_out===0)?ne:Ln}function Sv(e,t){for(var i,n,r,a,s=e.window;;){if(e.lookahead<=kt){if(Wt(e),e.lookahead<=kt&&t===Vt)return ne;if(e.lookahead===0)break}if(e.match_length=0,e.lookahead>=B&&e.strstart>0&&(r=e.strstart-1,n=s[r],n===s[++r]&&n===s[++r]&&n===s[++r])){a=e.strstart+kt;do;while(n===s[++r]&&n===s[++r]&&n===s[++r]&&n===s[++r]&&n===s[++r]&&n===s[++r]&&n===s[++r]&&n===s[++r]&&r<a);e.match_length=kt-(a-r),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=B?(i=Se._tr_tally(e,1,e.match_length-B),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(i=Se._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),i&&(ae(e,!1),e.strm.avail_out===0))return ne}return e.insert=0,t===Rt?(ae(e,!0),e.strm.avail_out===0?Gt:Ri):e.last_lit&&(ae(e,!1),e.strm.avail_out===0)?ne:Ln}function Av(e,t){for(var i;;){if(e.lookahead===0&&(Wt(e),e.lookahead===0)){if(t===Vt)return ne;break}if(e.match_length=0,i=Se._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,i&&(ae(e,!1),e.strm.avail_out===0))return ne}return e.insert=0,t===Rt?(ae(e,!0),e.strm.avail_out===0?Gt:Ri):e.last_lit&&(ae(e,!1),e.strm.avail_out===0)?ne:Ln}function Ge(e,t,i,n,r){this.good_length=e,this.max_lazy=t,this.nice_length=i,this.max_chain=n,this.func=r}var Li;Li=[new Ge(0,0,0,0,Ev),new Ge(4,4,8,4,xo),new Ge(4,5,16,8,xo),new Ge(4,6,32,32,xo),new Ge(4,4,16,16,ki),new Ge(8,16,32,32,ki),new Ge(8,16,128,128,ki),new Ge(8,32,128,256,ki),new Ge(32,128,258,1024,ki),new Ge(32,258,258,4096,ki)];function Cv(e){e.window_size=2*e.w_size,Tt(e.head),e.max_lazy_match=Li[e.level].max_lazy,e.good_match=Li[e.level].good_length,e.nice_match=Li[e.level].nice_length,e.max_chain_length=Li[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=B-1,e.match_available=0,e.ins_h=0}function Tv(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=ea,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new ge.Buf16(vv*2),this.dyn_dtree=new ge.Buf16((2*mv+1)*2),this.bl_tree=new ge.Buf16((2*bv+1)*2),Tt(this.dyn_ltree),Tt(this.dyn_dtree),Tt(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new ge.Buf16(yv+1),this.heap=new ge.Buf16(2*wo+1),Tt(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new ge.Buf16(2*wo+1),Tt(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function ip(e){var t;return!e||!e.state?Lt(e,Ae):(e.total_in=e.total_out=0,e.data_type=dv,t=e.state,t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap?ta:qt,e.adler=t.wrap===2?0:1,t.last_flush=Vt,Se._tr_init(t),We)}function np(e){var t=ip(e);return t===We&&Cv(e.state),t}function kv(e,t){return!e||!e.state||e.state.wrap!==2?Ae:(e.state.gzhead=t,We)}function rp(e,t,i,n,r,a){if(!e)return Ae;var s=1;if(t===av&&(t=6),n<0?(s=0,n=-n):n>15&&(s=2,n-=16),r<1||r>uv||i!==ea||n<8||n>15||t<0||t>9||a<0||a>lv)return Lt(e,Ae);n===8&&(n=9);var o=new Tv;return e.state=o,o.strm=e,o.wrap=s,o.gzhead=null,o.w_bits=n,o.w_size=1<<o.w_bits,o.w_mask=o.w_size-1,o.hash_bits=r+7,o.hash_size=1<<o.hash_bits,o.hash_mask=o.hash_size-1,o.hash_shift=~~((o.hash_bits+B-1)/B),o.window=new ge.Buf8(o.w_size*2),o.head=new ge.Buf16(o.hash_size),o.prev=new ge.Buf16(o.w_size),o.lit_bufsize=1<<r+6,o.pending_buf_size=o.lit_bufsize*4,o.pending_buf=new ge.Buf8(o.pending_buf_size),o.d_buf=1*o.lit_bufsize,o.l_buf=3*o.lit_bufsize,o.level=t,o.strategy=a,o.method=i,np(e)}function Lv(e,t){return rp(e,t,ea,pv,fv,cv)}function Rv(e,t){var i,n,r,a;if(!e||!e.state||t>Zu||t<0)return e?Lt(e,Ae):Ae;if(n=e.state,!e.output||!e.input&&e.avail_in!==0||n.status===kn&&t!==Rt)return Lt(e,e.avail_out===0?yo:Ae);if(n.strm=e,i=n.last_flush,n.last_flush=t,n.status===ta)if(n.wrap===2)e.adler=0,N(n,31),N(n,139),N(n,8),n.gzhead?(N(n,(n.gzhead.text?1:0)+(n.gzhead.hcrc?2:0)+(n.gzhead.extra?4:0)+(n.gzhead.name?8:0)+(n.gzhead.comment?16:0)),N(n,n.gzhead.time&255),N(n,n.gzhead.time>>8&255),N(n,n.gzhead.time>>16&255),N(n,n.gzhead.time>>24&255),N(n,n.level===9?2:n.strategy>=Xr||n.level<2?4:0),N(n,n.gzhead.os&255),n.gzhead.extra&&n.gzhead.extra.length&&(N(n,n.gzhead.extra.length&255),N(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(e.adler=At(e.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=_o):(N(n,0),N(n,0),N(n,0),N(n,0),N(n,0),N(n,n.level===9?2:n.strategy>=Xr||n.level<2?4:0),N(n,wv),n.status=qt);else{var s=ea+(n.w_bits-8<<4)<<8,o=-1;n.strategy>=Xr||n.level<2?o=0:n.level<6?o=1:n.level===6?o=2:o=3,s|=o<<6,n.strstart!==0&&(s|=xv),s+=31-s%31,n.status=qt,Tn(n,s),n.strstart!==0&&(Tn(n,e.adler>>>16),Tn(n,e.adler&65535)),e.adler=1}if(n.status===_o)if(n.gzhead.extra){for(r=n.pending;n.gzindex<(n.gzhead.extra.length&65535)&&!(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>r&&(e.adler=At(e.adler,n.pending_buf,n.pending-r,r)),Ct(e),r=n.pending,n.pending===n.pending_buf_size));)N(n,n.gzhead.extra[n.gzindex]&255),n.gzindex++;n.gzhead.hcrc&&n.pending>r&&(e.adler=At(e.adler,n.pending_buf,n.pending-r,r)),n.gzindex===n.gzhead.extra.length&&(n.gzindex=0,n.status=Zr)}else n.status=Zr;if(n.status===Zr)if(n.gzhead.name){r=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>r&&(e.adler=At(e.adler,n.pending_buf,n.pending-r,r)),Ct(e),r=n.pending,n.pending===n.pending_buf_size)){a=1;break}n.gzindex<n.gzhead.name.length?a=n.gzhead.name.charCodeAt(n.gzindex++)&255:a=0,N(n,a)}while(a!==0);n.gzhead.hcrc&&n.pending>r&&(e.adler=At(e.adler,n.pending_buf,n.pending-r,r)),a===0&&(n.gzindex=0,n.status=Jr)}else n.status=Jr;if(n.status===Jr)if(n.gzhead.comment){r=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>r&&(e.adler=At(e.adler,n.pending_buf,n.pending-r,r)),Ct(e),r=n.pending,n.pending===n.pending_buf_size)){a=1;break}n.gzindex<n.gzhead.comment.length?a=n.gzhead.comment.charCodeAt(n.gzindex++)&255:a=0,N(n,a)}while(a!==0);n.gzhead.hcrc&&n.pending>r&&(e.adler=At(e.adler,n.pending_buf,n.pending-r,r)),a===0&&(n.status=Qr)}else n.status=Qr;if(n.status===Qr&&(n.gzhead.hcrc?(n.pending+2>n.pending_buf_size&&Ct(e),n.pending+2<=n.pending_buf_size&&(N(n,e.adler&255),N(n,e.adler>>8&255),e.adler=0,n.status=qt)):n.status=qt),n.pending!==0){if(Ct(e),e.avail_out===0)return n.last_flush=-1,We}else if(e.avail_in===0&&Qu(t)<=Qu(i)&&t!==Rt)return Lt(e,yo);if(n.status===kn&&e.avail_in!==0)return Lt(e,yo);if(e.avail_in!==0||n.lookahead!==0||t!==Vt&&n.status!==kn){var c=n.strategy===Xr?Av(n,t):n.strategy===ov?Sv(n,t):Li[n.level].func(n,t);if((c===Gt||c===Ri)&&(n.status=kn),c===ne||c===Gt)return e.avail_out===0&&(n.last_flush=-1),We;if(c===Ln&&(t===iv?Se._tr_align(n):t!==Zu&&(Se._tr_stored_block(n,0,0,!1),t===nv&&(Tt(n.head),n.lookahead===0&&(n.strstart=0,n.block_start=0,n.insert=0))),Ct(e),e.avail_out===0))return n.last_flush=-1,We}return t!==Rt?We:n.wrap<=0?Ju:(n.wrap===2?(N(n,e.adler&255),N(n,e.adler>>8&255),N(n,e.adler>>16&255),N(n,e.adler>>24&255),N(n,e.total_in&255),N(n,e.total_in>>8&255),N(n,e.total_in>>16&255),N(n,e.total_in>>24&255)):(Tn(n,e.adler>>>16),Tn(n,e.adler&65535)),Ct(e),n.wrap>0&&(n.wrap=-n.wrap),n.pending!==0?We:Ju)}function Mv(e){var t;return!e||!e.state?Ae:(t=e.state.status,t!==ta&&t!==_o&&t!==Zr&&t!==Jr&&t!==Qr&&t!==qt&&t!==kn?Lt(e,Ae):(e.state=null,t===qt?Lt(e,rv):We))}function Pv(e,t){var i=t.length,n,r,a,s,o,c,l,d;if(!e||!e.state||(n=e.state,s=n.wrap,s===2||s===1&&n.status!==ta||n.lookahead))return Ae;for(s===1&&(e.adler=ep(e.adler,t,i,0)),n.wrap=0,i>=n.w_size&&(s===0&&(Tt(n.head),n.strstart=0,n.block_start=0,n.insert=0),d=new ge.Buf8(n.w_size),ge.arraySet(d,t,i-n.w_size,n.w_size,0),t=d,i=n.w_size),o=e.avail_in,c=e.next_in,l=e.input,e.avail_in=i,e.next_in=0,e.input=t,Wt(n);n.lookahead>=B;){r=n.strstart,a=n.lookahead-(B-1);do n.ins_h=(n.ins_h<<n.hash_shift^n.window[r+B-1])&n.hash_mask,n.prev[r&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=r,r++;while(--a);n.strstart=r,n.lookahead=B-1,Wt(n)}return n.strstart+=n.lookahead,n.block_start=n.strstart,n.insert=n.lookahead,n.lookahead=0,n.match_length=n.prev_length=B-1,n.match_available=0,e.next_in=c,e.input=l,e.avail_in=o,n.wrap=s,We}Ve.deflateInit=Lv;Ve.deflateInit2=rp;Ve.deflateReset=np;Ve.deflateResetKeep=ip;Ve.deflateSetHeader=kv;Ve.deflate=Rv;Ve.deflateEnd=Mv;Ve.deflateSetDictionary=Pv;Ve.deflateInfo="pako deflate (from Nodeca project)"});var Eo=P(Mi=>{"use strict";var ia=st(),sp=!0,op=!0;try{String.fromCharCode.apply(null,[0])}catch{sp=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{op=!1}var Rn=new ia.Buf8(256);for(lt=0;lt<256;lt++)Rn[lt]=lt>=252?6:lt>=248?5:lt>=240?4:lt>=224?3:lt>=192?2:1;var lt;Rn[254]=Rn[254]=1;Mi.string2buf=function(e){var t,i,n,r,a,s=e.length,o=0;for(r=0;r<s;r++)i=e.charCodeAt(r),(i&64512)===55296&&r+1<s&&(n=e.charCodeAt(r+1),(n&64512)===56320&&(i=65536+(i-55296<<10)+(n-56320),r++)),o+=i<128?1:i<2048?2:i<65536?3:4;for(t=new ia.Buf8(o),a=0,r=0;a<o;r++)i=e.charCodeAt(r),(i&64512)===55296&&r+1<s&&(n=e.charCodeAt(r+1),(n&64512)===56320&&(i=65536+(i-55296<<10)+(n-56320),r++)),i<128?t[a++]=i:i<2048?(t[a++]=192|i>>>6,t[a++]=128|i&63):i<65536?(t[a++]=224|i>>>12,t[a++]=128|i>>>6&63,t[a++]=128|i&63):(t[a++]=240|i>>>18,t[a++]=128|i>>>12&63,t[a++]=128|i>>>6&63,t[a++]=128|i&63);return t};function lp(e,t){if(t<65534&&(e.subarray&&op||!e.subarray&&sp))return String.fromCharCode.apply(null,ia.shrinkBuf(e,t));for(var i="",n=0;n<t;n++)i+=String.fromCharCode(e[n]);return i}Mi.buf2binstring=function(e){return lp(e,e.length)};Mi.binstring2buf=function(e){for(var t=new ia.Buf8(e.length),i=0,n=t.length;i<n;i++)t[i]=e.charCodeAt(i);return t};Mi.buf2string=function(e,t){var i,n,r,a,s=t||e.length,o=new Array(s*2);for(n=0,i=0;i<s;){if(r=e[i++],r<128){o[n++]=r;continue}if(a=Rn[r],a>4){o[n++]=65533,i+=a-1;continue}for(r&=a===2?31:a===3?15:7;a>1&&i<s;)r=r<<6|e[i++]&63,a--;if(a>1){o[n++]=65533;continue}r<65536?o[n++]=r:(r-=65536,o[n++]=55296|r>>10&1023,o[n++]=56320|r&1023)}return lp(o,n)};Mi.utf8border=function(e,t){var i;for(t=t||e.length,t>e.length&&(t=e.length),i=t-1;i>=0&&(e[i]&192)===128;)i--;return i<0||i===0?t:i+Rn[e[i]]>t?i:t}});var So=P((o1,cp)=>{"use strict";function Iv(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}cp.exports=Iv});var fp=P(In=>{"use strict";var Mn=ap(),Pn=st(),Co=Eo(),To=Kr(),Ov=So(),pp=Object.prototype.toString,Dv=0,Ao=4,Pi=0,dp=1,up=2,jv=-1,zv=0,Bv=8;function Yt(e){if(!(this instanceof Yt))return new Yt(e);this.options=Pn.assign({level:jv,method:Bv,chunkSize:16384,windowBits:15,memLevel:8,strategy:zv,to:""},e||{});var t=this.options;t.raw&&t.windowBits>0?t.windowBits=-t.windowBits:t.gzip&&t.windowBits>0&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Ov,this.strm.avail_out=0;var i=Mn.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(i!==Pi)throw new Error(To[i]);if(t.header&&Mn.deflateSetHeader(this.strm,t.header),t.dictionary){var n;if(typeof t.dictionary=="string"?n=Co.string2buf(t.dictionary):pp.call(t.dictionary)==="[object ArrayBuffer]"?n=new Uint8Array(t.dictionary):n=t.dictionary,i=Mn.deflateSetDictionary(this.strm,n),i!==Pi)throw new Error(To[i]);this._dict_set=!0}}Yt.prototype.push=function(e,t){var i=this.strm,n=this.options.chunkSize,r,a;if(this.ended)return!1;a=t===~~t?t:t===!0?Ao:Dv,typeof e=="string"?i.input=Co.string2buf(e):pp.call(e)==="[object ArrayBuffer]"?i.input=new Uint8Array(e):i.input=e,i.next_in=0,i.avail_in=i.input.length;do{if(i.avail_out===0&&(i.output=new Pn.Buf8(n),i.next_out=0,i.avail_out=n),r=Mn.deflate(i,a),r!==dp&&r!==Pi)return this.onEnd(r),this.ended=!0,!1;(i.avail_out===0||i.avail_in===0&&(a===Ao||a===up))&&(this.options.to==="string"?this.onData(Co.buf2binstring(Pn.shrinkBuf(i.output,i.next_out))):this.onData(Pn.shrinkBuf(i.output,i.next_out)))}while((i.avail_in>0||i.avail_out===0)&&r!==dp);return a===Ao?(r=Mn.deflateEnd(this.strm),this.onEnd(r),this.ended=!0,r===Pi):(a===up&&(this.onEnd(Pi),i.avail_out=0),!0)};Yt.prototype.onData=function(e){this.chunks.push(e)};Yt.prototype.onEnd=function(e){e===Pi&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=Pn.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function ko(e,t){var i=new Yt(t);if(i.push(e,!0),i.err)throw i.msg||To[i.err];return i.result}function Nv(e,t){return t=t||{},t.raw=!0,ko(e,t)}function Fv(e,t){return t=t||{},t.gzip=!0,ko(e,t)}In.Deflate=Yt;In.deflate=ko;In.deflateRaw=Nv;In.gzip=Fv});var gp=P((c1,hp)=>{"use strict";var na=30,Hv=12;hp.exports=function(t,i){var n,r,a,s,o,c,l,d,u,p,f,g,h,m,b,v,y,x,w,E,A,S,k,I,_;n=t.state,r=t.next_in,I=t.input,a=r+(t.avail_in-5),s=t.next_out,_=t.output,o=s-(i-t.avail_out),c=s+(t.avail_out-257),l=n.dmax,d=n.wsize,u=n.whave,p=n.wnext,f=n.window,g=n.hold,h=n.bits,m=n.lencode,b=n.distcode,v=(1<<n.lenbits)-1,y=(1<<n.distbits)-1;e:do{h<15&&(g+=I[r++]<<h,h+=8,g+=I[r++]<<h,h+=8),x=m[g&v];t:for(;;){if(w=x>>>24,g>>>=w,h-=w,w=x>>>16&255,w===0)_[s++]=x&65535;else if(w&16){E=x&65535,w&=15,w&&(h<w&&(g+=I[r++]<<h,h+=8),E+=g&(1<<w)-1,g>>>=w,h-=w),h<15&&(g+=I[r++]<<h,h+=8,g+=I[r++]<<h,h+=8),x=b[g&y];i:for(;;){if(w=x>>>24,g>>>=w,h-=w,w=x>>>16&255,w&16){if(A=x&65535,w&=15,h<w&&(g+=I[r++]<<h,h+=8,h<w&&(g+=I[r++]<<h,h+=8)),A+=g&(1<<w)-1,A>l){t.msg="invalid distance too far back",n.mode=na;break e}if(g>>>=w,h-=w,w=s-o,A>w){if(w=A-w,w>u&&n.sane){t.msg="invalid distance too far back",n.mode=na;break e}if(S=0,k=f,p===0){if(S+=d-w,w<E){E-=w;do _[s++]=f[S++];while(--w);S=s-A,k=_}}else if(p<w){if(S+=d+p-w,w-=p,w<E){E-=w;do _[s++]=f[S++];while(--w);if(S=0,p<E){w=p,E-=w;do _[s++]=f[S++];while(--w);S=s-A,k=_}}}else if(S+=p-w,w<E){E-=w;do _[s++]=f[S++];while(--w);S=s-A,k=_}for(;E>2;)_[s++]=k[S++],_[s++]=k[S++],_[s++]=k[S++],E-=3;E&&(_[s++]=k[S++],E>1&&(_[s++]=k[S++]))}else{S=s-A;do _[s++]=_[S++],_[s++]=_[S++],_[s++]=_[S++],E-=3;while(E>2);E&&(_[s++]=_[S++],E>1&&(_[s++]=_[S++]))}}else if((w&64)===0){x=b[(x&65535)+(g&(1<<w)-1)];continue i}else{t.msg="invalid distance code",n.mode=na;break e}break}}else if((w&64)===0){x=m[(x&65535)+(g&(1<<w)-1)];continue t}else if(w&32){n.mode=Hv;break e}else{t.msg="invalid literal/length code",n.mode=na;break e}break}}while(r<a&&s<c);E=h>>3,r-=E,h-=E<<3,g&=(1<<h)-1,t.next_in=r,t.next_out=s,t.avail_in=r<a?5+(a-r):5-(r-a),t.avail_out=s<c?257+(c-s):257-(s-c),n.hold=g,n.bits=h}});var _p=P((d1,wp)=>{"use strict";var mp=st(),Ii=15,bp=852,vp=592,yp=0,Lo=1,xp=2,Uv=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],$v=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],qv=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],Gv=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];wp.exports=function(t,i,n,r,a,s,o,c){var l=c.bits,d=0,u=0,p=0,f=0,g=0,h=0,m=0,b=0,v=0,y=0,x,w,E,A,S,k=null,I=0,_,C=new mp.Buf16(Ii+1),R=new mp.Buf16(Ii+1),M=null,O=0,T,j,L;for(d=0;d<=Ii;d++)C[d]=0;for(u=0;u<r;u++)C[i[n+u]]++;for(g=l,f=Ii;f>=1&&C[f]===0;f--);if(g>f&&(g=f),f===0)return a[s++]=1<<24|64<<16|0,a[s++]=1<<24|64<<16|0,c.bits=1,0;for(p=1;p<f&&C[p]===0;p++);for(g<p&&(g=p),b=1,d=1;d<=Ii;d++)if(b<<=1,b-=C[d],b<0)return-1;if(b>0&&(t===yp||f!==1))return-1;for(R[1]=0,d=1;d<Ii;d++)R[d+1]=R[d]+C[d];for(u=0;u<r;u++)i[n+u]!==0&&(o[R[i[n+u]]++]=u);if(t===yp?(k=M=o,_=19):t===Lo?(k=Uv,I-=257,M=$v,O-=257,_=256):(k=qv,M=Gv,_=-1),y=0,u=0,d=p,S=s,h=g,m=0,E=-1,v=1<<g,A=v-1,t===Lo&&v>bp||t===xp&&v>vp)return 1;for(;;){T=d-m,o[u]<_?(j=0,L=o[u]):o[u]>_?(j=M[O+o[u]],L=k[I+o[u]]):(j=96,L=0),x=1<<d-m,w=1<<h,p=w;do w-=x,a[S+(y>>m)+w]=T<<24|j<<16|L|0;while(w!==0);for(x=1<<d-1;y&x;)x>>=1;if(x!==0?(y&=x-1,y+=x):y=0,u++,--C[d]===0){if(d===f)break;d=i[n+o[u]]}if(d>g&&(y&A)!==E){for(m===0&&(m=g),S+=p,h=d-m,b=1<<h;h+m<f&&(b-=C[h+m],!(b<=0));)h++,b<<=1;if(v+=1<<h,t===Lo&&v>bp||t===xp&&v>vp)return 1;E=y&A,a[E]=g<<24|h<<16|S-s|0}}return y!==0&&(a[S+y]=d-m<<24|64<<16|0),c.bits=g,0}});var rf=P(Oe=>{"use strict";var xe=st(),Do=bo(),Ye=vo(),Wv=gp(),On=_p(),Vv=0,Yp=1,Kp=2,Ep=4,Yv=5,ra=6,Kt=0,Kv=1,Xv=2,Ce=-2,Xp=-3,jo=-4,Zv=-5,Sp=8,Zp=1,Ap=2,Cp=3,Tp=4,kp=5,Lp=6,Rp=7,Mp=8,Pp=9,Ip=10,oa=11,ct=12,Ro=13,Op=14,Mo=15,Dp=16,jp=17,zp=18,Bp=19,aa=20,sa=21,Np=22,Fp=23,Hp=24,Up=25,$p=26,Po=27,qp=28,Gp=29,W=30,zo=31,Jv=32,Qv=852,ey=592,ty=15,iy=ty;function Wp(e){return(e>>>24&255)+(e>>>8&65280)+((e&65280)<<8)+((e&255)<<24)}function ny(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new xe.Buf16(320),this.work=new xe.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function Jp(e){var t;return!e||!e.state?Ce:(t=e.state,e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=t.wrap&1),t.mode=Zp,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new xe.Buf32(Qv),t.distcode=t.distdyn=new xe.Buf32(ey),t.sane=1,t.back=-1,Kt)}function Qp(e){var t;return!e||!e.state?Ce:(t=e.state,t.wsize=0,t.whave=0,t.wnext=0,Jp(e))}function ef(e,t){var i,n;return!e||!e.state||(n=e.state,t<0?(i=0,t=-t):(i=(t>>4)+1,t<48&&(t&=15)),t&&(t<8||t>15))?Ce:(n.window!==null&&n.wbits!==t&&(n.window=null),n.wrap=i,n.wbits=t,Qp(e))}function tf(e,t){var i,n;return e?(n=new ny,e.state=n,n.window=null,i=ef(e,t),i!==Kt&&(e.state=null),i):Ce}function ry(e){return tf(e,iy)}var Vp=!0,Io,Oo;function ay(e){if(Vp){var t;for(Io=new xe.Buf32(512),Oo=new xe.Buf32(32),t=0;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(On(Yp,e.lens,0,288,Io,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;On(Kp,e.lens,0,32,Oo,0,e.work,{bits:5}),Vp=!1}e.lencode=Io,e.lenbits=9,e.distcode=Oo,e.distbits=5}function nf(e,t,i,n){var r,a=e.state;return a.window===null&&(a.wsize=1<<a.wbits,a.wnext=0,a.whave=0,a.window=new xe.Buf8(a.wsize)),n>=a.wsize?(xe.arraySet(a.window,t,i-a.wsize,a.wsize,0),a.wnext=0,a.whave=a.wsize):(r=a.wsize-a.wnext,r>n&&(r=n),xe.arraySet(a.window,t,i-n,r,a.wnext),n-=r,n?(xe.arraySet(a.window,t,i-n,n,0),a.wnext=n,a.whave=a.wsize):(a.wnext+=r,a.wnext===a.wsize&&(a.wnext=0),a.whave<a.wsize&&(a.whave+=r))),0}function sy(e,t){var i,n,r,a,s,o,c,l,d,u,p,f,g,h,m=0,b,v,y,x,w,E,A,S,k=new xe.Buf8(4),I,_,C=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!e||!e.state||!e.output||!e.input&&e.avail_in!==0)return Ce;i=e.state,i.mode===ct&&(i.mode=Ro),s=e.next_out,r=e.output,c=e.avail_out,a=e.next_in,n=e.input,o=e.avail_in,l=i.hold,d=i.bits,u=o,p=c,S=Kt;e:for(;;)switch(i.mode){case Zp:if(i.wrap===0){i.mode=Ro;break}for(;d<16;){if(o===0)break e;o--,l+=n[a++]<<d,d+=8}if(i.wrap&2&&l===35615){i.check=0,k[0]=l&255,k[1]=l>>>8&255,i.check=Ye(i.check,k,2,0),l=0,d=0,i.mode=Ap;break}if(i.flags=0,i.head&&(i.head.done=!1),!(i.wrap&1)||(((l&255)<<8)+(l>>8))%31){e.msg="incorrect header check",i.mode=W;break}if((l&15)!==Sp){e.msg="unknown compression method",i.mode=W;break}if(l>>>=4,d-=4,A=(l&15)+8,i.wbits===0)i.wbits=A;else if(A>i.wbits){e.msg="invalid window size",i.mode=W;break}i.dmax=1<<A,e.adler=i.check=1,i.mode=l&512?Ip:ct,l=0,d=0;break;case Ap:for(;d<16;){if(o===0)break e;o--,l+=n[a++]<<d,d+=8}if(i.flags=l,(i.flags&255)!==Sp){e.msg="unknown compression method",i.mode=W;break}if(i.flags&57344){e.msg="unknown header flags set",i.mode=W;break}i.head&&(i.head.text=l>>8&1),i.flags&512&&(k[0]=l&255,k[1]=l>>>8&255,i.check=Ye(i.check,k,2,0)),l=0,d=0,i.mode=Cp;case Cp:for(;d<32;){if(o===0)break e;o--,l+=n[a++]<<d,d+=8}i.head&&(i.head.time=l),i.flags&512&&(k[0]=l&255,k[1]=l>>>8&255,k[2]=l>>>16&255,k[3]=l>>>24&255,i.check=Ye(i.check,k,4,0)),l=0,d=0,i.mode=Tp;case Tp:for(;d<16;){if(o===0)break e;o--,l+=n[a++]<<d,d+=8}i.head&&(i.head.xflags=l&255,i.head.os=l>>8),i.flags&512&&(k[0]=l&255,k[1]=l>>>8&255,i.check=Ye(i.check,k,2,0)),l=0,d=0,i.mode=kp;case kp:if(i.flags&1024){for(;d<16;){if(o===0)break e;o--,l+=n[a++]<<d,d+=8}i.length=l,i.head&&(i.head.extra_len=l),i.flags&512&&(k[0]=l&255,k[1]=l>>>8&255,i.check=Ye(i.check,k,2,0)),l=0,d=0}else i.head&&(i.head.extra=null);i.mode=Lp;case Lp:if(i.flags&1024&&(f=i.length,f>o&&(f=o),f&&(i.head&&(A=i.head.extra_len-i.length,i.head.extra||(i.head.extra=new Array(i.head.extra_len)),xe.arraySet(i.head.extra,n,a,f,A)),i.flags&512&&(i.check=Ye(i.check,n,f,a)),o-=f,a+=f,i.length-=f),i.length))break e;i.length=0,i.mode=Rp;case Rp:if(i.flags&2048){if(o===0)break e;f=0;do A=n[a+f++],i.head&&A&&i.length<65536&&(i.head.name+=String.fromCharCode(A));while(A&&f<o);if(i.flags&512&&(i.check=Ye(i.check,n,f,a)),o-=f,a+=f,A)break e}else i.head&&(i.head.name=null);i.length=0,i.mode=Mp;case Mp:if(i.flags&4096){if(o===0)break e;f=0;do A=n[a+f++],i.head&&A&&i.length<65536&&(i.head.comment+=String.fromCharCode(A));while(A&&f<o);if(i.flags&512&&(i.check=Ye(i.check,n,f,a)),o-=f,a+=f,A)break e}else i.head&&(i.head.comment=null);i.mode=Pp;case Pp:if(i.flags&512){for(;d<16;){if(o===0)break e;o--,l+=n[a++]<<d,d+=8}if(l!==(i.check&65535)){e.msg="header crc mismatch",i.mode=W;break}l=0,d=0}i.head&&(i.head.hcrc=i.flags>>9&1,i.head.done=!0),e.adler=i.check=0,i.mode=ct;break;case Ip:for(;d<32;){if(o===0)break e;o--,l+=n[a++]<<d,d+=8}e.adler=i.check=Wp(l),l=0,d=0,i.mode=oa;case oa:if(i.havedict===0)return e.next_out=s,e.avail_out=c,e.next_in=a,e.avail_in=o,i.hold=l,i.bits=d,Xv;e.adler=i.check=1,i.mode=ct;case ct:if(t===Yv||t===ra)break e;case Ro:if(i.last){l>>>=d&7,d-=d&7,i.mode=Po;break}for(;d<3;){if(o===0)break e;o--,l+=n[a++]<<d,d+=8}switch(i.last=l&1,l>>>=1,d-=1,l&3){case 0:i.mode=Op;break;case 1:if(ay(i),i.mode=aa,t===ra){l>>>=2,d-=2;break e}break;case 2:i.mode=jp;break;case 3:e.msg="invalid block type",i.mode=W}l>>>=2,d-=2;break;case Op:for(l>>>=d&7,d-=d&7;d<32;){if(o===0)break e;o--,l+=n[a++]<<d,d+=8}if((l&65535)!==(l>>>16^65535)){e.msg="invalid stored block lengths",i.mode=W;break}if(i.length=l&65535,l=0,d=0,i.mode=Mo,t===ra)break e;case Mo:i.mode=Dp;case Dp:if(f=i.length,f){if(f>o&&(f=o),f>c&&(f=c),f===0)break e;xe.arraySet(r,n,a,f,s),o-=f,a+=f,c-=f,s+=f,i.length-=f;break}i.mode=ct;break;case jp:for(;d<14;){if(o===0)break e;o--,l+=n[a++]<<d,d+=8}if(i.nlen=(l&31)+257,l>>>=5,d-=5,i.ndist=(l&31)+1,l>>>=5,d-=5,i.ncode=(l&15)+4,l>>>=4,d-=4,i.nlen>286||i.ndist>30){e.msg="too many length or distance symbols",i.mode=W;break}i.have=0,i.mode=zp;case zp:for(;i.have<i.ncode;){for(;d<3;){if(o===0)break e;o--,l+=n[a++]<<d,d+=8}i.lens[C[i.have++]]=l&7,l>>>=3,d-=3}for(;i.have<19;)i.lens[C[i.have++]]=0;if(i.lencode=i.lendyn,i.lenbits=7,I={bits:i.lenbits},S=On(Vv,i.lens,0,19,i.lencode,0,i.work,I),i.lenbits=I.bits,S){e.msg="invalid code lengths set",i.mode=W;break}i.have=0,i.mode=Bp;case Bp:for(;i.have<i.nlen+i.ndist;){for(;m=i.lencode[l&(1<<i.lenbits)-1],b=m>>>24,v=m>>>16&255,y=m&65535,!(b<=d);){if(o===0)break e;o--,l+=n[a++]<<d,d+=8}if(y<16)l>>>=b,d-=b,i.lens[i.have++]=y;else{if(y===16){for(_=b+2;d<_;){if(o===0)break e;o--,l+=n[a++]<<d,d+=8}if(l>>>=b,d-=b,i.have===0){e.msg="invalid bit length repeat",i.mode=W;break}A=i.lens[i.have-1],f=3+(l&3),l>>>=2,d-=2}else if(y===17){for(_=b+3;d<_;){if(o===0)break e;o--,l+=n[a++]<<d,d+=8}l>>>=b,d-=b,A=0,f=3+(l&7),l>>>=3,d-=3}else{for(_=b+7;d<_;){if(o===0)break e;o--,l+=n[a++]<<d,d+=8}l>>>=b,d-=b,A=0,f=11+(l&127),l>>>=7,d-=7}if(i.have+f>i.nlen+i.ndist){e.msg="invalid bit length repeat",i.mode=W;break}for(;f--;)i.lens[i.have++]=A}}if(i.mode===W)break;if(i.lens[256]===0){e.msg="invalid code -- missing end-of-block",i.mode=W;break}if(i.lenbits=9,I={bits:i.lenbits},S=On(Yp,i.lens,0,i.nlen,i.lencode,0,i.work,I),i.lenbits=I.bits,S){e.msg="invalid literal/lengths set",i.mode=W;break}if(i.distbits=6,i.distcode=i.distdyn,I={bits:i.distbits},S=On(Kp,i.lens,i.nlen,i.ndist,i.distcode,0,i.work,I),i.distbits=I.bits,S){e.msg="invalid distances set",i.mode=W;break}if(i.mode=aa,t===ra)break e;case aa:i.mode=sa;case sa:if(o>=6&&c>=258){e.next_out=s,e.avail_out=c,e.next_in=a,e.avail_in=o,i.hold=l,i.bits=d,Wv(e,p),s=e.next_out,r=e.output,c=e.avail_out,a=e.next_in,n=e.input,o=e.avail_in,l=i.hold,d=i.bits,i.mode===ct&&(i.back=-1);break}for(i.back=0;m=i.lencode[l&(1<<i.lenbits)-1],b=m>>>24,v=m>>>16&255,y=m&65535,!(b<=d);){if(o===0)break e;o--,l+=n[a++]<<d,d+=8}if(v&&(v&240)===0){for(x=b,w=v,E=y;m=i.lencode[E+((l&(1<<x+w)-1)>>x)],b=m>>>24,v=m>>>16&255,y=m&65535,!(x+b<=d);){if(o===0)break e;o--,l+=n[a++]<<d,d+=8}l>>>=x,d-=x,i.back+=x}if(l>>>=b,d-=b,i.back+=b,i.length=y,v===0){i.mode=$p;break}if(v&32){i.back=-1,i.mode=ct;break}if(v&64){e.msg="invalid literal/length code",i.mode=W;break}i.extra=v&15,i.mode=Np;case Np:if(i.extra){for(_=i.extra;d<_;){if(o===0)break e;o--,l+=n[a++]<<d,d+=8}i.length+=l&(1<<i.extra)-1,l>>>=i.extra,d-=i.extra,i.back+=i.extra}i.was=i.length,i.mode=Fp;case Fp:for(;m=i.distcode[l&(1<<i.distbits)-1],b=m>>>24,v=m>>>16&255,y=m&65535,!(b<=d);){if(o===0)break e;o--,l+=n[a++]<<d,d+=8}if((v&240)===0){for(x=b,w=v,E=y;m=i.distcode[E+((l&(1<<x+w)-1)>>x)],b=m>>>24,v=m>>>16&255,y=m&65535,!(x+b<=d);){if(o===0)break e;o--,l+=n[a++]<<d,d+=8}l>>>=x,d-=x,i.back+=x}if(l>>>=b,d-=b,i.back+=b,v&64){e.msg="invalid distance code",i.mode=W;break}i.offset=y,i.extra=v&15,i.mode=Hp;case Hp:if(i.extra){for(_=i.extra;d<_;){if(o===0)break e;o--,l+=n[a++]<<d,d+=8}i.offset+=l&(1<<i.extra)-1,l>>>=i.extra,d-=i.extra,i.back+=i.extra}if(i.offset>i.dmax){e.msg="invalid distance too far back",i.mode=W;break}i.mode=Up;case Up:if(c===0)break e;if(f=p-c,i.offset>f){if(f=i.offset-f,f>i.whave&&i.sane){e.msg="invalid distance too far back",i.mode=W;break}f>i.wnext?(f-=i.wnext,g=i.wsize-f):g=i.wnext-f,f>i.length&&(f=i.length),h=i.window}else h=r,g=s-i.offset,f=i.length;f>c&&(f=c),c-=f,i.length-=f;do r[s++]=h[g++];while(--f);i.length===0&&(i.mode=sa);break;case $p:if(c===0)break e;r[s++]=i.length,c--,i.mode=sa;break;case Po:if(i.wrap){for(;d<32;){if(o===0)break e;o--,l|=n[a++]<<d,d+=8}if(p-=c,e.total_out+=p,i.total+=p,p&&(e.adler=i.check=i.flags?Ye(i.check,r,p,s-p):Do(i.check,r,p,s-p)),p=c,(i.flags?l:Wp(l))!==i.check){e.msg="incorrect data check",i.mode=W;break}l=0,d=0}i.mode=qp;case qp:if(i.wrap&&i.flags){for(;d<32;){if(o===0)break e;o--,l+=n[a++]<<d,d+=8}if(l!==(i.total&4294967295)){e.msg="incorrect length check",i.mode=W;break}l=0,d=0}i.mode=Gp;case Gp:S=Kv;break e;case W:S=Xp;break e;case zo:return jo;case Jv:default:return Ce}return e.next_out=s,e.avail_out=c,e.next_in=a,e.avail_in=o,i.hold=l,i.bits=d,(i.wsize||p!==e.avail_out&&i.mode<W&&(i.mode<Po||t!==Ep))&&nf(e,e.output,e.next_out,p-e.avail_out)?(i.mode=zo,jo):(u-=e.avail_in,p-=e.avail_out,e.total_in+=u,e.total_out+=p,i.total+=p,i.wrap&&p&&(e.adler=i.check=i.flags?Ye(i.check,r,p,e.next_out-p):Do(i.check,r,p,e.next_out-p)),e.data_type=i.bits+(i.last?64:0)+(i.mode===ct?128:0)+(i.mode===aa||i.mode===Mo?256:0),(u===0&&p===0||t===Ep)&&S===Kt&&(S=Zv),S)}function oy(e){if(!e||!e.state)return Ce;var t=e.state;return t.window&&(t.window=null),e.state=null,Kt}function ly(e,t){var i;return!e||!e.state||(i=e.state,(i.wrap&2)===0)?Ce:(i.head=t,t.done=!1,Kt)}function cy(e,t){var i=t.length,n,r,a;return!e||!e.state||(n=e.state,n.wrap!==0&&n.mode!==oa)?Ce:n.mode===oa&&(r=1,r=Do(r,t,i,0),r!==n.check)?Xp:(a=nf(e,t,i,i),a?(n.mode=zo,jo):(n.havedict=1,Kt))}Oe.inflateReset=Qp;Oe.inflateReset2=ef;Oe.inflateResetKeep=Jp;Oe.inflateInit=ry;Oe.inflateInit2=tf;Oe.inflate=sy;Oe.inflateEnd=oy;Oe.inflateGetHeader=ly;Oe.inflateSetDictionary=cy;Oe.inflateInfo="pako inflate (from Nodeca project)"});var Bo=P((p1,af)=>{"use strict";af.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}});var of=P((f1,sf)=>{"use strict";function dy(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}sf.exports=dy});var cf=P(jn=>{"use strict";var Oi=rf(),Dn=st(),la=Eo(),J=Bo(),No=Kr(),uy=So(),py=of(),lf=Object.prototype.toString;function Xt(e){if(!(this instanceof Xt))return new Xt(e);this.options=Dn.assign({chunkSize:16384,windowBits:0,to:""},e||{});var t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,t.windowBits===0&&(t.windowBits=-15)),t.windowBits>=0&&t.windowBits<16&&!(e&&e.windowBits)&&(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&(t.windowBits&15)===0&&(t.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new uy,this.strm.avail_out=0;var i=Oi.inflateInit2(this.strm,t.windowBits);if(i!==J.Z_OK)throw new Error(No[i]);if(this.header=new py,Oi.inflateGetHeader(this.strm,this.header),t.dictionary&&(typeof t.dictionary=="string"?t.dictionary=la.string2buf(t.dictionary):lf.call(t.dictionary)==="[object ArrayBuffer]"&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(i=Oi.inflateSetDictionary(this.strm,t.dictionary),i!==J.Z_OK)))throw new Error(No[i])}Xt.prototype.push=function(e,t){var i=this.strm,n=this.options.chunkSize,r=this.options.dictionary,a,s,o,c,l,d=!1;if(this.ended)return!1;s=t===~~t?t:t===!0?J.Z_FINISH:J.Z_NO_FLUSH,typeof e=="string"?i.input=la.binstring2buf(e):lf.call(e)==="[object ArrayBuffer]"?i.input=new Uint8Array(e):i.input=e,i.next_in=0,i.avail_in=i.input.length;do{if(i.avail_out===0&&(i.output=new Dn.Buf8(n),i.next_out=0,i.avail_out=n),a=Oi.inflate(i,J.Z_NO_FLUSH),a===J.Z_NEED_DICT&&r&&(a=Oi.inflateSetDictionary(this.strm,r)),a===J.Z_BUF_ERROR&&d===!0&&(a=J.Z_OK,d=!1),a!==J.Z_STREAM_END&&a!==J.Z_OK)return this.onEnd(a),this.ended=!0,!1;i.next_out&&(i.avail_out===0||a===J.Z_STREAM_END||i.avail_in===0&&(s===J.Z_FINISH||s===J.Z_SYNC_FLUSH))&&(this.options.to==="string"?(o=la.utf8border(i.output,i.next_out),c=i.next_out-o,l=la.buf2string(i.output,o),i.next_out=c,i.avail_out=n-c,c&&Dn.arraySet(i.output,i.output,o,c,0),this.onData(l)):this.onData(Dn.shrinkBuf(i.output,i.next_out))),i.avail_in===0&&i.avail_out===0&&(d=!0)}while((i.avail_in>0||i.avail_out===0)&&a!==J.Z_STREAM_END);return a===J.Z_STREAM_END&&(s=J.Z_FINISH),s===J.Z_FINISH?(a=Oi.inflateEnd(this.strm),this.onEnd(a),this.ended=!0,a===J.Z_OK):(s===J.Z_SYNC_FLUSH&&(this.onEnd(J.Z_OK),i.avail_out=0),!0)};Xt.prototype.onData=function(e){this.chunks.push(e)};Xt.prototype.onEnd=function(e){e===J.Z_OK&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=Dn.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function Fo(e,t){var i=new Xt(t);if(i.push(e,!0),i.err)throw i.msg||No[i.err];return i.result}function fy(e,t){return t=t||{},t.raw=!0,Fo(e,t)}jn.Inflate=Xt;jn.inflate=Fo;jn.inflateRaw=fy;jn.ungzip=Fo});var pf=P((g1,uf)=>{"use strict";var hy=st().assign,gy=fp(),my=cf(),by=Bo(),df={};hy(df,gy,my,by);uf.exports=df});var hf=P(da=>{"use strict";var vy=typeof Uint8Array!="undefined"&&typeof Uint16Array!="undefined"&&typeof Uint32Array!="undefined",yy=pf(),ff=V(),ca=ye(),xy=vy?"uint8array":"array";da.magic="\b\0";function Zt(e,t){ca.call(this,"FlateWorker/"+e),this._pako=null,this._pakoAction=e,this._pakoOptions=t,this.meta={}}ff.inherits(Zt,ca);Zt.prototype.processChunk=function(e){this.meta=e.meta,this._pako===null&&this._createPako(),this._pako.push(ff.transformTo(xy,e.data),!1)};Zt.prototype.flush=function(){ca.prototype.flush.call(this),this._pako===null&&this._createPako(),this._pako.push([],!0)};Zt.prototype.cleanUp=function(){ca.prototype.cleanUp.call(this),this._pako=null};Zt.prototype._createPako=function(){this._pako=new yy[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var e=this;this._pako.onData=function(t){e.push({data:t,meta:e.meta})}};da.compressWorker=function(e){return new Zt("Deflate",e)};da.uncompressWorker=function(){return new Zt("Inflate",{})}});var Uo=P(Ho=>{"use strict";var gf=ye();Ho.STORE={magic:"\0\0",compressWorker:function(){return new gf("STORE compression")},uncompressWorker:function(){return new gf("STORE decompression")}};Ho.DEFLATE=hf()});var $o=P(Jt=>{"use strict";Jt.LOCAL_FILE_HEADER="PK";Jt.CENTRAL_FILE_HEADER="PK";Jt.CENTRAL_DIRECTORY_END="PK";Jt.ZIP64_CENTRAL_DIRECTORY_LOCATOR="PK\x07";Jt.ZIP64_CENTRAL_DIRECTORY_END="PK";Jt.DATA_DESCRIPTOR="PK\x07\b"});var yf=P((y1,vf)=>{"use strict";var Di=V(),ji=ye(),qo=Ei(),mf=qr(),ua=$o(),U=function(e,t){var i="",n;for(n=0;n<t;n++)i+=String.fromCharCode(e&255),e=e>>>8;return i},wy=function(e,t){var i=e;return e||(i=t?16893:33204),(i&65535)<<16},_y=function(e){return(e||0)&63},bf=function(e,t,i,n,r,a){var s=e.file,o=e.compression,c=a!==qo.utf8encode,l=Di.transformTo("string",a(s.name)),d=Di.transformTo("string",qo.utf8encode(s.name)),u=s.comment,p=Di.transformTo("string",a(u)),f=Di.transformTo("string",qo.utf8encode(u)),g=d.length!==s.name.length,h=f.length!==u.length,m,b,v="",y="",x="",w=s.dir,E=s.date,A={crc32:0,compressedSize:0,uncompressedSize:0};(!t||i)&&(A.crc32=e.crc32,A.compressedSize=e.compressedSize,A.uncompressedSize=e.uncompressedSize);var S=0;t&&(S|=8),!c&&(g||h)&&(S|=2048);var k=0,I=0;w&&(k|=16),r==="UNIX"?(I=798,k|=wy(s.unixPermissions,w)):(I=20,k|=_y(s.dosPermissions,w)),m=E.getUTCHours(),m=m<<6,m=m|E.getUTCMinutes(),m=m<<5,m=m|E.getUTCSeconds()/2,b=E.getUTCFullYear()-1980,b=b<<4,b=b|E.getUTCMonth()+1,b=b<<5,b=b|E.getUTCDate(),g&&(y=U(1,1)+U(mf(l),4)+d,v+="up"+U(y.length,2)+y),h&&(x=U(1,1)+U(mf(p),4)+f,v+="uc"+U(x.length,2)+x);var _="";_+=`
2
+ \0`,_+=U(S,2),_+=o.magic,_+=U(m,2),_+=U(b,2),_+=U(A.crc32,4),_+=U(A.compressedSize,4),_+=U(A.uncompressedSize,4),_+=U(l.length,2),_+=U(v.length,2);var C=ua.LOCAL_FILE_HEADER+_+l+v,R=ua.CENTRAL_FILE_HEADER+U(I,2)+_+U(p.length,2)+"\0\0\0\0"+U(k,4)+U(n,4)+l+v+p;return{fileRecord:C,dirRecord:R}},Ey=function(e,t,i,n,r){var a="",s=Di.transformTo("string",r(n));return a=ua.CENTRAL_DIRECTORY_END+"\0\0\0\0"+U(e,2)+U(e,2)+U(t,4)+U(i,4)+U(s.length,2)+s,a},Sy=function(e){var t="";return t=ua.DATA_DESCRIPTOR+U(e.crc32,4)+U(e.compressedSize,4)+U(e.uncompressedSize,4),t};function De(e,t,i,n){ji.call(this,"ZipFileWorker"),this.bytesWritten=0,this.zipComment=t,this.zipPlatform=i,this.encodeFileName=n,this.streamFiles=e,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}Di.inherits(De,ji);De.prototype.push=function(e){var t=e.meta.percent||0,i=this.entriesCount,n=this._sources.length;this.accumulate?this.contentBuffer.push(e):(this.bytesWritten+=e.data.length,ji.prototype.push.call(this,{data:e.data,meta:{currentFile:this.currentFile,percent:i?(t+100*(i-n-1))/i:100}}))};De.prototype.openedSource=function(e){this.currentSourceOffset=this.bytesWritten,this.currentFile=e.file.name;var t=this.streamFiles&&!e.file.dir;if(t){var i=bf(e,t,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:i.fileRecord,meta:{percent:0}})}else this.accumulate=!0};De.prototype.closedSource=function(e){this.accumulate=!1;var t=this.streamFiles&&!e.file.dir,i=bf(e,t,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(i.dirRecord),t)this.push({data:Sy(e),meta:{percent:100}});else for(this.push({data:i.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null};De.prototype.flush=function(){for(var e=this.bytesWritten,t=0;t<this.dirRecords.length;t++)this.push({data:this.dirRecords[t],meta:{percent:100}});var i=this.bytesWritten-e,n=Ey(this.dirRecords.length,i,e,this.zipComment,this.encodeFileName);this.push({data:n,meta:{percent:100}})};De.prototype.prepareNextSource=function(){this.previous=this._sources.shift(),this.openedSource(this.previous.streamInfo),this.isPaused?this.previous.pause():this.previous.resume()};De.prototype.registerPrevious=function(e){this._sources.push(e);var t=this;return e.on("data",function(i){t.processChunk(i)}),e.on("end",function(){t.closedSource(t.previous.streamInfo),t._sources.length?t.prepareNextSource():t.end()}),e.on("error",function(i){t.error(i)}),this};De.prototype.resume=function(){if(!ji.prototype.resume.call(this))return!1;if(!this.previous&&this._sources.length)return this.prepareNextSource(),!0;if(!this.previous&&!this._sources.length&&!this.generatedError)return this.end(),!0};De.prototype.error=function(e){var t=this._sources;if(!ji.prototype.error.call(this,e))return!1;for(var i=0;i<t.length;i++)try{t[i].error(e)}catch{}return!0};De.prototype.lock=function(){ji.prototype.lock.call(this);for(var e=this._sources,t=0;t<e.length;t++)e[t].lock()};vf.exports=De});var wf=P(xf=>{"use strict";var Ay=Uo(),Cy=yf(),Ty=function(e,t){var i=e||t,n=Ay[i];if(!n)throw new Error(i+" is not a valid compression method !");return n};xf.generateWorker=function(e,t,i){var n=new Cy(t.streamFiles,i,t.platform,t.encodeFileName),r=0;try{e.forEach(function(a,s){r++;var o=Ty(s.options.compression,t.compression),c=s.options.compressionOptions||t.compressionOptions||{},l=s.dir,d=s.date;s._compressWorker(o,c).withStreamInfo("file",{name:a,dir:l,date:d,comment:s.comment||"",unixPermissions:s.unixPermissions,dosPermissions:s.dosPermissions}).pipe(n)}),n.entriesCount=r}catch(a){n.error(a)}return n}});var Ef=P((w1,_f)=>{"use strict";var ky=V(),pa=ye();function zn(e,t){pa.call(this,"Nodejs stream input adapter for "+e),this._upstreamEnded=!1,this._bindStream(t)}ky.inherits(zn,pa);zn.prototype._bindStream=function(e){var t=this;this._stream=e,e.pause(),e.on("data",function(i){t.push({data:i,meta:{percent:0}})}).on("error",function(i){t.isPaused?this.generatedError=i:t.error(i)}).on("end",function(){t.isPaused?t._upstreamEnded=!0:t.end()})};zn.prototype.pause=function(){return pa.prototype.pause.call(this)?(this._stream.pause(),!0):!1};zn.prototype.resume=function(){return pa.prototype.resume.call(this)?(this._upstreamEnded?this.end():this._stream.resume(),!0):!1};_f.exports=zn});var If=P((_1,Pf)=>{"use strict";var Ly=Ei(),Bn=V(),Tf=ye(),Ry=Ys(),kf=Ks(),Sf=Gr(),My=Su(),Py=wf(),Af=fn(),Iy=Ef(),Lf=function(e,t,i){var n=Bn.getTypeOf(t),r,a=Bn.extend(i||{},kf);a.date=a.date||new Date,a.compression!==null&&(a.compression=a.compression.toUpperCase()),typeof a.unixPermissions=="string"&&(a.unixPermissions=parseInt(a.unixPermissions,8)),a.unixPermissions&&a.unixPermissions&16384&&(a.dir=!0),a.dosPermissions&&a.dosPermissions&16&&(a.dir=!0),a.dir&&(e=Rf(e)),a.createFolders&&(r=Oy(e))&&Mf.call(this,r,!0);var s=n==="string"&&a.binary===!1&&a.base64===!1;(!i||typeof i.binary=="undefined")&&(a.binary=!s);var o=t instanceof Sf&&t.uncompressedSize===0;(o||a.dir||!t||t.length===0)&&(a.base64=!1,a.binary=!0,t="",a.compression="STORE",n="string");var c=null;t instanceof Sf||t instanceof Tf?c=t:Af.isNode&&Af.isStream(t)?c=new Iy(e,t):c=Bn.prepareContent(e,t,a.binary,a.optimizedBinaryString,a.base64);var l=new My(e,c,a);this.files[e]=l},Oy=function(e){e.slice(-1)==="/"&&(e=e.substring(0,e.length-1));var t=e.lastIndexOf("/");return t>0?e.substring(0,t):""},Rf=function(e){return e.slice(-1)!=="/"&&(e+="/"),e},Mf=function(e,t){return t=typeof t!="undefined"?t:kf.createFolders,e=Rf(e),this.files[e]||Lf.call(this,e,null,{dir:!0,createFolders:t}),this.files[e]};function Cf(e){return Object.prototype.toString.call(e)==="[object RegExp]"}var Dy={load:function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},forEach:function(e){var t,i,n;for(t in this.files)n=this.files[t],i=t.slice(this.root.length,t.length),i&&t.slice(0,this.root.length)===this.root&&e(i,n)},filter:function(e){var t=[];return this.forEach(function(i,n){e(i,n)&&t.push(n)}),t},file:function(e,t,i){if(arguments.length===1)if(Cf(e)){var n=e;return this.filter(function(a,s){return!s.dir&&n.test(a)})}else{var r=this.files[this.root+e];return r&&!r.dir?r:null}else e=this.root+e,Lf.call(this,e,t,i);return this},folder:function(e){if(!e)return this;if(Cf(e))return this.filter(function(r,a){return a.dir&&e.test(r)});var t=this.root+e,i=Mf.call(this,t),n=this.clone();return n.root=i.name,n},remove:function(e){e=this.root+e;var t=this.files[e];if(t||(e.slice(-1)!=="/"&&(e+="/"),t=this.files[e]),t&&!t.dir)delete this.files[e];else for(var i=this.filter(function(r,a){return a.name.slice(0,e.length)===e}),n=0;n<i.length;n++)delete this.files[i[n].name];return this},generate:function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},generateInternalStream:function(e){var t,i={};try{if(i=Bn.extend(e||{},{streamFiles:!1,compression:"STORE",compressionOptions:null,type:"",platform:"DOS",comment:null,mimeType:"application/zip",encodeFileName:Ly.utf8encode}),i.type=i.type.toLowerCase(),i.compression=i.compression.toUpperCase(),i.type==="binarystring"&&(i.type="string"),!i.type)throw new Error("No output type specified.");Bn.checkSupport(i.type),(i.platform==="darwin"||i.platform==="freebsd"||i.platform==="linux"||i.platform==="sunos")&&(i.platform="UNIX"),i.platform==="win32"&&(i.platform="DOS");var n=i.comment||this.comment||"";t=Py.generateWorker(this,i,n)}catch(r){t=new Tf("error"),t.error(r)}return new Ry(t,i.type||"string",i.mimeType)},generateAsync:function(e,t){return this.generateInternalStream(e).accumulate(t)},generateNodeStream:function(e,t){return e=e||{},e.type||(e.type="nodebuffer"),this.generateInternalStream(e).toNodejsStream(t)}};Pf.exports=Dy});var Go=P((E1,Df)=>{"use strict";var jy=V();function Of(e){this.data=e,this.length=e.length,this.index=0,this.zero=0}Of.prototype={checkOffset:function(e){this.checkIndex(this.index+e)},checkIndex:function(e){if(this.length<this.zero+e||e<0)throw new Error("End of data reached (data length = "+this.length+", asked index = "+e+"). Corrupted zip ?")},setIndex:function(e){this.checkIndex(e),this.index=e},skip:function(e){this.setIndex(this.index+e)},byteAt:function(){},readInt:function(e){var t=0,i;for(this.checkOffset(e),i=this.index+e-1;i>=this.index;i--)t=(t<<8)+this.byteAt(i);return this.index+=e,t},readString:function(e){return jy.transformTo("string",this.readData(e))},readData:function(){},lastIndexOfSignature:function(){},readAndCheckSignature:function(){},readDate:function(){var e=this.readInt(4);return new Date(Date.UTC((e>>25&127)+1980,(e>>21&15)-1,e>>16&31,e>>11&31,e>>5&63,(e&31)<<1))}};Df.exports=Of});var Wo=P((S1,zf)=>{"use strict";var jf=Go(),zy=V();function zi(e){jf.call(this,e);for(var t=0;t<this.data.length;t++)e[t]=e[t]&255}zy.inherits(zi,jf);zi.prototype.byteAt=function(e){return this.data[this.zero+e]};zi.prototype.lastIndexOfSignature=function(e){for(var t=e.charCodeAt(0),i=e.charCodeAt(1),n=e.charCodeAt(2),r=e.charCodeAt(3),a=this.length-4;a>=0;--a)if(this.data[a]===t&&this.data[a+1]===i&&this.data[a+2]===n&&this.data[a+3]===r)return a-this.zero;return-1};zi.prototype.readAndCheckSignature=function(e){var t=e.charCodeAt(0),i=e.charCodeAt(1),n=e.charCodeAt(2),r=e.charCodeAt(3),a=this.readData(4);return t===a[0]&&i===a[1]&&n===a[2]&&r===a[3]};zi.prototype.readData=function(e){if(this.checkOffset(e),e===0)return[];var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t};zf.exports=zi});var Ff=P((A1,Nf)=>{"use strict";var Bf=Go(),By=V();function Bi(e){Bf.call(this,e)}By.inherits(Bi,Bf);Bi.prototype.byteAt=function(e){return this.data.charCodeAt(this.zero+e)};Bi.prototype.lastIndexOfSignature=function(e){return this.data.lastIndexOf(e)-this.zero};Bi.prototype.readAndCheckSignature=function(e){var t=this.readData(4);return e===t};Bi.prototype.readData=function(e){this.checkOffset(e);var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t};Nf.exports=Bi});var Yo=P((C1,Uf)=>{"use strict";var Hf=Wo(),Ny=V();function Vo(e){Hf.call(this,e)}Ny.inherits(Vo,Hf);Vo.prototype.readData=function(e){if(this.checkOffset(e),e===0)return new Uint8Array(0);var t=this.data.subarray(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t};Uf.exports=Vo});var Gf=P((T1,qf)=>{"use strict";var $f=Yo(),Fy=V();function Ko(e){$f.call(this,e)}Fy.inherits(Ko,$f);Ko.prototype.readData=function(e){this.checkOffset(e);var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t};qf.exports=Ko});var Xo=P((k1,Vf)=>{"use strict";var fa=V(),Wf=rt(),Hy=Wo(),Uy=Ff(),$y=Gf(),qy=Yo();Vf.exports=function(e){var t=fa.getTypeOf(e);return fa.checkSupport(t),t==="string"&&!Wf.uint8array?new Uy(e):t==="nodebuffer"?new $y(e):Wf.uint8array?new qy(fa.transformTo("uint8array",e)):new Hy(fa.transformTo("array",e))}});var Zf=P((L1,Xf)=>{"use strict";var Zo=Xo(),Mt=V(),Gy=Gr(),Yf=qr(),ha=Ei(),ga=Uo(),Wy=rt(),Vy=0,Yy=3,Ky=function(e){for(var t in ga)if(Object.prototype.hasOwnProperty.call(ga,t)&&ga[t].magic===e)return ga[t];return null};function Kf(e,t){this.options=e,this.loadOptions=t}Kf.prototype={isEncrypted:function(){return(this.bitFlag&1)===1},useUTF8:function(){return(this.bitFlag&2048)===2048},readLocalPart:function(e){var t,i;if(e.skip(22),this.fileNameLength=e.readInt(2),i=e.readInt(2),this.fileName=e.readData(this.fileNameLength),e.skip(i),this.compressedSize===-1||this.uncompressedSize===-1)throw new Error("Bug or corrupted zip : didn't get enough information from the central directory (compressedSize === -1 || uncompressedSize === -1)");if(t=Ky(this.compressionMethod),t===null)throw new Error("Corrupted zip : compression "+Mt.pretty(this.compressionMethod)+" unknown (inner file : "+Mt.transformTo("string",this.fileName)+")");this.decompressed=new Gy(this.compressedSize,this.uncompressedSize,this.crc32,t,e.readData(this.compressedSize))},readCentralPart:function(e){this.versionMadeBy=e.readInt(2),e.skip(2),this.bitFlag=e.readInt(2),this.compressionMethod=e.readString(2),this.date=e.readDate(),this.crc32=e.readInt(4),this.compressedSize=e.readInt(4),this.uncompressedSize=e.readInt(4);var t=e.readInt(2);if(this.extraFieldsLength=e.readInt(2),this.fileCommentLength=e.readInt(2),this.diskNumberStart=e.readInt(2),this.internalFileAttributes=e.readInt(2),this.externalFileAttributes=e.readInt(4),this.localHeaderOffset=e.readInt(4),this.isEncrypted())throw new Error("Encrypted zip are not supported");e.skip(t),this.readExtraFields(e),this.parseZIP64ExtraField(e),this.fileComment=e.readData(this.fileCommentLength)},processAttributes:function(){this.unixPermissions=null,this.dosPermissions=null;var e=this.versionMadeBy>>8;this.dir=!!(this.externalFileAttributes&16),e===Vy&&(this.dosPermissions=this.externalFileAttributes&63),e===Yy&&(this.unixPermissions=this.externalFileAttributes>>16&65535),!this.dir&&this.fileNameStr.slice(-1)==="/"&&(this.dir=!0)},parseZIP64ExtraField:function(){if(this.extraFields[1]){var e=Zo(this.extraFields[1].value);this.uncompressedSize===Mt.MAX_VALUE_32BITS&&(this.uncompressedSize=e.readInt(8)),this.compressedSize===Mt.MAX_VALUE_32BITS&&(this.compressedSize=e.readInt(8)),this.localHeaderOffset===Mt.MAX_VALUE_32BITS&&(this.localHeaderOffset=e.readInt(8)),this.diskNumberStart===Mt.MAX_VALUE_32BITS&&(this.diskNumberStart=e.readInt(4))}},readExtraFields:function(e){var t=e.index+this.extraFieldsLength,i,n,r;for(this.extraFields||(this.extraFields={});e.index+4<t;)i=e.readInt(2),n=e.readInt(2),r=e.readData(n),this.extraFields[i]={id:i,length:n,value:r};e.setIndex(t)},handleUTF8:function(){var e=Wy.uint8array?"uint8array":"array";if(this.useUTF8())this.fileNameStr=ha.utf8decode(this.fileName),this.fileCommentStr=ha.utf8decode(this.fileComment);else{var t=this.findExtraFieldUnicodePath();if(t!==null)this.fileNameStr=t;else{var i=Mt.transformTo(e,this.fileName);this.fileNameStr=this.loadOptions.decodeFileName(i)}var n=this.findExtraFieldUnicodeComment();if(n!==null)this.fileCommentStr=n;else{var r=Mt.transformTo(e,this.fileComment);this.fileCommentStr=this.loadOptions.decodeFileName(r)}}},findExtraFieldUnicodePath:function(){var e=this.extraFields[28789];if(e){var t=Zo(e.value);return t.readInt(1)!==1||Yf(this.fileName)!==t.readInt(4)?null:ha.utf8decode(t.readData(e.length-5))}return null},findExtraFieldUnicodeComment:function(){var e=this.extraFields[25461];if(e){var t=Zo(e.value);return t.readInt(1)!==1||Yf(this.fileComment)!==t.readInt(4)?null:ha.utf8decode(t.readData(e.length-5))}return null}};Xf.exports=Kf});var eh=P((R1,Qf)=>{"use strict";var Xy=Xo(),dt=V(),je=$o(),Zy=Zf(),Jy=rt();function Jf(e){this.files=[],this.loadOptions=e}Jf.prototype={checkSignature:function(e){if(!this.reader.readAndCheckSignature(e)){this.reader.index-=4;var t=this.reader.readString(4);throw new Error("Corrupted zip or bug: unexpected signature ("+dt.pretty(t)+", expected "+dt.pretty(e)+")")}},isSignature:function(e,t){var i=this.reader.index;this.reader.setIndex(e);var n=this.reader.readString(4),r=n===t;return this.reader.setIndex(i),r},readBlockEndOfCentral:function(){this.diskNumber=this.reader.readInt(2),this.diskWithCentralDirStart=this.reader.readInt(2),this.centralDirRecordsOnThisDisk=this.reader.readInt(2),this.centralDirRecords=this.reader.readInt(2),this.centralDirSize=this.reader.readInt(4),this.centralDirOffset=this.reader.readInt(4),this.zipCommentLength=this.reader.readInt(2);var e=this.reader.readData(this.zipCommentLength),t=Jy.uint8array?"uint8array":"array",i=dt.transformTo(t,e);this.zipComment=this.loadOptions.decodeFileName(i)},readBlockZip64EndOfCentral:function(){this.zip64EndOfCentralSize=this.reader.readInt(8),this.reader.skip(4),this.diskNumber=this.reader.readInt(4),this.diskWithCentralDirStart=this.reader.readInt(4),this.centralDirRecordsOnThisDisk=this.reader.readInt(8),this.centralDirRecords=this.reader.readInt(8),this.centralDirSize=this.reader.readInt(8),this.centralDirOffset=this.reader.readInt(8),this.zip64ExtensibleData={};for(var e=this.zip64EndOfCentralSize-44,t=0,i,n,r;t<e;)i=this.reader.readInt(2),n=this.reader.readInt(4),r=this.reader.readData(n),this.zip64ExtensibleData[i]={id:i,length:n,value:r}},readBlockZip64EndOfCentralLocator:function(){if(this.diskWithZip64CentralDirStart=this.reader.readInt(4),this.relativeOffsetEndOfZip64CentralDir=this.reader.readInt(8),this.disksCount=this.reader.readInt(4),this.disksCount>1)throw new Error("Multi-volumes zip are not supported")},readLocalFiles:function(){var e,t;for(e=0;e<this.files.length;e++)t=this.files[e],this.reader.setIndex(t.localHeaderOffset),this.checkSignature(je.LOCAL_FILE_HEADER),t.readLocalPart(this.reader),t.handleUTF8(),t.processAttributes()},readCentralDir:function(){var e;for(this.reader.setIndex(this.centralDirOffset);this.reader.readAndCheckSignature(je.CENTRAL_FILE_HEADER);)e=new Zy({zip64:this.zip64},this.loadOptions),e.readCentralPart(this.reader),this.files.push(e);if(this.centralDirRecords!==this.files.length&&this.centralDirRecords!==0&&this.files.length===0)throw new Error("Corrupted zip or bug: expected "+this.centralDirRecords+" records in central dir, got "+this.files.length)},readEndOfCentral:function(){var e=this.reader.lastIndexOfSignature(je.CENTRAL_DIRECTORY_END);if(e<0){var t=!this.isSignature(0,je.LOCAL_FILE_HEADER);throw t?new Error("Can't find end of central directory : is this a zip file ? If it is, see https://stuk.github.io/jszip/documentation/howto/read_zip.html"):new Error("Corrupted zip: can't find end of central directory")}this.reader.setIndex(e);var i=e;if(this.checkSignature(je.CENTRAL_DIRECTORY_END),this.readBlockEndOfCentral(),this.diskNumber===dt.MAX_VALUE_16BITS||this.diskWithCentralDirStart===dt.MAX_VALUE_16BITS||this.centralDirRecordsOnThisDisk===dt.MAX_VALUE_16BITS||this.centralDirRecords===dt.MAX_VALUE_16BITS||this.centralDirSize===dt.MAX_VALUE_32BITS||this.centralDirOffset===dt.MAX_VALUE_32BITS){if(this.zip64=!0,e=this.reader.lastIndexOfSignature(je.ZIP64_CENTRAL_DIRECTORY_LOCATOR),e<0)throw new Error("Corrupted zip: can't find the ZIP64 end of central directory locator");if(this.reader.setIndex(e),this.checkSignature(je.ZIP64_CENTRAL_DIRECTORY_LOCATOR),this.readBlockZip64EndOfCentralLocator(),!this.isSignature(this.relativeOffsetEndOfZip64CentralDir,je.ZIP64_CENTRAL_DIRECTORY_END)&&(this.relativeOffsetEndOfZip64CentralDir=this.reader.lastIndexOfSignature(je.ZIP64_CENTRAL_DIRECTORY_END),this.relativeOffsetEndOfZip64CentralDir<0))throw new Error("Corrupted zip: can't find the ZIP64 end of central directory");this.reader.setIndex(this.relativeOffsetEndOfZip64CentralDir),this.checkSignature(je.ZIP64_CENTRAL_DIRECTORY_END),this.readBlockZip64EndOfCentral()}var n=this.centralDirOffset+this.centralDirSize;this.zip64&&(n+=20,n+=12+this.zip64EndOfCentralSize);var r=i-n;if(r>0)this.isSignature(i,je.CENTRAL_FILE_HEADER)||(this.reader.zero=r);else if(r<0)throw new Error("Corrupted zip: missing "+Math.abs(r)+" bytes.")},prepareReader:function(e){this.reader=Xy(e)},load:function(e){this.prepareReader(e),this.readEndOfCentral(),this.readCentralDir(),this.readLocalFiles()}};Qf.exports=Jf});var nh=P((M1,ih)=>{"use strict";var Jo=V(),ma=xi(),Qy=Ei(),ex=eh(),tx=Js(),th=fn();function ix(e){return new ma.Promise(function(t,i){var n=e.decompressed.getContentWorker().pipe(new tx);n.on("error",function(r){i(r)}).on("end",function(){n.streamInfo.crc32!==e.decompressed.crc32?i(new Error("Corrupted zip : CRC32 mismatch")):t()}).resume()})}ih.exports=function(e,t){var i=this;return t=Jo.extend(t||{},{base64:!1,checkCRC32:!1,optimizedBinaryString:!1,createFolders:!1,decodeFileName:Qy.utf8decode}),th.isNode&&th.isStream(e)?ma.Promise.reject(new Error("JSZip can't accept a stream when loading a zip file.")):Jo.prepareContent("the loaded zip file",e,!0,t.optimizedBinaryString,t.base64).then(function(n){var r=new ex(t);return r.load(n),r}).then(function(r){var a=[ma.Promise.resolve(r)],s=r.files;if(t.checkCRC32)for(var o=0;o<s.length;o++)a.push(ix(s[o]));return ma.Promise.all(a)}).then(function(r){for(var a=r.shift(),s=a.files,o=0;o<s.length;o++){var c=s[o],l=c.fileNameStr,d=Jo.resolve(c.fileNameStr);i.file(d,c.decompressed,{binary:!0,optimizedBinaryString:!0,date:c.date,dir:c.dir,comment:c.fileCommentStr.length?c.fileCommentStr:null,unixPermissions:c.unixPermissions,dosPermissions:c.dosPermissions,createFolders:t.createFolders}),c.dir||(i.file(d).unsafeOriginalName=l)}return a.zipComment.length&&(i.comment=a.zipComment),i})}});var ah=P((P1,rh)=>{"use strict";function Te(){if(!(this instanceof Te))return new Te;if(arguments.length)throw new Error("The constructor with parameters has been removed in JSZip 3.0, please check the upgrade guide.");this.files=Object.create(null),this.comment=null,this.root="",this.clone=function(){var e=new Te;for(var t in this)typeof this[t]!="function"&&(e[t]=this[t]);return e}}Te.prototype=If();Te.prototype.loadAsync=nh();Te.support=rt();Te.defaults=Ks();Te.version="3.10.1";Te.loadAsync=function(e,t){return new Te().loadAsync(e,t)};Te.external=xi();rh.exports=Te});import{Application as Fx}from"pixi.js";var xt={};function cr(e,t,i=!1){xt[e]||(xt[e]=[]),xt[e].push({fn:t,once:i})}function is(e,t){if(xt[e]){if(!t){delete xt[e];return}xt[e]=xt[e].filter(i=>i.fn!==t)}}function dr(e,...t){let i=xt[e];if(i)for(let n of[...i])n.fn(...t),n.once&&is(e,n.fn)}function _e(e,t){cr(e,t,!0)}var te=null,Me=[],oi=null;function mc(e){te=e,Me=[],oi!==null&&(clearTimeout(oi),oi=null)}function bc(){var e,t,i;return{endpoint:(te==null?void 0:te.endpoint)||"",transport:(te==null?void 0:te.transport)||"beacon",batchSize:(e=te==null?void 0:te.batchSize)!=null?e:10,flushIntervalMs:(t=te==null?void 0:te.flushIntervalMs)!=null?t:300,maxQueue:(i=te==null?void 0:te.maxQueue)!=null?i:200,debug:!!(te!=null&&te.debug)}}async function hc(e,t,i,n){let r=JSON.stringify(t);if(i==="beacon"&&typeof navigator!="undefined"&&typeof navigator.sendBeacon=="function")try{let a=navigator.sendBeacon(e,new Blob([r],{type:"application/json"}));n&&console.log("[handler.telemetry] beacon",a,t);return}catch(a){n&&console.warn("[handler.telemetry] beacon failed, fallback to fetch",a)}try{await fetch(e,{method:"POST",headers:{"Content-Type":"application/json"},body:r,keepalive:!0}),n&&console.log("[handler.telemetry] fetch",t)}catch(a){n&&console.warn("[handler.telemetry] fetch failed",a)}}function ns(e,t){let i=bc();if(t&&i.endpoint){if(Me.push(e),Me.length>i.maxQueue&&(Me=Me.slice(Me.length-i.maxQueue)),Me.length>=i.batchSize){gc();return}oi===null&&(oi=window.setTimeout(()=>{oi=null,gc()},i.flushIntervalMs))}}async function gc(){let e=bc();if(!e.endpoint||Me.length===0)return;let t=Me.splice(0,e.batchSize);await hc(e.endpoint,{events:t},e.transport,e.debug),Me.length>0&&await hc(e.endpoint,{events:Me.splice(0,e.batchSize)},e.transport,e.debug)}function vc(e){return Math.max(0,Math.min(1,e))}function vg(e){let t=String(e!=null?e:"power2.out");if(t==="linear")return i=>i;if(t==="sine.inOut")return i=>.5-Math.cos(Math.PI*i)/2;if(t==="power2.out"||t==="easeOutQuad")return i=>1-(1-i)*(1-i);if(t.startsWith("back.out")){let i=t.match(/back\.out\(([\d.]+)\)/),n=i?Number(i[1]):1.8;return r=>1+(n+1)*Math.pow(r-1,3)+n*Math.pow(r-1,2)}return i=>1-(1-i)*(1-i)}function nn(){return typeof performance!="undefined"&&performance.now?performance.now():Date.now()}function yg(e,t){let i=e==null?void 0:e[t];return typeof i=="number"?i:0}function yc(e,t,i){try{e[t]=i}catch{}}function xg(e){let t=e==null?void 0:e.scale;if(!t)return null;let i=typeof t.x=="number"?t.x:1,n=typeof t.y=="number"?t.y:1;return{x:i,y:n}}function xc(e,t){let i=e==null?void 0:e.scale;if(i)try{typeof i.set=="function"?i.set(t.x,t.y):(typeof i.x=="number"&&(i.x=t.x),typeof i.y=="number"&&(i.y=t.y))}catch{}}function wc(e,t){let i=xg(e);if(!i)return{from:null,to:null};let n=null,r=null;return typeof t.scale=="number"?(n=t.scale,r=t.scale):t.scale&&typeof t.scale=="object"&&(typeof t.scale.x=="number"&&(n=t.scale.x),typeof t.scale.y=="number"&&(r=t.scale.y)),typeof t.scaleX=="number"&&(n=t.scaleX),typeof t.scaleY=="number"&&(r=t.scaleY),n===null&&r===null?{from:null,to:null}:{from:{x:i.x,y:i.y},to:{x:n!=null?n:i.x,y:r!=null?r:i.y}}}function _c(){let e=new Set,t=new WeakMap,i=null,n=()=>{if(i!=null)return;i=requestAnimationFrame(()=>{i=null,o(),e.size>0&&n()})},r=d=>{var p;e.add(d);let u=(p=t.get(d.target))!=null?p:new Set;u.add(d),t.set(d.target,u),n()},a=d=>{e.delete(d);let u=t.get(d.target);u&&(u.delete(d),u.size===0&&t.delete(d.target))},s=d=>{d.killed||(d.killed=!0,a(d))},o=()=>{var u,p;let d=nn();for(let f of Array.from(e)){if(f.killed||f.paused)continue;let g=d-f.startMs-f.delayMs;if(g<0)continue;let h=f.durationMs>0?g/f.durationMs:1,m=vc(h),b=f.repeat>=0?f.repeat+1:1,v=f.repeat>0?Math.min(Math.floor(h),b-1):0;if(f.repeat>0&&h>=1){let w=h-v;m=vc(w)}let y=f.ease(m);f.yoyo&&v%2===1&&(y=1-y);for(let w of f.props)yc(f.target,w.key,w.from+(w.to-w.from)*y);f.scaleFrom&&f.scaleTo&&xc(f.target,{x:f.scaleFrom.x+(f.scaleTo.x-f.scaleFrom.x)*y,y:f.scaleFrom.y+(f.scaleTo.y-f.scaleFrom.y)*y});try{(u=f.onUpdate)==null||u.call(f)}catch{}if(h>=b){s(f);try{(p=f.onComplete)==null||p.call(f)}catch{}}}},c=(d,u,p)=>{var w;let f=Math.max(0,(typeof u.duration=="number"?u.duration:.5)*1e3),g=Math.max(0,(typeof u.delay=="number"?u.delay:0)*1e3+((w=p==null?void 0:p.delayMsOverride)!=null?w:0)),h=vg(u.ease),m=typeof u.repeat=="number"?Math.max(0,u.repeat|0):0,b=u.yoyo===!0,v=new Set(["duration","delay","ease","repeat","yoyo","onUpdate","onComplete","scale","scaleX","scaleY"]),y=[];for(let E of Object.keys(u)){if(v.has(E))continue;let A=u[E];typeof A=="number"&&y.push({key:E,from:yg(d,E),to:A})}let x=wc(d,u);return{target:d,startMs:nn(),delayMs:g,durationMs:f,ease:h,props:y,scaleFrom:x.from,scaleTo:x.to,repeat:m,yoyo:b,onUpdate:typeof u.onUpdate=="function"?u.onUpdate:void 0,onComplete:typeof u.onComplete=="function"?u.onComplete:void 0,killed:!1,paused:!1,pauseAtMs:null}},l={to(d,u){let p=c(d,u);return r(p),{kill:()=>s(p),pause:()=>{p.paused||(p.paused=!0,p.pauseAtMs=nn())},resume:()=>{var h;if(!p.paused)return;let f=(h=p.pauseAtMs)!=null?h:nn(),g=nn()-f;p.startMs+=g,p.paused=!1,p.pauseAtMs=null},isActive:()=>!p.killed&&!p.paused}},fromTo(d,u,p){return l.set(d,u),l.to(d,p)},set(d,u){if(!d||!u)return;for(let f of Object.keys(u)){let g=u[f];f==="scale"||f==="scaleX"||f==="scaleY"||typeof g=="number"&&yc(d,f,g)}let p=wc(d,u);p.to&&xc(d,p.to)},killTweensOf(d){let u=t.get(d);if(u)for(let p of Array.from(u))s(p)},timeline(d={}){let u=[],p=0,f=!1,g=[],h=v=>{if(typeof v=="number")return Math.max(0,v*1e3);let y=typeof v=="string"?v.trim():"";return y.startsWith("+=")?p+Math.max(0,Number(y.slice(2))*1e3||0):y?Math.max(0,Number(y)*1e3||0):p},m=v=>{u.push(v);let y=Math.max(0,(typeof v.vars.duration=="number"?v.vars.duration:.5)*1e3);p=Math.max(p,v.atMs+y)},b={to(v,y,x){return m({kind:"to",target:v,vars:y,atMs:h(x)}),b},fromTo(v,y,x,w){return m({kind:"fromTo",target:v,vars:x,from:y,atMs:h(w)}),b},play(){var v,y;if(f)return b;f=!0,g=[];for(let x of u)x.kind==="fromTo"&&l.set(x.target,(v=x.from)!=null?v:{}),g.push(l.to(x.target,{...x.vars,delay:x.atMs/1e3+((y=x.vars.delay)!=null?y:0)}));return b},pause(){for(let v of g)v.pause();return b},kill(){for(let v of g)v.kill();g=[],f=!1}};return d.paused||b.play(),b}};return l}function Ec(){if(typeof window=="undefined")return;let e=window;if(!e.gsap)try{e.gsap=_c()}catch{}}var Sc={name:"handler-playable-sdk",version:"0.3.32",type:"module",description:"Handler Playable SDK v0.1 with contract-aligned surface (root sandbox, canonical event envelope).",main:"dist/index.cjs",module:"dist/index.js",types:"dist/index.d.ts",exports:{".":{types:"./dist/index.d.ts",import:"./dist/index.js",require:"./dist/index.cjs"},"./pixi":{types:"./dist/pixi/index.d.ts",import:"./dist/pixi/index.js",require:"./dist/pixi/index.cjs"},"./pixi/index.css":{import:"./dist/pixi/index.css",require:"./dist/pixi/index.css"},"./three":{types:"./dist/three/index.d.ts",import:"./dist/three/index.js",require:"./dist/three/index.cjs"},"./cli":{types:"./dist/cli/index.d.ts",import:"./dist/cli/index.js",require:"./dist/cli/index.cjs"}},bin:{"handler-student-helper":"./bin/student-helper.mjs","handler-validate":"./bin/validate.mjs","handler-sync-screens":"./bin/sync-screens.mjs","handler-brand-dna":"./bin/brand-dna.mjs","handler-setup-library":"./bin/setup-library.mjs","handler-screen-helper":"./bin/screen-helper.mjs"},scripts:{prebuild:"python3 src/preview/build-css.py",build:"tsup src/index.ts src/pixi/index.ts src/three/index.ts src/cli/index.ts --format cjs,esm --dts --clean --minify --external lottie-web && npm run create-mjs-symlinks && npm run postbuild-cli && npm run obfuscate && npm run postbuild",postbuild:"python3 src/preview/copy-css-to-dist.py","postbuild-cli":"cp src/cli/*.mjs dist/cli/ && chmod +x dist/cli/*.mjs && chmod +x bin/*.mjs","create-mjs-symlinks":"cd dist && ln -sf index.js index.mjs && cd pixi && ln -sf index.js index.mjs && cd ../three && ln -sf index.js index.mjs","build:dev":"tsup src/index.ts src/pixi/index.ts src/three/index.ts src/cli/index.ts --format cjs,esm --dts --clean --external lottie-web && npm run create-mjs-symlinks && npm run postbuild-cli",obfuscate:"javascript-obfuscator dist/pixi/index.js --output dist/pixi/index.js --config obfuscator.config.json && javascript-obfuscator dist/three/index.js --output dist/three/index.js --config obfuscator.config.json && javascript-obfuscator dist/cli/index.js --output dist/cli/index.js --config obfuscator.config.json && npm run obfuscate-cli","obfuscate-cli":'for file in dist/cli/*.mjs; do javascript-obfuscator "$file" --output "$file" --config obfuscator.config.json; done',lint:"eslint 'src/**/*.{ts,tsx}'",typecheck:"tsc --noEmit",prepublishOnly:"npm run build","publish:update":"node scripts/publish-and-update.cjs patch","publish:update:minor":"node scripts/publish-and-update.cjs minor","publish:update:major":"node scripts/publish-and-update.cjs major"},author:"Handler",license:"MIT",publishConfig:{access:"public"},repository:{type:"git",url:"https://github.com/HandlerAIGames/handler-playable-sdk.git"},files:["dist","bin","LICENSE","README.md"],peerDependencies:{"lottie-web":"^5.0.0","pixi.js":"^8.0.0",three:"^0.182.0"},peerDependenciesMeta:{"pixi.js":{optional:!0},three:{optional:!0},"lottie-web":{optional:!0}},devDependencies:{"@types/three":"^0.182.0",eslint:"^9.39.2","javascript-obfuscator":"^5.1.0","pixi.js":"8.8.1",three:"^0.182.0","ts-node":"^10.9.2",tsup:"^8.4.0",typescript:"^5.7.2","typescript-eslint":"^8.53.0"},dependencies:{"@google/genai":"^1.35.0","@google/generative-ai":"^0.24.1",sharp:"^0.34.5"}};var Ee=0,_g=Ee++,Ac=Ee++,Cc=Ee++,Tc=Ee++,kc=Ee++,Lc=Ee++,Rc=Ee++,Mc=Ee++,Pc=Ee++,Ic=Ee++,Oc=Ee++,Dc=Ee++,K=_g;function jc(){return K===Ac}function zc(){return K===Cc}function Bc(){return K===Tc}function Nc(){return K===kc}function li(){return K===Lc}function ci(){return K===Rc}function Fc(){return K===Mc}function Hc(){return K===Pc}function Uc(){return K===Ic}function rs(){return K===Oc}function as(){return K===Dc}function $c(){let e=typeof AD_PROTOCOL!="undefined"?AD_PROTOCOL:"none",t=typeof AD_NETWORK!="undefined"?AD_NETWORK:"web_embed";if(e==="mraid")try{mraid.getState(),K=Ac;return}catch{}else if(e==="dapi")try{dapi.isReady(),K=Cc;return}catch{}if(t==="facebook")try{typeof FbPlayableAd!="undefined"&&(K=Tc)}catch{}else if(t==="google")try{typeof ExitApi!="undefined"&&(K=kc)}catch{}else if(t==="mintegral")window.gameReady&&(K=Lc);else if(t==="tapjoy")window.TJ_API&&(K=Rc);else if(t==="tiktok")window.openAppStore&&(K=Mc);else if(t==="smadex")try{window.smxTracking&&(K=Pc)}catch{}else if(t==="snapchat")try{window.ScPlayableAd&&(K=Ic)}catch{}else t==="vungle"?K=Oc:(e==="nucleo"||t==="nucleo")&&(K=Dc)}import ss from"lottie-web";var qc=ss;typeof window!="undefined"&&(window.lottie=ss,window.__baseLottie=ss);function ie(e,t){let i=(r,a)=>a===0?r:i(a,r%a),n=i(e,t);return`${e/n}:${t/n}`}var D0=[{id:"iphone-15-pro-max",label:"iPhone 15 Pro Max",width:430,height:932,category:"iphone",ratio:ie(430,932)},{id:"iphone-15-pro",label:"iPhone 15 Pro",width:393,height:852,category:"iphone",ratio:ie(393,852)},{id:"iphone-15",label:"iPhone 15",width:393,height:852,category:"iphone",ratio:ie(393,852)},{id:"iphone-14",label:"iPhone 14",width:390,height:844,category:"iphone",ratio:ie(390,844)},{id:"iphone-se",label:"iPhone SE",width:375,height:667,category:"iphone",ratio:ie(375,667)},{id:"iphone-12-mini",label:"iPhone 12 Mini",width:360,height:780,category:"iphone",ratio:ie(360,780)}],j0=[{id:"pixel-8-pro",label:"Pixel 8 Pro",width:448,height:998,category:"android",ratio:ie(448,998)},{id:"pixel-8",label:"Pixel 8",width:412,height:915,category:"android",ratio:ie(412,915)},{id:"samsung-s24-ultra",label:"Samsung S24 Ultra",width:412,height:915,category:"android",ratio:ie(412,915)},{id:"samsung-s24",label:"Samsung S24",width:360,height:780,category:"android",ratio:ie(360,780)},{id:"samsung-a54",label:"Samsung A54",width:412,height:915,category:"android",ratio:ie(412,915)},{id:"oneplus-12",label:"OnePlus 12",width:412,height:915,category:"android",ratio:ie(412,915)}],z0=[{id:"ipad-pro-12",label:'iPad Pro 12.9"',width:1024,height:1366,category:"tablet",ratio:ie(1024,1366)},{id:"ipad-pro-11",label:'iPad Pro 11"',width:834,height:1194,category:"tablet",ratio:ie(834,1194)},{id:"ipad-air",label:"iPad Air",width:820,height:1180,category:"tablet",ratio:ie(820,1180)},{id:"ipad-mini",label:"iPad Mini",width:768,height:1024,category:"tablet",ratio:ie(768,1024)},{id:"samsung-tab-s9",label:"Samsung Tab S9",width:800,height:1280,category:"tablet",ratio:ie(800,1280)}],os=[{id:"playable-portrait",label:"Playable Portrait",width:320,height:480,category:"playable",ratio:"2:3",mraidScale:1},{id:"mraid-320x480",label:"MRAID 320\xD7480",width:320,height:480,category:"playable",ratio:"2:3",mraidScale:1},{id:"iphone-14",label:"iPhone 14",width:390,height:844,category:"playable",ratio:ie(390,844),mraidScale:.7},{id:"ipad-mini",label:"iPad Mini",width:768,height:1024,category:"playable",ratio:ie(768,1024),mraidScale:.7}];var Gc=[...os],Wc=[{category:"playable",label:"Playable Ad",devices:os}],ls=os[0];function di(e){return Gc.find(t=>t.id===e)||ls}function B0(e){return Gc.filter(t=>t.category===e)}var ur=class{constructor(){this.root=null;this.listContainer=null;this.searchInput=null;this.selectedId=null;this.options=null;this.retryTimer=null;this.screenFilter="all"}getScreenFilterStorageKey(){return`handler_preview_screen_filter::${typeof window!="undefined"&&window.__HANDLER_PROJECT_ID||"default"}`}render(){return`
3
3
  <div class="scene-panel scene-objects panel-accent-teal" data-panel="scene-objects" style="left:16px; top:72px;">
4
4
  <div class="scene-panel-header" data-panel-handle>
5
5
  <div class="panel-title">
@@ -405,7 +405,7 @@ import{c as Ka,d as He,e as Xa}from"./chunk-I5OOVR5U.js";import{i as lr}from"./c
405
405
  </select>
406
406
  </div>
407
407
  </div>
408
- `}formatLabel(t){return t.replace(/_/g," ").replace(/([a-z])([A-Z])/g,"$1 $2").replace(/\b\w/g,i=>i.toUpperCase())}};var Er=class{constructor(){this.typeDetector=new hr,this.imageRenderer=new gr,this.colorRenderer=new mr,this.numberRenderer=new br,this.textRenderer=new vr,this.booleanRenderer=new yr,this.arrayRenderer=new xr,this.objectRenderer=new wr(this),this.selectRenderer=new _r}getObjectIds(){try{let t=window,i=t==null?void 0:t.__editableConfig;if(!(i!=null&&i.objects))return[];let n=[];if(i.objects instanceof Map)for(let r of i.objects.keys())n.push(r);else typeof i.objects=="object"&&n.push(...Object.keys(i.objects));return n.sort()}catch{return[]}}getEnumOptionsFromSchemas(t){var i;try{let n=window,r=n==null?void 0:n.__editableConfig,a=r==null?void 0:r.schemas;if(!a)return null;let s=String(t||"").split(".").filter(Boolean);if(s.length<2)return null;let o=s[0],c=s.slice(1).join("."),l=a instanceof Map?a.get(o):a==null?void 0:a[o];if(!l)return null;let d=(i=l==null?void 0:l.types)==null?void 0:i[c];if(typeof d!="string"||!d.startsWith("enum:"))return null;let p=d.slice(5).split("|").map(f=>f.trim()).filter(Boolean);return p.length?p:null}catch{return null}}getLogicOptions(){try{let t=window,i=Array.isArray(t==null?void 0:t.__HANDLER_LOGIC_OPTIONS)?t.__HANDLER_LOGIC_OPTIONS:[],r=[...["DragToWin","SwerveMove","DragSnap","JoystickMove"],...i].map(a=>String(a)).filter(a=>a.trim().length>0);return Array.from(new Set(r)).sort((a,s)=>a.localeCompare(s))}catch{return[]}}renderProperty(t,i,n,r){let a=i.toLowerCase(),s=a==="logic"||a==="logic_id"||a==="logicid",o=a==="id"&&r.toLowerCase().includes("logic");if((s||o)&&typeof n=="string"){let p=this.getLogicOptions();return this.selectRenderer.render(t,i,n,r,p)}let l={zone:["bottom-left","bottom-center","bottom-right","top-left","top-center","top-right"],directionMode:["dominantAxis","free"],axis:["both","x","y"],ease:["power2.out","linear","sine.inOut","back.out(1.8)"]}[i];if(l&&r.includes("logic.props"))return this.selectRenderer.render(t,i,n,r,l);if((i==="targetId"||i==="inputId")&&typeof n=="string"){let p=this.getObjectIds();return this.selectRenderer.render(t,i,n,r,["",...p])}let d=this.getEnumOptionsFromSchemas(r);if(d)return this.selectRenderer.render(t,i,n,r,d);switch(this.typeDetector.detectType(i,n)){case"image":return this.imageRenderer.render(t,i,n,r);case"color":return this.colorRenderer.render(t,i,n,r);case"number":return this.numberRenderer.render(t,i,n,r);case"boolean":return this.booleanRenderer.render(t,i,n,r);case"array":return this.arrayRenderer.render(t,i,n,r);case"object":return this.objectRenderer.render(t,i,n,r);case"select":return this.selectRenderer.render(t,i,n,r,[]);default:return this.textRenderer.render(t,i,n,r)}}getTypeDetector(){return this.typeDetector}};var ui=class{async updateProperty(t,i,n,r={}){var c,l,d;console.log("[PropertyUpdateManager] Updating:",t,i,n);let a=window.getEditableObjectConfig;if(typeof a!="function"){console.error("[PropertyUpdateManager] getEditableObjectConfig not available");return}let s=a(t);if(!s){console.error("[PropertyUpdateManager] Config not found for:",t);return}tn({objectId:t,path:i,value:n},{persist:!0});let o=window.applyEditableObjectConfig;if(typeof o=="function"){let u=window.__editableConfig,p=(d=(l=(c=u==null?void 0:u.objects)==null?void 0:c.get)==null?void 0:l.call(c,t))!=null?d:s;await o(t,p),console.log("[PropertyUpdateManager] Applied config successfully")}else console.warn("[PropertyUpdateManager] applyEditableObjectConfig not available");this.triggerRefresh(t),r.refreshInspector&&window.dispatchEvent(new CustomEvent("inspector:refresh"))}getNestedProperty(t,i){let n=i.split("."),r=t;for(let a of n)if(r&&typeof r=="object"&&a in r)r=r[a];else return;return r}triggerRefresh(t){let i=window.__refreshHierarchy;typeof i=="function"&&i(),window.dispatchEvent(new CustomEvent("inspector:property-updated",{detail:{objectId:t}}))}};var Sr=class{constructor(){this.updateManager=new ui}async handleAction(t,i,n){console.log("[QuickActionsBar] Action:",t,i,n);let r=window.getEditableObjectConfig;if(typeof r!="function")return;let a=r(i);if(!a)return;let s=this.updateManager.getNestedProperty(a,n);if(t==="ai-convert"||t==="upload"||t==="library"){let o=n==="ui.text"||n==="render.asset.path",c=n==="render.asset.path";o&&(await this.prepareForImageConversion(i,a),t==="ai-convert"&&n!=="render.asset.path"&&(n="render.asset.path"))}switch(t){case"library":this.openLibrary(i,n,s);break;case"ai-edit":this.openAIEditor(i,n,s);break;case"upload":this.openUpload(i,n);break;case"reset":await this.resetToDefault(i,n);break;case"ai-convert":this.handleAiConvert(i,n,s);break;default:console.warn("[QuickActionsBar] Unknown action:",t)}}async prepareForImageConversion(t,i){var n,r;if(console.log("[QuickActionsBar] Preparing for image conversion:",t),i.render||(i.render={alpha:1,visible:!0}),(i.render.alpha===0||i.render.alpha===void 0)&&(i.render.alpha=1,await this.updateManager.updateProperty(t,"render.alpha",1)),(i.render.visible===!1||i.render.visible===void 0)&&(i.render.visible=!0,await this.updateManager.updateProperty(t,"render.visible",!0)),i.render.asset||(i.render.asset={type:"image",path:""}),i.render.asset.type!=="image"&&(i.render.asset.type="image",await this.updateManager.updateProperty(t,"render.asset",{type:"image",path:i.render.asset.path||""})),i.ui&&i.ui.renderMode!=="png"){await this.updateManager.updateProperty(t,"ui.renderMode","png",{refreshInspector:!0}),await this.updateManager.updateProperty(t,"render.tint","#ffffff");let s=((r=(n=i.transform)==null?void 0:n.scale)!=null?r:1)*.3;await this.updateManager.updateProperty(t,"transform.scale",s),console.log("[QuickActionsBar] Text to PNG conversion: set tint white, scale",s)}this.ensureSlotInRegistry(t,i)}ensureSlotInRegistry(t,i){var o,c,l;let n=window.getEditableAssets;if(typeof n!="function")return;let r=n();if(!r||!r.slots)return;let a=t.startsWith("json.")?t.replace("json.",""):t;if(!r.slots.some(d=>d.objectId===a||d.slotId===a)){let d=((o=i.identity)==null?void 0:o.category)||"ui";console.log("[QuickActionsBar] Adding new slot to registry for converted object:",a),r.slots.push({slotId:a,displayName:a.replace(/_/g," "),objectId:a,category:d,currentAsset:((l=(c=i.render)==null?void 0:c.asset)==null?void 0:l.path)||"",defaultAsset:"",libraryFolder:d,assetType:"image"}),r.categories&&!r.categories.includes(d)&&r.categories.push(d),r.libraryAssets&&!r.libraryAssets[d]&&(r.libraryAssets[d]=[]);let u=window.reRenderAssetLibrary;typeof u=="function"&&u()}}openLibrary(t,i,n){var a;let r=window.__debugContext;if(r){if(r.activeTab!=="library"){r.activeTab="library";let s=window.__updateWorkbenchTabs;typeof s=="function"&&s()}if(r.libraryPanel){let s=window.getEditableObjectConfig,o=s==null?void 0:s(t),c=(a=o==null?void 0:o.identity)==null?void 0:a.category;c||(c=i.split(".")[0]==="render"?"environment":"ui"),console.log("[QuickActionsBar] Highlighting library slot:",t,"category:",c),r.libraryPanel.highlightSlot(t,c)}}}openAIEditor(t,i,n){let r=window.__openAiEditor;if(typeof r=="function"){let a=i.split(".").pop()||i;r(a,`Edit ${a} for ${t}`,n,{objectId:t,path:i})}else console.warn("[QuickActionsBar] AI Editor not available")}openUpload(t,i){let n=document.createElement("input");n.type="file",n.accept="image/*",n.onchange=async r=>{var o;let a=(o=r.target.files)==null?void 0:o[0];if(!a)return;console.log("[QuickActionsBar] Preparing upload for:",a.name);let s=new FileReader;s.onload=async()=>{var l,d,u;let c=s.result;try{let p=window.getEditableObjectConfig,f=p==null?void 0:p(t),g=((l=f==null?void 0:f.identity)==null?void 0:l.category)||(i.split(".")[0]==="render"?"environment":"ui"),m=await(await fetch("/api/library/save",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({category:g,filename:a.name,data:c,overwrite:!0})})).json();if(m.success){console.log("[QuickActionsBar] \u2705 Uploaded and saved:",m.path),this.updateManager.updateProperty(t,i,m.path);let b=window.__debugContext;(u=(d=b==null?void 0:b.options)==null?void 0:d.onPropertyChange)==null||u.call(d,t,i,m.path);let v=window.addAssetToRegistry;typeof v=="function"&&v(g,a.name);let y=window.reRenderAssetLibrary;typeof y=="function"&&y(),window.dispatchEvent(new CustomEvent("inspector:refresh"))}else console.error("[QuickActionsBar] \u274C Upload failed:",m.error),alert(`Upload failed: ${m.error}`)}catch(p){console.error("[QuickActionsBar] \u274C Upload error:",p),alert("Upload failed. Check console.")}},s.readAsDataURL(a)},n.click()}async resetToDefault(t,i){console.log("[QuickActionsBar] Reset to default:",t,i);try{let n=await this.getDefaultValue(t,i);n!==void 0?(await this.updateManager.updateProperty(t,i,n),console.log("[QuickActionsBar] Reset to default value:",n)):alert("No default value found for this property.")}catch(n){console.error("[QuickActionsBar] Failed to reset to default:",n),alert("Failed to reset property. Check console for details.")}}async getDefaultValue(t,i){let n=i.split(".");if(n.length<2)return;let r=n[0],a=n.slice(1),s=window.__editableConfig;if(!(s!=null&&s.schemas))return;let o=null;if(s.schemas instanceof Map?o=s.schemas.get(r):typeof s.schemas=="object"&&(o=s.schemas[r]),!(o!=null&&o.defaults))return;let c=o.defaults;for(let l of a)if(c&&typeof c=="object")c=c[l];else return;return c}handleAiConvert(t,i,n){let r=window.__openAiEditor;if(typeof r=="function"){let s=`A single, high-quality, high-detail game UI icon/asset representing "${String(n||t.replace(/_/g," ").replace("json.",""))}". Modern stylized 3D rendered style, vibrant colors, soft lighting, isolated on solid magenta background, highly polished professional game art.`,o="render.asset.path";console.log("[QuickActionsBar] AI Convert for:",t,"from:",i,"to:",o),r(t,s,"",{objectId:t,path:o});let c=window.__debugContext;if(c){c.activeTab="ai";let l=window.__updateWorkbenchTabs;typeof l=="function"&&l()}}else console.warn("[QuickActionsBar] AI Editor not available")}};function wg(e,t){let i;return function(...r){let a=()=>{clearTimeout(i),e(...r)};clearTimeout(i),i=setTimeout(a,t)}}var Ar=class{constructor(){this.root=null;this.contentContainer=null;this.selectedObjectId=null;this.options=null;this.showAdvanced=!1;this.rendererRegistry=new Er,this.updateManager=new ui,this.quickActions=new Sr,window.addEventListener("inspector:refresh",()=>{this.selectedObjectId&&this.loadObject(this.selectedObjectId)}),window.addEventListener("config:changed",()=>{})}render(){return`
408
+ `}formatLabel(t){return t.replace(/_/g," ").replace(/([a-z])([A-Z])/g,"$1 $2").replace(/\b\w/g,i=>i.toUpperCase())}};var Er=class{constructor(){this.typeDetector=new hr,this.imageRenderer=new gr,this.colorRenderer=new mr,this.numberRenderer=new br,this.textRenderer=new vr,this.booleanRenderer=new yr,this.arrayRenderer=new xr,this.objectRenderer=new wr(this),this.selectRenderer=new _r}getObjectIds(){try{let t=window,i=t==null?void 0:t.__editableConfig;if(!(i!=null&&i.objects))return[];let n=[];if(i.objects instanceof Map)for(let r of i.objects.keys())n.push(r);else typeof i.objects=="object"&&n.push(...Object.keys(i.objects));return n.sort()}catch{return[]}}getEnumOptionsFromSchemas(t){var i;try{let n=window,r=n==null?void 0:n.__editableConfig,a=r==null?void 0:r.schemas;if(!a)return null;let s=String(t||"").split(".").filter(Boolean);if(s.length<2)return null;let o=s[0],c=s.slice(1).join("."),l=a instanceof Map?a.get(o):a==null?void 0:a[o];if(!l)return null;let d=(i=l==null?void 0:l.types)==null?void 0:i[c];if(typeof d!="string"||!d.startsWith("enum:"))return null;let p=d.slice(5).split("|").map(f=>f.trim()).filter(Boolean);return p.length?p:null}catch{return null}}getLogicOptions(){try{let t=window,i=Array.isArray(t==null?void 0:t.__HANDLER_LOGIC_OPTIONS)?t.__HANDLER_LOGIC_OPTIONS:[],r=[...["DragToWin","SwerveMove","DragSnap","JoystickMove"],...i].map(a=>String(a)).filter(a=>a.trim().length>0);return Array.from(new Set(r)).sort((a,s)=>a.localeCompare(s))}catch{return[]}}renderProperty(t,i,n,r){let a=i.toLowerCase(),s=a==="logic"||a==="logic_id"||a==="logicid",o=a==="id"&&r.toLowerCase().includes("logic");if((s||o)&&typeof n=="string"){let p=this.getLogicOptions();return this.selectRenderer.render(t,i,n,r,p)}let l={zone:["bottom-left","bottom-center","bottom-right","top-left","top-center","top-right"],directionMode:["dominantAxis","free"],axis:["both","x","y"],ease:["power2.out","linear","sine.inOut","back.out(1.8)"]}[i];if(l&&r.includes("logic.props"))return this.selectRenderer.render(t,i,n,r,l);if((i==="targetId"||i==="inputId")&&typeof n=="string"){let p=this.getObjectIds();return this.selectRenderer.render(t,i,n,r,["",...p])}let d=this.getEnumOptionsFromSchemas(r);if(d)return this.selectRenderer.render(t,i,n,r,d);switch(this.typeDetector.detectType(i,n)){case"image":return this.imageRenderer.render(t,i,n,r);case"color":return this.colorRenderer.render(t,i,n,r);case"number":return this.numberRenderer.render(t,i,n,r);case"boolean":return this.booleanRenderer.render(t,i,n,r);case"array":return this.arrayRenderer.render(t,i,n,r);case"object":return this.objectRenderer.render(t,i,n,r);case"select":return this.selectRenderer.render(t,i,n,r,[]);default:return this.textRenderer.render(t,i,n,r)}}getTypeDetector(){return this.typeDetector}};var ui=class{async updateProperty(t,i,n,r={}){var c,l,d;console.log("[PropertyUpdateManager] Updating:",t,i,n);let a=window.getEditableObjectConfig;if(typeof a!="function"){console.error("[PropertyUpdateManager] getEditableObjectConfig not available");return}let s=a(t);if(!s){console.error("[PropertyUpdateManager] Config not found for:",t);return}tn({objectId:t,path:i,value:n},{persist:!0});let o=window.applyEditableObjectConfig;if(typeof o=="function"){let u=window.__editableConfig,p=(d=(l=(c=u==null?void 0:u.objects)==null?void 0:c.get)==null?void 0:l.call(c,t))!=null?d:s;await o(t,p),console.log("[PropertyUpdateManager] Applied config successfully")}else console.warn("[PropertyUpdateManager] applyEditableObjectConfig not available");this.triggerRefresh(t),r.refreshInspector&&window.dispatchEvent(new CustomEvent("inspector:refresh"))}getNestedProperty(t,i){let n=i.split("."),r=t;for(let a of n)if(r&&typeof r=="object"&&a in r)r=r[a];else return;return r}triggerRefresh(t){let i=window.__refreshHierarchy;typeof i=="function"&&i(),window.dispatchEvent(new CustomEvent("inspector:property-updated",{detail:{objectId:t}}))}};var Sr=class{constructor(){this.updateManager=new ui}async handleAction(t,i,n){console.log("[QuickActionsBar] Action:",t,i,n);let r=window.getEditableObjectConfig;if(typeof r!="function")return;let a=r(i);if(!a)return;let s=this.updateManager.getNestedProperty(a,n);if(t==="ai-convert"||t==="upload"||t==="library"){let o=n==="ui.text"||n==="render.asset.path",c=n==="render.asset.path";o&&(await this.prepareForImageConversion(i,a),t==="ai-convert"&&n!=="render.asset.path"&&(n="render.asset.path"))}switch(t){case"library":this.openLibrary(i,n,s);break;case"ai-edit":this.openAIEditor(i,n,s);break;case"upload":this.openUpload(i,n);break;case"reset":await this.resetToDefault(i,n);break;case"ai-convert":this.handleAiConvert(i,n,s);break;default:console.warn("[QuickActionsBar] Unknown action:",t)}}async prepareForImageConversion(t,i){var n,r;if(console.log("[QuickActionsBar] Preparing for image conversion:",t),i.render||(i.render={alpha:1,visible:!0}),(i.render.alpha===0||i.render.alpha===void 0)&&(i.render.alpha=1,await this.updateManager.updateProperty(t,"render.alpha",1)),(i.render.visible===!1||i.render.visible===void 0)&&(i.render.visible=!0,await this.updateManager.updateProperty(t,"render.visible",!0)),i.render.asset||(i.render.asset={type:"image",path:""}),i.render.asset.type!=="image"&&(i.render.asset.type="image",await this.updateManager.updateProperty(t,"render.asset",{type:"image",path:i.render.asset.path||""})),i.ui&&i.ui.renderMode!=="png"){await this.updateManager.updateProperty(t,"ui.renderMode","png",{refreshInspector:!0}),await this.updateManager.updateProperty(t,"render.tint","#ffffff");let s=((r=(n=i.transform)==null?void 0:n.scale)!=null?r:1)*.3;await this.updateManager.updateProperty(t,"transform.scale",s),console.log("[QuickActionsBar] Text to PNG conversion: set tint white, scale",s)}this.ensureSlotInRegistry(t,i)}ensureSlotInRegistry(t,i){var o,c,l;let n=window.getEditableAssets;if(typeof n!="function")return;let r=n();if(!r||!r.slots)return;let a=t.startsWith("json.")?t.replace("json.",""):t;if(!r.slots.some(d=>d.objectId===a||d.slotId===a)){let d=((o=i.identity)==null?void 0:o.category)||"ui";console.log("[QuickActionsBar] Adding new slot to registry for converted object:",a),r.slots.push({slotId:a,displayName:a.replace(/_/g," "),objectId:a,category:d,currentAsset:((l=(c=i.render)==null?void 0:c.asset)==null?void 0:l.path)||"",defaultAsset:"",libraryFolder:d,assetType:"image"}),r.categories&&!r.categories.includes(d)&&r.categories.push(d),r.libraryAssets&&!r.libraryAssets[d]&&(r.libraryAssets[d]=[]);let u=window.reRenderAssetLibrary;typeof u=="function"&&u()}}openLibrary(t,i,n){var a;let r=window.__debugContext;if(r){if(r.activeTab!=="library"){r.activeTab="library";let s=window.__updateWorkbenchTabs;typeof s=="function"&&s()}if(r.libraryPanel){let s=window.getEditableObjectConfig,o=s==null?void 0:s(t),c=(a=o==null?void 0:o.identity)==null?void 0:a.category;c||(c=i.split(".")[0]==="render"?"environment":"ui"),console.log("[QuickActionsBar] Highlighting library slot:",t,"category:",c),r.libraryPanel.highlightSlot(t,c)}}}openAIEditor(t,i,n){let r=window.__openAiEditor;if(typeof r=="function"){let a=i.split(".").pop()||i;r(a,`Edit ${a} for ${t}`,n,{objectId:t,path:i})}else console.warn("[QuickActionsBar] AI Editor not available")}openUpload(t,i){let n=document.createElement("input");n.type="file",n.accept="image/*",n.onchange=async r=>{var o;let a=(o=r.target.files)==null?void 0:o[0];if(!a)return;console.log("[QuickActionsBar] Preparing upload for:",a.name);let s=new FileReader;s.onload=async()=>{var l,d,u;let c=s.result;try{let p=window.getEditableObjectConfig,f=p==null?void 0:p(t),g=((l=f==null?void 0:f.identity)==null?void 0:l.category)||(i.split(".")[0]==="render"?"environment":"ui"),m=await(await fetch("/api/library/save",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({category:g,filename:a.name,data:c,overwrite:!0})})).json();if(m.success){console.log("[QuickActionsBar] \u2705 Uploaded and saved:",m.path),this.updateManager.updateProperty(t,i,m.path);let b=window.__debugContext;(u=(d=b==null?void 0:b.options)==null?void 0:d.onPropertyChange)==null||u.call(d,t,i,m.path);let v=window.addAssetToRegistry;typeof v=="function"&&v(g,a.name);let y=window.reRenderAssetLibrary;typeof y=="function"&&y(),window.dispatchEvent(new CustomEvent("inspector:refresh"))}else console.error("[QuickActionsBar] \u274C Upload failed:",m.error),alert(`Upload failed: ${m.error}`)}catch(p){console.error("[QuickActionsBar] \u274C Upload error:",p),alert("Upload failed. Check console.")}},s.readAsDataURL(a)},n.click()}async resetToDefault(t,i){console.log("[QuickActionsBar] Reset to default:",t,i);try{let n=await this.getDefaultValue(t,i);n!==void 0?(await this.updateManager.updateProperty(t,i,n),console.log("[QuickActionsBar] Reset to default value:",n)):alert("No default value found for this property.")}catch(n){console.error("[QuickActionsBar] Failed to reset to default:",n),alert("Failed to reset property. Check console for details.")}}async getDefaultValue(t,i){let n=i.split(".");if(n.length<2)return;let r=n[0],a=n.slice(1),s=window.__editableConfig;if(!(s!=null&&s.schemas))return;let o=null;if(s.schemas instanceof Map?o=s.schemas.get(r):typeof s.schemas=="object"&&(o=s.schemas[r]),!(o!=null&&o.defaults))return;let c=o.defaults;for(let l of a)if(c&&typeof c=="object")c=c[l];else return;return c}handleAiConvert(t,i,n){let r=window.__openAiEditor;if(typeof r=="function"){let s=`A single, high-quality, high-detail game UI icon/asset representing "${String(n||t.replace(/_/g," ").replace("json.",""))}". Modern stylized 3D rendered style, vibrant colors, soft lighting, isolated on solid magenta background, highly polished professional game art.`,o="render.asset.path";console.log("[QuickActionsBar] AI Convert for:",t,"from:",i,"to:",o),r(t,s,"",{objectId:t,path:o});let c=window.__debugContext;if(c){c.activeTab="ai";let l=window.__updateWorkbenchTabs;typeof l=="function"&&l()}}else console.warn("[QuickActionsBar] AI Editor not available")}};function Eg(e,t){let i;return function(...r){let a=()=>{clearTimeout(i),e(...r)};clearTimeout(i),i=setTimeout(a,t)}}var Ar=class{constructor(){this.root=null;this.contentContainer=null;this.selectedObjectId=null;this.options=null;this.showAdvanced=!1;this.rendererRegistry=new Er,this.updateManager=new ui,this.quickActions=new Sr,window.addEventListener("inspector:refresh",()=>{this.selectedObjectId&&this.loadObject(this.selectedObjectId)}),window.addEventListener("config:changed",()=>{})}render(){return`
409
409
  <div class="scene-panel inspector-panel panel-accent-violet" data-panel="inspector" style="right:16px; top:72px;">
410
410
  <div class="scene-panel-header" data-panel-handle>
411
411
  <div class="panel-title">
@@ -466,7 +466,7 @@ import{c as Ka,d as He,e as Xa}from"./chunk-I5OOVR5U.js";import{i as lr}from"./c
466
466
  ${a.join("")}
467
467
  </div>
468
468
  </div>
469
- `}attachEventListeners(){var l,d,u,p;if(!this.contentContainer)return;let t=this.contentContainer.querySelectorAll("[data-property-path]"),i=wg((f,g,h)=>{var m,b;this.updateManager.updateProperty(f,g,h),(b=(m=this.options)==null?void 0:m.onPropertyChange)==null||b.call(m,f,g,h)},300);t.forEach(f=>{let g=m=>{var x,w;let b=m.target,v=b.dataset.propertyPath,y=b.dataset.objectId;if(v&&y){let E=b.value;if(b.type==="checkbox")E=b.checked;else if(b.type==="number"&&(E=parseFloat(b.value),isNaN(E)))return;b.type==="text"||b.type==="range"||b.tagName==="TEXTAREA"?i(y,v,E):(this.updateManager.updateProperty(y,v,E),(w=(x=this.options)==null?void 0:x.onPropertyChange)==null||w.call(x,y,v,E))}},h=f.dataset.propertyPath;h==="logic.id"||h!=null&&h.endsWith(".logic.id")?(console.log("[Inspector v1.0.0] PATH-BASED DETECTION ACTIVE - logic ID found at:",h),f.addEventListener("change",async m=>{var k;let b=m.target,v=b.dataset.propertyPath,y=b.dataset.objectId,x=b.value;if(console.log("[Inspector v1.0.0] Logic ID changed to:",x),!v||!y)return;await this.updateManager.updateProperty(y,v,x),console.log("[Inspector v1.0.0] Logic ID updated");let w=window,E=(k=w==null?void 0:w.__HANDLER_LOGIC_META)==null?void 0:k[x],A=this.getDefaultPropsForLogic(x,E);console.log("[Inspector v1.0.0] New logic default props:",A);let S=v.replace(".id",".props");await this.updateManager.updateProperty(y,S,A),console.log("[Inspector v1.0.0] Logic props updated to:",A),console.log("[Inspector v1.0.0] Reloading inspector with updated config"),this.loadObject(y)})):(f.addEventListener("change",g),(f.tagName==="INPUT"||f.tagName==="TEXTAREA")&&f.addEventListener("input",g))}),this.contentContainer.querySelectorAll("[data-action]").forEach(f=>{f.addEventListener("click",g=>{let h=g.target,m=h.dataset.action,b=h.dataset.path,v=h.dataset.object;m&&b&&v&&this.quickActions.handleAction(m,v,b)})}),this.contentContainer.querySelectorAll("[data-section-toggle]").forEach(f=>{f.addEventListener("click",g=>{var b,v;let h=g.target,m=h.dataset.sectionToggle||((b=h.closest("[data-section-toggle]"))==null?void 0:b.getAttribute("data-section-toggle"));if(m){let y=(v=this.contentContainer)==null?void 0:v.querySelector(`[data-section="${m}"]`);y==null||y.classList.toggle("collapsed")}})});let a=(l=this.root)==null?void 0:l.querySelector("[data-inspector-advanced]");a==null||a.addEventListener("click",()=>{this.showAdvanced=!this.showAdvanced,this.selectedObjectId&&this.loadObject(this.selectedObjectId)});let s=(d=this.root)==null?void 0:d.querySelector("[data-convert-toggle]");s==null||s.addEventListener("click",()=>{var g;let f=(g=this.root)==null?void 0:g.querySelector("[data-convert-menu]");f==null||f.classList.toggle("hidden")});let o=(u=this.contentContainer)==null?void 0:u.querySelector("[data-inspector-add-component-btn]"),c=(p=this.contentContainer)==null?void 0:p.querySelector("[data-inspector-component-select]");o==null||o.addEventListener("click",async()=>{let f=c.value;f&&this.selectedObjectId&&await this.addComponent(this.selectedObjectId,f)})}async addComponent(t,i){console.log("[InspectorPanel] Adding component:",i,"to:",t);let n=window.getEditableObjectConfig,r=n==null?void 0:n(t);if(!r){console.error("[InspectorPanel] Failed to get config for:",t);return}let a=window.__editableConfig,s=a==null?void 0:a.schemas,o=null;s instanceof Map?o=s.get(i):s&&typeof s=="object"&&(o=s[i]),o||console.warn("[InspectorPanel] Schema not found for component:",i);let c=(o==null?void 0:o.defaults)||{enabled:!0};r[i]={...c},await this.updateManager.updateProperty(t,i,r[i]),this.loadObject(t),console.log("[InspectorPanel] Component added successfully")}isSectionMeaningful(t,i,n){var a,s;if(["identity","transform","render"].includes(t))return!0;if(!i||typeof i!="object"||t==="ui"&&((s=(a=n.render)==null?void 0:a.asset)==null?void 0:s.type)==="image")return!1;if(t==="interaction")return i.clickable===!0||i.draggable===!0;if(i.enabled===!0||i.active===!0||i.visible===!0)return!0;if(t==="ui")return!!(i.text||i.font||i.fontSize);let r=Object.keys(i);return r.length===0||r.length===1&&r[0]==="enabled"&&i.enabled===!1?!1:["audio","effects","physics","motion","gameplay"].includes(t)?i.enabled===!0:!0}showError(t){this.contentContainer&&(this.contentContainer.innerHTML=`
469
+ `}attachEventListeners(){var l,d,u,p;if(!this.contentContainer)return;let t=this.contentContainer.querySelectorAll("[data-property-path]"),i=Eg((f,g,h)=>{var m,b;this.updateManager.updateProperty(f,g,h),(b=(m=this.options)==null?void 0:m.onPropertyChange)==null||b.call(m,f,g,h)},300);t.forEach(f=>{let g=m=>{var x,w;let b=m.target,v=b.dataset.propertyPath,y=b.dataset.objectId;if(v&&y){let E=b.value;if(b.type==="checkbox")E=b.checked;else if(b.type==="number"&&(E=parseFloat(b.value),isNaN(E)))return;b.type==="text"||b.type==="range"||b.tagName==="TEXTAREA"?i(y,v,E):(this.updateManager.updateProperty(y,v,E),(w=(x=this.options)==null?void 0:x.onPropertyChange)==null||w.call(x,y,v,E))}},h=f.dataset.propertyPath;h==="logic.id"||h!=null&&h.endsWith(".logic.id")?(console.log("[Inspector v1.0.0] PATH-BASED DETECTION ACTIVE - logic ID found at:",h),f.addEventListener("change",async m=>{var k;let b=m.target,v=b.dataset.propertyPath,y=b.dataset.objectId,x=b.value;if(console.log("[Inspector v1.0.0] Logic ID changed to:",x),!v||!y)return;await this.updateManager.updateProperty(y,v,x),console.log("[Inspector v1.0.0] Logic ID updated");let w=window,E=(k=w==null?void 0:w.__HANDLER_LOGIC_META)==null?void 0:k[x],A=this.getDefaultPropsForLogic(x,E);console.log("[Inspector v1.0.0] New logic default props:",A);let S=v.replace(".id",".props");await this.updateManager.updateProperty(y,S,A),console.log("[Inspector v1.0.0] Logic props updated to:",A),console.log("[Inspector v1.0.0] Reloading inspector with updated config"),this.loadObject(y)})):(f.addEventListener("change",g),(f.tagName==="INPUT"||f.tagName==="TEXTAREA")&&f.addEventListener("input",g))}),this.contentContainer.querySelectorAll("[data-action]").forEach(f=>{f.addEventListener("click",g=>{let h=g.target,m=h.dataset.action,b=h.dataset.path,v=h.dataset.object;m&&b&&v&&this.quickActions.handleAction(m,v,b)})}),this.contentContainer.querySelectorAll("[data-section-toggle]").forEach(f=>{f.addEventListener("click",g=>{var b,v;let h=g.target,m=h.dataset.sectionToggle||((b=h.closest("[data-section-toggle]"))==null?void 0:b.getAttribute("data-section-toggle"));if(m){let y=(v=this.contentContainer)==null?void 0:v.querySelector(`[data-section="${m}"]`);y==null||y.classList.toggle("collapsed")}})});let a=(l=this.root)==null?void 0:l.querySelector("[data-inspector-advanced]");a==null||a.addEventListener("click",()=>{this.showAdvanced=!this.showAdvanced,this.selectedObjectId&&this.loadObject(this.selectedObjectId)});let s=(d=this.root)==null?void 0:d.querySelector("[data-convert-toggle]");s==null||s.addEventListener("click",()=>{var g;let f=(g=this.root)==null?void 0:g.querySelector("[data-convert-menu]");f==null||f.classList.toggle("hidden")});let o=(u=this.contentContainer)==null?void 0:u.querySelector("[data-inspector-add-component-btn]"),c=(p=this.contentContainer)==null?void 0:p.querySelector("[data-inspector-component-select]");o==null||o.addEventListener("click",async()=>{let f=c.value;f&&this.selectedObjectId&&await this.addComponent(this.selectedObjectId,f)})}async addComponent(t,i){console.log("[InspectorPanel] Adding component:",i,"to:",t);let n=window.getEditableObjectConfig,r=n==null?void 0:n(t);if(!r){console.error("[InspectorPanel] Failed to get config for:",t);return}let a=window.__editableConfig,s=a==null?void 0:a.schemas,o=null;s instanceof Map?o=s.get(i):s&&typeof s=="object"&&(o=s[i]),o||console.warn("[InspectorPanel] Schema not found for component:",i);let c=(o==null?void 0:o.defaults)||{enabled:!0};r[i]={...c},await this.updateManager.updateProperty(t,i,r[i]),this.loadObject(t),console.log("[InspectorPanel] Component added successfully")}isSectionMeaningful(t,i,n){var a,s;if(["identity","transform","render"].includes(t))return!0;if(!i||typeof i!="object"||t==="ui"&&((s=(a=n.render)==null?void 0:a.asset)==null?void 0:s.type)==="image")return!1;if(t==="interaction")return i.clickable===!0||i.draggable===!0;if(i.enabled===!0||i.active===!0||i.visible===!0)return!0;if(t==="ui")return!!(i.text||i.font||i.fontSize);let r=Object.keys(i);return r.length===0||r.length===1&&r[0]==="enabled"&&i.enabled===!1?!1:["audio","effects","physics","motion","gameplay"].includes(t)?i.enabled===!0:!0}showError(t){this.contentContainer&&(this.contentContainer.innerHTML=`
470
470
  <div class="inspector-empty">
471
471
  <span class="inspector-empty-icon">\u26A0\uFE0F</span>
472
472
  <span class="inspector-empty-text">${t}</span>
@@ -476,7 +476,7 @@ import{c as Ka,d as He,e as Xa}from"./chunk-I5OOVR5U.js";import{i as lr}from"./c
476
476
  <span class="inspector-empty-icon">\u{1F3AF}</span>
477
477
  <span class="inspector-empty-text">Select an object to inspect</span>
478
478
  </div>
479
- `)}};var mh=gg(nh(),1);function Zo(e){return new Promise((t,i)=>{let n=new FileReader;n.onerror=()=>i(new Error("FileReader failed")),n.onload=()=>t(String(n.result||"")),n.readAsDataURL(e)})}function rh(e){var r;let[t,i]=e.split(","),n=t==null?void 0:t.match(/data:(.*?);base64/);return{base64:i!=null?i:"",mimeType:(r=n==null?void 0:n[1])!=null?r:"image/png"}}async function ah(e){return await new Promise(t=>{let i=new Image;i.onload=()=>t({width:i.naturalWidth||i.width,height:i.naturalHeight||i.height}),i.onerror=()=>t(null),i.src=e})}async function ba(e){var t,i;try{console.log("[ImageUtils] Fetching image data from URL:",e);let n=await fetch(e);if(!n.ok)return console.warn("[ImageUtils] Fetch failed with status:",n.status,e),null;let r=await n.blob();console.log("[ImageUtils] Blob received, size:",r.size,"type:",r.type);let a=await Zo(r),s=await ah(a),o=rh(a);return console.log("[ImageUtils] Success resolution:",s==null?void 0:s.width,"x",s==null?void 0:s.height,"mime:",o.mimeType),{base64:o.base64,mimeType:o.mimeType,dataUrl:a,width:(t=s==null?void 0:s.width)!=null?t:0,height:(i=s==null?void 0:s.height)!=null?i:0}}catch(n){return console.error("[ImageUtils] Error fetching image data:",n),null}}async function Pt(e){var t,i;try{let n=await Zo(e),r=await ah(n),a=rh(n);return{base64:a.base64,mimeType:a.mimeType,dataUrl:n,width:(t=r==null?void 0:r.width)!=null?t:0,height:(i=r==null?void 0:r.height)!=null?i:0}}catch{return null}}function sh(e){return Zo(e).then(t=>t).catch(()=>null)}function Jo(e,t){var i;try{let[n,r]=e.split(","),a=n.match(/data:(.*?);base64/),s=(i=a==null?void 0:a[1])!=null?i:"image/png",o=atob(r),c=new Uint8Array(o.length);for(let l=0;l<o.length;l++)c[l]=o.charCodeAt(l);return new File([c],t,{type:s})}catch{return null}}async function Fi(e,t=30){try{console.log("[ImageUtils] Removing background color...");let i=await new Promise((u,p)=>{let f=new Image;f.onload=()=>u(f),f.onerror=()=>p(new Error("Failed to load image")),f.src=e}),n=document.createElement("canvas");n.width=i.width,n.height=i.height;let r=n.getContext("2d");if(!r)return console.error("[ImageUtils] Failed to get canvas context"),e;r.drawImage(i,0,0);let a=r.getImageData(0,0,n.width,n.height),s=a.data,c=[{name:"top-left",offset:0},{name:"top-right",offset:(n.width-1)*4},{name:"bottom-left",offset:(n.height-1)*n.width*4},{name:"bottom-right",offset:((n.height-1)*n.width+(n.width-1))*4}].map(u=>({r:s[u.offset],g:s[u.offset+1],b:s[u.offset+2]})),l=0;for(let u=0;u<s.length;u+=4){let p=s[u],f=s[u+1],g=s[u+2],h=!1;for(let m of c)if(Math.sqrt(Math.pow(p-m.r,2)+Math.pow(f-m.g,2)+Math.pow(g-m.b,2))<t){h=!0;break}h&&(s[u+3]=0,l++)}return console.log(`[ImageUtils] Removed background from ${l} pixels (4-corner sampling, tolerance: ${t})`),r.putImageData(a,0,0),n.toDataURL("image/png")}catch(i){return console.error("[ImageUtils] Error removing background:",i),e}}function oh(e,t){if(!e||!t)return"1:1";let i=e/t;return i>1.3?"16:9":i<.77?"9:16":"1:1"}function ut(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function de(e){return typeof e=="string"?e:void 0}function lh(e){return e.toLowerCase().endsWith(".png")?e.slice(0,-4):e}function tx(e){var n,r,a;let t=(n=de(e.id))!=null?n:de(e.name);if(t)return t;let i=(r=de(e.file))!=null?r:de(e.asset);return i?lh((a=i.split("/").pop())!=null?a:i):void 0}function ix(e,t,i){var n,r,a;if(typeof t=="string")return{id:e,file:t,role:i};if(ut(t)){let s=(n=de(t.file))!=null?n:de(t.asset);return s?{id:(r=de(t.id))!=null?r:e,file:s,role:(a=de(t.role))!=null?a:i,dataUrl:de(t.dataUrl),layout:t.layout}:null}return null}function Qo(e,t){var i,n,r;if(!e)return[];if(Array.isArray(e)){let a=[];for(let s of e){if(typeof s=="string"){let o=lh((i=s.split("/").pop())!=null?i:s);a.push({id:o,file:s,role:t});continue}if(ut(s)){let o=tx(s),c=(n=de(s.file))!=null?n:de(s.asset);if(!o||!c)continue;a.push({id:o,file:c,role:(r=de(s.role))!=null?r:t,dataUrl:de(s.dataUrl),layout:s.layout})}}return a}if(ut(e)){let a=[];for(let[s,o]of Object.entries(e)){let c=ix(s,o,t);c&&a.push(c)}return a}return[]}function nx(e){var t,i;return(i=(t=de(e.brand_name))!=null?t:de(e.brandName))!=null?i:de(e.name)}function rx(e){if(ut(e.brand_dna)&&ut(e.brand_dna.colors))return e.brand_dna;if(ut(e.colors)){let t={colors:e.colors};return typeof e.style=="string"&&(t.style=e.style),ut(e.fonts)&&(t.fonts=e.fonts),t}}function ax(e){var i;let t=new Map;for(let n of e){let r=t.get(n.id);if(!r){t.set(n.id,n);continue}t.set(n.id,{...r,...n,file:n.file||r.file,role:n.role||r.role,dataUrl:n.dataUrl||r.dataUrl,layout:(i=n.layout)!=null?i:r.layout})}return Array.from(t.values())}function el(e,t={}){var s,o,c;let i=e.filter(ut),n=(o=(s=i.map(nx).find(Boolean))!=null?s:t.defaultBrandName)!=null?o:"Imported Brand",r=(c=i.map(rx).find(Boolean))!=null?c:{colors:{}},a=[];for(let l of i)"layers"in l&&a.push(...Qo(l.layers,"visual element")),"assets"in l&&a.push(...Qo(l.assets,"visual element")),ut(l.endgame)&&"assets"in l.endgame&&a.push(...Qo(l.endgame.assets,"endgame"));return{version:"1.0",brand_name:n,brand_dna:r,assets:ax(a)}}import{GoogleGenAI as sx}from"@google/genai";async function va(e,t,i=[],n={}){var r,a,s,o,c,l,d;try{if(!(e!=null&&e.trim()))throw new Error("Gemini API key is required");if(!(t!=null&&t.trim()))throw new Error("Prompt is required");for(let b=0;b<i.length;b++){let v=i[b];if(!v.base64||!v.mimeType)throw new Error(`Image ${b+1} is missing required data`);if(v.base64.length<1e3&&console.warn(`Image ${b+1} data appears very small, may be corrupted`),!v.mimeType.startsWith("image/"))throw new Error(`Image ${b+1} has invalid MIME type: ${v.mimeType}`)}let u=new sx({apiKey:e}),p="gemini-2.5-flash",f=[t];i.length>0&&i.forEach((b,v)=>{f.push({inlineData:{data:b.base64,mimeType:b.mimeType}}),console.log(`[Gemini] Added image ${v+1}: ${b.mimeType}, size: ${Math.round(b.base64.length/1024)}KB`)}),console.log(`[Gemini] Making request with ${i.length} images and prompt length: ${t.length}`);let g=await u.models.generateContent({model:p,contents:f}),h="",m=(s=(a=(r=g.candidates)==null?void 0:r[0])==null?void 0:a.content)==null?void 0:s.parts;if(m)for(let b of m)b.text&&(h+=b.text);if(!h.trim())throw new Error("Empty response from Gemini API");return console.log(`[Gemini] Response received, length: ${h.length}`),h}catch(u){throw console.error("[Gemini] API error:",u),(o=u.message)!=null&&o.includes("Unable to process input image")?new Error("Unable to process the uploaded image. Please ensure it's a valid PNG, JPG, or JPEG file under 10MB and not corrupted."):(c=u.message)!=null&&c.includes("API_KEY_INVALID")?new Error("Invalid Gemini API key. Please check your API key configuration."):(l=u.message)!=null&&l.includes("QUOTA_EXCEEDED")?new Error("Gemini API quota exceeded. Please try again later or check your billing."):(d=u.message)!=null&&d.includes("SAFETY")?new Error("Content was flagged by Gemini safety filters. Please try with different images."):u}}import{GoogleGenAI as ox}from"@google/genai";async function Ni(e,t,i=[],n={}){try{console.info("[GEMINI-REAL-SDK] Initializing GoogleGenAI...");let r=new ox({apiKey:e}),a=[{text:t}];i.length>0&&i.forEach((o,c)=>{console.info(`[GEMINI-REAL-SDK] Adding image part ${c}`),a.push({inlineData:{mimeType:o.mimeType,data:o.base64}})}),console.info("[GEMINI-REAL-SDK] Calling generateContent with model: gemini-2.5-flash-image");let s=await r.models.generateContent({model:"gemini-2.5-flash-image",contents:a});if(console.info("[GEMINI-REAL-SDK] Received response from model"),!s.candidates||!s.candidates[0]||!s.candidates[0].content||!s.candidates[0].content.parts)throw new Error("Gemini 2.5 Flash Image returned invalid response structure.");for(let o of s.candidates[0].content.parts)if(o.text)console.log(o.text);else if(o.inlineData){let c=o.inlineData.data,l=o.inlineData.mimeType||"image/png";return console.info("[GEMINI-REAL-SDK] Found inline image data in response"),`data:${l};base64,${c}`}throw new Error("Gemini 2.5 Flash Image returned no image data.")}catch(r){throw console.error("[GEMINI-REAL-SDK] Error in generateImageWithGemini25Flash:",JSON.stringify(r,Object.getOwnPropertyNames(r),2)),r}}function ch(e){let t=e.brandAssets.map(a=>{let s=`- ${a.id}: ${a.role}`;return a.layout&&(s+=` [pos: ${a.layout.x.toFixed(0)},${a.layout.y.toFixed(0)}, size: ${a.layout.w.toFixed(0)}x${a.layout.h.toFixed(0)}, z: ${a.layout.z}, opacity: ${a.layout.opacity}]`),s}).join(`
479
+ `)}};var vh=bg(ah(),1);function Qo(e){return new Promise((t,i)=>{let n=new FileReader;n.onerror=()=>i(new Error("FileReader failed")),n.onload=()=>t(String(n.result||"")),n.readAsDataURL(e)})}function sh(e){var r;let[t,i]=e.split(","),n=t==null?void 0:t.match(/data:(.*?);base64/);return{base64:i!=null?i:"",mimeType:(r=n==null?void 0:n[1])!=null?r:"image/png"}}async function oh(e){return await new Promise(t=>{let i=new Image;i.onload=()=>t({width:i.naturalWidth||i.width,height:i.naturalHeight||i.height}),i.onerror=()=>t(null),i.src=e})}async function ba(e){var t,i;try{console.log("[ImageUtils] Fetching image data from URL:",e);let n=await fetch(e);if(!n.ok)return console.warn("[ImageUtils] Fetch failed with status:",n.status,e),null;let r=await n.blob();console.log("[ImageUtils] Blob received, size:",r.size,"type:",r.type);let a=await Qo(r),s=await oh(a),o=sh(a);return console.log("[ImageUtils] Success resolution:",s==null?void 0:s.width,"x",s==null?void 0:s.height,"mime:",o.mimeType),{base64:o.base64,mimeType:o.mimeType,dataUrl:a,width:(t=s==null?void 0:s.width)!=null?t:0,height:(i=s==null?void 0:s.height)!=null?i:0}}catch(n){return console.error("[ImageUtils] Error fetching image data:",n),null}}async function Pt(e){var t,i;try{let n=await Qo(e),r=await oh(n),a=sh(n);return{base64:a.base64,mimeType:a.mimeType,dataUrl:n,width:(t=r==null?void 0:r.width)!=null?t:0,height:(i=r==null?void 0:r.height)!=null?i:0}}catch{return null}}function lh(e){return Qo(e).then(t=>t).catch(()=>null)}function el(e,t){var i;try{let[n,r]=e.split(","),a=n.match(/data:(.*?);base64/),s=(i=a==null?void 0:a[1])!=null?i:"image/png",o=atob(r),c=new Uint8Array(o.length);for(let l=0;l<o.length;l++)c[l]=o.charCodeAt(l);return new File([c],t,{type:s})}catch{return null}}async function Ni(e,t=30){try{console.log("[ImageUtils] Removing background color...");let i=await new Promise((u,p)=>{let f=new Image;f.onload=()=>u(f),f.onerror=()=>p(new Error("Failed to load image")),f.src=e}),n=document.createElement("canvas");n.width=i.width,n.height=i.height;let r=n.getContext("2d");if(!r)return console.error("[ImageUtils] Failed to get canvas context"),e;r.drawImage(i,0,0);let a=r.getImageData(0,0,n.width,n.height),s=a.data,c=[{name:"top-left",offset:0},{name:"top-right",offset:(n.width-1)*4},{name:"bottom-left",offset:(n.height-1)*n.width*4},{name:"bottom-right",offset:((n.height-1)*n.width+(n.width-1))*4}].map(u=>({r:s[u.offset],g:s[u.offset+1],b:s[u.offset+2]})),l=0;for(let u=0;u<s.length;u+=4){let p=s[u],f=s[u+1],g=s[u+2],h=!1;for(let m of c)if(Math.sqrt(Math.pow(p-m.r,2)+Math.pow(f-m.g,2)+Math.pow(g-m.b,2))<t){h=!0;break}h&&(s[u+3]=0,l++)}return console.log(`[ImageUtils] Removed background from ${l} pixels (4-corner sampling, tolerance: ${t})`),r.putImageData(a,0,0),n.toDataURL("image/png")}catch(i){return console.error("[ImageUtils] Error removing background:",i),e}}function ch(e,t){if(!e||!t)return"1:1";let i=e/t;return i>1.3?"16:9":i<.77?"9:16":"1:1"}function ut(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function de(e){return typeof e=="string"?e:void 0}function dh(e){return e.toLowerCase().endsWith(".png")?e.slice(0,-4):e}function nx(e){var n,r,a;let t=(n=de(e.id))!=null?n:de(e.name);if(t)return t;let i=(r=de(e.file))!=null?r:de(e.asset);return i?dh((a=i.split("/").pop())!=null?a:i):void 0}function rx(e,t,i){var n,r,a;if(typeof t=="string")return{id:e,file:t,role:i};if(ut(t)){let s=(n=de(t.file))!=null?n:de(t.asset);return s?{id:(r=de(t.id))!=null?r:e,file:s,role:(a=de(t.role))!=null?a:i,dataUrl:de(t.dataUrl),layout:t.layout}:null}return null}function tl(e,t){var i,n,r;if(!e)return[];if(Array.isArray(e)){let a=[];for(let s of e){if(typeof s=="string"){let o=dh((i=s.split("/").pop())!=null?i:s);a.push({id:o,file:s,role:t});continue}if(ut(s)){let o=nx(s),c=(n=de(s.file))!=null?n:de(s.asset);if(!o||!c)continue;a.push({id:o,file:c,role:(r=de(s.role))!=null?r:t,dataUrl:de(s.dataUrl),layout:s.layout})}}return a}if(ut(e)){let a=[];for(let[s,o]of Object.entries(e)){let c=rx(s,o,t);c&&a.push(c)}return a}return[]}function ax(e){var t,i;return(i=(t=de(e.brand_name))!=null?t:de(e.brandName))!=null?i:de(e.name)}function sx(e){if(ut(e.brand_dna)&&ut(e.brand_dna.colors))return e.brand_dna;if(ut(e.colors)){let t={colors:e.colors};return typeof e.style=="string"&&(t.style=e.style),ut(e.fonts)&&(t.fonts=e.fonts),t}}function ox(e){var i;let t=new Map;for(let n of e){let r=t.get(n.id);if(!r){t.set(n.id,n);continue}t.set(n.id,{...r,...n,file:n.file||r.file,role:n.role||r.role,dataUrl:n.dataUrl||r.dataUrl,layout:(i=n.layout)!=null?i:r.layout})}return Array.from(t.values())}function il(e,t={}){var s,o,c;let i=e.filter(ut),n=(o=(s=i.map(ax).find(Boolean))!=null?s:t.defaultBrandName)!=null?o:"Imported Brand",r=(c=i.map(sx).find(Boolean))!=null?c:{colors:{}},a=[];for(let l of i)"layers"in l&&a.push(...tl(l.layers,"visual element")),"assets"in l&&a.push(...tl(l.assets,"visual element")),ut(l.endgame)&&"assets"in l.endgame&&a.push(...tl(l.endgame.assets,"endgame"));return{version:"1.0",brand_name:n,brand_dna:r,assets:ox(a)}}import{GoogleGenAI as lx}from"@google/genai";async function va(e,t,i=[],n={}){var r,a,s,o,c,l,d;try{if(!(e!=null&&e.trim()))throw new Error("Gemini API key is required");if(!(t!=null&&t.trim()))throw new Error("Prompt is required");for(let b=0;b<i.length;b++){let v=i[b];if(!v.base64||!v.mimeType)throw new Error(`Image ${b+1} is missing required data`);if(v.base64.length<1e3&&console.warn(`Image ${b+1} data appears very small, may be corrupted`),!v.mimeType.startsWith("image/"))throw new Error(`Image ${b+1} has invalid MIME type: ${v.mimeType}`)}let u=new lx({apiKey:e}),p="gemini-2.5-flash",f=[t];i.length>0&&i.forEach((b,v)=>{f.push({inlineData:{data:b.base64,mimeType:b.mimeType}}),console.log(`[Gemini] Added image ${v+1}: ${b.mimeType}, size: ${Math.round(b.base64.length/1024)}KB`)}),console.log(`[Gemini] Making request with ${i.length} images and prompt length: ${t.length}`);let g=await u.models.generateContent({model:p,contents:f}),h="",m=(s=(a=(r=g.candidates)==null?void 0:r[0])==null?void 0:a.content)==null?void 0:s.parts;if(m)for(let b of m)b.text&&(h+=b.text);if(!h.trim())throw new Error("Empty response from Gemini API");return console.log(`[Gemini] Response received, length: ${h.length}`),h}catch(u){throw console.error("[Gemini] API error:",u),(o=u.message)!=null&&o.includes("Unable to process input image")?new Error("Unable to process the uploaded image. Please ensure it's a valid PNG, JPG, or JPEG file under 10MB and not corrupted."):(c=u.message)!=null&&c.includes("API_KEY_INVALID")?new Error("Invalid Gemini API key. Please check your API key configuration."):(l=u.message)!=null&&l.includes("QUOTA_EXCEEDED")?new Error("Gemini API quota exceeded. Please try again later or check your billing."):(d=u.message)!=null&&d.includes("SAFETY")?new Error("Content was flagged by Gemini safety filters. Please try with different images."):u}}import{GoogleGenAI as cx}from"@google/genai";async function Fi(e,t,i=[],n={}){try{console.info("[GEMINI-REAL-SDK] Initializing GoogleGenAI...");let r=new cx({apiKey:e}),a=[{text:t}];i.length>0&&i.forEach((o,c)=>{console.info(`[GEMINI-REAL-SDK] Adding image part ${c}`),a.push({inlineData:{mimeType:o.mimeType,data:o.base64}})}),console.info("[GEMINI-REAL-SDK] Calling generateContent with model: gemini-2.5-flash-image");let s=await r.models.generateContent({model:"gemini-2.5-flash-image",contents:a});if(console.info("[GEMINI-REAL-SDK] Received response from model"),!s.candidates||!s.candidates[0]||!s.candidates[0].content||!s.candidates[0].content.parts)throw new Error("Gemini 2.5 Flash Image returned invalid response structure.");for(let o of s.candidates[0].content.parts)if(o.text)console.log(o.text);else if(o.inlineData){let c=o.inlineData.data,l=o.inlineData.mimeType||"image/png";return console.info("[GEMINI-REAL-SDK] Found inline image data in response"),`data:${l};base64,${c}`}throw new Error("Gemini 2.5 Flash Image returned no image data.")}catch(r){throw console.error("[GEMINI-REAL-SDK] Error in generateImageWithGemini25Flash:",JSON.stringify(r,Object.getOwnPropertyNames(r),2)),r}}function uh(e){let t=e.brandAssets.map(a=>{let s=`- ${a.id}: ${a.role}`;return a.layout&&(s+=` [pos: ${a.layout.x.toFixed(0)},${a.layout.y.toFixed(0)}, size: ${a.layout.w.toFixed(0)}x${a.layout.h.toFixed(0)}, z: ${a.layout.z}, opacity: ${a.layout.opacity}]`),s}).join(`
480
480
  `)||"None",i=e.brandDna?`Colors: ${JSON.stringify(e.brandDna.colors)}, Style: ${e.brandDna.style||"not specified"}`:"Not provided",n=e.gameObjects.map(a=>typeof a=="string"?`- id: ${a}`:`- id: ${a.id}${a.category?`, category: ${a.category}`:""}${a.type?`, type: ${a.type}`:""}`).join(`
481
481
  `),r="";if(e.brandConfig){let a=e.brandConfig,s=[];a.splash&&s.push(`SPLASH: title="${a.splash.title||""}", subtitle="${a.splash.subtitle||""}", button="${a.splash.button_label||""}"`),a.endgame&&s.push(`ENDGAME: title="${a.endgame.title||""}", subtitle="${a.endgame.subtitle||""}", cta="${a.endgame.cta_label||""}"`),a.tutorial&&s.push(`TUTORIAL: text="${a.tutorial.label_text||""}", helper="${a.tutorial.helper_text||""}"`),s.length>0&&(r=`
482
482
  BRAND CONTENT:
@@ -540,7 +540,7 @@ OUTPUT ONLY VALID JSON (no markdown, no explanation):
540
540
  }
541
541
  ]
542
542
  }
543
- `.trim()}function dh(e){var r,a;let t=(r=e.brandDna)!=null&&r.colors?`Primary: ${e.brandDna.colors.primary}, Secondary: ${e.brandDna.colors.secondary||"N/A"}, Accent: ${e.brandDna.colors.accent||"N/A"}`:"Use provided reference colors",i=((a=e.brandDna)==null?void 0:a.style)||"modern gaming style",n=e.needsTransparency?"BACKGROUND: REQUIRED solid magenta #FF00FF (for transparency removal)":"BACKGROUND: Use brand colors naturally, fill the entire frame";return`
543
+ `.trim()}function ph(e){var r,a;let t=(r=e.brandDna)!=null&&r.colors?`Primary: ${e.brandDna.colors.primary}, Secondary: ${e.brandDna.colors.secondary||"N/A"}, Accent: ${e.brandDna.colors.accent||"N/A"}`:"Use provided reference colors",i=((a=e.brandDna)==null?void 0:a.style)||"modern gaming style",n=e.needsTransparency?"BACKGROUND: REQUIRED solid magenta #FF00FF (for transparency removal)":"BACKGROUND: Use brand colors naturally, fill the entire frame";return`
544
544
  TASK: ${e.prompt}
545
545
 
546
546
  BRAND STYLE:
@@ -561,7 +561,7 @@ OUTPUT CONSTRAINTS (MUST FOLLOW):
561
561
 
562
562
  OUTPUT:
563
563
  Generate the requested asset matching the brand style.${e.needsTransparency?" Background MUST be solid magenta (#FF00FF).":""}
564
- `.trim()}function uh(e){return e.map(t=>{if(typeof t=="string"){let i=t,n,r;return i.includes("background")?(n="background",r="background"):i.includes("button")||i.includes("cta")?(n="ui",r="button"):i.includes("logo")?(n="ui",r="logo"):i.includes("title")||i.includes("subtitle")||i.includes("text")?(n="text",r="text"):i.includes("effect")||i.includes("confetti")||i.includes("particle")?(n="effects",r="effect"):i.includes("ui.")||i.includes("splash")||i.includes("endgame")?(n="ui",r="image"):(n="environment",r="interactive"),{id:i,category:n,type:r}}return t})}function ph(e,t){return!(e.includes("background")&&(e.includes("_1")||e.includes("splash")||e.includes("endgame")||e.includes("main"))||t==="text"||t==="effects"&&e.includes("particle"))}async function fh(e){var s,o;let t=uh(e.gameObjects),i={gamePrompt:e.gamePrompt,gameObjects:t,brandAssets:e.manifest.assets,brandDna:e.manifest.brand_dna,brandName:e.manifest.brand_name},n=ch(i),r=[];if(e.flatDesignDataUrl)try{let c=hh(e.flatDesignDataUrl);c&&c.base64&&c.mimeType?c.base64.length<100?console.warn("[Pipeline] Flat design data URL appears invalid (too short)"):(r.push(c),console.log("[Pipeline] Added flat design to analysis, size:",c.base64.length)):console.warn("[Pipeline] Failed to parse flat design data URL")}catch(c){console.warn("[Pipeline] Error processing flat design:",c)}console.log("[Pipeline] Running analysis chain with",r.length,"images...");let a;try{a=await va(e.apiKey,n,r,{model:"gemini-2.5-flash"}),console.log("[Pipeline] Analysis response received")}catch(c){throw console.error("[Pipeline] Gemini API error:",c),(s=c.message)!=null&&s.includes("Unable to process input image")?new Error("Gemini API unable to process the uploaded images. Please try with different images or ensure they are valid PNG/JPG files under 10MB."):(o=c.message)!=null&&o.includes("image")?new Error("Image processing failed. Please ensure your images are valid and not corrupted."):c}return lx(a,e.gameObjects)}function lx(e,t){try{let i=e,n=e.match(/```(?:json)?\s*([\s\S]*?)```/);if(n)i=n[1].trim();else{let a=e.match(/\{[\s\S]*\}/);a&&(i=a[0])}let r=JSON.parse(i);return r.mappings&&Array.isArray(r.mappings)?{mappingResult:r,rawResponse:e,parsed:!0}:{mappingResult:{mappings:t.map(a=>({game_object:a,action:"KEEP",status:"Analysis response missing mappings[]"}))},rawResponse:e,parsed:!1,parseError:"Missing mappings[] array"}}catch(i){return{mappingResult:{mappings:t.map(n=>({game_object:n,action:"KEEP",status:"Analysis response was not valid JSON"}))},rawResponse:e,parsed:!1,parseError:i!=null&&i.message?String(i.message):"JSON parse failed"}}}async function tl(e,t,i={}){var r;let n=t.mappings.filter(a=>a.action==="GENERATE");if(n.length===0){console.log("[Pipeline] No assets to generate");return}console.log(`[Pipeline] Generating ${n.length} assets...`);for(let a=0;a<n.length;a++){let s=n[a];(r=i.onProgress)==null||r.call(i,a+1,n.length,s.game_object);try{let o=await cx(e,s);s.output_dataUrl=o,s.status="Generated \u2713"}catch(o){console.error(`[Pipeline] Failed to generate ${s.game_object}:`,o),s.status="Failed \u2717"}}console.log("[Pipeline] Generation chain complete")}async function cx(e,t){if(!t.generation_prompt)throw new Error("No generation prompt provided");let i=[];if(t.reference_asset&&e.manifest){let o=e.manifest.assets.find(c=>c.id===t.reference_asset);if(o){let c=e.assetFiles.get(o.file);if(c){let l=await Pt(c);l&&i.push({base64:l.base64,mimeType:l.mimeType})}}}if(e.flatDesignDataUrl){let o=hh(e.flatDesignDataUrl);o&&i.push(o)}let n=ph(t.game_object),r={prompt:t.generation_prompt,hasReference:i.length>0,brandDna:e.manifest.brand_dna,needsTransparency:n},a=dh(r);console.log(`[Pipeline] Generating asset for ${t.game_object}... (transparency: ${n})`);let s=await Ni(e.apiKey,a,i,{aspectRatio:"1:1",model:"gemini-2.5-flash-image"});return n&&await Fi(s)||s}function hh(e){let[t,i]=e.split(","),n=t==null?void 0:t.match(/data:(.*?);base64/);return i&&n?{base64:i,mimeType:n[1]}:null}async function gh(e,t){let i=e.assets,n=[];Array.isArray(i)?n=i:i&&typeof i=="object"?n=Object.entries(i).map(([r,a])=>({id:r,file:String(a),role:"visual element"})):n=[],e.assets=n;for(let r of n){let a=t.get(r.file);if(a){let s=await Pt(a);s&&(r.dataUrl=s.dataUrl)}}}var ya=class{constructor(){this.root=null;this.currentTab="upload";this.uploadMethod="individual";this.uploadedJsons=new Map;this.normalizedManifest=null;this.flatDesignDataUrl=null;this.assetFiles=new Map;this.zipFile=null;this.mappingResult=null;this.analysisRawResponse=null;this.analysisParsedOk=null;this.analysisParseError=null;this.isAnalyzing=!1;this.isGenerating=!1}get manifest(){return this.normalizedManifest}render(){return`
564
+ `.trim()}function fh(e){return e.map(t=>{if(typeof t=="string"){let i=t,n,r;return i.includes("background")?(n="background",r="background"):i.includes("button")||i.includes("cta")?(n="ui",r="button"):i.includes("logo")?(n="ui",r="logo"):i.includes("title")||i.includes("subtitle")||i.includes("text")?(n="text",r="text"):i.includes("effect")||i.includes("confetti")||i.includes("particle")?(n="effects",r="effect"):i.includes("ui.")||i.includes("splash")||i.includes("endgame")?(n="ui",r="image"):(n="environment",r="interactive"),{id:i,category:n,type:r}}return t})}function hh(e,t){return!(e.includes("background")&&(e.includes("_1")||e.includes("splash")||e.includes("endgame")||e.includes("main"))||t==="text"||t==="effects"&&e.includes("particle"))}async function gh(e){var s,o;let t=fh(e.gameObjects),i={gamePrompt:e.gamePrompt,gameObjects:t,brandAssets:e.manifest.assets,brandDna:e.manifest.brand_dna,brandName:e.manifest.brand_name},n=uh(i),r=[];if(e.flatDesignDataUrl)try{let c=mh(e.flatDesignDataUrl);c&&c.base64&&c.mimeType?c.base64.length<100?console.warn("[Pipeline] Flat design data URL appears invalid (too short)"):(r.push(c),console.log("[Pipeline] Added flat design to analysis, size:",c.base64.length)):console.warn("[Pipeline] Failed to parse flat design data URL")}catch(c){console.warn("[Pipeline] Error processing flat design:",c)}console.log("[Pipeline] Running analysis chain with",r.length,"images...");let a;try{a=await va(e.apiKey,n,r,{model:"gemini-2.5-flash"}),console.log("[Pipeline] Analysis response received")}catch(c){throw console.error("[Pipeline] Gemini API error:",c),(s=c.message)!=null&&s.includes("Unable to process input image")?new Error("Gemini API unable to process the uploaded images. Please try with different images or ensure they are valid PNG/JPG files under 10MB."):(o=c.message)!=null&&o.includes("image")?new Error("Image processing failed. Please ensure your images are valid and not corrupted."):c}return dx(a,e.gameObjects)}function dx(e,t){try{let i=e,n=e.match(/```(?:json)?\s*([\s\S]*?)```/);if(n)i=n[1].trim();else{let a=e.match(/\{[\s\S]*\}/);a&&(i=a[0])}let r=JSON.parse(i);return r.mappings&&Array.isArray(r.mappings)?{mappingResult:r,rawResponse:e,parsed:!0}:{mappingResult:{mappings:t.map(a=>({game_object:a,action:"KEEP",status:"Analysis response missing mappings[]"}))},rawResponse:e,parsed:!1,parseError:"Missing mappings[] array"}}catch(i){return{mappingResult:{mappings:t.map(n=>({game_object:n,action:"KEEP",status:"Analysis response was not valid JSON"}))},rawResponse:e,parsed:!1,parseError:i!=null&&i.message?String(i.message):"JSON parse failed"}}}async function nl(e,t,i={}){var r;let n=t.mappings.filter(a=>a.action==="GENERATE");if(n.length===0){console.log("[Pipeline] No assets to generate");return}console.log(`[Pipeline] Generating ${n.length} assets...`);for(let a=0;a<n.length;a++){let s=n[a];(r=i.onProgress)==null||r.call(i,a+1,n.length,s.game_object);try{let o=await ux(e,s);s.output_dataUrl=o,s.status="Generated \u2713"}catch(o){console.error(`[Pipeline] Failed to generate ${s.game_object}:`,o),s.status="Failed \u2717"}}console.log("[Pipeline] Generation chain complete")}async function ux(e,t){if(!t.generation_prompt)throw new Error("No generation prompt provided");let i=[];if(t.reference_asset&&e.manifest){let o=e.manifest.assets.find(c=>c.id===t.reference_asset);if(o){let c=e.assetFiles.get(o.file);if(c){let l=await Pt(c);l&&i.push({base64:l.base64,mimeType:l.mimeType})}}}if(e.flatDesignDataUrl){let o=mh(e.flatDesignDataUrl);o&&i.push(o)}let n=hh(t.game_object),r={prompt:t.generation_prompt,hasReference:i.length>0,brandDna:e.manifest.brand_dna,needsTransparency:n},a=ph(r);console.log(`[Pipeline] Generating asset for ${t.game_object}... (transparency: ${n})`);let s=await Fi(e.apiKey,a,i,{aspectRatio:"1:1",model:"gemini-2.5-flash-image"});return n&&await Ni(s)||s}function mh(e){let[t,i]=e.split(","),n=t==null?void 0:t.match(/data:(.*?);base64/);return i&&n?{base64:i,mimeType:n[1]}:null}async function bh(e,t){let i=e.assets,n=[];Array.isArray(i)?n=i:i&&typeof i=="object"?n=Object.entries(i).map(([r,a])=>({id:r,file:String(a),role:"visual element"})):n=[],e.assets=n;for(let r of n){let a=t.get(r.file);if(a){let s=await Pt(a);s&&(r.dataUrl=s.dataUrl)}}}var ya=class{constructor(){this.root=null;this.currentTab="upload";this.uploadMethod="individual";this.uploadedJsons=new Map;this.normalizedManifest=null;this.flatDesignDataUrl=null;this.assetFiles=new Map;this.zipFile=null;this.mappingResult=null;this.analysisRawResponse=null;this.analysisParsedOk=null;this.analysisParseError=null;this.isAnalyzing=!1;this.isGenerating=!1}get manifest(){return this.normalizedManifest}render(){return`
565
565
  <div class="scene-panel brand-vision-panel panel-accent-violet" data-panel="brand-vision">
566
566
  <div class="scene-panel-header" data-panel-handle>
567
567
  <div class="panel-title">
@@ -677,15 +677,15 @@ Generate the requested asset matching the brand style.${e.needsTransparency?" Ba
677
677
  </div>
678
678
  <div class="panel-resize-handle" data-panel-resize></div>
679
679
  </div>
680
- `}initialize(t,i){this.root=t.querySelector('[data-panel="brand-vision"]'),this.onClose=i,this.root&&(this.attachEventListeners(),this.setupResizeHandle())}attachEventListeners(){var i,n,r,a,s,o,c,l,d,u,p,f,g;if(!this.root)return;(i=this.root.querySelector("[data-panel-close]"))==null||i.addEventListener("click",()=>{if(this.onClose)this.onClose();else{let h="/dashboard";window.location.pathname!==h&&(window.location.href=h)}}),this.root.querySelectorAll("[data-vision-tab]").forEach(h=>{h.addEventListener("click",()=>{let m=h.dataset.visionTab;this.switchTab(m)})}),(n=this.root.querySelector("[data-vision-upload-method]"))==null||n.addEventListener("change",h=>{let m=h.target.value;this.switchUploadMethod(m)}),(r=this.root.querySelector("[data-vision-upload-manifest]"))==null||r.addEventListener("click",()=>{var h,m;(m=(h=this.root)==null?void 0:h.querySelector("[data-vision-manifest-input]"))==null||m.click()}),(a=this.root.querySelector("[data-vision-upload-zip]"))==null||a.addEventListener("click",()=>{var h,m;(m=(h=this.root)==null?void 0:h.querySelector("[data-vision-zip-input]"))==null||m.click()}),(s=this.root.querySelector("[data-vision-zip-input]"))==null||s.addEventListener("change",h=>{this.handleZipUpload(h)}),(o=this.root.querySelector("[data-vision-manifest-input]"))==null||o.addEventListener("change",h=>{this.handleManifestUpload(h)}),(c=this.root.querySelector("[data-vision-upload-assets]"))==null||c.addEventListener("click",()=>{var h,m;(m=(h=this.root)==null?void 0:h.querySelector("[data-vision-assets-input]"))==null||m.click()}),(l=this.root.querySelector("[data-vision-assets-input]"))==null||l.addEventListener("change",h=>{this.handleAssetsUpload(h)}),(d=this.root.querySelector("[data-vision-upload-flat]"))==null||d.addEventListener("click",()=>{var h,m;(m=(h=this.root)==null?void 0:h.querySelector("[data-vision-flat-input]"))==null||m.click()}),(u=this.root.querySelector("[data-vision-flat-input]"))==null||u.addEventListener("change",h=>{this.handleFlatDesignUpload(h)}),(p=this.root.querySelector("[data-vision-analyze]"))==null||p.addEventListener("click",()=>{this.runAnalysis()}),(f=this.root.querySelector("[data-vision-generate-all]"))==null||f.addEventListener("click",()=>{this.generateAllMissing()}),(g=this.root.querySelector("[data-vision-apply-all]"))==null||g.addEventListener("click",()=>{this.applyAll()});let t=this.root.querySelector("[data-vision-mappings]");t==null||t.addEventListener("click",h=>{let m=h.target;if(!m)return;let b=m.closest("[data-mapping-item]"),v=b==null?void 0:b.dataset.mappingItem;v&&(m.closest("[data-mapping-apply-one]")&&this.applyOne(v),m.closest("[data-mapping-save-one]")&&this.saveAndApplyOne(v),m.closest("[data-mapping-edit-one]")&&this.openEditorForOne(v),m.closest("[data-mapping-generate-one]")&&this.generateOne(v),m.closest("[data-mapping-copy-raw]")&&this.copyRawAnalysis())}),t==null||t.addEventListener("change",h=>{let m=h.target;if(!m||!this.mappingResult)return;let b=m.closest("[data-mapping-item]"),v=b==null?void 0:b.dataset.mappingItem;if(!v)return;let y=this.mappingResult.mappings.find(x=>x.game_object===v);y&&(m.matches("[data-mapping-action]")&&(y.action=String(m.value||"KEEP"),y.status="Edited",this.renderMappings()),m.matches("[data-mapping-brand-asset]")&&(y.brand_asset=String(m.value||""),y.status="Edited",this.renderMappings()))}),t==null||t.addEventListener("input",h=>{let m=h.target;if(!m||!this.mappingResult||!m.matches("[data-mapping-prompt]"))return;let b=m.closest("[data-mapping-item]"),v=b==null?void 0:b.dataset.mappingItem;if(!v)return;let y=this.mappingResult.mappings.find(x=>x.game_object===v);y&&(y.generation_prompt=String(m.value||""),y.status="Edited")})}switchTab(t){var i,n;this.root&&(this.currentTab=t,this.root.querySelectorAll("[data-vision-tab]").forEach(r=>r.classList.remove("active")),this.root.querySelectorAll("[data-vision-content]").forEach(r=>r.classList.remove("active")),(i=this.root.querySelector(`[data-vision-tab="${t}"]`))==null||i.classList.add("active"),(n=this.root.querySelector(`[data-vision-content="${t}"]`))==null||n.classList.add("active"))}switchUploadMethod(t){var i;this.root&&(this.uploadMethod=t,this.root.querySelectorAll("[data-vision-upload-section]").forEach(n=>{n.classList.remove("active")}),(i=this.root.querySelector(`[data-vision-upload-section="${t}"]`))==null||i.classList.add("active"))}async handleZipUpload(t){var r;let n=(r=t.target.files)==null?void 0:r[0];if(n){this.zipFile=n,this.setStatus("zip",`Selected: ${n.name} (${(n.size/1024/1024).toFixed(2)} MB)`);try{await this.processZipFile(n)}catch(a){console.error("[BrandVision] ZIP processing failed:",a),this.setStatus("zip",`Error: ${a instanceof Error?a.message:"Unknown error"}`)}}}async processZipFile(t){var s,o;let i=await mh.default.loadAsync(t),n=[],r=[];i.forEach((c,l)=>{let d=c.toLowerCase();d.endsWith(".json")?n.push({name:c,content:null}):d.startsWith("assets/")&&d.endsWith(".png")&&r.push({name:c,file:l})});for(let c of n)try{let l=await((s=i.file(c.name))==null?void 0:s.async("text"));l&&(c.content=JSON.parse(l))}catch(l){console.warn(`Failed to parse ${c.name}:`,l)}let a=new Map;for(let c of r)try{let l=await c.file.async("uint8array"),d=new Blob([l],{type:"image/png"}),u=c.name.split("/").pop()||c.name;console.log(`Processing ${u}, uint8array length: ${l.length}, blob size: ${d.size}`);let p;try{p=await this.blobToDataUrl(d)}catch(m){console.warn(`FileReader failed for ${u}, using fallback:`,m),p=`data:image/png;base64,${btoa(String.fromCharCode.apply(null,Array.from(l)))}`}if(console.log(`Data URL length: ${p.length}, starts with: ${p.substring(0,50)}...`),!p.startsWith("data:image/png;base64,")){console.warn(`Invalid data URL format for ${u}:`,p.substring(0,100));continue}let f=this.inferAssetCategory(u.replace(".png",""));console.log(`Saving ${u} to category: ${f}`);let h=await(await fetch("/api/library/save",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({category:f,filename:u,data:p,overwrite:!0})})).json();if(console.log(`Save result for ${u}:`,h),h.success){console.log(`\u2705 Saved PNG to library: ${u} (${f}) at ${h.path}`);let m=new File([d],u,{type:"image/png"});a.set(u,m)}else console.warn(`\u274C Failed to save ${u}:`,h.error)}catch(l){console.warn(`Failed to extract ${c.name}:`,l)}this.uploadedJsons.clear(),n.forEach(({name:c,content:l})=>{l&&this.uploadedJsons.set(c,l)}),this.assetFiles=a;try{this.normalizedManifest=el(Array.from(this.uploadedJsons.values()),{defaultBrandName:"Imported Brand"});let c=[];for(let[d,u]of a){let p=await this.fileToDataUrl(u);c.push({id:d.replace(".png",""),filename:d,dataUrl:p,category:this.inferAssetCategory(d.replace(".png",""))})}this.normalizedManifest&&(this.normalizedManifest.assets=c);let l=c.length;this.setStatus("zip",`\u2705 Processed: ${n.length} JSONs, ${l} PNGs
680
+ `}initialize(t,i){this.root=t.querySelector('[data-panel="brand-vision"]'),this.onClose=i,this.root&&(this.attachEventListeners(),this.setupResizeHandle())}attachEventListeners(){var i,n,r,a,s,o,c,l,d,u,p,f,g;if(!this.root)return;(i=this.root.querySelector("[data-panel-close]"))==null||i.addEventListener("click",()=>{if(this.onClose)this.onClose();else{let h="/dashboard";window.location.pathname!==h&&(window.location.href=h)}}),this.root.querySelectorAll("[data-vision-tab]").forEach(h=>{h.addEventListener("click",()=>{let m=h.dataset.visionTab;this.switchTab(m)})}),(n=this.root.querySelector("[data-vision-upload-method]"))==null||n.addEventListener("change",h=>{let m=h.target.value;this.switchUploadMethod(m)}),(r=this.root.querySelector("[data-vision-upload-manifest]"))==null||r.addEventListener("click",()=>{var h,m;(m=(h=this.root)==null?void 0:h.querySelector("[data-vision-manifest-input]"))==null||m.click()}),(a=this.root.querySelector("[data-vision-upload-zip]"))==null||a.addEventListener("click",()=>{var h,m;(m=(h=this.root)==null?void 0:h.querySelector("[data-vision-zip-input]"))==null||m.click()}),(s=this.root.querySelector("[data-vision-zip-input]"))==null||s.addEventListener("change",h=>{this.handleZipUpload(h)}),(o=this.root.querySelector("[data-vision-manifest-input]"))==null||o.addEventListener("change",h=>{this.handleManifestUpload(h)}),(c=this.root.querySelector("[data-vision-upload-assets]"))==null||c.addEventListener("click",()=>{var h,m;(m=(h=this.root)==null?void 0:h.querySelector("[data-vision-assets-input]"))==null||m.click()}),(l=this.root.querySelector("[data-vision-assets-input]"))==null||l.addEventListener("change",h=>{this.handleAssetsUpload(h)}),(d=this.root.querySelector("[data-vision-upload-flat]"))==null||d.addEventListener("click",()=>{var h,m;(m=(h=this.root)==null?void 0:h.querySelector("[data-vision-flat-input]"))==null||m.click()}),(u=this.root.querySelector("[data-vision-flat-input]"))==null||u.addEventListener("change",h=>{this.handleFlatDesignUpload(h)}),(p=this.root.querySelector("[data-vision-analyze]"))==null||p.addEventListener("click",()=>{this.runAnalysis()}),(f=this.root.querySelector("[data-vision-generate-all]"))==null||f.addEventListener("click",()=>{this.generateAllMissing()}),(g=this.root.querySelector("[data-vision-apply-all]"))==null||g.addEventListener("click",()=>{this.applyAll()});let t=this.root.querySelector("[data-vision-mappings]");t==null||t.addEventListener("click",h=>{let m=h.target;if(!m)return;let b=m.closest("[data-mapping-item]"),v=b==null?void 0:b.dataset.mappingItem;v&&(m.closest("[data-mapping-apply-one]")&&this.applyOne(v),m.closest("[data-mapping-save-one]")&&this.saveAndApplyOne(v),m.closest("[data-mapping-edit-one]")&&this.openEditorForOne(v),m.closest("[data-mapping-generate-one]")&&this.generateOne(v),m.closest("[data-mapping-copy-raw]")&&this.copyRawAnalysis())}),t==null||t.addEventListener("change",h=>{let m=h.target;if(!m||!this.mappingResult)return;let b=m.closest("[data-mapping-item]"),v=b==null?void 0:b.dataset.mappingItem;if(!v)return;let y=this.mappingResult.mappings.find(x=>x.game_object===v);y&&(m.matches("[data-mapping-action]")&&(y.action=String(m.value||"KEEP"),y.status="Edited",this.renderMappings()),m.matches("[data-mapping-brand-asset]")&&(y.brand_asset=String(m.value||""),y.status="Edited",this.renderMappings()))}),t==null||t.addEventListener("input",h=>{let m=h.target;if(!m||!this.mappingResult||!m.matches("[data-mapping-prompt]"))return;let b=m.closest("[data-mapping-item]"),v=b==null?void 0:b.dataset.mappingItem;if(!v)return;let y=this.mappingResult.mappings.find(x=>x.game_object===v);y&&(y.generation_prompt=String(m.value||""),y.status="Edited")})}switchTab(t){var i,n;this.root&&(this.currentTab=t,this.root.querySelectorAll("[data-vision-tab]").forEach(r=>r.classList.remove("active")),this.root.querySelectorAll("[data-vision-content]").forEach(r=>r.classList.remove("active")),(i=this.root.querySelector(`[data-vision-tab="${t}"]`))==null||i.classList.add("active"),(n=this.root.querySelector(`[data-vision-content="${t}"]`))==null||n.classList.add("active"))}switchUploadMethod(t){var i;this.root&&(this.uploadMethod=t,this.root.querySelectorAll("[data-vision-upload-section]").forEach(n=>{n.classList.remove("active")}),(i=this.root.querySelector(`[data-vision-upload-section="${t}"]`))==null||i.classList.add("active"))}async handleZipUpload(t){var r;let n=(r=t.target.files)==null?void 0:r[0];if(n){this.zipFile=n,this.setStatus("zip",`Selected: ${n.name} (${(n.size/1024/1024).toFixed(2)} MB)`);try{await this.processZipFile(n)}catch(a){console.error("[BrandVision] ZIP processing failed:",a),this.setStatus("zip",`Error: ${a instanceof Error?a.message:"Unknown error"}`)}}}async processZipFile(t){var s,o;let i=await vh.default.loadAsync(t),n=[],r=[];i.forEach((c,l)=>{let d=c.toLowerCase();d.endsWith(".json")?n.push({name:c,content:null}):d.startsWith("assets/")&&d.endsWith(".png")&&r.push({name:c,file:l})});for(let c of n)try{let l=await((s=i.file(c.name))==null?void 0:s.async("text"));l&&(c.content=JSON.parse(l))}catch(l){console.warn(`Failed to parse ${c.name}:`,l)}let a=new Map;for(let c of r)try{let l=await c.file.async("uint8array"),d=new Blob([l],{type:"image/png"}),u=c.name.split("/").pop()||c.name;console.log(`Processing ${u}, uint8array length: ${l.length}, blob size: ${d.size}`);let p;try{p=await this.blobToDataUrl(d)}catch(m){console.warn(`FileReader failed for ${u}, using fallback:`,m),p=`data:image/png;base64,${btoa(String.fromCharCode.apply(null,Array.from(l)))}`}if(console.log(`Data URL length: ${p.length}, starts with: ${p.substring(0,50)}...`),!p.startsWith("data:image/png;base64,")){console.warn(`Invalid data URL format for ${u}:`,p.substring(0,100));continue}let f=this.inferAssetCategory(u.replace(".png",""));console.log(`Saving ${u} to category: ${f}`);let h=await(await fetch("/api/library/save",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({category:f,filename:u,data:p,overwrite:!0})})).json();if(console.log(`Save result for ${u}:`,h),h.success){console.log(`\u2705 Saved PNG to library: ${u} (${f}) at ${h.path}`);let m=new File([d],u,{type:"image/png"});a.set(u,m)}else console.warn(`\u274C Failed to save ${u}:`,h.error)}catch(l){console.warn(`Failed to extract ${c.name}:`,l)}this.uploadedJsons.clear(),n.forEach(({name:c,content:l})=>{l&&this.uploadedJsons.set(c,l)}),this.assetFiles=a;try{this.normalizedManifest=il(Array.from(this.uploadedJsons.values()),{defaultBrandName:"Imported Brand"});let c=[];for(let[d,u]of a){let p=await this.fileToDataUrl(u);c.push({id:d.replace(".png",""),filename:d,dataUrl:p,category:this.inferAssetCategory(d.replace(".png",""))})}this.normalizedManifest&&(this.normalizedManifest.assets=c);let l=c.length;this.setStatus("zip",`\u2705 Processed: ${n.length} JSONs, ${l} PNGs
681
681
  \u{1F3F7}\uFE0F Brand: ${((o=this.normalizedManifest)==null?void 0:o.brand_name)||"Imported Brand"}`),this.addAssetsToRegistry(c),this.refreshLibrary()}catch(c){console.error("[BrandVision] Failed to normalize ZIP manifest:",c),this.normalizedManifest=null,this.setStatus("zip","\u274C Failed to normalize manifest")}}async fileToDataUrl(t){return new Promise((i,n)=>{let r=new FileReader;r.onload=()=>i(r.result),r.onerror=n,r.readAsDataURL(t)})}async blobToDataUrl(t){return new Promise((i,n)=>{let r=new FileReader;r.onload=()=>{let a=r.result;console.log("FileReader result type:",typeof a,"length:",a.length),console.log("Data URL prefix:",a.substring(0,30)),i(a)},r.onerror=a=>{console.error("FileReader error:",a),n(a)},r.readAsDataURL(t)})}inferAssetCategory(t){let i=t.toLowerCase();return i.includes("background")||i.includes("bg")?"backgrounds":i.includes("ui")||i.includes("button")||i.includes("cta")||i.includes("logo")||i.includes("text")?"ui":i.includes("sparkle")||i.includes("effect")||i.includes("particle")?"effects":i.includes("bottle")||i.includes("product")||i.includes("item")?"products":"misc"}addAssetsToRegistry(t){let i=window.getEditableAssets;if(typeof i!="function")return;let n=i();if(!(n!=null&&n.libraryAssets))return;let r={};for(let a of t){let s=a.category||"misc";r[s]||(r[s]=[]),n.libraryAssets[s]||(n.libraryAssets[s]=[]),n.libraryAssets[s].some(c=>c.filename===a.filename)||(n.libraryAssets[s].unshift({filename:a.filename,displayName:a.id.replace(/_/g," ").replace(/\b\w/g,c=>c.toUpperCase())}),console.log(`[BrandVision] Added ${a.filename} to registry category ${s}`))}}refreshLibrary(){let t=window.refreshAssetLibrary;typeof t=="function"&&t();let i=window.reRenderAssetLibrary;typeof i=="function"&&i()}async handleManifestUpload(t){var a;let i=t.target,n=i.files;if(!n||n.length===0)return;this.uploadedJsons.clear(),this.normalizedManifest=null,this.mappingResult=null;let r="";for(let s of Array.from(n))try{let o=await s.text(),c=JSON.parse(o);this.uploadedJsons.set(s.name,c),c.layers?r+=`\u2705 Layers: ${s.name}
682
682
  `:c.brand_dna||c.colors?r+=`\u2705 Brand: ${s.name}
683
683
  `:r+=`\u2705 Loaded: ${s.name}
684
684
  `}catch{r+=`\u274C Error in ${s.name}
685
- `}try{this.normalizedManifest=el(Array.from(this.uploadedJsons.values()),{defaultBrandName:"Imported Brand"});let s=Array.isArray((a=this.normalizedManifest)==null?void 0:a.assets)?this.normalizedManifest.assets.length:0;r+=`
685
+ `}try{this.normalizedManifest=il(Array.from(this.uploadedJsons.values()),{defaultBrandName:"Imported Brand"});let s=Array.isArray((a=this.normalizedManifest)==null?void 0:a.assets)?this.normalizedManifest.assets.length:0;r+=`
686
686
  \u{1F4E6} Normalized manifest: ${s} assets`,r+=`
687
687
  \u{1F3F7}\uFE0F Brand: ${this.normalizedManifest.brand_name||"Imported Brand"}`,console.info("[BrandVision] Normalized manifest",{jsonFiles:Array.from(this.uploadedJsons.keys()),assetsType:typeof this.normalizedManifest.assets,assetsCount:s,brandName:this.normalizedManifest.brand_name})}catch(s){console.error("[BrandVision] Failed to normalize manifest:",s),this.normalizedManifest=null,r+=`
688
- \u274C Failed to normalize manifest`}i.value="",this.setStatus("manifest",r.trim())}async handleAssetsUpload(t){let n=t.target.files;if(!(!n||n.length===0)){for(let r of Array.from(n))this.assetFiles.set(r.name,r);this.setStatus("assets",`${this.assetFiles.size} files loaded`)}}async handleFlatDesignUpload(t){var a,s;let n=(a=t.target.files)==null?void 0:a[0];if(!n)return;let r=await Pt(n);if(r){this.flatDesignDataUrl=r.dataUrl,this.setStatus("flat",n.name);let o=(s=this.root)==null?void 0:s.querySelector("[data-vision-flat-preview]");o&&(o.innerHTML=`<img src="${r.dataUrl}" style="max-width:100%;max-height:100px;border-radius:4px;">`)}}async runAnalysis(){var n,r,a,s,o,c,l;if(this.isAnalyzing)return;let t=(a=(r=(n=this.root)==null?void 0:n.querySelector("[data-vision-api-key]"))==null?void 0:r.value)==null?void 0:a.trim();if(!t){this.setStatus("upload","Missing API key");return}let i=this.manifest;if(!i){this.setStatus("upload","Upload manifest first");return}Array.isArray(i.assets)||console.warn("[BrandVision] Manifest assets not array at analysis time; continuing with normalization fallback.",{assets:i.assets}),this.isAnalyzing=!0,this.setStatus("upload","Analyzing...");try{await gh(i,this.assetFiles);let d={apiKey:t,manifest:i,flatDesignDataUrl:this.flatDesignDataUrl,assetFiles:this.assetFiles,gameObjects:this.getGameObjects(),gamePrompt:await this.getGamePrompt()},u=await fh(d);this.mappingResult=u.mappingResult,this.analysisRawResponse=u.rawResponse,this.analysisParsedOk=u.parsed,this.analysisParseError=(s=u.parseError)!=null?s:null,this.renderMappings(),u.parsed?(this.setStatus("upload","Analysis complete"),this.setStatus("mapping",`${(l=(c=(o=this.mappingResult)==null?void 0:o.mappings)==null?void 0:c.length)!=null?l:0} objects mapped`)):(this.setStatus("upload","Analysis response was not JSON"),this.setStatus("mapping",`Parse failed: ${u.parseError||"Unknown error"}`)),this.switchTab("mapping")}catch(d){console.error("[BrandVision] Analysis failed:",d),this.setStatus("upload","Analysis failed")}finally{this.isAnalyzing=!1}}async generateAllMissing(){var i,n,r;if(this.isGenerating||!this.mappingResult||!this.manifest)return;let t=(r=(n=(i=this.root)==null?void 0:i.querySelector("[data-vision-api-key]"))==null?void 0:n.value)==null?void 0:r.trim();if(!t){this.setStatus("apply","Missing API key");return}this.isGenerating=!0;try{let a={apiKey:t,manifest:this.manifest,flatDesignDataUrl:this.flatDesignDataUrl,assetFiles:this.assetFiles,gameObjects:this.getGameObjects(),gamePrompt:await this.getGamePrompt()};await tl(a,this.mappingResult,{onProgress:(s,o,c)=>{this.setStatus("apply",`Generating ${s}/${o}: ${c}`),this.renderMappings()}}),this.setStatus("apply","Generation complete"),this.renderMappings()}catch(a){console.error("[BrandVision] Generation failed:",a),this.setStatus("apply","Generation failed")}finally{this.isGenerating=!1}}renderMappings(){var o;let t=(o=this.root)==null?void 0:o.querySelector("[data-vision-mappings]");if(!t||!this.mappingResult)return;let i=this.manifest,n=this.getEngineAssets(),r=!!this.analysisRawResponse&&this.analysisParsedOk===!1,a=((i==null?void 0:i.assets)||[]).map(c=>`<option value="${c.id}">${c.id}</option>`).join(""),s=r?`
688
+ \u274C Failed to normalize manifest`}i.value="",this.setStatus("manifest",r.trim())}async handleAssetsUpload(t){let n=t.target.files;if(!(!n||n.length===0)){for(let r of Array.from(n))this.assetFiles.set(r.name,r);this.setStatus("assets",`${this.assetFiles.size} files loaded`)}}async handleFlatDesignUpload(t){var a,s;let n=(a=t.target.files)==null?void 0:a[0];if(!n)return;let r=await Pt(n);if(r){this.flatDesignDataUrl=r.dataUrl,this.setStatus("flat",n.name);let o=(s=this.root)==null?void 0:s.querySelector("[data-vision-flat-preview]");o&&(o.innerHTML=`<img src="${r.dataUrl}" style="max-width:100%;max-height:100px;border-radius:4px;">`)}}async runAnalysis(){var n,r,a,s,o,c,l;if(this.isAnalyzing)return;let t=(a=(r=(n=this.root)==null?void 0:n.querySelector("[data-vision-api-key]"))==null?void 0:r.value)==null?void 0:a.trim();if(!t){this.setStatus("upload","Missing API key");return}let i=this.manifest;if(!i){this.setStatus("upload","Upload manifest first");return}Array.isArray(i.assets)||console.warn("[BrandVision] Manifest assets not array at analysis time; continuing with normalization fallback.",{assets:i.assets}),this.isAnalyzing=!0,this.setStatus("upload","Analyzing...");try{await bh(i,this.assetFiles);let d={apiKey:t,manifest:i,flatDesignDataUrl:this.flatDesignDataUrl,assetFiles:this.assetFiles,gameObjects:this.getGameObjects(),gamePrompt:await this.getGamePrompt()},u=await gh(d);this.mappingResult=u.mappingResult,this.analysisRawResponse=u.rawResponse,this.analysisParsedOk=u.parsed,this.analysisParseError=(s=u.parseError)!=null?s:null,this.renderMappings(),u.parsed?(this.setStatus("upload","Analysis complete"),this.setStatus("mapping",`${(l=(c=(o=this.mappingResult)==null?void 0:o.mappings)==null?void 0:c.length)!=null?l:0} objects mapped`)):(this.setStatus("upload","Analysis response was not JSON"),this.setStatus("mapping",`Parse failed: ${u.parseError||"Unknown error"}`)),this.switchTab("mapping")}catch(d){console.error("[BrandVision] Analysis failed:",d),this.setStatus("upload","Analysis failed")}finally{this.isAnalyzing=!1}}async generateAllMissing(){var i,n,r;if(this.isGenerating||!this.mappingResult||!this.manifest)return;let t=(r=(n=(i=this.root)==null?void 0:i.querySelector("[data-vision-api-key]"))==null?void 0:n.value)==null?void 0:r.trim();if(!t){this.setStatus("apply","Missing API key");return}this.isGenerating=!0;try{let a={apiKey:t,manifest:this.manifest,flatDesignDataUrl:this.flatDesignDataUrl,assetFiles:this.assetFiles,gameObjects:this.getGameObjects(),gamePrompt:await this.getGamePrompt()};await nl(a,this.mappingResult,{onProgress:(s,o,c)=>{this.setStatus("apply",`Generating ${s}/${o}: ${c}`),this.renderMappings()}}),this.setStatus("apply","Generation complete"),this.renderMappings()}catch(a){console.error("[BrandVision] Generation failed:",a),this.setStatus("apply","Generation failed")}finally{this.isGenerating=!1}}renderMappings(){var o;let t=(o=this.root)==null?void 0:o.querySelector("[data-vision-mappings]");if(!t||!this.mappingResult)return;let i=this.manifest,n=this.getEngineAssets(),r=!!this.analysisRawResponse&&this.analysisParsedOk===!1,a=((i==null?void 0:i.assets)||[]).map(c=>`<option value="${c.id}">${c.id}</option>`).join(""),s=r?`
689
689
  <div class="vision-raw-block">
690
690
  <div class="inspector-text-sm" style="white-space: pre-wrap;">
691
691
  \u26A0\uFE0F AI response was not valid JSON (${this.analysisParseError||"unknown error"}).
@@ -747,8 +747,8 @@ Generate the requested asset matching the brand style.${e.needsTransparency?" Ba
747
747
  </div>
748
748
  </div>
749
749
  `}).join("")}
750
- `}async applyAll(){let t=await this.stageOverridesFromMappings({saveToLibrary:!1});this.setStatus("apply",t>0?`Staged ${t} asset overrides`:"No assets to stage")}getEngineAssets(){let t=window.getEditableEngineConfig;if(typeof t!="function")return{};let i=t();return i!=null&&i.assets&&typeof i.assets=="object"?i.assets:{}}getPreviewValueForMapping(t){if(!this.mappingResult||!this.manifest)return{value:null,source:"none"};let i=this.mappingResult.mappings.find(n=>n.game_object===t);if(!i)return{value:null,source:"none"};if(i.action==="GENERATE"&&i.output_dataUrl)return{value:i.output_dataUrl,source:"generated"};if(i.action==="APPLY"&&i.brand_asset){let n=this.manifest.assets.find(r=>r.id===i.brand_asset);if(n!=null&&n.dataUrl)return{value:n.dataUrl,source:"brand"}}return{value:null,source:"none"}}async stageOverridesFromMappings(t){if(!this.mappingResult)return 0;let i=0;for(let n of this.mappingResult.mappings){if(n.action==="KEEP"||n.action==="APPLY"&&!n.brand_asset||n.action==="GENERATE"&&!n.output_dataUrl)continue;let r=n.game_object,a=this.getPreviewValueForMapping(r);if(!a.value)continue;let s=t.saveToLibrary?await this.saveToLibraryAndReturnPath(r,a.value):a.value;s&&(await this.stageEngineAssetOverride(r,s),n.status=t.saveToLibrary?"Saved + staged \u2713":"Staged \u2713",i++)}return this.renderMappings(),i}async applyOne(t){var r;let i=this.getPreviewValueForMapping(t);if(!i.value){this.setStatus("apply",`No output to apply for ${t}`);return}await this.stageEngineAssetOverride(t,i.value);let n=(r=this.mappingResult)==null?void 0:r.mappings.find(a=>a.game_object===t);n&&(n.status="Staged \u2713"),this.renderMappings(),this.setStatus("apply",`Staged override for ${t}`)}async saveAndApplyOne(t){var a;let i=this.getPreviewValueForMapping(t);if(!i.value){this.setStatus("apply",`No output to save for ${t}`);return}let n=await this.saveToLibraryAndReturnPath(t,i.value);if(!n){this.setStatus("apply",`Save failed for ${t}`);return}await this.stageEngineAssetOverride(t,n);let r=(a=this.mappingResult)==null?void 0:a.mappings.find(s=>s.game_object===t);r&&(r.status="Saved + staged \u2713"),this.renderMappings(),this.setStatus("apply",`Saved + staged ${t}`)}openEditorForOne(t){if(!this.mappingResult)return;let i=this.mappingResult.mappings.find(s=>s.game_object===t);if(!i)return;let n=this.getPreviewValueForMapping(t),r=window.__openAiEditor;if(typeof r!="function"){this.setStatus("apply","AI editor not available");return}let a=i.action==="GENERATE"?i.generation_prompt:void 0;r(t,a,n.value||void 0,{path:`assets.${t}`})}async generateOne(t){var r,a,s;if(!this.mappingResult||this.isGenerating)return;let i=this.mappingResult.mappings.find(o=>o.game_object===t);if(!i)return;if(i.action="GENERATE",!i.generation_prompt){i.status="Missing prompt",this.renderMappings();return}let n=(s=(a=(r=this.root)==null?void 0:r.querySelector("[data-vision-api-key]"))==null?void 0:a.value)==null?void 0:s.trim();if(!n||!this.manifest){this.setStatus("apply","Missing API key or manifest");return}this.isGenerating=!0,i.status="Generating\u2026",this.renderMappings();try{let o={apiKey:n,manifest:this.manifest,flatDesignDataUrl:this.flatDesignDataUrl,assetFiles:this.assetFiles,gameObjects:this.getGameObjects(),gamePrompt:await this.getGamePrompt()};await tl(o,{mappings:[i]}),i.status=i.output_dataUrl?"Generated \u2713":i.status||"Done"}catch(o){console.error("[BrandVision] generateOne failed:",o),i.status="Failed \u2717"}finally{this.isGenerating=!1,this.renderMappings()}}async stageEngineAssetOverride(t,i){let{applyConfigOverride:n}=await import("./ConfigOverride-C26KK6X2.js");n({path:`assets.${t}`,value:i},{silent:!0});let r=window.applyEditableEngineConfig;typeof r=="function"&&r({assets:{[t]:i}})}async saveToLibraryAndReturnPath(t,i){if(!/^(data:|blob:)/.test(i))return i;let n=this.inferCategoryFromAssetKey(t),r=`${t.replace(/[^a-zA-Z0-9_-]/g,"_")}_vision_${Date.now()}.png`;try{let s=await(await fetch("/api/library/save",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({category:n,filename:r,data:i,overwrite:!0})})).json();if(!(s!=null&&s.success)||!(s!=null&&s.path))return console.error("[BrandVision] Save to library failed:",(s==null?void 0:s.error)||s),null;let o=window.addAssetToRegistry;typeof o=="function"&&o(n,r);let c=window.refreshAssetLibrary;return typeof c=="function"&&c(),String(s.path)}catch(a){return console.error("[BrandVision] Save to library error:",a),null}}inferCategoryFromAssetKey(t){let i=window.getEditableAssets;if(typeof i=="function"){let r=i();if(r!=null&&r.slots&&Array.isArray(r.slots)){let s=r.slots.find(o=>o.slotId===t||o.currentAsset===t);if(s!=null&&s.category)return String(s.category)}let a=r==null?void 0:r.categories;if(Array.isArray(a)&&a.length>0){let s=t.toLowerCase(),o=c=>a.find(l=>l.toLowerCase().includes(c));return s.includes("bg")||s.includes("background")?o("background")||a[0]:(s.includes("cta")||s.includes("button")||s.includes("ui")||s.includes("logo"))&&o("ui")||a[0]}}let n=t.toLowerCase();return n.includes("bg")||n.includes("background")?"backgrounds":n.includes("cta")||n.includes("button")||n.includes("ui")||n.includes("logo")?"ui":"misc"}async copyRawAnalysis(){if(this.analysisRawResponse)try{await navigator.clipboard.writeText(this.analysisRawResponse),this.setStatus("mapping","Copied raw analysis to clipboard")}catch{this.setStatus("mapping","Clipboard not available")}}setStatus(t,i){var a;let n={manifest:"[data-vision-manifest-status]",assets:"[data-vision-assets-status]",flat:"[data-vision-flat-status]",zip:"[data-vision-zip-status]",upload:"[data-vision-upload-status]",mapping:"[data-vision-mapping-status]",apply:"[data-vision-apply-status]"},r=(a=this.root)==null?void 0:a.querySelector(n[t]);r&&(r.textContent=i)}getGameObjects(){let t=window.getEditableObjectList;return typeof t=="function"?t():[]}async getGamePrompt(){try{let t=await fetch("./configs/engine/game.prompt.json");if(t.ok)return(await t.json()).game_prompt||""}catch{}return""}setupResizeHandle(){if(!this.root)return;let t=this.root.querySelector("[data-panel-resize]");t&&t.addEventListener("pointerdown",i=>{let n=i.clientX,r=this.root.getBoundingClientRect().width,a=o=>{let c=Math.max(300,r+(o.clientX-n));this.root.style.width=`${c}px`},s=()=>{window.removeEventListener("pointermove",a),window.removeEventListener("pointerup",s)};window.addEventListener("pointermove",a),window.addEventListener("pointerup",s)})}refresh(){}};function bh(e,t={}){let{includeReference:i=!1,includeMagenta:n=!0,changeLevel:r=5}=t;return[`TASK: ${e}`,`CHANGE_STRENGTH: ${r}/10`,i?"REFERENCE: provided":"REFERENCE: none",n?"BACKGROUND: solid magenta #FF00FF (if possible)":""].filter(Boolean).join(`
751
- `)}var dx=["background_color","text_color","cta_background","cta_text","warning_text_color","endgame_title_color","endgame_subtitle_color","endgame_cta_text_color","endgame_cta_hint_color","endgame_footer_color"],ux=["cta_hint","cta_label_end"],vh=[{key:"warning_text",objectId:"label.warning",property:"ui.text"},{key:"endgame_title",objectId:"ui.endgame.title",property:"ui.text"},{key:"endgame_subtitle",objectId:"ui.endgame.subtitle",property:"ui.text"},{key:"endgame_cta_text",objectId:"ui.endgame.cta",property:"ui.text"},{key:"endgame_cta_hint_text",objectId:"ui.endgame.cta.hint",property:"ui.text"},{key:"endgame_footer_text",objectId:"ui.endgame.footer",property:"ui.text"}],px=["brand.primary","brand.heading","brand.body","brand.warning"],xa=class{constructor(){this.root=null;this.assetsContainer=null;this.colorsContainer=null;this.fontsContainer=null;this.textsContainer=null;this.audioContainer=null;this.options=null;this.previewModal=null;this.autoApplyTimer=null;this.activePreviewKey=null;this.activePreviewValue=null;this.activePreviewFileInput=null;this.retryTimer=null;this.aiModal=null;this.aiTargetKey=null;this.aiKeyInput=null;this.aiPromptInput=null;this.aiStrengthInput=null;this.aiStrengthValue=null;this.aiModelSelect=null;this.aiModalSubtitle=null;this.aiGalleryToggle=null;this.aiGalleryEl=null;this.aiGalleryGrid=null;this.aiReferenceInput=null;this.aiReferenceName=null;this.aiReferenceFile=null;this.aiRemoveBgToggle=null;this.aiUseOutputToggle=null;this.aiGenerateBtn=null;this.aiApplyBtn=null;this.aiSaveLibraryBtn=null;this.aiCropBtn=null;this.aiDownloadBtn=null;this.aiPreviewImg=null;this.aiStatusEl=null;this.aiOutputDataUrl=null;this.aiBaseDataUrl=null;this.aiBaseValue=null;this.aiOutputKey=null;this.aiContext=null;this.aiBgToleranceInput=null;this.aiBgToleranceValue=null;this.aiRawOutputDataUrl=null;this.aiLoadingEl=null}render(){return`
750
+ `}async applyAll(){let t=await this.stageOverridesFromMappings({saveToLibrary:!1});this.setStatus("apply",t>0?`Staged ${t} asset overrides`:"No assets to stage")}getEngineAssets(){let t=window.getEditableEngineConfig;if(typeof t!="function")return{};let i=t();return i!=null&&i.assets&&typeof i.assets=="object"?i.assets:{}}getPreviewValueForMapping(t){if(!this.mappingResult||!this.manifest)return{value:null,source:"none"};let i=this.mappingResult.mappings.find(n=>n.game_object===t);if(!i)return{value:null,source:"none"};if(i.action==="GENERATE"&&i.output_dataUrl)return{value:i.output_dataUrl,source:"generated"};if(i.action==="APPLY"&&i.brand_asset){let n=this.manifest.assets.find(r=>r.id===i.brand_asset);if(n!=null&&n.dataUrl)return{value:n.dataUrl,source:"brand"}}return{value:null,source:"none"}}async stageOverridesFromMappings(t){if(!this.mappingResult)return 0;let i=0;for(let n of this.mappingResult.mappings){if(n.action==="KEEP"||n.action==="APPLY"&&!n.brand_asset||n.action==="GENERATE"&&!n.output_dataUrl)continue;let r=n.game_object,a=this.getPreviewValueForMapping(r);if(!a.value)continue;let s=t.saveToLibrary?await this.saveToLibraryAndReturnPath(r,a.value):a.value;s&&(await this.stageEngineAssetOverride(r,s),n.status=t.saveToLibrary?"Saved + staged \u2713":"Staged \u2713",i++)}return this.renderMappings(),i}async applyOne(t){var r;let i=this.getPreviewValueForMapping(t);if(!i.value){this.setStatus("apply",`No output to apply for ${t}`);return}await this.stageEngineAssetOverride(t,i.value);let n=(r=this.mappingResult)==null?void 0:r.mappings.find(a=>a.game_object===t);n&&(n.status="Staged \u2713"),this.renderMappings(),this.setStatus("apply",`Staged override for ${t}`)}async saveAndApplyOne(t){var a;let i=this.getPreviewValueForMapping(t);if(!i.value){this.setStatus("apply",`No output to save for ${t}`);return}let n=await this.saveToLibraryAndReturnPath(t,i.value);if(!n){this.setStatus("apply",`Save failed for ${t}`);return}await this.stageEngineAssetOverride(t,n);let r=(a=this.mappingResult)==null?void 0:a.mappings.find(s=>s.game_object===t);r&&(r.status="Saved + staged \u2713"),this.renderMappings(),this.setStatus("apply",`Saved + staged ${t}`)}openEditorForOne(t){if(!this.mappingResult)return;let i=this.mappingResult.mappings.find(s=>s.game_object===t);if(!i)return;let n=this.getPreviewValueForMapping(t),r=window.__openAiEditor;if(typeof r!="function"){this.setStatus("apply","AI editor not available");return}let a=i.action==="GENERATE"?i.generation_prompt:void 0;r(t,a,n.value||void 0,{path:`assets.${t}`})}async generateOne(t){var r,a,s;if(!this.mappingResult||this.isGenerating)return;let i=this.mappingResult.mappings.find(o=>o.game_object===t);if(!i)return;if(i.action="GENERATE",!i.generation_prompt){i.status="Missing prompt",this.renderMappings();return}let n=(s=(a=(r=this.root)==null?void 0:r.querySelector("[data-vision-api-key]"))==null?void 0:a.value)==null?void 0:s.trim();if(!n||!this.manifest){this.setStatus("apply","Missing API key or manifest");return}this.isGenerating=!0,i.status="Generating\u2026",this.renderMappings();try{let o={apiKey:n,manifest:this.manifest,flatDesignDataUrl:this.flatDesignDataUrl,assetFiles:this.assetFiles,gameObjects:this.getGameObjects(),gamePrompt:await this.getGamePrompt()};await nl(o,{mappings:[i]}),i.status=i.output_dataUrl?"Generated \u2713":i.status||"Done"}catch(o){console.error("[BrandVision] generateOne failed:",o),i.status="Failed \u2717"}finally{this.isGenerating=!1,this.renderMappings()}}async stageEngineAssetOverride(t,i){let{applyConfigOverride:n}=await import("./ConfigOverride-C26KK6X2.js");n({path:`assets.${t}`,value:i},{silent:!0});let r=window.applyEditableEngineConfig;typeof r=="function"&&r({assets:{[t]:i}})}async saveToLibraryAndReturnPath(t,i){if(!/^(data:|blob:)/.test(i))return i;let n=this.inferCategoryFromAssetKey(t),r=`${t.replace(/[^a-zA-Z0-9_-]/g,"_")}_vision_${Date.now()}.png`;try{let s=await(await fetch("/api/library/save",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({category:n,filename:r,data:i,overwrite:!0})})).json();if(!(s!=null&&s.success)||!(s!=null&&s.path))return console.error("[BrandVision] Save to library failed:",(s==null?void 0:s.error)||s),null;let o=window.addAssetToRegistry;typeof o=="function"&&o(n,r);let c=window.refreshAssetLibrary;return typeof c=="function"&&c(),String(s.path)}catch(a){return console.error("[BrandVision] Save to library error:",a),null}}inferCategoryFromAssetKey(t){let i=window.getEditableAssets;if(typeof i=="function"){let r=i();if(r!=null&&r.slots&&Array.isArray(r.slots)){let s=r.slots.find(o=>o.slotId===t||o.currentAsset===t);if(s!=null&&s.category)return String(s.category)}let a=r==null?void 0:r.categories;if(Array.isArray(a)&&a.length>0){let s=t.toLowerCase(),o=c=>a.find(l=>l.toLowerCase().includes(c));return s.includes("bg")||s.includes("background")?o("background")||a[0]:(s.includes("cta")||s.includes("button")||s.includes("ui")||s.includes("logo"))&&o("ui")||a[0]}}let n=t.toLowerCase();return n.includes("bg")||n.includes("background")?"backgrounds":n.includes("cta")||n.includes("button")||n.includes("ui")||n.includes("logo")?"ui":"misc"}async copyRawAnalysis(){if(this.analysisRawResponse)try{await navigator.clipboard.writeText(this.analysisRawResponse),this.setStatus("mapping","Copied raw analysis to clipboard")}catch{this.setStatus("mapping","Clipboard not available")}}setStatus(t,i){var a;let n={manifest:"[data-vision-manifest-status]",assets:"[data-vision-assets-status]",flat:"[data-vision-flat-status]",zip:"[data-vision-zip-status]",upload:"[data-vision-upload-status]",mapping:"[data-vision-mapping-status]",apply:"[data-vision-apply-status]"},r=(a=this.root)==null?void 0:a.querySelector(n[t]);r&&(r.textContent=i)}getGameObjects(){let t=window.getEditableObjectList;return typeof t=="function"?t():[]}async getGamePrompt(){try{let t=await fetch("./configs/engine/game.prompt.json");if(t.ok)return(await t.json()).game_prompt||""}catch{}return""}setupResizeHandle(){if(!this.root)return;let t=this.root.querySelector("[data-panel-resize]");t&&t.addEventListener("pointerdown",i=>{let n=i.clientX,r=this.root.getBoundingClientRect().width,a=o=>{let c=Math.max(300,r+(o.clientX-n));this.root.style.width=`${c}px`},s=()=>{window.removeEventListener("pointermove",a),window.removeEventListener("pointerup",s)};window.addEventListener("pointermove",a),window.addEventListener("pointerup",s)})}refresh(){}};function yh(e,t={}){let{includeReference:i=!1,includeMagenta:n=!0,changeLevel:r=5}=t;return[`TASK: ${e}`,`CHANGE_STRENGTH: ${r}/10`,i?"REFERENCE: provided":"REFERENCE: none",n?"BACKGROUND: solid magenta #FF00FF (if possible)":""].filter(Boolean).join(`
751
+ `)}var px=["background_color","text_color","cta_background","cta_text","warning_text_color","endgame_title_color","endgame_subtitle_color","endgame_cta_text_color","endgame_cta_hint_color","endgame_footer_color"],fx=["cta_hint","cta_label_end"],xh=[{key:"warning_text",objectId:"label.warning",property:"ui.text"},{key:"endgame_title",objectId:"ui.endgame.title",property:"ui.text"},{key:"endgame_subtitle",objectId:"ui.endgame.subtitle",property:"ui.text"},{key:"endgame_cta_text",objectId:"ui.endgame.cta",property:"ui.text"},{key:"endgame_cta_hint_text",objectId:"ui.endgame.cta.hint",property:"ui.text"},{key:"endgame_footer_text",objectId:"ui.endgame.footer",property:"ui.text"}],hx=["brand.primary","brand.heading","brand.body","brand.warning"],xa=class{constructor(){this.root=null;this.assetsContainer=null;this.colorsContainer=null;this.fontsContainer=null;this.textsContainer=null;this.audioContainer=null;this.options=null;this.previewModal=null;this.autoApplyTimer=null;this.activePreviewKey=null;this.activePreviewValue=null;this.activePreviewFileInput=null;this.retryTimer=null;this.aiModal=null;this.aiTargetKey=null;this.aiKeyInput=null;this.aiPromptInput=null;this.aiStrengthInput=null;this.aiStrengthValue=null;this.aiModelSelect=null;this.aiModalSubtitle=null;this.aiGalleryToggle=null;this.aiGalleryEl=null;this.aiGalleryGrid=null;this.aiReferenceInput=null;this.aiReferenceName=null;this.aiReferenceFile=null;this.aiRemoveBgToggle=null;this.aiUseOutputToggle=null;this.aiGenerateBtn=null;this.aiApplyBtn=null;this.aiSaveLibraryBtn=null;this.aiCropBtn=null;this.aiDownloadBtn=null;this.aiPreviewImg=null;this.aiStatusEl=null;this.aiOutputDataUrl=null;this.aiBaseDataUrl=null;this.aiBaseValue=null;this.aiOutputKey=null;this.aiContext=null;this.aiBgToleranceInput=null;this.aiBgToleranceValue=null;this.aiRawOutputDataUrl=null;this.aiLoadingEl=null}render(){return`
752
752
  <div class="scene-panel customize-panel panel-accent-blue" data-panel="customize-settings">
753
753
  <div class="scene-panel-header" data-panel-handle>
754
754
  <div class="panel-title">
@@ -816,7 +816,7 @@ Generate the requested asset matching the brand style.${e.needsTransparency?" Ba
816
816
  <path d="M12 3l4 4h-3v6h-2V7H8l4-4z" />
817
817
  <path d="M5 14v4h14v-4h2v6H3v-6h2z" />
818
818
  </svg>
819
- `;let u=document.createElement("input");u.type="file",u.accept="image/*,audio/*,application/json",u.className="customize-file",u.addEventListener("change",()=>{var g;let f=(g=u.files)==null?void 0:g[0];f&&this.handleAssetUpload(f,o,n)}),d.addEventListener("click",()=>u.click()),c.appendChild(l),c.appendChild(d),c.appendChild(u),a.appendChild(s),a.appendChild(o),a.appendChild(c),(p=this.assetsContainer)==null||p.appendChild(a)})}renderColors(t){this.colorsContainer&&(this.colorsContainer.innerHTML="",dx.forEach(i=>{var c,l,d;let n=(c=t==null?void 0:t[i])!=null?c:"#ffffff";if(i.includes("_text_color")||i.includes("_color")){let p={warning_text_color:{objectId:"label.warning",property:"render.tint"},endgame_title_color:{objectId:"ui.endgame.title",property:"render.tint"},endgame_subtitle_color:{objectId:"ui.endgame.subtitle",property:"render.tint"},endgame_cta_text_color:{objectId:"ui.endgame.cta",property:"render.tint"},endgame_cta_hint_color:{objectId:"ui.endgame.cta.hint",property:"render.tint"},endgame_footer_color:{objectId:"ui.endgame.footer",property:"render.tint"}}[i];p&&(n=(l=this.getObjectPropertyValue(p.objectId,p.property))!=null?l:"#ffffff")}let r=document.createElement("label");r.className="customize-color-field";let a=document.createElement("span");a.textContent=i.replace(/_/g," ");let s=document.createElement("input");s.type="color",s.value=n,s.dataset.colorKey=i;let o=document.createElement("input");o.type="text",o.value=n,o.className="customize-color-text",o.dataset.colorTextKey=i,s.addEventListener("input",()=>{o.value=s.value}),o.addEventListener("input",()=>{/^#([0-9a-fA-F]{6})$/.test(o.value)&&(s.value=o.value)}),r.appendChild(a),r.appendChild(s),r.appendChild(o),(d=this.colorsContainer)==null||d.appendChild(r)}))}renderFonts(t){this.fontsContainer&&(this.fontsContainer.innerHTML="",px.forEach(i=>{var s,o;let n=document.createElement("div");n.className="customize-row";let r=document.createElement("span");r.className="customize-key",r.textContent=i;let a=document.createElement("input");a.type="text",a.value=(s=t==null?void 0:t[i])!=null?s:i,a.className="customize-input",a.dataset.fontKey=i,n.appendChild(r),n.appendChild(a),(o=this.fontsContainer)==null||o.appendChild(n)}))}renderTexts(t){this.textsContainer&&(this.textsContainer.innerHTML="",ux.forEach(i=>{var s,o;let n=document.createElement("div");n.className="customize-row";let r=document.createElement("span");r.className="customize-key",r.textContent=i;let a=document.createElement("input");a.type="text",a.value=(s=this.readUiValue(t,i))!=null?s:"",a.className="customize-input",a.dataset.textKey=i,n.appendChild(r),n.appendChild(a),(o=this.textsContainer)==null||o.appendChild(n)}),vh.forEach(({key:i,objectId:n})=>{var o,c;let r=document.createElement("div");r.className="customize-row";let a=document.createElement("span");a.className="customize-key",a.textContent=i;let s=document.createElement("input");s.type="text",s.value=(o=this.getObjectTextValue(n))!=null?o:"",s.className="customize-input",s.dataset.objectTextKey=i,r.appendChild(a),r.appendChild(s),(c=this.textsContainer)==null||c.appendChild(r)}))}renderAudio(t){if(!this.audioContainer)return;this.audioContainer.innerHTML="",["background_file","background_volume","click_file","click_volume","success_file","success_volume","complete_file","complete_volume"].forEach(n=>{var o,c;let r=document.createElement("div");r.className="customize-row";let a=document.createElement("span");a.className="customize-key",a.textContent=n.replace("_"," ");let s=document.createElement("input");s.type=n.includes("volume")?"number":"text",s.min="0",s.max="1",s.step="0.1",s.value=String((o=t==null?void 0:t[n])!=null?o:""),s.className="customize-input",s.dataset.audioKey=n,n.includes("file")&&(s.placeholder="audio file path"),r.appendChild(a),r.appendChild(s),(c=this.audioContainer)==null||c.appendChild(r)})}readUiValue(t,i){if(i.includes(".")){let r=i.split("."),a=t;for(let s of r){if(a==null)return null;a=a[s]}return typeof a=="string"?a:null}let n=t==null?void 0:t[i];return typeof n=="string"?n:null}getObjectTextValue(t){var r,a;let i=window.getEditableObjectConfig;if(typeof i!="function")return null;let n=i(t);return(a=(r=n==null?void 0:n.ui)==null?void 0:r.text)!=null?a:null}getObjectPropertyValue(t,i){let n=window.getEditableObjectConfig;if(typeof n!="function")return null;let r=n(t);if(!r)return null;let a=i.split("."),s=r;for(let o of a){if(s==null)return null;s=s[o]}return typeof s=="string"?s:null}handleApply(){this.handleApplyWithSource("manual")}handleApplyWithSource(t){if(console.log(`[CustomizePanel] handleApplyWithSource called with source: ${t}`),!this.root||!this.options)return;let i={};this.root.querySelectorAll("[data-asset-key]").forEach(o=>{let c=o;c.dataset.assetKey&&(i[c.dataset.assetKey]=c.value)}),console.log("[CustomizePanel] Assets being applied:",Object.keys(i).length,"total"),console.log("[CustomizePanel] Asset values:",i);let n={};this.root.querySelectorAll("[data-color-text-key]").forEach(o=>{let c=o,l=c.dataset.colorTextKey;l&&(l.includes("_text_color")||l.includes("_color")?this.applyTextColorToObject(l,c.value):n[l]=c.value)});let r={};this.root.querySelectorAll("[data-font-key]").forEach(o=>{let c=o,l=c.dataset.fontKey;l&&(r[l]=c.value)});let a={};this.root.querySelectorAll("[data-text-key]").forEach(o=>{let c=o,l=c.dataset.textKey;l&&(a[l]=c.value)});let s={};this.root.querySelectorAll("[data-audio-key]").forEach(o=>{let c=o,l=c.dataset.audioKey;if(l)if(l.includes("volume")){let d=parseFloat(c.value);s[l]=isNaN(d)?0:d}else s[l]=c.value}),this.root.querySelectorAll("[data-object-text-key]").forEach(o=>{let c=o,l=c.dataset.objectTextKey;if(!l)return;let d=vh.find(u=>u.key===l);d&&this.applyObjectPropertyValue(d.objectId,d.property,c.value)}),console.log("[CustomizePanel] Calling onApply callback to restart game with source:",t),this.options.onApply({assets:i,runtime:{theme:n,ui:a,fonts:r,audio:s}},{source:t})}setupAiPanel(){}setAiStatus(t){this.aiStatusEl&&(this.aiStatusEl.textContent=t)}getSelectedAssetKey(){return this.aiTargetKey}getSelectedAssetInput(){let t=this.getSelectedAssetKey();return!this.root||!t?null:this.root.querySelector(`input[data-asset-key="${t}"]`)}async getImageDataFromAsset(t){let i=this.resolveAssetUrls(t);console.log("[CustomizePanel] Resolving asset urls for AI:",t,i);for(let n of i)try{let r=await ba(n);if(r)return console.log("[CustomizePanel] Successfully fetched image data for AI"),{input:{base64:r.base64,mimeType:r.mimeType},dataUrl:r.dataUrl,width:r.width,height:r.height}}catch(r){console.warn("[CustomizePanel] Failed to fetch image data from:",n,r)}return console.error("[CustomizePanel] Could not load image data for AI from any URL"),null}async updateAiBasePreview(t){var r,a,s;let i=(t==null?void 0:t.trim())||"";if(!i){let o=this.getSelectedAssetInput();i=(a=(r=o==null?void 0:o.value)==null?void 0:r.trim())!=null?a:""}if(console.log("[CustomizePanel] updateAiBasePreview using value:",i),!i){this.aiBaseDataUrl=null,this.updateAiPreview();return}let n=await this.getImageDataFromAsset(i);this.aiBaseDataUrl=(s=n==null?void 0:n.dataUrl)!=null?s:null,this.updateAiPreview()}updateAiPreview(){if(!this.aiPreviewImg)return;let t=this.aiOutputDataUrl||this.aiBaseDataUrl||"";if(!t){this.aiPreviewImg.removeAttribute("src");return}this.aiPreviewImg.src=t}updateAiModalPreview(t,i){if(!t)return;let n=i!=null?i:this.activePreviewKey;if(!n||!this.aiOutputDataUrl||this.aiOutputKey!==n){t.classList.add("hidden");return}let r=t.querySelector(".asset-preview-ai-image");r&&(r.src=this.aiOutputDataUrl),t.classList.remove("hidden")}setAiLoading(t){this.aiLoadingEl&&this.aiLoadingEl.classList.toggle("active",t),this.aiGenerateBtn&&(this.aiGenerateBtn.disabled=t)}toggleAiGallery(){if(!this.aiGalleryEl||!this.aiGalleryToggle)return;let t=this.aiGalleryEl.classList.toggle("hidden");this.aiGalleryToggle.textContent=t?"Gallery":"Hide Gallery",t||this.renderAiGallery()}renderAiGallery(){if(!this.aiGalleryGrid)return;let t=this.getAiGalleryEntries();if(!t.length){this.aiGalleryGrid.innerHTML='<div class="ai-gallery-empty">No image assets found.</div>';return}this.aiGalleryGrid.innerHTML="",t.forEach(({key:i,value:n})=>{var c;let r=document.createElement("button");r.type="button",r.className="ai-gallery-item",i===this.aiTargetKey&&r.classList.add("active");let a=document.createElement("img");a.className="ai-gallery-thumb",a.alt=i;let s=this.resolveAssetUrls(n);s[0]&&(a.src=s[0]);let o=document.createElement("span");o.className="ai-gallery-label",o.textContent=i,r.appendChild(a),r.appendChild(o),r.addEventListener("click",()=>this.selectAiGalleryAsset(i)),(c=this.aiGalleryGrid)==null||c.appendChild(r)})}getAiGalleryEntries(){if(!this.root)return[];let t=[];return this.root.querySelectorAll("[data-asset-key]").forEach(i=>{var s,o;let n=i,r=n.dataset.assetKey,a=(o=(s=n.value)==null?void 0:s.trim())!=null?o:"";!r||!a||this.isAiGalleryImage(a)&&t.push({key:r,value:a})}),t}isAiGalleryImage(t){let i=t.trim();if(!i)return!1;if(/^(data:image|blob:)/.test(i))return!0;let n=i.split("?")[0].toLowerCase();return![".mp3",".wav",".ogg",".json"].some(r=>n.endsWith(r))}selectAiGalleryAsset(t){this.aiTargetKey!==t&&(this.aiTargetKey=t,this.aiOutputDataUrl=null,this.aiOutputKey=null,this.aiReferenceFile=null,this.aiBaseDataUrl=null,this.aiReferenceInput&&(this.aiReferenceInput.value=""),this.aiReferenceName&&(this.aiReferenceName.textContent="Optional"),this.aiModalSubtitle&&(this.aiModalSubtitle.textContent=t),this.setAiOutputButtonsEnabled(!1),this.updateAiBasePreview(),this.updateAiPreview(),this.renderAiGallery())}openAiModal(t,i,n){var o,c,l,d,u,p,f,g,h,m;this.closeAiModal(),this.aiTargetKey=t,this.aiBaseValue=i||null,this.aiContext=n||null,this.aiOutputDataUrl=null,this.aiOutputKey=null,this.aiReferenceFile=null,this.aiBaseDataUrl=null;let r=document.createElement("div");r.className="ai-modal",r.innerHTML=`
819
+ `;let u=document.createElement("input");u.type="file",u.accept="image/*,audio/*,application/json",u.className="customize-file",u.addEventListener("change",()=>{var g;let f=(g=u.files)==null?void 0:g[0];f&&this.handleAssetUpload(f,o,n)}),d.addEventListener("click",()=>u.click()),c.appendChild(l),c.appendChild(d),c.appendChild(u),a.appendChild(s),a.appendChild(o),a.appendChild(c),(p=this.assetsContainer)==null||p.appendChild(a)})}renderColors(t){this.colorsContainer&&(this.colorsContainer.innerHTML="",px.forEach(i=>{var c,l,d;let n=(c=t==null?void 0:t[i])!=null?c:"#ffffff";if(i.includes("_text_color")||i.includes("_color")){let p={warning_text_color:{objectId:"label.warning",property:"render.tint"},endgame_title_color:{objectId:"ui.endgame.title",property:"render.tint"},endgame_subtitle_color:{objectId:"ui.endgame.subtitle",property:"render.tint"},endgame_cta_text_color:{objectId:"ui.endgame.cta",property:"render.tint"},endgame_cta_hint_color:{objectId:"ui.endgame.cta.hint",property:"render.tint"},endgame_footer_color:{objectId:"ui.endgame.footer",property:"render.tint"}}[i];p&&(n=(l=this.getObjectPropertyValue(p.objectId,p.property))!=null?l:"#ffffff")}let r=document.createElement("label");r.className="customize-color-field";let a=document.createElement("span");a.textContent=i.replace(/_/g," ");let s=document.createElement("input");s.type="color",s.value=n,s.dataset.colorKey=i;let o=document.createElement("input");o.type="text",o.value=n,o.className="customize-color-text",o.dataset.colorTextKey=i,s.addEventListener("input",()=>{o.value=s.value}),o.addEventListener("input",()=>{/^#([0-9a-fA-F]{6})$/.test(o.value)&&(s.value=o.value)}),r.appendChild(a),r.appendChild(s),r.appendChild(o),(d=this.colorsContainer)==null||d.appendChild(r)}))}renderFonts(t){this.fontsContainer&&(this.fontsContainer.innerHTML="",hx.forEach(i=>{var s,o;let n=document.createElement("div");n.className="customize-row";let r=document.createElement("span");r.className="customize-key",r.textContent=i;let a=document.createElement("input");a.type="text",a.value=(s=t==null?void 0:t[i])!=null?s:i,a.className="customize-input",a.dataset.fontKey=i,n.appendChild(r),n.appendChild(a),(o=this.fontsContainer)==null||o.appendChild(n)}))}renderTexts(t){this.textsContainer&&(this.textsContainer.innerHTML="",fx.forEach(i=>{var s,o;let n=document.createElement("div");n.className="customize-row";let r=document.createElement("span");r.className="customize-key",r.textContent=i;let a=document.createElement("input");a.type="text",a.value=(s=this.readUiValue(t,i))!=null?s:"",a.className="customize-input",a.dataset.textKey=i,n.appendChild(r),n.appendChild(a),(o=this.textsContainer)==null||o.appendChild(n)}),xh.forEach(({key:i,objectId:n})=>{var o,c;let r=document.createElement("div");r.className="customize-row";let a=document.createElement("span");a.className="customize-key",a.textContent=i;let s=document.createElement("input");s.type="text",s.value=(o=this.getObjectTextValue(n))!=null?o:"",s.className="customize-input",s.dataset.objectTextKey=i,r.appendChild(a),r.appendChild(s),(c=this.textsContainer)==null||c.appendChild(r)}))}renderAudio(t){if(!this.audioContainer)return;this.audioContainer.innerHTML="",["background_file","background_volume","click_file","click_volume","success_file","success_volume","complete_file","complete_volume"].forEach(n=>{var o,c;let r=document.createElement("div");r.className="customize-row";let a=document.createElement("span");a.className="customize-key",a.textContent=n.replace("_"," ");let s=document.createElement("input");s.type=n.includes("volume")?"number":"text",s.min="0",s.max="1",s.step="0.1",s.value=String((o=t==null?void 0:t[n])!=null?o:""),s.className="customize-input",s.dataset.audioKey=n,n.includes("file")&&(s.placeholder="audio file path"),r.appendChild(a),r.appendChild(s),(c=this.audioContainer)==null||c.appendChild(r)})}readUiValue(t,i){if(i.includes(".")){let r=i.split("."),a=t;for(let s of r){if(a==null)return null;a=a[s]}return typeof a=="string"?a:null}let n=t==null?void 0:t[i];return typeof n=="string"?n:null}getObjectTextValue(t){var r,a;let i=window.getEditableObjectConfig;if(typeof i!="function")return null;let n=i(t);return(a=(r=n==null?void 0:n.ui)==null?void 0:r.text)!=null?a:null}getObjectPropertyValue(t,i){let n=window.getEditableObjectConfig;if(typeof n!="function")return null;let r=n(t);if(!r)return null;let a=i.split("."),s=r;for(let o of a){if(s==null)return null;s=s[o]}return typeof s=="string"?s:null}handleApply(){this.handleApplyWithSource("manual")}handleApplyWithSource(t){if(console.log(`[CustomizePanel] handleApplyWithSource called with source: ${t}`),!this.root||!this.options)return;let i={};this.root.querySelectorAll("[data-asset-key]").forEach(o=>{let c=o;c.dataset.assetKey&&(i[c.dataset.assetKey]=c.value)}),console.log("[CustomizePanel] Assets being applied:",Object.keys(i).length,"total"),console.log("[CustomizePanel] Asset values:",i);let n={};this.root.querySelectorAll("[data-color-text-key]").forEach(o=>{let c=o,l=c.dataset.colorTextKey;l&&(l.includes("_text_color")||l.includes("_color")?this.applyTextColorToObject(l,c.value):n[l]=c.value)});let r={};this.root.querySelectorAll("[data-font-key]").forEach(o=>{let c=o,l=c.dataset.fontKey;l&&(r[l]=c.value)});let a={};this.root.querySelectorAll("[data-text-key]").forEach(o=>{let c=o,l=c.dataset.textKey;l&&(a[l]=c.value)});let s={};this.root.querySelectorAll("[data-audio-key]").forEach(o=>{let c=o,l=c.dataset.audioKey;if(l)if(l.includes("volume")){let d=parseFloat(c.value);s[l]=isNaN(d)?0:d}else s[l]=c.value}),this.root.querySelectorAll("[data-object-text-key]").forEach(o=>{let c=o,l=c.dataset.objectTextKey;if(!l)return;let d=xh.find(u=>u.key===l);d&&this.applyObjectPropertyValue(d.objectId,d.property,c.value)}),console.log("[CustomizePanel] Calling onApply callback to restart game with source:",t),this.options.onApply({assets:i,runtime:{theme:n,ui:a,fonts:r,audio:s}},{source:t})}setupAiPanel(){}setAiStatus(t){this.aiStatusEl&&(this.aiStatusEl.textContent=t)}getSelectedAssetKey(){return this.aiTargetKey}getSelectedAssetInput(){let t=this.getSelectedAssetKey();return!this.root||!t?null:this.root.querySelector(`input[data-asset-key="${t}"]`)}async getImageDataFromAsset(t){let i=this.resolveAssetUrls(t);console.log("[CustomizePanel] Resolving asset urls for AI:",t,i);for(let n of i)try{let r=await ba(n);if(r)return console.log("[CustomizePanel] Successfully fetched image data for AI"),{input:{base64:r.base64,mimeType:r.mimeType},dataUrl:r.dataUrl,width:r.width,height:r.height}}catch(r){console.warn("[CustomizePanel] Failed to fetch image data from:",n,r)}return console.error("[CustomizePanel] Could not load image data for AI from any URL"),null}async updateAiBasePreview(t){var r,a,s;let i=(t==null?void 0:t.trim())||"";if(!i){let o=this.getSelectedAssetInput();i=(a=(r=o==null?void 0:o.value)==null?void 0:r.trim())!=null?a:""}if(console.log("[CustomizePanel] updateAiBasePreview using value:",i),!i){this.aiBaseDataUrl=null,this.updateAiPreview();return}let n=await this.getImageDataFromAsset(i);this.aiBaseDataUrl=(s=n==null?void 0:n.dataUrl)!=null?s:null,this.updateAiPreview()}updateAiPreview(){if(!this.aiPreviewImg)return;let t=this.aiOutputDataUrl||this.aiBaseDataUrl||"";if(!t){this.aiPreviewImg.removeAttribute("src");return}this.aiPreviewImg.src=t}updateAiModalPreview(t,i){if(!t)return;let n=i!=null?i:this.activePreviewKey;if(!n||!this.aiOutputDataUrl||this.aiOutputKey!==n){t.classList.add("hidden");return}let r=t.querySelector(".asset-preview-ai-image");r&&(r.src=this.aiOutputDataUrl),t.classList.remove("hidden")}setAiLoading(t){this.aiLoadingEl&&this.aiLoadingEl.classList.toggle("active",t),this.aiGenerateBtn&&(this.aiGenerateBtn.disabled=t)}toggleAiGallery(){if(!this.aiGalleryEl||!this.aiGalleryToggle)return;let t=this.aiGalleryEl.classList.toggle("hidden");this.aiGalleryToggle.textContent=t?"Gallery":"Hide Gallery",t||this.renderAiGallery()}renderAiGallery(){if(!this.aiGalleryGrid)return;let t=this.getAiGalleryEntries();if(!t.length){this.aiGalleryGrid.innerHTML='<div class="ai-gallery-empty">No image assets found.</div>';return}this.aiGalleryGrid.innerHTML="",t.forEach(({key:i,value:n})=>{var c;let r=document.createElement("button");r.type="button",r.className="ai-gallery-item",i===this.aiTargetKey&&r.classList.add("active");let a=document.createElement("img");a.className="ai-gallery-thumb",a.alt=i;let s=this.resolveAssetUrls(n);s[0]&&(a.src=s[0]);let o=document.createElement("span");o.className="ai-gallery-label",o.textContent=i,r.appendChild(a),r.appendChild(o),r.addEventListener("click",()=>this.selectAiGalleryAsset(i)),(c=this.aiGalleryGrid)==null||c.appendChild(r)})}getAiGalleryEntries(){if(!this.root)return[];let t=[];return this.root.querySelectorAll("[data-asset-key]").forEach(i=>{var s,o;let n=i,r=n.dataset.assetKey,a=(o=(s=n.value)==null?void 0:s.trim())!=null?o:"";!r||!a||this.isAiGalleryImage(a)&&t.push({key:r,value:a})}),t}isAiGalleryImage(t){let i=t.trim();if(!i)return!1;if(/^(data:image|blob:)/.test(i))return!0;let n=i.split("?")[0].toLowerCase();return![".mp3",".wav",".ogg",".json"].some(r=>n.endsWith(r))}selectAiGalleryAsset(t){this.aiTargetKey!==t&&(this.aiTargetKey=t,this.aiOutputDataUrl=null,this.aiOutputKey=null,this.aiReferenceFile=null,this.aiBaseDataUrl=null,this.aiReferenceInput&&(this.aiReferenceInput.value=""),this.aiReferenceName&&(this.aiReferenceName.textContent="Optional"),this.aiModalSubtitle&&(this.aiModalSubtitle.textContent=t),this.setAiOutputButtonsEnabled(!1),this.updateAiBasePreview(),this.updateAiPreview(),this.renderAiGallery())}openAiModal(t,i,n){var o,c,l,d,u,p,f,g,h,m;this.closeAiModal(),this.aiTargetKey=t,this.aiBaseValue=i||null,this.aiContext=n||null,this.aiOutputDataUrl=null,this.aiOutputKey=null,this.aiReferenceFile=null,this.aiBaseDataUrl=null;let r=document.createElement("div");r.className="ai-modal",r.innerHTML=`
820
820
  <div class="ai-modal-card">
821
821
  <div class="ai-modal-header">
822
822
  <div>
@@ -887,7 +887,7 @@ Generate the requested asset matching the brand style.${e.needsTransparency?" Ba
887
887
  </div>
888
888
  </div>
889
889
  </div>
890
- `;let a=r.querySelector(".ai-modal-close");a==null||a.addEventListener("click",()=>this.closeAiModal()),r.addEventListener("click",b=>{b.target===r&&this.closeAiModal()}),this.aiModal=r,this.aiKeyInput=r.querySelector("[data-ai-key]"),this.aiModelSelect=r.querySelector("[data-ai-model]"),this.aiPromptInput=r.querySelector("[data-ai-prompt]"),this.aiStrengthInput=r.querySelector("[data-ai-strength]"),this.aiStrengthValue=r.querySelector("[data-ai-strength-value]"),this.aiModalSubtitle=r.querySelector(".ai-modal-subtitle"),this.aiGalleryToggle=r.querySelector("[data-ai-gallery-toggle]"),this.aiGalleryEl=r.querySelector("[data-ai-gallery]"),this.aiGalleryGrid=r.querySelector("[data-ai-gallery-grid]"),this.aiReferenceInput=r.querySelector("[data-ai-ref-input]"),this.aiReferenceName=r.querySelector("[data-ai-ref-name]"),this.aiRemoveBgToggle=r.querySelector("[data-ai-remove-bg]"),this.aiUseOutputToggle=r.querySelector("[data-ai-use-output]"),this.aiGenerateBtn=r.querySelector("[data-ai-generate]"),this.aiApplyBtn=r.querySelector("[data-ai-apply]"),this.aiSaveLibraryBtn=r.querySelector("[data-ai-save-library]"),this.aiCropBtn=r.querySelector("[data-ai-crop]"),this.aiDownloadBtn=r.querySelector("[data-ai-download]"),this.aiPreviewImg=r.querySelector("[data-ai-preview]"),this.aiStatusEl=r.querySelector("[data-ai-status]"),this.aiLoadingEl=r.querySelector("[data-ai-loading]"),this.aiBgToleranceInput=r.querySelector("[data-ai-bg-tolerance]"),this.aiBgToleranceValue=r.querySelector("[data-ai-bg-tolerance-value]"),(o=this.aiRemoveBgToggle)==null||o.addEventListener("change",()=>{this.refreshAiOutputFromRaw()});let s=r.querySelector("[data-ai-ref-button]");s==null||s.addEventListener("click",()=>{var b;return(b=this.aiReferenceInput)==null?void 0:b.click()}),(c=this.aiGalleryToggle)==null||c.addEventListener("click",()=>this.toggleAiGallery()),(l=this.aiStrengthInput)==null||l.addEventListener("input",()=>{var v,y;let b=(y=(v=this.aiStrengthInput)==null?void 0:v.value)!=null?y:"5";this.aiStrengthValue&&(this.aiStrengthValue.textContent=b)}),(d=this.aiBgToleranceInput)==null||d.addEventListener("input",()=>{var v,y;let b=(y=(v=this.aiBgToleranceInput)==null?void 0:v.value)!=null?y:"30";this.aiBgToleranceValue&&(this.aiBgToleranceValue.textContent=b),this.refreshAiOutputFromRaw()}),(u=this.aiReferenceInput)==null||u.addEventListener("change",()=>{var v,y,x;let b=(x=(y=(v=this.aiReferenceInput)==null?void 0:v.files)==null?void 0:y[0])!=null?x:null;this.aiReferenceFile=b,this.aiReferenceName&&(this.aiReferenceName.textContent=b?`${b.name} (loaded)`:"Optional"),b&&this.setAiStatus(`Reference attached: ${b.name}`)}),(p=this.aiGenerateBtn)==null||p.addEventListener("click",()=>{this.handleAiGenerate()}),(f=this.aiApplyBtn)==null||f.addEventListener("click",()=>this.handleAiApply()),(g=this.aiSaveLibraryBtn)==null||g.addEventListener("click",()=>{this.handleAiSaveToLibrary()}),(h=this.aiCropBtn)==null||h.addEventListener("click",()=>{this.handleAiCrop()}),(m=this.aiDownloadBtn)==null||m.addEventListener("click",()=>this.handleAiDownload()),document.body.appendChild(r),this.setAiOutputButtonsEnabled(!1),this.setAiStatus("Ready."),this.updateAiBasePreview(i),this.updateAiPreview(),this.renderAiGallery()}closeAiModal(){this.aiModal&&(this.aiModal.remove(),this.aiModal=null),this.aiTargetKey=null,this.aiBaseValue=null,this.aiContext=null,this.aiKeyInput=null,this.aiModelSelect=null,this.aiPromptInput=null,this.aiStrengthInput=null,this.aiStrengthValue=null,this.aiModalSubtitle=null,this.aiGalleryToggle=null,this.aiGalleryEl=null,this.aiGalleryGrid=null,this.aiReferenceInput=null,this.aiReferenceName=null,this.aiReferenceFile=null,this.aiRemoveBgToggle=null,this.aiUseOutputToggle=null,this.aiGenerateBtn=null,this.aiApplyBtn=null,this.aiCropBtn=null,this.aiDownloadBtn=null,this.aiPreviewImg=null,this.aiStatusEl=null,this.aiLoadingEl=null,this.aiBgToleranceInput=null,this.aiBgToleranceValue=null}async handleAiGenerate(){var d,u,p,f,g,h,m,b,v,y,x,w,E,A,S,k,I,_,C,R;if(console.log("[CustomizePanel] handleAiGenerate clicked"),!this.aiGenerateBtn)return;let t=(p=(u=(d=this.aiKeyInput)==null?void 0:d.value)==null?void 0:u.trim())!=null?p:"",i=(g=(f=this.aiModelSelect)==null?void 0:f.value)!=null?g:"gemini-2.5-flash-image",n=(b=(m=(h=this.aiPromptInput)==null?void 0:h.value)==null?void 0:m.trim())!=null?b:"",r=(y=(v=this.aiRemoveBgToggle)==null?void 0:v.checked)!=null?y:!1,a=r,s=r,o=Number((w=(x=this.aiStrengthInput)==null?void 0:x.value)!=null?w:"5");if(!t){this.setAiStatus("Missing API key.");return}if(!n){this.setAiStatus("Add a prompt.");return}let c=this.getSelectedAssetInput(),l=((E=c==null?void 0:c.value)==null?void 0:E.trim())||((A=this.aiBaseValue)==null?void 0:A.trim())||"";if(!l&&!this.aiOutputDataUrl){this.setAiStatus("Select an asset first.");return}this.setAiLoading(!0),this.setAiStatus("Generating...");try{let M=null,O=(S=this.getSelectedAssetKey())!=null?S:"unknown",T=(k=this.aiUseOutputToggle)!=null&&k.checked&&this.aiOutputDataUrl?"ai-output":"asset-value";if((I=this.aiUseOutputToggle)!=null&&I.checked&&this.aiOutputDataUrl){let se=Jo(this.aiOutputDataUrl,"ai-output.png");if(se){let oe=await Pt(se);oe&&(M={input:{base64:oe.base64,mimeType:oe.mimeType},dataUrl:oe.dataUrl,width:oe.width,height:oe.height})}}if(M||(M=await this.getImageDataFromAsset(l)),!M){this.setAiStatus("Unable to load the base image.");return}let j=[M.input],L=!1;if(this.aiReferenceFile){let se=await Pt(this.aiReferenceFile);se?(j.push({base64:se.base64,mimeType:se.mimeType}),L=!0,this.setAiStatus(`Generating with reference: ${this.aiReferenceFile.name}`)):this.setAiStatus("Reference image failed to load, generating without reference.")}let D=bh(n,{includeReference:L,includeMagenta:a,changeLevel:o}),$=(C=(_=this.aiReferenceFile)==null?void 0:_.name)!=null?C:"none";console.info("[AI] Final prompt:",D),console.info("[AI] Image sources:",{assetKey:O,base:T,reference:$});let ue=oh(M.width,M.height);console.info("[AI] CRITICAL: Calling generateImageWithGemini25Flash NOW...");let V=await Ni(t,D,j,{aspectRatio:ue,model:i});console.info("[AI] CRITICAL: generateImageWithGemini25Flash returned! Length:",V==null?void 0:V.length),this.aiRawOutputDataUrl=V,await this.refreshAiOutputFromRaw()}catch(M){console.error("[CustomizePanel] AI Generate Error:",M),this.setAiStatus("Generation failed. Check console.")}finally{this.setAiLoading(!1),((R=this.aiStatusEl)==null?void 0:R.textContent)==="Generating..."&&this.setAiStatus("Ready.")}}async refreshAiOutputFromRaw(){var r,a,s,o;if(!this.aiRawOutputDataUrl)return;let t=(a=(r=this.aiRemoveBgToggle)==null?void 0:r.checked)!=null?a:!1,i=Number((o=(s=this.aiBgToleranceInput)==null?void 0:s.value)!=null?o:"30"),n=this.aiRawOutputDataUrl;if(t){let c=await Fi(this.aiRawOutputDataUrl,i);c&&(n=c)}this.setAiOutput(n),this.setAiStatus("Ready.")}setAiOutput(t){var n,r;this.aiOutputDataUrl=t,this.aiOutputKey=this.getSelectedAssetKey(),this.updateAiPreview(),this.setAiOutputButtonsEnabled(!0);let i=(n=this.previewModal)==null?void 0:n.querySelector("[data-asset-ai-preview]");this.updateAiModalPreview(i,(r=this.activePreviewKey)!=null?r:void 0)}setAiOutputButtonsEnabled(t){this.aiApplyBtn&&(this.aiApplyBtn.disabled=!t),this.aiSaveLibraryBtn&&(this.aiSaveLibraryBtn.disabled=!t),this.aiCropBtn&&(this.aiCropBtn.disabled=!t),this.aiDownloadBtn&&(this.aiDownloadBtn.disabled=!t)}handleAiApply(){var i,n,r;let t=this.getSelectedAssetInput();if(!this.aiOutputDataUrl){this.setAiStatus("Generate output first.");return}if(t)console.log("[CustomizePanel] Applying AI output to brand asset:",t.dataset.assetKey),t.value=this.aiOutputDataUrl,this.handleAssetValueChange((i=t.dataset.assetKey)!=null?i:"",t),this.setAiStatus("Applied. Restarting game...");else{let a=((n=this.aiContext)==null?void 0:n.objectId)||this.inferObjectIdFromAssetKey(this.aiTargetKey||""),s=((r=this.aiContext)==null?void 0:r.path)||this.inferPathFromAssetKey(this.aiTargetKey||"");if(a&&s)console.log("[CustomizePanel] Applying AI output directly to object:",a,s),this.applyObjectPropertyValue(a,s,this.aiOutputDataUrl),this.setAiStatus("Applied directly. Restarting game..."),window.dispatchEvent(new CustomEvent("inspector:refresh"));else{this.setAiStatus("No target input found to apply.");return}}setTimeout(()=>{this.closeAiModal()},500)}async handleAiSaveToLibrary(){var a,s,o;if(!this.aiOutputDataUrl){this.setAiStatus("Generate output first.");return}if(!this.getSelectedAssetKey()){this.setAiStatus("No asset selected.");return}let n=`${(this.aiTargetKey||"asset").replace(/[^a-zA-Z0-9_-]/g,"_")}_ai_${Date.now()}`,r=this.inferCategoryFromAssetKey(this.aiTargetKey||"");this.setAiStatus("Saving to library...");try{let l=await(await fetch("/api/library/save",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({category:r,filename:`${n}.png`,data:this.aiOutputDataUrl,overwrite:!0})})).json();if(l.success){console.log("[CustomizePanel] \u2705 Saved to library:",l.path),this.setAiStatus(`Saved as ${n}. Applying...`);let d=window.addAssetToRegistry;typeof d=="function"&&(console.log("[CustomizePanel] Logic: Adding to registry category:",r),d(r,`${n}.png`));let u=window.refreshAssetLibrary;typeof u=="function"&&(console.log("[CustomizePanel] Logic: Refreshing library panel"),u());let p=((a=this.aiContext)==null?void 0:a.objectId)||this.inferObjectIdFromAssetKey(this.aiTargetKey||""),f=((s=this.aiContext)==null?void 0:s.path)||this.inferPathFromAssetKey(this.aiTargetKey||""),g=this.getSelectedAssetInput();if(g&&(g.value=l.path,this.handleAssetValueChange((o=g.dataset.assetKey)!=null?o:"",g)),p&&f){console.log("[CustomizePanel] Saved and applying directly to object:",p,f);let h=window.applyAssetToSlot,m=/texture|image|sprite|asset\\.path/i.test(f)||/\\.(png|jpg|jpeg)$/i.test(String(l.path||""));if(typeof h=="function"&&m){let b=this.getFilenameFromPath(l.path);h(p,b,r)}else this.applyObjectPropertyValue(p,f,l.path);window.dispatchEvent(new CustomEvent("inspector:refresh"))}setTimeout(()=>{this.closeAiModal()},1e3)}else console.error("[CustomizePanel] \u274C Save failed:",l.error),this.setAiStatus(`Save failed: ${l.error}`)}catch(c){console.error("[CustomizePanel] \u274C Save error:",c),this.setAiStatus("Save failed. Check console.")}}inferCategoryFromAssetKey(t){var s;let i=(s=this.aiContext)==null?void 0:s.objectId,n=t||this.aiTargetKey||"",r=window.getEditableAssets;if(typeof r=="function"){let o=r();if(o!=null&&o.slots){let c=o.slots.find(l=>i&&l.objectId===i||l.currentAsset===n||l.slotId===n||l.currentAsset&&l.currentAsset.includes(n)||n.includes(l.slotId));if(c){let l=c.libraryFolder||c.category;if(l)return l}}}let a=n.toLowerCase();return a.includes("background")?"backgrounds":a.includes("character")?"characters":a.includes("key")?"collectedkeys":a.includes("draggable")?"draggables":a.includes("environment")||a.includes("env")||a.includes("hand")||a.includes("prop")||a.includes("item")||a.includes("decor")||a.includes("object")?"environment":a.includes("machine")?"machines":a.includes("tutorial")?"tutorial":a.includes("ui")||a.includes("button")||a.includes("label")||a.includes("icon")||a.includes("logo")||a.includes("cta")||a.includes("menu")||a.includes("overlay")?"ui":a.includes("effect")||a.includes("confetti")||a.includes("particle")?"effects":"ui"}inferObjectIdFromAssetKey(t){let i=window.getEditableAssets;if(typeof i!="function")return null;let n=i();if(!(n!=null&&n.slots))return null;let r=n.slots.find(a=>a.currentAsset===t||a.slotId===t);return(r==null?void 0:r.objectId)||null}inferPathFromAssetKey(t){let i=window.getEditableAssets;if(typeof i!="function")return null;let n=i();if(!(n!=null&&n.slots))return null;let r=n.slots.find(s=>s.currentAsset===t||s.slotId===t);if(!r)return null;let a=r.category;return a==="render"||a==="backgrounds"||a==="characters"?"render.texture":a==="ui"?"ui.image":a==="audio"?"audio.src":"render.texture"}getFilenameFromPath(t){if(!t)return"";let i=t.split("/");return i[i.length-1]}async handleAiCrop(){var o;if(!this.aiOutputDataUrl){this.setAiStatus("Generate output first.");return}let t=this.getSelectedAssetInput(),i=(o=t==null?void 0:t.value)!=null?o:"",n=await this.getImageDimensions(i);if(!n){this.setAiStatus("Unable to read target dimensions.");return}let r=Jo(this.aiOutputDataUrl,"ai-output.png");if(!r)return;let a=await this.showManualCropModal(r,n,i);if(!a)return;let s=await sh(a);s&&this.setAiOutput(s)}handleAiDownload(){var n;if(!this.aiOutputDataUrl)return;let t=(n=this.getSelectedAssetKey())!=null?n:"ai-image",i=document.createElement("a");i.href=this.aiOutputDataUrl,i.download=`${t}-ai.png`,i.click()}handleAssetValueChange(t,i){this.previewModal&&this.closePreviewModal(),this.scheduleAutoApply(),this.updatePreviewIfOpen(t,i.value,i.dataset.assetType)}async handleAssetUpload(t,i,n){let r=i.value,a=t;if(t.type.startsWith("image/")){let c=await this.getImageDimensions(r);if(c){let l=await this.showManualCropModal(t,c,r);if(!l)return;a=l}}let s=URL.createObjectURL(a),o=i.dataset.objectUrl;if(o)try{URL.revokeObjectURL(o)}catch{}i.dataset.objectUrl=s,i.dataset.assetType=a.type,i.value=s,this.handleAssetValueChange(n,i)}scheduleAutoApply(){this.options&&(this.autoApplyTimer&&window.clearTimeout(this.autoApplyTimer),console.log("[CustomizePanel] Scheduling auto-apply in 250ms"),this.autoApplyTimer=window.setTimeout(()=>{this.autoApplyTimer=null,console.log("[CustomizePanel] Executing auto-apply now"),this.handleApplyWithSource("auto")},250))}previewAsset(t,i,n,r){if(!i)return;let a=this.resolveAssetUrls(i);if(a.length===0)return;let s=n||this.guessMimeType(i);this.activePreviewKey=t,this.activePreviewValue=i,this.activePreviewFileInput=r!=null?r:null,this.openPreviewModal(t,i,a,s)}resolveAssetUrls(t){let i=t.trim();if(!i)return[];if(console.log("[CustomizePanel] Resolving asset urls for:",i),/^(blob:|data:|https?:|\/)/.test(i))return console.log("[CustomizePanel] Path is absolute or data/blob, using as is"),[i];let n=i.replace(/^\.?\//,""),r=[];return n.startsWith("raw/")?r=[`/${n}`,`/assets/${n}`]:n.startsWith("assets/")?r=[`/${n}`]:r=[`/raw/${n}`,`/assets/raw/${n}`,`/assets/${n}`,`/${n}`],console.log("[CustomizePanel] Resolved to possible paths:",r),r}guessMimeType(t){let i=t.toLowerCase();return i.endsWith(".png")||i.endsWith(".jpg")||i.endsWith(".jpeg")||i.endsWith(".gif")||i.endsWith(".webp")||i.endsWith(".svg")?"image":i.endsWith(".mp3")||i.endsWith(".wav")||i.endsWith(".ogg")?"audio":i.endsWith(".json")?"json":"file"}openPreviewModal(t,i,n,r){this.closePreviewModal(!0);let a=document.createElement("div");a.className="asset-preview-modal",a.innerHTML=`
890
+ `;let a=r.querySelector(".ai-modal-close");a==null||a.addEventListener("click",()=>this.closeAiModal()),r.addEventListener("click",b=>{b.target===r&&this.closeAiModal()}),this.aiModal=r,this.aiKeyInput=r.querySelector("[data-ai-key]"),this.aiModelSelect=r.querySelector("[data-ai-model]"),this.aiPromptInput=r.querySelector("[data-ai-prompt]"),this.aiStrengthInput=r.querySelector("[data-ai-strength]"),this.aiStrengthValue=r.querySelector("[data-ai-strength-value]"),this.aiModalSubtitle=r.querySelector(".ai-modal-subtitle"),this.aiGalleryToggle=r.querySelector("[data-ai-gallery-toggle]"),this.aiGalleryEl=r.querySelector("[data-ai-gallery]"),this.aiGalleryGrid=r.querySelector("[data-ai-gallery-grid]"),this.aiReferenceInput=r.querySelector("[data-ai-ref-input]"),this.aiReferenceName=r.querySelector("[data-ai-ref-name]"),this.aiRemoveBgToggle=r.querySelector("[data-ai-remove-bg]"),this.aiUseOutputToggle=r.querySelector("[data-ai-use-output]"),this.aiGenerateBtn=r.querySelector("[data-ai-generate]"),this.aiApplyBtn=r.querySelector("[data-ai-apply]"),this.aiSaveLibraryBtn=r.querySelector("[data-ai-save-library]"),this.aiCropBtn=r.querySelector("[data-ai-crop]"),this.aiDownloadBtn=r.querySelector("[data-ai-download]"),this.aiPreviewImg=r.querySelector("[data-ai-preview]"),this.aiStatusEl=r.querySelector("[data-ai-status]"),this.aiLoadingEl=r.querySelector("[data-ai-loading]"),this.aiBgToleranceInput=r.querySelector("[data-ai-bg-tolerance]"),this.aiBgToleranceValue=r.querySelector("[data-ai-bg-tolerance-value]"),(o=this.aiRemoveBgToggle)==null||o.addEventListener("change",()=>{this.refreshAiOutputFromRaw()});let s=r.querySelector("[data-ai-ref-button]");s==null||s.addEventListener("click",()=>{var b;return(b=this.aiReferenceInput)==null?void 0:b.click()}),(c=this.aiGalleryToggle)==null||c.addEventListener("click",()=>this.toggleAiGallery()),(l=this.aiStrengthInput)==null||l.addEventListener("input",()=>{var v,y;let b=(y=(v=this.aiStrengthInput)==null?void 0:v.value)!=null?y:"5";this.aiStrengthValue&&(this.aiStrengthValue.textContent=b)}),(d=this.aiBgToleranceInput)==null||d.addEventListener("input",()=>{var v,y;let b=(y=(v=this.aiBgToleranceInput)==null?void 0:v.value)!=null?y:"30";this.aiBgToleranceValue&&(this.aiBgToleranceValue.textContent=b),this.refreshAiOutputFromRaw()}),(u=this.aiReferenceInput)==null||u.addEventListener("change",()=>{var v,y,x;let b=(x=(y=(v=this.aiReferenceInput)==null?void 0:v.files)==null?void 0:y[0])!=null?x:null;this.aiReferenceFile=b,this.aiReferenceName&&(this.aiReferenceName.textContent=b?`${b.name} (loaded)`:"Optional"),b&&this.setAiStatus(`Reference attached: ${b.name}`)}),(p=this.aiGenerateBtn)==null||p.addEventListener("click",()=>{this.handleAiGenerate()}),(f=this.aiApplyBtn)==null||f.addEventListener("click",()=>this.handleAiApply()),(g=this.aiSaveLibraryBtn)==null||g.addEventListener("click",()=>{this.handleAiSaveToLibrary()}),(h=this.aiCropBtn)==null||h.addEventListener("click",()=>{this.handleAiCrop()}),(m=this.aiDownloadBtn)==null||m.addEventListener("click",()=>this.handleAiDownload()),document.body.appendChild(r),this.setAiOutputButtonsEnabled(!1),this.setAiStatus("Ready."),this.updateAiBasePreview(i),this.updateAiPreview(),this.renderAiGallery()}closeAiModal(){this.aiModal&&(this.aiModal.remove(),this.aiModal=null),this.aiTargetKey=null,this.aiBaseValue=null,this.aiContext=null,this.aiKeyInput=null,this.aiModelSelect=null,this.aiPromptInput=null,this.aiStrengthInput=null,this.aiStrengthValue=null,this.aiModalSubtitle=null,this.aiGalleryToggle=null,this.aiGalleryEl=null,this.aiGalleryGrid=null,this.aiReferenceInput=null,this.aiReferenceName=null,this.aiReferenceFile=null,this.aiRemoveBgToggle=null,this.aiUseOutputToggle=null,this.aiGenerateBtn=null,this.aiApplyBtn=null,this.aiCropBtn=null,this.aiDownloadBtn=null,this.aiPreviewImg=null,this.aiStatusEl=null,this.aiLoadingEl=null,this.aiBgToleranceInput=null,this.aiBgToleranceValue=null}async handleAiGenerate(){var d,u,p,f,g,h,m,b,v,y,x,w,E,A,S,k,I,_,C,R;if(console.log("[CustomizePanel] handleAiGenerate clicked"),!this.aiGenerateBtn)return;let t=(p=(u=(d=this.aiKeyInput)==null?void 0:d.value)==null?void 0:u.trim())!=null?p:"",i=(g=(f=this.aiModelSelect)==null?void 0:f.value)!=null?g:"gemini-2.5-flash-image",n=(b=(m=(h=this.aiPromptInput)==null?void 0:h.value)==null?void 0:m.trim())!=null?b:"",r=(y=(v=this.aiRemoveBgToggle)==null?void 0:v.checked)!=null?y:!1,a=r,s=r,o=Number((w=(x=this.aiStrengthInput)==null?void 0:x.value)!=null?w:"5");if(!t){this.setAiStatus("Missing API key.");return}if(!n){this.setAiStatus("Add a prompt.");return}let c=this.getSelectedAssetInput(),l=((E=c==null?void 0:c.value)==null?void 0:E.trim())||((A=this.aiBaseValue)==null?void 0:A.trim())||"";if(!l&&!this.aiOutputDataUrl){this.setAiStatus("Select an asset first.");return}this.setAiLoading(!0),this.setAiStatus("Generating...");try{let M=null,O=(S=this.getSelectedAssetKey())!=null?S:"unknown",T=(k=this.aiUseOutputToggle)!=null&&k.checked&&this.aiOutputDataUrl?"ai-output":"asset-value";if((I=this.aiUseOutputToggle)!=null&&I.checked&&this.aiOutputDataUrl){let se=el(this.aiOutputDataUrl,"ai-output.png");if(se){let oe=await Pt(se);oe&&(M={input:{base64:oe.base64,mimeType:oe.mimeType},dataUrl:oe.dataUrl,width:oe.width,height:oe.height})}}if(M||(M=await this.getImageDataFromAsset(l)),!M){this.setAiStatus("Unable to load the base image.");return}let j=[M.input],L=!1;if(this.aiReferenceFile){let se=await Pt(this.aiReferenceFile);se?(j.push({base64:se.base64,mimeType:se.mimeType}),L=!0,this.setAiStatus(`Generating with reference: ${this.aiReferenceFile.name}`)):this.setAiStatus("Reference image failed to load, generating without reference.")}let D=yh(n,{includeReference:L,includeMagenta:a,changeLevel:o}),$=(C=(_=this.aiReferenceFile)==null?void 0:_.name)!=null?C:"none";console.info("[AI] Final prompt:",D),console.info("[AI] Image sources:",{assetKey:O,base:T,reference:$});let ue=ch(M.width,M.height);console.info("[AI] CRITICAL: Calling generateImageWithGemini25Flash NOW...");let Y=await Fi(t,D,j,{aspectRatio:ue,model:i});console.info("[AI] CRITICAL: generateImageWithGemini25Flash returned! Length:",Y==null?void 0:Y.length),this.aiRawOutputDataUrl=Y,await this.refreshAiOutputFromRaw()}catch(M){console.error("[CustomizePanel] AI Generate Error:",M),this.setAiStatus("Generation failed. Check console.")}finally{this.setAiLoading(!1),((R=this.aiStatusEl)==null?void 0:R.textContent)==="Generating..."&&this.setAiStatus("Ready.")}}async refreshAiOutputFromRaw(){var r,a,s,o;if(!this.aiRawOutputDataUrl)return;let t=(a=(r=this.aiRemoveBgToggle)==null?void 0:r.checked)!=null?a:!1,i=Number((o=(s=this.aiBgToleranceInput)==null?void 0:s.value)!=null?o:"30"),n=this.aiRawOutputDataUrl;if(t){let c=await Ni(this.aiRawOutputDataUrl,i);c&&(n=c)}this.setAiOutput(n),this.setAiStatus("Ready.")}setAiOutput(t){var n,r;this.aiOutputDataUrl=t,this.aiOutputKey=this.getSelectedAssetKey(),this.updateAiPreview(),this.setAiOutputButtonsEnabled(!0);let i=(n=this.previewModal)==null?void 0:n.querySelector("[data-asset-ai-preview]");this.updateAiModalPreview(i,(r=this.activePreviewKey)!=null?r:void 0)}setAiOutputButtonsEnabled(t){this.aiApplyBtn&&(this.aiApplyBtn.disabled=!t),this.aiSaveLibraryBtn&&(this.aiSaveLibraryBtn.disabled=!t),this.aiCropBtn&&(this.aiCropBtn.disabled=!t),this.aiDownloadBtn&&(this.aiDownloadBtn.disabled=!t)}handleAiApply(){var i,n,r;let t=this.getSelectedAssetInput();if(!this.aiOutputDataUrl){this.setAiStatus("Generate output first.");return}if(t)console.log("[CustomizePanel] Applying AI output to brand asset:",t.dataset.assetKey),t.value=this.aiOutputDataUrl,this.handleAssetValueChange((i=t.dataset.assetKey)!=null?i:"",t),this.setAiStatus("Applied. Restarting game...");else{let a=((n=this.aiContext)==null?void 0:n.objectId)||this.inferObjectIdFromAssetKey(this.aiTargetKey||""),s=((r=this.aiContext)==null?void 0:r.path)||this.inferPathFromAssetKey(this.aiTargetKey||"");if(a&&s)console.log("[CustomizePanel] Applying AI output directly to object:",a,s),this.applyObjectPropertyValue(a,s,this.aiOutputDataUrl),this.setAiStatus("Applied directly. Restarting game..."),window.dispatchEvent(new CustomEvent("inspector:refresh"));else{this.setAiStatus("No target input found to apply.");return}}setTimeout(()=>{this.closeAiModal()},500)}async handleAiSaveToLibrary(){var a,s,o;if(!this.aiOutputDataUrl){this.setAiStatus("Generate output first.");return}if(!this.getSelectedAssetKey()){this.setAiStatus("No asset selected.");return}let n=`${(this.aiTargetKey||"asset").replace(/[^a-zA-Z0-9_-]/g,"_")}_ai_${Date.now()}`,r=this.inferCategoryFromAssetKey(this.aiTargetKey||"");this.setAiStatus("Saving to library...");try{let l=await(await fetch("/api/library/save",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({category:r,filename:`${n}.png`,data:this.aiOutputDataUrl,overwrite:!0})})).json();if(l.success){console.log("[CustomizePanel] \u2705 Saved to library:",l.path),this.setAiStatus(`Saved as ${n}. Applying...`);let d=window.addAssetToRegistry;typeof d=="function"&&(console.log("[CustomizePanel] Logic: Adding to registry category:",r),d(r,`${n}.png`));let u=window.refreshAssetLibrary;typeof u=="function"&&(console.log("[CustomizePanel] Logic: Refreshing library panel"),u());let p=((a=this.aiContext)==null?void 0:a.objectId)||this.inferObjectIdFromAssetKey(this.aiTargetKey||""),f=((s=this.aiContext)==null?void 0:s.path)||this.inferPathFromAssetKey(this.aiTargetKey||""),g=this.getSelectedAssetInput();if(g&&(g.value=l.path,this.handleAssetValueChange((o=g.dataset.assetKey)!=null?o:"",g)),p&&f){console.log("[CustomizePanel] Saved and applying directly to object:",p,f);let h=window.applyAssetToSlot,m=/texture|image|sprite|asset\\.path/i.test(f)||/\\.(png|jpg|jpeg)$/i.test(String(l.path||""));if(typeof h=="function"&&m){let b=this.getFilenameFromPath(l.path);h(p,b,r)}else this.applyObjectPropertyValue(p,f,l.path);window.dispatchEvent(new CustomEvent("inspector:refresh"))}setTimeout(()=>{this.closeAiModal()},1e3)}else console.error("[CustomizePanel] \u274C Save failed:",l.error),this.setAiStatus(`Save failed: ${l.error}`)}catch(c){console.error("[CustomizePanel] \u274C Save error:",c),this.setAiStatus("Save failed. Check console.")}}inferCategoryFromAssetKey(t){var s;let i=(s=this.aiContext)==null?void 0:s.objectId,n=t||this.aiTargetKey||"",r=window.getEditableAssets;if(typeof r=="function"){let o=r();if(o!=null&&o.slots){let c=o.slots.find(l=>i&&l.objectId===i||l.currentAsset===n||l.slotId===n||l.currentAsset&&l.currentAsset.includes(n)||n.includes(l.slotId));if(c){let l=c.libraryFolder||c.category;if(l)return l}}}let a=n.toLowerCase();return a.includes("background")?"backgrounds":a.includes("character")?"characters":a.includes("key")?"collectedkeys":a.includes("draggable")?"draggables":a.includes("environment")||a.includes("env")||a.includes("hand")||a.includes("prop")||a.includes("item")||a.includes("decor")||a.includes("object")?"environment":a.includes("machine")?"machines":a.includes("tutorial")?"tutorial":a.includes("ui")||a.includes("button")||a.includes("label")||a.includes("icon")||a.includes("logo")||a.includes("cta")||a.includes("menu")||a.includes("overlay")?"ui":a.includes("effect")||a.includes("confetti")||a.includes("particle")?"effects":"ui"}inferObjectIdFromAssetKey(t){let i=window.getEditableAssets;if(typeof i!="function")return null;let n=i();if(!(n!=null&&n.slots))return null;let r=n.slots.find(a=>a.currentAsset===t||a.slotId===t);return(r==null?void 0:r.objectId)||null}inferPathFromAssetKey(t){let i=window.getEditableAssets;if(typeof i!="function")return null;let n=i();if(!(n!=null&&n.slots))return null;let r=n.slots.find(s=>s.currentAsset===t||s.slotId===t);if(!r)return null;let a=r.category;return a==="render"||a==="backgrounds"||a==="characters"?"render.texture":a==="ui"?"ui.image":a==="audio"?"audio.src":"render.texture"}getFilenameFromPath(t){if(!t)return"";let i=t.split("/");return i[i.length-1]}async handleAiCrop(){var o;if(!this.aiOutputDataUrl){this.setAiStatus("Generate output first.");return}let t=this.getSelectedAssetInput(),i=(o=t==null?void 0:t.value)!=null?o:"",n=await this.getImageDimensions(i);if(!n){this.setAiStatus("Unable to read target dimensions.");return}let r=el(this.aiOutputDataUrl,"ai-output.png");if(!r)return;let a=await this.showManualCropModal(r,n,i);if(!a)return;let s=await lh(a);s&&this.setAiOutput(s)}handleAiDownload(){var n;if(!this.aiOutputDataUrl)return;let t=(n=this.getSelectedAssetKey())!=null?n:"ai-image",i=document.createElement("a");i.href=this.aiOutputDataUrl,i.download=`${t}-ai.png`,i.click()}handleAssetValueChange(t,i){this.previewModal&&this.closePreviewModal(),this.scheduleAutoApply(),this.updatePreviewIfOpen(t,i.value,i.dataset.assetType)}async handleAssetUpload(t,i,n){let r=i.value,a=t;if(t.type.startsWith("image/")){let c=await this.getImageDimensions(r);if(c){let l=await this.showManualCropModal(t,c,r);if(!l)return;a=l}}let s=URL.createObjectURL(a),o=i.dataset.objectUrl;if(o)try{URL.revokeObjectURL(o)}catch{}i.dataset.objectUrl=s,i.dataset.assetType=a.type,i.value=s,this.handleAssetValueChange(n,i)}scheduleAutoApply(){this.options&&(this.autoApplyTimer&&window.clearTimeout(this.autoApplyTimer),console.log("[CustomizePanel] Scheduling auto-apply in 250ms"),this.autoApplyTimer=window.setTimeout(()=>{this.autoApplyTimer=null,console.log("[CustomizePanel] Executing auto-apply now"),this.handleApplyWithSource("auto")},250))}previewAsset(t,i,n,r){if(!i)return;let a=this.resolveAssetUrls(i);if(a.length===0)return;let s=n||this.guessMimeType(i);this.activePreviewKey=t,this.activePreviewValue=i,this.activePreviewFileInput=r!=null?r:null,this.openPreviewModal(t,i,a,s)}resolveAssetUrls(t){let i=t.trim();if(!i)return[];if(console.log("[CustomizePanel] Resolving asset urls for:",i),/^(blob:|data:|https?:|\/)/.test(i))return console.log("[CustomizePanel] Path is absolute or data/blob, using as is"),[i];let n=i.replace(/^\.?\//,""),r=[];return n.startsWith("raw/")?r=[`/${n}`,`/assets/${n}`]:n.startsWith("assets/")?r=[`/${n}`]:r=[`/raw/${n}`,`/assets/raw/${n}`,`/assets/${n}`,`/${n}`],console.log("[CustomizePanel] Resolved to possible paths:",r),r}guessMimeType(t){let i=t.toLowerCase();return i.endsWith(".png")||i.endsWith(".jpg")||i.endsWith(".jpeg")||i.endsWith(".gif")||i.endsWith(".webp")||i.endsWith(".svg")?"image":i.endsWith(".mp3")||i.endsWith(".wav")||i.endsWith(".ogg")?"audio":i.endsWith(".json")?"json":"file"}openPreviewModal(t,i,n,r){this.closePreviewModal(!0);let a=document.createElement("div");a.className="asset-preview-modal",a.innerHTML=`
891
891
  <div class="asset-preview-card">
892
892
  <div class="asset-preview-header">
893
893
  <div class="asset-preview-title">${t}</div>
@@ -933,7 +933,7 @@ Generate the requested asset matching the brand style.${e.needsTransparency?" Ba
933
933
  <button class="asset-crop-apply" type="button">Apply Crop</button>
934
934
  </div>
935
935
  </div>
936
- `;let v=l.querySelector(".asset-crop-canvas"),y=l.querySelector(".asset-crop-preview"),x=l.querySelector(".asset-crop-zoom"),w=l.querySelector(".asset-crop-zoom-value"),E=l.querySelector(".asset-crop-close"),A=l.querySelector(".asset-crop-cancel"),S=l.querySelector(".asset-crop-apply"),k=l.querySelector(".asset-crop-reset");if(!v||!y||!x||!w){c(null);return}let I=v.getContext("2d"),_=y.getContext("2d");if(!I||!_){c(null);return}let C=s.naturalWidth,R=s.naturalHeight,M=Math.max(v.width/C,v.height/R),O=1,T=0,j=0,L=!1,D=0,$=0,ue=0,V=0,se=()=>{let N=M*O,Be=Math.max(0,(C*N-v.width)/2),Je=Math.max(0,(R*N-v.height)/2);T=Math.min(Be,Math.max(-Be,T)),j=Math.min(Je,Math.max(-Je,j))},oe=()=>{let N=M*O;I.clearRect(0,0,v.width,v.height);let Be=v.width/2-C*N/2+T,Je=v.height/2-R*N/2+j;if(I.drawImage(s,Be,Je,C*N,R*N),_.clearRect(0,0,y.width,y.height),o!=null&&o.naturalWidth&&(o!=null&&o.naturalHeight)){let et=Math.max(y.width/o.naturalWidth,y.height/o.naturalHeight),si=y.width/2-o.naturalWidth*et/2,yt=y.height/2-o.naturalHeight*et/2;_.drawImage(o,si,yt,o.naturalWidth*et,o.naturalHeight*et)}else _.fillStyle="rgba(255, 255, 255, 0.04)",_.fillRect(0,0,y.width,y.height),_.strokeStyle="rgba(255, 255, 255, 0.08)",_.strokeRect(4,4,y.width-8,y.height-8);let vt=y.width/v.width*(M*O),Qe=T*(y.width/v.width),zt=j*(y.height/v.height),ri=y.width/2-C*vt/2+Qe,ai=y.height/2-R*vt/2+zt;_.save(),_.globalAlpha=.7,_.drawImage(s,ri,ai,C*vt,R*vt),_.restore()},be=()=>{T=0,j=0,se(),oe()};x.addEventListener("input",()=>{O=Number(x.value),w.textContent=`${O.toFixed(2)}\xD7`,se(),oe()}),v.addEventListener("pointerdown",N=>{L=!0,D=N.clientX,$=N.clientY,ue=T,V=j,v.setPointerCapture(N.pointerId)}),v.addEventListener("pointermove",N=>{L&&(T=ue+(N.clientX-D),j=V+(N.clientY-$),se(),oe())}),v.addEventListener("pointerup",N=>{L=!1,v.releasePointerCapture(N.pointerId)}),v.addEventListener("pointerleave",()=>{L=!1});let bt=()=>{l.remove()},ni=()=>{bt(),c(null)},ir=async()=>{let N=document.createElement("canvas");N.width=i.width,N.height=i.height;let Be=N.getContext("2d");if(!Be){bt(),c(null);return}let Je=O,Qe=Math.max(N.width/C,N.height/R)*Je,zt=N.width/v.width,ri=T*zt,ai=j*zt,et=N.width/2-C*Qe/2+ri,si=N.height/2-R*Qe/2+ai;Be.drawImage(s,et,si,C*Qe,R*Qe);let yt=await new Promise(nr=>{N.toBlob(rr=>nr(rr),t.type||"image/png")});if(bt(),!yt){c(null);return}c(new File([yt],t.name,{type:yt.type}))};E==null||E.addEventListener("click",ni),A==null||A.addEventListener("click",ni),k==null||k.addEventListener("click",be),S==null||S.addEventListener("click",()=>{ir()}),l.addEventListener("click",N=>{N.target===l&&ni()}),document.body.appendChild(l),be()})}async loadImageForValue(t){let i=this.resolveAssetUrls(t);if(!i.length)return null;for(let n of i){let r=await this.loadImage(n);if(r)return r}return null}};var wa=class{constructor(){this.root=null;this.options=null}render(){return`
936
+ `;let v=l.querySelector(".asset-crop-canvas"),y=l.querySelector(".asset-crop-preview"),x=l.querySelector(".asset-crop-zoom"),w=l.querySelector(".asset-crop-zoom-value"),E=l.querySelector(".asset-crop-close"),A=l.querySelector(".asset-crop-cancel"),S=l.querySelector(".asset-crop-apply"),k=l.querySelector(".asset-crop-reset");if(!v||!y||!x||!w){c(null);return}let I=v.getContext("2d"),_=y.getContext("2d");if(!I||!_){c(null);return}let C=s.naturalWidth,R=s.naturalHeight,M=Math.max(v.width/C,v.height/R),O=1,T=0,j=0,L=!1,D=0,$=0,ue=0,Y=0,se=()=>{let F=M*O,Be=Math.max(0,(C*F-v.width)/2),Je=Math.max(0,(R*F-v.height)/2);T=Math.min(Be,Math.max(-Be,T)),j=Math.min(Je,Math.max(-Je,j))},oe=()=>{let F=M*O;I.clearRect(0,0,v.width,v.height);let Be=v.width/2-C*F/2+T,Je=v.height/2-R*F/2+j;if(I.drawImage(s,Be,Je,C*F,R*F),_.clearRect(0,0,y.width,y.height),o!=null&&o.naturalWidth&&(o!=null&&o.naturalHeight)){let et=Math.max(y.width/o.naturalWidth,y.height/o.naturalHeight),si=y.width/2-o.naturalWidth*et/2,yt=y.height/2-o.naturalHeight*et/2;_.drawImage(o,si,yt,o.naturalWidth*et,o.naturalHeight*et)}else _.fillStyle="rgba(255, 255, 255, 0.04)",_.fillRect(0,0,y.width,y.height),_.strokeStyle="rgba(255, 255, 255, 0.08)",_.strokeRect(4,4,y.width-8,y.height-8);let vt=y.width/v.width*(M*O),Qe=T*(y.width/v.width),zt=j*(y.height/v.height),ri=y.width/2-C*vt/2+Qe,ai=y.height/2-R*vt/2+zt;_.save(),_.globalAlpha=.7,_.drawImage(s,ri,ai,C*vt,R*vt),_.restore()},be=()=>{T=0,j=0,se(),oe()};x.addEventListener("input",()=>{O=Number(x.value),w.textContent=`${O.toFixed(2)}\xD7`,se(),oe()}),v.addEventListener("pointerdown",F=>{L=!0,D=F.clientX,$=F.clientY,ue=T,Y=j,v.setPointerCapture(F.pointerId)}),v.addEventListener("pointermove",F=>{L&&(T=ue+(F.clientX-D),j=Y+(F.clientY-$),se(),oe())}),v.addEventListener("pointerup",F=>{L=!1,v.releasePointerCapture(F.pointerId)}),v.addEventListener("pointerleave",()=>{L=!1});let bt=()=>{l.remove()},ni=()=>{bt(),c(null)},ir=async()=>{let F=document.createElement("canvas");F.width=i.width,F.height=i.height;let Be=F.getContext("2d");if(!Be){bt(),c(null);return}let Je=O,Qe=Math.max(F.width/C,F.height/R)*Je,zt=F.width/v.width,ri=T*zt,ai=j*zt,et=F.width/2-C*Qe/2+ri,si=F.height/2-R*Qe/2+ai;Be.drawImage(s,et,si,C*Qe,R*Qe);let yt=await new Promise(nr=>{F.toBlob(rr=>nr(rr),t.type||"image/png")});if(bt(),!yt){c(null);return}c(new File([yt],t.name,{type:yt.type}))};E==null||E.addEventListener("click",ni),A==null||A.addEventListener("click",ni),k==null||k.addEventListener("click",be),S==null||S.addEventListener("click",()=>{ir()}),l.addEventListener("click",F=>{F.target===l&&ni()}),document.body.appendChild(l),be()})}async loadImageForValue(t){let i=this.resolveAssetUrls(t);if(!i.length)return null;for(let n of i){let r=await this.loadImage(n);if(r)return r}return null}};var wa=class{constructor(){this.root=null;this.options=null}render(){return`
937
937
  <div class="scene-panel loading-screen-panel panel-accent-purple" data-panel="loading-screen">
938
938
  <div class="scene-panel-header" data-panel-handle>
939
939
  <div class="panel-title">
@@ -999,10 +999,10 @@ Generate the requested asset matching the brand style.${e.needsTransparency?" Ba
999
999
  </div>
1000
1000
  </div>
1001
1001
  </div>
1002
- `}initialize(t,i){var v,y,x,w,E,A,S,k,I,_,C,R,M,O,T,j;this.options=i,this.root=t.querySelector('[data-panel="loading-screen"]');let r=(()=>{var D;let L=window.getEditableEngineConfig;if(typeof L=="function"){let $=L();return(D=$==null?void 0:$.loading)!=null?D:{}}return{}})(),a=(v=this.root)==null?void 0:v.querySelector("#loading-screen-type");a&&(a.value=r.type==="image"?"image":"color",a.addEventListener("change",()=>{var L,D;(D=(L=this.options)==null?void 0:L.onUpdateLoading)==null||D.call(L,{type:a.value}),this.updateFieldVisibility(a.value)}));let s=(y=this.root)==null?void 0:y.querySelector("#loading-background-color");s&&(s.value=r.background_color||"#160a17",s.addEventListener("input",()=>{var L,D;(D=(L=this.options)==null?void 0:L.onUpdateLoading)==null||D.call(L,{background_color:s.value})}));let o=(x=this.root)==null?void 0:x.querySelector("#loading-overlay-alpha"),c=(w=this.root)==null?void 0:w.querySelector("#loading-overlay-alpha-value");o&&(o.value=String((E=r.overlay_alpha)!=null?E:1),c&&(c.textContent=Number(o.value).toFixed(2)),o.addEventListener("input",()=>{var D,$;let L=Number(o.value);c&&(c.textContent=L.toFixed(2)),($=(D=this.options)==null?void 0:D.onUpdateLoading)==null||$.call(D,{overlay_alpha:L})}));let l=(A=this.root)==null?void 0:A.querySelector("#loading-text");l&&(l.value=r.text||"",l.addEventListener("input",()=>{var L,D;(D=(L=this.options)==null?void 0:L.onUpdateLoading)==null||D.call(L,{text:l.value})}));let d=(S=this.root)==null?void 0:S.querySelector("#loading-text-scale"),u=(k=this.root)==null?void 0:k.querySelector("#loading-text-scale-value");d&&(d.value=String((I=r.text_scale)!=null?I:.6),u&&(u.textContent=Number(d.value).toFixed(2)),d.addEventListener("input",()=>{var D,$;let L=Number(d.value);u&&(u.textContent=L.toFixed(2)),($=(D=this.options)==null?void 0:D.onUpdateLoading)==null||$.call(D,{text_scale:L})}));let p=(_=this.root)==null?void 0:_.querySelector("#loading-enabled");p&&(p.checked=r.enabled!==!1,p.addEventListener("change",()=>{var L,D;(D=(L=this.options)==null?void 0:L.onUpdateLoading)==null||D.call(L,{enabled:p.checked})}));let f=(C=this.root)==null?void 0:C.querySelector("#loading-blur-enabled");f&&(f.checked=r.blur_enabled!==!1,f.addEventListener("change",()=>{var L,D;(D=(L=this.options)==null?void 0:L.onUpdateLoading)==null||D.call(L,{blur_enabled:f.checked})}));let g=(R=this.root)==null?void 0:R.querySelector("#loading-blur-strength"),h=(M=this.root)==null?void 0:M.querySelector("#loading-blur-strength-value");g&&(g.value=String((O=r.blur_strength)!=null?O:8),h&&(h.textContent=g.value),g.addEventListener("input",()=>{var L,D;h&&(h.textContent=g.value),(D=(L=this.options)==null?void 0:L.onUpdateLoading)==null||D.call(L,{blur_strength:Number(g.value)})}));let m=(T=this.root)==null?void 0:T.querySelector("#loading-show-btn"),b=(j=this.root)==null?void 0:j.querySelector("#loading-hide-btn");m==null||m.addEventListener("click",()=>{var L,D;(D=(L=this.options)==null?void 0:L.onShowLoadingScreen)==null||D.call(L)}),b==null||b.addEventListener("click",()=>{var L,D;(D=(L=this.options)==null?void 0:L.onHideLoadingScreen)==null||D.call(L)}),this.updateFieldVisibility(r.type==="image"?"image":"color")}updateFieldVisibility(t){var r,a;let i=(r=this.root)==null?void 0:r.querySelector("#loading-color-field"),n=(a=this.root)==null?void 0:a.querySelector("#loading-alpha-field");t==="image"?(i&&(i.style.display="none"),n&&(n.style.display="none")):(i&&(i.style.display=""),n&&(n.style.display=""))}refresh(){}};import{Assets as _a}from"pixi.js";async function yh(e,t,i){var n,r;console.log("[LIBRARY] applyAssetChange called with:",t,i);try{let a=Date.now(),o=`/${`raw/library/${t}/${i}`}?t=${a}`;console.log("[LIBRARY] Loading texture from:",o);let c=await _a.load(o);if(!c){console.error("[LIBRARY] Failed to load texture:",o);return}let l=window.CustomAssets,d=Object.keys(l||{}).filter(p=>{let f=t.replace(/s$/,"");return p.startsWith(f)||p.includes(f)});for(let p of d)He[p]=c,console.log("[LIBRARY] \u2705 Updated AssetTextures."+p),(n=l[p])!=null&&n.texture&&(l[p].texture=c,console.log("[LIBRARY] \u2705 Updated CustomAssets."+p+".texture"));let u=window.gameObjectManager;if(u)for(let p of d){let f=u.get(p);if(f){let g=((r=f.getDisplayObject)==null?void 0:r.call(f))||f.pixiObject||f;g!=null&&g.texture&&(g.texture=c,console.log("[LIBRARY] \u2705 Applied to display object:",p))}}}catch(a){console.error("[LIBRARY] Error applying asset change:",a)}}async function xh(e,t){var i,n,r;console.log("[LIBRARY] resetAsset called for:",t);try{let a=window.getEditableAssets,s=typeof a=="function"?a():null,o=(i=s==null?void 0:s.slots)==null?void 0:i.find(m=>m.category===t),c=o==null?void 0:o.defaultAsset;if(!c){console.warn("[LIBRARY] Could not find default asset for:",t);return}let l=Date.now(),d=`/raw/${c}?t=${l}`;console.log("[LIBRARY] Loading default texture from:",d);let u=await _a.load(d);if(!u){console.error("[LIBRARY] Failed to load default texture:",d);return}let p=window.CustomAssets,f=t.replace(/s$/,""),g=Object.keys(p||{}).filter(m=>m.startsWith(f)||m.includes(f));for(let m of g)He[m]=u,console.log("[LIBRARY] \u2705 Reset AssetTextures."+m),(n=p[m])!=null&&n.texture&&(p[m].texture=u,console.log("[LIBRARY] \u2705 Reset CustomAssets."+m+" to default"));let h=window.gameObjectManager;if(h)for(let m of g){let b=h.get(m);if(b){let v=((r=b.getDisplayObject)==null?void 0:r.call(b))||b.pixiObject||b;v!=null&&v.texture&&(v.texture=u,console.log("[LIBRARY] \u2705 Reset display object:",m))}}}catch(a){console.error("[LIBRARY] Error resetting asset:",a)}}async function wh(e,t,i,n){var r,a,s,o,c,l,d,u,p,f,g,h,m,b,v;console.log("[LIBRARY] applySlotAsset:",{objectId:t,assetFilename:i,category:n});try{let y=t.startsWith("json.")?t.replace("json.",""):t;console.log("[LIBRARY] Asset key:",y);let x=Date.now(),w=`/raw/library/${n}/${i}?t=${x}`;console.log("[LIBRARY] Loading texture from:",w);let E=await _a.load(w);if(!E){console.error("[LIBRARY] Failed to load texture:",w);return}console.log("[LIBRARY] \u2705 Texture loaded"),He[y]=E,console.log("[LIBRARY] \u2705 Updated AssetTextures."+y);let A=window.CustomAssets;A!=null&&A[y]&&(A[y].texture=E,console.log("[LIBRARY] \u2705 Updated legacy CustomAssets."+y));let S=window.gameObjectManager;if(console.log("[LIBRARY] gameObjectManager exists?",!!S),S){let I=Array.from(((r=S.keys)==null?void 0:r.call(S))||[]).slice(0,10);console.log("[LIBRARY] Available gameObject keys (first 10):",I);let _=S.get(y);if(console.log("[LIBRARY] gameObject for "+y+"?",!!_),_){let C=((a=_.getDisplayObject)==null?void 0:a.call(_))||_.pixiObject||_.pixi||_,R=(s=C==null?void 0:C.constructor)==null?void 0:s.name;if(console.log("[LIBRARY] displayObject:",C),console.log("[LIBRARY] displayObject type:",R),console.log("[LIBRARY] has texture?",!!(C!=null&&C.texture)),C!=null&&C.texture)C.texture=E,console.log("[LIBRARY] \u2705 Applied to display object:",y);else if(R==="Text"){console.log("[LIBRARY] \u{1F504} Converting Text to Sprite...");let{Sprite:M}=await import("pixi.js"),O=C.parent,T=(c=(o=O==null?void 0:O.getChildIndex)==null?void 0:o.call(O,C))!=null?c:0,j={x:C.x,y:C.y},L={x:(d=(l=C.anchor)==null?void 0:l.x)!=null?d:.5,y:(p=(u=C.anchor)==null?void 0:u.y)!=null?p:.5},D={x:(g=(f=C.scale)==null?void 0:f.x)!=null?g:1,y:(m=(h=C.scale)==null?void 0:h.y)!=null?m:1},$=(b=C.alpha)!=null?b:1,ue=(v=C.visible)!=null?v:!0,V=new M(E);V.anchor.set(L.x,L.y),V.position.set(j.x,j.y),V.scale.set(D.x,D.y),V.alpha=$,V.visible=ue,O&&(O.removeChild(C),O.addChildAt(V,T),console.log("[LIBRARY] \u2705 Replaced Text with Sprite in parent")),_.pixiObject&&(_.pixiObject=V),_.pixi&&(_.pixi=V),console.log("[LIBRARY] \u2705 Text \u2192 Sprite conversion complete")}else if(C!=null&&C.children){let M=C.children.find(O=>O.texture);M?(M.texture=E,console.log("[LIBRARY] \u2705 Applied to child sprite")):console.warn("[LIBRARY] \u26A0\uFE0F No texture found in displayObject or children")}}}let k=`raw/library/${n}/${i}`;tn({objectId:y,path:"render.asset.path",value:k}),console.log("[LIBRARY] \u2705 Staged config override for:",y,"path:",k)}catch(y){console.error("[LIBRARY] Error applying slot asset:",y)}}async function _h(e,t,i,n){var r;console.log("[LIBRARY] resetSlotAsset:",{objectId:t,defaultAsset:i,category:n});try{let a=t.startsWith("json.")?t.replace("json.",""):t,s=Date.now(),o=`/raw/${i}?t=${s}`;console.log("[LIBRARY] Loading default texture from:",o);let c=await _a.load(o);if(!c){console.error("[LIBRARY] Failed to load default texture:",o);return}He[a]=c,console.log("[LIBRARY] \u2705 Reset AssetTextures."+a);let l=window.CustomAssets;l!=null&&l[a]&&(l[a].texture=c,console.log("[LIBRARY] \u2705 Reset CustomAssets."+a+" to default"));let d=window.gameObjectManager;if(d){let u=d.get(a);if(u){let p=((r=u.getDisplayObject)==null?void 0:r.call(u))||u.pixiObject||u;p!=null&&p.texture&&(p.texture=c,console.log("[LIBRARY] \u2705 Reset display object:",a))}}tn({objectId:a,path:"render.asset.path",value:i}),console.log("[LIBRARY] \u2705 Reset config override for:",a)}catch(a){console.error("[LIBRARY] Error resetting slot asset:",a)}}import{Graphics as Th,Point as fx}from"pixi.js";import{Point as Eh}from"pixi.js";var It=()=>window.debugConfig||{},Sh=()=>window.resolveAnchorVec2||(e=>({x:.5,y:.5})),Ah=()=>window.resolveScreenAnchorPoint||(()=>new Eh),Ch=()=>window.resolveScreenRatioPoint||(()=>new Eh);function kh(e){Ea(e)&&(e.objectDebugRaf||(e.objectDebugRaf=window.requestAnimationFrame(()=>Sa(e))))}function Lh(e){e.objectDebugRaf&&(window.cancelAnimationFrame(e.objectDebugRaf),e.objectDebugRaf=null),Nn(e)}function Ea(e){return e.isDebugOpen}function Sa(e){var a,s,o;if(!Ea(e)){e.objectDebugRaf=null;return}e.objectDebugRaf=window.requestAnimationFrame(()=>Sa(e));let t=il(e);if(!t){Fn(e,null),Nn(e);return}let i=nl(e,t);if(!i){Fn(e,null),Nn(e);return}let n=new fx;(a=i.getGlobalPosition)==null||a.call(i,n);let r=rl(e,i);Fn(e,{instanceId:t,worldX:n.x,worldY:n.y,configX:(s=r==null?void 0:r.x)!=null?s:null,configY:(o=r==null?void 0:r.y)!=null?o:null}),e.highlightObject?ll(e,i):dl(e),e.highlightAnchor&&r?cl(e,r):ul(e)}function il(e){var r;let t=e.selectedObjectId;if(!t)return null;let i=window.__editableObjectInstances,n=(r=i==null?void 0:i.get)==null?void 0:r.call(i,t);return Array.isArray(n)&&n.length>0?n[0]:t}function nl(e,t){var r,a;let i=window.gameObjectManager,n=(r=i==null?void 0:i.get)==null?void 0:r.call(i,t);return n?((a=n.getDisplayObject)==null?void 0:a.call(n))||n.pixiObject||n:null}function Hn(e){let t=e.selectedObjectId;if(!t)return null;let i=window.getEditableObjectConfig;return typeof i!="function"?null:i(t)}function rl(e,t){var s,o;let i=Hn(e);if(!i)return null;let n=(s=i.transform)!=null?s:{},r=al(e);if(!r)return null;if(n.position_ratio!=null)return Ch()(r.width,r.height,n.position_ratio);let a=(o=n.anchor)!=null?o:"center";return Ah()(r.width,r.height,a)}function al(e){var a;let t=(a=e.container)==null?void 0:a.querySelector(".game-container"),i=Number(t==null?void 0:t.dataset.screenWidth),n=Number(t==null?void 0:t.dataset.screenHeight);if(Number.isFinite(i)&&i>0&&Number.isFinite(n)&&n>0)return{width:i,height:n};let r=window.gameApp;return r!=null&&r.renderer?{width:r.renderer.width,height:r.renderer.height}:null}function sl(e){let t=window.gameApp;return t!=null&&t.stage?(e.objectBoundsGfx&&e.objectBoundsGfx.parent!==t.stage&&(e.objectBoundsGfx.destroy(),e.objectBoundsGfx=null),e.objectBoundsGfx||(e.objectBoundsGfx=new Th,e.objectBoundsGfx.zIndex=999999,t.stage.addChild(e.objectBoundsGfx)),e.objectBoundsGfx):null}function ol(e){let t=window.gameApp;return t!=null&&t.stage?(e.objectAnchorGfx&&e.objectAnchorGfx.parent!==t.stage&&(e.objectAnchorGfx.destroy(),e.objectAnchorGfx=null),e.objectAnchorGfx||(e.objectAnchorGfx=new Th,e.objectAnchorGfx.zIndex=1e6,t.stage.addChild(e.objectAnchorGfx)),e.objectAnchorGfx):null}function ll(e,t){var r;let i=sl(e);if(!i)return;let n=(r=t.getBounds)==null?void 0:r.call(t);n&&(i.clear(),i.rect(n.x,n.y,n.width,n.height).stroke({width:2,color:16726832,alpha:.9}))}function cl(e,t){let i=ol(e);if(!i)return;let n=6;i.clear(),i.moveTo(t.x-n,t.y),i.lineTo(t.x+n,t.y),i.moveTo(t.x,t.y-n),i.lineTo(t.x,t.y+n),i.stroke({width:2,color:3066993,alpha:.9})}function dl(e){e.objectBoundsGfx&&e.objectBoundsGfx.clear()}function ul(e){e.objectAnchorGfx&&e.objectAnchorGfx.clear()}function Nn(e){e.objectBoundsGfx&&(e.objectBoundsGfx.destroy(),e.objectBoundsGfx=null),e.objectAnchorGfx&&(e.objectAnchorGfx.destroy(),e.objectAnchorGfx=null)}function Fn(e,t){e.sceneToolsPanel.updateInfo(t?{instanceId:t.instanceId,worldX:t.worldX,worldY:t.worldY,anchorX:t.configX,anchorY:t.configY}:null)}function Rh(e,t){return t.split(".").reduce((i,n)=>i?i[n]:void 0,e)}function Mh(e,t,i){var s;let n=t.split("."),r=n.pop(),a=e;for(let o of n)a[o]=(s=a[o])!=null?s:{},a=a[o];a[r]=i}function pl(e){var n,r,a,s,o;if(!e)return!1;if((n=e.transform)!=null&&n.offset)return!0;let t=((a=(r=e.identity)==null?void 0:r.category)!=null?a:"").toString().toLowerCase(),i=((o=(s=e.identity)==null?void 0:s.id)!=null?o:"").toString().toLowerCase();return t.includes("ui")||i.startsWith("ui")||i.includes("label")}function Ca(e){let t=It();t.layout&&(t.layout.scale_multiplier=1,t.layout.position_offset={x:0,y:0},t.layout.debug_rect_visible=!0,t.layout.debug_rect_color=16711680,t.layout.debug_rect_thickness=4),t.engine&&(t.engine.scale=1,t.engine.background_scale=1.05,t.engine.label_pulse_speed=3,t.engine.label_pulse_intensity=.03),t.physics&&(t.physics.rope_length=420),window.location.reload()}function Ph(e){window.location.reload()}function Ta(e){let t=JSON.stringify(It(),null,2);navigator.clipboard.writeText(t).then(()=>{alert("Debug config copied to clipboard!")}).catch(()=>{console.log(t),alert("Config logged to console (clipboard not available)")})}async function Ih(e,t){var i,n,r;if(!(!e.configViewer||!e.container))try{let a=window.getEditableObjectConfig,s=typeof a=="function"?a(t):null;if(!s){let{loadObjectCentricConfig:o,loadObjectConfig:c}=await import("./config-44AFSRES.js"),u=(((i=(await o("scene.main")).scene)==null?void 0:i.objects)||[]).find(f=>f.object_config===t||f.instance_id===t);if(!u)return;let p=await c(u.object_config);console.log("[PREVIEW] Loaded object config (fallback)",t,p),Aa(e,p),(n=e.configViewer)==null||n.style.setProperty("display","block");return}console.log("[PREVIEW] Loaded object config",t,s),Aa(e,s),(r=e.configViewer)==null||r.style.setProperty("display","block");return}catch(a){console.error("[DEBUG] Failed to load object config:",a)}}function Aa(e,t){var u,p,f,g,h,m,b,v,y,x;if(!e.container)return;let i=e.container.querySelector("#config-pos-x"),n=e.container.querySelector("#config-pos-y"),r=e.container.querySelector("#config-scale"),a=e.container.querySelector("#config-anchor-x"),s=e.container.querySelector("#config-anchor-y"),c=pl(t)?(u=t.transform)==null?void 0:u.offset:(p=t.transform)==null?void 0:p.position;i&&(i.value=String((f=c==null?void 0:c.x)!=null?f:0)),n&&(n.value=String((g=c==null?void 0:c.y)!=null?g:0)),r&&(r.value=String((m=(h=t.transform)==null?void 0:h.scale)!=null?m:1));let l=(x=(y=(b=t.transform)==null?void 0:b.anchor)!=null?y:(v=t.render)==null?void 0:v.anchor)!=null?x:{x:.5,y:.5},d=Sh()(l);a&&(a.value=String(d.x)),s&&(s.value=String(d.y))}function Oh(e){var c,l,d,u,p,f,g,h,m,b;let t=e.selectedObjectId;if(!t||!e.container)return;let i=(l=(c=e.container.querySelector("#config-pos-x"))==null?void 0:c.value)!=null?l:"0",n=(u=(d=e.container.querySelector("#config-pos-y"))==null?void 0:d.value)!=null?u:"0",r=(f=(p=e.container.querySelector("#config-scale"))==null?void 0:p.value)!=null?f:"1",a=(h=(g=e.container.querySelector("#config-anchor-x"))==null?void 0:g.value)!=null?h:"0.5",s=(b=(m=e.container.querySelector("#config-anchor-y"))==null?void 0:m.value)!=null?b:"0.5",o=`${t}:
1002
+ `}initialize(t,i){var v,y,x,w,E,A,S,k,I,_,C,R,M,O,T,j;this.options=i,this.root=t.querySelector('[data-panel="loading-screen"]');let r=(()=>{var D;let L=window.getEditableEngineConfig;if(typeof L=="function"){let $=L();return(D=$==null?void 0:$.loading)!=null?D:{}}return{}})(),a=(v=this.root)==null?void 0:v.querySelector("#loading-screen-type");a&&(a.value=r.type==="image"?"image":"color",a.addEventListener("change",()=>{var L,D;(D=(L=this.options)==null?void 0:L.onUpdateLoading)==null||D.call(L,{type:a.value}),this.updateFieldVisibility(a.value)}));let s=(y=this.root)==null?void 0:y.querySelector("#loading-background-color");s&&(s.value=r.background_color||"#160a17",s.addEventListener("input",()=>{var L,D;(D=(L=this.options)==null?void 0:L.onUpdateLoading)==null||D.call(L,{background_color:s.value})}));let o=(x=this.root)==null?void 0:x.querySelector("#loading-overlay-alpha"),c=(w=this.root)==null?void 0:w.querySelector("#loading-overlay-alpha-value");o&&(o.value=String((E=r.overlay_alpha)!=null?E:1),c&&(c.textContent=Number(o.value).toFixed(2)),o.addEventListener("input",()=>{var D,$;let L=Number(o.value);c&&(c.textContent=L.toFixed(2)),($=(D=this.options)==null?void 0:D.onUpdateLoading)==null||$.call(D,{overlay_alpha:L})}));let l=(A=this.root)==null?void 0:A.querySelector("#loading-text");l&&(l.value=r.text||"",l.addEventListener("input",()=>{var L,D;(D=(L=this.options)==null?void 0:L.onUpdateLoading)==null||D.call(L,{text:l.value})}));let d=(S=this.root)==null?void 0:S.querySelector("#loading-text-scale"),u=(k=this.root)==null?void 0:k.querySelector("#loading-text-scale-value");d&&(d.value=String((I=r.text_scale)!=null?I:.6),u&&(u.textContent=Number(d.value).toFixed(2)),d.addEventListener("input",()=>{var D,$;let L=Number(d.value);u&&(u.textContent=L.toFixed(2)),($=(D=this.options)==null?void 0:D.onUpdateLoading)==null||$.call(D,{text_scale:L})}));let p=(_=this.root)==null?void 0:_.querySelector("#loading-enabled");p&&(p.checked=r.enabled!==!1,p.addEventListener("change",()=>{var L,D;(D=(L=this.options)==null?void 0:L.onUpdateLoading)==null||D.call(L,{enabled:p.checked})}));let f=(C=this.root)==null?void 0:C.querySelector("#loading-blur-enabled");f&&(f.checked=r.blur_enabled!==!1,f.addEventListener("change",()=>{var L,D;(D=(L=this.options)==null?void 0:L.onUpdateLoading)==null||D.call(L,{blur_enabled:f.checked})}));let g=(R=this.root)==null?void 0:R.querySelector("#loading-blur-strength"),h=(M=this.root)==null?void 0:M.querySelector("#loading-blur-strength-value");g&&(g.value=String((O=r.blur_strength)!=null?O:8),h&&(h.textContent=g.value),g.addEventListener("input",()=>{var L,D;h&&(h.textContent=g.value),(D=(L=this.options)==null?void 0:L.onUpdateLoading)==null||D.call(L,{blur_strength:Number(g.value)})}));let m=(T=this.root)==null?void 0:T.querySelector("#loading-show-btn"),b=(j=this.root)==null?void 0:j.querySelector("#loading-hide-btn");m==null||m.addEventListener("click",()=>{var L,D;(D=(L=this.options)==null?void 0:L.onShowLoadingScreen)==null||D.call(L)}),b==null||b.addEventListener("click",()=>{var L,D;(D=(L=this.options)==null?void 0:L.onHideLoadingScreen)==null||D.call(L)}),this.updateFieldVisibility(r.type==="image"?"image":"color")}updateFieldVisibility(t){var r,a;let i=(r=this.root)==null?void 0:r.querySelector("#loading-color-field"),n=(a=this.root)==null?void 0:a.querySelector("#loading-alpha-field");t==="image"?(i&&(i.style.display="none"),n&&(n.style.display="none")):(i&&(i.style.display=""),n&&(n.style.display=""))}refresh(){}};import{Assets as _a}from"pixi.js";async function wh(e,t,i){var n,r;console.log("[LIBRARY] applyAssetChange called with:",t,i);try{let a=Date.now(),o=`/${`raw/library/${t}/${i}`}?t=${a}`;console.log("[LIBRARY] Loading texture from:",o);let c=await _a.load(o);if(!c){console.error("[LIBRARY] Failed to load texture:",o);return}let l=window.CustomAssets,d=Object.keys(l||{}).filter(p=>{let f=t.replace(/s$/,"");return p.startsWith(f)||p.includes(f)});for(let p of d)He[p]=c,console.log("[LIBRARY] \u2705 Updated AssetTextures."+p),(n=l[p])!=null&&n.texture&&(l[p].texture=c,console.log("[LIBRARY] \u2705 Updated CustomAssets."+p+".texture"));let u=window.gameObjectManager;if(u)for(let p of d){let f=u.get(p);if(f){let g=((r=f.getDisplayObject)==null?void 0:r.call(f))||f.pixiObject||f;g!=null&&g.texture&&(g.texture=c,console.log("[LIBRARY] \u2705 Applied to display object:",p))}}}catch(a){console.error("[LIBRARY] Error applying asset change:",a)}}async function _h(e,t){var i,n,r;console.log("[LIBRARY] resetAsset called for:",t);try{let a=window.getEditableAssets,s=typeof a=="function"?a():null,o=(i=s==null?void 0:s.slots)==null?void 0:i.find(m=>m.category===t),c=o==null?void 0:o.defaultAsset;if(!c){console.warn("[LIBRARY] Could not find default asset for:",t);return}let l=Date.now(),d=`/raw/${c}?t=${l}`;console.log("[LIBRARY] Loading default texture from:",d);let u=await _a.load(d);if(!u){console.error("[LIBRARY] Failed to load default texture:",d);return}let p=window.CustomAssets,f=t.replace(/s$/,""),g=Object.keys(p||{}).filter(m=>m.startsWith(f)||m.includes(f));for(let m of g)He[m]=u,console.log("[LIBRARY] \u2705 Reset AssetTextures."+m),(n=p[m])!=null&&n.texture&&(p[m].texture=u,console.log("[LIBRARY] \u2705 Reset CustomAssets."+m+" to default"));let h=window.gameObjectManager;if(h)for(let m of g){let b=h.get(m);if(b){let v=((r=b.getDisplayObject)==null?void 0:r.call(b))||b.pixiObject||b;v!=null&&v.texture&&(v.texture=u,console.log("[LIBRARY] \u2705 Reset display object:",m))}}}catch(a){console.error("[LIBRARY] Error resetting asset:",a)}}async function Eh(e,t,i,n){var r,a,s,o,c,l,d,u,p,f,g,h,m,b,v;console.log("[LIBRARY] applySlotAsset:",{objectId:t,assetFilename:i,category:n});try{let y=t.startsWith("json.")?t.replace("json.",""):t;console.log("[LIBRARY] Asset key:",y);let x=Date.now(),w=`/raw/library/${n}/${i}?t=${x}`;console.log("[LIBRARY] Loading texture from:",w);let E=await _a.load(w);if(!E){console.error("[LIBRARY] Failed to load texture:",w);return}console.log("[LIBRARY] \u2705 Texture loaded"),He[y]=E,console.log("[LIBRARY] \u2705 Updated AssetTextures."+y);let A=window.CustomAssets;A!=null&&A[y]&&(A[y].texture=E,console.log("[LIBRARY] \u2705 Updated legacy CustomAssets."+y));let S=window.gameObjectManager;if(console.log("[LIBRARY] gameObjectManager exists?",!!S),S){let I=Array.from(((r=S.keys)==null?void 0:r.call(S))||[]).slice(0,10);console.log("[LIBRARY] Available gameObject keys (first 10):",I);let _=S.get(y);if(console.log("[LIBRARY] gameObject for "+y+"?",!!_),_){let C=((a=_.getDisplayObject)==null?void 0:a.call(_))||_.pixiObject||_.pixi||_,R=(s=C==null?void 0:C.constructor)==null?void 0:s.name;if(console.log("[LIBRARY] displayObject:",C),console.log("[LIBRARY] displayObject type:",R),console.log("[LIBRARY] has texture?",!!(C!=null&&C.texture)),C!=null&&C.texture)C.texture=E,console.log("[LIBRARY] \u2705 Applied to display object:",y);else if(R==="Text"){console.log("[LIBRARY] \u{1F504} Converting Text to Sprite...");let{Sprite:M}=await import("pixi.js"),O=C.parent,T=(c=(o=O==null?void 0:O.getChildIndex)==null?void 0:o.call(O,C))!=null?c:0,j={x:C.x,y:C.y},L={x:(d=(l=C.anchor)==null?void 0:l.x)!=null?d:.5,y:(p=(u=C.anchor)==null?void 0:u.y)!=null?p:.5},D={x:(g=(f=C.scale)==null?void 0:f.x)!=null?g:1,y:(m=(h=C.scale)==null?void 0:h.y)!=null?m:1},$=(b=C.alpha)!=null?b:1,ue=(v=C.visible)!=null?v:!0,Y=new M(E);Y.anchor.set(L.x,L.y),Y.position.set(j.x,j.y),Y.scale.set(D.x,D.y),Y.alpha=$,Y.visible=ue,O&&(O.removeChild(C),O.addChildAt(Y,T),console.log("[LIBRARY] \u2705 Replaced Text with Sprite in parent")),_.pixiObject&&(_.pixiObject=Y),_.pixi&&(_.pixi=Y),console.log("[LIBRARY] \u2705 Text \u2192 Sprite conversion complete")}else if(C!=null&&C.children){let M=C.children.find(O=>O.texture);M?(M.texture=E,console.log("[LIBRARY] \u2705 Applied to child sprite")):console.warn("[LIBRARY] \u26A0\uFE0F No texture found in displayObject or children")}}}let k=`raw/library/${n}/${i}`;tn({objectId:y,path:"render.asset.path",value:k}),console.log("[LIBRARY] \u2705 Staged config override for:",y,"path:",k)}catch(y){console.error("[LIBRARY] Error applying slot asset:",y)}}async function Sh(e,t,i,n){var r;console.log("[LIBRARY] resetSlotAsset:",{objectId:t,defaultAsset:i,category:n});try{let a=t.startsWith("json.")?t.replace("json.",""):t,s=Date.now(),o=`/raw/${i}?t=${s}`;console.log("[LIBRARY] Loading default texture from:",o);let c=await _a.load(o);if(!c){console.error("[LIBRARY] Failed to load default texture:",o);return}He[a]=c,console.log("[LIBRARY] \u2705 Reset AssetTextures."+a);let l=window.CustomAssets;l!=null&&l[a]&&(l[a].texture=c,console.log("[LIBRARY] \u2705 Reset CustomAssets."+a+" to default"));let d=window.gameObjectManager;if(d){let u=d.get(a);if(u){let p=((r=u.getDisplayObject)==null?void 0:r.call(u))||u.pixiObject||u;p!=null&&p.texture&&(p.texture=c,console.log("[LIBRARY] \u2705 Reset display object:",a))}}tn({objectId:a,path:"render.asset.path",value:i}),console.log("[LIBRARY] \u2705 Reset config override for:",a)}catch(a){console.error("[LIBRARY] Error resetting slot asset:",a)}}import{Graphics as Lh,Point as gx}from"pixi.js";import{Point as Ah}from"pixi.js";var It=()=>window.debugConfig||{},Ch=()=>window.resolveAnchorVec2||(e=>({x:.5,y:.5})),Th=()=>window.resolveScreenAnchorPoint||(()=>new Ah),kh=()=>window.resolveScreenRatioPoint||(()=>new Ah);function Rh(e){Ea(e)&&(e.objectDebugRaf||(e.objectDebugRaf=window.requestAnimationFrame(()=>Sa(e))))}function Mh(e){e.objectDebugRaf&&(window.cancelAnimationFrame(e.objectDebugRaf),e.objectDebugRaf=null),Fn(e)}function Ea(e){return e.isDebugOpen}function Sa(e){var a,s,o;if(!Ea(e)){e.objectDebugRaf=null;return}e.objectDebugRaf=window.requestAnimationFrame(()=>Sa(e));let t=rl(e);if(!t){Nn(e,null),Fn(e);return}let i=al(e,t);if(!i){Nn(e,null),Fn(e);return}let n=new gx;(a=i.getGlobalPosition)==null||a.call(i,n);let r=sl(e,i);Nn(e,{instanceId:t,worldX:n.x,worldY:n.y,configX:(s=r==null?void 0:r.x)!=null?s:null,configY:(o=r==null?void 0:r.y)!=null?o:null}),e.highlightObject?dl(e,i):pl(e),e.highlightAnchor&&r?ul(e,r):fl(e)}function rl(e){var r;let t=e.selectedObjectId;if(!t)return null;let i=window.__editableObjectInstances,n=(r=i==null?void 0:i.get)==null?void 0:r.call(i,t);return Array.isArray(n)&&n.length>0?n[0]:t}function al(e,t){var r,a;let i=window.gameObjectManager,n=(r=i==null?void 0:i.get)==null?void 0:r.call(i,t);return n?((a=n.getDisplayObject)==null?void 0:a.call(n))||n.pixiObject||n:null}function Hn(e){let t=e.selectedObjectId;if(!t)return null;let i=window.getEditableObjectConfig;return typeof i!="function"?null:i(t)}function sl(e,t){var s,o;let i=Hn(e);if(!i)return null;let n=(s=i.transform)!=null?s:{},r=ol(e);if(!r)return null;if(n.position_ratio!=null)return kh()(r.width,r.height,n.position_ratio);let a=(o=n.anchor)!=null?o:"center";return Th()(r.width,r.height,a)}function ol(e){var a;let t=(a=e.container)==null?void 0:a.querySelector(".game-container"),i=Number(t==null?void 0:t.dataset.screenWidth),n=Number(t==null?void 0:t.dataset.screenHeight);if(Number.isFinite(i)&&i>0&&Number.isFinite(n)&&n>0)return{width:i,height:n};let r=window.gameApp;return r!=null&&r.renderer?{width:r.renderer.width,height:r.renderer.height}:null}function ll(e){let t=window.gameApp;return t!=null&&t.stage?(e.objectBoundsGfx&&e.objectBoundsGfx.parent!==t.stage&&(e.objectBoundsGfx.destroy(),e.objectBoundsGfx=null),e.objectBoundsGfx||(e.objectBoundsGfx=new Lh,e.objectBoundsGfx.zIndex=999999,t.stage.addChild(e.objectBoundsGfx)),e.objectBoundsGfx):null}function cl(e){let t=window.gameApp;return t!=null&&t.stage?(e.objectAnchorGfx&&e.objectAnchorGfx.parent!==t.stage&&(e.objectAnchorGfx.destroy(),e.objectAnchorGfx=null),e.objectAnchorGfx||(e.objectAnchorGfx=new Lh,e.objectAnchorGfx.zIndex=1e6,t.stage.addChild(e.objectAnchorGfx)),e.objectAnchorGfx):null}function dl(e,t){var r;let i=ll(e);if(!i)return;let n=(r=t.getBounds)==null?void 0:r.call(t);n&&(i.clear(),i.rect(n.x,n.y,n.width,n.height).stroke({width:2,color:16726832,alpha:.9}))}function ul(e,t){let i=cl(e);if(!i)return;let n=6;i.clear(),i.moveTo(t.x-n,t.y),i.lineTo(t.x+n,t.y),i.moveTo(t.x,t.y-n),i.lineTo(t.x,t.y+n),i.stroke({width:2,color:3066993,alpha:.9})}function pl(e){e.objectBoundsGfx&&e.objectBoundsGfx.clear()}function fl(e){e.objectAnchorGfx&&e.objectAnchorGfx.clear()}function Fn(e){e.objectBoundsGfx&&(e.objectBoundsGfx.destroy(),e.objectBoundsGfx=null),e.objectAnchorGfx&&(e.objectAnchorGfx.destroy(),e.objectAnchorGfx=null)}function Nn(e,t){e.sceneToolsPanel.updateInfo(t?{instanceId:t.instanceId,worldX:t.worldX,worldY:t.worldY,anchorX:t.configX,anchorY:t.configY}:null)}function Ph(e,t){return t.split(".").reduce((i,n)=>i?i[n]:void 0,e)}function Ih(e,t,i){var s;let n=t.split("."),r=n.pop(),a=e;for(let o of n)a[o]=(s=a[o])!=null?s:{},a=a[o];a[r]=i}function hl(e){var n,r,a,s,o;if(!e)return!1;if((n=e.transform)!=null&&n.offset)return!0;let t=((a=(r=e.identity)==null?void 0:r.category)!=null?a:"").toString().toLowerCase(),i=((o=(s=e.identity)==null?void 0:s.id)!=null?o:"").toString().toLowerCase();return t.includes("ui")||i.startsWith("ui")||i.includes("label")}function Ca(e){let t=It();t.layout&&(t.layout.scale_multiplier=1,t.layout.position_offset={x:0,y:0},t.layout.debug_rect_visible=!0,t.layout.debug_rect_color=16711680,t.layout.debug_rect_thickness=4),t.engine&&(t.engine.scale=1,t.engine.background_scale=1.05,t.engine.label_pulse_speed=3,t.engine.label_pulse_intensity=.03),t.physics&&(t.physics.rope_length=420),window.location.reload()}function Oh(e){window.location.reload()}function Ta(e){let t=JSON.stringify(It(),null,2);navigator.clipboard.writeText(t).then(()=>{alert("Debug config copied to clipboard!")}).catch(()=>{console.log(t),alert("Config logged to console (clipboard not available)")})}async function Dh(e,t){var i,n,r;if(!(!e.configViewer||!e.container))try{let a=window.getEditableObjectConfig,s=typeof a=="function"?a(t):null;if(!s){let{loadObjectCentricConfig:o,loadObjectConfig:c}=await import("./config-44AFSRES.js"),u=(((i=(await o("scene.main")).scene)==null?void 0:i.objects)||[]).find(f=>f.object_config===t||f.instance_id===t);if(!u)return;let p=await c(u.object_config);console.log("[PREVIEW] Loaded object config (fallback)",t,p),Aa(e,p),(n=e.configViewer)==null||n.style.setProperty("display","block");return}console.log("[PREVIEW] Loaded object config",t,s),Aa(e,s),(r=e.configViewer)==null||r.style.setProperty("display","block");return}catch(a){console.error("[DEBUG] Failed to load object config:",a)}}function Aa(e,t){var u,p,f,g,h,m,b,v,y,x;if(!e.container)return;let i=e.container.querySelector("#config-pos-x"),n=e.container.querySelector("#config-pos-y"),r=e.container.querySelector("#config-scale"),a=e.container.querySelector("#config-anchor-x"),s=e.container.querySelector("#config-anchor-y"),c=hl(t)?(u=t.transform)==null?void 0:u.offset:(p=t.transform)==null?void 0:p.position;i&&(i.value=String((f=c==null?void 0:c.x)!=null?f:0)),n&&(n.value=String((g=c==null?void 0:c.y)!=null?g:0)),r&&(r.value=String((m=(h=t.transform)==null?void 0:h.scale)!=null?m:1));let l=(x=(y=(b=t.transform)==null?void 0:b.anchor)!=null?y:(v=t.render)==null?void 0:v.anchor)!=null?x:{x:.5,y:.5},d=Ch()(l);a&&(a.value=String(d.x)),s&&(s.value=String(d.y))}function jh(e){var c,l,d,u,p,f,g,h,m,b;let t=e.selectedObjectId;if(!t||!e.container)return;let i=(l=(c=e.container.querySelector("#config-pos-x"))==null?void 0:c.value)!=null?l:"0",n=(u=(d=e.container.querySelector("#config-pos-y"))==null?void 0:d.value)!=null?u:"0",r=(f=(p=e.container.querySelector("#config-scale"))==null?void 0:p.value)!=null?f:"1",a=(h=(g=e.container.querySelector("#config-anchor-x"))==null?void 0:g.value)!=null?h:"0.5",s=(b=(m=e.container.querySelector("#config-anchor-y"))==null?void 0:m.value)!=null?b:"0.5",o=`${t}:
1003
1003
  position: (${i}, ${n})
1004
1004
  scale: ${r}
1005
- anchor: (${a}, ${s})`;navigator.clipboard.writeText(o).then(()=>console.log("[DEBUG] Config values copied to clipboard")).catch(v=>console.error("[DEBUG] Failed to copy config values:",v))}async function fl(e,t){var u,p,f,g,h,m,b,v,y,x,w;if(console.log("[INSPECTOR] \u{1F527} applyObjectConfig called"),!e.container)return;let i=e.selectedObjectId;if(!i){console.warn("[PREVIEW] Apply object config clicked with no selection");return}let n=Number((p=(u=e.container.querySelector("#config-pos-x"))==null?void 0:u.value)!=null?p:0),r=Number((g=(f=e.container.querySelector("#config-pos-y"))==null?void 0:f.value)!=null?g:0),a=Number((m=(h=e.container.querySelector("#config-scale"))==null?void 0:h.value)!=null?m:1),s=Number((v=(b=e.container.querySelector("#config-anchor-x"))==null?void 0:b.value)!=null?v:.5),o=Number((x=(y=e.container.querySelector("#config-anchor-y"))==null?void 0:y.value)!=null?x:.5);console.log("[INSPECTOR] Applying config for:",i,{posX:n,posY:r,scale:a,anchorX:s,anchorY:o});let{applyConfigOverride:c}=await import("./ConfigOverride-C26KK6X2.js");c({objectId:i,path:"transform.position",value:{x:n,y:r}},{silent:t==null?void 0:t.silent}),c({objectId:i,path:"transform.scale",value:a},{silent:t==null?void 0:t.silent}),c({objectId:i,path:"transform.anchor",value:{x:s,y:o}},{silent:t==null?void 0:t.silent});let l=Hn(e);pl(l)&&c({objectId:i,path:"transform.offset",value:{x:n,y:r}},{silent:!0}),console.log("[INSPECTOR] Calling applyEditableObjectConfig...");let d=window.applyEditableObjectConfig;if(typeof d=="function"){let E=(w=window.getEditableObjectConfig)==null?void 0:w.call(window,i);E?(console.log("[INSPECTOR] \u2705 Calling applyEditableObjectConfig for:",i),d(i,E)):console.warn("[INSPECTOR] \u26A0\uFE0F No config found for:",i)}else console.warn("[INSPECTOR] \u26A0\uFE0F applyEditableObjectConfig not available")}async function Dh(e,t,i){let{applyConfigOverride:n}=await import("./ConfigOverride-C26KK6X2.js");Object.entries(t.assets).forEach(([c,l])=>{n({path:`assets.${c}`,value:l},{silent:!0})}),Object.entries(t.runtime.theme).forEach(([c,l])=>{n({path:`runtime.theme.${c}`,value:l},{silent:!0})}),Object.entries(t.runtime.ui).forEach(([c,l])=>{n({path:`runtime.ui.${c}`,value:l},{silent:!0})}),Object.entries(t.runtime.fonts).forEach(([c,l])=>{n({path:`runtime.fonts.${c}`,value:l},{silent:!0})}),Object.entries(t.runtime.audio).forEach(([c,l])=>{n({path:`runtime.audio.${c}`,value:l},{silent:!0})});let r=window.applyEditableEngineConfig;if(typeof r=="function"){let c={theme:t.runtime.theme,fonts:t.runtime.fonts,audio:t.runtime.audio},l={};Object.entries(t.runtime.ui).forEach(([d,u])=>{var p;if(d)if(d.includes(".")){let f=d.split("."),g=l;for(let h=0;h<f.length-1;h++){let m=f[h];g[m]=(p=g[m])!=null?p:{},g=g[m]}g[f[f.length-1]]=u}else l[d]=u}),c.ui=l,r({runtime:c,assets:t.assets})}let a=Object.values(t.assets).some(c=>/^(blob:|data:)/.test(c)),s=(i==null?void 0:i.source)!=="auto"&&!a,o=window.__previewShell;s&&(o!=null&&o.refresh)&&o.refresh()}function jh(e){e.selectedObjectId&&(e.objectAutoApplyTimer&&window.clearTimeout(e.objectAutoApplyTimer),e.objectAutoApplyTimer=window.setTimeout(()=>{e.objectAutoApplyTimer=null,fl(e,{silent:!0})},150))}var hx=3e3;function zh(e,t,i){let n=i!=null?i:e.offsetParent;if(!n)return;t.style.cursor="move";let r=0,a=0,s=0,o=0,c=!1,l=u=>{if(!c)return;let p=u.clientX-r,f=u.clientY-a;e.style.left=`${s+p}px`,e.style.top=`${o+f}px`},d=()=>{c&&(c=!1,window.removeEventListener("pointermove",l),window.removeEventListener("pointerup",d))};t.addEventListener("pointerdown",u=>{if(u.button!==0)return;let p=u.target;if(p!=null&&p.closest("button, input, select, textarea"))return;u.preventDefault();let f=e.getBoundingClientRect(),g=n.getBoundingClientRect();s=Math.max(0,f.left-g.left),o=Math.max(0,f.top-g.top);let h=f.width,m=f.height,b=g.width,v=g.height;s=Math.min(s,b-h),o=Math.min(o,v-m),r=u.clientX,a=u.clientY,e.style.left=`${s}px`,e.style.top=`${o}px`,e.style.right="auto",e.style.bottom="auto",e.style.zIndex=String(++hx);let y=e.getBoundingClientRect();(y.left<0||y.top<0||y.right>window.innerWidth||y.bottom>window.innerHeight)&&(e.style.left="16px",e.style.top="72px",e.style.right="auto",e.style.bottom="auto"),c=!0,window.addEventListener("pointermove",l),window.addEventListener("pointerup",d)})}function Bh(e,t,i){t.style.cursor="nwse-resize";let n=0,r=0,a=0,s=0,o=!1,c=d=>{if(!o)return;let u=d.clientX-a,p=d.clientY-s,f=Math.max(100,n+u),g=Math.max(100,r+p);e.style.width=`${f}px`,e.style.height=`${g}px`,i==null||i(f,g)},l=()=>{o&&(o=!1,window.removeEventListener("pointermove",c),window.removeEventListener("pointerup",l))};t.addEventListener("pointerdown",d=>{if(d.button!==0)return;d.preventDefault(),d.stopPropagation();let u=e.getBoundingClientRect();n=u.width,r=u.height,a=d.clientX,s=d.clientY,o=!0,window.addEventListener("pointermove",c),window.addEventListener("pointerup",l)})}function hl(e,t){var h,m,b;let i=(b=(m=(h=e.container)==null?void 0:h.querySelector("#debug-overlay"))!=null?m:e.debugOverlay)!=null?b:t.offsetParent;if(!i)return;let n=i.getBoundingClientRect(),r=t.getBoundingClientRect(),a=12,s=Math.max(250,Math.floor(n.width-a*2)),o=Math.max(200,Math.floor(n.height-a*2));r.width>s&&(t.style.width=`${s}px`),r.height>o&&(t.style.height=`${o}px`);let c=t.getBoundingClientRect(),l=c.left-n.left,d=c.top-n.top,u=Math.max(a,n.width-c.width-a),p=Math.max(a,n.height-c.height-a),f=Math.min(Math.max(l,a),u),g=Math.min(Math.max(d,a),p);t.style.left=`${Math.round(f)}px`,t.style.top=`${Math.round(g)}px`,t.style.right="auto",t.style.bottom="auto"}function Qt(e){if(!e.container)return;let t=e.container.querySelector("#debug-workbench");if(!t)return;hl(e,t);let i={activeTab:e.activeTab,width:t.style.width,height:t.style.height,left:t.style.left,top:t.style.top};localStorage.setItem("preview_workbench_state",JSON.stringify(i))}function ka(e){try{let t=localStorage.getItem("preview_workbench_state");if(!t)return;let i=JSON.parse(t);i.activeTab&&(e.activeTab=i.activeTab),window.requestAnimationFrame(()=>{var r;let n=(r=e.container)==null?void 0:r.querySelector("#debug-workbench");n&&(i.width&&(n.style.width=i.width),i.height&&(n.style.height=i.height),i.left&&(n.style.left=i.left,n.style.right="auto"),i.top&&(n.style.top=i.top,n.style.bottom="auto"),hl(e,n))})}catch(t){console.warn("[PREVIEW] Failed to load workbench state",t)}}function Fh(e,t){let i=t.getBoundingClientRect();(i.left<0||i.top<0||i.right>window.innerWidth||i.bottom>window.innerHeight)&&(console.warn("[Workbench] Workbench positioned outside viewport, repositioning..."),t.style.left="16px",t.style.top="72px",t.style.right="auto",t.style.bottom="auto",hl(e,t),Qt(e))}function Nh(e){var r,a,s;if(!e.container)return;let t=e.container,i=t.querySelector("#debug-toggle");i||console.warn("[PREVIEW] Debug toggle not found in DOM"),i==null||i.addEventListener("click",()=>{var o;console.log("[PREVIEW] Debug toggle clicked"),(o=e.toggleDebug)==null||o.call(e)}),(r=t.querySelector("#debug-close"))==null||r.addEventListener("click",()=>{var o;return(o=e.toggleDebug)==null?void 0:o.call(e,!1)}),(a=t.querySelector("#debug-reset"))==null||a.addEventListener("click",()=>Ca(e)),(s=t.querySelector("#debug-export"))==null||s.addEventListener("click",()=>Ta(e)),t.querySelectorAll(".workbench-tab").forEach(o=>{o.addEventListener("click",()=>{let c=o.dataset.tab;e.activeTab=c,gl(e),Qt(e)})}),bl(e,t),ml(e,t)}function gl(e){if(!e.container)return;let t=e.container;t.querySelectorAll(".workbench-tab").forEach(r=>{let a=r.dataset.tab;r.classList.toggle("active",a===e.activeTab)}),t.querySelectorAll(".workbench-tab-panel").forEach(r=>{let a=r.dataset.tabPanel;r.classList.toggle("active",a===e.activeTab)})}function ml(e,t){ke(e,t,"debug-scene-scale","engine.scale","#debug-scene-scale-value"),ke(e,t,"debug-layout-scale","layout.scale_multiplier","#debug-layout-scale-value"),ke(e,t,"debug-layout-offset-x","layout.position_offset.x","#debug-layout-offset-x-value"),ke(e,t,"debug-layout-offset-y","layout.position_offset.y","#debug-layout-offset-y-value"),ke(e,t,"debug-rect-thickness","layout.debug_rect_thickness","#debug-rect-thickness-value"),ke(e,t,"debug-engine-scale","engine.scale","#debug-engine-scale-value"),ke(e,t,"debug-background-scale","engine.background_scale","#debug-background-scale-value"),ke(e,t,"debug-label-pulse-speed","engine.label_pulse_speed","#debug-label-pulse-speed-value"),ke(e,t,"debug-label-pulse-intensity","engine.label_pulse_intensity","#debug-label-pulse-intensity-value"),ke(e,t,"debug-rope-length","physics.rope_length","#debug-rope-length-value");let i=t.querySelector("#debug-rect-visible");i==null||i.addEventListener("change",()=>{let r=It();r.layout&&(r.layout.debug_rect_visible=!!i.checked)});let n=t.querySelector("#debug-rect-color");n==null||n.addEventListener("input",()=>{let r=n.value.replace("#",""),a=parseInt(r,16),s=It();s.layout&&(s.layout.debug_rect_color=Number.isFinite(a)?a:16711680)})}function Hh(e){if(!e.container||!e.debugOverlay)return;let t=e.container.querySelector("#debug-workbench"),i=e.container.querySelector("#workbench-handle"),n=e.container.querySelector("#workbench-resize");t&&i&&(!t.style.left&&!t.style.right&&!t.style.top&&!t.style.bottom&&(t.style.right="16px",t.style.top="72px"),zh(t,i,e.debugOverlay),i.addEventListener("pointerup",()=>{setTimeout(()=>{Qt(e),Fh(e,t)},10)})),t&&n&&Bh(t,n,()=>Qt(e)),ka(e)}function bl(e,t){Array.from(t.querySelectorAll("[data-panel-toggle]")).forEach(n=>{n.addEventListener("click",()=>{let r=n.closest(".scene-panel");r&&r.classList.toggle("collapsed")})})}function ke(e,t,i,n,r){let a=t.querySelector(`#${i}`),s=t.querySelector(r);if(!a||!s)return;let o=Rh(It(),n);typeof o=="number"&&(a.value=String(o),s.textContent=String(o)),a.addEventListener("input",()=>{let c=Number(a.value);s.textContent=String(c),Mh(It(),n,c)})}var La=class{constructor(){this.container=null}initialize(t){this.container=t,window.addEventListener("config:changed",()=>{this.refreshPanel()}),this.refreshPanel()}render(){let t=cc(),{hasChanges:i,overrideCount:n,overrides:r}=t,a={};for(let c of r){let l=c.objectId||"Engine";a[l]||(a[l]=[]),a[l].push(c)}let s=localStorage.getItem("handler_last_applied"),o=s?new Date(parseInt(s)).toLocaleString():"Never";return`
1005
+ anchor: (${a}, ${s})`;navigator.clipboard.writeText(o).then(()=>console.log("[DEBUG] Config values copied to clipboard")).catch(v=>console.error("[DEBUG] Failed to copy config values:",v))}async function gl(e,t){var u,p,f,g,h,m,b,v,y,x,w;if(console.log("[INSPECTOR] \u{1F527} applyObjectConfig called"),!e.container)return;let i=e.selectedObjectId;if(!i){console.warn("[PREVIEW] Apply object config clicked with no selection");return}let n=Number((p=(u=e.container.querySelector("#config-pos-x"))==null?void 0:u.value)!=null?p:0),r=Number((g=(f=e.container.querySelector("#config-pos-y"))==null?void 0:f.value)!=null?g:0),a=Number((m=(h=e.container.querySelector("#config-scale"))==null?void 0:h.value)!=null?m:1),s=Number((v=(b=e.container.querySelector("#config-anchor-x"))==null?void 0:b.value)!=null?v:.5),o=Number((x=(y=e.container.querySelector("#config-anchor-y"))==null?void 0:y.value)!=null?x:.5);console.log("[INSPECTOR] Applying config for:",i,{posX:n,posY:r,scale:a,anchorX:s,anchorY:o});let{applyConfigOverride:c}=await import("./ConfigOverride-C26KK6X2.js");c({objectId:i,path:"transform.position",value:{x:n,y:r}},{silent:t==null?void 0:t.silent}),c({objectId:i,path:"transform.scale",value:a},{silent:t==null?void 0:t.silent}),c({objectId:i,path:"transform.anchor",value:{x:s,y:o}},{silent:t==null?void 0:t.silent});let l=Hn(e);hl(l)&&c({objectId:i,path:"transform.offset",value:{x:n,y:r}},{silent:!0}),console.log("[INSPECTOR] Calling applyEditableObjectConfig...");let d=window.applyEditableObjectConfig;if(typeof d=="function"){let E=(w=window.getEditableObjectConfig)==null?void 0:w.call(window,i);E?(console.log("[INSPECTOR] \u2705 Calling applyEditableObjectConfig for:",i),d(i,E)):console.warn("[INSPECTOR] \u26A0\uFE0F No config found for:",i)}else console.warn("[INSPECTOR] \u26A0\uFE0F applyEditableObjectConfig not available")}async function zh(e,t,i){let{applyConfigOverride:n}=await import("./ConfigOverride-C26KK6X2.js");Object.entries(t.assets).forEach(([c,l])=>{n({path:`assets.${c}`,value:l},{silent:!0})}),Object.entries(t.runtime.theme).forEach(([c,l])=>{n({path:`runtime.theme.${c}`,value:l},{silent:!0})}),Object.entries(t.runtime.ui).forEach(([c,l])=>{n({path:`runtime.ui.${c}`,value:l},{silent:!0})}),Object.entries(t.runtime.fonts).forEach(([c,l])=>{n({path:`runtime.fonts.${c}`,value:l},{silent:!0})}),Object.entries(t.runtime.audio).forEach(([c,l])=>{n({path:`runtime.audio.${c}`,value:l},{silent:!0})});let r=window.applyEditableEngineConfig;if(typeof r=="function"){let c={theme:t.runtime.theme,fonts:t.runtime.fonts,audio:t.runtime.audio},l={};Object.entries(t.runtime.ui).forEach(([d,u])=>{var p;if(d)if(d.includes(".")){let f=d.split("."),g=l;for(let h=0;h<f.length-1;h++){let m=f[h];g[m]=(p=g[m])!=null?p:{},g=g[m]}g[f[f.length-1]]=u}else l[d]=u}),c.ui=l,r({runtime:c,assets:t.assets})}let a=Object.values(t.assets).some(c=>/^(blob:|data:)/.test(c)),s=(i==null?void 0:i.source)!=="auto"&&!a,o=window.__previewShell;s&&(o!=null&&o.refresh)&&o.refresh()}function Bh(e){e.selectedObjectId&&(e.objectAutoApplyTimer&&window.clearTimeout(e.objectAutoApplyTimer),e.objectAutoApplyTimer=window.setTimeout(()=>{e.objectAutoApplyTimer=null,gl(e,{silent:!0})},150))}var mx=3e3;function Nh(e,t,i){let n=i!=null?i:e.offsetParent;if(!n)return;t.style.cursor="move";let r=0,a=0,s=0,o=0,c=!1,l=u=>{if(!c)return;let p=u.clientX-r,f=u.clientY-a;e.style.left=`${s+p}px`,e.style.top=`${o+f}px`},d=()=>{c&&(c=!1,window.removeEventListener("pointermove",l),window.removeEventListener("pointerup",d))};t.addEventListener("pointerdown",u=>{if(u.button!==0)return;let p=u.target;if(p!=null&&p.closest("button, input, select, textarea"))return;u.preventDefault();let f=e.getBoundingClientRect(),g=n.getBoundingClientRect();s=Math.max(0,f.left-g.left),o=Math.max(0,f.top-g.top);let h=f.width,m=f.height,b=g.width,v=g.height;s=Math.min(s,b-h),o=Math.min(o,v-m),r=u.clientX,a=u.clientY,e.style.left=`${s}px`,e.style.top=`${o}px`,e.style.right="auto",e.style.bottom="auto",e.style.zIndex=String(++mx);let y=e.getBoundingClientRect();(y.left<0||y.top<0||y.right>window.innerWidth||y.bottom>window.innerHeight)&&(e.style.left="16px",e.style.top="72px",e.style.right="auto",e.style.bottom="auto"),c=!0,window.addEventListener("pointermove",l),window.addEventListener("pointerup",d)})}function Fh(e,t,i){t.style.cursor="nwse-resize";let n=0,r=0,a=0,s=0,o=!1,c=d=>{if(!o)return;let u=d.clientX-a,p=d.clientY-s,f=Math.max(100,n+u),g=Math.max(100,r+p);e.style.width=`${f}px`,e.style.height=`${g}px`,i==null||i(f,g)},l=()=>{o&&(o=!1,window.removeEventListener("pointermove",c),window.removeEventListener("pointerup",l))};t.addEventListener("pointerdown",d=>{if(d.button!==0)return;d.preventDefault(),d.stopPropagation();let u=e.getBoundingClientRect();n=u.width,r=u.height,a=d.clientX,s=d.clientY,o=!0,window.addEventListener("pointermove",c),window.addEventListener("pointerup",l)})}function ml(e,t){var h,m,b;let i=(b=(m=(h=e.container)==null?void 0:h.querySelector("#debug-overlay"))!=null?m:e.debugOverlay)!=null?b:t.offsetParent;if(!i)return;let n=i.getBoundingClientRect(),r=t.getBoundingClientRect(),a=12,s=Math.max(250,Math.floor(n.width-a*2)),o=Math.max(200,Math.floor(n.height-a*2));r.width>s&&(t.style.width=`${s}px`),r.height>o&&(t.style.height=`${o}px`);let c=t.getBoundingClientRect(),l=c.left-n.left,d=c.top-n.top,u=Math.max(a,n.width-c.width-a),p=Math.max(a,n.height-c.height-a),f=Math.min(Math.max(l,a),u),g=Math.min(Math.max(d,a),p);t.style.left=`${Math.round(f)}px`,t.style.top=`${Math.round(g)}px`,t.style.right="auto",t.style.bottom="auto"}function Qt(e){if(!e.container)return;let t=e.container.querySelector("#debug-workbench");if(!t)return;ml(e,t);let i={activeTab:e.activeTab,width:t.style.width,height:t.style.height,left:t.style.left,top:t.style.top};localStorage.setItem("preview_workbench_state",JSON.stringify(i))}function ka(e){try{let t=localStorage.getItem("preview_workbench_state");if(!t)return;let i=JSON.parse(t);i.activeTab&&(e.activeTab=i.activeTab),window.requestAnimationFrame(()=>{var r;let n=(r=e.container)==null?void 0:r.querySelector("#debug-workbench");n&&(i.width&&(n.style.width=i.width),i.height&&(n.style.height=i.height),i.left&&(n.style.left=i.left,n.style.right="auto"),i.top&&(n.style.top=i.top,n.style.bottom="auto"),ml(e,n))})}catch(t){console.warn("[PREVIEW] Failed to load workbench state",t)}}function Hh(e,t){let i=t.getBoundingClientRect();(i.left<0||i.top<0||i.right>window.innerWidth||i.bottom>window.innerHeight)&&(console.warn("[Workbench] Workbench positioned outside viewport, repositioning..."),t.style.left="16px",t.style.top="72px",t.style.right="auto",t.style.bottom="auto",ml(e,t),Qt(e))}function Uh(e){var r,a,s;if(!e.container)return;let t=e.container,i=t.querySelector("#debug-toggle");i||console.warn("[PREVIEW] Debug toggle not found in DOM"),i==null||i.addEventListener("click",()=>{var o;console.log("[PREVIEW] Debug toggle clicked"),(o=e.toggleDebug)==null||o.call(e)}),(r=t.querySelector("#debug-close"))==null||r.addEventListener("click",()=>{var o;return(o=e.toggleDebug)==null?void 0:o.call(e,!1)}),(a=t.querySelector("#debug-reset"))==null||a.addEventListener("click",()=>Ca(e)),(s=t.querySelector("#debug-export"))==null||s.addEventListener("click",()=>Ta(e)),t.querySelectorAll(".workbench-tab").forEach(o=>{o.addEventListener("click",()=>{let c=o.dataset.tab;e.activeTab=c,bl(e),Qt(e)})}),yl(e,t),vl(e,t)}function bl(e){if(!e.container)return;let t=e.container;t.querySelectorAll(".workbench-tab").forEach(r=>{let a=r.dataset.tab;r.classList.toggle("active",a===e.activeTab)}),t.querySelectorAll(".workbench-tab-panel").forEach(r=>{let a=r.dataset.tabPanel;r.classList.toggle("active",a===e.activeTab)})}function vl(e,t){ke(e,t,"debug-scene-scale","engine.scale","#debug-scene-scale-value"),ke(e,t,"debug-layout-scale","layout.scale_multiplier","#debug-layout-scale-value"),ke(e,t,"debug-layout-offset-x","layout.position_offset.x","#debug-layout-offset-x-value"),ke(e,t,"debug-layout-offset-y","layout.position_offset.y","#debug-layout-offset-y-value"),ke(e,t,"debug-rect-thickness","layout.debug_rect_thickness","#debug-rect-thickness-value"),ke(e,t,"debug-engine-scale","engine.scale","#debug-engine-scale-value"),ke(e,t,"debug-background-scale","engine.background_scale","#debug-background-scale-value"),ke(e,t,"debug-label-pulse-speed","engine.label_pulse_speed","#debug-label-pulse-speed-value"),ke(e,t,"debug-label-pulse-intensity","engine.label_pulse_intensity","#debug-label-pulse-intensity-value"),ke(e,t,"debug-rope-length","physics.rope_length","#debug-rope-length-value");let i=t.querySelector("#debug-rect-visible");i==null||i.addEventListener("change",()=>{let r=It();r.layout&&(r.layout.debug_rect_visible=!!i.checked)});let n=t.querySelector("#debug-rect-color");n==null||n.addEventListener("input",()=>{let r=n.value.replace("#",""),a=parseInt(r,16),s=It();s.layout&&(s.layout.debug_rect_color=Number.isFinite(a)?a:16711680)})}function $h(e){if(!e.container||!e.debugOverlay)return;let t=e.container.querySelector("#debug-workbench"),i=e.container.querySelector("#workbench-handle"),n=e.container.querySelector("#workbench-resize");t&&i&&(!t.style.left&&!t.style.right&&!t.style.top&&!t.style.bottom&&(t.style.right="16px",t.style.top="72px"),Nh(t,i,e.debugOverlay),i.addEventListener("pointerup",()=>{setTimeout(()=>{Qt(e),Hh(e,t)},10)})),t&&n&&Fh(t,n,()=>Qt(e)),ka(e)}function yl(e,t){Array.from(t.querySelectorAll("[data-panel-toggle]")).forEach(n=>{n.addEventListener("click",()=>{let r=n.closest(".scene-panel");r&&r.classList.toggle("collapsed")})})}function ke(e,t,i,n,r){let a=t.querySelector(`#${i}`),s=t.querySelector(r);if(!a||!s)return;let o=Ph(It(),n);typeof o=="number"&&(a.value=String(o),s.textContent=String(o)),a.addEventListener("input",()=>{let c=Number(a.value);s.textContent=String(c),Ih(It(),n,c)})}var La=class{constructor(){this.container=null;this.currentVersion=null;this.availableVersions=[];this.isDevelopmentMode=!1}async initialize(t){this.container=t,this.isDevelopmentMode=typeof window!="undefined"&&document.querySelector('script[type="module"][src*="/@vite/"]')!==null,await this.loadVersionsList(),window.addEventListener("config:changed",()=>{this.refreshPanel()}),this.refreshPanel()}render(){let t=pc(),{hasChanges:i,overrideCount:n,overrides:r}=t,a={};for(let c of r){let l=c.objectId||"Engine";a[l]||(a[l]=[]),a[l].push(c)}let s=localStorage.getItem("handler_last_applied"),o=s?new Date(parseInt(s)).toLocaleString():"Never";return`
1006
1006
  <div class="config-persistence-panel">
1007
1007
  <div class="persistence-status-bar ${i?"has-changes":"no-changes"}">
1008
1008
  ${i?`
@@ -1030,6 +1030,43 @@ Generate the requested asset matching the brand style.${e.needsTransparency?" Ba
1030
1030
  </button>
1031
1031
  </div>
1032
1032
 
1033
+ <div class="version-management-section">
1034
+ <div class="version-header">
1035
+ <span class="version-label">\u{1F4E6} Version Management</span>
1036
+ </div>
1037
+ <div class="version-controls">
1038
+ <div class="version-current">
1039
+ <label>Current Version:</label>
1040
+ <select id="version-selector" class="version-dropdown">
1041
+ <option value="">original (pristine)</option>
1042
+ ${this.availableVersions.map(c=>`
1043
+ <option value="${c.name}" ${c.name===this.currentVersion?"selected":""}>
1044
+ ${c.name} (${new Date(c.lastApplied).toLocaleDateString()})
1045
+ </option>
1046
+ `).join("")}
1047
+ </select>
1048
+ </div>
1049
+ <button id="create-version-btn" class="persistence-btn" ${i?"":"disabled"}>
1050
+ \u{1F4DD} Create New Version
1051
+ </button>
1052
+ </div>
1053
+ </div>
1054
+
1055
+ ${this.isDevelopmentMode&&i?`
1056
+ <div class="dev-only-section">
1057
+ <div class="dev-warning">
1058
+ \u26A0\uFE0F Developer Mode Only
1059
+ </div>
1060
+ <button id="direct-apply-btn" class="persistence-btn danger-action">
1061
+ \u{1F527} APPLY DIRECTLY (No Snapshot)
1062
+ </button>
1063
+ <p class="dev-hint">
1064
+ This will directly modify base configs without creating a version snapshot.
1065
+ Use with caution!
1066
+ </p>
1067
+ </div>
1068
+ `:""}
1069
+
1033
1070
  ${i?`
1034
1071
  <div class="staging-area">
1035
1072
  <div class="staging-header">
@@ -1081,13 +1118,21 @@ Generate the requested asset matching the brand style.${e.needsTransparency?" Ba
1081
1118
  <p><strong>Apply to Project</strong> writes the current preview state to your local .json files in /configs/ folder. This state will be used for the dashboard build.</p>
1082
1119
  </div>
1083
1120
  </div>
1084
- `}formatValue(t){return t===null?"null":typeof t=="string"?t.length>25?t.substring(0,22)+"...":t:typeof t=="object"?"{...}":String(t)}setupEventListeners(){if(!this.container)return;let t=this.container.querySelector("#apply-to-project-btn");t==null||t.addEventListener("click",async()=>{var o;if(!(t.getAttribute("disabled")!==null||!confirm("This will permanently update your project configuration files on disk. Are you sure?")))try{let c=localStorage.getItem("handler_last_version_name")||"",d=((o=prompt("Version name for this Apply (e.g. v1, ab_red_cta, 2026-01-17a):",c))!=null?o:"").trim();if(!d){alert("Version name is required to Apply. (No changes were written.)");return}localStorage.setItem("handler_last_version_name",d),t.textContent="\u23F3 Writing to disk...",t.setAttribute("disabled","true"),await dc(d),this.showSuccessNotification(),this.refreshPanel()}catch(c){console.error("[ConfigPersistence] Apply failed:",c),alert(`\u274C Apply failed: ${c.message}`),t.textContent="\u{1F4BE} APPLY ALL CHANGES TO PROJECT",t.removeAttribute("disabled")}}),this.container.querySelectorAll(".item-remove").forEach(s=>{s.addEventListener("click",()=>{let o=s.dataset.removePath,c=s.dataset.removeId;lc(c||void 0,o)})});let n=this.container.querySelector("#clear-all-overrides");n==null||n.addEventListener("click",()=>{confirm("Discard all staged changes?")&&Qa()});let r=this.container.querySelector("#reset-to-applied-btn");r==null||r.addEventListener("click",()=>{confirm("Discard changes and reload last applied state?")&&Qa()});let a=this.container.querySelector("#reset-to-original-btn");a==null||a.addEventListener("click",async()=>{await uc()})}showSuccessNotification(){let t=document.createElement("div");t.className="persistence-notification success",t.innerHTML=`
1121
+ `}formatValue(t){return t===null?"null":typeof t=="string"?t.length>25?t.substring(0,22)+"...":t:typeof t=="object"?"{...}":String(t)}setupEventListeners(){if(!this.container)return;let t=this.container.querySelector("#apply-to-project-btn");t==null||t.addEventListener("click",async()=>{var d;if(!(t.getAttribute("disabled")!==null||!confirm("This will permanently update your project configuration files on disk. Are you sure?")))try{let u=localStorage.getItem("handler_last_version_name")||"",f=((d=prompt("Version name for this Apply (e.g. v1, ab_red_cta, 2026-01-17a):",u))!=null?d:"").trim();if(!f){alert("Version name is required to Apply. (No changes were written.)");return}localStorage.setItem("handler_last_version_name",f),t.textContent="\u23F3 Writing to disk...",t.setAttribute("disabled","true"),await es(f),this.showSuccessNotification(),this.refreshPanel()}catch(u){console.error("[ConfigPersistence] Apply failed:",u),alert(`\u274C Apply failed: ${u.message}`),t.textContent="\u{1F4BE} APPLY ALL CHANGES TO PROJECT",t.removeAttribute("disabled")}}),this.container.querySelectorAll(".item-remove").forEach(l=>{l.addEventListener("click",()=>{let d=l.dataset.removePath,u=l.dataset.removeId;dc(u||void 0,d)})});let n=this.container.querySelector("#clear-all-overrides");n==null||n.addEventListener("click",()=>{confirm("Discard all staged changes?")&&ts()});let r=this.container.querySelector("#reset-to-applied-btn");r==null||r.addEventListener("click",()=>{confirm("Discard changes and reload last applied state?")&&ts()});let a=this.container.querySelector("#reset-to-original-btn");a==null||a.addEventListener("click",async()=>{await fc()});let s=this.container.querySelector("#version-selector");s==null||s.addEventListener("change",async l=>{let u=l.target.value;await this.switchVersion(u)});let o=this.container.querySelector("#create-version-btn");o==null||o.addEventListener("click",async()=>{var d;if(!(o.getAttribute("disabled")!==null||!confirm("This will create a new version snapshot and save your changes. Continue?")))try{let u=localStorage.getItem("handler_last_version_name")||"",f=((d=prompt("Version name (e.g. v1, test_2024):",u))!=null?d:"").trim();if(!f){alert("Version name is required. (No changes were written.)");return}localStorage.setItem("handler_last_version_name",f),o.textContent="\u23F3 Creating version...",o.setAttribute("disabled","true"),await es(f),this.showSuccessNotification(),await this.loadVersionsList(),this.refreshPanel()}catch(u){console.error("[ConfigPersistence] Create version failed:",u),alert(`\u274C Failed to create version: ${u.message}`),o.textContent="\u{1F4DD} Create New Version",o.removeAttribute("disabled")}});let c=this.container.querySelector("#direct-apply-btn");c==null||c.addEventListener("click",async()=>{await this.directApply()})}showSuccessNotification(){let t=document.createElement("div");t.className="persistence-notification success",t.innerHTML=`
1085
1122
  <div class="notify-icon">\u2705</div>
1086
1123
  <div class="notify-content">
1087
1124
  <strong>Changes Applied!</strong>
1088
1125
  <span>Project files updated.</span>
1089
1126
  </div>
1090
- `,document.body.appendChild(t),setTimeout(()=>{t.classList.add("out"),setTimeout(()=>t.remove(),500)},3e3)}refreshPanel(){if(!this.container)return;let t=this.container.querySelector(".config-persistence-panel");t?t.outerHTML=this.render():this.container.innerHTML=this.render(),this.setupEventListeners()}};var Ra=class{constructor(){this.debugOverlay=null;this.isDebugOpen=!1;this.selectedObjectId=null;this.configViewer=null;this.container=null;this.objectAutoApplyTimer=null;this.objectDebugRaf=null;this.objectBoundsGfx=null;this.objectAnchorGfx=null;this.highlightObject=!1;this.highlightAnchor=!1;this.activeTab="hierarchy";this.sceneObjectsPanel=new ur;this.sceneToolsPanel=new pr;this.inspectorPanel=new Ar;this.libraryPanel=new fr;this.brandVisionPanel=new ya;this.customizeSettingsPanel=new xa;this.configPersistencePanel=new La;this.loadingScreenPanel=new wa}applyAssetChange(t,i){return yh(this,t,i)}resetAsset(t){return xh(this,t)}applySlotAsset(t,i,n){return wh(this,t,i,n)}resetSlotAsset(t,i,n){return _h(this,t,i,n)}startObjectVisuals(){return kh(this)}stopObjectVisuals(){return Lh(this)}shouldRunObjectVisuals(){return Ea(this)}updateObjectVisuals(){return Sa(this)}getSelectedInstanceId(){return il(this)}getDisplayObjectById(t){return nl(this,t)}getSelectedObjectConfig(){return Hn(this)}getConfigAnchorWorldPoint(t){return rl(this,t)}getScreenSize(){return al(this)}ensureBoundsGfx(){return sl(this)}ensureAnchorGfx(){return ol(this)}drawBounds(t){return ll(this,t)}drawAnchor(t){return cl(this,t)}clearBounds(){return dl(this)}clearAnchor(){return ul(this)}clearObjectVisuals(){return Nn(this)}updateObjectInfo(t){return Fn(this,t)}resetDebugConfig(){return Ca(this)}applyDebugConfig(){return Ph(this)}exportDebugConfig(){return Ta(this)}loadObjectConfig(t){return Ih(this,t)}fillConfigViewer(t){return Aa(this,t)}copyConfigValues(){return Oh(this)}applyObjectConfig(t){return fl(this,t)}applyCustomizeSettings(t,i){return Dh(this,t,i)}scheduleObjectAutoApply(){return jh(this)}setupDebugEventListeners(){return Nh(this)}setupDebugInputListeners(t){return ml(this,t)}setupPanelLayout(){return Hh(this)}setupCollapsiblePanels(t){return bl(this,t)}setupRangeInput(t,i,n,r){return ke(this,t,i,n,r)}updateWorkbenchTabs(){return gl(this)}saveWorkbenchState(){return Qt(this)}loadWorkbenchState(){return ka(this)}initialize(t){var i;this.container=t,this.debugOverlay=t.querySelector(".debug-overlay"),this.configViewer=t.querySelector("#config-viewer");try{let n=localStorage.getItem("preview_workbench_state");if(n){let r=JSON.parse(n);r.activeTab&&(this.activeTab=r.activeTab)}}catch(n){console.warn("[PREVIEW] Failed to load workbench tab state",n)}this.sceneObjectsPanel.initialize(t,{onSelect:n=>this.handleObjectSelect(n)}),this.libraryPanel.initialize(t,{onApply:(n,r,a)=>this.applySlotAsset(n,r,a),onReset:(n,r,a)=>this.resetSlotAsset(n,r,a)}),this.inspectorPanel.initialize(t,{onPropertyChange:(n,r,a)=>{console.log("[Inspector] Property changed:",n,r,a)}}),this.brandVisionPanel.initialize(t,()=>{this.toggleDebug(!1);let n="/dashboard";window.location.pathname!==n&&(window.location.href=n)}),this.customizeSettingsPanel.initialize(t,{onApply:(n,r)=>this.applyCustomizeSettings(n,r)}),this.configPersistencePanel.initialize(t),this.loadingScreenPanel.initialize(t,{onShowLoadingScreen:()=>{let n=window;typeof n.__previewShowLoading=="function"?n.__previewShowLoading():console.warn("[DEBUG] __previewShowLoading not available")},onHideLoadingScreen:()=>{let n=window;typeof n.__previewHideLoading=="function"?n.__previewHideLoading():console.warn("[DEBUG] __previewHideLoading not available")},onUpdateLoading:n=>{let r=window;typeof r.applyEditableEngineConfig=="function"&&r.applyEditableEngineConfig({loading:n}),typeof r.__previewUpdateLoading=="function"?r.__previewUpdateLoading(n):console.warn("[DEBUG] __previewUpdateLoading not available")}}),window.__openAiEditor=(n,r,a,s)=>{this.customizeSettingsPanel.openAiEditor(n,r,a,s)},this.setupPanelLayout(),this.updateWorkbenchTabs(),window.__debugContext=this,window.__updateWorkbenchTabs=()=>this.updateWorkbenchTabs(),this.isDebugOpen=!0,(i=this.debugOverlay)==null||i.classList.remove("hidden"),this.updateDebugBadge(),this.sceneObjectsPanel.refreshObjects(),window.__previewSelectObject=n=>this.selectObject(n),window.addEventListener("config:changed",n=>{var r,a;((r=n.detail)==null?void 0:r.action)!=="remove"&&((a=n.detail)==null?void 0:a.action)!=="clear_object"&&this.highlightChangesTab()}),window.applyAssetToSlot=(n,r,a)=>this.applySlotAsset(n,r,a),window.refreshAssetLibrary=()=>this.libraryPanel.refresh(),window.reRenderAssetLibrary=()=>this.libraryPanel.reRender(),window.getEngineSplashConfig=()=>{var r;let n=window.getActiveConfig;if(typeof n=="function"){let a=n();return((r=a==null?void 0:a.engine)==null?void 0:r.splash)||null}return null},window.addAssetToRegistry=(n,r)=>{let a=window.getEditableAssets;if(typeof a=="function"){let s=a();if(s!=null&&s.libraryAssets&&(s.libraryAssets[n]||(s.libraryAssets[n]=[]),!s.libraryAssets[n].some(c=>c.filename===r))){let c=r.replace(/\.(png|jpg|jpeg)$/i,"").replace(/_/g," ");s.libraryAssets[n].unshift({filename:r,displayName:c}),console.log(`[DEBUG] Added ${r} to registry category ${n}`)}}}}selectObject(t){this.handleObjectSelect(t),this.activeTab!=="inspector"&&(this.activeTab="inspector",this.updateWorkbenchTabs())}highlightChangesTab(){var i;let t=(i=this.container)==null?void 0:i.querySelector('[data-tab="changes"]');t&&t.classList.add("has-pending-changes")}getDebugOverlayHTML(){return`
1127
+ `,document.body.appendChild(t),setTimeout(()=>{t.classList.add("out"),setTimeout(()=>t.remove(),500)},3e3)}refreshPanel(){if(!this.container)return;let t=this.container.querySelector(".config-persistence-panel");t?t.outerHTML=this.render():this.container.innerHTML=this.render(),this.setupEventListeners()}async loadVersionsList(){try{let t=await fetch("/api/versions");if(!t.ok)throw new Error("Failed to fetch versions");let i=await t.json();this.availableVersions=i.versions||[],this.currentVersion=i.current||null}catch(t){console.error("[ConfigPersistence] Failed to load versions:",t),this.availableVersions=[],this.currentVersion=null}}async switchVersion(t){if(confirm(`Switch to version "${t||"original"}"?
1128
+
1129
+ All unsaved changes in the current version will be lost.`))try{let n=await fetch("/api/switch-version",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({versionName:t||null})});if(!n.ok){let r=await n.json();throw new Error(r.error||"Failed to switch version")}Za(),window.location.reload()}catch(n){alert(`\u274C Failed to switch version: ${n.message}`)}}async directApply(){if(!this.isDevelopmentMode){alert("Direct Apply is only available in development mode.");return}if(confirm(`\u26A0\uFE0F WARNING: Direct Apply
1130
+
1131
+ This will DIRECTLY MODIFY your base configuration files WITHOUT creating a snapshot.
1132
+
1133
+ This cannot be undone unless you have git commits or backups.
1134
+
1135
+ Are you absolutely sure?`))try{let i=uc(),n={};for(let[a,s]of Object.entries(i.objects)){let o=s,c=a;/^(json\.|ui\.|effects\.|engine\.)/.test(c)||(c=`json.${a}`),o&&typeof o=="object"&&(o.identity||(o.identity={}),o.identity.id=c),n[`objects/${c}.json`]=o}i.engine&&(i.engine.runtime&&(n["engine/engine.runtime.json"]=i.engine.runtime),i.engine.assets&&(n["engine/engine.assets.json"]=i.engine.assets),i.engine.splash&&(n["engine/engine.splash.json"]=i.engine.splash),i.engine.loading&&(n["engine/engine.loading.json"]=i.engine.loading),i.engine.start&&(n["engine/engine.start.json"]=i.engine.start),i.engine.tutorial&&(n["engine/engine.tutorial.json"]=i.engine.tutorial),i.engine.endgame&&(n["engine/engine.endgame.json"]=i.engine.endgame),!i.engine.runtime&&!i.engine.assets&&(n["engine/engine.json"]=i.engine));for(let[a,s]of Object.entries(i.scenes)){let o=a.startsWith("scene.")?a:`scene.${a}`;n[`scenes/${o}.json`]=s}let r=await fetch("/api/apply-direct",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({configs:n,assets:{}})});if(!r.ok){let a=await r.json();throw new Error(a.error||"Direct apply failed")}Za(),this.showSuccessNotification(),this.refreshPanel()}catch(i){console.error("[ConfigPersistence] Direct apply failed:",i),alert(`\u274C Direct apply failed: ${i.message}`)}}};var Ra=class{constructor(){this.debugOverlay=null;this.isDebugOpen=!1;this.selectedObjectId=null;this.configViewer=null;this.container=null;this.objectAutoApplyTimer=null;this.objectDebugRaf=null;this.objectBoundsGfx=null;this.objectAnchorGfx=null;this.highlightObject=!1;this.highlightAnchor=!1;this.activeTab="hierarchy";this.sceneObjectsPanel=new ur;this.sceneToolsPanel=new pr;this.inspectorPanel=new Ar;this.libraryPanel=new fr;this.brandVisionPanel=new ya;this.customizeSettingsPanel=new xa;this.configPersistencePanel=new La;this.loadingScreenPanel=new wa}applyAssetChange(t,i){return wh(this,t,i)}resetAsset(t){return _h(this,t)}applySlotAsset(t,i,n){return Eh(this,t,i,n)}resetSlotAsset(t,i,n){return Sh(this,t,i,n)}startObjectVisuals(){return Rh(this)}stopObjectVisuals(){return Mh(this)}shouldRunObjectVisuals(){return Ea(this)}updateObjectVisuals(){return Sa(this)}getSelectedInstanceId(){return rl(this)}getDisplayObjectById(t){return al(this,t)}getSelectedObjectConfig(){return Hn(this)}getConfigAnchorWorldPoint(t){return sl(this,t)}getScreenSize(){return ol(this)}ensureBoundsGfx(){return ll(this)}ensureAnchorGfx(){return cl(this)}drawBounds(t){return dl(this,t)}drawAnchor(t){return ul(this,t)}clearBounds(){return pl(this)}clearAnchor(){return fl(this)}clearObjectVisuals(){return Fn(this)}updateObjectInfo(t){return Nn(this,t)}resetDebugConfig(){return Ca(this)}applyDebugConfig(){return Oh(this)}exportDebugConfig(){return Ta(this)}loadObjectConfig(t){return Dh(this,t)}fillConfigViewer(t){return Aa(this,t)}copyConfigValues(){return jh(this)}applyObjectConfig(t){return gl(this,t)}applyCustomizeSettings(t,i){return zh(this,t,i)}scheduleObjectAutoApply(){return Bh(this)}setupDebugEventListeners(){return Uh(this)}setupDebugInputListeners(t){return vl(this,t)}setupPanelLayout(){return $h(this)}setupCollapsiblePanels(t){return yl(this,t)}setupRangeInput(t,i,n,r){return ke(this,t,i,n,r)}updateWorkbenchTabs(){return bl(this)}saveWorkbenchState(){return Qt(this)}loadWorkbenchState(){return ka(this)}initialize(t){var i;this.container=t,this.debugOverlay=t.querySelector(".debug-overlay"),this.configViewer=t.querySelector("#config-viewer");try{let n=localStorage.getItem("preview_workbench_state");if(n){let r=JSON.parse(n);r.activeTab&&(this.activeTab=r.activeTab)}}catch(n){console.warn("[PREVIEW] Failed to load workbench tab state",n)}this.sceneObjectsPanel.initialize(t,{onSelect:n=>this.handleObjectSelect(n)}),this.libraryPanel.initialize(t,{onApply:(n,r,a)=>this.applySlotAsset(n,r,a),onReset:(n,r,a)=>this.resetSlotAsset(n,r,a)}),this.inspectorPanel.initialize(t,{onPropertyChange:(n,r,a)=>{console.log("[Inspector] Property changed:",n,r,a)}}),this.brandVisionPanel.initialize(t,()=>{this.toggleDebug(!1);let n="/dashboard";window.location.pathname!==n&&(window.location.href=n)}),this.customizeSettingsPanel.initialize(t,{onApply:(n,r)=>this.applyCustomizeSettings(n,r)}),this.configPersistencePanel.initialize(t),this.loadingScreenPanel.initialize(t,{onShowLoadingScreen:()=>{let n=window;typeof n.__previewShowLoading=="function"?n.__previewShowLoading():console.warn("[DEBUG] __previewShowLoading not available")},onHideLoadingScreen:()=>{let n=window;typeof n.__previewHideLoading=="function"?n.__previewHideLoading():console.warn("[DEBUG] __previewHideLoading not available")},onUpdateLoading:n=>{let r=window;typeof r.applyEditableEngineConfig=="function"&&r.applyEditableEngineConfig({loading:n}),typeof r.__previewUpdateLoading=="function"?r.__previewUpdateLoading(n):console.warn("[DEBUG] __previewUpdateLoading not available")}}),window.__openAiEditor=(n,r,a,s)=>{this.customizeSettingsPanel.openAiEditor(n,r,a,s)},this.setupPanelLayout(),this.updateWorkbenchTabs(),window.__debugContext=this,window.__updateWorkbenchTabs=()=>this.updateWorkbenchTabs(),this.isDebugOpen=!0,(i=this.debugOverlay)==null||i.classList.remove("hidden"),this.updateDebugBadge(),this.sceneObjectsPanel.refreshObjects(),window.__previewSelectObject=n=>this.selectObject(n),window.addEventListener("config:changed",n=>{var r,a;((r=n.detail)==null?void 0:r.action)!=="remove"&&((a=n.detail)==null?void 0:a.action)!=="clear_object"&&this.highlightChangesTab()}),window.applyAssetToSlot=(n,r,a)=>this.applySlotAsset(n,r,a),window.refreshAssetLibrary=()=>this.libraryPanel.refresh(),window.reRenderAssetLibrary=()=>this.libraryPanel.reRender(),window.getEngineSplashConfig=()=>{var r;let n=window.getActiveConfig;if(typeof n=="function"){let a=n();return((r=a==null?void 0:a.engine)==null?void 0:r.splash)||null}return null},window.addAssetToRegistry=(n,r)=>{let a=window.getEditableAssets;if(typeof a=="function"){let s=a();if(s!=null&&s.libraryAssets&&(s.libraryAssets[n]||(s.libraryAssets[n]=[]),!s.libraryAssets[n].some(c=>c.filename===r))){let c=r.replace(/\.(png|jpg|jpeg)$/i,"").replace(/_/g," ");s.libraryAssets[n].unshift({filename:r,displayName:c}),console.log(`[DEBUG] Added ${r} to registry category ${n}`)}}}}selectObject(t){this.handleObjectSelect(t),this.activeTab!=="inspector"&&(this.activeTab="inspector",this.updateWorkbenchTabs())}highlightChangesTab(){var i;let t=(i=this.container)==null?void 0:i.querySelector('[data-tab="changes"]');t&&t.classList.add("has-pending-changes")}getDebugOverlayHTML(){return`
1091
1136
  <div class="debug-overlay hidden" id="debug-overlay">
1092
1137
  <div class="debug-workbench" id="debug-workbench">
1093
1138
  <div class="workbench-header" id="workbench-handle">
@@ -1132,7 +1177,7 @@ Generate the requested asset matching the brand style.${e.needsTransparency?" Ba
1132
1177
  <div class="workbench-resize-handle" id="workbench-resize"></div>
1133
1178
  </div>
1134
1179
  </div>
1135
- `}refresh(){this.isDebugOpen&&(this.sceneObjectsPanel.refreshObjects(),this.libraryPanel.refresh(),this.brandVisionPanel.refresh(),this.selectedObjectId&&this.handleObjectSelect(this.selectedObjectId))}toggleDebug(t){var i;this.isDebugOpen=t!=null?t:!this.isDebugOpen,(i=this.debugOverlay)==null||i.classList.toggle("hidden",!this.isDebugOpen),this.updateDebugBadge(),this.isDebugOpen?this.refresh():this.stopObjectVisuals()}updateDebugBadge(){if(!this.container)return;let t=this.container.querySelector("#debug-badge");t&&t.classList.toggle("active",this.isDebugOpen)}handleObjectSelect(t){this.selectedObjectId=t,this.sceneObjectsPanel.setSelected(t),this.inspectorPanel.loadObject(t),this.loadObjectConfig(t),this.startObjectVisuals()}nudgeSelectedObject(t,i){var u,p,f,g,h,m,b,v,y;if(!this.container||!this.selectedObjectId)return;let r=this.sceneToolsPanel.getNudgeStep(),a=this.container.querySelector("#config-pos-x"),s=this.container.querySelector("#config-pos-y"),o=Number((u=a==null?void 0:a.value)!=null?u:0),c=Number((p=s==null?void 0:s.value)!=null?p:0);if(!Number.isFinite(o)||!Number.isFinite(c)){let x=this.getSelectedObjectConfig();o=(h=(g=(f=x==null?void 0:x.transform)==null?void 0:f.position)==null?void 0:g.x)!=null?h:0,c=(v=(b=(m=x==null?void 0:x.transform)==null?void 0:m.position)==null?void 0:b.y)!=null?v:0}let l=o+t*r,d=c+i*r;a&&(a.value=String(l)),s&&(s.value=String(d)),(y=this.configViewer)==null||y.style.setProperty("display","block"),this.scheduleObjectAutoApply()}};function gx(e){return new Promise((t,i)=>{let n=new FileReader;n.onerror=()=>i(new Error("FileReader failed")),n.onload=()=>t(String(n.result||"")),n.readAsDataURL(e)})}function mx(e){var r;let[t,i]=e.split(","),n=t==null?void 0:t.match(/data:(.*?);base64/);return{base64:i!=null?i:"",mimeType:(r=n==null?void 0:n[1])!=null?r:"image/png"}}function bx(e){return`
1180
+ `}refresh(){this.isDebugOpen&&(this.sceneObjectsPanel.refreshObjects(),this.libraryPanel.refresh(),this.brandVisionPanel.refresh(),this.selectedObjectId&&this.handleObjectSelect(this.selectedObjectId))}toggleDebug(t){var i;this.isDebugOpen=t!=null?t:!this.isDebugOpen,(i=this.debugOverlay)==null||i.classList.toggle("hidden",!this.isDebugOpen),this.updateDebugBadge(),this.isDebugOpen?this.refresh():this.stopObjectVisuals()}updateDebugBadge(){if(!this.container)return;let t=this.container.querySelector("#debug-badge");t&&t.classList.toggle("active",this.isDebugOpen)}handleObjectSelect(t){this.selectedObjectId=t,this.sceneObjectsPanel.setSelected(t),this.inspectorPanel.loadObject(t),this.loadObjectConfig(t),this.startObjectVisuals()}nudgeSelectedObject(t,i){var u,p,f,g,h,m,b,v,y;if(!this.container||!this.selectedObjectId)return;let r=this.sceneToolsPanel.getNudgeStep(),a=this.container.querySelector("#config-pos-x"),s=this.container.querySelector("#config-pos-y"),o=Number((u=a==null?void 0:a.value)!=null?u:0),c=Number((p=s==null?void 0:s.value)!=null?p:0);if(!Number.isFinite(o)||!Number.isFinite(c)){let x=this.getSelectedObjectConfig();o=(h=(g=(f=x==null?void 0:x.transform)==null?void 0:f.position)==null?void 0:g.x)!=null?h:0,c=(v=(b=(m=x==null?void 0:x.transform)==null?void 0:m.position)==null?void 0:b.y)!=null?v:0}let l=o+t*r,d=c+i*r;a&&(a.value=String(l)),s&&(s.value=String(d)),(y=this.configViewer)==null||y.style.setProperty("display","block"),this.scheduleObjectAutoApply()}};function bx(e){return new Promise((t,i)=>{let n=new FileReader;n.onerror=()=>i(new Error("FileReader failed")),n.onload=()=>t(String(n.result||"")),n.readAsDataURL(e)})}function vx(e){var r;let[t,i]=e.split(","),n=t==null?void 0:t.match(/data:(.*?);base64/);return{base64:i!=null?i:"",mimeType:(r=n==null?void 0:n[1])!=null?r:"image/png"}}function yx(e){return`
1136
1181
  Analyze these screenshots of a brand or game and extract its "Brand DNA".
1137
1182
 
1138
1183
  Provide a concise summary (2-3 sentences) covering:
@@ -1149,9 +1194,9 @@ Palette: [#RRGGBB, #RRGGBB, ...]
1149
1194
  ${e?`
1150
1195
  ADDITIONAL RULES/NOTES:
1151
1196
  ${e}`:""}
1152
- `.trim()}function Uh(){let e=[],t="",i=null;return{async addSources(n){let r=[];for(let a of n){let s=await gx(a),o=mx(s),c={id:`${Date.now()}-${Math.random().toString(16).slice(2)}`,name:a.name,base64:o.base64,mimeType:o.mimeType,dataUrl:s};e.push(c),r.push(c)}return r},getSources(){return e.slice()},async analyze(n,r,a){if(e.length===0)throw new Error("No screenshots to analyze.");let s=bx(r),o=e.map(p=>({base64:p.base64,mimeType:p.mimeType})),c=await va(n,s,o,{model:a}),l=t,d=[],u=c.split(`
1197
+ `.trim()}function qh(){let e=[],t="",i=null;return{async addSources(n){let r=[];for(let a of n){let s=await bx(a),o=vx(s),c={id:`${Date.now()}-${Math.random().toString(16).slice(2)}`,name:a.name,base64:o.base64,mimeType:o.mimeType,dataUrl:s};e.push(c),r.push(c)}return r},getSources(){return e.slice()},async analyze(n,r,a){if(e.length===0)throw new Error("No screenshots to analyze.");let s=yx(r),o=e.map(p=>({base64:p.base64,mimeType:p.mimeType})),c=await va(n,s,o,{model:a}),l=t,d=[],u=c.split(`
1153
1198
  `);for(let p of u)if(p.toLowerCase().startsWith("summary:"))l=p.slice(8).trim();else if(p.toLowerCase().includes("palette:")){let f=p.match(/#[0-9A-Fa-f]{6}/g);f&&f.forEach(g=>{d.includes(g.toUpperCase())||d.push(g.toUpperCase())})}return(!l||l===t)&&(l=c.split(`
1154
- Palette:`)[0].replace(/^Summary:\s*/i,"").trim()),i={summary:l,palette:d.slice(0,10)},i},setSummary(n){t=n,i&&(i={...i,summary:n})},getResult(){return i}}}var ei="handler_api_key_";var Hi=class{static setKey(t,i,n){try{let r={key:this.encryptKey(i),created:Date.now(),lastUsed:Date.now(),label:n||t},a=`${ei}${t}`;localStorage.setItem(a,JSON.stringify(r))}catch(r){console.error("[ApiKeyStorage] Failed to store API key:",r)}}static getKey(t){try{let i=`${ei}${t}`,n=localStorage.getItem(i);if(!n)return null;let r=JSON.parse(n);return r.lastUsed=Date.now(),localStorage.setItem(i,JSON.stringify(r)),this.decryptKey(r.key)}catch(i){return console.error("[ApiKeyStorage] Failed to retrieve API key:",i),null}}static hasKey(t){let i=`${ei}${t}`;return localStorage.getItem(i)!==null}static removeKey(t){try{let i=`${ei}${t}`;localStorage.removeItem(i)}catch(i){console.error("[ApiKeyStorage] Failed to remove API key:",i)}}static getStoredServices(){let t=[];try{for(let i=0;i<localStorage.length;i++){let n=localStorage.key(i);if(n&&n.startsWith(ei)){let r=n.substring(ei.length),a=localStorage.getItem(n);if(a){let s=JSON.parse(a);t.push({service:r,label:s.label,created:s.created,lastUsed:s.lastUsed})}}}}catch(i){console.error("[ApiKeyStorage] Failed to get stored services:",i)}return t.sort((i,n)=>n.lastUsed-i.lastUsed)}static clearAll(){try{let t=[];for(let i=0;i<localStorage.length;i++){let n=localStorage.key(i);n&&n.startsWith(ei)&&t.push(n)}t.forEach(i=>localStorage.removeItem(i))}catch(t){console.error("[ApiKeyStorage] Failed to clear API keys:",t)}}static encryptKey(t){try{let n="handler_preview_salt_2024"+t;return btoa(n)}catch(i){return console.warn("[ApiKeyStorage] Encryption failed, storing as-is:",i),t}}static decryptKey(t){try{let i=atob(t),n="handler_preview_salt_2024";return i.startsWith(n)?i.substring(n.length):i}catch(i){return console.warn("[ApiKeyStorage] Decryption failed, returning as-is:",i),t}}},vl=()=>Hi.getKey("gemini"),yl=(e,t)=>Hi.setKey("gemini",e,t),vx=()=>Hi.hasKey("gemini");window.ApiKeyStorage=Hi;window.getGeminiApiKey=vl;window.setGeminiApiKey=yl;window.hasGeminiApiKey=vx;var wl=class{constructor(){this.modal=null;this.options=null;this.analyzer=Uh();this.currentPrompt="";this.isGenerating=!1;this.generatedImages=[];this.selectedImageIndex=-1;this.promptInput=null;this.generateBtn=null;this.loadingEl=null;this.galleryEl=null;this.previewEl=null}open(t){this.options=t,this.currentPrompt=t.initialPrompt||"",this.generatedImages=[],this.selectedImageIndex=-1,this.isGenerating=!1,this.createModal(),document.body.appendChild(this.modal),setTimeout(()=>{var i,n;(i=this.promptInput)==null||i.focus(),(n=this.promptInput)==null||n.select()},100)}createModal(){var i;let t=document.createElement("div");t.className="ai-modal",t.innerHTML=`
1199
+ Palette:`)[0].replace(/^Summary:\s*/i,"").trim()),i={summary:l,palette:d.slice(0,10)},i},setSummary(n){t=n,i&&(i={...i,summary:n})},getResult(){return i}}}var ei="handler_api_key_";var Hi=class{static setKey(t,i,n){try{let r={key:this.encryptKey(i),created:Date.now(),lastUsed:Date.now(),label:n||t},a=`${ei}${t}`;localStorage.setItem(a,JSON.stringify(r))}catch(r){console.error("[ApiKeyStorage] Failed to store API key:",r)}}static getKey(t){try{let i=`${ei}${t}`,n=localStorage.getItem(i);if(!n)return null;let r=JSON.parse(n);return r.lastUsed=Date.now(),localStorage.setItem(i,JSON.stringify(r)),this.decryptKey(r.key)}catch(i){return console.error("[ApiKeyStorage] Failed to retrieve API key:",i),null}}static hasKey(t){let i=`${ei}${t}`;return localStorage.getItem(i)!==null}static removeKey(t){try{let i=`${ei}${t}`;localStorage.removeItem(i)}catch(i){console.error("[ApiKeyStorage] Failed to remove API key:",i)}}static getStoredServices(){let t=[];try{for(let i=0;i<localStorage.length;i++){let n=localStorage.key(i);if(n&&n.startsWith(ei)){let r=n.substring(ei.length),a=localStorage.getItem(n);if(a){let s=JSON.parse(a);t.push({service:r,label:s.label,created:s.created,lastUsed:s.lastUsed})}}}}catch(i){console.error("[ApiKeyStorage] Failed to get stored services:",i)}return t.sort((i,n)=>n.lastUsed-i.lastUsed)}static clearAll(){try{let t=[];for(let i=0;i<localStorage.length;i++){let n=localStorage.key(i);n&&n.startsWith(ei)&&t.push(n)}t.forEach(i=>localStorage.removeItem(i))}catch(t){console.error("[ApiKeyStorage] Failed to clear API keys:",t)}}static encryptKey(t){try{let n="handler_preview_salt_2024"+t;return btoa(n)}catch(i){return console.warn("[ApiKeyStorage] Encryption failed, storing as-is:",i),t}}static decryptKey(t){try{let i=atob(t),n="handler_preview_salt_2024";return i.startsWith(n)?i.substring(n.length):i}catch(i){return console.warn("[ApiKeyStorage] Decryption failed, returning as-is:",i),t}}},xl=()=>Hi.getKey("gemini"),wl=(e,t)=>Hi.setKey("gemini",e,t),xx=()=>Hi.hasKey("gemini");window.ApiKeyStorage=Hi;window.getGeminiApiKey=xl;window.setGeminiApiKey=wl;window.hasGeminiApiKey=xx;var El=class{constructor(){this.modal=null;this.options=null;this.analyzer=qh();this.currentPrompt="";this.isGenerating=!1;this.generatedImages=[];this.selectedImageIndex=-1;this.promptInput=null;this.generateBtn=null;this.loadingEl=null;this.galleryEl=null;this.previewEl=null}open(t){this.options=t,this.currentPrompt=t.initialPrompt||"",this.generatedImages=[],this.selectedImageIndex=-1,this.isGenerating=!1,this.createModal(),document.body.appendChild(this.modal),setTimeout(()=>{var i,n;(i=this.promptInput)==null||i.focus(),(n=this.promptInput)==null||n.select()},100)}createModal(){var i;let t=document.createElement("div");t.className="ai-modal",t.innerHTML=`
1155
1200
  <div class="ai-modal-card">
1156
1201
  <div class="ai-modal-header">
1157
1202
  <div class="ai-modal-actions">
@@ -1232,12 +1277,12 @@ Palette:`)[0].replace(/^Summary:\s*/i,"").trim()),i={summary:l,palette:d.slice(0
1232
1277
  </div>
1233
1278
  `,this.modal=t,this.attachEventListeners(),this.updatePromptFromDna()}attachEventListeners(){var n;if(!this.modal)return;this.promptInput=this.modal.querySelector(".ai-textarea"),this.generateBtn=this.modal.querySelector('[data-action="generate"]'),this.loadingEl=this.modal.querySelector("[data-loading]"),this.galleryEl=this.modal.querySelector("[data-gallery]"),this.previewEl=this.modal.querySelector("[data-preview]"),(n=this.promptInput)==null||n.addEventListener("input",()=>{var r;this.currentPrompt=((r=this.promptInput)==null?void 0:r.value)||"",this.updateGenerateButton()});let t=this.modal.querySelector('[data-strength="creativity"]'),i=this.modal.querySelector(".ai-strength-value");t==null||t.addEventListener("input",()=>{i.textContent=t.value}),this.modal.addEventListener("click",r=>{var o;let a=r.target;switch(a.dataset.action||((o=a.closest("[data-action]"))==null?void 0:o.getAttribute("data-action"))){case"generate":this.generateImage();break;case"apply":this.applySelectedImage();break;case"gallery":this.toggleGallery();break;case"close":case"cancel":this.close();break}}),this.modal.addEventListener("click",r=>{let a=r.target;if(a.classList.contains("ai-gallery-item")||a.closest(".ai-gallery-item")){let s=a.closest(".ai-gallery-item"),o=parseInt(s.dataset.index||"-1");o>=0&&this.selectImage(o)}}),this.modal.addEventListener("click",r=>{r.target===this.modal&&this.close()}),this.updateGenerateButton()}updateGenerateButton(){if(!this.generateBtn)return;let t=this.currentPrompt.trim().length>0;this.generateBtn.disabled=!t||this.isGenerating}async updatePromptFromDna(){var i;let t=(i=this.modal)==null?void 0:i.querySelector("#ai-use-dna");if(t!=null&&t.checked)try{let n=this.analyzer.getResult();if(n!=null&&n.summary&&this.promptInput){let r=`${this.currentPrompt}
1234
1279
 
1235
- Style guidelines: ${n.summary}`;this.promptInput.value=r,this.currentPrompt=r}}catch(n){console.warn("[AiEditorModal] Failed to apply brand DNA:",n)}}async generateImage(){var t,i,n,r;if(!(!this.options||this.isGenerating)){this.isGenerating=!0,this.updateGenerateButton(),(t=this.loadingEl)==null||t.classList.remove("hidden"),(i=this.previewEl)==null||i.classList.add("hidden");try{let a=this.getApiKey();if(!a){alert("Please set your Gemini API key first. You can do this in the AI Creative Suite panel.");return}let s=[];if(this.options.currentValue&&this.options.currentValue.startsWith("data:"))try{let l=await ba(this.options.currentValue);l&&(s=[{base64:l.base64,mimeType:l.mimeType}])}catch(l){console.warn("[AiEditorModal] Failed to load current image:",l)}let o=await Ni(a,this.currentPrompt,s,{aspectRatio:"1:1"}),c=await Fi(o);this.generatedImages.push(c||o),this.selectedImageIndex=this.generatedImages.length-1,this.updateGallery(),this.updatePreview(),this.updateApplyButton()}catch(a){console.error("[AiEditorModal] Generation failed:",a),alert(`Generation failed: ${a instanceof Error?a.message:"Unknown error"}`)}finally{this.isGenerating=!1,(n=this.loadingEl)==null||n.classList.add("hidden"),(r=this.previewEl)==null||r.classList.remove("hidden"),this.updateGenerateButton()}}}updateGallery(){if(!this.galleryEl)return;let t=this.galleryEl.querySelector("[data-gallery-grid]");t&&(t.innerHTML=this.generatedImages.map((i,n)=>`
1280
+ Style guidelines: ${n.summary}`;this.promptInput.value=r,this.currentPrompt=r}}catch(n){console.warn("[AiEditorModal] Failed to apply brand DNA:",n)}}async generateImage(){var t,i,n,r;if(!(!this.options||this.isGenerating)){this.isGenerating=!0,this.updateGenerateButton(),(t=this.loadingEl)==null||t.classList.remove("hidden"),(i=this.previewEl)==null||i.classList.add("hidden");try{let a=this.getApiKey();if(!a){alert("Please set your Gemini API key first. You can do this in the AI Creative Suite panel.");return}let s=[];if(this.options.currentValue&&this.options.currentValue.startsWith("data:"))try{let l=await ba(this.options.currentValue);l&&(s=[{base64:l.base64,mimeType:l.mimeType}])}catch(l){console.warn("[AiEditorModal] Failed to load current image:",l)}let o=await Fi(a,this.currentPrompt,s,{aspectRatio:"1:1"}),c=await Ni(o);this.generatedImages.push(c||o),this.selectedImageIndex=this.generatedImages.length-1,this.updateGallery(),this.updatePreview(),this.updateApplyButton()}catch(a){console.error("[AiEditorModal] Generation failed:",a),alert(`Generation failed: ${a instanceof Error?a.message:"Unknown error"}`)}finally{this.isGenerating=!1,(n=this.loadingEl)==null||n.classList.add("hidden"),(r=this.previewEl)==null||r.classList.remove("hidden"),this.updateGenerateButton()}}}updateGallery(){if(!this.galleryEl)return;let t=this.galleryEl.querySelector("[data-gallery-grid]");t&&(t.innerHTML=this.generatedImages.map((i,n)=>`
1236
1281
  <div class="ai-gallery-item ${n===this.selectedImageIndex?"active":""}" data-index="${n}">
1237
1282
  <img class="ai-gallery-thumb" src="${i}" alt="Generated ${n+1}" />
1238
1283
  <div class="ai-gallery-label">#${n+1}</div>
1239
1284
  </div>
1240
- `).join(""))}updatePreview(){if(!this.previewEl||this.selectedImageIndex<0)return;let t=this.generatedImages[this.selectedImageIndex];this.previewEl.innerHTML=`<img src="${t}" alt="Selected image" />`}selectImage(t){t<0||t>=this.generatedImages.length||(this.selectedImageIndex=t,this.updateGallery(),this.updatePreview(),this.updateApplyButton())}toggleGallery(){this.galleryEl&&this.galleryEl.classList.toggle("hidden")}updateApplyButton(){var i;let t=(i=this.modal)==null?void 0:i.querySelector('[data-action="apply"]');t&&(t.disabled=this.selectedImageIndex<0)}applySelectedImage(){var i;if(this.selectedImageIndex<0||!((i=this.options)!=null&&i.onApply))return;let t=this.generatedImages[this.selectedImageIndex];this.options.onApply(t),this.close()}getApiKey(){let t=vl();if(t)return t;try{let i=this.analyzer.getResult();if(i&&i.apiKey)return yl(i.apiKey,"From Brand DNA"),i.apiKey}catch(i){console.warn("[AiEditorModal] Failed to get API key from brand DNA:",i)}return null}close(){this.modal&&this.modal.parentNode&&this.modal.parentNode.removeChild(this.modal),this.modal=null,this.options=null}},xl=null;window.__openAiEditor=function(e,t,i,n){xl||(xl=new wl),xl.open({objectId:e,initialPrompt:t,currentValue:i,path:n==null?void 0:n.path,onApply:r=>{if(n!=null&&n.path){let a=window.updateManager;if(a)a.updateProperty(e,n.path,r);else{let s=window.getEditableObjectConfig,o=s==null?void 0:s(e);if(o){let c=n.path.split("."),l=o;for(let d=0;d<c.length-1;d++)l[c[d]]||(l[c[d]]={}),l=l[c[d]];l[c[c.length-1]]=r}}}window.dispatchEvent(new CustomEvent("inspector:refresh"))}})};var _l=class{constructor(){this.modal=null;this.options=null}open(t){this.options=t,this.createModal(),document.body.appendChild(this.modal)}createModal(){if(!this.options)return;let{assetPath:t,assetType:i,objectId:n}=this.options,r=n||"Asset Preview",a=document.createElement("div");a.className="asset-preview-modal",a.innerHTML=`
1285
+ `).join(""))}updatePreview(){if(!this.previewEl||this.selectedImageIndex<0)return;let t=this.generatedImages[this.selectedImageIndex];this.previewEl.innerHTML=`<img src="${t}" alt="Selected image" />`}selectImage(t){t<0||t>=this.generatedImages.length||(this.selectedImageIndex=t,this.updateGallery(),this.updatePreview(),this.updateApplyButton())}toggleGallery(){this.galleryEl&&this.galleryEl.classList.toggle("hidden")}updateApplyButton(){var i;let t=(i=this.modal)==null?void 0:i.querySelector('[data-action="apply"]');t&&(t.disabled=this.selectedImageIndex<0)}applySelectedImage(){var i;if(this.selectedImageIndex<0||!((i=this.options)!=null&&i.onApply))return;let t=this.generatedImages[this.selectedImageIndex];this.options.onApply(t),this.close()}getApiKey(){let t=xl();if(t)return t;try{let i=this.analyzer.getResult();if(i&&i.apiKey)return wl(i.apiKey,"From Brand DNA"),i.apiKey}catch(i){console.warn("[AiEditorModal] Failed to get API key from brand DNA:",i)}return null}close(){this.modal&&this.modal.parentNode&&this.modal.parentNode.removeChild(this.modal),this.modal=null,this.options=null}},_l=null;window.__openAiEditor=function(e,t,i,n){_l||(_l=new El),_l.open({objectId:e,initialPrompt:t,currentValue:i,path:n==null?void 0:n.path,onApply:r=>{if(n!=null&&n.path){let a=window.updateManager;if(a)a.updateProperty(e,n.path,r);else{let s=window.getEditableObjectConfig,o=s==null?void 0:s(e);if(o){let c=n.path.split("."),l=o;for(let d=0;d<c.length-1;d++)l[c[d]]||(l[c[d]]={}),l=l[c[d]];l[c[c.length-1]]=r}}}window.dispatchEvent(new CustomEvent("inspector:refresh"))}})};var Sl=class{constructor(){this.modal=null;this.options=null}open(t){this.options=t,this.createModal(),document.body.appendChild(this.modal)}createModal(){if(!this.options)return;let{assetPath:t,assetType:i,objectId:n}=this.options,r=n||"Asset Preview",a=document.createElement("div");a.className="asset-preview-modal",a.innerHTML=`
1241
1286
  <div class="asset-preview-card">
1242
1287
  <div class="asset-preview-header">
1243
1288
  <div class="asset-preview-title">${r}</div>
@@ -1264,7 +1309,7 @@ Style guidelines: ${n.summary}`;this.promptInput.value=r,this.currentPrompt=r}}c
1264
1309
  <source src="${r}" type="audio/wav">
1265
1310
  Your browser does not support the audio element.
1266
1311
  </audio>
1267
- `;case"text":return`<pre style="background: rgba(0,0,0,0.2); padding: 16px; border-radius: 8px; max-height: 300px; overflow-y: auto; white-space: pre-wrap;">${t}</pre>`;default:return`<div class="asset-preview-placeholder">Cannot preview ${i} assets</div>`}}resolveAssetUrl(t){return t.startsWith("data:")||t.startsWith("blob:")||t.startsWith("/")?t:`/raw/${t}`}attachEventListeners(){if(!this.modal)return;this.modal.addEventListener("click",n=>{let r=n.target;(r.dataset.action==="close"||r===this.modal)&&this.close()});let t=this.modal.querySelector('[data-action="change"]');t&&t.addEventListener("click",()=>{this.openAssetEditor()});let i=this.modal.querySelector('[data-action="edit"]');i&&i.addEventListener("click",()=>{this.openAiEditor(),this.close()})}openAssetEditor(){this.options&&import("./AssetEditorModal-DBAGQINC.js").then(({AssetEditorModal:t})=>{new t().show(this.options.objectId||"unknown",this.options.propertyPath||"",this.options.assetPath,n=>{var r;(r=this.options)!=null&&r.onChange&&this.options.onChange(n),this.close()})})}openAiEditor(){if(!this.options||this.options.assetType!=="image")return;let t=window.__openAiEditor;typeof t=="function"&&t(this.options.objectId||"asset","Edit this image asset",this.options.assetPath,{path:this.options.propertyPath,onApply:i=>{var n;(n=this.options)!=null&&n.onChange&&this.options.onChange(i)}})}close(){this.modal&&this.modal.parentNode&&this.modal.parentNode.removeChild(this.modal),this.modal=null,this.options=null}};window.openAssetPreview=function(e){new _l().open(e)};var El=class{constructor(){this.modal=null;this.canvas=null;this.ctx=null;this.image=null;this.options=null;this.cropX=0;this.cropY=0;this.cropWidth=100;this.cropHeight=100;this.scale=1;this.panX=0;this.panY=0;this.isDragging=!1;this.dragStartX=0;this.dragStartY=0;this.lastPanX=0;this.lastPanY=0}open(t){this.options=t,this.createModal(),this.loadImage(),document.body.appendChild(this.modal)}createModal(){let t=document.createElement("div");t.className="asset-crop-modal",t.innerHTML=`
1312
+ `;case"text":return`<pre style="background: rgba(0,0,0,0.2); padding: 16px; border-radius: 8px; max-height: 300px; overflow-y: auto; white-space: pre-wrap;">${t}</pre>`;default:return`<div class="asset-preview-placeholder">Cannot preview ${i} assets</div>`}}resolveAssetUrl(t){return t.startsWith("data:")||t.startsWith("blob:")||t.startsWith("/")?t:`/raw/${t}`}attachEventListeners(){if(!this.modal)return;this.modal.addEventListener("click",n=>{let r=n.target;(r.dataset.action==="close"||r===this.modal)&&this.close()});let t=this.modal.querySelector('[data-action="change"]');t&&t.addEventListener("click",()=>{this.openAssetEditor()});let i=this.modal.querySelector('[data-action="edit"]');i&&i.addEventListener("click",()=>{this.openAiEditor(),this.close()})}openAssetEditor(){this.options&&import("./AssetEditorModal-DBAGQINC.js").then(({AssetEditorModal:t})=>{new t().show(this.options.objectId||"unknown",this.options.propertyPath||"",this.options.assetPath,n=>{var r;(r=this.options)!=null&&r.onChange&&this.options.onChange(n),this.close()})})}openAiEditor(){if(!this.options||this.options.assetType!=="image")return;let t=window.__openAiEditor;typeof t=="function"&&t(this.options.objectId||"asset","Edit this image asset",this.options.assetPath,{path:this.options.propertyPath,onApply:i=>{var n;(n=this.options)!=null&&n.onChange&&this.options.onChange(i)}})}close(){this.modal&&this.modal.parentNode&&this.modal.parentNode.removeChild(this.modal),this.modal=null,this.options=null}};window.openAssetPreview=function(e){new Sl().open(e)};var Al=class{constructor(){this.modal=null;this.canvas=null;this.ctx=null;this.image=null;this.options=null;this.cropX=0;this.cropY=0;this.cropWidth=100;this.cropHeight=100;this.scale=1;this.panX=0;this.panY=0;this.isDragging=!1;this.dragStartX=0;this.dragStartY=0;this.lastPanX=0;this.lastPanY=0}open(t){this.options=t,this.createModal(),this.loadImage(),document.body.appendChild(this.modal)}createModal(){let t=document.createElement("div");t.className="asset-crop-modal",t.innerHTML=`
1268
1313
  <div class="asset-crop-card">
1269
1314
  <div class="asset-crop-header">
1270
1315
  <div>
@@ -1315,7 +1360,7 @@ Style guidelines: ${n.summary}`;this.promptInput.value=r,this.currentPrompt=r}}c
1315
1360
  <button class="asset-crop-apply primary" data-action="apply">Apply Crop</button>
1316
1361
  </div>
1317
1362
  </div>
1318
- `,this.modal=t,this.attachEventListeners(),this.initializeCanvas()}initializeCanvas(){this.modal&&(this.canvas=this.modal.querySelector(".asset-crop-canvas"),this.canvas&&(this.ctx=this.canvas.getContext("2d"),this.canvas.width=400,this.canvas.height=300))}loadImage(){this.options&&(this.image=new Image,this.image.crossOrigin="anonymous",this.image.onload=()=>{this.initializeCrop(),this.render()},this.image.src=this.options.imageSrc)}initializeCrop(){var n;if(!this.image||!this.canvas)return;let t=this.image.width/this.image.height,i=this.canvas.width/this.canvas.height;t>i?(this.cropHeight=this.image.height,this.cropWidth=this.cropHeight*i,this.cropX=(this.image.width-this.cropWidth)/2,this.cropY=0):(this.cropWidth=this.image.width,this.cropHeight=this.cropWidth/i,this.cropX=0,this.cropY=(this.image.height-this.cropHeight)/2),(n=this.options)!=null&&n.aspectRatio&&this.applyAspectRatio(this.options.aspectRatio),this.fitToCanvas()}applyAspectRatio(t){if(!this.image)return;let i=this.image.width/this.image.height,n=this.cropX+this.cropWidth/2,r=this.cropY+this.cropHeight/2;t>i?(this.cropWidth=Math.min(this.image.width,this.cropHeight*t),this.cropHeight=this.cropWidth/t):(this.cropHeight=Math.min(this.image.height,this.cropWidth/t),this.cropWidth=this.cropHeight*t),this.cropX=Math.max(0,Math.min(this.image.width-this.cropWidth,n-this.cropWidth/2)),this.cropY=Math.max(0,Math.min(this.image.height-this.cropHeight,r-this.cropHeight/2))}fitToCanvas(){if(!this.image||!this.canvas)return;let t=this.canvas.width/this.cropWidth,i=this.canvas.height/this.cropHeight;this.scale=Math.min(t,i)*.9,this.panX=(this.canvas.width-this.cropWidth*this.scale)/2,this.panY=(this.canvas.height-this.cropHeight*this.scale)/2}render(){!this.ctx||!this.image||!this.canvas||(this.ctx.clearRect(0,0,this.canvas.width,this.canvas.height),this.ctx.save(),this.ctx.translate(this.panX,this.panY),this.ctx.scale(this.scale,this.scale),this.ctx.drawImage(this.image,-this.cropX,-this.cropY,this.image.width,this.image.height),this.ctx.restore(),this.drawCropOverlay(),this.updatePreview())}drawCropOverlay(){if(!this.ctx||!this.canvas)return;let t=this.panX,i=this.panY,n=this.cropWidth*this.scale,r=this.cropHeight*this.scale;this.ctx.fillStyle="rgba(0, 0, 0, 0.5)",this.ctx.fillRect(0,0,this.canvas.width,this.canvas.height),this.ctx.clearRect(t,i,n,r),this.ctx.strokeStyle="#ffffff",this.ctx.lineWidth=2,this.ctx.strokeRect(t,i,n,r),this.ctx.fillStyle="#ffffff";let a=8;[[t,i],[t+n-a,i],[t,i+r-a],[t+n-a,i+r-a]].forEach(([o,c])=>{var l;(l=this.ctx)==null||l.fillRect(o,c,a,a)})}updatePreview(){if(!this.modal||!this.image)return;let t=this.modal.querySelector(".asset-crop-preview-canvas");if(!t)return;let i=t.getContext("2d");if(!i)return;let n=150;t.width=n,t.height=n;let r=n/this.cropWidth,a=n/this.cropHeight,s=Math.min(r,a),o=this.cropWidth*s,c=this.cropHeight*s,l=(n-o)/2,d=(n-c)/2;i.drawImage(this.image,this.cropX,this.cropY,this.cropWidth,this.cropHeight,l,d,o,c)}attachEventListeners(){if(!this.modal||!this.canvas)return;this.canvas.addEventListener("mousedown",this.handleMouseDown.bind(this)),this.canvas.addEventListener("mousemove",this.handleMouseMove.bind(this)),this.canvas.addEventListener("mouseup",this.handleMouseUp.bind(this)),this.canvas.addEventListener("wheel",this.handleWheel.bind(this)),this.canvas.addEventListener("touchstart",this.handleTouchStart.bind(this)),this.canvas.addEventListener("touchmove",this.handleTouchMove.bind(this)),this.canvas.addEventListener("touchend",this.handleTouchEnd.bind(this));let t=this.modal.querySelector(".asset-crop-zoom-slider");t==null||t.addEventListener("input",n=>{let r=parseFloat(n.target.value);this.setZoom(r)});let i=this.modal.querySelector(".asset-crop-aspect-select");i==null||i.addEventListener("change",n=>{let r=n.target.value;this.setAspectRatio(r)}),this.modal.addEventListener("click",n=>{switch(n.target.dataset.action){case"reset":this.reset();break;case"apply":this.applyCrop();break;case"cancel":case"close":this.close();break}}),this.modal.addEventListener("click",n=>{n.target===this.modal&&this.close()})}handleMouseDown(t){this.isDragging=!0,this.dragStartX=t.clientX,this.dragStartY=t.clientY,this.lastPanX=this.panX,this.lastPanY=this.panY,this.canvas.style.cursor="grabbing"}handleMouseMove(t){if(!this.isDragging)return;let i=t.clientX-this.dragStartX,n=t.clientY-this.dragStartY;this.panX=this.lastPanX+i,this.panY=this.lastPanY+n,this.constrainPan(),this.render()}handleMouseUp(){this.isDragging=!1,this.canvas.style.cursor="grab"}handleWheel(t){t.preventDefault();let i=t.deltaY>0?.9:1.1;this.setZoom(this.scale*i)}handleTouchStart(t){t.touches.length===1&&(this.isDragging=!0,this.dragStartX=t.touches[0].clientX,this.dragStartY=t.touches[0].clientY,this.lastPanX=this.panX,this.lastPanY=this.panY)}handleTouchMove(t){if(!this.isDragging||t.touches.length!==1)return;t.preventDefault();let i=t.touches[0].clientX-this.dragStartX,n=t.touches[0].clientY-this.dragStartY;this.panX=this.lastPanX+i,this.panY=this.lastPanY+n,this.constrainPan(),this.render()}handleTouchEnd(){this.isDragging=!1}setZoom(t){this.scale=Math.max(.1,Math.min(3,t)),this.updateZoomUI(),this.constrainPan(),this.render()}setAspectRatio(t){let i;switch(t){case"1:1":i=1;break;case"4:3":i=4/3;break;case"16:9":i=16/9;break;case"3:2":i=3/2;break;default:i=void 0}i&&this.applyAspectRatio(i),this.fitToCanvas(),this.render()}updateZoomUI(){if(!this.modal)return;let t=this.modal.querySelector(".asset-crop-zoom-value"),i=this.modal.querySelector(".asset-crop-zoom-slider");t&&(t.textContent=`${this.scale.toFixed(1)}x`),i&&(i.value=this.scale.toString())}constrainPan(){if(!this.canvas)return;let t=this.cropWidth*this.scale,i=this.cropHeight*this.scale;this.panX=Math.max(this.canvas.width-t,Math.min(0,this.panX)),this.panY=Math.max(this.canvas.height-i,Math.min(0,this.panY))}reset(){this.initializeCrop(),this.render()}applyCrop(){var r;if(!this.image||!((r=this.options)!=null&&r.onCrop))return;let t=document.createElement("canvas"),i=t.getContext("2d");if(!i)return;t.width=this.cropWidth,t.height=this.cropHeight,i.drawImage(this.image,this.cropX,this.cropY,this.cropWidth,this.cropHeight,0,0,this.cropWidth,this.cropHeight);let n=t.toDataURL("image/png");this.options.onCrop(n),this.close()}close(){this.modal&&this.modal.parentNode&&this.modal.parentNode.removeChild(this.modal);let t=this.options;this.modal=null,this.canvas=null,this.ctx=null,this.image=null,this.options=null,t!=null&&t.onCancel&&t.onCancel()}};window.openAssetCrop=function(e){new El().open(e)};var Sl=class{constructor(t={}){this.isLandscape=!1;this.autoScale=1;this.userScaleMultiplier=1;this.viewMode="single";this.comparePresets=[di("playable-portrait"),di("iphone-14"),di("ipad-mini")];this.activeCompareId="playable-portrait";this.compareViewports=new Map;this.resizeObserver=null;this.rafFitHandle=null;this.ignoreNextWindowResize=!1;this.frameDragOffsetX=0;this.frameDragOffsetY=0;this.frameDragActive=!1;this.frameDragStartX=0;this.frameDragStartY=0;this.frameDragOriginX=0;this.frameDragOriginY=0;this.consolePanel=null;this.consoleMessages=[];this.isConsoleOpen=!1;this.hasInitialFit=!1;this.isMounted=!1;this.isInitialized=!1;this.gameReady=!1;this.resizeListenersDisabled=!1;this.compareSnapshotTimer=null;this.onWindowResize=t=>{if(this.ignoreNextWindowResize){this.ignoreNextWindowResize=!1;return}this.resizeListenersDisabled||!this.gameReady||this.scheduleFit()};this.onFrameDragMove=t=>{if(!this.frameDragActive)return;let i=t.clientX-this.frameDragStartX,n=t.clientY-this.frameDragStartY;this.frameDragOffsetX=this.frameDragOriginX+i,this.frameDragOffsetY=this.frameDragOriginY+n,this.applyFrameDrag()};this.onFrameDragEnd=()=>{this.frameDragActive&&(this.frameDragActive=!1,window.removeEventListener("pointermove",this.onFrameDragMove),window.removeEventListener("pointerup",this.onFrameDragEnd))};this.options=t,this.currentPreset=di(t.defaultDevice||ss.id),this.debugPanel=new Ra,this.container=this.createShell(),this.previewContainer=this.mustQuery(".preview-container"),this.singleStage=this.mustQuery('[data-preview-stage="single"]'),this.compareStage=this.mustQuery('[data-preview-stage="compare"]'),this.frameDragger=this.mustQuery(".frame-dragger"),this.frameWrapper=this.mustQuery(".frame-wrapper"),this.deviceFrame=this.mustQuery(".device-frame"),this.gameContainer=this.mustQuery(".game-container"),this.lastSinglePresetId=this.currentPreset.id,this.consolePanel=this.container.querySelector(".console-panel"),this.debugPanel.initialize(this.container),this.debugPanel.setupDebugEventListeners(),this.applyDeviceFrameStyles(),this.setupCompareViewports(),this.setupConsoleInterceptor(),this.setupObserversAndListeners(),this.setupFrameDragging(),this.setDevice(this.currentPreset.id,{suppressCallback:!0}),this.isInitialized=!0}mount(t=document.body){t.innerHTML="",t.appendChild(this.container),this.isMounted=!0,this.scheduleFit()}destroy(){if(this.disableResizeListeners(),this.resizeObserver){try{this.resizeObserver.disconnect()}catch{}this.resizeObserver=null}window.removeEventListener("resize",this.onWindowResize),this.rafFitHandle&&(cancelAnimationFrame(this.rafFitHandle),this.rafFitHandle=null),this.compareSnapshotTimer&&(window.clearInterval(this.compareSnapshotTimer),this.compareSnapshotTimer=null),this.gameReady=!1}getGameContainer(){return this.gameContainer}getScreen(){let t=this.getEffectivePreset();return{width:t.width,height:t.height}}getEffectivePreset(){var t;return this.isLandscape?{...this.currentPreset,width:this.currentPreset.height,height:this.currentPreset.width,ratio:((t=this.currentPreset.ratio)==null?void 0:t.split(":").reverse().join(":"))||this.currentPreset.ratio}:this.currentPreset}notifyGameLoaded(){this.gameReady=!0,this.enableResizeListeners(),this.scheduleFit(),this.debugPanel.refresh()}notifyGameDestroyed(){this.gameReady=!1,this.disableResizeListeners()}disableResizeListeners(){this.resizeListenersDisabled=!0,this.rafFitHandle&&(cancelAnimationFrame(this.rafFitHandle),this.rafFitHandle=null)}enableResizeListeners(){this.resizeListenersDisabled=!1}refresh(){this.options.onRefresh?this.options.onRefresh():window.location.reload()}setDevice(t,i={}){var r,a;let n=this.autoScale*this.userScaleMultiplier;this.isLandscape=!1,this.currentPreset=di(t),this.viewMode==="single"&&(this.lastSinglePresetId=this.currentPreset.id),this.applyPresetDimensions(),this.fitToScreen({keepVisibleScale:n}),i.suppressCallback||(a=(r=this.options).onDeviceChange)==null||a.call(r,this.getEffectivePreset()),this.emitScreenChange()}createShell(){var i;let t=document.createElement("div");return t.className="preview-shell",t.innerHTML=`
1363
+ `,this.modal=t,this.attachEventListeners(),this.initializeCanvas()}initializeCanvas(){this.modal&&(this.canvas=this.modal.querySelector(".asset-crop-canvas"),this.canvas&&(this.ctx=this.canvas.getContext("2d"),this.canvas.width=400,this.canvas.height=300))}loadImage(){this.options&&(this.image=new Image,this.image.crossOrigin="anonymous",this.image.onload=()=>{this.initializeCrop(),this.render()},this.image.src=this.options.imageSrc)}initializeCrop(){var n;if(!this.image||!this.canvas)return;let t=this.image.width/this.image.height,i=this.canvas.width/this.canvas.height;t>i?(this.cropHeight=this.image.height,this.cropWidth=this.cropHeight*i,this.cropX=(this.image.width-this.cropWidth)/2,this.cropY=0):(this.cropWidth=this.image.width,this.cropHeight=this.cropWidth/i,this.cropX=0,this.cropY=(this.image.height-this.cropHeight)/2),(n=this.options)!=null&&n.aspectRatio&&this.applyAspectRatio(this.options.aspectRatio),this.fitToCanvas()}applyAspectRatio(t){if(!this.image)return;let i=this.image.width/this.image.height,n=this.cropX+this.cropWidth/2,r=this.cropY+this.cropHeight/2;t>i?(this.cropWidth=Math.min(this.image.width,this.cropHeight*t),this.cropHeight=this.cropWidth/t):(this.cropHeight=Math.min(this.image.height,this.cropWidth/t),this.cropWidth=this.cropHeight*t),this.cropX=Math.max(0,Math.min(this.image.width-this.cropWidth,n-this.cropWidth/2)),this.cropY=Math.max(0,Math.min(this.image.height-this.cropHeight,r-this.cropHeight/2))}fitToCanvas(){if(!this.image||!this.canvas)return;let t=this.canvas.width/this.cropWidth,i=this.canvas.height/this.cropHeight;this.scale=Math.min(t,i)*.9,this.panX=(this.canvas.width-this.cropWidth*this.scale)/2,this.panY=(this.canvas.height-this.cropHeight*this.scale)/2}render(){!this.ctx||!this.image||!this.canvas||(this.ctx.clearRect(0,0,this.canvas.width,this.canvas.height),this.ctx.save(),this.ctx.translate(this.panX,this.panY),this.ctx.scale(this.scale,this.scale),this.ctx.drawImage(this.image,-this.cropX,-this.cropY,this.image.width,this.image.height),this.ctx.restore(),this.drawCropOverlay(),this.updatePreview())}drawCropOverlay(){if(!this.ctx||!this.canvas)return;let t=this.panX,i=this.panY,n=this.cropWidth*this.scale,r=this.cropHeight*this.scale;this.ctx.fillStyle="rgba(0, 0, 0, 0.5)",this.ctx.fillRect(0,0,this.canvas.width,this.canvas.height),this.ctx.clearRect(t,i,n,r),this.ctx.strokeStyle="#ffffff",this.ctx.lineWidth=2,this.ctx.strokeRect(t,i,n,r),this.ctx.fillStyle="#ffffff";let a=8;[[t,i],[t+n-a,i],[t,i+r-a],[t+n-a,i+r-a]].forEach(([o,c])=>{var l;(l=this.ctx)==null||l.fillRect(o,c,a,a)})}updatePreview(){if(!this.modal||!this.image)return;let t=this.modal.querySelector(".asset-crop-preview-canvas");if(!t)return;let i=t.getContext("2d");if(!i)return;let n=150;t.width=n,t.height=n;let r=n/this.cropWidth,a=n/this.cropHeight,s=Math.min(r,a),o=this.cropWidth*s,c=this.cropHeight*s,l=(n-o)/2,d=(n-c)/2;i.drawImage(this.image,this.cropX,this.cropY,this.cropWidth,this.cropHeight,l,d,o,c)}attachEventListeners(){if(!this.modal||!this.canvas)return;this.canvas.addEventListener("mousedown",this.handleMouseDown.bind(this)),this.canvas.addEventListener("mousemove",this.handleMouseMove.bind(this)),this.canvas.addEventListener("mouseup",this.handleMouseUp.bind(this)),this.canvas.addEventListener("wheel",this.handleWheel.bind(this)),this.canvas.addEventListener("touchstart",this.handleTouchStart.bind(this)),this.canvas.addEventListener("touchmove",this.handleTouchMove.bind(this)),this.canvas.addEventListener("touchend",this.handleTouchEnd.bind(this));let t=this.modal.querySelector(".asset-crop-zoom-slider");t==null||t.addEventListener("input",n=>{let r=parseFloat(n.target.value);this.setZoom(r)});let i=this.modal.querySelector(".asset-crop-aspect-select");i==null||i.addEventListener("change",n=>{let r=n.target.value;this.setAspectRatio(r)}),this.modal.addEventListener("click",n=>{switch(n.target.dataset.action){case"reset":this.reset();break;case"apply":this.applyCrop();break;case"cancel":case"close":this.close();break}}),this.modal.addEventListener("click",n=>{n.target===this.modal&&this.close()})}handleMouseDown(t){this.isDragging=!0,this.dragStartX=t.clientX,this.dragStartY=t.clientY,this.lastPanX=this.panX,this.lastPanY=this.panY,this.canvas.style.cursor="grabbing"}handleMouseMove(t){if(!this.isDragging)return;let i=t.clientX-this.dragStartX,n=t.clientY-this.dragStartY;this.panX=this.lastPanX+i,this.panY=this.lastPanY+n,this.constrainPan(),this.render()}handleMouseUp(){this.isDragging=!1,this.canvas.style.cursor="grab"}handleWheel(t){t.preventDefault();let i=t.deltaY>0?.9:1.1;this.setZoom(this.scale*i)}handleTouchStart(t){t.touches.length===1&&(this.isDragging=!0,this.dragStartX=t.touches[0].clientX,this.dragStartY=t.touches[0].clientY,this.lastPanX=this.panX,this.lastPanY=this.panY)}handleTouchMove(t){if(!this.isDragging||t.touches.length!==1)return;t.preventDefault();let i=t.touches[0].clientX-this.dragStartX,n=t.touches[0].clientY-this.dragStartY;this.panX=this.lastPanX+i,this.panY=this.lastPanY+n,this.constrainPan(),this.render()}handleTouchEnd(){this.isDragging=!1}setZoom(t){this.scale=Math.max(.1,Math.min(3,t)),this.updateZoomUI(),this.constrainPan(),this.render()}setAspectRatio(t){let i;switch(t){case"1:1":i=1;break;case"4:3":i=4/3;break;case"16:9":i=16/9;break;case"3:2":i=3/2;break;default:i=void 0}i&&this.applyAspectRatio(i),this.fitToCanvas(),this.render()}updateZoomUI(){if(!this.modal)return;let t=this.modal.querySelector(".asset-crop-zoom-value"),i=this.modal.querySelector(".asset-crop-zoom-slider");t&&(t.textContent=`${this.scale.toFixed(1)}x`),i&&(i.value=this.scale.toString())}constrainPan(){if(!this.canvas)return;let t=this.cropWidth*this.scale,i=this.cropHeight*this.scale;this.panX=Math.max(this.canvas.width-t,Math.min(0,this.panX)),this.panY=Math.max(this.canvas.height-i,Math.min(0,this.panY))}reset(){this.initializeCrop(),this.render()}applyCrop(){var r;if(!this.image||!((r=this.options)!=null&&r.onCrop))return;let t=document.createElement("canvas"),i=t.getContext("2d");if(!i)return;t.width=this.cropWidth,t.height=this.cropHeight,i.drawImage(this.image,this.cropX,this.cropY,this.cropWidth,this.cropHeight,0,0,this.cropWidth,this.cropHeight);let n=t.toDataURL("image/png");this.options.onCrop(n),this.close()}close(){this.modal&&this.modal.parentNode&&this.modal.parentNode.removeChild(this.modal);let t=this.options;this.modal=null,this.canvas=null,this.ctx=null,this.image=null,this.options=null,t!=null&&t.onCancel&&t.onCancel()}};window.openAssetCrop=function(e){new Al().open(e)};var Cl=class{constructor(t={}){this.isLandscape=!1;this.autoScale=1;this.userScaleMultiplier=1;this.viewMode="single";this.comparePresets=[di("playable-portrait"),di("iphone-14"),di("ipad-mini")];this.activeCompareId="playable-portrait";this.compareViewports=new Map;this.resizeObserver=null;this.rafFitHandle=null;this.ignoreNextWindowResize=!1;this.frameDragOffsetX=0;this.frameDragOffsetY=0;this.frameDragActive=!1;this.frameDragStartX=0;this.frameDragStartY=0;this.frameDragOriginX=0;this.frameDragOriginY=0;this.consolePanel=null;this.consoleMessages=[];this.isConsoleOpen=!1;this.hasInitialFit=!1;this.isMounted=!1;this.isInitialized=!1;this.gameReady=!1;this.resizeListenersDisabled=!1;this.compareSnapshotTimer=null;this.onWindowResize=t=>{if(this.ignoreNextWindowResize){this.ignoreNextWindowResize=!1;return}this.resizeListenersDisabled||!this.gameReady||this.scheduleFit()};this.onFrameDragMove=t=>{if(!this.frameDragActive)return;let i=t.clientX-this.frameDragStartX,n=t.clientY-this.frameDragStartY;this.frameDragOffsetX=this.frameDragOriginX+i,this.frameDragOffsetY=this.frameDragOriginY+n,this.applyFrameDrag()};this.onFrameDragEnd=()=>{this.frameDragActive&&(this.frameDragActive=!1,window.removeEventListener("pointermove",this.onFrameDragMove),window.removeEventListener("pointerup",this.onFrameDragEnd))};this.options=t,this.currentPreset=di(t.defaultDevice||ls.id),this.debugPanel=new Ra,this.container=this.createShell(),this.previewContainer=this.mustQuery(".preview-container"),this.singleStage=this.mustQuery('[data-preview-stage="single"]'),this.compareStage=this.mustQuery('[data-preview-stage="compare"]'),this.frameDragger=this.mustQuery(".frame-dragger"),this.frameWrapper=this.mustQuery(".frame-wrapper"),this.deviceFrame=this.mustQuery(".device-frame"),this.gameContainer=this.mustQuery(".game-container"),this.lastSinglePresetId=this.currentPreset.id,this.consolePanel=this.container.querySelector(".console-panel"),this.debugPanel.initialize(this.container),this.debugPanel.setupDebugEventListeners(),this.applyDeviceFrameStyles(),this.setupCompareViewports(),this.setupConsoleInterceptor(),this.setupObserversAndListeners(),this.setupFrameDragging(),this.setDevice(this.currentPreset.id,{suppressCallback:!0}),this.isInitialized=!0}mount(t=document.body){t.innerHTML="",t.appendChild(this.container),this.isMounted=!0,this.scheduleFit()}destroy(){if(this.disableResizeListeners(),this.resizeObserver){try{this.resizeObserver.disconnect()}catch{}this.resizeObserver=null}window.removeEventListener("resize",this.onWindowResize),this.rafFitHandle&&(cancelAnimationFrame(this.rafFitHandle),this.rafFitHandle=null),this.compareSnapshotTimer&&(window.clearInterval(this.compareSnapshotTimer),this.compareSnapshotTimer=null),this.gameReady=!1}getGameContainer(){return this.gameContainer}getScreen(){let t=this.getEffectivePreset();return{width:t.width,height:t.height}}getEffectivePreset(){var t;return this.isLandscape?{...this.currentPreset,width:this.currentPreset.height,height:this.currentPreset.width,ratio:((t=this.currentPreset.ratio)==null?void 0:t.split(":").reverse().join(":"))||this.currentPreset.ratio}:this.currentPreset}notifyGameLoaded(){this.gameReady=!0,this.enableResizeListeners(),this.scheduleFit(),this.debugPanel.refresh()}notifyGameDestroyed(){this.gameReady=!1,this.disableResizeListeners()}disableResizeListeners(){this.resizeListenersDisabled=!0,this.rafFitHandle&&(cancelAnimationFrame(this.rafFitHandle),this.rafFitHandle=null)}enableResizeListeners(){this.resizeListenersDisabled=!1}refresh(){this.options.onRefresh?this.options.onRefresh():window.location.reload()}setDevice(t,i={}){var r,a;let n=this.autoScale*this.userScaleMultiplier;this.isLandscape=!1,this.currentPreset=di(t),this.viewMode==="single"&&(this.lastSinglePresetId=this.currentPreset.id),this.applyPresetDimensions(),this.fitToScreen({keepVisibleScale:n}),i.suppressCallback||(a=(r=this.options).onDeviceChange)==null||a.call(r,this.getEffectivePreset()),this.emitScreenChange()}createShell(){var i;let t=document.createElement("div");return t.className="preview-shell",t.innerHTML=`
1319
1364
  <div class="preview-toolbar">
1320
1365
  <div class="preview-toolbar-left">
1321
1366
  <span class="preview-logo">PREVIEWER</span>
@@ -1324,7 +1369,7 @@ Style guidelines: ${n.summary}`;this.promptInput.value=r,this.currentPrompt=r}}c
1324
1369
  <div class="preview-toolbar-center">
1325
1370
  <div class="device-selector-wrapper">
1326
1371
  <select class="device-dropdown" id="device-select">
1327
- ${qc.map(n=>`
1372
+ ${Wc.map(n=>`
1328
1373
  <optgroup label="${n.label}">
1329
1374
  ${n.devices.map(r=>`
1330
1375
  <option value="${r.id}" ${r.id===this.currentPreset.id?"selected":""}>
@@ -1430,7 +1475,7 @@ Style guidelines: ${n.summary}`;this.promptInput.value=r,this.currentPrompt=r}}c
1430
1475
  <div class="console-messages" id="console-messages"></div>
1431
1476
  </div>
1432
1477
  </div>
1433
- `,this.setupEventListeners(t),t}setupEventListeners(t){var r,a,s,o,c,l,d;let i=t.querySelector("#device-select");i==null||i.addEventListener("change",u=>{if(this.viewMode==="compare")return;let p=u.target.value;this.setDevice(p)}),Array.from(t.querySelectorAll("[data-view-toggle]")).forEach(u=>{u.addEventListener("click",()=>{let p=u.dataset.viewToggle;p&&this.setViewMode(p)})}),(r=t.querySelector("#rotate-btn"))==null||r.addEventListener("click",()=>this.toggleRotation()),(a=t.querySelector("#zoom-in-btn"))==null||a.addEventListener("click",()=>this.adjustUserZoom(.1)),(s=t.querySelector("#zoom-out-btn"))==null||s.addEventListener("click",()=>this.adjustUserZoom(-.1)),(o=t.querySelector("#refresh-btn"))==null||o.addEventListener("click",()=>this.refresh()),(c=t.querySelector("#console-toggle"))==null||c.addEventListener("click",()=>this.toggleConsole()),(l=t.querySelector("#console-close"))==null||l.addEventListener("click",()=>this.toggleConsole(!1)),(d=t.querySelector("#console-clear"))==null||d.addEventListener("click",()=>this.clearConsole())}applyDeviceFrameStyles(){Object.assign(this.frameDragger.style,{display:"flex",justifyContent:"center",alignItems:"center",transform:"translate(0px, 0px)",touchAction:"none"}),Object.assign(this.frameWrapper.style,{display:"flex",justifyContent:"center",alignItems:"center",transformOrigin:"center center",transition:"transform 0.2s cubic-bezier(0.25, 0.46, 0.45, 0.94)",boxShadow:"0 20px 50px rgba(0,0,0,0.5)",borderRadius:"0px",willChange:"transform"}),Object.assign(this.deviceFrame.style,{overflow:"hidden",position:"relative",borderRadius:"0px"}),Object.assign(this.gameContainer.style,{position:"relative",overflow:"hidden",minWidth:"0px",minHeight:"0px"})}setupObserversAndListeners(){this.resizeObserver=new ResizeObserver(()=>{this.resizeListenersDisabled||!this.gameReady||this.scheduleFit()}),this.resizeObserver.observe(this.previewContainer),window.addEventListener("resize",this.onWindowResize,{passive:!0})}scheduleFit(){this.rafFitHandle&&cancelAnimationFrame(this.rafFitHandle),this.rafFitHandle=requestAnimationFrame(()=>{this.rafFitHandle=null,this.fitToScreen()})}applyPresetDimensions(){let t=this.getEffectivePreset(),i=`${t.width}px`,n=`${t.height}px`;this.deviceFrame.style.width=i,this.deviceFrame.style.height=n,this.gameContainer.style.width=i,this.gameContainer.style.height=n,this.gameContainer.style.maxWidth=i,this.gameContainer.style.maxHeight=n,this.gameContainer.style.minWidth=i,this.gameContainer.style.minHeight=n,this.gameContainer.dataset.screenWidth=String(t.width),this.gameContainer.dataset.screenHeight=String(t.height),this.container.style.setProperty("--preview-screen-width",String(t.width)),this.container.style.setProperty("--preview-screen-height",String(t.height))}fitToScreen(t){if(!this.previewContainer)return;let i=this.getEffectivePreset(),n=this.getFitBounds(),r=Math.max(0,n.width),a=Math.max(0,n.height);if(r<=0||a<=0)return;this.applyPresetDimensions(),this.viewMode==="compare"&&this.applyCompareDimensions();let s=r/i.width,o=a/i.height;if(this.autoScale=Math.max(.01,Math.min(s,o)),!this.hasInitialFit){this.hasInitialFit=!0;let c=.6;this.userScaleMultiplier=c/this.autoScale}t!=null&&t.keepVisibleScale&&t.keepVisibleScale>0&&(this.userScaleMultiplier=t.keepVisibleScale/this.autoScale),this.applyTransform(),this.viewMode==="compare"&&this.fitCompareGhosts(),this.emitScreenChange()}applyTransform(){let t=this.autoScale*this.userScaleMultiplier;this.frameWrapper.style.transform=`scale(${t})`;let i=this.container.querySelector("#zoom-label");i&&(i.textContent=`${Math.round(t*100)}%`)}applyFrameDrag(){this.frameDragger.style.transform=`translate(${this.frameDragOffsetX}px, ${this.frameDragOffsetY}px)`}setupFrameDragging(){this.frameDragger.addEventListener("pointerdown",t=>{this.gameContainer.contains(t.target)||t.button===0&&(t.preventDefault(),this.frameDragActive=!0,this.frameDragStartX=t.clientX,this.frameDragStartY=t.clientY,this.frameDragOriginX=this.frameDragOffsetX,this.frameDragOriginY=this.frameDragOffsetY,window.addEventListener("pointermove",this.onFrameDragMove),window.addEventListener("pointerup",this.onFrameDragEnd))})}adjustUserZoom(t){this.userScaleMultiplier=Math.max(.1,Math.min(6,this.userScaleMultiplier+t)),this.applyTransform(),this.emitScreenChange()}toggleRotation(){var i,n;if(this.viewMode==="compare")return;let t=this.autoScale*this.userScaleMultiplier;this.isLandscape=!this.isLandscape,this.applyPresetDimensions(),this.fitToScreen({keepVisibleScale:t}),(n=(i=this.options).onDeviceChange)==null||n.call(i,this.getEffectivePreset()),this.emitScreenChange()}emitScreenChange(){if(!this.gameReady)return;let t=this.getEffectivePreset(),i={width:t.width,height:t.height,dpr:Math.max(1,Math.floor(window.devicePixelRatio||1)),presetId:t.id,isLandscape:this.isLandscape};if(window.dispatchEvent(new CustomEvent("handler-preview:screen",{detail:i})),this.viewMode==="compare"&&this.refreshCompareSnapshots(),this.isInitialized&&this.isMounted&&this.gameReady){let n=window.gameApp;if(!(n!=null&&n.renderer))return;this.ignoreNextWindowResize=!0,window.dispatchEvent(new Event("resize"))}}safeStringify(t){var n;let i=new WeakSet;try{return JSON.stringify(t,(r,a)=>{if(typeof a=="object"&&a!==null){if(i.has(a))return"[Circular]";i.add(a)}return a},2)}catch{try{if(t&&((n=t.constructor)!=null&&n.name))return`[object ${t.constructor.name}]`}catch{}return String(t)}}setupConsoleInterceptor(){let t=console.log.bind(console),i=console.warn.bind(console),n=console.error.bind(console),r=console.info.bind(console),a=(s,...o)=>{let c=o.map(d=>typeof d=="object"?this.safeStringify(d):String(d)).join(" ");this.consoleMessages.push({type:s,message:c,timestamp:new Date}),this.appendConsoleMessage(this.consoleMessages[this.consoleMessages.length-1]);let l=this.container.querySelector("#console-badge");if(l){let d=this.consoleMessages.filter(u=>u.type==="error").length;l.textContent=d>0?`${d}!`:"0",l.classList.toggle("has-errors",d>0)}};console.log=(...s)=>{t(...s),a("log",...s)},console.warn=(...s)=>{i(...s),a("warn",...s)},console.error=(...s)=>{n(...s),a("error",...s)},console.info=(...s)=>{r(...s),a("info",...s)}}appendConsoleMessage(t){let i=this.container.querySelector("#console-messages");if(!i)return;let n=document.createElement("div");n.className=`console-msg type-${t.type}`;let r=t.timestamp.toLocaleTimeString();n.innerHTML=`<span class="time">${this.escapeHtml(r)}</span> <pre>${this.escapeHtml(t.message)}</pre>`,i.appendChild(n),i.scrollTop=i.scrollHeight}escapeHtml(t){return t.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#039;")}toggleConsole(t){var i;this.isConsoleOpen=t!=null?t:!this.isConsoleOpen,(i=this.consolePanel)==null||i.classList.toggle("closed",!this.isConsoleOpen)}clearConsole(){this.consoleMessages=[];let t=this.container.querySelector("#console-messages");t&&(t.innerHTML="");let i=this.container.querySelector("#console-badge");i&&(i.textContent="0")}setupCompareViewports(){Array.from(this.container.querySelectorAll("[data-viewport]")).forEach(i=>{let n=i.dataset.viewport;if(!n)return;let r=this.comparePresets.find(u=>u.id===n);if(!r)return;let a=i.querySelector("[data-compare-slot]"),s=i.querySelector("[data-compare-ghost]"),o=i.querySelector("[data-compare-wrapper]"),c=i.querySelector("[data-compare-frame]"),l=i.querySelector("[data-compare-snapshot]"),d=i.querySelector("[data-compare-focus]");!a||!s||!o||!c||(i.addEventListener("click",u=>{let p=u.target;if(p!=null&&p.closest("[data-compare-focus]")){u.preventDefault(),this.activateCompareViewport(n);return}i.classList.contains("is-active")||this.activateCompareViewport(n)}),this.compareViewports.set(n,{preset:r,root:i,slot:a,ghost:s,wrapper:o,frame:c,canvas:l,focus:d}))})}setViewMode(t){if(this.viewMode===t)return;this.viewMode=t,this.container.classList.toggle("compare-mode",t==="compare"),this.singleStage.classList.toggle("hidden",t!=="single"),this.compareStage.classList.toggle("hidden",t!=="compare");let i=this.container.querySelector("#device-select");i&&(i.disabled=t==="compare");let n=this.container.querySelector("#rotate-btn");if(n&&(n.disabled=t==="compare"),this.updateViewToggleUI(),t==="compare"){this.lastSinglePresetId=this.currentPreset.id,this.activateCompareViewport(this.activeCompareId),this.refreshCompareSnapshots(),this.startCompareSnapshots();return}this.stopCompareSnapshots(),this.singleStage.appendChild(this.frameDragger),this.setDevice(this.lastSinglePresetId,{suppressCallback:!0}),this.fitToScreen()}updateViewToggleUI(){Array.from(this.container.querySelectorAll("[data-view-toggle]")).forEach(i=>{i.classList.toggle("active",i.dataset.viewToggle===this.viewMode)})}activateCompareViewport(t){var a,s;let i=this.compareViewports.get(t);if(!i)return;let n=this.autoScale*this.userScaleMultiplier,r=this.activeCompareId;r&&r!==t&&this.captureCompareSnapshot(r),this.activeCompareId=t,this.currentPreset=i.preset,this.isLandscape=!1,i.slot.appendChild(this.frameDragger),this.frameDragOffsetX=0,this.frameDragOffsetY=0,this.applyFrameDrag(),this.compareViewports.forEach((o,c)=>{o.root.classList.toggle("is-active",c===t),o.ghost.classList.toggle("hidden",c===t),o.focus&&(o.focus.textContent=c===t?"Live":"Focus")}),this.applyPresetDimensions(),this.applyCompareDimensions(),this.fitToScreen({keepVisibleScale:n}),(s=(a=this.options).onDeviceChange)==null||s.call(a,this.getEffectivePreset())}applyCompareDimensions(){this.compareViewports.forEach(t=>{let i=t.preset,n=`${i.width}px`,r=`${i.height}px`;t.frame.style.width=n,t.frame.style.height=r,t.canvas&&(t.canvas.width=i.width,t.canvas.height=i.height)})}fitCompareGhosts(){this.compareViewports.forEach(t=>{let i=t.root.querySelector(".compare-body");if(!i)return;let n=Math.max(0,i.clientWidth-24),r=Math.max(0,i.clientHeight-24);if(n<=0||r<=0)return;let a=n/t.preset.width,s=r/t.preset.height,o=Math.max(.01,Math.min(a,s));t.wrapper.style.transform=`scale(${o})`})}captureCompareSnapshot(t){let i=this.compareViewports.get(t);if(!(i!=null&&i.canvas))return;let n=this.gameContainer.querySelector("canvas");if(!n)return;let r=i.canvas.getContext("2d");if(!r)return;let a=i.canvas.width,s=i.canvas.height,o=Math.min(a/n.width,s/n.height),c=n.width*o,l=n.height*o,d=(a-c)/2,u=(s-l)/2;r.clearRect(0,0,a,s),r.drawImage(n,d,u,c,l)}refreshCompareSnapshots(){this.compareViewports.forEach((t,i)=>{i!==this.activeCompareId&&this.captureCompareSnapshot(i)})}startCompareSnapshots(){this.compareSnapshotTimer||(this.compareSnapshotTimer=window.setInterval(()=>{this.viewMode==="compare"&&this.refreshCompareSnapshots()},500))}stopCompareSnapshots(){this.compareSnapshotTimer&&(window.clearInterval(this.compareSnapshotTimer),this.compareSnapshotTimer=null)}getFitBounds(){if(this.viewMode!=="compare")return{width:this.previewContainer.clientWidth-40,height:this.previewContainer.clientHeight-40};let t=this.compareViewports.get(this.activeCompareId),i=t==null?void 0:t.root.querySelector(".compare-body");return i?{width:i.clientWidth-24,height:i.clientHeight-24}:{width:this.previewContainer.clientWidth-40,height:this.previewContainer.clientHeight-40}}mustQuery(t){let i=this.container.querySelector(t);if(!i)throw new Error(`PreviewShell missing element: ${t}`);return i}};function $h(e={}){let t=new Sl(e);return typeof window!="undefined"&&(window.__previewShell=t),t.mount(),t}import{Sprite as yx,Container as qh}from"pixi.js";var xx=typeof __BUILD_MODE__!="undefined"?__BUILD_MODE__:"undefined",Al=xx;if(typeof window!="undefined")try{let e=new XMLHttpRequest;if(e.open("GET","./build-settings.json",!1),e.send(),e.status===200&&e.responseText){let t=JSON.parse(e.responseText);t!=null&&t.buildMode&&(Al=t.buildMode,console.log(`[ObjectFactory] Build mode overridden by settings: ${Al}`))}}catch{}var Ot=class{static async create(t,i,n){var c,l,d,u,p,f,g;console.log(`[ObjectFactory] create() called for: ${t}, __BUILD_MODE__: ${Al}`);let r=(c=i==null?void 0:i.render)==null?void 0:c.asset;if(!r){console.log(`[ObjectFactory] No asset definition for: ${t}, returning empty container`);let h=new qh;return this.applyTransform(h,i==null?void 0:i.transform),h}let a=(l=i==null?void 0:i.identity)==null?void 0:l.id;console.log(`[ObjectFactory] Calling AssetLoader.load() for: ${t}, configId: ${a}, type: ${r.type}, path: ${r.path}`);let s=await Ka.load(t,r,n,a);console.log(`[ObjectFactory] AssetLoader.load() completed for: ${t}, rawAsset type: ${(d=s==null?void 0:s.constructor)==null?void 0:d.name}`);let o;if(r.type==="image")console.log("[ObjectFactory] Creating Sprite from texture:",s,"for object:",t),o=new yx(s),console.log("[ObjectFactory] Created object:",o,"type:",(u=o==null?void 0:o.constructor)==null?void 0:u.name),this.applyTransform(o,i==null?void 0:i.transform);else if(r.type==="json")if(console.log("[ObjectFactory] JSON asset for",t,"rawAsset type:",(p=s==null?void 0:s.constructor)==null?void 0:p.name,s),s&&(((f=s.constructor)==null?void 0:f.name)==="Container"||s instanceof qh)){console.warn("[ObjectFactory] JSON asset is Container (from cache), reloading JSON directly");let h=[r.path,`/assets/${r.path}`,`assets/${r.path}`,`../assets/${r.path}`],m=!1;for(let b of h)try{let v=await fetch(b);if(v.ok){o=await v.json(),console.log("[ObjectFactory] Reloaded JSON directly from:",b,"type:",(g=o==null?void 0:o.constructor)==null?void 0:g.name),m=!0;break}}catch{continue}m||(console.error("[ObjectFactory] Failed to reload JSON from any path"),o=s)}else o=s;else o=s,o&&typeof o=="object"&&("x"in o||"position"in o)&&this.applyTransform(o,i==null?void 0:i.transform);return o}static applyTransform(t,i){var n,r,a,s;!i||!t||(i.position&&("x"in t&&"y"in t?(t.x=(n=i.position.x)!=null?n:0,t.y=(r=i.position.y)!=null?r:0):"position"in t&&t.position&&t.position.set((a=i.position.x)!=null?a:0,(s=i.position.y)!=null?s:0)),i.scale!==void 0&&"scale"in t&&t.scale&&(typeof t.scale=="object"&&"set"in t.scale?t.scale.set(i.scale):t.scale=i.scale),i.rotation!==void 0&&"rotation"in t&&(t.rotation=i.rotation),i.anchor&&"anchor"in t&&t.anchor&&Array.isArray(i.anchor)&&("set"in t.anchor?t.anchor.set(i.anchor[0],i.anchor[1]):(t.anchor.x=i.anchor[0],t.anchor.y=i.anchor[1])))}};function Cl(e){try{if(e&&typeof e.keys=="function")return Array.from(e.keys())}catch{}return[]}function Gh(e){var t;return e?((t=e.getDisplayObject)==null?void 0:t.call(e))||e.pixiObject||e:null}function wx(e,t){if(!e||!(t!=null&&t.interaction))return;let i=t.interaction,n=i.enabled!==!1&&(i.draggable===!0||i.clickable===!0);e.eventMode=n?"static":"none",e.interactive=n,n&&(e.cursor=i.draggable?"move":"pointer")}function Wh(e,t){var c,l,d,u,p;if(!e||!t)return;let i=t.transform||{};wx(e,t);let n=i.position||{},r=i.offset||{},a=(typeof n.x=="number"?n.x:0)+(typeof r.x=="number"?r.x:0),s=(typeof n.y=="number"?n.y:0)+(typeof r.y=="number"?r.y:0);(c=e.position)!=null&&c.set?e.position.set(a,s):(typeof e.x=="number"&&(e.x=a),typeof e.y=="number"&&(e.y=s)),typeof i.scale=="number"&&((l=e.scale)!=null&&l.set?e.scale.set(i.scale):e.scale&&(e.scale.x=i.scale,e.scale.y=i.scale));let o=(u=i.anchor)!=null?u:(d=t.render)==null?void 0:d.anchor;o&&((p=e.anchor)!=null&&p.set)&&typeof o.x=="number"&&typeof o.y=="number"&&e.anchor.set(o.x,o.y)}function Yh(e){if(typeof window=="undefined")return;let t=e==null?void 0:e.objects,i=Cl(t),n=a=>{try{let s=window.__HANDLER_ACTIVE_SCREEN;if(!s||s==="all")return a;let o=window.__HANDLER_SCREEN_INDEX,c=o==null?void 0:o.instanceToScreen;return c?a.filter(l=>c[l]===s):a}catch{return a}};window.__editableObjectConfigs=t;let r=new Map;i.forEach(a=>r.set(a,[a])),window.__editableObjectInstances=r,window.refreshEditableConfigIndex=()=>Yh(window.__editableConfig),window.getEditableObjectList=()=>{var a;return n(Cl((a=window.__editableConfig)==null?void 0:a.objects))},window.getEditableObjectListAll=()=>{var a;return Cl((a=window.__editableConfig)==null?void 0:a.objects)},window.getEditableObjectConfig=a=>{var d,u,p,f,g;let s=(f=(p=(u=(d=window.__editableConfig)==null?void 0:d.objects)==null?void 0:u.get)==null?void 0:p.call(u,a))!=null?f:null,o=window.__HANDLER_ACTIVE_SCREEN;if(!o||o==="all")return s;let c=window.__HANDLER_SCREEN_INDEX,l=(g=c==null?void 0:c.instanceToScreen)==null?void 0:g[a];return l&&l===o?s:null},window.getEditableEngineConfig=()=>{let a=window.__editableConfig;if(console.log("[BRIDGE] getEditableEngineConfig called, cfg present:",!!a),!a)return null;if(a.engine&&a.objects instanceof Map){console.log("[BRIDGE] Detected ObjectCentricConfig, flattening...");let s={...a.engine,objects:a.objects,scene:a.scene};return console.log("[BRIDGE] Returned assets:",Object.keys(s.assets||{})),s}return a}}function _x(){if(typeof window=="undefined")return;let e=i=>{let n=String(i||"").trim();return n?/^(data:|blob:|https?:)/.test(n)||n.startsWith("/")?n:`/${n.replace(/^\.\//,"")}`:""},t=async(i,n)=>{var a,s,o;let r=e(n);if(r)try{let[{Assets:c},{AssetTextures:l}]=await Promise.all([import("pixi.js"),import("./AssetTextures-CWUQXU5Q.js")]),d=Date.now(),u=/^(data:|blob:)/.test(r)?r:r+(r.includes("?")?`&t=${d}`:`?t=${d}`),p=await c.load(u);if(!p)return;l[i]=p;let f=window.CustomAssets;(a=f==null?void 0:f[i])!=null&&a.texture&&(f[i].texture=p);let g=window.gameObjectManager,h=(s=g==null?void 0:g.get)==null?void 0:s.call(g,i);if(h){let m=((o=h.getDisplayObject)==null?void 0:o.call(h))||h.pixiObject||h.pixi||h;if(m!=null&&m.texture)m.texture=p;else if(m!=null&&m.children){let b=m.children.find(v=>v==null?void 0:v.texture);b!=null&&b.texture&&(b.texture=p)}}}catch(c){console.warn("[LIVE-EDIT] Failed to reload Pixi texture for",i,c)}};window.applyLiveEditOverrides=i=>{try{let n=Za();Array.isArray(n)&&n.length&&(window.__editableConfig=i,or(n,{silent:!0,persist:!1}))}catch{}},window.applyEngineOverrides=i=>{try{let n=Za();Array.isArray(n)&&n.length&&(window.__editableConfig=i,or(n,{silent:!0,persist:!1}))}catch{}},window.applyEditableEngineConfig=i=>{let n=window.__editableConfig;if(!(n!=null&&n.engine))return;let r=[];if(i.runtime)for(let[a,s]of Object.entries(i.runtime))r.push({path:`runtime.${a}`,value:s});if(i.assets)for(let[a,s]of Object.entries(i.assets))r.push({path:`assets.${a}`,value:s}),typeof s=="string"&&t(a,s);if(i.splash)for(let[a,s]of Object.entries(i.splash))r.push({path:`splash.${a}`,value:s});if(i.loading)for(let[a,s]of Object.entries(i.loading))r.push({path:`loading.${a}`,value:s});if(i.start)for(let[a,s]of Object.entries(i.start))r.push({path:`start.${a}`,value:s});r.length&&or(r,{silent:!0,persist:!0,emitEvent:!0})}}function Tl(e){let{getConfig:t,gameObjectManager:i,onObjectConfigApplied:n}=e;i&&(i.onObjectRebuildRequired=async(a,s)=>{console.log(`[LIVE-EDIT] \u{1F3D7}\uFE0F Rebuilding object ${a} due to type change...`);let o=i.get(a),c=o==null?void 0:o.pixiObject,l=c==null?void 0:c.parent,d=l==null?void 0:l.children.indexOf(c);o?i.remove(a):c&&c.destroy();let u=window.gameApp,p=await Ot.create(a,s,u);l&&(d!==void 0&&d!==-1?l.addChildAt(p,d):l.addChild(p));let f=i.create(a,p);return console.log(`[LIVE-EDIT] \u2705 Rebuild complete for ${a}`),f}),typeof window!="undefined"&&(_x(),window.applyEditableObjectConfig=(a,s)=>{var o,c,l;console.log("[LIVE-EDIT] \u{1F504} applyEditableObjectConfig called for:",a);try{let d=window.__editableConfig;(o=d==null?void 0:d.objects)!=null&&o.set&&(d.objects.set(a,s),console.log("[LIVE-EDIT] \u2705 Updated config in __editableConfig"));let u=(c=i==null?void 0:i.get)==null?void 0:c.call(i,a);if(console.log("[LIVE-EDIT] gameObject found?",!!u),u&&(console.log("[LIVE-EDIT] gameObject type:",(l=u.constructor)==null?void 0:l.name),console.log("[LIVE-EDIT] has updateConfig?",typeof u.updateConfig=="function"),console.log("[LIVE-EDIT] has onConfigUpdate?",typeof u.onConfigUpdate=="function")),u&&typeof u.updateConfig=="function")console.log("[LIVE-EDIT] \u2705 Calling updateConfig()"),u.updateConfig(s);else if(u&&typeof u.onConfigUpdate=="function")console.log("[LIVE-EDIT] \u2705 Calling onConfigUpdate()"),u.onConfigUpdate();else{console.log("[LIVE-EDIT] \u26A0\uFE0F No updateConfig or onConfigUpdate, applying transform directly");let p=Gh(u);Wh(p,s)}}catch(d){console.error("[LIVE-EDIT] \u274C Error in applyEditableObjectConfig:",d)}});let r={async applyObjectConfig(a,s){var d,u;console.log("[BRIDGE] \u{1F504} applyObjectConfig called for:",a);let o=t();(d=o==null?void 0:o.objects)!=null&&d.set&&(o.objects.set(a,s),console.log("[BRIDGE] \u2705 Updated config"));let c=(u=i==null?void 0:i.get)==null?void 0:u.call(i,a);if(console.log("[BRIDGE] gameObject found?",!!c),c&&(console.log("[BRIDGE] has updateConfig?",typeof c.updateConfig=="function"),console.log("[BRIDGE] has onConfigUpdate?",typeof c.onConfigUpdate=="function")),c&&typeof c.updateConfig=="function")console.log("[BRIDGE] \u2705 Calling updateConfig()"),c.updateConfig(s);else if(c&&typeof c.onConfigUpdate=="function")console.log("[BRIDGE] \u2705 Calling onConfigUpdate()"),c.onConfigUpdate();else{console.log("[BRIDGE] \u26A0\uFE0F Applying transform directly");let p=Gh(c);Wh(p,s)}let l=[a];n==null||n(a,s,l)},rebuildIndexes(){let a=t();typeof window!="undefined"&&(window.__editableConfig=a,Yh(a))}};return r.rebuildIndexes(),r}import Ex from"lottie-web";Ml(Uc);typeof window!="undefined"&&!window.lottie&&(window.lottie=Ex);var Ui=null,Sx=async()=>{if(!Ui){let e=typeof window!="undefined"?window.INLINE_ASSETS:null,t=(e==null?void 0:e["handler.config"])||(e==null?void 0:e["handler.config.json"]);if(t)try{if(t.startsWith("data:")){let n=atob(t.split(",")[1]);Ui=JSON.parse(n)}else Ui=JSON.parse(t);return Ui}catch(n){console.warn("[CONFIG] Failed to parse inline handler.config.json:",n)}Ui=await(await fetch("./handler.config.json")).json()}return Ui},Pl,$n,Xh,$i,Ll,Rl;function xE(e){Pl=e.initGame,$n=e.CustomAssets,Xh=e.updateScreenState,$i=e.globalResponsiveMultipliers,Ll=e.layout,Rl=e.clearResponsiveElements}var Ma="web_embed",Un="https://example.com",Vh={profile_id:Ma},Dt=null,Ke=null,kl={width:0,height:0},Ax=!0,wE=async()=>{var l,d,u,p;document.title="Handler Pixi Game";let e=await Sx();Vh={...e.ids||{},profile_id:Ma},Un=e.destination_url||((d=(l=e.export_profiles)==null?void 0:l[Ma])==null?void 0:d.destination_url)||Un,pt.init({ids:Vh,profile:Ma,destinationUrl:Un});let t=pt.getRoot();if(typeof __PREVIEW_SHELL__!="undefined"&&__PREVIEW_SHELL__){console.log("[BOOTSTRAP] Initializing Preview Shell..."),Ke=$h({onDeviceChange:g=>{console.log(`[PREVIEW] Device switched to ${g.width}x${g.height}, restarting game...`),Kh()},onRefresh:Kh});let f=Ke.getGameContainer();f&&(t=f),window.addEventListener("handler-preview:screen",g=>{var y,x,w,E,A,S,k,I,_,C,R;let h=window.gameApp,m=window.gameObjectManager,{width:b,height:v}=g.detail;if(kl.width=b,kl.height=v,Xh(b,v),!(!h||!h.renderer)){m&&o(h,m);try{h.renderer.resize(b,v);let M=h.view;M&&(M.style.width="100%",M.style.height="100%",M.style.display="block")}catch(M){console.warn("[SCREEN] Error resizing renderer:",M);return}if(i&&m&&Ll)try{let M=(y=window.__mainContainer)!=null?y:h.stage,O=(k=(S=(E=window.__tutorialLabel)!=null?E:(w=(x=m.get("label_1"))==null?void 0:x.getDisplayObject)==null?void 0:w.call(x))!=null?S:(A=m.get("label_1"))==null?void 0:A.pixiObject)!=null?k:m.get("label_1"),T=m.get("background_1"),j=(R=(C=(_=window.__background)!=null?_:(I=T==null?void 0:T.getDisplayObject)==null?void 0:I.call(T))!=null?C:T==null?void 0:T.pixiObject)!=null?R:T;if(M){let L=M===h.stage;Ll({mainContainer:M,label:O,background:j,backgroundTexture:(j==null?void 0:j.texture)||null,app:h},i,0,kl,m,{skipMainContainerTransform:L})}}catch(M){console.warn("[SCREEN] Error in layout:",M)}}})}let i=await lr("scene.main");window.__editableConfig=i,s(),window.__editableConfigBaseline||(window.__editableConfigBaseline=Ja(i),console.log("[BOOTSTRAP] Frozen config baseline for persistence")),(p=(u=i.engine.runtime)==null?void 0:u.layout)!=null&&p.design_width_portrait||(console.warn("[BOOTSTRAP] Config layout missing, retrying..."),await new Promise(f=>setTimeout(f,100)),i=await lr("scene.main"));let n=await Pl(t,i,Un,Ke);Dt=n.app;let r=n.gameObjectManager;window.gameApp=Dt,window.gameObjectManager=r;try{window.__liveEditBridge=Tl({getConfig:()=>window.__editableConfig,gameObjectManager:r,assets:$n})}catch(f){console.warn("[BOOTSTRAP] Failed to initialize live-edit bridge",f)}Ke&&Ke.notifyGameLoaded();let a=window.__debugScale;a&&typeof a=="number"&&($i.scale=a,console.log(`[DEBUG] Applied persisted debug scale: ${a}`)),o(Dt,r);async function s(){try{let f=async v=>{let y=v.startsWith("/")?v:`/${v}`,x=await fetch(y,{cache:"no-cache"});if(!x.ok)return null;let w=await x.text();try{return JSON.parse(w)}catch{return null}},g=await f("configs/flow/app.flow.json");if(!g||typeof g!="object")return;let h=g.screens;if(!h||typeof h!="object")return;let m={},b={};for(let[v,y]of Object.entries(h)){let x=y==null?void 0:y.source;if(typeof x!="string")continue;let w=await f(x),E=w==null?void 0:w.elements;if(!Array.isArray(E))continue;let A=E.map(S=>S==null?void 0:S.instance_id).filter(S=>typeof S=="string");m[v]=A;for(let S of A)b[S]||(b[S]=v)}window.__HANDLER_APP_FLOW=g,window.__HANDLER_SCREEN_INDEX={screenToInstances:m,instanceToScreen:b},window.dispatchEvent(new CustomEvent("handler:screen-index-loaded"))}catch{}}function o(f,g){if(Ax){console.log("[RESPONSIVE] Skipping global scaling; using config-driven layout");return}if(console.log("[RESPONSIVE] ===== APPLYING GLOBAL RESPONSIVE SCALING ====="),console.log(`[RESPONSIVE] Scale multiplier: ${$i.scale.toFixed(3)}`),f.stage){let m=function(b,v=0){if(!b||!b.children)return;let y=" ".repeat(v);b.children.forEach((x,w)=>{if(x&&x.zIndex===9999){console.log(`${y}[RESPONSIVE] Skipping debug border (zIndex 9999)`);return}if(x&&x.scale){let E=x.scale.x||1,A=x.scale.y||1;x.__originalScale||(x.__originalScale={x:E,y:A},console.log(`${y}[RESPONSIVE] Stored original scale for child[${w}]: ${E.toFixed(3)}, ${A.toFixed(3)}`));let S=x.__originalScale.x*$i.scale,k=x.__originalScale.y*$i.scale;typeof x.scale.set=="function"?x.scale.set(S,k):(x.scale.x=S,x.scale.y=k),console.log(`${y}[RESPONSIVE] Child[${w}] scale: ${E.toFixed(3)}\u2192${x.scale.x.toFixed(3)} (type: ${x.constructor.name})`),m(x,v+1)}else x&&console.log(`${y}[RESPONSIVE] Child[${w}] has no scale (type: ${x.constructor.name})`)})};var h=m;console.log("[RESPONSIVE] Applying scale to PIXI stage children"),m(f.stage)}else console.warn("[RESPONSIVE] No app.stage found!");console.log("[REDDEBUG] Debug border left unscaled (fixed boundaries)"),console.log("[RESPONSIVE] ===== GLOBAL RESPONSIVE SCALING COMPLETE =====")}function c(f){if(f!==void 0){$i.scale=f,console.log(`[RESPONSIVE] Updated global scale multiplier to: ${f.toFixed(3)}`);let g=window.gameApp,h=window.gameObjectManager;g&&h?(o(g,h),g.renderer&&(g.renderer.render(g.stage),console.log("[RESPONSIVE] Forced PIXI renderer update"))):console.warn(`[RESPONSIVE] No gameApp (${!!g}) or gameObjectManager (${!!h}) found in window for live update`)}}window.updateGlobalResponsiveMultipliers=c,pt.start()},Kh=async()=>{var t,i,n,r;console.log("[PREVIEW] Restarting game in 1 seconds...");let e=(t=window.gameObjectManager)==null?void 0:t.get("character_1");if(e){let a=((i=e.getDisplayObject)==null?void 0:i.call(e))||e;a&&a.scale&&console.log(`[CHARACTER] Before restart - Current scale - x: ${((n=a.scale.x)!=null?n:1).toFixed(3)}, y: ${((r=a.scale.y)!=null?r:1).toFixed(3)}`)}if(Ke){Ke.notifyGameDestroyed();try{Rl&&Rl()}catch(a){console.warn("Failed to clear responsive elements",a)}setTimeout(()=>{console.log("[PREVIEW] Executing restart...");let a=Ke.getGameContainer(),s=window.gameObjectManager;if(s&&typeof s.clear=="function"&&(console.log("[PREVIEW] Clearing old GameObjectManager tickers..."),s.clear()),Dt){try{Dt.destroy(!0,{children:!0,texture:!1})}catch(o){console.warn("[PREVIEW] Destroy warning:",o)}Dt=null}window.gameApp=null,window.gameObjectManager=null,a&&(a.innerHTML="");try{typeof $n.resetScene=="function"&&$n.resetScene()}catch(o){console.warn("Asset reset failed",o)}setTimeout(()=>{lr("scene.main").then(o=>{window.__editableConfig=o,window.__editableConfigBaseline||(window.__editableConfigBaseline=Ja(o)),Pl(a,o,Un).then(c=>{Dt=c.app,window.gameApp=Dt,window.gameObjectManager=c.gameObjectManager;try{window.__liveEditBridge=Tl({getConfig:()=>window.__editableConfig,gameObjectManager:window.gameObjectManager,assets:$n})}catch(l){console.warn("[BOOTSTRAP] Failed to re-initialize live-edit bridge",l)}Ke&&Ke.notifyGameLoaded(),console.log("[PREVIEW] Game restarted successfully");try{pt.start()}catch{}})})},100)},1e3)}};var ft={background:"#F6F3EF",ink:"#1E1E1E",secondaryText:"#8E8A84",primaryAccent:"#E38A5A",secondaryAccent:"#C9A28C",statusGreen:"#5F8F6B"},Cx=1.25,Tx={fontFamily:"Inter, system-ui, sans-serif"};var Il=class{constructor(t={}){this.currentProgress=0;var i;this.currentProgress=(i=t.progress)!=null?i:0,this.container=this.createContainer()}createContainer(){let t=document.createElement("div");t.className="handler-loading-screen",t.style.cssText=`
1478
+ `,this.setupEventListeners(t),t}setupEventListeners(t){var r,a,s,o,c,l,d;let i=t.querySelector("#device-select");i==null||i.addEventListener("change",u=>{if(this.viewMode==="compare")return;let p=u.target.value;this.setDevice(p)}),Array.from(t.querySelectorAll("[data-view-toggle]")).forEach(u=>{u.addEventListener("click",()=>{let p=u.dataset.viewToggle;p&&this.setViewMode(p)})}),(r=t.querySelector("#rotate-btn"))==null||r.addEventListener("click",()=>this.toggleRotation()),(a=t.querySelector("#zoom-in-btn"))==null||a.addEventListener("click",()=>this.adjustUserZoom(.1)),(s=t.querySelector("#zoom-out-btn"))==null||s.addEventListener("click",()=>this.adjustUserZoom(-.1)),(o=t.querySelector("#refresh-btn"))==null||o.addEventListener("click",()=>this.refresh()),(c=t.querySelector("#console-toggle"))==null||c.addEventListener("click",()=>this.toggleConsole()),(l=t.querySelector("#console-close"))==null||l.addEventListener("click",()=>this.toggleConsole(!1)),(d=t.querySelector("#console-clear"))==null||d.addEventListener("click",()=>this.clearConsole())}applyDeviceFrameStyles(){Object.assign(this.frameDragger.style,{display:"flex",justifyContent:"center",alignItems:"center",transform:"translate(0px, 0px)",touchAction:"none"}),Object.assign(this.frameWrapper.style,{display:"flex",justifyContent:"center",alignItems:"center",transformOrigin:"center center",transition:"transform 0.2s cubic-bezier(0.25, 0.46, 0.45, 0.94)",boxShadow:"0 20px 50px rgba(0,0,0,0.5)",borderRadius:"0px",willChange:"transform"}),Object.assign(this.deviceFrame.style,{overflow:"hidden",position:"relative",borderRadius:"0px"}),Object.assign(this.gameContainer.style,{position:"relative",overflow:"hidden",minWidth:"0px",minHeight:"0px"})}setupObserversAndListeners(){this.resizeObserver=new ResizeObserver(()=>{this.resizeListenersDisabled||!this.gameReady||this.scheduleFit()}),this.resizeObserver.observe(this.previewContainer),window.addEventListener("resize",this.onWindowResize,{passive:!0})}scheduleFit(){this.rafFitHandle&&cancelAnimationFrame(this.rafFitHandle),this.rafFitHandle=requestAnimationFrame(()=>{this.rafFitHandle=null,this.fitToScreen()})}applyPresetDimensions(){let t=this.getEffectivePreset(),i=`${t.width}px`,n=`${t.height}px`;this.deviceFrame.style.width=i,this.deviceFrame.style.height=n,this.gameContainer.style.width=i,this.gameContainer.style.height=n,this.gameContainer.style.maxWidth=i,this.gameContainer.style.maxHeight=n,this.gameContainer.style.minWidth=i,this.gameContainer.style.minHeight=n,this.gameContainer.dataset.screenWidth=String(t.width),this.gameContainer.dataset.screenHeight=String(t.height),this.container.style.setProperty("--preview-screen-width",String(t.width)),this.container.style.setProperty("--preview-screen-height",String(t.height))}fitToScreen(t){if(!this.previewContainer)return;let i=this.getEffectivePreset(),n=this.getFitBounds(),r=Math.max(0,n.width),a=Math.max(0,n.height);if(r<=0||a<=0)return;this.applyPresetDimensions(),this.viewMode==="compare"&&this.applyCompareDimensions();let s=r/i.width,o=a/i.height;if(this.autoScale=Math.max(.01,Math.min(s,o)),!this.hasInitialFit){this.hasInitialFit=!0;let c=.6;this.userScaleMultiplier=c/this.autoScale}t!=null&&t.keepVisibleScale&&t.keepVisibleScale>0&&(this.userScaleMultiplier=t.keepVisibleScale/this.autoScale),this.applyTransform(),this.viewMode==="compare"&&this.fitCompareGhosts(),this.emitScreenChange()}applyTransform(){let t=this.autoScale*this.userScaleMultiplier;this.frameWrapper.style.transform=`scale(${t})`;let i=this.container.querySelector("#zoom-label");i&&(i.textContent=`${Math.round(t*100)}%`)}applyFrameDrag(){this.frameDragger.style.transform=`translate(${this.frameDragOffsetX}px, ${this.frameDragOffsetY}px)`}setupFrameDragging(){this.frameDragger.addEventListener("pointerdown",t=>{this.gameContainer.contains(t.target)||t.button===0&&(t.preventDefault(),this.frameDragActive=!0,this.frameDragStartX=t.clientX,this.frameDragStartY=t.clientY,this.frameDragOriginX=this.frameDragOffsetX,this.frameDragOriginY=this.frameDragOffsetY,window.addEventListener("pointermove",this.onFrameDragMove),window.addEventListener("pointerup",this.onFrameDragEnd))})}adjustUserZoom(t){this.userScaleMultiplier=Math.max(.1,Math.min(6,this.userScaleMultiplier+t)),this.applyTransform(),this.emitScreenChange()}toggleRotation(){var i,n;if(this.viewMode==="compare")return;let t=this.autoScale*this.userScaleMultiplier;this.isLandscape=!this.isLandscape,this.applyPresetDimensions(),this.fitToScreen({keepVisibleScale:t}),(n=(i=this.options).onDeviceChange)==null||n.call(i,this.getEffectivePreset()),this.emitScreenChange()}emitScreenChange(){if(!this.gameReady)return;let t=this.getEffectivePreset(),i={width:t.width,height:t.height,dpr:Math.max(1,Math.floor(window.devicePixelRatio||1)),presetId:t.id,isLandscape:this.isLandscape};if(window.dispatchEvent(new CustomEvent("handler-preview:screen",{detail:i})),this.viewMode==="compare"&&this.refreshCompareSnapshots(),this.isInitialized&&this.isMounted&&this.gameReady){let n=window.gameApp;if(!(n!=null&&n.renderer))return;this.ignoreNextWindowResize=!0,window.dispatchEvent(new Event("resize"))}}safeStringify(t){var n;let i=new WeakSet;try{return JSON.stringify(t,(r,a)=>{if(typeof a=="object"&&a!==null){if(i.has(a))return"[Circular]";i.add(a)}return a},2)}catch{try{if(t&&((n=t.constructor)!=null&&n.name))return`[object ${t.constructor.name}]`}catch{}return String(t)}}setupConsoleInterceptor(){let t=console.log.bind(console),i=console.warn.bind(console),n=console.error.bind(console),r=console.info.bind(console),a=(s,...o)=>{let c=o.map(d=>typeof d=="object"?this.safeStringify(d):String(d)).join(" ");this.consoleMessages.push({type:s,message:c,timestamp:new Date}),this.appendConsoleMessage(this.consoleMessages[this.consoleMessages.length-1]);let l=this.container.querySelector("#console-badge");if(l){let d=this.consoleMessages.filter(u=>u.type==="error").length;l.textContent=d>0?`${d}!`:"0",l.classList.toggle("has-errors",d>0)}};console.log=(...s)=>{t(...s),a("log",...s)},console.warn=(...s)=>{i(...s),a("warn",...s)},console.error=(...s)=>{n(...s),a("error",...s)},console.info=(...s)=>{r(...s),a("info",...s)}}appendConsoleMessage(t){let i=this.container.querySelector("#console-messages");if(!i)return;let n=document.createElement("div");n.className=`console-msg type-${t.type}`;let r=t.timestamp.toLocaleTimeString();n.innerHTML=`<span class="time">${this.escapeHtml(r)}</span> <pre>${this.escapeHtml(t.message)}</pre>`,i.appendChild(n),i.scrollTop=i.scrollHeight}escapeHtml(t){return t.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#039;")}toggleConsole(t){var i;this.isConsoleOpen=t!=null?t:!this.isConsoleOpen,(i=this.consolePanel)==null||i.classList.toggle("closed",!this.isConsoleOpen)}clearConsole(){this.consoleMessages=[];let t=this.container.querySelector("#console-messages");t&&(t.innerHTML="");let i=this.container.querySelector("#console-badge");i&&(i.textContent="0")}setupCompareViewports(){Array.from(this.container.querySelectorAll("[data-viewport]")).forEach(i=>{let n=i.dataset.viewport;if(!n)return;let r=this.comparePresets.find(u=>u.id===n);if(!r)return;let a=i.querySelector("[data-compare-slot]"),s=i.querySelector("[data-compare-ghost]"),o=i.querySelector("[data-compare-wrapper]"),c=i.querySelector("[data-compare-frame]"),l=i.querySelector("[data-compare-snapshot]"),d=i.querySelector("[data-compare-focus]");!a||!s||!o||!c||(i.addEventListener("click",u=>{let p=u.target;if(p!=null&&p.closest("[data-compare-focus]")){u.preventDefault(),this.activateCompareViewport(n);return}i.classList.contains("is-active")||this.activateCompareViewport(n)}),this.compareViewports.set(n,{preset:r,root:i,slot:a,ghost:s,wrapper:o,frame:c,canvas:l,focus:d}))})}setViewMode(t){if(this.viewMode===t)return;this.viewMode=t,this.container.classList.toggle("compare-mode",t==="compare"),this.singleStage.classList.toggle("hidden",t!=="single"),this.compareStage.classList.toggle("hidden",t!=="compare");let i=this.container.querySelector("#device-select");i&&(i.disabled=t==="compare");let n=this.container.querySelector("#rotate-btn");if(n&&(n.disabled=t==="compare"),this.updateViewToggleUI(),t==="compare"){this.lastSinglePresetId=this.currentPreset.id,this.activateCompareViewport(this.activeCompareId),this.refreshCompareSnapshots(),this.startCompareSnapshots();return}this.stopCompareSnapshots(),this.singleStage.appendChild(this.frameDragger),this.setDevice(this.lastSinglePresetId,{suppressCallback:!0}),this.fitToScreen()}updateViewToggleUI(){Array.from(this.container.querySelectorAll("[data-view-toggle]")).forEach(i=>{i.classList.toggle("active",i.dataset.viewToggle===this.viewMode)})}activateCompareViewport(t){var a,s;let i=this.compareViewports.get(t);if(!i)return;let n=this.autoScale*this.userScaleMultiplier,r=this.activeCompareId;r&&r!==t&&this.captureCompareSnapshot(r),this.activeCompareId=t,this.currentPreset=i.preset,this.isLandscape=!1,i.slot.appendChild(this.frameDragger),this.frameDragOffsetX=0,this.frameDragOffsetY=0,this.applyFrameDrag(),this.compareViewports.forEach((o,c)=>{o.root.classList.toggle("is-active",c===t),o.ghost.classList.toggle("hidden",c===t),o.focus&&(o.focus.textContent=c===t?"Live":"Focus")}),this.applyPresetDimensions(),this.applyCompareDimensions(),this.fitToScreen({keepVisibleScale:n}),(s=(a=this.options).onDeviceChange)==null||s.call(a,this.getEffectivePreset())}applyCompareDimensions(){this.compareViewports.forEach(t=>{let i=t.preset,n=`${i.width}px`,r=`${i.height}px`;t.frame.style.width=n,t.frame.style.height=r,t.canvas&&(t.canvas.width=i.width,t.canvas.height=i.height)})}fitCompareGhosts(){this.compareViewports.forEach(t=>{let i=t.root.querySelector(".compare-body");if(!i)return;let n=Math.max(0,i.clientWidth-24),r=Math.max(0,i.clientHeight-24);if(n<=0||r<=0)return;let a=n/t.preset.width,s=r/t.preset.height,o=Math.max(.01,Math.min(a,s));t.wrapper.style.transform=`scale(${o})`})}captureCompareSnapshot(t){let i=this.compareViewports.get(t);if(!(i!=null&&i.canvas))return;let n=this.gameContainer.querySelector("canvas");if(!n)return;let r=i.canvas.getContext("2d");if(!r)return;let a=i.canvas.width,s=i.canvas.height,o=Math.min(a/n.width,s/n.height),c=n.width*o,l=n.height*o,d=(a-c)/2,u=(s-l)/2;r.clearRect(0,0,a,s),r.drawImage(n,d,u,c,l)}refreshCompareSnapshots(){this.compareViewports.forEach((t,i)=>{i!==this.activeCompareId&&this.captureCompareSnapshot(i)})}startCompareSnapshots(){this.compareSnapshotTimer||(this.compareSnapshotTimer=window.setInterval(()=>{this.viewMode==="compare"&&this.refreshCompareSnapshots()},500))}stopCompareSnapshots(){this.compareSnapshotTimer&&(window.clearInterval(this.compareSnapshotTimer),this.compareSnapshotTimer=null)}getFitBounds(){if(this.viewMode!=="compare")return{width:this.previewContainer.clientWidth-40,height:this.previewContainer.clientHeight-40};let t=this.compareViewports.get(this.activeCompareId),i=t==null?void 0:t.root.querySelector(".compare-body");return i?{width:i.clientWidth-24,height:i.clientHeight-24}:{width:this.previewContainer.clientWidth-40,height:this.previewContainer.clientHeight-40}}mustQuery(t){let i=this.container.querySelector(t);if(!i)throw new Error(`PreviewShell missing element: ${t}`);return i}};function Gh(e={}){let t=new Cl(e);return typeof window!="undefined"&&(window.__previewShell=t),t.mount(),t}import{Sprite as wx,Container as Wh}from"pixi.js";var _x=typeof __BUILD_MODE__!="undefined"?__BUILD_MODE__:"undefined",Tl=_x;if(typeof window!="undefined")try{let e=new XMLHttpRequest;if(e.open("GET","./build-settings.json",!1),e.send(),e.status===200&&e.responseText){let t=JSON.parse(e.responseText);t!=null&&t.buildMode&&(Tl=t.buildMode,console.log(`[ObjectFactory] Build mode overridden by settings: ${Tl}`))}}catch{}var Ot=class{static async create(t,i,n){var c,l,d,u,p,f,g;console.log(`[ObjectFactory] create() called for: ${t}, __BUILD_MODE__: ${Tl}`);let r=(c=i==null?void 0:i.render)==null?void 0:c.asset;if(!r){console.log(`[ObjectFactory] No asset definition for: ${t}, returning empty container`);let h=new Wh;return this.applyTransform(h,i==null?void 0:i.transform),h}let a=(l=i==null?void 0:i.identity)==null?void 0:l.id;console.log(`[ObjectFactory] Calling AssetLoader.load() for: ${t}, configId: ${a}, type: ${r.type}, path: ${r.path}`);let s=await Ka.load(t,r,n,a);console.log(`[ObjectFactory] AssetLoader.load() completed for: ${t}, rawAsset type: ${(d=s==null?void 0:s.constructor)==null?void 0:d.name}`);let o;if(r.type==="image")console.log("[ObjectFactory] Creating Sprite from texture:",s,"for object:",t),o=new wx(s),console.log("[ObjectFactory] Created object:",o,"type:",(u=o==null?void 0:o.constructor)==null?void 0:u.name),this.applyTransform(o,i==null?void 0:i.transform);else if(r.type==="json")if(console.log("[ObjectFactory] JSON asset for",t,"rawAsset type:",(p=s==null?void 0:s.constructor)==null?void 0:p.name,s),s&&(((f=s.constructor)==null?void 0:f.name)==="Container"||s instanceof Wh)){console.warn("[ObjectFactory] JSON asset is Container (from cache), reloading JSON directly");let h=[r.path,`/assets/${r.path}`,`assets/${r.path}`,`../assets/${r.path}`],m=!1;for(let b of h)try{let v=await fetch(b);if(v.ok){o=await v.json(),console.log("[ObjectFactory] Reloaded JSON directly from:",b,"type:",(g=o==null?void 0:o.constructor)==null?void 0:g.name),m=!0;break}}catch{continue}m||(console.error("[ObjectFactory] Failed to reload JSON from any path"),o=s)}else o=s;else o=s,o&&typeof o=="object"&&("x"in o||"position"in o)&&this.applyTransform(o,i==null?void 0:i.transform);return o}static applyTransform(t,i){var n,r,a,s;!i||!t||(i.position&&("x"in t&&"y"in t?(t.x=(n=i.position.x)!=null?n:0,t.y=(r=i.position.y)!=null?r:0):"position"in t&&t.position&&t.position.set((a=i.position.x)!=null?a:0,(s=i.position.y)!=null?s:0)),i.scale!==void 0&&"scale"in t&&t.scale&&(typeof t.scale=="object"&&"set"in t.scale?t.scale.set(i.scale):t.scale=i.scale),i.rotation!==void 0&&"rotation"in t&&(t.rotation=i.rotation),i.anchor&&"anchor"in t&&t.anchor&&Array.isArray(i.anchor)&&("set"in t.anchor?t.anchor.set(i.anchor[0],i.anchor[1]):(t.anchor.x=i.anchor[0],t.anchor.y=i.anchor[1])))}};function kl(e){try{if(e&&typeof e.keys=="function")return Array.from(e.keys())}catch{}return[]}function Vh(e){var t;return e?((t=e.getDisplayObject)==null?void 0:t.call(e))||e.pixiObject||e:null}function Ex(e,t){if(!e||!(t!=null&&t.interaction))return;let i=t.interaction,n=i.enabled!==!1&&(i.draggable===!0||i.clickable===!0);e.eventMode=n?"static":"none",e.interactive=n,n&&(e.cursor=i.draggable?"move":"pointer")}function Yh(e,t){var c,l,d,u,p;if(!e||!t)return;let i=t.transform||{};Ex(e,t);let n=i.position||{},r=i.offset||{},a=(typeof n.x=="number"?n.x:0)+(typeof r.x=="number"?r.x:0),s=(typeof n.y=="number"?n.y:0)+(typeof r.y=="number"?r.y:0);(c=e.position)!=null&&c.set?e.position.set(a,s):(typeof e.x=="number"&&(e.x=a),typeof e.y=="number"&&(e.y=s)),typeof i.scale=="number"&&((l=e.scale)!=null&&l.set?e.scale.set(i.scale):e.scale&&(e.scale.x=i.scale,e.scale.y=i.scale));let o=(u=i.anchor)!=null?u:(d=t.render)==null?void 0:d.anchor;o&&((p=e.anchor)!=null&&p.set)&&typeof o.x=="number"&&typeof o.y=="number"&&e.anchor.set(o.x,o.y)}function Kh(e){if(typeof window=="undefined")return;let t=e==null?void 0:e.objects,i=kl(t),n=a=>{try{let s=window.__HANDLER_ACTIVE_SCREEN;if(!s||s==="all")return a;let o=window.__HANDLER_SCREEN_INDEX,c=o==null?void 0:o.instanceToScreen;return c?a.filter(l=>c[l]===s):a}catch{return a}};window.__editableObjectConfigs=t;let r=new Map;i.forEach(a=>r.set(a,[a])),window.__editableObjectInstances=r,window.refreshEditableConfigIndex=()=>Kh(window.__editableConfig),window.getEditableObjectList=()=>{var a;return n(kl((a=window.__editableConfig)==null?void 0:a.objects))},window.getEditableObjectListAll=()=>{var a;return kl((a=window.__editableConfig)==null?void 0:a.objects)},window.getEditableObjectConfig=a=>{var d,u,p,f,g;let s=(f=(p=(u=(d=window.__editableConfig)==null?void 0:d.objects)==null?void 0:u.get)==null?void 0:p.call(u,a))!=null?f:null,o=window.__HANDLER_ACTIVE_SCREEN;if(!o||o==="all")return s;let c=window.__HANDLER_SCREEN_INDEX,l=(g=c==null?void 0:c.instanceToScreen)==null?void 0:g[a];return l&&l===o?s:null},window.getEditableEngineConfig=()=>{let a=window.__editableConfig;if(console.log("[BRIDGE] getEditableEngineConfig called, cfg present:",!!a),!a)return null;if(a.engine&&a.objects instanceof Map){console.log("[BRIDGE] Detected ObjectCentricConfig, flattening...");let s={...a.engine,objects:a.objects,scene:a.scene};return console.log("[BRIDGE] Returned assets:",Object.keys(s.assets||{})),s}return a}}function Sx(){if(typeof window=="undefined")return;let e=i=>{let n=String(i||"").trim();return n?/^(data:|blob:|https?:)/.test(n)||n.startsWith("/")?n:`/${n.replace(/^\.\//,"")}`:""},t=async(i,n)=>{var a,s,o;let r=e(n);if(r)try{let[{Assets:c},{AssetTextures:l}]=await Promise.all([import("pixi.js"),import("./AssetTextures-CWUQXU5Q.js")]),d=Date.now(),u=/^(data:|blob:)/.test(r)?r:r+(r.includes("?")?`&t=${d}`:`?t=${d}`),p=await c.load(u);if(!p)return;l[i]=p;let f=window.CustomAssets;(a=f==null?void 0:f[i])!=null&&a.texture&&(f[i].texture=p);let g=window.gameObjectManager,h=(s=g==null?void 0:g.get)==null?void 0:s.call(g,i);if(h){let m=((o=h.getDisplayObject)==null?void 0:o.call(h))||h.pixiObject||h.pixi||h;if(m!=null&&m.texture)m.texture=p;else if(m!=null&&m.children){let b=m.children.find(v=>v==null?void 0:v.texture);b!=null&&b.texture&&(b.texture=p)}}}catch(c){console.warn("[LIVE-EDIT] Failed to reload Pixi texture for",i,c)}};window.applyLiveEditOverrides=i=>{try{let n=Ja();Array.isArray(n)&&n.length&&(window.__editableConfig=i,or(n,{silent:!0,persist:!1}))}catch{}},window.applyEngineOverrides=i=>{try{let n=Ja();Array.isArray(n)&&n.length&&(window.__editableConfig=i,or(n,{silent:!0,persist:!1}))}catch{}},window.applyEditableEngineConfig=i=>{let n=window.__editableConfig;if(!(n!=null&&n.engine))return;let r=[];if(i.runtime)for(let[a,s]of Object.entries(i.runtime))r.push({path:`runtime.${a}`,value:s});if(i.assets)for(let[a,s]of Object.entries(i.assets))r.push({path:`assets.${a}`,value:s}),typeof s=="string"&&t(a,s);if(i.splash)for(let[a,s]of Object.entries(i.splash))r.push({path:`splash.${a}`,value:s});if(i.loading)for(let[a,s]of Object.entries(i.loading))r.push({path:`loading.${a}`,value:s});if(i.start)for(let[a,s]of Object.entries(i.start))r.push({path:`start.${a}`,value:s});r.length&&or(r,{silent:!0,persist:!0,emitEvent:!0})}}function Ll(e){let{getConfig:t,gameObjectManager:i,onObjectConfigApplied:n}=e;i&&(i.onObjectRebuildRequired=async(a,s)=>{console.log(`[LIVE-EDIT] \u{1F3D7}\uFE0F Rebuilding object ${a} due to type change...`);let o=i.get(a),c=o==null?void 0:o.pixiObject,l=c==null?void 0:c.parent,d=l==null?void 0:l.children.indexOf(c);o?i.remove(a):c&&c.destroy();let u=window.gameApp,p=await Ot.create(a,s,u);l&&(d!==void 0&&d!==-1?l.addChildAt(p,d):l.addChild(p));let f=i.create(a,p);return console.log(`[LIVE-EDIT] \u2705 Rebuild complete for ${a}`),f}),typeof window!="undefined"&&(Sx(),window.applyEditableObjectConfig=(a,s)=>{var o,c,l;console.log("[LIVE-EDIT] \u{1F504} applyEditableObjectConfig called for:",a);try{let d=window.__editableConfig;(o=d==null?void 0:d.objects)!=null&&o.set&&(d.objects.set(a,s),console.log("[LIVE-EDIT] \u2705 Updated config in __editableConfig"));let u=(c=i==null?void 0:i.get)==null?void 0:c.call(i,a);if(console.log("[LIVE-EDIT] gameObject found?",!!u),u&&(console.log("[LIVE-EDIT] gameObject type:",(l=u.constructor)==null?void 0:l.name),console.log("[LIVE-EDIT] has updateConfig?",typeof u.updateConfig=="function"),console.log("[LIVE-EDIT] has onConfigUpdate?",typeof u.onConfigUpdate=="function")),u&&typeof u.updateConfig=="function")console.log("[LIVE-EDIT] \u2705 Calling updateConfig()"),u.updateConfig(s);else if(u&&typeof u.onConfigUpdate=="function")console.log("[LIVE-EDIT] \u2705 Calling onConfigUpdate()"),u.onConfigUpdate();else{console.log("[LIVE-EDIT] \u26A0\uFE0F No updateConfig or onConfigUpdate, applying transform directly");let p=Vh(u);Yh(p,s)}}catch(d){console.error("[LIVE-EDIT] \u274C Error in applyEditableObjectConfig:",d)}});let r={async applyObjectConfig(a,s){var d,u;console.log("[BRIDGE] \u{1F504} applyObjectConfig called for:",a);let o=t();(d=o==null?void 0:o.objects)!=null&&d.set&&(o.objects.set(a,s),console.log("[BRIDGE] \u2705 Updated config"));let c=(u=i==null?void 0:i.get)==null?void 0:u.call(i,a);if(console.log("[BRIDGE] gameObject found?",!!c),c&&(console.log("[BRIDGE] has updateConfig?",typeof c.updateConfig=="function"),console.log("[BRIDGE] has onConfigUpdate?",typeof c.onConfigUpdate=="function")),c&&typeof c.updateConfig=="function")console.log("[BRIDGE] \u2705 Calling updateConfig()"),c.updateConfig(s);else if(c&&typeof c.onConfigUpdate=="function")console.log("[BRIDGE] \u2705 Calling onConfigUpdate()"),c.onConfigUpdate();else{console.log("[BRIDGE] \u26A0\uFE0F Applying transform directly");let p=Vh(c);Yh(p,s)}let l=[a];n==null||n(a,s,l)},rebuildIndexes(){let a=t();typeof window!="undefined"&&(window.__editableConfig=a,Kh(a))}};return r.rebuildIndexes(),r}import Ax from"lottie-web";Il(qc);typeof window!="undefined"&&!window.lottie&&(window.lottie=Ax);var Ui=null,Cx=async()=>{if(!Ui){let e=typeof window!="undefined"?window.INLINE_ASSETS:null,t=(e==null?void 0:e["handler.config"])||(e==null?void 0:e["handler.config.json"]);if(t)try{if(t.startsWith("data:")){let n=atob(t.split(",")[1]);Ui=JSON.parse(n)}else Ui=JSON.parse(t);return Ui}catch(n){console.warn("[CONFIG] Failed to parse inline handler.config.json:",n)}Ui=await(await fetch("./handler.config.json")).json()}return Ui},Ol,$n,Jh,$i,Ml,Pl;function _E(e){Ol=e.initGame,$n=e.CustomAssets,Jh=e.updateScreenState,$i=e.globalResponsiveMultipliers,Ml=e.layout,Pl=e.clearResponsiveElements}var Ma="web_embed",Un="https://example.com",Xh={profile_id:Ma},Dt=null,Ke=null,Rl={width:0,height:0},Tx=!0,EE=async()=>{var l,d,u,p;document.title="Handler Pixi Game";let e=await Cx();Xh={...e.ids||{},profile_id:Ma},Un=e.destination_url||((d=(l=e.export_profiles)==null?void 0:l[Ma])==null?void 0:d.destination_url)||Un,pt.init({ids:Xh,profile:Ma,destinationUrl:Un});let t=pt.getRoot();if(typeof __PREVIEW_SHELL__!="undefined"&&__PREVIEW_SHELL__){console.log("[BOOTSTRAP] Initializing Preview Shell..."),Ke=Gh({onDeviceChange:g=>{console.log(`[PREVIEW] Device switched to ${g.width}x${g.height}, restarting game...`),Zh()},onRefresh:Zh});let f=Ke.getGameContainer();f&&(t=f),window.addEventListener("handler-preview:screen",g=>{var y,x,w,E,A,S,k,I,_,C,R;let h=window.gameApp,m=window.gameObjectManager,{width:b,height:v}=g.detail;if(Rl.width=b,Rl.height=v,Jh(b,v),!(!h||!h.renderer)){m&&o(h,m);try{h.renderer.resize(b,v);let M=h.view;M&&(M.style.width="100%",M.style.height="100%",M.style.display="block")}catch(M){console.warn("[SCREEN] Error resizing renderer:",M);return}if(i&&m&&Ml)try{let M=(y=window.__mainContainer)!=null?y:h.stage,O=(k=(S=(E=window.__tutorialLabel)!=null?E:(w=(x=m.get("label_1"))==null?void 0:x.getDisplayObject)==null?void 0:w.call(x))!=null?S:(A=m.get("label_1"))==null?void 0:A.pixiObject)!=null?k:m.get("label_1"),T=m.get("background_1"),j=(R=(C=(_=window.__background)!=null?_:(I=T==null?void 0:T.getDisplayObject)==null?void 0:I.call(T))!=null?C:T==null?void 0:T.pixiObject)!=null?R:T;if(M){let L=M===h.stage;Ml({mainContainer:M,label:O,background:j,backgroundTexture:(j==null?void 0:j.texture)||null,app:h},i,0,Rl,m,{skipMainContainerTransform:L})}}catch(M){console.warn("[SCREEN] Error in layout:",M)}}})}let i=await lr("scene.main");window.__editableConfig=i,s(),window.__editableConfigBaseline||(window.__editableConfigBaseline=Qa(i),console.log("[BOOTSTRAP] Frozen config baseline for persistence")),(p=(u=i.engine.runtime)==null?void 0:u.layout)!=null&&p.design_width_portrait||(console.warn("[BOOTSTRAP] Config layout missing, retrying..."),await new Promise(f=>setTimeout(f,100)),i=await lr("scene.main"));let n=await Ol(t,i,Un,Ke);Dt=n.app;let r=n.gameObjectManager;window.gameApp=Dt,window.gameObjectManager=r;try{window.__liveEditBridge=Ll({getConfig:()=>window.__editableConfig,gameObjectManager:r,assets:$n})}catch(f){console.warn("[BOOTSTRAP] Failed to initialize live-edit bridge",f)}Ke&&Ke.notifyGameLoaded();let a=window.__debugScale;a&&typeof a=="number"&&($i.scale=a,console.log(`[DEBUG] Applied persisted debug scale: ${a}`)),o(Dt,r);async function s(){try{let f=async v=>{let y=v.startsWith("/")?v:`/${v}`,x=await fetch(y,{cache:"no-cache"});if(!x.ok)return null;let w=await x.text();try{return JSON.parse(w)}catch{return null}},g=await f("configs/flow/app.flow.json");if(!g||typeof g!="object")return;let h=g.screens;if(!h||typeof h!="object")return;let m={},b={};for(let[v,y]of Object.entries(h)){let x=y==null?void 0:y.source;if(typeof x!="string")continue;let w=await f(x),E=w==null?void 0:w.elements;if(!Array.isArray(E))continue;let A=E.map(S=>S==null?void 0:S.instance_id).filter(S=>typeof S=="string");m[v]=A;for(let S of A)b[S]||(b[S]=v)}window.__HANDLER_APP_FLOW=g,window.__HANDLER_SCREEN_INDEX={screenToInstances:m,instanceToScreen:b},window.dispatchEvent(new CustomEvent("handler:screen-index-loaded"))}catch{}}function o(f,g){if(Tx){console.log("[RESPONSIVE] Skipping global scaling; using config-driven layout");return}if(console.log("[RESPONSIVE] ===== APPLYING GLOBAL RESPONSIVE SCALING ====="),console.log(`[RESPONSIVE] Scale multiplier: ${$i.scale.toFixed(3)}`),f.stage){let m=function(b,v=0){if(!b||!b.children)return;let y=" ".repeat(v);b.children.forEach((x,w)=>{if(x&&x.zIndex===9999){console.log(`${y}[RESPONSIVE] Skipping debug border (zIndex 9999)`);return}if(x&&x.scale){let E=x.scale.x||1,A=x.scale.y||1;x.__originalScale||(x.__originalScale={x:E,y:A},console.log(`${y}[RESPONSIVE] Stored original scale for child[${w}]: ${E.toFixed(3)}, ${A.toFixed(3)}`));let S=x.__originalScale.x*$i.scale,k=x.__originalScale.y*$i.scale;typeof x.scale.set=="function"?x.scale.set(S,k):(x.scale.x=S,x.scale.y=k),console.log(`${y}[RESPONSIVE] Child[${w}] scale: ${E.toFixed(3)}\u2192${x.scale.x.toFixed(3)} (type: ${x.constructor.name})`),m(x,v+1)}else x&&console.log(`${y}[RESPONSIVE] Child[${w}] has no scale (type: ${x.constructor.name})`)})};var h=m;console.log("[RESPONSIVE] Applying scale to PIXI stage children"),m(f.stage)}else console.warn("[RESPONSIVE] No app.stage found!");console.log("[REDDEBUG] Debug border left unscaled (fixed boundaries)"),console.log("[RESPONSIVE] ===== GLOBAL RESPONSIVE SCALING COMPLETE =====")}function c(f){if(f!==void 0){$i.scale=f,console.log(`[RESPONSIVE] Updated global scale multiplier to: ${f.toFixed(3)}`);let g=window.gameApp,h=window.gameObjectManager;g&&h?(o(g,h),g.renderer&&(g.renderer.render(g.stage),console.log("[RESPONSIVE] Forced PIXI renderer update"))):console.warn(`[RESPONSIVE] No gameApp (${!!g}) or gameObjectManager (${!!h}) found in window for live update`)}}window.updateGlobalResponsiveMultipliers=c,pt.start()},Zh=async()=>{var t,i,n,r;console.log("[PREVIEW] Restarting game in 1 seconds...");let e=(t=window.gameObjectManager)==null?void 0:t.get("character_1");if(e){let a=((i=e.getDisplayObject)==null?void 0:i.call(e))||e;a&&a.scale&&console.log(`[CHARACTER] Before restart - Current scale - x: ${((n=a.scale.x)!=null?n:1).toFixed(3)}, y: ${((r=a.scale.y)!=null?r:1).toFixed(3)}`)}if(Ke){Ke.notifyGameDestroyed();try{Pl&&Pl()}catch(a){console.warn("Failed to clear responsive elements",a)}setTimeout(()=>{console.log("[PREVIEW] Executing restart...");let a=Ke.getGameContainer(),s=window.gameObjectManager;if(s&&typeof s.clear=="function"&&(console.log("[PREVIEW] Clearing old GameObjectManager tickers..."),s.clear()),Dt){try{Dt.destroy(!0,{children:!0,texture:!1})}catch(o){console.warn("[PREVIEW] Destroy warning:",o)}Dt=null}window.gameApp=null,window.gameObjectManager=null,a&&(a.innerHTML="");try{typeof $n.resetScene=="function"&&$n.resetScene()}catch(o){console.warn("Asset reset failed",o)}setTimeout(()=>{lr("scene.main").then(o=>{window.__editableConfig=o,window.__editableConfigBaseline||(window.__editableConfigBaseline=Qa(o)),Ol(a,o,Un).then(c=>{Dt=c.app,window.gameApp=Dt,window.gameObjectManager=c.gameObjectManager;try{window.__liveEditBridge=Ll({getConfig:()=>window.__editableConfig,gameObjectManager:window.gameObjectManager,assets:$n})}catch(l){console.warn("[BOOTSTRAP] Failed to re-initialize live-edit bridge",l)}Ke&&Ke.notifyGameLoaded(),console.log("[PREVIEW] Game restarted successfully");try{pt.start()}catch{}})})},100)},1e3)}};var ft={background:"#F6F3EF",ink:"#1E1E1E",secondaryText:"#8E8A84",primaryAccent:"#E38A5A",secondaryAccent:"#C9A28C",statusGreen:"#5F8F6B"},kx=1.25,Lx={fontFamily:"Inter, system-ui, sans-serif"};var Dl=class{constructor(t={}){this.currentProgress=0;var i;this.currentProgress=(i=t.progress)!=null?i:0,this.container=this.createContainer()}createContainer(){let t=document.createElement("div");t.className="handler-loading-screen",t.style.cssText=`
1434
1479
  position: fixed;
1435
1480
  inset: 0;
1436
1481
  display: flex;
@@ -1629,7 +1674,7 @@ Style guidelines: ${n.summary}`;this.promptInput.value=r,this.currentPrompt=r}}c
1629
1674
  0%, 100% { opacity: 1; }
1630
1675
  50% { opacity: 0.3; }
1631
1676
  }
1632
- `,document.head.appendChild(t)}setProgress(t){this.currentProgress=Math.max(0,Math.min(100,t)),this.progressBar.style.width=`${this.currentProgress}%`,this.progressText.textContent=`${Math.floor(this.currentProgress)}%`,this.authSeq.textContent=`Auth_Seq: 0x${Math.floor(this.currentProgress*2.55).toString(16).toUpperCase()} // System_Ready`}mount(t=document.body){t.appendChild(this.container)}unmount(){this.container.parentElement&&this.container.parentElement.removeChild(this.container)}getElement(){return this.container}};var Ol=_c.version,kx=new Set(["init","boot","view","ready","start","pause","resume","complete","error","engagement","first_interaction","retry","cta_show","cta_click","cta_dismiss","clickout","conversion","session_time","level_time","load_time","level_start","level_complete","level_fail","checkpoint","reward","tutorial_start","tutorial_complete","tutorial_skip","ab_assign","fps","memory","asset_load_start","asset_load_complete"]);wc();var ng={mechanic_id:"TODO_mechanic_id",variant_id:"TODO_variant_id",deployment_id:"TODO_deployment_id",export_id:"TODO_export_id",profile_id:"TODO_profile_id",instance_id:"default"},rg=Math.random().toString(36).slice(2),Wi=null,qi={...ng},ag="web_embed",Bl={},Gn,Dl=!1,qn=!1,Yn=!1,sg=!1,Ul=1,Ia=0,ja=!1,ht=!1,Gi="",Yi=Math.floor(window.innerWidth),Vi=Math.floor(window.innerHeight),Fl=Yi>Vi,gt=!1,Wn=!1,Zh=!1,Jh=!1,jl=!1,Oa=null,ti=null,Nl=!1,Hl=!1,Pa=new Map;function og(){if(!ti)return null;let e=Date.now()-ti;return!Number.isFinite(e)||e<0?null:e}function zl(e){if(Nl)return;let t=og();t!==null&&(Nl=!0,z("session_time",{duration_ms:t,reason:e}))}function Qh(){if(Wi)return Wi;let e=document.createElement("div");return e.id="handler-root",e.setAttribute("data-handler-root","true"),document.body.appendChild(e),Wi=e,e}function Da(e){switch(e){case"interaction":return"engagement";case"finish":return"complete";case"install":return"cta_click";default:return e}}function lg(e,t){return{event_name:e,ts:Date.now(),session_id:rg,deployment_id:qi.deployment_id,variant_id:qi.variant_id,export_profile_id:qi.profile_id,instance_id:qi.instance_id||"default",env:ag==="mraid"?"mraid":"web",attribution:Gn,payload:t}}function z(e,t){let i=Da(e),n=lg(i,t);ts(n,!!Bl.analytics),dr(i,n),i!==e&&dr(e,n)}function Vn(){Oa&&(Oa(Yi,Vi),Oa=null)}function Ki(e){Ul=e,z("volume",e)}function Xi(e){e&&(sg=!0),!Yn&&(Yn=!0,z("pause"),Ki(0))}function Kn(e){!e&&sg||Yn&&(Yn=!1,z("resume"),Ki(Ul))}function jt(e,t){Yi=Math.floor(e||window.innerWidth),Vi=Math.floor(t||window.innerHeight),Fl=Yi>Vi,z("resize",{width:Yi,height:Vi})}function Lx(){if(Oc())try{let e=mraid.getMaxSize();jt(e.width,e.height);let t=()=>{mraid.isViewable()&&mraid.getState()!=="hidden"?Kn():Xi()};if(mraid.addEventListener("viewableChange",t),mraid.addEventListener("stateChange",t),mraid.addEventListener("sizeChange",()=>{let i=mraid.getMaxSize();jt(i.width,i.height)}),mraid.getAudioVolume){let i=mraid.getAudioVolume();Ki(i?1:0)}if(mraid.addEventListener("audioVolumeChange",i=>{i!==null&&Ki(i>0?1:0)}),mraid.addEventListener("error",(i,n)=>{console.warn("mraid error:",i,"action:",n)}),ja=!0,mraid.isViewable()&&mraid.getState()!=="hidden")gt=!0,z("boot"),z("view"),z("ready"),ht=!0,Vn();else{let i=()=>{gt=!0,z("boot"),z("view"),z("ready"),ht=!0,Vn()};mraid.addEventListener("ready",i)}}catch(e){console.warn("MRAID hook skipped",e)}}function Rx(){if(Dc())try{let e=dapi.getScreenSize();jt(e.width,e.height),dapi.addEventListener("viewableChange",i=>{i.isViewable?Kn():Xi()}),dapi.addEventListener("adResized",i=>{let n=dapi.getScreenSize();jt(i.width||n.width,i.height||n.height)});let t=dapi.getAudioVolume();if(Ki(t?1:0),dapi.addEventListener("audioVolumeChange",i=>Ki(i?1:0)),ja=!0,dapi.isViewable())gt=!0,z("boot"),z("view"),z("ready"),ht=!0,Vn();else{let i=()=>{gt=!0,z("boot"),z("view"),z("ready"),ht=!0,Vn()};dapi.addEventListener("ready",i)}}catch(e){console.warn("DAPI hook skipped",e)}}function eg(){let e=()=>{gt||document.visibilityState==="visible"&&(document.readyState==="complete"||document.readyState==="interactive")&&(gt=!0,z("boot"),z("view"),z("ready"),ht=!0,Vn(),Wn&&(Wn=!1,Xe.start()))};window.addEventListener("resize",()=>jt()),document.addEventListener("visibilitychange",()=>{document.visibilityState==="visible"?(Kn(),e()):Xi()}),document.readyState==="complete"||document.readyState==="interactive"?e():window.addEventListener("load",e),ja=!0}function Mx(){let e=t=>{typeof TouchEvent!="undefined"&&t instanceof TouchEvent&&(Zh=!0),!(Zh&&t instanceof MouseEvent)&&(Ia+=1,Hl||(Hl=!0,z("first_interaction",{count:Ia})),z("interaction",Ia))};document.addEventListener("mousedown",e),document.addEventListener("touchstart",e)}function tg(e){var n,r,a,s,o,c,l,d,u,p,f,g;let t=typeof AD_PROTOCOL!="undefined"?AD_PROTOCOL:"none";if((typeof AD_NETWORK!="undefined"?AD_NETWORK:"web_embed")==="google")try{(n=window.ExitApi)==null||n.exit();return}catch{}if(t==="mraid"&&typeof mraid!="undefined")mraid.open(e||"");else if(t==="dapi"&&typeof dapi!="undefined")dapi.openStoreUrl();else if(ci())(a=(r=window.TJ_API)==null?void 0:r.click)==null||a.call(r);else if(jc())(o=(s=window.FbPlayableAd)==null?void 0:s.onCTAClick)==null||o.call(s);else if(Nc())(l=(c=window.ScPlayableAd)==null?void 0:c.onCTAClick)==null||l.call(c);else if(Fc())try{(u=(d=window.smxTracking)==null?void 0:d.redirect)==null||u.call(d)}catch(h){console.warn("Smadex redirect failed",h)}else if(zc()){let h=window.ExitApi;h&&typeof h.exit=="function"?h.exit(e||Gi||""):e&&window.open(e)}else li()?(p=window.install)==null||p.call(window):Bc()?(f=window.openAppStore)==null||f.call(window):is()?(g=parent==null?void 0:parent.postMessage)==null||g.call(parent,"download","*"):e&&window.open(e)}function Px(){let e=typeof AD_NETWORK!="undefined"?AD_NETWORK:"web_embed",t=i=>{if(!i)return;let n=new Image;n.src=i};if(e==="bigabid"){let i=window.BIGABID_BIDTIMEMACROS;if(!i)return;_e("view",()=>t(i.mraid_viewable)),_e("start",()=>t(i.game_viewable)),_e("engagement",()=>t(i.engagement));let n=()=>t(i.complete);_e("complete",n),cr("engagement",r=>{var a;((a=r==null?void 0:r.payload)==null?void 0:a.count)>3&&n()}),_e("cta_click",()=>t(i.click))}else if(e==="inmobi"){let i=window.INMOBI_DSPMACROS;if(!i)return;_e("view",()=>t(i.Ad_Load_Start)),_e("start",()=>t(i.Ad_Viewable)),_e("engagement",()=>t(i.First_Engagement)),_e("complete",()=>t(i.Gameplay_Complete)),_e("cta_click",()=>t(i.DSP_Click)),_e("start",()=>{[5,10,15,20,25,30].forEach(n=>setTimeout(()=>t(i[`Spent_${n}_Seconds`]),n*1e3))})}}function Ix(){if(!ci())return;let e=window.TJ_API;e&&e.setPlayableAPI&&e.setPlayableAPI({skipAd:()=>{try{Xe.finish()}catch(t){console.warn("Tapjoy skip failed",t)}}})}function ig(){var t,i,n;let e=window.TJ_API;(t=e==null?void 0:e.objectiveComplete)==null||t.call(e),(i=e==null?void 0:e.playableFinished)==null||i.call(e),(n=e==null?void 0:e.gameplayFinished)==null||n.call(e)}function Ox(){li()&&(window.mintGameStart=()=>{Kn(!0),jt()},window.mintGameClose=()=>{Xi(!0)})}function Dx(){if(!ns())return;let e=window.NUC;!e||!e.trigger||(Xe.on("cta_click",()=>{var t,i;return(i=(t=e.trigger).convert)==null?void 0:i.call(t,Gi)}),Xe.on("complete",()=>{var t,i;return(i=(t=e.trigger).tryAgain)==null?void 0:i.call(t)}))}var Xe={init(e={},t){var i;if(ag=e.profile||"web_embed",Bl=e.consent||{},qi={...ng,...e.ids||{}},Wi=e.rootEl||Wi,Gn=void 0,hc((i=e.telemetry)!=null&&i.endpoint?e.telemetry:null),ti=null,Nl=!1,Hl=!1,Pa.clear(),Gi=e.destinationUrl||(/android/i.test(navigator.userAgent)?"https://play.google.com/store":"https://www.apple.com/app-store/"),t&&(Oa=t),z("init"),document.body.oncontextmenu=()=>!1,Qh(),zx(Wi),Hc(),Lx(),Rx(),!ja){if(document.readyState==="complete")eg();else if(!Jh){Jh=!0;let n=()=>{eg(),window.removeEventListener("load",n),document.removeEventListener("DOMContentLoaded",n)};window.addEventListener("load",n),document.addEventListener("DOMContentLoaded",n)}}Mx(),Px(),Ix(),Ox(),Dx(),console.log(`%c @handler/playable-sdk %c v${Ol} `,"background: #007acc; color: #fff; font-size: 14px; padding: 4px 8px; border-top-left-radius: 4px; border-bottom-left-radius: 4px;","background: #e1e4e8; color: #333; font-size: 14px; padding: 4px 8px; border-top-right-radius: 4px; border-bottom-right-radius: 4px;"),gt&&!ht&&(z("boot"),z("view"),z("ready"),Wn&&(Wn=!1,Xe.start()),ht=!0),ht=gt},getRoot(){return Qh()},get version(){return Ol},get maxWidth(){return Yi},get maxHeight(){return Vi},get isLandscape(){return Fl},get isReady(){return ht},get isStarted(){return Dl},get isPaused(){return Yn},get isFinished(){return qn},get volume(){return Ul},get interactions(){return Ia},on(e,t){cr(Da(e),t)},off(e,t){es(Da(e),t)},start(){var e,t;if(!Dl){if(!gt){Wn=!0;return}if(Dl=!0,ti||(ti=Date.now()),z("start"),jt(),li())Xi(),(e=window.gameReady)==null||e.call(window);else if(ci()){let i=window.TJ_API;(t=i==null?void 0:i.setPlayableBuild)==null||t.call(i,{orientation:Fl?"landscape":"portrait",buildID:Ol})}}},finish(){var e,t;qn||(qn=!0,z("complete"),zl("complete"),li()?(e=window.gameEnd)==null||e.call(window):is()?(t=parent==null?void 0:parent.postMessage)==null||t.call(parent,"complete","*"):ci()&&ig())},install(e){if(!qn){qn=!0,ci()?(ig(),setTimeout(()=>Xe.install(e),300)):(z("complete"),setTimeout(()=>Xe.install(e),0));return}jl||(jl=!0,setTimeout(()=>jl=!1,500),z("cta_click"),z("conversion"),zl("cta"),tg(e||Gi))},emit(e,t){let i=Da(e);if(!kx.has(i)&&i!=="resize"&&i!=="volume"&&!i.startsWith("custom."))throw new Error(`Event ${e} must be canonical or namespaced as custom.<mechanic_id>.<event>`);let n=lg(i,t);ts(n,!!Bl.analytics),dr(i,n)},gameStart(){Xe.start()},gameEnd(){Xe.finish()},ctaClick(e,t){z("cta_click",{url:e||Gi,manual:!0}),(t==null?void 0:t.open)!==!1&&tg(e||Gi)},ctaShow(e){z("cta_show",e)},ctaDismiss(e){z("cta_dismiss",e)},getGameTimeMs(){return og()},endSession(e="manual"){zl(e)},setAttribution(e){Gn=e},abTest(e,t){if(!e)throw new Error("abTest requires experimentId");if(!Array.isArray(t)||t.length<2)throw new Error("abTest requires at least 2 variants");let i=Math.abs(jx(`${rg}:${e}`))%t.length,n=t[i];return Gn={...Gn||{},experiment_id:e},qi.variant_id=n,z("ab_assign",{experiment_id:e,variant_id:n}),n},levelStart(e,t){ti||(ti=Date.now()),z("level_start",{level_id:e,...t})},levelComplete(e,t){z("level_complete",{level_id:e,...t})},levelFail(e,t){z("level_fail",{level_id:e,...t})},checkpoint(e,t){z("checkpoint",{checkpoint_id:e,...t})},reward(e,t){z("reward",{reward_id:e,...t})},tutorialStart(e,t){z("tutorial_start",{step_id:e,...t})},tutorialComplete(e,t){z("tutorial_complete",{step_id:e,...t})},tutorialSkip(e,t){z("tutorial_skip",{step_id:e,...t})},timerStart(e){e&&Pa.set(e,Date.now())},timerEnd(e,t="custom",i){if(!e)return;let n=Pa.get(e);if(!n)return;Pa.delete(e);let r=Date.now()-n;if(!(!Number.isFinite(r)||r<0)){if(t==="custom"){z("engagement",{action:"timer",key:e,duration_ms:r,...i});return}z(t,{key:e,duration_ms:r,...i})}},fps(e,t){z("fps",{value:e,...t})},memory(e,t){z("memory",{bytes:e,...t})},assetLoadStart(e,t){z("asset_load_start",{asset_id:e,...t})},assetLoadComplete(e,t){z("asset_load_complete",{asset_id:e,...t})},reportError(e,t,i){z("error",{code:e,message:t,...i})},retry(){var e,t,i;if(li())(e=window.gameRetry)==null||e.call(window);else if(ns()){let n=window.NUC;(i=(t=n==null?void 0:n.trigger)==null?void 0:t.tryAgain)==null||i.call(t)}z("engagement",{action:"retry"})},pause(){Xi(!0)},resume(){Kn(!0)},resize(e,t){jt(e,t)}},pt=Xe;function jx(e){let t=2166136261;for(let i=0;i<e.length;i++)t^=e.charCodeAt(i),t=Math.imul(t,16777619);return t|0}function zx(e){let t=document.createElement("script");t.type="text/javascript",t.textContent=`
1677
+ `,document.head.appendChild(t)}setProgress(t){this.currentProgress=Math.max(0,Math.min(100,t)),this.progressBar.style.width=`${this.currentProgress}%`,this.progressText.textContent=`${Math.floor(this.currentProgress)}%`,this.authSeq.textContent=`Auth_Seq: 0x${Math.floor(this.currentProgress*2.55).toString(16).toUpperCase()} // System_Ready`}mount(t=document.body){t.appendChild(this.container)}unmount(){this.container.parentElement&&this.container.parentElement.removeChild(this.container)}getElement(){return this.container}};var jl=Sc.version,Rx=new Set(["init","boot","view","ready","start","pause","resume","complete","error","engagement","first_interaction","retry","cta_show","cta_click","cta_dismiss","clickout","conversion","session_time","level_time","load_time","level_start","level_complete","level_fail","checkpoint","reward","tutorial_start","tutorial_complete","tutorial_skip","ab_assign","fps","memory","asset_load_start","asset_load_complete"]);Ec();var ag={mechanic_id:"TODO_mechanic_id",variant_id:"TODO_variant_id",deployment_id:"TODO_deployment_id",export_id:"TODO_export_id",profile_id:"TODO_profile_id",instance_id:"default"},sg=Math.random().toString(36).slice(2),Wi=null,qi={...ag},og="web_embed",Fl={},Gn,zl=!1,qn=!1,Vn=!1,lg=!1,ql=1,Ia=0,ja=!1,ht=!1,Gi="",Vi=Math.floor(window.innerWidth),Yi=Math.floor(window.innerHeight),Hl=Vi>Yi,gt=!1,Wn=!1,Qh=!1,eg=!1,Bl=!1,Oa=null,ti=null,Ul=!1,$l=!1,Pa=new Map;function cg(){if(!ti)return null;let e=Date.now()-ti;return!Number.isFinite(e)||e<0?null:e}function Nl(e){if(Ul)return;let t=cg();t!==null&&(Ul=!0,z("session_time",{duration_ms:t,reason:e}))}function tg(){if(Wi)return Wi;let e=document.createElement("div");return e.id="handler-root",e.setAttribute("data-handler-root","true"),document.body.appendChild(e),Wi=e,e}function Da(e){switch(e){case"interaction":return"engagement";case"finish":return"complete";case"install":return"cta_click";default:return e}}function dg(e,t){return{event_name:e,ts:Date.now(),session_id:sg,deployment_id:qi.deployment_id,variant_id:qi.variant_id,export_profile_id:qi.profile_id,instance_id:qi.instance_id||"default",env:og==="mraid"?"mraid":"web",attribution:Gn,payload:t}}function z(e,t){let i=Da(e),n=dg(i,t);ns(n,!!Fl.analytics),dr(i,n),i!==e&&dr(e,n)}function Yn(){Oa&&(Oa(Vi,Yi),Oa=null)}function Ki(e){ql=e,z("volume",e)}function Xi(e){e&&(lg=!0),!Vn&&(Vn=!0,z("pause"),Ki(0))}function Kn(e){!e&&lg||Vn&&(Vn=!1,z("resume"),Ki(ql))}function jt(e,t){Vi=Math.floor(e||window.innerWidth),Yi=Math.floor(t||window.innerHeight),Hl=Vi>Yi,z("resize",{width:Vi,height:Yi})}function Mx(){if(jc())try{let e=mraid.getMaxSize();jt(e.width,e.height);let t=()=>{mraid.isViewable()&&mraid.getState()!=="hidden"?Kn():Xi()};if(mraid.addEventListener("viewableChange",t),mraid.addEventListener("stateChange",t),mraid.addEventListener("sizeChange",()=>{let i=mraid.getMaxSize();jt(i.width,i.height)}),mraid.getAudioVolume){let i=mraid.getAudioVolume();Ki(i?1:0)}if(mraid.addEventListener("audioVolumeChange",i=>{i!==null&&Ki(i>0?1:0)}),mraid.addEventListener("error",(i,n)=>{console.warn("mraid error:",i,"action:",n)}),ja=!0,mraid.isViewable()&&mraid.getState()!=="hidden")gt=!0,z("boot"),z("view"),z("ready"),ht=!0,Yn();else{let i=()=>{gt=!0,z("boot"),z("view"),z("ready"),ht=!0,Yn()};mraid.addEventListener("ready",i)}}catch(e){console.warn("MRAID hook skipped",e)}}function Px(){if(zc())try{let e=dapi.getScreenSize();jt(e.width,e.height),dapi.addEventListener("viewableChange",i=>{i.isViewable?Kn():Xi()}),dapi.addEventListener("adResized",i=>{let n=dapi.getScreenSize();jt(i.width||n.width,i.height||n.height)});let t=dapi.getAudioVolume();if(Ki(t?1:0),dapi.addEventListener("audioVolumeChange",i=>Ki(i?1:0)),ja=!0,dapi.isViewable())gt=!0,z("boot"),z("view"),z("ready"),ht=!0,Yn();else{let i=()=>{gt=!0,z("boot"),z("view"),z("ready"),ht=!0,Yn()};dapi.addEventListener("ready",i)}}catch(e){console.warn("DAPI hook skipped",e)}}function ig(){let e=()=>{gt||document.visibilityState==="visible"&&(document.readyState==="complete"||document.readyState==="interactive")&&(gt=!0,z("boot"),z("view"),z("ready"),ht=!0,Yn(),Wn&&(Wn=!1,Xe.start()))};window.addEventListener("resize",()=>jt()),document.addEventListener("visibilitychange",()=>{document.visibilityState==="visible"?(Kn(),e()):Xi()}),document.readyState==="complete"||document.readyState==="interactive"?e():window.addEventListener("load",e),ja=!0}function Ix(){let e=t=>{typeof TouchEvent!="undefined"&&t instanceof TouchEvent&&(Qh=!0),!(Qh&&t instanceof MouseEvent)&&(Ia+=1,$l||($l=!0,z("first_interaction",{count:Ia})),z("interaction",Ia))};document.addEventListener("mousedown",e),document.addEventListener("touchstart",e)}function ng(e){var n,r,a,s,o,c,l,d,u,p,f,g;let t=typeof AD_PROTOCOL!="undefined"?AD_PROTOCOL:"none";if((typeof AD_NETWORK!="undefined"?AD_NETWORK:"web_embed")==="google")try{(n=window.ExitApi)==null||n.exit();return}catch{}if(t==="mraid"&&typeof mraid!="undefined")mraid.open(e||"");else if(t==="dapi"&&typeof dapi!="undefined")dapi.openStoreUrl();else if(ci())(a=(r=window.TJ_API)==null?void 0:r.click)==null||a.call(r);else if(Bc())(o=(s=window.FbPlayableAd)==null?void 0:s.onCTAClick)==null||o.call(s);else if(Uc())(l=(c=window.ScPlayableAd)==null?void 0:c.onCTAClick)==null||l.call(c);else if(Hc())try{(u=(d=window.smxTracking)==null?void 0:d.redirect)==null||u.call(d)}catch(h){console.warn("Smadex redirect failed",h)}else if(Nc()){let h=window.ExitApi;h&&typeof h.exit=="function"?h.exit(e||Gi||""):e&&window.open(e)}else li()?(p=window.install)==null||p.call(window):Fc()?(f=window.openAppStore)==null||f.call(window):rs()?(g=parent==null?void 0:parent.postMessage)==null||g.call(parent,"download","*"):e&&window.open(e)}function Ox(){let e=typeof AD_NETWORK!="undefined"?AD_NETWORK:"web_embed",t=i=>{if(!i)return;let n=new Image;n.src=i};if(e==="bigabid"){let i=window.BIGABID_BIDTIMEMACROS;if(!i)return;_e("view",()=>t(i.mraid_viewable)),_e("start",()=>t(i.game_viewable)),_e("engagement",()=>t(i.engagement));let n=()=>t(i.complete);_e("complete",n),cr("engagement",r=>{var a;((a=r==null?void 0:r.payload)==null?void 0:a.count)>3&&n()}),_e("cta_click",()=>t(i.click))}else if(e==="inmobi"){let i=window.INMOBI_DSPMACROS;if(!i)return;_e("view",()=>t(i.Ad_Load_Start)),_e("start",()=>t(i.Ad_Viewable)),_e("engagement",()=>t(i.First_Engagement)),_e("complete",()=>t(i.Gameplay_Complete)),_e("cta_click",()=>t(i.DSP_Click)),_e("start",()=>{[5,10,15,20,25,30].forEach(n=>setTimeout(()=>t(i[`Spent_${n}_Seconds`]),n*1e3))})}}function Dx(){if(!ci())return;let e=window.TJ_API;e&&e.setPlayableAPI&&e.setPlayableAPI({skipAd:()=>{try{Xe.finish()}catch(t){console.warn("Tapjoy skip failed",t)}}})}function rg(){var t,i,n;let e=window.TJ_API;(t=e==null?void 0:e.objectiveComplete)==null||t.call(e),(i=e==null?void 0:e.playableFinished)==null||i.call(e),(n=e==null?void 0:e.gameplayFinished)==null||n.call(e)}function jx(){li()&&(window.mintGameStart=()=>{Kn(!0),jt()},window.mintGameClose=()=>{Xi(!0)})}function zx(){if(!as())return;let e=window.NUC;!e||!e.trigger||(Xe.on("cta_click",()=>{var t,i;return(i=(t=e.trigger).convert)==null?void 0:i.call(t,Gi)}),Xe.on("complete",()=>{var t,i;return(i=(t=e.trigger).tryAgain)==null?void 0:i.call(t)}))}var Xe={init(e={},t){var i;if(og=e.profile||"web_embed",Fl=e.consent||{},qi={...ag,...e.ids||{}},Wi=e.rootEl||Wi,Gn=void 0,mc((i=e.telemetry)!=null&&i.endpoint?e.telemetry:null),ti=null,Ul=!1,$l=!1,Pa.clear(),Gi=e.destinationUrl||(/android/i.test(navigator.userAgent)?"https://play.google.com/store":"https://www.apple.com/app-store/"),t&&(Oa=t),z("init"),document.body.oncontextmenu=()=>!1,tg(),Nx(Wi),$c(),Mx(),Px(),!ja){if(document.readyState==="complete")ig();else if(!eg){eg=!0;let n=()=>{ig(),window.removeEventListener("load",n),document.removeEventListener("DOMContentLoaded",n)};window.addEventListener("load",n),document.addEventListener("DOMContentLoaded",n)}}Ix(),Ox(),Dx(),jx(),zx(),console.log(`%c @handler/playable-sdk %c v${jl} `,"background: #007acc; color: #fff; font-size: 14px; padding: 4px 8px; border-top-left-radius: 4px; border-bottom-left-radius: 4px;","background: #e1e4e8; color: #333; font-size: 14px; padding: 4px 8px; border-top-right-radius: 4px; border-bottom-right-radius: 4px;"),gt&&!ht&&(z("boot"),z("view"),z("ready"),Wn&&(Wn=!1,Xe.start()),ht=!0),ht=gt},getRoot(){return tg()},get version(){return jl},get maxWidth(){return Vi},get maxHeight(){return Yi},get isLandscape(){return Hl},get isReady(){return ht},get isStarted(){return zl},get isPaused(){return Vn},get isFinished(){return qn},get volume(){return ql},get interactions(){return Ia},on(e,t){cr(Da(e),t)},off(e,t){is(Da(e),t)},start(){var e,t;if(!zl){if(!gt){Wn=!0;return}if(zl=!0,ti||(ti=Date.now()),z("start"),jt(),li())Xi(),(e=window.gameReady)==null||e.call(window);else if(ci()){let i=window.TJ_API;(t=i==null?void 0:i.setPlayableBuild)==null||t.call(i,{orientation:Hl?"landscape":"portrait",buildID:jl})}}},finish(){var e,t;qn||(qn=!0,z("complete"),Nl("complete"),li()?(e=window.gameEnd)==null||e.call(window):rs()?(t=parent==null?void 0:parent.postMessage)==null||t.call(parent,"complete","*"):ci()&&rg())},install(e){if(!qn){qn=!0,ci()?(rg(),setTimeout(()=>Xe.install(e),300)):(z("complete"),setTimeout(()=>Xe.install(e),0));return}Bl||(Bl=!0,setTimeout(()=>Bl=!1,500),z("cta_click"),z("conversion"),Nl("cta"),ng(e||Gi))},emit(e,t){let i=Da(e);if(!Rx.has(i)&&i!=="resize"&&i!=="volume"&&!i.startsWith("custom."))throw new Error(`Event ${e} must be canonical or namespaced as custom.<mechanic_id>.<event>`);let n=dg(i,t);ns(n,!!Fl.analytics),dr(i,n)},gameStart(){Xe.start()},gameEnd(){Xe.finish()},ctaClick(e,t){z("cta_click",{url:e||Gi,manual:!0}),(t==null?void 0:t.open)!==!1&&ng(e||Gi)},ctaShow(e){z("cta_show",e)},ctaDismiss(e){z("cta_dismiss",e)},getGameTimeMs(){return cg()},endSession(e="manual"){Nl(e)},setAttribution(e){Gn=e},abTest(e,t){if(!e)throw new Error("abTest requires experimentId");if(!Array.isArray(t)||t.length<2)throw new Error("abTest requires at least 2 variants");let i=Math.abs(Bx(`${sg}:${e}`))%t.length,n=t[i];return Gn={...Gn||{},experiment_id:e},qi.variant_id=n,z("ab_assign",{experiment_id:e,variant_id:n}),n},levelStart(e,t){ti||(ti=Date.now()),z("level_start",{level_id:e,...t})},levelComplete(e,t){z("level_complete",{level_id:e,...t})},levelFail(e,t){z("level_fail",{level_id:e,...t})},checkpoint(e,t){z("checkpoint",{checkpoint_id:e,...t})},reward(e,t){z("reward",{reward_id:e,...t})},tutorialStart(e,t){z("tutorial_start",{step_id:e,...t})},tutorialComplete(e,t){z("tutorial_complete",{step_id:e,...t})},tutorialSkip(e,t){z("tutorial_skip",{step_id:e,...t})},timerStart(e){e&&Pa.set(e,Date.now())},timerEnd(e,t="custom",i){if(!e)return;let n=Pa.get(e);if(!n)return;Pa.delete(e);let r=Date.now()-n;if(!(!Number.isFinite(r)||r<0)){if(t==="custom"){z("engagement",{action:"timer",key:e,duration_ms:r,...i});return}z(t,{key:e,duration_ms:r,...i})}},fps(e,t){z("fps",{value:e,...t})},memory(e,t){z("memory",{bytes:e,...t})},assetLoadStart(e,t){z("asset_load_start",{asset_id:e,...t})},assetLoadComplete(e,t){z("asset_load_complete",{asset_id:e,...t})},reportError(e,t,i){z("error",{code:e,message:t,...i})},retry(){var e,t,i;if(li())(e=window.gameRetry)==null||e.call(window);else if(as()){let n=window.NUC;(i=(t=n==null?void 0:n.trigger)==null?void 0:t.tryAgain)==null||i.call(t)}z("engagement",{action:"retry"})},pause(){Xi(!0)},resume(){Kn(!0)},resize(e,t){jt(e,t)}},pt=Xe;function Bx(e){let t=2166136261;for(let i=0;i<e.length;i++)t^=e.charCodeAt(i),t=Math.imul(t,16777619);return t|0}function Nx(e){let t=document.createElement("script");t.type="text/javascript",t.textContent=`
1633
1678
  (function(){
1634
1679
  var events = ['touchstart','touchend','mousedown','keydown'];
1635
1680
  function unlock(){
@@ -1645,7 +1690,7 @@ Style guidelines: ${n.summary}`;this.promptInput.value=r,this.currentPrompt=r}}c
1645
1690
  }
1646
1691
  events.forEach(function(e){ document.addEventListener(e, unlock, false); });
1647
1692
  })();
1648
- `,e.appendChild(t)}async function $l(e,t={}){let i=new Bx;await i.init({resizeTo:e,autoDensity:!0,resolution:window.devicePixelRatio||1,antialias:!0,backgroundAlpha:0});let n=s=>{var u,p,f,g;if(!i.renderer)return;let o=(u=s==null?void 0:s.width)!=null?u:e.clientWidth,c=(p=s==null?void 0:s.height)!=null?p:e.clientHeight,l=o&&o>0?o:(f=window.innerWidth)!=null?f:320,d=c&&c>0?c:(g=window.innerHeight)!=null?g:480;i.renderer.resize(l,d)};e.appendChild(i.canvas),e.style.position="relative",e.style.display="flex",e.style.flexDirection="column",e.style.alignItems="stretch",e.style.width="100%",e.style.height="100dvh",e.style.minHeight="100vh",e.style.maxWidth="100%",e.style.maxHeight="100%",e.style.boxSizing="border-box",e.style.overflow="hidden",t.background&&(e.style.background=t.background),n();let r=document.createElement("div");return r.setAttribute("style",["position:absolute","inset:0","display:flex","flex-direction:column","align-items:center","justify-content:flex-start","gap:12px","pointer-events:none","font-family:Arial,sans-serif","padding:20px 16px","padding-bottom:clamp(24px, 6vh, 96px)","box-sizing:border-box","z-index:2"].join(";")),e.appendChild(r),pt.on("pause",()=>{i.ticker.stop(),document.querySelectorAll("audio").forEach(o=>o.pause())}),pt.on("resume",()=>{i.ticker.start(),document.querySelectorAll("audio").forEach(o=>{o.currentTime>0&&!o.ended&&o.play().catch(()=>{})})}),pt.on("resize",({payload:s})=>{n({width:s==null?void 0:s.width,height:s==null?void 0:s.height})}),window.addEventListener("resize",()=>n()),requestAnimationFrame(()=>n()),new ResizeObserver(s=>{let o=s[0];if(o&&o.contentRect.width>0&&o.contentRect.height>0){let c=Math.round(o.contentRect.width),l=Math.round(o.contentRect.height);if(n({width:c,height:l}),typeof window!="undefined"&&window.gameApp&&window.gameObjectManager){let d={width:c,height:l,dpr:Math.max(1,Math.floor(window.devicePixelRatio||1)),presetId:"auto-resize",isLandscape:c>l};window.dispatchEvent(new CustomEvent("handler-preview:screen",{detail:d}))}}}).observe(e),{app:i,stage:i.stage,overlay:r,applySize:n}}import{BlurFilter as ql,Ticker as Zi,ColorMatrixFilter as Fx}from"pixi.js";var za=class{constructor(t){var r,a;let i=t==null?void 0:t.position,n=t==null?void 0:t.offset;this._basePosition={x:typeof(i==null?void 0:i.x)=="number"?i.x:0,y:typeof(i==null?void 0:i.y)=="number"?i.y:0},this._offset={x:typeof(n==null?void 0:n.x)=="number"?n.x:0,y:typeof(n==null?void 0:n.y)=="number"?n.y:0},this.position={x:this._basePosition.x+this._offset.x,y:this._basePosition.y+this._offset.y},this.scale=(r=t==null?void 0:t.scale)!=null?r:1,this.rotation=(a=t==null?void 0:t.rotation)!=null?a:0}update(t){let i=t.position,n=t.offset;i!==void 0&&(this._basePosition={x:typeof(i==null?void 0:i.x)=="number"?i.x:0,y:typeof(i==null?void 0:i.y)=="number"?i.y:0}),n!==void 0&&(this._offset={x:typeof(n==null?void 0:n.x)=="number"?n.x:0,y:typeof(n==null?void 0:n.y)=="number"?n.y:0}),(i!==void 0||n!==void 0)&&(this.position={x:this._basePosition.x+this._offset.x,y:this._basePosition.y+this._offset.y}),t.scale!==void 0&&(this.scale=t.scale),t.rotation!==void 0&&(this.rotation=t.rotation)}syncToPixi(t){t&&(t.position.set(this.position.x,this.position.y),t.scale.set(this.scale),t.rotation=this.rotation)}},Ba=class{constructor(t){var i,n,r,a;this.z_index=(i=t==null?void 0:t.z_index)!=null?i:0,this.alpha=(n=t==null?void 0:t.alpha)!=null?n:1,this.visible=(r=t==null?void 0:t.visible)!=null?r:!0,this.tint=(a=t==null?void 0:t.tint)!=null?a:null}update(t){t.z_index!==void 0&&(this.z_index=t.z_index),t.alpha!==void 0&&(this.alpha=t.alpha),t.visible!==void 0&&(this.visible=t.visible),t.tint!==void 0&&(this.tint=t.tint)}syncToPixi(t,i){if(!t)return;if(t.zIndex=this.z_index,i!=null&&i.startsWith("ui_endgame_")||(t.alpha=this.alpha),t.visible=this.visible,this.tint!==null&&"tint"in t&&(t.tint=this.tint),i&&"texture"in t)try{let{AssetTextures:r}=Ne("handler-playable-sdk/pixi");if(r&&r[i]){let a=r[i];a&&(t.texture=a)}}catch{}}},Fa=class{constructor(t,i,n,r){this._tickerCleanup=null;this.onRebuildRequired=null;this.instanceId=t,this.objectConfig=i,this.pixiObject=n,this._config=r,this.transform=new za(r.transform),this.renderer=new Ba(r.render),this.sync()}sync(){this.transform.syncToPixi(this.pixiObject),this.renderer.syncToPixi(this.pixiObject,this.instanceId),this.applyAnchor(),this.applyEffectsScale(),this.applyEffects(),this.syncTextProperties(),(!this._initialized||this._shouldReplayIntro)&&(this.applyIntro(),this._initialized=!0,this._shouldReplayIntro=!1),this.applyMotion()}syncTextProperties(){var i;if(!this.pixiObject||!("text"in this.pixiObject))return;let t=(i=this._config)==null?void 0:i.ui;t&&(t.text!==void 0&&this.pixiObject.text!==t.text&&(this.pixiObject.text=t.text),this.pixiObject.style&&(t.fontSize!==void 0&&(this.pixiObject.style.fontSize=t.fontSize),t.color!==void 0&&(this.pixiObject.style.fill=t.color),t.align!==void 0&&(this.pixiObject.style.align=t.align)))}destroy(){this._tickerCleanup&&(this._tickerCleanup(),this._tickerCleanup=null),this._introTicker&&(Zi.shared.remove(this._introTicker),this._introTicker=null),this.pixiObject&&this.pixiObject.parent&&this.pixiObject.parent.removeChild(this.pixiObject)}updateConfig(t){var c,l,d,u,p,f,g,h,m,b,v;let i=(l=(c=this._config)==null?void 0:c.motion)==null?void 0:l.intro,n=(d=t==null?void 0:t.motion)==null?void 0:d.intro;n!=null&&n.enabled&&JSON.stringify(i)!==JSON.stringify(n)&&(this._shouldReplayIntro=!0);let r=(f=(p=(u=this._config)==null?void 0:u.render)==null?void 0:p.asset)==null?void 0:f.type,a=(h=(g=t==null?void 0:t.render)==null?void 0:g.asset)==null?void 0:h.type,s=(b=(m=this._config)==null?void 0:m.ui)==null?void 0:b.renderMode,o=(v=t==null?void 0:t.ui)==null?void 0:v.renderMode;if((r!==a||s!==o)&&(console.log(`[GameObject] Rebuild required for ${this.instanceId}: type changed from ${r}/${s} to ${a}/${o}`),this.onRebuildRequired)){this.onRebuildRequired(this,t);return}this._config=t,t.transform&&this.transform.update(t.transform),t.render&&this.renderer.update(t.render),this.sync()}applyAnchor(){var r,a,s,o;if(!this.pixiObject||!("anchor"in this.pixiObject)||!this.pixiObject.anchor)return;let t=(a=(r=this._config)==null?void 0:r.render)==null?void 0:a.anchor,i=(o=(s=this._config)==null?void 0:s.transform)==null?void 0:o.anchor,n=t&&typeof t=="object"?t:i&&typeof i=="object"?i:null;n&&typeof n.x=="number"&&typeof n.y=="number"&&this.pixiObject.anchor.set(n.x,n.y)}applyEffectsScale(){var a,s,o;if(!((a=this.pixiObject)!=null&&a.scale))return;let t=(s=this._config)==null?void 0:s.effects,i=typeof(t==null?void 0:t.scale_x)=="number"?t.scale_x:1,n=typeof(t==null?void 0:t.scale_y)=="number"?t.scale_y:1;if(i===1&&n===1)return;let r=(o=this.transform.scale)!=null?o:1;typeof this.pixiObject.scale.set=="function"?this.pixiObject.scale.set(r*i,r*n):(this.pixiObject.scale.x=r*i,this.pixiObject.scale.y=r*n)}applyEffects(){var n,r,a,s,o,c,l,d,u;if(!this.pixiObject)return;let t=(n=this._config)==null?void 0:n.effects;if(!t||t.enabled===!1){this.pixiObject.filters=null;return}let i=[];if((r=t.blur)!=null&&r.enabled){let p=new ql;p.blur=(a=t.blur.strength)!=null?a:4,i.push(p)}if((s=t.shadow)!=null&&s.enabled){let p=t.shadow,f=new ql;f.blur=(o=p.blur)!=null?o:4,f.blendMode="multiply",i.push(f),(p.offsetX!==0||p.offsetY!==0)&&console.warn("[Effects] Drop shadow offset requires pixi-filters. Install: npm install pixi-filters")}if((c=t.glow)!=null&&c.enabled){let p=t.glow,f=new ql;if(f.blur=(l=p.blur)!=null?l:8,i.push(f),p.color){let g=new Fx,h=typeof p.color=="string"?parseInt(p.color.replace("#",""),16):p.color;g.tint(h),i.push(g)}}(d=t.stroke)!=null&&d.enabled&&console.warn("[Effects] Stroke/outline effect requires pixi-filters. Install: npm install pixi-filters"),(u=t.distortion)!=null&&u.enabled&&console.warn("[Effects] Distortion effect requires pixi-filters or a displacement map. Install: npm install pixi-filters"),this.pixiObject.filters=i.length>0?i:null}applyIntro(){var d,u,p,f,g,h,m;let t=(d=this._config)==null?void 0:d.motion;if(!t||!((u=t.intro)!=null&&u.enabled)||!this.pixiObject)return;let i=t.intro,n=(i.duration||0)/1e3,r=(i.delay||0)/1e3,a=this.transform.position.y,s=this.transform.scale*(((f=(p=this._config)==null?void 0:p.effects)==null?void 0:f.scale_x)||1),o=this.transform.scale*(((h=(g=this._config)==null?void 0:g.effects)==null?void 0:h.scale_y)||1);if(this.pixiObject.alpha=(m=i.startAlpha)!=null?m:0,i.startScale!==void 0&&this.pixiObject.scale.set(s*i.startScale,o*i.startScale),i.startYOffset!==void 0&&(this.pixiObject.y=a+(i.startYOffset||0)),this._introTicker&&Zi.shared.remove(this._introTicker),n<=0&&r<=0){this.pixiObject.alpha=this.renderer.alpha,this.pixiObject.y=this.transform.position.y,this.pixiObject.scale.set(s,o);return}let c=0,l=b=>{var k,I,_,C,R,M;if(c+=b.deltaTime/60,c<r)return;let v=n>0?Math.min(1,(c-r)/n):1,y=1-Math.pow(1-v,3),x=this.renderer.alpha,w=this.transform.scale*(((I=(k=this._config)==null?void 0:k.effects)==null?void 0:I.scale_x)||1),E=this.transform.scale*(((C=(_=this._config)==null?void 0:_.effects)==null?void 0:C.scale_y)||1),A=this.transform.position.y,S=this.transform.position.x;if(this.pixiObject.alpha=((R=i.startAlpha)!=null?R:0)+(x-((M=i.startAlpha)!=null?M:0))*y,i.startScale!==void 0){let O=i.startScale+(1-i.startScale)*y;this.pixiObject.scale.set(w*O,E*O)}i.startYOffset!==void 0&&(this.pixiObject.y=A+i.startYOffset+(A-(A+i.startYOffset))*y),v>=1&&(Zi.shared.remove(l),this._introTicker=null,this.pixiObject.alpha=x,this.pixiObject.x=S,this.pixiObject.y=A,this.pixiObject.scale.set(w,E))};this._introTicker=l,Zi.shared.add(l)}applyMotion(){var r,a,s;let t=(r=this._config)==null?void 0:r.motion,i=t&&t.enabled!==!1,n=JSON.stringify(t);if(!(this._lastMotionStr===n&&this._tickerCleanup)){if(this._lastMotionStr=n,!i){this._tickerCleanup&&(this._tickerCleanup(),this._tickerCleanup=null);return}if(this._tickerCleanup&&this._tickerCleanup(),(a=t.pulse)!=null&&a.enabled||(s=t.swing)!=null&&s.enabled){let o=0,c=l=>{var h,m,b,v,y,x,w,E,A,S,k;o+=l.deltaTime*.05;let d=this.transform.scale,u=d*(((m=(h=this._config)==null?void 0:h.effects)==null?void 0:m.scale_x)||1),p=d*(((v=(b=this._config)==null?void 0:b.effects)==null?void 0:v.scale_y)||1),f=this.transform.position.x,g=this.transform.position.y;if((y=t.pulse)!=null&&y.enabled){let I=(x=t.pulse.intensity)!=null?x:.1,_=(w=t.pulse.speed)!=null?w:1,R=1+Math.sin(o*_)*I;(E=this.pixiObject.scale)!=null&&E.set?this.pixiObject.scale.set(u*R,p*R):this.pixiObject.scale&&(this.pixiObject.scale.x=u*R,this.pixiObject.scale.y=p*R)}if((A=t.swing)!=null&&A.enabled){let I=(S=t.swing.amplitude)!=null?S:10,_=(k=t.swing.speed)!=null?k:1,C=Math.sin(o*_)*I;t.swing.axis==="vertical"?this.pixiObject.y=g+C:t.swing.axis==="both"?(this.pixiObject.x=f+C,this.pixiObject.y=g+C):this.pixiObject.x=f+C}};Zi.shared.add(c),this._tickerCleanup=()=>{var l,d,u,p,f;if(Zi.shared.remove(c),this.pixiObject){let g=this.transform.scale*(((d=(l=this._config)==null?void 0:l.effects)==null?void 0:d.scale_x)||1),h=this.transform.scale*(((p=(u=this._config)==null?void 0:u.effects)==null?void 0:p.scale_y)||1);this.pixiObject.x=this.transform.position.x,this.pixiObject.y=this.transform.position.y,(f=this.pixiObject.scale)!=null&&f.set?this.pixiObject.scale.set(g,h):this.pixiObject.scale&&(this.pixiObject.scale.x=g,this.pixiObject.scale.y=h)}}}}}getComponent(t){return this._config[t]}getPosition(){return{...this.transform.position}}setPosition(t,i){this.transform.position={x:t,y:i},this.transform.syncToPixi(this.pixiObject)}getAlpha(){return this.renderer.alpha}setAlpha(t){this.renderer.alpha=t,this.renderer.syncToPixi(this.pixiObject)}getVisible(){return this.renderer.visible}setVisible(t){this.renderer.visible=t,this.renderer.syncToPixi(this.pixiObject)}},Xn=class{constructor(t){this.objects=new Map;this.onObjectRebuildRequired=null;this.config=t}create(t,i){let n=this.config.objects.get(t);if(!n)throw new Error(`Object config not found: ${t}`);let r=new Fa(t,n.object_config||t,i,n);return this.objects.set(t,r),r.onRebuildRequired=async(a,s)=>{if(this.onObjectRebuildRequired){console.log(`[GameObjectManager] Triggering rebuild for ${t}`);let o=await this.onObjectRebuildRequired(t,s);o&&this.objects.get(t)===o&&console.log(`[GameObjectManager] \u2705 Rebuilt ${t} successfully`)}else console.warn(`[GameObjectManager] Rebuild required for ${t} but no factory provided`),a.updateConfig(s)},r}get(t){return this.objects.get(t)}updateConfig(t){this.config=t;for(let[i,n]of this.objects.entries()){let r=t.objects.get(i);r&&n.updateConfig(r)}}getAll(){return Array.from(this.objects.values())}remove(t){let i=this.objects.get(t);i&&i.destroy(),this.objects.delete(t)}clear(){for(let t of this.objects.values())t.destroy();this.objects.clear()}};var Na={"brand.primary":{family:"Arial, sans-serif",weight:"400"},"brand.warning":{family:"Arial Black, Arial, sans-serif",weight:"900"},"brand.heading":{family:"Arial Black, Arial, sans-serif",weight:"800"},"brand.body":{family:"Arial, sans-serif",weight:"400"}};function Nx(e){let t=Na[e];return t?t.family:(console.warn(`Font ID "${e}" not found in registry, using fallback`),"Arial, sans-serif")}function Hx(e){var i;let t=Na[e];return t&&(i=t.weight)!=null?i:"400"}function Ux(e,t){Na[e]=t}function $x(){return Object.keys(Na)}var Ji=null;function qx(){return console.log("[LottieOverlay] getLottie called, lottieLib cached?",!!Ji),console.log("[LottieOverlay] window.lottie exists?",typeof window!="undefined"&&!!window.lottie),Ji||(typeof window!="undefined"&&window.lottie?(Ji=window.lottie,console.log("[LottieOverlay] \u2705 Found window.lottie, cached it")):(console.warn("[LottieOverlay] \u274C lottie-web is not available globally. Make sure it is loaded before using Lottie animations."),console.log("[LottieOverlay] window keys:",typeof window!="undefined"?Object.keys(window).filter(e=>e.toLowerCase().includes("lottie")):"no window"),Ji=null)),Ji}function Gx(e){return!e||e.startsWith("http://")||e.startsWith("https://")||e.startsWith("/")?e:`/${e.replace(/^\.\//,"")}`}function Wx(e){try{let t=new XMLHttpRequest;return t.open("GET",Gx(e),!1),t.send(null),t.status<200||t.status>=300||!t.responseText?null:JSON.parse(t.responseText)}catch{return null}}function cg(e){return!e||typeof e!="object"||!Array.isArray(e.layers)?null:(Array.isArray(e.assets)||(e.assets=[]),Array.isArray(e.chars)||(e.chars=[]),e)}function Ml(e){Ji=e}function Yx(e,t,i,n){var E,A,S,k,I,_,C,R,M,O,T,j,L,D,$,ue,V,se,oe;let r=i.objects.get(e);if(!r)return console.warn(`[LottieOverlay] Object config not found: ${e}`),null;let a=((E=r.effects)==null?void 0:E.lottie)||{},s=r.transform||{},o=r.render||{};if(a.enabled===!1||o.visible===!1)return null;let c=n==null?void 0:n[e],l=cg(c);if(!l){let be=(S=(A=r.render)==null?void 0:A.asset)==null?void 0:S.path;if(typeof be=="string"&&be.toLowerCase().endsWith(".json")){let bt=Wx(be);if(l=cg(bt),l)try{n[e]=l}catch{}}}if(!l){let be=c&&typeof c=="object"?Object.prototype.toString.call(c):typeof c;return console.warn(`[LottieOverlay] Lottie JSON invalid for: ${e}`,{kind:be}),null}let d=qx();if(!d)return console.warn(`[LottieOverlay] lottie-web is not available. Cannot play animation: ${e}`),null;let u=(k=a.width)!=null?k:300,p=(I=a.height)!=null?I:300,f=(_=s.scale)!=null?_:1,g=((R=(C=s.position)==null?void 0:C.x)!=null?R:0)+((O=(M=s.offset)==null?void 0:M.x)!=null?O:0),h=((j=(T=s.position)==null?void 0:T.y)!=null?j:0)+((D=(L=s.offset)==null?void 0:L.y)!=null?D:0),m=($=s.rotation)!=null?$:0,b=(ue=o.z_index)!=null?ue:100,v=(V=o.alpha)!=null?V:1,y=document.createElement("div");y.style.cssText=`
1693
+ `,e.appendChild(t)}async function Gl(e,t={}){let i=new Fx;await i.init({resizeTo:e,autoDensity:!0,resolution:window.devicePixelRatio||1,antialias:!0,backgroundAlpha:0});let n=s=>{var u,p,f,g;if(!i.renderer)return;let o=(u=s==null?void 0:s.width)!=null?u:e.clientWidth,c=(p=s==null?void 0:s.height)!=null?p:e.clientHeight,l=o&&o>0?o:(f=window.innerWidth)!=null?f:320,d=c&&c>0?c:(g=window.innerHeight)!=null?g:480;i.renderer.resize(l,d)};e.appendChild(i.canvas),e.style.position="relative",e.style.display="flex",e.style.flexDirection="column",e.style.alignItems="stretch",e.style.width="100%",e.style.height="100dvh",e.style.minHeight="100vh",e.style.maxWidth="100%",e.style.maxHeight="100%",e.style.boxSizing="border-box",e.style.overflow="hidden",t.background&&(e.style.background=t.background),n();let r=document.createElement("div");return r.setAttribute("style",["position:absolute","inset:0","display:flex","flex-direction:column","align-items:center","justify-content:flex-start","gap:12px","pointer-events:none","font-family:Arial,sans-serif","padding:20px 16px","padding-bottom:clamp(24px, 6vh, 96px)","box-sizing:border-box","z-index:2"].join(";")),e.appendChild(r),pt.on("pause",()=>{i.ticker.stop(),document.querySelectorAll("audio").forEach(o=>o.pause())}),pt.on("resume",()=>{i.ticker.start(),document.querySelectorAll("audio").forEach(o=>{o.currentTime>0&&!o.ended&&o.play().catch(()=>{})})}),pt.on("resize",({payload:s})=>{n({width:s==null?void 0:s.width,height:s==null?void 0:s.height})}),window.addEventListener("resize",()=>n()),requestAnimationFrame(()=>n()),new ResizeObserver(s=>{let o=s[0];if(o&&o.contentRect.width>0&&o.contentRect.height>0){let c=Math.round(o.contentRect.width),l=Math.round(o.contentRect.height);if(n({width:c,height:l}),typeof window!="undefined"&&window.gameApp&&window.gameObjectManager){let d={width:c,height:l,dpr:Math.max(1,Math.floor(window.devicePixelRatio||1)),presetId:"auto-resize",isLandscape:c>l};window.dispatchEvent(new CustomEvent("handler-preview:screen",{detail:d}))}}}).observe(e),{app:i,stage:i.stage,overlay:r,applySize:n}}import{BlurFilter as Wl,Ticker as Zi,ColorMatrixFilter as Hx}from"pixi.js";var za=class{constructor(t){var r,a;let i=t==null?void 0:t.position,n=t==null?void 0:t.offset;this._basePosition={x:typeof(i==null?void 0:i.x)=="number"?i.x:0,y:typeof(i==null?void 0:i.y)=="number"?i.y:0},this._offset={x:typeof(n==null?void 0:n.x)=="number"?n.x:0,y:typeof(n==null?void 0:n.y)=="number"?n.y:0},this.position={x:this._basePosition.x+this._offset.x,y:this._basePosition.y+this._offset.y},this.scale=(r=t==null?void 0:t.scale)!=null?r:1,this.rotation=(a=t==null?void 0:t.rotation)!=null?a:0}update(t){let i=t.position,n=t.offset;i!==void 0&&(this._basePosition={x:typeof(i==null?void 0:i.x)=="number"?i.x:0,y:typeof(i==null?void 0:i.y)=="number"?i.y:0}),n!==void 0&&(this._offset={x:typeof(n==null?void 0:n.x)=="number"?n.x:0,y:typeof(n==null?void 0:n.y)=="number"?n.y:0}),(i!==void 0||n!==void 0)&&(this.position={x:this._basePosition.x+this._offset.x,y:this._basePosition.y+this._offset.y}),t.scale!==void 0&&(this.scale=t.scale),t.rotation!==void 0&&(this.rotation=t.rotation)}syncToPixi(t){t&&(t.position.set(this.position.x,this.position.y),t.scale.set(this.scale),t.rotation=this.rotation)}},Ba=class{constructor(t){var i,n,r,a;this.z_index=(i=t==null?void 0:t.z_index)!=null?i:0,this.alpha=(n=t==null?void 0:t.alpha)!=null?n:1,this.visible=(r=t==null?void 0:t.visible)!=null?r:!0,this.tint=(a=t==null?void 0:t.tint)!=null?a:null}update(t){t.z_index!==void 0&&(this.z_index=t.z_index),t.alpha!==void 0&&(this.alpha=t.alpha),t.visible!==void 0&&(this.visible=t.visible),t.tint!==void 0&&(this.tint=t.tint)}syncToPixi(t,i){if(!t)return;if(t.zIndex=this.z_index,i!=null&&i.startsWith("ui_endgame_")||(t.alpha=this.alpha),t.visible=this.visible,this.tint!==null&&"tint"in t&&(t.tint=this.tint),i&&"texture"in t)try{let{AssetTextures:r}=Fe("handler-playable-sdk/pixi");if(r&&r[i]){let a=r[i];a&&(t.texture=a)}}catch{}}},Na=class{constructor(t,i,n,r){this._tickerCleanup=null;this.onRebuildRequired=null;this.instanceId=t,this.objectConfig=i,this.pixiObject=n,this._config=r,this.transform=new za(r.transform),this.renderer=new Ba(r.render),this.sync()}sync(){this.transform.syncToPixi(this.pixiObject),this.renderer.syncToPixi(this.pixiObject,this.instanceId),this.applyAnchor(),this.applyEffectsScale(),this.applyEffects(),this.syncTextProperties(),(!this._initialized||this._shouldReplayIntro)&&(this.applyIntro(),this._initialized=!0,this._shouldReplayIntro=!1),this.applyMotion()}syncTextProperties(){var i;if(!this.pixiObject||!("text"in this.pixiObject))return;let t=(i=this._config)==null?void 0:i.ui;t&&(t.text!==void 0&&this.pixiObject.text!==t.text&&(this.pixiObject.text=t.text),this.pixiObject.style&&(t.fontSize!==void 0&&(this.pixiObject.style.fontSize=t.fontSize),t.color!==void 0&&(this.pixiObject.style.fill=t.color),t.align!==void 0&&(this.pixiObject.style.align=t.align)))}destroy(){this._tickerCleanup&&(this._tickerCleanup(),this._tickerCleanup=null),this._introTicker&&(Zi.shared.remove(this._introTicker),this._introTicker=null),this.pixiObject&&this.pixiObject.parent&&this.pixiObject.parent.removeChild(this.pixiObject)}updateConfig(t){var c,l,d,u,p,f,g,h,m,b,v;let i=(l=(c=this._config)==null?void 0:c.motion)==null?void 0:l.intro,n=(d=t==null?void 0:t.motion)==null?void 0:d.intro;n!=null&&n.enabled&&JSON.stringify(i)!==JSON.stringify(n)&&(this._shouldReplayIntro=!0);let r=(f=(p=(u=this._config)==null?void 0:u.render)==null?void 0:p.asset)==null?void 0:f.type,a=(h=(g=t==null?void 0:t.render)==null?void 0:g.asset)==null?void 0:h.type,s=(b=(m=this._config)==null?void 0:m.ui)==null?void 0:b.renderMode,o=(v=t==null?void 0:t.ui)==null?void 0:v.renderMode;if((r!==a||s!==o)&&(console.log(`[GameObject] Rebuild required for ${this.instanceId}: type changed from ${r}/${s} to ${a}/${o}`),this.onRebuildRequired)){this.onRebuildRequired(this,t);return}this._config=t,t.transform&&this.transform.update(t.transform),t.render&&this.renderer.update(t.render),this.sync()}applyAnchor(){var r,a,s,o;if(!this.pixiObject||!("anchor"in this.pixiObject)||!this.pixiObject.anchor)return;let t=(a=(r=this._config)==null?void 0:r.render)==null?void 0:a.anchor,i=(o=(s=this._config)==null?void 0:s.transform)==null?void 0:o.anchor,n=t&&typeof t=="object"?t:i&&typeof i=="object"?i:null;n&&typeof n.x=="number"&&typeof n.y=="number"&&this.pixiObject.anchor.set(n.x,n.y)}applyEffectsScale(){var a,s,o;if(!((a=this.pixiObject)!=null&&a.scale))return;let t=(s=this._config)==null?void 0:s.effects,i=typeof(t==null?void 0:t.scale_x)=="number"?t.scale_x:1,n=typeof(t==null?void 0:t.scale_y)=="number"?t.scale_y:1;if(i===1&&n===1)return;let r=(o=this.transform.scale)!=null?o:1;typeof this.pixiObject.scale.set=="function"?this.pixiObject.scale.set(r*i,r*n):(this.pixiObject.scale.x=r*i,this.pixiObject.scale.y=r*n)}applyEffects(){var n,r,a,s,o,c,l,d,u;if(!this.pixiObject)return;let t=(n=this._config)==null?void 0:n.effects;if(!t||t.enabled===!1){this.pixiObject.filters=null;return}let i=[];if((r=t.blur)!=null&&r.enabled){let p=new Wl;p.blur=(a=t.blur.strength)!=null?a:4,i.push(p)}if((s=t.shadow)!=null&&s.enabled){let p=t.shadow,f=new Wl;f.blur=(o=p.blur)!=null?o:4,f.blendMode="multiply",i.push(f),(p.offsetX!==0||p.offsetY!==0)&&console.warn("[Effects] Drop shadow offset requires pixi-filters. Install: npm install pixi-filters")}if((c=t.glow)!=null&&c.enabled){let p=t.glow,f=new Wl;if(f.blur=(l=p.blur)!=null?l:8,i.push(f),p.color){let g=new Hx,h=typeof p.color=="string"?parseInt(p.color.replace("#",""),16):p.color;g.tint(h),i.push(g)}}(d=t.stroke)!=null&&d.enabled&&console.warn("[Effects] Stroke/outline effect requires pixi-filters. Install: npm install pixi-filters"),(u=t.distortion)!=null&&u.enabled&&console.warn("[Effects] Distortion effect requires pixi-filters or a displacement map. Install: npm install pixi-filters"),this.pixiObject.filters=i.length>0?i:null}applyIntro(){var d,u,p,f,g,h,m;let t=(d=this._config)==null?void 0:d.motion;if(!t||!((u=t.intro)!=null&&u.enabled)||!this.pixiObject)return;let i=t.intro,n=(i.duration||0)/1e3,r=(i.delay||0)/1e3,a=this.transform.position.y,s=this.transform.scale*(((f=(p=this._config)==null?void 0:p.effects)==null?void 0:f.scale_x)||1),o=this.transform.scale*(((h=(g=this._config)==null?void 0:g.effects)==null?void 0:h.scale_y)||1);if(this.pixiObject.alpha=(m=i.startAlpha)!=null?m:0,i.startScale!==void 0&&this.pixiObject.scale.set(s*i.startScale,o*i.startScale),i.startYOffset!==void 0&&(this.pixiObject.y=a+(i.startYOffset||0)),this._introTicker&&Zi.shared.remove(this._introTicker),n<=0&&r<=0){this.pixiObject.alpha=this.renderer.alpha,this.pixiObject.y=this.transform.position.y,this.pixiObject.scale.set(s,o);return}let c=0,l=b=>{var k,I,_,C,R,M;if(c+=b.deltaTime/60,c<r)return;let v=n>0?Math.min(1,(c-r)/n):1,y=1-Math.pow(1-v,3),x=this.renderer.alpha,w=this.transform.scale*(((I=(k=this._config)==null?void 0:k.effects)==null?void 0:I.scale_x)||1),E=this.transform.scale*(((C=(_=this._config)==null?void 0:_.effects)==null?void 0:C.scale_y)||1),A=this.transform.position.y,S=this.transform.position.x;if(this.pixiObject.alpha=((R=i.startAlpha)!=null?R:0)+(x-((M=i.startAlpha)!=null?M:0))*y,i.startScale!==void 0){let O=i.startScale+(1-i.startScale)*y;this.pixiObject.scale.set(w*O,E*O)}i.startYOffset!==void 0&&(this.pixiObject.y=A+i.startYOffset+(A-(A+i.startYOffset))*y),v>=1&&(Zi.shared.remove(l),this._introTicker=null,this.pixiObject.alpha=x,this.pixiObject.x=S,this.pixiObject.y=A,this.pixiObject.scale.set(w,E))};this._introTicker=l,Zi.shared.add(l)}applyMotion(){var r,a,s;let t=(r=this._config)==null?void 0:r.motion,i=t&&t.enabled!==!1,n=JSON.stringify(t);if(!(this._lastMotionStr===n&&this._tickerCleanup)){if(this._lastMotionStr=n,!i){this._tickerCleanup&&(this._tickerCleanup(),this._tickerCleanup=null);return}if(this._tickerCleanup&&this._tickerCleanup(),(a=t.pulse)!=null&&a.enabled||(s=t.swing)!=null&&s.enabled){let o=0,c=l=>{var h,m,b,v,y,x,w,E,A,S,k;o+=l.deltaTime*.05;let d=this.transform.scale,u=d*(((m=(h=this._config)==null?void 0:h.effects)==null?void 0:m.scale_x)||1),p=d*(((v=(b=this._config)==null?void 0:b.effects)==null?void 0:v.scale_y)||1),f=this.transform.position.x,g=this.transform.position.y;if((y=t.pulse)!=null&&y.enabled){let I=(x=t.pulse.intensity)!=null?x:.1,_=(w=t.pulse.speed)!=null?w:1,R=1+Math.sin(o*_)*I;(E=this.pixiObject.scale)!=null&&E.set?this.pixiObject.scale.set(u*R,p*R):this.pixiObject.scale&&(this.pixiObject.scale.x=u*R,this.pixiObject.scale.y=p*R)}if((A=t.swing)!=null&&A.enabled){let I=(S=t.swing.amplitude)!=null?S:10,_=(k=t.swing.speed)!=null?k:1,C=Math.sin(o*_)*I;t.swing.axis==="vertical"?this.pixiObject.y=g+C:t.swing.axis==="both"?(this.pixiObject.x=f+C,this.pixiObject.y=g+C):this.pixiObject.x=f+C}};Zi.shared.add(c),this._tickerCleanup=()=>{var l,d,u,p,f;if(Zi.shared.remove(c),this.pixiObject){let g=this.transform.scale*(((d=(l=this._config)==null?void 0:l.effects)==null?void 0:d.scale_x)||1),h=this.transform.scale*(((p=(u=this._config)==null?void 0:u.effects)==null?void 0:p.scale_y)||1);this.pixiObject.x=this.transform.position.x,this.pixiObject.y=this.transform.position.y,(f=this.pixiObject.scale)!=null&&f.set?this.pixiObject.scale.set(g,h):this.pixiObject.scale&&(this.pixiObject.scale.x=g,this.pixiObject.scale.y=h)}}}}}getComponent(t){return this._config[t]}getPosition(){return{...this.transform.position}}setPosition(t,i){this.transform.position={x:t,y:i},this.transform.syncToPixi(this.pixiObject)}getAlpha(){return this.renderer.alpha}setAlpha(t){this.renderer.alpha=t,this.renderer.syncToPixi(this.pixiObject)}getVisible(){return this.renderer.visible}setVisible(t){this.renderer.visible=t,this.renderer.syncToPixi(this.pixiObject)}},Xn=class{constructor(t){this.objects=new Map;this.onObjectRebuildRequired=null;this.config=t}create(t,i){let n=this.config.objects.get(t);if(!n)throw new Error(`Object config not found: ${t}`);let r=new Na(t,n.object_config||t,i,n);return this.objects.set(t,r),r.onRebuildRequired=async(a,s)=>{if(this.onObjectRebuildRequired){console.log(`[GameObjectManager] Triggering rebuild for ${t}`);let o=await this.onObjectRebuildRequired(t,s);o&&this.objects.get(t)===o&&console.log(`[GameObjectManager] \u2705 Rebuilt ${t} successfully`)}else console.warn(`[GameObjectManager] Rebuild required for ${t} but no factory provided`),a.updateConfig(s)},r}get(t){return this.objects.get(t)}updateConfig(t){this.config=t;for(let[i,n]of this.objects.entries()){let r=t.objects.get(i);r&&n.updateConfig(r)}}getAll(){return Array.from(this.objects.values())}remove(t){let i=this.objects.get(t);i&&i.destroy(),this.objects.delete(t)}clear(){for(let t of this.objects.values())t.destroy();this.objects.clear()}};var Fa={"brand.primary":{family:"Arial, sans-serif",weight:"400"},"brand.warning":{family:"Arial Black, Arial, sans-serif",weight:"900"},"brand.heading":{family:"Arial Black, Arial, sans-serif",weight:"800"},"brand.body":{family:"Arial, sans-serif",weight:"400"}};function Ux(e){let t=Fa[e];return t?t.family:(console.warn(`Font ID "${e}" not found in registry, using fallback`),"Arial, sans-serif")}function $x(e){var i;let t=Fa[e];return t&&(i=t.weight)!=null?i:"400"}function qx(e,t){Fa[e]=t}function Gx(){return Object.keys(Fa)}var Ji=null;function Wx(){return console.log("[LottieOverlay] getLottie called, lottieLib cached?",!!Ji),console.log("[LottieOverlay] window.lottie exists?",typeof window!="undefined"&&!!window.lottie),Ji||(typeof window!="undefined"&&window.lottie?(Ji=window.lottie,console.log("[LottieOverlay] \u2705 Found window.lottie, cached it")):(console.warn("[LottieOverlay] \u274C lottie-web is not available globally. Make sure it is loaded before using Lottie animations."),console.log("[LottieOverlay] window keys:",typeof window!="undefined"?Object.keys(window).filter(e=>e.toLowerCase().includes("lottie")):"no window"),Ji=null)),Ji}function Vx(e){return!e||e.startsWith("http://")||e.startsWith("https://")||e.startsWith("/")?e:`/${e.replace(/^\.\//,"")}`}function Yx(e){try{let t=new XMLHttpRequest;return t.open("GET",Vx(e),!1),t.send(null),t.status<200||t.status>=300||!t.responseText?null:JSON.parse(t.responseText)}catch{return null}}function ug(e){return!e||typeof e!="object"||!Array.isArray(e.layers)?null:(Array.isArray(e.assets)||(e.assets=[]),Array.isArray(e.chars)||(e.chars=[]),e)}function Il(e){Ji=e}function Kx(e,t,i,n){var E,A,S,k,I,_,C,R,M,O,T,j,L,D,$,ue,Y,se,oe;let r=i.objects.get(e);if(!r)return console.warn(`[LottieOverlay] Object config not found: ${e}`),null;let a=((E=r.effects)==null?void 0:E.lottie)||{},s=r.transform||{},o=r.render||{};if(a.enabled===!1||o.visible===!1)return null;let c=n==null?void 0:n[e],l=ug(c);if(!l){let be=(S=(A=r.render)==null?void 0:A.asset)==null?void 0:S.path;if(typeof be=="string"&&be.toLowerCase().endsWith(".json")){let bt=Yx(be);if(l=ug(bt),l)try{n[e]=l}catch{}}}if(!l){let be=c&&typeof c=="object"?Object.prototype.toString.call(c):typeof c;return console.warn(`[LottieOverlay] Lottie JSON invalid for: ${e}`,{kind:be}),null}let d=Wx();if(!d)return console.warn(`[LottieOverlay] lottie-web is not available. Cannot play animation: ${e}`),null;let u=(k=a.width)!=null?k:300,p=(I=a.height)!=null?I:300,f=(_=s.scale)!=null?_:1,g=((R=(C=s.position)==null?void 0:C.x)!=null?R:0)+((O=(M=s.offset)==null?void 0:M.x)!=null?O:0),h=((j=(T=s.position)==null?void 0:T.y)!=null?j:0)+((D=(L=s.offset)==null?void 0:L.y)!=null?D:0),m=($=s.rotation)!=null?$:0,b=(ue=o.z_index)!=null?ue:100,v=(Y=o.alpha)!=null?Y:1,y=document.createElement("div");y.style.cssText=`
1649
1694
  position: absolute;
1650
1695
  top: calc(50% + ${h}px);
1651
1696
  left: calc(50% + ${g}px);
@@ -1655,4 +1700,4 @@ Style guidelines: ${n.summary}`;this.promptInput.value=r,this.currentPrompt=r}}c
1655
1700
  pointer-events: none;
1656
1701
  z-index: ${b};
1657
1702
  opacity: ${v};
1658
- `,t.appendChild(y);let x;try{x=d.loadAnimation({container:y,renderer:a.renderer||"svg",loop:(se=a.loop)!=null?se:!1,autoplay:(oe=a.autoplay)!=null?oe:!0,animationData:l})}catch(be){return y.parentNode&&y.parentNode.removeChild(y),console.warn(`[LottieOverlay] Failed to start animation: ${e}`,be),null}a.speed!==void 0&&x.setSpeed(a.speed);let w=()=>{x.destroy(),y.parentNode&&y.parentNode.removeChild(y)};return a.loop||x.addEventListener("complete",w),{animation:x,cleanup:w}}var Gl=class{constructor(t,i,n){this.systems=[];this.totalTime=0;this.context=null;this.root=t,this.config=i,this.destinationUrl=n}async createApp(t){if(this.context)return{app:this.app,gameObjectManager:this.gameObjectManager};let{app:i,stage:n}=await $l(this.root,{background:t.background_color,text:t.text_color,primary:t.cta_background,cta_text:t.cta_text});this.app=i,this.stage=n,this.gameObjectManager=new Xn(this.config),this.stage.eventMode="passive",this.stage.interactive=!1,this.stage.interactiveChildren=!0,this.stage.sortableChildren=!0,this.context={app:this.app,stage:this.stage,config:this.config,gameObjectManager:this.gameObjectManager,destinationUrl:this.destinationUrl,root:this.root,engine:this};for(let r of this.systems)r.setContext(this.context);return{app:this.app,gameObjectManager:this.gameObjectManager}}async initSystems(){if(!this.context)throw new Error("[GameEngine] createApp() must be called before initSystems()");for(let t of this.systems)t.init&&await t.init()}async init(t){return await this.createApp(t),await this.initSystems(),{app:this.app,gameObjectManager:this.gameObjectManager}}registerSystems(t){this.systems.push(...t)}async start(){for(let t of this.systems)t.onStart&&await t.onStart();this.app.ticker.add(this.update.bind(this)),window.addEventListener("handler-preview:screen",t=>{let{width:i,height:n}=t.detail;this.resize(i,n)})}update(t){let i=t.deltaTime/60;this.totalTime+=i;for(let n of this.systems)n.update&&n.update(i,this.totalTime)}resize(t,i){for(let n of this.systems)n.onResize&&n.onResize(t,i)}updateConfig(t){this.config=t;for(let i of this.systems)i.context.config=t,i.onConfigUpdate&&i.onConfigUpdate(t)}destroy(){for(let t of this.systems)t.onDestroy&&t.onDestroy();this.app.ticker.remove(this.update.bind(this)),this.app.destroy(!0,{children:!0,texture:!1})}getApp(){return this.app}getGameObjectManager(){return this.gameObjectManager}getTotalTime(){return this.totalTime}getSystem(t){let i=this.systems.find(n=>n instanceof t);if(!i)throw new Error(`System ${t.name} not found!`);return i}};var Zn=class{setContext(t){this.context=t}};var Jn=class{constructor(){this.config=null}init(t){this.config=t}get(t){if(!this.config)throw new Error("RuntimeObjectRegistry not initialized. Call init() first.");return this.config.objects.get(t)}getAllIds(){if(!this.config)throw new Error("RuntimeObjectRegistry not initialized. Call init() first.");return Array.from(this.config.objects.keys())}has(t){return this.config?this.config.objects.has(t):!1}};import*as dg from"pixi.js";var Vx=dg;typeof window!="undefined"&&(window.__basePixi=dg);import{Sprite as Kx,Text as Xx,TextStyle as Zx,Texture as ug}from"pixi.js";var pg=e=>e*Math.PI/180;function Jx(e,t){var s,o,c,l,d;let i=t.ui;if(!(i!=null&&i.text))return null;let n="#ffffff";(s=t.render)!=null&&s.tint&&(n=t.render.tint);let r=new Zx({fontFamily:(o=i.font)!=null?o:"Arial",fontSize:(c=i.fontSize)!=null?c:16,fill:n,align:(l=i.align)!=null?l:"center",letterSpacing:(d=i.letterSpacing)!=null?d:0}),a=new Xx({text:i.text,style:r});return a.label=e,a}function Qx(e){var d,u,p,f,g,h,m,b,v,y;let{stage:t,mainContainer:i,activeConfig:n,gameObjectManager:r,allowList:a,denyList:s}=e,o={},c={},l={};i.sortableChildren=!0;for(let[x,w]of n.objects.entries()){if(s!=null&&s.has(x)||a&&!a.has(x)||(w==null?void 0:w.enabled)===!1)continue;let E=(u=(d=w==null?void 0:w.render)==null?void 0:d.asset)==null?void 0:u.path,A=(f=(p=w==null?void 0:w.render)==null?void 0:p.asset)==null?void 0:f.type,S=!!(E&&A==="image"),k=!!((g=w==null?void 0:w.ui)!=null&&g.text),I=k?(h=w==null?void 0:w.ui)==null?void 0:h.renderMode:void 0,_;if(I==="png"&&S?_="png":I==="text"&&k?_="text":S?_="png":k?_="text":_="skip",_!=="skip"){if(_==="text"){let C=Jx(x,w);if(!C)continue;let R=w.render;C.alpha=typeof(R==null?void 0:R.alpha)=="number"?R.alpha:1,C.visible=(R==null?void 0:R.visible)!==!1,C.zIndex=typeof(R==null?void 0:R.z_index)=="number"?R.z_index:0,R!=null&&R.anchor&&typeof R.anchor.x=="number"&&typeof R.anchor.y=="number"?C.anchor.set(R.anchor.x,R.anchor.y):C.anchor.set(.5,.5);let M=w.transform,O=(M==null?void 0:M.position)||(M==null?void 0:M.offset);O&&C.position.set((m=O.x)!=null?m:0,(b=O.y)!=null?b:0);let T=typeof(M==null?void 0:M.scale)=="number"?M.scale:1;C.scale.set(T,T);let j=typeof(M==null?void 0:M.rotation)=="number"?M.rotation:0;C.rotation=pg(j),C.parent||i.addChild(C);try{r.create(x,C)}catch{}o[x]=C,l[x]=C}else if(_==="png"){let C=He[x]||(typeof ug!="undefined"?ug.EMPTY:void 0),R=new Kx(C);R.label=x;let M=w.render;R.alpha=typeof(M==null?void 0:M.alpha)=="number"?M.alpha:1,R.visible=(M==null?void 0:M.visible)!==!1,R.zIndex=typeof(M==null?void 0:M.z_index)=="number"?M.z_index:0,M!=null&&M.anchor&&typeof M.anchor.x=="number"&&typeof M.anchor.y=="number"&&R.anchor.set(M.anchor.x,M.anchor.y);let O=w.transform,T=(O==null?void 0:O.position)||(O==null?void 0:O.offset);T&&R.position.set((v=T.x)!=null?v:0,(y=T.y)!=null?y:0);let j=typeof(O==null?void 0:O.scale)=="number"?O.scale:1;R.scale.set(j,j);let L=typeof(O==null?void 0:O.rotation)=="number"?O.rotation:0;R.rotation=pg(L),R.parent||i.addChild(R);try{r.create(x,R)}catch{}o[x]=R,c[x]=R}}}return i.parent||t.addChild(i),{objects:o,sprites:c,texts:l}}var Wl=class{constructor(){this.instanceCache=new Map;this.readyPromise=null;this.app=null;this.registry=new Jn}init(t,i){this.registry.init(t),this.app=i}updateConfig(t){this.registry.init(t),this.instanceCache.clear(),this.readyPromise=null}async ready(){this.readyPromise&&await this.readyPromise;let i=this.registry.getAllIds().filter(r=>!this.instanceCache.has(r));if(i.length===0)return;let n=async r=>{r.length&&(console.log("[Assets] Loading objects:",r),await Promise.all(r.map(async a=>{var o;let s=this.registry.get(a);if(!s){console.warn("[Assets] No config found for object:",a);return}try{let c=await Ot.create(a,s,this.app);this.instanceCache.set(a,c),console.log("[Assets] Loaded object:",a,(o=c==null?void 0:c.constructor)==null?void 0:o.name)}catch(c){console.error("[Assets] Failed to load object:",a,c)}})))};return this.readyPromise=(async()=>{await n(i);let r=this.registry.getAllIds().filter(a=>!this.instanceCache.has(a));r.length>0&&(console.warn("[Assets] Retrying missing assets:",r),await n(r)),console.log("[Assets] Ready. Cached objects:",Array.from(this.instanceCache.keys()))})(),this.readyPromise}resetScene(){this.instanceCache.clear(),this.readyPromise=null}async reloadObject(t){let i=this.registry.get(t);if(i){let n=await Ot.create(t,i,this.app);this.instanceCache.set(t,n)}}get(t){return this.instanceCache.get(t)}},fg=new Wl,e0=new Proxy(fg,{get(e,t){if(t in e&&typeof e[t]=="function")return e[t].bind(e);if(e.get(t))return e.get(t)}});function t0(e,t){fg.init(e,t)}var Yl=class extends Zn{async init(){Xa(this.context.config,this.context.app),await He.ready(),console.log("[AssetSystem] All assets preloaded and ready")}async onStart(){}onConfigUpdate(){console.log("[AssetSystem] Config updated - systems will refresh textures")}};import{Graphics as i0,Point as n0}from"pixi.js";var mt={width:400,height:600,designWidth:400,scaleFactor:1},Ua={scale:1,position:1},$a=[];function r0(e,t,i,n,r,a,s){$a.push({element:e,originalScale:a,positionHelper:t,heightPercent:r}),t(e,i,n,r,a,s,!1)}function a0(){$a.forEach(({element:e,originalScale:t,positionHelper:i,heightPercent:n})=>{let r=t*mt.scaleFactor;i(e,mt.width,mt.height,n,r,!0,!1)})}function s0(){$a.length=0,console.log("[LAYOUT] Cleared all responsive elements")}function Vl(e,t){console.log(`[SCREEN] updateScreenState called: ${e}x${t}`),mt.width=e,mt.height=t,mt.scaleFactor=Math.min(e/mt.designWidth,1.15),Ua.scale=mt.scaleFactor,Ua.position=1,console.log(`[SCREEN] Global multipliers - scale: ${Ua.scale.toFixed(3)}`),a0()}var X={layout:{scale_multiplier:1,position_offset:{x:0,y:0},debug_rect_visible:!0,debug_rect_color:16711680,debug_rect_thickness:4,debug_rect_scale_x:1,debug_rect_scale_y:1,screen_scale_x:1,screen_scale_y:1},engine:{scale:1,background_scale:1.05,background_offset_y:0,background_alpha:.98,label_pulse_speed:3,label_pulse_intensity:.03}};function o0(e,t,i){let n=X[e];n&&n[t]!==void 0&&(n[t]=i,console.log(`Updated ${e}.${t} = ${i}`))}function l0(){return X}var c0={center:{x:.5,y:.5},"center-center":{x:.5,y:.5},middle:{x:.5,y:.5},"middle-center":{x:.5,y:.5},"top-left":{x:0,y:0},"top-center":{x:.5,y:0},"top-right":{x:1,y:0},"bottom-left":{x:0,y:1},"bottom-center":{x:.5,y:1},"bottom-right":{x:1,y:1},"left-center":{x:0,y:.5},"right-center":{x:1,y:.5},"center-left":{x:0,y:.5},"center-right":{x:1,y:.5},left:{x:0,y:.5},right:{x:1,y:.5},top:{x:.5,y:0},bottom:{x:.5,y:1}};function Ha(e,t){return typeof e=="number"&&Number.isFinite(e)?e:t}function qa(e,t={x:.5,y:.5}){var i;if(Array.isArray(e))return{x:Ha(e[0],t.x),y:Ha(e[1],t.y)};if(e&&typeof e=="object"){let n=e;return{x:Ha(n.x,t.x),y:Ha(n.y,t.y)}}if(typeof e=="string"){let n=e.trim().toLowerCase();return(i=c0[n])!=null?i:t}return t}function er(e,t,i,n={}){var f,g,h,m,b,v;let r=qa(i),a=(f=n.inset)!=null?f:{},s=(g=n.padding)!=null?g:{x:0,y:0},o=((h=a.left)!=null?h:0)+s.x,c=((m=a.right)!=null?m:0)+s.x,l=((b=a.top)!=null?b:0)+s.y,d=((v=a.bottom)!=null?v:0)+s.y,u=Math.max(0,e-o-c),p=Math.max(0,t-l-d);return{x:o+u*r.x,y:l+p*r.y}}function tr(e,t,i,n={}){var h,m,b,v,y,x;let r=(h=n.inset)!=null?h:{},a=(m=n.padding)!=null?m:{x:0,y:0},s=((b=r.left)!=null?b:0)+a.x,o=((v=r.right)!=null?v:0)+a.x,c=((y=r.top)!=null?y:0)+a.y,l=((x=r.bottom)!=null?x:0)+a.y,d=Math.max(0,e-s-o),u=Math.max(0,t-c-l),p=qa(i,{x:.5,y:.5}),f=Math.min(Math.max(p.x,0),1),g=Math.min(Math.max(p.y,0),1);return{x:s+d*f,y:c+u*g}}function Kl(e,t,i,n={}){var d,u,p;if(!e)return;let r=n.positionRatio?tr(t,i,n.positionRatio,{inset:n.inset,padding:n.screenPadding}):er(t,i,n.anchor,{inset:n.inset,padding:n.screenPadding}),a=(d=n.offset)!=null?d:{x:0,y:0},s=r.x+a.x,o=r.y+a.y;e.anchor&&n.renderAnchor&&e.anchor.set(n.renderAnchor.x,n.renderAnchor.y),ze(e,s,o);let c=(u=n.scale)!=null?u:1,l=(p=n.scaleMultiplier)!=null?p:1;(n.scale!==void 0||n.scaleMultiplier!==void 0)&&Ze(e,c*l)}if(typeof window!="undefined"){let e=window.innerWidth,t=window.innerHeight,i=()=>{let n=window.innerWidth,r=window.innerHeight;(n!==e||r!==t)&&(e=n,t=r,Vl(n,r))};window.addEventListener("resize",i),window.addEventListener("orientationchange",()=>{setTimeout(i,100)}),window.mraid&&(window.mraid.addEventListener("viewableChange",i),window.mraid.addEventListener("sizeChange",i)),Vl(window.innerWidth,window.innerHeight),window.updateDebugConfig=o0,window.getDebugConfig=l0,window.copyConfig=x0,window.applyConfig=Qn,window.applyConfigForRatio=w0,window.positionAtBottom=hg,window.positionAtTop=p0,window.positionAtCenter=f0,window.positionAtLeft=h0,window.positionAtRight=g0,window.positionAtBottomLeft=m0,window.positionAtBottomRight=b0,window.positionAtTopLeft=v0,window.positionAtTopRight=y0,window.applyPositionContract=u0,console.log("\u{1F3AE} Debug Config Functions Available:"),console.log("\u2022 updateDebugConfig(category, key, value)"),console.log("\u2022 getDebugConfig()"),console.log("\u2022 copyConfig(presetName)"),console.log("\u2022 applyConfig(config)"),console.log("\u2022 applyConfigForRatio(width, height)"),console.log("\u{1F4CD} Positioning Helpers Available (with scale):"),console.log("\u2022 positionAtBottom(element, w, h, percent, scale)"),console.log("\u2022 positionAtTop(element, w, h, percent, scale)"),console.log("\u2022 positionAtCenter(element, w, h, offsetX, offsetY, scale)"),console.log("\u2022 positionAtLeft/Right(element, w, h, percent, scale)"),console.log("\u2022 Corner positions: BottomLeft/Right, TopLeft/Right (all with scale)"),console.log("\u2022 applyPositionContract(element, w, h, contract)"),console.log("Example: positionAtCenter(mySprite, 400, 600, 0, -50, 1.2)")}function Ga(e,t,i=0){return e*t+i}function Wa(e,t,i=0){return e*(1-t)+i}function Ya(e,t,i=0){return e*t+i}function Va(e,t,i=0){return e*(1-t)+i}function Le(e,t=0){return e/2+t}function d0(e,t){return e*t}function u0(e,t,i,n){var s,o,c,l,d,u,p,f,g,h,m,b,v,y,x,w,E,A,S,k;let r=0,a=0;switch(n.type){case"top":r=Le(t,(o=(s=n.offset)==null?void 0:s.x)!=null?o:0),a=Ga(i,n.percent,(l=(c=n.offset)==null?void 0:c.y)!=null?l:0);break;case"bottom":r=Le(t,(u=(d=n.offset)==null?void 0:d.x)!=null?u:0),a=Wa(i,n.percent,(f=(p=n.offset)==null?void 0:p.y)!=null?f:0);break;case"left":r=Ya(t,n.percent,(h=(g=n.offset)==null?void 0:g.x)!=null?h:0),a=Le(i,(b=(m=n.offset)==null?void 0:m.y)!=null?b:0);break;case"right":r=Va(t,n.percent,(y=(v=n.offset)==null?void 0:v.x)!=null?y:0),a=Le(i,(w=(x=n.offset)==null?void 0:x.y)!=null?w:0);break;case"center":r=Le(t,(A=(E=n.offset)==null?void 0:E.x)!=null?A:0),a=Le(i,(k=(S=n.offset)==null?void 0:S.y)!=null?k:0);break}e.position?e.position.set(r,a):(e.x=r,e.y=a),n.scale!==void 0&&n.scale!==1&&e.scale&&(typeof e.scale.set=="function"?e.scale.set(n.scale,n.scale):(e.scale.x=n.scale,e.scale.y=n.scale))}function hg(e,t,i,n=.2,r=1,a=!0,s=!1){let o=d0(i,n),c=Wa(i,n/2);ze(e,Le(t),c);let l=a?r*mt.scaleFactor:r;Ze(e,l),s&&!$a.find(d=>d.element===e)&&r0(e,hg,t,i,n,r,a)}function p0(e,t,i,n=.1,r=1){ze(e,Le(t),Ga(i,n)),Ze(e,r)}function f0(e,t,i,n=0,r=0,a=1){ze(e,Le(t,n),Le(i,r)),Ze(e,a)}function h0(e,t,i,n=.1,r=1){ze(e,Ya(t,n),Le(i)),Ze(e,r)}function g0(e,t,i,n=.1,r=1){ze(e,Va(t,n),Le(i)),Ze(e,r)}function m0(e,t,i,n=.05,r=.05,a=1){ze(e,Ya(t,r),Wa(i,n)),Ze(e,a)}function b0(e,t,i,n=.05,r=.05,a=1){ze(e,Va(t,r),Wa(i,n)),Ze(e,a)}function v0(e,t,i,n=.05,r=.05,a=1){ze(e,Ya(t,r),Ga(i,n)),Ze(e,a)}function y0(e,t,i,n=.05,r=.05,a=1){ze(e,Va(t,r),Ga(i,n)),Ze(e,a)}function ze(e,t,i){e&&e.position?typeof e.position.set=="function"?e.position.set(t,i):(e.position.x=t,e.position.y=i):e&&(e.x=t,e.y=i)}function Ze(e,t){t!==1&&e&&e.scale&&(typeof e.scale.set=="function"?e.scale.set(t,t):e.scale.x!==void 0&&e.scale.y!==void 0&&(e.scale.x=t,e.scale.y=t))}var ii={default:{layout:{scale_multiplier:1,position_offset:{x:0,y:0},debug_rect_visible:!0,debug_rect_color:16711680,debug_rect_thickness:4,debug_rect_scale_x:1,debug_rect_scale_y:1,screen_scale_x:1,screen_scale_y:1},engine:{scale:1,background_scale:1.05,background_offset_y:0,background_alpha:.98,label_pulse_speed:3,label_pulse_intensity:.03}},wide:{layout:{scale_multiplier:1,position_offset:{x:0,y:0},debug_rect_visible:!0,debug_rect_color:16711680,debug_rect_thickness:4,debug_rect_scale_x:1,debug_rect_scale_y:1,screen_scale_x:.9,screen_scale_y:1.1},engine:{scale:1,background_scale:1.1,background_offset_y:0,background_alpha:.95,label_pulse_speed:3,label_pulse_intensity:.03}},square:{layout:{scale_multiplier:1,position_offset:{x:0,y:0},debug_rect_visible:!0,debug_rect_color:16711680,debug_rect_thickness:4,debug_rect_scale_x:1,debug_rect_scale_y:1,screen_scale_x:.85,screen_scale_y:.85},engine:{scale:1,background_scale:1,background_offset_y:0,background_alpha:1,label_pulse_speed:3,label_pulse_intensity:.03}},tall:{layout:{scale_multiplier:1,position_offset:{x:0,y:0},debug_rect_visible:!0,debug_rect_color:16711680,debug_rect_thickness:4,debug_rect_scale_x:1,debug_rect_scale_y:1,screen_scale_x:1.1,screen_scale_y:.9},engine:{scale:1,background_scale:.95,background_offset_y:0,background_alpha:1,label_pulse_speed:3,label_pulse_intensity:.03}}};function x0(e){return e&&ii[e]?JSON.parse(JSON.stringify(ii[e])):JSON.parse(JSON.stringify(X))}function Qn(e){Object.keys(e).forEach(t=>{let i=t;X[i]&&e[i]&&Object.assign(X[i],e[i])}),console.log("Config applied:",e)}function w0(e,t){let i=e/t;i>1.6?(Qn(ii.wide),console.log("Applied WIDE config for ratio:",i)):i<.7?(Qn(ii.tall),console.log("Applied TALL config for ratio:",i)):i>.8&&i<1.2?(Qn(ii.square),console.log("Applied SQUARE config for ratio:",i)):(Qn(ii.default),console.log("Applied DEFAULT config for ratio:",i))}if(typeof window!="undefined"){let e=window;e.configPresets=ii,e.resolveAnchorVec2=e.resolveAnchorVec2||qa,e.resolveScreenAnchorPoint=e.resolveScreenAnchorPoint||er,e.resolveScreenRatioPoint=e.resolveScreenRatioPoint||tr}var we=null;function _0(e,t,i,n,r,a={}){var j,L,D,$,ue,V,se,oe,be,bt,ni,ir,N,Be,Je,vt,Qe,zt,ri,ai,et,si,yt,nr,rr,Xl,Zl,Jl,Ql,ec,tc,ic,nc,rc,ac,sc,oc;let s=(j=a.enableDebugLogs)!=null?j:!1;s&&(console.log("\u{1F3AF} [LAYOUT_DEBUGS] ===== STARTING LAYOUT CALCULATION ====="),console.log("\u{1F3AF} [LAYOUT_DEBUGS] Screen dimensions:",{width:n.width,height:n.height}),console.log("\u{1F3AF} [LAYOUT_DEBUGS] Time:",i),console.log("\u{1F3AF} [LAYOUT_DEBUGS] Options:",a));let{mainContainer:o,label:c,background:l,backgroundTexture:d,app:u}=e;if(!u||!u.renderer){s&&console.log("\u{1F3AF} [LAYOUT_DEBUGS] \u274C No app or renderer, skipping layout");return}s&&(console.log("\u{1F3AF} [LAYOUT_DEBUGS] App renderer dimensions:",{width:u.renderer.width,height:u.renderer.height}),console.log("\u{1F3AF} [LAYOUT_DEBUGS] App screen dimensions:",{width:u.screen.width,height:u.screen.height}));let p=n.width,f=n.height;s&&console.log("\u{1F3AF} [LAYOUT_DEBUGS] Base dimensions:",{baseWidth:p,baseHeight:f});let g=p*X.layout.screen_scale_x,h=f*X.layout.screen_scale_y,m=p/2,b=t.engine.runtime||{},v=b.layout||{};s&&(console.log("\u{1F3AF} [LAYOUT_DEBUGS] Debug config:",{screen_scale_x:X.layout.screen_scale_x,screen_scale_y:X.layout.screen_scale_y}),console.log("\u{1F3AF} [LAYOUT_DEBUGS] Calculated dimensions:",{width:g,height:h,midX:m}),console.log("\u{1F3AF} [LAYOUT_DEBUGS] Engine runtime:",b),console.log("\u{1F3AF} [LAYOUT_DEBUGS] Layout config:",v));let y=v.design_width_portrait||400,x=g/y;x=Math.min(x,1.15);let w=x*((L=X.engine.scale)!=null?L:1),E=(D=a.skipMainContainerTransform)!=null?D:!1;!E&&o&&o.scale&&(typeof o.scale.set=="function"?o.scale.set(w):(o.scale.x=w,o.scale.y=w));let A=($=v.main_container_anchor)!=null?$:"center",S=(ue=v.main_container_position_ratio)!=null?ue:{x:.5,y:.5},k=(V=v.main_container_offset)!=null?V:{x:0,y:0},I=v.main_container_position_ratio?tr(p,f,S):er(p,f,A),_=I.x+k.x+X.layout.position_offset.x,C=I.y+k.y+X.layout.position_offset.y;if(!E&&o&&o.position&&(typeof o.position.set=="function"?o.position.set(_,C):(o.position.x=_,o.position.y=C)),r&&(o!=null&&o.toLocal))for(let[pe,fe]of t.objects.entries()){let Z=fe==null?void 0:fe.transform;if(!Z||((se=Z.position_mode)!=null?se:"static")!=="static")continue;let q=(oe=r.get)==null?void 0:oe.call(r,pe),Fe=((be=q==null?void 0:q.getDisplayObject)==null?void 0:be.call(q))||(q==null?void 0:q.pixiObject)||q;if(!Fe||Fe.parent!==o)continue;let Qi=Z.position_ratio!=null?tr(p,f,Z.position_ratio):er(p,f,(bt=Z.anchor)!=null?bt:"center"),ar=o.toLocal(new n0(Qi.x,Qi.y)),sr=(ni=Z.position)!=null?ni:{x:0,y:0},en=ar.x+sr.x,Bt=ar.y+sr.y;typeof(q==null?void 0:q.setPosition)=="function"?q.setPosition(en,Bt):(ze(Fe,en,Bt),(ir=q==null?void 0:q.transform)!=null&&ir.position&&(q.transform.position.x=en,q.transform.position.y=Bt))}let R=typeof window!="undefined"?window.__BUILD_SETTINGS__:null,O=((R==null?void 0:R.buildMode)||(typeof __BUILD_MODE__!="undefined"?__BUILD_MODE__:"dev"))==="dev";if(X.layout.debug_rect_visible&&O){(!we||we.parent!==u.stage)&&(we==null||we.destroy(),we=new i0,we.zIndex=9999,u.stage.addChild(we)),we.clear();let pe=X.layout.debug_rect_scale_x,fe=X.layout.debug_rect_scale_y,Z=(p-4)*pe,Re=(f-4)*fe,q=(p-Z)/2,Fe=(f-Re)/2;s&&(console.log("\u{1F3AF} [LAYOUT_DEBUGS] ===== DEBUG RECT POSITIONING ====="),console.log("\u{1F3AF} [LAYOUT_DEBUGS] Debug rect calculations:",{baseWidth:p,baseHeight:f,rectW:Z,rectH:Re,offsetX:q,offsetY:Fe}),console.log("\u{1F3AF} [LAYOUT_DEBUGS] Debug rect final position:",{x:2+q,y:2+Fe,width:Z,height:Re})),we.rect(2+q,2+Fe,Z,Re).stroke({width:X.layout.debug_rect_thickness,color:X.layout.debug_rect_color})}else we&&(we.destroy(),we=null);let T=((N=e.label)==null?void 0:N.config)||t.objects.get("label_1")||t.objects.get("ui_tutorial_1");if(c&&c.position&&T){let pe=(Be=T==null?void 0:T.render)==null?void 0:Be.anchor,fe=(vt=(Je=T==null?void 0:T.transform)==null?void 0:Je.anchor)!=null?vt:"center",Z=(Qe=T==null?void 0:T.transform)==null?void 0:Qe.position_ratio,Re=((zt=T==null?void 0:T.transform)==null?void 0:zt.offset)||{x:0,y:0};Kl(c,p,f,{anchor:fe,positionRatio:Z,offset:{x:Re.x*w,y:Re.y*w},renderAnchor:pe})}if(c&&c.alpha>0){let pe=1+Math.sin(i*X.engine.label_pulse_speed)*X.engine.label_pulse_intensity,fe=(ai=(ri=T==null?void 0:T.transform)==null?void 0:ri.scale)!=null?ai:1,Z=pe*w*fe;c.scale&&(typeof c.scale.set=="function"?c.scale.set(Z):(c.scale.x=Z,c.scale.y=Z))}if(s&&console.log("\u{1F3AF} [LAYOUT_DEBUGS] ===== BACKGROUND POSITIONING ====="),l){s&&(console.log("\u{1F3AF} [LAYOUT_DEBUGS] Background object exists:",!!l),console.log("\u{1F3AF} [LAYOUT_DEBUGS] Background type:",(et=l.constructor)==null?void 0:et.name)),l.alpha=((yt=(si=b.background)==null?void 0:si.alpha)!=null?yt:.98)*X.engine.background_alpha,s&&console.log("\u{1F3AF} [LAYOUT_DEBUGS] Background alpha set to:",l.alpha);let pe=t.objects.get("background_1");s&&console.log("\u{1F3AF} [LAYOUT_DEBUGS] Background config:",pe);let fe=(pe==null?void 0:pe.transform)||{};s&&console.log("\u{1F3AF} [LAYOUT_DEBUGS] Background transform:",fe);let Z=fe.offset||{x:0,y:0},Re=((rr=(nr=b.background)==null?void 0:nr.offset_y)!=null?rr:0)+X.engine.background_offset_y,q=(Zl=(Xl=pe==null?void 0:pe.render)==null?void 0:Xl.anchor)!=null?Zl:{x:.5,y:.5},Fe=(Jl=fe.anchor)!=null?Jl:"center",Qi=fe.position_ratio;if(s&&console.log("\u{1F3AF} [LAYOUT_DEBUGS] Background positioning params:",{bgOffset:Z,bgRuntimeOffsetY:Re,bgRenderAnchor:q,bgScreenAnchor:Fe,bgPositionRatio:Qi,baseWidth:p,baseHeight:f,finalScale:w}),Kl(l,p,f,{anchor:Fe,positionRatio:Qi,offset:{x:Z.x*w,y:Z.y*w+Re},renderAnchor:q}),s&&(console.log("\u{1F3AF} [LAYOUT_DEBUGS] Background position after applyScreenAnchor:",{x:l.x,y:l.y,scaleX:(Ql=l.scale)==null?void 0:Ql.x,scaleY:(ec=l.scale)==null?void 0:ec.y,anchorX:(tc=l.anchor)==null?void 0:tc.x,anchorY:(ic=l.anchor)==null?void 0:ic.y,pivotX:(nc=l.pivot)==null?void 0:nc.x,pivotY:(rc=l.pivot)==null?void 0:rc.y,width:l.width,height:l.height}),console.log("\u{1F3AF} [LAYOUT_DEBUGS] Background texture dimensions:",{textureWidth:d==null?void 0:d.width,textureHeight:d==null?void 0:d.height})),d){let ar=Math.max(g/d.width,h/d.height),sr=(sc=(ac=b.background)==null?void 0:ac.scale_multiplier)!=null?sc:1.05,en=(oc=fe.scale)!=null?oc:1,Bt=ar*sr*X.engine.background_scale*en;l.scale&&(typeof l.scale.set=="function"?l.scale.set(Bt):(l.scale.x=Bt,l.scale.y=Bt))}else l&&typeof l.clear=="function"&&(l.clear(),l.rect(-g/2,-h/2,g,h).fill({color:1444375}))}}function E0(e){var o,c,l;let{setState:t,updateLabelAlpha:i,updateHandAlpha:n,config:r,states:a}=e,s=((c=(o=r.engine)==null?void 0:o.runtime)==null?void 0:c.timeline)||{};t(a.showHook),setTimeout(()=>{i(1),n(1),t(a.waitInput),console.log("[GAME] \u23F3 Game ready for user input - tutorial shown")},(l=s.tutorial_delay_ms)!=null?l:1500)}export{Uc as a,$l as b,za as c,Ba as d,Fa as e,Xn as f,Nx as g,Hx as h,Ux as i,$x as j,Ml as k,Yx as l,Ot as m,Gl as n,Zn as o,Jn as p,Vx as q,Qx as r,e0 as s,t0 as t,Yl as u,Ua as v,s0 as w,Vl as x,qa as y,er as z,tr as A,Kl as B,_0 as C,E0 as D,$c as E,qc as F,ss as G,di as H,j0 as I,Ra as J,Sl as K,$h as L,Tl as M,xE as N,wE as O,ft as P,Cx as Q,Tx as R,Il as S,Xe as T,pt as U};
1703
+ `,t.appendChild(y);let x;try{x=d.loadAnimation({container:y,renderer:a.renderer||"svg",loop:(se=a.loop)!=null?se:!1,autoplay:(oe=a.autoplay)!=null?oe:!0,animationData:l})}catch(be){return y.parentNode&&y.parentNode.removeChild(y),console.warn(`[LottieOverlay] Failed to start animation: ${e}`,be),null}a.speed!==void 0&&x.setSpeed(a.speed);let w=()=>{x.destroy(),y.parentNode&&y.parentNode.removeChild(y)};return a.loop||x.addEventListener("complete",w),{animation:x,cleanup:w}}var Vl=class{constructor(t,i,n){this.systems=[];this.totalTime=0;this.context=null;this.root=t,this.config=i,this.destinationUrl=n}async createApp(t){if(this.context)return{app:this.app,gameObjectManager:this.gameObjectManager};let{app:i,stage:n}=await Gl(this.root,{background:t.background_color,text:t.text_color,primary:t.cta_background,cta_text:t.cta_text});this.app=i,this.stage=n,this.gameObjectManager=new Xn(this.config),this.stage.eventMode="passive",this.stage.interactive=!1,this.stage.interactiveChildren=!0,this.stage.sortableChildren=!0,this.context={app:this.app,stage:this.stage,config:this.config,gameObjectManager:this.gameObjectManager,destinationUrl:this.destinationUrl,root:this.root,engine:this};for(let r of this.systems)r.setContext(this.context);return{app:this.app,gameObjectManager:this.gameObjectManager}}async initSystems(){if(!this.context)throw new Error("[GameEngine] createApp() must be called before initSystems()");for(let t of this.systems)t.init&&await t.init()}async init(t){return await this.createApp(t),await this.initSystems(),{app:this.app,gameObjectManager:this.gameObjectManager}}registerSystems(t){this.systems.push(...t)}async start(){for(let t of this.systems)t.onStart&&await t.onStart();this.app.ticker.add(this.update.bind(this)),window.addEventListener("handler-preview:screen",t=>{let{width:i,height:n}=t.detail;this.resize(i,n)})}update(t){let i=t.deltaTime/60;this.totalTime+=i;for(let n of this.systems)n.update&&n.update(i,this.totalTime)}resize(t,i){for(let n of this.systems)n.onResize&&n.onResize(t,i)}updateConfig(t){this.config=t;for(let i of this.systems)i.context.config=t,i.onConfigUpdate&&i.onConfigUpdate(t)}destroy(){for(let t of this.systems)t.onDestroy&&t.onDestroy();this.app.ticker.remove(this.update.bind(this)),this.app.destroy(!0,{children:!0,texture:!1})}getApp(){return this.app}getGameObjectManager(){return this.gameObjectManager}getTotalTime(){return this.totalTime}getSystem(t){let i=this.systems.find(n=>n instanceof t);if(!i)throw new Error(`System ${t.name} not found!`);return i}};var Zn=class{setContext(t){this.context=t}};var Jn=class{constructor(){this.config=null}init(t){this.config=t}get(t){if(!this.config)throw new Error("RuntimeObjectRegistry not initialized. Call init() first.");return this.config.objects.get(t)}getAllIds(){if(!this.config)throw new Error("RuntimeObjectRegistry not initialized. Call init() first.");return Array.from(this.config.objects.keys())}has(t){return this.config?this.config.objects.has(t):!1}};import*as pg from"pixi.js";var Xx=pg;typeof window!="undefined"&&(window.__basePixi=pg);import{Sprite as Zx,Text as Jx,TextStyle as Qx,Texture as fg}from"pixi.js";var hg=e=>e*Math.PI/180;function e0(e,t){var s,o,c,l,d;let i=t.ui;if(!(i!=null&&i.text))return null;let n="#ffffff";(s=t.render)!=null&&s.tint&&(n=t.render.tint);let r=new Qx({fontFamily:(o=i.font)!=null?o:"Arial",fontSize:(c=i.fontSize)!=null?c:16,fill:n,align:(l=i.align)!=null?l:"center",letterSpacing:(d=i.letterSpacing)!=null?d:0}),a=new Jx({text:i.text,style:r});return a.label=e,a}function t0(e){var d,u,p,f,g,h,m,b,v,y;let{stage:t,mainContainer:i,activeConfig:n,gameObjectManager:r,allowList:a,denyList:s}=e,o={},c={},l={};i.sortableChildren=!0;for(let[x,w]of n.objects.entries()){if(s!=null&&s.has(x)||a&&!a.has(x)||(w==null?void 0:w.enabled)===!1)continue;let E=(u=(d=w==null?void 0:w.render)==null?void 0:d.asset)==null?void 0:u.path,A=(f=(p=w==null?void 0:w.render)==null?void 0:p.asset)==null?void 0:f.type,S=!!(E&&A==="image"),k=!!((g=w==null?void 0:w.ui)!=null&&g.text),I=k?(h=w==null?void 0:w.ui)==null?void 0:h.renderMode:void 0,_;if(I==="png"&&S?_="png":I==="text"&&k?_="text":S?_="png":k?_="text":_="skip",_!=="skip"){if(_==="text"){let C=e0(x,w);if(!C)continue;let R=w.render;C.alpha=typeof(R==null?void 0:R.alpha)=="number"?R.alpha:1,C.visible=(R==null?void 0:R.visible)!==!1,C.zIndex=typeof(R==null?void 0:R.z_index)=="number"?R.z_index:0,R!=null&&R.anchor&&typeof R.anchor.x=="number"&&typeof R.anchor.y=="number"?C.anchor.set(R.anchor.x,R.anchor.y):C.anchor.set(.5,.5);let M=w.transform,O=(M==null?void 0:M.position)||(M==null?void 0:M.offset);O&&C.position.set((m=O.x)!=null?m:0,(b=O.y)!=null?b:0);let T=typeof(M==null?void 0:M.scale)=="number"?M.scale:1;C.scale.set(T,T);let j=typeof(M==null?void 0:M.rotation)=="number"?M.rotation:0;C.rotation=hg(j),C.parent||i.addChild(C);try{r.create(x,C)}catch{}o[x]=C,l[x]=C}else if(_==="png"){let C=He[x]||(typeof fg!="undefined"?fg.EMPTY:void 0),R=new Zx(C);R.label=x;let M=w.render;R.alpha=typeof(M==null?void 0:M.alpha)=="number"?M.alpha:1,R.visible=(M==null?void 0:M.visible)!==!1,R.zIndex=typeof(M==null?void 0:M.z_index)=="number"?M.z_index:0,M!=null&&M.anchor&&typeof M.anchor.x=="number"&&typeof M.anchor.y=="number"&&R.anchor.set(M.anchor.x,M.anchor.y);let O=w.transform,T=(O==null?void 0:O.position)||(O==null?void 0:O.offset);T&&R.position.set((v=T.x)!=null?v:0,(y=T.y)!=null?y:0);let j=typeof(O==null?void 0:O.scale)=="number"?O.scale:1;R.scale.set(j,j);let L=typeof(O==null?void 0:O.rotation)=="number"?O.rotation:0;R.rotation=hg(L),R.parent||i.addChild(R);try{r.create(x,R)}catch{}o[x]=R,c[x]=R}}}return i.parent||t.addChild(i),{objects:o,sprites:c,texts:l}}var Yl=class{constructor(){this.instanceCache=new Map;this.readyPromise=null;this.app=null;this.registry=new Jn}init(t,i){this.registry.init(t),this.app=i}updateConfig(t){this.registry.init(t),this.instanceCache.clear(),this.readyPromise=null}async ready(){this.readyPromise&&await this.readyPromise;let i=this.registry.getAllIds().filter(r=>!this.instanceCache.has(r));if(i.length===0)return;let n=async r=>{r.length&&(console.log("[Assets] Loading objects:",r),await Promise.all(r.map(async a=>{var o;let s=this.registry.get(a);if(!s){console.warn("[Assets] No config found for object:",a);return}try{let c=await Ot.create(a,s,this.app);this.instanceCache.set(a,c),console.log("[Assets] Loaded object:",a,(o=c==null?void 0:c.constructor)==null?void 0:o.name)}catch(c){console.error("[Assets] Failed to load object:",a,c)}})))};return this.readyPromise=(async()=>{await n(i);let r=this.registry.getAllIds().filter(a=>!this.instanceCache.has(a));r.length>0&&(console.warn("[Assets] Retrying missing assets:",r),await n(r)),console.log("[Assets] Ready. Cached objects:",Array.from(this.instanceCache.keys()))})(),this.readyPromise}resetScene(){this.instanceCache.clear(),this.readyPromise=null}async reloadObject(t){let i=this.registry.get(t);if(i){let n=await Ot.create(t,i,this.app);this.instanceCache.set(t,n)}}get(t){return this.instanceCache.get(t)}},gg=new Yl,i0=new Proxy(gg,{get(e,t){if(t in e&&typeof e[t]=="function")return e[t].bind(e);if(e.get(t))return e.get(t)}});function n0(e,t){gg.init(e,t)}var Kl=class extends Zn{async init(){Xa(this.context.config,this.context.app),await He.ready(),console.log("[AssetSystem] All assets preloaded and ready")}async onStart(){}onConfigUpdate(){console.log("[AssetSystem] Config updated - systems will refresh textures")}};import{Graphics as r0,Point as a0}from"pixi.js";var mt={width:400,height:600,designWidth:400,scaleFactor:1},Ua={scale:1,position:1},$a=[];function s0(e,t,i,n,r,a,s){$a.push({element:e,originalScale:a,positionHelper:t,heightPercent:r}),t(e,i,n,r,a,s,!1)}function o0(){$a.forEach(({element:e,originalScale:t,positionHelper:i,heightPercent:n})=>{let r=t*mt.scaleFactor;i(e,mt.width,mt.height,n,r,!0,!1)})}function l0(){$a.length=0,console.log("[LAYOUT] Cleared all responsive elements")}function Xl(e,t){console.log(`[SCREEN] updateScreenState called: ${e}x${t}`),mt.width=e,mt.height=t,mt.scaleFactor=Math.min(e/mt.designWidth,1.15),Ua.scale=mt.scaleFactor,Ua.position=1,console.log(`[SCREEN] Global multipliers - scale: ${Ua.scale.toFixed(3)}`),o0()}var X={layout:{scale_multiplier:1,position_offset:{x:0,y:0},debug_rect_visible:!0,debug_rect_color:16711680,debug_rect_thickness:4,debug_rect_scale_x:1,debug_rect_scale_y:1,screen_scale_x:1,screen_scale_y:1},engine:{scale:1,background_scale:1.05,background_offset_y:0,background_alpha:.98,label_pulse_speed:3,label_pulse_intensity:.03}};function c0(e,t,i){let n=X[e];n&&n[t]!==void 0&&(n[t]=i,console.log(`Updated ${e}.${t} = ${i}`))}function d0(){return X}var u0={center:{x:.5,y:.5},"center-center":{x:.5,y:.5},middle:{x:.5,y:.5},"middle-center":{x:.5,y:.5},"top-left":{x:0,y:0},"top-center":{x:.5,y:0},"top-right":{x:1,y:0},"bottom-left":{x:0,y:1},"bottom-center":{x:.5,y:1},"bottom-right":{x:1,y:1},"left-center":{x:0,y:.5},"right-center":{x:1,y:.5},"center-left":{x:0,y:.5},"center-right":{x:1,y:.5},left:{x:0,y:.5},right:{x:1,y:.5},top:{x:.5,y:0},bottom:{x:.5,y:1}};function Ha(e,t){return typeof e=="number"&&Number.isFinite(e)?e:t}function qa(e,t={x:.5,y:.5}){var i;if(Array.isArray(e))return{x:Ha(e[0],t.x),y:Ha(e[1],t.y)};if(e&&typeof e=="object"){let n=e;return{x:Ha(n.x,t.x),y:Ha(n.y,t.y)}}if(typeof e=="string"){let n=e.trim().toLowerCase();return(i=u0[n])!=null?i:t}return t}function er(e,t,i,n={}){var f,g,h,m,b,v;let r=qa(i),a=(f=n.inset)!=null?f:{},s=(g=n.padding)!=null?g:{x:0,y:0},o=((h=a.left)!=null?h:0)+s.x,c=((m=a.right)!=null?m:0)+s.x,l=((b=a.top)!=null?b:0)+s.y,d=((v=a.bottom)!=null?v:0)+s.y,u=Math.max(0,e-o-c),p=Math.max(0,t-l-d);return{x:o+u*r.x,y:l+p*r.y}}function tr(e,t,i,n={}){var h,m,b,v,y,x;let r=(h=n.inset)!=null?h:{},a=(m=n.padding)!=null?m:{x:0,y:0},s=((b=r.left)!=null?b:0)+a.x,o=((v=r.right)!=null?v:0)+a.x,c=((y=r.top)!=null?y:0)+a.y,l=((x=r.bottom)!=null?x:0)+a.y,d=Math.max(0,e-s-o),u=Math.max(0,t-c-l),p=qa(i,{x:.5,y:.5}),f=Math.min(Math.max(p.x,0),1),g=Math.min(Math.max(p.y,0),1);return{x:s+d*f,y:c+u*g}}function Zl(e,t,i,n={}){var d,u,p;if(!e)return;let r=n.positionRatio?tr(t,i,n.positionRatio,{inset:n.inset,padding:n.screenPadding}):er(t,i,n.anchor,{inset:n.inset,padding:n.screenPadding}),a=(d=n.offset)!=null?d:{x:0,y:0},s=r.x+a.x,o=r.y+a.y;e.anchor&&n.renderAnchor&&e.anchor.set(n.renderAnchor.x,n.renderAnchor.y),ze(e,s,o);let c=(u=n.scale)!=null?u:1,l=(p=n.scaleMultiplier)!=null?p:1;(n.scale!==void 0||n.scaleMultiplier!==void 0)&&Ze(e,c*l)}if(typeof window!="undefined"){let e=window.innerWidth,t=window.innerHeight,i=()=>{let n=window.innerWidth,r=window.innerHeight;(n!==e||r!==t)&&(e=n,t=r,Xl(n,r))};window.addEventListener("resize",i),window.addEventListener("orientationchange",()=>{setTimeout(i,100)}),window.mraid&&(window.mraid.addEventListener("viewableChange",i),window.mraid.addEventListener("sizeChange",i)),Xl(window.innerWidth,window.innerHeight),window.updateDebugConfig=c0,window.getDebugConfig=d0,window.copyConfig=_0,window.applyConfig=Qn,window.applyConfigForRatio=E0,window.positionAtBottom=mg,window.positionAtTop=h0,window.positionAtCenter=g0,window.positionAtLeft=m0,window.positionAtRight=b0,window.positionAtBottomLeft=v0,window.positionAtBottomRight=y0,window.positionAtTopLeft=x0,window.positionAtTopRight=w0,window.applyPositionContract=f0,console.log("\u{1F3AE} Debug Config Functions Available:"),console.log("\u2022 updateDebugConfig(category, key, value)"),console.log("\u2022 getDebugConfig()"),console.log("\u2022 copyConfig(presetName)"),console.log("\u2022 applyConfig(config)"),console.log("\u2022 applyConfigForRatio(width, height)"),console.log("\u{1F4CD} Positioning Helpers Available (with scale):"),console.log("\u2022 positionAtBottom(element, w, h, percent, scale)"),console.log("\u2022 positionAtTop(element, w, h, percent, scale)"),console.log("\u2022 positionAtCenter(element, w, h, offsetX, offsetY, scale)"),console.log("\u2022 positionAtLeft/Right(element, w, h, percent, scale)"),console.log("\u2022 Corner positions: BottomLeft/Right, TopLeft/Right (all with scale)"),console.log("\u2022 applyPositionContract(element, w, h, contract)"),console.log("Example: positionAtCenter(mySprite, 400, 600, 0, -50, 1.2)")}function Ga(e,t,i=0){return e*t+i}function Wa(e,t,i=0){return e*(1-t)+i}function Va(e,t,i=0){return e*t+i}function Ya(e,t,i=0){return e*(1-t)+i}function Le(e,t=0){return e/2+t}function p0(e,t){return e*t}function f0(e,t,i,n){var s,o,c,l,d,u,p,f,g,h,m,b,v,y,x,w,E,A,S,k;let r=0,a=0;switch(n.type){case"top":r=Le(t,(o=(s=n.offset)==null?void 0:s.x)!=null?o:0),a=Ga(i,n.percent,(l=(c=n.offset)==null?void 0:c.y)!=null?l:0);break;case"bottom":r=Le(t,(u=(d=n.offset)==null?void 0:d.x)!=null?u:0),a=Wa(i,n.percent,(f=(p=n.offset)==null?void 0:p.y)!=null?f:0);break;case"left":r=Va(t,n.percent,(h=(g=n.offset)==null?void 0:g.x)!=null?h:0),a=Le(i,(b=(m=n.offset)==null?void 0:m.y)!=null?b:0);break;case"right":r=Ya(t,n.percent,(y=(v=n.offset)==null?void 0:v.x)!=null?y:0),a=Le(i,(w=(x=n.offset)==null?void 0:x.y)!=null?w:0);break;case"center":r=Le(t,(A=(E=n.offset)==null?void 0:E.x)!=null?A:0),a=Le(i,(k=(S=n.offset)==null?void 0:S.y)!=null?k:0);break}e.position?e.position.set(r,a):(e.x=r,e.y=a),n.scale!==void 0&&n.scale!==1&&e.scale&&(typeof e.scale.set=="function"?e.scale.set(n.scale,n.scale):(e.scale.x=n.scale,e.scale.y=n.scale))}function mg(e,t,i,n=.2,r=1,a=!0,s=!1){let o=p0(i,n),c=Wa(i,n/2);ze(e,Le(t),c);let l=a?r*mt.scaleFactor:r;Ze(e,l),s&&!$a.find(d=>d.element===e)&&s0(e,mg,t,i,n,r,a)}function h0(e,t,i,n=.1,r=1){ze(e,Le(t),Ga(i,n)),Ze(e,r)}function g0(e,t,i,n=0,r=0,a=1){ze(e,Le(t,n),Le(i,r)),Ze(e,a)}function m0(e,t,i,n=.1,r=1){ze(e,Va(t,n),Le(i)),Ze(e,r)}function b0(e,t,i,n=.1,r=1){ze(e,Ya(t,n),Le(i)),Ze(e,r)}function v0(e,t,i,n=.05,r=.05,a=1){ze(e,Va(t,r),Wa(i,n)),Ze(e,a)}function y0(e,t,i,n=.05,r=.05,a=1){ze(e,Ya(t,r),Wa(i,n)),Ze(e,a)}function x0(e,t,i,n=.05,r=.05,a=1){ze(e,Va(t,r),Ga(i,n)),Ze(e,a)}function w0(e,t,i,n=.05,r=.05,a=1){ze(e,Ya(t,r),Ga(i,n)),Ze(e,a)}function ze(e,t,i){e&&e.position?typeof e.position.set=="function"?e.position.set(t,i):(e.position.x=t,e.position.y=i):e&&(e.x=t,e.y=i)}function Ze(e,t){t!==1&&e&&e.scale&&(typeof e.scale.set=="function"?e.scale.set(t,t):e.scale.x!==void 0&&e.scale.y!==void 0&&(e.scale.x=t,e.scale.y=t))}var ii={default:{layout:{scale_multiplier:1,position_offset:{x:0,y:0},debug_rect_visible:!0,debug_rect_color:16711680,debug_rect_thickness:4,debug_rect_scale_x:1,debug_rect_scale_y:1,screen_scale_x:1,screen_scale_y:1},engine:{scale:1,background_scale:1.05,background_offset_y:0,background_alpha:.98,label_pulse_speed:3,label_pulse_intensity:.03}},wide:{layout:{scale_multiplier:1,position_offset:{x:0,y:0},debug_rect_visible:!0,debug_rect_color:16711680,debug_rect_thickness:4,debug_rect_scale_x:1,debug_rect_scale_y:1,screen_scale_x:.9,screen_scale_y:1.1},engine:{scale:1,background_scale:1.1,background_offset_y:0,background_alpha:.95,label_pulse_speed:3,label_pulse_intensity:.03}},square:{layout:{scale_multiplier:1,position_offset:{x:0,y:0},debug_rect_visible:!0,debug_rect_color:16711680,debug_rect_thickness:4,debug_rect_scale_x:1,debug_rect_scale_y:1,screen_scale_x:.85,screen_scale_y:.85},engine:{scale:1,background_scale:1,background_offset_y:0,background_alpha:1,label_pulse_speed:3,label_pulse_intensity:.03}},tall:{layout:{scale_multiplier:1,position_offset:{x:0,y:0},debug_rect_visible:!0,debug_rect_color:16711680,debug_rect_thickness:4,debug_rect_scale_x:1,debug_rect_scale_y:1,screen_scale_x:1.1,screen_scale_y:.9},engine:{scale:1,background_scale:.95,background_offset_y:0,background_alpha:1,label_pulse_speed:3,label_pulse_intensity:.03}}};function _0(e){return e&&ii[e]?JSON.parse(JSON.stringify(ii[e])):JSON.parse(JSON.stringify(X))}function Qn(e){Object.keys(e).forEach(t=>{let i=t;X[i]&&e[i]&&Object.assign(X[i],e[i])}),console.log("Config applied:",e)}function E0(e,t){let i=e/t;i>1.6?(Qn(ii.wide),console.log("Applied WIDE config for ratio:",i)):i<.7?(Qn(ii.tall),console.log("Applied TALL config for ratio:",i)):i>.8&&i<1.2?(Qn(ii.square),console.log("Applied SQUARE config for ratio:",i)):(Qn(ii.default),console.log("Applied DEFAULT config for ratio:",i))}if(typeof window!="undefined"){let e=window;e.configPresets=ii,e.resolveAnchorVec2=e.resolveAnchorVec2||qa,e.resolveScreenAnchorPoint=e.resolveScreenAnchorPoint||er,e.resolveScreenRatioPoint=e.resolveScreenRatioPoint||tr}var we=null;function S0(e,t,i,n,r,a={}){var j,L,D,$,ue,Y,se,oe,be,bt,ni,ir,F,Be,Je,vt,Qe,zt,ri,ai,et,si,yt,nr,rr,Jl,Ql,ec,tc,ic,nc,rc,ac,sc,oc,lc,cc;let s=(j=a.enableDebugLogs)!=null?j:!1;s&&(console.log("\u{1F3AF} [LAYOUT_DEBUGS] ===== STARTING LAYOUT CALCULATION ====="),console.log("\u{1F3AF} [LAYOUT_DEBUGS] Screen dimensions:",{width:n.width,height:n.height}),console.log("\u{1F3AF} [LAYOUT_DEBUGS] Time:",i),console.log("\u{1F3AF} [LAYOUT_DEBUGS] Options:",a));let{mainContainer:o,label:c,background:l,backgroundTexture:d,app:u}=e;if(!u||!u.renderer){s&&console.log("\u{1F3AF} [LAYOUT_DEBUGS] \u274C No app or renderer, skipping layout");return}s&&(console.log("\u{1F3AF} [LAYOUT_DEBUGS] App renderer dimensions:",{width:u.renderer.width,height:u.renderer.height}),console.log("\u{1F3AF} [LAYOUT_DEBUGS] App screen dimensions:",{width:u.screen.width,height:u.screen.height}));let p=n.width,f=n.height;s&&console.log("\u{1F3AF} [LAYOUT_DEBUGS] Base dimensions:",{baseWidth:p,baseHeight:f});let g=p*X.layout.screen_scale_x,h=f*X.layout.screen_scale_y,m=p/2,b=t.engine.runtime||{},v=b.layout||{};s&&(console.log("\u{1F3AF} [LAYOUT_DEBUGS] Debug config:",{screen_scale_x:X.layout.screen_scale_x,screen_scale_y:X.layout.screen_scale_y}),console.log("\u{1F3AF} [LAYOUT_DEBUGS] Calculated dimensions:",{width:g,height:h,midX:m}),console.log("\u{1F3AF} [LAYOUT_DEBUGS] Engine runtime:",b),console.log("\u{1F3AF} [LAYOUT_DEBUGS] Layout config:",v));let y=v.design_width_portrait||400,x=g/y;x=Math.min(x,1.15);let w=x*((L=X.engine.scale)!=null?L:1),E=(D=a.skipMainContainerTransform)!=null?D:!1;!E&&o&&o.scale&&(typeof o.scale.set=="function"?o.scale.set(w):(o.scale.x=w,o.scale.y=w));let A=($=v.main_container_anchor)!=null?$:"center",S=(ue=v.main_container_position_ratio)!=null?ue:{x:.5,y:.5},k=(Y=v.main_container_offset)!=null?Y:{x:0,y:0},I=v.main_container_position_ratio?tr(p,f,S):er(p,f,A),_=I.x+k.x+X.layout.position_offset.x,C=I.y+k.y+X.layout.position_offset.y;if(!E&&o&&o.position&&(typeof o.position.set=="function"?o.position.set(_,C):(o.position.x=_,o.position.y=C)),r&&(o!=null&&o.toLocal))for(let[pe,fe]of t.objects.entries()){let Z=fe==null?void 0:fe.transform;if(!Z||((se=Z.position_mode)!=null?se:"static")!=="static")continue;let q=(oe=r.get)==null?void 0:oe.call(r,pe),Ne=((be=q==null?void 0:q.getDisplayObject)==null?void 0:be.call(q))||(q==null?void 0:q.pixiObject)||q;if(!Ne||Ne.parent!==o)continue;let Qi=Z.position_ratio!=null?tr(p,f,Z.position_ratio):er(p,f,(bt=Z.anchor)!=null?bt:"center"),ar=o.toLocal(new a0(Qi.x,Qi.y)),sr=(ni=Z.position)!=null?ni:{x:0,y:0},en=ar.x+sr.x,Bt=ar.y+sr.y;typeof(q==null?void 0:q.setPosition)=="function"?q.setPosition(en,Bt):(ze(Ne,en,Bt),(ir=q==null?void 0:q.transform)!=null&&ir.position&&(q.transform.position.x=en,q.transform.position.y=Bt))}let R=typeof window!="undefined"?window.__BUILD_SETTINGS__:null,O=((R==null?void 0:R.buildMode)||(typeof __BUILD_MODE__!="undefined"?__BUILD_MODE__:"dev"))==="dev";if(X.layout.debug_rect_visible&&O){(!we||we.parent!==u.stage)&&(we==null||we.destroy(),we=new r0,we.zIndex=9999,u.stage.addChild(we)),we.clear();let pe=X.layout.debug_rect_scale_x,fe=X.layout.debug_rect_scale_y,Z=(p-4)*pe,Re=(f-4)*fe,q=(p-Z)/2,Ne=(f-Re)/2;s&&(console.log("\u{1F3AF} [LAYOUT_DEBUGS] ===== DEBUG RECT POSITIONING ====="),console.log("\u{1F3AF} [LAYOUT_DEBUGS] Debug rect calculations:",{baseWidth:p,baseHeight:f,rectW:Z,rectH:Re,offsetX:q,offsetY:Ne}),console.log("\u{1F3AF} [LAYOUT_DEBUGS] Debug rect final position:",{x:2+q,y:2+Ne,width:Z,height:Re})),we.rect(2+q,2+Ne,Z,Re).stroke({width:X.layout.debug_rect_thickness,color:X.layout.debug_rect_color})}else we&&(we.destroy(),we=null);let T=((F=e.label)==null?void 0:F.config)||t.objects.get("label_1")||t.objects.get("ui_tutorial_1");if(c&&c.position&&T){let pe=(Be=T==null?void 0:T.render)==null?void 0:Be.anchor,fe=(vt=(Je=T==null?void 0:T.transform)==null?void 0:Je.anchor)!=null?vt:"center",Z=(Qe=T==null?void 0:T.transform)==null?void 0:Qe.position_ratio,Re=((zt=T==null?void 0:T.transform)==null?void 0:zt.offset)||{x:0,y:0};Zl(c,p,f,{anchor:fe,positionRatio:Z,offset:{x:Re.x*w,y:Re.y*w},renderAnchor:pe})}if(c&&c.alpha>0){let pe=1+Math.sin(i*X.engine.label_pulse_speed)*X.engine.label_pulse_intensity,fe=(ai=(ri=T==null?void 0:T.transform)==null?void 0:ri.scale)!=null?ai:1,Z=pe*w*fe;c.scale&&(typeof c.scale.set=="function"?c.scale.set(Z):(c.scale.x=Z,c.scale.y=Z))}if(s&&console.log("\u{1F3AF} [LAYOUT_DEBUGS] ===== BACKGROUND POSITIONING ====="),l){s&&(console.log("\u{1F3AF} [LAYOUT_DEBUGS] Background object exists:",!!l),console.log("\u{1F3AF} [LAYOUT_DEBUGS] Background type:",(et=l.constructor)==null?void 0:et.name)),l.alpha=((yt=(si=b.background)==null?void 0:si.alpha)!=null?yt:.98)*X.engine.background_alpha,s&&console.log("\u{1F3AF} [LAYOUT_DEBUGS] Background alpha set to:",l.alpha);let pe=t.objects.get("background_1");s&&console.log("\u{1F3AF} [LAYOUT_DEBUGS] Background config:",pe);let fe=(pe==null?void 0:pe.transform)||{};s&&console.log("\u{1F3AF} [LAYOUT_DEBUGS] Background transform:",fe);let Z=fe.offset||{x:0,y:0},Re=((rr=(nr=b.background)==null?void 0:nr.offset_y)!=null?rr:0)+X.engine.background_offset_y,q=(Ql=(Jl=pe==null?void 0:pe.render)==null?void 0:Jl.anchor)!=null?Ql:{x:.5,y:.5},Ne=(ec=fe.anchor)!=null?ec:"center",Qi=fe.position_ratio;if(s&&console.log("\u{1F3AF} [LAYOUT_DEBUGS] Background positioning params:",{bgOffset:Z,bgRuntimeOffsetY:Re,bgRenderAnchor:q,bgScreenAnchor:Ne,bgPositionRatio:Qi,baseWidth:p,baseHeight:f,finalScale:w}),Zl(l,p,f,{anchor:Ne,positionRatio:Qi,offset:{x:Z.x*w,y:Z.y*w+Re},renderAnchor:q}),s&&(console.log("\u{1F3AF} [LAYOUT_DEBUGS] Background position after applyScreenAnchor:",{x:l.x,y:l.y,scaleX:(tc=l.scale)==null?void 0:tc.x,scaleY:(ic=l.scale)==null?void 0:ic.y,anchorX:(nc=l.anchor)==null?void 0:nc.x,anchorY:(rc=l.anchor)==null?void 0:rc.y,pivotX:(ac=l.pivot)==null?void 0:ac.x,pivotY:(sc=l.pivot)==null?void 0:sc.y,width:l.width,height:l.height}),console.log("\u{1F3AF} [LAYOUT_DEBUGS] Background texture dimensions:",{textureWidth:d==null?void 0:d.width,textureHeight:d==null?void 0:d.height})),d){let ar=Math.max(g/d.width,h/d.height),sr=(lc=(oc=b.background)==null?void 0:oc.scale_multiplier)!=null?lc:1.05,en=(cc=fe.scale)!=null?cc:1,Bt=ar*sr*X.engine.background_scale*en;l.scale&&(typeof l.scale.set=="function"?l.scale.set(Bt):(l.scale.x=Bt,l.scale.y=Bt))}else l&&typeof l.clear=="function"&&(l.clear(),l.rect(-g/2,-h/2,g,h).fill({color:1444375}))}}function A0(e){var o,c,l;let{setState:t,updateLabelAlpha:i,updateHandAlpha:n,config:r,states:a}=e,s=((c=(o=r.engine)==null?void 0:o.runtime)==null?void 0:c.timeline)||{};t(a.showHook),setTimeout(()=>{i(1),n(1),t(a.waitInput),console.log("[GAME] \u23F3 Game ready for user input - tutorial shown")},(l=s.tutorial_delay_ms)!=null?l:1500)}export{qc as a,Gl as b,za as c,Ba as d,Na as e,Xn as f,Ux as g,$x as h,qx as i,Gx as j,Il as k,Kx as l,Ot as m,Vl as n,Zn as o,Jn as p,Xx as q,t0 as r,i0 as s,n0 as t,Kl as u,Ua as v,l0 as w,Xl as x,qa as y,er as z,tr as A,Zl as B,S0 as C,A0 as D,Gc as E,Wc as F,ls as G,di as H,B0 as I,Ra as J,Cl as K,Gh as L,Ll as M,_E as N,EE as O,ft as P,kx as Q,Lx as R,Dl as S,Xe as T,pt as U};