@rpack-dev/core 0.1.5-dev-5f45af2 → 0.1.5-dev-439b85d

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1,2 @@
1
- !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.RPack=t():e.RPack=t()}(globalThis,()=>(()=>{"use strict";var e={d:(t,r)=>{for(var s in r)e.o(r,s)&&!e.o(t,s)&&Object.defineProperty(t,s,{enumerable:!0,get:r[s]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.r(t),e.d(t,{AsyncIterableIteratorMirror:()=>s,DefaultPublicRegistryOptions:()=>d,DefaultRegistryOptions:()=>c,FilteredIterableIterator:()=>p,LazyBatchedAsyncIterableIterator:()=>A,LazyPromise:()=>i,LocalObject:()=>m,LocalRegistry:()=>P,LocalRemoteMap:()=>a,Messenger:()=>v,NetworkManager:()=>M,PluginThread:()=>S,ProxyManager:()=>h,RPPlatform:()=>T,RPPlugin:()=>k,RPVersion:()=>j,RegistryManager:()=>I,RemoteAsyncIterator:()=>r,RemoteObject:()=>R,RemoteProxyManager:()=>l,RemoteRegistry:()=>b,RemoteRegistryManager:()=>E,StringUtils:()=>o,Utils:()=>n,default:()=>O});class r{constructor(e,t){this.manager=e,this.iteratorKeySupplier=t,this.iteratorKey=null,this.iteratorKeyPromise=null,this.finished=!1}[Symbol.asyncIterator](){return this}async getIteratorKey(){return null!==this.iteratorKey?this.iteratorKey:null!==this.iteratorKeyPromise?this.iteratorKeyPromise:this.iteratorKeyPromise=this.iteratorKeySupplier().then(e=>this.iteratorKey=e)}async next(...[e]){if(this.finished)return{done:!0,value:void 0};let t=await this.manager.requestRemoteIteratorNext(await this.getIteratorKey(),e);return t.done&&(this.finished=!0),t}async return(e){return this.finished||(this.manager.requestRemoteIteratorClose(await this.getIteratorKey()),this.finished=!0),{done:!0,value:e}}async throw(e){throw this.finished||(this.manager.requestRemoteIteratorClose(await this.getIteratorKey()),this.finished=!0),e}}class s{constructor(e,t=e=>e){this.it=e,this.converter=t}[Symbol.asyncIterator](){return this}async next(...e){let t=this.it.next(...e);return void 0!==t.value&&(t.value=this.converter(t.value)),t}async return(e){if(void 0!==this.it.return){let t=this.it.return(e);return void 0!==t.value&&(t.value=this.converter(t.value)),t}return{done:!0,value:e}}async throw(e){if(void 0!==this.it.throw){let t=this.it.throw(e);return void 0!==t.value&&(t.value=this.converter(t.value)),t}throw e}}class i{constructor(e){this.promise=new Promise((e,t)=>{this.resolveFunc=e,this.rejectFunc=t}),this.completed=!1,this.errored=!1,e?.then(this.resolve,this.reject)}resolve(e){this.completed||(this.completed=!0,this.errored=!1,this.resolveFunc(e))}reject(e){this.completed||(this.completed=!0,this.errored=!0,this.rejectFunc(e))}getPromise(){return this.promise}then(e,t){return this.promise.then(e,t)}isComplete(){return this.completed}isErrored(){return this.errored}}class n{static NATURAL_COLLATOR=new Intl.Collator(void 0,{numeric:!0});static async getLargeFile(e,t,r){let s=await fetch(e,t);if(!s.body)return;let i=s.body.getReader(),n=[],o=0,a=s.headers.get("Content-Length"),l=null==a?0:parseInt(a);for(r||(r=()=>{});;){let e=await i.read();if(e.done)break;o+=e.value.length,r(o,l),n.push(e.value)}return await new Blob(n).arrayBuffer()}static binarySearch(e,t,r){let s=0,i=e.length-1;for(;s<=i;){let n=i+s>>1,o=r(t,e[n]);if(o>0)s=n+1;else{if(!(o<0))return n;i=n-1}}return-s-1}static binarySearch2(e,t,r,s){let i=0,n=e.length-1;for(;i<=n;){let o=n+i>>1,a=s(t,r(e[o]));if(a>0)i=o+1;else{if(!(a<0))return o;n=o-1}}return-i-1}static loadImageAsync(e){let t=new i;const r=new Image;return r.onload=()=>t.resolve(r),r.onerror=t.reject,r.src=e,t.getPromise()}static naturalComparator(e=e=>e?e.toString():"null"){return(t,r)=>this.NATURAL_COLLATOR.compare(e(t),e(r))}static naturalSort(e,t=e=>e?e.toString():"null"){return e.sort(this.naturalComparator(t)),e}static async asyncSort(e,t){if(e.length<=1)return e;const r=Math.floor(e.length/2);let s=await this.asyncSort(e.slice(0,r),t),i=await this.asyncSort(e.slice(r),t),n=0,o=0,a=0;for(;n<s.length&&o<i.length;)await t(s[n],i[o])<=0?(e[a]=s[n],n++):(e[a]=i[o],o++),a++;for(;n<s.length;)e[a]=s[n],n++,a++;for(;o<i.length;)e[a]=i[o],o++,a++;return e}static tableString(e,t,r){let s,i=["|"],n=" ",o="left";r&&(void 0!==r.separator&&(i=r.separator instanceof Array?r.separator:[r.separator]),void 0!==r.headers&&(s=r.headers),void 0!==r.padding&&(n=r.padding),void 0!==r.textAlign&&(o=r.textAlign));let a=e.map(e=>t(e)),l=[];for(let e of a)for(let t=0;t<e.length;t++)"number"==typeof l[t]?l[t]=Math.max(l[t],e[t].length):l[t]=e[t].length;if(s)for(let e=0;e<s.length;e++)"number"==typeof l[e]?l[e]=Math.max(l[e],s[e].length):l[e]=s[e].length;if("right"==o){if(s)for(let e=0;e<s.length;e++)s[e]=n+s[e].padStart(l[e]," ")+n;for(let e of a)for(let t=0;t<e.length;t++)e[t]=n+e[t].padStart(l[t]," ")+n}else if("center"==o){if(s)for(let e=0;e<s.length;e++)s[e]=n+s[e].padEnd(Math.ceil((l[e]-s[e].length)/2)+s[e].length," ").padStart(l[e]," ")+n;for(let e of a)for(let t=0;t<e.length;t++)e[t]=n+e[t].padEnd(Math.ceil((l[t]-e[t].length)/2)+e[t].length," ").padStart(l[t]," ")+n}else{if(s)for(let e=0;e<s.length;e++)s[e]=n+s[e].padEnd(l[e]," ")+n;for(let e of a)for(let t=0;t<e.length;t++)e[t]=n+e[t].padEnd(l[t]," ")+n}let h="";if(s){let e="";for(let t=0;t<s.length;t++){if(t>0){let r=i[(t-1)%i.length];h+=r,e+=r}h+=s[t],e+="-".repeat(s[t].length)}h+="\n"+e+"\n"}for(let e=0;e<a.length;e++){let t=a[e];e>0&&(h+="\n");for(let e=0;e<t.length;e++)e>0&&(h+=i[e%i.length]),h+=t[e]}return h}static getEnumKeys(e){let t=[];for(let r of Object.getOwnPropertyNames(e))isNaN(parseInt(r))&&t.push(r);return t}static getEnumConstants(e){let t=[];for(let r of Object.getOwnPropertyNames(e))if(isNaN(parseInt(r))){let s=e[r];t.push(s)}return t}static presentOrDefault(e,t){return void 0===e?t:e}static generateRandomInt(e,t){return void 0===t&&(t=e,e=0),t=Math.floor(t),(e=Math.ceil(e))+Math.floor(Math.random()*(t-e))}static pickRandomElement(e){let t=Object.keys(e);return e[t[this.generateRandomInt(t.length)]]}}class o{static LOWERCASE_LETTERS="abcdefghijklmnopqrstuvwxyz";static UPPERCASE_LETTERS="ABCDEFGHIJKLMNOPQRSTUVWXYZ";static NUMBERS="0123456789";static LOWERCASE_UPPERCASE=o.LOWERCASE_LETTERS+o.UPPERCASE_LETTERS;static ALPHANUMERIC=o.LOWERCASE_UPPERCASE+o.NUMBERS;static generateNonce(){return this.generateString(this.ALPHANUMERIC,20)}static generateString(e,t){let r="";for(let s=0;s<t;s++)r+=n.pickRandomElement(e);return r}static capitalize(e){return e.substring(0,1).toUpperCase()+e.substring(1)}static count(e,t){return(e.match(new RegExp(this.escapeRegExp(t),"g"))||[]).length}static escapeRegExp(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}}class a{constructor(e,t,r,s){this.parent=e,this.localMap=new Map,this.remoteSet=new Set,this.registry=new FinalizationRegistry(e=>{this.remoteSet.delete(e)&&t.sendPacket({id:"proxy:cleanup",type:r,key:e})}),t.addHandler("proxy:cleanup",e=>{if(e.type!=r)return;let t=this.delete(e.key);void 0!==t&&void 0!==s&&s(t)})}generateKey(e){for(;;){let t=o.generateNonce();if(!this.localMap.has(t))return this.localMap.set(t,e),t}}addLocal(e,t){return t?(this.localMap.set(t,e),t):this.generateKey(e)}get(e){return this.localMap.get(e)}delete(e){let t=this.localMap.get(e);return this.localMap.delete(e),t}registerRemote(e,t){this.registry.register(t,e)}has(e){return this.localMap.has(e)}hasRemote(e){return this.remoteSet.has(e)}deleteRemote(e){return this.remoteSet.delete(e)}}class l{constructor(e,t,r){this.parent=e,this.threadId=t,this.messenger=r,this.objects=new a(this,r,"object"),this.functions=new a(this,r,"function"),this.iterators=new a(this,r,"iterator",e=>{e.return&&e.return().then()}),this.messenger.addHandler("proxy:refresh_object_request",this.onObjectRefresh.bind(this)),this.messenger.addHandler("proxy:method_request",this.onMethod.bind(this)),this.messenger.addHandler("proxy:function_request",this.onFunction.bind(this)),this.messenger.addHandler("proxy:create_iterator_request",this.onIteratorCreate.bind(this)),this.messenger.addHandler("proxy:iterator_next_request",this.onIteratorNext.bind(this)),this.messenger.addHandler("proxy:iterator_close_request",this.onIteratorClose.bind(this))}getThreadId(){return this.threadId}serialize(e,t){return this.parent.getRPack().getNetworkManager().serialize(this.threadId,e,t)}deserialize(e){return this.parent.getRPack().getNetworkManager().deserialize(this.threadId,e)}sendValue(e,t,r,s){this.messenger.sendPacket({id:e,nonce:t,value:this.serialize(r),...s})}sendError(e,t,r){this.messenger.sendPacket({id:e,nonce:t,error:this.serialize(r)})}sendErrorRaw(e,t,r){this.sendError(e,t,new Error(r))}onObjectRefresh(e){let t=e.objectKey;if(!this.objects.has(t))return void this.sendErrorRaw("proxy:refresh_object_response",e.nonce,"Unknown object key "+t);let r=this.objects.get(t);this.sendValue("proxy:refresh_object_response",e.nonce,r)}onMethod(e){let t=e.objectKey;if(!this.objects.has(t))return void this.sendErrorRaw("proxy:method_response",e.nonce,"Unknown object key "+t);let r=this.objects.get(t),s=e.method;if(!(s in r))return void this.sendErrorRaw("proxy:method_response",e.nonce,"Property "+s+" is not present in object "+t);let i=r[s],n=e.args.map(e=>this.deserialize(e)),o=i.apply(r,n);Promise.resolve(o).then(t=>{this.sendValue("proxy:method_response",e.nonce,t)},t=>{this.sendError("proxy:method_response",e.nonce,t)})}onFunction(e){let t=e.functionKey;if(!this.functions.has(t))return void this.sendErrorRaw("proxy:function_response",e.nonce,"Unknown function key "+t);let r=this.functions.get(t)(...e.args.map(e=>this.deserialize(e)));Promise.resolve(r).then(t=>{this.sendValue("proxy:function_response",e.nonce,t)},t=>{this.sendError("proxy:function_response",e.nonce,t)})}onIteratorCreate(e){let t=e.objectKey;if(!this.objects.has(t))return void this.sendErrorRaw("proxy:create_iterator_response",e.nonce,"Unknown object key "+t);let r,s=this.objects.get(t);if(s[Symbol.iterator]){let e=s[Symbol.iterator]();r=this.declareLocalIterator(e)}else{if(!s[Symbol.asyncIterator])return void this.sendErrorRaw("proxy:create_iterator_response",e.nonce,"Object "+t+" is not iterable");{let e=s[Symbol.asyncIterator]();r=this.declareLocalAsyncIterator(e)}}this.messenger.sendPacket({id:"proxy:create_iterator_response",nonce:e.nonce,iteratorKey:r})}onIteratorNext(e){let t=e.iteratorKey,r=void 0===e.value?void 0:this.deserialize(e.value);this.iterators.has(t)?this.iterators.get(t).next(r).then(t=>{this.sendValue("proxy:iterator_next_response",e.nonce,t.value,{done:t.done??!1})},t=>{this.sendError("proxy:iterator_next_response",e.nonce,t)}):this.sendErrorRaw("proxy:iterator_next_response",e.nonce,"Unknown iterator key "+t)}onIteratorClose(e){let t=e.iteratorKey;if(this.iterators.has(t)){let e=this.iterators.get(t);e.return&&e.return().then(),this.iterators.delete(t)}}declareLocalObject(e,t){return this.objects.addLocal(e,t)}declareLocalIterator(e){return this.iterators.addLocal(new s(e))}declareLocalAsyncIterator(e){return this.iterators.addLocal(e)}declareFunction(e){return this.functions.addLocal(e)}declareRemoteIterator(e,t){this.iterators.registerRemote(e,t)}requestRemoteObjectIterator(e){let t=new r(this,async()=>{const r=await this.messenger.sendPacketWithNoncePromise("proxy:create_iterator_request",{objectKey:e},"proxy:create_iterator_response");if(r.error)throw this.deserialize(r.error);let s=r.iteratorKey;return this.declareRemoteIterator(s,t),s});return t}async requestRemoteIteratorNext(e,t){if(!this.iterators.hasRemote(e))return{done:!0,value:void 0};let r=await this.messenger.sendPacketWithNoncePromise("proxy:iterator_next_request",{iteratorKey:e,value:void 0===t?void 0:this.serialize(t)},"proxy:iterator_next_response");if(r.error)throw this.deserialize(r.error);{let e=this.deserialize(r.value);return{done:r.done,value:e}}}requestRemoteIteratorClose(e){this.iterators.hasRemote(e)&&(this.messenger.sendPacket({id:"proxy:iterator_close_request",iteratorKey:e}),this.iterators.deleteRemote(e))}async refreshRemote(e){let t=await this.messenger.sendPacketWithNoncePromise("proxy:refresh_object_request",{objectKey:e},"proxy:refresh_object_response");if(t.error)throw this.deserialize(t.error);let r=this.deserialize(t.value);return this.objects.registerRemote(e,r),r}async requestRemoteMethod(e,t,r){let s=await this.messenger.sendPacketWithNoncePromise("proxy:method_request",{objectKey:e,method:t,args:r.map(e=>this.serialize(e))},"proxy:method_response");if(s.error)throw this.deserialize(s.error);return this.deserialize(s.value)}async requestRemoteFunction(e,t){let r=await this.messenger.sendPacketWithNoncePromise("proxy:function_request",{functionKey:e,args:t.map(e=>this.serialize(e))},"proxy:function_response");if(r.error)throw this.deserialize(r.error);return this.deserialize(r.value)}}class h{constructor(e){this.rpack=e,this.remotes=new Map}createRemote(e,t){let r=new l(this,e,t);return this.remotes.set(e,r),r}getRPack(){return this.rpack}getRemote(e){return this.remotes.get(e)}}const d={localsAreProxied:!1,verifyLocals:!0,allowShared:!1},c={...d};let g;var u;(u=g||(g={})).withDefaultOptions=function(e){let t={...c};if(void 0!==e)for(let r in c)r in e&&(t[r]=e[r]);return t},u.withPublicDefaultOptions=function(e){let t={...d};if(void 0!==e)for(let r in d)r in e&&(t[r]=e[r]);return t};const y=g;class p{constructor(e,t,r=!0){this.it=e,this.filter=r?t:e=>void 0!==e&&t(e)}[Symbol.iterator](){return this}next(...e){for(;;){let t=this.it.next(...e);if(this.filter(t.value)||t.done)return t}}return(e){return void 0!==this.it.return?this.it.return(e):{done:!0,value:e}}throw(e){if(void 0!==this.it.throw)return this.it.throw(e);throw e}}class m{get(e,t,r){let s=e[t];return"function"==typeof s?(...r)=>Promise.resolve(e[t](...r)):s}}let f,w=Symbol("isProxy"),_=Symbol("getFunctions");class R{constructor(e,t,r,s,i,n){this.remoteProxy=e,this.objectKey=t,this.typeName=r,this.knownProps=new Map;for(let[t,r]of Object.entries(s))this.knownProps.set(t,e.deserialize(r));this.functions=i,this.iterable=n}get(e,t,r){if(t===Symbol.asyncIterator){if(!this.iterable)return;return()=>{this.remoteProxy.requestRemoteObjectIterator(this.objectKey)}}if(t===w)return!0;if(t===_)return this.functions;if("symbol"!=typeof t){if("constructor"===t){let e=()=>{throw new Error("Cannot call constructor of remote object")};return Object.defineProperty(e,"name",{value:this.typeName}),e}return this.knownProps.has(t)?this.knownProps.get(t):this.functions.includes(t)?(...e)=>this.remoteProxy.requestRemoteMethod(this.objectKey,t,e):void 0}}ownKeys(e){return[...this.knownProps.keys()]}getOwnPropertyDescriptor(e,t){if("symbol"!=typeof t)return this.knownProps.has(t)?{enumerable:!0,configurable:!0}:void 0}has(e,t){return t===Symbol.asyncIterator?this.iterable:!("symbol"==typeof t||!this.knownProps.has(t)&&!this.functions.includes(t))}static fromObject(e,t){return new R(e,t.objectKey,t.typeName,{},t.functions,t.iterable)}static fromRegistryEntry(e,t){return new R(e,t.objectKey,t.typeName,t.props,t.functions,t.iterable)}static isProxy(e){return!0===e[w]}static getFunctions(e){return this.isProxy(e)?e[_]:[]}}class P{constructor(e,t,r){this.manager=e,this.options=r,this.publicOptions=y.withPublicDefaultOptions(r),this.registryId=t,this.map=new Map}getRegistryManager(){return this.manager}getRegistryId(){return this.registryId}getOptions(){return this.publicOptions}getAllEntriesByThread(e){let t=new p(this.map.values(),t=>t.ownerThread===e);return new s(t)}getAllEntries(){return new s(this.map.values())}getAll(){return new s(this.map.values(),e=>e.data)}async get(e){let t=this.map.get(e);if(t)return t.data}async getEntry(e){return this.map.get(e)}async has(e){return this.map.has(e)}async add(e,t){return!this.map.has(e)&&(this.__localAdd(e,this.manager.getRPack().getNetworkManager().getCurrentThreadId(),t),!0)}async remove(e){return this.map.delete(e)}async size(){return this.map.size}__removeAll(e){for(let[t,r]of this.map)r.ownerThread===e&&this.map.delete(t)}__localAdd(e,t,r){if(this.map.has(e)&&this.map.get(e).ownerThread!==t)return!1;if(this.options.localsAreProxied&&!R.isProxy(r)&&"object"==typeof r&&(r=new Proxy(r,new m)),!this.options.allowShared&&null===t)throw new Error("Shared values are not allowed due to allowShared being set to false.");return this.map.set(e,{key:e,ownerThread:t,data:r}),!0}__localRemove(e,t){return(!this.map.has(e)||this.map.get(e).ownerThread===t)&&this.map.delete(e)}__localGet(e){return this.map.get(e)?.data}}class b{constructor(e,t,r,s){this.manager=e,this.options=s,this.remoteThread=t,this.registryId=r,this.localEntries=new Map}getRemote(){return this.manager.getRemote(this.remoteThread)}getRegistryManager(){return this.manager}getRegistryId(){return this.registryId}getOptions(){return this.options}get(e){return this.localEntries.has(e)?(this.options.verifyLocals,Promise.resolve(this.localEntries.get(e).data)):this.getRemote().requestGet(this.registryId,e)}getEntry(e){return this.localEntries.has(e)?(this.options.verifyLocals,Promise.resolve(this.localEntries.get(e))):this.getRemote().requestGetEntry(this.registryId,e)}getAllEntriesByThread(e){return this.getRemote().requestGetAllEntriesByThread(this.registryId,e)}getAllEntries(){return this.getRemote().requestGetAllEntries(this.registryId)}getAll(){return this.getRemote().requestGetAll(this.registryId)}has(e){return this.getRemote().requestHas(this.registryId,e)}async add(e,t){return this.__localAdd(e,this.manager.getRPack().getNetworkManager().getCurrentThreadId(),t),this.getRemote().requestAdd(this.registryId,null,e,t).then(t=>(t||this.localEntries.delete(e),t))}remove(e){return this.getRemote().requestRemove(this.registryId,null,e)}size(){return this.getRemote().requestSize(this.registryId)}__forwardAdd(e,t,r){return this.getRemote().requestAdd(this.registryId,t,e,r)}__forwardRemove(e,t){return this.getRemote().requestRemove(this.registryId,t,e)}__localAdd(e,t,r){if(this.localEntries.has(e)&&this.localEntries.get(e).ownerThread!==t)return!1;if(this.options.localsAreProxied&&!R.isProxy(r)&&"object"==typeof r&&(r=new Proxy(r,new m)),!this.options.allowShared&&null===t)throw new Error("Shared values are not allowed due to allowShared being set to false.");return this.localEntries.set(e,{key:e,ownerThread:t,data:r}),!0}__localGet(e){return this.localEntries.get(e)?.data}}class v{constructor(e){this.handlerLists={},this.sender=e}getHandlerList(e){let t=this.handlerLists[e];return t||(t=[],this.handlerLists[e]=t),t}addHandler(e,t){this.getHandlerList(e).splice(0,0,t)}removeHandler(e,t){let r=this.getHandlerList(e),s=r.indexOf(t);return s>-1&&(r.splice(s,1),!0)}promiseHandlerImpl(e,t,r){let s,i,n=new Promise((e,t)=>{s=e,i=t});return e.push(e=>t(e,s)),void 0!==r&&setTimeout(()=>{i("Timeout was reached: "+r)},r),n}addPromiseNonceHandler(e,t,r){return this.promiseHandlerImpl(this.getHandlerList(e),(e,r)=>{if(e.nonce==t)return r(e),!1},r)}addPromiseHandler(e,t){return this.promiseHandlerImpl(this.getHandlerList(e),(e,t)=>(t(e),!1),t)}receivePacket(e){let t=e.id,r=this.getHandlerList(t);if(r)for(let t=r.length-1;t>=0;t--)!1===(0,r[t])(e)&&r.splice(t,1)}sendPacket(e){this.sender(e)}sendPacketWithNoncePromise(e,t,r,s){let i=o.generateNonce(),n=this.addPromiseNonceHandler(r,i,s);return this.sendPacket({...t,id:e,nonce:i}),n}static cast(e){return e}}class k{getRPack(){return this.rpack}async onInit(){}async onShutdown(){}static __setInstance(e,t){void 0===e.rpack&&(e.rpack=t)}}class E{constructor(e,t,r){this.parent=e,this.remoteThreadId=t,this.messenger=r,r.addHandler("registry:add_request",this.onAdd.bind(this)),r.addHandler("registry:has_request",this.onHas.bind(this)),r.addHandler("registry:remove_request",this.onRemove.bind(this)),r.addHandler("registry:size_request",this.onSize.bind(this)),r.addHandler("registry:get_request",this.onGet.bind(this)),r.addHandler("registry:get_entry_request",this.onGetEntry.bind(this)),r.addHandler("registry:get_all_entries_request",this.onGetAllEntries.bind(this)),r.addHandler("registry:get_all_entries_by_thread_request",this.onGetAllEntriesByThread.bind(this)),r.addHandler("registry:get_all_request",this.onGetAll.bind(this))}getCurrentThread(){return this.parent.getRPack().getNetworkManager().getCurrentThreadId()}getRemote(){return this.parent.getRPack().getProxyManager().getRemote(this.remoteThreadId)}serialize(e,t){return this.parent.getRPack().getNetworkManager().serialize(this.remoteThreadId,e,t)}deserialize(e){return this.parent.getRPack().getNetworkManager().deserialize(this.remoteThreadId,e)}sendError(e,t,r){this.messenger.sendPacket({id:e,nonce:t,error:this.serialize(r)})}sendErrorRaw(e,t,r){this.sendError(e,t,new Error(r))}async onAdd(e){let t=await this.parent.getRegistry(e.registryId);if(void 0===t)return void this.sendErrorRaw("registry:add_response",e.nonce,"Unknown registry "+e.registryId);let r=e.ownerThread;if(r!==this.remoteThreadId&&this.remoteThreadId!==M.HOST_THREAD_ID)return void this.sendErrorRaw("registry:add_response",e.nonce,"Non-host threads cannot forward registry requests");let s=this.deserialize(e.value);if(t instanceof b)t.__forwardAdd(e.key,r,s).then(t=>{this.messenger.sendPacket({id:"registry:add_response",nonce:e.nonce,value:t})},t=>{this.sendError("registry:add_response",e.nonce,t)});else if(t instanceof P){let i=t.__localAdd(e.key,r,s);this.messenger.sendPacket({id:"registry:add_response",nonce:e.nonce,value:i})}else this.sendErrorRaw("registry:add_response",e.nonce,"Weird registry type: "+t.constructor.name)}async onHas(e){let t=await this.parent.getRegistry(e.registryId);if(void 0!==t)return t.has(e.key).then(t=>{this.messenger.sendPacket({id:"registry:has_response",nonce:e.nonce,value:t})},t=>{this.sendError("registry:has_response",e.nonce,t)});this.sendErrorRaw("registry:has_response",e.nonce,"Unknown registry "+e.registryId)}async onRemove(e){let t=await this.parent.getRegistry(e.registryId);if(void 0===t)return void this.sendErrorRaw("registry:remove_response",e.nonce,"Unknown registry "+e.registryId);let r=e.ownerThread;if(r===this.remoteThreadId||this.remoteThreadId===M.HOST_THREAD_ID)if(t instanceof b)t.__forwardRemove(e.key,r).then(t=>{this.messenger.sendPacket({id:"registry:remove_response",nonce:e.nonce,value:t})},t=>{this.sendError("registry:remove_response",e.nonce,t)});else if(t instanceof P){let s=t.__localRemove(e.key,r);this.messenger.sendPacket({id:"registry:remove_response",nonce:e.nonce,value:s})}else this.sendErrorRaw("registry:remove_response",e.nonce,"Weird registry type: "+t.constructor.name);else this.sendErrorRaw("registry:remove_response",e.nonce,"Non-host threads cannot forward registry requests")}async onSize(e){let t=await this.parent.getRegistry(e.registryId);if(void 0!==t)return t.size().then(t=>{this.messenger.sendPacket({id:"registry:size_response",nonce:e.nonce,value:t})},t=>{this.sendError("registry:size_response",e.nonce,t)});this.sendErrorRaw("registry:size_response",e.nonce,"Unknown registry "+e.registryId)}async onGet(e){let t=await this.parent.getRegistry(e.registryId);if(void 0!==t)return t.get(e.key).then(t=>{this.messenger.sendPacket({id:"registry:get_response",nonce:e.nonce,value:this.serialize(t,{objectMode:"registry"})})},t=>{this.sendError("registry:get_response",e.nonce,t)});this.sendErrorRaw("registry:get_response",e.nonce,"Unknown registry "+e.registryId)}async onGetEntry(e){let t=await this.parent.getRegistry(e.registryId);if(void 0!==t)return t.getEntry(e.key).then(t=>{void 0!==t?this.messenger.sendPacket({id:"registry:get_entry_response",nonce:e.nonce,value:{key:this.serialize(t.key),ownerThread:t?.ownerThread,data:this.serialize(t.key,{objectMode:"registry"})}}):this.messenger.sendPacket({id:"registry:get_entry_response",nonce:e.nonce,value:null})},t=>{this.sendError("registry:get_entry_response",e.nonce,t)});this.sendErrorRaw("registry:get_entry_response",e.nonce,"Unknown registry "+e.registryId)}async onGetAllEntries(e){let t=await this.parent.getRegistry(e.registryId);if(void 0===t)return void this.sendErrorRaw("registry:get_all_entries_response",e.nonce,"Unknown registry "+e.registryId);let r=this.getRemote(),s=t.getAllEntries(),i=r.declareLocalAsyncIterator(s);this.messenger.sendPacket({id:"registry:get_all_entries_response",nonce:e.nonce,iteratorKey:i})}async onGetAllEntriesByThread(e){let t=await this.parent.getRegistry(e.registryId);if(void 0===t)return void this.sendErrorRaw("registry:get_all_entries_by_thread_response",e.nonce,"Unknown registry "+e.registryId);let r=this.getRemote(),s=t.getAllEntriesByThread(e.ownerThread),i=r.declareLocalAsyncIterator(s);this.messenger.sendPacket({id:"registry:get_all_entries_by_thread_response",nonce:e.nonce,iteratorKey:i})}async onGetAll(e){let t=await this.parent.getRegistry(e.registryId);if(void 0===t)return void this.sendErrorRaw("registry:get_all_response",e.nonce,"Unknown registry "+e.registryId);let r=this.getRemote(),s=t.getAll(),i=r.declareLocalAsyncIterator(s);this.messenger.sendPacket({id:"registry:get_all_response",nonce:e.nonce,iteratorKey:i})}async requestAdd(e,t,r,s){let i=await this.messenger.sendPacketWithNoncePromise("registry:add_request",{registryId:e,ownerThread:t??this.getCurrentThread(),key:r,value:this.serialize(s,{objectMode:"registry"})},"registry:add_response");if(i.error)throw this.deserialize(i.error);return i.value}async requestHas(e,t){let r=await this.messenger.sendPacketWithNoncePromise("registry:has_request",{registryId:e,key:t},"registry:has_response");if(r.error)throw this.deserialize(r.error);return r.value}async requestRemove(e,t,r){let s=await this.messenger.sendPacketWithNoncePromise("registry:remove_request",{registryId:e,ownerThread:t??this.getCurrentThread(),key:r},"registry:remove_response");if(s.error)throw this.deserialize(s.error);return s.value}async requestSize(e){let t=await this.messenger.sendPacketWithNoncePromise("registry:size_request",{registryId:e},"registry:size_response");if(t.error)throw this.deserialize(t.error);return t.value}async requestGet(e,t){let r=await this.messenger.sendPacketWithNoncePromise("registry:get_request",{registryId:e,key:t},"registry:get_response");if(r.error)throw this.deserialize(r.error);if(null!=r.value)return this.deserialize(r.value)}async requestGetEntry(e,t){let r=await this.messenger.sendPacketWithNoncePromise("registry:get_entry_request",{registryId:e,key:t},"registry:get_entry_response");if(r.error)throw this.deserialize(r.error);if(null!=r.value)return{key:this.deserialize(r.value.key),ownerThread:r.value.ownerThread,data:this.deserialize(r.value.data)}}requestGetAllEntries(e){let t=this.getRemote(),s=new r(t,async()=>{const r=await this.messenger.sendPacketWithNoncePromise("registry:get_all_entries_request",{registryId:e},"registry:get_all_entries_response");if(r.error)throw this.deserialize(r.error);let i=r.iteratorKey;return t.declareRemoteIterator(i,s),i});return s}requestGetAllEntriesByThread(e,t){let s=this.getRemote(),i=new r(s,async()=>{const r=await this.messenger.sendPacketWithNoncePromise("registry:get_all_entries_by_thread_request",{registryId:e,ownerThread:t},"registry:get_all_entries_by_thread_response");if(r.error)throw this.deserialize(r.error);let n=r.iteratorKey;return s.declareRemoteIterator(n,i),n});return i}requestGetAll(e){let t=this.getRemote(),s=new r(t,async()=>{const r=await this.messenger.sendPacketWithNoncePromise("registry:get_all_request",{registryId:e},"registry:get_all_response");if(r.error)throw this.deserialize(r.error);let i=r.iteratorKey;return t.declareRemoteIterator(i,s),i});return s}}class I{static META_REGISTRY_ID="rpack:registry";static PLUGIN_REGISTRY_ID="rpack:plugin";constructor(e){this.rpack=e,this.remotes=new Map,this.metaRegistry=this.__createInternalRegistry(I.META_REGISTRY_ID,{localsAreProxied:!1,allowShared:!0})}async createRegistry(e,t){let r=new P(this,e,y.withDefaultOptions(t));if(await this.metaRegistry.add(e,r))return r;throw new Error("Failed to create registry "+e)}getRPack(){return this.rpack}createRemote(e,t){let r=new E(this,e,t);return this.remotes.set(e,r),r}getRemote(e){return this.remotes.get(e)}getRegistry(e){return this.metaRegistry.get(e)}__createInternalRegistry(e,t){let r;return r=this.rpack.isPluginThread()?new b(this,M.HOST_THREAD_ID,e,y.withPublicDefaultOptions(t)):new P(this,e,y.withDefaultOptions(t)),this.rpack.getLoadPromise().then(()=>{this.metaRegistry.__localAdd(e,null,r)}),r}__deserializeRegistry(e,t,r){if(this.metaRegistry instanceof P||this.metaRegistry instanceof b){let s=this.metaRegistry.__localGet(e);if(void 0!==s)return s;let i=new b(this,t,e,r);return this.metaRegistry.__localAdd(e,t,i),i}throw new Error("Weird registry type: "+this.metaRegistry.constructor.name)}}(f||(f={})).isSubclass=function(e,t){return t.prototype.isPrototypeOf(e.prototype)};const x=f;class M{static HOST_THREAD_ID="host";constructor(e,t,r){this.rpack=e,this.wellKnownMap=new Map,this.wellKnownReverseMap=new Map,this.mapWellKnown("RPack",e),this.mapWellKnown("NetworkManager",e.getNetworkManager()),this.mapWellKnown("ProxyManager",e.getProxyManager()),this.mapWellKnown("RegistryManager",e.getRegistryManager()),this.plugin=null,this.pluginRegistry=e.getRegistryManager().__createInternalRegistry(I.PLUGIN_REGISTRY_ID,{}),this.threadId=t,void 0===r?this.threads=new Map:this.hostMessenger=r}mapWellKnown(e,t){this.wellKnownMap.set(t,{type:"well_known",kind:e}),this.wellKnownReverseMap.set(e,t)}async __initPlugin(e){if(null!==this.plugin)throw new Error("Cannot initialize a plugin twice");let t=await import(e);if(!("default"in t))throw new Error("Failed to import plugin "+e+": no default export");let r=t.default;if("function"!=typeof r)throw new Error("Failed to import plugin "+e+": default export is not a class");if(r.length>0)throw new Error("Failed to import plugin "+e+": default export's constructor expects arguments (should be empty)");if(!x.isSubclass(r,k))throw new Error("Failed to import plugin "+e+": default export is not a subclass of RPPlugin");this.plugin=new r,k.__setInstance(this.plugin,this.rpack),await this.plugin.onInit();let s=e.replace(/\.\/(\S+)\.js/g,"$1");await this.pluginRegistry.add(s,this.plugin),this.hostMessenger.addHandler("thread:shutdown_request",async e=>{await this.plugin.onShutdown(),this.hostMessenger.sendPacket({id:"thread:shutdown_response",nonce:e.nonce})})}getRPack(){return this.rpack}getHostMessenger(){return this.hostMessenger}getCurrentThreadId(){return this.threadId}getPlugin(e){return this.pluginRegistry.get(e)}getPluginRegistry(){return this.pluginRegistry}__initRemotes(e,t){this.rpack.getProxyManager().createRemote(e,v.cast(t)),this.rpack.getRegistryManager().createRemote(e,v.cast(t))}async __createThread(e){if(!this.threads)throw new Error("Cannot create a Worker from a Worker!");let t=o.generateNonce();for(;this.threads.has(t);)t=o.generateNonce();console.debug("Starting new thread "+t);let r=await this.rpack.getPlatform().createPluginThread(t,e);this.threads.set(t,r);let s=r.getMessenger(),i=null;for(let r=0;r<16;r++)try{console.debug("Waiting for thread "+t+" (attempt "+(r+1)+"/16, waiting "+Math.pow(2,r)+"ms)...");let n=o.generateNonce();s.sendPacket({id:"thread:hello_request",nonce:n,threadId:t,scriptUrl:e}),await s.addPromiseNonceHandler("thread:hello_response",n,Math.pow(2,r)),this.__initRemotes(t,v.cast(s)),console.debug("Thread "+t+" started"),i=n;break}catch{console.debug("Thread "+t+" timed out. Trying again...")}if(null===i)throw console.debug("Thread "+t+" failed to start, aborting"),await r.terminate(),this.threads.delete(t),new Error("Thread "+t+" failed to start");return await s.addPromiseNonceHandler("thread:plugin_load",i),console.debug("Plugin loaded in thread "+t),t}ensureJSONInner(e,t,r,s){if("string"==typeof t||"number"==typeof t||"boolean"==typeof t||null==t)return!0;if("object"==typeof t){if(Array.isArray(t)){for(let i=0;i<t.length;i++)if(!this.ensureJSONInner(e,t[i],r,s+"["+i+"]"))return!1;return!0}if(Object.getPrototypeOf(t)===Object.prototype){for(let i in t)if(!this.ensureJSONInner(e,t[i],r,s+"."+i))return!1;return!0}}if(r)throw new TypeError("Failed to validate object "+e+" as JSON: root"+s+" is not a JSON-like object");return!1}ensureJSON(e,t){return this.ensureJSONInner(e,e,t??!1)}getFunctionNames(e){if(R.isProxy(e))return R.getFunctions(e);let t=[],r=Object.getPrototypeOf(e);for(;void 0!==r&&r!==Object.prototype;)t.push(...Object.getOwnPropertyNames(r)),r=Object.getPrototypeOf(r);let s=t.indexOf("constructor");s>-1&&t.splice(s,1);for(let r=t.length-1;r>=0;r--)"function"!=typeof e[t[r]]&&t.splice(r,1);return t}serialize(e,t,r){if(void 0===t)return{type:"undefined"};if(!R.isProxy(t)&&("string"==typeof t||"number"==typeof t||"boolean"==typeof t||null==t||Object.getPrototypeOf(t)===Object.prototype&&this.ensureJSON(t,!1)))return{type:"json",value:t};if(t instanceof P||t instanceof b)return{type:"registry",registryId:t.getRegistryId(),options:t.getOptions()};if(t instanceof Error)return{type:"error",errorType:t.name,name:t.name,message:t.message,stack:t.stack};if("function"==typeof t)return{type:"function",functionKey:this.rpack.getProxyManager().getRemote(e).declareFunction(t)};if(this.wellKnownMap.has(t))return this.wellKnownMap.get(t);if(null===t)throw new Error("Null past the null checK?");if("registry"==r?.objectMode){let r=this.rpack.getProxyManager().getRemote(e).declareLocalObject(t),s={},i=this.getFunctionNames(t);for(let r of Object.keys(t))s[r]=this.serialize(e,t[r]);return{type:"registry_entry",objectKey:r,typeName:t.constructor.name,props:s,functions:i,iterable:Symbol.iterator in t||Symbol.asyncIterator in t}}{let r=this.rpack.getProxyManager().getRemote(e).declareLocalObject(t),s=Object.keys(t),i=this.getFunctionNames(t);return{type:"object",objectKey:r,typeName:t.constructor.name,props:s,functions:i,iterable:Symbol.iterator in t||Symbol.asyncIterator in t}}}deserialize(e,t){let r=this.rpack.getProxyManager().getRemote(e),s=t.type;switch(t.type){case"undefined":return;case"json":return t.value;case"registry":return this.rpack.getRegistryManager().__deserializeRegistry(t.registryId,e,t.options);case"registry_entry":return new Proxy({},R.fromRegistryEntry(r,t));case"object":return new Proxy({},R.fromObject(r,t));case"function":return(...e)=>r.requestRemoteFunction(t.functionKey,e);case"well_known":return this.wellKnownReverseMap.get(t.kind);case"error":let i;switch(t.errorType){case"Error":i=new Error;break;case"EvalError":i=new EvalError;break;case"RangeError":i=new RangeError;break;case"ReferenceError":i=new ReferenceError;break;case"SyntaxError":i=new SyntaxError;break;case"TypeError":i=new TypeError;break;case"URIError":i=new URIError}return i.name=t.name,i.message=t.message,i.stack=t.stack,i;default:throw new Error("Failed to deserialize unknown type: "+s)}}}class S{constructor(e,t){this.threadId=e,this.messenger=t}getThreadId(){return this.threadId}getMessenger(){return this.messenger}}class T{constructor(e){this.id=e}}class A{constructor(e,t,r){this.supplier=e,this.completeHandler=t,this.errorHandler=r,this.lastBatch=null,this.lastIndex=-1}[Symbol.asyncIterator](){return this}async next(){if(this.result)return this.result;null==this.lastBatch&&(this.lastBatch=await this.supplier(),this.lastIndex=0);let e=this.lastBatch.values[this.lastIndex];if(this.lastIndex++,this.lastIndex==this.lastBatch.values.length){let e=this.lastBatch;if(this.lastBatch=null,e.done)return this.result={done:!0,value:void 0},this.result}return{done:!1,value:e}}async return(e){return await this.completeHandler(e),this.result={value:this.result,done:!0},this.result}async throw(){return await this.errorHandler(),this.result={value:void 0,done:!0},this.result}}class j{constructor(e,t,r,s){this.rpackChannel="dev",this.rpackVersion="0.1.5-dev-5f45af2",this.rpackRepository="https://github.com/rpack-dev/rpack-dev.git",this.implementationName=e,this.implementationChannel=t,this.implementationVersion=r,this.implementationRepository=s}getRPackChannel(){return this.rpackChannel}getRPackVersion(){return this.rpackVersion}getRPackRepository(){return this.rpackRepository}getImplementationName(){return this.implementationName}getImplementationChannel(){return this.implementationChannel}getImplementationVersion(){return this.implementationVersion}getImplementationRepository(){return this.implementationRepository}}class O{static platform=null;static platformLoadPromise=new i;static initPlatform(e){if(null!==this.platform)throw new Error("Platform already initialized");this.platform=e,this.platformLoadPromise.resolve(e)}static async createInstance(e){if(e&&void 0!==this.instance)return this.instance;let t=await this.platformLoadPromise.getPromise(),r=await t.createRPackInstance(e=>new O(e));return e&&(this.instance=r),r}static getInstance(){return this.instance}constructor(e){this.pluginThread=e.pluginThread,this.loadPromise=e.loadPromise,this.platform=e.platform,this.version=e.version,this.proxyManager=new h(this),this.registryManager=new I(this),this.networkManager=new M(this,e.threadId,e.hostMessenger)}getLoadPromise(){return this.loadPromise}getPlatform(){return this.platform}getVersion(){return this.version}getRegistryManager(){return this.registryManager}getProxyManager(){return this.proxyManager}getNetworkManager(){return this.networkManager}isPluginThread(){return this.pluginThread}getPlugin(e){return this.getNetworkManager().getPlugin(e)}}return t})());
1
+ /*! For license information please see rpack-core.bundle.js.LICENSE.txt */
2
+ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.RPack=t():e.RPack=t()}(globalThis,()=>(()=>{var e={710:(e,t,r)=>{e.exports=function e(t,r,n){function i(a,o){if(!r[a]){if(!t[a]){if(s)return s(a,!0);var h=new Error("Cannot find module '"+a+"'");throw h.code="MODULE_NOT_FOUND",h}var l=r[a]={exports:{}};t[a][0].call(l.exports,function(e){return i(t[a][1][e]||e)},l,l.exports,e,t,r,n)}return r[a].exports}for(var s=void 0,a=0;a<n.length;a++)i(n[a]);return i}({1:[function(e,t,r){"use strict";var n=e("./utils"),i=e("./support"),s="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";r.encode=function(e){for(var t,r,i,a,o,h,l,u=[],c=0,d=e.length,f=d,p="string"!==n.getTypeOf(e);c<e.length;)f=d-c,i=p?(t=e[c++],r=c<d?e[c++]:0,c<d?e[c++]:0):(t=e.charCodeAt(c++),r=c<d?e.charCodeAt(c++):0,c<d?e.charCodeAt(c++):0),a=t>>2,o=(3&t)<<4|r>>4,h=1<f?(15&r)<<2|i>>6:64,l=2<f?63&i:64,u.push(s.charAt(a)+s.charAt(o)+s.charAt(h)+s.charAt(l));return u.join("")},r.decode=function(e){var t,r,n,a,o,h,l=0,u=0,c="data:";if(e.substr(0,5)===c)throw new Error("Invalid base64 input, it looks like a data url.");var d,f=3*(e=e.replace(/[^A-Za-z0-9+/=]/g,"")).length/4;if(e.charAt(e.length-1)===s.charAt(64)&&f--,e.charAt(e.length-2)===s.charAt(64)&&f--,f%1!=0)throw new Error("Invalid base64 input, bad content length.");for(d=i.uint8array?new Uint8Array(0|f):new Array(0|f);l<e.length;)t=s.indexOf(e.charAt(l++))<<2|(a=s.indexOf(e.charAt(l++)))>>4,r=(15&a)<<4|(o=s.indexOf(e.charAt(l++)))>>2,n=(3&o)<<6|(h=s.indexOf(e.charAt(l++))),d[u++]=t,64!==o&&(d[u++]=r),64!==h&&(d[u++]=n);return d}},{"./support":30,"./utils":32}],2:[function(e,t,r){"use strict";var n=e("./external"),i=e("./stream/DataWorker"),s=e("./stream/Crc32Probe"),a=e("./stream/DataLengthProbe");function o(e,t,r,n,i){this.compressedSize=e,this.uncompressedSize=t,this.crc32=r,this.compression=n,this.compressedContent=i}o.prototype={getContentWorker:function(){var e=new i(n.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new a("data_length")),t=this;return e.on("end",function(){if(this.streamInfo.data_length!==t.uncompressedSize)throw new Error("Bug : uncompressed data size mismatch")}),e},getCompressedWorker:function(){return new i(n.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize",this.compressedSize).withStreamInfo("uncompressedSize",this.uncompressedSize).withStreamInfo("crc32",this.crc32).withStreamInfo("compression",this.compression)}},o.createWorkerFrom=function(e,t,r){return e.pipe(new s).pipe(new a("uncompressedSize")).pipe(t.compressWorker(r)).pipe(new a("compressedSize")).withStreamInfo("compression",t)},t.exports=o},{"./external":6,"./stream/Crc32Probe":25,"./stream/DataLengthProbe":26,"./stream/DataWorker":27}],3:[function(e,t,r){"use strict";var n=e("./stream/GenericWorker");r.STORE={magic:"\0\0",compressWorker:function(){return new n("STORE compression")},uncompressWorker:function(){return new n("STORE decompression")}},r.DEFLATE=e("./flate")},{"./flate":7,"./stream/GenericWorker":28}],4:[function(e,t,r){"use strict";var n=e("./utils"),i=function(){for(var e,t=[],r=0;r<256;r++){e=r;for(var n=0;n<8;n++)e=1&e?3988292384^e>>>1:e>>>1;t[r]=e}return t}();t.exports=function(e,t){return void 0!==e&&e.length?"string"!==n.getTypeOf(e)?function(e,t,r){var n=i,s=0+r;e^=-1;for(var a=0;a<s;a++)e=e>>>8^n[255&(e^t[a])];return-1^e}(0|t,e,e.length):function(e,t,r){var n=i,s=0+r;e^=-1;for(var a=0;a<s;a++)e=e>>>8^n[255&(e^t.charCodeAt(a))];return-1^e}(0|t,e,e.length):0}},{"./utils":32}],5:[function(e,t,r){"use strict";r.base64=!1,r.binary=!1,r.dir=!1,r.createFolders=!0,r.date=null,r.compression=null,r.compressionOptions=null,r.comment=null,r.unixPermissions=null,r.dosPermissions=null},{}],6:[function(e,t,r){"use strict";var n;n="undefined"!=typeof Promise?Promise:e("lie"),t.exports={Promise:n}},{lie:37}],7:[function(e,t,r){"use strict";var n="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Uint32Array,i=e("pako"),s=e("./utils"),a=e("./stream/GenericWorker"),o=n?"uint8array":"array";function h(e,t){a.call(this,"FlateWorker/"+e),this._pako=null,this._pakoAction=e,this._pakoOptions=t,this.meta={}}r.magic="\b\0",s.inherits(h,a),h.prototype.processChunk=function(e){this.meta=e.meta,null===this._pako&&this._createPako(),this._pako.push(s.transformTo(o,e.data),!1)},h.prototype.flush=function(){a.prototype.flush.call(this),null===this._pako&&this._createPako(),this._pako.push([],!0)},h.prototype.cleanUp=function(){a.prototype.cleanUp.call(this),this._pako=null},h.prototype._createPako=function(){this._pako=new i[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var e=this;this._pako.onData=function(t){e.push({data:t,meta:e.meta})}},r.compressWorker=function(e){return new h("Deflate",e)},r.uncompressWorker=function(){return new h("Inflate",{})}},{"./stream/GenericWorker":28,"./utils":32,pako:38}],8:[function(e,t,r){"use strict";function n(e,t){var r,n="";for(r=0;r<t;r++)n+=String.fromCharCode(255&e),e>>>=8;return n}function i(e,t,r,i,a,u){var c,d,f=e.file,p=e.compression,g=u!==o.utf8encode,m=s.transformTo("string",u(f.name)),_=s.transformTo("string",o.utf8encode(f.name)),y=f.comment,w=s.transformTo("string",u(y)),v=s.transformTo("string",o.utf8encode(y)),b=_.length!==f.name.length,k=v.length!==y.length,x="",E="",R="",S=f.dir,I=f.date,P={crc32:0,compressedSize:0,uncompressedSize:0};t&&!r||(P.crc32=e.crc32,P.compressedSize=e.compressedSize,P.uncompressedSize=e.uncompressedSize);var z=0;t&&(z|=8),g||!b&&!k||(z|=2048);var A=0,C=0;S&&(A|=16),"UNIX"===a?(C=798,A|=function(e,t){var r=e;return e||(r=t?16893:33204),(65535&r)<<16}(f.unixPermissions,S)):(C=20,A|=function(e){return 63&(e||0)}(f.dosPermissions)),c=I.getUTCHours(),c<<=6,c|=I.getUTCMinutes(),c<<=5,c|=I.getUTCSeconds()/2,d=I.getUTCFullYear()-1980,d<<=4,d|=I.getUTCMonth()+1,d<<=5,d|=I.getUTCDate(),b&&(E=n(1,1)+n(h(m),4)+_,x+="up"+n(E.length,2)+E),k&&(R=n(1,1)+n(h(w),4)+v,x+="uc"+n(R.length,2)+R);var O="";return O+="\n\0",O+=n(z,2),O+=p.magic,O+=n(c,2),O+=n(d,2),O+=n(P.crc32,4),O+=n(P.compressedSize,4),O+=n(P.uncompressedSize,4),O+=n(m.length,2),O+=n(x.length,2),{fileRecord:l.LOCAL_FILE_HEADER+O+m+x,dirRecord:l.CENTRAL_FILE_HEADER+n(C,2)+O+n(w.length,2)+"\0\0\0\0"+n(A,4)+n(i,4)+m+x+w}}var s=e("../utils"),a=e("../stream/GenericWorker"),o=e("../utf8"),h=e("../crc32"),l=e("../signature");function u(e,t,r,n){a.call(this,"ZipFileWorker"),this.bytesWritten=0,this.zipComment=t,this.zipPlatform=r,this.encodeFileName=n,this.streamFiles=e,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}s.inherits(u,a),u.prototype.push=function(e){var t=e.meta.percent||0,r=this.entriesCount,n=this._sources.length;this.accumulate?this.contentBuffer.push(e):(this.bytesWritten+=e.data.length,a.prototype.push.call(this,{data:e.data,meta:{currentFile:this.currentFile,percent:r?(t+100*(r-n-1))/r:100}}))},u.prototype.openedSource=function(e){this.currentSourceOffset=this.bytesWritten,this.currentFile=e.file.name;var t=this.streamFiles&&!e.file.dir;if(t){var r=i(e,t,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:r.fileRecord,meta:{percent:0}})}else this.accumulate=!0},u.prototype.closedSource=function(e){this.accumulate=!1;var t=this.streamFiles&&!e.file.dir,r=i(e,t,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(r.dirRecord),t)this.push({data:function(e){return l.DATA_DESCRIPTOR+n(e.crc32,4)+n(e.compressedSize,4)+n(e.uncompressedSize,4)}(e),meta:{percent:100}});else for(this.push({data:r.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},u.prototype.flush=function(){for(var e=this.bytesWritten,t=0;t<this.dirRecords.length;t++)this.push({data:this.dirRecords[t],meta:{percent:100}});var r=this.bytesWritten-e,i=function(e,t,r,i,a){var o=s.transformTo("string",a(i));return l.CENTRAL_DIRECTORY_END+"\0\0\0\0"+n(e,2)+n(e,2)+n(t,4)+n(r,4)+n(o.length,2)+o}(this.dirRecords.length,r,e,this.zipComment,this.encodeFileName);this.push({data:i,meta:{percent:100}})},u.prototype.prepareNextSource=function(){this.previous=this._sources.shift(),this.openedSource(this.previous.streamInfo),this.isPaused?this.previous.pause():this.previous.resume()},u.prototype.registerPrevious=function(e){this._sources.push(e);var t=this;return e.on("data",function(e){t.processChunk(e)}),e.on("end",function(){t.closedSource(t.previous.streamInfo),t._sources.length?t.prepareNextSource():t.end()}),e.on("error",function(e){t.error(e)}),this},u.prototype.resume=function(){return!!a.prototype.resume.call(this)&&(!this.previous&&this._sources.length?(this.prepareNextSource(),!0):this.previous||this._sources.length||this.generatedError?void 0:(this.end(),!0))},u.prototype.error=function(e){var t=this._sources;if(!a.prototype.error.call(this,e))return!1;for(var r=0;r<t.length;r++)try{t[r].error(e)}catch(e){}return!0},u.prototype.lock=function(){a.prototype.lock.call(this);for(var e=this._sources,t=0;t<e.length;t++)e[t].lock()},t.exports=u},{"../crc32":4,"../signature":23,"../stream/GenericWorker":28,"../utf8":31,"../utils":32}],9:[function(e,t,r){"use strict";var n=e("../compressions"),i=e("./ZipFileWorker");r.generateWorker=function(e,t,r){var s=new i(t.streamFiles,r,t.platform,t.encodeFileName),a=0;try{e.forEach(function(e,r){a++;var i=function(e,t){var r=e||t,i=n[r];if(!i)throw new Error(r+" is not a valid compression method !");return i}(r.options.compression,t.compression),o=r.options.compressionOptions||t.compressionOptions||{},h=r.dir,l=r.date;r._compressWorker(i,o).withStreamInfo("file",{name:e,dir:h,date:l,comment:r.comment||"",unixPermissions:r.unixPermissions,dosPermissions:r.dosPermissions}).pipe(s)}),s.entriesCount=a}catch(e){s.error(e)}return s}},{"../compressions":3,"./ZipFileWorker":8}],10:[function(e,t,r){"use strict";function n(){if(!(this instanceof n))return new n;if(arguments.length)throw new Error("The constructor with parameters has been removed in JSZip 3.0, please check the upgrade guide.");this.files=Object.create(null),this.comment=null,this.root="",this.clone=function(){var e=new n;for(var t in this)"function"!=typeof this[t]&&(e[t]=this[t]);return e}}(n.prototype=e("./object")).loadAsync=e("./load"),n.support=e("./support"),n.defaults=e("./defaults"),n.version="3.10.1",n.loadAsync=function(e,t){return(new n).loadAsync(e,t)},n.external=e("./external"),t.exports=n},{"./defaults":5,"./external":6,"./load":11,"./object":15,"./support":30}],11:[function(e,t,r){"use strict";var n=e("./utils"),i=e("./external"),s=e("./utf8"),a=e("./zipEntries"),o=e("./stream/Crc32Probe"),h=e("./nodejsUtils");function l(e){return new i.Promise(function(t,r){var n=e.decompressed.getContentWorker().pipe(new o);n.on("error",function(e){r(e)}).on("end",function(){n.streamInfo.crc32!==e.decompressed.crc32?r(new Error("Corrupted zip : CRC32 mismatch")):t()}).resume()})}t.exports=function(e,t){var r=this;return t=n.extend(t||{},{base64:!1,checkCRC32:!1,optimizedBinaryString:!1,createFolders:!1,decodeFileName:s.utf8decode}),h.isNode&&h.isStream(e)?i.Promise.reject(new Error("JSZip can't accept a stream when loading a zip file.")):n.prepareContent("the loaded zip file",e,!0,t.optimizedBinaryString,t.base64).then(function(e){var r=new a(t);return r.load(e),r}).then(function(e){var r=[i.Promise.resolve(e)],n=e.files;if(t.checkCRC32)for(var s=0;s<n.length;s++)r.push(l(n[s]));return i.Promise.all(r)}).then(function(e){for(var i=e.shift(),s=i.files,a=0;a<s.length;a++){var o=s[a],h=o.fileNameStr,l=n.resolve(o.fileNameStr);r.file(l,o.decompressed,{binary:!0,optimizedBinaryString:!0,date:o.date,dir:o.dir,comment:o.fileCommentStr.length?o.fileCommentStr:null,unixPermissions:o.unixPermissions,dosPermissions:o.dosPermissions,createFolders:t.createFolders}),o.dir||(r.file(l).unsafeOriginalName=h)}return i.zipComment.length&&(r.comment=i.zipComment),r})}},{"./external":6,"./nodejsUtils":14,"./stream/Crc32Probe":25,"./utf8":31,"./utils":32,"./zipEntries":33}],12:[function(e,t,r){"use strict";var n=e("../utils"),i=e("../stream/GenericWorker");function s(e,t){i.call(this,"Nodejs stream input adapter for "+e),this._upstreamEnded=!1,this._bindStream(t)}n.inherits(s,i),s.prototype._bindStream=function(e){var t=this;(this._stream=e).pause(),e.on("data",function(e){t.push({data:e,meta:{percent:0}})}).on("error",function(e){t.isPaused?this.generatedError=e:t.error(e)}).on("end",function(){t.isPaused?t._upstreamEnded=!0:t.end()})},s.prototype.pause=function(){return!!i.prototype.pause.call(this)&&(this._stream.pause(),!0)},s.prototype.resume=function(){return!!i.prototype.resume.call(this)&&(this._upstreamEnded?this.end():this._stream.resume(),!0)},t.exports=s},{"../stream/GenericWorker":28,"../utils":32}],13:[function(e,t,r){"use strict";var n=e("readable-stream").Readable;function i(e,t,r){n.call(this,t),this._helper=e;var i=this;e.on("data",function(e,t){i.push(e)||i._helper.pause(),r&&r(t)}).on("error",function(e){i.emit("error",e)}).on("end",function(){i.push(null)})}e("../utils").inherits(i,n),i.prototype._read=function(){this._helper.resume()},t.exports=i},{"../utils":32,"readable-stream":16}],14:[function(e,t,r){"use strict";t.exports={isNode:"undefined"!=typeof Buffer,newBufferFrom:function(e,t){if(Buffer.from&&Buffer.from!==Uint8Array.from)return Buffer.from(e,t);if("number"==typeof e)throw new Error('The "data" argument must not be a number');return new Buffer(e,t)},allocBuffer:function(e){if(Buffer.alloc)return Buffer.alloc(e);var t=new Buffer(e);return t.fill(0),t},isBuffer:function(e){return Buffer.isBuffer(e)},isStream:function(e){return e&&"function"==typeof e.on&&"function"==typeof e.pause&&"function"==typeof e.resume}}},{}],15:[function(e,t,r){"use strict";function n(e,t,r){var n,i=s.getTypeOf(t),o=s.extend(r||{},h);o.date=o.date||new Date,null!==o.compression&&(o.compression=o.compression.toUpperCase()),"string"==typeof o.unixPermissions&&(o.unixPermissions=parseInt(o.unixPermissions,8)),o.unixPermissions&&16384&o.unixPermissions&&(o.dir=!0),o.dosPermissions&&16&o.dosPermissions&&(o.dir=!0),o.dir&&(e=g(e)),o.createFolders&&(n=p(e))&&m.call(this,n,!0);var c="string"===i&&!1===o.binary&&!1===o.base64;r&&void 0!==r.binary||(o.binary=!c),(t instanceof l&&0===t.uncompressedSize||o.dir||!t||0===t.length)&&(o.base64=!1,o.binary=!0,t="",o.compression="STORE",i="string");var _;_=t instanceof l||t instanceof a?t:d.isNode&&d.isStream(t)?new f(e,t):s.prepareContent(e,t,o.binary,o.optimizedBinaryString,o.base64);var y=new u(e,_,o);this.files[e]=y}var i=e("./utf8"),s=e("./utils"),a=e("./stream/GenericWorker"),o=e("./stream/StreamHelper"),h=e("./defaults"),l=e("./compressedObject"),u=e("./zipObject"),c=e("./generate"),d=e("./nodejsUtils"),f=e("./nodejs/NodejsStreamInputAdapter"),p=function(e){"/"===e.slice(-1)&&(e=e.substring(0,e.length-1));var t=e.lastIndexOf("/");return 0<t?e.substring(0,t):""},g=function(e){return"/"!==e.slice(-1)&&(e+="/"),e},m=function(e,t){return t=void 0!==t?t:h.createFolders,e=g(e),this.files[e]||n.call(this,e,null,{dir:!0,createFolders:t}),this.files[e]};function _(e){return"[object RegExp]"===Object.prototype.toString.call(e)}var y={load:function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},forEach:function(e){var t,r,n;for(t in this.files)n=this.files[t],(r=t.slice(this.root.length,t.length))&&t.slice(0,this.root.length)===this.root&&e(r,n)},filter:function(e){var t=[];return this.forEach(function(r,n){e(r,n)&&t.push(n)}),t},file:function(e,t,r){if(1!==arguments.length)return e=this.root+e,n.call(this,e,t,r),this;if(_(e)){var i=e;return this.filter(function(e,t){return!t.dir&&i.test(e)})}var s=this.files[this.root+e];return s&&!s.dir?s:null},folder:function(e){if(!e)return this;if(_(e))return this.filter(function(t,r){return r.dir&&e.test(t)});var t=this.root+e,r=m.call(this,t),n=this.clone();return n.root=r.name,n},remove:function(e){e=this.root+e;var t=this.files[e];if(t||("/"!==e.slice(-1)&&(e+="/"),t=this.files[e]),t&&!t.dir)delete this.files[e];else for(var r=this.filter(function(t,r){return r.name.slice(0,e.length)===e}),n=0;n<r.length;n++)delete this.files[r[n].name];return this},generate:function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},generateInternalStream:function(e){var t,r={};try{if((r=s.extend(e||{},{streamFiles:!1,compression:"STORE",compressionOptions:null,type:"",platform:"DOS",comment:null,mimeType:"application/zip",encodeFileName:i.utf8encode})).type=r.type.toLowerCase(),r.compression=r.compression.toUpperCase(),"binarystring"===r.type&&(r.type="string"),!r.type)throw new Error("No output type specified.");s.checkSupport(r.type),"darwin"!==r.platform&&"freebsd"!==r.platform&&"linux"!==r.platform&&"sunos"!==r.platform||(r.platform="UNIX"),"win32"===r.platform&&(r.platform="DOS");var n=r.comment||this.comment||"";t=c.generateWorker(this,r,n)}catch(e){(t=new a("error")).error(e)}return new o(t,r.type||"string",r.mimeType)},generateAsync:function(e,t){return this.generateInternalStream(e).accumulate(t)},generateNodeStream:function(e,t){return(e=e||{}).type||(e.type="nodebuffer"),this.generateInternalStream(e).toNodejsStream(t)}};t.exports=y},{"./compressedObject":2,"./defaults":5,"./generate":9,"./nodejs/NodejsStreamInputAdapter":12,"./nodejsUtils":14,"./stream/GenericWorker":28,"./stream/StreamHelper":29,"./utf8":31,"./utils":32,"./zipObject":35}],16:[function(e,t,r){"use strict";t.exports=e("stream")},{stream:void 0}],17:[function(e,t,r){"use strict";var n=e("./DataReader");function i(e){n.call(this,e);for(var t=0;t<this.data.length;t++)e[t]=255&e[t]}e("../utils").inherits(i,n),i.prototype.byteAt=function(e){return this.data[this.zero+e]},i.prototype.lastIndexOfSignature=function(e){for(var t=e.charCodeAt(0),r=e.charCodeAt(1),n=e.charCodeAt(2),i=e.charCodeAt(3),s=this.length-4;0<=s;--s)if(this.data[s]===t&&this.data[s+1]===r&&this.data[s+2]===n&&this.data[s+3]===i)return s-this.zero;return-1},i.prototype.readAndCheckSignature=function(e){var t=e.charCodeAt(0),r=e.charCodeAt(1),n=e.charCodeAt(2),i=e.charCodeAt(3),s=this.readData(4);return t===s[0]&&r===s[1]&&n===s[2]&&i===s[3]},i.prototype.readData=function(e){if(this.checkOffset(e),0===e)return[];var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{"../utils":32,"./DataReader":18}],18:[function(e,t,r){"use strict";var n=e("../utils");function i(e){this.data=e,this.length=e.length,this.index=0,this.zero=0}i.prototype={checkOffset:function(e){this.checkIndex(this.index+e)},checkIndex:function(e){if(this.length<this.zero+e||e<0)throw new Error("End of data reached (data length = "+this.length+", asked index = "+e+"). Corrupted zip ?")},setIndex:function(e){this.checkIndex(e),this.index=e},skip:function(e){this.setIndex(this.index+e)},byteAt:function(){},readInt:function(e){var t,r=0;for(this.checkOffset(e),t=this.index+e-1;t>=this.index;t--)r=(r<<8)+this.byteAt(t);return this.index+=e,r},readString:function(e){return n.transformTo("string",this.readData(e))},readData:function(){},lastIndexOfSignature:function(){},readAndCheckSignature:function(){},readDate:function(){var e=this.readInt(4);return new Date(Date.UTC(1980+(e>>25&127),(e>>21&15)-1,e>>16&31,e>>11&31,e>>5&63,(31&e)<<1))}},t.exports=i},{"../utils":32}],19:[function(e,t,r){"use strict";var n=e("./Uint8ArrayReader");function i(e){n.call(this,e)}e("../utils").inherits(i,n),i.prototype.readData=function(e){this.checkOffset(e);var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{"../utils":32,"./Uint8ArrayReader":21}],20:[function(e,t,r){"use strict";var n=e("./DataReader");function i(e){n.call(this,e)}e("../utils").inherits(i,n),i.prototype.byteAt=function(e){return this.data.charCodeAt(this.zero+e)},i.prototype.lastIndexOfSignature=function(e){return this.data.lastIndexOf(e)-this.zero},i.prototype.readAndCheckSignature=function(e){return e===this.readData(4)},i.prototype.readData=function(e){this.checkOffset(e);var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{"../utils":32,"./DataReader":18}],21:[function(e,t,r){"use strict";var n=e("./ArrayReader");function i(e){n.call(this,e)}e("../utils").inherits(i,n),i.prototype.readData=function(e){if(this.checkOffset(e),0===e)return new Uint8Array(0);var t=this.data.subarray(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{"../utils":32,"./ArrayReader":17}],22:[function(e,t,r){"use strict";var n=e("../utils"),i=e("../support"),s=e("./ArrayReader"),a=e("./StringReader"),o=e("./NodeBufferReader"),h=e("./Uint8ArrayReader");t.exports=function(e){var t=n.getTypeOf(e);return n.checkSupport(t),"string"!==t||i.uint8array?"nodebuffer"===t?new o(e):i.uint8array?new h(n.transformTo("uint8array",e)):new s(n.transformTo("array",e)):new a(e)}},{"../support":30,"../utils":32,"./ArrayReader":17,"./NodeBufferReader":19,"./StringReader":20,"./Uint8ArrayReader":21}],23:[function(e,t,r){"use strict";r.LOCAL_FILE_HEADER="PK",r.CENTRAL_FILE_HEADER="PK",r.CENTRAL_DIRECTORY_END="PK",r.ZIP64_CENTRAL_DIRECTORY_LOCATOR="PK",r.ZIP64_CENTRAL_DIRECTORY_END="PK",r.DATA_DESCRIPTOR="PK\b"},{}],24:[function(e,t,r){"use strict";var n=e("./GenericWorker"),i=e("../utils");function s(e){n.call(this,"ConvertWorker to "+e),this.destType=e}i.inherits(s,n),s.prototype.processChunk=function(e){this.push({data:i.transformTo(this.destType,e.data),meta:e.meta})},t.exports=s},{"../utils":32,"./GenericWorker":28}],25:[function(e,t,r){"use strict";var n=e("./GenericWorker"),i=e("../crc32");function s(){n.call(this,"Crc32Probe"),this.withStreamInfo("crc32",0)}e("../utils").inherits(s,n),s.prototype.processChunk=function(e){this.streamInfo.crc32=i(e.data,this.streamInfo.crc32||0),this.push(e)},t.exports=s},{"../crc32":4,"../utils":32,"./GenericWorker":28}],26:[function(e,t,r){"use strict";var n=e("../utils"),i=e("./GenericWorker");function s(e){i.call(this,"DataLengthProbe for "+e),this.propName=e,this.withStreamInfo(e,0)}n.inherits(s,i),s.prototype.processChunk=function(e){if(e){var t=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=t+e.data.length}i.prototype.processChunk.call(this,e)},t.exports=s},{"../utils":32,"./GenericWorker":28}],27:[function(e,t,r){"use strict";var n=e("../utils"),i=e("./GenericWorker");function s(e){i.call(this,"DataWorker");var t=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type="",this._tickScheduled=!1,e.then(function(e){t.dataIsReady=!0,t.data=e,t.max=e&&e.length||0,t.type=n.getTypeOf(e),t.isPaused||t._tickAndRepeat()},function(e){t.error(e)})}n.inherits(s,i),s.prototype.cleanUp=function(){i.prototype.cleanUp.call(this),this.data=null},s.prototype.resume=function(){return!!i.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,n.delay(this._tickAndRepeat,[],this)),!0)},s.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(n.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},s.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var e=null,t=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case"string":e=this.data.substring(this.index,t);break;case"uint8array":e=this.data.subarray(this.index,t);break;case"array":case"nodebuffer":e=this.data.slice(this.index,t)}return this.index=t,this.push({data:e,meta:{percent:this.max?this.index/this.max*100:0}})},t.exports=s},{"../utils":32,"./GenericWorker":28}],28:[function(e,t,r){"use strict";function n(e){this.name=e||"default",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}n.prototype={push:function(e){this.emit("data",e)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit("end"),this.cleanUp(),this.isFinished=!0}catch(e){this.emit("error",e)}return!0},error:function(e){return!this.isFinished&&(this.isPaused?this.generatedError=e:(this.isFinished=!0,this.emit("error",e),this.previous&&this.previous.error(e),this.cleanUp()),!0)},on:function(e,t){return this._listeners[e].push(t),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(e,t){if(this._listeners[e])for(var r=0;r<this._listeners[e].length;r++)this._listeners[e][r].call(this,t)},pipe:function(e){return e.registerPrevious(this)},registerPrevious:function(e){if(this.isLocked)throw new Error("The stream '"+this+"' has already been used.");this.streamInfo=e.streamInfo,this.mergeStreamInfo(),this.previous=e;var t=this;return e.on("data",function(e){t.processChunk(e)}),e.on("end",function(){t.end()}),e.on("error",function(e){t.error(e)}),this},pause:function(){return!this.isPaused&&!this.isFinished&&(this.isPaused=!0,this.previous&&this.previous.pause(),!0)},resume:function(){if(!this.isPaused||this.isFinished)return!1;var e=this.isPaused=!1;return this.generatedError&&(this.error(this.generatedError),e=!0),this.previous&&this.previous.resume(),!e},flush:function(){},processChunk:function(e){this.push(e)},withStreamInfo:function(e,t){return this.extraStreamInfo[e]=t,this.mergeStreamInfo(),this},mergeStreamInfo:function(){for(var e in this.extraStreamInfo)Object.prototype.hasOwnProperty.call(this.extraStreamInfo,e)&&(this.streamInfo[e]=this.extraStreamInfo[e])},lock:function(){if(this.isLocked)throw new Error("The stream '"+this+"' has already been used.");this.isLocked=!0,this.previous&&this.previous.lock()},toString:function(){var e="Worker "+this.name;return this.previous?this.previous+" -> "+e:e}},t.exports=n},{}],29:[function(e,t,r){"use strict";var n=e("../utils"),i=e("./ConvertWorker"),s=e("./GenericWorker"),a=e("../base64"),o=e("../support"),h=e("../external"),l=null;if(o.nodestream)try{l=e("../nodejs/NodejsStreamOutputAdapter")}catch(e){}function u(e,t,r){var a=t;switch(t){case"blob":case"arraybuffer":a="uint8array";break;case"base64":a="string"}try{this._internalType=a,this._outputType=t,this._mimeType=r,n.checkSupport(a),this._worker=e.pipe(new i(a)),e.lock()}catch(e){this._worker=new s("error"),this._worker.error(e)}}u.prototype={accumulate:function(e){return function(e,t){return new h.Promise(function(r,i){var s=[],o=e._internalType,h=e._outputType,l=e._mimeType;e.on("data",function(e,r){s.push(e),t&&t(r)}).on("error",function(e){s=[],i(e)}).on("end",function(){try{var e=function(e,t,r){switch(e){case"blob":return n.newBlob(n.transformTo("arraybuffer",t),r);case"base64":return a.encode(t);default:return n.transformTo(e,t)}}(h,function(e,t){var r,n=0,i=null,s=0;for(r=0;r<t.length;r++)s+=t[r].length;switch(e){case"string":return t.join("");case"array":return Array.prototype.concat.apply([],t);case"uint8array":for(i=new Uint8Array(s),r=0;r<t.length;r++)i.set(t[r],n),n+=t[r].length;return i;case"nodebuffer":return Buffer.concat(t);default:throw new Error("concat : unsupported type '"+e+"'")}}(o,s),l);r(e)}catch(e){i(e)}s=[]}).resume()})}(this,e)},on:function(e,t){var r=this;return"data"===e?this._worker.on(e,function(e){t.call(r,e.data,e.meta)}):this._worker.on(e,function(){n.delay(t,arguments,r)}),this},resume:function(){return n.delay(this._worker.resume,[],this._worker),this},pause:function(){return this._worker.pause(),this},toNodejsStream:function(e){if(n.checkSupport("nodestream"),"nodebuffer"!==this._outputType)throw new Error(this._outputType+" is not supported by this method");return new l(this,{objectMode:"nodebuffer"!==this._outputType},e)}},t.exports=u},{"../base64":1,"../external":6,"../nodejs/NodejsStreamOutputAdapter":13,"../support":30,"../utils":32,"./ConvertWorker":24,"./GenericWorker":28}],30:[function(e,t,r){"use strict";if(r.base64=!0,r.array=!0,r.string=!0,r.arraybuffer="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8Array,r.nodebuffer="undefined"!=typeof Buffer,r.uint8array="undefined"!=typeof Uint8Array,"undefined"==typeof ArrayBuffer)r.blob=!1;else{var n=new ArrayBuffer(0);try{r.blob=0===new Blob([n],{type:"application/zip"}).size}catch(e){try{var i=new(self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder);i.append(n),r.blob=0===i.getBlob("application/zip").size}catch(e){r.blob=!1}}}try{r.nodestream=!!e("readable-stream").Readable}catch(e){r.nodestream=!1}},{"readable-stream":16}],31:[function(e,t,r){"use strict";for(var n=e("./utils"),i=e("./support"),s=e("./nodejsUtils"),a=e("./stream/GenericWorker"),o=new Array(256),h=0;h<256;h++)o[h]=252<=h?6:248<=h?5:240<=h?4:224<=h?3:192<=h?2:1;function l(){a.call(this,"utf-8 decode"),this.leftOver=null}function u(){a.call(this,"utf-8 encode")}o[254]=o[254]=1,r.utf8encode=function(e){return i.nodebuffer?s.newBufferFrom(e,"utf-8"):function(e){var t,r,n,s,a,o=e.length,h=0;for(s=0;s<o;s++)55296==(64512&(r=e.charCodeAt(s)))&&s+1<o&&56320==(64512&(n=e.charCodeAt(s+1)))&&(r=65536+(r-55296<<10)+(n-56320),s++),h+=r<128?1:r<2048?2:r<65536?3:4;for(t=i.uint8array?new Uint8Array(h):new Array(h),s=a=0;a<h;s++)55296==(64512&(r=e.charCodeAt(s)))&&s+1<o&&56320==(64512&(n=e.charCodeAt(s+1)))&&(r=65536+(r-55296<<10)+(n-56320),s++),r<128?t[a++]=r:(r<2048?t[a++]=192|r>>>6:(r<65536?t[a++]=224|r>>>12:(t[a++]=240|r>>>18,t[a++]=128|r>>>12&63),t[a++]=128|r>>>6&63),t[a++]=128|63&r);return t}(e)},r.utf8decode=function(e){return i.nodebuffer?n.transformTo("nodebuffer",e).toString("utf-8"):function(e){var t,r,i,s,a=e.length,h=new Array(2*a);for(t=r=0;t<a;)if((i=e[t++])<128)h[r++]=i;else if(4<(s=o[i]))h[r++]=65533,t+=s-1;else{for(i&=2===s?31:3===s?15:7;1<s&&t<a;)i=i<<6|63&e[t++],s--;1<s?h[r++]=65533:i<65536?h[r++]=i:(i-=65536,h[r++]=55296|i>>10&1023,h[r++]=56320|1023&i)}return h.length!==r&&(h.subarray?h=h.subarray(0,r):h.length=r),n.applyFromCharCode(h)}(e=n.transformTo(i.uint8array?"uint8array":"array",e))},n.inherits(l,a),l.prototype.processChunk=function(e){var t=n.transformTo(i.uint8array?"uint8array":"array",e.data);if(this.leftOver&&this.leftOver.length){if(i.uint8array){var s=t;(t=new Uint8Array(s.length+this.leftOver.length)).set(this.leftOver,0),t.set(s,this.leftOver.length)}else t=this.leftOver.concat(t);this.leftOver=null}var a=function(e,t){var r;for((t=t||e.length)>e.length&&(t=e.length),r=t-1;0<=r&&128==(192&e[r]);)r--;return r<0||0===r?t:r+o[e[r]]>t?r:t}(t),h=t;a!==t.length&&(i.uint8array?(h=t.subarray(0,a),this.leftOver=t.subarray(a,t.length)):(h=t.slice(0,a),this.leftOver=t.slice(a,t.length))),this.push({data:r.utf8decode(h),meta:e.meta})},l.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:r.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},r.Utf8DecodeWorker=l,n.inherits(u,a),u.prototype.processChunk=function(e){this.push({data:r.utf8encode(e.data),meta:e.meta})},r.Utf8EncodeWorker=u},{"./nodejsUtils":14,"./stream/GenericWorker":28,"./support":30,"./utils":32}],32:[function(e,t,r){"use strict";var n=e("./support"),i=e("./base64"),s=e("./nodejsUtils"),a=e("./external");function o(e){return e}function h(e,t){for(var r=0;r<e.length;++r)t[r]=255&e.charCodeAt(r);return t}e("setimmediate"),r.newBlob=function(e,t){r.checkSupport("blob");try{return new Blob([e],{type:t})}catch(r){try{var n=new(self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder);return n.append(e),n.getBlob(t)}catch(e){throw new Error("Bug : can't construct the Blob.")}}};var l={stringifyByChunk:function(e,t,r){var n=[],i=0,s=e.length;if(s<=r)return String.fromCharCode.apply(null,e);for(;i<s;)"array"===t||"nodebuffer"===t?n.push(String.fromCharCode.apply(null,e.slice(i,Math.min(i+r,s)))):n.push(String.fromCharCode.apply(null,e.subarray(i,Math.min(i+r,s)))),i+=r;return n.join("")},stringifyByChar:function(e){for(var t="",r=0;r<e.length;r++)t+=String.fromCharCode(e[r]);return t},applyCanBeUsed:{uint8array:function(){try{return n.uint8array&&1===String.fromCharCode.apply(null,new Uint8Array(1)).length}catch(e){return!1}}(),nodebuffer:function(){try{return n.nodebuffer&&1===String.fromCharCode.apply(null,s.allocBuffer(1)).length}catch(e){return!1}}()}};function u(e){var t=65536,n=r.getTypeOf(e),i=!0;if("uint8array"===n?i=l.applyCanBeUsed.uint8array:"nodebuffer"===n&&(i=l.applyCanBeUsed.nodebuffer),i)for(;1<t;)try{return l.stringifyByChunk(e,n,t)}catch(e){t=Math.floor(t/2)}return l.stringifyByChar(e)}function c(e,t){for(var r=0;r<e.length;r++)t[r]=e[r];return t}r.applyFromCharCode=u;var d={};d.string={string:o,array:function(e){return h(e,new Array(e.length))},arraybuffer:function(e){return d.string.uint8array(e).buffer},uint8array:function(e){return h(e,new Uint8Array(e.length))},nodebuffer:function(e){return h(e,s.allocBuffer(e.length))}},d.array={string:u,array:o,arraybuffer:function(e){return new Uint8Array(e).buffer},uint8array:function(e){return new Uint8Array(e)},nodebuffer:function(e){return s.newBufferFrom(e)}},d.arraybuffer={string:function(e){return u(new Uint8Array(e))},array:function(e){return c(new Uint8Array(e),new Array(e.byteLength))},arraybuffer:o,uint8array:function(e){return new Uint8Array(e)},nodebuffer:function(e){return s.newBufferFrom(new Uint8Array(e))}},d.uint8array={string:u,array:function(e){return c(e,new Array(e.length))},arraybuffer:function(e){return e.buffer},uint8array:o,nodebuffer:function(e){return s.newBufferFrom(e)}},d.nodebuffer={string:u,array:function(e){return c(e,new Array(e.length))},arraybuffer:function(e){return d.nodebuffer.uint8array(e).buffer},uint8array:function(e){return c(e,new Uint8Array(e.length))},nodebuffer:o},r.transformTo=function(e,t){if(t=t||"",!e)return t;r.checkSupport(e);var n=r.getTypeOf(t);return d[n][e](t)},r.resolve=function(e){for(var t=e.split("/"),r=[],n=0;n<t.length;n++){var i=t[n];"."===i||""===i&&0!==n&&n!==t.length-1||(".."===i?r.pop():r.push(i))}return r.join("/")},r.getTypeOf=function(e){return"string"==typeof e?"string":"[object Array]"===Object.prototype.toString.call(e)?"array":n.nodebuffer&&s.isBuffer(e)?"nodebuffer":n.uint8array&&e instanceof Uint8Array?"uint8array":n.arraybuffer&&e instanceof ArrayBuffer?"arraybuffer":void 0},r.checkSupport=function(e){if(!n[e.toLowerCase()])throw new Error(e+" is not supported by this platform")},r.MAX_VALUE_16BITS=65535,r.MAX_VALUE_32BITS=-1,r.pretty=function(e){var t,r,n="";for(r=0;r<(e||"").length;r++)n+="\\x"+((t=e.charCodeAt(r))<16?"0":"")+t.toString(16).toUpperCase();return n},r.delay=function(e,t,r){setImmediate(function(){e.apply(r||null,t||[])})},r.inherits=function(e,t){function r(){}r.prototype=t.prototype,e.prototype=new r},r.extend=function(){var e,t,r={};for(e=0;e<arguments.length;e++)for(t in arguments[e])Object.prototype.hasOwnProperty.call(arguments[e],t)&&void 0===r[t]&&(r[t]=arguments[e][t]);return r},r.prepareContent=function(e,t,s,o,l){return a.Promise.resolve(t).then(function(e){return n.blob&&(e instanceof Blob||-1!==["[object File]","[object Blob]"].indexOf(Object.prototype.toString.call(e)))&&"undefined"!=typeof FileReader?new a.Promise(function(t,r){var n=new FileReader;n.onload=function(e){t(e.target.result)},n.onerror=function(e){r(e.target.error)},n.readAsArrayBuffer(e)}):e}).then(function(t){var u=r.getTypeOf(t);return u?("arraybuffer"===u?t=r.transformTo("uint8array",t):"string"===u&&(l?t=i.decode(t):s&&!0!==o&&(t=function(e){return h(e,n.uint8array?new Uint8Array(e.length):new Array(e.length))}(t))),t):a.Promise.reject(new Error("Can't read the data of '"+e+"'. Is it in a supported JavaScript type (String, Blob, ArrayBuffer, etc) ?"))})}},{"./base64":1,"./external":6,"./nodejsUtils":14,"./support":30,setimmediate:54}],33:[function(e,t,r){"use strict";var n=e("./reader/readerFor"),i=e("./utils"),s=e("./signature"),a=e("./zipEntry"),o=e("./support");function h(e){this.files=[],this.loadOptions=e}h.prototype={checkSignature:function(e){if(!this.reader.readAndCheckSignature(e)){this.reader.index-=4;var t=this.reader.readString(4);throw new Error("Corrupted zip or bug: unexpected signature ("+i.pretty(t)+", expected "+i.pretty(e)+")")}},isSignature:function(e,t){var r=this.reader.index;this.reader.setIndex(e);var n=this.reader.readString(4)===t;return this.reader.setIndex(r),n},readBlockEndOfCentral:function(){this.diskNumber=this.reader.readInt(2),this.diskWithCentralDirStart=this.reader.readInt(2),this.centralDirRecordsOnThisDisk=this.reader.readInt(2),this.centralDirRecords=this.reader.readInt(2),this.centralDirSize=this.reader.readInt(4),this.centralDirOffset=this.reader.readInt(4),this.zipCommentLength=this.reader.readInt(2);var e=this.reader.readData(this.zipCommentLength),t=o.uint8array?"uint8array":"array",r=i.transformTo(t,e);this.zipComment=this.loadOptions.decodeFileName(r)},readBlockZip64EndOfCentral:function(){this.zip64EndOfCentralSize=this.reader.readInt(8),this.reader.skip(4),this.diskNumber=this.reader.readInt(4),this.diskWithCentralDirStart=this.reader.readInt(4),this.centralDirRecordsOnThisDisk=this.reader.readInt(8),this.centralDirRecords=this.reader.readInt(8),this.centralDirSize=this.reader.readInt(8),this.centralDirOffset=this.reader.readInt(8),this.zip64ExtensibleData={};for(var e,t,r,n=this.zip64EndOfCentralSize-44;0<n;)e=this.reader.readInt(2),t=this.reader.readInt(4),r=this.reader.readData(t),this.zip64ExtensibleData[e]={id:e,length:t,value:r}},readBlockZip64EndOfCentralLocator:function(){if(this.diskWithZip64CentralDirStart=this.reader.readInt(4),this.relativeOffsetEndOfZip64CentralDir=this.reader.readInt(8),this.disksCount=this.reader.readInt(4),1<this.disksCount)throw new Error("Multi-volumes zip are not supported")},readLocalFiles:function(){var e,t;for(e=0;e<this.files.length;e++)t=this.files[e],this.reader.setIndex(t.localHeaderOffset),this.checkSignature(s.LOCAL_FILE_HEADER),t.readLocalPart(this.reader),t.handleUTF8(),t.processAttributes()},readCentralDir:function(){var e;for(this.reader.setIndex(this.centralDirOffset);this.reader.readAndCheckSignature(s.CENTRAL_FILE_HEADER);)(e=new a({zip64:this.zip64},this.loadOptions)).readCentralPart(this.reader),this.files.push(e);if(this.centralDirRecords!==this.files.length&&0!==this.centralDirRecords&&0===this.files.length)throw new Error("Corrupted zip or bug: expected "+this.centralDirRecords+" records in central dir, got "+this.files.length)},readEndOfCentral:function(){var e=this.reader.lastIndexOfSignature(s.CENTRAL_DIRECTORY_END);if(e<0)throw this.isSignature(0,s.LOCAL_FILE_HEADER)?new Error("Corrupted zip: can't find end of central directory"):new Error("Can't find end of central directory : is this a zip file ? If it is, see https://stuk.github.io/jszip/documentation/howto/read_zip.html");this.reader.setIndex(e);var t=e;if(this.checkSignature(s.CENTRAL_DIRECTORY_END),this.readBlockEndOfCentral(),this.diskNumber===i.MAX_VALUE_16BITS||this.diskWithCentralDirStart===i.MAX_VALUE_16BITS||this.centralDirRecordsOnThisDisk===i.MAX_VALUE_16BITS||this.centralDirRecords===i.MAX_VALUE_16BITS||this.centralDirSize===i.MAX_VALUE_32BITS||this.centralDirOffset===i.MAX_VALUE_32BITS){if(this.zip64=!0,(e=this.reader.lastIndexOfSignature(s.ZIP64_CENTRAL_DIRECTORY_LOCATOR))<0)throw new Error("Corrupted zip: can't find the ZIP64 end of central directory locator");if(this.reader.setIndex(e),this.checkSignature(s.ZIP64_CENTRAL_DIRECTORY_LOCATOR),this.readBlockZip64EndOfCentralLocator(),!this.isSignature(this.relativeOffsetEndOfZip64CentralDir,s.ZIP64_CENTRAL_DIRECTORY_END)&&(this.relativeOffsetEndOfZip64CentralDir=this.reader.lastIndexOfSignature(s.ZIP64_CENTRAL_DIRECTORY_END),this.relativeOffsetEndOfZip64CentralDir<0))throw new Error("Corrupted zip: can't find the ZIP64 end of central directory");this.reader.setIndex(this.relativeOffsetEndOfZip64CentralDir),this.checkSignature(s.ZIP64_CENTRAL_DIRECTORY_END),this.readBlockZip64EndOfCentral()}var r=this.centralDirOffset+this.centralDirSize;this.zip64&&(r+=20,r+=12+this.zip64EndOfCentralSize);var n=t-r;if(0<n)this.isSignature(t,s.CENTRAL_FILE_HEADER)||(this.reader.zero=n);else if(n<0)throw new Error("Corrupted zip: missing "+Math.abs(n)+" bytes.")},prepareReader:function(e){this.reader=n(e)},load:function(e){this.prepareReader(e),this.readEndOfCentral(),this.readCentralDir(),this.readLocalFiles()}},t.exports=h},{"./reader/readerFor":22,"./signature":23,"./support":30,"./utils":32,"./zipEntry":34}],34:[function(e,t,r){"use strict";var n=e("./reader/readerFor"),i=e("./utils"),s=e("./compressedObject"),a=e("./crc32"),o=e("./utf8"),h=e("./compressions"),l=e("./support");function u(e,t){this.options=e,this.loadOptions=t}u.prototype={isEncrypted:function(){return!(1&~this.bitFlag)},useUTF8:function(){return!(2048&~this.bitFlag)},readLocalPart:function(e){var t,r;if(e.skip(22),this.fileNameLength=e.readInt(2),r=e.readInt(2),this.fileName=e.readData(this.fileNameLength),e.skip(r),-1===this.compressedSize||-1===this.uncompressedSize)throw new Error("Bug or corrupted zip : didn't get enough information from the central directory (compressedSize === -1 || uncompressedSize === -1)");if(null===(t=function(e){for(var t in h)if(Object.prototype.hasOwnProperty.call(h,t)&&h[t].magic===e)return h[t];return null}(this.compressionMethod)))throw new Error("Corrupted zip : compression "+i.pretty(this.compressionMethod)+" unknown (inner file : "+i.transformTo("string",this.fileName)+")");this.decompressed=new s(this.compressedSize,this.uncompressedSize,this.crc32,t,e.readData(this.compressedSize))},readCentralPart:function(e){this.versionMadeBy=e.readInt(2),e.skip(2),this.bitFlag=e.readInt(2),this.compressionMethod=e.readString(2),this.date=e.readDate(),this.crc32=e.readInt(4),this.compressedSize=e.readInt(4),this.uncompressedSize=e.readInt(4);var t=e.readInt(2);if(this.extraFieldsLength=e.readInt(2),this.fileCommentLength=e.readInt(2),this.diskNumberStart=e.readInt(2),this.internalFileAttributes=e.readInt(2),this.externalFileAttributes=e.readInt(4),this.localHeaderOffset=e.readInt(4),this.isEncrypted())throw new Error("Encrypted zip are not supported");e.skip(t),this.readExtraFields(e),this.parseZIP64ExtraField(e),this.fileComment=e.readData(this.fileCommentLength)},processAttributes:function(){this.unixPermissions=null,this.dosPermissions=null;var e=this.versionMadeBy>>8;this.dir=!!(16&this.externalFileAttributes),0==e&&(this.dosPermissions=63&this.externalFileAttributes),3==e&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||"/"!==this.fileNameStr.slice(-1)||(this.dir=!0)},parseZIP64ExtraField:function(){if(this.extraFields[1]){var e=n(this.extraFields[1].value);this.uncompressedSize===i.MAX_VALUE_32BITS&&(this.uncompressedSize=e.readInt(8)),this.compressedSize===i.MAX_VALUE_32BITS&&(this.compressedSize=e.readInt(8)),this.localHeaderOffset===i.MAX_VALUE_32BITS&&(this.localHeaderOffset=e.readInt(8)),this.diskNumberStart===i.MAX_VALUE_32BITS&&(this.diskNumberStart=e.readInt(4))}},readExtraFields:function(e){var t,r,n,i=e.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});e.index+4<i;)t=e.readInt(2),r=e.readInt(2),n=e.readData(r),this.extraFields[t]={id:t,length:r,value:n};e.setIndex(i)},handleUTF8:function(){var e=l.uint8array?"uint8array":"array";if(this.useUTF8())this.fileNameStr=o.utf8decode(this.fileName),this.fileCommentStr=o.utf8decode(this.fileComment);else{var t=this.findExtraFieldUnicodePath();if(null!==t)this.fileNameStr=t;else{var r=i.transformTo(e,this.fileName);this.fileNameStr=this.loadOptions.decodeFileName(r)}var n=this.findExtraFieldUnicodeComment();if(null!==n)this.fileCommentStr=n;else{var s=i.transformTo(e,this.fileComment);this.fileCommentStr=this.loadOptions.decodeFileName(s)}}},findExtraFieldUnicodePath:function(){var e=this.extraFields[28789];if(e){var t=n(e.value);return 1!==t.readInt(1)||a(this.fileName)!==t.readInt(4)?null:o.utf8decode(t.readData(e.length-5))}return null},findExtraFieldUnicodeComment:function(){var e=this.extraFields[25461];if(e){var t=n(e.value);return 1!==t.readInt(1)||a(this.fileComment)!==t.readInt(4)?null:o.utf8decode(t.readData(e.length-5))}return null}},t.exports=u},{"./compressedObject":2,"./compressions":3,"./crc32":4,"./reader/readerFor":22,"./support":30,"./utf8":31,"./utils":32}],35:[function(e,t,r){"use strict";function n(e,t,r){this.name=e,this.dir=r.dir,this.date=r.date,this.comment=r.comment,this.unixPermissions=r.unixPermissions,this.dosPermissions=r.dosPermissions,this._data=t,this._dataBinary=r.binary,this.options={compression:r.compression,compressionOptions:r.compressionOptions}}var i=e("./stream/StreamHelper"),s=e("./stream/DataWorker"),a=e("./utf8"),o=e("./compressedObject"),h=e("./stream/GenericWorker");n.prototype={internalStream:function(e){var t=null,r="string";try{if(!e)throw new Error("No output type specified.");var n="string"===(r=e.toLowerCase())||"text"===r;"binarystring"!==r&&"text"!==r||(r="string"),t=this._decompressWorker();var s=!this._dataBinary;s&&!n&&(t=t.pipe(new a.Utf8EncodeWorker)),!s&&n&&(t=t.pipe(new a.Utf8DecodeWorker))}catch(e){(t=new h("error")).error(e)}return new i(t,r,"")},async:function(e,t){return this.internalStream(e).accumulate(t)},nodeStream:function(e,t){return this.internalStream(e||"nodebuffer").toNodejsStream(t)},_compressWorker:function(e,t){if(this._data instanceof o&&this._data.compression.magic===e.magic)return this._data.getCompressedWorker();var r=this._decompressWorker();return this._dataBinary||(r=r.pipe(new a.Utf8EncodeWorker)),o.createWorkerFrom(r,e,t)},_decompressWorker:function(){return this._data instanceof o?this._data.getContentWorker():this._data instanceof h?this._data:new s(this._data)}};for(var l=["asText","asBinary","asNodeBuffer","asUint8Array","asArrayBuffer"],u=function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},c=0;c<l.length;c++)n.prototype[l[c]]=u;t.exports=n},{"./compressedObject":2,"./stream/DataWorker":27,"./stream/GenericWorker":28,"./stream/StreamHelper":29,"./utf8":31}],36:[function(e,t,n){(function(e){"use strict";var r,n,i=e.MutationObserver||e.WebKitMutationObserver;if(i){var s=0,a=new i(u),o=e.document.createTextNode("");a.observe(o,{characterData:!0}),r=function(){o.data=s=++s%2}}else if(e.setImmediate||void 0===e.MessageChannel)r="document"in e&&"onreadystatechange"in e.document.createElement("script")?function(){var t=e.document.createElement("script");t.onreadystatechange=function(){u(),t.onreadystatechange=null,t.parentNode.removeChild(t),t=null},e.document.documentElement.appendChild(t)}:function(){setTimeout(u,0)};else{var h=new e.MessageChannel;h.port1.onmessage=u,r=function(){h.port2.postMessage(0)}}var l=[];function u(){var e,t;n=!0;for(var r=l.length;r;){for(t=l,l=[],e=-1;++e<r;)t[e]();r=l.length}n=!1}t.exports=function(e){1!==l.push(e)||n||r()}}).call(this,void 0!==r.g?r.g:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],37:[function(e,t,r){"use strict";var n=e("immediate");function i(){}var s={},a=["REJECTED"],o=["FULFILLED"],h=["PENDING"];function l(e){if("function"!=typeof e)throw new TypeError("resolver must be a function");this.state=h,this.queue=[],this.outcome=void 0,e!==i&&f(this,e)}function u(e,t,r){this.promise=e,"function"==typeof t&&(this.onFulfilled=t,this.callFulfilled=this.otherCallFulfilled),"function"==typeof r&&(this.onRejected=r,this.callRejected=this.otherCallRejected)}function c(e,t,r){n(function(){var n;try{n=t(r)}catch(n){return s.reject(e,n)}n===e?s.reject(e,new TypeError("Cannot resolve promise with itself")):s.resolve(e,n)})}function d(e){var t=e&&e.then;if(e&&("object"==typeof e||"function"==typeof e)&&"function"==typeof t)return function(){t.apply(e,arguments)}}function f(e,t){var r=!1;function n(t){r||(r=!0,s.reject(e,t))}function i(t){r||(r=!0,s.resolve(e,t))}var a=p(function(){t(i,n)});"error"===a.status&&n(a.value)}function p(e,t){var r={};try{r.value=e(t),r.status="success"}catch(e){r.status="error",r.value=e}return r}(t.exports=l).prototype.finally=function(e){if("function"!=typeof e)return this;var t=this.constructor;return this.then(function(r){return t.resolve(e()).then(function(){return r})},function(r){return t.resolve(e()).then(function(){throw r})})},l.prototype.catch=function(e){return this.then(null,e)},l.prototype.then=function(e,t){if("function"!=typeof e&&this.state===o||"function"!=typeof t&&this.state===a)return this;var r=new this.constructor(i);return this.state!==h?c(r,this.state===o?e:t,this.outcome):this.queue.push(new u(r,e,t)),r},u.prototype.callFulfilled=function(e){s.resolve(this.promise,e)},u.prototype.otherCallFulfilled=function(e){c(this.promise,this.onFulfilled,e)},u.prototype.callRejected=function(e){s.reject(this.promise,e)},u.prototype.otherCallRejected=function(e){c(this.promise,this.onRejected,e)},s.resolve=function(e,t){var r=p(d,t);if("error"===r.status)return s.reject(e,r.value);var n=r.value;if(n)f(e,n);else{e.state=o,e.outcome=t;for(var i=-1,a=e.queue.length;++i<a;)e.queue[i].callFulfilled(t)}return e},s.reject=function(e,t){e.state=a,e.outcome=t;for(var r=-1,n=e.queue.length;++r<n;)e.queue[r].callRejected(t);return e},l.resolve=function(e){return e instanceof this?e:s.resolve(new this(i),e)},l.reject=function(e){var t=new this(i);return s.reject(t,e)},l.all=function(e){var t=this;if("[object Array]"!==Object.prototype.toString.call(e))return this.reject(new TypeError("must be an array"));var r=e.length,n=!1;if(!r)return this.resolve([]);for(var a=new Array(r),o=0,h=-1,l=new this(i);++h<r;)u(e[h],h);return l;function u(e,i){t.resolve(e).then(function(e){a[i]=e,++o!==r||n||(n=!0,s.resolve(l,a))},function(e){n||(n=!0,s.reject(l,e))})}},l.race=function(e){if("[object Array]"!==Object.prototype.toString.call(e))return this.reject(new TypeError("must be an array"));var t=e.length,r=!1;if(!t)return this.resolve([]);for(var n,a=-1,o=new this(i);++a<t;)n=e[a],this.resolve(n).then(function(e){r||(r=!0,s.resolve(o,e))},function(e){r||(r=!0,s.reject(o,e))});return o}},{immediate:36}],38:[function(e,t,r){"use strict";var n={};(0,e("./lib/utils/common").assign)(n,e("./lib/deflate"),e("./lib/inflate"),e("./lib/zlib/constants")),t.exports=n},{"./lib/deflate":39,"./lib/inflate":40,"./lib/utils/common":41,"./lib/zlib/constants":44}],39:[function(e,t,r){"use strict";var n=e("./zlib/deflate"),i=e("./utils/common"),s=e("./utils/strings"),a=e("./zlib/messages"),o=e("./zlib/zstream"),h=Object.prototype.toString;function l(e){if(!(this instanceof l))return new l(e);this.options=i.assign({level:-1,method:8,chunkSize:16384,windowBits:15,memLevel:8,strategy:0,to:""},e||{});var t=this.options;t.raw&&0<t.windowBits?t.windowBits=-t.windowBits:t.gzip&&0<t.windowBits&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new o,this.strm.avail_out=0;var r=n.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(0!==r)throw new Error(a[r]);if(t.header&&n.deflateSetHeader(this.strm,t.header),t.dictionary){var u;if(u="string"==typeof t.dictionary?s.string2buf(t.dictionary):"[object ArrayBuffer]"===h.call(t.dictionary)?new Uint8Array(t.dictionary):t.dictionary,0!==(r=n.deflateSetDictionary(this.strm,u)))throw new Error(a[r]);this._dict_set=!0}}function u(e,t){var r=new l(t);if(r.push(e,!0),r.err)throw r.msg||a[r.err];return r.result}l.prototype.push=function(e,t){var r,a,o=this.strm,l=this.options.chunkSize;if(this.ended)return!1;a=t===~~t?t:!0===t?4:0,"string"==typeof e?o.input=s.string2buf(e):"[object ArrayBuffer]"===h.call(e)?o.input=new Uint8Array(e):o.input=e,o.next_in=0,o.avail_in=o.input.length;do{if(0===o.avail_out&&(o.output=new i.Buf8(l),o.next_out=0,o.avail_out=l),1!==(r=n.deflate(o,a))&&0!==r)return this.onEnd(r),!(this.ended=!0);0!==o.avail_out&&(0!==o.avail_in||4!==a&&2!==a)||("string"===this.options.to?this.onData(s.buf2binstring(i.shrinkBuf(o.output,o.next_out))):this.onData(i.shrinkBuf(o.output,o.next_out)))}while((0<o.avail_in||0===o.avail_out)&&1!==r);return 4===a?(r=n.deflateEnd(this.strm),this.onEnd(r),this.ended=!0,0===r):2!==a||(this.onEnd(0),!(o.avail_out=0))},l.prototype.onData=function(e){this.chunks.push(e)},l.prototype.onEnd=function(e){0===e&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=i.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg},r.Deflate=l,r.deflate=u,r.deflateRaw=function(e,t){return(t=t||{}).raw=!0,u(e,t)},r.gzip=function(e,t){return(t=t||{}).gzip=!0,u(e,t)}},{"./utils/common":41,"./utils/strings":42,"./zlib/deflate":46,"./zlib/messages":51,"./zlib/zstream":53}],40:[function(e,t,r){"use strict";var n=e("./zlib/inflate"),i=e("./utils/common"),s=e("./utils/strings"),a=e("./zlib/constants"),o=e("./zlib/messages"),h=e("./zlib/zstream"),l=e("./zlib/gzheader"),u=Object.prototype.toString;function c(e){if(!(this instanceof c))return new c(e);this.options=i.assign({chunkSize:16384,windowBits:0,to:""},e||{});var t=this.options;t.raw&&0<=t.windowBits&&t.windowBits<16&&(t.windowBits=-t.windowBits,0===t.windowBits&&(t.windowBits=-15)),!(0<=t.windowBits&&t.windowBits<16)||e&&e.windowBits||(t.windowBits+=32),15<t.windowBits&&t.windowBits<48&&!(15&t.windowBits)&&(t.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new h,this.strm.avail_out=0;var r=n.inflateInit2(this.strm,t.windowBits);if(r!==a.Z_OK)throw new Error(o[r]);this.header=new l,n.inflateGetHeader(this.strm,this.header)}function d(e,t){var r=new c(t);if(r.push(e,!0),r.err)throw r.msg||o[r.err];return r.result}c.prototype.push=function(e,t){var r,o,h,l,c,d,f=this.strm,p=this.options.chunkSize,g=this.options.dictionary,m=!1;if(this.ended)return!1;o=t===~~t?t:!0===t?a.Z_FINISH:a.Z_NO_FLUSH,"string"==typeof e?f.input=s.binstring2buf(e):"[object ArrayBuffer]"===u.call(e)?f.input=new Uint8Array(e):f.input=e,f.next_in=0,f.avail_in=f.input.length;do{if(0===f.avail_out&&(f.output=new i.Buf8(p),f.next_out=0,f.avail_out=p),(r=n.inflate(f,a.Z_NO_FLUSH))===a.Z_NEED_DICT&&g&&(d="string"==typeof g?s.string2buf(g):"[object ArrayBuffer]"===u.call(g)?new Uint8Array(g):g,r=n.inflateSetDictionary(this.strm,d)),r===a.Z_BUF_ERROR&&!0===m&&(r=a.Z_OK,m=!1),r!==a.Z_STREAM_END&&r!==a.Z_OK)return this.onEnd(r),!(this.ended=!0);f.next_out&&(0!==f.avail_out&&r!==a.Z_STREAM_END&&(0!==f.avail_in||o!==a.Z_FINISH&&o!==a.Z_SYNC_FLUSH)||("string"===this.options.to?(h=s.utf8border(f.output,f.next_out),l=f.next_out-h,c=s.buf2string(f.output,h),f.next_out=l,f.avail_out=p-l,l&&i.arraySet(f.output,f.output,h,l,0),this.onData(c)):this.onData(i.shrinkBuf(f.output,f.next_out)))),0===f.avail_in&&0===f.avail_out&&(m=!0)}while((0<f.avail_in||0===f.avail_out)&&r!==a.Z_STREAM_END);return r===a.Z_STREAM_END&&(o=a.Z_FINISH),o===a.Z_FINISH?(r=n.inflateEnd(this.strm),this.onEnd(r),this.ended=!0,r===a.Z_OK):o!==a.Z_SYNC_FLUSH||(this.onEnd(a.Z_OK),!(f.avail_out=0))},c.prototype.onData=function(e){this.chunks.push(e)},c.prototype.onEnd=function(e){e===a.Z_OK&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=i.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg},r.Inflate=c,r.inflate=d,r.inflateRaw=function(e,t){return(t=t||{}).raw=!0,d(e,t)},r.ungzip=d},{"./utils/common":41,"./utils/strings":42,"./zlib/constants":44,"./zlib/gzheader":47,"./zlib/inflate":49,"./zlib/messages":51,"./zlib/zstream":53}],41:[function(e,t,r){"use strict";var n="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Int32Array;r.assign=function(e){for(var t=Array.prototype.slice.call(arguments,1);t.length;){var r=t.shift();if(r){if("object"!=typeof r)throw new TypeError(r+"must be non-object");for(var n in r)r.hasOwnProperty(n)&&(e[n]=r[n])}}return e},r.shrinkBuf=function(e,t){return e.length===t?e:e.subarray?e.subarray(0,t):(e.length=t,e)};var i={arraySet:function(e,t,r,n,i){if(t.subarray&&e.subarray)e.set(t.subarray(r,r+n),i);else for(var s=0;s<n;s++)e[i+s]=t[r+s]},flattenChunks:function(e){var t,r,n,i,s,a;for(t=n=0,r=e.length;t<r;t++)n+=e[t].length;for(a=new Uint8Array(n),t=i=0,r=e.length;t<r;t++)s=e[t],a.set(s,i),i+=s.length;return a}},s={arraySet:function(e,t,r,n,i){for(var s=0;s<n;s++)e[i+s]=t[r+s]},flattenChunks:function(e){return[].concat.apply([],e)}};r.setTyped=function(e){e?(r.Buf8=Uint8Array,r.Buf16=Uint16Array,r.Buf32=Int32Array,r.assign(r,i)):(r.Buf8=Array,r.Buf16=Array,r.Buf32=Array,r.assign(r,s))},r.setTyped(n)},{}],42:[function(e,t,r){"use strict";var n=e("./common"),i=!0,s=!0;try{String.fromCharCode.apply(null,[0])}catch(e){i=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(e){s=!1}for(var a=new n.Buf8(256),o=0;o<256;o++)a[o]=252<=o?6:248<=o?5:240<=o?4:224<=o?3:192<=o?2:1;function h(e,t){if(t<65537&&(e.subarray&&s||!e.subarray&&i))return String.fromCharCode.apply(null,n.shrinkBuf(e,t));for(var r="",a=0;a<t;a++)r+=String.fromCharCode(e[a]);return r}a[254]=a[254]=1,r.string2buf=function(e){var t,r,i,s,a,o=e.length,h=0;for(s=0;s<o;s++)55296==(64512&(r=e.charCodeAt(s)))&&s+1<o&&56320==(64512&(i=e.charCodeAt(s+1)))&&(r=65536+(r-55296<<10)+(i-56320),s++),h+=r<128?1:r<2048?2:r<65536?3:4;for(t=new n.Buf8(h),s=a=0;a<h;s++)55296==(64512&(r=e.charCodeAt(s)))&&s+1<o&&56320==(64512&(i=e.charCodeAt(s+1)))&&(r=65536+(r-55296<<10)+(i-56320),s++),r<128?t[a++]=r:(r<2048?t[a++]=192|r>>>6:(r<65536?t[a++]=224|r>>>12:(t[a++]=240|r>>>18,t[a++]=128|r>>>12&63),t[a++]=128|r>>>6&63),t[a++]=128|63&r);return t},r.buf2binstring=function(e){return h(e,e.length)},r.binstring2buf=function(e){for(var t=new n.Buf8(e.length),r=0,i=t.length;r<i;r++)t[r]=e.charCodeAt(r);return t},r.buf2string=function(e,t){var r,n,i,s,o=t||e.length,l=new Array(2*o);for(r=n=0;r<o;)if((i=e[r++])<128)l[n++]=i;else if(4<(s=a[i]))l[n++]=65533,r+=s-1;else{for(i&=2===s?31:3===s?15:7;1<s&&r<o;)i=i<<6|63&e[r++],s--;1<s?l[n++]=65533:i<65536?l[n++]=i:(i-=65536,l[n++]=55296|i>>10&1023,l[n++]=56320|1023&i)}return h(l,n)},r.utf8border=function(e,t){var r;for((t=t||e.length)>e.length&&(t=e.length),r=t-1;0<=r&&128==(192&e[r]);)r--;return r<0||0===r?t:r+a[e[r]]>t?r:t}},{"./common":41}],43:[function(e,t,r){"use strict";t.exports=function(e,t,r,n){for(var i=65535&e,s=e>>>16&65535,a=0;0!==r;){for(r-=a=2e3<r?2e3:r;s=s+(i=i+t[n++]|0)|0,--a;);i%=65521,s%=65521}return i|s<<16}},{}],44:[function(e,t,r){"use strict";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}},{}],45:[function(e,t,r){"use strict";var n=function(){for(var e,t=[],r=0;r<256;r++){e=r;for(var n=0;n<8;n++)e=1&e?3988292384^e>>>1:e>>>1;t[r]=e}return t}();t.exports=function(e,t,r,i){var s=n,a=i+r;e^=-1;for(var o=i;o<a;o++)e=e>>>8^s[255&(e^t[o])];return-1^e}},{}],46:[function(e,t,r){"use strict";var n,i=e("../utils/common"),s=e("./trees"),a=e("./adler32"),o=e("./crc32"),h=e("./messages"),l=-2,u=258,c=262,d=113;function f(e,t){return e.msg=h[t],t}function p(e){return(e<<1)-(4<e?9:0)}function g(e){for(var t=e.length;0<=--t;)e[t]=0}function m(e){var t=e.state,r=t.pending;r>e.avail_out&&(r=e.avail_out),0!==r&&(i.arraySet(e.output,t.pending_buf,t.pending_out,r,e.next_out),e.next_out+=r,t.pending_out+=r,e.total_out+=r,e.avail_out-=r,t.pending-=r,0===t.pending&&(t.pending_out=0))}function _(e,t){s._tr_flush_block(e,0<=e.block_start?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,m(e.strm)}function y(e,t){e.pending_buf[e.pending++]=t}function w(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t}function v(e,t){var r,n,i=e.max_chain_length,s=e.strstart,a=e.prev_length,o=e.nice_match,h=e.strstart>e.w_size-c?e.strstart-(e.w_size-c):0,l=e.window,d=e.w_mask,f=e.prev,p=e.strstart+u,g=l[s+a-1],m=l[s+a];e.prev_length>=e.good_match&&(i>>=2),o>e.lookahead&&(o=e.lookahead);do{if(l[(r=t)+a]===m&&l[r+a-1]===g&&l[r]===l[s]&&l[++r]===l[s+1]){s+=2,r++;do{}while(l[++s]===l[++r]&&l[++s]===l[++r]&&l[++s]===l[++r]&&l[++s]===l[++r]&&l[++s]===l[++r]&&l[++s]===l[++r]&&l[++s]===l[++r]&&l[++s]===l[++r]&&s<p);if(n=u-(p-s),s=p-u,a<n){if(e.match_start=t,o<=(a=n))break;g=l[s+a-1],m=l[s+a]}}}while((t=f[t&d])>h&&0!=--i);return a<=e.lookahead?a:e.lookahead}function b(e){var t,r,n,s,h,l,u,d,f,p,g=e.w_size;do{if(s=e.window_size-e.lookahead-e.strstart,e.strstart>=g+(g-c)){for(i.arraySet(e.window,e.window,g,g,0),e.match_start-=g,e.strstart-=g,e.block_start-=g,t=r=e.hash_size;n=e.head[--t],e.head[t]=g<=n?n-g:0,--r;);for(t=r=g;n=e.prev[--t],e.prev[t]=g<=n?n-g:0,--r;);s+=g}if(0===e.strm.avail_in)break;if(l=e.strm,u=e.window,d=e.strstart+e.lookahead,p=void 0,(f=s)<(p=l.avail_in)&&(p=f),r=0===p?0:(l.avail_in-=p,i.arraySet(u,l.input,l.next_in,p,d),1===l.state.wrap?l.adler=a(l.adler,u,p,d):2===l.state.wrap&&(l.adler=o(l.adler,u,p,d)),l.next_in+=p,l.total_in+=p,p),e.lookahead+=r,e.lookahead+e.insert>=3)for(h=e.strstart-e.insert,e.ins_h=e.window[h],e.ins_h=(e.ins_h<<e.hash_shift^e.window[h+1])&e.hash_mask;e.insert&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[h+3-1])&e.hash_mask,e.prev[h&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=h,h++,e.insert--,!(e.lookahead+e.insert<3)););}while(e.lookahead<c&&0!==e.strm.avail_in)}function k(e,t){for(var r,n;;){if(e.lookahead<c){if(b(e),e.lookahead<c&&0===t)return 1;if(0===e.lookahead)break}if(r=0,e.lookahead>=3&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+3-1])&e.hash_mask,r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),0!==r&&e.strstart-r<=e.w_size-c&&(e.match_length=v(e,r)),e.match_length>=3)if(n=s._tr_tally(e,e.strstart-e.match_start,e.match_length-3),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=3){for(e.match_length--;e.strstart++,e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+3-1])&e.hash_mask,r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart,0!=--e.match_length;);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+1])&e.hash_mask;else n=s._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(n&&(_(e,!1),0===e.strm.avail_out))return 1}return e.insert=e.strstart<2?e.strstart:2,4===t?(_(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(_(e,!1),0===e.strm.avail_out)?1:2}function x(e,t){for(var r,n,i;;){if(e.lookahead<c){if(b(e),e.lookahead<c&&0===t)return 1;if(0===e.lookahead)break}if(r=0,e.lookahead>=3&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+3-1])&e.hash_mask,r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=2,0!==r&&e.prev_length<e.max_lazy_match&&e.strstart-r<=e.w_size-c&&(e.match_length=v(e,r),e.match_length<=5&&(1===e.strategy||3===e.match_length&&4096<e.strstart-e.match_start)&&(e.match_length=2)),e.prev_length>=3&&e.match_length<=e.prev_length){for(i=e.strstart+e.lookahead-3,n=s._tr_tally(e,e.strstart-1-e.prev_match,e.prev_length-3),e.lookahead-=e.prev_length-1,e.prev_length-=2;++e.strstart<=i&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+3-1])&e.hash_mask,r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),0!=--e.prev_length;);if(e.match_available=0,e.match_length=2,e.strstart++,n&&(_(e,!1),0===e.strm.avail_out))return 1}else if(e.match_available){if((n=s._tr_tally(e,0,e.window[e.strstart-1]))&&_(e,!1),e.strstart++,e.lookahead--,0===e.strm.avail_out)return 1}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(n=s._tr_tally(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<2?e.strstart:2,4===t?(_(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(_(e,!1),0===e.strm.avail_out)?1:2}function E(e,t,r,n,i){this.good_length=e,this.max_lazy=t,this.nice_length=r,this.max_chain=n,this.func=i}function R(){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 i.Buf16(1146),this.dyn_dtree=new i.Buf16(122),this.bl_tree=new i.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 i.Buf16(16),this.heap=new i.Buf16(573),g(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new i.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 S(e){var t;return e&&e.state?(e.total_in=e.total_out=0,e.data_type=2,(t=e.state).pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap?42:d,e.adler=2===t.wrap?0:1,t.last_flush=0,s._tr_init(t),0):f(e,l)}function I(e){var t=S(e);return 0===t&&function(e){e.window_size=2*e.w_size,g(e.head),e.max_lazy_match=n[e.level].max_lazy,e.good_match=n[e.level].good_length,e.nice_match=n[e.level].nice_length,e.max_chain_length=n[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}(e.state),t}function P(e,t,r,n,s,a){if(!e)return l;var o=1;if(-1===t&&(t=6),n<0?(o=0,n=-n):15<n&&(o=2,n-=16),s<1||9<s||8!==r||n<8||15<n||t<0||9<t||a<0||4<a)return f(e,l);8===n&&(n=9);var h=new R;return(e.state=h).strm=e,h.wrap=o,h.gzhead=null,h.w_bits=n,h.w_size=1<<h.w_bits,h.w_mask=h.w_size-1,h.hash_bits=s+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 i.Buf8(2*h.w_size),h.head=new i.Buf16(h.hash_size),h.prev=new i.Buf16(h.w_size),h.lit_bufsize=1<<s+6,h.pending_buf_size=4*h.lit_bufsize,h.pending_buf=new i.Buf8(h.pending_buf_size),h.d_buf=1*h.lit_bufsize,h.l_buf=3*h.lit_bufsize,h.level=t,h.strategy=a,h.method=r,I(e)}n=[new E(0,0,0,0,function(e,t){var r=65535;for(r>e.pending_buf_size-5&&(r=e.pending_buf_size-5);;){if(e.lookahead<=1){if(b(e),0===e.lookahead&&0===t)return 1;if(0===e.lookahead)break}e.strstart+=e.lookahead,e.lookahead=0;var n=e.block_start+r;if((0===e.strstart||e.strstart>=n)&&(e.lookahead=e.strstart-n,e.strstart=n,_(e,!1),0===e.strm.avail_out))return 1;if(e.strstart-e.block_start>=e.w_size-c&&(_(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,4===t?(_(e,!0),0===e.strm.avail_out?3:4):(e.strstart>e.block_start&&(_(e,!1),e.strm.avail_out),1)}),new E(4,4,8,4,k),new E(4,5,16,8,k),new E(4,6,32,32,k),new E(4,4,16,16,x),new E(8,16,32,32,x),new E(8,16,128,128,x),new E(8,32,128,256,x),new E(32,128,258,1024,x),new E(32,258,258,4096,x)],r.deflateInit=function(e,t){return P(e,t,8,15,8,0)},r.deflateInit2=P,r.deflateReset=I,r.deflateResetKeep=S,r.deflateSetHeader=function(e,t){return e&&e.state?2!==e.state.wrap?l:(e.state.gzhead=t,0):l},r.deflate=function(e,t){var r,i,a,h;if(!e||!e.state||5<t||t<0)return e?f(e,l):l;if(i=e.state,!e.output||!e.input&&0!==e.avail_in||666===i.status&&4!==t)return f(e,0===e.avail_out?-5:l);if(i.strm=e,r=i.last_flush,i.last_flush=t,42===i.status)if(2===i.wrap)e.adler=0,y(i,31),y(i,139),y(i,8),i.gzhead?(y(i,(i.gzhead.text?1:0)+(i.gzhead.hcrc?2:0)+(i.gzhead.extra?4:0)+(i.gzhead.name?8:0)+(i.gzhead.comment?16:0)),y(i,255&i.gzhead.time),y(i,i.gzhead.time>>8&255),y(i,i.gzhead.time>>16&255),y(i,i.gzhead.time>>24&255),y(i,9===i.level?2:2<=i.strategy||i.level<2?4:0),y(i,255&i.gzhead.os),i.gzhead.extra&&i.gzhead.extra.length&&(y(i,255&i.gzhead.extra.length),y(i,i.gzhead.extra.length>>8&255)),i.gzhead.hcrc&&(e.adler=o(e.adler,i.pending_buf,i.pending,0)),i.gzindex=0,i.status=69):(y(i,0),y(i,0),y(i,0),y(i,0),y(i,0),y(i,9===i.level?2:2<=i.strategy||i.level<2?4:0),y(i,3),i.status=d);else{var c=8+(i.w_bits-8<<4)<<8;c|=(2<=i.strategy||i.level<2?0:i.level<6?1:6===i.level?2:3)<<6,0!==i.strstart&&(c|=32),c+=31-c%31,i.status=d,w(i,c),0!==i.strstart&&(w(i,e.adler>>>16),w(i,65535&e.adler)),e.adler=1}if(69===i.status)if(i.gzhead.extra){for(a=i.pending;i.gzindex<(65535&i.gzhead.extra.length)&&(i.pending!==i.pending_buf_size||(i.gzhead.hcrc&&i.pending>a&&(e.adler=o(e.adler,i.pending_buf,i.pending-a,a)),m(e),a=i.pending,i.pending!==i.pending_buf_size));)y(i,255&i.gzhead.extra[i.gzindex]),i.gzindex++;i.gzhead.hcrc&&i.pending>a&&(e.adler=o(e.adler,i.pending_buf,i.pending-a,a)),i.gzindex===i.gzhead.extra.length&&(i.gzindex=0,i.status=73)}else i.status=73;if(73===i.status)if(i.gzhead.name){a=i.pending;do{if(i.pending===i.pending_buf_size&&(i.gzhead.hcrc&&i.pending>a&&(e.adler=o(e.adler,i.pending_buf,i.pending-a,a)),m(e),a=i.pending,i.pending===i.pending_buf_size)){h=1;break}h=i.gzindex<i.gzhead.name.length?255&i.gzhead.name.charCodeAt(i.gzindex++):0,y(i,h)}while(0!==h);i.gzhead.hcrc&&i.pending>a&&(e.adler=o(e.adler,i.pending_buf,i.pending-a,a)),0===h&&(i.gzindex=0,i.status=91)}else i.status=91;if(91===i.status)if(i.gzhead.comment){a=i.pending;do{if(i.pending===i.pending_buf_size&&(i.gzhead.hcrc&&i.pending>a&&(e.adler=o(e.adler,i.pending_buf,i.pending-a,a)),m(e),a=i.pending,i.pending===i.pending_buf_size)){h=1;break}h=i.gzindex<i.gzhead.comment.length?255&i.gzhead.comment.charCodeAt(i.gzindex++):0,y(i,h)}while(0!==h);i.gzhead.hcrc&&i.pending>a&&(e.adler=o(e.adler,i.pending_buf,i.pending-a,a)),0===h&&(i.status=103)}else i.status=103;if(103===i.status&&(i.gzhead.hcrc?(i.pending+2>i.pending_buf_size&&m(e),i.pending+2<=i.pending_buf_size&&(y(i,255&e.adler),y(i,e.adler>>8&255),e.adler=0,i.status=d)):i.status=d),0!==i.pending){if(m(e),0===e.avail_out)return i.last_flush=-1,0}else if(0===e.avail_in&&p(t)<=p(r)&&4!==t)return f(e,-5);if(666===i.status&&0!==e.avail_in)return f(e,-5);if(0!==e.avail_in||0!==i.lookahead||0!==t&&666!==i.status){var v=2===i.strategy?function(e,t){for(var r;;){if(0===e.lookahead&&(b(e),0===e.lookahead)){if(0===t)return 1;break}if(e.match_length=0,r=s._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,r&&(_(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,4===t?(_(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(_(e,!1),0===e.strm.avail_out)?1:2}(i,t):3===i.strategy?function(e,t){for(var r,n,i,a,o=e.window;;){if(e.lookahead<=u){if(b(e),e.lookahead<=u&&0===t)return 1;if(0===e.lookahead)break}if(e.match_length=0,e.lookahead>=3&&0<e.strstart&&(n=o[i=e.strstart-1])===o[++i]&&n===o[++i]&&n===o[++i]){a=e.strstart+u;do{}while(n===o[++i]&&n===o[++i]&&n===o[++i]&&n===o[++i]&&n===o[++i]&&n===o[++i]&&n===o[++i]&&n===o[++i]&&i<a);e.match_length=u-(a-i),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=3?(r=s._tr_tally(e,1,e.match_length-3),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(r=s._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),r&&(_(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,4===t?(_(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(_(e,!1),0===e.strm.avail_out)?1:2}(i,t):n[i.level].func(i,t);if(3!==v&&4!==v||(i.status=666),1===v||3===v)return 0===e.avail_out&&(i.last_flush=-1),0;if(2===v&&(1===t?s._tr_align(i):5!==t&&(s._tr_stored_block(i,0,0,!1),3===t&&(g(i.head),0===i.lookahead&&(i.strstart=0,i.block_start=0,i.insert=0))),m(e),0===e.avail_out))return i.last_flush=-1,0}return 4!==t?0:i.wrap<=0?1:(2===i.wrap?(y(i,255&e.adler),y(i,e.adler>>8&255),y(i,e.adler>>16&255),y(i,e.adler>>24&255),y(i,255&e.total_in),y(i,e.total_in>>8&255),y(i,e.total_in>>16&255),y(i,e.total_in>>24&255)):(w(i,e.adler>>>16),w(i,65535&e.adler)),m(e),0<i.wrap&&(i.wrap=-i.wrap),0!==i.pending?0:1)},r.deflateEnd=function(e){var t;return e&&e.state?42!==(t=e.state.status)&&69!==t&&73!==t&&91!==t&&103!==t&&t!==d&&666!==t?f(e,l):(e.state=null,t===d?f(e,-3):0):l},r.deflateSetDictionary=function(e,t){var r,n,s,o,h,u,c,d,f=t.length;if(!e||!e.state)return l;if(2===(o=(r=e.state).wrap)||1===o&&42!==r.status||r.lookahead)return l;for(1===o&&(e.adler=a(e.adler,t,f,0)),r.wrap=0,f>=r.w_size&&(0===o&&(g(r.head),r.strstart=0,r.block_start=0,r.insert=0),d=new i.Buf8(r.w_size),i.arraySet(d,t,f-r.w_size,r.w_size,0),t=d,f=r.w_size),h=e.avail_in,u=e.next_in,c=e.input,e.avail_in=f,e.next_in=0,e.input=t,b(r);r.lookahead>=3;){for(n=r.strstart,s=r.lookahead-2;r.ins_h=(r.ins_h<<r.hash_shift^r.window[n+3-1])&r.hash_mask,r.prev[n&r.w_mask]=r.head[r.ins_h],r.head[r.ins_h]=n,n++,--s;);r.strstart=n,r.lookahead=2,b(r)}return r.strstart+=r.lookahead,r.block_start=r.strstart,r.insert=r.lookahead,r.lookahead=0,r.match_length=r.prev_length=2,r.match_available=0,e.next_in=u,e.input=c,e.avail_in=h,r.wrap=o,0},r.deflateInfo="pako deflate (from Nodeca project)"},{"../utils/common":41,"./adler32":43,"./crc32":45,"./messages":51,"./trees":52}],47:[function(e,t,r){"use strict";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}},{}],48:[function(e,t,r){"use strict";t.exports=function(e,t){var r,n,i,s,a,o,h,l,u,c,d,f,p,g,m,_,y,w,v,b,k,x,E,R,S;r=e.state,n=e.next_in,R=e.input,i=n+(e.avail_in-5),s=e.next_out,S=e.output,a=s-(t-e.avail_out),o=s+(e.avail_out-257),h=r.dmax,l=r.wsize,u=r.whave,c=r.wnext,d=r.window,f=r.hold,p=r.bits,g=r.lencode,m=r.distcode,_=(1<<r.lenbits)-1,y=(1<<r.distbits)-1;e:do{p<15&&(f+=R[n++]<<p,p+=8,f+=R[n++]<<p,p+=8),w=g[f&_];t:for(;;){if(f>>>=v=w>>>24,p-=v,0==(v=w>>>16&255))S[s++]=65535&w;else{if(!(16&v)){if(!(64&v)){w=g[(65535&w)+(f&(1<<v)-1)];continue t}if(32&v){r.mode=12;break e}e.msg="invalid literal/length code",r.mode=30;break e}b=65535&w,(v&=15)&&(p<v&&(f+=R[n++]<<p,p+=8),b+=f&(1<<v)-1,f>>>=v,p-=v),p<15&&(f+=R[n++]<<p,p+=8,f+=R[n++]<<p,p+=8),w=m[f&y];r:for(;;){if(f>>>=v=w>>>24,p-=v,!(16&(v=w>>>16&255))){if(!(64&v)){w=m[(65535&w)+(f&(1<<v)-1)];continue r}e.msg="invalid distance code",r.mode=30;break e}if(k=65535&w,p<(v&=15)&&(f+=R[n++]<<p,(p+=8)<v&&(f+=R[n++]<<p,p+=8)),h<(k+=f&(1<<v)-1)){e.msg="invalid distance too far back",r.mode=30;break e}if(f>>>=v,p-=v,(v=s-a)<k){if(u<(v=k-v)&&r.sane){e.msg="invalid distance too far back",r.mode=30;break e}if(E=d,(x=0)===c){if(x+=l-v,v<b){for(b-=v;S[s++]=d[x++],--v;);x=s-k,E=S}}else if(c<v){if(x+=l+c-v,(v-=c)<b){for(b-=v;S[s++]=d[x++],--v;);if(x=0,c<b){for(b-=v=c;S[s++]=d[x++],--v;);x=s-k,E=S}}}else if(x+=c-v,v<b){for(b-=v;S[s++]=d[x++],--v;);x=s-k,E=S}for(;2<b;)S[s++]=E[x++],S[s++]=E[x++],S[s++]=E[x++],b-=3;b&&(S[s++]=E[x++],1<b&&(S[s++]=E[x++]))}else{for(x=s-k;S[s++]=S[x++],S[s++]=S[x++],S[s++]=S[x++],2<(b-=3););b&&(S[s++]=S[x++],1<b&&(S[s++]=S[x++]))}break}}break}}while(n<i&&s<o);n-=b=p>>3,f&=(1<<(p-=b<<3))-1,e.next_in=n,e.next_out=s,e.avail_in=n<i?i-n+5:5-(n-i),e.avail_out=s<o?o-s+257:257-(s-o),r.hold=f,r.bits=p}},{}],49:[function(e,t,r){"use strict";var n=e("../utils/common"),i=e("./adler32"),s=e("./crc32"),a=e("./inffast"),o=e("./inftrees"),h=-2;function l(e){return(e>>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<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 n.Buf16(320),this.work=new n.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function c(e){var t;return e&&e.state?(t=e.state,e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=1&t.wrap),t.mode=1,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new n.Buf32(852),t.distcode=t.distdyn=new n.Buf32(592),t.sane=1,t.back=-1,0):h}function d(e){var t;return e&&e.state?((t=e.state).wsize=0,t.whave=0,t.wnext=0,c(e)):h}function f(e,t){var r,n;return e&&e.state?(n=e.state,t<0?(r=0,t=-t):(r=1+(t>>4),t<48&&(t&=15)),t&&(t<8||15<t)?h:(null!==n.window&&n.wbits!==t&&(n.window=null),n.wrap=r,n.wbits=t,d(e))):h}function p(e,t){var r,n;return e?(n=new u,(e.state=n).window=null,0!==(r=f(e,t))&&(e.state=null),r):h}var g,m,_=!0;function y(e){if(_){var t;for(g=new n.Buf32(512),m=new n.Buf32(32),t=0;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(o(1,e.lens,0,288,g,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;o(2,e.lens,0,32,m,0,e.work,{bits:5}),_=!1}e.lencode=g,e.lenbits=9,e.distcode=m,e.distbits=5}function w(e,t,r,i){var s,a=e.state;return null===a.window&&(a.wsize=1<<a.wbits,a.wnext=0,a.whave=0,a.window=new n.Buf8(a.wsize)),i>=a.wsize?(n.arraySet(a.window,t,r-a.wsize,a.wsize,0),a.wnext=0,a.whave=a.wsize):(i<(s=a.wsize-a.wnext)&&(s=i),n.arraySet(a.window,t,r-i,s,a.wnext),(i-=s)?(n.arraySet(a.window,t,r-i,i,0),a.wnext=i,a.whave=a.wsize):(a.wnext+=s,a.wnext===a.wsize&&(a.wnext=0),a.whave<a.wsize&&(a.whave+=s))),0}r.inflateReset=d,r.inflateReset2=f,r.inflateResetKeep=c,r.inflateInit=function(e){return p(e,15)},r.inflateInit2=p,r.inflate=function(e,t){var r,u,c,d,f,p,g,m,_,v,b,k,x,E,R,S,I,P,z,A,C,O,T,N,B=0,j=new n.Buf8(4),D=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!e||!e.state||!e.output||!e.input&&0!==e.avail_in)return h;12===(r=e.state).mode&&(r.mode=13),f=e.next_out,c=e.output,g=e.avail_out,d=e.next_in,u=e.input,p=e.avail_in,m=r.hold,_=r.bits,v=p,b=g,O=0;e:for(;;)switch(r.mode){case 1:if(0===r.wrap){r.mode=13;break}for(;_<16;){if(0===p)break e;p--,m+=u[d++]<<_,_+=8}if(2&r.wrap&&35615===m){j[r.check=0]=255&m,j[1]=m>>>8&255,r.check=s(r.check,j,2,0),_=m=0,r.mode=2;break}if(r.flags=0,r.head&&(r.head.done=!1),!(1&r.wrap)||(((255&m)<<8)+(m>>8))%31){e.msg="incorrect header check",r.mode=30;break}if(8!=(15&m)){e.msg="unknown compression method",r.mode=30;break}if(_-=4,C=8+(15&(m>>>=4)),0===r.wbits)r.wbits=C;else if(C>r.wbits){e.msg="invalid window size",r.mode=30;break}r.dmax=1<<C,e.adler=r.check=1,r.mode=512&m?10:12,_=m=0;break;case 2:for(;_<16;){if(0===p)break e;p--,m+=u[d++]<<_,_+=8}if(r.flags=m,8!=(255&r.flags)){e.msg="unknown compression method",r.mode=30;break}if(57344&r.flags){e.msg="unknown header flags set",r.mode=30;break}r.head&&(r.head.text=m>>8&1),512&r.flags&&(j[0]=255&m,j[1]=m>>>8&255,r.check=s(r.check,j,2,0)),_=m=0,r.mode=3;case 3:for(;_<32;){if(0===p)break e;p--,m+=u[d++]<<_,_+=8}r.head&&(r.head.time=m),512&r.flags&&(j[0]=255&m,j[1]=m>>>8&255,j[2]=m>>>16&255,j[3]=m>>>24&255,r.check=s(r.check,j,4,0)),_=m=0,r.mode=4;case 4:for(;_<16;){if(0===p)break e;p--,m+=u[d++]<<_,_+=8}r.head&&(r.head.xflags=255&m,r.head.os=m>>8),512&r.flags&&(j[0]=255&m,j[1]=m>>>8&255,r.check=s(r.check,j,2,0)),_=m=0,r.mode=5;case 5:if(1024&r.flags){for(;_<16;){if(0===p)break e;p--,m+=u[d++]<<_,_+=8}r.length=m,r.head&&(r.head.extra_len=m),512&r.flags&&(j[0]=255&m,j[1]=m>>>8&255,r.check=s(r.check,j,2,0)),_=m=0}else r.head&&(r.head.extra=null);r.mode=6;case 6:if(1024&r.flags&&(p<(k=r.length)&&(k=p),k&&(r.head&&(C=r.head.extra_len-r.length,r.head.extra||(r.head.extra=new Array(r.head.extra_len)),n.arraySet(r.head.extra,u,d,k,C)),512&r.flags&&(r.check=s(r.check,u,k,d)),p-=k,d+=k,r.length-=k),r.length))break e;r.length=0,r.mode=7;case 7:if(2048&r.flags){if(0===p)break e;for(k=0;C=u[d+k++],r.head&&C&&r.length<65536&&(r.head.name+=String.fromCharCode(C)),C&&k<p;);if(512&r.flags&&(r.check=s(r.check,u,k,d)),p-=k,d+=k,C)break e}else r.head&&(r.head.name=null);r.length=0,r.mode=8;case 8:if(4096&r.flags){if(0===p)break e;for(k=0;C=u[d+k++],r.head&&C&&r.length<65536&&(r.head.comment+=String.fromCharCode(C)),C&&k<p;);if(512&r.flags&&(r.check=s(r.check,u,k,d)),p-=k,d+=k,C)break e}else r.head&&(r.head.comment=null);r.mode=9;case 9:if(512&r.flags){for(;_<16;){if(0===p)break e;p--,m+=u[d++]<<_,_+=8}if(m!==(65535&r.check)){e.msg="header crc mismatch",r.mode=30;break}_=m=0}r.head&&(r.head.hcrc=r.flags>>9&1,r.head.done=!0),e.adler=r.check=0,r.mode=12;break;case 10:for(;_<32;){if(0===p)break e;p--,m+=u[d++]<<_,_+=8}e.adler=r.check=l(m),_=m=0,r.mode=11;case 11:if(0===r.havedict)return e.next_out=f,e.avail_out=g,e.next_in=d,e.avail_in=p,r.hold=m,r.bits=_,2;e.adler=r.check=1,r.mode=12;case 12:if(5===t||6===t)break e;case 13:if(r.last){m>>>=7&_,_-=7&_,r.mode=27;break}for(;_<3;){if(0===p)break e;p--,m+=u[d++]<<_,_+=8}switch(r.last=1&m,_-=1,3&(m>>>=1)){case 0:r.mode=14;break;case 1:if(y(r),r.mode=20,6!==t)break;m>>>=2,_-=2;break e;case 2:r.mode=17;break;case 3:e.msg="invalid block type",r.mode=30}m>>>=2,_-=2;break;case 14:for(m>>>=7&_,_-=7&_;_<32;){if(0===p)break e;p--,m+=u[d++]<<_,_+=8}if((65535&m)!=(m>>>16^65535)){e.msg="invalid stored block lengths",r.mode=30;break}if(r.length=65535&m,_=m=0,r.mode=15,6===t)break e;case 15:r.mode=16;case 16:if(k=r.length){if(p<k&&(k=p),g<k&&(k=g),0===k)break e;n.arraySet(c,u,d,k,f),p-=k,d+=k,g-=k,f+=k,r.length-=k;break}r.mode=12;break;case 17:for(;_<14;){if(0===p)break e;p--,m+=u[d++]<<_,_+=8}if(r.nlen=257+(31&m),m>>>=5,_-=5,r.ndist=1+(31&m),m>>>=5,_-=5,r.ncode=4+(15&m),m>>>=4,_-=4,286<r.nlen||30<r.ndist){e.msg="too many length or distance symbols",r.mode=30;break}r.have=0,r.mode=18;case 18:for(;r.have<r.ncode;){for(;_<3;){if(0===p)break e;p--,m+=u[d++]<<_,_+=8}r.lens[D[r.have++]]=7&m,m>>>=3,_-=3}for(;r.have<19;)r.lens[D[r.have++]]=0;if(r.lencode=r.lendyn,r.lenbits=7,T={bits:r.lenbits},O=o(0,r.lens,0,19,r.lencode,0,r.work,T),r.lenbits=T.bits,O){e.msg="invalid code lengths set",r.mode=30;break}r.have=0,r.mode=19;case 19:for(;r.have<r.nlen+r.ndist;){for(;S=(B=r.lencode[m&(1<<r.lenbits)-1])>>>16&255,I=65535&B,!((R=B>>>24)<=_);){if(0===p)break e;p--,m+=u[d++]<<_,_+=8}if(I<16)m>>>=R,_-=R,r.lens[r.have++]=I;else{if(16===I){for(N=R+2;_<N;){if(0===p)break e;p--,m+=u[d++]<<_,_+=8}if(m>>>=R,_-=R,0===r.have){e.msg="invalid bit length repeat",r.mode=30;break}C=r.lens[r.have-1],k=3+(3&m),m>>>=2,_-=2}else if(17===I){for(N=R+3;_<N;){if(0===p)break e;p--,m+=u[d++]<<_,_+=8}_-=R,C=0,k=3+(7&(m>>>=R)),m>>>=3,_-=3}else{for(N=R+7;_<N;){if(0===p)break e;p--,m+=u[d++]<<_,_+=8}_-=R,C=0,k=11+(127&(m>>>=R)),m>>>=7,_-=7}if(r.have+k>r.nlen+r.ndist){e.msg="invalid bit length repeat",r.mode=30;break}for(;k--;)r.lens[r.have++]=C}}if(30===r.mode)break;if(0===r.lens[256]){e.msg="invalid code -- missing end-of-block",r.mode=30;break}if(r.lenbits=9,T={bits:r.lenbits},O=o(1,r.lens,0,r.nlen,r.lencode,0,r.work,T),r.lenbits=T.bits,O){e.msg="invalid literal/lengths set",r.mode=30;break}if(r.distbits=6,r.distcode=r.distdyn,T={bits:r.distbits},O=o(2,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,T),r.distbits=T.bits,O){e.msg="invalid distances set",r.mode=30;break}if(r.mode=20,6===t)break e;case 20:r.mode=21;case 21:if(6<=p&&258<=g){e.next_out=f,e.avail_out=g,e.next_in=d,e.avail_in=p,r.hold=m,r.bits=_,a(e,b),f=e.next_out,c=e.output,g=e.avail_out,d=e.next_in,u=e.input,p=e.avail_in,m=r.hold,_=r.bits,12===r.mode&&(r.back=-1);break}for(r.back=0;S=(B=r.lencode[m&(1<<r.lenbits)-1])>>>16&255,I=65535&B,!((R=B>>>24)<=_);){if(0===p)break e;p--,m+=u[d++]<<_,_+=8}if(S&&!(240&S)){for(P=R,z=S,A=I;S=(B=r.lencode[A+((m&(1<<P+z)-1)>>P)])>>>16&255,I=65535&B,!(P+(R=B>>>24)<=_);){if(0===p)break e;p--,m+=u[d++]<<_,_+=8}m>>>=P,_-=P,r.back+=P}if(m>>>=R,_-=R,r.back+=R,r.length=I,0===S){r.mode=26;break}if(32&S){r.back=-1,r.mode=12;break}if(64&S){e.msg="invalid literal/length code",r.mode=30;break}r.extra=15&S,r.mode=22;case 22:if(r.extra){for(N=r.extra;_<N;){if(0===p)break e;p--,m+=u[d++]<<_,_+=8}r.length+=m&(1<<r.extra)-1,m>>>=r.extra,_-=r.extra,r.back+=r.extra}r.was=r.length,r.mode=23;case 23:for(;S=(B=r.distcode[m&(1<<r.distbits)-1])>>>16&255,I=65535&B,!((R=B>>>24)<=_);){if(0===p)break e;p--,m+=u[d++]<<_,_+=8}if(!(240&S)){for(P=R,z=S,A=I;S=(B=r.distcode[A+((m&(1<<P+z)-1)>>P)])>>>16&255,I=65535&B,!(P+(R=B>>>24)<=_);){if(0===p)break e;p--,m+=u[d++]<<_,_+=8}m>>>=P,_-=P,r.back+=P}if(m>>>=R,_-=R,r.back+=R,64&S){e.msg="invalid distance code",r.mode=30;break}r.offset=I,r.extra=15&S,r.mode=24;case 24:if(r.extra){for(N=r.extra;_<N;){if(0===p)break e;p--,m+=u[d++]<<_,_+=8}r.offset+=m&(1<<r.extra)-1,m>>>=r.extra,_-=r.extra,r.back+=r.extra}if(r.offset>r.dmax){e.msg="invalid distance too far back",r.mode=30;break}r.mode=25;case 25:if(0===g)break e;if(k=b-g,r.offset>k){if((k=r.offset-k)>r.whave&&r.sane){e.msg="invalid distance too far back",r.mode=30;break}x=k>r.wnext?(k-=r.wnext,r.wsize-k):r.wnext-k,k>r.length&&(k=r.length),E=r.window}else E=c,x=f-r.offset,k=r.length;for(g<k&&(k=g),g-=k,r.length-=k;c[f++]=E[x++],--k;);0===r.length&&(r.mode=21);break;case 26:if(0===g)break e;c[f++]=r.length,g--,r.mode=21;break;case 27:if(r.wrap){for(;_<32;){if(0===p)break e;p--,m|=u[d++]<<_,_+=8}if(b-=g,e.total_out+=b,r.total+=b,b&&(e.adler=r.check=r.flags?s(r.check,c,b,f-b):i(r.check,c,b,f-b)),b=g,(r.flags?m:l(m))!==r.check){e.msg="incorrect data check",r.mode=30;break}_=m=0}r.mode=28;case 28:if(r.wrap&&r.flags){for(;_<32;){if(0===p)break e;p--,m+=u[d++]<<_,_+=8}if(m!==(4294967295&r.total)){e.msg="incorrect length check",r.mode=30;break}_=m=0}r.mode=29;case 29:O=1;break e;case 30:O=-3;break e;case 31:return-4;default:return h}return e.next_out=f,e.avail_out=g,e.next_in=d,e.avail_in=p,r.hold=m,r.bits=_,(r.wsize||b!==e.avail_out&&r.mode<30&&(r.mode<27||4!==t))&&w(e,e.output,e.next_out,b-e.avail_out)?(r.mode=31,-4):(v-=e.avail_in,b-=e.avail_out,e.total_in+=v,e.total_out+=b,r.total+=b,r.wrap&&b&&(e.adler=r.check=r.flags?s(r.check,c,b,e.next_out-b):i(r.check,c,b,e.next_out-b)),e.data_type=r.bits+(r.last?64:0)+(12===r.mode?128:0)+(20===r.mode||15===r.mode?256:0),(0==v&&0===b||4===t)&&0===O&&(O=-5),O)},r.inflateEnd=function(e){if(!e||!e.state)return h;var t=e.state;return t.window&&(t.window=null),e.state=null,0},r.inflateGetHeader=function(e,t){var r;return e&&e.state&&2&(r=e.state).wrap?((r.head=t).done=!1,0):h},r.inflateSetDictionary=function(e,t){var r,n=t.length;return e&&e.state?0!==(r=e.state).wrap&&11!==r.mode?h:11===r.mode&&i(1,t,n,0)!==r.check?-3:w(e,t,n,n)?(r.mode=31,-4):(r.havedict=1,0):h},r.inflateInfo="pako inflate (from Nodeca project)"},{"../utils/common":41,"./adler32":43,"./crc32":45,"./inffast":48,"./inftrees":50}],50:[function(e,t,r){"use strict";var n=e("../utils/common"),i=[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],s=[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],a=[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(e,t,r,h,l,u,c,d){var f,p,g,m,_,y,w,v,b,k=d.bits,x=0,E=0,R=0,S=0,I=0,P=0,z=0,A=0,C=0,O=0,T=null,N=0,B=new n.Buf16(16),j=new n.Buf16(16),D=null,L=0;for(x=0;x<=15;x++)B[x]=0;for(E=0;E<h;E++)B[t[r+E]]++;for(I=k,S=15;1<=S&&0===B[S];S--);if(S<I&&(I=S),0===S)return l[u++]=20971520,l[u++]=20971520,d.bits=1,0;for(R=1;R<S&&0===B[R];R++);for(I<R&&(I=R),x=A=1;x<=15;x++)if(A<<=1,(A-=B[x])<0)return-1;if(0<A&&(0===e||1!==S))return-1;for(j[1]=0,x=1;x<15;x++)j[x+1]=j[x]+B[x];for(E=0;E<h;E++)0!==t[r+E]&&(c[j[t[r+E]]++]=E);if(y=0===e?(T=D=c,19):1===e?(T=i,N-=257,D=s,L-=257,256):(T=a,D=o,-1),x=R,_=u,z=E=O=0,g=-1,m=(C=1<<(P=I))-1,1===e&&852<C||2===e&&592<C)return 1;for(;;){for(w=x-z,b=c[E]<y?(v=0,c[E]):c[E]>y?(v=D[L+c[E]],T[N+c[E]]):(v=96,0),f=1<<x-z,R=p=1<<P;l[_+(O>>z)+(p-=f)]=w<<24|v<<16|b,0!==p;);for(f=1<<x-1;O&f;)f>>=1;if(0!==f?(O&=f-1,O+=f):O=0,E++,0==--B[x]){if(x===S)break;x=t[r+c[E]]}if(I<x&&(O&m)!==g){for(0===z&&(z=I),_+=R,A=1<<(P=x-z);P+z<S&&!((A-=B[P+z])<=0);)P++,A<<=1;if(C+=1<<P,1===e&&852<C||2===e&&592<C)return 1;l[g=O&m]=I<<24|P<<16|_-u}}return 0!==O&&(l[_+O]=x-z<<24|64<<16),d.bits=I,0}},{"../utils/common":41}],51:[function(e,t,r){"use strict";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"}},{}],52:[function(e,t,r){"use strict";var n=e("../utils/common");function i(e){for(var t=e.length;0<=--t;)e[t]=0}var s=256,a=286,o=30,h=15,l=[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],u=[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],c=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],d=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],f=new Array(576);i(f);var p=new Array(60);i(p);var g=new Array(512);i(g);var m=new Array(256);i(m);var _=new Array(29);i(_);var y,w,v,b=new Array(o);function k(e,t,r,n,i){this.static_tree=e,this.extra_bits=t,this.extra_base=r,this.elems=n,this.max_length=i,this.has_stree=e&&e.length}function x(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}function E(e){return e<256?g[e]:g[256+(e>>>7)]}function R(e,t){e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255}function S(e,t,r){e.bi_valid>16-r?(e.bi_buf|=t<<e.bi_valid&65535,R(e,e.bi_buf),e.bi_buf=t>>16-e.bi_valid,e.bi_valid+=r-16):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=r)}function I(e,t,r){S(e,r[2*t],r[2*t+1])}function P(e,t){for(var r=0;r|=1&e,e>>>=1,r<<=1,0<--t;);return r>>>1}function z(e,t,r){var n,i,s=new Array(16),a=0;for(n=1;n<=h;n++)s[n]=a=a+r[n-1]<<1;for(i=0;i<=t;i++){var o=e[2*i+1];0!==o&&(e[2*i]=P(s[o]++,o))}}function A(e){var t;for(t=0;t<a;t++)e.dyn_ltree[2*t]=0;for(t=0;t<o;t++)e.dyn_dtree[2*t]=0;for(t=0;t<19;t++)e.bl_tree[2*t]=0;e.dyn_ltree[512]=1,e.opt_len=e.static_len=0,e.last_lit=e.matches=0}function C(e){8<e.bi_valid?R(e,e.bi_buf):0<e.bi_valid&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0}function O(e,t,r,n){var i=2*t,s=2*r;return e[i]<e[s]||e[i]===e[s]&&n[t]<=n[r]}function T(e,t,r){for(var n=e.heap[r],i=r<<1;i<=e.heap_len&&(i<e.heap_len&&O(t,e.heap[i+1],e.heap[i],e.depth)&&i++,!O(t,n,e.heap[i],e.depth));)e.heap[r]=e.heap[i],r=i,i<<=1;e.heap[r]=n}function N(e,t,r){var n,i,a,o,h=0;if(0!==e.last_lit)for(;n=e.pending_buf[e.d_buf+2*h]<<8|e.pending_buf[e.d_buf+2*h+1],i=e.pending_buf[e.l_buf+h],h++,0===n?I(e,i,t):(I(e,(a=m[i])+s+1,t),0!==(o=l[a])&&S(e,i-=_[a],o),I(e,a=E(--n),r),0!==(o=u[a])&&S(e,n-=b[a],o)),h<e.last_lit;);I(e,256,t)}function B(e,t){var r,n,i,s=t.dyn_tree,a=t.stat_desc.static_tree,o=t.stat_desc.has_stree,l=t.stat_desc.elems,u=-1;for(e.heap_len=0,e.heap_max=573,r=0;r<l;r++)0!==s[2*r]?(e.heap[++e.heap_len]=u=r,e.depth[r]=0):s[2*r+1]=0;for(;e.heap_len<2;)s[2*(i=e.heap[++e.heap_len]=u<2?++u:0)]=1,e.depth[i]=0,e.opt_len--,o&&(e.static_len-=a[2*i+1]);for(t.max_code=u,r=e.heap_len>>1;1<=r;r--)T(e,s,r);for(i=l;r=e.heap[1],e.heap[1]=e.heap[e.heap_len--],T(e,s,1),n=e.heap[1],e.heap[--e.heap_max]=r,e.heap[--e.heap_max]=n,s[2*i]=s[2*r]+s[2*n],e.depth[i]=(e.depth[r]>=e.depth[n]?e.depth[r]:e.depth[n])+1,s[2*r+1]=s[2*n+1]=i,e.heap[1]=i++,T(e,s,1),2<=e.heap_len;);e.heap[--e.heap_max]=e.heap[1],function(e,t){var r,n,i,s,a,o,l=t.dyn_tree,u=t.max_code,c=t.stat_desc.static_tree,d=t.stat_desc.has_stree,f=t.stat_desc.extra_bits,p=t.stat_desc.extra_base,g=t.stat_desc.max_length,m=0;for(s=0;s<=h;s++)e.bl_count[s]=0;for(l[2*e.heap[e.heap_max]+1]=0,r=e.heap_max+1;r<573;r++)g<(s=l[2*l[2*(n=e.heap[r])+1]+1]+1)&&(s=g,m++),l[2*n+1]=s,u<n||(e.bl_count[s]++,a=0,p<=n&&(a=f[n-p]),o=l[2*n],e.opt_len+=o*(s+a),d&&(e.static_len+=o*(c[2*n+1]+a)));if(0!==m){do{for(s=g-1;0===e.bl_count[s];)s--;e.bl_count[s]--,e.bl_count[s+1]+=2,e.bl_count[g]--,m-=2}while(0<m);for(s=g;0!==s;s--)for(n=e.bl_count[s];0!==n;)u<(i=e.heap[--r])||(l[2*i+1]!==s&&(e.opt_len+=(s-l[2*i+1])*l[2*i],l[2*i+1]=s),n--)}}(e,t),z(s,u,e.bl_count)}function j(e,t,r){var n,i,s=-1,a=t[1],o=0,h=7,l=4;for(0===a&&(h=138,l=3),t[2*(r+1)+1]=65535,n=0;n<=r;n++)i=a,a=t[2*(n+1)+1],++o<h&&i===a||(o<l?e.bl_tree[2*i]+=o:0!==i?(i!==s&&e.bl_tree[2*i]++,e.bl_tree[32]++):o<=10?e.bl_tree[34]++:e.bl_tree[36]++,s=i,l=(o=0)===a?(h=138,3):i===a?(h=6,3):(h=7,4))}function D(e,t,r){var n,i,s=-1,a=t[1],o=0,h=7,l=4;for(0===a&&(h=138,l=3),n=0;n<=r;n++)if(i=a,a=t[2*(n+1)+1],!(++o<h&&i===a)){if(o<l)for(;I(e,i,e.bl_tree),0!=--o;);else 0!==i?(i!==s&&(I(e,i,e.bl_tree),o--),I(e,16,e.bl_tree),S(e,o-3,2)):o<=10?(I(e,17,e.bl_tree),S(e,o-3,3)):(I(e,18,e.bl_tree),S(e,o-11,7));s=i,l=(o=0)===a?(h=138,3):i===a?(h=6,3):(h=7,4)}}i(b);var L=!1;function M(e,t,r,i){S(e,0+(i?1:0),3),function(e,t,r){C(e),R(e,r),R(e,~r),n.arraySet(e.pending_buf,e.window,t,r,e.pending),e.pending+=r}(e,t,r)}r._tr_init=function(e){L||(function(){var e,t,r,n,i,s=new Array(16);for(n=r=0;n<28;n++)for(_[n]=r,e=0;e<1<<l[n];e++)m[r++]=n;for(m[r-1]=n,n=i=0;n<16;n++)for(b[n]=i,e=0;e<1<<u[n];e++)g[i++]=n;for(i>>=7;n<o;n++)for(b[n]=i<<7,e=0;e<1<<u[n]-7;e++)g[256+i++]=n;for(t=0;t<=h;t++)s[t]=0;for(e=0;e<=143;)f[2*e+1]=8,e++,s[8]++;for(;e<=255;)f[2*e+1]=9,e++,s[9]++;for(;e<=279;)f[2*e+1]=7,e++,s[7]++;for(;e<=287;)f[2*e+1]=8,e++,s[8]++;for(z(f,287,s),e=0;e<o;e++)p[2*e+1]=5,p[2*e]=P(e,5);y=new k(f,l,257,a,h),w=new k(p,u,0,o,h),v=new k(new Array(0),c,0,19,7)}(),L=!0),e.l_desc=new x(e.dyn_ltree,y),e.d_desc=new x(e.dyn_dtree,w),e.bl_desc=new x(e.bl_tree,v),e.bi_buf=0,e.bi_valid=0,A(e)},r._tr_stored_block=M,r._tr_flush_block=function(e,t,r,n){var i,a,o=0;0<e.level?(2===e.strm.data_type&&(e.strm.data_type=function(e){var t,r=4093624447;for(t=0;t<=31;t++,r>>>=1)if(1&r&&0!==e.dyn_ltree[2*t])return 0;if(0!==e.dyn_ltree[18]||0!==e.dyn_ltree[20]||0!==e.dyn_ltree[26])return 1;for(t=32;t<s;t++)if(0!==e.dyn_ltree[2*t])return 1;return 0}(e)),B(e,e.l_desc),B(e,e.d_desc),o=function(e){var t;for(j(e,e.dyn_ltree,e.l_desc.max_code),j(e,e.dyn_dtree,e.d_desc.max_code),B(e,e.bl_desc),t=18;3<=t&&0===e.bl_tree[2*d[t]+1];t--);return e.opt_len+=3*(t+1)+5+5+4,t}(e),i=e.opt_len+3+7>>>3,(a=e.static_len+3+7>>>3)<=i&&(i=a)):i=a=r+5,r+4<=i&&-1!==t?M(e,t,r,n):4===e.strategy||a===i?(S(e,2+(n?1:0),3),N(e,f,p)):(S(e,4+(n?1:0),3),function(e,t,r,n){var i;for(S(e,t-257,5),S(e,r-1,5),S(e,n-4,4),i=0;i<n;i++)S(e,e.bl_tree[2*d[i]+1],3);D(e,e.dyn_ltree,t-1),D(e,e.dyn_dtree,r-1)}(e,e.l_desc.max_code+1,e.d_desc.max_code+1,o+1),N(e,e.dyn_ltree,e.dyn_dtree)),A(e),n&&C(e)},r._tr_tally=function(e,t,r){return e.pending_buf[e.d_buf+2*e.last_lit]=t>>>8&255,e.pending_buf[e.d_buf+2*e.last_lit+1]=255&t,e.pending_buf[e.l_buf+e.last_lit]=255&r,e.last_lit++,0===t?e.dyn_ltree[2*r]++:(e.matches++,t--,e.dyn_ltree[2*(m[r]+s+1)]++,e.dyn_dtree[2*E(t)]++),e.last_lit===e.lit_bufsize-1},r._tr_align=function(e){S(e,2,3),I(e,256,f),function(e){16===e.bi_valid?(R(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):8<=e.bi_valid&&(e.pending_buf[e.pending++]=255&e.bi_buf,e.bi_buf>>=8,e.bi_valid-=8)}(e)}},{"../utils/common":41}],53:[function(e,t,r){"use strict";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}},{}],54:[function(e,t,n){(function(e){!function(e){"use strict";if(!e.setImmediate){var t,r,n,i,s=1,a={},o=!1,h=e.document,l=Object.getPrototypeOf&&Object.getPrototypeOf(e);l=l&&l.setTimeout?l:e,t="[object process]"==={}.toString.call(e.process)?function(e){process.nextTick(function(){c(e)})}:function(){if(e.postMessage&&!e.importScripts){var t=!0,r=e.onmessage;return e.onmessage=function(){t=!1},e.postMessage("","*"),e.onmessage=r,t}}()?(i="setImmediate$"+Math.random()+"$",e.addEventListener?e.addEventListener("message",d,!1):e.attachEvent("onmessage",d),function(t){e.postMessage(i+t,"*")}):e.MessageChannel?((n=new MessageChannel).port1.onmessage=function(e){c(e.data)},function(e){n.port2.postMessage(e)}):h&&"onreadystatechange"in h.createElement("script")?(r=h.documentElement,function(e){var t=h.createElement("script");t.onreadystatechange=function(){c(e),t.onreadystatechange=null,r.removeChild(t),t=null},r.appendChild(t)}):function(e){setTimeout(c,0,e)},l.setImmediate=function(e){"function"!=typeof e&&(e=new Function(""+e));for(var r=new Array(arguments.length-1),n=0;n<r.length;n++)r[n]=arguments[n+1];var i={callback:e,args:r};return a[s]=i,t(s),s++},l.clearImmediate=u}function u(e){delete a[e]}function c(e){if(o)setTimeout(c,0,e);else{var t=a[e];if(t){o=!0;try{!function(e){var t=e.callback,r=e.args;switch(r.length){case 0:t();break;case 1:t(r[0]);break;case 2:t(r[0],r[1]);break;case 3:t(r[0],r[1],r[2]);break;default:t.apply(undefined,r)}}(t)}finally{u(e),o=!1}}}}function d(t){t.source===e&&"string"==typeof t.data&&0===t.data.indexOf(i)&&c(+t.data.slice(i.length))}}("undefined"==typeof self?void 0===e?this:e:self)}).call(this,void 0!==r.g?r.g:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}]},{},[10])(10)}},t={};function r(n){var i=t[n];if(void 0!==i)return i.exports;var s=t[n]={exports:{}};return e[n](s,s.exports,r),s.exports}r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{AsyncIterableIteratorMirror:()=>t,DefaultPublicRegistryOptions:()=>u,DefaultRegistryOptions:()=>c,DevPluginServerClient:()=>B,DevPluginSource:()=>M,FilteredIterableIterator:()=>g,LazyBatchedAsyncIterableIterator:()=>T,LazyPromise:()=>i,LocalObject:()=>m,LocalRegistry:()=>b,LocalRemoteMap:()=>o,Messenger:()=>x,NetworkManager:()=>P,PluginArchive:()=>O,PluginManager:()=>z,ProxyManager:()=>l,RPPlatform:()=>C,RPPlugin:()=>E,RPVersion:()=>N,RPackThread:()=>A,RegistryManager:()=>S,RemoteAsyncIterator:()=>e,RemoteObject:()=>v,RemoteProxyManager:()=>h,RemoteRegistry:()=>k,RemoteRegistryManager:()=>R,StringUtils:()=>a,Utils:()=>s,ZipPluginArchive:()=>L,default:()=>F});class e{constructor(e,t){this.manager=e,this.iteratorKeySupplier=t,this.iteratorKey=null,this.iteratorKeyPromise=null,this.finished=!1}[Symbol.asyncIterator](){return this}async getIteratorKey(){return null!==this.iteratorKey?this.iteratorKey:null!==this.iteratorKeyPromise?this.iteratorKeyPromise:this.iteratorKeyPromise=this.iteratorKeySupplier().then(e=>this.iteratorKey=e)}async next(...[e]){if(this.finished)return{done:!0,value:void 0};let t=await this.manager.requestRemoteIteratorNext(await this.getIteratorKey(),e);return t.done&&(this.finished=!0),t}async return(e){return this.finished||(this.manager.requestRemoteIteratorClose(await this.getIteratorKey()),this.finished=!0),{done:!0,value:e}}async throw(e){throw this.finished||(this.manager.requestRemoteIteratorClose(await this.getIteratorKey()),this.finished=!0),e}}class t{constructor(e,t=e=>e){this.it=e,this.converter=t}[Symbol.asyncIterator](){return this}async next(...e){let t=this.it.next(...e);return void 0!==t.value&&(t.value=this.converter(t.value)),t}async return(e){if(void 0!==this.it.return){let t=this.it.return(e);return void 0!==t.value&&(t.value=this.converter(t.value)),t}return{done:!0,value:e}}async throw(e){if(void 0!==this.it.throw){let t=this.it.throw(e);return void 0!==t.value&&(t.value=this.converter(t.value)),t}throw e}}class i{constructor(e){this.promise=new Promise((e,t)=>{this.resolveFunc=e,this.rejectFunc=t}),this.completed=!1,this.errored=!1,e?.then(this.resolve,this.reject)}resolve(e){this.completed||(this.completed=!0,this.errored=!1,this.resolveFunc(e))}reject(e){this.completed||(this.completed=!0,this.errored=!0,this.rejectFunc(e))}getPromise(){return this.promise}then(e,t){return this.promise.then(e,t)}isComplete(){return this.completed}isErrored(){return this.errored}}class s{static NATURAL_COLLATOR=new Intl.Collator(void 0,{numeric:!0});static async getLargeFile(e,t,r){let n=await fetch(e,t);if(!n.body)return;let i=n.body.getReader(),s=[],a=0,o=n.headers.get("Content-Length"),h=null==o?0:parseInt(o);for(r||(r=()=>{});;){let e=await i.read();if(e.done)break;a+=e.value.length,r(a,h),s.push(e.value)}return await new Blob(s).arrayBuffer()}static binarySearch(e,t,r){let n=0,i=e.length-1;for(;n<=i;){let s=i+n>>1,a=r(t,e[s]);if(a>0)n=s+1;else{if(!(a<0))return s;i=s-1}}return-n-1}static binarySearch2(e,t,r,n){let i=0,s=e.length-1;for(;i<=s;){let a=s+i>>1,o=n(t,r(e[a]));if(o>0)i=a+1;else{if(!(o<0))return a;s=a-1}}return-i-1}static loadImageAsync(e){let t=new i;const r=new Image;return r.onload=()=>t.resolve(r),r.onerror=t.reject,r.src=e,t.getPromise()}static naturalComparator(e=e=>e?e.toString():"null"){return(t,r)=>this.NATURAL_COLLATOR.compare(e(t),e(r))}static naturalSort(e,t=e=>e?e.toString():"null"){return e.sort(this.naturalComparator(t)),e}static async asyncSort(e,t){if(e.length<=1)return e;const r=Math.floor(e.length/2);let n=await this.asyncSort(e.slice(0,r),t),i=await this.asyncSort(e.slice(r),t),s=0,a=0,o=0;for(;s<n.length&&a<i.length;)await t(n[s],i[a])<=0?(e[o]=n[s],s++):(e[o]=i[a],a++),o++;for(;s<n.length;)e[o]=n[s],s++,o++;for(;a<i.length;)e[o]=i[a],a++,o++;return e}static diff(e,t,r=(e,t)=>e==t){let n=[],i=[];for(let i of e){let e=!1;for(let n of t)if(r(i,n)){e=!0;break}e||n.push(i)}for(let n of t){let t=!1;for(let i of e)if(r(i,n)){t=!0;break}t||i.push(n)}return{added:n,removed:i}}static tableString(e,t,r){let n,i=["|"],s=" ",a="left";r&&(void 0!==r.separator&&(i=r.separator instanceof Array?r.separator:[r.separator]),void 0!==r.headers&&(n=r.headers),void 0!==r.padding&&(s=r.padding),void 0!==r.textAlign&&(a=r.textAlign));let o=e.map(e=>t(e)),h=[];for(let e of o)for(let t=0;t<e.length;t++)"number"==typeof h[t]?h[t]=Math.max(h[t],e[t].length):h[t]=e[t].length;if(n)for(let e=0;e<n.length;e++)"number"==typeof h[e]?h[e]=Math.max(h[e],n[e].length):h[e]=n[e].length;if("right"==a){if(n)for(let e=0;e<n.length;e++)n[e]=s+n[e].padStart(h[e]," ")+s;for(let e of o)for(let t=0;t<e.length;t++)e[t]=s+e[t].padStart(h[t]," ")+s}else if("center"==a){if(n)for(let e=0;e<n.length;e++)n[e]=s+n[e].padEnd(Math.ceil((h[e]-n[e].length)/2)+n[e].length," ").padStart(h[e]," ")+s;for(let e of o)for(let t=0;t<e.length;t++)e[t]=s+e[t].padEnd(Math.ceil((h[t]-e[t].length)/2)+e[t].length," ").padStart(h[t]," ")+s}else{if(n)for(let e=0;e<n.length;e++)n[e]=s+n[e].padEnd(h[e]," ")+s;for(let e of o)for(let t=0;t<e.length;t++)e[t]=s+e[t].padEnd(h[t]," ")+s}let l="";if(n){let e="";for(let t=0;t<n.length;t++){if(t>0){let r=i[(t-1)%i.length];l+=r,e+=r}l+=n[t],e+="-".repeat(n[t].length)}l+="\n"+e+"\n"}for(let e=0;e<o.length;e++){let t=o[e];e>0&&(l+="\n");for(let e=0;e<t.length;e++)e>0&&(l+=i[e%i.length]),l+=t[e]}return l}static getEnumKeys(e){let t=[];for(let r of Object.getOwnPropertyNames(e))isNaN(parseInt(r))&&t.push(r);return t}static getEnumConstants(e){let t=[];for(let r of Object.getOwnPropertyNames(e))if(isNaN(parseInt(r))){let n=e[r];t.push(n)}return t}static presentOrDefault(e,t){return void 0===e?t:e}static generateRandomInt(e,t){return void 0===t&&(t=e,e=0),t=Math.floor(t),(e=Math.ceil(e))+Math.floor(Math.random()*(t-e))}static pickRandomElement(e){let t=Object.keys(e);return e[t[this.generateRandomInt(t.length)]]}}class a{static LOWERCASE_LETTERS="abcdefghijklmnopqrstuvwxyz";static UPPERCASE_LETTERS="ABCDEFGHIJKLMNOPQRSTUVWXYZ";static NUMBERS="0123456789";static LOWERCASE_UPPERCASE=a.LOWERCASE_LETTERS+a.UPPERCASE_LETTERS;static ALPHANUMERIC=a.LOWERCASE_UPPERCASE+a.NUMBERS;static generateNonce(){return this.generateString(this.ALPHANUMERIC,20)}static generateString(e,t){let r="";for(let n=0;n<t;n++)r+=s.pickRandomElement(e);return r}static capitalize(e){return e.substring(0,1).toUpperCase()+e.substring(1)}static count(e,t){return(e.match(new RegExp(this.escapeRegExp(t),"g"))||[]).length}static escapeRegExp(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}}class o{constructor(e,t,r,n){this.parent=e,this.localMap=new Map,this.remoteSet=new Set,this.registry=new FinalizationRegistry(e=>{this.remoteSet.delete(e)&&t.sendPacket({id:"proxy:cleanup",type:r,key:e})}),t.addHandler("proxy:cleanup",e=>{if(e.type!=r)return;let t=this.delete(e.key);void 0!==t&&void 0!==n&&n(t)})}generateKey(e){for(;;){let t=a.generateNonce();if(!this.localMap.has(t))return this.localMap.set(t,e),t}}addLocal(e,t){return t?(this.localMap.set(t,e),t):this.generateKey(e)}get(e){return this.localMap.get(e)}delete(e){let t=this.localMap.get(e);return this.localMap.delete(e),t}registerRemote(e,t){this.registry.register(t,e)}has(e){return this.localMap.has(e)}hasRemote(e){return this.remoteSet.has(e)}deleteRemote(e){return this.remoteSet.delete(e)}}class h{constructor(e,t,r){this.parent=e,this.threadId=t,this.messenger=r,this.objects=new o(this,r,"object"),this.functions=new o(this,r,"function"),this.iterators=new o(this,r,"iterator",e=>{e.return&&e.return().then()}),this.messenger.addHandler("proxy:refresh_object_request",this.onObjectRefresh.bind(this)),this.messenger.addHandler("proxy:method_request",this.onMethod.bind(this)),this.messenger.addHandler("proxy:function_request",this.onFunction.bind(this)),this.messenger.addHandler("proxy:create_iterator_request",this.onIteratorCreate.bind(this)),this.messenger.addHandler("proxy:iterator_next_request",this.onIteratorNext.bind(this)),this.messenger.addHandler("proxy:iterator_close_request",this.onIteratorClose.bind(this))}getThreadId(){return this.threadId}serialize(e,t){return this.parent.getRPack().getNetworkManager().serialize(this.threadId,e,t)}deserialize(e){return this.parent.getRPack().getNetworkManager().deserialize(this.threadId,e)}sendValue(e,t,r,n){this.messenger.sendPacket({id:e,nonce:t,value:this.serialize(r),...n})}sendError(e,t,r){this.messenger.sendPacket({id:e,nonce:t,error:this.serialize(r)})}sendErrorRaw(e,t,r){this.sendError(e,t,new Error(r))}onObjectRefresh(e){let t=e.objectKey;if(!this.objects.has(t))return void this.sendErrorRaw("proxy:refresh_object_response",e.nonce,"Unknown object key "+t);let r=this.objects.get(t);this.sendValue("proxy:refresh_object_response",e.nonce,r)}onMethod(e){let t=e.objectKey;if(!this.objects.has(t))return void this.sendErrorRaw("proxy:method_response",e.nonce,"Unknown object key "+t);let r=this.objects.get(t),n=e.method;if(!(n in r))return void this.sendErrorRaw("proxy:method_response",e.nonce,"Property "+n+" is not present in object "+t);let i=r[n],s=e.args.map(e=>this.deserialize(e)),a=i.apply(r,s);Promise.resolve(a).then(t=>{this.sendValue("proxy:method_response",e.nonce,t)},t=>{this.sendError("proxy:method_response",e.nonce,t)})}onFunction(e){let t=e.functionKey;if(!this.functions.has(t))return void this.sendErrorRaw("proxy:function_response",e.nonce,"Unknown function key "+t);let r=this.functions.get(t)(...e.args.map(e=>this.deserialize(e)));Promise.resolve(r).then(t=>{this.sendValue("proxy:function_response",e.nonce,t)},t=>{this.sendError("proxy:function_response",e.nonce,t)})}onIteratorCreate(e){let t=e.objectKey;if(!this.objects.has(t))return void this.sendErrorRaw("proxy:create_iterator_response",e.nonce,"Unknown object key "+t);let r,n=this.objects.get(t);if(n[Symbol.iterator]){let e=n[Symbol.iterator]();r=this.declareLocalIterator(e)}else{if(!n[Symbol.asyncIterator])return void this.sendErrorRaw("proxy:create_iterator_response",e.nonce,"Object "+t+" is not iterable");{let e=n[Symbol.asyncIterator]();r=this.declareLocalAsyncIterator(e)}}this.messenger.sendPacket({id:"proxy:create_iterator_response",nonce:e.nonce,iteratorKey:r})}onIteratorNext(e){let t=e.iteratorKey,r=void 0===e.value?void 0:this.deserialize(e.value);this.iterators.has(t)?this.iterators.get(t).next(r).then(t=>{this.sendValue("proxy:iterator_next_response",e.nonce,t.value,{done:t.done??!1})},t=>{this.sendError("proxy:iterator_next_response",e.nonce,t)}):this.sendErrorRaw("proxy:iterator_next_response",e.nonce,"Unknown iterator key "+t)}onIteratorClose(e){let t=e.iteratorKey;if(this.iterators.has(t)){let e=this.iterators.get(t);e.return&&e.return().then(),this.iterators.delete(t)}}declareLocalObject(e,t){return this.objects.addLocal(e,t)}declareLocalIterator(e){return this.iterators.addLocal(new t(e))}declareLocalAsyncIterator(e){return this.iterators.addLocal(e)}declareFunction(e){return this.functions.addLocal(e)}declareRemoteIterator(e,t){this.iterators.registerRemote(e,t)}requestRemoteObjectIterator(t){let r=new e(this,async()=>{const e=await this.messenger.sendPacketWithNoncePromise("proxy:create_iterator_request",{objectKey:t},"proxy:create_iterator_response");if(e.error)throw this.deserialize(e.error);let n=e.iteratorKey;return this.declareRemoteIterator(n,r),n});return r}async requestRemoteIteratorNext(e,t){if(!this.iterators.hasRemote(e))return{done:!0,value:void 0};let r=await this.messenger.sendPacketWithNoncePromise("proxy:iterator_next_request",{iteratorKey:e,value:void 0===t?void 0:this.serialize(t)},"proxy:iterator_next_response");if(r.error)throw this.deserialize(r.error);{let e=this.deserialize(r.value);return{done:r.done,value:e}}}requestRemoteIteratorClose(e){this.iterators.hasRemote(e)&&(this.messenger.sendPacket({id:"proxy:iterator_close_request",iteratorKey:e}),this.iterators.deleteRemote(e))}async refreshRemote(e){let t=await this.messenger.sendPacketWithNoncePromise("proxy:refresh_object_request",{objectKey:e},"proxy:refresh_object_response");if(t.error)throw this.deserialize(t.error);let r=this.deserialize(t.value);return this.objects.registerRemote(e,r),r}async requestRemoteMethod(e,t,r){let n=await this.messenger.sendPacketWithNoncePromise("proxy:method_request",{objectKey:e,method:t,args:r.map(e=>this.serialize(e))},"proxy:method_response");if(n.error)throw this.deserialize(n.error);return this.deserialize(n.value)}async requestRemoteFunction(e,t){let r=await this.messenger.sendPacketWithNoncePromise("proxy:function_request",{functionKey:e,args:t.map(e=>this.serialize(e))},"proxy:function_response");if(r.error)throw this.deserialize(r.error);return this.deserialize(r.value)}}class l{constructor(e){this.rpack=e,this.remotes=new Map}createRemote(e,t){let r=new h(this,e,t);return this.remotes.set(e,r),r}getRPack(){return this.rpack}getRemote(e){return this.remotes.get(e)}}const u={localsAreProxied:!1,verifyLocals:!0,allowShared:!1},c={...u};let d;var f;(f=d||(d={})).withDefaultOptions=function(e){let t={...c};if(void 0!==e)for(let r in c)r in e&&(t[r]=e[r]);return t},f.withPublicDefaultOptions=function(e){let t={...u};if(void 0!==e)for(let r in u)r in e&&(t[r]=e[r]);return t};const p=d;class g{constructor(e,t,r=!0){this.it=e,this.filter=r?t:e=>void 0!==e&&t(e)}[Symbol.iterator](){return this}next(...e){for(;;){let t=this.it.next(...e);if(this.filter(t.value)||t.done)return t}}return(e){return void 0!==this.it.return?this.it.return(e):{done:!0,value:e}}throw(e){if(void 0!==this.it.throw)return this.it.throw(e);throw e}}class m{get(e,t,r){let n=e[t];return"function"==typeof n?(...r)=>Promise.resolve(e[t](...r)):n}}let _,y=Symbol("isProxy"),w=Symbol("getFunctions");class v{constructor(e,t,r,n,i,s){this.remoteProxy=e,this.objectKey=t,this.typeName=r,this.knownProps=new Map;for(let[t,r]of Object.entries(n))this.knownProps.set(t,e.deserialize(r));this.functions=i,this.iterable=s}get(e,t,r){if(t===Symbol.asyncIterator){if(!this.iterable)return;return()=>{this.remoteProxy.requestRemoteObjectIterator(this.objectKey)}}if(t===y)return!0;if(t===w)return this.functions;if("symbol"!=typeof t){if("constructor"===t){let e=()=>{throw new Error("Cannot call constructor of remote object")};return Object.defineProperty(e,"name",{value:this.typeName}),e}return this.knownProps.has(t)?this.knownProps.get(t):this.functions.includes(t)?(...e)=>this.remoteProxy.requestRemoteMethod(this.objectKey,t,e):void 0}}ownKeys(e){return[...this.knownProps.keys()]}getOwnPropertyDescriptor(e,t){if("symbol"!=typeof t)return this.knownProps.has(t)?{enumerable:!0,configurable:!0}:void 0}has(e,t){return t===Symbol.asyncIterator?this.iterable:!("symbol"==typeof t||!this.knownProps.has(t)&&!this.functions.includes(t))}static fromObject(e,t){return new v(e,t.objectKey,t.typeName,{},t.functions,t.iterable)}static fromRegistryEntry(e,t){return new v(e,t.objectKey,t.typeName,t.props,t.functions,t.iterable)}static isProxy(e){return!0===e[y]}static getFunctions(e){return this.isProxy(e)?e[w]:[]}}class b{constructor(e,t,r){this.manager=e,this.options=r,this.publicOptions=p.withPublicDefaultOptions(r),this.registryId=t,this.map=new Map}getRegistryManager(){return this.manager}getRegistryId(){return this.registryId}getOptions(){return this.publicOptions}getAllEntriesByThread(e){let r=new g(this.map.values(),t=>t.ownerThread===e);return new t(r)}getAllEntries(){return new t(this.map.values())}getAll(){return new t(this.map.values(),e=>e.data)}async get(e){let t=this.map.get(e);if(t)return t.data}async getEntry(e){return this.map.get(e)}async has(e){return this.map.has(e)}async add(e,t){return!this.map.has(e)&&(this.__localAdd(e,this.manager.getRPack().getNetworkManager().getCurrentThreadId(),t),!0)}async remove(e){return this.map.delete(e)}async size(){return this.map.size}__removeAll(e){for(let[t,r]of this.map)r.ownerThread===e&&this.map.delete(t)}__localAdd(e,t,r){if(this.map.has(e)&&this.map.get(e).ownerThread!==t)return!1;if(this.options.localsAreProxied&&!v.isProxy(r)&&"object"==typeof r&&(r=new Proxy(r,new m)),!this.options.allowShared&&null===t)throw new Error("Shared values are not allowed due to allowShared being set to false.");return this.map.set(e,{key:e,ownerThread:t,data:r}),!0}__localRemove(e,t){return(!this.map.has(e)||this.map.get(e).ownerThread===t)&&this.map.delete(e)}__localGet(e){return this.map.get(e)?.data}}class k{constructor(e,t,r,n){this.manager=e,this.options=n,this.remoteThread=t,this.registryId=r,this.localEntries=new Map}getRemote(){return this.manager.getRemote(this.remoteThread)}getRegistryManager(){return this.manager}getRegistryId(){return this.registryId}getOptions(){return this.options}get(e){return this.localEntries.has(e)?(this.options.verifyLocals,Promise.resolve(this.localEntries.get(e).data)):this.getRemote().requestGet(this.registryId,e)}getEntry(e){return this.localEntries.has(e)?(this.options.verifyLocals,Promise.resolve(this.localEntries.get(e))):this.getRemote().requestGetEntry(this.registryId,e)}getAllEntriesByThread(e){return this.getRemote().requestGetAllEntriesByThread(this.registryId,e)}getAllEntries(){return this.getRemote().requestGetAllEntries(this.registryId)}getAll(){return this.getRemote().requestGetAll(this.registryId)}has(e){return this.getRemote().requestHas(this.registryId,e)}async add(e,t){return this.__localAdd(e,this.manager.getRPack().getNetworkManager().getCurrentThreadId(),t),this.getRemote().requestAdd(this.registryId,null,e,t).then(t=>(t||this.localEntries.delete(e),t))}remove(e){return this.getRemote().requestRemove(this.registryId,null,e)}size(){return this.getRemote().requestSize(this.registryId)}__forwardAdd(e,t,r){return this.getRemote().requestAdd(this.registryId,t,e,r)}__forwardRemove(e,t){return this.getRemote().requestRemove(this.registryId,t,e)}__localAdd(e,t,r){if(this.localEntries.has(e)&&this.localEntries.get(e).ownerThread!==t)return!1;if(this.options.localsAreProxied&&!v.isProxy(r)&&"object"==typeof r&&(r=new Proxy(r,new m)),!this.options.allowShared&&null===t)throw new Error("Shared values are not allowed due to allowShared being set to false.");return this.localEntries.set(e,{key:e,ownerThread:t,data:r}),!0}__localGet(e){return this.localEntries.get(e)?.data}}class x{constructor(e){this.handlerLists={},this.sender=e}getHandlerList(e){let t=this.handlerLists[e];return t||(t=[],this.handlerLists[e]=t),t}addHandler(e,t){this.getHandlerList(e).splice(0,0,t)}removeHandler(e,t){let r=this.getHandlerList(e),n=r.indexOf(t);return n>-1&&(r.splice(n,1),!0)}promiseHandlerImpl(e,t,r){let n,i,s=new Promise((e,t)=>{n=e,i=t});return e.push(e=>t(e,n)),void 0!==r&&setTimeout(()=>{i("Timeout was reached: "+r)},r),s}addPromiseNonceHandler(e,t,r){return this.promiseHandlerImpl(this.getHandlerList(e),(e,r)=>{if(e.nonce==t)return r(e),!1},r)}addPromiseHandler(e,t){return this.promiseHandlerImpl(this.getHandlerList(e),(e,t)=>(t(e),!1),t)}receivePacket(e){let t=e.id,r=this.getHandlerList(t);if(r)for(let t=r.length-1;t>=0;t--)!1===(0,r[t])(e)&&r.splice(t,1)}sendPacket(e){this.sender(e)}sendPacketWithNoncePromise(e,t,r,n){let i=a.generateNonce(),s=this.addPromiseNonceHandler(r,i,n);return this.sendPacket({...t,id:e,nonce:i}),s}static cast(e){return e}}class E{getRPack(){return this.rpack}async onInit(){}async onShutdown(){}static __setInstance(e,t){void 0===e.rpack&&(e.rpack=t)}}class R{constructor(e,t,r){this.parent=e,this.remoteThreadId=t,this.messenger=r,r.addHandler("registry:add_request",this.onAdd.bind(this)),r.addHandler("registry:has_request",this.onHas.bind(this)),r.addHandler("registry:remove_request",this.onRemove.bind(this)),r.addHandler("registry:size_request",this.onSize.bind(this)),r.addHandler("registry:get_request",this.onGet.bind(this)),r.addHandler("registry:get_entry_request",this.onGetEntry.bind(this)),r.addHandler("registry:get_all_entries_request",this.onGetAllEntries.bind(this)),r.addHandler("registry:get_all_entries_by_thread_request",this.onGetAllEntriesByThread.bind(this)),r.addHandler("registry:get_all_request",this.onGetAll.bind(this))}getCurrentThread(){return this.parent.getRPack().getNetworkManager().getCurrentThreadId()}getRemote(){return this.parent.getRPack().getProxyManager().getRemote(this.remoteThreadId)}serialize(e,t){return this.parent.getRPack().getNetworkManager().serialize(this.remoteThreadId,e,t)}deserialize(e){return this.parent.getRPack().getNetworkManager().deserialize(this.remoteThreadId,e)}sendError(e,t,r){this.messenger.sendPacket({id:e,nonce:t,error:this.serialize(r)})}sendErrorRaw(e,t,r){this.sendError(e,t,new Error(r))}async onAdd(e){let t=await this.parent.getRegistry(e.registryId);if(void 0===t)return void this.sendErrorRaw("registry:add_response",e.nonce,"Unknown registry "+e.registryId);let r=e.ownerThread;if(r!==this.remoteThreadId&&this.remoteThreadId!==P.HOST_THREAD_ID)return void this.sendErrorRaw("registry:add_response",e.nonce,"Non-host threads cannot forward registry requests");let n=this.deserialize(e.value);if(t instanceof k)t.__forwardAdd(e.key,r,n).then(t=>{this.messenger.sendPacket({id:"registry:add_response",nonce:e.nonce,value:t})},t=>{this.sendError("registry:add_response",e.nonce,t)});else if(t instanceof b){let i=t.__localAdd(e.key,r,n);this.messenger.sendPacket({id:"registry:add_response",nonce:e.nonce,value:i})}else this.sendErrorRaw("registry:add_response",e.nonce,"Weird registry type: "+t.constructor.name)}async onHas(e){let t=await this.parent.getRegistry(e.registryId);if(void 0!==t)return t.has(e.key).then(t=>{this.messenger.sendPacket({id:"registry:has_response",nonce:e.nonce,value:t})},t=>{this.sendError("registry:has_response",e.nonce,t)});this.sendErrorRaw("registry:has_response",e.nonce,"Unknown registry "+e.registryId)}async onRemove(e){let t=await this.parent.getRegistry(e.registryId);if(void 0===t)return void this.sendErrorRaw("registry:remove_response",e.nonce,"Unknown registry "+e.registryId);let r=e.ownerThread;if(r===this.remoteThreadId||this.remoteThreadId===P.HOST_THREAD_ID)if(t instanceof k)t.__forwardRemove(e.key,r).then(t=>{this.messenger.sendPacket({id:"registry:remove_response",nonce:e.nonce,value:t})},t=>{this.sendError("registry:remove_response",e.nonce,t)});else if(t instanceof b){let n=t.__localRemove(e.key,r);this.messenger.sendPacket({id:"registry:remove_response",nonce:e.nonce,value:n})}else this.sendErrorRaw("registry:remove_response",e.nonce,"Weird registry type: "+t.constructor.name);else this.sendErrorRaw("registry:remove_response",e.nonce,"Non-host threads cannot forward registry requests")}async onSize(e){let t=await this.parent.getRegistry(e.registryId);if(void 0!==t)return t.size().then(t=>{this.messenger.sendPacket({id:"registry:size_response",nonce:e.nonce,value:t})},t=>{this.sendError("registry:size_response",e.nonce,t)});this.sendErrorRaw("registry:size_response",e.nonce,"Unknown registry "+e.registryId)}async onGet(e){let t=await this.parent.getRegistry(e.registryId);if(void 0!==t)return t.get(e.key).then(t=>{this.messenger.sendPacket({id:"registry:get_response",nonce:e.nonce,value:this.serialize(t,{objectMode:"registry"})})},t=>{this.sendError("registry:get_response",e.nonce,t)});this.sendErrorRaw("registry:get_response",e.nonce,"Unknown registry "+e.registryId)}async onGetEntry(e){let t=await this.parent.getRegistry(e.registryId);if(void 0!==t)return t.getEntry(e.key).then(t=>{void 0!==t?this.messenger.sendPacket({id:"registry:get_entry_response",nonce:e.nonce,value:{key:this.serialize(t.key),ownerThread:t?.ownerThread,data:this.serialize(t.key,{objectMode:"registry"})}}):this.messenger.sendPacket({id:"registry:get_entry_response",nonce:e.nonce,value:null})},t=>{this.sendError("registry:get_entry_response",e.nonce,t)});this.sendErrorRaw("registry:get_entry_response",e.nonce,"Unknown registry "+e.registryId)}async onGetAllEntries(e){let t=await this.parent.getRegistry(e.registryId);if(void 0===t)return void this.sendErrorRaw("registry:get_all_entries_response",e.nonce,"Unknown registry "+e.registryId);let r=this.getRemote(),n=t.getAllEntries(),i=r.declareLocalAsyncIterator(n);this.messenger.sendPacket({id:"registry:get_all_entries_response",nonce:e.nonce,iteratorKey:i})}async onGetAllEntriesByThread(e){let t=await this.parent.getRegistry(e.registryId);if(void 0===t)return void this.sendErrorRaw("registry:get_all_entries_by_thread_response",e.nonce,"Unknown registry "+e.registryId);let r=this.getRemote(),n=t.getAllEntriesByThread(e.ownerThread),i=r.declareLocalAsyncIterator(n);this.messenger.sendPacket({id:"registry:get_all_entries_by_thread_response",nonce:e.nonce,iteratorKey:i})}async onGetAll(e){let t=await this.parent.getRegistry(e.registryId);if(void 0===t)return void this.sendErrorRaw("registry:get_all_response",e.nonce,"Unknown registry "+e.registryId);let r=this.getRemote(),n=t.getAll(),i=r.declareLocalAsyncIterator(n);this.messenger.sendPacket({id:"registry:get_all_response",nonce:e.nonce,iteratorKey:i})}async requestAdd(e,t,r,n){let i=await this.messenger.sendPacketWithNoncePromise("registry:add_request",{registryId:e,ownerThread:t??this.getCurrentThread(),key:r,value:this.serialize(n,{objectMode:"registry"})},"registry:add_response");if(i.error)throw this.deserialize(i.error);return i.value}async requestHas(e,t){let r=await this.messenger.sendPacketWithNoncePromise("registry:has_request",{registryId:e,key:t},"registry:has_response");if(r.error)throw this.deserialize(r.error);return r.value}async requestRemove(e,t,r){let n=await this.messenger.sendPacketWithNoncePromise("registry:remove_request",{registryId:e,ownerThread:t??this.getCurrentThread(),key:r},"registry:remove_response");if(n.error)throw this.deserialize(n.error);return n.value}async requestSize(e){let t=await this.messenger.sendPacketWithNoncePromise("registry:size_request",{registryId:e},"registry:size_response");if(t.error)throw this.deserialize(t.error);return t.value}async requestGet(e,t){let r=await this.messenger.sendPacketWithNoncePromise("registry:get_request",{registryId:e,key:t},"registry:get_response");if(r.error)throw this.deserialize(r.error);if(null!=r.value)return this.deserialize(r.value)}async requestGetEntry(e,t){let r=await this.messenger.sendPacketWithNoncePromise("registry:get_entry_request",{registryId:e,key:t},"registry:get_entry_response");if(r.error)throw this.deserialize(r.error);if(null!=r.value)return{key:this.deserialize(r.value.key),ownerThread:r.value.ownerThread,data:this.deserialize(r.value.data)}}requestGetAllEntries(t){let r=this.getRemote(),n=new e(r,async()=>{const e=await this.messenger.sendPacketWithNoncePromise("registry:get_all_entries_request",{registryId:t},"registry:get_all_entries_response");if(e.error)throw this.deserialize(e.error);let i=e.iteratorKey;return r.declareRemoteIterator(i,n),i});return n}requestGetAllEntriesByThread(t,r){let n=this.getRemote(),i=new e(n,async()=>{const e=await this.messenger.sendPacketWithNoncePromise("registry:get_all_entries_by_thread_request",{registryId:t,ownerThread:r},"registry:get_all_entries_by_thread_response");if(e.error)throw this.deserialize(e.error);let s=e.iteratorKey;return n.declareRemoteIterator(s,i),s});return i}requestGetAll(t){let r=this.getRemote(),n=new e(r,async()=>{const e=await this.messenger.sendPacketWithNoncePromise("registry:get_all_request",{registryId:t},"registry:get_all_response");if(e.error)throw this.deserialize(e.error);let i=e.iteratorKey;return r.declareRemoteIterator(i,n),i});return n}}class S{static META_REGISTRY_ID="rpack:registry";static PLUGIN_REGISTRY_ID="rpack:plugin";constructor(e){this.rpack=e,this.remotes=new Map,this.metaRegistry=this.__createInternalRegistry(S.META_REGISTRY_ID,{localsAreProxied:!1,allowShared:!0})}async createRegistry(e,t){let r=new b(this,e,p.withDefaultOptions(t));if(await this.metaRegistry.add(e,r))return r;throw new Error("Failed to create registry "+e)}getRPack(){return this.rpack}createRemote(e,t){let r=new R(this,e,t);return this.remotes.set(e,r),r}getRemote(e){return this.remotes.get(e)}getRegistry(e){return this.metaRegistry.get(e)}__createInternalRegistry(e,t){let r;return r=this.rpack.isPluginThread()?new k(this,P.HOST_THREAD_ID,e,p.withPublicDefaultOptions(t)):new b(this,e,p.withDefaultOptions(t)),this.rpack.getLoadPromise().then(()=>{this.metaRegistry.__localAdd(e,null,r)}),r}__deserializeRegistry(e,t,r){if(this.metaRegistry instanceof b||this.metaRegistry instanceof k){let n=this.metaRegistry.__localGet(e);if(void 0!==n)return n;let i=new k(this,t,e,r);return this.metaRegistry.__localAdd(e,t,i),i}throw new Error("Weird registry type: "+this.metaRegistry.constructor.name)}}(_||(_={})).isSubclass=function(e,t){return t.prototype.isPrototypeOf(e.prototype)};const I=_;class P{static HOST_THREAD_ID="host";constructor(e,t,r){this.rpack=e,this.wellKnownMap=new Map,this.wellKnownReverseMap=new Map,this.mapWellKnown("RPack",e),this.mapWellKnown("NetworkManager",e.getNetworkManager()),this.mapWellKnown("ProxyManager",e.getProxyManager()),this.mapWellKnown("RegistryManager",e.getRegistryManager()),this.plugin=null,this.pluginRegistry=e.getRegistryManager().__createInternalRegistry(S.PLUGIN_REGISTRY_ID,{}),this.threadId=t,void 0===r?this.threads=new Map:this.hostMessenger=r}mapWellKnown(e,t){this.wellKnownMap.set(t,{type:"well_known",kind:e}),this.wellKnownReverseMap.set(e,t)}async __initPlugin(e){if(null!==this.plugin)throw new Error("Cannot initialize a plugin twice");let t=await import(e);if(!("default"in t))throw new Error("Failed to import plugin "+e+": no default export");let r=t.default;if("function"!=typeof r)throw new Error("Failed to import plugin "+e+": default export is not a class");if(r.length>0)throw new Error("Failed to import plugin "+e+": default export's constructor expects arguments (should be empty)");if(!I.isSubclass(r,E))throw new Error("Failed to import plugin "+e+": default export is not a subclass of RPPlugin");this.plugin=new r,E.__setInstance(this.plugin,this.rpack),await this.plugin.onInit();let n=e.replace(/\.\/(\S+)\.js/g,"$1");await this.pluginRegistry.add(n,this.plugin),this.hostMessenger.addHandler("thread:shutdown_request",async e=>{await this.plugin.onShutdown(),this.hostMessenger.sendPacket({id:"thread:shutdown_response",nonce:e.nonce})})}getRPack(){return this.rpack}getHostMessenger(){return this.hostMessenger}getCurrentThreadId(){return this.threadId}getPlugin(e){return this.pluginRegistry.get(e)}getPluginRegistry(){return this.pluginRegistry}__initRemotes(e,t){this.rpack.getProxyManager().createRemote(e,x.cast(t)),this.rpack.getRegistryManager().createRemote(e,x.cast(t))}async __createThread(e){if(!this.threads)throw new Error("Cannot create a Worker from a Worker!");let t=a.generateNonce();for(;this.threads.has(t);)t=a.generateNonce();console.debug("Starting new thread "+t);let r=await this.rpack.getPlatform().createPluginThread(t,e);this.threads.set(t,r);let n=r.getMessenger(),i=null;for(let r=0;r<16;r++)try{console.debug("Waiting for thread "+t+" (attempt "+(r+1)+"/16, waiting "+Math.pow(2,r)+"ms)...");let s=a.generateNonce();n.sendPacket({id:"thread:hello_request",nonce:s,threadId:t,scriptUrl:e}),await n.addPromiseNonceHandler("thread:hello_response",s,Math.pow(2,r)),this.__initRemotes(t,x.cast(n)),console.debug("Thread "+t+" started"),i=s;break}catch{console.debug("Thread "+t+" timed out. Trying again...")}if(null===i)throw console.debug("Thread "+t+" failed to start, aborting"),await r.terminate(),this.threads.delete(t),new Error("Thread "+t+" failed to start");return await n.addPromiseNonceHandler("thread:plugin_load",i),console.debug("Plugin loaded in thread "+t),t}ensureJSONInner(e,t,r,n){if("string"==typeof t||"number"==typeof t||"boolean"==typeof t||null==t)return!0;if("object"==typeof t){if(Array.isArray(t)){for(let i=0;i<t.length;i++)if(!this.ensureJSONInner(e,t[i],r,n+"["+i+"]"))return!1;return!0}if(Object.getPrototypeOf(t)===Object.prototype){for(let i in t)if(!this.ensureJSONInner(e,t[i],r,n+"."+i))return!1;return!0}}if(r)throw new TypeError("Failed to validate object "+e+" as JSON: root"+n+" is not a JSON-like object");return!1}ensureJSON(e,t){return this.ensureJSONInner(e,e,t??!1)}getFunctionNames(e){if(v.isProxy(e))return v.getFunctions(e);let t=[],r=Object.getPrototypeOf(e);for(;void 0!==r&&r!==Object.prototype;)t.push(...Object.getOwnPropertyNames(r)),r=Object.getPrototypeOf(r);let n=t.indexOf("constructor");n>-1&&t.splice(n,1);for(let r=t.length-1;r>=0;r--)"function"!=typeof e[t[r]]&&t.splice(r,1);return t}serialize(e,t,r){if(void 0===t)return{type:"undefined"};if(!v.isProxy(t)&&("string"==typeof t||"number"==typeof t||"boolean"==typeof t||null==t||Object.getPrototypeOf(t)===Object.prototype&&this.ensureJSON(t,!1)))return{type:"json",value:t};if(t instanceof b||t instanceof k)return{type:"registry",registryId:t.getRegistryId(),options:t.getOptions()};if(t instanceof Error)return{type:"error",errorType:t.name,name:t.name,message:t.message,stack:t.stack};if("function"==typeof t)return{type:"function",functionKey:this.rpack.getProxyManager().getRemote(e).declareFunction(t)};if(this.wellKnownMap.has(t))return this.wellKnownMap.get(t);if(null===t)throw new Error("Null past the null checK?");if("registry"==r?.objectMode){let r=this.rpack.getProxyManager().getRemote(e).declareLocalObject(t),n={},i=this.getFunctionNames(t);for(let r of Object.keys(t))n[r]=this.serialize(e,t[r]);return{type:"registry_entry",objectKey:r,typeName:t.constructor.name,props:n,functions:i,iterable:Symbol.iterator in t||Symbol.asyncIterator in t}}{let r=this.rpack.getProxyManager().getRemote(e).declareLocalObject(t),n=Object.keys(t),i=this.getFunctionNames(t);return{type:"object",objectKey:r,typeName:t.constructor.name,props:n,functions:i,iterable:Symbol.iterator in t||Symbol.asyncIterator in t}}}deserialize(e,t){let r=this.rpack.getProxyManager().getRemote(e),n=t.type;switch(t.type){case"undefined":return;case"json":return t.value;case"registry":return this.rpack.getRegistryManager().__deserializeRegistry(t.registryId,e,t.options);case"registry_entry":return new Proxy({},v.fromRegistryEntry(r,t));case"object":return new Proxy({},v.fromObject(r,t));case"function":return(...e)=>r.requestRemoteFunction(t.functionKey,e);case"well_known":return this.wellKnownReverseMap.get(t.kind);case"error":let i;switch(t.errorType){case"Error":i=new Error;break;case"EvalError":i=new EvalError;break;case"RangeError":i=new RangeError;break;case"ReferenceError":i=new ReferenceError;break;case"SyntaxError":i=new SyntaxError;break;case"TypeError":i=new TypeError;break;case"URIError":i=new URIError}return i.name=t.name,i.message=t.message,i.stack=t.stack,i;default:throw new Error("Failed to deserialize unknown type: "+n)}}}class z{constructor(e){this.rpack=e,e.isPluginThread()||(this.sources=[],this.sources.push(new M(e,M.DEFAULT_PORT_RANGES,1e3)))}getRPack(){return this.rpack}}class A{constructor(e,t){this.threadId=e,this.messenger=t}getThreadId(){return this.threadId}getMessenger(){return this.messenger}}class C{constructor(e){this.id=e}}class O{constructor(){this.map=new Map,this.manifest=null}async getEntry(e){if(this.map.has(e))return this.map.get(e);let t=await this.resolveEntry(e);return this.map.set(e,t),t}async getPluginManifest(){if(null!==this.manifest)return this.manifest;let e=await this.getEntry("manifest.json"),t=JSON.parse((new TextDecoder).decode(await e.arrayBuffer()));return this.manifest=t,t}}class T{constructor(e,t,r){this.supplier=e,this.completeHandler=t,this.errorHandler=r,this.lastBatch=null,this.lastIndex=-1}[Symbol.asyncIterator](){return this}async next(){if(this.result)return this.result;null==this.lastBatch&&(this.lastBatch=await this.supplier(),this.lastIndex=0);let e=this.lastBatch.values[this.lastIndex];if(this.lastIndex++,this.lastIndex==this.lastBatch.values.length){let e=this.lastBatch;if(this.lastBatch=null,e.done)return this.result={done:!0,value:void 0},this.result}return{done:!1,value:e}}async return(e){return this.completeHandler&&await this.completeHandler(e),this.result={value:this.result,done:!0},this.result}async throw(e){return this.errorHandler&&await this.errorHandler(e),this.result={value:void 0,done:!0},this.result}}class N{constructor(e,t,r,n){this.rpackChannel="dev",this.rpackVersion="0.1.5-dev-439b85d",this.rpackRepository="https://github.com/rpack-dev/rpack-dev.git",this.implementationName=e,this.implementationChannel=t,this.implementationVersion=r,this.implementationRepository=n}getRPackChannel(){return this.rpackChannel}getRPackVersion(){return this.rpackVersion}getRPackRepository(){return this.rpackRepository}getImplementationName(){return this.implementationName}getImplementationChannel(){return this.implementationChannel}getImplementationVersion(){return this.implementationVersion}getImplementationRepository(){return this.implementationRepository}}class B{constructor(e,t,r){this.parent=e,this.port=t,this.manifest=r}init(){if(console.log("Found dev server on port "+this.port+" with manifest:",this.manifest),this.manifest.websocketRefresh){let e=new WebSocket("ws://localhost:"+this.port),t=new x(t=>{e.send(JSON.stringify(t))});e.onmessage=e=>{t.receivePacket(JSON.parse(e.data))},t.addHandler("hello_response",e=>{console.log("Connected to dev server's websocket on port "+this.port+" with manifest: ",this.manifest)}),t.addHandler("plugin_update",e=>{this.parent.reloadPlugin(e.groupId,e.pluginId)}),e.onclose=()=>{console.log("Disconnected from dev server's websocket on port "+this.port),this.remove()},e.onopen=()=>{t.sendPacket({id:"hello_request",rpackChannel:this.parent.getRPack().getVersion().getRPackChannel(),rpackVersion:this.parent.getRPack().getVersion().getRPackVersion(),implementationName:this.parent.getRPack().getVersion().getImplementationName(),implementationChannel:this.parent.getRPack().getVersion().getImplementationChannel(),implementationVersion:this.parent.getRPack().getVersion().getImplementationVersion()})},this.socket=e}}getAllPlugins(){return new T(async()=>({done:!0,values:await(await fetch("http://localhost:"+this.port+"/api/get_all_plugins")).json()}))}async getPlugin(e,t){try{return await(await fetch("http://localhost:"+this.port+"/plugin/"+e+"/"+t+"/manifest.json")).json()}catch{return null}}async getPluginArchive(e,t){return await(await fetch("http://localhost:"+this.port+"/plugin/"+e+"/"+t+"/plugin.zip")).arrayBuffer()}remove(){this.socket?.close()}}var j=r(710),D=r.n(j);class L extends O{constructor(e){super(),this.zip=e}async resolveEntry(e){let t=this.zip.file(e);return null===t?null:await t.async("blob")}async getEntries(){return Object.keys(this.zip.files)}}class M{static DEFAULT_PORT_RANGES=[[14287,14296]];constructor(e,t,r){this.rpack=e,this.portRanges=t,this.lastFoundPorts=[],this.servers=new Map,this.autoScanRate=6e4*r,this.autoScanPromise=null,this.autoScanTimeout=r>0?setTimeout(()=>this.performScan(),this.autoScanRate):null}async performScan(){if(this.autoScanPromise)return null;clearTimeout(this.autoScanTimeout),this.autoScanTimeout=null,this.autoScanPromise=this.scanPorts();let e=await this.autoScanPromise,t=s.diff(this.lastFoundPorts,e,(e,t)=>e.port===t.port);this.lastFoundPorts=e;for(let e of t.added){let t=new B(this,e.port,e.manifest);this.servers.set(e.port,t),t.init()}this.autoScanPromise=null,this.autoScanRate>0&&(this.autoScanTimeout=setTimeout(()=>this.performScan(),this.autoScanRate))}async scanPorts(){let e=[],t=[];for(let[r,n]of this.portRanges)for(let i=r;i<=n;i++)e.includes(i)||(e.push(i),t.push(fetch("http://localhost:"+i+"/rpack_dev_server").then(e=>e.json()).then(e=>e.rpackDevServer?{port:i,manifest:e}:null,()=>null)));return(await Promise.all(t)).filter(e=>null!==e)}getRPack(){return this.rpack}getSourceId(){throw new Error("Method not implemented.")}remove(){for(let e of this.servers.values())e.remove()}reloadPlugin(e,t){}async*getAllPlugins(){for(let e of this.servers.values())yield*e.getAllPlugins()}async getPlugin(e,t,r){for(let r of this.servers.values()){let n=await r.getPlugin(e,t);if(null!==n)return n}return null}async getPluginArchive(e,t,r){for(let r of this.servers.values()){let n=await r.getPluginArchive(e,t);if(null==n)continue;let i=await D().loadAsync(n);return new L(i)}throw new Error("Plugin not found")}}class F{static platform=null;static platformLoadPromise=new i;static initPlatform(e){if(null!==this.platform)throw new Error("Platform already initialized");this.platform=e,this.platformLoadPromise.resolve(e)}static async createInstance(e){if(e&&void 0!==this.instance)return this.instance;let t=await this.platformLoadPromise.getPromise(),r=await t.createRPackInstance(e=>new F(e));return e&&(this.instance=r),r}static getInstance(){return this.instance}constructor(e){this.pluginThread=e.pluginThread,this.loadPromise=e.loadPromise,this.platform=e.platform,this.version=e.version,this.proxyManager=new l(this),this.registryManager=new S(this),this.pluginManager=new z(this),this.networkManager=new P(this,e.threadId,e.hostMessenger)}getLoadPromise(){return this.loadPromise}getPlatform(){return this.platform}getVersion(){return this.version}getProxyManager(){return this.proxyManager}getRegistryManager(){return this.registryManager}getPluginManager(){return this.pluginManager}getNetworkManager(){return this.networkManager}isPluginThread(){return this.pluginThread}getPlugin(e){return this.getNetworkManager().getPlugin(e)}}})(),n})());
@@ -0,0 +1,11 @@
1
+ /*!
2
+
3
+ JSZip v3.10.1 - A JavaScript class for generating and reading zip files
4
+ <http://stuartk.com/jszip>
5
+
6
+ (c) 2009-2016 Stuart Knightley <stuart [at] stuartk.com>
7
+ Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/main/LICENSE.markdown.
8
+
9
+ JSZip uses the library pako released under the MIT license :
10
+ https://github.com/nodeca/pako/blob/main/LICENSE
11
+ */
@@ -21,6 +21,7 @@ declare class RPack {
21
21
  private readonly version;
22
22
  private readonly proxyManager;
23
23
  private readonly registryManager;
24
+ private readonly pluginManager;
24
25
  private readonly networkManager;
25
26
  private constructor();
26
27
  /**
@@ -39,8 +40,9 @@ declare class RPack {
39
40
  * @return an RPVersion instance
40
41
  */
41
42
  getVersion(): RPVersion;
42
- getRegistryManager(): RegistryManager;
43
43
  getProxyManager(): ProxyManager;
44
+ getRegistryManager(): RegistryManager;
45
+ getPluginManager(): PluginManager;
44
46
  getNetworkManager(): NetworkManager;
45
47
  isPluginThread(): boolean;
46
48
  /**
@@ -51,7 +53,22 @@ declare class RPack {
51
53
  */
52
54
  getPlugin<T extends RPPlugin>(key: string): Promise<RegistryDataFiltered<T> | undefined>;
53
55
  }
54
- export declare abstract class PluginThread {
56
+ export declare abstract class PluginArchive {
57
+ private readonly map;
58
+ private manifest;
59
+ protected constructor();
60
+ protected abstract resolveEntry(path: string): Promise<Blob | null>;
61
+ getEntry(path: string): Promise<Blob | null>;
62
+ abstract getEntries(): Promise<string[]>;
63
+ getPluginManifest(): Promise<PluginManifest>;
64
+ }
65
+ export declare abstract class RPPlatform {
66
+ private readonly id;
67
+ protected constructor(id: string);
68
+ abstract createRPackInstance(constructor: (options: RPackConstructorOptions) => RPack): Promise<RPack>;
69
+ abstract createPluginThread(threadId: string, pluginId: string): Promise<RPackThread>;
70
+ }
71
+ export declare abstract class RPackThread {
55
72
  private readonly threadId;
56
73
  private readonly messenger;
57
74
  protected constructor(threadId: string, messenger: Messenger<W2HPackets, H2WPackets>);
@@ -60,12 +77,6 @@ export declare abstract class PluginThread {
60
77
  abstract disable(): Promise<void>;
61
78
  abstract terminate(): Promise<void>;
62
79
  }
63
- export declare abstract class RPPlatform {
64
- private readonly id;
65
- protected constructor(id: string);
66
- abstract createRPackInstance(constructor: (options: RPackConstructorOptions) => RPack): Promise<RPack>;
67
- abstract createPluginThread(threadId: string, pluginId: string): Promise<PluginThread>;
68
- }
69
80
  export declare class AsyncIterableIteratorMirror<T, E> implements AsyncIterableIterator<T> {
70
81
  private readonly it;
71
82
  private readonly converter;
@@ -79,6 +90,44 @@ export declare class AsyncIterableIteratorMirror<T, E> implements AsyncIterableI
79
90
  return(value?: any): Promise<IteratorResult<T>>;
80
91
  throw(e?: any): Promise<IteratorResult<T>>;
81
92
  }
93
+ export declare class DevPluginServerClient {
94
+ private readonly parent;
95
+ private readonly port;
96
+ private readonly manifest;
97
+ private socket?;
98
+ constructor(parent: DevPluginSource, port: number, manifest: DevPluginSourceServerManifest);
99
+ init(): void;
100
+ getAllPlugins(): AsyncIterableIterator<PluginManifest>;
101
+ getPlugin(groupId: string, pluginId: string): Promise<PluginManifest | null>;
102
+ getPluginArchive(groupId: string, pluginId: string): Promise<ArrayBuffer>;
103
+ remove(): void;
104
+ }
105
+ export declare class DevPluginSource implements PluginSource {
106
+ static DEFAULT_PORT_RANGES: [
107
+ number,
108
+ number
109
+ ][];
110
+ private readonly rpack;
111
+ private portRanges;
112
+ private autoScanRate;
113
+ private autoScanPromise;
114
+ private autoScanTimeout;
115
+ private lastFoundPorts;
116
+ private servers;
117
+ constructor(rpack: RPack, portRanges: [
118
+ number,
119
+ number
120
+ ][], autoScanRate: number);
121
+ performScan(): Promise<null | undefined>;
122
+ private scanPorts;
123
+ getRPack(): RPack;
124
+ getSourceId(): string;
125
+ remove(): void;
126
+ reloadPlugin(groupId: string, pluginId: string): void;
127
+ getAllPlugins(): AsyncIterableIterator<PluginManifest>;
128
+ getPlugin(groupId: string, pluginId: string, version?: string): Promise<PluginManifest | null>;
129
+ getPluginArchive(groupId: string, pluginId: string, version: string): Promise<PluginArchive>;
130
+ }
82
131
  export declare class FilteredIterableIterator<T> implements IterableIterator<T> {
83
132
  private readonly it;
84
133
  private readonly filter;
@@ -95,16 +144,16 @@ export declare class FilteredIterableIterator<T> implements IterableIterator<T>
95
144
  }
96
145
  export declare class LazyBatchedAsyncIterableIterator<T> implements AsyncIterableIterator<T> {
97
146
  private readonly supplier;
98
- private readonly completeHandler;
99
- private readonly errorHandler;
147
+ private readonly completeHandler?;
148
+ private readonly errorHandler?;
100
149
  private lastBatch;
101
150
  private lastIndex;
102
151
  private result?;
103
- constructor(supplier: () => Promise<BatchResult<T>>, completeHandler: (value?: T) => Promise<void>, errorHandler: (value?: T) => Promise<void>);
152
+ constructor(supplier: () => Promise<BatchResult<T>>, completeHandler?: (value?: T) => Promise<void>, errorHandler?: (value?: T) => Promise<void>);
104
153
  [Symbol.asyncIterator](): AsyncIterableIterator<T>;
105
154
  next(): Promise<IteratorResult<T, T | undefined>>;
106
155
  return(value?: T): Promise<IteratorResult<T, T | undefined>>;
107
- throw(): Promise<IteratorResult<T, T | undefined>>;
156
+ throw(e?: any): Promise<IteratorResult<T, T | undefined>>;
108
157
  }
109
158
  export declare class LazyPromise<T> {
110
159
  private readonly promise;
@@ -227,6 +276,12 @@ export declare class NetworkManager {
227
276
  }): MappedSerializedData<T>;
228
277
  deserialize<T extends RegistrySerializedData>(threadId: string, serialized: T): MappedDeserializedData<T>;
229
278
  }
279
+ export declare class PluginManager {
280
+ private readonly rpack;
281
+ private readonly sources?;
282
+ constructor(rpack: RPack);
283
+ getRPack(): RPack;
284
+ }
230
285
  export declare class ProxyManager {
231
286
  private readonly rpack;
232
287
  private readonly remotes;
@@ -561,6 +616,23 @@ export declare class Utils {
561
616
  * @returns a Promise that resolves to the sorted array
562
617
  */
563
618
  static asyncSort<T>(array: T[], comparator: (a: T, b: T) => Promise<number>): Promise<T[]>;
619
+ /**
620
+ * Compares two arrays and returns the differences between them as added and removed elements.
621
+ *
622
+ * This method is O(n * m) where n is the length of newArray and m is the length of oldArray
623
+ *
624
+ * @param newArray The new array to compare
625
+ * @param oldArray The old array to compare against
626
+ * @param equality Optional function to determine equality between elements.
627
+ * Default compares elements using == operator
628
+ * @returns An object containing two arrays:
629
+ * - added: elements present in newArray but not in oldArray
630
+ * - removed: elements present in oldArray but not in newArray
631
+ */
632
+ static diff<T>(newArray: T[], oldArray: T[], equality?: (a: T, b: T) => boolean): {
633
+ added: T[];
634
+ removed: T[];
635
+ };
564
636
  static tableString<T, N extends number>(elements: T[], func: (element: T) => FixedLengthArray<string, N>, options?: TableOptions<N>): string;
565
637
  /**
566
638
  * Returns an array of string keys from an enum class.
@@ -619,6 +691,12 @@ export declare class Utils {
619
691
  */
620
692
  static pickRandomElement<T>(array: T[]): T;
621
693
  }
694
+ export declare class ZipPluginArchive extends PluginArchive {
695
+ private zip;
696
+ constructor(zip: JSZip);
697
+ protected resolveEntry(path: string): Promise<Blob | null>;
698
+ getEntries(): Promise<string[]>;
699
+ }
622
700
  export declare const DefaultPublicRegistryOptions: {
623
701
  /**
624
702
  * Whether the local objects in this registry are also proxied.
@@ -688,6 +766,38 @@ export declare namespace Registry {
688
766
  function withDefaultOptions(options?: Partial<RegistryOptions>): RegistryOptions;
689
767
  function withPublicDefaultOptions(options?: Partial<RegistryOptions>): PublicRegistryOptions;
690
768
  }
769
+ export interface DevPluginSourceR2SHelloPacket {
770
+ id: "hello_request";
771
+ rpackChannel: string;
772
+ rpackVersion: string;
773
+ implementationName: string;
774
+ implementationChannel: string;
775
+ implementationVersion: string;
776
+ }
777
+ export interface DevPluginSourceR2SPackets {
778
+ "hello_request": DevPluginSourceR2SHelloPacket;
779
+ }
780
+ export interface DevPluginSourceS2RHelloPacket {
781
+ id: "hello_response";
782
+ serverVersion: string;
783
+ serverBrand: string;
784
+ }
785
+ export interface DevPluginSourceS2RPackets {
786
+ "hello_response": DevPluginSourceS2RHelloPacket;
787
+ "plugin_update": DevPluginSourceS2RPluginUpdatePacket;
788
+ }
789
+ export interface DevPluginSourceS2RPluginUpdatePacket {
790
+ id: "plugin_update";
791
+ groupId: string;
792
+ pluginId: string;
793
+ }
794
+ export interface DevPluginSourceServerManifest {
795
+ rpackDevServer: boolean;
796
+ protocolVersion: number;
797
+ brand: string;
798
+ version: string;
799
+ websocketRefresh?: boolean;
800
+ }
691
801
  export interface H2WHelloRequestPacket extends NoncePacket {
692
802
  id: "thread:hello_request";
693
803
  threadId: string;
@@ -718,6 +828,22 @@ export interface NoncePacket {
718
828
  export interface Packet {
719
829
  id: string;
720
830
  }
831
+ export interface PluginManifest {
832
+ groupId: string;
833
+ pluginId: string;
834
+ version: string;
835
+ authors?: string | string[];
836
+ name?: string;
837
+ description?: string;
838
+ mainClass: string;
839
+ }
840
+ export interface PluginSource {
841
+ getSourceId(): string;
842
+ remove(): void;
843
+ getAllPlugins(): AsyncIterableIterator<PluginManifest>;
844
+ getPlugin(groupId: string, pluginId: string, version?: string): Promise<PluginManifest | null>;
845
+ getPluginArchive(groupId: string, pluginId: string, version: string): Promise<PluginArchive>;
846
+ }
721
847
  export interface ProxyCleanupPacket {
722
848
  id: "proxy:cleanup";
723
849
  type: ProxyCleanupTarget;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rpack-dev/core",
3
- "version": "0.1.5-dev-5f45af2",
3
+ "version": "0.1.5-dev-439b85d",
4
4
  "description": "",
5
5
  "license": "LGPL-3.0-or-later",
6
6
  "repository": {
@@ -13,7 +13,8 @@
13
13
  "exports": {
14
14
  ".": {
15
15
  "import": "./dist/rpack-core.bundle.js",
16
- "require": "./dist/rpack-core.bundle.js"
16
+ "require": "./dist/rpack-core.bundle.js",
17
+ "types": "./dist/rpack-core.d.ts"
17
18
  }
18
19
  },
19
20
  "files": [
@@ -48,5 +49,8 @@
48
49
  "webpack": "^5.90.3",
49
50
  "webpack-cli": "^5.1.4",
50
51
  "webpack-define-config": "^0.0.1"
52
+ },
53
+ "dependencies": {
54
+ "jszip": "^3.10.1"
51
55
  }
52
56
  }