brs-js 2.1.2 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +271 -190
- package/dist/dist.js +6 -1
- package/dist/dist.js.map +1 -1
- package/dist/dist.mjs +7393 -0
- package/dist/dist.mjs.map +1 -0
- package/dist/dist.node.js +6 -1
- package/dist/dist.node.js.map +1 -1
- package/dist/dist.web.js +6 -1
- package/dist/dist.web.js.map +1 -1
- package/dist/src/brdb/bits.d.ts +13 -0
- package/dist/src/brdb/bits.d.ts.map +1 -0
- package/dist/src/brdb/brdb.d.ts +131 -0
- package/dist/src/brdb/brdb.d.ts.map +1 -0
- package/dist/src/brdb/brz.d.ts +51 -0
- package/dist/src/brdb/brz.d.ts.map +1 -0
- package/dist/src/brdb/bytes.d.ts +56 -0
- package/dist/src/brdb/bytes.d.ts.map +1 -0
- package/dist/src/brdb/catalog.d.ts +5 -0
- package/dist/src/brdb/catalog.d.ts.map +1 -0
- package/dist/src/brdb/componentDb.d.ts +8 -0
- package/dist/src/brdb/componentDb.d.ts.map +1 -0
- package/dist/src/brdb/fs.d.ts +16 -0
- package/dist/src/brdb/fs.d.ts.map +1 -0
- package/dist/src/brdb/guid.d.ts +11 -0
- package/dist/src/brdb/guid.d.ts.map +1 -0
- package/dist/src/brdb/index.d.ts +21 -0
- package/dist/src/brdb/index.d.ts.map +1 -0
- package/dist/src/brdb/msgpack.d.ts +23 -0
- package/dist/src/brdb/msgpack.d.ts.map +1 -0
- package/dist/src/brdb/pending.d.ts +11 -0
- package/dist/src/brdb/pending.d.ts.map +1 -0
- package/dist/src/brdb/reader.d.ts +176 -0
- package/dist/src/brdb/reader.d.ts.map +1 -0
- package/dist/src/brdb/schema.d.ts +73 -0
- package/dist/src/brdb/schema.d.ts.map +1 -0
- package/dist/src/brdb/schemaText.d.ts +8 -0
- package/dist/src/brdb/schemaText.d.ts.map +1 -0
- package/dist/src/brdb/schemas.d.ts +4 -0
- package/dist/src/brdb/schemas.d.ts.map +1 -0
- package/dist/src/brdb/world.d.ts +80 -0
- package/dist/src/brdb/world.d.ts.map +1 -0
- package/dist/src/{constants.d.ts → brs/constants.d.ts} +1 -1
- package/dist/src/brs/constants.d.ts.map +1 -0
- package/dist/src/brs/read.d.ts.map +1 -0
- package/dist/src/brs/read.v1.d.ts.map +1 -0
- package/dist/src/brs/read.v10.d.ts.map +1 -0
- package/dist/src/brs/read.v14.d.ts.map +1 -0
- package/dist/src/brs/read.v2.d.ts.map +1 -0
- package/dist/src/brs/read.v3.d.ts.map +1 -0
- package/dist/src/brs/read.v4.d.ts.map +1 -0
- package/dist/src/brs/read.v8.d.ts.map +1 -0
- package/dist/src/brs/read.v9.d.ts.map +1 -0
- package/dist/src/brs/types.d.ts +1003 -0
- package/dist/src/brs/types.d.ts.map +1 -0
- package/dist/src/{utils.d.ts → brs/utils.d.ts} +4 -9
- package/dist/src/brs/utils.d.ts.map +1 -0
- package/dist/src/{write.d.ts → brs/write.d.ts} +1 -1
- package/dist/src/brs/write.d.ts.map +1 -0
- package/dist/src/index.d.ts +10 -7
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/uuid.d.ts +1 -1
- package/dist/src/uuid.d.ts.map +1 -1
- package/package.json +42 -18
- package/dist/src/constants.d.ts.map +0 -1
- package/dist/src/read.d.ts.map +0 -1
- package/dist/src/read.v1.d.ts.map +0 -1
- package/dist/src/read.v10.d.ts.map +0 -1
- package/dist/src/read.v14.d.ts.map +0 -1
- package/dist/src/read.v2.d.ts.map +0 -1
- package/dist/src/read.v3.d.ts.map +0 -1
- package/dist/src/read.v4.d.ts.map +0 -1
- package/dist/src/read.v8.d.ts.map +0 -1
- package/dist/src/read.v9.d.ts.map +0 -1
- package/dist/src/types.d.ts +0 -281
- package/dist/src/types.d.ts.map +0 -1
- package/dist/src/utils.d.ts.map +0 -1
- package/dist/src/write.d.ts.map +0 -1
- /package/dist/src/{read.d.ts → brs/read.d.ts} +0 -0
- /package/dist/src/{read.v1.d.ts → brs/read.v1.d.ts} +0 -0
- /package/dist/src/{read.v10.d.ts → brs/read.v10.d.ts} +0 -0
- /package/dist/src/{read.v14.d.ts → brs/read.v14.d.ts} +0 -0
- /package/dist/src/{read.v2.d.ts → brs/read.v2.d.ts} +0 -0
- /package/dist/src/{read.v3.d.ts → brs/read.v3.d.ts} +0 -0
- /package/dist/src/{read.v4.d.ts → brs/read.v4.d.ts} +0 -0
- /package/dist/src/{read.v8.d.ts → brs/read.v8.d.ts} +0 -0
- /package/dist/src/{read.v9.d.ts → brs/read.v9.d.ts} +0 -0
package/dist/dist.js
CHANGED
|
@@ -1,2 +1,7 @@
|
|
|
1
|
-
(()=>{"use strict";var t={83:(t,e,i)=>{var r=i(447),n=i(805),a=i(996),s=i(681),o=i(674),h=i(442),l=i(414),c=Object.prototype.toString;function d(t){if(!(this instanceof d))return new d(t);this.options=n.assign({chunkSize:16384,windowBits:0,to:""},t||{});var e=this.options;e.raw&&e.windowBits>=0&&e.windowBits<16&&(e.windowBits=-e.windowBits,0===e.windowBits&&(e.windowBits=-15)),!(e.windowBits>=0&&e.windowBits<16)||t&&t.windowBits||(e.windowBits+=32),e.windowBits>15&&e.windowBits<48&&(15&e.windowBits||(e.windowBits|=15)),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new h,this.strm.avail_out=0;var i=r.inflateInit2(this.strm,e.windowBits);if(i!==s.Z_OK)throw new Error(o[i]);if(this.header=new l,r.inflateGetHeader(this.strm,this.header),e.dictionary&&("string"==typeof e.dictionary?e.dictionary=a.string2buf(e.dictionary):"[object ArrayBuffer]"===c.call(e.dictionary)&&(e.dictionary=new Uint8Array(e.dictionary)),e.raw&&(i=r.inflateSetDictionary(this.strm,e.dictionary))!==s.Z_OK))throw new Error(o[i])}function u(t,e){var i=new d(e);if(i.push(t,!0),i.err)throw i.msg||o[i.err];return i.result}d.prototype.push=function(t,e){var i,o,h,l,d,u=this.strm,p=this.options.chunkSize,_=this.options.dictionary,f=!1;if(this.ended)return!1;o=e===~~e?e:!0===e?s.Z_FINISH:s.Z_NO_FLUSH,"string"==typeof t?u.input=a.binstring2buf(t):"[object ArrayBuffer]"===c.call(t)?u.input=new Uint8Array(t):u.input=t,u.next_in=0,u.avail_in=u.input.length;do{if(0===u.avail_out&&(u.output=new n.Buf8(p),u.next_out=0,u.avail_out=p),(i=r.inflate(u,s.Z_NO_FLUSH))===s.Z_NEED_DICT&&_&&(i=r.inflateSetDictionary(this.strm,_)),i===s.Z_BUF_ERROR&&!0===f&&(i=s.Z_OK,f=!1),i!==s.Z_STREAM_END&&i!==s.Z_OK)return this.onEnd(i),this.ended=!0,!1;u.next_out&&(0!==u.avail_out&&i!==s.Z_STREAM_END&&(0!==u.avail_in||o!==s.Z_FINISH&&o!==s.Z_SYNC_FLUSH)||("string"===this.options.to?(h=a.utf8border(u.output,u.next_out),l=u.next_out-h,d=a.buf2string(u.output,h),u.next_out=l,u.avail_out=p-l,l&&n.arraySet(u.output,u.output,h,l,0),this.onData(d)):this.onData(n.shrinkBuf(u.output,u.next_out)))),0===u.avail_in&&0===u.avail_out&&(f=!0)}while((u.avail_in>0||0===u.avail_out)&&i!==s.Z_STREAM_END);return i===s.Z_STREAM_END&&(o=s.Z_FINISH),o===s.Z_FINISH?(i=r.inflateEnd(this.strm),this.onEnd(i),this.ended=!0,i===s.Z_OK):o!==s.Z_SYNC_FLUSH||(this.onEnd(s.Z_OK),u.avail_out=0,!0)},d.prototype.onData=function(t){this.chunks.push(t)},d.prototype.onEnd=function(t){t===s.Z_OK&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=n.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg},e.Inflate=d,e.inflate=u,e.inflateRaw=function(t,e){return(e=e||{}).raw=!0,u(t,e)},e.ungzip=u},269:t=>{t.exports=function(t,e,i,r){for(var n=65535&t,a=t>>>16&65535,s=0;0!==i;){i-=s=i>2e3?2e3:i;do{a=a+(n=n+e[r++]|0)|0}while(--s);n%=65521,a%=65521}return n|a<<16}},293:t=>{t.exports=function(t,e){var i,r,n,a,s,o,h,l,c,d,u,p,_,f,b,g,m,w,y,k,v,x,B,A,E;i=t.state,r=t.next_in,A=t.input,n=r+(t.avail_in-5),a=t.next_out,E=t.output,s=a-(e-t.avail_out),o=a+(t.avail_out-257),h=i.dmax,l=i.wsize,c=i.whave,d=i.wnext,u=i.window,p=i.hold,_=i.bits,f=i.lencode,b=i.distcode,g=(1<<i.lenbits)-1,m=(1<<i.distbits)-1;t:do{_<15&&(p+=A[r++]<<_,_+=8,p+=A[r++]<<_,_+=8),w=f[p&g];e:for(;;){if(p>>>=y=w>>>24,_-=y,0==(y=w>>>16&255))E[a++]=65535&w;else{if(!(16&y)){if(64&y){if(32&y){i.mode=12;break t}t.msg="invalid literal/length code",i.mode=30;break t}w=f[(65535&w)+(p&(1<<y)-1)];continue e}for(k=65535&w,(y&=15)&&(_<y&&(p+=A[r++]<<_,_+=8),k+=p&(1<<y)-1,p>>>=y,_-=y),_<15&&(p+=A[r++]<<_,_+=8,p+=A[r++]<<_,_+=8),w=b[p&m];;){if(p>>>=y=w>>>24,_-=y,16&(y=w>>>16&255)){if(v=65535&w,_<(y&=15)&&(p+=A[r++]<<_,(_+=8)<y&&(p+=A[r++]<<_,_+=8)),(v+=p&(1<<y)-1)>h){t.msg="invalid distance too far back",i.mode=30;break t}if(p>>>=y,_-=y,v>(y=a-s)){if((y=v-y)>c&&i.sane){t.msg="invalid distance too far back",i.mode=30;break t}if(x=0,B=u,0===d){if(x+=l-y,y<k){k-=y;do{E[a++]=u[x++]}while(--y);x=a-v,B=E}}else if(d<y){if(x+=l+d-y,(y-=d)<k){k-=y;do{E[a++]=u[x++]}while(--y);if(x=0,d<k){k-=y=d;do{E[a++]=u[x++]}while(--y);x=a-v,B=E}}}else if(x+=d-y,y<k){k-=y;do{E[a++]=u[x++]}while(--y);x=a-v,B=E}for(;k>2;)E[a++]=B[x++],E[a++]=B[x++],E[a++]=B[x++],k-=3;k&&(E[a++]=B[x++],k>1&&(E[a++]=B[x++]))}else{x=a-v;do{E[a++]=E[x++],E[a++]=E[x++],E[a++]=E[x++],k-=3}while(k>2);k&&(E[a++]=E[x++],k>1&&(E[a++]=E[x++]))}break}if(64&y){t.msg="invalid distance code",i.mode=30;break t}w=b[(65535&w)+(p&(1<<y)-1)]}}break}}while(r<n&&a<o);r-=k=_>>3,p&=(1<<(_-=k<<3))-1,t.next_in=r,t.next_out=a,t.avail_in=r<n?n-r+5:5-(r-n),t.avail_out=a<o?o-a+257:257-(a-o),i.hold=p,i.bits=_}},303:(t,e,i)=>{var r=i(411),n=i(805),a=i(996),s=i(674),o=i(442),h=Object.prototype.toString;function l(t){if(!(this instanceof l))return new l(t);this.options=n.assign({level:-1,method:8,chunkSize:16384,windowBits:15,memLevel:8,strategy:0,to:""},t||{});var e=this.options;e.raw&&e.windowBits>0?e.windowBits=-e.windowBits:e.gzip&&e.windowBits>0&&e.windowBits<16&&(e.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new o,this.strm.avail_out=0;var i=r.deflateInit2(this.strm,e.level,e.method,e.windowBits,e.memLevel,e.strategy);if(0!==i)throw new Error(s[i]);if(e.header&&r.deflateSetHeader(this.strm,e.header),e.dictionary){var c;if(c="string"==typeof e.dictionary?a.string2buf(e.dictionary):"[object ArrayBuffer]"===h.call(e.dictionary)?new Uint8Array(e.dictionary):e.dictionary,0!==(i=r.deflateSetDictionary(this.strm,c)))throw new Error(s[i]);this._dict_set=!0}}function c(t,e){var i=new l(e);if(i.push(t,!0),i.err)throw i.msg||s[i.err];return i.result}l.prototype.push=function(t,e){var i,s,o=this.strm,l=this.options.chunkSize;if(this.ended)return!1;s=e===~~e?e:!0===e?4:0,"string"==typeof t?o.input=a.string2buf(t):"[object ArrayBuffer]"===h.call(t)?o.input=new Uint8Array(t):o.input=t,o.next_in=0,o.avail_in=o.input.length;do{if(0===o.avail_out&&(o.output=new n.Buf8(l),o.next_out=0,o.avail_out=l),1!==(i=r.deflate(o,s))&&0!==i)return this.onEnd(i),this.ended=!0,!1;0!==o.avail_out&&(0!==o.avail_in||4!==s&&2!==s)||("string"===this.options.to?this.onData(a.buf2binstring(n.shrinkBuf(o.output,o.next_out))):this.onData(n.shrinkBuf(o.output,o.next_out)))}while((o.avail_in>0||0===o.avail_out)&&1!==i);return 4===s?(i=r.deflateEnd(this.strm),this.onEnd(i),this.ended=!0,0===i):2!==s||(this.onEnd(0),o.avail_out=0,!0)},l.prototype.onData=function(t){this.chunks.push(t)},l.prototype.onEnd=function(t){0===t&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=n.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg},e.Deflate=l,e.deflate=c,e.deflateRaw=function(t,e){return(e=e||{}).raw=!0,c(t,e)},e.gzip=function(t,e){return(e=e||{}).gzip=!0,c(t,e)}},411:(t,e,i)=>{var r,n=i(805),a=i(665),s=i(269),o=i(823),h=i(674),l=-2,c=258,d=262,u=103,p=113,_=666;function f(t,e){return t.msg=h[e],e}function b(t){return(t<<1)-(t>4?9:0)}function g(t){for(var e=t.length;--e>=0;)t[e]=0}function m(t){var e=t.state,i=e.pending;i>t.avail_out&&(i=t.avail_out),0!==i&&(n.arraySet(t.output,e.pending_buf,e.pending_out,i,t.next_out),t.next_out+=i,e.pending_out+=i,t.total_out+=i,t.avail_out-=i,e.pending-=i,0===e.pending&&(e.pending_out=0))}function w(t,e){a._tr_flush_block(t,t.block_start>=0?t.block_start:-1,t.strstart-t.block_start,e),t.block_start=t.strstart,m(t.strm)}function y(t,e){t.pending_buf[t.pending++]=e}function k(t,e){t.pending_buf[t.pending++]=e>>>8&255,t.pending_buf[t.pending++]=255&e}function v(t,e,i,r){var a=t.avail_in;return a>r&&(a=r),0===a?0:(t.avail_in-=a,n.arraySet(e,t.input,t.next_in,a,i),1===t.state.wrap?t.adler=s(t.adler,e,a,i):2===t.state.wrap&&(t.adler=o(t.adler,e,a,i)),t.next_in+=a,t.total_in+=a,a)}function x(t,e){var i,r,n=t.max_chain_length,a=t.strstart,s=t.prev_length,o=t.nice_match,h=t.strstart>t.w_size-d?t.strstart-(t.w_size-d):0,l=t.window,u=t.w_mask,p=t.prev,_=t.strstart+c,f=l[a+s-1],b=l[a+s];t.prev_length>=t.good_match&&(n>>=2),o>t.lookahead&&(o=t.lookahead);do{if(l[(i=e)+s]===b&&l[i+s-1]===f&&l[i]===l[a]&&l[++i]===l[a+1]){a+=2,i++;do{}while(l[++a]===l[++i]&&l[++a]===l[++i]&&l[++a]===l[++i]&&l[++a]===l[++i]&&l[++a]===l[++i]&&l[++a]===l[++i]&&l[++a]===l[++i]&&l[++a]===l[++i]&&a<_);if(r=c-(_-a),a=_-c,r>s){if(t.match_start=e,s=r,r>=o)break;f=l[a+s-1],b=l[a+s]}}}while((e=p[e&u])>h&&0!==--n);return s<=t.lookahead?s:t.lookahead}function B(t){var e,i,r,a,s,o=t.w_size;do{if(a=t.window_size-t.lookahead-t.strstart,t.strstart>=o+(o-d)){n.arraySet(t.window,t.window,o,o,0),t.match_start-=o,t.strstart-=o,t.block_start-=o,e=i=t.hash_size;do{r=t.head[--e],t.head[e]=r>=o?r-o:0}while(--i);e=i=o;do{r=t.prev[--e],t.prev[e]=r>=o?r-o:0}while(--i);a+=o}if(0===t.strm.avail_in)break;if(i=v(t.strm,t.window,t.strstart+t.lookahead,a),t.lookahead+=i,t.lookahead+t.insert>=3)for(s=t.strstart-t.insert,t.ins_h=t.window[s],t.ins_h=(t.ins_h<<t.hash_shift^t.window[s+1])&t.hash_mask;t.insert&&(t.ins_h=(t.ins_h<<t.hash_shift^t.window[s+3-1])&t.hash_mask,t.prev[s&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=s,s++,t.insert--,!(t.lookahead+t.insert<3)););}while(t.lookahead<d&&0!==t.strm.avail_in)}function A(t,e){for(var i,r;;){if(t.lookahead<d){if(B(t),t.lookahead<d&&0===e)return 1;if(0===t.lookahead)break}if(i=0,t.lookahead>=3&&(t.ins_h=(t.ins_h<<t.hash_shift^t.window[t.strstart+3-1])&t.hash_mask,i=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),0!==i&&t.strstart-i<=t.w_size-d&&(t.match_length=x(t,i)),t.match_length>=3)if(r=a._tr_tally(t,t.strstart-t.match_start,t.match_length-3),t.lookahead-=t.match_length,t.match_length<=t.max_lazy_match&&t.lookahead>=3){t.match_length--;do{t.strstart++,t.ins_h=(t.ins_h<<t.hash_shift^t.window[t.strstart+3-1])&t.hash_mask,i=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart}while(0!==--t.match_length);t.strstart++}else t.strstart+=t.match_length,t.match_length=0,t.ins_h=t.window[t.strstart],t.ins_h=(t.ins_h<<t.hash_shift^t.window[t.strstart+1])&t.hash_mask;else r=a._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++;if(r&&(w(t,!1),0===t.strm.avail_out))return 1}return t.insert=t.strstart<2?t.strstart:2,4===e?(w(t,!0),0===t.strm.avail_out?3:4):t.last_lit&&(w(t,!1),0===t.strm.avail_out)?1:2}function E(t,e){for(var i,r,n;;){if(t.lookahead<d){if(B(t),t.lookahead<d&&0===e)return 1;if(0===t.lookahead)break}if(i=0,t.lookahead>=3&&(t.ins_h=(t.ins_h<<t.hash_shift^t.window[t.strstart+3-1])&t.hash_mask,i=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),t.prev_length=t.match_length,t.prev_match=t.match_start,t.match_length=2,0!==i&&t.prev_length<t.max_lazy_match&&t.strstart-i<=t.w_size-d&&(t.match_length=x(t,i),t.match_length<=5&&(1===t.strategy||3===t.match_length&&t.strstart-t.match_start>4096)&&(t.match_length=2)),t.prev_length>=3&&t.match_length<=t.prev_length){n=t.strstart+t.lookahead-3,r=a._tr_tally(t,t.strstart-1-t.prev_match,t.prev_length-3),t.lookahead-=t.prev_length-1,t.prev_length-=2;do{++t.strstart<=n&&(t.ins_h=(t.ins_h<<t.hash_shift^t.window[t.strstart+3-1])&t.hash_mask,i=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart)}while(0!==--t.prev_length);if(t.match_available=0,t.match_length=2,t.strstart++,r&&(w(t,!1),0===t.strm.avail_out))return 1}else if(t.match_available){if((r=a._tr_tally(t,0,t.window[t.strstart-1]))&&w(t,!1),t.strstart++,t.lookahead--,0===t.strm.avail_out)return 1}else t.match_available=1,t.strstart++,t.lookahead--}return t.match_available&&(r=a._tr_tally(t,0,t.window[t.strstart-1]),t.match_available=0),t.insert=t.strstart<2?t.strstart:2,4===e?(w(t,!0),0===t.strm.avail_out?3:4):t.last_lit&&(w(t,!1),0===t.strm.avail_out)?1:2}function I(t,e,i,r,n){this.good_length=t,this.max_lazy=e,this.nice_length=i,this.max_chain=r,this.func=n}function z(){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=8,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new n.Buf16(1146),this.dyn_dtree=new n.Buf16(122),this.bl_tree=new n.Buf16(78),g(this.dyn_ltree),g(this.dyn_dtree),g(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new n.Buf16(16),this.heap=new n.Buf16(573),g(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new n.Buf16(573),g(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 C(t){var e;return t&&t.state?(t.total_in=t.total_out=0,t.data_type=2,(e=t.state).pending=0,e.pending_out=0,e.wrap<0&&(e.wrap=-e.wrap),e.status=e.wrap?42:p,t.adler=2===e.wrap?0:1,e.last_flush=0,a._tr_init(e),0):f(t,l)}function S(t){var e,i=C(t);return 0===i&&((e=t.state).window_size=2*e.w_size,g(e.head),e.max_lazy_match=r[e.level].max_lazy,e.good_match=r[e.level].good_length,e.nice_match=r[e.level].nice_length,e.max_chain_length=r[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=2,e.match_available=0,e.ins_h=0),i}function M(t,e,i,r,a,s){if(!t)return l;var o=1;if(-1===e&&(e=6),r<0?(o=0,r=-r):r>15&&(o=2,r-=16),a<1||a>9||8!==i||r<8||r>15||e<0||e>9||s<0||s>4)return f(t,l);8===r&&(r=9);var h=new z;return t.state=h,h.strm=t,h.wrap=o,h.gzhead=null,h.w_bits=r,h.w_size=1<<h.w_bits,h.w_mask=h.w_size-1,h.hash_bits=a+7,h.hash_size=1<<h.hash_bits,h.hash_mask=h.hash_size-1,h.hash_shift=~~((h.hash_bits+3-1)/3),h.window=new n.Buf8(2*h.w_size),h.head=new n.Buf16(h.hash_size),h.prev=new n.Buf16(h.w_size),h.lit_bufsize=1<<a+6,h.pending_buf_size=4*h.lit_bufsize,h.pending_buf=new n.Buf8(h.pending_buf_size),h.d_buf=1*h.lit_bufsize,h.l_buf=3*h.lit_bufsize,h.level=e,h.strategy=s,h.method=i,S(t)}r=[new I(0,0,0,0,function(t,e){var i=65535;for(i>t.pending_buf_size-5&&(i=t.pending_buf_size-5);;){if(t.lookahead<=1){if(B(t),0===t.lookahead&&0===e)return 1;if(0===t.lookahead)break}t.strstart+=t.lookahead,t.lookahead=0;var r=t.block_start+i;if((0===t.strstart||t.strstart>=r)&&(t.lookahead=t.strstart-r,t.strstart=r,w(t,!1),0===t.strm.avail_out))return 1;if(t.strstart-t.block_start>=t.w_size-d&&(w(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,4===e?(w(t,!0),0===t.strm.avail_out?3:4):(t.strstart>t.block_start&&(w(t,!1),t.strm.avail_out),1)}),new I(4,4,8,4,A),new I(4,5,16,8,A),new I(4,6,32,32,A),new I(4,4,16,16,E),new I(8,16,32,32,E),new I(8,16,128,128,E),new I(8,32,128,256,E),new I(32,128,258,1024,E),new I(32,258,258,4096,E)],e.deflateInit=function(t,e){return M(t,e,8,15,8,0)},e.deflateInit2=M,e.deflateReset=S,e.deflateResetKeep=C,e.deflateSetHeader=function(t,e){return t&&t.state?2!==t.state.wrap?l:(t.state.gzhead=e,0):l},e.deflate=function(t,e){var i,n,s,h;if(!t||!t.state||e>5||e<0)return t?f(t,l):l;if(n=t.state,!t.output||!t.input&&0!==t.avail_in||n.status===_&&4!==e)return f(t,0===t.avail_out?-5:l);if(n.strm=t,i=n.last_flush,n.last_flush=e,42===n.status)if(2===n.wrap)t.adler=0,y(n,31),y(n,139),y(n,8),n.gzhead?(y(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)),y(n,255&n.gzhead.time),y(n,n.gzhead.time>>8&255),y(n,n.gzhead.time>>16&255),y(n,n.gzhead.time>>24&255),y(n,9===n.level?2:n.strategy>=2||n.level<2?4:0),y(n,255&n.gzhead.os),n.gzhead.extra&&n.gzhead.extra.length&&(y(n,255&n.gzhead.extra.length),y(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(t.adler=o(t.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=69):(y(n,0),y(n,0),y(n,0),y(n,0),y(n,0),y(n,9===n.level?2:n.strategy>=2||n.level<2?4:0),y(n,3),n.status=p);else{var d=8+(n.w_bits-8<<4)<<8;d|=(n.strategy>=2||n.level<2?0:n.level<6?1:6===n.level?2:3)<<6,0!==n.strstart&&(d|=32),d+=31-d%31,n.status=p,k(n,d),0!==n.strstart&&(k(n,t.adler>>>16),k(n,65535&t.adler)),t.adler=1}if(69===n.status)if(n.gzhead.extra){for(s=n.pending;n.gzindex<(65535&n.gzhead.extra.length)&&(n.pending!==n.pending_buf_size||(n.gzhead.hcrc&&n.pending>s&&(t.adler=o(t.adler,n.pending_buf,n.pending-s,s)),m(t),s=n.pending,n.pending!==n.pending_buf_size));)y(n,255&n.gzhead.extra[n.gzindex]),n.gzindex++;n.gzhead.hcrc&&n.pending>s&&(t.adler=o(t.adler,n.pending_buf,n.pending-s,s)),n.gzindex===n.gzhead.extra.length&&(n.gzindex=0,n.status=73)}else n.status=73;if(73===n.status)if(n.gzhead.name){s=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>s&&(t.adler=o(t.adler,n.pending_buf,n.pending-s,s)),m(t),s=n.pending,n.pending===n.pending_buf_size)){h=1;break}h=n.gzindex<n.gzhead.name.length?255&n.gzhead.name.charCodeAt(n.gzindex++):0,y(n,h)}while(0!==h);n.gzhead.hcrc&&n.pending>s&&(t.adler=o(t.adler,n.pending_buf,n.pending-s,s)),0===h&&(n.gzindex=0,n.status=91)}else n.status=91;if(91===n.status)if(n.gzhead.comment){s=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>s&&(t.adler=o(t.adler,n.pending_buf,n.pending-s,s)),m(t),s=n.pending,n.pending===n.pending_buf_size)){h=1;break}h=n.gzindex<n.gzhead.comment.length?255&n.gzhead.comment.charCodeAt(n.gzindex++):0,y(n,h)}while(0!==h);n.gzhead.hcrc&&n.pending>s&&(t.adler=o(t.adler,n.pending_buf,n.pending-s,s)),0===h&&(n.status=u)}else n.status=u;if(n.status===u&&(n.gzhead.hcrc?(n.pending+2>n.pending_buf_size&&m(t),n.pending+2<=n.pending_buf_size&&(y(n,255&t.adler),y(n,t.adler>>8&255),t.adler=0,n.status=p)):n.status=p),0!==n.pending){if(m(t),0===t.avail_out)return n.last_flush=-1,0}else if(0===t.avail_in&&b(e)<=b(i)&&4!==e)return f(t,-5);if(n.status===_&&0!==t.avail_in)return f(t,-5);if(0!==t.avail_in||0!==n.lookahead||0!==e&&n.status!==_){var v=2===n.strategy?function(t,e){for(var i;;){if(0===t.lookahead&&(B(t),0===t.lookahead)){if(0===e)return 1;break}if(t.match_length=0,i=a._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++,i&&(w(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,4===e?(w(t,!0),0===t.strm.avail_out?3:4):t.last_lit&&(w(t,!1),0===t.strm.avail_out)?1:2}(n,e):3===n.strategy?function(t,e){for(var i,r,n,s,o=t.window;;){if(t.lookahead<=c){if(B(t),t.lookahead<=c&&0===e)return 1;if(0===t.lookahead)break}if(t.match_length=0,t.lookahead>=3&&t.strstart>0&&(r=o[n=t.strstart-1])===o[++n]&&r===o[++n]&&r===o[++n]){s=t.strstart+c;do{}while(r===o[++n]&&r===o[++n]&&r===o[++n]&&r===o[++n]&&r===o[++n]&&r===o[++n]&&r===o[++n]&&r===o[++n]&&n<s);t.match_length=c-(s-n),t.match_length>t.lookahead&&(t.match_length=t.lookahead)}if(t.match_length>=3?(i=a._tr_tally(t,1,t.match_length-3),t.lookahead-=t.match_length,t.strstart+=t.match_length,t.match_length=0):(i=a._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++),i&&(w(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,4===e?(w(t,!0),0===t.strm.avail_out?3:4):t.last_lit&&(w(t,!1),0===t.strm.avail_out)?1:2}(n,e):r[n.level].func(n,e);if(3!==v&&4!==v||(n.status=_),1===v||3===v)return 0===t.avail_out&&(n.last_flush=-1),0;if(2===v&&(1===e?a._tr_align(n):5!==e&&(a._tr_stored_block(n,0,0,!1),3===e&&(g(n.head),0===n.lookahead&&(n.strstart=0,n.block_start=0,n.insert=0))),m(t),0===t.avail_out))return n.last_flush=-1,0}return 4!==e?0:n.wrap<=0?1:(2===n.wrap?(y(n,255&t.adler),y(n,t.adler>>8&255),y(n,t.adler>>16&255),y(n,t.adler>>24&255),y(n,255&t.total_in),y(n,t.total_in>>8&255),y(n,t.total_in>>16&255),y(n,t.total_in>>24&255)):(k(n,t.adler>>>16),k(n,65535&t.adler)),m(t),n.wrap>0&&(n.wrap=-n.wrap),0!==n.pending?0:1)},e.deflateEnd=function(t){var e;return t&&t.state?42!==(e=t.state.status)&&69!==e&&73!==e&&91!==e&&e!==u&&e!==p&&e!==_?f(t,l):(t.state=null,e===p?f(t,-3):0):l},e.deflateSetDictionary=function(t,e){var i,r,a,o,h,c,d,u,p=e.length;if(!t||!t.state)return l;if(2===(o=(i=t.state).wrap)||1===o&&42!==i.status||i.lookahead)return l;for(1===o&&(t.adler=s(t.adler,e,p,0)),i.wrap=0,p>=i.w_size&&(0===o&&(g(i.head),i.strstart=0,i.block_start=0,i.insert=0),u=new n.Buf8(i.w_size),n.arraySet(u,e,p-i.w_size,i.w_size,0),e=u,p=i.w_size),h=t.avail_in,c=t.next_in,d=t.input,t.avail_in=p,t.next_in=0,t.input=e,B(i);i.lookahead>=3;){r=i.strstart,a=i.lookahead-2;do{i.ins_h=(i.ins_h<<i.hash_shift^i.window[r+3-1])&i.hash_mask,i.prev[r&i.w_mask]=i.head[i.ins_h],i.head[i.ins_h]=r,r++}while(--a);i.strstart=r,i.lookahead=2,B(i)}return i.strstart+=i.lookahead,i.block_start=i.strstart,i.insert=i.lookahead,i.lookahead=0,i.match_length=i.prev_length=2,i.match_available=0,t.next_in=c,t.input=d,t.avail_in=h,i.wrap=o,0},e.deflateInfo="pako deflate (from Nodeca project)"},414:t=>{t.exports=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}},442:t=>{t.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}},447:(t,e,i)=>{var r=i(805),n=i(269),a=i(823),s=i(293),o=i(998),h=-2,l=12,c=30;function d(t){return(t>>>24&255)+(t>>>8&65280)+((65280&t)<<8)+((255&t)<<24)}function u(){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 r.Buf16(320),this.work=new r.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function p(t){var e;return t&&t.state?(e=t.state,t.total_in=t.total_out=e.total=0,t.msg="",e.wrap&&(t.adler=1&e.wrap),e.mode=1,e.last=0,e.havedict=0,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new r.Buf32(852),e.distcode=e.distdyn=new r.Buf32(592),e.sane=1,e.back=-1,0):h}function _(t){var e;return t&&t.state?((e=t.state).wsize=0,e.whave=0,e.wnext=0,p(t)):h}function f(t,e){var i,r;return t&&t.state?(r=t.state,e<0?(i=0,e=-e):(i=1+(e>>4),e<48&&(e&=15)),e&&(e<8||e>15)?h:(null!==r.window&&r.wbits!==e&&(r.window=null),r.wrap=i,r.wbits=e,_(t))):h}function b(t,e){var i,r;return t?(r=new u,t.state=r,r.window=null,0!==(i=f(t,e))&&(t.state=null),i):h}var g,m,w=!0;function y(t){if(w){var e;for(g=new r.Buf32(512),m=new r.Buf32(32),e=0;e<144;)t.lens[e++]=8;for(;e<256;)t.lens[e++]=9;for(;e<280;)t.lens[e++]=7;for(;e<288;)t.lens[e++]=8;for(o(1,t.lens,0,288,g,0,t.work,{bits:9}),e=0;e<32;)t.lens[e++]=5;o(2,t.lens,0,32,m,0,t.work,{bits:5}),w=!1}t.lencode=g,t.lenbits=9,t.distcode=m,t.distbits=5}function k(t,e,i,n){var a,s=t.state;return null===s.window&&(s.wsize=1<<s.wbits,s.wnext=0,s.whave=0,s.window=new r.Buf8(s.wsize)),n>=s.wsize?(r.arraySet(s.window,e,i-s.wsize,s.wsize,0),s.wnext=0,s.whave=s.wsize):((a=s.wsize-s.wnext)>n&&(a=n),r.arraySet(s.window,e,i-n,a,s.wnext),(n-=a)?(r.arraySet(s.window,e,i-n,n,0),s.wnext=n,s.whave=s.wsize):(s.wnext+=a,s.wnext===s.wsize&&(s.wnext=0),s.whave<s.wsize&&(s.whave+=a))),0}e.inflateReset=_,e.inflateReset2=f,e.inflateResetKeep=p,e.inflateInit=function(t){return b(t,15)},e.inflateInit2=b,e.inflate=function(t,e){var i,u,p,_,f,b,g,m,w,v,x,B,A,E,I,z,C,S,M,G,W,O,U,T,P=0,D=new r.Buf8(4),R=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!t||!t.state||!t.output||!t.input&&0!==t.avail_in)return h;(i=t.state).mode===l&&(i.mode=13),f=t.next_out,p=t.output,g=t.avail_out,_=t.next_in,u=t.input,b=t.avail_in,m=i.hold,w=i.bits,v=b,x=g,O=0;t:for(;;)switch(i.mode){case 1:if(0===i.wrap){i.mode=13;break}for(;w<16;){if(0===b)break t;b--,m+=u[_++]<<w,w+=8}if(2&i.wrap&&35615===m){i.check=0,D[0]=255&m,D[1]=m>>>8&255,i.check=a(i.check,D,2,0),m=0,w=0,i.mode=2;break}if(i.flags=0,i.head&&(i.head.done=!1),!(1&i.wrap)||(((255&m)<<8)+(m>>8))%31){t.msg="incorrect header check",i.mode=c;break}if(8!=(15&m)){t.msg="unknown compression method",i.mode=c;break}if(w-=4,W=8+(15&(m>>>=4)),0===i.wbits)i.wbits=W;else if(W>i.wbits){t.msg="invalid window size",i.mode=c;break}i.dmax=1<<W,t.adler=i.check=1,i.mode=512&m?10:l,m=0,w=0;break;case 2:for(;w<16;){if(0===b)break t;b--,m+=u[_++]<<w,w+=8}if(i.flags=m,8!=(255&i.flags)){t.msg="unknown compression method",i.mode=c;break}if(57344&i.flags){t.msg="unknown header flags set",i.mode=c;break}i.head&&(i.head.text=m>>8&1),512&i.flags&&(D[0]=255&m,D[1]=m>>>8&255,i.check=a(i.check,D,2,0)),m=0,w=0,i.mode=3;case 3:for(;w<32;){if(0===b)break t;b--,m+=u[_++]<<w,w+=8}i.head&&(i.head.time=m),512&i.flags&&(D[0]=255&m,D[1]=m>>>8&255,D[2]=m>>>16&255,D[3]=m>>>24&255,i.check=a(i.check,D,4,0)),m=0,w=0,i.mode=4;case 4:for(;w<16;){if(0===b)break t;b--,m+=u[_++]<<w,w+=8}i.head&&(i.head.xflags=255&m,i.head.os=m>>8),512&i.flags&&(D[0]=255&m,D[1]=m>>>8&255,i.check=a(i.check,D,2,0)),m=0,w=0,i.mode=5;case 5:if(1024&i.flags){for(;w<16;){if(0===b)break t;b--,m+=u[_++]<<w,w+=8}i.length=m,i.head&&(i.head.extra_len=m),512&i.flags&&(D[0]=255&m,D[1]=m>>>8&255,i.check=a(i.check,D,2,0)),m=0,w=0}else i.head&&(i.head.extra=null);i.mode=6;case 6:if(1024&i.flags&&((B=i.length)>b&&(B=b),B&&(i.head&&(W=i.head.extra_len-i.length,i.head.extra||(i.head.extra=new Array(i.head.extra_len)),r.arraySet(i.head.extra,u,_,B,W)),512&i.flags&&(i.check=a(i.check,u,B,_)),b-=B,_+=B,i.length-=B),i.length))break t;i.length=0,i.mode=7;case 7:if(2048&i.flags){if(0===b)break t;B=0;do{W=u[_+B++],i.head&&W&&i.length<65536&&(i.head.name+=String.fromCharCode(W))}while(W&&B<b);if(512&i.flags&&(i.check=a(i.check,u,B,_)),b-=B,_+=B,W)break t}else i.head&&(i.head.name=null);i.length=0,i.mode=8;case 8:if(4096&i.flags){if(0===b)break t;B=0;do{W=u[_+B++],i.head&&W&&i.length<65536&&(i.head.comment+=String.fromCharCode(W))}while(W&&B<b);if(512&i.flags&&(i.check=a(i.check,u,B,_)),b-=B,_+=B,W)break t}else i.head&&(i.head.comment=null);i.mode=9;case 9:if(512&i.flags){for(;w<16;){if(0===b)break t;b--,m+=u[_++]<<w,w+=8}if(m!==(65535&i.check)){t.msg="header crc mismatch",i.mode=c;break}m=0,w=0}i.head&&(i.head.hcrc=i.flags>>9&1,i.head.done=!0),t.adler=i.check=0,i.mode=l;break;case 10:for(;w<32;){if(0===b)break t;b--,m+=u[_++]<<w,w+=8}t.adler=i.check=d(m),m=0,w=0,i.mode=11;case 11:if(0===i.havedict)return t.next_out=f,t.avail_out=g,t.next_in=_,t.avail_in=b,i.hold=m,i.bits=w,2;t.adler=i.check=1,i.mode=l;case l:if(5===e||6===e)break t;case 13:if(i.last){m>>>=7&w,w-=7&w,i.mode=27;break}for(;w<3;){if(0===b)break t;b--,m+=u[_++]<<w,w+=8}switch(i.last=1&m,w-=1,3&(m>>>=1)){case 0:i.mode=14;break;case 1:if(y(i),i.mode=20,6===e){m>>>=2,w-=2;break t}break;case 2:i.mode=17;break;case 3:t.msg="invalid block type",i.mode=c}m>>>=2,w-=2;break;case 14:for(m>>>=7&w,w-=7&w;w<32;){if(0===b)break t;b--,m+=u[_++]<<w,w+=8}if((65535&m)!=(m>>>16^65535)){t.msg="invalid stored block lengths",i.mode=c;break}if(i.length=65535&m,m=0,w=0,i.mode=15,6===e)break t;case 15:i.mode=16;case 16:if(B=i.length){if(B>b&&(B=b),B>g&&(B=g),0===B)break t;r.arraySet(p,u,_,B,f),b-=B,_+=B,g-=B,f+=B,i.length-=B;break}i.mode=l;break;case 17:for(;w<14;){if(0===b)break t;b--,m+=u[_++]<<w,w+=8}if(i.nlen=257+(31&m),m>>>=5,w-=5,i.ndist=1+(31&m),m>>>=5,w-=5,i.ncode=4+(15&m),m>>>=4,w-=4,i.nlen>286||i.ndist>30){t.msg="too many length or distance symbols",i.mode=c;break}i.have=0,i.mode=18;case 18:for(;i.have<i.ncode;){for(;w<3;){if(0===b)break t;b--,m+=u[_++]<<w,w+=8}i.lens[R[i.have++]]=7&m,m>>>=3,w-=3}for(;i.have<19;)i.lens[R[i.have++]]=0;if(i.lencode=i.lendyn,i.lenbits=7,U={bits:i.lenbits},O=o(0,i.lens,0,19,i.lencode,0,i.work,U),i.lenbits=U.bits,O){t.msg="invalid code lengths set",i.mode=c;break}i.have=0,i.mode=19;case 19:for(;i.have<i.nlen+i.ndist;){for(;z=(P=i.lencode[m&(1<<i.lenbits)-1])>>>16&255,C=65535&P,!((I=P>>>24)<=w);){if(0===b)break t;b--,m+=u[_++]<<w,w+=8}if(C<16)m>>>=I,w-=I,i.lens[i.have++]=C;else{if(16===C){for(T=I+2;w<T;){if(0===b)break t;b--,m+=u[_++]<<w,w+=8}if(m>>>=I,w-=I,0===i.have){t.msg="invalid bit length repeat",i.mode=c;break}W=i.lens[i.have-1],B=3+(3&m),m>>>=2,w-=2}else if(17===C){for(T=I+3;w<T;){if(0===b)break t;b--,m+=u[_++]<<w,w+=8}w-=I,W=0,B=3+(7&(m>>>=I)),m>>>=3,w-=3}else{for(T=I+7;w<T;){if(0===b)break t;b--,m+=u[_++]<<w,w+=8}w-=I,W=0,B=11+(127&(m>>>=I)),m>>>=7,w-=7}if(i.have+B>i.nlen+i.ndist){t.msg="invalid bit length repeat",i.mode=c;break}for(;B--;)i.lens[i.have++]=W}}if(i.mode===c)break;if(0===i.lens[256]){t.msg="invalid code -- missing end-of-block",i.mode=c;break}if(i.lenbits=9,U={bits:i.lenbits},O=o(1,i.lens,0,i.nlen,i.lencode,0,i.work,U),i.lenbits=U.bits,O){t.msg="invalid literal/lengths set",i.mode=c;break}if(i.distbits=6,i.distcode=i.distdyn,U={bits:i.distbits},O=o(2,i.lens,i.nlen,i.ndist,i.distcode,0,i.work,U),i.distbits=U.bits,O){t.msg="invalid distances set",i.mode=c;break}if(i.mode=20,6===e)break t;case 20:i.mode=21;case 21:if(b>=6&&g>=258){t.next_out=f,t.avail_out=g,t.next_in=_,t.avail_in=b,i.hold=m,i.bits=w,s(t,x),f=t.next_out,p=t.output,g=t.avail_out,_=t.next_in,u=t.input,b=t.avail_in,m=i.hold,w=i.bits,i.mode===l&&(i.back=-1);break}for(i.back=0;z=(P=i.lencode[m&(1<<i.lenbits)-1])>>>16&255,C=65535&P,!((I=P>>>24)<=w);){if(0===b)break t;b--,m+=u[_++]<<w,w+=8}if(z&&!(240&z)){for(S=I,M=z,G=C;z=(P=i.lencode[G+((m&(1<<S+M)-1)>>S)])>>>16&255,C=65535&P,!(S+(I=P>>>24)<=w);){if(0===b)break t;b--,m+=u[_++]<<w,w+=8}m>>>=S,w-=S,i.back+=S}if(m>>>=I,w-=I,i.back+=I,i.length=C,0===z){i.mode=26;break}if(32&z){i.back=-1,i.mode=l;break}if(64&z){t.msg="invalid literal/length code",i.mode=c;break}i.extra=15&z,i.mode=22;case 22:if(i.extra){for(T=i.extra;w<T;){if(0===b)break t;b--,m+=u[_++]<<w,w+=8}i.length+=m&(1<<i.extra)-1,m>>>=i.extra,w-=i.extra,i.back+=i.extra}i.was=i.length,i.mode=23;case 23:for(;z=(P=i.distcode[m&(1<<i.distbits)-1])>>>16&255,C=65535&P,!((I=P>>>24)<=w);){if(0===b)break t;b--,m+=u[_++]<<w,w+=8}if(!(240&z)){for(S=I,M=z,G=C;z=(P=i.distcode[G+((m&(1<<S+M)-1)>>S)])>>>16&255,C=65535&P,!(S+(I=P>>>24)<=w);){if(0===b)break t;b--,m+=u[_++]<<w,w+=8}m>>>=S,w-=S,i.back+=S}if(m>>>=I,w-=I,i.back+=I,64&z){t.msg="invalid distance code",i.mode=c;break}i.offset=C,i.extra=15&z,i.mode=24;case 24:if(i.extra){for(T=i.extra;w<T;){if(0===b)break t;b--,m+=u[_++]<<w,w+=8}i.offset+=m&(1<<i.extra)-1,m>>>=i.extra,w-=i.extra,i.back+=i.extra}if(i.offset>i.dmax){t.msg="invalid distance too far back",i.mode=c;break}i.mode=25;case 25:if(0===g)break t;if(B=x-g,i.offset>B){if((B=i.offset-B)>i.whave&&i.sane){t.msg="invalid distance too far back",i.mode=c;break}B>i.wnext?(B-=i.wnext,A=i.wsize-B):A=i.wnext-B,B>i.length&&(B=i.length),E=i.window}else E=p,A=f-i.offset,B=i.length;B>g&&(B=g),g-=B,i.length-=B;do{p[f++]=E[A++]}while(--B);0===i.length&&(i.mode=21);break;case 26:if(0===g)break t;p[f++]=i.length,g--,i.mode=21;break;case 27:if(i.wrap){for(;w<32;){if(0===b)break t;b--,m|=u[_++]<<w,w+=8}if(x-=g,t.total_out+=x,i.total+=x,x&&(t.adler=i.check=i.flags?a(i.check,p,x,f-x):n(i.check,p,x,f-x)),x=g,(i.flags?m:d(m))!==i.check){t.msg="incorrect data check",i.mode=c;break}m=0,w=0}i.mode=28;case 28:if(i.wrap&&i.flags){for(;w<32;){if(0===b)break t;b--,m+=u[_++]<<w,w+=8}if(m!==(4294967295&i.total)){t.msg="incorrect length check",i.mode=c;break}m=0,w=0}i.mode=29;case 29:O=1;break t;case c:O=-3;break t;case 31:return-4;default:return h}return t.next_out=f,t.avail_out=g,t.next_in=_,t.avail_in=b,i.hold=m,i.bits=w,(i.wsize||x!==t.avail_out&&i.mode<c&&(i.mode<27||4!==e))&&k(t,t.output,t.next_out,x-t.avail_out)?(i.mode=31,-4):(v-=t.avail_in,x-=t.avail_out,t.total_in+=v,t.total_out+=x,i.total+=x,i.wrap&&x&&(t.adler=i.check=i.flags?a(i.check,p,x,t.next_out-x):n(i.check,p,x,t.next_out-x)),t.data_type=i.bits+(i.last?64:0)+(i.mode===l?128:0)+(20===i.mode||15===i.mode?256:0),(0===v&&0===x||4===e)&&0===O&&(O=-5),O)},e.inflateEnd=function(t){if(!t||!t.state)return h;var e=t.state;return e.window&&(e.window=null),t.state=null,0},e.inflateGetHeader=function(t,e){var i;return t&&t.state&&2&(i=t.state).wrap?(i.head=e,e.done=!1,0):h},e.inflateSetDictionary=function(t,e){var i,r=e.length;return t&&t.state?0!==(i=t.state).wrap&&11!==i.mode?h:11===i.mode&&n(1,e,r,0)!==i.check?-3:k(t,e,r,r)?(i.mode=31,-4):(i.havedict=1,0):h},e.inflateInfo="pako inflate (from Nodeca project)"},665:(t,e,i)=>{var r=i(805);function n(t){for(var e=t.length;--e>=0;)t[e]=0}var a=[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],s=[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],o=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],h=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],l=new Array(576);n(l);var c=new Array(60);n(c);var d=new Array(512);n(d);var u=new Array(256);n(u);var p=new Array(29);n(p);var _,f,b,g=new Array(30);function m(t,e,i,r,n){this.static_tree=t,this.extra_bits=e,this.extra_base=i,this.elems=r,this.max_length=n,this.has_stree=t&&t.length}function w(t,e){this.dyn_tree=t,this.max_code=0,this.stat_desc=e}function y(t){return t<256?d[t]:d[256+(t>>>7)]}function k(t,e){t.pending_buf[t.pending++]=255&e,t.pending_buf[t.pending++]=e>>>8&255}function v(t,e,i){t.bi_valid>16-i?(t.bi_buf|=e<<t.bi_valid&65535,k(t,t.bi_buf),t.bi_buf=e>>16-t.bi_valid,t.bi_valid+=i-16):(t.bi_buf|=e<<t.bi_valid&65535,t.bi_valid+=i)}function x(t,e,i){v(t,i[2*e],i[2*e+1])}function B(t,e){var i=0;do{i|=1&t,t>>>=1,i<<=1}while(--e>0);return i>>>1}function A(t,e,i){var r,n,a=new Array(16),s=0;for(r=1;r<=15;r++)a[r]=s=s+i[r-1]<<1;for(n=0;n<=e;n++){var o=t[2*n+1];0!==o&&(t[2*n]=B(a[o]++,o))}}function E(t){var e;for(e=0;e<286;e++)t.dyn_ltree[2*e]=0;for(e=0;e<30;e++)t.dyn_dtree[2*e]=0;for(e=0;e<19;e++)t.bl_tree[2*e]=0;t.dyn_ltree[512]=1,t.opt_len=t.static_len=0,t.last_lit=t.matches=0}function I(t){t.bi_valid>8?k(t,t.bi_buf):t.bi_valid>0&&(t.pending_buf[t.pending++]=t.bi_buf),t.bi_buf=0,t.bi_valid=0}function z(t,e,i,r){var n=2*e,a=2*i;return t[n]<t[a]||t[n]===t[a]&&r[e]<=r[i]}function C(t,e,i){for(var r=t.heap[i],n=i<<1;n<=t.heap_len&&(n<t.heap_len&&z(e,t.heap[n+1],t.heap[n],t.depth)&&n++,!z(e,r,t.heap[n],t.depth));)t.heap[i]=t.heap[n],i=n,n<<=1;t.heap[i]=r}function S(t,e,i){var r,n,o,h,l=0;if(0!==t.last_lit)do{r=t.pending_buf[t.d_buf+2*l]<<8|t.pending_buf[t.d_buf+2*l+1],n=t.pending_buf[t.l_buf+l],l++,0===r?x(t,n,e):(x(t,(o=u[n])+256+1,e),0!==(h=a[o])&&v(t,n-=p[o],h),x(t,o=y(--r),i),0!==(h=s[o])&&v(t,r-=g[o],h))}while(l<t.last_lit);x(t,256,e)}function M(t,e){var i,r,n,a=e.dyn_tree,s=e.stat_desc.static_tree,o=e.stat_desc.has_stree,h=e.stat_desc.elems,l=-1;for(t.heap_len=0,t.heap_max=573,i=0;i<h;i++)0!==a[2*i]?(t.heap[++t.heap_len]=l=i,t.depth[i]=0):a[2*i+1]=0;for(;t.heap_len<2;)a[2*(n=t.heap[++t.heap_len]=l<2?++l:0)]=1,t.depth[n]=0,t.opt_len--,o&&(t.static_len-=s[2*n+1]);for(e.max_code=l,i=t.heap_len>>1;i>=1;i--)C(t,a,i);n=h;do{i=t.heap[1],t.heap[1]=t.heap[t.heap_len--],C(t,a,1),r=t.heap[1],t.heap[--t.heap_max]=i,t.heap[--t.heap_max]=r,a[2*n]=a[2*i]+a[2*r],t.depth[n]=(t.depth[i]>=t.depth[r]?t.depth[i]:t.depth[r])+1,a[2*i+1]=a[2*r+1]=n,t.heap[1]=n++,C(t,a,1)}while(t.heap_len>=2);t.heap[--t.heap_max]=t.heap[1],function(t,e){var i,r,n,a,s,o,h=e.dyn_tree,l=e.max_code,c=e.stat_desc.static_tree,d=e.stat_desc.has_stree,u=e.stat_desc.extra_bits,p=e.stat_desc.extra_base,_=e.stat_desc.max_length,f=0;for(a=0;a<=15;a++)t.bl_count[a]=0;for(h[2*t.heap[t.heap_max]+1]=0,i=t.heap_max+1;i<573;i++)(a=h[2*h[2*(r=t.heap[i])+1]+1]+1)>_&&(a=_,f++),h[2*r+1]=a,r>l||(t.bl_count[a]++,s=0,r>=p&&(s=u[r-p]),o=h[2*r],t.opt_len+=o*(a+s),d&&(t.static_len+=o*(c[2*r+1]+s)));if(0!==f){do{for(a=_-1;0===t.bl_count[a];)a--;t.bl_count[a]--,t.bl_count[a+1]+=2,t.bl_count[_]--,f-=2}while(f>0);for(a=_;0!==a;a--)for(r=t.bl_count[a];0!==r;)(n=t.heap[--i])>l||(h[2*n+1]!==a&&(t.opt_len+=(a-h[2*n+1])*h[2*n],h[2*n+1]=a),r--)}}(t,e),A(a,l,t.bl_count)}function G(t,e,i){var r,n,a=-1,s=e[1],o=0,h=7,l=4;for(0===s&&(h=138,l=3),e[2*(i+1)+1]=65535,r=0;r<=i;r++)n=s,s=e[2*(r+1)+1],++o<h&&n===s||(o<l?t.bl_tree[2*n]+=o:0!==n?(n!==a&&t.bl_tree[2*n]++,t.bl_tree[32]++):o<=10?t.bl_tree[34]++:t.bl_tree[36]++,o=0,a=n,0===s?(h=138,l=3):n===s?(h=6,l=3):(h=7,l=4))}function W(t,e,i){var r,n,a=-1,s=e[1],o=0,h=7,l=4;for(0===s&&(h=138,l=3),r=0;r<=i;r++)if(n=s,s=e[2*(r+1)+1],!(++o<h&&n===s)){if(o<l)do{x(t,n,t.bl_tree)}while(0!==--o);else 0!==n?(n!==a&&(x(t,n,t.bl_tree),o--),x(t,16,t.bl_tree),v(t,o-3,2)):o<=10?(x(t,17,t.bl_tree),v(t,o-3,3)):(x(t,18,t.bl_tree),v(t,o-11,7));o=0,a=n,0===s?(h=138,l=3):n===s?(h=6,l=3):(h=7,l=4)}}n(g);var O=!1;function U(t,e,i,n){v(t,0+(n?1:0),3),function(t,e,i){I(t),k(t,i),k(t,~i),r.arraySet(t.pending_buf,t.window,e,i,t.pending),t.pending+=i}(t,e,i)}e._tr_init=function(t){O||(function(){var t,e,i,r,n,h=new Array(16);for(i=0,r=0;r<28;r++)for(p[r]=i,t=0;t<1<<a[r];t++)u[i++]=r;for(u[i-1]=r,n=0,r=0;r<16;r++)for(g[r]=n,t=0;t<1<<s[r];t++)d[n++]=r;for(n>>=7;r<30;r++)for(g[r]=n<<7,t=0;t<1<<s[r]-7;t++)d[256+n++]=r;for(e=0;e<=15;e++)h[e]=0;for(t=0;t<=143;)l[2*t+1]=8,t++,h[8]++;for(;t<=255;)l[2*t+1]=9,t++,h[9]++;for(;t<=279;)l[2*t+1]=7,t++,h[7]++;for(;t<=287;)l[2*t+1]=8,t++,h[8]++;for(A(l,287,h),t=0;t<30;t++)c[2*t+1]=5,c[2*t]=B(t,5);_=new m(l,a,257,286,15),f=new m(c,s,0,30,15),b=new m(new Array(0),o,0,19,7)}(),O=!0),t.l_desc=new w(t.dyn_ltree,_),t.d_desc=new w(t.dyn_dtree,f),t.bl_desc=new w(t.bl_tree,b),t.bi_buf=0,t.bi_valid=0,E(t)},e._tr_stored_block=U,e._tr_flush_block=function(t,e,i,r){var n,a,s=0;t.level>0?(2===t.strm.data_type&&(t.strm.data_type=function(t){var e,i=4093624447;for(e=0;e<=31;e++,i>>>=1)if(1&i&&0!==t.dyn_ltree[2*e])return 0;if(0!==t.dyn_ltree[18]||0!==t.dyn_ltree[20]||0!==t.dyn_ltree[26])return 1;for(e=32;e<256;e++)if(0!==t.dyn_ltree[2*e])return 1;return 0}(t)),M(t,t.l_desc),M(t,t.d_desc),s=function(t){var e;for(G(t,t.dyn_ltree,t.l_desc.max_code),G(t,t.dyn_dtree,t.d_desc.max_code),M(t,t.bl_desc),e=18;e>=3&&0===t.bl_tree[2*h[e]+1];e--);return t.opt_len+=3*(e+1)+5+5+4,e}(t),n=t.opt_len+3+7>>>3,(a=t.static_len+3+7>>>3)<=n&&(n=a)):n=a=i+5,i+4<=n&&-1!==e?U(t,e,i,r):4===t.strategy||a===n?(v(t,2+(r?1:0),3),S(t,l,c)):(v(t,4+(r?1:0),3),function(t,e,i,r){var n;for(v(t,e-257,5),v(t,i-1,5),v(t,r-4,4),n=0;n<r;n++)v(t,t.bl_tree[2*h[n]+1],3);W(t,t.dyn_ltree,e-1),W(t,t.dyn_dtree,i-1)}(t,t.l_desc.max_code+1,t.d_desc.max_code+1,s+1),S(t,t.dyn_ltree,t.dyn_dtree)),E(t),r&&I(t)},e._tr_tally=function(t,e,i){return t.pending_buf[t.d_buf+2*t.last_lit]=e>>>8&255,t.pending_buf[t.d_buf+2*t.last_lit+1]=255&e,t.pending_buf[t.l_buf+t.last_lit]=255&i,t.last_lit++,0===e?t.dyn_ltree[2*i]++:(t.matches++,e--,t.dyn_ltree[2*(u[i]+256+1)]++,t.dyn_dtree[2*y(e)]++),t.last_lit===t.lit_bufsize-1},e._tr_align=function(t){v(t,2,3),x(t,256,l),function(t){16===t.bi_valid?(k(t,t.bi_buf),t.bi_buf=0,t.bi_valid=0):t.bi_valid>=8&&(t.pending_buf[t.pending++]=255&t.bi_buf,t.bi_buf>>=8,t.bi_valid-=8)}(t)}},668:(t,e,i)=>{var r={};(0,i(805).assign)(r,i(303),i(83),i(681)),t.exports=r},674:t=>{t.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"}},681:t=>{t.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}},805:(t,e)=>{var i="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Int32Array;function r(t,e){return Object.prototype.hasOwnProperty.call(t,e)}e.assign=function(t){for(var e=Array.prototype.slice.call(arguments,1);e.length;){var i=e.shift();if(i){if("object"!=typeof i)throw new TypeError(i+"must be non-object");for(var n in i)r(i,n)&&(t[n]=i[n])}}return t},e.shrinkBuf=function(t,e){return t.length===e?t:t.subarray?t.subarray(0,e):(t.length=e,t)};var n={arraySet:function(t,e,i,r,n){if(e.subarray&&t.subarray)t.set(e.subarray(i,i+r),n);else for(var a=0;a<r;a++)t[n+a]=e[i+a]},flattenChunks:function(t){var e,i,r,n,a,s;for(r=0,e=0,i=t.length;e<i;e++)r+=t[e].length;for(s=new Uint8Array(r),n=0,e=0,i=t.length;e<i;e++)a=t[e],s.set(a,n),n+=a.length;return s}},a={arraySet:function(t,e,i,r,n){for(var a=0;a<r;a++)t[n+a]=e[i+a]},flattenChunks:function(t){return[].concat.apply([],t)}};e.setTyped=function(t){t?(e.Buf8=Uint8Array,e.Buf16=Uint16Array,e.Buf32=Int32Array,e.assign(e,n)):(e.Buf8=Array,e.Buf16=Array,e.Buf32=Array,e.assign(e,a))},e.setTyped(i)},823:t=>{var e=function(){for(var t,e=[],i=0;i<256;i++){t=i;for(var r=0;r<8;r++)t=1&t?3988292384^t>>>1:t>>>1;e[i]=t}return e}();t.exports=function(t,i,r,n){var a=e,s=n+r;t^=-1;for(var o=n;o<s;o++)t=t>>>8^a[255&(t^i[o])];return-1^t}},996:(t,e,i)=>{var r=i(805),n=!0,a=!0;try{String.fromCharCode.apply(null,[0])}catch(t){n=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(t){a=!1}for(var s=new r.Buf8(256),o=0;o<256;o++)s[o]=o>=252?6:o>=248?5:o>=240?4:o>=224?3:o>=192?2:1;function h(t,e){if(e<65534&&(t.subarray&&a||!t.subarray&&n))return String.fromCharCode.apply(null,r.shrinkBuf(t,e));for(var i="",s=0;s<e;s++)i+=String.fromCharCode(t[s]);return i}s[254]=s[254]=1,e.string2buf=function(t){var e,i,n,a,s,o=t.length,h=0;for(a=0;a<o;a++)55296==(64512&(i=t.charCodeAt(a)))&&a+1<o&&56320==(64512&(n=t.charCodeAt(a+1)))&&(i=65536+(i-55296<<10)+(n-56320),a++),h+=i<128?1:i<2048?2:i<65536?3:4;for(e=new r.Buf8(h),s=0,a=0;s<h;a++)55296==(64512&(i=t.charCodeAt(a)))&&a+1<o&&56320==(64512&(n=t.charCodeAt(a+1)))&&(i=65536+(i-55296<<10)+(n-56320),a++),i<128?e[s++]=i:i<2048?(e[s++]=192|i>>>6,e[s++]=128|63&i):i<65536?(e[s++]=224|i>>>12,e[s++]=128|i>>>6&63,e[s++]=128|63&i):(e[s++]=240|i>>>18,e[s++]=128|i>>>12&63,e[s++]=128|i>>>6&63,e[s++]=128|63&i);return e},e.buf2binstring=function(t){return h(t,t.length)},e.binstring2buf=function(t){for(var e=new r.Buf8(t.length),i=0,n=e.length;i<n;i++)e[i]=t.charCodeAt(i);return e},e.buf2string=function(t,e){var i,r,n,a,o=e||t.length,l=new Array(2*o);for(r=0,i=0;i<o;)if((n=t[i++])<128)l[r++]=n;else if((a=s[n])>4)l[r++]=65533,i+=a-1;else{for(n&=2===a?31:3===a?15:7;a>1&&i<o;)n=n<<6|63&t[i++],a--;a>1?l[r++]=65533:n<65536?l[r++]=n:(n-=65536,l[r++]=55296|n>>10&1023,l[r++]=56320|1023&n)}return h(l,r)},e.utf8border=function(t,e){var i;for((e=e||t.length)>t.length&&(e=t.length),i=e-1;i>=0&&128==(192&t[i]);)i--;return i<0||0===i?e:i+s[t[i]]>e?i:e}},998:(t,e,i)=>{var r=i(805),n=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],a=[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],s=[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],o=[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];t.exports=function(t,e,i,h,l,c,d,u){var p,_,f,b,g,m,w,y,k,v=u.bits,x=0,B=0,A=0,E=0,I=0,z=0,C=0,S=0,M=0,G=0,W=null,O=0,U=new r.Buf16(16),T=new r.Buf16(16),P=null,D=0;for(x=0;x<=15;x++)U[x]=0;for(B=0;B<h;B++)U[e[i+B]]++;for(I=v,E=15;E>=1&&0===U[E];E--);if(I>E&&(I=E),0===E)return l[c++]=20971520,l[c++]=20971520,u.bits=1,0;for(A=1;A<E&&0===U[A];A++);for(I<A&&(I=A),S=1,x=1;x<=15;x++)if(S<<=1,(S-=U[x])<0)return-1;if(S>0&&(0===t||1!==E))return-1;for(T[1]=0,x=1;x<15;x++)T[x+1]=T[x]+U[x];for(B=0;B<h;B++)0!==e[i+B]&&(d[T[e[i+B]]++]=B);if(0===t?(W=P=d,m=19):1===t?(W=n,O-=257,P=a,D-=257,m=256):(W=s,P=o,m=-1),G=0,B=0,x=A,g=c,z=I,C=0,f=-1,b=(M=1<<I)-1,1===t&&M>852||2===t&&M>592)return 1;for(;;){w=x-C,d[B]<m?(y=0,k=d[B]):d[B]>m?(y=P[D+d[B]],k=W[O+d[B]]):(y=96,k=0),p=1<<x-C,A=_=1<<z;do{l[g+(G>>C)+(_-=p)]=w<<24|y<<16|k}while(0!==_);for(p=1<<x-1;G&p;)p>>=1;if(0!==p?(G&=p-1,G+=p):G=0,B++,0===--U[x]){if(x===E)break;x=e[i+d[B]]}if(x>I&&(G&b)!==f){for(0===C&&(C=I),g+=A,S=1<<(z=x-C);z+C<E&&!((S-=U[z+C])<=0);)z++,S<<=1;if(M+=1<<z,1===t&&M>852||2===t&&M>592)return 1;l[f=G&b]=I<<24|z<<16|g-c}}return 0!==G&&(l[g+G]=x-C<<24|64<<16),u.bits=I,0}}},e={};function i(r){var n=e[r];if(void 0!==n)return n.exports;var a=e[r]={exports:{}};return t[r](a,a.exports,i),a.exports}i.d=(t,e)=>{for(var r in e)i.o(e,r)&&!i.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},i.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),i.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var r={};i.r(r),i.d(r,{DEFAULT_UUID:()=>l,LATEST_VERSION:()=>o,MAGIC:()=>s,MAX_INT:()=>h});var n={};i.r(n),i.d(n,{BitReader:()=>v,BitWriter:()=>x,bgra:()=>u,chunk:()=>b,concat:()=>B,isEqual:()=>p,read:()=>A,subarray:()=>f,write:()=>E});var a={};i.r(a),i.d(a,{Direction:()=>C,Rotation:()=>S});const s=new Uint8Array([66,82,83]),o=14,h=~(1<<31),l="00000000-0000-0000-0000-000000000000";var c=i(668);const d=Array.from({length:256}).map((t,e)=>(e+256).toString(16).substr(1)),u=([t,e,i,r])=>[i,e,t,r];function p(t,e){return t.length===e.length&&t.every((t,i)=>e[i]===t)}function _(t){return void 0!==t.brsOffset}function f(t,e,i=!1){if(!(t instanceof Uint8Array))throw new Error(`Invalid data type in bytes reader (${typeof t})`);let r;_(t)?r=t:(r=t,r.brsOffset=0);const n=r[i?"slice":"subarray"](r.brsOffset,r.brsOffset+e);return r.brsOffset+=e,n}function b(t,e){const i=t.length-(_(t)?t.brsOffset:0),r=Array(Math.floor(i/e));for(let n=0;n<i/e;n++)r[n]=f(t,e,!0);return r}function g(t,e=!0){const[i,r]=f(t,2);return e?r<<8|i:i<<8|r}function m(t,e=!0){const[i,r,n,a]=f(t,4);return e?a<<24|n<<16|r<<8|i:i<<24|r<<16|n<<8|a}function w(t,e=!0){const i=new Uint8Array([255&t,t>>8&255,t>>16&255,t>>24&255]);return e?i:i.reverse()}function y(t){const e=m(t),i=e<0,r=i?2*-e:e;if(i){if(r%2!=0)throw new Error("Invalid UCS-2 data size");return String.fromCodePoint(...b(f(t,r),2).map(t=>g(t)))}{const e=f(t,r).subarray(0,-1);return String.fromCharCode.apply(null,e)}}function k(t){return/^[\x00-\x7F]*$/.test(t)?B(w(t.length+1),new Uint8Array(t.split("").map(t=>t.charCodeAt(0))),new Uint8Array([0])):B(w(-t.length),new Uint8Array(t.split("").flatMap(t=>[255&t.charCodeAt(0),t.charCodeAt(0)>>8])))}class v{constructor(t){this.pos=0,this.buffer=t}empty(){return this.pos>=8*this.buffer.length}bit(){const t=!!(this.buffer[this.pos>>3]&1<<(7&this.pos));return this.pos++,t}align(){this.pos=this.pos+7&-8}int(t){let e=0,i=1;for(;e+i<t&&0!==i;)this.bit()&&(e|=i),i<<=1;return e}uint_packed(){let t=0;for(let e=0;e<5;e++){const i=this.bit();let r=0;for(let t=0;t<7;t++)r|=(this.bit()?1:0)<<t;if(t|=r<<7*e,!i)break}return t}int_packed(){const t=this.uint_packed();return(t>>1)*(1&t?1:-1)}bits(t){const e=[];for(let i=0;i<t;i++){const t=7&i;e[i>>3]=e[i>>3]&~(1<<t)|(this.bit()?1:0)<<t}return e}bytes(t){return new Uint8Array(this.bytesArr(t))}bytesArr(t){return this.bits(8*t)}array(t){const e=m(this.bytes(4)),i=Array(e);for(let r=0;r<e;r++)i[r]=t(this);return i}each(t){const e=m(this.bytes(4));for(let i=0;i<e;i++)t(this)}string(){const t=this.bytesArr(4);let e=m(new Uint8Array(t));return e<0&&(e=2*-e),y(new Uint8Array(t.concat(this.bytesArr(e))))}float(){const t=new DataView(new ArrayBuffer(4));return t.setUint16(2,g(this.bytes(2))),t.setUint16(0,g(this.bytes(2))),t.getFloat32(0)}integer(){const t=new DataView(new ArrayBuffer(4));return t.setUint16(2,g(this.bytes(2))),t.setUint16(0,g(this.bytes(2))),t.getInt32(0)}int64(){const t=new DataView(new ArrayBuffer(8));t.setUint16(6,g(this.bytes(2))),t.setUint16(4,g(this.bytes(2))),t.setUint16(2,g(this.bytes(2))),t.setUint16(0,g(this.bytes(2)));const e=t.getBigInt64(0);if(e<=1n<<64n)return Number(e);throw new Error(`Cannot read 64-bit integer ${e} as a JavaScript number...`)}double(){const t=new DataView(new ArrayBuffer(8));return t.setUint16(6,g(this.bytes(2))),t.setUint16(4,g(this.bytes(2))),t.setUint16(2,g(this.bytes(2))),t.setUint16(0,g(this.bytes(2))),t.getFloat64(0)}wireGraphVariant(){const t=this.bytes(1)[0];switch(t){case 0:return{number:this.double()};case 1:return{integer:this.int64()};case 2:return{bool:0!==this.bytes(1)[0]};case 3:return{exec:!0};case 4:return{object:!0};default:throw new Error(`Unknown wire graph variant type ${t}`)}}unreal(t){switch(t){case"String":case"Class":case"Object":return this.string();case"Boolean":return!!m(this.bytes(4));case"Integer":return this.integer();case"Integer64":return this.int64();case"Float":return this.float();case"Double":return this.double();case"Color":return u(this.bytesArr(4));case"Byte":return this.bytes(1)[0];case"Rotator":return[this.float(),this.float(),this.float()];case"WireGraphVariant":case"WireGraphPrimMathVariant":return this.wireGraphVariant()}throw new Error("Unknown unreal type "+t)}}class x{constructor(){this.buffer=[],this.cur=0,this.bitNum=0}bit(t){this.cur|=(t?1:0)<<this.bitNum,this.bitNum++,this.bitNum>=8&&this.align()}bits(t,e){for(let i=0;i<e;i++)this.bit(!!(t[i>>3]&1<<(7&i)))}bytes(t){this.bits(t,8*t.length)}align(){this.bitNum>0&&(this.buffer.push(this.cur),this.cur=0,this.bitNum=0)}int(t,e){if(e<2)throw new Error(`Invalid input (BitWriter) -- max (${e}) must be at least 2`);if(t>=e)throw new Error(`Invalid input (BitWriter) -- value (${t}) is larger than max (${e})`);let i=0,r=1;for(;i+r<e&&0!==r;)this.bit(0!==(t&r)),0!==(t&r)&&(i|=r),r<<=1}uint_packed(t){do{const e=127&t;t>>=7,this.bit(0!==t),this.bits([e],7)}while(0!==t)}int_packed(t){this.uint_packed(Math.abs(t)<<1|(t>=0?1:0))}finish(){return this.align(),new Uint8Array(this.buffer)}finishSection(){return this.align(),B(w(this.buffer.length),new Uint8Array(this.buffer))}string(t){this.bytes(k(t))}float(t){const e=new Float32Array(1);e[0]=t;const i=new Int8Array(e.buffer);this.bytes([i[0],i[1],i[2],i[3]])}integer(t){const e=new Int32Array(1);e[0]=t;const i=new Int8Array(e.buffer);this.bytes([i[0],i[1],i[2],i[3]])}int64(t){const e=new DataView(new ArrayBuffer(8));e.setBigInt64(0,"bigint"==typeof t?t:BigInt(t),!0),this.bytes(new Uint8Array(e.buffer))}double(t){const e=new Float64Array(1);e[0]=t;const i=new Int8Array(e.buffer);this.bytes([i[0],i[1],i[2],i[3],i[4],i[5],i[6],i[7]])}wireGraphVariant(t){if("number"in t)this.bytes([0]),this.double(t.number);else if("integer"in t)this.bytes([1]),this.int64(t.integer);else if("bool"in t)this.bytes([2,t.bool?1:0]);else if("exec"in t)this.bytes([3]);else{if(!("object"in t))throw new Error(`Unknown wire graph variant type ${JSON.stringify(t)}`);this.bytes([4])}}self(t){return t.bind(this)(),this}array(t,e){return this.bytes(w(t.length)),t.forEach(e.bind(this)),this}each(t,e){return t.forEach(e.bind(this)),this}unreal(t,e){switch(t){case"Class":if("string"!=typeof e)throw new Error(`writing unreal type Class, did not receive string (${e})`);return void this.string(e);case"String":if("string"!=typeof e)throw new Error(`writing unreal type String, did not receive string (${e})`);return void this.string(e);case"Object":if("string"!=typeof e)throw new Error(`writing unreal type Object, did not receive string (${e})`);return void this.string(e);case"Boolean":if("boolean"!=typeof e)throw new Error(`writing unreal type Boolean, did not receive boolean (${e})`);return void this.bytes(w(e?1:0));case"Float":if("number"!=typeof e)throw new Error(`writing unreal type Float, did not receive float (${e})`);return void this.float(e);case"Byte":if("number"!=typeof e)throw new Error(`writing unreal type Byte, did not receive Byte (${e})`);return void this.bytes([255&e]);case"Color":if(!Array.isArray(e)||4!==e.length)throw new Error(`writing unreal type Array, did not receive Array (${e})`);return void this.bytes(u(e));case"Rotator":if(!Array.isArray(e)||3!==e.length)throw new Error(`writing unreal type Array, did not receive Array (${e})`);return this.float(e[0]),this.float(e[1]),void this.float(e[2]);case"Integer":if("number"!=typeof e)throw new Error(`writing unreal type Integer, did not receive integer (${e})`);return void this.integer(e);case"Integer64":if("number"!=typeof e)throw new Error(`writing unreal type Integer64, did not receive integer (${e})`);return void this.int64(e);case"Double":if("number"!=typeof e)throw new Error(`writing unreal type Double, did not receive double (${e})`);return void this.double(e);case"WireGraphVariant":if("object"!=typeof e)throw new Error(`writing unreal type WireGraphVariant, did not receive object (${e})`);return void this.wireGraphVariant(e);case"WireGraphPrimMathVariant":if("object"!=typeof e)throw new Error(`writing unreal type WireGraphPrimMathVariant, did not receive object (${e})`);return void this.wireGraphVariant(e)}throw new Error("Unknown unreal type "+t)}}function B(...t){const e=t.reduce((t,e)=>t+e.length,0),i=new Uint8Array(e);let r=0;for(const e of t)i.set(e,r),r+=e.length;return i}const A={bytes:f,u16:g,i32:m,compressed:function(t){const e=m(t),i=m(t);if(i<0||e<0||i>=e)throw new Error(`Invalid compressed section size (comp: ${i}, uncomp: ${e})`);if(0===i)return f(t,e);{const e=f(t,i);return(0,c.inflate)(e)}},string:y,uuid:function(t){return e=b(f(t,16),4).flatMap(([t,e,i,r])=>[r,i,e,t]),(d[e[0]]+d[e[1]]+d[e[2]]+d[e[3]]+"-"+d[e[4]]+d[e[5]]+"-"+d[e[6]]+d[e[7]]+"-"+d[e[8]]+d[e[9]]+"-"+d[e[10]]+d[e[11]]+d[e[12]]+d[e[13]]+d[e[14]]+d[e[15]]).toLowerCase();var e},array:function(t,e){const i=m(t),r=Array(i);for(let n=0;n<i;n++)r[n]=e(t);return r},each:function(t,e){const i=m(t);for(let r=0;r<i;r++)e(t)},bits:t=>new v(t)},E={u16:function(t,e=!0){const i=[255&t,t>>8&255];return new Uint8Array(e?i:i.reverse())},i32:w,compressed:function(...t){const e=B(...t),i=(0,c.deflate)(e),r=e.length,n=i.length;if(r>h)throw new Error(`uncompressedSize (${r}) out of range`);if(n>h)throw new Error(`compressedSize (${n}) out of range`);const a=n>=r;return B(w(r),w(a?0:n),a?e:i)},uncompressed:function(...t){const e=B(...t);return B(w(e.length),w(0),e)},string:k,uuid:function(t){return B(...b(function(t){let e;const i=new Uint8Array(16);return i[0]=(e=parseInt(t.slice(0,8),16))>>>24,i[1]=e>>>16&255,i[2]=e>>>8&255,i[3]=255&e,i[4]=(e=parseInt(t.slice(9,13),16))>>>8,i[5]=255&e,i[6]=(e=parseInt(t.slice(14,18),16))>>>8,i[7]=255&e,i[8]=(e=parseInt(t.slice(19,23),16))>>>8,i[9]=255&e,i[10]=(e=parseInt(t.slice(24,36),16))/1099511627776&255,i[11]=e/4294967296&255,i[12]=e>>>24&255,i[13]=e>>>16&255,i[14]=e>>>8&255,i[15]=255&e,i}(t),4).map(([t,e,i,r])=>new Uint8Array([r,i,e,t])))},array:function(t,e){return B(w(t.length),...t.map(t=>e(t)))},bits:()=>new x},I=new Uint8Array([]),z={BCD_SpotLight:{version:1,properties:{Rotation:"Rotator",InnerConeAngle:"Float",OuterConeAngle:"Float",Brightness:"Float",Radius:"Float",Color:"Color",bUseBrickColor:"Boolean",bCastShadows:"Boolean"}},BCD_PointLight:{version:1,properties:{bMatchBrickShape:"Boolean",Brightness:"Float",Radius:"Float",Color:"Color",bUseBrickColor:"Boolean",bCastShadows:"Boolean"}},BCD_ItemSpawn:{version:1,properties:{PickupClass:"Class",bPickupEnabled:"Boolean",bPickupRespawnOnMinigameReset:"Boolean",PickupMinigameResetRespawnDelay:"Float",bPickupAutoDisableOnPickup:"Boolean",PickupRespawnTime:"Float",PickupOffsetDirection:"Byte",PickupOffsetDistance:"Float",PickupRotation:"Rotator",PickupScale:"Float",bPickupAnimationEnabled:"Boolean",PickupAnimationAxis:"Byte",bPickupAnimationAxisLocal:"Boolean",PickupSpinSpeed:"Float",PickupBobSpeed:"Float",PickupBobHeight:"Float",PickupAnimationPhase:"Float"}},BCD_Interact:{version:1,properties:{bPlayInteractSound:"Boolean",Message:"String",ConsoleTag:"String"}},BCD_AudioEmitter:{version:1,properties:{AudioDescriptor:"Object",VolumeMultiplier:"Float",PitchMultiplier:"Float",InnerRadius:"Float",MaxDistance:"Float",bSpatialization:"Boolean"}},Component_Internal_Rerouter:{version:1,properties:{}},BrickComponentType_Internal_ReadBrickGrid:{version:1,properties:{}},BrickComponentType_WireGraphPseudo_BufferSeconds:{version:1,properties:{SecondsToWait:"Float",ZeroSecondsToWait:"Float",CurrentTime:"Float",Input:"WireGraphVariant",Output:"WireGraphVariant",Buffered:"WireGraphVariant",Queued:"WireGraphVariant",bHasQueued:"Boolean"}},BrickComponentType_WireGraphPseudo_BufferTicks:{version:1,properties:{TicksToWait:"Integer",ZeroTicksToWait:"Integer",CurrentTicks:"Integer",Input:"WireGraphVariant",Output:"WireGraphVariant",Buffered:"WireGraphVariant",Queued:"WireGraphVariant",bHasQueued:"Boolean"}},BrickComponentType_WireGraphPseudo_Const:{version:1,properties:{Value:"WireGraphVariant"}},BrickComponentType_WireGraph_Expr_BitwiseAND:{version:1,properties:{InputA:"Integer64",InputB:"Integer64"}},BrickComponentType_WireGraph_Expr_BitwiseNAND:{version:1,properties:{InputA:"Integer64",InputB:"Integer64"}},BrickComponentType_WireGraph_Expr_BitwiseNOR:{version:1,properties:{InputA:"Integer64",InputB:"Integer64"}},BrickComponentType_WireGraph_Expr_BitwiseNOT:{version:1,properties:{Input:"Integer64"}},BrickComponentType_WireGraph_Expr_BitwiseOR:{version:1,properties:{InputA:"Integer64",InputB:"Integer64"}},BrickComponentType_WireGraph_Expr_BitwiseShiftLeft:{version:1,properties:{InputA:"Integer64",InputB:"Integer64"}},BrickComponentType_WireGraph_Expr_BitwiseShiftRight:{version:1,properties:{InputA:"Integer64",InputB:"Integer64"}},BrickComponentType_WireGraph_Expr_BitwiseXOR:{version:1,properties:{InputA:"Integer64",InputB:"Integer64"}},BrickComponentType_WireGraph_Expr_Ceil:{version:1,properties:{Input:"Double"}},BrickComponentType_WireGraph_Expr_CompareEqual:{version:1,properties:{InputA:"WireGraphVariant",InputB:"WireGraphVariant"}},BrickComponentType_WireGraph_Expr_CompareGreater:{version:1,properties:{InputA:"WireGraphPrimMathVariant",InputB:"WireGraphPrimMathVariant"}},BrickComponentType_WireGraph_Expr_CompareGreaterOrEqual:{version:1,properties:{InputA:"WireGraphPrimMathVariant",InputB:"WireGraphPrimMathVariant"}},BrickComponentType_WireGraph_Expr_CompareLess:{version:1,properties:{InputA:"WireGraphPrimMathVariant",InputB:"WireGraphPrimMathVariant"}},BrickComponentType_WireGraph_Expr_CompareLessOrEqual:{version:1,properties:{InputA:"WireGraphPrimMathVariant",InputB:"WireGraphPrimMathVariant"}},BrickComponentType_WireGraph_Expr_CompareNotEqual:{version:1,properties:{InputA:"WireGraphVariant",InputB:"WireGraphVariant"}},BrickComponentType_WireGraph_Expr_Floor:{version:1,properties:{Input:"Double"}},BrickComponentType_WireGraph_Expr_LogicalAND:{version:1,properties:{bInputA:"Boolean",bInputB:"Boolean"}},BrickComponentType_WireGraph_Expr_LogicalNAND:{version:1,properties:{bInputA:"Boolean",bInputB:"Boolean"}},BrickComponentType_WireGraph_Expr_LogicalNOR:{version:1,properties:{bInputA:"Boolean",bInputB:"Boolean"}},BrickComponentType_WireGraph_Expr_LogicalNOT:{version:1,properties:{bInput:"Boolean"}},BrickComponentType_WireGraph_Expr_LogicalOR:{version:1,properties:{bInputA:"Boolean",bInputB:"Boolean"}},BrickComponentType_WireGraph_Expr_LogicalXOR:{version:1,properties:{bInputA:"Boolean",bInputB:"Boolean"}},BrickComponentType_WireGraph_Expr_MathAdd:{version:1,properties:{InputA:"WireGraphPrimMathVariant",InputB:"WireGraphPrimMathVariant"}},BrickComponentType_WireGraph_Expr_MathBlend:{version:1,properties:{Blend:"Double",InputA:"WireGraphPrimMathVariant",InputB:"WireGraphPrimMathVariant"}},BrickComponentType_WireGraph_Expr_MathDivide:{version:1,properties:{InputA:"WireGraphPrimMathVariant",InputB:"WireGraphPrimMathVariant"}},BrickComponentType_WireGraph_Expr_MathModulo:{version:1,properties:{InputA:"WireGraphPrimMathVariant",InputB:"WireGraphPrimMathVariant"}},BrickComponentType_WireGraph_Expr_MathModuloFloored:{version:1,properties:{InputA:"WireGraphPrimMathVariant",InputB:"WireGraphPrimMathVariant"}},BrickComponentType_WireGraph_Expr_MathMultiply:{version:1,properties:{InputA:"WireGraphPrimMathVariant",InputB:"WireGraphPrimMathVariant"}},BrickComponentType_WireGraph_Expr_MathSubtract:{version:1,properties:{InputA:"WireGraphPrimMathVariant",InputB:"WireGraphPrimMathVariant"}},BrickComponent_WireGraph_Expr_EdgeDetector:{version:1,properties:{Input:"Double",bPulseOnRisingEdge:"Boolean",bPulseOnFallingEdge:"Boolean"}}};var C,S;!function(t){t[t.XPositive=0]="XPositive",t[t.XNegative=1]="XNegative",t[t.YPositive=2]="YPositive",t[t.YNegative=3]="YNegative",t[t.ZPositive=4]="ZPositive",t[t.ZNegative=5]="ZNegative"}(C||(C={})),function(t){t[t.Deg0=0]="Deg0",t[t.Deg90=1]="Deg90",t[t.Deg180=2]="Deg180",t[t.Deg270=3]="Deg270"}(S||(S={}));const M={read:function(t,e={}){if("object"!=typeof e)throw new Error("Invalid options");if("boolean"!=typeof e.bricks&&(e.bricks=!0),"boolean"!=typeof e.preview&&(e.preview=!1),t[0]!==s[0]||t[1]!==s[1]||t[2]!==s[2])throw new Error("Invalid starting bytes");const i=t;i.brsOffset=3;const r=A.u16(i);switch(r){case 1:return function(t,e={}){const i=A.compressed(t),r=A.compressed(t),n=A.string(i),a=A.string(i),s=A.string(i),o=A.uuid(i),h=A.i32(i),l=A.array(r,A.string),c=A.array(r,A.string),d=A.array(r,t=>u(Array.from(A.bytes(t,4))));let p=[];const _=Math.max(c.length,2);if(e.bricks){p=Array(h);const e=A.compressed(t),i=A.bits(e);for(let t=0;!i.empty()&&t<h;t++){i.align();const e=i.int(_),r=i.bit()?[i.uint_packed(),i.uint_packed(),i.uint_packed()]:[0,0,0],n=[i.int_packed(),i.int_packed(),i.int_packed()],a=i.int(24),s=(a>>2)%6,o=3&a,h=i.bit(),l=i.bit(),c=i.bit()?u(i.bytesArr(4)):i.int(d.length);p[t]={asset_name_index:e,size:r,collision:h,position:n,direction:s,rotation:o,visibility:l,color:c}}}return{version:1,map:n,description:s,author:{id:o,name:a},mods:l,brick_assets:c,colors:d,bricks:p,brick_count:h}}(i,e);case 2:return function(t,e={}){const i=A.compressed(t),r=A.compressed(t),n=A.string(i),a=A.string(i),s=A.string(i),o=A.uuid(i),h=A.i32(i),l=A.array(r,A.string),c=A.array(r,A.string),d=A.array(r,t=>u(Array.from(A.bytes(t,4)))),p=A.array(r,A.string);let _=[];const f=Math.max(c.length,2);if(e.bricks){_=Array(h);const e=A.compressed(t),i=A.bits(e);for(let t=0;!i.empty()&&t<h;t++){i.align();const e=i.int(f),r=i.bit()?[i.uint_packed(),i.uint_packed(),i.uint_packed()]:[0,0,0],n=[i.int_packed(),i.int_packed(),i.int_packed()],a=i.int(24),s=(a>>2)%6,o=3&a,h=i.bit(),l=i.bit(),c=i.bit()?i.uint_packed():1,p=i.bit()?u(i.bytesArr(4)):i.int(d.length);_[t]={asset_name_index:e,size:r,position:n,direction:s,rotation:o,collision:h,visibility:l,material_index:c,color:p}}}return{version:2,map:n,description:s,author:{id:o,name:a},mods:l,brick_assets:c,colors:d,materials:p,bricks:_,brick_count:h}}(i,e);case 3:return function(t,e={}){const i=A.compressed(t),r=A.compressed(t),n=A.string(i),a=A.string(i),s=A.string(i),o=A.uuid(i),h=A.i32(i),l=A.array(r,A.string),c=A.array(r,A.string),d=A.array(r,t=>u(Array.from(A.bytes(t,4)))),p=A.array(r,A.string),_=A.array(r,t=>({id:A.uuid(t),name:A.string(t)}));let f=[];const b=Math.max(c.length,2);if(e.bricks){f=Array(h);const e=A.compressed(t),i=A.bits(e);for(let t=0;!i.empty()&&t<h;t++){i.align();const e=i.int(b),r=i.bit()?[i.uint_packed(),i.uint_packed(),i.uint_packed()]:[0,0,0],n=[i.int_packed(),i.int_packed(),i.int_packed()],a=i.int(24),s=(a>>2)%6,o=3&a,h=i.bit(),l=i.bit(),c=i.bit()?i.uint_packed():1,p=i.bit()?u(i.bytesArr(4)):i.int(d.length),_=i.uint_packed();f[t]={asset_name_index:e,size:r,position:n,direction:s,rotation:o,collision:h,visibility:l,material_index:c,color:p,owner_index:_}}}return{version:3,map:n,description:s,author:{id:o,name:a},mods:l,brick_assets:c,colors:d,materials:p,brick_owners:_,bricks:f,brick_count:h}}(i,e);case 4:return function(t,e={}){const i=A.compressed(t),r=A.compressed(t),n=A.string(i),a=A.string(i),s=A.string(i),o=A.uuid(i),h=A.bytes(i,8),l=A.i32(i),c=A.array(r,A.string),d=A.array(r,A.string),p=A.array(r,t=>u(Array.from(A.bytes(t,4)))),_=A.array(r,A.string),f=A.array(r,t=>({id:A.uuid(t),name:A.string(t)}));let b=[];const g=Math.max(d.length,2);if(e.bricks){b=Array(l);const e=A.compressed(t),i=A.bits(e);for(let t=0;!i.empty()&&t<l;t++){i.align();const e=i.int(g),r=i.bit()?[i.uint_packed(),i.uint_packed(),i.uint_packed()]:[0,0,0],n=[i.int_packed(),i.int_packed(),i.int_packed()],a=i.int(24),s=(a>>2)%6,o=3&a,h=i.bit(),l=i.bit(),c=i.bit()?i.uint_packed():1,d=i.bit()?u(i.bytesArr(4)):i.int(p.length),_=i.uint_packed();b[t]={asset_name_index:e,size:r,position:n,direction:s,rotation:o,collision:h,visibility:l,material_index:c,color:d,owner_index:_}}}return{version:4,map:n,description:s,author:{id:o,name:a},mods:c,brick_assets:d,colors:p,materials:_,brick_owners:f,bricks:b,brick_count:l,save_time:h}}(i,e);case 8:return function(t,e={}){const i=A.i32(t),r=A.compressed(t),n=A.compressed(t),a=A.string(r),s=A.string(r),o=A.string(r),h=A.uuid(r),l={name:A.string(r),id:A.uuid(r)},c=A.bytes(r,8),d=A.i32(r),p=A.array(n,A.string),_=A.array(n,A.string),f=A.array(n,t=>u(Array.from(A.bytes(t,4)))),b=A.array(n,A.string),g=A.array(n,t=>({id:A.uuid(t),name:A.string(t),bricks:A.i32(t)}));let m=null;if(A.bytes(t,1)[0]){const i=A.i32(t);e.preview?m=A.bytes(t,i):t.brsOffset+=i}let w=[];const y={},k=Math.max(b.length,2),v=Math.max(_.length,2);if(e.bricks){w=Array(d);const e=A.compressed(t),i=A.bits(e);for(let t=0;!i.empty()&&t<d;t++){i.align();const e=i.int(v),r=i.bit()?[i.uint_packed(),i.uint_packed(),i.uint_packed()]:[0,0,0],n=[i.int_packed(),i.int_packed(),i.int_packed()],a=i.int(24),s=(a>>2)%6,o=3&a,h=i.bit(),l=i.bit(),c=i.int(k),d=i.bit()?u(i.bytesArr(4)):i.int(f.length),p=i.uint_packed();w[t]={asset_name_index:e,size:r,position:n,direction:s,rotation:o,collision:h,visibility:l,material_index:c,color:d,owner_index:p,components:{}}}const r=A.compressed(t),n=Math.max(w.length,2);A.each(r,t=>{const e=A.string(t),i=A.bits(A.bytes(t,A.i32(t))),r=A.i32(i.bytes(4)),a=i.array(()=>i.int(n)),s=i.array(()=>[i.string(),i.string()]);for(const t of a){const r={};for(const[t,e]of s)r[t]=i.unreal(e);w[t].components[e]=r}y[e]={version:r,brick_indices:a,properties:Object.fromEntries(s)}})}return{version:8,game_version:i,map:a,description:o,author:{id:h,name:s},host:l,mods:p,brick_assets:_,colors:f,materials:b,brick_owners:g,preview:m,bricks:w,brick_count:d,save_time:c,components:y}}(i,e);case 9:return function(t,e={}){const i=A.i32(t),r=A.compressed(t),n=A.compressed(t),a=A.string(r),s=A.string(r),o=A.string(r),h=A.uuid(r),l={name:A.string(r),id:A.uuid(r)},c=A.bytes(r,8),d=A.i32(r),p=A.array(n,A.string),_=A.array(n,A.string),f=A.array(n,t=>u(Array.from(A.bytes(t,4)))),b=A.array(n,A.string),g=A.array(n,t=>({id:A.uuid(t),name:A.string(t),bricks:A.i32(t)})),m=A.array(n,A.string);let w=null;if(A.bytes(t,1)[0]){const i=A.i32(t);e.preview?w=A.bytes(t,i):t.brsOffset+=i}let y=[];const k={},v=Math.max(m.length,2),x=Math.max(b.length,2),B=Math.max(_.length,2);if(e.bricks){y=Array(d);const e=A.compressed(t),i=A.bits(e);for(let t=0;!i.empty()&&t<d;t++){i.align();const e=i.int(B),r=i.bit()?[i.uint_packed(),i.uint_packed(),i.uint_packed()]:[0,0,0],n=[i.int_packed(),i.int_packed(),i.int_packed()],a=i.int(24),s=(a>>2)%6,o=3&a,h=i.bit(),l=i.bit(),c=i.int(x),d=i.int(v),u=i.int(11),p=i.bit()?i.bytesArr(3):i.int(f.length),_=i.uint_packed();y[t]={asset_name_index:e,size:r,position:n,direction:s,rotation:o,collision:h,visibility:l,material_index:c,physical_index:d,material_intensity:u,color:p,owner_index:_,components:{}}}const r=A.compressed(t),n=Math.max(y.length,2);A.each(r,t=>{const e=A.string(t),i=A.bits(A.bytes(t,A.i32(t))),r=A.i32(i.bytes(4)),a=i.array(()=>i.int(n)),s=i.array(()=>[i.string(),i.string()]);for(const t of a){const r={};for(const[t,e]of s)r[t]=i.unreal(e);y[t].components[e]=r}k[e]={version:r,brick_indices:a,properties:Object.fromEntries(s)}})}return{version:9,game_version:i,map:a,description:o,author:{id:h,name:s},host:l,mods:p,brick_assets:_,colors:f,materials:b,brick_owners:g,physical_materials:m,preview:w,bricks:y,brick_count:d,save_time:c,components:k}}(i,e);case 10:return function(t,e={}){const i=A.i32(t),r=A.compressed(t),n=A.compressed(t),a=A.string(r),s=A.string(r),o=A.string(r),h=A.uuid(r),l={name:A.string(r),id:A.uuid(r)},c=A.bytes(r,8),d=A.i32(r),p=A.array(n,A.string),_=A.array(n,A.string),f=A.array(n,t=>u(Array.from(A.bytes(t,4)))),b=A.array(n,A.string),g=A.array(n,t=>({id:A.uuid(t),name:A.string(t),bricks:A.i32(t)})),m=A.array(n,A.string);let w=null;if(A.bytes(t,1)[0]){const i=A.i32(t);e.preview?w=A.bytes(t,i):t.brsOffset+=i}let y=[];const k={},v=Math.max(m.length,2),x=Math.max(b.length,2),B=Math.max(_.length,2);if(e.bricks){y=Array(d);const e=A.compressed(t),i=A.bits(e);for(let t=0;!i.empty()&&t<d;t++){i.align();const e=i.int(B),r=i.bit()?[i.uint_packed(),i.uint_packed(),i.uint_packed()]:[0,0,0],n=[i.int_packed(),i.int_packed(),i.int_packed()],a=i.int(24),s=(a>>2)%6,o=3&a,h={player:i.bit(),weapon:i.bit(),interaction:i.bit(),tool:i.bit(),physics:!1},l=i.bit(),c=i.int(x),d=i.int(v),u=i.int(11),p=i.bit()?i.bytesArr(3):i.int(f.length),_=i.uint_packed();y[t]={asset_name_index:e,size:r,position:n,direction:s,rotation:o,collision:h,visibility:l,material_index:c,physical_index:d,material_intensity:u,color:p,owner_index:_,components:{}}}const r=A.compressed(t),n=Math.max(y.length,2);A.each(r,t=>{const e=A.string(t),i=A.bits(A.bytes(t,A.i32(t))),r=A.i32(i.bytes(4)),a=i.array(()=>i.int(n)),s=i.array(()=>[i.string(),i.string()]);for(const t of a){const r={};for(const[t,e]of s)r[t]=i.unreal(e);y[t].components[e]=r}k[e]={version:r,brick_indices:a,properties:Object.fromEntries(s)}})}return{version:10,game_version:i,map:a,description:o,author:{id:h,name:s},host:l,mods:p,brick_assets:_,colors:f,materials:b,brick_owners:g,physical_materials:m,preview:w,bricks:y,brick_count:d,save_time:c,components:k}}(i,e);case 14:return function(t,e={}){const i=A.i32(t),r=A.compressed(t),n=A.compressed(t),a=A.string(r),s=A.string(r),o=A.string(r),h=A.uuid(r),l={name:A.string(r),id:A.uuid(r)},c=A.bytes(r,8),d=A.i32(r),p=A.array(n,A.string),_=A.array(n,A.string),f=A.array(n,t=>u(Array.from(A.bytes(t,4)))),b=A.array(n,A.string),g=A.array(n,t=>({id:A.uuid(t),name:A.string(t),display_name:A.string(t),bricks:A.i32(t)})),m=A.array(n,A.string);let w=null;if(A.bytes(t,1)[0]){const i=A.i32(t);e.preview?w=A.bytes(t,i):t.brsOffset+=i}let y=[];const k={},v=[],x=Math.max(m.length,2),B=Math.max(b.length,2),E=Math.max(_.length,2);if(e.bricks){y=Array(d);const e=A.compressed(t),i=A.bits(e);for(let t=0;!i.empty()&&t<d;t++){i.align();const e=i.int(E),r=i.bit()?[i.uint_packed(),i.uint_packed(),i.uint_packed()]:[0,0,0],n=[i.int_packed(),i.int_packed(),i.int_packed()],a=i.int(24),s=(a>>2)%6,o=3&a,h={player:i.bit(),weapon:i.bit(),interaction:i.bit(),tool:i.bit(),physics:i.bit()},l=i.bit(),c=i.int(B),d=i.int(x),u=i.int(11),p=i.bit()?i.bytesArr(3):i.int(f.length),_=i.uint_packed();y[t]={asset_name_index:e,size:r,position:n,direction:s,rotation:o,collision:h,visibility:l,material_index:c,physical_index:d,material_intensity:u,color:p,owner_index:_,components:{}}}const r=A.compressed(t),n=A.compressed(t),a=Math.max(y.length,2),s=[];A.each(r,t=>{const e=A.string(t),i=A.bits(A.bytes(t,A.i32(t))),r=A.i32(i.bytes(4)),n=i.array(()=>i.int(a)),o=i.array(()=>[i.string(),i.string()]);for(const t of n){const r={};for(const[t,e]of o)r[t]=i.unreal(e);y[t].components[e]=r}e in k||s.push(e),k[e]={version:r,brick_indices:n,properties:Object.fromEntries(o)}});const o=Math.max(s.length,2);{const t=A.bits(n),e=t.int(4294967295);for(let i=0;i<e;i++){const e=t.int(a),i=t.int(o),r=t.string(),n=t.int(a),h=t.int(o),l=t.string();t.bit(),t.align(),v.push({source:{brick_index:e,component:s[i],port:r},target:{brick_index:n,component:s[h],port:l}})}}}return{version:14,game_version:i,map:a,description:o,author:{id:h,name:s},host:l,mods:p,brick_assets:_,colors:f,materials:b,brick_owners:g,physical_materials:m,preview:w,bricks:y,brick_count:d,save_time:c,components:k,wires:v}}(i,e);default:throw new Error("Unsupported version "+r)}},write:function(t,e={}){if("object"!=typeof t)throw new Error("Expected save to be an object");if(!Array.isArray(t.bricks)||0===t.bricks.length)throw new Error("Expected save to have bricks field");if(t.bricks.length>h)throw new Error("Brick count out of range");const i=e.compress?E.compressed:E.uncompressed,r={},n=Math.max(t.colors?.length??0,2),a=Math.max(t.brick_assets?.length??0,2),c=Math.max(t.materials?.length??0,2),d=Math.max(t.physical_materials?.length??0,2);if(t.preview&&!Array.isArray(t.preview))throw new Error("Expected preview to be an array");let u={},_=0;return B(s,E.u16(o),E.i32(t.game_version??0),i(E.string(t.map??"Unknown"),E.string(t.author?.name??"Unknown"),E.string(t.description??""),E.uuid(t.author?.id??l),B(E.string(t.host?.name??"Unknown"),E.uuid(t.host?.id??l)),new Uint8Array(t.save_time&&(Array.isArray(t.save_time)||t.save_time instanceof Uint8Array)&&8===t.save_time.length?t.save_time:[0,0,0,0,0,0,0,0]),E.i32(t.bricks.length)),i(E.array(t.mods??[],E.string),E.array(t.brick_assets??["PB_DefaultBrick"],E.string),E.array(t.colors??[],([t,e,i,r])=>new Uint8Array([i,e,t,r])),E.array(t.materials??["BMC_Plastic"],E.string),E.array(t.brick_owners??[],({id:t=l,name:e="Unknown",display_name:i="Unknown",bricks:r=0})=>B(E.uuid(t),E.string(e),E.string(i),E.i32(r))),E.array(t.physical_materials??["BPMC_Default"],E.string)),B(new Uint8Array([t.preview?1:0]),t.preview?E.i32(t.preview.length):I,t.preview??I),i(E.bits().each(t.bricks,function(t,e){if("object"!=typeof t)throw new Error(`Expected save.bricks[${e}] to be an object`);if(!Array.isArray(t.size)||3!==t.size.length)throw new Error(`Expected save.bricks[${e}].size to be an array of length 3`);if(!Array.isArray(t.position)||3!==t.position.length)throw new Error(`Expected save.bricks[${e}].position to be an array of length 3`);this.align(),this.int(t.asset_name_index??0,a);const i=null===t.size||p(t.size,[0,0,0]);if(this.bit(!i),i||t.size.map(t=>this.uint_packed(t>=0?t:1)),t.position.map(t=>this.int_packed(t)),this.int((t.direction??4)<<2|(t.rotation??0),24),"boolean"==typeof t.collision?(this.bit(t.collision),this.bit(t.collision),this.bit(t.collision),this.bit(!0),this.bit(t.collision)):(this.bit(t.collision?.player??!0),this.bit(t.collision?.weapon??!0),this.bit(t.collision?.interaction??!0),this.bit(t.collision?.tool??!0),this.bit(t.collision?.physics??!0)),this.bit(t.visibility??!0),this.int(t.material_index??0,c),this.int(t.physical_index??0,d),this.int(t.material_intensity??5,11),"number"==typeof t.color)this.bit(!1),this.int(t.color,n);else{if(this.bit(!0),t.color&&(!Array.isArray(t.color)||t.color.length<3))throw new Error(`Expected save.bricks[${e}].color to be an array of at least length 3`);this.bytes(new Uint8Array(t.color?.slice(0,3)??[255,255,255]))}this.uint_packed(t.owner_index>=0?t.owner_index:0);for(const i in t.components??{})r[i]??(r[i]=[]),r[i].push(e)}).finish()),i(E.array(Object.keys(t.components??z).filter(t=>r[t]),e=>B(E.string(e),E.bits().self(function(){const i=t.components?.[e]??z[e],n=r[e],a=Object.entries(i.properties);e in u||(u[e]=_,_++),this.bytes(E.i32(i.version)),this.array(n,e=>{this.int(e,Math.max(t.bricks.length,2))}),this.array(a,([t,e])=>{this.string(t),this.string(e)});for(const i of n)for(const[r,n]of a){if(!(r in(t.bricks[i].components?.[e]??{})))throw new Error(`Expected save.bricks[${i}].components[${e}] to have property '${r}' of type '${n}'`);this.unreal(n,t.bricks[i].components[e][r])}this.align()}).finishSection()))),i(E.bits().self(function(){const e=4294967295;if(t.wires&&Array.isArray(t.wires)&&0!==t.wires.length){this.int(t.wires.length,e);for(const e of t.wires){if("object"!=typeof e)throw new Error("Expected save.wires to be an array of objects");if(!e.source||"object"!=typeof e.source||"number"!=typeof e.source.brick_index||"string"!=typeof e.source.component||"string"!=typeof e.source.port)throw new Error("Expected save.wires[i].source to be an object with brick_index, component, and port properties");if(!e.target||"object"!=typeof e.target||"number"!=typeof e.target.brick_index||"string"!=typeof e.target.component||"string"!=typeof e.target.port)throw new Error("Expected save.wires[i].target to be an object with brick_index, component, and port properties");if(!(e.source.component in u))throw new Error(`Unknown component '${e.source.component}' in wire source`);if(!(e.target.component in u))throw new Error(`Unknown component '${e.target.component}' in wire target`);this.int(e.source.brick_index,t.bricks.length),this.int(u[e.source.component],_),this.string(e.source.port),this.int(e.target.brick_index,t.bricks.length),this.int(u[e.target.component],_),this.string(e.target.port),this.bit(!1),this.align()}}else this.int(0,e)}).finish()))},utils:n,constants:r,types:a};"undefined"!=typeof window&&(window.BRS=M)})();
|
|
1
|
+
(function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports):typeof define==`function`&&define.amd?define([`exports`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.BRS={}))})(this,function(e){Object.defineProperties(e,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});var t=Object.defineProperty,n=(e,n)=>{let r={};for(var i in e)t(r,i,{get:e[i],enumerable:!0});return n||t(r,Symbol.toStringTag,{value:`Module`}),r},r=n({DEFAULT_UUID:()=>o,LATEST_VERSION:()=>14,MAGIC:()=>i,MAX_INT:()=>a}),i=new Uint8Array([66,82,83]),a=2147483647,o=`00000000-0000-0000-0000-000000000000`;function s(e){"@babel/helpers - typeof";return s=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},s(e)}function c(e,t){if(s(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(s(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function l(e){var t=c(e,`string`);return s(t)==`symbol`?t:t+``}function u(e,t,n){return(t=l(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var d=4,f=0,p=1,m=2;function h(e){let t=e.length;for(;--t>=0;)e[t]=0}var g=0,_=1,v=2,y=29,b=256,x=286,S=30,C=19,w=573,T=15,E=16,D=7,O=256,k=16,A=17,j=18,M=new Uint8Array([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]),ee=new Uint8Array([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]),te=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),ne=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),re=512,ie=Array(288*2);h(ie);var ae=Array(S*2);h(ae);var oe=Array(re);h(oe);var se=Array(256);h(se);var ce=Array(y);h(ce);var le=Array(S);h(le);var ue=class{constructor(e,t,n,r,i){this.static_tree=e,this.extra_bits=t,this.extra_base=n,this.elems=r,this.max_length=i,this.has_stree=e&&e.length}},de,fe,pe,me=class{constructor(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}},he=e=>e<256?oe[e]:oe[256+(e>>>7)],ge=(e,t)=>{e.pending_buf[e.pending++]=t&255,e.pending_buf[e.pending++]=t>>>8&255},N=(e,t,n)=>{e.bi_valid>E-n?(e.bi_buf|=t<<e.bi_valid&65535,ge(e,e.bi_buf),e.bi_buf=t>>E-e.bi_valid,e.bi_valid+=n-E):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=n)},_e=(e,t,n)=>{N(e,n[t*2],n[t*2+1])},ve=(e,t)=>{let n=0;do n|=e&1,e>>>=1,n<<=1;while(--t>0);return n>>>1},ye=e=>{e.bi_valid===16?(ge(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)},be=(e,t)=>{let n=t.dyn_tree,r=t.max_code,i=t.stat_desc.static_tree,a=t.stat_desc.has_stree,o=t.stat_desc.extra_bits,s=t.stat_desc.extra_base,c=t.stat_desc.max_length,l,u,d,f,p,m,h=0;for(f=0;f<=T;f++)e.bl_count[f]=0;for(n[e.heap[e.heap_max]*2+1]=0,l=e.heap_max+1;l<w;l++)u=e.heap[l],f=n[n[u*2+1]*2+1]+1,f>c&&(f=c,h++),n[u*2+1]=f,!(u>r)&&(e.bl_count[f]++,p=0,u>=s&&(p=o[u-s]),m=n[u*2],e.opt_len+=m*(f+p),a&&(e.static_len+=m*(i[u*2+1]+p)));if(h!==0){do{for(f=c-1;e.bl_count[f]===0;)f--;e.bl_count[f]--,e.bl_count[f+1]+=2,e.bl_count[c]--,h-=2}while(h>0);for(f=c;f!==0;f--)for(u=e.bl_count[f];u!==0;)d=e.heap[--l],!(d>r)&&(n[d*2+1]!==f&&(e.opt_len+=(f-n[d*2+1])*n[d*2],n[d*2+1]=f),u--)}},xe=(e,t,n)=>{let r=Array(16),i=0,a,o;for(a=1;a<=T;a++)i=i+n[a-1]<<1,r[a]=i;for(o=0;o<=t;o++){let t=e[o*2+1];t!==0&&(e[o*2]=ve(r[t]++,t))}},Se=()=>{let e,t,n,r,i,a=Array(16);for(n=0,r=0;r<y-1;r++)for(ce[r]=n,e=0;e<1<<M[r];e++)se[n++]=r;for(se[n-1]=r,i=0,r=0;r<16;r++)for(le[r]=i,e=0;e<1<<ee[r];e++)oe[i++]=r;for(i>>=7;r<S;r++)for(le[r]=i<<7,e=0;e<1<<ee[r]-7;e++)oe[256+i++]=r;for(t=0;t<=T;t++)a[t]=0;for(e=0;e<=143;)ie[e*2+1]=8,e++,a[8]++;for(;e<=255;)ie[e*2+1]=9,e++,a[9]++;for(;e<=279;)ie[e*2+1]=7,e++,a[7]++;for(;e<=287;)ie[e*2+1]=8,e++,a[8]++;for(xe(ie,287,a),e=0;e<S;e++)ae[e*2+1]=5,ae[e*2]=ve(e,5);de=new ue(ie,M,257,x,T),fe=new ue(ae,ee,0,S,T),pe=new ue([],te,0,C,D)},Ce=e=>{let t;for(t=0;t<x;t++)e.dyn_ltree[t*2]=0;for(t=0;t<S;t++)e.dyn_dtree[t*2]=0;for(t=0;t<C;t++)e.bl_tree[t*2]=0;e.dyn_ltree[O*2]=1,e.opt_len=e.static_len=0,e.sym_next=e.matches=0},we=e=>{e.bi_valid>8?ge(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0},Te=(e,t,n,r)=>{let i=t*2,a=n*2;return e[i]<e[a]||e[i]===e[a]&&r[t]<=r[n]},Ee=(e,t,n)=>{let r=e.heap[n],i=n<<1;for(;i<=e.heap_len&&(i<e.heap_len&&Te(t,e.heap[i+1],e.heap[i],e.depth)&&i++,!Te(t,r,e.heap[i],e.depth));)e.heap[n]=e.heap[i],n=i,i<<=1;e.heap[n]=r},De=(e,t,n)=>{let r,i,a=0,o,s;if(e.sym_next!==0)do r=e.pending_buf[e.sym_buf+a++]&255,r+=(e.pending_buf[e.sym_buf+a++]&255)<<8,i=e.pending_buf[e.sym_buf+a++],r===0?_e(e,i,t):(o=se[i],_e(e,o+b+1,t),s=M[o],s!==0&&(i-=ce[o],N(e,i,s)),r--,o=he(r),_e(e,o,n),s=ee[o],s!==0&&(r-=le[o],N(e,r,s)));while(a<e.sym_next);_e(e,O,t)},Oe=(e,t)=>{let n=t.dyn_tree,r=t.stat_desc.static_tree,i=t.stat_desc.has_stree,a=t.stat_desc.elems,o,s,c=-1,l;for(e.heap_len=0,e.heap_max=w,o=0;o<a;o++)n[o*2]===0?n[o*2+1]=0:(e.heap[++e.heap_len]=c=o,e.depth[o]=0);for(;e.heap_len<2;)l=e.heap[++e.heap_len]=c<2?++c:0,n[l*2]=1,e.depth[l]=0,e.opt_len--,i&&(e.static_len-=r[l*2+1]);for(t.max_code=c,o=e.heap_len>>1;o>=1;o--)Ee(e,n,o);l=a;do o=e.heap[1],e.heap[1]=e.heap[e.heap_len--],Ee(e,n,1),s=e.heap[1],e.heap[--e.heap_max]=o,e.heap[--e.heap_max]=s,n[l*2]=n[o*2]+n[s*2],e.depth[l]=(e.depth[o]>=e.depth[s]?e.depth[o]:e.depth[s])+1,n[o*2+1]=n[s*2+1]=l,e.heap[1]=l++,Ee(e,n,1);while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],be(e,t),xe(n,c,e.bl_count)},ke=(e,t,n)=>{let r,i=-1,a,o=t[1],s=0,c=7,l=4;for(o===0&&(c=138,l=3),t[(n+1)*2+1]=65535,r=0;r<=n;r++)a=o,o=t[(r+1)*2+1],!(++s<c&&a===o)&&(s<l?e.bl_tree[a*2]+=s:a===0?s<=10?e.bl_tree[A*2]++:e.bl_tree[j*2]++:(a!==i&&e.bl_tree[a*2]++,e.bl_tree[k*2]++),s=0,i=a,o===0?(c=138,l=3):a===o?(c=6,l=3):(c=7,l=4))},Ae=(e,t,n)=>{let r,i=-1,a,o=t[1],s=0,c=7,l=4;for(o===0&&(c=138,l=3),r=0;r<=n;r++)if(a=o,o=t[(r+1)*2+1],!(++s<c&&a===o)){if(s<l)do _e(e,a,e.bl_tree);while(--s!==0);else a===0?s<=10?(_e(e,A,e.bl_tree),N(e,s-3,3)):(_e(e,j,e.bl_tree),N(e,s-11,7)):(a!==i&&(_e(e,a,e.bl_tree),s--),_e(e,k,e.bl_tree),N(e,s-3,2));s=0,i=a,o===0?(c=138,l=3):a===o?(c=6,l=3):(c=7,l=4)}},je=e=>{let t;for(ke(e,e.dyn_ltree,e.l_desc.max_code),ke(e,e.dyn_dtree,e.d_desc.max_code),Oe(e,e.bl_desc),t=C-1;t>=3&&e.bl_tree[ne[t]*2+1]===0;t--);return e.opt_len+=3*(t+1)+5+5+4,t},Me=(e,t,n,r)=>{let i;for(N(e,t-257,5),N(e,n-1,5),N(e,r-4,4),i=0;i<r;i++)N(e,e.bl_tree[ne[i]*2+1],3);Ae(e,e.dyn_ltree,t-1),Ae(e,e.dyn_dtree,n-1)},Ne=e=>{let t=4093624447,n;for(n=0;n<=31;n++,t>>>=1)if(t&1&&e.dyn_ltree[n*2]!==0)return f;if(e.dyn_ltree[18]!==0||e.dyn_ltree[20]!==0||e.dyn_ltree[26]!==0)return p;for(n=32;n<b;n++)if(e.dyn_ltree[n*2]!==0)return p;return f},Pe=!1,Fe=e=>{Pe||(Se(),Pe=!0),e.l_desc=new me(e.dyn_ltree,de),e.d_desc=new me(e.dyn_dtree,fe),e.bl_desc=new me(e.bl_tree,pe),e.bi_buf=0,e.bi_valid=0,Ce(e)},Ie=(e,t,n,r)=>{N(e,(g<<1)+ +!!r,3),we(e),ge(e,n),ge(e,~n),n&&e.pending_buf.set(e.window.subarray(t,t+n),e.pending),e.pending+=n},Le=e=>{N(e,_<<1,3),_e(e,O,ie),ye(e)},Re=(e,t,n,r)=>{let i,a,o=0;e.level>0?(e.strm.data_type===m&&(e.strm.data_type=Ne(e)),Oe(e,e.l_desc),Oe(e,e.d_desc),o=je(e),i=e.opt_len+3+7>>>3,a=e.static_len+3+7>>>3,a<=i&&(i=a)):i=a=n+5,n+4<=i&&t!==-1?Ie(e,t,n,r):e.strategy===d||a===i?(N(e,(_<<1)+ +!!r,3),De(e,ie,ae)):(N(e,(v<<1)+ +!!r,3),Me(e,e.l_desc.max_code+1,e.d_desc.max_code+1,o+1),De(e,e.dyn_ltree,e.dyn_dtree)),Ce(e),r&&we(e)},ze=(e,t,n)=>(e.pending_buf[e.sym_buf+e.sym_next++]=t,e.pending_buf[e.sym_buf+e.sym_next++]=t>>8,e.pending_buf[e.sym_buf+e.sym_next++]=n,t===0?e.dyn_ltree[n*2]++:(e.matches++,t--,e.dyn_ltree[(se[n]+b+1)*2]++,e.dyn_dtree[he(t)*2]++),e.sym_next===e.sym_end),Be=(e,t,n,r)=>{let i=e&65535|0,a=e>>>16&65535|0,o=0;for(;n!==0;){o=n>2e3?2e3:n,n-=o;do i=i+t[r++]|0,a=a+i|0;while(--o);i%=65521,a%=65521}return i|a<<16|0},Ve=new Uint32Array((()=>{let e,t=[];for(var n=0;n<256;n++){e=n;for(var r=0;r<8;r++)e=e&1?3988292384^e>>>1:e>>>1;t[n]=e}return t})()),P=(e,t,n,r)=>{let i=Ve,a=r+n;e^=-1;for(let n=r;n<a;n++)e=e>>>8^i[(e^t[n])&255];return e^-1},He={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`},Ue=9,We=573,F=3,Ge=258,Ke=262,qe=32,Je=42,Ye=57,Xe=69,Ze=73,Qe=91,$e=103,et=113,tt=666,I=1,nt=2,rt=3,it=4,at=3,ot=(e,t)=>(e.msg=He[t],t),st=e=>e*2-(e>4?9:0),ct=e=>{let t=e.length;for(;--t>=0;)e[t]=0},lt=e=>{let t,n,r,i=e.w_size;t=e.hash_size,r=t;do n=e.head[--r],e.head[r]=n>=i?n-i:0;while(--t);t=i,r=t;do n=e.prev[--r],e.prev[r]=n>=i?n-i:0;while(--t)},ut=(e,t,n)=>(t<<e.hash_shift^n)&e.hash_mask,dt=(e,t)=>{let n;if(e.legacy_hash)n=e.ins_h=ut(e,e.ins_h,e.window[t+F-1]);else{let r=e.window,i=r[t]|r[t+1]<<8|r[t+2]<<16|r[t+3]<<24;n=e.ins_h=Math.imul(i,66521)+66521>>>16&e.hash_mask}let r=e.prev[t&e.w_mask]=e.head[n];return e.head[n]=t,r},L=e=>{let t=e.state,n=t.pending;n>e.avail_out&&(n=e.avail_out),n!==0&&(e.output.set(t.pending_buf.subarray(t.pending_out,t.pending_out+n),e.next_out),e.next_out+=n,t.pending_out+=n,e.total_out+=n,e.avail_out-=n,t.pending-=n,t.pending===0&&(t.pending_out=0))},R=(e,t)=>{Re(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,L(e.strm)},z=(e,t)=>{e.pending_buf[e.pending++]=t},ft=(e,t)=>{e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=t&255},pt=(e,t,n,r)=>{let i=e.avail_in;return i>r&&(i=r),i===0?0:(e.avail_in-=i,t.set(e.input.subarray(e.next_in,e.next_in+i),n),e.state.wrap===1?e.adler=Be(e.adler,t,i,n):e.state.wrap===2&&(e.adler=P(e.adler,t,i,n)),e.next_in+=i,e.total_in+=i,i)},mt=(e,t)=>{let n=e.max_chain_length,r=e.strstart,i,a,o=e.prev_length,s=e.nice_match,c=e.strstart>e.w_size-Ke?e.strstart-(e.w_size-Ke):0,l=e.window,u=e.w_mask,d=e.prev,f=e.strstart+Ge,p=l[r+o-1],m=l[r+o];e.prev_length>=e.good_match&&(n>>=2),s>e.lookahead&&(s=e.lookahead);do{if(i=t,l[i+o]!==m||l[i+o-1]!==p||l[i]!==l[r]||l[++i]!==l[r+1])continue;r+=2,i++;do;while(l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&r<f);if(a=Ge-(f-r),r=f-Ge,a>o){if(e.match_start=t,o=a,a>=s)break;p=l[r+o-1],m=l[r+o]}}while((t=d[t&u])>c&&--n!==0);return o<=e.lookahead?o:e.lookahead},ht=e=>{let t=e.w_size,n,r,i;do{if(r=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-Ke)&&(e.window.set(e.window.subarray(t,t+t-r),0),e.match_start-=t,e.strstart-=t,e.block_start-=t,e.insert>e.strstart&&(e.insert=e.strstart),lt(e),r+=t),e.strm.avail_in===0)break;if(n=pt(e.strm,e.window,e.strstart+e.lookahead,r),e.lookahead+=n,!e.legacy_hash){if(e.lookahead+e.insert>F)for(i=e.strstart-e.insert;e.insert&&(dt(e,i),i++,e.insert--,!(e.lookahead+e.insert<=F)););}else if(e.lookahead+e.insert>=F)for(i=e.strstart-e.insert,e.ins_h=e.window[i],e.ins_h=ut(e,e.ins_h,e.window[i+1]);e.insert&&(dt(e,i),i++,e.insert--,!(e.lookahead+e.insert<F)););}while(e.lookahead<Ke&&e.strm.avail_in!==0)},gt=(e,t)=>{let n=e.pending_buf_size-5>e.w_size?e.w_size:e.pending_buf_size-5,r,i,a,o=0,s=e.strm.avail_in;do{if(r=65535,a=e.bi_valid+42>>3,e.strm.avail_out<a||(a=e.strm.avail_out-a,i=e.strstart-e.block_start,r>i+e.strm.avail_in&&(r=i+e.strm.avail_in),r>a&&(r=a),r<n&&(r===0&&t!==4||t===0||r!==i+e.strm.avail_in)))break;o=+(t===4&&r===i+e.strm.avail_in),Ie(e,0,0,o),e.pending_buf[e.pending-4]=r,e.pending_buf[e.pending-3]=r>>8,e.pending_buf[e.pending-2]=~r,e.pending_buf[e.pending-1]=~r>>8,L(e.strm),i&&(i>r&&(i=r),e.strm.output.set(e.window.subarray(e.block_start,e.block_start+i),e.strm.next_out),e.strm.next_out+=i,e.strm.avail_out-=i,e.strm.total_out+=i,e.block_start+=i,r-=i),r&&(pt(e.strm,e.strm.output,e.strm.next_out,r),e.strm.next_out+=r,e.strm.avail_out-=r,e.strm.total_out+=r)}while(o===0);return s-=e.strm.avail_in,s&&(s>=e.w_size?(e.matches=2,e.window.set(e.strm.input.subarray(e.strm.next_in-e.w_size,e.strm.next_in),0),e.strstart=e.w_size,e.insert=e.strstart):(e.window_size-e.strstart<=s&&(e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,e.insert>e.strstart&&(e.insert=e.strstart)),e.window.set(e.strm.input.subarray(e.strm.next_in-s,e.strm.next_in),e.strstart),e.strstart+=s,e.insert+=s>e.w_size-e.insert?e.w_size-e.insert:s),e.block_start=e.strstart),e.high_water<e.strstart&&(e.high_water=e.strstart),o?it:t!==0&&t!==4&&e.strm.avail_in===0&&e.strstart===e.block_start?nt:(a=e.window_size-e.strstart,e.strm.avail_in>a&&e.block_start>=e.w_size&&(e.block_start-=e.w_size,e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,a+=e.w_size,e.insert>e.strstart&&(e.insert=e.strstart)),a>e.strm.avail_in&&(a=e.strm.avail_in),a&&(pt(e.strm,e.window,e.strstart,a),e.strstart+=a,e.insert+=a>e.w_size-e.insert?e.w_size-e.insert:a),e.high_water<e.strstart&&(e.high_water=e.strstart),a=e.bi_valid+42>>3,a=e.pending_buf_size-a>65535?65535:e.pending_buf_size-a,n=a>e.w_size?e.w_size:a,i=e.strstart-e.block_start,(i>=n||(i||t===4)&&t!==0&&e.strm.avail_in===0&&i<=a)&&(r=i>a?a:i,o=+(t===4&&e.strm.avail_in===0&&r===i),Ie(e,e.block_start,r,o),e.block_start+=r,L(e.strm)),o?rt:I)},_t=(e,t)=>{let n,r;for(;;){if(e.lookahead<Ke){if(ht(e),e.lookahead<Ke&&t===0)return I;if(e.lookahead===0)break}if(n=0,e.lookahead>=F&&(n=dt(e,e.strstart)),n!==0&&e.strstart-n<=e.w_size-Ke&&(e.match_length=mt(e,n)),e.match_length>=F)if(r=ze(e,e.strstart-e.match_start,e.match_length-F),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=F){e.match_length--;do e.strstart++,n=dt(e,e.strstart);while(--e.match_length!==0);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.legacy_hash&&(e.ins_h=e.window[e.strstart],e.ins_h=ut(e,e.ins_h,e.window[e.strstart+1]));else r=ze(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(r&&(R(e,!1),e.strm.avail_out===0))return I}return e.insert=e.strstart<F-1?e.strstart:F-1,t===4?(R(e,!0),e.strm.avail_out===0?rt:it):e.sym_next&&(R(e,!1),e.strm.avail_out===0)?I:nt},vt=(e,t)=>{let n,r,i;for(;;){if(e.lookahead<Ke){if(ht(e),e.lookahead<Ke&&t===0)return I;if(e.lookahead===0)break}if(n=0,e.lookahead>=F&&(n=dt(e,e.strstart)),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=F-1,n!==0&&e.prev_length<e.max_lazy_match&&e.strstart-n<=e.w_size-Ke&&(e.match_length=mt(e,n),e.match_length<=5&&(e.strategy===1||e.match_length===F&&e.strstart-e.match_start>4096)&&(e.match_length=F-1)),e.prev_length>=F&&e.match_length<=e.prev_length){i=e.strstart+e.lookahead-F,r=ze(e,e.strstart-1-e.prev_match,e.prev_length-F),e.lookahead-=e.prev_length-1,e.prev_length-=2;do++e.strstart<=i&&(n=dt(e,e.strstart));while(--e.prev_length!==0);if(e.match_available=0,e.match_length=F-1,e.strstart++,r&&(R(e,!1),e.strm.avail_out===0))return I}else if(e.match_available){if(r=ze(e,0,e.window[e.strstart-1]),r&&R(e,!1),e.strstart++,e.lookahead--,e.strm.avail_out===0)return I}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(r=ze(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<F-1?e.strstart:F-1,t===4?(R(e,!0),e.strm.avail_out===0?rt:it):e.sym_next&&(R(e,!1),e.strm.avail_out===0)?I:nt},yt=(e,t)=>{let n,r,i,a,o=e.window;for(;;){if(e.lookahead<=Ge){if(ht(e),e.lookahead<=Ge&&t===0)return I;if(e.lookahead===0)break}if(e.match_length=0,e.lookahead>=F&&e.strstart>0&&(i=e.strstart-1,r=o[i],r===o[++i]&&r===o[++i]&&r===o[++i])){a=e.strstart+Ge;do;while(r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&i<a);e.match_length=Ge-(a-i),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=F?(n=ze(e,1,e.match_length-F),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(n=ze(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),n&&(R(e,!1),e.strm.avail_out===0))return I}return e.insert=0,t===4?(R(e,!0),e.strm.avail_out===0?rt:it):e.sym_next&&(R(e,!1),e.strm.avail_out===0)?I:nt},bt=(e,t)=>{let n;for(;;){if(e.lookahead===0&&(ht(e),e.lookahead===0)){if(t===0)return I;break}if(e.match_length=0,n=ze(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,n&&(R(e,!1),e.strm.avail_out===0))return I}return e.insert=0,t===4?(R(e,!0),e.strm.avail_out===0?rt:it):e.sym_next&&(R(e,!1),e.strm.avail_out===0)?I:nt},xt=class{constructor(e,t,n,r,i){this.good_length=e,this.max_lazy=t,this.nice_length=n,this.max_chain=r,this.func=i}},St=[new xt(0,0,0,0,gt),new xt(4,4,8,4,_t),new xt(4,5,16,8,_t),new xt(4,6,32,32,_t),new xt(4,4,16,16,vt),new xt(8,16,32,32,vt),new xt(8,16,128,128,vt),new xt(8,32,128,256,vt),new xt(32,128,258,1024,vt),new xt(32,258,258,4096,vt)],Ct=e=>{e.window_size=2*e.w_size,ct(e.head),e.max_lazy_match=St[e.level].max_lazy,e.good_match=St[e.level].good_length,e.nice_match=St[e.level].nice_length,e.max_chain_length=St[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=F-1,e.match_available=0,e.ins_h=0},wt=class{constructor(){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=8,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.legacy_hash=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 Uint16Array(We*2),this.dyn_dtree=new Uint16Array(122),this.bl_tree=new Uint16Array(78),ct(this.dyn_ltree),ct(this.dyn_dtree),ct(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(16),this.heap=new Uint16Array(573),ct(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(573),ct(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}},Tt=e=>{if(!e)return 1;let t=e.state;return+(!t||t.strm!==e||t.status!==Je&&t.status!==Ye&&t.status!==Xe&&t.status!==Ze&&t.status!==Qe&&t.status!==$e&&t.status!==et&&t.status!==tt)},Et=e=>{if(Tt(e))return ot(e,-2);e.total_in=e.total_out=0,e.data_type=2;let t=e.state;return t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap===2?Ye:t.wrap?Je:et,e.adler=t.wrap===2?0:1,t.last_flush=-2,Fe(t),0},Dt=e=>{let t=Et(e);return t===0&&Ct(e.state),t},Ot=(e,t,n,r,i,a,o)=>{if(!e)return-2;let s=1;if(t===-1&&(t=6),r<0?(s=0,r=-r):r>15&&(s=2,r-=16),i<1||i>Ue||n!==8||r<8||r>15||t<0||t>9||a<0||a>4||r===8&&s!==1)return ot(e,-2);r===8&&(r=9);let c=new wt;return e.state=c,c.strm=e,c.status=Je,c.wrap=s,c.gzhead=null,c.w_bits=r,c.w_size=1<<c.w_bits,c.w_mask=c.w_size-1,c.legacy_hash=+!!o,c.hash_bits=i+7,!c.legacy_hash&&c.hash_bits<15&&(c.hash_bits=15),c.hash_size=1<<c.hash_bits,c.hash_mask=c.hash_size-1,c.hash_shift=~~((c.hash_bits+F-1)/F),c.window=new Uint8Array(c.w_size*2),c.head=new Uint16Array(c.hash_size),c.prev=new Uint16Array(c.w_size),c.lit_bufsize=1<<i+6,c.pending_buf_size=c.lit_bufsize*4,c.pending_buf=new Uint8Array(c.pending_buf_size),c.sym_buf=c.lit_bufsize,c.sym_end=(c.lit_bufsize-1)*3,c.level=t,c.strategy=a,c.method=n,Dt(e)},kt=(e,t)=>{if(Tt(e)||t>5||t<0)return e?ot(e,-2):-2;let n=e.state;if(!e.output||e.avail_in!==0&&!e.input||n.status===tt&&t!==4)return ot(e,e.avail_out===0?-5:-2);let r=n.last_flush;if(n.last_flush=t,n.pending!==0){if(L(e),e.avail_out===0)return n.last_flush=-1,0}else if(e.avail_in===0&&st(t)<=st(r)&&t!==4)return ot(e,-5);if(n.status===tt&&e.avail_in!==0)return ot(e,-5);if(n.status===Je&&n.wrap===0&&(n.status=et),n.status===Je){let t=8+(n.w_bits-8<<4)<<8,r=-1;if(r=n.strategy>=2||n.level<2?0:n.level<6?1:n.level===6?2:3,t|=r<<6,n.strstart!==0&&(t|=qe),t+=31-t%31,ft(n,t),n.strstart!==0&&(ft(n,e.adler>>>16),ft(n,e.adler&65535)),e.adler=1,n.status=et,L(e),n.pending!==0)return n.last_flush=-1,0}if(n.status===Ye){if(e.adler=0,z(n,31),z(n,139),z(n,8),n.gzhead)z(n,+!!n.gzhead.text+(n.gzhead.hcrc?2:0)+(n.gzhead.extra?4:0)+(n.gzhead.name?8:0)+(n.gzhead.comment?16:0)),z(n,n.gzhead.time&255),z(n,n.gzhead.time>>8&255),z(n,n.gzhead.time>>16&255),z(n,n.gzhead.time>>24&255),z(n,n.level===9?2:n.strategy>=2||n.level<2?4:0),z(n,n.gzhead.os&255),n.gzhead.extra&&n.gzhead.extra.length&&(z(n,n.gzhead.extra.length&255),z(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(e.adler=P(e.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=Xe;else if(z(n,0),z(n,0),z(n,0),z(n,0),z(n,0),z(n,n.level===9?2:n.strategy>=2||n.level<2?4:0),z(n,at),n.status=et,L(e),n.pending!==0)return n.last_flush=-1,0}if(n.status===Xe){if(n.gzhead.extra){let t=n.pending,r=(n.gzhead.extra.length&65535)-n.gzindex;for(;n.pending+r>n.pending_buf_size;){let i=n.pending_buf_size-n.pending;if(n.pending_buf.set(n.gzhead.extra.subarray(n.gzindex,n.gzindex+i),n.pending),n.pending=n.pending_buf_size,n.gzhead.hcrc&&n.pending>t&&(e.adler=P(e.adler,n.pending_buf,n.pending-t,t)),n.gzindex+=i,L(e),n.pending!==0)return n.last_flush=-1,0;t=0,r-=i}let i=new Uint8Array(n.gzhead.extra);n.pending_buf.set(i.subarray(n.gzindex,n.gzindex+r),n.pending),n.pending+=r,n.gzhead.hcrc&&n.pending>t&&(e.adler=P(e.adler,n.pending_buf,n.pending-t,t)),n.gzindex=0}n.status=Ze}if(n.status===Ze){if(n.gzhead.name){let t=n.pending,r;do{if(n.pending===n.pending_buf_size){if(n.gzhead.hcrc&&n.pending>t&&(e.adler=P(e.adler,n.pending_buf,n.pending-t,t)),L(e),n.pending!==0)return n.last_flush=-1,0;t=0}r=n.gzindex<n.gzhead.name.length?n.gzhead.name.charCodeAt(n.gzindex++)&255:0,z(n,r)}while(r!==0);n.gzhead.hcrc&&n.pending>t&&(e.adler=P(e.adler,n.pending_buf,n.pending-t,t)),n.gzindex=0}n.status=Qe}if(n.status===Qe){if(n.gzhead.comment){let t=n.pending,r;do{if(n.pending===n.pending_buf_size){if(n.gzhead.hcrc&&n.pending>t&&(e.adler=P(e.adler,n.pending_buf,n.pending-t,t)),L(e),n.pending!==0)return n.last_flush=-1,0;t=0}r=n.gzindex<n.gzhead.comment.length?n.gzhead.comment.charCodeAt(n.gzindex++)&255:0,z(n,r)}while(r!==0);n.gzhead.hcrc&&n.pending>t&&(e.adler=P(e.adler,n.pending_buf,n.pending-t,t))}n.status=$e}if(n.status===$e){if(n.gzhead.hcrc){if(n.pending+2>n.pending_buf_size&&(L(e),n.pending!==0))return n.last_flush=-1,0;z(n,e.adler&255),z(n,e.adler>>8&255),e.adler=0}if(n.status=et,L(e),n.pending!==0)return n.last_flush=-1,0}if(e.avail_in!==0||n.lookahead!==0||t!==0&&n.status!==tt){let r=n.level===0?gt(n,t):n.strategy===2?bt(n,t):n.strategy===3?yt(n,t):St[n.level].func(n,t);if((r===rt||r===it)&&(n.status=tt),r===I||r===rt)return e.avail_out===0&&(n.last_flush=-1),0;if(r===nt&&(t===1?Le(n):t!==5&&(Ie(n,0,0,!1),t===3&&(ct(n.head),n.lookahead===0&&(n.strstart=0,n.block_start=0,n.insert=0))),L(e),e.avail_out===0))return n.last_flush=-1,0}return t===4?n.wrap<=0?1:(n.wrap===2?(z(n,e.adler&255),z(n,e.adler>>8&255),z(n,e.adler>>16&255),z(n,e.adler>>24&255),z(n,e.total_in&255),z(n,e.total_in>>8&255),z(n,e.total_in>>16&255),z(n,e.total_in>>24&255)):(ft(n,e.adler>>>16),ft(n,e.adler&65535)),L(e),n.wrap>0&&(n.wrap=-n.wrap),+(n.pending===0)):0},At=e=>{if(Tt(e))return-2;let t=e.state.status;return e.state=null,t===et?ot(e,-3):0},jt=(e,t)=>{let n=t.length;if(Tt(e))return-2;let r=e.state,i=r.wrap;if(i===2||i===1&&r.status!==Je||r.lookahead)return-2;if(i===1&&(e.adler=Be(e.adler,t,n,0)),r.wrap=0,n>=r.w_size){i===0&&(ct(r.head),r.strstart=0,r.block_start=0,r.insert=0);let e=new Uint8Array(r.w_size);e.set(t.subarray(n-r.w_size,n),0),t=e,n=r.w_size}let a=e.avail_in,o=e.next_in,s=e.input;for(e.avail_in=n,e.next_in=0,e.input=t,ht(r);r.lookahead>=F;){let e=r.strstart,t=r.lookahead-(F-1);do dt(r,e),e++;while(--t);r.strstart=e,r.lookahead=F-1,ht(r)}return r.strstart+=r.lookahead,r.block_start=r.strstart,r.insert=r.lookahead,r.lookahead=0,r.match_length=r.prev_length=F-1,r.match_available=0,e.next_in=o,e.input=s,e.avail_in=a,r.wrap=i,0},Mt=16209,Nt=16191;function Pt(e,t){let n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_,v,y,b,x,S,C,w,T,E=e.state;n=e.next_in,w=e.input,r=n+(e.avail_in-5),i=e.next_out,T=e.output,a=i-(t-e.avail_out),o=i+(e.avail_out-257),s=E.dmax,c=E.wsize,l=E.whave,u=E.wnext,d=E.window,f=E.hold,p=E.bits,m=E.lencode,h=E.distcode,g=(1<<E.lenbits)-1,_=(1<<E.distbits)-1;top:do{p<15&&(f+=w[n++]<<p,p+=8,f+=w[n++]<<p,p+=8),v=m[f&g];dolen:for(;;){if(y=v>>>24,f>>>=y,p-=y,y=v>>>16&255,y===0)T[i++]=v&65535;else if(y&16){b=v&65535,y&=15,y&&(p<y&&(f+=w[n++]<<p,p+=8),b+=f&(1<<y)-1,f>>>=y,p-=y),p<15&&(f+=w[n++]<<p,p+=8,f+=w[n++]<<p,p+=8),v=h[f&_];dodist:for(;;){if(y=v>>>24,f>>>=y,p-=y,y=v>>>16&255,y&16){if(x=v&65535,y&=15,p<y&&(f+=w[n++]<<p,p+=8,p<y&&(f+=w[n++]<<p,p+=8)),x+=f&(1<<y)-1,x>s){e.msg=`invalid distance too far back`,E.mode=Mt;break top}if(f>>>=y,p-=y,y=i-a,x>y){if(y=x-y,y>l&&E.sane){e.msg=`invalid distance too far back`,E.mode=Mt;break top}if(S=0,C=d,u===0){if(S+=c-y,y<b){b-=y;do T[i++]=d[S++];while(--y);S=i-x,C=T}}else if(u<y){if(S+=c+u-y,y-=u,y<b){b-=y;do T[i++]=d[S++];while(--y);if(S=0,u<b){y=u,b-=y;do T[i++]=d[S++];while(--y);S=i-x,C=T}}}else if(S+=u-y,y<b){b-=y;do T[i++]=d[S++];while(--y);S=i-x,C=T}for(;b>2;)T[i++]=C[S++],T[i++]=C[S++],T[i++]=C[S++],b-=3;b&&(T[i++]=C[S++],b>1&&(T[i++]=C[S++]))}else{S=i-x;do T[i++]=T[S++],T[i++]=T[S++],T[i++]=T[S++],b-=3;while(b>2);b&&(T[i++]=T[S++],b>1&&(T[i++]=T[S++]))}}else if(y&64){e.msg=`invalid distance code`,E.mode=Mt;break top}else{v=h[(v&65535)+(f&(1<<y)-1)];continue dodist}break}}else if(!(y&64)){v=m[(v&65535)+(f&(1<<y)-1)];continue dolen}else if(y&32){E.mode=Nt;break top}else{e.msg=`invalid literal/length code`,E.mode=Mt;break top}break}}while(n<r&&i<o);b=p>>3,n-=b,p-=b<<3,f&=(1<<p)-1,e.next_in=n,e.next_out=i,e.avail_in=n<r?5+(r-n):5-(n-r),e.avail_out=i<o?257+(o-i):257-(i-o),E.hold=f,E.bits=p}var Ft=15,It=852,Lt=592,Rt=0,zt=1,Bt=2,Vt=new Uint16Array([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]),Ht=new Uint8Array([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,199,75]),Ut=new Uint16Array([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]),Wt=new Uint8Array([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]),Gt=(e,t,n,r,i,a,o,s)=>{let c=s.bits,l=0,u=0,d=0,f=0,p=0,m=0,h=0,g=0,_=0,v=0,y,b,x,S,C,w=null,T,E=new Uint16Array(16),D=new Uint16Array(16),O=null,k,A,j;for(l=0;l<=Ft;l++)E[l]=0;for(u=0;u<r;u++)E[t[n+u]]++;for(p=c,f=Ft;f>=1&&E[f]===0;f--);if(p>f&&(p=f),f===0)return i[a++]=20971520,i[a++]=20971520,s.bits=1,0;for(d=1;d<f&&E[d]===0;d++);for(p<d&&(p=d),g=1,l=1;l<=Ft;l++)if(g<<=1,g-=E[l],g<0)return-1;if(g>0&&(e===Rt||f!==1))return-1;for(D[1]=0,l=1;l<Ft;l++)D[l+1]=D[l]+E[l];for(u=0;u<r;u++)t[n+u]!==0&&(o[D[t[n+u]]++]=u);if(e===Rt?(w=O=o,T=20):e===zt?(w=Vt,O=Ht,T=257):(w=Ut,O=Wt,T=0),v=0,u=0,l=d,C=a,m=p,h=0,x=-1,_=1<<p,S=_-1,e===zt&&_>It||e===Bt&&_>Lt)return 1;for(;;){k=l-h,o[u]+1<T?(A=0,j=o[u]):o[u]>=T?(A=O[o[u]-T],j=w[o[u]-T]):(A=96,j=0),y=1<<l-h,b=1<<m,d=b;do b-=y,i[C+(v>>h)+b]=k<<24|A<<16|j|0;while(b!==0);for(y=1<<l-1;v&y;)y>>=1;if(y===0?v=0:(v&=y-1,v+=y),u++,--E[l]===0){if(l===f)break;l=t[n+o[u]]}if(l>p&&(v&S)!==x){for(h===0&&(h=p),C+=d,m=l-h,g=1<<m;m+h<f&&(g-=E[m+h],!(g<=0));)m++,g<<=1;if(_+=1<<m,e===zt&&_>It||e===Bt&&_>Lt)return 1;x=v&S,i[x]=p<<24|m<<16|C-a|0}}return v!==0&&(i[C+v]=l-h<<24|4194304),s.bits=p,0},Kt=0,qt=1,Jt=2,Yt=16180,Xt=16181,Zt=16182,Qt=16183,$t=16184,en=16185,tn=16186,nn=16187,rn=16188,an=16189,on=16190,sn=16191,cn=16192,ln=16193,un=16194,dn=16195,fn=16196,pn=16197,mn=16198,hn=16199,gn=16200,_n=16201,vn=16202,yn=16203,bn=16204,xn=16205,Sn=16206,Cn=16207,wn=16208,B=16209,Tn=16210,En=16211,Dn=852,On=592,kn=e=>(e>>>24&255)+(e>>>8&65280)+((e&65280)<<8)+((e&255)<<24),An=class{constructor(){this.strm=null,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 Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}},jn=e=>{if(!e)return 1;let t=e.state;return+(!t||t.strm!==e||t.mode<Yt||t.mode>En)},Mn=e=>{if(jn(e))return-2;let t=e.state;return e.total_in=e.total_out=t.total=0,e.msg=``,t.wrap&&(e.adler=t.wrap&1),t.mode=Yt,t.last=0,t.havedict=0,t.flags=-1,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Int32Array(Dn),t.distcode=t.distdyn=new Int32Array(On),t.sane=1,t.back=-1,0},Nn=e=>{if(jn(e))return-2;let t=e.state;return t.wsize=0,t.whave=0,t.wnext=0,Mn(e)},Pn=(e,t)=>{let n;if(jn(e))return-2;let r=e.state;return t<0?(n=0,t=-t):(n=(t>>4)+5,t<48&&(t&=15)),t&&(t<8||t>15)?-2:(r.window!==null&&r.wbits!==t&&(r.window=null),r.wrap=n,r.wbits=t,Nn(e))},Fn=(e,t)=>{if(!e)return-2;let n=new An;e.state=n,n.strm=e,n.window=null,n.mode=Yt;let r=Pn(e,t);return r!==0&&(e.state=null),r},In=!0,Ln,Rn,zn=e=>{if(In){Ln=new Int32Array(512),Rn=new Int32Array(32);let t=0;for(;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(Gt(qt,e.lens,0,288,Ln,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;Gt(Jt,e.lens,0,32,Rn,0,e.work,{bits:5}),In=!1}e.lencode=Ln,e.lenbits=9,e.distcode=Rn,e.distbits=5},Bn=(e,t,n,r)=>{let i,a=e.state;return a.window===null&&(a.window=new Uint8Array(1<<a.wbits)),a.wsize===0&&(a.wsize=1<<a.wbits,a.wnext=0,a.whave=0),r>=a.wsize?(a.window.set(t.subarray(n-a.wsize,n),0),a.wnext=0,a.whave=a.wsize):(i=a.wsize-a.wnext,i>r&&(i=r),a.window.set(t.subarray(n-r,n-r+i),a.wnext),r-=i,r?(a.window.set(t.subarray(n-r,n),0),a.wnext=r,a.whave=a.wsize):(a.wnext+=i,a.wnext===a.wsize&&(a.wnext=0),a.whave<a.wsize&&(a.whave+=i))),0},Vn=(e,t)=>{let n,r,i,a,o,s,c,l,u,d,f,p,m,h,g=0,_,v,y,b,x,S,C,w,T=new Uint8Array(4),E,D,O=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(jn(e)||!e.output||!e.input&&e.avail_in!==0)return-2;n=e.state,n.mode===sn&&(n.mode=cn),o=e.next_out,i=e.output,c=e.avail_out,a=e.next_in,r=e.input,s=e.avail_in,l=n.hold,u=n.bits,d=s,f=c,w=0;inf_leave:for(;;)switch(n.mode){case Yt:if(n.wrap===0){n.mode=cn;break}for(;u<16;){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}if(n.wrap&2&&l===35615){n.wbits===0&&(n.wbits=15),n.check=0,T[0]=l&255,T[1]=l>>>8&255,n.check=P(n.check,T,2,0),l=0,u=0,n.mode=Xt;break}if(n.head&&(n.head.done=!1),!(n.wrap&1)||(((l&255)<<8)+(l>>8))%31){e.msg=`incorrect header check`,n.mode=B;break}if((l&15)!=8){e.msg=`unknown compression method`,n.mode=B;break}if(l>>>=4,u-=4,C=(l&15)+8,n.wbits===0&&(n.wbits=C),C>15||C>n.wbits){e.msg=`invalid window size`,n.mode=B;break}n.dmax=1<<n.wbits,n.flags=0,e.adler=n.check=1,n.mode=l&512?an:sn,l=0,u=0;break;case Xt:for(;u<16;){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}if(n.flags=l,(n.flags&255)!=8){e.msg=`unknown compression method`,n.mode=B;break}if(n.flags&57344){e.msg=`unknown header flags set`,n.mode=B;break}n.head&&(n.head.text=l>>8&1),n.flags&512&&n.wrap&4&&(T[0]=l&255,T[1]=l>>>8&255,n.check=P(n.check,T,2,0)),l=0,u=0,n.mode=Zt;case Zt:for(;u<32;){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}n.head&&(n.head.time=l),n.flags&512&&n.wrap&4&&(T[0]=l&255,T[1]=l>>>8&255,T[2]=l>>>16&255,T[3]=l>>>24&255,n.check=P(n.check,T,4,0)),l=0,u=0,n.mode=Qt;case Qt:for(;u<16;){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}n.head&&(n.head.xflags=l&255,n.head.os=l>>8),n.flags&512&&n.wrap&4&&(T[0]=l&255,T[1]=l>>>8&255,n.check=P(n.check,T,2,0)),l=0,u=0,n.mode=$t;case $t:if(n.flags&1024){for(;u<16;){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}n.length=l,n.head&&(n.head.extra_len=l),n.flags&512&&n.wrap&4&&(T[0]=l&255,T[1]=l>>>8&255,n.check=P(n.check,T,2,0)),l=0,u=0}else n.head&&(n.head.extra=null);n.mode=en;case en:if(n.flags&1024&&(p=n.length,p>s&&(p=s),p&&(n.head&&(C=n.head.extra_len-n.length,n.head.extra||(n.head.extra=new Uint8Array(n.head.extra_len)),n.head.extra.set(r.subarray(a,a+p),C)),n.flags&512&&n.wrap&4&&(n.check=P(n.check,r,p,a)),s-=p,a+=p,n.length-=p),n.length))break inf_leave;n.length=0,n.mode=tn;case tn:if(n.flags&2048){if(s===0)break inf_leave;p=0;do C=r[a+p++],n.head&&C&&n.length<65536&&(n.head.name+=String.fromCharCode(C));while(C&&p<s);if(n.flags&512&&n.wrap&4&&(n.check=P(n.check,r,p,a)),s-=p,a+=p,C)break inf_leave}else n.head&&(n.head.name=null);n.length=0,n.mode=nn;case nn:if(n.flags&4096){if(s===0)break inf_leave;p=0;do C=r[a+p++],n.head&&C&&n.length<65536&&(n.head.comment+=String.fromCharCode(C));while(C&&p<s);if(n.flags&512&&n.wrap&4&&(n.check=P(n.check,r,p,a)),s-=p,a+=p,C)break inf_leave}else n.head&&(n.head.comment=null);n.mode=rn;case rn:if(n.flags&512){for(;u<16;){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}if(n.wrap&4&&l!==(n.check&65535)){e.msg=`header crc mismatch`,n.mode=B;break}l=0,u=0}n.head&&(n.head.hcrc=n.flags>>9&1,n.head.done=!0),e.adler=n.check=0,n.mode=sn;break;case an:for(;u<32;){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}e.adler=n.check=kn(l),l=0,u=0,n.mode=on;case on:if(n.havedict===0)return e.next_out=o,e.avail_out=c,e.next_in=a,e.avail_in=s,n.hold=l,n.bits=u,2;e.adler=n.check=1,n.mode=sn;case sn:if(t===5||t===6)break inf_leave;case cn:if(n.last){l>>>=u&7,u-=u&7,n.mode=Sn;break}for(;u<3;){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}switch(n.last=l&1,l>>>=1,--u,l&3){case 0:n.mode=ln;break;case 1:if(zn(n),n.mode=hn,t===6){l>>>=2,u-=2;break inf_leave}break;case 2:n.mode=fn;break;case 3:e.msg=`invalid block type`,n.mode=B}l>>>=2,u-=2;break;case ln:for(l>>>=u&7,u-=u&7;u<32;){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}if((l&65535)!=(l>>>16^65535)){e.msg=`invalid stored block lengths`,n.mode=B;break}if(n.length=l&65535,l=0,u=0,n.mode=un,t===6)break inf_leave;case un:n.mode=dn;case dn:if(p=n.length,p){if(p>s&&(p=s),p>c&&(p=c),p===0)break inf_leave;i.set(r.subarray(a,a+p),o),s-=p,a+=p,c-=p,o+=p,n.length-=p;break}n.mode=sn;break;case fn:for(;u<14;){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}if(n.nlen=(l&31)+257,l>>>=5,u-=5,n.ndist=(l&31)+1,l>>>=5,u-=5,n.ncode=(l&15)+4,l>>>=4,u-=4,n.nlen>286||n.ndist>30){e.msg=`too many length or distance symbols`,n.mode=B;break}n.have=0,n.mode=pn;case pn:for(;n.have<n.ncode;){for(;u<3;){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}n.lens[O[n.have++]]=l&7,l>>>=3,u-=3}for(;n.have<19;)n.lens[O[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,E={bits:n.lenbits},w=Gt(Kt,n.lens,0,19,n.lencode,0,n.work,E),n.lenbits=E.bits,w){e.msg=`invalid code lengths set`,n.mode=B;break}n.have=0,n.mode=mn;case mn:for(;n.have<n.nlen+n.ndist;){for(;g=n.lencode[l&(1<<n.lenbits)-1],_=g>>>24,v=g>>>16&255,y=g&65535,!(_<=u);){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}if(y<16)l>>>=_,u-=_,n.lens[n.have++]=y;else{if(y===16){for(D=_+2;u<D;){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}if(l>>>=_,u-=_,n.have===0){e.msg=`invalid bit length repeat`,n.mode=B;break}C=n.lens[n.have-1],p=3+(l&3),l>>>=2,u-=2}else if(y===17){for(D=_+3;u<D;){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}l>>>=_,u-=_,C=0,p=3+(l&7),l>>>=3,u-=3}else{for(D=_+7;u<D;){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}l>>>=_,u-=_,C=0,p=11+(l&127),l>>>=7,u-=7}if(n.have+p>n.nlen+n.ndist){e.msg=`invalid bit length repeat`,n.mode=B;break}for(;p--;)n.lens[n.have++]=C}}if(n.mode===B)break;if(n.lens[256]===0){e.msg=`invalid code -- missing end-of-block`,n.mode=B;break}if(n.lenbits=9,E={bits:n.lenbits},w=Gt(qt,n.lens,0,n.nlen,n.lencode,0,n.work,E),n.lenbits=E.bits,w){e.msg=`invalid literal/lengths set`,n.mode=B;break}if(n.distbits=6,n.distcode=n.distdyn,E={bits:n.distbits},w=Gt(Jt,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,E),n.distbits=E.bits,w){e.msg=`invalid distances set`,n.mode=B;break}if(n.mode=hn,t===6)break inf_leave;case hn:n.mode=gn;case gn:if(s>=6&&c>=258){e.next_out=o,e.avail_out=c,e.next_in=a,e.avail_in=s,n.hold=l,n.bits=u,Pt(e,f),o=e.next_out,i=e.output,c=e.avail_out,a=e.next_in,r=e.input,s=e.avail_in,l=n.hold,u=n.bits,n.mode===sn&&(n.back=-1);break}for(n.back=0;g=n.lencode[l&(1<<n.lenbits)-1],_=g>>>24,v=g>>>16&255,y=g&65535,!(_<=u);){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}if(v&&!(v&240)){for(b=_,x=v,S=y;g=n.lencode[S+((l&(1<<b+x)-1)>>b)],_=g>>>24,v=g>>>16&255,y=g&65535,!(b+_<=u);){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}l>>>=b,u-=b,n.back+=b}if(l>>>=_,u-=_,n.back+=_,n.length=y,v===0){n.mode=xn;break}if(v&32){n.back=-1,n.mode=sn;break}if(v&64){e.msg=`invalid literal/length code`,n.mode=B;break}n.extra=v&15,n.mode=_n;case _n:if(n.extra){for(D=n.extra;u<D;){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}n.length+=l&(1<<n.extra)-1,l>>>=n.extra,u-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=vn;case vn:for(;g=n.distcode[l&(1<<n.distbits)-1],_=g>>>24,v=g>>>16&255,y=g&65535,!(_<=u);){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}if(!(v&240)){for(b=_,x=v,S=y;g=n.distcode[S+((l&(1<<b+x)-1)>>b)],_=g>>>24,v=g>>>16&255,y=g&65535,!(b+_<=u);){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}l>>>=b,u-=b,n.back+=b}if(l>>>=_,u-=_,n.back+=_,v&64){e.msg=`invalid distance code`,n.mode=B;break}n.offset=y,n.extra=v&15,n.mode=yn;case yn:if(n.extra){for(D=n.extra;u<D;){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}n.offset+=l&(1<<n.extra)-1,l>>>=n.extra,u-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){e.msg=`invalid distance too far back`,n.mode=B;break}n.mode=bn;case bn:if(c===0)break inf_leave;if(p=f-c,n.offset>p){if(p=n.offset-p,p>n.whave&&n.sane){e.msg=`invalid distance too far back`,n.mode=B;break}p>n.wnext?(p-=n.wnext,m=n.wsize-p):m=n.wnext-p,p>n.length&&(p=n.length),h=n.window}else h=i,m=o-n.offset,p=n.length;p>c&&(p=c),c-=p,n.length-=p;do i[o++]=h[m++];while(--p);n.length===0&&(n.mode=gn);break;case xn:if(c===0)break inf_leave;i[o++]=n.length,c--,n.mode=gn;break;case Sn:if(n.wrap){for(;u<32;){if(s===0)break inf_leave;s--,l|=r[a++]<<u,u+=8}if(f-=c,e.total_out+=f,n.total+=f,n.wrap&4&&f&&(e.adler=n.check=n.flags?P(n.check,i,f,o-f):Be(n.check,i,f,o-f)),f=c,n.wrap&4&&(n.flags?l:kn(l))!==n.check){e.msg=`incorrect data check`,n.mode=B;break}l=0,u=0}n.mode=Cn;case Cn:if(n.wrap&&n.flags){for(;u<32;){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}if(n.wrap&4&&l!==(n.total&4294967295)){e.msg=`incorrect length check`,n.mode=B;break}l=0,u=0}n.mode=wn;case wn:w=1;break inf_leave;case B:w=-3;break inf_leave;case Tn:return-4;case En:default:return-2}return e.next_out=o,e.avail_out=c,e.next_in=a,e.avail_in=s,n.hold=l,n.bits=u,(n.wsize||f!==e.avail_out&&n.mode<B&&(n.mode<Sn||t!==4))&&Bn(e,e.output,e.next_out,f-e.avail_out)?(n.mode=Tn,-4):(d-=e.avail_in,f-=e.avail_out,e.total_in+=d,e.total_out+=f,n.total+=f,n.wrap&4&&f&&(e.adler=n.check=n.flags?P(n.check,i,f,e.next_out-f):Be(n.check,i,f,e.next_out-f)),e.data_type=n.bits+(n.last?64:0)+(n.mode===sn?128:0)+(n.mode===hn||n.mode===un?256:0),(d===0&&f===0||t===4)&&w===0&&(w=-5),w)},Hn=e=>{if(jn(e))return-2;let t=e.state;return t.window&&(t.window=null),e.state=null,0},Un=(e,t)=>{let n=t.length,r,i,a;return jn(e)||(r=e.state,r.wrap!==0&&r.mode!==on)?-2:r.mode===on&&(i=1,i=Be(i,t,n,0),i!==r.check)?-3:(a=Bn(e,t,n,n),a?(r.mode=Tn,-4):(r.havedict=1,0))},Wn=class{constructor(){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}},Gn=e=>{let t=new Uint8Array(e.reduce((e,t)=>e+t.length,0)),n=0;for(let r of e)t.set(r,n),n+=r.length;return t},Kn=Object.prototype.toString,qn={level:-1,chunkSize:16384,windowBits:15,memLevel:8,strategy:0,raw:!1,gzip:!1,legacyHash:!1,dictionary:new Uint8Array},Jn=class{constructor(e={}){u(this,`options`,void 0),u(this,`err`,void 0),u(this,`msg`,void 0),u(this,`ended`,void 0),u(this,`started`,void 0),u(this,`chunks`,void 0),u(this,`strm`,void 0),u(this,`result`,void 0),this.options=Object.assign({},qn,e);let 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.started=!1,this.chunks=[],this.result=new Uint8Array,this.strm=new Wn,this.strm.avail_out=0;let n=Ot(this.strm,t.level,8,t.windowBits,t.memLevel,t.strategy,t.legacyHash);if(n!==0)throw Error(He[n]);Kn.call(t.dictionary)===`[object ArrayBuffer]`&&(t.dictionary=new Uint8Array(t.dictionary));let r=t.dictionary;if(r.length){if(t.gzip)throw Error(`dictionary is not supported with gzip`);if(n=jt(this.strm,r),n!==0)throw Error(He[n])}}push(e,t=!1){let n=this.strm,r=this.options.chunkSize,i,a;if(this.ended)return!1;for(a=typeof t==`number`?t:t===!0?4:0,typeof e==`string`?n.input=new TextEncoder().encode(e):Kn.call(e)===`[object ArrayBuffer]`?n.input=new Uint8Array(e):n.input=e,n.next_in=0,n.avail_in=n.input.length,this.started||(this.started=!0,this.onStart(n));;){if(n.avail_out===0&&(n.output=new Uint8Array(r),n.next_out=0,n.avail_out=r),(a===2||a===3)&&n.avail_out<=6){this.onData(n.output.subarray(0,n.next_out)),n.avail_out=0;continue}if(i=kt(n,a),i===1){n.next_out>0&&this.onData(n.output.subarray(0,n.next_out)),i=At(this.strm);break}if(n.avail_out===0){this.onData(n.output);continue}if(a>0&&n.next_out>0){this.onData(n.output.subarray(0,n.next_out)),n.avail_out=0;continue}if(n.avail_in===0)return!0}return this.err=i,this.msg=n.msg||He[i],this.ended=!0,this.onEnd(i),i===0}onStart(e){}onData(e){this.chunks.push(e)}onEnd(e){e===0&&(this.result=Gn(this.chunks)),this.chunks=[]}};function Yn(e,t={}){let n=new Jn(t);if(n.push(e,!0),n.err)throw Error(n.msg);return n.result}var Xn=Object.prototype.toString,Zn={chunkSize:1024*64,windowBits:15,raw:!1,dictionary:new Uint8Array},Qn=class{constructor(e={}){u(this,`options`,void 0),u(this,`err`,void 0),u(this,`msg`,void 0),u(this,`ended`,void 0),u(this,`started`,void 0),u(this,`chunks`,void 0),u(this,`strm`,void 0),u(this,`result`,void 0),this.options=Object.assign({},Zn,e);let 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.windowBits&&(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&(t.windowBits&15||(t.windowBits|=15)),this.err=0,this.msg=``,this.ended=!1,this.started=!1,this.chunks=[],this.result=new Uint8Array,this.strm=new Wn,this.strm.avail_out=0;let n=Fn(this.strm,t.windowBits);if(n!==0)throw Error(He[n]);Xn.call(t.dictionary)===`[object ArrayBuffer]`&&(t.dictionary=new Uint8Array(t.dictionary));let r=t.dictionary;if(t.raw&&r.length&&(n=Un(this.strm,r),n!==0))throw Error(He[n])}push(e,t=!1){let n=this.strm,r=this.options.chunkSize,i,a,o;if(this.ended)return this.err===0;for(a=typeof t==`number`?t:t===!0?4:0,Xn.call(e)===`[object ArrayBuffer]`?n.input=new Uint8Array(e):n.input=e,n.next_in=0,n.avail_in=n.input.length,this.started||(this.started=!0,this.onStart(n));;){if(n.avail_out===0&&(n.output=new Uint8Array(r),n.next_out=0,n.avail_out=r),i=Vn(n,a),i===2){let e=this.options.dictionary;e.length&&(i=Un(n,e),i===0?i=Vn(n,a):i===-3&&(i=2))}for(;n.avail_in>0&&i===1&&n.state.wrap&2&&n.state.flags!==0&&n.input[n.next_in]!==0;)Nn(n),i=Vn(n,a);if(i===-2||i===-3||i===2||i===-4)break;if(o=n.avail_out,n.next_out&&(n.avail_out===0||i===1||a>0)&&(this.onData(n.output.length===n.next_out?n.output:n.output.subarray(0,n.next_out)),n.avail_out=0,n.next_out=0),!((i===0||i===-5)&&o===0)){if(i===1){i=Hn(this.strm);break}if(n.avail_in===0){if(a===4){i=Hn(this.strm),i===0&&(i=-5);break}return!0}}}return this.err=i,this.msg=n.msg||He[i],this.ended=!0,this.onEnd(i),i===0}onStart(e){}onData(e){this.chunks.push(e)}onEnd(e){e===0&&(this.result=Gn(this.chunks)),this.chunks=[]}};function $n(e,t={}){let n=new Qn(t);if(n.push(e,!0),n.err)throw Error(n.msg);let r=n.result;return t.toText?new TextDecoder().decode(r):r}var V=Array.from({length:256}).map((e,t)=>(t+256).toString(16).substr(1));function er(e){return(V[e[0]]+V[e[1]]+V[e[2]]+V[e[3]]+`-`+V[e[4]]+V[e[5]]+`-`+V[e[6]]+V[e[7]]+`-`+V[e[8]]+V[e[9]]+`-`+V[e[10]]+V[e[11]]+V[e[12]]+V[e[13]]+V[e[14]]+V[e[15]]).toLowerCase()}function tr(e){let t,n=new Uint8Array(16);return n[0]=(t=parseInt(e.slice(0,8),16))>>>24,n[1]=t>>>16&255,n[2]=t>>>8&255,n[3]=t&255,n[4]=(t=parseInt(e.slice(9,13),16))>>>8,n[5]=t&255,n[6]=(t=parseInt(e.slice(14,18),16))>>>8,n[7]=t&255,n[8]=(t=parseInt(e.slice(19,23),16))>>>8,n[9]=t&255,n[10]=(t=parseInt(e.slice(24,36),16))/1099511627776&255,n[11]=t/4294967296&255,n[12]=t>>>24&255,n[13]=t>>>16&255,n[14]=t>>>8&255,n[15]=t&255,n}var nr=n({BitReader:()=>xr,BitWriter:()=>Sr,bgra:()=>H,chunk:()=>sr,concat:()=>W,isEqual:()=>ir,read:()=>G,subarray:()=>or,write:()=>K});function rr(e){return/^[\x00-\x7F]*$/.test(e)}var H=([e,t,n,r])=>[n,t,e,r];function ir(e,t){return e.length===t.length&&e.every((e,n)=>t[n]===e)}function ar(e){return e.brsOffset!==void 0}function or(e,t,n=!1){if(!(e instanceof Uint8Array))throw Error(`Invalid data type in bytes reader (${typeof e})`);let r;ar(e)?r=e:(r=e,r.brsOffset=0);let i=r[n?`slice`:`subarray`](r.brsOffset,r.brsOffset+t);return r.brsOffset+=t,i}function sr(e,t){let n=e.length-(ar(e)?e.brsOffset:0),r=Array(Math.floor(n/t));for(let i=0;i<n/t;i++)r[i]=or(e,t,!0);return r}function U(e,t=!0){let[n,r]=or(e,2);return t?r<<8|n:n<<8|r}function cr(e,t=!0){let n=[e&255,e>>8&255];return new Uint8Array(t?n:n.reverse())}function lr(e,t=!0){let[n,r,i,a]=or(e,4);return t?a<<24|i<<16|r<<8|n:n<<24|r<<16|i<<8|a}function ur(e,t=!0){let n=new Uint8Array([e&255,e>>8&255,e>>16&255,e>>24&255]);return t?n:n.reverse()}function dr(e){let t=lr(e),n=lr(e);if(n<0||t<0||n>=t)throw Error(`Invalid compressed section size (comp: ${n}, uncomp: ${t})`);return n===0?or(e,t):$n(or(e,n))}function fr(...e){let t=W(...e);return W(ur(t.length),ur(0),t)}function pr(...e){let t=W(...e),n=Yn(t),r=t.length,i=n.length;if(r>2147483647)throw Error(`uncompressedSize (${r}) out of range`);if(i>2147483647)throw Error(`compressedSize (${i}) out of range`);let a=i>=r;return W(ur(r),ur(a?0:i),a?t:n)}function mr(e){let t=lr(e),n=t<0,r=n?-t*2:t;if(n){if(r%2!=0)throw Error(`Invalid UCS-2 data size`);return String.fromCodePoint(...sr(or(e,r),2).map(e=>U(e)))}else{let t=or(e,r).subarray(0,-1);return String.fromCharCode.apply(null,t)}}function hr(e){return rr(e)?W(ur(e.length+1),new Uint8Array(e.split(``).map(e=>e.charCodeAt(0))),new Uint8Array([0])):W(ur(-e.length),new Uint8Array(e.split(``).flatMap(e=>[e.charCodeAt(0)&255,e.charCodeAt(0)>>8])))}function gr(e){return er(sr(or(e,16),4).flatMap(([e,t,n,r])=>[r,n,t,e]))}function _r(e){return W(...sr(tr(e),4).map(([e,t,n,r])=>new Uint8Array([r,n,t,e])))}function vr(e,t){let n=lr(e),r=Array(n);for(let i=0;i<n;i++)r[i]=t(e);return r}function yr(e,t){let n=lr(e);for(let r=0;r<n;r++)t(e)}function br(e,t){return W(ur(e.length),...e.map(e=>t(e)))}var xr=class{constructor(e){this.pos=0,this.buffer=e}empty(){return this.pos>=this.buffer.length*8}bit(){let e=(this.buffer[this.pos>>3]&1<<(this.pos&7))!=0;return this.pos++,e}align(){this.pos=this.pos+7&-8}int(e){let t=0,n=1;for(;t+n<e&&n!==0;)this.bit()&&(t|=n),n<<=1;return t}uint_packed(){let e=0;for(let t=0;t<5;t++){let n=this.bit(),r=0;for(let e=0;e<7;e++)r|=+!!this.bit()<<e;if(e|=r<<7*t,!n)break}return e}int_packed(){let e=this.uint_packed();return(e>>1)*(e&1?1:-1)}bits(e){let t=[];for(let n=0;n<e;n++){let e=n&7;t[n>>3]=t[n>>3]&~(1<<e)|+!!this.bit()<<e}return t}bytes(e){return new Uint8Array(this.bytesArr(e))}bytesArr(e){return this.bits(e*8)}array(e){let t=lr(this.bytes(4)),n=Array(t);for(let r=0;r<t;r++)n[r]=e(this);return n}each(e){let t=lr(this.bytes(4));for(let n=0;n<t;n++)e(this)}string(){let e=this.bytesArr(4),t=lr(new Uint8Array(e));return t<0&&(t=-t*2),mr(new Uint8Array(e.concat(this.bytesArr(t))))}float(){let e=new DataView(new ArrayBuffer(4));return e.setUint16(2,U(this.bytes(2))),e.setUint16(0,U(this.bytes(2))),e.getFloat32(0)}integer(){let e=new DataView(new ArrayBuffer(4));return e.setUint16(2,U(this.bytes(2))),e.setUint16(0,U(this.bytes(2))),e.getInt32(0)}int64(){let e=new DataView(new ArrayBuffer(8));e.setUint16(6,U(this.bytes(2))),e.setUint16(4,U(this.bytes(2))),e.setUint16(2,U(this.bytes(2))),e.setUint16(0,U(this.bytes(2)));let t=e.getBigInt64(0);if(t<=1n<<64n)return Number(t);throw Error(`Cannot read 64-bit integer ${t} as a JavaScript number...`)}double(){let e=new DataView(new ArrayBuffer(8));return e.setUint16(6,U(this.bytes(2))),e.setUint16(4,U(this.bytes(2))),e.setUint16(2,U(this.bytes(2))),e.setUint16(0,U(this.bytes(2))),e.getFloat64(0)}wireGraphVariant(){let e=this.bytes(1)[0];switch(e){case 0:return{number:this.double()};case 1:return{integer:this.int64()};case 2:return{bool:this.bytes(1)[0]!==0};case 3:return{exec:!0};case 4:return{object:!0};default:throw Error(`Unknown wire graph variant type ${e}`)}}unreal(e){switch(e){case`String`:case`Class`:case`Object`:return this.string();case`Boolean`:return!!lr(this.bytes(4));case`Integer`:return this.integer();case`Integer64`:return this.int64();case`Float`:return this.float();case`Double`:return this.double();case`Color`:return H(this.bytesArr(4));case`Byte`:return this.bytes(1)[0];case`Rotator`:case`Rotator3d`:return[this.float(),this.float(),this.float()];case`Vector3d`:return[this.float(),this.float(),this.float()];case`IntVector`:return[this.integer(),this.integer(),this.integer()];case`BRInventoryEntryPlan`:return this.string();case`WireGraphVariant`:return this.wireGraphVariant();case`WireGraphPrimMathVariant`:return this.wireGraphVariant()}throw Error(`Unknown unreal type `+e)}},Sr=class{constructor(){this.buffer=[],this.cur=0,this.bitNum=0}bit(e){this.cur|=+!!e<<this.bitNum,this.bitNum++,this.bitNum>=8&&this.align()}bits(e,t){for(let n=0;n<t;n++)this.bit((e[n>>3]&1<<(n&7))!=0)}bytes(e){this.bits(e,8*e.length)}align(){this.bitNum>0&&(this.buffer.push(this.cur),this.cur=0,this.bitNum=0)}int(e,t){if(t<2)throw Error(`Invalid input (BitWriter) -- max (${t}) must be at least 2`);if(e>=t)throw Error(`Invalid input (BitWriter) -- value (${e}) is larger than max (${t})`);let n=0,r=1;for(;n+r<t&&r!==0;)this.bit((e&r)!==0),(e&r)!==0&&(n|=r),r<<=1}uint_packed(e){do{let t=e&127;e>>=7,this.bit(e!==0),this.bits([t],7)}while(e!==0)}int_packed(e){this.uint_packed(Math.abs(e)<<1|e>=0)}finish(){return this.align(),new Uint8Array(this.buffer)}finishSection(){return this.align(),W(ur(this.buffer.length),new Uint8Array(this.buffer))}string(e){this.bytes(hr(e))}float(e){let t=new Float32Array(1);t[0]=e;let n=new Int8Array(t.buffer);this.bytes([n[0],n[1],n[2],n[3]])}integer(e){let t=new Int32Array(1);t[0]=e;let n=new Int8Array(t.buffer);this.bytes([n[0],n[1],n[2],n[3]])}int64(e){let t=new DataView(new ArrayBuffer(8));t.setBigInt64(0,typeof e==`bigint`?e:BigInt(e),!0),this.bytes(new Uint8Array(t.buffer))}double(e){let t=new Float64Array(1);t[0]=e;let n=new Int8Array(t.buffer);this.bytes([n[0],n[1],n[2],n[3],n[4],n[5],n[6],n[7]])}wireGraphVariant(e){if(`number`in e)this.bytes([0]),this.double(e.number);else if(`integer`in e)this.bytes([1]),this.int64(e.integer);else if(`bool`in e)this.bytes([2,+!!e.bool]);else if(`exec`in e)this.bytes([3]);else if(`object`in e)this.bytes([4]);else throw Error(`Unknown wire graph variant type ${JSON.stringify(e)}`)}self(e){return e.bind(this)(),this}array(e,t){return this.bytes(ur(e.length)),e.forEach(t.bind(this)),this}each(e,t){return e.forEach(t.bind(this)),this}unreal(e,t){switch(e){case`Class`:if(typeof t!=`string`)throw Error(`writing unreal type Class, did not receive string (${t})`);this.string(t);return;case`String`:if(typeof t!=`string`)throw Error(`writing unreal type String, did not receive string (${t})`);this.string(t);return;case`Object`:if(typeof t!=`string`)throw Error(`writing unreal type Object, did not receive string (${t})`);this.string(t);return;case`Boolean`:if(typeof t!=`boolean`)throw Error(`writing unreal type Boolean, did not receive boolean (${t})`);this.bytes(ur(+!!t));return;case`Float`:if(typeof t!=`number`)throw Error(`writing unreal type Float, did not receive float (${t})`);this.float(t);return;case`Byte`:if(typeof t!=`number`)throw Error(`writing unreal type Byte, did not receive Byte (${t})`);this.bytes([t&255]);return;case`Color`:if(!Array.isArray(t)||t.length!==4)throw Error(`writing unreal type Color, did not receive Array (${t})`);this.bytes(H(t));return;case`Rotator`:case`Rotator3d`:if(!Array.isArray(t)||t.length!==3)throw Error(`writing unreal type Rotator, did not receive Array (${t})`);this.float(t[0]),this.float(t[1]),this.float(t[2]);return;case`Vector3d`:if(!Array.isArray(t)||t.length!==3)throw Error(`writing unreal type Vector3d, did not receive Array (${t})`);this.float(t[0]),this.float(t[1]),this.float(t[2]);return;case`IntVector`:if(!Array.isArray(t)||t.length!==3)throw Error(`writing unreal type IntVector, did not receive Array (${t})`);this.integer(t[0]),this.integer(t[1]),this.integer(t[2]);return;case`Integer`:if(typeof t!=`number`)throw Error(`writing unreal type Integer, did not receive integer (${t})`);this.integer(t);return;case`Integer64`:if(typeof t!=`number`)throw Error(`writing unreal type Integer64, did not receive integer (${t})`);this.int64(t);return;case`Double`:if(typeof t!=`number`)throw Error(`writing unreal type Double, did not receive double (${t})`);this.double(t);return;case`WireGraphVariant`:if(typeof t!=`object`)throw Error(`writing unreal type WireGraphVariant, did not receive object (${t})`);this.wireGraphVariant(t);return;case`WireGraphPrimMathVariant`:if(typeof t!=`object`)throw Error(`writing unreal type WireGraphPrimMathVariant, did not receive object (${t})`);this.wireGraphVariant(t);return;case`BRInventoryEntryPlan`:if(typeof t!=`string`)throw Error(`writing unreal type BRInventoryEntryPlan, did not receive string (${t})`);this.string(t);return}throw Error(`Unknown unreal type `+e)}};function W(...e){let t=e.reduce((e,t)=>e+t.length,0),n=new Uint8Array(t),r=0;for(let t of e)n.set(t,r),r+=t.length;return n}var G={bytes:or,u16:U,i32:lr,compressed:dr,string:mr,uuid:gr,array:vr,each:yr,bits:e=>new xr(e)},K={u16:cr,i32:ur,compressed:pr,uncompressed:fr,string:hr,uuid:_r,array:br,bits:()=>new Sr};function Cr(e,t={}){let n=G.compressed(e),r=G.compressed(e),i=G.string(n),a=G.string(n),o=G.string(n),s=G.uuid(n),c=G.i32(n),l=G.array(r,G.string),u=G.array(r,G.string),d=G.array(r,e=>H(Array.from(G.bytes(e,4)))),f=[],p=Math.max(u.length,2);if(t.bricks){f=Array(c);let t=G.compressed(e),n=G.bits(t);for(let e=0;!n.empty()&&e<c;e++){n.align();let t=n.int(p),r=n.bit()?[n.uint_packed(),n.uint_packed(),n.uint_packed()]:[0,0,0],i=[n.int_packed(),n.int_packed(),n.int_packed()],a=n.int(24),o=(a>>2)%6,s=a&3,c=n.bit(),l=n.bit(),u=n.bit()?H(n.bytesArr(4)):n.int(d.length);f[e]={asset_name_index:t,size:r,collision:c,position:i,direction:o,rotation:s,visibility:l,color:u}}}return{version:1,map:i,description:o,author:{id:s,name:a},mods:l,brick_assets:u,colors:d,bricks:f,brick_count:c}}function wr(e,t={}){let n=G.i32(e),r=G.compressed(e),i=G.compressed(e),a=G.string(r),o=G.string(r),s=G.string(r),c=G.uuid(r),l={name:G.string(r),id:G.uuid(r)},u=G.bytes(r,8),d=G.i32(r),f=G.array(i,G.string),p=G.array(i,G.string),m=G.array(i,e=>H(Array.from(G.bytes(e,4)))),h=G.array(i,G.string),g=G.array(i,e=>({id:G.uuid(e),name:G.string(e),bricks:G.i32(e)})),_=G.array(i,G.string),v=null;if(G.bytes(e,1)[0]){let n=G.i32(e);t.preview?v=G.bytes(e,n):e.brsOffset+=n}let y=[],b={},x=Math.max(_.length,2),S=Math.max(h.length,2),C=Math.max(p.length,2);if(t.bricks){y=Array(d);let t=G.compressed(e),n=G.bits(t);for(let e=0;!n.empty()&&e<d;e++){n.align();let t=n.int(C),r=n.bit()?[n.uint_packed(),n.uint_packed(),n.uint_packed()]:[0,0,0],i=[n.int_packed(),n.int_packed(),n.int_packed()],a=n.int(24),o=(a>>2)%6,s=a&3,c={player:n.bit(),weapon:n.bit(),interaction:n.bit(),tool:n.bit(),physics:!1},l=n.bit(),u=n.int(S),d=n.int(x),f=n.int(11),p=n.bit()?n.bytesArr(3):n.int(m.length),h=n.uint_packed();y[e]={asset_name_index:t,size:r,position:i,direction:o,rotation:s,collision:c,visibility:l,material_index:u,physical_index:d,material_intensity:f,color:p,owner_index:h,components:{}}}let r=G.compressed(e),i=Math.max(y.length,2);G.each(r,e=>{let t=G.string(e),n=G.bits(G.bytes(e,G.i32(e))),r=G.i32(n.bytes(4)),a=n.array(()=>n.int(i)),o=n.array(()=>[n.string(),n.string()]);for(let e of a){let r={};for(let[e,t]of o)r[e]=n.unreal(t);y[e].components[t]=r}b[t]={version:r,brick_indices:a,properties:Object.fromEntries(o)}})}return{version:10,game_version:n,map:a,description:s,author:{id:c,name:o},host:l,mods:f,brick_assets:p,colors:m,materials:h,brick_owners:g,physical_materials:_,preview:v,bricks:y,brick_count:d,save_time:u,components:b}}function Tr(e,t={}){let n=G.i32(e),r=G.compressed(e),i=G.compressed(e),a=G.string(r),o=G.string(r),s=G.string(r),c=G.uuid(r),l={name:G.string(r),id:G.uuid(r)},u=G.bytes(r,8),d=G.i32(r),f=G.array(i,G.string),p=G.array(i,G.string),m=G.array(i,e=>H(Array.from(G.bytes(e,4)))),h=G.array(i,G.string),g=G.array(i,e=>({id:G.uuid(e),name:G.string(e),display_name:G.string(e),bricks:G.i32(e)})),_=G.array(i,G.string),v=null;if(G.bytes(e,1)[0]){let n=G.i32(e);t.preview?v=G.bytes(e,n):e.brsOffset+=n}let y=[],b={},x=[],S=Math.max(_.length,2),C=Math.max(h.length,2),w=Math.max(p.length,2);if(t.bricks){y=Array(d);let t=G.compressed(e),n=G.bits(t);for(let e=0;!n.empty()&&e<d;e++){n.align();let t=n.int(w),r=n.bit()?[n.uint_packed(),n.uint_packed(),n.uint_packed()]:[0,0,0],i=[n.int_packed(),n.int_packed(),n.int_packed()],a=n.int(24),o=(a>>2)%6,s=a&3,c={player:n.bit(),weapon:n.bit(),interaction:n.bit(),tool:n.bit(),physics:n.bit()},l=n.bit(),u=n.int(C),d=n.int(S),f=n.int(11),p=n.bit()?n.bytesArr(3):n.int(m.length),h=n.uint_packed();y[e]={asset_name_index:t,size:r,position:i,direction:o,rotation:s,collision:c,visibility:l,material_index:u,physical_index:d,material_intensity:f,color:p,owner_index:h,components:{}}}let r=G.compressed(e),i=G.compressed(e),a=Math.max(y.length,2),o=[];G.each(r,e=>{let t=G.string(e),n=G.bits(G.bytes(e,G.i32(e))),r=G.i32(n.bytes(4)),i=n.array(()=>n.int(a)),s=n.array(()=>[n.string(),n.string()]);for(let e of i){let r={};for(let[e,t]of s)r[e]=n.unreal(t);y[e].components[t]=r}t in b||o.push(t),b[t]={version:r,brick_indices:i,properties:Object.fromEntries(s)}});let s=Math.max(o.length,2);{let e=G.bits(i),t=e.int(4294967295);for(let n=0;n<t;n++){let t=e.int(a),n=e.int(s),r=e.string(),i=e.int(a),c=e.int(s),l=e.string();e.bit(),e.align(),x.push({source:{brick_index:t,component:o[n],port:r},target:{brick_index:i,component:o[c],port:l}})}}}return{version:14,game_version:n,map:a,description:s,author:{id:c,name:o},host:l,mods:f,brick_assets:p,colors:m,materials:h,brick_owners:g,physical_materials:_,preview:v,bricks:y,brick_count:d,save_time:u,components:b,wires:x}}function Er(e,t={}){let n=G.compressed(e),r=G.compressed(e),i=G.string(n),a=G.string(n),o=G.string(n),s=G.uuid(n),c=G.i32(n),l=G.array(r,G.string),u=G.array(r,G.string),d=G.array(r,e=>H(Array.from(G.bytes(e,4)))),f=G.array(r,G.string),p=[],m=Math.max(u.length,2);if(t.bricks){p=Array(c);let t=G.compressed(e),n=G.bits(t);for(let e=0;!n.empty()&&e<c;e++){n.align();let t=n.int(m),r=n.bit()?[n.uint_packed(),n.uint_packed(),n.uint_packed()]:[0,0,0],i=[n.int_packed(),n.int_packed(),n.int_packed()],a=n.int(24),o=(a>>2)%6,s=a&3,c=n.bit(),l=n.bit(),u=n.bit()?n.uint_packed():1,f=n.bit()?H(n.bytesArr(4)):n.int(d.length);p[e]={asset_name_index:t,size:r,position:i,direction:o,rotation:s,collision:c,visibility:l,material_index:u,color:f}}}return{version:2,map:i,description:o,author:{id:s,name:a},mods:l,brick_assets:u,colors:d,materials:f,bricks:p,brick_count:c}}function Dr(e,t={}){let n=G.compressed(e),r=G.compressed(e),i=G.string(n),a=G.string(n),o=G.string(n),s=G.uuid(n),c=G.i32(n),l=G.array(r,G.string),u=G.array(r,G.string),d=G.array(r,e=>H(Array.from(G.bytes(e,4)))),f=G.array(r,G.string),p=G.array(r,e=>({id:G.uuid(e),name:G.string(e)})),m=[],h=Math.max(u.length,2);if(t.bricks){m=Array(c);let t=G.compressed(e),n=G.bits(t);for(let e=0;!n.empty()&&e<c;e++){n.align();let t=n.int(h),r=n.bit()?[n.uint_packed(),n.uint_packed(),n.uint_packed()]:[0,0,0],i=[n.int_packed(),n.int_packed(),n.int_packed()],a=n.int(24),o=(a>>2)%6,s=a&3,c=n.bit(),l=n.bit(),u=n.bit()?n.uint_packed():1,f=n.bit()?H(n.bytesArr(4)):n.int(d.length),p=n.uint_packed();m[e]={asset_name_index:t,size:r,position:i,direction:o,rotation:s,collision:c,visibility:l,material_index:u,color:f,owner_index:p}}}return{version:3,map:i,description:o,author:{id:s,name:a},mods:l,brick_assets:u,colors:d,materials:f,brick_owners:p,bricks:m,brick_count:c}}function Or(e,t={}){let n=G.compressed(e),r=G.compressed(e),i=G.string(n),a=G.string(n),o=G.string(n),s=G.uuid(n),c=G.bytes(n,8),l=G.i32(n),u=G.array(r,G.string),d=G.array(r,G.string),f=G.array(r,e=>H(Array.from(G.bytes(e,4)))),p=G.array(r,G.string),m=G.array(r,e=>({id:G.uuid(e),name:G.string(e)})),h=[],g=Math.max(d.length,2);if(t.bricks){h=Array(l);let t=G.compressed(e),n=G.bits(t);for(let e=0;!n.empty()&&e<l;e++){n.align();let t=n.int(g),r=n.bit()?[n.uint_packed(),n.uint_packed(),n.uint_packed()]:[0,0,0],i=[n.int_packed(),n.int_packed(),n.int_packed()],a=n.int(24),o=(a>>2)%6,s=a&3,c=n.bit(),l=n.bit(),u=n.bit()?n.uint_packed():1,d=n.bit()?H(n.bytesArr(4)):n.int(f.length),p=n.uint_packed();h[e]={asset_name_index:t,size:r,position:i,direction:o,rotation:s,collision:c,visibility:l,material_index:u,color:d,owner_index:p}}}return{version:4,map:i,description:o,author:{id:s,name:a},mods:u,brick_assets:d,colors:f,materials:p,brick_owners:m,bricks:h,brick_count:l,save_time:c}}function kr(e,t={}){let n=G.i32(e),r=G.compressed(e),i=G.compressed(e),a=G.string(r),o=G.string(r),s=G.string(r),c=G.uuid(r),l={name:G.string(r),id:G.uuid(r)},u=G.bytes(r,8),d=G.i32(r),f=G.array(i,G.string),p=G.array(i,G.string),m=G.array(i,e=>H(Array.from(G.bytes(e,4)))),h=G.array(i,G.string),g=G.array(i,e=>({id:G.uuid(e),name:G.string(e),bricks:G.i32(e)})),_=null;if(G.bytes(e,1)[0]){let n=G.i32(e);t.preview?_=G.bytes(e,n):e.brsOffset+=n}let v=[],y={},b=Math.max(h.length,2),x=Math.max(p.length,2);if(t.bricks){v=Array(d);let t=G.compressed(e),n=G.bits(t);for(let e=0;!n.empty()&&e<d;e++){n.align();let t=n.int(x),r=n.bit()?[n.uint_packed(),n.uint_packed(),n.uint_packed()]:[0,0,0],i=[n.int_packed(),n.int_packed(),n.int_packed()],a=n.int(24),o=(a>>2)%6,s=a&3,c=n.bit(),l=n.bit(),u=n.int(b),d=n.bit()?H(n.bytesArr(4)):n.int(m.length),f=n.uint_packed();v[e]={asset_name_index:t,size:r,position:i,direction:o,rotation:s,collision:c,visibility:l,material_index:u,color:d,owner_index:f,components:{}}}let r=G.compressed(e),i=Math.max(v.length,2);G.each(r,e=>{let t=G.string(e),n=G.bits(G.bytes(e,G.i32(e))),r=G.i32(n.bytes(4)),a=n.array(()=>n.int(i)),o=n.array(()=>[n.string(),n.string()]);for(let e of a){let r={};for(let[e,t]of o)r[e]=n.unreal(t);v[e].components[t]=r}y[t]={version:r,brick_indices:a,properties:Object.fromEntries(o)}})}return{version:8,game_version:n,map:a,description:s,author:{id:c,name:o},host:l,mods:f,brick_assets:p,colors:m,materials:h,brick_owners:g,preview:_,bricks:v,brick_count:d,save_time:u,components:y}}function Ar(e,t={}){let n=G.i32(e),r=G.compressed(e),i=G.compressed(e),a=G.string(r),o=G.string(r),s=G.string(r),c=G.uuid(r),l={name:G.string(r),id:G.uuid(r)},u=G.bytes(r,8),d=G.i32(r),f=G.array(i,G.string),p=G.array(i,G.string),m=G.array(i,e=>H(Array.from(G.bytes(e,4)))),h=G.array(i,G.string),g=G.array(i,e=>({id:G.uuid(e),name:G.string(e),bricks:G.i32(e)})),_=G.array(i,G.string),v=null;if(G.bytes(e,1)[0]){let n=G.i32(e);t.preview?v=G.bytes(e,n):e.brsOffset+=n}let y=[],b={},x=Math.max(_.length,2),S=Math.max(h.length,2),C=Math.max(p.length,2);if(t.bricks){y=Array(d);let t=G.compressed(e),n=G.bits(t);for(let e=0;!n.empty()&&e<d;e++){n.align();let t=n.int(C),r=n.bit()?[n.uint_packed(),n.uint_packed(),n.uint_packed()]:[0,0,0],i=[n.int_packed(),n.int_packed(),n.int_packed()],a=n.int(24),o=(a>>2)%6,s=a&3,c=n.bit(),l=n.bit(),u=n.int(S),d=n.int(x),f=n.int(11),p=n.bit()?n.bytesArr(3):n.int(m.length),h=n.uint_packed();y[e]={asset_name_index:t,size:r,position:i,direction:o,rotation:s,collision:c,visibility:l,material_index:u,physical_index:d,material_intensity:f,color:p,owner_index:h,components:{}}}let r=G.compressed(e),i=Math.max(y.length,2);G.each(r,e=>{let t=G.string(e),n=G.bits(G.bytes(e,G.i32(e))),r=G.i32(n.bytes(4)),a=n.array(()=>n.int(i)),o=n.array(()=>[n.string(),n.string()]);for(let e of a){let r={};for(let[e,t]of o)r[e]=n.unreal(t);y[e].components[t]=r}b[t]={version:r,brick_indices:a,properties:Object.fromEntries(o)}})}return{version:9,game_version:n,map:a,description:s,author:{id:c,name:o},host:l,mods:f,brick_assets:p,colors:m,materials:h,brick_owners:g,physical_materials:_,preview:v,bricks:y,brick_count:d,save_time:u,components:b}}function jr(e,t={}){if(typeof t!=`object`)throw Error(`Invalid options`);if(typeof t.bricks!=`boolean`&&(t.bricks=!0),typeof t.preview!=`boolean`&&(t.preview=!1),e[0]!==i[0]||e[1]!==i[1]||e[2]!==i[2])throw Error(`Invalid starting bytes`);let n=e;n.brsOffset=3;let r=G.u16(n);switch(r){case 1:return Cr(n,t);case 2:return Er(n,t);case 3:return Dr(n,t);case 4:return Or(n,t);case 8:return kr(n,t);case 9:return Ar(n,t);case 10:return wr(n,t);case 14:return Tr(n,t);default:throw Error(`Unsupported version `+r)}}var Mr=new Uint8Array([]),Nr={BCD_SpotLight:{version:1,properties:{Rotation:`Rotator`,InnerConeAngle:`Float`,OuterConeAngle:`Float`,Brightness:`Float`,Radius:`Float`,Color:`Color`,bUseBrickColor:`Boolean`,bCastShadows:`Boolean`}},BCD_PointLight:{version:1,properties:{bMatchBrickShape:`Boolean`,Brightness:`Float`,Radius:`Float`,Color:`Color`,bUseBrickColor:`Boolean`,bCastShadows:`Boolean`}},BCD_ItemSpawn:{version:1,properties:{PickupClass:`Class`,bPickupEnabled:`Boolean`,bPickupRespawnOnMinigameReset:`Boolean`,PickupMinigameResetRespawnDelay:`Float`,bPickupAutoDisableOnPickup:`Boolean`,PickupRespawnTime:`Float`,PickupOffsetDirection:`Byte`,PickupOffsetDistance:`Float`,PickupRotation:`Rotator`,PickupScale:`Float`,bPickupAnimationEnabled:`Boolean`,PickupAnimationAxis:`Byte`,bPickupAnimationAxisLocal:`Boolean`,PickupSpinSpeed:`Float`,PickupBobSpeed:`Float`,PickupBobHeight:`Float`,PickupAnimationPhase:`Float`}},BCD_Interact:{version:1,properties:{bPlayInteractSound:`Boolean`,Message:`String`,ConsoleTag:`String`}},BCD_AudioEmitter:{version:1,properties:{AudioDescriptor:`Object`,VolumeMultiplier:`Float`,PitchMultiplier:`Float`,InnerRadius:`Float`,MaxDistance:`Float`,bSpatialization:`Boolean`}},Component_Internal_Rerouter:{version:1,properties:{}},BrickComponentType_Internal_ReadBrickGrid:{version:1,properties:{}},BrickComponentType_WireGraphPseudo_BufferSeconds:{version:1,properties:{SecondsToWait:`Float`,ZeroSecondsToWait:`Float`,CurrentTime:`Float`,Input:`WireGraphVariant`,Output:`WireGraphVariant`,Buffered:`WireGraphVariant`,Queued:`WireGraphVariant`,bHasQueued:`Boolean`}},BrickComponentType_WireGraphPseudo_BufferTicks:{version:1,properties:{TicksToWait:`Integer`,ZeroTicksToWait:`Integer`,CurrentTicks:`Integer`,Input:`WireGraphVariant`,Output:`WireGraphVariant`,Buffered:`WireGraphVariant`,Queued:`WireGraphVariant`,bHasQueued:`Boolean`}},BrickComponentType_WireGraphPseudo_Const:{version:1,properties:{Value:`WireGraphVariant`}},BrickComponentType_WireGraph_Expr_BitwiseAND:{version:1,properties:{InputA:`Integer64`,InputB:`Integer64`}},BrickComponentType_WireGraph_Expr_BitwiseNAND:{version:1,properties:{InputA:`Integer64`,InputB:`Integer64`}},BrickComponentType_WireGraph_Expr_BitwiseNOR:{version:1,properties:{InputA:`Integer64`,InputB:`Integer64`}},BrickComponentType_WireGraph_Expr_BitwiseNOT:{version:1,properties:{Input:`Integer64`}},BrickComponentType_WireGraph_Expr_BitwiseOR:{version:1,properties:{InputA:`Integer64`,InputB:`Integer64`}},BrickComponentType_WireGraph_Expr_BitwiseShiftLeft:{version:1,properties:{InputA:`Integer64`,InputB:`Integer64`}},BrickComponentType_WireGraph_Expr_BitwiseShiftRight:{version:1,properties:{InputA:`Integer64`,InputB:`Integer64`}},BrickComponentType_WireGraph_Expr_BitwiseXOR:{version:1,properties:{InputA:`Integer64`,InputB:`Integer64`}},BrickComponentType_WireGraph_Expr_Ceil:{version:1,properties:{Input:`Double`}},BrickComponentType_WireGraph_Expr_CompareEqual:{version:1,properties:{InputA:`WireGraphVariant`,InputB:`WireGraphVariant`}},BrickComponentType_WireGraph_Expr_CompareGreater:{version:1,properties:{InputA:`WireGraphPrimMathVariant`,InputB:`WireGraphPrimMathVariant`}},BrickComponentType_WireGraph_Expr_CompareGreaterOrEqual:{version:1,properties:{InputA:`WireGraphPrimMathVariant`,InputB:`WireGraphPrimMathVariant`}},BrickComponentType_WireGraph_Expr_CompareLess:{version:1,properties:{InputA:`WireGraphPrimMathVariant`,InputB:`WireGraphPrimMathVariant`}},BrickComponentType_WireGraph_Expr_CompareLessOrEqual:{version:1,properties:{InputA:`WireGraphPrimMathVariant`,InputB:`WireGraphPrimMathVariant`}},BrickComponentType_WireGraph_Expr_CompareNotEqual:{version:1,properties:{InputA:`WireGraphVariant`,InputB:`WireGraphVariant`}},BrickComponentType_WireGraph_Expr_Floor:{version:1,properties:{Input:`Double`}},BrickComponentType_WireGraph_Expr_LogicalAND:{version:1,properties:{bInputA:`Boolean`,bInputB:`Boolean`}},BrickComponentType_WireGraph_Expr_LogicalNAND:{version:1,properties:{bInputA:`Boolean`,bInputB:`Boolean`}},BrickComponentType_WireGraph_Expr_LogicalNOR:{version:1,properties:{bInputA:`Boolean`,bInputB:`Boolean`}},BrickComponentType_WireGraph_Expr_LogicalNOT:{version:1,properties:{bInput:`Boolean`}},BrickComponentType_WireGraph_Expr_LogicalOR:{version:1,properties:{bInputA:`Boolean`,bInputB:`Boolean`}},BrickComponentType_WireGraph_Expr_LogicalXOR:{version:1,properties:{bInputA:`Boolean`,bInputB:`Boolean`}},BrickComponentType_WireGraph_Expr_MathAdd:{version:1,properties:{InputA:`WireGraphPrimMathVariant`,InputB:`WireGraphPrimMathVariant`}},BrickComponentType_WireGraph_Expr_MathBlend:{version:1,properties:{Blend:`Double`,InputA:`WireGraphPrimMathVariant`,InputB:`WireGraphPrimMathVariant`}},BrickComponentType_WireGraph_Expr_MathDivide:{version:1,properties:{InputA:`WireGraphPrimMathVariant`,InputB:`WireGraphPrimMathVariant`}},BrickComponentType_WireGraph_Expr_MathModulo:{version:1,properties:{InputA:`WireGraphPrimMathVariant`,InputB:`WireGraphPrimMathVariant`}},BrickComponentType_WireGraph_Expr_MathModuloFloored:{version:1,properties:{InputA:`WireGraphPrimMathVariant`,InputB:`WireGraphPrimMathVariant`}},BrickComponentType_WireGraph_Expr_MathMultiply:{version:1,properties:{InputA:`WireGraphPrimMathVariant`,InputB:`WireGraphPrimMathVariant`}},BrickComponentType_WireGraph_Expr_MathSubtract:{version:1,properties:{InputA:`WireGraphPrimMathVariant`,InputB:`WireGraphPrimMathVariant`}},BrickComponent_WireGraph_Expr_EdgeDetector:{version:1,properties:{Input:`Double`,bPulseOnRisingEdge:`Boolean`,bPulseOnFallingEdge:`Boolean`}}};function Pr(e,t={}){if(typeof e!=`object`)throw Error(`Expected save to be an object`);if(!Array.isArray(e.bricks)||e.bricks.length===0)throw Error(`Expected save to have bricks field`);if(e.bricks.length>2147483647)throw Error(`Brick count out of range`);let n=t.compress?K.compressed:K.uncompressed,r=([e,t,n,r])=>new Uint8Array([n,t,e,r]),a={},s=Math.max(e.colors?.length??0,2),c=Math.max(e.brick_assets?.length??0,2),l=Math.max(e.materials?.length??0,2),u=Math.max(e.physical_materials?.length??0,2);if(e.preview&&!Array.isArray(e.preview))throw Error(`Expected preview to be an array`);let d={},f=0;return W(i,K.u16(14),K.i32(e.game_version??0),n(K.string(e.map??`Unknown`),K.string(e.author?.name??`Unknown`),K.string(e.description??``),K.uuid(e.author?.id??`00000000-0000-0000-0000-000000000000`),W(K.string(e.host?.name??`Unknown`),K.uuid(e.host?.id??`00000000-0000-0000-0000-000000000000`)),new Uint8Array(e.save_time&&(Array.isArray(e.save_time)||e.save_time instanceof Uint8Array)&&e.save_time.length===8?e.save_time:[0,0,0,0,0,0,0,0]),K.i32(e.bricks.length)),n(K.array(e.mods??[],K.string),K.array(e.brick_assets??[`PB_DefaultBrick`],K.string),K.array(e.colors??[],r),K.array(e.materials??[`BMC_Plastic`],K.string),K.array(e.brick_owners??[],({id:e=o,name:t=`Unknown`,display_name:n=`Unknown`,bricks:r=0})=>W(K.uuid(e),K.string(t),K.string(n),K.i32(r))),K.array(e.physical_materials??[`BPMC_Default`],K.string)),W(new Uint8Array([+!!e.preview]),e.preview?K.i32(e.preview.length):Mr,e.preview??Mr),n(K.bits().each(e.bricks,function(e,t){if(typeof e!=`object`)throw Error(`Expected save.bricks[${t}] to be an object`);if(!Array.isArray(e.size)||e.size.length!==3)throw Error(`Expected save.bricks[${t}].size to be an array of length 3`);if(!Array.isArray(e.position)||e.position.length!==3)throw Error(`Expected save.bricks[${t}].position to be an array of length 3`);this.align(),this.int(e.asset_name_index??0,c);let n=e.size===null||ir(e.size,[0,0,0]);if(this.bit(!n),n||e.size.map(e=>this.uint_packed(e>=0?e:1)),e.position.map(e=>this.int_packed(e)),this.int((e.direction??4)<<2|(e.rotation??0),24),typeof e.collision==`boolean`?(this.bit(e.collision),this.bit(e.collision),this.bit(e.collision),this.bit(!0),this.bit(e.collision)):(this.bit(e.collision?.player??!0),this.bit(e.collision?.weapon??!0),this.bit(e.collision?.interaction??!0),this.bit(e.collision?.tool??!0),this.bit(e.collision?.physics??!0)),this.bit(e.visibility??!0),this.int(e.material_index??0,l),this.int(e.physical_index??0,u),this.int(e.material_intensity??5,11),typeof e.color==`number`)this.bit(!1),this.int(e.color,s);else{if(this.bit(!0),e.color&&(!Array.isArray(e.color)||e.color.length<3))throw Error(`Expected save.bricks[${t}].color to be an array of at least length 3`);this.bytes(new Uint8Array(e.color?.slice(0,3)??[255,255,255]))}this.uint_packed(e.owner_index>=0?e.owner_index:0);for(let n in e.components??{})a[n]??(a[n]=[]),a[n].push(t)}).finish()),n(K.array(Object.keys(e.components??Nr).filter(e=>a[e]),t=>W(K.string(t),K.bits().self(function(){let n=e.components?.[t]??Nr[t],r=a[t],i=Object.entries(n.properties);t in d||(d[t]=f,f++),this.bytes(K.i32(n.version)),this.array(r,t=>{this.int(t,Math.max(e.bricks.length,2))}),this.array(i,([e,t])=>{this.string(e),this.string(t)});for(let n of r)for(let[r,a]of i){if(!(r in(e.bricks[n].components?.[t]??{})))throw Error(`Expected save.bricks[${n}].components[${t}] to have property '${r}' of type '${a}'`);this.unreal(a,e.bricks[n].components[t][r])}this.align()}).finishSection()))),n(K.bits().self(function(){let t=4294967295;if(!e.wires||!Array.isArray(e.wires)||e.wires.length===0){this.int(0,t);return}this.int(e.wires.length,t);for(let t of e.wires){if(typeof t!=`object`)throw Error(`Expected save.wires to be an array of objects`);if(!(t.source&&typeof t.source==`object`&&typeof t.source.brick_index==`number`&&typeof t.source.component==`string`&&typeof t.source.port==`string`))throw Error(`Expected save.wires[i].source to be an object with brick_index, component, and port properties`);if(!(t.target&&typeof t.target==`object`&&typeof t.target.brick_index==`number`&&typeof t.target.component==`string`&&typeof t.target.port==`string`))throw Error(`Expected save.wires[i].target to be an object with brick_index, component, and port properties`);if(!(t.source.component in d))throw Error(`Unknown component '${t.source.component}' in wire source`);if(!(t.target.component in d))throw Error(`Unknown component '${t.target.component}' in wire target`);this.int(t.source.brick_index,e.bricks.length),this.int(d[t.source.component],f),this.string(t.source.port),this.int(t.target.brick_index,e.bricks.length),this.int(d[t.target.component],f),this.string(t.target.port),this.bit(!1),this.align()}}).finish()))}var Fr=n({Direction:()=>Ir,Rotation:()=>Lr}),Ir=function(e){return e[e.XPositive=0]=`XPositive`,e[e.XNegative=1]=`XNegative`,e[e.YPositive=2]=`YPositive`,e[e.YNegative=3]=`YNegative`,e[e.ZPositive=4]=`ZPositive`,e[e.ZNegative=5]=`ZNegative`,e}({}),Lr=function(e){return e[e.Deg0=0]=`Deg0`,e[e.Deg90=1]=`Deg90`,e[e.Deg180=2]=`Deg180`,e[e.Deg270=3]=`Deg270`,e}({}),Rr=(e,t)=>((e.Flags[t>>3]??0)>>(t&7)&1)==1,zr=class{constructor(){this.bytes=[],this.bits=0}push(e){this.bits>=this.bytes.length*8&&this.bytes.push(0),e&&(this.bytes[this.bits>>3]|=1<<(this.bits&7)),this.bits+=1}toValue(){return{Flags:this.bytes}}};function Br(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name===`Uint8Array`&&`BYTES_PER_ELEMENT`in e&&e.BYTES_PER_ELEMENT===1}function Vr(e,t=``){if(typeof e!=`number`){let n=t&&`"${t}" `;throw TypeError(`${n}expected number, got ${typeof e}`)}if(!Number.isSafeInteger(e)||e<0){let n=t&&`"${t}" `;throw RangeError(`${n}expected integer >= 0, got ${e}`)}}function Hr(e,t,n=``){let r=Br(e),i=e?.length,a=t!==void 0;if(!r||a&&i!==t){let o=n&&`"${n}" `,s=a?` of length ${t}`:``,c=r?`length=${i}`:`type=${typeof e}`,l=o+`expected Uint8Array`+s+`, got `+c;throw r?RangeError(l):TypeError(l)}return e}function Ur(e){return Uint8Array.from(Hr(e))}function Wr(e,t=!0){if(e.destroyed)throw Error(`Hash instance has been destroyed`);if(t&&e.finished)throw Error(`Hash#digest() has already been called`)}function Gr(e,t){Hr(e,void 0,`digestInto() output`);let n=t.outputLen;if(e.length<n)throw RangeError(`"digestInto() output" expected to be of length >=`+n)}function Kr(e){return new Uint8Array(e.buffer,e.byteOffset,e.byteLength)}function qr(e){return new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4))}function Jr(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}function Yr(e,t){return e<<32-t|e>>>t}var Xr=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function Zr(e){return e<<24&4278190080|e<<8&16711680|e>>>8&65280|e>>>24&255}var Qr=Xr?e=>e:e=>Zr(e)>>>0;function $r(e){for(let t=0;t<e.length;t++)e[t]=Zr(e[t]);return e}var q=Xr?e=>e:$r,ei=typeof Uint8Array.from([]).toHex==`function`&&typeof Uint8Array.fromHex==`function`,ti=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,`0`));function ni(e){if(Hr(e),ei)return e.toHex();let t=``;for(let n=0;n<e.length;n++)t+=ti[e[n]];return t}function ri(e,t={}){let n=(t,n)=>e(n).update(t).digest(),r=e(void 0);return n.outputLen=r.outputLen,n.blockLen=r.blockLen,n.canXOF=r.canXOF,n.create=t=>e(t),Object.assign(n,t),Object.freeze(n)}var ii=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),ai=BigInt(2**32-1),oi=BigInt(32);function si(e,t=!1){return t?{h:Number(e&ai),l:Number(e>>oi&ai)}:{h:Number(e>>oi&ai)|0,l:Number(e&ai)|0}}function ci(e,t,n,r,i){return e=e+t+i|0,r=Yr(r^e,16),n=n+r|0,t=Yr(t^n,12),{a:e,b:t,c:n,d:r}}function li(e,t,n,r,i){return e=e+t+i|0,r=Yr(r^e,8),n=n+r|0,t=Yr(t^n,7),{a:e,b:t,c:n,d:r}}var ui=class{constructor(e,t){u(this,`buffer`,void 0),u(this,`buffer32`,void 0),u(this,`finished`,!1),u(this,`destroyed`,!1),u(this,`length`,0),u(this,`pos`,0),u(this,`blockLen`,void 0),u(this,`outputLen`,void 0),u(this,`canXOF`,!1),Vr(e),Vr(t),this.blockLen=e,this.outputLen=t,this.buffer=new Uint8Array(e),this.buffer32=qr(this.buffer)}update(e){Wr(this),Hr(e);let{blockLen:t,buffer:n,buffer32:r}=this,i=e.length,a=e.byteOffset,o=e.buffer;for(let s=0;s<i;){this.pos===t&&(q(r),this.compress(r,0,!1),q(r),this.pos=0);let c=Math.min(t-this.pos,i-s),l=a+s;if(c===t&&!(l%4)&&s+c<i){let e=new Uint32Array(o,l,Math.floor((i-s)/4));q(e);for(let n=0;s+t<i;n+=r.length,s+=t)this.length+=t,this.compress(e,n,!1);q(e);continue}n.set(e.subarray(s,s+c),this.pos),this.pos+=c,this.length+=c,s+=c}return this}digestInto(e){Wr(this),Gr(e,this);let{pos:t,buffer32:n}=this;if(this.finished=!0,Jr(this.buffer.subarray(t)),q(n),this.compress(n,0,!0),q(n),e.byteOffset&3)throw RangeError(`"digestInto() output" expected 4-byte aligned byteOffset, got `+e.byteOffset);let r=this.get(),i=qr(e),a=Math.floor(this.outputLen/4);for(let e=0;e<a;e++)i[e]=Qr(r[e]);let o=this.outputLen%4;if(!o)return;let s=a*4,c=r[a];for(let t=0;t<o;t++)e[s+t]=c>>>8*t}digest(){let{buffer:e,outputLen:t}=this;this.digestInto(e);let n=e.slice(0,t);return this.destroy(),n}_cloneInto(e){let{buffer:t,length:n,finished:r,destroyed:i,outputLen:a,pos:o}=this;return e||(e=new this.constructor({dkLen:a})),e.set(...this.get()),e.buffer.set(t),e.destroyed=i,e.finished=r,e.length=n,e.pos=o,e.outputLen=a,e}clone(){return this._cloneInto()}};function di(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_,v,y){let b=0;for(let x=0;x<r;x++)({a:i,b:c,c:f,d:g}=ci(i,c,f,g,n[t+e[b++]])),{a:i,b:c,c:f,d:g}=li(i,c,f,g,n[t+e[b++]]),{a,b:l,c:p,d:_}=ci(a,l,p,_,n[t+e[b++]]),{a,b:l,c:p,d:_}=li(a,l,p,_,n[t+e[b++]]),{a:o,b:u,c:m,d:v}=ci(o,u,m,v,n[t+e[b++]]),{a:o,b:u,c:m,d:v}=li(o,u,m,v,n[t+e[b++]]),{a:s,b:d,c:h,d:y}=ci(s,d,h,y,n[t+e[b++]]),{a:s,b:d,c:h,d:y}=li(s,d,h,y,n[t+e[b++]]),{a:i,b:l,c:m,d:y}=ci(i,l,m,y,n[t+e[b++]]),{a:i,b:l,c:m,d:y}=li(i,l,m,y,n[t+e[b++]]),{a,b:u,c:h,d:g}=ci(a,u,h,g,n[t+e[b++]]),{a,b:u,c:h,d:g}=li(a,u,h,g,n[t+e[b++]]),{a:o,b:d,c:f,d:_}=ci(o,d,f,_,n[t+e[b++]]),{a:o,b:d,c:f,d:_}=li(o,d,f,_,n[t+e[b++]]),{a:s,b:c,c:p,d:v}=ci(s,c,p,v,n[t+e[b++]]),{a:s,b:c,c:p,d:v}=li(s,c,p,v,n[t+e[b++]]);return{v0:i,v1:a,v2:o,v3:s,v4:c,v5:l,v6:u,v7:d,v8:f,v9:p,v10:m,v11:h,v12:g,v13:_,v14:v,v15:y}}var fi={CHUNK_START:1,CHUNK_END:2,PARENT:4,ROOT:8,KEYED_HASH:16,DERIVE_KEY_CONTEXT:32,DERIVE_KEY_MATERIAL:64},pi=ii.slice(),mi=(()=>{let e=Array.from({length:16},(e,t)=>t),t=e=>[2,6,3,10,7,0,4,13,1,11,12,5,9,14,15,8].map(t=>e[t]),n=[];for(let r=0,i=e;r<7;r++,i=t(i))n.push(...i);return Uint8Array.from(n)})(),hi=class e extends ui{constructor(t={},n=0){super(64,t.dkLen===void 0?32:t.dkLen),u(this,`canXOF`,!0),u(this,`chunkPos`,0),u(this,`chunksDone`,0),u(this,`flags`,0),u(this,`IV`,void 0),u(this,`state`,void 0),u(this,`stack`,[]),u(this,`posOut`,0),u(this,`bufferOut32`,new Uint32Array(16)),u(this,`bufferOut`,void 0),u(this,`chunkOut`,0),u(this,`enableXOF`,!0);let{key:r,context:i}=t,a=i!==void 0;if(r!==void 0){if(a)throw Error(`Only "key" or "context" can be specified at same time`);Hr(r,32,`key`);let e=Ur(r);this.IV=qr(e),q(this.IV),this.flags=n|fi.KEYED_HASH}else if(a){Hr(i,void 0,`context`);let t=i,r=new e({dkLen:32},fi.DERIVE_KEY_CONTEXT).update(t).digest();this.IV=qr(r),q(this.IV),this.flags=n|fi.DERIVE_KEY_MATERIAL}else this.IV=pi.slice(),this.flags=n;this.state=this.IV.slice(),this.bufferOut=Kr(this.bufferOut32)}get(){return[]}set(){}b2Compress(e,t,n,r=0){let{state:i,pos:a}=this,{h:o,l:s}=si(BigInt(e),!0),{v0:c,v1:l,v2:u,v3:d,v4:f,v5:p,v6:m,v7:h,v8:g,v9:_,v10:v,v11:y,v12:b,v13:x,v14:S,v15:C}=di(mi,r,n,7,i[0],i[1],i[2],i[3],i[4],i[5],i[6],i[7],pi[0],pi[1],pi[2],pi[3],o,s,a,t);i[0]=c^g,i[1]=l^_,i[2]=u^v,i[3]=d^y,i[4]=f^b,i[5]=p^x,i[6]=m^S,i[7]=h^C}compress(e,t=0,n=!1){let r=this.flags;if(this.chunkPos||(r|=fi.CHUNK_START),(this.chunkPos===15||n)&&(r|=fi.CHUNK_END),n||(this.pos=this.blockLen),this.b2Compress(this.chunksDone,r,e,t),this.chunkPos+=1,this.chunkPos===16||n){let e=this.state;this.state=this.IV.slice();for(let t,r=this.chunksDone+1;(n||!(r&1))&&(t=this.stack.pop());r>>=1)this.buffer32.set(t,0),this.buffer32.set(e,8),this.pos=this.blockLen,this.b2Compress(0,this.flags|fi.PARENT,this.buffer32,0),e=this.state,this.state=this.IV.slice();this.chunksDone++,this.chunkPos=0,this.stack.push(e)}this.pos=0}_cloneInto(e){e=super._cloneInto(e);let{IV:t,flags:n,state:r,chunkPos:i,posOut:a,chunkOut:o,stack:s,chunksDone:c}=this;return e.state.set(r.slice()),e.stack=s.map(e=>Uint32Array.from(e)),e.IV.set(t),e.flags=n,e.chunkPos=i,e.chunksDone=c,e.posOut=a,e.chunkOut=o,e.enableXOF=this.enableXOF,e.bufferOut32.set(this.bufferOut32),e}destroy(){this.destroyed=!0,Jr(this.state,this.buffer32,this.IV,this.bufferOut32),Jr(...this.stack)}b2CompressOut(){let{state:e,pos:t,flags:n,buffer32:r,bufferOut32:i}=this,{h:a,l:o}=si(BigInt(this.chunkOut++));q(r);let{v0:s,v1:c,v2:l,v3:u,v4:d,v5:f,v6:p,v7:m,v8:h,v9:g,v10:_,v11:v,v12:y,v13:b,v14:x,v15:S}=di(mi,0,r,7,e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],pi[0],pi[1],pi[2],pi[3],o,a,t,n);i[0]=s^h,i[1]=c^g,i[2]=l^_,i[3]=u^v,i[4]=d^y,i[5]=f^b,i[6]=p^x,i[7]=m^S,i[8]=e[0]^h,i[9]=e[1]^g,i[10]=e[2]^_,i[11]=e[3]^v,i[12]=e[4]^y,i[13]=e[5]^b,i[14]=e[6]^x,i[15]=e[7]^S,q(r),q(i),this.posOut=0}finish(){if(this.finished)return;this.finished=!0,Jr(this.buffer.subarray(this.pos));let e=this.flags|fi.ROOT;this.stack.length?(e|=fi.PARENT,q(this.buffer32),this.compress(this.buffer32,0,!0),q(this.buffer32),this.chunksDone=0,this.pos=this.blockLen):e|=(this.chunkPos?0:fi.CHUNK_START)|fi.CHUNK_END,this.flags=e,this.b2CompressOut()}writeInto(e){Wr(this,!1),Hr(e),this.finish();let{blockLen:t,bufferOut:n}=this;for(let r=0,i=e.length;r<i;){this.posOut>=t&&this.b2CompressOut();let a=Math.min(t-this.posOut,i-r);e.set(n.subarray(this.posOut,this.posOut+a),r),this.posOut+=a,r+=a}return e}xofInto(e){if(!this.enableXOF)throw Error(`XOF is not possible after digest call`);return this.writeInto(e)}xof(e){return Vr(e),this.xofInto(new Uint8Array(e))}digestInto(e){if(Gr(e,this),this.finished)throw Error(`digest() was already called`);this.enableXOF=!1,this.writeInto(e.subarray(0,this.outputLen)),this.destroy()}digest(){let e=new Uint8Array(this.outputLen);return this.digestInto(e),e}},gi=ri((e={})=>new hi(e)),_i=ArrayBuffer,J=Uint8Array,vi=Uint16Array,yi=Int16Array,bi=Int32Array,xi=function(e,t,n){if(J.prototype.slice)return J.prototype.slice.call(e,t,n);(t==null||t<0)&&(t=0),(n==null||n>e.length)&&(n=e.length);var r=new J(n-t);return r.set(e.subarray(t,n)),r},Si=function(e,t,n,r){if(J.prototype.fill)return J.prototype.fill.call(e,t,n,r);for((n==null||n<0)&&(n=0),(r==null||r>e.length)&&(r=e.length);n<r;++n)e[n]=t;return e},Ci=function(e,t,n,r){if(J.prototype.copyWithin)return J.prototype.copyWithin.call(e,t,n,r);for((n==null||n<0)&&(n=0),(r==null||r>e.length)&&(r=e.length);n<r;)e[t++]=e[n++]},wi=[`invalid zstd data`,`window size too large (>2046MB)`,`invalid block type`,`FSE accuracy too high`,`match distance too far back`,`unexpected EOF`],Y=function(e,t,n){var r=Error(t||wi[e]);if(r.code=e,Error.captureStackTrace&&Error.captureStackTrace(r,Y),!n)throw r;return r},Ti=function(e,t,n){for(var r=0,i=0;r<n;++r)i|=e[t++]<<(r<<3);return i},Ei=function(e,t){return(e[t]|e[t+1]<<8|e[t+2]<<16|e[t+3]<<24)>>>0},Di=function(e,t){var n=e[0]|e[1]<<8|e[2]<<16;if(n==3126568&&e[3]==253){var r=e[4],i=r>>5&1,a=r>>2&1,o=r&3,s=r>>6;r&8&&Y(0);var c=6-i,l=o==3?4:o,u=Ti(e,c,l);c+=l;var d=s?1<<s:i,f=Ti(e,c,d)+(s==1&&256),p=f;if(!i){var m=1<<10+(e[5]>>3);p=m+(m>>3)*(e[5]&7)}p>2145386496&&Y(1);var h=new J((t==1?f||p:t?0:p)+12);return h[0]=1,h[4]=4,h[8]=8,{b:c+d,y:0,l:0,d:u,w:t&&t!=1?t:h.subarray(12),e:p,o:new bi(h.buffer,0,3),u:f,c:a,m:Math.min(131072,p)}}else if((n>>4|e[3]<<20)==25481893)return Ei(e,4)+8;Y(0)},Oi=function(e){for(var t=0;1<<t<=e;++t);return t-1},ki=function(e,t,n){var r=(t<<3)+4,i=(e[t]&15)+5;i>n&&Y(3);for(var a=1<<i,o=a,s=-1,c=-1,l=-1,u=a,d=new _i(512+(a<<2)),f=new yi(d,0,256),p=new vi(d,0,256),m=new vi(d,512,a),h=512+(a<<1),g=new J(d,h,a),_=new J(d,h+a);s<255&&o>0;){var v=Oi(o+1),y=r>>3,b=(1<<v+1)-1,x=(e[y]|e[y+1]<<8|e[y+2]<<16)>>(r&7)&b,S=(1<<v)-1,C=b-o-1,w=x&S;if(w<C?(r+=v,x=w):(r+=v+1,x>S&&(x-=C)),f[++s]=--x,x==-1?(o+=x,g[--u]=s):o-=x,!x)do{var T=r>>3;c=(e[T]|e[T+1]<<8)>>(r&7)&3,r+=2,s+=c}while(c==3)}(s>255||o)&&Y(0);for(var E=0,D=(a>>1)+(a>>3)+3,O=a-1,k=0;k<=s;++k){var A=f[k];if(A<1){p[k]=-A;continue}for(l=0;l<A;++l){g[E]=k;do E=E+D&O;while(E>=u)}}for(E&&Y(0),l=0;l<a;++l){var j=p[g[l]]++;m[l]=(j<<(_[l]=i-Oi(j)))-a}return[r+7>>3,{b:i,s:g,n:_,t:m}]},Ai=function(e,t){var n=0,r=-1,i=new J(292),a=e[t],o=i.subarray(0,256),s=i.subarray(256,268),c=new vi(i.buffer,268);if(a<128){var l=ki(e,t+1,6),u=l[0],d=l[1];t+=a;var f=u<<3,p=e[t];p||Y(0);for(var m=0,h=0,g=d.b,_=g,v=(++t<<3)-8+Oi(p);v-=g,!(v<f);){var y=v>>3;if(m+=(e[y]|e[y+1]<<8)>>(v&7)&(1<<g)-1,o[++r]=d.s[m],v-=_,v<f)break;y=v>>3,h+=(e[y]|e[y+1]<<8)>>(v&7)&(1<<_)-1,o[++r]=d.s[h],g=d.n[m],m=d.t[m],_=d.n[h],h=d.t[h]}++r>255&&Y(0)}else{for(r=a-127;n<r;n+=2){var b=e[++t];o[n]=b>>4,o[n+1]=b&15}++t}var x=0;for(n=0;n<r;++n){var S=o[n];S>11&&Y(0),x+=S&&1<<S-1}var C=Oi(x)+1,w=1<<C,T=w-x;for(T&T-1&&Y(0),o[r++]=Oi(T)+1,n=0;n<r;++n){var S=o[n];++s[o[n]=S&&C+1-S]}var E=new J(w<<1),D=E.subarray(0,w),O=E.subarray(w);for(c[C]=0,n=C;n>0;--n){var k=c[n];Si(O,n,k,c[n-1]=k+s[n]*(1<<C-n))}for(c[0]!=w&&Y(0),n=0;n<r;++n){var A=o[n];if(A){var j=c[A];Si(D,n,j,c[A]=j+(1<<C-A))}}return[t,{n:O,b:C,s:D}]},ji=ki(new J([81,16,99,140,49,198,24,99,12,33,196,24,99,102,102,134,70,146,4]),0,6)[1],Mi=ki(new J([33,20,196,24,99,140,33,132,16,66,8,33,132,16,66,8,33,68,68,68,68,68,68,68,68,36,9]),0,6)[1],Ni=ki(new J([32,132,16,66,102,70,68,68,68,68,36,73,2]),0,5)[1],Pi=function(e,t){for(var n=e.length,r=new bi(n),i=0;i<n;++i)r[i]=t,t+=1<<e[i];return r},Fi=new J(new bi([0,0,0,0,16843009,50528770,134678020,202050057,269422093]).buffer,0,36),Ii=Pi(Fi,0),Li=new J(new bi([0,0,0,0,0,0,0,0,16843009,50528770,117769220,185207048,252579084,16]).buffer,0,53),Ri=Pi(Li,3),zi=function(e,t,n){var r=e.length,i=t.length,a=e[r-1],o=(1<<n.b)-1,s=-n.b;a||Y(0);for(var c=0,l=n.b,u=(r<<3)-8+Oi(a)-l,d=-1;u>s&&d<i;){var f=u>>3,p=(e[f]|e[f+1]<<8|e[f+2]<<16)>>(u&7);c=(c<<l|p)&o,t[++d]=n.s[c],u-=l=n.n[c]}(u!=s||d+1!=i)&&Y(0)},Bi=function(e,t,n){var r=6,i=t.length+3>>2,a=i<<1,o=i+a;zi(e.subarray(r,r+=e[0]|e[1]<<8),t.subarray(0,i),n),zi(e.subarray(r,r+=e[2]|e[3]<<8),t.subarray(i,a),n),zi(e.subarray(r,r+=e[4]|e[5]<<8),t.subarray(a,o),n),zi(e.subarray(r),t.subarray(o),n)},Vi=function(e,t,n){var r,i=t.b,a=e[i],o=a>>1&3;t.l=a&1;var s=a>>3|e[i+1]<<5|e[i+2]<<13,c=(i+=3)+s;if(o==1)return i>=e.length?void 0:(t.b=i+1,n?(Si(n,e[i],t.y,t.y+=s),n):Si(new J(s),e[i]));if(!(c>e.length)){if(o==0)return t.b=c,n?(n.set(e.subarray(i,c),t.y),t.y+=s,n):xi(e,i,c);if(o==2){var l=e[i],u=l&3,d=l>>2&3,f=l>>4,p=0,m=0;u<2?d&1?f|=e[++i]<<4|(d&2&&e[++i]<<12):f=l>>3:(m=d,d<2?(f|=(e[++i]&63)<<4,p=e[i]>>6|e[++i]<<2):d==2?(f|=e[++i]<<4|(e[++i]&3)<<12,p=e[i]>>2|e[++i]<<6):(f|=e[++i]<<4|(e[++i]&63)<<12,p=e[i]>>6|e[++i]<<2|e[++i]<<10)),++i;var h=n?n.subarray(t.y,t.y+t.m):new J(t.m),g=h.length-f;if(u==0)h.set(e.subarray(i,i+=f),g);else if(u==1)Si(h,e[i++],g);else{var _=t.h;if(u==2){var v=Ai(e,i);p+=i-(i=v[0]),t.h=_=v[1]}else _||Y(0);(m?Bi:zi)(e.subarray(i,i+=p),h.subarray(g),_)}var y=e[i++];if(y){y==255?y=(e[i++]|e[i++]<<8)+32512:y>127&&(y=y-128<<8|e[i++]);var b=e[i++];b&3&&Y(0);for(var x=[Mi,Ni,ji],S=2;S>-1;--S){var C=b>>(S<<1)+2&3;if(C==1){var w=new J([0,0,e[i++]]);x[S]={s:w.subarray(2,3),n:w.subarray(0,1),t:new vi(w.buffer,0,1),b:0}}else C==2?(r=ki(e,i,9-(S&1)),i=r[0],x[S]=r[1]):C==3&&(t.t||Y(0),x[S]=t.t[S])}var T=t.t=x,E=T[0],D=T[1],O=T[2],k=e[c-1];k||Y(0);var A=(c<<3)-8+Oi(k)-O.b,j=A>>3,M=0,ee=(e[j]|e[j+1]<<8)>>(A&7)&(1<<O.b)-1;j=(A-=D.b)>>3;var te=(e[j]|e[j+1]<<8)>>(A&7)&(1<<D.b)-1;j=(A-=E.b)>>3;var ne=(e[j]|e[j+1]<<8)>>(A&7)&(1<<E.b)-1;for(++y;--y;){var re=O.s[ee],ie=O.n[ee],ae=E.s[ne],oe=E.n[ne],se=D.s[te],ce=D.n[te];j=(A-=se)>>3;var le=1<<se,ue=le+((e[j]|e[j+1]<<8|e[j+2]<<16|e[j+3]<<24)>>>(A&7)&le-1);j=(A-=Li[ae])>>3;var de=Ri[ae]+((e[j]|e[j+1]<<8|e[j+2]<<16)>>(A&7)&(1<<Li[ae])-1);j=(A-=Fi[re])>>3;var fe=Ii[re]+((e[j]|e[j+1]<<8|e[j+2]<<16)>>(A&7)&(1<<Fi[re])-1);if(j=(A-=ie)>>3,ee=O.t[ee]+((e[j]|e[j+1]<<8)>>(A&7)&(1<<ie)-1),j=(A-=oe)>>3,ne=E.t[ne]+((e[j]|e[j+1]<<8)>>(A&7)&(1<<oe)-1),j=(A-=ce)>>3,te=D.t[te]+((e[j]|e[j+1]<<8)>>(A&7)&(1<<ce)-1),ue>3)t.o[2]=t.o[1],t.o[1]=t.o[0],t.o[0]=ue-=3;else{var pe=ue-(fe!=0);pe?(ue=pe==3?t.o[0]-1:t.o[pe],pe>1&&(t.o[2]=t.o[1]),t.o[1]=t.o[0],t.o[0]=ue):ue=t.o[0]}for(var S=0;S<fe;++S)h[M+S]=h[g+S];M+=fe,g+=fe;var me=M-ue;if(me<0){var he=-me,ge=t.e+me;he>de&&(he=de);for(var S=0;S<he;++S)h[M+S]=t.w[ge+S];M+=he,de-=he,me=0}for(var S=0;S<de;++S)h[M+S]=h[me+S];M+=de}if(M!=g)for(;g<h.length;)h[M++]=h[g++];else M=h.length;n?t.y+=M:h=xi(h,0,M)}else if(n){if(t.y+=f,g)for(var S=0;S<f;++S)h[S]=h[g+S]}else g&&(h=xi(h,g));return t.b=c,h}Y(2)}},Hi=function(e,t){if(e.length==1)return e[0];for(var n=new J(t),r=0,i=0;r<e.length;++r){var a=e[r];n.set(a,i),i+=a.length}return n};function Ui(e,t){for(var n=[],r=+!t,i=0,a=0;e.length;){var o=Di(e,r||t);if(typeof o==`object`){for(r?(t=null,o.w.length==o.u&&(n.push(t=o.w),a+=o.u)):(n.push(t),o.e=0);!o.l;){var s=Vi(e,o,t);s||Y(5),t?o.e=o.y:(n.push(s),a+=s.length,Ci(o.w,0,s.length),o.w.set(s,o.w.length-s.length))}i=o.b+o.c*4}else i=o;e=e.subarray(i)}return Hi(n,a)}var Wi=class{constructor(){this.buf=new Uint8Array(256),this.view=new DataView(this.buf.buffer),this.len=0}ensure(e){if(this.len+e<=this.buf.length)return;let t=this.buf.length*2;for(;t<this.len+e;)t*=2;let n=new Uint8Array(t);n.set(this.buf.subarray(0,this.len)),this.buf=n,this.view=new DataView(n.buffer)}get length(){return this.len}u8(e){this.ensure(1),this.buf[this.len++]=e&255}i8(e){this.ensure(1),this.view.setInt8(this.len,e),this.len+=1}bytes(e){let t=e instanceof Uint8Array?e:Uint8Array.from(e);this.ensure(t.length),this.buf.set(t,this.len),this.len+=t.length}u16be(e){this.ensure(2),this.view.setUint16(this.len,e,!1),this.len+=2}u32be(e){this.ensure(4),this.view.setUint32(this.len,e,!1),this.len+=4}u64be(e){this.ensure(8),this.view.setBigUint64(this.len,e,!1),this.len+=8}i16be(e){this.ensure(2),this.view.setInt16(this.len,e,!1),this.len+=2}i32be(e){this.ensure(4),this.view.setInt32(this.len,e,!1),this.len+=4}i64be(e){this.ensure(8),this.view.setBigInt64(this.len,e,!1),this.len+=8}f32be(e){this.ensure(4),this.view.setFloat32(this.len,e,!1),this.len+=4}f64be(e){this.ensure(8),this.view.setFloat64(this.len,e,!1),this.len+=8}u16le(e){this.ensure(2),this.view.setUint16(this.len,e,!0),this.len+=2}u32le(e){this.ensure(4),this.view.setUint32(this.len,e,!0),this.len+=4}u64le(e){this.ensure(8),this.view.setBigUint64(this.len,e,!0),this.len+=8}i16le(e){this.ensure(2),this.view.setInt16(this.len,e,!0),this.len+=2}i32le(e){this.ensure(4),this.view.setInt32(this.len,e,!0),this.len+=4}i64le(e){this.ensure(8),this.view.setBigInt64(this.len,e,!0),this.len+=8}f32le(e){this.ensure(4),this.view.setFloat32(this.len,e,!0),this.len+=4}f64le(e){this.ensure(8),this.view.setFloat64(this.len,e,!0),this.len+=8}toBytes(){return this.buf.slice(0,this.len)}},Gi=class{constructor(e,t=0){this.data=e,this.view=new DataView(e.buffer,e.byteOffset,e.byteLength),this.offset=t}get remaining(){return this.data.length-this.offset}need(e){if(this.offset+e>this.data.length)throw RangeError(`brdb: unexpected end of data (need ${e} bytes at offset ${this.offset} of ${this.data.length})`)}peek(){return this.need(1),this.data[this.offset]}u8(){return this.need(1),this.data[this.offset++]}i8(){return this.need(1),this.view.getInt8(this.offset++)}bytes(e){this.need(e);let t=this.data.subarray(this.offset,this.offset+e);return this.offset+=e,t}u16be(){this.need(2);let e=this.view.getUint16(this.offset,!1);return this.offset+=2,e}u32be(){this.need(4);let e=this.view.getUint32(this.offset,!1);return this.offset+=4,e}u64be(){this.need(8);let e=this.view.getBigUint64(this.offset,!1);return this.offset+=8,e}i16be(){this.need(2);let e=this.view.getInt16(this.offset,!1);return this.offset+=2,e}i32be(){this.need(4);let e=this.view.getInt32(this.offset,!1);return this.offset+=4,e}i64be(){this.need(8);let e=this.view.getBigInt64(this.offset,!1);return this.offset+=8,e}f32be(){this.need(4);let e=this.view.getFloat32(this.offset,!1);return this.offset+=4,e}f64be(){this.need(8);let e=this.view.getFloat64(this.offset,!1);return this.offset+=8,e}u16le(){this.need(2);let e=this.view.getUint16(this.offset,!0);return this.offset+=2,e}u32le(){this.need(4);let e=this.view.getUint32(this.offset,!0);return this.offset+=4,e}u64le(){this.need(8);let e=this.view.getBigUint64(this.offset,!0);return this.offset+=8,e}i16le(){this.need(2);let e=this.view.getInt16(this.offset,!0);return this.offset+=2,e}i32le(){this.need(4);let e=this.view.getInt32(this.offset,!0);return this.offset+=4,e}i64le(){this.need(8);let e=this.view.getBigInt64(this.offset,!0);return this.offset+=8,e}f32le(){this.need(4);let e=this.view.getFloat32(this.offset,!0);return this.offset+=4,e}f64le(){this.need(8);let e=this.view.getFloat64(this.offset,!0);return this.offset+=8,e}};function Ki(e,t={}){let n=e.map(([e,t])=>({parentId:-1,name:e,node:t})),r=[],i=[],a=[],o=[],s=[],c=[],l=[],u=[],d=[],f=[],p=new Map;for(let e=0;e<n.length;e++){let{parentId:m,name:h,node:g}=n[e];if(g.type===`folder`){let e=r.length;r.push(m),i.push(h);for(let[t,r]of g.children)n.push({parentId:e,name:t,node:r})}else{a.push(m),s.push(h);let e=g.content,n;if(e.length===0)n=-1;else{let r=gi(e),i=ni(r),a=p.get(i);if(a!==void 0)n=a;else{n=d.length,p.set(i,n),d.push(r),l.push(e.length);let a=t.compress?t.compress(e):null;a&&a.length<e.length?(c.push(1),u.push(a.length),f.push(a)):(c.push(0),u.push(e.length),f.push(e))}}o.push(n)}}let m=new TextEncoder,h=new Wi;h.i32le(i.length),h.i32le(s.length),h.i32le(d.length);for(let e of r)h.i32le(e);let g=i.map(e=>m.encode(e));for(let e of g)h.u16le(e.length);for(let e of g)h.bytes(e);for(let e of a)h.i32le(e);for(let e of o)h.i32le(e);let _=s.map(e=>m.encode(e));for(let e of _)h.u16le(e.length);for(let e of _)h.bytes(e);for(let e of c)h.u8(e);for(let e of l)h.i32le(e);for(let e of u)h.i32le(e);for(let e of d)h.bytes(e);let v=h.toBytes(),y=new Wi;y.bytes([66,82,90]),y.u8(0),y.u8(0),y.i32le(v.length),y.i32le(v.length),y.bytes(gi(v)),y.bytes(v);for(let e of f)y.bytes(e);return y.toBytes()}var qi=class e{constructor(e,t,n,r,i,a,o){this.folderParentIds=e,this.folderNames=t,this.fileParentIds=n,this.fileContentIds=r,this.fileNames=i,this.blobs=a,this.blobData=o,this.folderLut=new Map,this.fileLut=new Map,this.pathCache=null;for(let n=0;n<t.length;n++)this.folderLut.set(`${e[n]} ${t[n]}`,n);for(let e=0;e<i.length;e++)this.fileLut.set(`${n[e]} ${i[e]}`,e)}static from(t){let n=new Gi(t),r=n.bytes(3);if(r[0]!==66||r[1]!==82||r[2]!==90)throw Error(`brdb: invalid .brz magic`);let i=n.u8();if(i!==0)throw Error(`brdb: unsupported .brz version ${i}`);let a=n.u8();if(a!==0&&a!==1)throw Error(`brdb: invalid index compression method ${a}`);let o=n.i32le(),s=n.i32le();if(o<0||s<0)throw Error(`brdb: negative index size`);let c=n.bytes(32),l;if(a===0)l=n.bytes(o);else if(l=Ui(n.bytes(s),new Uint8Array(o)),l.length!==o)throw Error(`brdb: index decompressed to the wrong size`);if(ni(gi(l))!==ni(c))throw Error(`brdb: index hash mismatch`);let u=n.bytes(n.remaining),d=new Gi(l),f=d.i32le(),p=d.i32le(),m=d.i32le();if(f<0||p<0||m<0)throw Error(`brdb: negative index count`);let h=(e,t)=>Array.from({length:e},t),g=h(f,()=>d.i32le()),_=h(f,()=>d.u16le()),v=new TextDecoder(`utf-8`,{fatal:!0}),y=_.map(e=>v.decode(d.bytes(e))),b=h(p,()=>d.i32le()),x=h(p,()=>d.i32le()),S=h(p,()=>d.u16le()).map(e=>v.decode(d.bytes(e))),C=h(m,()=>d.u8()),w=h(m,()=>d.i32le()),T=h(m,()=>d.i32le()),E=h(m,()=>d.bytes(32).slice());if(d.remaining!==0)throw Error(`brdb: trailing bytes in index`);let D=[],O=0;for(let e=0;e<m;e++){if(w[e]<0||T[e]<0)throw Error(`brdb: negative blob size`);let t=C[e]===0?w[e]:T[e];D.push({method:C[e],sizeUncompressed:w[e],sizeCompressed:T[e],hash:E[e],start:O,end:O+t}),O+=t}return new e(g,y,b,x,S,D,u)}findFolder(e,t){return this.folderLut.get(`${e} ${t}`)??null}findFile(e,t){let n=this.fileLut.get(`${e} ${t}`);return n===void 0?null:{contentId:this.fileContentIds[n]}}folderIdOf(e){if(e===``)return-1;let t=-1;for(let n of e.split(`/`)){let e=this.findFolder(t,n);if(e===null)return null;t=e}return t}childFolders(e){let t=this.folderIdOf(e);if(t===null)return[];let n=[];for(let e=0;e<this.folderNames.length;e++)this.folderParentIds[e]===t&&n.push(this.folderNames[e]);return n}childFiles(e){let t=this.folderIdOf(e);if(t===null)return[];let n=[];for(let e=0;e<this.fileNames.length;e++)this.fileParentIds[e]===t&&n.push(this.fileNames[e]);return n}blobMethod(e){return this.blob(e).method}blob(e){if(e<0||e>=this.blobs.length)throw Error(`brdb: blob ${e} not found`);return this.blobs[e]}readBlob(e){let t=this.blob(e),n=this.blobData.subarray(t.start,t.end),r;if(t.method===0)r=n;else{if(n.length!==t.sizeCompressed)throw Error(`brdb: blob compressed size mismatch`);r=Ui(n,new Uint8Array(t.sizeUncompressed))}if(r.length!==t.sizeUncompressed)throw Error(`brdb: blob uncompressed size mismatch`);if(ni(gi(r))!==ni(t.hash))throw Error(`brdb: blob hash mismatch`);return r}readFile(e){if(e.startsWith(`/`))throw Error(`brdb: absolute paths not allowed`);let t=e.split(`/`),n=-1;for(let r=0;r<t.length-1;r++){let i=this.findFolder(n,t[r]);if(i===null)throw Error(`brdb: folder not found: ${t[r]} in ${e}`);n=i}let r=this.findFile(n,t[t.length-1]);if(!r)throw Error(`brdb: file not found: ${e}`);return r.contentId===-1?new Uint8Array:this.readBlob(r.contentId)}findFileByPath(e){if(e.startsWith(`/`))throw Error(`brdb: absolute paths not allowed`);let t=e.lastIndexOf(`/`),n=this.folderIdOf(t===-1?``:e.slice(0,t));if(n===null)return null;let r=this.findFile(n,e.slice(t+1));return r===null?null:{contentId:r.contentId,createdAt:0}}findFileByPathAtRevision(e,t){return this.findFileByPath(e)}listPaths(){if(this.pathCache)return this.pathCache;let e=[];for(let t=0;t<this.folderNames.length;t++){let n=this.folderParentIds[t];e.push(n===-1?this.folderNames[t]:`${e[n]}/${this.folderNames[t]}`)}return this.pathCache=this.fileNames.map((t,n)=>{let r=this.fileParentIds[n];return r===-1?t:`${e[r]}/${t}`}),this.pathCache}},Ji=`B_1x1_Reroute_Node.B_1x1_Gate_AND.B_1x1_Gate_OR.B_1x1_Gate_XOR.B_1x1_Gate_NAND.B_1x1_Gate_NOR.B_1x1_NOT_Gate.B_1x1_Gate_AND_Bitwise.B_1x1_Gate_OR_Bitwise.B_1x1_Gate_XOR_Bitwise.B_1x1_Gate_NAND_Bitwise.B_1x1_Gate_NOR_Bitwise.B_1x1_Gate_NOT_Bitwise.B_1x1_Gate_ShiftLeft_Bitwise.B_1x1_Gate_ShiftRight_Bitwise.B_1x1_Gate_Add.B_1x1_Gate_Subtract.B_1x1_Gate_Multiply.B_1x1_Gate_ModFloored.B_1x1_Gate_Mod.B_1x1_Gate_Divide.B_1x1_Gate_Equal.B_1x1_Gate_NotEqual.B_1x1_Gate_LessThan.B_1x1_Gate_LessThanEqual.B_1x1_Gate_GreaterThan.B_1x1_Gate_GreaterThanEqual.B_1x1_Gate_Ceiling.B_1x1_Gate_Floor.B_1x1_Gate_Constant.B_1x1_Gate_Blend.B_1x1_Gate_EdgeDetector.B_1x1_Gate_Timer.B_1x1_Gate_Timer_Tick.B_1x1_Microchip.B_1x1_Gate_MicrochipInput.B_1x1_Gate_MicrochipOutput.B_2x2_Overhang.B_1x4_Brick_Side.B_1x2_Overhang.B_1x1_Brick_Side_Lip.B_1x1_Brick_Side.B_Jar.B_Chalice.B_Cauldron.B_Small_Flower.B_Pine_Tree.B_Leaf_Bush.B_Hedge_1x4.B_Hedge_1x2.B_Hedge_1x1_Corner.B_Hedge_1x1.B_Flower.B_Fern.B_Branch.B_2x4_Door_Frame.B_Turkey_Leg.B_Turkey_Body.B_Swirl_Plate.B_Sausage.B_Pumpkin_Carved.B_Pumpkin.B_Ladder.B_Inverted_Cone.B_Handle.B_Gravestone.B_Frog_Small.B_Frog.B_Flame.B_Coffin_Lid.B_Coffin.B_BoneStraight.B_Bone.B_1x1_Coin_Diagonal.B_1x1_Coin.B_Spoon.B_Fork.B_2x2_Corner.B_2x2f_Plate_Center_Inv.B_2x2f_Plate_Center.B_1x2f_Plate_Center_Inv.B_4x4_Round.B_2x2_Round.B_2x2F_Round.B_2x_Octo_T_Inv.B_2x_Octo_T.B_2x2F_Octo_Converter_Inv.B_2x2F_Octo_Converter.B_2x2F_Octo.B_8x8_Lattice_Plate.B_1x2_MetalIngot.B_1x1f_Tile_Corner.B_1x1f_Inverse_Tile_Corner.B_Rook.B_Queen.B_Pawn.B_Knight.B_King.B_Bishop.B_1x2f_Plate_Center.B_2x2_Cone.B_1x1_Round.B_1x1_Cone.B_1x1F_Round.B_2x_Octo_Cone.B_2x_Octo_90Deg_Inv.B_2x_Octo_90Deg.B_2x_Octo.B_1x_Octo_T_Inv.B_1x_Octo_T.B_1x_Octo_90Deg_Inv.B_1x_Octo_90Deg.B_1x_Octo.B_1x1F_Octo.B_2x2_Slipper.B_2x1_Slipper.B_Joint_Wheel_Micro.B_Joint_Wheel.B_Joint_Socket_Micro.B_Joint_Servo_Micro.B_Joint_Servo.B_Joint_Motor_Micro.B_Joint_Motor.B_Joint_Coupler.B_Joint_Bearing_Micro.B_Joint_Bearing.B_1x1_SoundEmitter.B_1x1_Gate_Teleport.B_1x1_Gate_RelativeTeleport.B_1x1_EntityGate_SetVelocity.B_1x1_EntityGate_SetLocationAndRotation.B_1x1_EntityGate_SetLocation.B_1x1_EntityGate_ReadBrickGrid.B_1x1_EntityGate_PlayAudioAt.B_1x1_EntityGate_AddVelocity.B_1x1_EntityGate_AddLocationAndRotation.B_1x1_CharacterGate_SetGravityDirection.B_Vehicle_Engine.B_Switch_Test.B_SpawnPoint.B_Seat.B_GoalPoint.B_DestinationPoint.B_CheckPoint.B_Button_Square.B_Button.B_Bot_Spawn_Point.B_2x2F_Target.B_2x2F_Speaker.B_1x1_Gate_WheelEngineSlim.B_1x1F_Speaker`.split(`.`),Yi=`PB_DefaultBrick.PB_DefaultStudded.PB_DefaultRampInnerCornerInverted.PB_DefaultRampCrestEnd.PB_DefaultRampCrestCorner.PB_DefaultRampCrest.PB_DefaultRamp.PB_PicketFence.BP_LatticeThin.PB_DefaultWedge.PB_DefaultTile.PB_DefaultSmoothTile.PB_DefaultSideWedge.PB_DefaultRampInverted.PB_DefaultRampInnerCorner.PB_DefaultRampCornerInverted.PB_DefaultRampCorner.PB_DefaultPole.PB_DefaultMicroWedgeTriangleCorner.PB_DefaultMicroWedgeOuterCorner.PB_DefaultMicroWedgeInnerCorner.PB_DefaultMicroWedgeHalfOuterCorner.PB_DefaultMicroWedgeHalfInnerCornerInverted.PB_DefaultMicroWedgeHalfInnerCorner.PB_DefaultMicroWedgeCorner.PB_DefaultMicroWedge.PB_DefaultMicroRamp.PB_DefaultMicroBrick.PB_DefaultArch.BP_SquarePlate.BP_SpikePlate.PB_Spike.PB_SliderJoint.PB_ServoSliderJoint.PB_MotorSliderJoint.BP_RoundPlate.PB_RoundedCap.PB_Baguette`.split(`.`),Xi=new Set(Ji),Zi=new Set(Yi);function Qi(e){return Zi.has(e)?!0:Xi.has(e)?!1:e.startsWith(`PB_`)||e.startsWith(`BP_`)}var $i=new Map([[`BrickComponentType_Internal_CharacterZoneEvent_Entered`,`BrickComponentData_Internal_CharacterZoneEvent`],[`BrickComponentType_Internal_CharacterZoneEvent_Left`,`BrickComponentData_Internal_CharacterZoneEvent`],[`BrickComponentType_Internal_EntityZoneEvent_Entered`,`BrickComponentData_Internal_EntityZoneEvent`],[`BrickComponentType_Internal_EntityZoneEvent_Left`,`BrickComponentData_Internal_EntityZoneEvent`],[`BrickComponentType_Internal_MicrochipInput`,`BrickComponentData_Internal_MicrochipInput`],[`BrickComponentType_Internal_MicrochipOutput`,`BrickComponentData_Internal_MicrochipOutput`],[`BrickComponentType_Internal_ProjectileZoneEvent_Entered`,`BrickComponentData_Internal_ProjectileZoneEvent`],[`BrickComponentType_Internal_ProjectileZoneEvent_Left`,`BrickComponentData_Internal_ProjectileZoneEvent`],[`BrickComponentType_Internal_ReadBrickGrid`,`BrickComponentData_Internal_ReadBrickGrid`],[`BrickComponentType_Internal_TeleportDestination`,`BrickComponentData_TeleportDestination`],[`BrickComponentType_Internal_ZoneEvent_BrickChanged`,`BrickComponentData_Internal_ZoneEvent`],[`BrickComponentType_Internal_ZoneEvent_BrickRemoved`,`BrickComponentData_Internal_ZoneEvent`],[`BrickComponentType_PrefabSpawn`,`BrickComponentData_PrefabSpawn`],[`BrickComponentType_WireGraphPseudo_ArrayVar`,`BrickComponentData_WireGraphPseudo_ArrayVar`],[`BrickComponentType_WireGraphPseudo_BufferSeconds`,`BrickComponentData_WireGraphPseudo_BufferSeconds`],[`BrickComponentType_WireGraphPseudo_BufferTicks`,`BrickComponentData_WireGraphPseudo_BufferTicks`],[`BrickComponentType_WireGraphPseudo_Dampen`,`BrickComponentData_WireGraphPseudo_Dampen`],[`BrickComponentType_WireGraphPseudo_QueueSeconds`,`BrickComponentData_WireGraphPseudo_QueueSeconds`],[`BrickComponentType_WireGraphPseudo_QueueTicks`,`BrickComponentData_WireGraphPseudo_QueueTicks`],[`BrickComponentType_WireGraphPseudo_Timer`,`BrickComponentData_WireGraphPseudo_Timer`],[`BrickComponentType_WireGraphPseudo_Tween`,`BrickComponentData_WireGraphPseudo_Tween`],[`BrickComponentType_WireGraphPseudo_Var`,`BrickComponentData_WireGraphPseudo_Var`],[`BrickComponentType_WireGraph_AudioReference`,`BrickComponentData_WireGraph_AudioReference`],[`BrickComponentType_WireGraph_BrickAssetReference`,`BrickComponentData_WireGraph_BrickAssetReference`],[`BrickComponentType_WireGraph_DeltaTime`,`BrickComponentData_WireGraph_DeltaTime`],[`BrickComponentType_WireGraph_EntityTypeReference`,`BrickComponentData_WireGraph_EntityTypeReference`],[`BrickComponentType_WireGraph_Exec_ArrayVar_Append`,`BrickComponentData_WireGraph_Exec_ArrayVar_DualRef`],[`BrickComponentType_WireGraph_Exec_ArrayVar_Average`,`BrickComponentData_WireGraph_Exec_ArrayVar_Average`],[`BrickComponentType_WireGraph_Exec_ArrayVar_Clear`,`BrickComponentData_WireGraph_Exec_ArrayVar_Base`],[`BrickComponentType_WireGraph_Exec_ArrayVar_CopyFrom`,`BrickComponentData_WireGraph_Exec_ArrayVar_DualRef`],[`BrickComponentType_WireGraph_Exec_ArrayVar_Fill`,`BrickComponentData_WireGraph_Exec_ArrayVar_Push`],[`BrickComponentType_WireGraph_Exec_ArrayVar_Find`,`BrickComponentData_WireGraph_Exec_ArrayVar_Find`],[`BrickComponentType_WireGraph_Exec_ArrayVar_Get`,`BrickComponentData_WireGraph_Exec_ArrayVar_Get`],[`BrickComponentType_WireGraph_Exec_ArrayVar_GetLength`,`BrickComponentData_WireGraph_Exec_ArrayVar_GetLength`],[`BrickComponentType_WireGraph_Exec_ArrayVar_Insert`,`BrickComponentData_WireGraph_Exec_ArrayVar_Insert`],[`BrickComponentType_WireGraph_Exec_ArrayVar_Max`,`BrickComponentData_WireGraph_Exec_ArrayVar_MinMax`],[`BrickComponentType_WireGraph_Exec_ArrayVar_Min`,`BrickComponentData_WireGraph_Exec_ArrayVar_MinMax`],[`BrickComponentType_WireGraph_Exec_ArrayVar_Pop`,`BrickComponentData_WireGraph_Exec_ArrayVar_Pop`],[`BrickComponentType_WireGraph_Exec_ArrayVar_Push`,`BrickComponentData_WireGraph_Exec_ArrayVar_Push`],[`BrickComponentType_WireGraph_Exec_ArrayVar_RemoveAtIndex`,`BrickComponentData_WireGraph_Exec_ArrayVar_RemoveAtIndex`],[`BrickComponentType_WireGraph_Exec_ArrayVar_Resize`,`BrickComponentData_WireGraph_Exec_ArrayVar_Resize`],[`BrickComponentType_WireGraph_Exec_ArrayVar_Reverse`,`BrickComponentData_WireGraph_Exec_ArrayVar_Base`],[`BrickComponentType_WireGraph_Exec_ArrayVar_SetAtIndex`,`BrickComponentData_WireGraph_Exec_ArrayVar_ElementOp`],[`BrickComponentType_WireGraph_Exec_ArrayVar_Shuffle`,`BrickComponentData_WireGraph_Exec_ArrayVar_Base`],[`BrickComponentType_WireGraph_Exec_ArrayVar_Slice`,`BrickComponentData_WireGraph_Exec_ArrayVar_Slice`],[`BrickComponentType_WireGraph_Exec_ArrayVar_Sort`,`BrickComponentData_WireGraph_Exec_ArrayVar_Sort`],[`BrickComponentType_WireGraph_Exec_ArrayVar_Sum`,`BrickComponentData_WireGraph_Exec_ArrayVar_Sum`],[`BrickComponentType_WireGraph_Exec_ArrayVar_Swap`,`BrickComponentData_WireGraph_Exec_ArrayVar_Swap`],[`BrickComponentType_WireGraph_Exec_Branch`,`BrickComponentData_WireGraph_ExecBranch`],[`BrickComponentType_WireGraph_Exec_Character_AddInventoryBrick`,`BrickComponentData_WireGraph_Exec_Character_AddInventoryBrick`],[`BrickComponentType_WireGraph_Exec_Character_AddInventoryEntity`,`BrickComponentData_WireGraph_Exec_Character_AddInventoryEntity`],[`BrickComponentType_WireGraph_Exec_Character_AddInventoryEntry`,`BrickComponentData_WireGraph_Exec_Character_AddInventoryEntry`],[`BrickComponentType_WireGraph_Exec_Character_AddInventoryItem`,`BrickComponentData_WireGraph_Exec_Character_AddInventoryItem`],[`BrickComponentType_WireGraph_Exec_Character_GetAim`,`BrickComponentData_WireGraph_Exec_Character_GetAim`],[`BrickComponentType_WireGraph_Exec_Character_GetDamage`,`BrickComponentData_WireGraph_Exec_Character_GetDamage`],[`BrickComponentType_WireGraph_Exec_Character_GetFromController`,`BrickComponentData_WireGraph_Exec_Character_GetFromController`],[`BrickComponentType_WireGraph_Exec_Character_IncDamage`,`BrickComponentData_WireGraph_Exec_Character_IncDamage`],[`BrickComponentType_WireGraph_Exec_Character_SetDamage`,`BrickComponentData_WireGraph_Exec_Character_SetDamage`],[`BrickComponentType_WireGraph_Exec_Character_SetInventoryBrick`,`BrickComponentData_WireGraph_Exec_Character_SetInventoryBrick`],[`BrickComponentType_WireGraph_Exec_Character_SetInventoryEntity`,`BrickComponentData_WireGraph_Exec_Character_SetInventoryEntity`],[`BrickComponentType_WireGraph_Exec_Character_SetInventoryEntry`,`BrickComponentData_WireGraph_Exec_Character_SetInventoryEntry`],[`BrickComponentType_WireGraph_Exec_Character_SetInventoryItem`,`BrickComponentData_WireGraph_Exec_Character_SetInventoryItem`],[`BrickComponentType_WireGraph_Exec_Character_SetTempPermission`,`BrickComponentData_WireGraph_Exec_Character_SetTempPermission`],[`BrickComponentType_WireGraph_Exec_Character_ShowHint`,`BrickComponentData_WireGraph_Exec_Character_ShowHint`],[`BrickComponentType_WireGraph_Exec_ChatCommand`,`BrickComponentData_WireGraph_Exec_ChatCommand`],[`BrickComponentType_WireGraph_Exec_Controller_DisplayText`,`BrickComponentData_WireGraph_Exec_Controller_DisplayText`],[`BrickComponentType_WireGraph_Exec_Controller_GetDisplayName`,`BrickComponentData_WireGraph_Exec_Controller_GetDisplayName`],[`BrickComponentType_WireGraph_Exec_Controller_GetFromEntity`,`BrickComponentData_WireGraph_Exec_Controller_GetFromEntity`],[`BrickComponentType_WireGraph_Exec_Controller_GetUserId`,`BrickComponentData_WireGraph_Exec_Controller_GetUserId`],[`BrickComponentType_WireGraph_Exec_Controller_GetUserName`,`BrickComponentData_WireGraph_Exec_Controller_GetUserName`],[`BrickComponentType_WireGraph_Exec_Controller_HasPermission`,`BrickComponentData_WireGraph_Exec_Controller_HasPermission`],[`BrickComponentType_WireGraph_Exec_Controller_HasRole`,`BrickComponentData_WireGraph_Exec_Controller_HasRole`],[`BrickComponentType_WireGraph_Exec_Controller_IsTrustedByBrickOwner`,`BrickComponentData_WireGraph_Exec_Controller_IsTrustedByBrickOwner`],[`BrickComponentType_WireGraph_Exec_Controller_SetCanRespawn`,`BrickComponentData_WireGraph_Exec_Controller_SetCanRespawn`],[`BrickComponentType_WireGraph_Exec_Controller_ShowChatMessage`,`BrickComponentData_WireGraph_Exec_Controller_ShowChatMessage`],[`BrickComponentType_WireGraph_Exec_Controller_ShowStatusMessage`,`BrickComponentData_WireGraph_Exec_Controller_ShowStatusMessage`],[`BrickComponentType_WireGraph_Exec_Cycle`,`BrickComponentData_WireGraph_Exec_Cycle`],[`BrickComponentType_WireGraph_Exec_Entity_AddLocationRotation`,`BrickComponentData_WireGraph_Exec_Entity_AddLocationRotation`],[`BrickComponentType_WireGraph_Exec_Entity_AddVelocity`,`BrickComponentData_WireGraph_Exec_Entity_AddVelocity`],[`BrickComponentType_WireGraph_Exec_Entity_GetAngularVelocity`,`BrickComponentData_WireGraph_Exec_Entity_GetAngularVelocity`],[`BrickComponentType_WireGraph_Exec_Entity_GetLinearVelocity`,`BrickComponentData_WireGraph_Exec_Entity_GetLinearVelocity`],[`BrickComponentType_WireGraph_Exec_Entity_GetLocation`,`BrickComponentData_WireGraph_Exec_Entity_GetLocation`],[`BrickComponentType_WireGraph_Exec_Entity_GetLocationRotation`,`BrickComponentData_WireGraph_Exec_Entity_GetLocationRotation`],[`BrickComponentType_WireGraph_Exec_Entity_GetRotation`,`BrickComponentData_WireGraph_Exec_Entity_GetRotation`],[`BrickComponentType_WireGraph_Exec_Entity_GetTag`,`BrickComponentData_WireGraph_Exec_Entity_GetTag`],[`BrickComponentType_WireGraph_Exec_Entity_GetVelocity`,`BrickComponentData_WireGraph_Exec_Entity_GetVelocity`],[`BrickComponentType_WireGraph_Exec_Entity_RelativeTeleport`,`BrickComponentData_WireGraph_Exec_Entity_RelativeTeleport`],[`BrickComponentType_WireGraph_Exec_Entity_SetAngularVelocity`,`BrickComponentData_WireGraph_Exec_Entity_SetAngularVelocity`],[`BrickComponentType_WireGraph_Exec_Entity_SetFrozen`,`BrickComponentData_WireGraph_Exec_Entity_SetFrozen`],[`BrickComponentType_WireGraph_Exec_Entity_SetGravityDirection`,`BrickComponentData_WireGraph_Exec_Entity_SetGravityDirection`],[`BrickComponentType_WireGraph_Exec_Entity_SetLinearVelocity`,`BrickComponentData_WireGraph_Exec_Entity_SetLinearVelocity`],[`BrickComponentType_WireGraph_Exec_Entity_SetLocation`,`BrickComponentData_WireGraph_Exec_Entity_SetLocation`],[`BrickComponentType_WireGraph_Exec_Entity_SetLocationRotation`,`BrickComponentData_WireGraph_Exec_Entity_SetLocationRotation`],[`BrickComponentType_WireGraph_Exec_Entity_SetRotation`,`BrickComponentData_WireGraph_Exec_Entity_SetRotation`],[`BrickComponentType_WireGraph_Exec_Entity_SetTag`,`BrickComponentData_WireGraph_Exec_Entity_SetTag`],[`BrickComponentType_WireGraph_Exec_Entity_SetVelocity`,`BrickComponentData_WireGraph_Exec_Entity_SetVelocity`],[`BrickComponentType_WireGraph_Exec_Entity_Teleport`,`BrickComponentData_WireGraph_Exec_Entity_Teleport`],[`BrickComponentType_WireGraph_Exec_Gamemode_BroadcastChatMessage`,`BrickComponentData_WireGraph_Exec_Gamemode_BroadcastChatMessage`],[`BrickComponentType_WireGraph_Exec_Gamemode_BroadcastStatusMessage`,`BrickComponentData_WireGraph_Exec_Gamemode_BroadcastStatusMessage`],[`BrickComponentType_WireGraph_Exec_Gamemode_FillArrayFromPlayers`,`BrickComponentData_WireGraph_Exec_ArrayVar_Base`],[`BrickComponentType_WireGraph_Exec_Gamemode_FillArrayFromTeamMembers`,`BrickComponentData_WireGraph_Exec_Gamemode_FillArrayFromTeamMembers`],[`BrickComponentType_WireGraph_Exec_Gamemode_GetCurrentRound`,`BrickComponentData_WireGraph_Exec_Gamemode_GetCurrentRound`],[`BrickComponentType_WireGraph_Exec_Gamemode_GetLeaderboardValue`,`BrickComponentData_WireGraph_Exec_Gamemode_GetLeaderboardValue`],[`BrickComponentType_WireGraph_Exec_Gamemode_GetTeam`,`BrickComponentData_WireGraph_Exec_Gamemode_GetTeam`],[`BrickComponentType_WireGraph_Exec_Gamemode_GetTeamByName`,`BrickComponentData_WireGraph_Exec_Gamemode_GetTeamByName`],[`BrickComponentType_WireGraph_Exec_Gamemode_GetTeamLeaderboardValue`,`BrickComponentData_WireGraph_Exec_Gamemode_GetTeamLeaderboardValue`],[`BrickComponentType_WireGraph_Exec_Gamemode_GetTeamName`,`BrickComponentData_WireGraph_Exec_Gamemode_GetTeamName`],[`BrickComponentType_WireGraph_Exec_Gamemode_IncrementLeaderboardValue`,`BrickComponentData_WireGraph_Exec_Gamemode_LeaderboardValue`],[`BrickComponentType_WireGraph_Exec_Gamemode_IncrementTeamLeaderboardValue`,`BrickComponentData_WireGraph_Exec_Gamemode_TeamLeaderboardValue`],[`BrickComponentType_WireGraph_Exec_Gamemode_PlayerWins`,`BrickComponentData_WireGraph_Exec_Gamemode_PlayerWins`],[`BrickComponentType_WireGraph_Exec_Gamemode_SetLeaderboardValue`,`BrickComponentData_WireGraph_Exec_Gamemode_LeaderboardValue`],[`BrickComponentType_WireGraph_Exec_Gamemode_SetTeam`,`BrickComponentData_WireGraph_Exec_Gamemode_SetTeam`],[`BrickComponentType_WireGraph_Exec_Gamemode_SetTeamLeaderboardValue`,`BrickComponentData_WireGraph_Exec_Gamemode_TeamLeaderboardValue`],[`BrickComponentType_WireGraph_Exec_Gamemode_SetTeamPinned`,`BrickComponentData_WireGraph_Exec_Gamemode_SetTeamPinned`],[`BrickComponentType_WireGraph_Exec_Gamemode_TeamWins`,`BrickComponentData_WireGraph_Exec_Gamemode_TeamWins`],[`BrickComponentType_WireGraph_Exec_PlayGlobalAudio`,`BrickComponentData_WireGraph_Exec_PlayGlobalAudio`],[`BrickComponentType_WireGraph_Exec_PrefabSpawner`,`BrickComponentData_WireGraph_Exec_PrefabSpawner`],[`BrickComponentType_WireGraph_Exec_PrintToConsole`,`BrickComponentData_WireGraph_Exec_PrintToConsole`],[`BrickComponentType_WireGraph_Exec_Random`,`BrickComponentData_WireGraph_Exec_Random`],[`BrickComponentType_WireGraph_Exec_Sweep`,`BrickComponentData_WireGraph_Exec_Sweep`],[`BrickComponentType_WireGraph_Exec_Toggle`,`BrickComponentData_WireGraph_Exec_Toggle`],[`BrickComponentType_WireGraph_Exec_Union`,`BrickComponentData_WireGraph_ExecUnion`],[`BrickComponentType_WireGraph_Exec_Var_Get`,`BrickComponentData_WireGraph_Exec_Var_Get`],[`BrickComponentType_WireGraph_Exec_Var_Increment`,`BrickComponentData_WireGraph_Exec_Var_EditOrGet`],[`BrickComponentType_WireGraph_Exec_Var_Set`,`BrickComponentData_WireGraph_Exec_Var_EditOrGet`],[`BrickComponentType_WireGraph_Expr_BitwiseAND`,`BrickComponentData_WireGraph_Expr_IntInt_Int`],[`BrickComponentType_WireGraph_Expr_BitwiseBitCount`,`BrickComponentData_WireGraph_Expr_Int_Int`],[`BrickComponentType_WireGraph_Expr_BitwiseNAND`,`BrickComponentData_WireGraph_Expr_IntInt_Int`],[`BrickComponentType_WireGraph_Expr_BitwiseNOR`,`BrickComponentData_WireGraph_Expr_IntInt_Int`],[`BrickComponentType_WireGraph_Expr_BitwiseNOT`,`BrickComponentData_WireGraph_Expr_Int_Int`],[`BrickComponentType_WireGraph_Expr_BitwiseOR`,`BrickComponentData_WireGraph_Expr_IntInt_Int`],[`BrickComponentType_WireGraph_Expr_BitwiseShiftLeft`,`BrickComponentData_WireGraph_Expr_IntInt_Int`],[`BrickComponentType_WireGraph_Expr_BitwiseShiftRight`,`BrickComponentData_WireGraph_Expr_IntInt_Int`],[`BrickComponentType_WireGraph_Expr_BitwiseXOR`,`BrickComponentData_WireGraph_Expr_IntInt_Int`],[`BrickComponentType_WireGraph_Expr_Ceil`,`BrickComponentData_WireGraph_Expr_Float_Float`],[`BrickComponentType_WireGraph_Expr_ColorBlend`,`BrickComponentData_WireGraph_Expr_ColorBlend`],[`BrickComponentType_WireGraph_Expr_ColorConvert`,`BrickComponentData_WireGraph_Expr_ColorConvert`],[`BrickComponentType_WireGraph_Expr_ColorToHex`,`BrickComponentData_WireGraph_Expr_ColorToHex`],[`BrickComponentType_WireGraph_Expr_CompareEqual`,`BrickComponentData_WireGraph_Expr_Compare`],[`BrickComponentType_WireGraph_Expr_CompareGreater`,`BrickComponentData_WireGraph_Expr_MathCompare`],[`BrickComponentType_WireGraph_Expr_CompareGreaterOrEqual`,`BrickComponentData_WireGraph_Expr_MathCompare`],[`BrickComponentType_WireGraph_Expr_CompareLess`,`BrickComponentData_WireGraph_Expr_MathCompare`],[`BrickComponentType_WireGraph_Expr_CompareLessOrEqual`,`BrickComponentData_WireGraph_Expr_MathCompare`],[`BrickComponentType_WireGraph_Expr_CompareNotEqual`,`BrickComponentData_WireGraph_Expr_Compare`],[`BrickComponentType_WireGraph_Expr_Convert`,`BrickComponentData_WireGraph_Expr_Convert`],[`BrickComponentType_WireGraph_Expr_DirectionToRotation`,`BrickComponentData_WireGraph_Expr_DirectionToRotation`],[`BrickComponentType_WireGraph_Expr_EdgeDetector`,`BrickComponentData_WireGraph_Expr_EdgeDetector`],[`BrickComponentType_WireGraph_Expr_Floor`,`BrickComponentData_WireGraph_Expr_Float_Float`],[`BrickComponentType_WireGraph_Expr_InvertRotation`,`BrickComponentData_WireGraph_Expr_InvertRotation`],[`BrickComponentType_WireGraph_Expr_LogicalAND`,`BrickComponentData_WireGraph_Expr_BoolBool_Bool`],[`BrickComponentType_WireGraph_Expr_LogicalNAND`,`BrickComponentData_WireGraph_Expr_BoolBool_Bool`],[`BrickComponentType_WireGraph_Expr_LogicalNOR`,`BrickComponentData_WireGraph_Expr_BoolBool_Bool`],[`BrickComponentType_WireGraph_Expr_LogicalNOT`,`BrickComponentData_WireGraph_Expr_Bool_Bool`],[`BrickComponentType_WireGraph_Expr_LogicalOR`,`BrickComponentData_WireGraph_Expr_BoolBool_Bool`],[`BrickComponentType_WireGraph_Expr_LogicalXOR`,`BrickComponentData_WireGraph_Expr_BoolBool_Bool`],[`BrickComponentType_WireGraph_Expr_MakeColor`,`BrickComponentData_WireGraph_Expr_MakeColor`],[`BrickComponentType_WireGraph_Expr_MakeColorHex`,`BrickComponentData_WireGraph_Expr_MakeColorHex`],[`BrickComponentType_WireGraph_Expr_MakeColorSRGB`,`BrickComponentData_WireGraph_Expr_MakeColorSRGB`],[`BrickComponentType_WireGraph_Expr_MakeQuaternion`,`BrickComponentData_WireGraph_Expr_MakeQuaternion`],[`BrickComponentType_WireGraph_Expr_MakeRotation`,`BrickComponentData_WireGraph_Expr_MakeRotation`],[`BrickComponentType_WireGraph_Expr_MakeVector`,`BrickComponentData_WireGraph_Expr_MakeVector`],[`BrickComponentType_WireGraph_Expr_MathAbs`,`BrickComponentData_WireGraph_Expr_PrimMathVariant_PrimMathVariant`],[`BrickComponentType_WireGraph_Expr_MathAcos`,`BrickComponentData_WireGraph_Expr_Float_Float`],[`BrickComponentType_WireGraph_Expr_MathAcosh`,`BrickComponentData_WireGraph_Expr_Float_Float`],[`BrickComponentType_WireGraph_Expr_MathAdd`,`BrickComponentData_WireGraph_Expr_PrimMathVariantPrimMathVariant_PrimMathVariant`],[`BrickComponentType_WireGraph_Expr_MathAsin`,`BrickComponentData_WireGraph_Expr_Float_Float`],[`BrickComponentType_WireGraph_Expr_MathAsinh`,`BrickComponentData_WireGraph_Expr_Float_Float`],[`BrickComponentType_WireGraph_Expr_MathAtan`,`BrickComponentData_WireGraph_Expr_Float_Float`],[`BrickComponentType_WireGraph_Expr_MathAtan2`,`BrickComponentData_WireGraph_Expr_MathAtan2`],[`BrickComponentType_WireGraph_Expr_MathAtanh`,`BrickComponentData_WireGraph_Expr_Float_Float`],[`BrickComponentType_WireGraph_Expr_MathBlend`,`BrickComponentData_WireGraph_Expr_MathBlend`],[`BrickComponentType_WireGraph_Expr_MathClamp`,`BrickComponentData_WireGraph_Expr_MathClamp`],[`BrickComponentType_WireGraph_Expr_MathCos`,`BrickComponentData_WireGraph_Expr_Float_Float`],[`BrickComponentType_WireGraph_Expr_MathCosh`,`BrickComponentData_WireGraph_Expr_Float_Float`],[`BrickComponentType_WireGraph_Expr_MathDegreesToRadians`,`BrickComponentData_WireGraph_Expr_Float_Float`],[`BrickComponentType_WireGraph_Expr_MathDivide`,`BrickComponentData_WireGraph_Expr_PrimMathVariantPrimMathVariant_PrimMathVariant`],[`BrickComponentType_WireGraph_Expr_MathEasing`,`BrickComponentData_WireGraph_Expr_MathEasing`],[`BrickComponentType_WireGraph_Expr_MathExp`,`BrickComponentData_WireGraph_Expr_Float_Float`],[`BrickComponentType_WireGraph_Expr_MathLn`,`BrickComponentData_WireGraph_Expr_Float_Float`],[`BrickComponentType_WireGraph_Expr_MathLogBase`,`BrickComponentData_WireGraph_Expr_MathLogBase`],[`BrickComponentType_WireGraph_Expr_MathMax`,`BrickComponentData_WireGraph_Expr_PrimMathVariantPrimMathVariant_PrimMathVariant`],[`BrickComponentType_WireGraph_Expr_MathMin`,`BrickComponentData_WireGraph_Expr_PrimMathVariantPrimMathVariant_PrimMathVariant`],[`BrickComponentType_WireGraph_Expr_MathModulo`,`BrickComponentData_WireGraph_Expr_PrimMathVariantPrimMathVariant_PrimMathVariant`],[`BrickComponentType_WireGraph_Expr_MathModuloFloored`,`BrickComponentData_WireGraph_Expr_PrimMathVariantPrimMathVariant_PrimMathVariant`],[`BrickComponentType_WireGraph_Expr_MathMultiply`,`BrickComponentData_WireGraph_Expr_PrimMathVariantPrimMathVariant_PrimMathVariant`],[`BrickComponentType_WireGraph_Expr_MathNegate`,`BrickComponentData_WireGraph_Expr_Variant_Variant`],[`BrickComponentType_WireGraph_Expr_MathPow`,`BrickComponentData_WireGraph_Expr_MathPow`],[`BrickComponentType_WireGraph_Expr_MathRadiansToDegrees`,`BrickComponentData_WireGraph_Expr_Float_Float`],[`BrickComponentType_WireGraph_Expr_MathSign`,`BrickComponentData_WireGraph_Expr_PrimMathVariant_PrimMathVariant`],[`BrickComponentType_WireGraph_Expr_MathSin`,`BrickComponentData_WireGraph_Expr_Float_Float`],[`BrickComponentType_WireGraph_Expr_MathSinh`,`BrickComponentData_WireGraph_Expr_Float_Float`],[`BrickComponentType_WireGraph_Expr_MathSqrt`,`BrickComponentData_WireGraph_Expr_Float_Float`],[`BrickComponentType_WireGraph_Expr_MathSubtract`,`BrickComponentData_WireGraph_Expr_PrimMathVariantPrimMathVariant_PrimMathVariant`],[`BrickComponentType_WireGraph_Expr_MathTan`,`BrickComponentData_WireGraph_Expr_Float_Float`],[`BrickComponentType_WireGraph_Expr_MathTanh`,`BrickComponentData_WireGraph_Expr_Float_Float`],[`BrickComponentType_WireGraph_Expr_NearlyEqual`,`BrickComponentData_WireGraph_Expr_NearlyEqual`],[`BrickComponentType_WireGraph_Expr_QuatAngleBetween`,`BrickComponentData_WireGraph_Expr_QuatAngleBetween`],[`BrickComponentType_WireGraph_Expr_QuatBetween`,`BrickComponentData_WireGraph_Expr_QuatBetween`],[`BrickComponentType_WireGraph_Expr_QuatDotProduct`,`BrickComponentData_WireGraph_Expr_QuatDotProduct`],[`BrickComponentType_WireGraph_Expr_QuatFromAxisAngle`,`BrickComponentData_WireGraph_Expr_QuatFromAxisAngle`],[`BrickComponentType_WireGraph_Expr_QuatSlerp`,`BrickComponentData_WireGraph_Expr_QuatSlerp`],[`BrickComponentType_WireGraph_Expr_QuatToAxisAngle`,`BrickComponentData_WireGraph_Expr_QuatToAxisAngle`],[`BrickComponentType_WireGraph_Expr_RotateVector`,`BrickComponentData_WireGraph_Expr_RotateVector`],[`BrickComponentType_WireGraph_Expr_RotationToDirection`,`BrickComponentData_WireGraph_Expr_RotationToDirection`],[`BrickComponentType_WireGraph_Expr_Round`,`BrickComponentData_WireGraph_Expr_Float_Float`],[`BrickComponentType_WireGraph_Expr_Select`,`BrickComponentData_WireGraph_Expr_Select`],[`BrickComponentType_WireGraph_Expr_SplitColor`,`BrickComponentData_WireGraph_Expr_SplitColor`],[`BrickComponentType_WireGraph_Expr_SplitColorSRGB`,`BrickComponentData_WireGraph_Expr_SplitColorSRGB`],[`BrickComponentType_WireGraph_Expr_SplitQuaternion`,`BrickComponentData_WireGraph_Expr_SplitQuaternion`],[`BrickComponentType_WireGraph_Expr_SplitRotation`,`BrickComponentData_WireGraph_Expr_SplitRotation`],[`BrickComponentType_WireGraph_Expr_SplitVector`,`BrickComponentData_WireGraph_Expr_SplitVector`],[`BrickComponentType_WireGraph_Expr_String_Concatenate`,`BrickComponentData_WireGraph_Expr_String_Concatenate`],[`BrickComponentType_WireGraph_Expr_String_Contains`,`BrickComponentData_WireGraph_Expr_String_Contains`],[`BrickComponentType_WireGraph_Expr_String_EndsWith`,`BrickComponentData_WireGraph_Expr_String_EndsWith`],[`BrickComponentType_WireGraph_Expr_String_Find`,`BrickComponentData_WireGraph_Expr_String_Find`],[`BrickComponentType_WireGraph_Expr_String_FormatText`,`BrickComponentData_WireGraph_Expr_String_FormatText`],[`BrickComponentType_WireGraph_Expr_String_Length`,`BrickComponentData_WireGraph_Expr_String_Length`],[`BrickComponentType_WireGraph_Expr_String_ParseInt`,`BrickComponentData_WireGraph_Expr_String_ParseInt`],[`BrickComponentType_WireGraph_Expr_String_ParseNumber`,`BrickComponentData_WireGraph_Expr_String_ParseNumber`],[`BrickComponentType_WireGraph_Expr_String_Replace`,`BrickComponentData_WireGraph_Expr_String_Replace`],[`BrickComponentType_WireGraph_Expr_String_Split`,`BrickComponentData_WireGraph_Expr_String_Split`],[`BrickComponentType_WireGraph_Expr_String_StartsWith`,`BrickComponentData_WireGraph_Expr_String_StartsWith`],[`BrickComponentType_WireGraph_Expr_String_Substring`,`BrickComponentData_WireGraph_Expr_String_Substring`],[`BrickComponentType_WireGraph_Expr_String_ToLower`,`BrickComponentData_WireGraph_Expr_String_ToLower`],[`BrickComponentType_WireGraph_Expr_String_ToUpper`,`BrickComponentData_WireGraph_Expr_String_ToUpper`],[`BrickComponentType_WireGraph_Expr_String_Trim`,`BrickComponentData_WireGraph_Expr_String_Trim`],[`BrickComponentType_WireGraph_Expr_Swap`,`BrickComponentData_WireGraph_Expr_Swap`],[`BrickComponentType_WireGraph_Expr_VecCrossProduct`,`BrickComponentData_WireGraph_Expr_VecVec_Vec`],[`BrickComponentType_WireGraph_Expr_VecDistance`,`BrickComponentData_WireGraph_Expr_VecVec_Float`],[`BrickComponentType_WireGraph_Expr_VecDistanceSquared`,`BrickComponentData_WireGraph_Expr_VecVec_Float`],[`BrickComponentType_WireGraph_Expr_VecDotProduct`,`BrickComponentData_WireGraph_Expr_VecVec_Float`],[`BrickComponentType_WireGraph_Expr_VecMagnitude`,`BrickComponentData_WireGraph_Expr_Vec_Float`],[`BrickComponentType_WireGraph_Expr_VecMagnitudeSquared`,`BrickComponentData_WireGraph_Expr_Vec_Float`],[`BrickComponentType_WireGraph_Expr_VecNormalize`,`BrickComponentData_WireGraph_Expr_Vec_Vec`],[`BrickComponentType_WireGraph_Expr_VecScale`,`BrickComponentData_WireGraph_Expr_VecFloat_Vec`],[`BrickComponentType_WireGraph_Fake_Gamemode_CharacterDamagedEvent`,`BrickComponentData_WireGraph_Fake_CharacterDamageEvent`],[`BrickComponentType_WireGraph_Fake_Gamemode_CharacterDiedEvent`,`BrickComponentData_WireGraph_Fake_CharacterDeathEvent`],[`BrickComponentType_WireGraph_Fake_Gamemode_CharacterSpawnedEvent`,`BrickComponentData_WireGraph_Fake_CharacterEvent`],[`BrickComponentType_WireGraph_Fake_Gamemode_ControllerJoinedEvent`,`BrickComponentData_WireGraph_Fake_ControllerEvent`],[`BrickComponentType_WireGraph_Fake_Gamemode_ControllerLeftEvent`,`BrickComponentData_WireGraph_Fake_ControllerEvent`],[`BrickComponentType_WireGraph_Fake_Gamemode_RoundEndEvent`,`BrickComponentData_WireGraph_Fake_RoundEvent`],[`BrickComponentType_WireGraph_Fake_Gamemode_RoundStartEvent`,`BrickComponentData_WireGraph_Fake_RoundEvent`],[`BrickComponentType_WireGraph_FindPlayer`,`BrickComponentData_WireGraph_FindPlayer`],[`BrickComponentType_WireGraph_FontReference`,`BrickComponentData_WireGraph_FontReference`],[`BrickComponentType_WireGraph_ItemReference`,`BrickComponentData_WireGraph_ItemReference`],[`BrickComponentType_WireGraph_OneShotAudioReference`,`BrickComponentData_WireGraph_OneShotAudioReference`],[`BrickComponentType_WireGraph_ParticleReference`,`BrickComponentData_WireGraph_ParticleReference`],[`BrickComponentType_WireGraph_PickupReference`,`BrickComponentData_WireGraph_PickupReference`],[`BrickComponentType_WireGraph_ProjectileReference`,`BrickComponentData_WireGraph_ProjectileReference`],[`BrickComponentType_WireGraph_ServerUptime`,`BrickComponentData_WireGraph_ServerUptime`],[`BrickComponentType_WireGraph_WheelEngineAudioReference`,`BrickComponentData_WireGraph_WheelEngineAudioReference`],[`Component_AudioEmitter`,`BrickComponentData_AudioEmitter`],[`Component_BotSpawn`,`BrickComponentData_BotSpawn`],[`Component_BrickPropertyChanger`,`BrickComponentData_BrickPropertyChanger`],[`Component_Button`,`BrickComponentData_Button`],[`Component_CheckPoint`,`BrickComponentData_CheckPoint`],[`Component_Damage`,`BrickComponentData_Damage`],[`Component_Interact`,`BrickComponentData_Interact`],[`Component_Internal_AnimatedButton`,`BrickComponentData_Button`],[`Component_Internal_AnimatedPressurePlate`,`BrickComponentData_Touch`],[`Component_Internal_AnimatedSwitch`,`BrickComponentData_Switch`],[`Component_Internal_AttachedZone`,`BrickComponentData_Internal_AttachedZone`],[`Component_Internal_Bearing`,`BrickComponentData_Bearing`],[`Component_Internal_Gyroscope`,`BrickComponentData_Gyroscope`],[`Component_Internal_InputSplitter`,`BrickComponentData_Internal_InputSplitter_V2`],[`Component_Internal_Joint_Wheel`,`BrickComponentData_Joint_Wheel`],[`Component_Internal_Joint_Wheel_Suspension`,`BrickComponentData_Joint_Wheel_Suspension`],[`Component_Internal_Microchip`,`BrickComponentData_Internal_Microchip`],[`Component_Internal_Motor`,`BrickComponentData_Motor`],[`Component_Internal_MotorSlider`,`BrickComponentData_MotorSlider`],[`Component_Internal_ProjectileSpawner_Cannon`,`BrickComponentData_ProjectileSpawner`],[`Component_Internal_Rerouter`,`BrickComponentData_Rerouter`],[`Component_Internal_RigidBearing`,`BrickComponentData_RigidBearing`],[`Component_Internal_RigidSlider`,`BrickComponentData_RigidSlider`],[`Component_Internal_Seat`,`BrickComponentData_Seat_V2`],[`Component_Internal_Servo`,`BrickComponentData_Servo`],[`Component_Internal_ServoSlider`,`BrickComponentData_ServoSlider`],[`Component_Internal_Slider`,`BrickComponentData_Slider`],[`Component_Internal_Thruster`,`BrickComponentData_Thruster`],[`Component_Internal_WeightBrick`,`BrickComponentData_WeightBrick`],[`Component_Internal_WheelEngine`,`BrickComponentData_WheelEngine_V2`],[`Component_ItemSpawn`,`BrickComponentData_ItemSpawn`],[`Component_OneShotAudioEmitter`,`BrickComponentData_OneShotAudioEmitter`],[`Component_PointLight`,`BrickComponentData_PointLight`],[`Component_ProjectileSpawner`,`BrickComponentData_ProjectileSpawner`],[`Component_SpawnPoint`,`BrickComponentData_SpawnPoint`],[`Component_SpotLight`,`BrickComponentData_SpotLight`],[`Component_Switch`,`BrickComponentData_Switch`],[`Component_Target`,`BrickComponentData_Target`],[`Component_TextDisplay`,`BrickComponentData_TextDisplay`],[`Component_Touch`,`BrickComponentData_Touch`],[`Component_WireGraph_PlayAudioAt`,`BrickComponentData_WireGraph_Exec_Entity_PlayAudioAt`]]),ea=new Map([[`Entity_DynamicBrickGrid`,`BrickGridDynamicActor`],[`Entity_MicrochipDynamicBrickGrid`,`BP_MicrochipBrickGridDynamicActor_C`]]),ta={A:4294967295,B:4294967295,C:4294967295,D:4294967295};function na(e){let t=tr(e),n=new DataView(t.buffer,t.byteOffset,16);return{A:n.getUint32(0,!1),B:n.getUint32(4,!1),C:n.getUint32(8,!1),D:n.getUint32(12,!1)}}function ra(e){let t=new Uint8Array(16),n=new DataView(t.buffer);return n.setUint32(0,e.A,!1),n.setUint32(4,e.B,!1),n.setUint32(8,e.C,!1),n.setUint32(12,e.D,!1),er(Array.from(t))}var ia=e=>({type:`folder`,children:e}),X=e=>({type:`file`,content:e}),aa=n({mpArrayHeader:()=>_a,mpBinHeader:()=>ga,mpBool:()=>ua,mpF32:()=>ma,mpF64:()=>ha,mpInt:()=>pa,mpMapHeader:()=>va,mpNil:()=>la,mpStr:()=>Z,mpU8:()=>da,mpUint:()=>fa,rdArrayLen:()=>ka,rdBinLen:()=>Oa,rdBool:()=>Da,rdF32:()=>Ta,rdF64:()=>Ea,rdInt:()=>Ca,rdMapLen:()=>Aa,rdNil:()=>ja,rdStr:()=>Q,rdUint:()=>wa}),oa=new TextEncoder,sa=new TextDecoder(`utf-8`,{fatal:!0}),ca=(e,t)=>{if(!Number.isSafeInteger(e))throw RangeError(`brdb: ${t} ${e} is not a safe integer`)},la=e=>e.u8(192),ua=(e,t)=>e.u8(t?195:194);function da(e,t){if(t<0||t>255||!Number.isInteger(t))throw RangeError(`brdb: u8 value out of range: ${t}`);t<=127||t>224||e.u8(204),e.u8(t)}function fa(e,t){if(ca(t,`uint`),t<0)throw RangeError(`brdb: uint value negative: ${t}`);t<=127?e.u8(t):t<=255?(e.u8(204),e.u8(t)):t<=65535?(e.u8(205),e.u16be(t)):t<=4294967295?(e.u8(206),e.u32be(t)):(e.u8(207),e.u64be(BigInt(t)))}function pa(e,t){ca(t,`int`),t>=0?t<128?e.u8(t):t<=32767?(e.u8(209),e.i16be(t)):t<=2147483647?(e.u8(210),e.i32be(t)):(e.u8(211),e.i64be(BigInt(t))):t>-32?e.u8(256+t):t>=-128?(e.u8(208),e.i8(t)):t>=-32768?(e.u8(209),e.i16be(t)):t>=-2147483648?(e.u8(210),e.i32be(t)):(e.u8(211),e.i64be(BigInt(t)))}function ma(e,t){t===Math.round(t)&&t<65535&&t>-32768?pa(e,t===0?0:t):(e.u8(202),e.f32be(t))}function ha(e,t){t===Math.round(t)&&t<4294967295&&t>-2147483648?pa(e,t===0?0:t):(e.u8(203),e.f64be(t))}function Z(e,t){let n=oa.encode(t),r=n.length;r<32?e.u8(160|r):r<256?(e.u8(217),e.u8(r)):r<=65535?(e.u8(218),e.u16be(r)):(e.u8(219),e.u32be(r)),e.bytes(n)}function ga(e,t){t<256?(e.u8(196),e.u8(t)):t<=65535?(e.u8(197),e.u16be(t)):(e.u8(198),e.u32be(t))}function _a(e,t){t<16?e.u8(144|t):t<=65535?(e.u8(220),e.u16be(t)):(e.u8(221),e.u32be(t))}function va(e,t){t<16?e.u8(128|t):t<=65535?(e.u8(222),e.u16be(t)):(e.u8(223),e.u32be(t))}var ya=e=>{if(e>BigInt(2**53-1)||e<BigInt(-(2**53-1)))throw RangeError(`brdb: 64-bit value ${e} exceeds JS safe integer range`);return Number(e)},ba=(e,t)=>{throw TypeError(`brdb: unexpected marker 0x${e.toString(16)} for ${t}`)},xa=e=>(e&128)==0,Sa=e=>(e&224)==224;function Ca(e){let t=e.u8();if(xa(t))return t;if(Sa(t))return t-256;switch(t){case 204:return e.u8();case 205:return e.u16be();case 206:return e.u32be();case 207:return ya(e.u64be());case 208:return e.i8();case 209:return e.i16be();case 210:return e.i32be();case 211:return ya(e.i64be());default:return ba(t,`integer`)}}function wa(e){let t=e.u8();if(xa(t)||Sa(t))return t;switch(t){case 204:return e.u8();case 205:return e.u16be();case 206:return e.u32be();case 207:return ya(e.u64be());case 208:{let t=e.i8();if(t<0)throw RangeError(`brdb: negative i8 marker for uint field`);return t}default:return ba(t,`uint`)}}function Ta(e){let t=e.u8();if(xa(t))return t;if(Sa(t))return t-256;switch(t){case 204:return e.u8();case 205:return e.u16be();case 208:return e.i8();case 209:return e.i16be();case 202:return e.f32be();default:return ba(t,`float32`)}}function Ea(e){let t=e.u8();if(xa(t))return t;if(Sa(t))return t-256;switch(t){case 204:return e.u8();case 205:return e.u16be();case 206:return e.u32be();case 208:return e.i8();case 209:return e.i16be();case 210:return e.i32be();case 202:return e.f32be();case 203:return e.f64be();default:return ba(t,`float64`)}}function Da(e){let t=e.u8();return t===195?!0:t===194?!1:ba(t,`bool`)}function Q(e){let t=e.u8(),n;if((t&224)==160)n=t&31;else if(t===217)n=e.u8();else if(t===218)n=e.u16be();else if(t===219)n=e.u32be();else return ba(t,`str`);return sa.decode(e.bytes(n))}function Oa(e){let t=e.u8();return t===196?e.u8():t===197?e.u16be():t===198?e.u32be():ba(t,`bin`)}function ka(e){let t=e.u8();return(t&240)==144?t&15:t===220?e.u16be():t===221?e.u32be():ba(t,`array`)}function Aa(e){let t=e.u8();return(t&240)==128?t&15:t===222?e.u16be():t===223?e.u32be():ba(t,`map`)}function ja(e){let t=e.u8();t!==192&&ba(t,`nil`)}var Ma=e=>e.replace(/\/\*[\s\S]*?\*\//g,` `).replace(/\/\/[^\n]*/g,` `).replace(/#[^\n]*/g,` `),Na=String.raw`[A-Za-z_]\w*(?:::\w+)*`;function Pa(e){let t=e.replace(/_/g,``);return t.startsWith(`0b`)?parseInt(t.slice(2),2):t.startsWith(`0x`)?parseInt(t.slice(2),16):parseInt(t,10)}function Fa(e){let t=Ma(e),n=new Map,r=new Map,i=new Map,a=/\b(enum|variant|struct)\s+([A-Za-z0-9_]+)\s*\{([^{}]*)\}/g,o=new RegExp(String.raw`^(${Na})\s*=\s*(-?\d+(?:_\d+)*|0b[01]+(?:_[01]+)*|0x[0-9a-fA-F]+(?:_[0-9a-fA-F]+)*)$`),s=new RegExp(String.raw`^${Na}$`),c=new RegExp(String.raw`^(\w+)\s*:\s*(\w+)\s*(\[\s*(flat)?\s*\])?$`),l=0,u;for(;u=a.exec(t);){if(t.slice(l,u.index).trim()!==``)throw Error(`brdb: unexpected schema text before ${u[2]}`);l=a.lastIndex;let[,e,d,f]=u,p=f.split(`,`).map(e=>e.trim()).filter(e=>e!==``);if(e===`enum`){let e=new Map;for(let t of p){let n=o.exec(t);if(!n)throw Error(`brdb: cannot parse enum entry '${t}' in ${d}`);e.set(n[1],Pa(n[2]))}n.set(d,e)}else if(e===`variant`){let e=[];for(let t of p){if(!s.test(t))throw Error(`brdb: cannot parse variant member '${t}' in ${d}`);e.push(t)}r.set(d,e)}else{let e=new Map;for(let t of p){let n=c.exec(t);if(!n)throw Error(`brdb: cannot parse struct property '${t}' in ${d}`);let[,r,i,a,o]=n;e.set(r,a?{kind:o?`flatarray`:`array`,type:i}:{kind:`type`,type:i})}i.set(d,e)}}if(t.slice(l).trim()!==``)throw Error(`brdb: trailing unparsed schema text`);return{enums:n,variants:r,structs:i}}var Ia={BRSavedGlobalDataSoA:{enums:{},variants:{},structs:{BRSavedPrimaryAssetId:{PrimaryAssetType:`str`,PrimaryAssetName:`str`},BRSavedGlobalDataSoA:{EntityTypeNames:[`str`],EntityDataClassNames:[`str`],BasicBrickAssetNames:[`str`],ProceduralBrickAssetNames:[`str`],MaterialAssetNames:[`str`],ComponentTypeNames:[`str`],ComponentDataStructNames:[`str`],ComponentWirePortNames:[`str`],ExternalAssetReferences:[`BRSavedPrimaryAssetId`],GlobalGridEntityTypeIndex:`i32`}}},BRSavedOwnerTableSoA:{enums:{},variants:{},structs:{BRGuid:{A:`u32`,B:`u32`,C:`u32`,D:`u32`},BRSavedOwnerTableSoA:{UserIds:[`BRGuid`,null],UserNames:[`str`],DisplayNames:[`str`],EntityCounts:[`u32`],BrickCounts:[`u32`],ComponentCounts:[`u32`],WireCounts:[`u32`]}}},BRSavedBrickChunkIndexSoA:{enums:{},variants:{},structs:{BRSavedChunk3DIndex:{X:`i16`,Y:`i16`,Z:`i16`},IntVector:{X:`i32`,Y:`i32`,Z:`i32`},BRSavedBrickChunkIndexSoA:{Chunk3DIndices:[`BRSavedChunk3DIndex`],ChunkOffsets:[`IntVector`],ChunkSizes:[`i32`],NumBricks:[`u32`],NumComponents:[`u32`],NumWires:[`u32`]}}},BRSavedBrickChunkSoA:{enums:{},variants:{},structs:{BRSavedBitFlags:{Flags:[`u8`,null]},BRSavedBrickColor:{R:`u8`,G:`u8`,B:`u8`,A:`u8`},BRSavedBrickSize:{X:`u16`,Y:`u16`,Z:`u16`},BRSavedBrickSizeCounter:{AssetIndex:`u32`,NumSizes:`u32`},BRSavedRelativeBrickPosition:{X:`i16`,Y:`i16`,Z:`i16`},BRSavedBrickChunkSoA:{ProceduralBrickStartingIndex:`u32`,BrickSizeCounters:[`BRSavedBrickSizeCounter`],BrickSizes:[`BRSavedBrickSize`],BrickTypeIndices:[`u32`],OwnerIndices:[`u32`],OriginalOwnerIndices:[`u32`],RelativePositions:[`BRSavedRelativeBrickPosition`,null],Orientations:[`u8`,null],CollisionFlags_Player:`BRSavedBitFlags`,CollisionFlags_Player1:`BRSavedBitFlags`,CollisionFlags_Player2:`BRSavedBitFlags`,CollisionFlags_Player3:`BRSavedBitFlags`,CollisionFlags_Weapon:`BRSavedBitFlags`,CollisionFlags_Interaction:`BRSavedBitFlags`,CollisionFlags_Physics:`BRSavedBitFlags`,VisibilityFlags:`BRSavedBitFlags`,MaterialIndices:[`u8`,null],ColorsAndAlphas:[`BRSavedBrickColor`,null],bColorsAreLinear:`bool`}}},BRSavedWireChunkSoA:{enums:{},variants:{},structs:{BRSavedBitFlags:{Flags:[`u8`,null]},BRSavedChunk3DIndex:{X:`i16`,Y:`i16`,Z:`i16`},BRSavedLocalWirePortSource:{BrickIndexInChunk:`u32`,ComponentTypeIndex:`u16`,PortIndex:`u16`},BRSavedWirePortTarget:{BrickIndexInChunk:`u32`,ComponentTypeIndex:`u16`,PortIndex:`u16`},BRSavedRemoteWirePortSource:{GridPersistentIndex:`u32`,ChunkIndex:`BRSavedChunk3DIndex`,BrickIndexInChunk:`u32`,ComponentTypeIndex:`u16`,PortIndex:`u16`},BRSavedWireChunkSoA:{RemoteWireSources:[`BRSavedRemoteWirePortSource`],LocalWireSources:[`BRSavedLocalWirePortSource`],RemoteWireTargets:[`BRSavedWirePortTarget`],LocalWireTargets:[`BRSavedWirePortTarget`],PendingPropagationFlags:`BRSavedBitFlags`}}},BRSavedComponentChunkSoA:{enums:{},variants:{},structs:{BRSavedBrickComponentTypeCounter:{TypeIndex:`u32`,NumInstances:`u32`},Quat4f:{X:`f32`,Y:`f32`,Z:`f32`,W:`f32`},Vector3f:{X:`f32`,Y:`f32`,Z:`f32`},BRSavedComponentChunkSoA:{ComponentTypeCounters:[`BRSavedBrickComponentTypeCounter`],ComponentBrickIndices:[`u32`],JointBrickIndices:[`u32`],JointEntityReferences:[`u32`],JointInitialRelativeOffsets:[`Vector3f`,null],JointInitialRelativeRotations:[`Quat4f`,null],MicrochipBrickIndices:[`u32`],MicrochipBrickGridReferences:[`u32`]}}},BRSavedComponentChunkSoA_max:{enums:{EBRColorSpace:{"EBRColorSpace::Linear":0,"EBRColorSpace::Srgb":1,"EBRColorSpace::Oklab":2,"EBRColorSpace::Hsv":3,"EBRColorSpace::EBRColorSpace_MAX":4},EBRDisplayTextEasing:{"EBRDisplayTextEasing::Linear":0,"EBRDisplayTextEasing::EaseIn":1,"EBRDisplayTextEasing::EaseOut":2,"EBRDisplayTextEasing::EaseInOut":3,"EBRDisplayTextEasing::EBRDisplayTextEasing_MAX":4},EBRDisplayTextJustification:{"EBRDisplayTextJustification::Left":0,"EBRDisplayTextJustification::Center":1,"EBRDisplayTextJustification::Right":2,"EBRDisplayTextJustification::EBRDisplayTextJustification_MAX":3},EBREasingDirection:{"EBREasingDirection::In":0,"EBREasingDirection::Out":1,"EBREasingDirection::InOut":2,"EBREasingDirection::EBREasingDirection_MAX":3},EBREasingFunction:{"EBREasingFunction::Linear":0,"EBREasingFunction::Sine":1,"EBREasingFunction::Quad":2,"EBREasingFunction::Cubic":3,"EBREasingFunction::Quart":4,"EBREasingFunction::Quint":5,"EBREasingFunction::Expo":6,"EBREasingFunction::Circ":7,"EBREasingFunction::Back":8,"EBREasingFunction::Elastic":9,"EBREasingFunction::Bounce":10,"EBREasingFunction::EBREasingFunction_MAX":11},EBrickAxis:{"EBrickAxis::X":0,"EBrickAxis::Y":1,"EBrickAxis::Z":2,"EBrickAxis::MAX":3},EBrickDirection:{"EBrickDirection::X_Positive":0,"EBrickDirection::X_Negative":1,"EBrickDirection::Y_Positive":2,"EBrickDirection::Y_Negative":3,"EBrickDirection::Z_Positive":4,"EBrickDirection::Z_Negative":5,"EBrickDirection::MAX":6},EBrickMaterial:{"EBrickMaterial::Plastic":0,"EBrickMaterial::Glass":1,"EBrickMaterial::TranslucentPlastic":2,"EBrickMaterial::Glow":3,"EBrickMaterial::Metal":4,"EBrickMaterial::Hologram":5,"EBrickMaterial::EBrickMaterial_MAX":6},EBrickRigidJointInterpMode:{"EBrickRigidJointInterpMode::Snap":0,"EBrickRigidJointInterpMode::Linear":1,"EBrickRigidJointInterpMode::Smooth":2,"EBrickRigidJointInterpMode::EBrickRigidJointInterpMode_MAX":3},EBRInventoryEntryPlanType:{"EBRInventoryEntryPlanType::Nothing":0,"EBRInventoryEntryPlanType::Brick":1,"EBRInventoryEntryPlanType::Entity":2,"EBRInventoryEntryPlanType::Item":3,"EBRInventoryEntryPlanType::EBRInventoryEntryPlanType_MAX":4},EBRPawnCollisionChannel:{"EBRPawnCollisionChannel::Channel1":0,"EBRPawnCollisionChannel::Channel2":1,"EBRPawnCollisionChannel::Channel3":2,"EBRPawnCollisionChannel::Channel4":3,"EBRPawnCollisionChannel::EBRPawnCollisionChannel_MAX":4},EBRTextFacing:{"EBRTextFacing::None":0,"EBRTextFacing::Full":1,"EBRTextFacing::InPlane":2,"EBRTextFacing::EBRTextFacing_MAX":3},EBRTextMaterial:{"EBRTextMaterial::Unlit":0,"EBRTextMaterial::Graffiti":1,"EBRTextMaterial::Plastic":2,"EBRTextMaterial::Metallic":3,"EBRTextMaterial::Glow":4,"EBRTextMaterial::TranslucentPlastic":5,"EBRTextMaterial::Glass":6,"EBRTextMaterial::EBRTextMaterial_MAX":7},EBRTextOutline:{"EBRTextOutline::None":0,"EBRTextOutline::Inlined":1,"EBRTextOutline::Outlined":2,"EBRTextOutline::HollowInlined":3,"EBRTextOutline::HollowOutlined":4,"EBRTextOutline::EBRTextOutline_MAX":5},EBRTextShading:{"EBRTextShading::None":0,"EBRTextShading::Chamfer":1,"EBRTextShading::Fillet":2,"EBRTextShading::DoubleChamfer":3,"EBRTextShading::DoubleFillet":4,"EBRTextShading::Rounded":5,"EBRTextShading::EBRTextShading_MAX":6},EBRTextTypeface:{"EBRTextTypeface::Regular":0,"EBRTextTypeface::Bold":1,"EBRTextTypeface::Italic":2,"EBRTextTypeface::BoldItalic":3,"EBRTextTypeface::EBRTextTypeface_MAX":4},EProjectileSpawnLocation:{"EProjectileSpawnLocation::FaceCenter":0,"EProjectileSpawnLocation::RandomPointInFace":1,"EProjectileSpawnLocation::EProjectileSpawnLocation_MAX":2}},variants:{WireGraphArrayVariant:[`WireGraphDoubleArray`,`WireGraphInt64Array`,`WireGraphBoolArray`,`WireGraphObjectArray`,`WireGraphVectorArray`,`WireGraphRotatorArray`,`WireGraphQuatArray`,`WireGraphStringArray`,`WireGraphLinearColorArray`,`WireGraphEnumArrayWrapper`],WireGraphEnumArrayVariant:[`WireGraphEnumArray_EBrickDirection`,`WireGraphEnumArray_EBrickAxis`,`WireGraphEnumArray_EBRPawnCollisionChannel`,`WireGraphEnumArray_EBRTextShading`,`WireGraphEnumArray_EBRTextOutline`,`WireGraphEnumArray_EBRTextMaterial`,`WireGraphEnumArray_EBRTextTypeface`,`WireGraphEnumArray_EBRTextFacing`,`WireGraphEnumArray_EBREasingFunction`,`WireGraphEnumArray_EBREasingDirection`,`WireGraphEnumArray_EBRColorSpace`,`WireGraphEnumArray_EProjectileSpawnLocation`,`WireGraphEnumArray_EBrickRigidJointInterpMode`,`WireGraphEnumArray_EBRDisplayTextJustification`,`WireGraphEnumArray_EBRDisplayTextEasing`,`WireGraphEnumArray_EBrickMaterial`],WireGraphEnumVariant:[`EBrickDirection`,`EBrickAxis`,`EBrickMaterial`,`EBRPawnCollisionChannel`,`EBRTextShading`,`EBRTextOutline`,`EBRTextMaterial`,`EBRTextTypeface`,`EBRTextFacing`,`EBREasingFunction`,`EBREasingDirection`,`EBRColorSpace`,`EProjectileSpawnLocation`,`EBrickRigidJointInterpMode`,`EBRDisplayTextJustification`,`EBRDisplayTextEasing`],WireGraphPrimMathVariant:[`f64`,`i64`,`Vector`,`Rotator`,`Quat`,`LinearColor`],WireGraphVariant:[`f64`,`i64`,`bool`,`weak_object`,`WireGraphExec`,`Vector`,`Rotator`,`Quat`,`str`,`LinearColor`,`WireGraphEnumWrapper`]},structs:{BrickComponentData_AudioEmitter:{bEnabled:`bool`,AudioDescriptor:`object`,VolumeMultiplier:`f32`,PitchMultiplier:`f32`,InnerRadius:`f32`,MaxDistance:`f32`,bSpatialization:`bool`,FocusAzimuth:`f32`,NonFocusAzimuth:`f32`,NonFocusVolumeAttenuation:`f32`},BrickComponentData_Bearing:{bLimitAngle:`bool`,LimitAngle:`f32`,bAnglesArePercentages:`bool`,bReversed:`bool`,Damping:`f32`},BrickComponentData_Button:{PressSound:`object`,ReleaseSound:`object`,bAllowNearbyInteraction:`bool`,bHiddenInteraction:`bool`,PromptCustomLabel:`str`},BrickComponentData_CheckPoint:{bRotatePlayerGravityOnSpawn:`bool`},BrickComponentData_Damage:{Damage:`f32`,RepeatDelay:`f32`,Message:`str`,ConsoleTag:`str`},BrickComponentData_Interact:{InteractSound:`object`,Message:`str`,ConsoleTag:`str`,bAllowNearbyInteraction:`bool`,bHiddenInteraction:`bool`,PromptCustomLabel:`str`},BrickComponentData_Internal_AttachedZone:{ZoneStartDistance:`i32`,ZoneEndDistance:`i32`,bIsBuildingZone:`bool`,bIsLooseZone:`bool`,bIsShareZone:`bool`,bDetectPlayers:`bool`,bDetectPlayers1:`bool`,bDetectPlayers2:`bool`,bDetectPlayers3:`bool`,bDetectEntities:`bool`,bDetectProjectiles:`bool`,TagFilter:`str`},BrickComponentData_Internal_CharacterZoneEvent:{bCollisionEnabled_Player:`bool`,bCollisionEnabled_Player1:`bool`,bCollisionEnabled_Player2:`bool`,bCollisionEnabled_Player3:`bool`},BrickComponentData_Internal_EntityZoneEvent:{},BrickComponentData_Internal_InputSplitter_V2:{},BrickComponentData_Internal_Microchip:{},BrickComponentData_Internal_MicrochipInput:{PortLabel:`str`},BrickComponentData_Internal_MicrochipOutput:{PortLabel:`str`},BrickComponentData_Internal_ProjectileZoneEvent:{},BrickComponentData_Internal_ReadBrickGrid:{},BrickComponentData_Internal_ZoneEvent:{},BrickComponentData_Motor:{bEnabled:`bool`,Speed:`f32`,Power:`f32`,bLimitAngle:`bool`,LimitAngle:`f32`,bAnglesArePercentages:`bool`,bReversed:`bool`,Damping:`f32`},BrickComponentData_MotorSlider:{bEnabled:`bool`,Speed:`f32`,Power:`f32`,bPositionsArePercentages:`bool`,bReversed:`bool`,Damping:`f32`},BrickComponentData_OneShotAudioEmitter:{AudioDescriptor:`object`,VolumeMultiplier:`f32`,PitchMultiplier:`f32`,InnerRadius:`f32`,MaxDistance:`f32`,bSpatialization:`bool`,bEnableRepeat:`bool`,RepeatTime:`f32`,RepeatVariance:`f32`,RepeatCount:`i32`},BrickComponentData_ProjectileSpawner:{ProjectileClass:`class`,FireSound:`object`,Direction:`EBrickDirection`,SpawnLocation:`EProjectileSpawnLocation`,SpawnMargin:`f32`,bEnabled:`bool`,NumberOfShots:`i32`,SpreadConeAngle:`f32`,bSpreadBiasedTowardsCenter:`bool`,FireRate:`f32`,DamageMultiplier:`f32`,SpeedMultiplier:`f32`,ScaleMultiplier:`f32`},BrickComponentData_Rerouter:{},BrickComponentData_RigidBearing:{TargetAngle:`f32`,bAnglesArePercentages:`bool`,bReversed:`bool`,InterpMode:`EBrickRigidJointInterpMode`,SmoothTime:`f32`,TopSpeed:`f32`},BrickComponentData_RigidSlider:{TargetPosition:`f32`,bPositionsArePercentages:`bool`,bReversed:`bool`,InterpMode:`EBrickRigidJointInterpMode`,SmoothTime:`f32`,TopSpeed:`f32`},BrickComponentData_Servo:{bEnabled:`bool`,TargetAngle:`f32`,Power:`f32`,ActiveDamping:`f32`,ForceLimit:`f32`,bLimitAngle:`bool`,LimitAngle:`f32`,bAnglesArePercentages:`bool`,bReversed:`bool`,Damping:`f32`},BrickComponentData_ServoSlider:{bEnabled:`bool`,TargetPosition:`f32`,Power:`f32`,TopSpeed:`f32`,Exponent:`f32`,bPositionsArePercentages:`bool`,bReversed:`bool`,Damping:`f32`},BrickComponentData_Slider:{bPositionsArePercentages:`bool`,bReversed:`bool`,Damping:`f32`},BrickComponentData_SpawnPoint:{bRotatePlayerGravityOnSpawn:`bool`,bEnable:`bool`},BrickComponentData_Switch:{bEnabled:`bool`,InteractSound:`object`,bAllowNearbyInteraction:`bool`,bHiddenInteraction:`bool`,PromptCustomLabel:`str`},BrickComponentData_Target:{OnTime:`f32`},BrickComponentData_TeleportDestination:{},BrickComponentData_Thruster:{bEnabled:`bool`,Force:`f32`,Throttle:`f32`,Pitch:`f32`,Yaw:`f32`,bSpawnLight:`bool`},BrickComponentData_Touch:{BeginTouchSound:`object`,EndTouchSound:`object`,bCollisionEnabled_Player:`bool`,bCollisionEnabled_Player1:`bool`,bCollisionEnabled_Player2:`bool`,bCollisionEnabled_Player3:`bool`},BrickComponentData_WireGraph_AudioReference:{Asset:`object`},BrickComponentData_WireGraph_BrickAssetReference:{Asset:`object`},BrickComponentData_WireGraph_DeltaTime:{},BrickComponentData_WireGraph_EntityTypeReference:{Asset:`class`},BrickComponentData_WireGraph_Exec_ArrayVar_Average:{Value:`WireGraphVariant`},BrickComponentData_WireGraph_Exec_ArrayVar_Base:{},BrickComponentData_WireGraph_Exec_ArrayVar_DualRef:{},BrickComponentData_WireGraph_Exec_ArrayVar_ElementOp:{Index:`i64`,Value:`WireGraphVariant`},BrickComponentData_WireGraph_Exec_ArrayVar_Find:{Value:`WireGraphVariant`},BrickComponentData_WireGraph_Exec_ArrayVar_Get:{Index:`i64`,Value:`WireGraphVariant`},BrickComponentData_WireGraph_Exec_ArrayVar_GetLength:{},BrickComponentData_WireGraph_Exec_ArrayVar_Insert:{Index:`i64`,Value:`WireGraphVariant`},BrickComponentData_WireGraph_Exec_ArrayVar_MinMax:{Value:`WireGraphVariant`},BrickComponentData_WireGraph_Exec_ArrayVar_Pop:{Value:`WireGraphVariant`},BrickComponentData_WireGraph_Exec_ArrayVar_Push:{Value:`WireGraphVariant`},BrickComponentData_WireGraph_Exec_ArrayVar_RemoveAtIndex:{Index:`i64`},BrickComponentData_WireGraph_Exec_ArrayVar_Resize:{Size:`i64`,Value:`WireGraphVariant`},BrickComponentData_WireGraph_Exec_ArrayVar_Slice:{Start:`i64`,Count:`i64`},BrickComponentData_WireGraph_Exec_ArrayVar_Sort:{bDescending:`bool`},BrickComponentData_WireGraph_Exec_ArrayVar_Sum:{Value:`WireGraphVariant`},BrickComponentData_WireGraph_Exec_ArrayVar_Swap:{IndexA:`i64`,IndexB:`i64`},BrickComponentData_WireGraph_Exec_Character_AddInventoryEntity:{},BrickComponentData_WireGraph_Exec_Character_AddInventoryItem:{},BrickComponentData_WireGraph_Exec_Character_GetAim:{},BrickComponentData_WireGraph_Exec_Character_GetDamage:{},BrickComponentData_WireGraph_Exec_Character_GetFromController:{},BrickComponentData_WireGraph_Exec_Character_IncDamage:{Amount:`f64`},BrickComponentData_WireGraph_Exec_Character_SetDamage:{Damage:`f64`},BrickComponentData_WireGraph_Exec_Character_SetInventoryEntity:{Slot:`i32`},BrickComponentData_WireGraph_Exec_Character_SetInventoryItem:{Slot:`i32`},BrickComponentData_WireGraph_Exec_Character_SetTempPermission:{PermissionTagStr:`str`,bPermissionEnable:`bool`},BrickComponentData_WireGraph_Exec_Character_ShowHint:{HintTitle:`str`,HintText:`str`},BrickComponentData_WireGraph_Exec_ChatCommand:{CommandName:`str`,HelpText:`str`},BrickComponentData_WireGraph_Exec_Controller_GetDisplayName:{},BrickComponentData_WireGraph_Exec_Controller_GetFromEntity:{},BrickComponentData_WireGraph_Exec_Controller_GetUserId:{},BrickComponentData_WireGraph_Exec_Controller_GetUserName:{},BrickComponentData_WireGraph_Exec_Controller_HasPermission:{PermissionName:`str`},BrickComponentData_WireGraph_Exec_Controller_HasRole:{RoleName:`str`},BrickComponentData_WireGraph_Exec_Controller_IsTrustedByBrickOwner:{},BrickComponentData_WireGraph_Exec_Controller_SetCanRespawn:{bCanRespawn:`bool`},BrickComponentData_WireGraph_Exec_Controller_ShowChatMessage:{Message:`str`},BrickComponentData_WireGraph_Exec_Controller_ShowStatusMessage:{},BrickComponentData_WireGraph_Exec_Cycle:{Count:`i64`,Value:`i64`},BrickComponentData_WireGraph_Exec_Entity_GetAngularVelocity:{},BrickComponentData_WireGraph_Exec_Entity_GetLinearVelocity:{},BrickComponentData_WireGraph_Exec_Entity_GetLocation:{},BrickComponentData_WireGraph_Exec_Entity_GetLocationRotation:{},BrickComponentData_WireGraph_Exec_Entity_GetRotation:{},BrickComponentData_WireGraph_Exec_Entity_GetTag:{},BrickComponentData_WireGraph_Exec_Entity_GetVelocity:{},BrickComponentData_WireGraph_Exec_Entity_PlayAudioAt:{AudioDescriptor:`object`,VolumeMultiplier:`f32`,PitchMultiplier:`f32`,InnerRadius:`f32`,MaxDistance:`f32`,bSpatialization:`bool`},BrickComponentData_WireGraph_Exec_Entity_SetFrozen:{bFrozen:`bool`},BrickComponentData_WireGraph_Exec_Entity_SetTag:{Tag:`str`},BrickComponentData_WireGraph_Exec_Gamemode_BroadcastChatMessage:{Message:`str`},BrickComponentData_WireGraph_Exec_Gamemode_BroadcastStatusMessage:{Message:`str`,bFlashIfUnchanged:`bool`},BrickComponentData_WireGraph_Exec_Gamemode_FillArrayFromTeamMembers:{},BrickComponentData_WireGraph_Exec_Gamemode_GetCurrentRound:{},BrickComponentData_WireGraph_Exec_Gamemode_GetLeaderboardValue:{Key:`str`},BrickComponentData_WireGraph_Exec_Gamemode_GetTeam:{},BrickComponentData_WireGraph_Exec_Gamemode_GetTeamByName:{TeamName:`str`},BrickComponentData_WireGraph_Exec_Gamemode_GetTeamLeaderboardValue:{Key:`str`},BrickComponentData_WireGraph_Exec_Gamemode_GetTeamName:{},BrickComponentData_WireGraph_Exec_Gamemode_LeaderboardValue:{Key:`str`,Value:`i64`},BrickComponentData_WireGraph_Exec_Gamemode_PlayerWins:{bTeamWinsInstead:`bool`},BrickComponentData_WireGraph_Exec_Gamemode_SetTeam:{bPinPlayerToTeam:`bool`},BrickComponentData_WireGraph_Exec_Gamemode_SetTeamPinned:{bPinned:`bool`},BrickComponentData_WireGraph_Exec_Gamemode_TeamLeaderboardValue:{Key:`str`,Value:`i64`},BrickComponentData_WireGraph_Exec_Gamemode_TeamWins:{},BrickComponentData_WireGraph_Exec_PlayGlobalAudio:{AudioDescriptor:`object`,VolumeMultiplier:`f32`,PitchMultiplier:`f32`},BrickComponentData_WireGraph_Exec_PrintToConsole:{Text:`str`},BrickComponentData_WireGraph_Exec_Random:{Min:`WireGraphPrimMathVariant`,Max:`WireGraphPrimMathVariant`},BrickComponentData_WireGraph_Exec_Toggle:{Value:`bool`},BrickComponentData_WireGraph_Exec_Var_EditOrGet:{Value:`WireGraphVariant`},BrickComponentData_WireGraph_Exec_Var_Get:{Value:`WireGraphVariant`},BrickComponentData_WireGraph_ExecBranch:{bCond:`bool`},BrickComponentData_WireGraph_ExecUnion:{},BrickComponentData_WireGraph_Expr_Bool_Bool:{bInput:`bool`},BrickComponentData_WireGraph_Expr_BoolBool_Bool:{bInputA:`bool`,bInputB:`bool`},BrickComponentData_WireGraph_Expr_Compare:{InputA:`WireGraphVariant`,InputB:`WireGraphVariant`},BrickComponentData_WireGraph_Expr_Convert:{TargetType:`WireGraphVariant`},BrickComponentData_WireGraph_Expr_EdgeDetector:{Input:`f64`,bPulseOnRisingEdge:`bool`,bPulseOnFallingEdge:`bool`},BrickComponentData_WireGraph_Expr_Float_Float:{Input:`f64`},BrickComponentData_WireGraph_Expr_Int_Int:{Input:`i64`},BrickComponentData_WireGraph_Expr_IntInt_Int:{InputA:`i64`,InputB:`i64`},BrickComponentData_WireGraph_Expr_MakeColor:{R:`f64`,G:`f64`,B:`f64`,A:`f64`},BrickComponentData_WireGraph_Expr_MakeColorHex:{Hex:`str`},BrickComponentData_WireGraph_Expr_MakeColorSRGB:{R:`i64`,G:`i64`,B:`i64`,A:`i64`},BrickComponentData_WireGraph_Expr_MakeQuaternion:{X:`f64`,Y:`f64`,Z:`f64`,W:`f64`},BrickComponentData_WireGraph_Expr_MakeRotation:{Pitch:`f64`,Yaw:`f64`,Roll:`f64`},BrickComponentData_WireGraph_Expr_MakeVector:{X:`f64`,Y:`f64`,Z:`f64`},BrickComponentData_WireGraph_Expr_MathAtan2:{Y:`f64`,X:`f64`},BrickComponentData_WireGraph_Expr_MathBlend:{Blend:`f64`,bClampAlpha:`bool`,InputA:`WireGraphPrimMathVariant`,InputB:`WireGraphPrimMathVariant`},BrickComponentData_WireGraph_Expr_MathClamp:{Min:`WireGraphPrimMathVariant`,Max:`WireGraphPrimMathVariant`,Input:`WireGraphPrimMathVariant`},BrickComponentData_WireGraph_Expr_MathCompare:{InputA:`WireGraphPrimMathVariant`,InputB:`WireGraphPrimMathVariant`},BrickComponentData_WireGraph_Expr_MathEasing:{Blend:`f64`,Function:`EBREasingFunction`,Direction:`EBREasingDirection`,InputA:`WireGraphPrimMathVariant`,InputB:`WireGraphPrimMathVariant`},BrickComponentData_WireGraph_Expr_MathLogBase:{Input:`f64`,Base:`f64`},BrickComponentData_WireGraph_Expr_MathPow:{Input:`f64`,Exponent:`f64`},BrickComponentData_WireGraph_Expr_NearlyEqual:{InputA:`WireGraphPrimMathVariant`,InputB:`WireGraphPrimMathVariant`,Tolerance:`f64`},BrickComponentData_WireGraph_Expr_PrimMathVariant_PrimMathVariant:{Input:`WireGraphPrimMathVariant`},BrickComponentData_WireGraph_Expr_PrimMathVariantPrimMathVariant_PrimMathVariant:{InputA:`WireGraphPrimMathVariant`,InputB:`WireGraphPrimMathVariant`},BrickComponentData_WireGraph_Expr_Select:{bSelectB:`bool`,InputA:`WireGraphVariant`,InputB:`WireGraphVariant`},BrickComponentData_WireGraph_Expr_String_Concatenate:{InputA:`str`,InputB:`str`,Separator:`str`},BrickComponentData_WireGraph_Expr_String_Contains:{Input:`str`,Search:`str`,bCaseSensitive:`bool`},BrickComponentData_WireGraph_Expr_String_EndsWith:{Input:`str`,Suffix:`str`,bCaseSensitive:`bool`},BrickComponentData_WireGraph_Expr_String_Find:{Input:`str`,Search:`str`,bCaseSensitive:`bool`},BrickComponentData_WireGraph_Expr_String_FormatText:{FormatString:`str`,InputA:`WireGraphVariant`,InputB:`WireGraphVariant`,InputC:`WireGraphVariant`,InputD:`WireGraphVariant`,InputE:`WireGraphVariant`,InputF:`WireGraphVariant`,InputG:`WireGraphVariant`},BrickComponentData_WireGraph_Expr_String_Length:{Input:`str`},BrickComponentData_WireGraph_Expr_String_ParseInt:{Input:`str`},BrickComponentData_WireGraph_Expr_String_ParseNumber:{Input:`str`},BrickComponentData_WireGraph_Expr_String_Replace:{Input:`str`,Search:`str`,Replacement:`str`,bCaseSensitive:`bool`},BrickComponentData_WireGraph_Expr_String_Split:{Input:`str`,Delimiter:`str`,bCaseSensitive:`bool`},BrickComponentData_WireGraph_Expr_String_StartsWith:{Input:`str`,Prefix:`str`,bCaseSensitive:`bool`},BrickComponentData_WireGraph_Expr_String_Substring:{Input:`str`,Start:`i64`,Length:`i64`},BrickComponentData_WireGraph_Expr_String_ToLower:{Input:`str`},BrickComponentData_WireGraph_Expr_String_ToUpper:{Input:`str`},BrickComponentData_WireGraph_Expr_String_Trim:{Input:`str`},BrickComponentData_WireGraph_Expr_Swap:{bSwap:`bool`,InputA:`WireGraphVariant`,InputB:`WireGraphVariant`},BrickComponentData_WireGraph_Expr_Variant_Variant:{Input:`WireGraphVariant`},BrickComponentData_WireGraph_Fake_CharacterDamageEvent:{},BrickComponentData_WireGraph_Fake_CharacterDeathEvent:{},BrickComponentData_WireGraph_Fake_CharacterEvent:{},BrickComponentData_WireGraph_Fake_ControllerEvent:{},BrickComponentData_WireGraph_Fake_RoundEvent:{RoundNumber:`i32`},BrickComponentData_WireGraph_FindPlayer:{Query:`str`},BrickComponentData_WireGraph_FontReference:{Asset:`object`},BrickComponentData_WireGraph_ItemReference:{Asset:`class`},BrickComponentData_WireGraph_OneShotAudioReference:{Asset:`object`},BrickComponentData_WireGraph_ParticleReference:{Asset:`object`},BrickComponentData_WireGraph_PickupReference:{Asset:`class`},BrickComponentData_WireGraph_ProjectileReference:{Asset:`class`},BrickComponentData_WireGraph_ServerUptime:{},BrickComponentData_WireGraph_WheelEngineAudioReference:{Asset:`object`},BrickComponentData_WireGraphPseudo_ArrayVar:{Value:`WireGraphArrayVariant`},BrickComponentData_WireGraphPseudo_BufferSeconds:{SecondsToWait:`f32`,ZeroSecondsToWait:`f32`,CurrentTime:`f32`,Input:`WireGraphVariant`,Output:`WireGraphVariant`,Buffered:`WireGraphVariant`,bHasQueued:`bool`,bIsOffTimer:`bool`},BrickComponentData_WireGraphPseudo_BufferTicks:{TicksToWait:`i32`,ZeroTicksToWait:`i32`,CurrentTicks:`i32`,Input:`WireGraphVariant`,Output:`WireGraphVariant`,Buffered:`WireGraphVariant`,bHasQueued:`bool`,bIsOffTimer:`bool`},BrickComponentData_WireGraphPseudo_Timer:{Limit:`f64`,Time:`f64`,bRunning:`bool`},BrickComponentData_WireGraphPseudo_Tween:{Target:`WireGraphVariant`,Value:`WireGraphVariant`,StartValue:`WireGraphVariant`,Duration:`f64`,Elapsed:`f64`,Function:`EBREasingFunction`,Direction:`EBREasingDirection`},BrickComponentData_WireGraphPseudo_Var:{Value:`WireGraphVariant`},BrickComponentWireControl_DriveAndSteer:{},BrickComponentWirePortControl_TeleportDestination:{},BRInventoryEntryVariant:{},BRQueueSecondsEntry:{Data:[`WireGraphVariant`],RemainingTime:`f32`},BRQueueTicksEntry:{Data:[`WireGraphVariant`],RemainingTicks:`i32`},BRSavedBrickComponentTypeCounter:{TypeIndex:`u32`,NumInstances:`u32`},Color:{B:`u8`,G:`u8`,R:`u8`,A:`u8`},IntVector:{X:`i32`,Y:`i32`,Z:`i32`},LinearColor:{R:`f32`,G:`f32`,B:`f32`,A:`f32`},Quat:{X:`f64`,Y:`f64`,Z:`f64`,W:`f64`},Quat4f:{X:`f32`,Y:`f32`,Z:`f32`,W:`f32`},Rotator:{Pitch:`f64`,Yaw:`f64`,Roll:`f64`},Rotator3f:{Pitch:`f32`,Yaw:`f32`,Roll:`f32`},Vector:{X:`f64`,Y:`f64`,Z:`f64`},Vector2f:{X:`f32`,Y:`f32`},Vector3f:{X:`f32`,Y:`f32`,Z:`f32`},Vector4:{X:`f64`,Y:`f64`,Z:`f64`,W:`f64`},WireGraphBoolArray:{Values:[`bool`]},WireGraphDoubleArray:{Values:[`f64`]},WireGraphEnumArray_EBRColorSpace:{Values:[`EBRColorSpace`]},WireGraphEnumArray_EBRDisplayTextEasing:{Values:[`EBRDisplayTextEasing`]},WireGraphEnumArray_EBRDisplayTextJustification:{Values:[`EBRDisplayTextJustification`]},WireGraphEnumArray_EBREasingDirection:{Values:[`EBREasingDirection`]},WireGraphEnumArray_EBREasingFunction:{Values:[`EBREasingFunction`]},WireGraphEnumArray_EBrickAxis:{Values:[`EBrickAxis`]},WireGraphEnumArray_EBrickDirection:{Values:[`EBrickDirection`]},WireGraphEnumArray_EBrickMaterial:{Values:[`EBrickMaterial`]},WireGraphEnumArray_EBrickRigidJointInterpMode:{Values:[`EBrickRigidJointInterpMode`]},WireGraphEnumArray_EBRPawnCollisionChannel:{Values:[`EBRPawnCollisionChannel`]},WireGraphEnumArray_EBRTextFacing:{Values:[`EBRTextFacing`]},WireGraphEnumArray_EBRTextMaterial:{Values:[`EBRTextMaterial`]},WireGraphEnumArray_EBRTextOutline:{Values:[`EBRTextOutline`]},WireGraphEnumArray_EBRTextShading:{Values:[`EBRTextShading`]},WireGraphEnumArray_EBRTextTypeface:{Values:[`EBRTextTypeface`]},WireGraphEnumArray_EProjectileSpawnLocation:{Values:[`EProjectileSpawnLocation`]},WireGraphEnumArrayWrapper:{Enum:`WireGraphEnumArrayVariant`},WireGraphEnumWrapper:{Enum:`WireGraphEnumVariant`},WireGraphExec:{},WireGraphInt64Array:{Values:[`i64`]},WireGraphObjectArray:{Values:[`weak_object`]},WireGraphStringArray:{Values:[`str`]},BrickComponentData_BrickPropertyChanger:{bVisibility:`bool`,bCollisionEnabled:`bool`,bCollisionEnabled_Player:`bool`,bCollisionEnabled_Player1:`bool`,bCollisionEnabled_Player2:`bool`,bCollisionEnabled_Player3:`bool`,bCollisionEnabled_Weapon:`bool`,bCollisionEnabled_Interaction:`bool`,bCollisionEnabled_Physics:`bool`,Color:`Color`,MaterialAlpha:`u8`,Material:`EBrickMaterial`},BrickComponentData_Gyroscope:{bEnabled:`bool`,Strength:`f32`,Damping:`f32`,MaxForce:`f32`,TargetAxis:`Vector`},BrickComponentData_ItemSpawn:{PickupClass:`class`,bPickupEnabled:`bool`,bPickupRespawnOnMinigameReset:`bool`,PickupMinigameResetRespawnDelay:`f32`,bPickupAutoDisableOnPickup:`bool`,PickupRespawnTime:`f32`,bRenderTranslucentWhenDisabled:`bool`,DamageMultiplier:`f32`,WeaponSpeedMultiplier:`f32`,ItemNameOverride:`str`,ProjectileOverride:`class`,PickupOffsetDirection:`EBrickDirection`,PickupOffsetDistance:`f32`,PickupRotation:`Rotator3f`,PickupScale:`f32`,bOverridePickupColors:`bool`,PickupMeshColors:[`Color`],bPickupAnimationEnabled:`bool`,PickupAnimationAxis:`EBrickAxis`,bPickupAnimationAxisLocal:`bool`,PickupSpinSpeed:`f32`,PickupBobSpeed:`f32`,PickupBobHeight:`f32`,PickupAnimationPhase:`f32`},BrickComponentData_Joint_Wheel:{Control_DriveAndSteer:`BrickComponentWireControl_DriveAndSteer`,bEnabled:`bool`,DriveSpeed:`f32`,DrivePower:`f32`,bSteerEnabled:`bool`,Steer:`f32`,SteerLimitDegree:`f32`,SteerPower:`f32`,bSuspensionEnabled:`bool`,SuspensionStiffness:`f32`,SuspensionDamping:`f32`,JointDistance:`i32`,bDriveWhenNotAttachedToEngine:`bool`,bCanBrake:`bool`,bAllowEngineSteerCorrect:`bool`,bReversed:`bool`,Damping:`f32`},BrickComponentData_Joint_Wheel_Suspension:{Control_DriveAndSteer:`BrickComponentWireControl_DriveAndSteer`,bEnabled:`bool`,DriveSpeed:`f32`,DrivePower:`f32`,bSteerEnabled:`bool`,Steer:`f32`,SteerLimitDegree:`f32`,SteerPower:`f32`,bSuspensionEnabled:`bool`,SuspensionStiffness:`f32`,SuspensionDamping:`f32`,SuspensionOffset:`f32`,SuspensionLength:`f32`,JointDistance:`i32`,bDriveWhenNotAttachedToEngine:`bool`,bCanBrake:`bool`,bAllowEngineSteerCorrect:`bool`,bReversed:`bool`,Damping:`f32`},BrickComponentData_PointLight:{bMatchBrickShape:`bool`,bEnabled:`bool`,Brightness:`f32`,Radius:`f32`,Color:`Color`,bUseBrickColor:`bool`,bCastShadows:`bool`},BrickComponentData_PrefabSpawn:{Prefab:`bundle_path_ref`,SpawnOffset:`Vector`,SpawnOffsetRotation:`Rotator`,SpawnVelocity:`Vector`,bSpawnEnable:`bool`,RespawnTime:`f64`,SpawnedEntityIds:[`u32`]},BrickComponentData_Seat_V2:{bIsOccupied:`bool`,ExitOffset:`IntVector`,bRollCameraInThirdPerson:`bool`,bAllowNearbyInteraction:`bool`,bHiddenInteraction:`bool`,PromptCustomLabel:`str`},BrickComponentData_SpotLight:{Rotation:`Rotator3f`,InnerConeAngle:`f32`,OuterConeAngle:`f32`,bEnabled:`bool`,Brightness:`f32`,Radius:`f32`,Color:`Color`,bUseBrickColor:`bool`,bCastShadows:`bool`},BrickComponentData_TextDisplay:{Text:`str`,Font:`object`,Rotation:`f32`,Skew:`f32`,Kerning:`f32`,LineHeight:`f32`,LineOffset:`f32`,Anchor:`Vector2f`,Offset:`Vector3f`,Color:`Color`,MaterialSlider:`i32`,ShadingWidth:`f32`,OutlineColor:`Color`,OutlineWidth:`f32`,ScuffWidth:`f32`,GraffitiDepthLimit:`f32`,GraffitiAngleLimit:`f32`,GraffitiLayer:`i32`,bEnabled:`bool`,Face:`EBrickDirection`,bAlignToWedge:`bool`,bOverrideColor:`bool`,Typeface:`EBRTextTypeface`,Billboard:`EBRTextFacing`,Material:`EBRTextMaterial`,Shading:`EBRTextShading`,bFlipShading:`bool`,Outline:`EBRTextOutline`,bSharpCorners:`bool`,bSharpOutlines:`bool`,bOverrideOutlineColor:`bool`,bForeground:`bool`},BrickComponentData_WeightBrick:{Mass:`f32`,MassSize:`IntVector`,MassOffset:`IntVector`},BrickComponentData_WheelEngine_V2:{bEnabled:`bool`,bEnableManualControl:`bool`,ManualInput_Drive:`f32`,ManualInput_Steer:`f32`,bManualInput_Brake:`bool`,Control_DriveAndSteer:`BrickComponentWireControl_DriveAndSteer`,CustomMass:`f32`,CustomMassVerticalOffset:`f32`,DriveInterpSpeed:`f32`,DriveSpeed:`f32`,DriveAcceleratingPowerMultiplier:`f32`,DriveBrakingPowerMultiplier:`f32`,DriveDampingMultiplier:`f32`,SteerPowerMultiplier:`f32`,WheelFrictionMultiplier:`f32`,SteerInterpSpeed:`f32`,SteerLimitSpeedFalloff:`f32`,SteerLimitDegree:`f32`,CenterOfSteering:`f32`,bTankSteering:`bool`,TankSteerSpeedMultiplier:`f32`,bAutoRight:`bool`,WaterDriveForce:`f32`,WaterSteeringForce:`f32`,AudioDescriptor:`object`},BrickComponentData_WireGraph_Exec_Character_AddInventoryBrick:{ProceduralSize:`Vector`},BrickComponentData_WireGraph_Exec_Character_SetInventoryBrick:{Slot:`i32`,ProceduralSize:`Vector`},BrickComponentData_WireGraph_Exec_Controller_DisplayText:{Text:`str`,AnchorX:`f64`,AnchorY:`f64`,PositionX:`f64`,PositionY:`f64`,Angle:`f64`,ScaleX:`f64`,ScaleY:`f64`,FontSize:`i32`,FontColor:`Color`,OutlineSize:`i64`,OutlineColor:`Color`,Justification:`EBRDisplayTextJustification`,Transition:`f64`,Easing:`EBRDisplayTextEasing`,Lifetime:`f64`,TextId:`i64`},BrickComponentData_WireGraph_Exec_Entity_AddLocationRotation:{Vector:`Vector`,Rotation:`Rotator`},BrickComponentData_WireGraph_Exec_Entity_AddVelocity:{Vector:`Vector`,Rotation:`Vector`},BrickComponentData_WireGraph_Exec_Entity_RelativeTeleport:{Source:`BrickComponentWirePortControl_TeleportDestination`,Destination:`BrickComponentWirePortControl_TeleportDestination`},BrickComponentData_WireGraph_Exec_Entity_SetAngularVelocity:{AngularVelocity:`Vector`},BrickComponentData_WireGraph_Exec_Entity_SetGravityDirection:{Rotation:`Rotator`},BrickComponentData_WireGraph_Exec_Entity_SetLinearVelocity:{LinearVelocity:`Vector`},BrickComponentData_WireGraph_Exec_Entity_SetLocation:{Vector:`Vector`},BrickComponentData_WireGraph_Exec_Entity_SetLocationRotation:{Vector:`Vector`,Rotation:`Rotator`},BrickComponentData_WireGraph_Exec_Entity_SetRotation:{Rotation:`Rotator`},BrickComponentData_WireGraph_Exec_Entity_SetVelocity:{Vector:`Vector`,Rotation:`Vector`},BrickComponentData_WireGraph_Exec_Entity_Teleport:{Destination:`BrickComponentWirePortControl_TeleportDestination`},BrickComponentData_WireGraph_Exec_PrefabSpawner:{Prefab:`bundle_path_ref`,SpawnOffset:`Vector`,SpawnOffsetRotation:`Rotator`,SpawnVelocity:`Vector`,Lifetime:`f64`,Limit:`i64`,SpawnedEntityIds:[`u32`]},BrickComponentData_WireGraph_Exec_Sweep:{Origin:`Vector`,Direction:`Vector`,Distance:`f64`,Radius:`f64`,bDetectBricks:`bool`,bDetectPlayers1:`bool`,bDetectPlayers2:`bool`,bDetectPlayers3:`bool`,bDetectPlayers4:`bool`,bDetectPhysics:`bool`,bDetectMap:`bool`,bRelative:`bool`,bIgnoreOwningGrid:`bool`},BrickComponentData_WireGraph_Expr_ColorBlend:{ColorA:`LinearColor`,ColorB:`LinearColor`,Alpha:`f64`,BlendSpace:`EBRColorSpace`,bClampAlpha:`bool`},BrickComponentData_WireGraph_Expr_ColorConvert:{Input:`LinearColor`,FromSpace:`EBRColorSpace`,ToSpace:`EBRColorSpace`},BrickComponentData_WireGraph_Expr_ColorToHex:{Input:`LinearColor`},BrickComponentData_WireGraph_Expr_DirectionToRotation:{Direction:`Vector`},BrickComponentData_WireGraph_Expr_InvertRotation:{Input:`Quat`},BrickComponentData_WireGraph_Expr_QuatAngleBetween:{InputA:`Quat`,InputB:`Quat`},BrickComponentData_WireGraph_Expr_QuatBetween:{From:`Vector`,To:`Vector`},BrickComponentData_WireGraph_Expr_QuatDotProduct:{InputA:`Quat`,InputB:`Quat`},BrickComponentData_WireGraph_Expr_QuatFromAxisAngle:{Axis:`Vector`,Angle:`f64`},BrickComponentData_WireGraph_Expr_QuatSlerp:{InputA:`Quat`,InputB:`Quat`,Alpha:`f64`,bShortestPath:`bool`,bClampAlpha:`bool`},BrickComponentData_WireGraph_Expr_QuatToAxisAngle:{Input:`Quat`},BrickComponentData_WireGraph_Expr_RotateVector:{Rotation:`Quat`,Vector:`Vector`},BrickComponentData_WireGraph_Expr_RotationToDirection:{Rotation:`Quat`},BrickComponentData_WireGraph_Expr_SplitColor:{Input:`LinearColor`},BrickComponentData_WireGraph_Expr_SplitColorSRGB:{Input:`LinearColor`},BrickComponentData_WireGraph_Expr_SplitQuaternion:{Input:`Quat`},BrickComponentData_WireGraph_Expr_SplitRotation:{Input:`Rotator`},BrickComponentData_WireGraph_Expr_SplitVector:{Input:`Vector`},BrickComponentData_WireGraph_Expr_Vec_Float:{Input:`Vector`},BrickComponentData_WireGraph_Expr_Vec_Vec:{Input:`Vector`},BrickComponentData_WireGraph_Expr_VecFloat_Vec:{Input:`Vector`,Scalar:`f64`},BrickComponentData_WireGraph_Expr_VecVec_Float:{InputA:`Vector`,InputB:`Vector`},BrickComponentData_WireGraph_Expr_VecVec_Vec:{InputA:`Vector`,InputB:`Vector`},BrickComponentData_WireGraphPseudo_Dampen:{Target:`WireGraphVariant`,Value:`WireGraphVariant`,SmoothTime:`f64`,Velocity:`Vector4`},BrickComponentData_WireGraphPseudo_QueueSeconds:{SecondsToWait:`f32`,Entries:[`BRQueueSecondsEntry`],DataIn1:`WireGraphVariant`,DataIn2:`WireGraphVariant`,DataIn3:`WireGraphVariant`,DataIn4:`WireGraphVariant`,DataIn5:`WireGraphVariant`,DataIn6:`WireGraphVariant`,DataIn7:`WireGraphVariant`,DataIn8:`WireGraphVariant`,DataOut1:`WireGraphVariant`,DataOut2:`WireGraphVariant`,DataOut3:`WireGraphVariant`,DataOut4:`WireGraphVariant`,DataOut5:`WireGraphVariant`,DataOut6:`WireGraphVariant`,DataOut7:`WireGraphVariant`,DataOut8:`WireGraphVariant`},BrickComponentData_WireGraphPseudo_QueueTicks:{TicksToWait:`i32`,Entries:[`BRQueueTicksEntry`],DataIn1:`WireGraphVariant`,DataIn2:`WireGraphVariant`,DataIn3:`WireGraphVariant`,DataIn4:`WireGraphVariant`,DataIn5:`WireGraphVariant`,DataIn6:`WireGraphVariant`,DataIn7:`WireGraphVariant`,DataIn8:`WireGraphVariant`,DataOut1:`WireGraphVariant`,DataOut2:`WireGraphVariant`,DataOut3:`WireGraphVariant`,DataOut4:`WireGraphVariant`,DataOut5:`WireGraphVariant`,DataOut6:`WireGraphVariant`,DataOut7:`WireGraphVariant`,DataOut8:`WireGraphVariant`},BrickTypeNetWrapper:{BrickAsset:`object`,ProceduralSize:`IntVector`},BRInventoryEntryConfig:{Item:`BRInventoryEntryVariant`},BRPlayerPartCustomizationV3:{PartDescriptor:`object`,DecalDescriptor:`object`,SocketName:`str`,Colors:[`Color`]},BRSavedComponentChunkSoA:{ComponentTypeCounters:[`BRSavedBrickComponentTypeCounter`],ComponentBrickIndices:[`u32`],JointBrickIndices:[`u32`],JointEntityReferences:[`u32`],JointInitialRelativeOffsets:[`Vector3f`,null],JointInitialRelativeRotations:[`Quat4f`,null],MicrochipBrickIndices:[`u32`],MicrochipBrickGridReferences:[`u32`]},WireGraphLinearColorArray:{Values:[`LinearColor`]},WireGraphQuatArray:{Values:[`Quat`]},WireGraphRotatorArray:{Values:[`Rotator`]},WireGraphVectorArray:{Values:[`Vector`]},BrickComponentData_WireGraph_Exec_Character_AddInventoryEntry:{Entry:`BRInventoryEntryConfig`},BRInventoryEntryPlan:{Type:`EBRInventoryEntryPlanType`,BrickTypeIfBrick:`BrickTypeNetWrapper`,EntityTypeIfEntity:`class`,ItemTypeIfItem:`class`},BRPlayerAvatarCustomizationV3:{Parts:[`BRPlayerPartCustomizationV3`]},BrickComponentData_BotSpawn:{RespawnTime:`f32`,CorpseTimeout:`f32`,GunSkill:`f32`,Agression:`f32`,ReactionTime:`f32`,MovementRandomness:`f32`,RunSpeed:`f32`,HealthMultiplier:`f32`,Jumpyness:`f32`,MovementAmount:`f32`,AttackMovementAmount:`f32`,AggroRange:`f32`,AttackDamageMultiplier:`f32`,bCanJump:`bool`,bBackVision:`bool`,bVisionRaycasting:`bool`,bCanTargetPlayers:`bool`,bCanTargetBots:`bool`,bActiveBot:`bool`,bSpawnEnable:`bool`,bDeleteBot:`bool`,MoveTarget:`Vector`,MovementGoalDummy:`BrickComponentWirePortControl_TeleportDestination`,BotName:`str`,Skin:`BRPlayerAvatarCustomizationV3`,bColorsAreLinear:`bool`,TeamCollisionChannel:`EBRPawnCollisionChannel`,bTeamCollision:`bool`,bTeamCollision1:`bool`,bTeamCollision2:`bool`,bTeamCollision3:`bool`,BotWeapon:`class`},BrickComponentData_WireGraph_Exec_Character_SetInventoryEntry:{Slot:`i32`,Entry:`BRInventoryEntryConfig`,EntryPlan:`BRInventoryEntryPlan`}}},BRSavedEntityChunkIndexSoA:{enums:{},variants:{},structs:{BRSavedChunk3DIndex:{X:`i16`,Y:`i16`,Z:`i16`},BRSavedEntityChunkIndexSoA:{NextPersistentIndex:`u32`,Chunk3DIndices:[`BRSavedChunk3DIndex`],NumEntities:[`u32`]}}},BRSavedEntityChunkSoA:{enums:{},variants:{},structs:{BrickGridDynamicActor:{BouyancyScale:`f32`,MassScale:`f32`,bEnableGravity:`bool`,bUseNewMassCalculation:`bool`,bReceivesDecals:`bool`,EntityTag:`str`},BRSavedBitFlags:{Flags:[`u8`,null]},BRSavedBrickColor:{R:`u8`,G:`u8`,B:`u8`,A:`u8`},BRSavedEntityTypeCounter:{TypeIndex:`u32`,NumEntities:`u32`},IntVector:{X:`i32`,Y:`i32`,Z:`i32`},Quat4f:{X:`f32`,Y:`f32`,Z:`f32`,W:`f32`},Vector3f:{X:`f32`,Y:`f32`,Z:`f32`},BP_MicrochipBrickGridDynamicActor_C:{bCollapsed:`bool`,PlaneCenter:`IntVector`,PlaneExtent:`IntVector`},BRSavedEntityColors:{Color0:`BRSavedBrickColor`,Color1:`BRSavedBrickColor`,Color2:`BRSavedBrickColor`,Color3:`BRSavedBrickColor`,Color4:`BRSavedBrickColor`,Color5:`BRSavedBrickColor`,Color6:`BRSavedBrickColor`,Color7:`BRSavedBrickColor`},BRSavedEntityChunkSoA:{TypeCounters:[`BRSavedEntityTypeCounter`],PersistentIndices:[`u32`],OwnerIndices:[`u32`],OriginalOwnerIndices:[`u32`],Locations:[`Vector3f`,null],Rotations:[`Quat4f`,null],WeldParentFlags:`BRSavedBitFlags`,PhysicsLockedFlags:`BRSavedBitFlags`,PhysicsSleepingFlags:`BRSavedBitFlags`,WeldParentIndices:[`u32`],LinearVelocities:[`Vector3f`,null],AngularVelocities:[`Vector3f`,null],ColorsAndAlphas:[`BRSavedEntityColors`,null],RemainingLifeSpans:[`f32`,null],bColorsAreLinear:`bool`}}}},La;function Ra(e,t){if(typeof e==`string`)return{kind:`type`,type:e};if(Array.isArray(e)){if(e.length===1)return{kind:`array`,type:e[0]};if(e.length===2&&e[1]===null)return{kind:`flatarray`,type:e[0]};throw Error(`brdb: invalid schema prop source at ${t}`)}let n=Object.entries(e);if(n.length===1)return{kind:`map`,key:n[0][0],value:n[0][1]};throw Error(`brdb: invalid schema prop source at ${t}`)}var za=[`f64`,`i64`,`bool`,`weak_object`,`WireGraphExec`],Ba=[`f64`,`i64`];function Va(e,t){if(typeof e==`object`&&e&&!Array.isArray(e)&&typeof e.$variant==`string`)return e;throw Error(`brdb: variant ${t} requires a { $variant, value } wrapper`)}var Ha={u8:1,i8:1,u16:2,i16:2,u32:4,i32:4,f32:4,u64:8,i64:8,f64:8};function Ua(e){let t=e.peek();if((t&224)==160||t===217||t===218)return{kind:`type`,type:Q(e)};if((t&240)==144){let t=ka(e);if(t===1)return{kind:`array`,type:Q(e)};if(t===2){let t=Q(e);return ja(e),{kind:`flatarray`,type:t}}throw Error(`brdb: unsupported property array length ${t}`)}if((t&240)==128){let t=Aa(e);if(t!==1)throw Error(`brdb: unsupported property map length ${t}`);return{kind:`map`,key:Q(e),value:Q(e)}}throw Error(`brdb: unsupported property marker 0x${t.toString(16)}`)}var Wa=class e{constructor(e,t,n){this.enums=e,this.variants=t,this.structs=n}static fromText(t){let{enums:n,variants:r,structs:i}=Fa(t);return new e(n,r,i)}static fromData(t){let n=new Map(Object.entries(t.enums).map(([e,t])=>[e,new Map(Object.entries(t))])),r=new Map(Object.entries(t.variants).map(([e,t])=>[e,[...t]])),i=new Map(Object.entries(t.structs).map(([e,t])=>[e,new Map(Object.entries(t).map(([t,n])=>[t,Ra(n,`${e}.${t}`)]))]));return new e(n,r,i)}static fromBinary(t){let n=new Gi(t),r=ka(n);if(r!==2&&r!==3)throw Error(`brdb: invalid schema header length ${r}`);let i=new Map;for(let e=0,t=Aa(n);e<t;e++){let e=Q(n),t=new Map;for(let e=0,r=Aa(n);e<r;e++)t.set(Q(n),Ca(n));i.set(e,t)}let a=new Map;if(r===3)for(let e=0,t=Aa(n);e<t;e++){let e=Q(n),t=[];for(let e=0,r=ka(n);e<r;e++)t.push(Q(n));a.set(e,t)}let o=new Map;for(let e=0,t=Aa(n);e<t;e++){let e=Q(n),t=new Map;for(let e=0,r=Aa(n);e<r;e++)t.set(Q(n),Ua(n));o.set(e,t)}if(n.remaining!==0)throw Error(`brdb: ${n.remaining} trailing bytes after schema`);return new e(i,a,o)}extractStructsTransitive(e){let t=new Map,n=new Map,r=new Map,i=new Set,a=[...e];for(let e=a.pop();e!==void 0;e=a.pop()){if(i.has(e))continue;i.add(e);let o=this.variants.get(e);if(o){a.push(...o),n.set(e,[...o]);continue}let s=this.enums.get(e);if(s){t.set(e,new Map(s));continue}let c=this.structs.get(e);if(c){let t=new Map;for(let[e,n]of c)n.kind===`map`?a.push(n.key,n.value):a.push(n.type),t.set(e,{...n});r.set(e,t)}}return{enums:t,variants:n,structs:r}}merge(e){for(let[t,n]of e.enums)this.enums.set(t,n);for(let[t,n]of e.variants)this.variants.set(t,n);for(let[t,n]of e.structs)this.structs.set(t,n)}zeroValue(e){switch(e){case`u8`:case`u16`:case`u32`:case`u64`:case`i8`:case`i16`:case`i32`:case`i64`:case`f32`:case`f64`:return 0;case`bool`:return!1;case`str`:return``;case`class`:case`object`:case`weak_object`:return null;case`wire_graph_variant`:case`wire_graph_prim_math_variant`:return{$variant:`f64`,value:0}}let t=this.variants.get(e);if(t){let n=t[0];if(n===void 0)throw Error(`brdb: empty variant ${e}`);return{$variant:n,value:this.zeroValue(n)}}if(this.enums.has(e))return 0;let n=this.structs.get(e);if(n){let e={};for(let[t,r]of n)e[t]=r.kind===`type`?this.zeroValue(r.type):[];return e}throw Error(`brdb: unknown type ${e}`)}fillStruct(e,t){let n=this.structs.get(e);if(!n)throw Error(`brdb: unknown struct ${e}`);for(let r of Object.keys(t))if(!n.has(r))throw Error(`brdb: ${e} has no field '${r}'`);let r={};for(let[e,i]of n){let n=t[e];r[e]=n===void 0?i.kind===`type`?this.zeroValue(i.type):[]:n}return r}topoStructOrder(){let e=new Set,t=[],n=r=>{if(e.has(r))return;e.add(r);let i=this.structs.get(r);if(i)for(let e of i.values()){let t=e.kind===`map`?[e.key,e.value]:[e.type];for(let e of t)this.structs.has(e)&&n(e)}t.push(r)};for(let e of this.structs.keys())n(e);return t}toBinary(){let e=new Wi;_a(e,3),va(e,this.enums.size);for(let[t,n]of this.enums){Z(e,t),va(e,n.size);for(let[t,r]of n)Z(e,t),pa(e,r)}va(e,this.variants.size);for(let[t,n]of this.variants){Z(e,t),_a(e,n.length);for(let t of n)Z(e,t)}let t=this.topoStructOrder();va(e,t.length);for(let n of t){let t=this.structs.get(n);Z(e,n),va(e,t.size);for(let[n,r]of t)switch(Z(e,n),r.kind){case`type`:Z(e,r.type);break;case`array`:_a(e,1),Z(e,r.type);break;case`flatarray`:_a(e,2),Z(e,r.type),la(e);break;case`map`:va(e,1),Z(e,r.key),Z(e,r.value);break}}return e.toBytes()}flatTypeSize(e){let t=Ha[e];if(t)return t;let n=this.structs.get(e);if(!n)return 0;let r=0;for(let e of n.values())r+=e.kind===`type`?this.flatTypeSize(e.type):0;return r}writeValue(e,t,n){switch(t){case`u8`:return da(e,n);case`u16`:case`u32`:case`u64`:return fa(e,n);case`i8`:case`i16`:case`i32`:case`i64`:return pa(e,n);case`f32`:return ma(e,n);case`f64`:return ha(e,n);case`str`:return Z(e,n);case`bool`:return ua(e,n);case`class`:case`object`:case`weak_object`:return n===null?pa(e,-1):fa(e,n);case`wire_graph_variant`:case`wire_graph_prim_math_variant`:return this.writeLegacyWireVariant(e,t,n)}let r=this.variants.get(t);if(r){let i=Va(n,t),a=r.indexOf(i.$variant);if(a===-1)throw Error(`brdb: '${i.$variant}' is not a member of variant ${t}`);return fa(e,a),this.writeVariantPayload(e,i.$variant,i.value)}let i=this.enums.get(t);if(i){let r=n;if(r<0||r>=i.size)throw RangeError(`brdb: enum ${t} ordinal ${r} out of bounds`);return fa(e,r)}let a=this.structs.get(t);if(a){let r=n;for(let[n,i]of a){if(!(n in r))throw Error(`brdb: missing struct field ${t}.${n}`);this.writeProperty(e,i,r[n],`${t}.${n}`)}return}throw Error(`brdb: unknown type ${t}`)}writeVariantPayload(e,t,n){if(t===`weak_object`)return pa(e,n===null?-1:n);this.writeValue(e,t,n)}writeLegacyWireVariant(e,t,n){let r=t===`wire_graph_variant`?za:Ba,i=Va(n,t),a=r.indexOf(i.$variant);if(a===-1)throw Error(`brdb: '${i.$variant}' is not a member of ${t}`);switch(fa(e,a),i.$variant){case`f64`:return ha(e,i.value);case`i64`:return pa(e,i.value);case`bool`:return ua(e,i.value);case`weak_object`:return pa(e,i.value===null?-1:i.value);case`WireGraphExec`:return}}writeProperty(e,t,n,r){switch(t.kind){case`type`:return this.writeValue(e,t.type,n);case`array`:{let r=n;_a(e,r.length);for(let n of r)this.writeValue(e,t.type,n);return}case`flatarray`:{let i=n,a=this.flatTypeSize(t.type);if(a===0)throw Error(`brdb: invalid flat type ${t.type} at ${r}`);ga(e,i.length*a);for(let n of i)this.writeFlat(e,t.type,n,r);return}case`map`:throw Error(`brdb: Map properties are unsupported (${r})`)}}writeFlat(e,t,n,r){switch(t){case`u8`:return e.u8(n);case`i8`:return e.i8(n);case`u16`:return e.u16le(n);case`i16`:return e.i16le(n);case`u32`:return e.u32le(n);case`i32`:return e.i32le(n);case`f32`:return e.f32le(n);case`f64`:return e.f64le(n);case`u64`:return e.u64le(BigInt(n));case`i64`:return e.i64le(BigInt(n))}let i=this.structs.get(t);if(!i)throw Error(`brdb: invalid flat type ${t} at ${r}`);let a=n;for(let[n,o]of i){if(o.kind!==`type`)throw Error(`brdb: flat struct ${t} has non-flat field ${n}`);if(!(n in a))throw Error(`brdb: missing struct field ${t}.${n}`);this.writeFlat(e,o.type,a[n],`${r}.${n}`)}}readValue(t,n,r=0){if(r>e.MAX_DECODE_DEPTH)throw Error(`brdb: schema recursion too deep`);switch(n){case`u8`:case`u16`:case`u32`:case`u64`:return wa(t);case`i8`:case`i16`:case`i32`:case`i64`:return Ca(t);case`f32`:return Ta(t);case`f64`:return Ea(t);case`str`:return Q(t);case`bool`:return Da(t);case`class`:case`object`:case`weak_object`:{let e=Ca(t);return e<0?null:e}case`wire_graph_variant`:case`wire_graph_prim_math_variant`:return this.readLegacyWireVariant(t,n)}let i=this.variants.get(n);if(i){let e=wa(t),a=i[e];if(a===void 0)throw Error(`brdb: unknown tag ${e} for variant ${n}`);return{$variant:a,value:this.readValue(t,a,r+1)}}let a=this.enums.get(n);if(a){let e=wa(t);if(e>=a.size)throw RangeError(`brdb: enum ${n} ordinal ${e} out of bounds`);return e}let o=this.structs.get(n);if(o){let e={};for(let[i,a]of o)e[i]=this.readProperty(t,a,`${n}.${i}`,r+1);return e}throw Error(`brdb: unknown type ${n}`)}readLegacyWireVariant(e,t){let n=t===`wire_graph_variant`?za:Ba,r=wa(e),i=n[r];switch(i){case`f64`:return{$variant:i,value:Ea(e)};case`i64`:return{$variant:i,value:Ca(e)};case`bool`:return{$variant:i,value:Da(e)};case`weak_object`:{let t=Ca(e);return{$variant:i,value:t<0?null:t}}case`WireGraphExec`:return{$variant:i,value:null};default:throw Error(`brdb: unknown tag ${r} for ${t}`)}}readProperty(e,t,n,r=0){switch(t.kind){case`type`:return this.readValue(e,t.type,r);case`array`:{let n=ka(e),i=[];for(let a=0;a<n;a++)i.push(this.readValue(e,t.type,r));return i}case`flatarray`:{let r=Oa(e),i=this.flatTypeSize(t.type);if(i===0)throw Error(`brdb: invalid flat type ${t.type} at ${n}`);if(r%i!==0)throw Error(`brdb: flat data length ${r} not divisible by ${i} (${n})`);let a=[];for(let o=0;o<r/i;o++)a.push(this.readFlat(e,t.type,n));return a}case`map`:throw Error(`brdb: Map properties are unsupported (${n})`)}}readFlat(e,t,n){switch(t){case`u8`:return e.u8();case`i8`:return e.i8();case`u16`:return e.u16le();case`i16`:return e.i16le();case`u32`:return e.u32le();case`i32`:return e.i32le();case`f32`:return e.f32le();case`f64`:return e.f64le();case`u64`:case`i64`:{let n=t===`u64`?e.u64le():e.i64le();if(n>BigInt(2**53-1)||n<BigInt(-(2**53-1)))throw RangeError(`brdb: flat 64-bit value ${n} exceeds JS safe range`);return Number(n)}}let r=this.structs.get(t);if(!r)throw Error(`brdb: invalid flat type ${t} at ${n}`);let i={};for(let[a,o]of r){if(o.kind!==`type`)throw Error(`brdb: flat struct ${t} has non-flat field ${a}`);i[a]=this.readFlat(e,o.type,`${n}.${a}`)}return i}encode(e,t){let n=new Wi;return this.writeValue(n,e,t),n.toBytes()}decode(e,t){let n=new Gi(e),r=this.readValue(n,t);if(n.remaining!==0)throw Error(`brdb: ${n.remaining} trailing bytes after ${t}`);return r}};La=Wa,La.MAX_DECODE_DEPTH=64;var Ga=new Map;function Ka(e){let t=Ga.get(e);return t||(t=Wa.fromData(Ia[e]),Ga.set(e,t)),t}var qa=2048,Ja=1024,Ya=(e,t)=>Math.floor(e/t),Xa=(e,t)=>(e%t+t)%t;function Za(e){return{chunk:e.map(e=>Ya(e,qa)),rel:e.map(e=>Xa(e,qa)-Ja)}}function Qa(e){let t=e.brick_assets??[`PB_DefaultBrick`],n=e.materials??[`BMC_Plastic`],r=e.brick_owners?.length??0;return e.bricks.map((i,a)=>{let o=`bricks[${a}]`,s=(Array.isArray(i.components)?i.components:[]).map((e,t)=>{if(!$i.has(e.type))throw Error(`brdb: ${o}.components[${t}]: unknown component type '${e.type}'`);return e}),c=t[i.asset_name_index??0];if(c===void 0)throw Error(`brdb: ${o}: asset_name_index ${i.asset_name_index} out of range`);let l=n[i.material_index??0];if(l===void 0)throw Error(`brdb: ${o}: material_index ${i.material_index} out of range`);let u=i.position.map(e=>{if(!Number.isSafeInteger(e))throw Error(`brdb: ${o}: position must be integers, got ${i.position}`);if(!(e>=-32768*2048&&e<=32768*2048-1))throw Error(`brdb: ${o}: position ${e} outside the i16 chunk range`);return e}),d=i.size.map(e=>{if(!Number.isInteger(e)||e<0||e>65535)throw Error(`brdb: ${o}: size components must be u16, got ${i.size}`);return e}),f;if(typeof i.collision==`boolean`){let e=i.collision;f={player:e,weapon:e,interaction:e,physics:e}}else f={player:i.collision?.player??!0,weapon:i.collision?.weapon??!0,interaction:i.collision?.interaction??!0,physics:i.collision?.physics??!0};let p,m=i.color;if(typeof m==`number`){let t=e.colors?.[m];if(!t)throw Error(`brdb: ${o}: color palette index ${m} out of range`);p=[t[0],t[1],t[2]]}else if(Array.isArray(m)){if(m.length<3)throw Error(`brdb: ${o}: color array must have at least 3 components`);p=[m[0],m[1],m[2]]}else p=[255,255,255];p=p.map((e,t)=>{if(!Number.isInteger(e)||e<0||e>255)throw Error(`brdb: ${o}: resolved color component ${t} must be u8, got ${e}`);return e});let h=i.material_intensity??5;if(!Number.isInteger(h)||h<0||h>255)throw Error(`brdb: ${o}: material_intensity must be u8, got ${h}`);let g=i.owner_index??0;if(!Number.isInteger(g)||g<0||g>r)throw Error(`brdb: ${o}: owner_index ${g} out of range (0..${r})`);return{assetName:c,procedural:Qi(c),size:d,position:u,direction:i.direction??4,rotation:i.rotation??0,collision:f,visible:i.visibility??!0,materialName:l,intensity:h,color:p,ownerIndex:g,components:s}})}var $a=class{constructor(){this.map=new Map}add(e){let t=this.map.get(e);return t===void 0&&(t=this.map.size,this.map.set(e,t)),t}indexOf(e){let t=this.map.get(e);if(t===void 0)throw Error(`brdb: registry miss for ${e}`);return t}has(e){return this.map.has(e)}get names(){return[...this.map.keys()]}get size(){return this.map.size}},eo=class{constructor(){this.sizeCounters=[],this.sizes=[],this.typeIndices=[],this.ownerIndices=[],this.originalOwnerIndices=[],this.relPositions=[],this.orientations=[],this.colPlayer=new zr,this.colPlayer1=new zr,this.colPlayer2=new zr,this.colPlayer3=new zr,this.colWeapon=new zr,this.colInteraction=new zr,this.colPhysics=new zr,this.visibility=new zr,this.materialIndices=[],this.colors=[],this.sizeIndexMap=new Map,this.numBrickSizes=0,this.numBricks=0}addBrick(e,t,n,r){let i;if(!e.procedural)i=n.basic.indexOf(e.assetName);else{let t=n.procedural.indexOf(e.assetName),a=`${t}:${e.size[0]},${e.size[1]},${e.size[2]}`,o=this.sizeIndexMap.get(a);if(o===void 0){o=this.numBrickSizes+r;let n=this.sizeCounters[this.sizeCounters.length-1];n&&n.AssetIndex===t?n.NumSizes+=1:this.sizeCounters.push({AssetIndex:t,NumSizes:1}),this.sizes.push({X:e.size[0],Y:e.size[1],Z:e.size[2]}),this.sizeIndexMap.set(a,o),this.numBrickSizes+=1}i=o}this.typeIndices.push(i),this.ownerIndices.push(e.ownerIndex),this.originalOwnerIndices.push(e.ownerIndex),this.relPositions.push({X:t[0],Y:t[1],Z:t[2]}),this.orientations.push((e.direction&7)<<2|e.rotation&3),this.colPlayer.push(e.collision.player),this.colPlayer1.push(e.collision.player),this.colPlayer2.push(e.collision.player),this.colPlayer3.push(e.collision.player),this.colWeapon.push(e.collision.weapon),this.colInteraction.push(e.collision.interaction),this.colPhysics.push(e.collision.physics),this.visibility.push(e.visible),this.materialIndices.push(n.materials.indexOf(e.materialName)),this.colors.push({R:e.color[0],G:e.color[1],B:e.color[2],A:e.intensity}),this.numBricks+=1}toValue(e){return{ProceduralBrickStartingIndex:e,BrickSizeCounters:this.sizeCounters,BrickSizes:this.sizes,BrickTypeIndices:this.typeIndices,OwnerIndices:this.ownerIndices,OriginalOwnerIndices:this.originalOwnerIndices,RelativePositions:this.relPositions,Orientations:this.orientations,CollisionFlags_Player:this.colPlayer.toValue(),CollisionFlags_Player1:this.colPlayer1.toValue(),CollisionFlags_Player2:this.colPlayer2.toValue(),CollisionFlags_Player3:this.colPlayer3.toValue(),CollisionFlags_Weapon:this.colWeapon.toValue(),CollisionFlags_Interaction:this.colInteraction.toValue(),CollisionFlags_Physics:this.colPhysics.toValue(),VisibilityFlags:this.visibility.toValue(),MaterialIndices:this.materialIndices,ColorsAndAlphas:this.colors,bColorsAreLinear:!1}}},to=class{constructor(){this.counters=[],this.brickIndices=[],this.trailing=[],this.numComponents=0}add(e,t,n,r){let i=this.counters[this.counters.length-1];i&&i.TypeIndex===e?i.NumInstances+=1:this.counters.push({TypeIndex:e,NumInstances:1}),this.brickIndices.push(t),n!==`None`&&this.trailing.push({structName:n,data:r}),this.numComponents+=1}toBytes(e){let t=new Wi;e.writeValue(t,`BRSavedComponentChunkSoA`,{ComponentTypeCounters:this.counters,ComponentBrickIndices:this.brickIndices,JointBrickIndices:[],JointEntityReferences:[],JointInitialRelativeOffsets:[],JointInitialRelativeRotations:[],MicrochipBrickIndices:[],MicrochipBrickGridReferences:[]});for(let n of this.trailing)e.writeValue(t,n.structName,e.fillStruct(n.structName,n.data));return t.toBytes()}};function no(e,t={}){let n=Qa(e),r=new $a,i=new $a,a=new $a;for(let e of n)r.add(e.materialName),(e.procedural?a:i).add(e.assetName);if(r.size>256)throw Error(`brdb: too many distinct materials (${r.size}); MaterialIndices is u8 (max 256)`);let o={materials:r,basic:i,procedural:a},s=i.size,c=new $a,l=[];for(let e of n)for(let t of e.components){let e=c.size;c.add(t.type)===e&&l.push($i.get(t.type))}let u=(e.wires??[]).filter(e=>`component_type`in e.source),d=new $a;u.forEach((e,t)=>{for(let[r,i]of[[`source`,e.source],[`target`,e.target]]){if(!Number.isInteger(i.brick_index)||i.brick_index<0||i.brick_index>=n.length)throw Error(`brdb: wires[${t}].${r}: brick_index ${i.brick_index} out of range`);if(!c.has(i.component_type))throw Error(`brdb: wires[${t}].${r}: component type '${i.component_type}' is not used by any brick`);d.add(i.port)}});let f=Wa.fromData(Ia.BRSavedComponentChunkSoA);if(c.size>0){let e=[];for(let t of l)t!==`None`&&!e.includes(t)&&e.push(t);f.merge(Ka(`BRSavedComponentChunkSoA_max`).extractStructsTransitive(e))}let p=[{guid:ta,name:`PUBLIC`,display:`PUBLIC`}];for(let t of e.brick_owners??[])p.push({guid:na(t.id??`00000000-0000-0000-0000-000000000000`),name:t.name??`Unknown`,display:t.display_name??t.name??`Unknown`});let m=p.map(()=>0),h=p.map(()=>0),g=[],_=new Map,v=new Map,y=[];for(let e of n){let{chunk:t,rel:n}=Za(e.position),r=t.join(`_`),i=_.get(r);i||(i={index:t,builder:new eo},_.set(r,i),g.push(r));let a=i.builder.numBricks;if(i.builder.addBrick(e,n,o,s),y.push({key:r,chunk:t,localIndex:a}),m[e.ownerIndex]+=1,e.components.length>0){h[e.ownerIndex]+=e.components.length;let t=v.get(r);t||v.set(r,t=new to);for(let n of e.components){let e=c.indexOf(n.type);t.add(e,a,l[e],n.data??{})}}}let b=new Map,x=new Map;for(let e of u){let t=y[e.source.brick_index],n=y[e.target.brick_index],r={BrickIndexInChunk:n.localIndex,ComponentTypeIndex:c.indexOf(e.target.component_type),PortIndex:d.indexOf(e.target.port)},i=b.get(n.key);i||b.set(n.key,i={remoteSources:[],localSources:[],remoteTargets:[],localTargets:[]}),x.set(n.key,(x.get(n.key)??0)+1),t.key===n.key?(i.localSources.push({BrickIndexInChunk:t.localIndex,ComponentTypeIndex:c.indexOf(e.source.component_type),PortIndex:d.indexOf(e.source.port)}),i.localTargets.push(r)):(i.remoteSources.push({GridPersistentIndex:1,ChunkIndex:{X:t.chunk[0],Y:t.chunk[1],Z:t.chunk[2]},BrickIndexInChunk:t.localIndex,ComponentTypeIndex:c.indexOf(e.source.component_type),PortIndex:d.indexOf(e.source.port)}),i.remoteTargets.push(r))}let S=Ka(`BRSavedGlobalDataSoA`),C=Ka(`BRSavedOwnerTableSoA`),w=Ka(`BRSavedBrickChunkIndexSoA`),T=Ka(`BRSavedBrickChunkSoA`),E=Ka(`BRSavedWireChunkSoA`),D=Ka(`BRSavedEntityChunkIndexSoA`),O=Ka(`BRSavedEntityChunkSoA`),k=S.encode(`BRSavedGlobalDataSoA`,{EntityTypeNames:[],EntityDataClassNames:[],BasicBrickAssetNames:i.names,ProceduralBrickAssetNames:a.names,MaterialAssetNames:r.names,ComponentTypeNames:c.names,ComponentDataStructNames:l,ComponentWirePortNames:d.names,ExternalAssetReferences:[],GlobalGridEntityTypeIndex:-1}),A=C.encode(`BRSavedOwnerTableSoA`,{UserIds:p.map(e=>({A:e.guid.A,B:e.guid.B,C:e.guid.C,D:e.guid.D})),UserNames:p.map(e=>e.name),DisplayNames:p.map(e=>e.display),EntityCounts:p.map(()=>0),BrickCounts:m,ComponentCounts:h,WireCounts:p.map(()=>0)}),j=w.encode(`BRSavedBrickChunkIndexSoA`,{Chunk3DIndices:g.map(e=>{let[t,n,r]=_.get(e).index;return{X:t,Y:n,Z:r}}),ChunkOffsets:g.map(e=>{let t=_.get(e).index.every(e=>e===0)?0:Ja;return{X:t,Y:t,Z:t}}),ChunkSizes:g.map(()=>qa),NumBricks:g.map(e=>_.get(e).builder.numBricks),NumComponents:g.map(e=>v.get(e)?.numComponents??0),NumWires:g.map(e=>x.get(e)??0)}),M=D.encode(`BRSavedEntityChunkIndexSoA`,{NextPersistentIndex:2,Chunk3DIndices:[],NumEntities:[]}),ee=new TextEncoder,te={type:`World`,iD:`00000000-0000-0000-0000-000000000000`,name:``,version:``,tags:[],authors:e.author?.name?[e.author.name]:[],createdAt:`0001.01.01-00.00.00`,updatedAt:`0001.01.01-00.00.00`,description:e.description??`A Generated World`,dependencies:[],gameVersion:`CL0`,...t.bundle},ne=[[`ChunkIndex.mps`,X(j)]];return g.length>0&&ne.push([`Chunks`,ia(g.map(e=>[`${e}.mps`,X(T.encode(`BRSavedBrickChunkSoA`,_.get(e).builder.toValue(s)))]))]),v.size>0&&ne.push([`Components`,ia(g.filter(e=>v.has(e)).map(e=>[`${e}.mps`,X(v.get(e).toBytes(f))]))]),b.size>0&&ne.push([`Wires`,ia(g.filter(e=>b.has(e)).map(e=>{let t=b.get(e);return[`${e}.mps`,X(E.encode(`BRSavedWireChunkSoA`,{RemoteWireSources:t.remoteSources,LocalWireSources:t.localSources,RemoteWireTargets:t.remoteTargets,LocalWireTargets:t.localTargets,PendingPropagationFlags:{Flags:[]}}))]}))]),[[`Meta`,ia([[`Bundle.json`,X(ee.encode(JSON.stringify(te)))],[`World.json`,X(ee.encode(JSON.stringify({environment:t.environment??`Plate`})))]])],[`World`,ia([[`0`,ia([[`GlobalData.schema`,X(S.toBinary())],[`GlobalData.mps`,X(k)],[`Owners.schema`,X(C.toBinary())],[`Owners.mps`,X(A)],[`Bricks`,ia([[`ChunkIndexShared.schema`,X(w.toBinary())],[`ChunksShared.schema`,X(T.toBinary())],[`WiresShared.schema`,X(E.toBinary())],[`ComponentsShared.schema`,X(f.toBinary())],[`Grids`,ia([[`1`,ia(ne)]])]])],[`Entities`,ia([[`ChunkIndex.schema`,X(D.toBinary())],[`ChunkIndex.mps`,X(M)],[`ChunksShared.schema`,X(O.toBinary())]])]])]])]]}function ro(e,t={}){let n={compress:t.compress};return Ki(no(e,t),n)}function io(e){let t=e<=15?15:255;return Math.trunc((e/255)**(1/2.2)*t)}function ao(e){return{...e,R:io(e.R),G:io(e.G),B:io(e.B)}}function oo(e){let t={};for(let[n,r]of Object.entries(e))t[n]=ao(r);return t}function so(e,t,n){let r=0;for(let t of e.BrickSizeCounters)r+=t.NumSizes;if(r<0||r>e.BrickSizes.length)throw Error(`brdb: brick size counters exceed size table`);let i=[];for(let t of e.BrickSizeCounters)for(let e=0;e<t.NumSizes;e++)i.push(t.AssetIndex);let a=e.ProceduralBrickStartingIndex,o=e.bColorsAreLinear??!0,s=[];for(let r=0;r<e.BrickTypeIndices.length;r++){let c=e.BrickTypeIndices[r],l,u;if(c<a)l=c,u=[0,0,0];else{let t=c-a,r=e.BrickSizes[t];if(r===void 0||i[t]===void 0)throw Error(`brdb: invalid procedural size slot ${t}`);l=n+i[t],u=[r.X,r.Y,r.Z]}let d=e.RelativePositions[r],f=e.Orientations[r],p=e.ColorsAndAlphas[r],m=o?ao(p):p;s.push({asset_name_index:l,size:u,position:[t.x*qa+Ja+d.X,t.y*qa+Ja+d.Y,t.z*qa+Ja+d.Z],direction:f>>2&7,rotation:f&3,collision:{player:Rr(e.CollisionFlags_Player,r),weapon:Rr(e.CollisionFlags_Weapon,r),interaction:Rr(e.CollisionFlags_Interaction,r),tool:!0,physics:Rr(e.CollisionFlags_Physics,r)},visibility:Rr(e.VisibilityFlags,r),material_index:e.MaterialIndices[r],material_intensity:m.A,color:[m.R,m.G,m.B],owner_index:e.OwnerIndices[r]})}return s}var co=class e{constructor(e,t=0){this.fs=e,this.worldId=t,this.schemas=new Map,this.values=new Map}static from(t){return new e(qi.from(t))}path(e){return`World/${this.worldId}/${e}`}schema(e){let t=this.fs.findFileByPath(e);if(!t)throw Error(`brdb: file not found: ${e}`);return this.schemaAt(e,t.createdAt)}schemaAt(e,t){let n=`${e}@${t}`,r=this.schemas.get(n);if(!r){let i=this.fs.findFileByPathAtRevision(e,t);if(!i)throw Error(`brdb: file not found: ${e} at ${t}`);r=Wa.fromBinary(this.fs.readBlob(i.contentId)),this.schemas.set(n,r)}return r}decode(e,t,n){let r=this.fs.findFileByPath(e);if(!r)throw Error(`brdb: file not found: ${e}`);return this.schemaAt(t,r.createdAt).decode(this.fs.readBlob(r.contentId),n)}cached(e,t){return this.values.has(e)||this.values.set(e,t()),this.values.get(e)}bundle(){return this.cached(`Meta/Bundle.json`,()=>JSON.parse(new TextDecoder().decode(this.fs.readFile(`Meta/Bundle.json`))))}environment(){return this.cached(`Meta/World.json`,()=>JSON.parse(new TextDecoder().decode(this.fs.readFile(`Meta/World.json`))))}globalData(){return this.cached(this.path(`GlobalData.mps`),()=>this.decode(this.path(`GlobalData.mps`),this.path(`GlobalData.schema`),`BRSavedGlobalDataSoA`))}owners(){return this.cached(this.path(`Owners.mps`),()=>this.decode(this.path(`Owners.mps`),this.path(`Owners.schema`),`BRSavedOwnerTableSoA`))}brickAssets(){let e=this.globalData();return[...e.BasicBrickAssetNames,...e.ProceduralBrickAssetNames]}materials(){return this.globalData().MaterialAssetNames}brickOwners(){let e=this.owners(),t=[];for(let n=1;n<e.UserNames.length;n++)t.push({id:ra(e.UserIds[n]),name:e.UserNames[n],display_name:e.DisplayNames[n],bricks:e.BrickCounts[n]});return t}gridIds(){return this.fs.childFolders(this.path(`Bricks/Grids`)).map(Number).sort((e,t)=>e-t)}brickChunkIndex(e=1){let t=this.decode(this.path(`Bricks/Grids/${e}/ChunkIndex.mps`),this.path(`Bricks/ChunkIndexShared.schema`),`BRSavedBrickChunkIndexSoA`);return t.Chunk3DIndices.map((e,n)=>{let r=t.ChunkOffsets?.[n];return{index:{x:e.X,y:e.Y,z:e.Z},offset:r?{x:r.X,y:r.Y,z:r.Z}:{x:Ja,y:Ja,z:Ja},size:t.ChunkSizes?.[n]??2048,numBricks:t.NumBricks[n],numComponents:t.NumComponents[n],numWires:t.NumWires[n]}})}brickChunkSoa(e,t){return this.decode(this.path(`Bricks/Grids/${e}/Chunks/${t.x}_${t.y}_${t.z}.mps`),this.path(`Bricks/ChunksShared.schema`),`BRSavedBrickChunkSoA`)}*bricks(e=1){let t=this.globalData().BasicBrickAssetNames.length;for(let n of this.brickChunkIndex(e))yield*so(this.brickChunkSoa(e,n.index),n.index,t)}entityChunkIndex(){let e=this.decode(this.path(`Entities/ChunkIndex.mps`),this.path(`Entities/ChunkIndex.schema`),`BRSavedEntityChunkIndexSoA`);return{nextPersistentIndex:e.NextPersistentIndex,chunks:e.Chunk3DIndices.map((t,n)=>({index:{x:t.X,y:t.Y,z:t.Z},numEntities:e.NumEntities[n]}))}}componentChunk(e,t){let n=this.path(`Bricks/Grids/${e}/Components/${t.x}_${t.y}_${t.z}.mps`),r=this.fs.findFileByPath(n);if(!r)throw Error(`brdb: file not found: ${n}`);let i=this.fs.readBlob(r.contentId),a=this.schemaAt(this.path(`Bricks/ComponentsShared.schema`),r.createdAt),o=this.globalData(),s=new Gi(i),c=a.readValue(s,`BRSavedComponentChunkSoA`),l=0;for(let e of c.ComponentTypeCounters)l+=e.NumInstances;if(l!==c.ComponentBrickIndices.length)throw Error(`brdb: component counters do not match brick index count`);let u=[],d=0;for(let e of c.ComponentTypeCounters){let t=o.ComponentTypeNames[e.TypeIndex]??`<invalid>`,n=o.ComponentDataStructNames[e.TypeIndex],r=n&&n!==`None`?n:null;for(let n=0;n<e.NumInstances;n++)u.push({typeName:t,structName:r,brickIndex:c.ComponentBrickIndices[d],data:r?a.readValue(s,r):null}),d+=1}if(s.remaining!==0)throw Error(`brdb: ${s.remaining} trailing bytes after component chunk`);return{soa:c,components:u}}wireChunk(e,t){let n=this.decode(this.path(`Bricks/Grids/${e}/Wires/${t.x}_${t.y}_${t.z}.mps`),this.path(`Bricks/WiresShared.schema`),`BRSavedWireChunkSoA`),r=this.globalData(),i=e=>({brickIndex:e.BrickIndexInChunk,componentType:r.ComponentTypeNames[e.ComponentTypeIndex]??`<invalid>`,port:r.ComponentWirePortNames[e.PortIndex]??`<invalid>`});return{local:n.LocalWireSources.map((e,t)=>({source:i(e),target:i(n.LocalWireTargets[t])})),remote:n.RemoteWireSources.map((e,t)=>({source:{...i(e),gridId:e.GridPersistentIndex,chunk:{x:e.ChunkIndex.X,y:e.ChunkIndex.Y,z:e.ChunkIndex.Z}},target:i(n.RemoteWireTargets[t])}))}}entityChunk(e){let t=this.path(`Entities/Chunks/${e.x}_${e.y}_${e.z}.mps`),n=this.fs.findFileByPath(t);if(!n)throw Error(`brdb: file not found: ${t}`);let r=this.fs.readBlob(n.contentId),i=this.schemaAt(this.path(`Entities/ChunksShared.schema`),n.createdAt),a=this.globalData(),o=new Gi(r),s=i.readValue(o,`BRSavedEntityChunkSoA`),c=0;for(let e of s.TypeCounters)c+=e.NumEntities;if(c!==s.PersistentIndices.length)throw Error(`brdb: entity counters do not match persistent index count`);let l=a.EntityDataClassNames??a.EntityTypeNames.map(e=>ea.get(e)??`Unknown`),u=s.bColorsAreLinear??!0,d=[],f=0;for(let e of s.TypeCounters){let t=a.EntityTypeNames[e.TypeIndex]??`<invalid>`,n=l[e.TypeIndex],r=n&&n!==`None`?n:null;for(let n=0;n<e.NumEntities;n++){let e=s.ColorsAndAlphas[f];d.push({typeName:t,className:r,persistentIndex:s.PersistentIndices[f],ownerIndex:s.OwnerIndices[f],originalOwnerIndex:s.OriginalOwnerIndices?.[f]??s.OwnerIndices[f],location:s.Locations[f],rotation:s.Rotations[f],frozen:Rr(s.PhysicsLockedFlags,f),sleeping:Rr(s.PhysicsSleepingFlags,f),linearVelocity:s.LinearVelocities[f],angularVelocity:s.AngularVelocities[f],colors:u?oo(e):e,remainingLifeSpan:s.RemainingLifeSpans?.[f]??0,data:r?i.readValue(o,r):null}),f+=1}}if(o.remaining!==0)throw Error(`brdb: ${o.remaining} trailing bytes after entity chunk`);return d}*entities(){for(let e of this.entityChunkIndex().chunks)yield*this.entityChunk(e.index)}},lo,$=`
|
|
2
|
+
`,uo=`
|
|
3
|
+
`,fo=`CREATE TABLE blobs (${$}blob_id INTEGER PRIMARY KEY,${$}compression INTEGER,${$}size_uncompressed INTEGER,${$}size_compressed INTEGER,${$}delta_base_id INTEGER REFERENCES blobs(blob_id),${$}hash BLOB,${$}content BLOB${uo});\nCREATE TABLE revisions (${$}revision_id INTEGER PRIMARY KEY,${$}description TEXT,${$}created_at INTEGER${uo});\nCREATE TABLE folders (${$}folder_id INTEGER PRIMARY KEY,${$}parent_id INTEGER REFERENCES folders(folder_id),${$}name TEXT,${$}created_at INTEGER,${$}deleted_at INTEGER${uo});\nCREATE TABLE files (${$}file_id INTEGER PRIMARY KEY,${$}parent_id INTEGER REFERENCES folders(folder_id),${$}name TEXT,${$}content_id INTEGER REFERENCES blobs(blob_id),${$}created_at INTEGER,${$}deleted_at INTEGER${uo});\nCREATE INDEX blobs_size_hash ON blobs(size_uncompressed, hash);
|
|
4
|
+
CREATE INDEX folders_parent_name_deleted ON folders(parent_id, name, deleted_at);
|
|
5
|
+
CREATE INDEX files_parent_name_deleted ON files(parent_id, name, deleted_at);`,po=[`blobs`,`revisions`,`folders`,`files`],mo=()=>Math.floor(Date.now()/1e3),ho=e=>typeof Buffer>`u`?e:Buffer.from(e.buffer,e.byteOffset,e.byteLength),go=e=>{try{return typeof process<`u`?process?.getBuiltinModule?.(e)??null:null}catch{return null}},_o=null,vo=e=>(_o??(_o=Function(`specifier`,`return import(specifier)`)),_o(e));async function yo(){try{let e=await(xo.engineLoader??(()=>vo(`better-sqlite3`)))();return e.default??e}catch{throw Error(`brdb: the Brdb openers require better-sqlite3 (npm install better-sqlite3), or wrap your own handle with new Brdb(db)`)}}function bo(){let e=go(`node:zlib`);if(typeof e?.zstdCompressSync!=`function`)return null;let t=e.constants.ZSTD_c_compressionLevel;return n=>new Uint8Array(e.zstdCompressSync(n,{params:{[t]:14}}))}var xo=class e{constructor(e){this.db=e,this.defaultCompress=null;for(let e of po)if(!this.db.prepare(`SELECT name FROM sqlite_schema WHERE type = 'table' AND name = ?`).get(e))throw Error(`brdb: missing required table '${e}'`)}static init(t,n=mo()){t.exec(fo);let r=new e(t);return r.createRevision(`Initial Revision`,n),r}static async wrap(t,n){try{let r=n?e.init(t):new e(t);return r.defaultCompress=bo(),r}catch(e){throw t.close(),e}}static async open(t){return e.wrap(new(await(yo()))(t,{fileMustExist:!0}),!1)}static async openReadonly(t){return e.wrap(new(await(yo()))(t,{readonly:!0,fileMustExist:!0}),!1)}static async create(t){return e.wrap(new(await(yo()))(t),!0)}static async openOrCreate(t){let n=go(`node:fs`);if(!n)throw Error(`brdb: openOrCreate requires node 22.3 or newer; call open or create explicitly`);return n.existsSync(t)?e.open(t):e.create(t)}static async memory(){return e.wrap(new(await(yo()))(`:memory:`),!0)}static async fromBytes(t){return e.wrap(new(await(yo()))(Buffer.from(t)),!1)}toBytes(){let e=this.db.serialize;if(typeof e!=`function`)throw Error(`brdb: toBytes requires a better-sqlite3 database handle`);return new Uint8Array(e.call(this.db))}save(e,t,n={}){this.writePending(e,no(t,n),n)}worldReader(){return new co(this)}sqliteSchema(){return this.db.prepare(`SELECT sql FROM sqlite_schema`).all().map(e=>e.sql).join(`
|
|
6
|
+
`)}createRevision(e,t=mo()){return Number(this.db.prepare(`INSERT INTO revisions (description, created_at) VALUES (?, ?);`).run(e,t).lastInsertRowid)}revisions(){return this.db.prepare(`SELECT revision_id, description, created_at FROM revisions ORDER BY revision_id;`).all().map(e=>({revisionId:Number(e.revision_id),description:String(e.description),createdAt:Number(e.created_at)}))}insertFolder(e,t,n){return Number(this.db.prepare(`INSERT INTO folders (name, parent_id, created_at) VALUES (?, ?, ?);`).run(e,t,n).lastInsertRowid)}insertFile(e,t,n,r){return Number(this.db.prepare(`INSERT INTO files (name, parent_id, content_id, created_at) VALUES (?, ?, ?, ?);`).run(e,t,n,r).lastInsertRowid)}insertBlob(e,t,n){let r=this.findBlobByHash(e.length,t);if(r)return r.blobId;let i=e.length,a=i,o=0,s=e,c=n?n(e):null;return c&&c.length<i&&(a=c.length,o=1,s=c),Number(this.db.prepare(`INSERT INTO blobs (compression, size_uncompressed, size_compressed, delta_base_id, hash, content) VALUES (?, ?, ?, ?, ?, ?);`).run(o,i,a,null,ho(t),ho(s)).lastInsertRowid)}findBlobByHash(e,t){let n=this.db.prepare(`SELECT blob_id, compression, size_uncompressed, size_compressed, delta_base_id, hash, content FROM blobs WHERE hash = ? AND size_uncompressed = ? LIMIT 1;`).get(ho(t),e);return n?So(n):null}findBlob(e){let t=this.db.prepare(`SELECT blob_id, compression, size_uncompressed, size_compressed, delta_base_id, hash, content FROM blobs WHERE blob_id = ?;`).get(e);if(!t)throw Error(`brdb: blob ${e} not found`);return So(t)}deleteFile(e,t){this.db.prepare(`UPDATE files SET deleted_at = ? WHERE file_id = ?;`).run(t,e)}deleteFolder(e,t){this.db.prepare(`UPDATE folders SET deleted_at = ? WHERE folder_id = ?;`).run(t,e)}findFolder(e,t){let n=this.db.prepare(`SELECT folder_id FROM folders WHERE parent_id ${e===null?`IS NULL`:`= ?`} AND name = ? AND deleted_at IS NULL;`).get(...e===null?[t]:[e,t]);return n?Number(n.folder_id):null}findFolderAtRevision(e,t,n){let r=this.db.prepare(`SELECT folder_id FROM folders WHERE parent_id ${e===null?`IS NULL`:`= ?`} AND name = ? AND created_at <= ? AND (deleted_at IS NULL OR deleted_at > ?) ORDER BY created_at ASC LIMIT 1;`).get(...e===null?[t,n,n]:[e,t,n,n]);return r?Number(r.folder_id):null}findFile(e,t){let n=this.db.prepare(`SELECT content_id, created_at FROM files WHERE parent_id ${e===null?`IS NULL`:`= ?`} AND name = ? AND deleted_at IS NULL;`).get(...e===null?[t]:[e,t]);return n?Co(n):null}findFileAtRevision(e,t,n){let r=this.db.prepare(`SELECT content_id, created_at FROM files WHERE parent_id ${e===null?`IS NULL`:`= ?`} AND name = ? AND created_at <= ? AND (deleted_at IS NULL OR deleted_at > ?) ORDER BY created_at ASC LIMIT 1;`).get(...e===null?[t,n,n]:[e,t,n,n]);return r?Co(r):null}close(){this.db.close()}writePending(e,t,n={}){let r=n.createdAt??mo(),i=n.compress===void 0?this.defaultCompress:n.compress;this.db.exec(`BEGIN`);try{this.createRevision(e,r),this.mergeFolder(null,t,r,i),this.db.exec(`COMMIT`)}catch(e){try{this.db.exec(`ROLLBACK`)}catch{}throw e}}currentFolders(e){let t=this.db.prepare(`SELECT folder_id, name FROM folders WHERE parent_id ${e===null?`IS NULL`:`= ?`} AND deleted_at IS NULL ORDER BY name;`);return(e===null?t.all():t.all(e)).map(e=>({folderId:Number(e.folder_id),name:String(e.name)}))}currentFiles(e){let t=this.db.prepare(`SELECT file_id, name, content_id FROM files WHERE parent_id ${e===null?`IS NULL`:`= ?`} AND deleted_at IS NULL ORDER BY name;`);return(e===null?t.all():t.all(e)).map(e=>({fileId:Number(e.file_id),name:String(e.name),contentId:e.content_id===null?null:Number(e.content_id)}))}mergeFolder(e,t,n,r){let i=new Map(this.currentFolders(e).map(e=>[e.name,e.folderId])),a=new Map(this.currentFiles(e).map(e=>[e.name,e])),o=new Set;for(let[s,c]of t){if(o.has(s))throw Error(`brdb: duplicate name '${s}' in pending tree`);if(o.add(s),c.type===`folder`){if(a.has(s))throw Error(`brdb: pending folder '${s}' collides with an existing file`);let t=i.get(s);t===void 0?this.insertPending(s,e,c,n,r):this.mergeFolder(t,c.children,n,r)}else{if(i.has(s))throw Error(`brdb: pending file '${s}' collides with an existing folder`);let t=a.get(s);if(t===void 0){this.insertPending(s,e,c,n,r);continue}let o=gi(c.content),l=this.findBlobByHash(c.content.length,o);if(l&&t.contentId===l.blobId)continue;this.deleteFile(t.fileId,n);let u=this.insertBlob(c.content,o,r);this.insertFile(s,e,u,n)}}for(let[e,t]of i)o.has(e)||this.deleteFolderRecursive(t,n);for(let[e,t]of a)o.has(e)||this.deleteFile(t.fileId,n)}insertPending(e,t,n,r,i){if(n.type===`folder`){let a=this.insertFolder(e,t,r),o=new Set;for(let[e,t]of n.children){if(o.has(e))throw Error(`brdb: duplicate name '${e}' in pending tree`);o.add(e),this.insertPending(e,a,t,r,i)}}else{let a=this.insertBlob(n.content,gi(n.content),i);this.insertFile(e,t,a,r)}}deleteFolderRecursive(e,t){this.deleteFolder(e,t);for(let n of this.currentFolders(e))this.deleteFolderRecursive(n.folderId,t);for(let n of this.currentFiles(e))this.deleteFile(n.fileId,t)}folderIdOf(e,t){if(e===``)return null;let n=null;for(let r of e.split(`/`)){let e=t===void 0?this.findFolder(n,r):this.findFolderAtRevision(n,r,t)??this.findFolder(n,r);if(e===null)return null;n=e}return n}findFileByPath(e){if(e.startsWith(`/`))throw Error(`brdb: absolute paths not allowed`);let t=e.lastIndexOf(`/`),n=t===-1?``:e.slice(0,t),r=this.folderIdOf(n);return n!==``&&r===null?null:this.findFile(r,e.slice(t+1))}findFileByPathAtRevision(e,t){if(e.startsWith(`/`))throw Error(`brdb: absolute paths not allowed`);let n=e.lastIndexOf(`/`),r=n===-1?``:e.slice(0,n),i=this.folderIdOf(r,t);return r!==``&&i===null?null:this.findFileAtRevision(i,e.slice(n+1),t)}childFolders(e){let t=this.folderIdOf(e);return e!==``&&t===null?[]:this.currentFolders(t).map(e=>e.name)}childFiles(e){let t=this.folderIdOf(e);return e!==``&&t===null?[]:this.currentFiles(t).map(e=>e.name)}readBlob(e){if(e===-1)return new Uint8Array;let t=this.findBlob(e);if(t.deltaBaseId!==null)throw Error(`brdb: delta blobs are not supported`);let n=t.content;if(t.compression===1)n=Ui(n,new Uint8Array(t.sizeUncompressed));else if(t.compression!==0)throw Error(`brdb: unknown blob compression ${t.compression}`);if(n.length!==t.sizeUncompressed)throw Error(`brdb: blob uncompressed size mismatch`);return n}readFile(e){let t=this.findFileByPath(e);if(!t)throw Error(`brdb: file not found: ${e}`);return this.readBlob(t.contentId)}toPending(){let e=t=>{let n=[];for(let r of this.currentFolders(t))n.push([r.name,{type:`folder`,children:e(r.folderId)}]);for(let e of this.currentFiles(t))n.push([e.name,{type:`file`,content:this.readBlob(e.contentId??-1)}]);return n};return e(null)}};lo=xo,lo.engineLoader=null;var So=e=>({blobId:Number(e.blob_id),compression:Number(e.compression),sizeUncompressed:Number(e.size_uncompressed),sizeCompressed:Number(e.size_compressed),deltaBaseId:e.delta_base_id===null?null:Number(e.delta_base_id),hash:new Uint8Array(e.hash),content:new Uint8Array(e.content)}),Co=e=>({contentId:e.content_id===null?-1:Number(e.content_id),createdAt:Number(e.created_at)}),wo=n({BRDB_SQLITE_SCHEMA:()=>fo,BitFlags:()=>zr,Brdb:()=>xo,BrdbSchema:()=>Wa,BrzReader:()=>qi,ByteReader:()=>Gi,ByteWriter:()=>Wi,CHUNK_HALF:()=>Ja,CHUNK_SIZE:()=>qa,MAIN_GRID:()=>1,PUBLIC_GUID:()=>ta,WorldReader:()=>co,bit:()=>Rr,embeddedSchema:()=>Ka,file:()=>X,folder:()=>ia,guidToUuid:()=>ra,isProceduralAsset:()=>Qi,msgpack:()=>aa,saveToPendingFs:()=>no,toRelative:()=>Za,uuidToGuid:()=>na,writeBrzContainer:()=>Ki,writeBrzLegacy:()=>ro}),To={read:jr,write:Pr,utils:nr,constants:r,types:Fr,brdb:wo};typeof window<`u`&&(window.BRS=To),e.Brdb=xo,e.Direction=Ir,e.Rotation=Lr,e.WorldReader=co,Object.defineProperty(e,"brdb",{enumerable:!0,get:function(){return wo}}),Object.defineProperty(e,"constants",{enumerable:!0,get:function(){return r}}),e.default=To,e.read=jr,Object.defineProperty(e,"types",{enumerable:!0,get:function(){return Fr}}),Object.defineProperty(e,"utils",{enumerable:!0,get:function(){return nr}}),e.write=Pr,e.writeBrzLegacy=ro});
|
|
2
7
|
//# sourceMappingURL=dist.js.map
|