@luminocity/lemonate-gateway 8.2.13 → 8.2.15

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,4 +1,4 @@
1
- "use strict";var e=require("short-unique-id"),t=require("axios"),a=require("axios-retry"),i=require("isomorphic-ws"),n=require("form-data"),r=require("buffer"),s=require("jszip");function o(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var l=o(e),u=o(t),c=o(a),d=o(i),p=o(n),h=o(s);class f{func;owner;constructor(e,t){this.func=e,this.owner=t}}class m{_debugMode=!1;_listeners=new Map;_onceListeners=new Map;_catchAllListeners=[];_capturedEvents=new Map;_capturedAccumulatedDuration=0;constructor(){}setDebugMode(e){this._debugMode&&!e&&(console.log("Captured events: ",this._capturedEvents),console.log(`Total duration: ${this._capturedAccumulatedDuration}ms`)),this._debugMode=e,this._capturedEvents=new Map,this._capturedAccumulatedDuration=0}$clear(){this._listeners.clear(),this._onceListeners.clear()}clearCatchAllListeners(){this._catchAllListeners=[]}listenerCount(e){let t=0;return t+=this._listeners.get(e)?.length||0,t+=this._onceListeners.get(e)?.length||0,t}$hasListener(e){return this.listenerCount(e)>0}$catchAll(e,t){this._catchAllListeners.push(new f(e,t))}$on(e,t,a){let i;this._listeners.has(e)?i=this._listeners.get(e):(i=[],this._listeners.set(e,i)),i.push(new f(t,a))}$once(e,t,a){let i;this._onceListeners.has(e)?i=this._onceListeners.get(e):(i=[],this._onceListeners.set(e,i)),i.push(new f(t,a))}$off(e,t,a){let i=0;if(this._listeners.has(e)){i+=this._listeners.get(e).removeByFilterFunc((e=>e.func===t&&e.owner===a))}if(this._onceListeners.has(e)){i+=this._onceListeners.get(e).removeByFilterFunc((e=>e.func===t&&e.owner===a))}return i}$offByOwner(e,t){let a=0;if(this._listeners.has(e)){a+=this._listeners.get(e).removeByFilterFunc((e=>e.owner===t))}if(this._onceListeners.has(e)){a+=this._onceListeners.get(e).removeByFilterFunc((e=>e.owner===t))}return a}$emitSync(e,...t){const a=[],i=performance.now();let n=0;try{for(const i of this._catchAllListeners.values())try{const r=i.func.call(i.owner,e,...t);r&&r.then&&a.push(r),n++}catch(e){console.error(e)}if(this._listeners.has(e)){const i=this._listeners.get(e);for(const e of i)try{const i=e.func.call(e.owner,...t);i&&i.then&&a.push(i),n++}catch(e){console.error(e)}}if(this._onceListeners.has(e)){const i=this._onceListeners.get(e);for(const e of i)try{const i=e.func.call(e.owner,...t);i&&i.then&&a.push(i),n++}catch(e){console.error(e)}this._onceListeners.set(e,[])}}catch(e){console.error(e)}if(this._debugMode&&"log"!==e){const t=performance.now(),r=Math.floor(t-i);let s=this._capturedEvents.get(e);s?(s.count++,s.duration+=r,s.promises+=a.length,s.sentTo+=n):(s={eventType:e,count:1,duration:r,promises:a.length,sentTo:n},this._capturedEvents.set(e,s)),r>3&&console.log(`Expensive event ${e}: ${r}ms`)}return a.length>0?Promise.all(a):null}$emit(e,...t){return new Promise((a=>{a(this.$emitSync(e,...t))}))}}const y=new m;class g{type;itemId;elementId;target;prop;value;oldValue;createdAt=Date.now();moveTargetArray;moveTargetArrayIndex;moveTargetElementId;start;length;position;elementsToDelete;field;fieldId;isLink;bundleIndex=0;_undoFunction;_redoFunction;constructor(e,t,a,i,n,r,s){this.type=e,this.itemId=t,this.elementId=a,this.target=i,this.prop=n,this.value=r,this.oldValue=s}async undo(){this._undoFunction&&await this._undoFunction()}async redo(){this._redoFunction&&await this._redoFunction()}setUndoFunction(e){this._undoFunction=e}setRedoFunction(e){this._redoFunction=e}setMoveTarget(e,t,a){this.moveTargetArray=e,this.moveTargetArrayIndex=t,this.moveTargetElementId=a}setRange(e,t){this.start=e,this.length=t}setPosition(e){this.position=e}setElementsToDelete(e){this.elementsToDelete=e}setField(e){this.field=e}setFieldId(e){this.fieldId=e}setIsLink(e){this.isLink=e}clone(){return Object.assign(new g,this)}isWithinMergeDeltaOf(e,t){return Math.abs(e.createdAt-this.createdAt)<=t}isMergeableWith(e,t){if(!this.isWithinMergeDeltaOf(e,t))return!1;const a=e.type===this.type&&e.itemId===this.itemId&&e.elementId===this.elementId&&e.target===this.target&&e.prop===this.prop,i=void 0!==e.value&&void 0!==e.oldValue&&void 0===e.start&&void 0===e.length&&void 0===e.position&&void 0===e.elementsToDelete;return a&&i}merge(e,t){if(!this.isMergeableWith(e,t))return null;let a=this.clone();return a.value=e.value,a.createdAt=e.createdAt,a._redoFunction=e._redoFunction,a}}const b=new l.default({dictionary:"hex",length:12});let v=(new Date).valueOf();var _={createItemOrBlockID:function(){return b.rnd()},createFieldID:function(){return(v++).toString()},createGUID:function(){return b.rnd()},createGeneratedItemId:function(){return"gen_"+this.createGUID()},toUserFriendlyName:function(e){return e.replace(/_./g,(e=>e.charAt(1).toUpperCase())).replace(/([a-z])([A-Z])/g,"$1 $2").replace(/^(.)/,(e=>e.toUpperCase()))},assert:function(e,t){e||console.error(`ASSERTION FAILED: '${e}' is untrue: ${t}`)},matchItemIdAndObject:(e,t)=>!(!e||!t)&&(e._id===t||e===t._id),areValuesEqual(e,t,a=5){if(e===t)return!0;if("number"==typeof e&&"number"==typeof t)return isNaN(e)&&isNaN(t);if(null==e||null==t||typeof e!=typeof t)return!1;if("object"!=typeof e)return!1;if(Array.isArray(e)!==Array.isArray(t))return!1;const i=Object.keys(e),n=Object.keys(t);if(i.length!==n.length)return!1;for(let n of i){if(!Object.prototype.hasOwnProperty.call(t,n))return!1;if(a>0&&!this.areValuesEqual(e[n],t[n],a--))return!1}return!0},startTimer(e){const t=Date.now();return e&&console.log(`[TIMER] - ${e}`),function(e){const a=Date.now()-t;e?console.log(`[TIMER] - ${e}: ${a}ms`):console.log(`[TIMER] - ${a}ms`)}},dataURItoBlob(e){const t=e.split(",")[0].split(":")[1].split(";")[0],a=atob(e.split(",")[1]),i=[];for(let e=0;e<a.length;e++)i.push(a.charCodeAt(e));return new Blob([new Uint8Array(i)],{type:t})},xmur3(e){let t=1779033703^e.length;for(let a=0;a<e.length;a++)t=Math.imul(t^e.charCodeAt(a),3432918353),t=t<<13|t>>>19;return()=>(t=Math.imul(t^t>>>16,2246822507),t=Math.imul(t^t>>>13,3266489909),t^=t>>>16,t>>>0)},mulberry32:e=>()=>{let t=e+=1831565813;return t=Math.imul(t^t>>>15,1|t),t^=t+Math.imul(t^t>>>7,61|t),((t^t>>>14)>>>0)/4294967296},hslToRgb(e,t,a){const i=(1-Math.abs(2*a-1))*t,n=e/60,r=i*(1-Math.abs(n%2-1));let[s,o,l]=[0,0,0];[s,o,l]=n>=0&&n<1?[i,r,0]:n<2?[r,i,0]:n<3?[0,i,r]:n<4?[0,r,i]:n<5?[r,0,i]:[i,0,r];const u=a-i/2;return[Math.round(255*(s+u)),Math.round(255*(o+u)),Math.round(255*(l+u))]},rgbToHex:(e,t,a)=>"#"+[e,t,a].map((e=>e.toString(16).padStart(2,"0"))).join(""),colorFromString(e,t={}){const{minS:a=.72,maxS:i=.97,minL:n=.48,maxL:r=.62,return:s="hex"}=t,o=this.xmur3(e)(),l=this.mulberry32(o),u=Math.floor(360*l()),c=a+l()*(i-a),d=n+l()*(r-n);if("hsl"===s)return`hsl(${u} ${Math.round(100*c)}% ${Math.round(100*d)}%)`;const[p,h,f]=this.hslToRgb(u,c,d);return"rgb"===s?`rgb(${p}, ${h}, ${f})`:this.rgbToHex(p,h,f)},async downloadFile(e,t){if(e.startsWith("blob:")){const t=await fetch(e),a=await t.blob();return{data:a,mimeType:a.type}}return u.default.get(e,{responseType:"blob",onDownloadProgress:e=>{if(t&&e.total){const a=Math.round(100*e.loaded/e.total);t(a,e.total,e.loaded)}}})}};const w=new Set(["dependantFields","conditionFields","dependenciesInitialized","_hidden","_updateConditions"]),A=new Set(["__proto__","__ob__","isSelected","isDirty","options","_hidden","_updateConditions","dependantFields","conditionFields","separatorFields","dependenciesInitialized","order","inject","type","datatype","minValue","maxValue","id","linkableTypes"]),k=new Set(["isSelected","isDirty","_hidden","_updateConditions","options","dependantFields","conditionFields","separatorFields","dependenciesInitialized","id","linkableTypes"]);class S{suppressDirty=!1;undoManager;_promises=[];_capturePromises=!1;_profiledEvents=[];_profiling=!1;_profilerStartTime=0;_profiledCount=0;static _instance;static get instance(){return this._instance||(this._instance=new this)}constructor(){}suppressDirtyFlag(e){this.suppressDirty=e}setUndoManager(e){this.undoManager=e}isUndoManagerActive(){return this.undoManager?.getEnabled()}_postUndoManagerEvent(e){this.undoManager&&(k.has(e.prop)||this.undoManager.event(e))}setItemDirty(e,t,a,i){this.suppressDirty||e.isDirty||a===i||A.has(t)||e.markDirty()}capturePromise(e){try{return this._capturePromises=!0,e(),Promise.all(this._promises)}finally{this._capturePromises=!1,this._promises=[]}}startProfiling(){this._profiling=!0,this._profiledEvents=[],this._profiledCount=0,this._profilerStartTime=performance.now(),y.setDebugMode(!0)}endProfiling(){const e=performance.now()-this._profilerStartTime;y.setDebugMode(!1),console.log("Profiled events: ",this._profiledEvents),console.log(`Profiling took ${e}ms`)}_addPromise(e){this._capturePromises&&this._promises.push(e)}_proxyObject(e,t,a,i){const n=this;if(!e)throw"_proxyObject(): Object is not defined. Cannot create proxy!";if(!a)throw"_proxyObject(): Item is not defined. Cannot create proxy!";if(!i)throw"_proxyObject(): Options is not defined. Cannot create proxy!";return new Proxy(e,{set:function(r,s,o){if(w.has(s))return Reflect.set(r,s,o);const l=performance.now();let u=n.isUndoManagerActive();const c=Reflect.get(r,s);if(_.areValuesEqual(c,o))return!0;let d=Reflect.set(r,s,o);function p(n,o){const l=new g(i.proxyEventTypeName,a._id,t?t.id:null,r,s,n,o);return i.isField&&(l.setField(e.name),l.setFieldId(e.id)),void 0!==i.isLink&&l.setIsLink(i.isLink),l}i.changeDoesNotMakeItemDirty||(_.matchItemIdAndObject(c,o)?u=!1:n.setItemDirty(a,s,c,o));const h=p(o,c);u&&(h.setUndoFunction((()=>{Reflect.set(r,s,h.oldValue);const e=p(h.oldValue,h.value);y.$emitSync("proxy:valueChange",e),i.changeEventFunc(e)})),h.setRedoFunction((()=>{Reflect.set(r,s,h.value);const e=p(h.value,h.oldValue);y.$emitSync("proxy:valueChange",e),i.changeEventFunc(e)}))),i.changeEventFunc(h),u&&n._postUndoManagerEvent(h),y.$emitSync("proxy:valueChange",h);const f=performance.now();return n._profiledCount++,n._profiledEvents.push({event:h,type:"object",duration:f-l}),d}})}_proxyArray(e,t,a,i){const n=this;if(!e)throw"_proxyArray(): Array is not defined. Cannot create proxy!";if(!a)throw"_proxyArray(): Item is not defined. Cannot create proxy!";if(!i)throw"_proxyArray(): Options is not defined. Cannot create proxy!";return new Proxy(e,{set(e,r,s){const o=performance.now(),l=Reflect.get(e,r);let u=Reflect.set(e,r,s);if("length"!==r&&"__proto__"!==r){const c=n.isUndoManagerActive();function d(n,s){const o=new g("arraySetValue",a._id,t?t.id:null,e,r,n,s);return i.field&&(o.setField(i.field.name),o.setFieldId(i.field.id)),o}i.changeDoesNotMakeItemDirty||n.setItemDirty(a,r,l,s);const p=d(s,l);c&&(p.setUndoFunction((()=>{const t=d(p.oldValue,p.value),a=parseInt(r);if(void 0===p.oldValue&&e.length-1===a){const i=e.pop();t.setElementsToDelete([i]),t.setRange(a,1)}else Reflect.set(e,r,p.oldValue);y.$emitSync("proxy:valueChange",t),i.deleteEventFunc(t)})),p.setRedoFunction((()=>{Reflect.set(e,r,p.value);const t=d(p.value,p.oldValue);y.$emitSync("proxy:valueChange",t),i.addEventFunc(t)}))),i.addEventFunc(p),c&&n._postUndoManagerEvent(p),y.$emitSync("proxy:valueChange",p);const h=performance.now();n._profiledCount++,n._profiledEvents.push({event:p,type:"set_array",duration:h-o})}return u},get(r,s){if("splice"===s){const e=Reflect.get(r,s);return function(...o){const l=o[0],u=o[1],c=[];for(let e=l;e<l+u;e++){const t=r[e];c.push(t)}function d(e,n,s){const o=new g("arraySpliceRemove",a._id,t?t.id:null,r);return i.field&&(o.setField(i.field.name),o.setFieldId(i.field.id)),o.setRange(e,n),o.setElementsToDelete(s),o}function p(e,n){const o=new g("arraySpliceAdd",a._id,t?t.id:null,r,s,n);return i.field&&(o.setField(i.field.name),o.setFieldId(i.field.id)),o.setPosition(e),o}if(e.apply(r,o),n.setItemDirty(a,s,!0,!1),u>0&&o.length<3){const e=n.isUndoManagerActive(),t=d(l,u,c);e&&(t.setUndoFunction((()=>{r.splice(l,0,...c);const e=p(l,c);y.$emitSync("proxy:valueChange",e),i.addEventFunc(e)})),t.setRedoFunction((()=>{r.splice(l,u);const e=d(l,u,c);y.$emitSync("proxy:valueChange",e),i.deleteEventFunc(e)}))),i.deleteEventFunc(t),e&&n._postUndoManagerEvent(t),y.$emitSync("proxy:valueChange",t)}else if(o.length>2){const e=o.slice(2),t=p(l,e);t.setPosition(l),t.setUndoFunction((()=>{r.splice(l,e.length);const t=d(l,e.length,e);y.$emitSync("proxy:valueChange",t),i.deleteEventFunc(t)})),t.setRedoFunction((()=>{r.splice(l,0,...e);const t=p(l,e);y.$emitSync("proxy:valueChange",t),i.addEventFunc(t)})),i.addEventFunc(t),n._postUndoManagerEvent(t),y.$emitSync("proxy:valueChange",t)}}}return"moveToArray"===s?function(e,o,l){const u=r,c=t,{array:d,element:p}=o.getTargetArrayAndElement();function h(e,t,a,i){i=void 0===i?a.length:i;const n=Reflect.get(e,"splice").apply(e,[t,1]);if(n.length>0){const e=n[0];return Reflect.get(a,"splice").apply(a,[i,0,e]),e}return null}const f=h(u,e,d,l);if(f){function m(e,i,n,r,s,o){const l=new g("arrayMoveToArray",a._id,t?t.id:null,e,void 0,o);return l.setRange(i,1),l.setMoveTarget(n,r,s?s.id:null),l}n.setItemDirty(a,s,!0,!1);const b=n.isUndoManagerActive(),v=m(u,e,o,l,p,f);b&&(v.setUndoFunction((()=>{const t=h(d,l,u,e),a=m(o,l,u,e,c,t);y.$emitSync("proxy:valueChange",a),i.moveEventFunc(a)})),v.setRedoFunction((()=>{const t=h(u,e,d,l),a=m(u,e,o,l,p,t);y.$emitSync("proxy:valueChange",a),i.moveEventFunc(a)}))),i.moveEventFunc(v),b&&n._postUndoManagerEvent(v),y.$emitSync("proxy:valueChange",v)}}:"getTargetArrayAndElement"===s?function(){return{array:e,element:t}}:("move"===s&&console.warn("'move' prop is not implemented in Proxifier"),Reflect.get(r,s))}})}proxyBlockArray(e,t,a){return this._proxyArray(e,t,a,{addEventFunc:e=>{this._addPromise(y.$emit("itemRepo:blockAdded",e))},deleteEventFunc:e=>{this._addPromise(y.$emit("itemRepo:blockDeleted",e))},moveEventFunc:e=>{this._addPromise(y.$emit("itemRepo:blockMoved",e))}})}proxyListArray(e,t,a){return this._proxyArray(e,null,a,{field:t,addEventFunc:function(e){y.$emit("itemRepo:listEntryAdded",e)},deleteEventFunc:function(e){y.$emit("itemRepo:listEntryDeleted",e)}})}proxyScriptArray(e,t,a){return this._proxyArray(e,t,a,{addEventFunc:function(e){y.$emit("itemRepo:scriptAdded",e)},deleteEventFunc:function(e){y.$emit("itemRepo:scriptDeleted",e)}})}proxyBlock(e,t){return this._proxyObject(e,e,t,{isLink:!0,changeEventFunc:function(e){y.$emit("itemRepo:fieldChanged",e),y.$emit("itemRepo:linkChanged",e)},proxyEventTypeName:"blockSetValue"})}proxyGraphBlock(e,t){return this._proxyObject(e,e,t,{isLink:!0,changeEventFunc:function(e){y.$emit("itemRepo:graphNodeChanged",e)},proxyEventTypeName:"blockSetValue"})}proxyGraphBlockArray(e,t){return this._proxyArray(e,t,t,{addEventFunc:function(e){y.$emit("itemRepo:graphNodeAdded",e)},deleteEventFunc:function(e){y.$emit("itemRepo:graphNodeDeleted",e)}})}proxyConnection(e,t){return this._proxyObject(e,t,t,{changeEventFunc:function(e){y.$emit("itemRepo:graphConnectionChanged",e)},proxyEventTypeName:"connectionSetValue"})}proxyConnectionArray(e,t){return this._proxyArray(e,e,t,{addEventFunc:function(e){y.$emit("itemRepo:graphConnectionAdded",e)},deleteEventFunc:function(e){y.$emit("itemRepo:graphConnectionDeleted",e)}})}proxyItemField(e,t){const a="Link"===e.type;return this._proxyObject(e,null,t,{isLink:a,isField:!0,changeEventFunc:function(e){y.$emit("itemRepo:fieldChanged",e),a&&y.$emit("itemRepo:linkChanged",e)},proxyEventTypeName:"itemFieldSetValue"})}proxyGraphBlockField(e,t,a){return this._proxyObject(e,t,a,{isLink:"Link"===e.type,isField:!0,changeEventFunc:function(e){y.$emit("itemRepo:graphNodeFieldChanged",e)},proxyEventTypeName:"blockFieldSetValue"})}proxyBlockField(e,t,a){const i="Link"===e.type;return this._proxyObject(e,t,a,{isLink:i,isField:!0,changeEventFunc:function(e){y.$emit("itemRepo:fieldChanged",e),i&&y.$emit("itemRepo:linkChanged",e)},proxyEventTypeName:"blockFieldSetValue"})}proxyScriptItem(e,t,a){return this._proxyObject(e,t,a,{isLink:!0,changeEventFunc:function(e){y.$emit("itemRepo:scriptItemChanged",e)},proxyEventTypeName:"scriptItemSetValue"})}proxyScriptFieldsArray(e,t,a){return this._proxyArray(e,t,a,{addEventFunc:function(e){y.$emit("itemRepo:scriptFieldAdded",e)},deleteEventFunc:function(e){y.$emit("itemRepo:scriptFieldDeleted",e)},changeDoesNotMakeItemDirty:!0})}proxyScriptField(e,t,a){return this._proxyObject(e,t,a,{isLink:!1,isField:!0,changeEventFunc:function(e){y.$emit("itemRepo:scriptFieldChanged",e)},proxyEventTypeName:"itemScriptFieldSetValue",changeDoesNotMakeItemDirty:!1})}proxyCustomFieldsArray(e,t){return this._proxyArray(e,null,t,{addEventFunc:function(e){y.$emit("itemRepo:customFieldAdded",e)},deleteEventFunc:function(e){y.$emit("itemRepo:customFieldDeleted",e)},changeDoesNotMakeItemDirty:!0})}proxyCustomField(e,t){return this._proxyObject(e,null,t,{isLink:!1,isField:!0,changeEventFunc:function(e){y.$emit("itemRepo:customFieldChanged",e)},proxyEventTypeName:"itemCustomFieldSetValue",changeDoesNotMakeItemDirty:!1})}}class N{level;name;times;durations=[];childrenMap=new Map;children=[];parent;constructor(e,t,a,i){this.name=e,this.level=t,this.times=[a],this.parent=i}}class x{startTime=0;endTime=0;startIteration=0;currentLevel=0;root=new N("root",0,0,void 0);currentEntry;active=!1;static _instance;static get instance(){return this._instance||(this._instance=new this)}constructor(){this.currentEntry=this.root}start(){this.startTime=performance.now(),this.startIteration=this.startTime,this.root=new N("root",0,0,void 0),this.currentEntry=this.root,this.currentLevel=0,this.active=!0}end(e=!1){this.active=!1,this.endTime=performance.now()-this.startTime,this.root.durations.push(this.endTime-this.root.times[0]),e&&this.printResults()}_iterate(e,t){e(t=t||this.root);for(const a of t.children)this._iterate(e,a)}getResults(){const e=[];function t(e){return Math.round(1e3*e)/1e3}function a(e){return e.reduce(((e,t)=>e+t),0)}return this._iterate((function(i){const n=t(a(i.times)/i.times.length),r=t(a(i.durations)/i.durations.length),s=t(a(i.durations)),o=t(s-i.children.reduce(((e,t)=>e+a(t.durations)),0));e.push({name:"".padStart(2*i.level," .")+i.name,executions:i.times.length,avgTimeStartMs:n,avgTimeEndMs:t(n+r),avgDurationMs:r,totalDurationMs:s,selfDurationMs:o})})),e}printResults(){console.table(this.getResults(),["name","executions","avgTimeStartMs","avgTimeEndMs","avgDurationMs","totalDurationMs","selfDurationMs"])}newIteration(){this.startIteration=performance.now(),this.currentLevel=0}async asyncBlock(e,t){if(!this.active)return t();let a;try{return a=this.beginBlock(e),await t()}finally{this.endBlock(a)}}block(e,t){if(!this.active)return t();let a;try{return a=this.beginBlock(e),t()}finally{this.endBlock(a)}}beginBlock(e){if(!this.active)return;this.currentLevel++;const t=performance.now()-this.startIteration;let a=this.currentEntry.childrenMap.get(e);return a?a.times.push(t):(a=new N(e,this.currentLevel,t,this.currentEntry),this.currentEntry.children.push(a),this.currentEntry.childrenMap.set(e,a)),this.currentEntry=a,a}endBlock(e){if(!e)return;const t=performance.now()-this.startIteration-e.times[e.times.length-1];e.durations.push(t),this.currentEntry=e.parent,this.currentLevel--}}class T extends Error{constructor(e,t){super(e),t&&(this.name=t)}toString(){return this.name?`${this.name}: ${this.message}`:this.message}}class M extends T{constructor(e){super(e,"InvalidArgumentException")}}class V extends T{constructor(e){super(e,"RuntimeException")}}class C extends T{constructor(e){super(e,"LoaderException")}}class I extends T{constructor(e){super(e,"QuotaExceededException")}}class F extends T{constructor(e){super(e,"AccessDeniedException")}}let E=class{_id;name;folder;folderPath;links;attributes;userAttributes;filename;createdAt;updatedAt;version;filesize;hash;mimeType;type;packageType;createdBy;updatedBy;acl;visibility;properties;allowConversation;conversation;tags;contributors;description;shortDescription;userAttributeTemplate;categories;attachments;license;quotaUser;quotaGroup;itemSize;totalSize;flags;perceptiveHash;unpackagedSize;location;itemFlag;constructor(e){if(this._id=e._id,this.name=e.name,this.folder=e.folder,this.folderPath=e.folderPath,this.links=[],Array.isArray(e.links))for(const t of e.links)this.links.push({to:t.to,usage:t.usage});this.attributes=JSON.parse(JSON.stringify(e.attributes||{})),this.userAttributes=JSON.parse(JSON.stringify(e.userAttributes||{})),this.filename=e.filename,this.createdAt=e.createdAt,this.updatedAt=e.updatedAt,this.version={major:e.version?.major||0,minor:e.version?.minor||0,revision:e.version?.revision||1},this.filesize=e.filesize,this.hash=e.hash,this.mimeType=e.mimeType,this.type=e.type,this.packageType=e.packageType,this.createdBy=e.createdBy,this.updatedBy=e.updatedBy,this.acl=JSON.parse(JSON.stringify(e.acl||[])),this.visibility=e.visibility,this.properties=JSON.parse(JSON.stringify(e.properties||{})),this.allowConversation=e.allowConversation,this.conversation=e.conversation,this.tags=JSON.parse(JSON.stringify(e.tags||[])),this.contributors=JSON.parse(JSON.stringify(e.contributors||[])),this.description=e.description,this.shortDescription=e.shortDescription,this.userAttributeTemplate=e.userAttributeTemplate,this.categories=e.categories,this.attachments=JSON.parse(JSON.stringify(e.attachments||[])),this.license=e.license,this.quotaUser=e.quotaUser,this.quotaGroup=e.quotaGroup,this.itemSize=e.itemSize,this.totalSize=e.totalSize,this.flags=JSON.parse(JSON.stringify(e.flags||[])),this.perceptiveHash=e.perceptiveHash,this.unpackagedSize=e.unpackagedSize,this.location=e.location,this.itemFlag=JSON.parse(JSON.stringify(e.itemFlag||{}))}};class D extends E{links;thumbnails;fieldSets;fields;userFields;isAggregatedItem=!0;constructor(e){if(super(e),this.links=[],Array.isArray(e.links))for(const t of e.links)this.links.push({to:t.to,usage:t.usage,stopRecursion:t.stopRecursion});this.thumbnails=JSON.parse(JSON.stringify(e.thumbnails||[])),this.fieldSets=JSON.parse(JSON.stringify(e.fieldSets||[])),this.fields=JSON.parse(JSON.stringify(e.fields||[])),this.userFields=JSON.parse(JSON.stringify(e.userFields||[]))}}var L=[{_id:{$oid:"5e6a1ace89707feef5738292"},contentTypes:["model/splat"],fieldSets:[],fields:[],name:"Gaussian Splats",updateRequiresThumbRefresh:!0,creatableEmpty:!1},{_id:{$oid:"5e6a1ace89707feef3748569"},contentTypes:[],fieldSets:[],fields:[{label:"Scenes",type:"Separator"},{elementName:"Scene",fields:[{linkableTypes:["Scene"],type:"Link",usageAs:"Scene",mandatory:!0},{datatype:"Boolean",defaultValue:!0,displayName:"Load",name:"Load",type:"Attribute"},{datatype:"Boolean",defaultValue:!0,displayName:"Active",if:{Load:!0},name:"Active",type:"Attribute"},{datatype:"Boolean",defaultValue:!1,displayName:"Primary",name:"Primary",type:"Attribute"},{datatype:"Boolean",defaultValue:!1,displayName:"Exclude in packages",name:"ExcludeInPackages",type:"Attribute"},{datatype:"Transform",defaultValue:{position:{x:0,y:0,z:0},rotation:{w:1,x:0,y:0,z:0},scale:{x:1,y:1,z:1}},name:"Transform",type:"Attribute"}],name:"Scenes",type:"List"},{label:"Variable Sets",type:"Separator",collapsed:!0},{displayName:"Variable sets",elementName:"Variable set",fields:[{displayName:"Variable set",linkableTypes:["Variable Set"],type:"Link",usageAs:"VariableSet",mandatory:!0},{datatype:"String",defaultValue:"",displayName:"Name",name:"Name",type:"Attribute"}],name:"VariableSets",type:"List"},{label:"Graphics",type:"Separator",collapsed:!0},{datatype:"Enum",defaultValue:"Not defined",displayName:"Aspect ratio",info:"This determines the project's aspect ratio. If not defined, the game will run in the default aspect depending on platform and browser size",name:"AspectRatio",options:["Not defined","Standard (4:3)","Widescreen (16:9)","Ultrawide (21:9)","Custom"],type:"Attribute"},{datatype:"Float",defaultValue:1.3,minValue:.1,maxValue:10,displayName:"Custom Aspect",if:{AspectRatio:"Custom"},name:"CustomAspect",type:"Attribute"},{label:"Physics",type:"Separator",collapsed:!0},{datatype:"Boolean",defaultValue:!1,displayName:"Enabled",name:"PhysicsEnabled",type:"Attribute"},{datatype:"Vector3d",defaultValue:{x:0,y:-9.81,z:0},displayName:"Gravity",if:{PhysicsEnabled:!0},name:"Gravity",type:"Attribute"},{datatype:"LayerMatrix",defaultValue:[[0]],displayName:"Collision matrix",if:{PhysicsEnabled:!0},info:"This controls which physics object interact with which others depending on their layers",name:"CollisionMatrix",type:"Attribute"},{datatype:"StringList",defaultValue:["Default","Terrain","TransparentFX","Water"],displayName:"Layer names",fixedLength:!0,info:"Names of the layers to use with all scenegraph nodes",name:"LayerNames",type:"Attribute"},{label:"Resources",type:"Separator",collapsed:!0},{datatype:"Enum",defaultValue:"After loading everything",displayName:"Start execution",info:"This controls when the engine will start execution of the project in the player",name:"StartExecution",options:["Right away","After loading minimum LOD","After loading everything"],type:"Attribute"},{label:"Controls",type:"Separator",collapsed:!0},{datatype:"Boolean",defaultValue:!1,displayName:"Automatic pointer lock",name:"AutomaticPointerLock",type:"Attribute",info:"Enabling this will cause the mouse pointer to be locked until Escape is pressed"},{label:"Canvas Fonts",type:"Separator",collapsed:!0},{displayName:"Canvas fonts",elementName:"Font",fields:[{displayName:"Font",linkableTypes:["Font"],type:"Link",usageAs:"Font",mandatory:!0}],name:"CanvasFonts",type:"List"}],name:"Project",recursiveLoadStopsHere:!0,updateRequiresThumbRefresh:!1,creatableEmpty:!1},{_id:{$oid:"5e6a1ace24a07f56f3742569"},contentTypes:[],fieldSets:[],fields:[{elementName:"Variable",fields:[{datatype:"String",defaultValue:"Name",displayName:"Name",name:"Name",type:"Attribute"},{datatype:"Enum",defaultValue:"Integer",displayName:"Type",name:"Type",options:["Integer","Float","String","Boolean"],type:"Attribute"},{datatype:"Boolean",defaultValue:!1,displayName:"Value",if:{Type:"Boolean"},name:"BooleanValue",type:"Attribute"},{datatype:"Integer",defaultValue:0,displayName:"Value",if:{Type:"Integer"},name:"IntegerValue",type:"Attribute"},{datatype:"Float",defaultValue:0,displayName:"Value",if:{Type:"Float"},name:"FloatValue",type:"Attribute"},{datatype:"String",defaultValue:"",displayName:"Value",if:{Type:"String"},name:"StringValue",type:"Attribute"}],name:"Variables",type:"List"}],name:"Variable Set",updateRequiresThumbRefresh:!1,creatableEmpty:!0},{_id:{$oid:"5e6a1ace89707feef9173386"},contentTypes:["audio/mpeg"],fieldSets:[],fields:[{datatype:"Float",defaultValue:1,displayName:"Volume",maxValue:1,minValue:0,name:"Volume",type:"Attribute",widget:"Slider"}],name:"Audio",updateRequiresThumbRefresh:!1,creatableEmpty:!1},{_id:{$oid:"5e6a1acf89707feef917338f"},contentTypes:["*"],fieldSets:[],fields:[],name:"Binary",creatableEmpty:!1},{_id:{$oid:"5e6a1acf89707feef917337f"},contentTypes:["application/vnd.lumino.package"],fieldSets:[],fields:[],name:"Package",creatableEmpty:!1},{_id:{$oid:"5e6a1ad189707feef9173391"},contentTypes:["image/vnd.radiance"],fieldSets:[],fields:[],name:"HDR Image",creatableEmpty:!1},{_id:{$oid:"5e6a1ad189707feef9173392"},contentTypes:["image/png","image/jpeg","image/avif","image/heif"],fieldSets:[],fields:[{datatype:"Enum",defaultValue:"Linear",displayName:"Encoding",name:"Encoding",options:["Linear","sRGB"],type:"Attribute"}],name:"Image",updateRequiresThumbRefresh:!0,creatableEmpty:!1},{_id:{$oid:"5e6a1ad189707feef9173393"},contentTypes:[""],fieldSets:[],fields:[{label:"Type",type:"Separator"},{datatype:"Enum",defaultValue:"Physical",displayName:"Material type",name:"MaterialType",options:["Physical","Shader","Point","Basic","Normal","Toon","Matcap","Lambert","Phong"],type:"Attribute"},{label:"Matcap material options",type:"Separator",if:{MaterialType:"Matcap"}},{displayName:"Matcap map",linkableTypes:["Image"],type:"Link",usageAs:"Matcap",if:{MaterialType:"Matcap"}},{datatype:"Enum",defaultValue:"Repeat",displayName:"Horiz. wrapping",if:{MaterialType:"Matcap",Matcap:{$isset:!0}},name:"MatcapWrapS",options:["Repeat","Clamp to edge","Mirrored repeat"],type:"Attribute"},{datatype:"Enum",defaultValue:"Repeat",displayName:"Vert. wrapping",if:{MaterialType:"Matcap",Matcap:{$isset:!0}},name:"MatcapWrapT",options:["Repeat","Clamp to edge","Mirrored repeat"],type:"Attribute"},{datatype:"Enum",defaultValue:"Linear",displayName:"Mag filter",if:{MaterialType:"Matcap",Matcap:{$isset:!0}},name:"MatcapMagFilter",options:["Linear","Nearest"],type:"Attribute"},{datatype:"Enum",defaultValue:"Linear, Mipmap linear",displayName:"Min Filter",if:{MaterialType:"Matcap",Matcap:{$isset:!0}},name:"MatcapMinFilter",options:["Nearest","Nearest, Mipmap nearest","Nearest, Mipmap linear","Linear","Linear, Mipmap nearest","Linear, Mipmap linear"],type:"Attribute"},{datatype:"Enum",defaultValue:"1x",displayName:"Anisotropy",if:{MaterialType:"Matcap",Matcap:{$isset:!0}},name:"MatcapAnisotropy",options:["1x","2x","4x","8x","16x"],type:"Attribute"},{label:"Toon material options",type:"Separator",if:{MaterialType:"Toon"}},{displayName:"Gradient map",linkableTypes:["Image"],if:{MaterialType:"Toon"},type:"Link",usageAs:"Gradient"},{datatype:"Enum",defaultValue:"Repeat",displayName:"Horiz. wrapping",if:{MaterialType:"Toon",Gradient:{$isset:!0}},name:"GradientWrapS",options:["Repeat","Clamp to edge","Mirrored repeat"],type:"Attribute"},{datatype:"Enum",defaultValue:"Repeat",displayName:"Vert. wrapping",if:{MaterialType:"Toon",Gradient:{$isset:!0}},name:"GradientWrapT",options:["Repeat","Clamp to edge","Mirrored repeat"],type:"Attribute"},{datatype:"Enum",defaultValue:"Nearest",displayName:"Mag filter",if:{MaterialType:"Toon",Gradient:{$isset:!0}},name:"GradientMagFilter",options:["Nearest"],type:"Attribute"},{datatype:"Enum",defaultValue:"Nearest",displayName:"Min Filter",if:{MaterialType:"Toon",Gradient:{$isset:!0}},name:"GradientMinFilter",options:["Nearest"],type:"Attribute"},{datatype:"Enum",defaultValue:"1x",displayName:"Anisotropy",if:{MaterialType:"Toon",Gradient:{$isset:!0}},name:"GradientAnisotropy",options:["1x","2x","4x","8x","16x"],type:"Attribute"},{label:"Basic material options",type:"Separator",if:{MaterialType:"Basic"}},{datatype:"Color",defaultValue:{a:255,b:255,g:255,r:255},displayName:"Color",name:"EmissionColor",type:"Attribute",if:{MaterialType:"Basic"}},{label:"Custom shaders",type:"Separator",if:{MaterialType:"Shader"}},{displayName:"Vertex shader",linkableTypes:["Vertex Shader"],type:"Link",usageAs:"VertexShader",if:{MaterialType:"Shader"}},{displayName:"Pixel shader",linkableTypes:["Pixel Shader"],type:"Link",usageAs:"PixelShader",if:{MaterialType:"Shader"}},{label:"Point rendering",type:"Separator",if:{MaterialType:"Point"}},{datatype:"Float",defaultValue:1,displayName:"Size",if:{MaterialType:"Point"},minValue:0,name:"PointSize",type:"Attribute"},{datatype:"Boolean",defaultValue:!0,displayName:"Size attenuation",if:{MaterialType:"Point"},name:"PointSizeAttenuation",type:"Attribute"},{label:"Attenuation",type:"Separator",if:{MaterialType:"Physical"}},{datatype:"Color",defaultValue:{a:255,b:255,g:255,r:255},displayName:"Color",info:"The color that white light turns into due to absorption when reaching the attenuation distance.",name:"AttenuationColor",type:"Attribute",if:{MaterialType:"Physical"}},{datatype:"Float",defaultValue:1e3,displayName:"Distance",info:"Density of the medium given as the average distance that light travels in the medium before interacting with a particle. The value is given in world space units, and must be greater than zero.",minValue:1e-5,name:"AttenuationDistance",type:"Attribute",if:{MaterialType:"Physical"}},{label:"Diffuse",type:"Separator",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Point"},{MaterialType:"Basic"},{MaterialType:"Toon"},{MaterialType:"Matcap"},{MaterialType:"Lambert"},{MaterialType:"Phong"}]}},{datatype:"Color",defaultValue:{a:255,b:255,g:255,r:255},displayName:"Color",name:"DiffuseColor",type:"Attribute",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Point"},{MaterialType:"Toon"},{MaterialType:"Matcap"},{MaterialType:"Lambert"},{MaterialType:"Phong"}]}},{displayName:"Albedo map",linkableTypes:["Image","Composition","Video"],type:"Link",usageAs:"Albedo",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Point"},{MaterialType:"Basic"},{MaterialType:"Toon"},{MaterialType:"Matcap"},{MaterialType:"Lambert"},{MaterialType:"Phong"}]}},{datatype:"Enum",defaultValue:"Repeat",displayName:"Horiz. wrapping",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Point"},{MaterialType:"Basic"},{MaterialType:"Toon"},{MaterialType:"Matcap"},{MaterialType:"Lambert"},{MaterialType:"Phong"}],Albedo:{$isset:!0}},name:"AlbedoWrapS",options:["Repeat","Clamp to edge","Mirrored repeat"],type:"Attribute"},{datatype:"Enum",defaultValue:"Repeat",displayName:"Vert. wrapping",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Point"},{MaterialType:"Basic"},{MaterialType:"Toon"},{MaterialType:"Matcap"},{MaterialType:"Lambert"},{MaterialType:"Phong"}],Albedo:{$isset:!0}},name:"AlbedoWrapT",options:["Repeat","Clamp to edge","Mirrored repeat"],type:"Attribute"},{datatype:"Enum",defaultValue:"Linear",displayName:"Mag filter",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Point"},{MaterialType:"Basic"},{MaterialType:"Toon"},{MaterialType:"Matcap"},{MaterialType:"Lambert"},{MaterialType:"Phong"}],Albedo:{$isset:!0}},name:"AlbedoMagFilter",options:["Linear","Nearest"],type:"Attribute"},{datatype:"Enum",defaultValue:"Linear, Mipmap linear",displayName:"Min Filter",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Point"},{MaterialType:"Basic"},{MaterialType:"Toon"},{MaterialType:"Matcap"},{MaterialType:"Lambert"},{MaterialType:"Phong"}],Albedo:{$isset:!0}},name:"AlbedoMinFilter",options:["Nearest","Nearest, Mipmap nearest","Nearest, Mipmap linear","Linear","Linear, Mipmap nearest","Linear, Mipmap linear"],type:"Attribute"},{datatype:"Enum",defaultValue:"1x",displayName:"Anisotropy",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Point"},{MaterialType:"Basic"},{MaterialType:"Toon"},{MaterialType:"Matcap"},{MaterialType:"Lambert"},{MaterialType:"Phong"}],Albedo:{$isset:!0}},name:"AlbedoAnisotropy",options:["1x","2x","4x","8x","16x"],type:"Attribute"},{datatype:"Boolean",defaultValue:!1,displayName:"Vertex Colors",name:"VertexColors",type:"Attribute"},{label:"Transparency",type:"Separator"},{datatype:"Float",defaultValue:0,displayName:"Alpha test",maxValue:1,minValue:0,name:"AlphaTest",type:"Attribute",widget:"Slider"},{datatype:"Boolean",defaultValue:!1,displayName:"Transparent",name:"Transparent",type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"Opacity",if:{Transparent:!0},maxValue:1,minValue:0,name:"Opacity",type:"Attribute",widget:"Slider"},{displayName:"Alpha map",linkableTypes:["Image"],type:"Link",usageAs:"Alpha",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Point"},{MaterialType:"Basic"},{MaterialType:"Toon"},{MaterialType:"Matcap"},{MaterialType:"Lambert"},{MaterialType:"Phong"}]}},{datatype:"Enum",defaultValue:"Repeat",displayName:"Horiz. wrapping",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Point"},{MaterialType:"Basic"},{MaterialType:"Toon"},{MaterialType:"Matcap"},{MaterialType:"Lambert"},{MaterialType:"Phong"}],Alpha:{$isset:!0}},name:"AlphaWrapS",options:["Repeat","Clamp to edge","Mirrored repeat"],type:"Attribute"},{datatype:"Enum",defaultValue:"Repeat",displayName:"Vert. wrapping",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Point"},{MaterialType:"Basic"},{MaterialType:"Toon"},{MaterialType:"Matcap"},{MaterialType:"Lambert"},{MaterialType:"Phong"}],Alpha:{$isset:!0}},name:"AlphaWrapT",options:["Repeat","Clamp to edge","Mirrored repeat"],type:"Attribute"},{datatype:"Enum",defaultValue:"Linear",displayName:"Mag filter",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Point"},{MaterialType:"Basic"},{MaterialType:"Toon"},{MaterialType:"Matcap"},{MaterialType:"Lambert"},{MaterialType:"Phong"}],Alpha:{$isset:!0}},name:"AlphaMagFilter",options:["Linear","Nearest"],type:"Attribute"},{datatype:"Enum",defaultValue:"Linear, Mipmap linear",displayName:"Min Filter",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Point"},{MaterialType:"Basic"},{MaterialType:"Toon"},{MaterialType:"Matcap"},{MaterialType:"Lambert"},{MaterialType:"Phong"}],Alpha:{$isset:!0}},name:"AlphaMinFilter",options:["Nearest","Nearest, Mipmap nearest","Nearest, Mipmap linear","Linear","Linear, Mipmap nearest","Linear, Mipmap linear"],type:"Attribute"},{datatype:"Enum",defaultValue:"1x",displayName:"Anisotropy",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Point"},{MaterialType:"Basic"},{MaterialType:"Toon"},{MaterialType:"Matcap"},{MaterialType:"Lambert"},{MaterialType:"Phong"}],Alpha:{$isset:!0}},name:"AlphaAnisotropy",options:["1x","2x","4x","8x","16x"],type:"Attribute"},{label:"Emission",type:"Separator",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Toon"},{MaterialType:"Lambert"},{MaterialType:"Phong"}]}},{datatype:"Color",defaultValue:{a:255,b:0,g:0,r:0},displayName:"Color",name:"EmissiveColor",type:"Attribute",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Toon"},{MaterialType:"Lambert"},{MaterialType:"Phong"}]}},{datatype:"Float",defaultValue:1,displayName:"Intensity",maxValue:10,minValue:0,name:"EmissiveIntensity",type:"Attribute",widget:"Slider",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Toon"},{MaterialType:"Lambert"},{MaterialType:"Phong"}]}},{displayName:"Emissive map",linkableTypes:["Image"],type:"Link",usageAs:"Emissive",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Toon"},{MaterialType:"Lambert"},{MaterialType:"Phong"}]}},{datatype:"Enum",defaultValue:"Repeat",displayName:"Horiz. wrapping",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Toon"},{MaterialType:"Lambert"},{MaterialType:"Phong"}],Emissive:{$isset:!0}},name:"EmissiveWrapS",options:["Repeat","Clamp to edge","Mirrored repeat"],type:"Attribute"},{datatype:"Enum",defaultValue:"Repeat",displayName:"Vert. wrapping",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Toon"},{MaterialType:"Lambert"},{MaterialType:"Phong"}],Emissive:{$isset:!0}},name:"EmissiveWrapT",options:["Repeat","Clamp to edge","Mirrored repeat"],type:"Attribute"},{datatype:"Enum",defaultValue:"Linear",displayName:"Mag filter",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Toon"},{MaterialType:"Lambert"},{MaterialType:"Phong"}],Emissive:{$isset:!0}},name:"EmissiveMagFilter",options:["Linear","Nearest"],type:"Attribute"},{datatype:"Enum",defaultValue:"Linear, Mipmap linear",displayName:"Min Filter",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Toon"},{MaterialType:"Lambert"},{MaterialType:"Phong"}],Emissive:{$isset:!0}},name:"EmissiveMinFilter",options:["Nearest","Nearest, Mipmap nearest","Nearest, Mipmap linear","Linear","Linear, Mipmap nearest","Linear, Mipmap linear"],type:"Attribute"},{datatype:"Enum",defaultValue:"1x",displayName:"Anisotropy",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Toon"},{MaterialType:"Lambert"},{MaterialType:"Phong"}],Emissive:{$isset:!0}},name:"EmissiveAnisotropy",options:["1x","2x","4x","8x","16x"],type:"Attribute"},{label:"Sheen",type:"Separator",if:{MaterialType:"Physical"}},{datatype:"Float",defaultValue:0,displayName:"Sheen",maxValue:1,minValue:0,name:"Sheen",type:"Attribute",if:{MaterialType:"Physical"}},{datatype:"Float",defaultValue:0,displayName:"Sheen roughness",maxValue:1,minValue:0,name:"SheenRoughness",type:"Attribute",if:{MaterialType:"Physical"}},{displayName:"Sheen roughness map",linkableTypes:["Image"],type:"Link",usageAs:"SheenRoughnessMap",if:{MaterialType:"Physical"}},{datatype:"Enum",defaultValue:"Repeat",displayName:"Horiz. wrapping",if:{MaterialType:"Physical",SheenRoughnessMap:{$isset:!0}},name:"SheenRoughnessWrapS",options:["Repeat","Clamp to edge","Mirrored repeat"],type:"Attribute"},{datatype:"Enum",defaultValue:"Repeat",displayName:"Vert. wrapping",if:{MaterialType:"Physical",SheenRoughnessMap:{$isset:!0}},name:"SheenRoughnessWrapT",options:["Repeat","Clamp to edge","Mirrored repeat"],type:"Attribute"},{datatype:"Enum",defaultValue:"Linear",displayName:"Mag filter",if:{MaterialType:"Physical",SheenRoughnessMap:{$isset:!0}},name:"SheenRoughnessMagFilter",options:["Linear","Nearest"],type:"Attribute"},{datatype:"Enum",defaultValue:"Linear, Mipmap linear",displayName:"Min Filter",if:{MaterialType:"Physical",SheenRoughnessMap:{$isset:!0}},name:"SheenRoughnessMinFilter",options:["Nearest","Nearest, Mipmap nearest","Nearest, Mipmap linear","Linear","Linear, Mipmap nearest","Linear, Mipmap linear"],type:"Attribute"},{datatype:"Enum",defaultValue:"1x",displayName:"Anisotropy",if:{MaterialType:"Physical",SheenRoughnessMap:{$isset:!0}},name:"SheenRoughnessAnisotropy",options:["1x","2x","4x","8x","16x"],type:"Attribute"},{datatype:"Color",defaultValue:{a:255,b:255,g:255,r:255},displayName:"Sheen color",name:"SheenColor",type:"Attribute",if:{MaterialType:"Physical"}},{displayName:"Sheen color map",linkableTypes:["Image"],type:"Link",usageAs:"SheenColorMap",if:{MaterialType:"Physical"}},{datatype:"Enum",defaultValue:"Repeat",displayName:"Horiz. wrapping",if:{MaterialType:"Physical",SheenColorMap:{$isset:!0}},name:"SheenColorWrapS",options:["Repeat","Clamp to edge","Mirrored repeat"],type:"Attribute"},{datatype:"Enum",defaultValue:"Repeat",displayName:"Vert. wrapping",if:{MaterialType:"Physical",SheenColorMap:{$isset:!0}},name:"SheenColorWrapT",options:["Repeat","Clamp to edge","Mirrored repeat"],type:"Attribute"},{datatype:"Enum",defaultValue:"Linear",displayName:"Mag filter",if:{MaterialType:"Physical",SheenColorMap:{$isset:!0}},name:"SheenColorMagFilter",options:["Linear","Nearest"],type:"Attribute"},{datatype:"Enum",defaultValue:"Linear, Mipmap linear",displayName:"Min Filter",if:{MaterialType:"Physical",SheenColorMap:{$isset:!0}},name:"SheenColorMinFilter",options:["Nearest","Nearest, Mipmap nearest","Nearest, Mipmap linear","Linear","Linear, Mipmap nearest","Linear, Mipmap linear"],type:"Attribute"},{datatype:"Enum",defaultValue:"1x",displayName:"Anisotropy",if:{MaterialType:"Physical",SheenColorMap:{$isset:!0}},name:"SheenColorAnisotropy",options:["1x","2x","4x","8x","16x"],type:"Attribute"},{label:"Normal",type:"Separator",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Normal"},{MaterialType:"Toon"},{MaterialType:"Matcap"},{MaterialType:"Lambert"},{MaterialType:"Phong"}]}},{displayName:"Normal map",linkableTypes:["Image"],type:"Link",usageAs:"Normal",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Normal"},{MaterialType:"Toon"},{MaterialType:"Matcap"},{MaterialType:"Lambert"},{MaterialType:"Phong"}]}},{datatype:"Vector2d",defaultValue:{x:1,y:1},displayName:"Scale",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Normal"},{MaterialType:"Toon"},{MaterialType:"Matcap"},{MaterialType:"Lambert"},{MaterialType:"Phong"}],Normal:{$isset:!0}},maxValue:10,minValue:0,name:"NormalScale2d",type:"Attribute"},{datatype:"Enum",defaultValue:"TangentSpace",displayName:"Type",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Normal"},{MaterialType:"Toon"},{MaterialType:"Matcap"},{MaterialType:"Lambert"},{MaterialType:"Phong"}],Normal:{$isset:!0}},name:"NormalType",options:["TangentSpace","ObjectSpace"],type:"Attribute"},{datatype:"Enum",defaultValue:"Repeat",displayName:"Horiz. wrapping",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Normal"},{MaterialType:"Toon"},{MaterialType:"Matcap"},{MaterialType:"Lambert"},{MaterialType:"Phong"}],Normal:{$isset:!0}},name:"NormalWrapS",options:["Repeat","Clamp to edge","Mirrored repeat"],type:"Attribute"},{datatype:"Enum",defaultValue:"Repeat",displayName:"Vert. wrapping",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Normal"},{MaterialType:"Toon"},{MaterialType:"Matcap"},{MaterialType:"Lambert"},{MaterialType:"Phong"}],Normal:{$isset:!0}},name:"NormalWrapT",options:["Repeat","Clamp to edge","Mirrored repeat"],type:"Attribute"},{datatype:"Enum",defaultValue:"Linear",displayName:"Mag filter",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Normal"},{MaterialType:"Toon"},{MaterialType:"Matcap"},{MaterialType:"Lambert"},{MaterialType:"Phong"}],Normal:{$isset:!0}},name:"NormalMagFilter",options:["Linear","Nearest"],type:"Attribute"},{datatype:"Enum",defaultValue:"Linear, Mipmap linear",displayName:"Min Filter",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Normal"},{MaterialType:"Toon"},{MaterialType:"Matcap"},{MaterialType:"Lambert"},{MaterialType:"Phong"}],Normal:{$isset:!0}},name:"NormalMinFilter",options:["Nearest","Nearest, Mipmap nearest","Nearest, Mipmap linear","Linear","Linear, Mipmap nearest","Linear, Mipmap linear"],type:"Attribute"},{datatype:"Enum",defaultValue:"1x",displayName:"Anisotropy",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Normal"},{MaterialType:"Toon"},{MaterialType:"Matcap"},{MaterialType:"Lambert"},{MaterialType:"Phong"}],Normal:{$isset:!0}},name:"NormalAnisotropy",options:["1x","2x","4x","8x","16x"],type:"Attribute"},{label:"Roughness",type:"Separator",if:{MaterialType:"Physical"}},{datatype:"Float",defaultValue:1,displayName:"Roughness Intensity",maxValue:1,minValue:0,name:"RoughnessIntensity",type:"Attribute",widget:"Slider",if:{MaterialType:"Physical"}},{displayName:"Roughness map",linkableTypes:["Image"],type:"Link",usageAs:"Roughness",if:{MaterialType:"Physical"}},{datatype:"Enum",defaultValue:"Repeat",displayName:"Horiz. wrapping",if:{Roughness:{$isset:!0}},name:"RoughnessWrapS",options:["Repeat","Clamp to edge","Mirrored repeat"],type:"Attribute"},{datatype:"Enum",defaultValue:"Repeat",displayName:"Vert. wrapping",if:{Roughness:{$isset:!0}},name:"RoughnessWrapT",options:["Repeat","Clamp to edge","Mirrored repeat"],type:"Attribute"},{datatype:"Enum",defaultValue:"Linear",displayName:"Mag filter",if:{Roughness:{$isset:!0}},name:"RoughnessMagFilter",options:["Linear","Nearest"],type:"Attribute"},{datatype:"Enum",defaultValue:"Linear, Mipmap linear",displayName:"Min Filter",if:{Roughness:{$isset:!0}},name:"RoughnessMinFilter",options:["Nearest","Nearest, Mipmap nearest","Nearest, Mipmap linear","Linear","Linear, Mipmap nearest","Linear, Mipmap linear"],type:"Attribute"},{datatype:"Enum",defaultValue:"1x",displayName:"Anisotropy",if:{MaterialType:"Physical",Roughness:{$isset:!0}},name:"RoughnessAnisotropy",options:["1x","2x","4x","8x","16x"],type:"Attribute"},{label:"Metalness",type:"Separator",if:{MaterialType:"Physical"}},{datatype:"Float",defaultValue:1,displayName:"Metalness Intensity",maxValue:1,minValue:0,name:"MetalnessIntensity",type:"Attribute",widget:"Slider",if:{MaterialType:"Physical"}},{displayName:"Metalness map",linkableTypes:["Image"],type:"Link",usageAs:"Metalness",if:{MaterialType:"Physical"}},{datatype:"Enum",defaultValue:"Repeat",displayName:"Horiz. wrapping",if:{Metalness:{$isset:!0}},name:"MetalnessWrapS",options:["Repeat","Clamp to edge","Mirrored repeat"],type:"Attribute"},{datatype:"Enum",defaultValue:"Repeat",displayName:"Vert. wrapping",if:{Metalness:{$isset:!0}},name:"MetalnessWrapT",options:["Repeat","Clamp to edge","Mirrored repeat"],type:"Attribute"},{datatype:"Enum",defaultValue:"Linear",displayName:"Mag filter",if:{Metalness:{$isset:!0}},name:"MetalnessMagFilter",options:["Linear","Nearest"],type:"Attribute"},{datatype:"Enum",defaultValue:"Linear, Mipmap linear",displayName:"Min Filter",if:{Metalness:{$isset:!0}},name:"MetalnessMinFilter",options:["Nearest","Nearest, Mipmap nearest","Nearest, Mipmap linear","Linear","Linear, Mipmap nearest","Linear, Mipmap linear"],type:"Attribute"},{datatype:"Enum",defaultValue:"1x",displayName:"Anisotropy",if:{MaterialType:"Physical",Metalness:{$isset:!0}},name:"MetalnessAnisotropy",options:["1x","2x","4x","8x","16x"],type:"Attribute"},{label:"Specular",type:"Separator",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Basic"}]}},{datatype:"Float",defaultValue:1,displayName:"Specular intensity",maxValue:1,minValue:0,name:"SpecularIntensity",type:"Attribute",widget:"Slider",if:{MaterialType:"Physical"}},{displayName:"Specular intensity map",linkableTypes:["Image"],type:"Link",usageAs:"SpecularIntensityMap",if:{MaterialType:"Physical"}},{datatype:"Enum",defaultValue:"Repeat",displayName:"Horiz. wrapping",if:{MaterialType:"Physical",SpecularIntensityMap:{$isset:!0}},name:"SpecularIntensityWrapS",options:["Repeat","Clamp to edge","Mirrored repeat"],type:"Attribute"},{datatype:"Enum",defaultValue:"Repeat",displayName:"Vert. wrapping",if:{MaterialType:"Physical",SpecularIntensityMap:{$isset:!0}},name:"SpecularIntensityWrapT",options:["Repeat","Clamp to edge","Mirrored repeat"],type:"Attribute"},{datatype:"Enum",defaultValue:"Linear",displayName:"Mag filter",if:{MaterialType:"Physical",SpecularIntensityMap:{$isset:!0}},name:"SpecularIntensityMagFilter",options:["Linear","Nearest"],type:"Attribute"},{datatype:"Enum",defaultValue:"Linear, Mipmap linear",displayName:"Min Filter",if:{MaterialType:"Physical",SpecularIntensityMap:{$isset:!0}},name:"SpecularIntensityMinFilter",options:["Nearest","Nearest, Mipmap nearest","Nearest, Mipmap linear","Linear","Linear, Mipmap nearest","Linear, Mipmap linear"],type:"Attribute"},{datatype:"Enum",defaultValue:"1x",displayName:"Anisotropy",if:{MaterialType:"Physical",SpecularIntensityMap:{$isset:!0}},name:"SpecularIntensityAnisotropy",options:["1x","2x","4x","8x","16x"],type:"Attribute"},{datatype:"Color",defaultValue:{a:255,b:255,g:255,r:255},if:{MaterialType:"Physical"},displayName:"Specular color",name:"SpecularColor",type:"Attribute"},{displayName:"Specular color map",linkableTypes:["Image"],if:{MaterialType:"Physical"},type:"Link",usageAs:"SpecularColorMap"},{datatype:"Enum",defaultValue:"Repeat",displayName:"Horiz. wrapping",if:{MaterialType:"Physical",SpecularColorMap:{$isset:!0}},name:"SpecularColorWrapS",options:["Repeat","Clamp to edge","Mirrored repeat"],type:"Attribute"},{datatype:"Enum",defaultValue:"Repeat",displayName:"Vert. wrapping",if:{MaterialType:"Physical",SpecularColorMap:{$isset:!0}},name:"SpecularColorWrapT",options:["Repeat","Clamp to edge","Mirrored repeat"],type:"Attribute"},{datatype:"Enum",defaultValue:"Linear",displayName:"Mag filter",if:{MaterialType:"Physical",SpecularColorMap:{$isset:!0}},name:"SpecularColorMagFilter",options:["Linear","Nearest"],type:"Attribute"},{datatype:"Enum",defaultValue:"Linear, Mipmap linear",displayName:"Min Filter",if:{MaterialType:"Physical",SpecularColorMap:{$isset:!0}},name:"SpecularColorMinFilter",options:["Nearest","Nearest, Mipmap nearest","Nearest, Mipmap linear","Linear","Linear, Mipmap nearest","Linear, Mipmap linear"],type:"Attribute"},{datatype:"Enum",defaultValue:"1x",displayName:"Anisotropy",if:{MaterialType:"Physical",SpecularColorMap:{$isset:!0}},name:"SpecularColorAnisotropy",options:["1x","2x","4x","8x","16x"],type:"Attribute"},{label:"Ambient occlusion",type:"Separator",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Basic"},{MaterialType:"Toon"},{MaterialType:"Lambert"},{MaterialType:"Phong"}]}},{displayName:"Ambient occlusion map",linkableTypes:["Image"],type:"Link",usageAs:"AmbientOcclusion",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Basic"},{MaterialType:"Toon"},{MaterialType:"Lambert"},{MaterialType:"Phong"}]}},{datatype:"Float",defaultValue:1,displayName:"Intensity",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Basic"},{MaterialType:"Toon"},{MaterialType:"Lambert"},{MaterialType:"Phong"}],AmbientOcclusion:{$isset:!0}},maxValue:10,minValue:0,name:"AmbientOcclusionIntensity",type:"Attribute",widget:"Slider"},{datatype:"Enum",defaultValue:"Repeat",displayName:"Horiz. wrapping",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Basic"},{MaterialType:"Toon"},{MaterialType:"Lambert"},{MaterialType:"Phong"}],AmbientOcclusion:{$isset:!0}},name:"AmbientOcclusionWrapS",options:["Repeat","Clamp to edge","Mirrored repeat"],type:"Attribute"},{datatype:"Enum",defaultValue:"Repeat",displayName:"Vert. wrapping",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Basic"},{MaterialType:"Toon"},{MaterialType:"Lambert"},{MaterialType:"Phong"}],AmbientOcclusion:{$isset:!0}},name:"AmbientOcclusionWrapT",options:["Repeat","Clamp to edge","Mirrored repeat"],type:"Attribute"},{datatype:"Enum",defaultValue:"Linear",displayName:"Mag filter",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Basic"},{MaterialType:"Toon"},{MaterialType:"Lambert"},{MaterialType:"Phong"}],AmbientOcclusion:{$isset:!0}},name:"AmbientOcclusionMagFilter",options:["Linear","Nearest"],type:"Attribute"},{datatype:"Enum",defaultValue:"Linear, Mipmap linear",displayName:"Min Filter",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Basic"},{MaterialType:"Toon"},{MaterialType:"Lambert"},{MaterialType:"Phong"}],AmbientOcclusion:{$isset:!0}},name:"AmbientOcclusionMinFilter",options:["Nearest","Nearest, Mipmap nearest","Nearest, Mipmap linear","Linear","Linear, Mipmap nearest","Linear, Mipmap linear"],type:"Attribute"},{datatype:"Enum",defaultValue:"1x",displayName:"Anisotropy",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Basic"},{MaterialType:"Toon"},{MaterialType:"Lambert"},{MaterialType:"Phong"}],AmbientOcclusion:{$isset:!0}},name:"AmbientOcclusionAnisotropy",options:["1x","2x","4x","8x","16x"],type:"Attribute"},{label:"Clearcoat",type:"Separator",if:{MaterialType:"Physical"}},{datatype:"Float",defaultValue:0,displayName:"Intensity",maxValue:1,minValue:0,name:"ClearcoatLevel",type:"Attribute",widget:"Slider",if:{MaterialType:"Physical"}},{displayName:"Clearcoat map",linkableTypes:["Image"],type:"Link",usageAs:"Clearcoat",if:{MaterialType:"Physical"}},{datatype:"Enum",defaultValue:"Repeat",displayName:"Horiz. wrapping",if:{MaterialType:"Physical",Clearcoat:{$isset:!0}},name:"ClearcoatWrapS",options:["Repeat","Clamp to edge","Mirrored repeat"],type:"Attribute"},{datatype:"Enum",defaultValue:"Repeat",displayName:"Vert. wrapping",if:{MaterialType:"Physical",Clearcoat:{$isset:!0}},name:"ClearcoatWrapT",options:["Repeat","Clamp to edge","Mirrored repeat"],type:"Attribute"},{datatype:"Enum",defaultValue:"Linear",displayName:"Mag filter",if:{MaterialType:"Physical",Clearcoat:{$isset:!0}},name:"ClearcoatMagFilter",options:["Linear","Nearest"],type:"Attribute"},{datatype:"Enum",defaultValue:"Linear, Mipmap linear",displayName:"Min Filter",if:{MaterialType:"Physical",Clearcoat:{$isset:!0}},name:"ClearcoatMinFilter",options:["Nearest","Nearest, Mipmap nearest","Nearest, Mipmap linear","Linear","Linear, Mipmap nearest","Linear, Mipmap linear"],type:"Attribute"},{datatype:"Enum",defaultValue:"1x",displayName:"Anisotropy",if:{MaterialType:"Physical",Clearcoat:{$isset:!0}},name:"ClearcoatAnisotropy",options:["1x","2x","4x","8x","16x"],type:"Attribute"},{displayName:"Normal map",linkableTypes:["Image"],type:"Link",usageAs:"ClearcoatNormalMap",if:{MaterialType:"Physical"}},{datatype:"Vector2d",defaultValue:{x:1,y:1},displayName:"Normal scale",if:{MaterialType:"Physical",ClearcoatNormalMap:{$isset:!0}},maxValue:10,minValue:0,name:"ClearcoatNormalScale2d",type:"Attribute",widget:"Slider"},{datatype:"Enum",defaultValue:"Repeat",displayName:"Normal H-wrapping",if:{MaterialType:"Physical",ClearcoatNormalMap:{$isset:!0}},name:"ClearcoatNormalWrapS",options:["Repeat","Clamp to edge","Mirrored repeat"],type:"Attribute"},{datatype:"Enum",defaultValue:"Repeat",displayName:"Normal V-wrapping",if:{MaterialType:"Physical",ClearcoatNormalMap:{$isset:!0}},name:"ClearcoatNormalWrapT",options:["Repeat","Clamp to edge","Mirrored repeat"],type:"Attribute"},{datatype:"Enum",defaultValue:"Linear",displayName:"Normal mag filter",if:{MaterialType:"Physical",ClearcoatNormalMap:{$isset:!0}},name:"ClearcoatNormalMagFilter",options:["Linear","Nearest"],type:"Attribute"},{datatype:"Enum",defaultValue:"Linear, Mipmap linear",displayName:"Normal min Filter",if:{MaterialType:"Physical",ClearcoatNormalMap:{$isset:!0}},name:"ClearcoatNormalMinFilter",options:["Nearest","Nearest, Mipmap nearest","Nearest, Mipmap linear","Linear","Linear, Mipmap nearest","Linear, Mipmap linear"],type:"Attribute"},{datatype:"Enum",defaultValue:"1x",displayName:"Normal Anisotropy",if:{MaterialType:"Physical",ClearcoatNormalMap:{$isset:!0}},name:"ClearcoatNormalAnisotropy",options:["1x","2x","4x","8x","16x"],type:"Attribute"},{datatype:"Float",defaultValue:0,displayName:"Roughness intensity",maxValue:1,minValue:0,name:"ClearcoatRoughness",type:"Attribute",widget:"Slider",if:{MaterialType:"Physical"}},{displayName:"Roughness map",linkableTypes:["Image"],type:"Link",usageAs:"ClearcoatRoughnessMap"},{datatype:"Enum",defaultValue:"Repeat",displayName:"Roughness H-wrapping",if:{MaterialType:"Physical",ClearcoatRoughnessMap:{$isset:!0}},name:"ClearcoatRoughnessWrapS",options:["Repeat","Clamp to edge","Mirrored repeat"],type:"Attribute"},{datatype:"Enum",defaultValue:"Repeat",displayName:"Roughness V-wrapping",if:{MaterialType:"Physical",ClearcoatRoughnessMap:{$isset:!0}},name:"ClearcoatRoughnessWrapT",options:["Repeat","Clamp to edge","Mirrored repeat"],type:"Attribute"},{datatype:"Enum",defaultValue:"Linear",displayName:"Roughness mag filter",if:{MaterialType:"Physical",ClearcoatRoughnessMap:{$isset:!0}},name:"ClearcoatRoughnessMagFilter",options:["Linear","Nearest"],type:"Attribute"},{datatype:"Enum",defaultValue:"Linear, Mipmap linear",displayName:"Roughness min Filter",if:{MaterialType:"Physical",ClearcoatRoughnessMap:{$isset:!0}},name:"ClearcoatRoughnessMinFilter",options:["Nearest","Nearest, Mipmap nearest","Nearest, Mipmap linear","Linear","Linear, Mipmap nearest","Linear, Mipmap linear"],type:"Attribute"},{datatype:"Enum",defaultValue:"1x",displayName:"Roughness Anisotropy",if:{MaterialType:"Physical",ClearcoatRoughnessMap:{$isset:!0}},name:"ClearcoatRoughnessAnisotropy",options:["1x","2x","4x","8x","16x"],type:"Attribute"},{label:"Reflections and Refractions",type:"Separator",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Basic"},{MaterialType:"Lambert"},{MaterialType:"Phong"}]}},{datatype:"Float",defaultValue:.98,displayName:"Refraction ratio",if:{$or:[{MaterialType:"Basic"},{MaterialType:"Lambert"},{MaterialType:"Phong"}]},minValue:0,maxValue:1,name:"RefractionRatio",type:"Attribute"},{datatype:"Float",defaultValue:.5,displayName:"Reflectivity",maxValue:1,minValue:0,name:"Reflectivity",type:"Attribute",widget:"Slider",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Basic"},{MaterialType:"Lambert"},{MaterialType:"Phong"}]}},{datatype:"Float",defaultValue:1.5,displayName:"Index of refraction",maxValue:2.333,minValue:1,name:"IndexOfRefraction",type:"Attribute",widget:"Slider",if:{MaterialType:"Physical"}},{label:"Environment",type:"Separator",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Basic"},{MaterialType:"Lambert"},{MaterialType:"Phong"}]}},{displayName:"Environment map",linkableTypes:["HDR Image"],type:"Link",usageAs:"Environment",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Basic"},{MaterialType:"Lambert"},{MaterialType:"Phong"}]}},{datatype:"Float",defaultValue:1,displayName:"Intensity",if:{$or:[{MaterialType:"Physical"}],Environment:{$isset:!0}},maxValue:10,minValue:0,name:"EnvironmentIntensity",type:"Attribute",widget:"Slider"},{datatype:"Enum",defaultValue:"Multiply",info:"How to combine the result of the surface's color with the environment map, if any. If mix is chosen, the .reflectivity is used to blend between the two colors.",displayName:"Surface combination",name:"SurfaceEnvironmentCombination",options:["Multiply","Mix","Add"],type:"Attribute",if:{$or:[{MaterialType:"Lambert"},{MaterialType:"Basic"},{MaterialType:"Phong"}]}},{label:"Thickness",type:"Separator",if:{MaterialType:"Physical"}},{datatype:"Float",defaultValue:0,displayName:"Thickness",minValue:0,name:"Thickness",type:"Attribute",if:{MaterialType:"Physical"}},{displayName:"Thickness map",linkableTypes:["Image"],type:"Link",usageAs:"ThicknessMap",if:{MaterialType:"Physical"}},{datatype:"Enum",defaultValue:"Repeat",displayName:"Horiz. wrapping",if:{MaterialType:"Physical",ThicknessMap:{$isset:!0}},name:"ThicknessWrapS",options:["Repeat","Clamp to edge","Mirrored repeat"],type:"Attribute"},{datatype:"Enum",defaultValue:"Repeat",displayName:"Vert. wrapping",if:{MaterialType:"Physical",ThicknessMap:{$isset:!0}},name:"ThicknessWrapT",options:["Repeat","Clamp to edge","Mirrored repeat"],type:"Attribute"},{datatype:"Enum",defaultValue:"Linear",displayName:"Mag filter",if:{MaterialType:"Physical",ThicknessMap:{$isset:!0}},name:"ThicknessMagFilter",options:["Linear","Nearest"],type:"Attribute"},{datatype:"Enum",defaultValue:"Linear, Mipmap linear",displayName:"Min Filter",if:{MaterialType:"Physical",ThicknessMap:{$isset:!0}},name:"ThicknessMinFilter",options:["Nearest","Nearest, Mipmap nearest","Nearest, Mipmap linear","Linear","Linear, Mipmap nearest","Linear, Mipmap linear"],type:"Attribute"},{datatype:"Enum",defaultValue:"1x",displayName:"Anisotropy",if:{MaterialType:"Physical",ThicknessMap:{$isset:!0}},name:"ThicknessAnisotropy",options:["1x","2x","4x","8x","16x"],type:"Attribute"},{label:"Displacement",type:"Separator",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Normal"},{MaterialType:"Toon"},{MaterialType:"Matcap"},{MaterialType:"Lambert"},{MaterialType:"Phong"}]}},{displayName:"Displacement map",linkableTypes:["Image"],type:"Link",usageAs:"Displacement",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Normal"},{MaterialType:"Toon"},{MaterialType:"Matcap"},{MaterialType:"Lambert"},{MaterialType:"Phong"}]}},{datatype:"Float",defaultValue:.1,displayName:"Scale",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Normal"},{MaterialType:"Toon"},{MaterialType:"Matcap"},{MaterialType:"Lambert"},{MaterialType:"Phong"}],Displacement:{$isset:!0}},maxValue:10,minValue:0,name:"DisplacementScale",type:"Attribute",widget:"Slider"},{datatype:"Float",defaultValue:0,displayName:"Bias",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Normal"},{MaterialType:"Toon"},{MaterialType:"Matcap"},{MaterialType:"Lambert"},{MaterialType:"Phong"}],Displacement:{$isset:!0}},name:"DisplacementBias",type:"Attribute"},{datatype:"Enum",defaultValue:"Repeat",displayName:"Horiz. wrapping",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Normal"},{MaterialType:"Toon"},{MaterialType:"Matcap"},{MaterialType:"Lambert"},{MaterialType:"Phong"}],Displacement:{$isset:!0}},name:"DisplacementWrapS",options:["Repeat","Clamp to edge","Mirrored repeat"],type:"Attribute"},{datatype:"Enum",defaultValue:"Repeat",displayName:"Vert. wrapping",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Normal"},{MaterialType:"Toon"},{MaterialType:"Matcap"},{MaterialType:"Lambert"},{MaterialType:"Phong"}],Displacement:{$isset:!0}},name:"DisplacementWrapT",options:["Repeat","Clamp to edge","Mirrored repeat"],type:"Attribute"},{datatype:"Enum",defaultValue:"Linear",displayName:"Mag filter",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Normal"},{MaterialType:"Toon"},{MaterialType:"Matcap"},{MaterialType:"Lambert"},{MaterialType:"Phong"}],Displacement:{$isset:!0}},name:"DisplacementMagFilter",options:["Linear","Nearest"],type:"Attribute"},{datatype:"Enum",defaultValue:"Linear, Mipmap linear",displayName:"Min Filter",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Normal"},{MaterialType:"Toon"},{MaterialType:"Matcap"},{MaterialType:"Lambert"},{MaterialType:"Phong"}],Displacement:{$isset:!0}},name:"DisplacementMinFilter",options:["Nearest","Nearest, Mipmap nearest","Nearest, Mipmap linear","Linear","Linear, Mipmap nearest","Linear, Mipmap linear"],type:"Attribute"},{datatype:"Enum",defaultValue:"1x",displayName:"Anisotropy",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Normal"},{MaterialType:"Toon"},{MaterialType:"Matcap"},{MaterialType:"Lambert"},{MaterialType:"Phong"}],Displacement:{$isset:!0}},name:"DisplacementAnisotropy",options:["1x","2x","4x","8x","16x"],type:"Attribute"},{label:"Lightmaps",type:"Separator",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Basic"},{MaterialType:"Toon"},{MaterialType:"Lambert"},{MaterialType:"Phong"}]}},{displayName:"Light map",linkableTypes:["Image"],type:"Link",usageAs:"LightMap",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Basic"},{MaterialType:"Toon"},{MaterialType:"Lambert"},{MaterialType:"Phong"}]}},{datatype:"Float",defaultValue:1,displayName:"Intensity",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Basic"},{MaterialType:"Toon"},{MaterialType:"Lambert"},{MaterialType:"Phong"}],LightMap:{$isset:!0}},maxValue:100,minValue:0,name:"LightMapIntensity",type:"Attribute",widget:"Slider"},{datatype:"Enum",defaultValue:"Repeat",displayName:"Horiz. wrapping",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Basic"},{MaterialType:"Toon"},{MaterialType:"Lambert"},{MaterialType:"Phong"}],LightMap:{$isset:!0}},name:"LightMapWrapS",options:["Repeat","Clamp to edge","Mirrored repeat"],type:"Attribute"},{datatype:"Enum",defaultValue:"Repeat",displayName:"Vert. wrapping",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Basic"},{MaterialType:"Toon"},{MaterialType:"Lambert"},{MaterialType:"Phong"}],LightMap:{$isset:!0}},name:"LightMapWrapT",options:["Repeat","Clamp to edge","Mirrored repeat"],type:"Attribute"},{datatype:"Enum",defaultValue:"Linear",displayName:"Mag filter",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Basic"},{MaterialType:"Toon"},{MaterialType:"Lambert"},{MaterialType:"Phong"}],LightMap:{$isset:!0}},name:"LightMapMagFilter",options:["Linear","Nearest"],type:"Attribute"},{datatype:"Enum",defaultValue:"Linear, Mipmap linear",displayName:"Min Filter",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Basic"},{MaterialType:"Toon"},{MaterialType:"Lambert"},{MaterialType:"Phong"}],LightMap:{$isset:!0}},name:"LightMapMinFilter",options:["Nearest","Nearest, Mipmap nearest","Nearest, Mipmap linear","Linear","Linear, Mipmap nearest","Linear, Mipmap linear"],type:"Attribute"},{datatype:"Enum",defaultValue:"1x",displayName:"Anisotropy",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Basic"},{MaterialType:"Toon"},{MaterialType:"Lambert"},{MaterialType:"Phong"}],LightMap:{$isset:!0}},name:"LightMapAnisotropy",options:["1x","2x","4x","8x","16x"],type:"Attribute"},{label:"Specular map options",type:"Separator",if:{$or:[{MaterialType:"Basic"},{MaterialType:"Lambert"},{MaterialType:"Phong"}]}},{datatype:"Float",defaultValue:30,displayName:"Shininess",minValue:0,name:"Shininess",type:"Attribute",widget:"Slider",if:{$or:[{MaterialType:"Phong"}]}},{datatype:"Color",defaultValue:{a:255,b:255,g:255,r:255},if:{MaterialType:"Phong"},displayName:"Specular color",name:"SpecularColor",type:"Attribute"},{displayName:"Specular map",linkableTypes:["Image"],if:{$or:[{MaterialType:"Basic"},{MaterialType:"Lambert"},{MaterialType:"Phong"}]},type:"Link",usageAs:"SpecularMap"},{datatype:"Enum",defaultValue:"Repeat",displayName:"Horiz. wrapping",if:{$or:[{MaterialType:"Basic"},{MaterialType:"Lambert"},{MaterialType:"Phong"}],SpecularMap:{$isset:!0}},name:"SpecularWrapS",options:["Repeat","Clamp to edge","Mirrored repeat"],type:"Attribute"},{datatype:"Enum",defaultValue:"Repeat",displayName:"Vert. wrapping",if:{$or:[{MaterialType:"Basic"},{MaterialType:"Lambert"},{MaterialType:"Phong"}],SpecularMap:{$isset:!0}},name:"SpecularWrapT",options:["Repeat","Clamp to edge","Mirrored repeat"],type:"Attribute"},{datatype:"Enum",defaultValue:"Linear",displayName:"Mag filter",if:{$or:[{MaterialType:"Basic"},{MaterialType:"Lambert"},{MaterialType:"Phong"}],SpecularMap:{$isset:!0}},name:"SpecularMagFilter",options:["Linear","Nearest"],type:"Attribute"},{datatype:"Enum",defaultValue:"Linear, Mipmap linear",displayName:"Min Filter",if:{$or:[{MaterialType:"Basic"},{MaterialType:"Lambert"},{MaterialType:"Phong"}],SpecularMap:{$isset:!0}},name:"SpecularMinFilter",options:["Nearest","Nearest, Mipmap nearest","Nearest, Mipmap linear","Linear","Linear, Mipmap nearest","Linear, Mipmap linear"],type:"Attribute"},{datatype:"Enum",defaultValue:"1x",displayName:"Anisotropy",if:{$or:[{MaterialType:"Basic"},{MaterialType:"Lambert"},{MaterialType:"Phong"}],SpecularMap:{$isset:!0}},name:"SpecularAnisotropy",options:["1x","2x","4x","8x","16x"],type:"Attribute"},{label:"Transmission",type:"Separator",if:{MaterialType:"Physical"}},{datatype:"Float",defaultValue:0,displayName:"Intensity",maxValue:1,minValue:0,name:"Transmission",type:"Attribute",widget:"Slider",if:{MaterialType:"Physical"}},{displayName:"Transmission map",linkableTypes:["Image"],type:"Link",usageAs:"TransmissionMap",if:{MaterialType:"Physical"}},{datatype:"Enum",defaultValue:"Repeat",displayName:"Horiz. wrapping",if:{MaterialType:"Physical",TransmissionMap:{$isset:!0}},name:"TransmissionWrapS",options:["Repeat","Clamp to edge","Mirrored repeat"],type:"Attribute"},{datatype:"Enum",defaultValue:"Repeat",displayName:"Vert. wrapping",if:{MaterialType:"Physical",TransmissionMap:{$isset:!0}},name:"TransmissionWrapT",options:["Repeat","Clamp to edge","Mirrored repeat"],type:"Attribute"},{datatype:"Enum",defaultValue:"Linear",displayName:"Mag filter",if:{MaterialType:"Physical",TransmissionMap:{$isset:!0}},name:"TransmissionMagFilter",options:["Linear","Nearest"],type:"Attribute"},{datatype:"Enum",defaultValue:"Linear, Mipmap linear",displayName:"Min Filter",if:{MaterialType:"Physical",TransmissionMap:{$isset:!0}},name:"TransmissionMinFilter",options:["Nearest","Nearest, Mipmap nearest","Nearest, Mipmap linear","Linear","Linear, Mipmap nearest","Linear, Mipmap linear"],type:"Attribute"},{datatype:"Enum",defaultValue:"1x",displayName:"Anisotropy",if:{MaterialType:"Physical",TransmissionMap:{$isset:!0}},name:"TransmissionAnisotropy",options:["1x","2x","4x","8x","16x"],type:"Attribute"},{label:"Blending",type:"Separator"},{datatype:"Enum",defaultValue:"Normal",displayName:"Mode",name:"Blending",options:["None","Normal","Additive","Subtractive","Multiply","Custom"],type:"Attribute"},{datatype:"Enum",defaultValue:"Source alpha",displayName:"Source",name:"BlendSrc",options:["Zero","One","Source color","One minus source color","Source alpha","One minus source alpha","Destination alpha","One minus destination alpha","Destination color","One minus destination color","Source alpha saturate"],type:"Attribute",if:{Blending:"Custom"}},{datatype:"Enum",defaultValue:"One minus source alpha",displayName:"Destination",name:"BlendDest",options:["Zero","One","Source color","One minus source color","Source alpha","One minus source alpha","Destination alpha","One minus destination alpha","Destination color","One minus destination color"],type:"Attribute",if:{Blending:"Custom"}},{datatype:"Enum",defaultValue:"Add",displayName:"Equation",name:"BlendEquation",options:["Add","Subtract","Reverse subtract","Min","Max"],type:"Attribute",if:{Blending:"Custom"}},{label:"Depth test",type:"Separator"},{datatype:"Boolean",defaultValue:!0,displayName:"Active",name:"DepthTest",type:"Attribute"},{datatype:"Boolean",defaultValue:!0,displayName:"Write",if:{DepthTest:!0},name:"DepthWrite",type:"Attribute"},{datatype:"Enum",defaultValue:"Less/equal",displayName:"Mode",if:{DepthTest:!0},name:"DepthMode",options:["Never","Always","Less","Less/equal","Greater/equal","Greater","Not equal"],type:"Attribute"},{label:"Culling",type:"Separator"},{datatype:"Enum",defaultValue:"Back",displayName:"Mode",name:"Culling",options:["Front","Back","Off"],type:"Attribute"},{label:"Flat shading",type:"Separator",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Normal"},{MaterialType:"Matcap"},{MaterialType:"Lambert"},{MaterialType:"Phong"}]}},{datatype:"Boolean",defaultValue:!1,displayName:"Active",name:"FlatShading",type:"Attribute",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Normal"},{MaterialType:"Matcap"},{MaterialType:"Lambert"},{MaterialType:"Phong"}]}},{label:"Wireframe",type:"Separator",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Basic"},{MaterialType:"Normal"},{MaterialType:"Toon"},{MaterialType:"Shader"},{MaterialType:"Lambert"},{MaterialType:"Phong"}]}},{datatype:"Boolean",defaultValue:!1,displayName:"Wireframe",name:"Wireframe",type:"Attribute",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Basic"},{MaterialType:"Normal"},{MaterialType:"Toon"},{MaterialType:"Shader"},{MaterialType:"Lambert"},{MaterialType:"Phong"}]}}],name:"Material",updateRequiresThumbRefresh:!0,creatableEmpty:!0},{_id:{$oid:"5e6a1ad189707feef9173394"},contentTypes:["model/obj","model/gltf-binary","model/vnd.usdz+zip","model/draco","model/ply","model/fbx"],fieldSets:[],fields:[{linkableTypes:["Material"],type:"Link",usageAs:"Material"},{doesNotAffectThumbnail:!0,linkableTypes:["Mesh"],loadingManager:"ignore",preload:!1,type:"Link",usageAs:"USDZ"},{doesNotAffectThumbnail:!0,linkableTypes:["Mesh"],loadingManager:"ignore",preload:!1,type:"Link",usageAs:"GLB"},{datatype:"Vector3d",defaultValue:{x:0,y:0,z:0},name:"Pivot",type:"Attribute"},{datatype:"Transform",defaultValue:{position:{x:0,y:0,z:0},rotation:{w:1,x:0,y:0,z:0},scale:{x:1,y:1,z:1}},name:"DefaultTransform",displayName:"Default transform",type:"Attribute"}],name:"Mesh",updateRequiresThumbRefresh:!0,creatableEmpty:!1},{_id:{$oid:"5e6a1ad189707feef9173396"},contentTypes:[""],fields:[{label:"Camera & Composition",type:"Separator"},{datatype:"Enum",defaultValue:"Automatic user controllable camera",displayName:"Camera mode",info:"Camera to render during playback. The main camera is the one with the 'mainCamera' Tag or if only one camera exists, that is the one. Composer setting will render whatever the composition defines.",name:"CameraMode",options:["Automatic user controllable camera","Main camera","Composer"],type:"Attribute"},{linkableTypes:["Composition"],type:"Link",if:{CameraMode:"Composer"},usageAs:"Composition",mandatory:!0},{label:"Environment & Background",type:"Separator"},{datatype:"Enum",defaultValue:"None",displayName:"Background mode",name:"BackgroundMode",options:["None","Color","Image","Environment map","Shader"],type:"Attribute"},{datatype:"Float",defaultValue:0,displayName:"Background blurriness",if:{BackgroundMode:"Environment map"},maxValue:1,minValue:0,name:"BackgroundBlurriness",type:"Attribute",widget:"Slider"},{datatype:"Float",defaultValue:1,displayName:"Background intensity",if:{$or:[{BackgroundMode:"Image"},{BackgroundMode:"Environment map"}]},maxValue:10,minValue:0,name:"BackgroundIntensity",type:"Attribute",widget:"Slider"},{displayName:"Background shader",if:{BackgroundMode:"Shader"},linkableTypes:["Background Shader"],type:"Link",usageAs:"BackgroundShader",mandatory:!0},{displayName:"Background image",if:{BackgroundMode:"Image"},linkableTypes:["Image"],type:"Link",usageAs:"Background",mandatory:!0},{datatype:"Color",defaultValue:{a:255,b:255,g:255,r:255},displayName:"Background color",if:{BackgroundMode:"Color"},name:"BackgroundColor",type:"Attribute"},{displayName:"Environment map",linkableTypes:["HDR Image"],type:"Link",usageAs:"Environment"},{datatype:"Float",defaultValue:1,displayName:"Environment intensity",maxValue:10,minValue:0,name:"EnvironmentIntensity",type:"Attribute",widget:"Slider"},{datatype:"Color",defaultValue:{a:255,b:0,g:0,r:0},displayName:"Clear color",name:"ClearColor",type:"Attribute"},{label:"Rendering",type:"Separator",collapsed:!0},{datatype:"Enum",defaultValue:"Forward renderer",displayName:"Renderer",info:"Choose renderer to use. The path tracer is currently in experimental stage and will not support all material features",name:"Renderer",options:["Forward renderer","Path tracer"],if:{$featureenabled:"path_tracer"},type:"Attribute"},{datatype:"Enum",defaultValue:"ACESFilmic",name:"Tonemapping",options:["None","Linear","Reinhard","Cineon","ACESFilmic"],type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"Tonemapping exposure",minValue:0,name:"TonemappingExposure",type:"Attribute"},{datatype:"Enum",defaultValue:"Linear",displayName:"Output encoding",name:"OutputEncoding",options:["Linear","sRGB"],type:"Attribute"},{datatype:"Enum",defaultValue:"PCF Shadow Map",displayName:"Shadow type",name:"ShadowType",options:["Basic Shadow Map","PCF Shadow Map","VSM Shadow Map"],type:"Attribute"},{label:"Fog",type:"Separator",collapsed:!0},{datatype:"Boolean",defaultValue:!1,displayName:"Enabled",name:"FogEnabled",type:"Attribute"},{datatype:"Color",defaultValue:{a:255,b:255,g:255,r:255},displayName:"Color",if:{FogEnabled:!0},name:"FogColor",type:"Attribute"},{datatype:"Float",defaultValue:0,displayName:"Near distance",if:{FogEnabled:!0},info:"The camera distance where fog starts to have effect",minValue:0,name:"FogNear",type:"Attribute"},{datatype:"Float",defaultValue:100,displayName:"Far distance",if:{FogEnabled:!0},info:"The camera distance where fog reaches maximum density",minValue:0,name:"FogFar",type:"Attribute"},{collapsed:!0,label:"Downloadables",type:"Separator",if:{$featureenabled:"scene_downloadables"}},{doesNotAffectThumbnail:!0,linkableTypes:["Mesh"],loadingManager:"ignore",preload:!1,type:"Link",usageAs:"USDZ",if:{$featureenabled:"scene_downloadables"}},{doesNotAffectThumbnail:!0,linkableTypes:["Mesh"],loadingManager:"ignore",preload:!1,type:"Link",usageAs:"GLB",if:{$featureenabled:"scene_downloadables"}}],name:"Scene",updateRequiresThumbRefresh:!0,inherits:"Prefab",creatableEmpty:!0},{_id:{$oid:"5e6a1ad189707fcef4252336"},contentTypes:[""],fieldSets:[{fields:[{label:"3D Object",type:"Separator"},{datatype:"Boolean",defaultValue:!0,displayName:"Active",info:"Indicates if the 3D object is currently active or inactive. When set to true, the object is active.",name:"Active",type:"Attribute"},{datatype:"Boolean",defaultValue:!1,displayName:"Static",info:"A Boolean attribute indicating whether the 3D object is static or not. Static objects can and will never be transformed during runtime.",name:"Static",type:"Attribute"},{datatype:"String",defaultValue:"",displayName:"Name",info:"Specifies the name of the 3D object. This is used for identification and reference in the scene.",name:"Name",type:"Attribute"},{datatype:"Transform",defaultValue:{position:{x:0,y:0,z:0},rotation:{w:1,x:0,y:0,z:0},scale:{x:1,y:1,z:1}},info:"Describes the object's transformation attributes including its position, rotation, and scale in the 3D space.",name:"Transform",type:"Attribute"},{type:"Label",text:"Changing scale in transforms for physics enabled objects is not recommended. Not all objects fully support it. Keep it at least uniform!",labelType:"warning",if:{"PhysicsEnabled?":!0,$or:[{"Transform.scale.x":{$not:1}},{"Transform.scale.y":{$not:1}},{"Transform.scale.z":{$not:1}}]}},{datatype:"Layers",defaultValue:[0],info:"Defines the layers that the 3D object is part of. Layers are used for managing object interactions and visibility in the scene.",name:"Layers",type:"Attribute"},{datatype:"Tags",defaultValue:[],info:"Lists tags associated with the 3D object. Tags are useful for categorizing and searching objects in the scene.",name:"Tags",type:"Attribute"},{datatype:"Boolean",defaultValue:!1,displayName:"Receive shadow",info:"Determines whether the object can receive shadows from other objects. Set to true if the object should display shadows cast upon it.",name:"ReceiveShadow",type:"Attribute"},{datatype:"Boolean",defaultValue:!1,displayName:"Cast shadow",info:"Controls whether the object casts shadows in the presence of light sources. Set to true to enable shadow casting from this object.",name:"CastShadow",type:"Attribute"}],name:"3dObjectDefault"},{fields:[{label:"3D Object",type:"Separator"},{datatype:"Boolean",defaultValue:!0,displayName:"Active",info:"A Boolean attribute indicating whether the 3D object is active or not. When set to true, the object is considered active in the scene.",name:"Active",type:"Attribute"},{datatype:"Boolean",defaultValue:!1,displayName:"Static",info:"A Boolean attribute indicating whether the 3D object is static or not. Static objects can and will never be transformed during runtime.",name:"Static",type:"Attribute"},{datatype:"String",defaultValue:"",displayName:"Name",info:"A string attribute representing the name of the 3D object. It is used to identify and reference the object within the scene.",name:"Name",type:"Attribute"},{datatype:"Transform",defaultValue:{position:{x:0,y:0,z:0},rotation:{w:1,x:0,y:0,z:0},scale:{x:1,y:1,z:1}},info:"Specifies the transformation properties of the 3D object, including its position, rotation, and scale in the scene.",name:"Transform",type:"Attribute"},{datatype:"Layers",defaultValue:[0],info:"Determines the layers the 3D object belongs to. Layers are used to organize objects in the scene for various purposes like rendering and interaction.",name:"Layers",type:"Attribute"},{datatype:"Tags",defaultValue:[],info:"A list of tags associated with the 3D object. Tags are used for categorizing and identifying objects for scripting and scene management.",name:"Tags",type:"Attribute"}],name:"3dObjectNoShadows"},{fields:[{label:"Physics",type:"Separator"},{datatype:"Boolean",defaultValue:!1,displayName:"Physics enabled",info:"A Boolean attribute that determines whether physics properties are applied to the object. Disabling it turns off physics calculations.",name:"PhysicsEnabled",type:"Attribute"},{datatype:"Enum",defaultValue:"Rigid body",displayName:"Body type",if:{PhysicsEnabled:!0},name:"BodyType",options:["Rigid body","Soft body","Ghost object"],type:"Attribute"},{datatype:"Boolean",defaultValue:!1,displayName:"Separate subobjects",if:{BodyType:"Rigid body",PhysicsEnabled:!0},info:"When adding all subobjects of the mesh separately, they will all act individually. We lose however also the possibility to control and watch them as a single object. The configured mass will be distributed among all subobjects",name:"SeparateSubobjects",type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"Mass",if:{BodyType:{$not:"Ghost object"},PhysicsEnabled:!0},info:"Specifies the mass of the object as a float value. The mass must be a non-negative value.",minValue:0,name:"Mass",type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"Pressure",if:{BodyType:"Soft body",PhysicsEnabled:!0},info:"Specifies the pressure of the soft body as a float value. The pressure must be a non-negative value.",minValue:0,name:"Pressure",type:"Attribute"},{datatype:"Float",defaultValue:.01,displayName:"Damping",if:{BodyType:"Soft body",PhysicsEnabled:!0},info:"Specifies the damping of the soft body.",minValue:0,name:"Damping",type:"Attribute"},{datatype:"Float",defaultValue:.04,displayName:"Margin",if:{BodyType:{$not:"Ghost object"},PhysicsEnabled:!0},info:"Defines the margin of the object for physics calculations as a float value. The margin is a non-negative value.",minValue:0,name:"Margin",type:"Attribute"},{datatype:"Float",defaultValue:.1,displayName:"Restitution",if:{BodyType:{$not:"Ghost object"},PhysicsEnabled:!0},info:"Determines the restitution (bounciness) of the object. It's a float value affecting how the object bounces upon impact.",name:"Restitution",type:"Attribute"},{datatype:"Float",defaultValue:.1,displayName:"Friction",if:{BodyType:{$not:"Ghost object"},PhysicsEnabled:!0},info:"Sets the friction coefficient of the object. It's a float value, affecting how the object slides against other surfaces.",name:"Friction",type:"Attribute"},{datatype:"Float",defaultValue:.1,displayName:"Spinning friction",if:{BodyType:{$not:"Ghost object"},PhysicsEnabled:!0},info:"Defines the spinning friction of the object as a float value, affecting the object's rotational resistance.",name:"SpinningFriction",type:"Attribute"},{datatype:"Float",defaultValue:.1,displayName:"Rolling friction",if:{BodyType:{$not:"Ghost object"},PhysicsEnabled:!0},info:"Specifies the rolling friction of the object. It's a float value that influences how the object rolls over surfaces.",name:"RollingFriction",type:"Attribute"},{datatype:"Float",defaultValue:0,displayName:"Linear damping",if:{BodyType:"Rigid body",PhysicsEnabled:!0},info:"Sets the linear damping.",name:"LinearDamping",type:"Attribute"},{datatype:"Float",defaultValue:0,displayName:"Angular damping",if:{BodyType:"Rigid body",PhysicsEnabled:!0},info:"Sets the angular damping.",name:"AngularDamping",type:"Attribute"},{datatype:"Vector3d",defaultValue:{x:1,y:1,z:1},displayName:"Linear factor",if:{BodyType:"Rigid body",PhysicsEnabled:!0},info:"A Vector3d value that defines the linear factor of the object in terms of x, y, and z axes, controlling how the object moves linearly.",name:"LinearFactor",type:"Attribute"},{datatype:"Vector3d",defaultValue:{x:0,y:0,z:0},displayName:"Linear velocity",if:{BodyType:"Rigid body",PhysicsEnabled:!0},info:"Defines the object's linear velocity using a Vector3d value, representing the velocity along the x, y, and z axes.",name:"LinearVelocity",type:"Attribute"},{datatype:"Vector3d",defaultValue:{x:1,y:1,z:1},displayName:"Angular factor",if:{BodyType:"Rigid body",PhysicsEnabled:!0},info:"A Vector3d attribute that specifies the angular factor of the object, influencing the object's rotation around each axis.",name:"AngularFactor",type:"Attribute"},{datatype:"Vector3d",defaultValue:{x:0,y:0,z:0},displayName:"Angular velocity",if:{BodyType:"Rigid body",PhysicsEnabled:!0},info:"Sets the angular velocity of the object using a Vector3d value, affecting the object's rotational speed.",name:"AngularVelocity",type:"Attribute"},{datatype:"Boolean",defaultValue:!1,displayName:"Is kinematic",if:{BodyType:"Rigid body",PhysicsEnabled:!0,SeparateSubobjects:!1},info:"A Boolean attribute that makes the object kinematic when true, meaning it will not be affected by physics but can still affect other objects.",name:"IsKinematic",type:"Attribute"},{datatype:"Boolean",defaultValue:!1,displayName:"Disable deactivation",if:{BodyType:{$not:"Ghost object"},PhysicsEnabled:!0,$or:[{IsKinematic:!1},{BodyType:"Soft body"}]},info:"When set to true, object will be simulated in physics forever. Otherwise it will be deactivated when not moving anymore",name:"DisableDeactivation",type:"Attribute"},{datatype:"Boolean",defaultValue:!1,displayName:"Watch collisions",if:{BodyType:{$not:"Ghost object"},PhysicsEnabled:!0,SeparateSubobjects:!1},info:"When set to true, enables monitoring of collisions involving the object.",name:"WatchCollisions",type:"Attribute"},{datatype:"Boolean",defaultValue:!1,displayName:"Report contact points",if:{BodyType:{$not:"Ghost object"},PhysicsEnabled:!0,SeparateSubobjects:!1},info:"If set to true, collision events will contain the exact contact points. Only enable if you really need it as it costs performance.",name:"ReportContactPoints",type:"Attribute"},{datatype:"Boolean",defaultValue:!0,displayName:"Filter potential collisions",if:{BodyType:{$not:"Ghost object"},PhysicsEnabled:!0,SeparateSubobjects:!1},info:"The physics engine might report collisions without contact points in cases where objects get close. Filter these out by setting this.",name:"FilterPotentialCollisions",type:"Attribute"},{datatype:"Boolean",defaultValue:!1,displayName:"Watch linear velocity",if:{BodyType:{$not:"Ghost object"},PhysicsEnabled:!0,SeparateSubobjects:!1},info:"Enables the tracking of changes in the object's linear velocity when set to true.",name:"WatchLinearVelocity",type:"Attribute"},{datatype:"Boolean",defaultValue:!1,displayName:"Watch angular velocity",if:{BodyType:{$not:"Ghost object"},PhysicsEnabled:!0,SeparateSubobjects:!1},info:"Allows for the monitoring of changes in the object's angular velocity when enabled.",name:"WatchAngularVelocity",type:"Attribute"},{if:{BodyType:{$not:"Soft body"},PhysicsEnabled:!0},label:"Collider",type:"Separator"},{datatype:"Enum",defaultValue:"Self",displayName:"Collider type",if:{BodyType:{$not:"Soft body"},PhysicsEnabled:!0},name:"ColliderType",options:["Self","Bounding Box","Bounding Sphere","Bounding Cylinder","Capsule","Convex Hull","Custom Mesh"],type:"Attribute"},{datatype:"Enum",defaultValue:"Derive from mesh",displayName:"Capsule size",if:{BodyType:{$not:"Soft body"},ColliderType:"Capsule",PhysicsEnabled:!0},name:"CapsuleSize",options:["Derive from mesh","Manual"],type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"Capsule height",if:{BodyType:{$not:"Soft body"},ColliderType:"Capsule",CapsuleSize:"Manual",PhysicsEnabled:!0},name:"CapsuleHeight",minValue:0,type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"Capsule radius",if:{BodyType:{$not:"Soft body"},ColliderType:"Capsule",CapsuleSize:"Manual",PhysicsEnabled:!0},name:"CapsuleRadius",minValue:0,type:"Attribute"},{displayName:"Collider mesh",if:{BodyType:{$not:"Soft body"},ColliderType:"Custom Mesh",PhysicsEnabled:!0},linkableTypes:["Mesh","Mesh Collection"],type:"Link",usageAs:"ColliderMesh",mandatory:!0},{datatype:"Enum",defaultValue:"",displayName:"Collection entry",if:{BodyType:{$not:"Soft body"},ColliderType:"Custom Mesh",PhysicsEnabled:!0,$optionsexist:!0},name:"ColliderMeshCollectionEntry",options:[],type:"Attribute"}],name:"Physics"},{fields:[{datatype:"Enum",defaultValue:"Single",displayName:"Source type",name:"SourceType",options:["Single","Collection"],type:"Attribute"},{displayName:"Audio item",if:{SourceType:"Single"},linkableTypes:["Audio"],type:"Link",usageAs:"AudioItem"},{displayName:"Audio collection",if:{SourceType:"Collection"},linkableTypes:["Audio Collection"],type:"Link",usageAs:"AudioCollectionItem"},{datatype:"Enum",defaultValue:"",displayName:"Collection entry",if:{SourceType:"Collection"},name:"AudioCollectionEntry",options:[],type:"Attribute"}],name:"AudioLink"},{fields:[{displayName:"Mesh item",linkableTypes:["Mesh","Mesh Collection"],type:"Link",usageAs:"Mesh",mandatory:!0},{datatype:"Enum",defaultValue:"",displayName:"Collection entry",if:{$optionsexist:!0},name:"MeshCollectionEntry",options:[],type:"Attribute"}],name:"MeshLink"}],fields:[{childTypes:[{fields:[{name:"3dObjectDefault",type:"FieldSet"},{label:"Mesh specific fields",type:"Separator"},{name:"MeshLink",type:"FieldSet"},{datatype:"Enum",defaultValue:"Pivot",name:"OriginMode",displayName:"Origin mode",if:{$or:[{MeshCollectionEntry:{$isset:!0}},{Mesh:{$isset:!0}}]},options:["Pivot","Center","Custom"],type:"Attribute"},{name:"CustomPivot",displayName:"Custom Pivot",type:"Attribute",datatype:"Vector3d",if:{OriginMode:"Custom"},defaultValue:{x:0,y:0,z:0}},{datatype:"Animations",defaultValue:[],displayName:"Animations",if:{$or:[{MeshCollectionEntry:{$isset:!0}},{Mesh:{$isset:!0}}]},name:"Animations",type:"Attribute"},{name:"Physics",type:"FieldSet"}],mainItemField:"Mesh",typeName:"Mesh"},{fields:[{name:"3dObjectDefault",type:"FieldSet"},{label:"ScriptedMesh specific fields",type:"Separator"},{displayName:"Material(s)",linkableTypes:["Material","Material Collection"],type:"Link",usageAs:"Materials"},{datatype:"Boolean",defaultValue:!1,displayName:"Indexed",info:"Indicates if the geometry buffer is indexed.",name:"Indexed",type:"Attribute"},{datatype:"Boolean",defaultValue:!0,displayName:"Have positions",info:"Add a position attribute to the mesh.",name:"HavePositions",type:"Attribute"},{datatype:"Boolean",defaultValue:!1,displayName:"Have normals",info:"Add a normal attribute to the mesh.",name:"HaveNormals",type:"Attribute"},{datatype:"Boolean",defaultValue:!1,displayName:"Have colors",info:"Add a color attribute to the mesh.",name:"HaveColors",type:"Attribute"},{datatype:"Boolean",defaultValue:!1,displayName:"Have UV Coords",info:"Add a UV texture coordinate attribute to the mesh.",name:"HaveUVs",type:"Attribute"},{name:"Physics",type:"FieldSet"}],typeName:"ScriptedMesh"},{fields:[{name:"3dObjectDefault",type:"FieldSet"},{label:"Splats specific fields",type:"Separator"},{linkableTypes:["Gaussian Splats"],type:"Link",usageAs:"Splats",mandatory:!0}],mainItemField:"Splats",typeName:"GaussianSplats"},{fields:[{name:"3dObjectDefault",type:"FieldSet"},{label:"Prefab specific fields",type:"Separator"},{linkableTypes:["Scene","Prefab"],type:"Link",usageAs:"Prefab",mandatory:!0}],mainItemField:"Prefab",typeName:"Prefab"},{fields:[{name:"3dObjectDefault",type:"FieldSet"},{label:"Points specific fields",type:"Separator"},{name:"MeshLink",type:"FieldSet"}],mainItemField:"Mesh",typeName:"Points"},{fields:[{name:"3dObjectNoShadows",type:"FieldSet"},{label:"Lightsource specific fields",type:"Separator"},{datatype:"Enum",defaultValue:"Point",name:"Type",options:["Point","Directional","Ambient","Hemisphere","Spot"],type:"Attribute"},{datatype:"Color",defaultValue:{a:255,b:255,g:255,r:255},name:"Color",type:"Attribute"},{datatype:"Color",defaultValue:{a:255,b:64,g:64,r:64},displayName:"Ground color (Hemisphere)",if:{Type:"Hemisphere"},name:"GroundColor",type:"Attribute"},{datatype:"Float",defaultValue:10,minValue:0,name:"Intensity",type:"Attribute"},{datatype:"Float",defaultValue:100,if:{$or:[{Type:"Spot"},{Type:"Point"}]},minValue:0,name:"Distance",type:"Attribute"},{datatype:"Float",defaultValue:2,if:{$or:[{Type:"Spot"},{Type:"Point"}]},minValue:1,name:"Decay",type:"Attribute"},{datatype:"Float",defaultValue:.5,displayName:"Angle",if:{Type:"Spot"},maxValue:1.57,minValue:0,name:"Angle",type:"Attribute"},{datatype:"Float",defaultValue:0,displayName:"Penumbra",if:{Type:"Spot"},maxValue:1,minValue:0,name:"Penumbra",type:"Attribute"},{datatype:"Node",defaultValue:null,displayName:"Target",if:{$or:[{Type:"Spot"},{Type:"Directional"}]},name:"Target",type:"Attribute"},{datatype:"Boolean",defaultValue:!1,displayName:"Cast shadows",name:"CastShadows",type:"Attribute",if:{$or:[{Type:"Point"},{Type:"Directional"},{Type:"Spot"}]}},{datatype:"Float",defaultValue:0,displayName:"Shadow bias",if:{CastShadows:!0,$or:[{Type:"Point"},{Type:"Directional"},{Type:"Spot"}]},maxValue:1,minValue:-1,name:"ShadowBias",type:"Attribute",widget:"Slider"},{datatype:"Enum",defaultValue:512,displayName:"Shadow size",if:{CastShadows:!0,$or:[{Type:"Point"},{Type:"Directional"},{Type:"Spot"}]},name:"ShadowSize",options:[128,256,512,1024,2048],type:"Attribute"},{datatype:"Float",defaultValue:.5,displayName:"Shadow camera near",if:{CastShadows:!0,$or:[{Type:"Point"},{Type:"Directional"},{Type:"Spot"}]},minValue:0,name:"ShadowCameraNear",type:"Attribute"},{datatype:"Float",defaultValue:500,displayName:"Shadow camera far",if:{CastShadows:!0,$or:[{Type:"Point"},{Type:"Directional"},{Type:"Spot"}]},minValue:0,name:"ShadowCameraFar",type:"Attribute"},{datatype:"Float",defaultValue:10,displayName:"Shadow area width",if:{CastShadows:!0,Type:"Directional"},minValue:1,name:"ShadowAreaWidth",type:"Attribute"},{datatype:"Float",defaultValue:10,displayName:"Shadow area height",if:{CastShadows:!0,Type:"Directional"},minValue:1,name:"ShadowAreaHeight",type:"Attribute"},{datatype:"Float",defaultValue:4,displayName:"Shadow radius",minValue:0,name:"ShadowRadius",type:"Attribute",if:{CastShadows:!0,$or:[{Type:"Point"},{Type:"Directional"},{Type:"Spot"}]}},{datatype:"Integer",defaultValue:8,displayName:"VSM blur samples",maxValue:32,minValue:1,name:"VsmBlurSamples",type:"Attribute",if:{CastShadows:!0,$or:[{Type:"Point"},{Type:"Directional"},{Type:"Spot"}]}}],typeName:"Lightsource"},{fields:[{label:"3D Object Fields",type:"Separator"},{datatype:"Boolean",defaultValue:!0,displayName:"Active",info:"Indicates if the 3D object is currently active or inactive. When set to true, the object is active.",name:"Active",type:"Attribute"},{datatype:"Boolean",defaultValue:!1,displayName:"Static",info:"A Boolean attribute indicating whether the 3D object is static or not. Static objects can and will never be transformed during runtime.",name:"Static",type:"Attribute"},{datatype:"String",defaultValue:"",displayName:"Name",info:"Specifies the name of the 3D object. This is used for identification and reference in the scene.",name:"Name",type:"Attribute"},{datatype:"Transform",defaultValue:{position:{x:0,y:0,z:0},rotation:{w:1,x:0,y:0,z:0},scale:{x:1,y:1,z:1}},info:"Describes the object's transformation attributes including its position, rotation, and scale in the 3D space.",name:"Transform",type:"Attribute"},{datatype:"Layers",defaultValue:[],name:"Cullmode",info:"Defines the layers that are not visible to the camera.",displayName:"Cull mode",type:"Attribute"},{datatype:"Tags",defaultValue:[],info:"Lists tags associated with the 3D object. Tags are useful for categorizing and searching objects in the scene.",name:"Tags",type:"Attribute"},{label:"Camera specific fields",type:"Separator"},{datatype:"Enum",defaultValue:"Perspective",name:"Type",options:["Perspective","Orthographic"],type:"Attribute"},{datatype:"Float",defaultValue:60,displayName:"Field of view",if:{Type:"Perspective"},maxValue:360,minValue:1,name:"FieldOfView",type:"Attribute"},{datatype:"Float",defaultValue:-1,displayName:"Left",if:{Type:"Orthographic"},name:"Left",type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"Right",if:{Type:"Orthographic"},name:"Right",type:"Attribute"},{datatype:"Float",defaultValue:-1,displayName:"Top",if:{Type:"Orthographic"},name:"Top",type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"Bottom",if:{Type:"Orthographic"},name:"Bottom",type:"Attribute"},{datatype:"Float",defaultValue:.1,displayName:"Near plane",minValue:0,name:"NearPlane",type:"Attribute"},{datatype:"Float",defaultValue:1e3,displayName:"Far plane",minValue:0,name:"FarPlane",type:"Attribute"},{datatype:"Enum",defaultValue:"Free",name:"Mode",options:["Free","Look at"],type:"Attribute"},{datatype:"Vector3d",defaultValue:{x:0,y:0,z:0},if:{Mode:"Look at"},name:"LookAt",type:"Attribute"},{datatype:"Vector3d",defaultValue:{x:0,y:1,z:0},displayName:"Up vector",if:{Mode:"Look at"},name:"UpVector",type:"Attribute"}],typeName:"Camera"},{fields:[{name:"3dObjectNoShadows",type:"FieldSet"}],typeName:"Group"},{fields:[{name:"3dObjectDefault",type:"FieldSet"},{label:"Box specific fields",type:"Separator"},{linkableTypes:["Material"],type:"Link",usageAs:"Material"},{datatype:"Vector3d",defaultValue:{x:1,y:1,z:1},name:"Size",type:"Attribute"},{datatype:"Vector3d",defaultValue:{x:1,y:1,z:1},name:"Segments",type:"Attribute"},{datatype:"Vector2d",defaultValue:{x:1,y:1},displayName:"UV Scale",name:"UVScale",type:"Attribute"},{name:"Physics",type:"FieldSet"}],typeName:"Box"},{fields:[{name:"3dObjectDefault",type:"FieldSet"},{label:"GridMap specific fields",type:"Separator"},{linkableTypes:["GridMap"],type:"Link",usageAs:"GridMap"},{name:"Physics",type:"FieldSet"}],typeName:"GridMap"},{fields:[{name:"3dObjectDefault",type:"FieldSet"},{label:"Ribbon specific fields",type:"Separator"},{linkableTypes:["Material"],type:"Link",usageAs:"Material"},{datatype:"Integer",defaultValue:16,displayName:"Ring vertex count",minValue:3,maxValue:256,name:"RingVertexCount",type:"Attribute"},{datatype:"Integer",defaultValue:16,displayName:"Path steps",minValue:2,name:"PathStepCount",type:"Attribute"},{datatype:"Float",defaultValue:0,displayName:"Start time",minValue:0,name:"StartTime",type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"End time",minValue:0,name:"EndTime",type:"Attribute"},{datatype:"Vector2d",defaultValue:{x:1,y:1},displayName:"UV Scale",name:"UVScale",type:"Attribute"},{datatype:"Boolean",defaultValue:!1,displayName:"Closed",name:"Closed",type:"Attribute"},{datatype:"Boolean",defaultValue:!0,displayName:"Add caps",name:"AddCaps",if:{Closed:!1},type:"Attribute"},{datatype:"Boolean",defaultValue:!0,displayName:"Vertex colors",name:"VertexColors",type:"Attribute"},{label:"Ring formulas",type:"Separator",presets:[{name:"Circle",fields:{RingFormulaX:"cos(theta) * 0.5",RingFormulaY:"0",RingFormulaZ:"sin(theta) * 0.5"}}]},{datatype:"Formula",defaultValue:"cos(theta) * 0.5",displayName:"X",name:"RingFormulaX",type:"Attribute"},{datatype:"Formula",defaultValue:"0",displayName:"Y",name:"RingFormulaY",type:"Attribute"},{datatype:"Formula",defaultValue:"sin(theta) * 0.5",displayName:"Z",name:"RingFormulaZ",type:"Attribute"},{label:"Path formulas",type:"Separator"},{datatype:"Formula",defaultValue:"0",displayName:"X",name:"PathFormulaX",type:"Attribute"},{datatype:"Formula",defaultValue:"sin(t)",displayName:"Y",name:"PathFormulaY",type:"Attribute"},{datatype:"Formula",defaultValue:"t",displayName:"Z",name:"PathFormulaZ",type:"Attribute"},{label:"Color formulas",type:"Separator",if:{VertexColors:!0}},{datatype:"Formula",defaultValue:"abs(sin(t))",displayName:"R",name:"ColorFormulaR",type:"Attribute",if:{VertexColors:!0}},{datatype:"Formula",defaultValue:"0",displayName:"G",name:"ColorFormulaG",type:"Attribute",if:{VertexColors:!0}},{datatype:"Formula",defaultValue:"abs(cos(t))",displayName:"B",name:"ColorFormulaB",type:"Attribute",if:{VertexColors:!0}},{label:"Other formulas",type:"Separator"},{datatype:"Formula",defaultValue:"1 + 0.3 * sin(t * 2)",displayName:"Scale",name:"ScaleFormula",type:"Attribute"},{datatype:"Formula",defaultValue:"t * PI * 2",displayName:"Twist",name:"TwistFormula",type:"Attribute"},{name:"Physics",type:"FieldSet"}],typeName:"Ribbon"},{fields:[{name:"3dObjectDefault",type:"FieldSet"},{label:"Billboard Specific Fields",type:"Separator"},{linkableTypes:["Material"],type:"Link",usageAs:"Material",mandatory:!0},{datatype:"Text",defaultValue:"Text",displayName:"Text",name:"Text",type:"Attribute"},{datatype:"Enum",defaultValue:"center",displayName:"Text Alignment",info:"The alignment of the text",name:"TextAlign",options:["left","center","right"],type:"Attribute"},{linkableTypes:["Font"],type:"Link",usageAs:"Font"},{datatype:"Boolean",defaultValue:!0,displayName:"Size Attenuation",info:"Scales the Billboard with respect to distance to the camera.",name:"SizeAttenuation",type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"Size",minValue:0,name:"Size",type:"Attribute"},{datatype:"Float",defaultValue:2,displayName:"Text Stroke Width",info:"The width of the border of the text.",maxValue:100,minValue:0,name:"TextStrokeWidth",type:"Attribute"},{datatype:"Color",defaultValue:{a:255,b:255,g:255,r:255},displayName:"Text Stroke Color",info:"The color of the border of the text.",name:"TextStrokeColor",type:"Attribute"},{datatype:"Color",defaultValue:{a:255,b:0,g:0,r:0},displayName:"Text color",info:"The infill color of the text.",name:"TextColor",type:"Attribute"},{datatype:"Vector2d",defaultValue:{x:5,y:5},displayName:"Padding",info:"Two values controlling the vertical and horizontal padding size. Higher values increase the size of the padding.",name:"Padding",type:"Attribute"},{datatype:"Color",defaultValue:{a:255,b:255,g:255,r:255},displayName:"Padding color",info:"The background color of the padding section.",name:"BackgroundColor",type:"Attribute"},{datatype:"Color",defaultValue:{a:255,b:255,g:255,r:255},displayName:"Padding Line Color",info:"The color of the border delimited by the padding.",name:"BackgroundStrokeColor",type:"Attribute"},{datatype:"Integer",defaultValue:1,displayName:"Padding Line Width",info:"The width of the border of the padding section.",minValue:0,name:"BackgroundStrokeWidth",type:"Attribute"},{datatype:"Vector2d",defaultValue:{x:2,y:2},displayName:"Border",info:"Two values controlling the vertical and horizontal border size. Higher values increase the size of the border.",name:"BorderWidth",type:"Attribute"},{datatype:"Color",defaultValue:{a:255,b:255,g:255,r:255},displayName:"Border Color",info:"The background color of the border section.",name:"BorderBackgroundColor",type:"Attribute"},{datatype:"Color",defaultValue:{a:255,b:255,g:255,r:255},displayName:"Border Line Color",info:"The color of the outer border of the sprite.",name:"BorderStrokeColor",type:"Attribute"},{datatype:"Integer",defaultValue:1,displayName:"Border Line Width",info:"The width of the outer border.",minValue:0,name:"BorderStrokeWidth",type:"Attribute"},{datatype:"Integer",defaultValue:2,displayName:"Outer Radius",info:"The outer radius of the sprite. Higher values increase the roundness.",minValue:0,name:"OuterRadius",type:"Attribute"},{datatype:"Integer",defaultValue:2,displayName:"Inner Radius",info:"The inner radius of the sprite. Higher values increase the roundness.",minValue:0,name:"InnerRadius",type:"Attribute"},{datatype:"Vector2d",defaultValue:{x:1,y:1},displayName:"UV Scale",name:"UVScale",type:"Attribute"}],typeName:"Billboard"},{fields:[{name:"3dObjectDefault",type:"FieldSet"},{label:"Cone specific fields",type:"Separator"},{linkableTypes:["Material"],type:"Link",usageAs:"Material"},{datatype:"Float",defaultValue:1,displayName:"Radius",minValue:0,name:"Radius",type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"Height",minValue:0,name:"Height",type:"Attribute"},{datatype:"Integer",defaultValue:8,displayName:"Radial segments",minValue:1,name:"RadialSegments",type:"Attribute"},{datatype:"Integer",defaultValue:1,displayName:"Height segments",minValue:1,name:"HeightSegments",type:"Attribute"},{datatype:"Boolean",defaultValue:!1,displayName:"Open ended",name:"OpenEnded",type:"Attribute"},{datatype:"Float",defaultValue:0,displayName:"Theta start",maxValue:360,minValue:0,name:"ThetaStart",type:"Attribute",widget:"Slider"},{datatype:"Float",defaultValue:360,displayName:"Theta length",maxValue:360,minValue:0,name:"ThetaLength",type:"Attribute",widget:"Slider"},{datatype:"Vector2d",defaultValue:{x:1,y:1},displayName:"UV Scale",name:"UVScale",type:"Attribute"},{name:"Physics",type:"FieldSet"}],typeName:"Cone"},{fields:[{name:"3dObjectNoShadows",type:"FieldSet"},{label:"Lod specific fields",type:"Separator"},{datatype:"String",defaultValue:"0,2,4,6,8,10",displayName:"Distances",name:"Distances",type:"Attribute"}],typeName:"Lod"},{fields:[{name:"3dObjectDefault",type:"FieldSet"},{label:"Cylinder specific fields",type:"Separator"},{linkableTypes:["Material"],type:"Link",usageAs:"Material"},{datatype:"Float",defaultValue:1,displayName:"Radius top",minValue:0,name:"RadiusTop",type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"Radius bottom",minValue:0,name:"RadiusBottom",type:"Attribute"},{datatype:"Integer",defaultValue:8,displayName:"Radial segments",minValue:1,name:"RadialSegments",type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"Height",minValue:0,name:"Height",type:"Attribute"},{datatype:"Integer",defaultValue:1,displayName:"Height segments",minValue:1,name:"HeightSegments",type:"Attribute"},{datatype:"Boolean",defaultValue:!1,displayName:"Open ended",name:"OpenEnded",type:"Attribute"},{datatype:"Float",defaultValue:0,displayName:"Theta start",maxValue:360,minValue:0,name:"ThetaStart",type:"Attribute",widget:"Slider"},{datatype:"Float",defaultValue:360,displayName:"Theta length",maxValue:360,minValue:0,name:"ThetaLength",type:"Attribute",widget:"Slider"},{datatype:"Vector2d",defaultValue:{x:1,y:1},displayName:"UV Scale",name:"UVScale",type:"Attribute"},{name:"Physics",type:"FieldSet"}],typeName:"Cylinder"},{fields:[{name:"3dObjectDefault",type:"FieldSet"},{label:"Plane specific fields",type:"Separator"},{linkableTypes:["Material"],type:"Link",usageAs:"Material"},{datatype:"Float",defaultValue:1,displayName:"Width",minValue:0,name:"Width",type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"Height",minValue:0,name:"Height",type:"Attribute"},{datatype:"Integer",defaultValue:1,displayName:"Width segments",minValue:1,name:"WidthSegments",type:"Attribute"},{datatype:"Integer",defaultValue:1,displayName:"Height segments",minValue:1,name:"HeightSegments",type:"Attribute"},{datatype:"Vector2d",defaultValue:{x:1,y:1},displayName:"UV Scale",name:"UVScale",type:"Attribute"},{name:"Physics",type:"FieldSet"}],typeName:"Plane"},{fields:[{name:"3dObjectDefault",type:"FieldSet"},{label:"Ring specific fields",type:"Separator"},{linkableTypes:["Material"],type:"Link",usageAs:"Material"},{datatype:"Float",defaultValue:.5,displayName:"Inner radius",minValue:0,name:"InnerRadius",type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"Outer radius",minValue:0,name:"OuterRadius",type:"Attribute"},{datatype:"Integer",defaultValue:8,displayName:"Theta segments",minValue:3,name:"ThetaSegments",type:"Attribute"},{datatype:"Integer",defaultValue:1,displayName:"Phi segments",minValue:1,name:"PhiSegments",type:"Attribute"},{datatype:"Float",defaultValue:0,displayName:"Theta start",maxValue:360,minValue:0,name:"ThetaStart",type:"Attribute",widget:"Slider"},{datatype:"Float",defaultValue:360,displayName:"Theta length",maxValue:360,minValue:0,name:"ThetaLength",type:"Attribute",widget:"Slider"},{datatype:"Vector2d",defaultValue:{x:1,y:1},displayName:"UV Scale",name:"UVScale",type:"Attribute"},{name:"Physics",type:"FieldSet"}],typeName:"Ring"},{fields:[{name:"3dObjectNoShadows",type:"FieldSet"},{label:"Particles Editor Fields",type:"Separator"},{datatype:"Boolean",defaultValue:!1,displayName:"Preview",info:"Previews the particle system by playing it in the editor.",name:"RunPreview",type:"Attribute"},{datatype:"Boolean",defaultValue:!0,displayName:"Show Emitter Preview",info:"Shows a preview of the particle system's emitter.",name:"ShowHelper",type:"Attribute"},{datatype:"Boolean",defaultValue:!1,displayName:"Pause",info:"Pauses the particle system.",name:"Pause",type:"Attribute"},{datatype:"Boolean",defaultValue:!1,displayName:"Kill All Particles",info:"Kills all the alive particles in the system.",name:"KillAllParticles",type:"Attribute"},{datatype:"Boolean",defaultValue:!1,displayName:"Restart",info:"Hard restart of the particle system. It kills all particles, clean all data and reset the simulation time.",name:"Restart",type:"Attribute"},{displayName:"Particle System",label:"Particle System Configuration File",linkableTypes:["Particles"],type:"Link",usageAs:"ParticleData",mandatory:!0}],typeName:"ParticleSystem"},{fields:[{name:"3dObjectDefault",type:"FieldSet"},{label:"CircleShadow specific fields",type:"Separator"},{datatype:"Float",defaultValue:1,displayName:"Size",minValue:0,name:"Size",type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"Strength",maxValue:1,minValue:0,name:"Strength",type:"Attribute",widget:"Slider"}],typeName:"CircleShadow"},{fields:[{name:"3dObjectDefault",type:"FieldSet"},{label:"Sphere specific fields",type:"Separator"},{linkableTypes:["Material"],type:"Link",usageAs:"Material"},{datatype:"Float",defaultValue:1,displayName:"Radius",minValue:0,name:"Radius",type:"Attribute"},{datatype:"Integer",defaultValue:8,displayName:"Width segments",minValue:3,name:"WidthSegments",type:"Attribute"},{datatype:"Integer",defaultValue:6,displayName:"Height segments",minValue:2,name:"HeightSegments",type:"Attribute"},{datatype:"Float",defaultValue:0,displayName:"Phi start",maxValue:360,minValue:0,name:"PhiStart",type:"Attribute",widget:"Slider"},{datatype:"Float",defaultValue:360,displayName:"Phi length",maxValue:360,minValue:0,name:"PhiLength",type:"Attribute",widget:"Slider"},{datatype:"Float",defaultValue:0,displayName:"Theta start",maxValue:360,minValue:0,name:"ThetaStart",type:"Attribute",widget:"Slider"},{datatype:"Float",defaultValue:180,displayName:"Theta length",maxValue:180,minValue:0,name:"ThetaLength",type:"Attribute",widget:"Slider"},{datatype:"Vector2d",defaultValue:{x:1,y:1},displayName:"UV Scale",name:"UVScale",type:"Attribute"},{name:"Physics",type:"FieldSet"}],typeName:"Sphere"},{fields:[{name:"3dObjectDefault",type:"FieldSet"},{label:"Text specific fields",type:"Separator"},{linkableTypes:["Material"],type:"Link",usageAs:"Material"},{datatype:"String",defaultValue:"Text",name:"Text",type:"Attribute"},{datatype:"Enum",defaultValue:"center",displayName:"Horizontal Alignment",info:"Horizontal text positioning",name:"HorizontalAlign",options:["left","center","right"],type:"Attribute"},{datatype:"Enum",defaultValue:"baseline",displayName:"Vertical Alignment",info:"Vertical text positioning",name:"VerticalAlign",options:["baseline","top","middle","bottom"],type:"Attribute"},{linkableTypes:["Font"],type:"Link",usageAs:"Font"},{datatype:"Float",defaultValue:1,name:"Size",type:"Attribute"},{datatype:"Float",defaultValue:1,name:"Height",type:"Attribute"},{datatype:"Integer",defaultValue:12,displayName:"Curve segments",name:"CurveSegments",type:"Attribute"},{datatype:"Boolean",defaultValue:!1,displayName:"Bevel enabled",name:"BevelEnabled",type:"Attribute"},{datatype:"Float",defaultValue:.1,displayName:"Bevel thickness",name:"BevelThickness",type:"Attribute"},{datatype:"Float",defaultValue:.03,displayName:"Bevel size",name:"BevelSize",type:"Attribute"},{datatype:"Float",defaultValue:0,displayName:"Bevel offset",name:"BevelOffset",type:"Attribute"},{datatype:"Integer",defaultValue:3,displayName:"Bevel segments",name:"BevelSegments",type:"Attribute"},{datatype:"Vector2d",defaultValue:{x:1,y:1},displayName:"UV Scale",name:"UVScale",type:"Attribute"},{name:"Physics",type:"FieldSet"}],typeName:"Text"},{fields:[{name:"3dObjectDefault",type:"FieldSet"},{label:"Torus specific fields",type:"Separator"},{linkableTypes:["Material"],type:"Link",usageAs:"Material"},{datatype:"Float",defaultValue:1,displayName:"Radius",minValue:0,name:"Radius",type:"Attribute"},{datatype:"Float",defaultValue:.4,displayName:"Tube",minValue:0,name:"Tube",type:"Attribute"},{datatype:"Integer",defaultValue:8,displayName:"Radial segments",minValue:3,name:"RadialSegments",type:"Attribute"},{datatype:"Integer",defaultValue:16,displayName:"Tubular segments",minValue:2,name:"TubularSegments",type:"Attribute"},{datatype:"Float",defaultValue:360,displayName:"Arc",maxValue:360,minValue:0,name:"Arc",type:"Attribute",widget:"Slider"},{datatype:"Vector2d",defaultValue:{x:1,y:1},displayName:"UV Scale",name:"UVScale",type:"Attribute"},{name:"Physics",type:"FieldSet"}],typeName:"Torus"},{fields:[{label:"3D Object Fields",type:"Separator"},{datatype:"Boolean",defaultValue:!0,displayName:"Active",name:"Active",type:"Attribute"},{datatype:"String",defaultValue:"",displayName:"Name",name:"Name",type:"Attribute"},{datatype:"Layers",defaultValue:[0],name:"Layers",type:"Attribute"},{datatype:"Tags",defaultValue:[],name:"Tags",type:"Attribute"},{label:"Sky specific fields",type:"Separator"},{datatype:"Float",defaultValue:1e3,name:"Size",type:"Attribute"},{datatype:"Float",defaultValue:10,displayName:"Turbidity",maxValue:20,minValue:1,name:"Turbidity",type:"Attribute",widget:"Slider"},{datatype:"Float",defaultValue:2,displayName:"Rayleigh",maxValue:4,minValue:0,name:"Rayleigh",type:"Attribute",widget:"Slider"},{datatype:"Float",defaultValue:.005,displayName:"Mie coefficient",maxValue:1,minValue:0,name:"MieCoefficient",type:"Attribute",widget:"Slider"},{datatype:"Float",defaultValue:.8,displayName:"Mie directional G",maxValue:1,minValue:0,name:"MieDirectionalG",type:"Attribute",widget:"Slider"},{datatype:"Float",defaultValue:.49,displayName:"Inclination",maxValue:1,minValue:0,name:"Inclination",type:"Attribute",widget:"Slider"},{datatype:"Float",defaultValue:.25,displayName:"Azimuth",maxValue:1,minValue:0,name:"Azimuth",type:"Attribute",widget:"Slider"}],typeName:"Sky"},{fields:[{label:"3D Object Fields",type:"Separator"},{datatype:"Boolean",defaultValue:!0,displayName:"Active",name:"Active",type:"Attribute"},{datatype:"String",defaultValue:"",displayName:"Name",name:"Name",type:"Attribute"},{datatype:"Transform",defaultValue:{position:{x:0,y:0,z:0},rotation:{w:1,x:0,y:0,z:0},scale:{x:1,y:1,z:1}},name:"Transform",type:"Attribute"},{datatype:"Tags",defaultValue:[],name:"Tags",type:"Attribute"},{label:"Audio listener specific fields",type:"Separator"},{datatype:"Float",defaultValue:1,name:"Gain",type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"Time delta",name:"TimeDelta",type:"Attribute"}],maxInstances:1,typeName:"AudioListener"},{fields:[{label:"3D Object Fields",type:"Separator"},{datatype:"Boolean",defaultValue:!0,displayName:"Active",name:"Active",type:"Attribute"},{datatype:"String",defaultValue:"",displayName:"Name",name:"Name",type:"Attribute"},{datatype:"Transform",defaultValue:{position:{x:0,y:0,z:0},rotation:{w:1,x:0,y:0,z:0},scale:{x:1,y:1,z:1}},name:"Transform",type:"Attribute"},{datatype:"Tags",defaultValue:[],name:"Tags",type:"Attribute"},{label:"Positional audio specific fields",type:"Separator"},{name:"AudioLink",type:"FieldSet"},{datatype:"Boolean",defaultValue:!1,displayName:"Autoplay",name:"Autoplay",type:"Attribute"},{datatype:"Boolean",defaultValue:!1,displayName:"Loop",name:"Loop",type:"Attribute"},{datatype:"Boolean",defaultValue:!1,displayName:"Loop section",name:"LoopSection",type:"Attribute",if:{Loop:!0}},{datatype:"Float",defaultValue:0,displayName:"Loop start",minValue:0,name:"LoopStart",type:"Attribute",widget:"Slider",if:{Loop:!0,LoopSection:!0}},{datatype:"Float",displayName:"Loop end",defaultValue:1,minValue:0,name:"LoopEnd",type:"Attribute",widget:"Slider",if:{Loop:!0,LoopSection:!0}},{datatype:"Float",defaultValue:1,displayName:"Volume",minValue:0,name:"Volume",type:"Attribute"},{datatype:"Float",defaultValue:0,displayName:"Panning",maxValue:1,minValue:-1,name:"Panning",type:"Attribute",widget:"Slider"},{datatype:"Float",defaultValue:0,displayName:"Duration",minValue:0,name:"Duration",type:"Attribute"},{datatype:"Float",defaultValue:0,displayName:"Detune",name:"Detune",type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"Playback rate",minValue:0,name:"PlaybackRate",type:"Attribute"},{datatype:"Float",defaultValue:0,displayName:"Offset",maxValue:1,minValue:0,name:"Offset",type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"Ref distance",minValue:0,name:"RefDistance",type:"Attribute"},{datatype:"Float",defaultValue:1e4,displayName:"Max distance",minValue:0,name:"MaxDistance",type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"Rolloff factor",minValue:0,name:"RolloffFactor",type:"Attribute"},{datatype:"Enum",defaultValue:"Inverse",displayName:"Distance model",name:"DistanceModel",options:["Linear","Inverse","Exponential"],type:"Attribute"},{datatype:"Enum",defaultValue:"Omnidirectional",displayName:"Direction",name:"Direction",options:["Omnidirectional","Directional"],type:"Attribute"},{datatype:"Float",defaultValue:90,displayName:"Cone inner angle",if:{Direction:"Directional"},maxValue:360,minValue:0,name:"ConeInnerAngle",type:"Attribute",widget:"Slider"},{datatype:"Float",defaultValue:180,displayName:"Cone outer angle",if:{Direction:"Directional"},maxValue:360,minValue:0,name:"ConeOuterAngle",type:"Attribute",widget:"Slider"},{datatype:"Float",defaultValue:.2,displayName:"Cone outer gain",if:{Direction:"Directional"},maxValue:1,minValue:0,name:"ConeOuterGain",type:"Attribute",widget:"Slider"}],typeName:"PositionalAudio"},{fields:[{label:"3D Object Fields",type:"Separator"},{datatype:"Boolean",defaultValue:!0,displayName:"Active",name:"Active",type:"Attribute"},{datatype:"String",defaultValue:"",displayName:"Name",name:"Name",type:"Attribute"},{datatype:"Tags",defaultValue:[],name:"Tags",type:"Attribute"},{label:"Audio specific fields",type:"Separator"},{name:"AudioLink",type:"FieldSet"},{datatype:"Boolean",defaultValue:!1,displayName:"Autoplay",name:"Autoplay",type:"Attribute"},{datatype:"Boolean",defaultValue:!1,displayName:"Loop",name:"Loop",type:"Attribute"},{datatype:"Boolean",defaultValue:!1,displayName:"Loop section",name:"LoopSection",type:"Attribute",if:{Loop:!0}},{datatype:"Float",defaultValue:0,displayName:"Loop start",minValue:0,name:"LoopStart",type:"Attribute",widget:"Slider",if:{Loop:!0,LoopSection:!0}},{datatype:"Float",displayName:"Loop end",defaultValue:1,minValue:0,name:"LoopEnd",type:"Attribute",widget:"Slider",if:{Loop:!0,LoopSection:!0}},{datatype:"Float",defaultValue:1,displayName:"Volume",minValue:0,name:"Volume",type:"Attribute"},{datatype:"Float",defaultValue:0,displayName:"Panning",maxValue:1,minValue:-1,name:"Panning",type:"Attribute",widget:"Slider"},{datatype:"Float",defaultValue:0,displayName:"Duration",minValue:0,name:"Duration",type:"Attribute"},{datatype:"Float",defaultValue:0,displayName:"Detune",name:"Detune",type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"Playback rate",minValue:0,name:"PlaybackRate",type:"Attribute"},{datatype:"Float",defaultValue:0,displayName:"Offset",maxValue:1,minValue:0,name:"Offset",type:"Attribute"}],typeName:"Audio"},{fields:[{name:"3dObjectNoShadows",type:"FieldSet"},{label:"Vehicle specific fields",type:"Separator"},{datatype:"Node",defaultValue:null,displayName:"Chassis node",name:"ChassisNode",type:"Attribute"},{elementName:"Wheel",fields:[{datatype:"Node",defaultValue:null,displayName:"Wheel node",name:"WheelNode",type:"Attribute"},{datatype:"Boolean",defaultValue:!1,displayName:"Is Front",name:"IsFront",type:"Attribute"},{label:"Wheel config",type:"Separator",collapsed:!0},{datatype:"Float",defaultValue:.6,displayName:"Suspension rest length",name:"SuspensionRestLength",type:"Attribute"},{datatype:"Float",defaultValue:20,displayName:"Suspension stiffness",name:"SuspensionStiffness",type:"Attribute"},{datatype:"Float",defaultValue:2.3,displayName:"Suspension damping",name:"SuspensionDamping",type:"Attribute"},{datatype:"Float",defaultValue:4.4,displayName:"Suspension compression",name:"SuspensionCompression",type:"Attribute"},{datatype:"Float",defaultValue:1e3,displayName:"Friction",name:"Friction",type:"Attribute"},{datatype:"Float",defaultValue:.2,displayName:"Roll influence",name:"RollInfluence",type:"Attribute"},{datatype:"Float",defaultValue:.1,displayName:"Radius",name:"Radius",type:"Attribute"},{datatype:"Float",defaultValue:0,displayName:"Acceleration",name:"Acceleration",type:"Attribute"},{datatype:"Float",defaultValue:0,displayName:"Brakes",name:"Brakes",type:"Attribute"},{datatype:"Float",defaultValue:0,displayName:"Steering",name:"Steering",type:"Attribute"}],name:"Wheels",type:"List"}],typeName:"Vehicle"},{fields:[{name:"3dObjectNoShadows",type:"FieldSet"},{label:"Constraint specific fields",type:"Separator"},{datatype:"Enum",defaultValue:"",displayName:"Type",name:"Type",options:["Point to Point","Hinge","Slider","Cone twist"],type:"Attribute"},{datatype:"Node",defaultValue:null,displayName:"First node",name:"FirstNode",type:"Attribute"},{datatype:"Node",defaultValue:null,displayName:"Second node",name:"SecondNode",type:"Attribute"}],typeName:"Constraint"},{fields:[{name:"3dObjectDefault",type:"FieldSet"},{label:"NavMesh specific fields",type:"Separator"},{datatype:"Enum",defaultValue:"Solo",displayName:"Type",name:"Type",options:["Solo","Tiled","Tile cache"],info:"For simple static scenes, use solo. For large maps use tiled, for large and/or dynamic maps, use tile cache",type:"Attribute"},{datatype:"Enum",defaultValue:"From children",displayName:"Mode",name:"Mode",options:["From children","From tags","From layers"],type:"Attribute"},{datatype:"Layers",defaultValue:[0],displayName:"Navmesh layers",info:"Selects which layers are added to the navmesh",name:"NavmeshLayers",type:"Attribute",if:{Mode:"From layers"}},{datatype:"Tags",defaultValue:[],info:"Selects meshes to add to the navmesh based on tag.",displayName:"Navmesh tags",name:"NavmeshTags",type:"Attribute",if:{Mode:"From tags"}},{datatype:"Boolean",defaultValue:!1,displayName:"Auto generate",name:"AutoGenerate",type:"Attribute"},{datatype:"Boolean",defaultValue:!1,displayName:"Always render helper",name:"AlwaysRenderHelper",type:"Attribute"},{datatype:"Button",defaultValue:!1,displayName:"Regenerate now",name:"RegenerateNow",type:"Attribute"},{datatype:"Float",defaultValue:0,minValue:0,displayName:"Border size",name:"BorderSize",type:"Attribute"},{datatype:"Float",defaultValue:.2,minValue:.01,displayName:"Voxel cell height",name:"CellHeight",type:"Attribute",info:"Needs to resolve step/climb height cleanly."},{datatype:"Float",defaultValue:.2,minValue:.01,displayName:"Voxel cell size",name:"CellSize",type:"Attribute",info:"Smaller = more detail. Around 0.2m for human‑scale"},{datatype:"Integer",defaultValue:256,minValue:1,displayName:"Chunky tri mesh tris per chunk",name:"ChunkyTriMeshTrisPerChunk",type:"Attribute",if:{Type:"Tiled"}},{datatype:"Float",defaultValue:6,minValue:.01,displayName:"Detail sample dist",name:"DetailSampleDist",type:"Attribute"},{datatype:"Float",defaultValue:1,minValue:0,displayName:"Detail sample max error",name:"DetailSampleMaxError",type:"Attribute"},{datatype:"Integer",defaultValue:4,minValue:1,displayName:"Expected layers per tile",name:"ExpectedLayersPerTile",type:"Attribute",if:{Type:"Tile Cache"}},{datatype:"Integer",defaultValue:128,minValue:1,displayName:"Max obstacles",name:"MaxObstacles",type:"Attribute",if:{Type:"Tile Cache"}},{datatype:"Float",defaultValue:12,minValue:.01,displayName:"Max edge length",name:"MaxEdgeLen",type:"Attribute"},{datatype:"Float",defaultValue:1.3,minValue:0,displayName:"Max simplification error",name:"MaxSimplificationError",type:"Attribute",info:"Allowed contour deviation from source before another vertex is kept"},{datatype:"Integer",defaultValue:6,minValue:3,displayName:"Max vertices per poly",name:"MaxVertsPerPoly",type:"Attribute"},{datatype:"Float",defaultValue:20,minValue:.01,displayName:"Merge region area",name:"MergeRegionArea",type:"Attribute"},{datatype:"Float",defaultValue:8,minValue:.01,displayName:"Min region area",name:"MinRegionArea",type:"Attribute"},{datatype:"Float",defaultValue:2,minValue:0,displayName:"Walkable climb",name:"WalkableClimb",type:"Attribute",info:"Maximum step height"},{datatype:"Float",defaultValue:2,minValue:0,displayName:"Walkable height",name:"WalkableHeight",type:"Attribute",info:"Required head‑clearance. Must be at least the height of the characters."},{datatype:"Float",defaultValue:.5,minValue:.01,displayName:"Walkable radius",name:"WalkableRadius",type:"Attribute",info:"Clearance from walls/obstacles"},{datatype:"Float",defaultValue:60,minValue:0,maxValue:360,displayName:"Walkable slope angle",name:"WalkableSlopeAngle",type:"Attribute",info:"Steepest walkable slope"},{datatype:"Boolean",defaultValue:!0,displayName:"Build BV Tree",name:"BuildBvTree",info:"",type:"Attribute",if:{$or:[{Type:"Solo"},{Type:"Tiled"}]}},{datatype:"Integer",defaultValue:32,minValue:1,displayName:"Tile size",name:"TileSize",type:"Attribute",info:"The size of the tiles to be used. Typically you will want to stay in the range 32 - 64. Sizes outside this range might result in unexpected behaviour",if:{$or:[{Type:"Tiled"},{Type:"Tile cache"}]}},{label:"Crowd fields",type:"Separator"},{datatype:"Boolean",defaultValue:!0,displayName:"Enable crowd",name:"EnableCrowd",type:"Attribute"},{datatype:"Integer",defaultValue:100,minValue:1,displayName:"Max agent count",name:"MaxAgentCount",type:"Attribute"},{datatype:"Float",defaultValue:1,minValue:.01,displayName:"Max agent radius",name:"MaxAgentRadius",type:"Attribute"}],typeName:"NavMesh"}],name:"Scenegraph",type:"Tree"}],name:"Prefab",updateRequiresThumbRefresh:!0},{_id:{$oid:"5e6a1ad189707feef9173397"},contentTypes:["text/x-lua"],fieldSets:[],fields:[],name:"Script",updateRequiresThumbRefresh:!1,creatableEmpty:!0},{_id:{$oid:"5e6a1ad189707f2ef9133396"},contentTypes:[],fieldSets:[],fields:[{childTypes:[{displayName:"Camera",fields:[{datatype:"String",defaultValue:"",displayName:"Name",name:"Name",type:"Attribute"},{datatype:"String",defaultValue:"",displayName:"Tag",info:"Tag of the camera to render",name:"Tag",type:"Attribute"},{datatype:"Layers",defaultValue:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31],displayName:"Layers",info:"Selects which layers are rendered by the camera. Overrides scene Camera node 'Cull mode' field.",name:"Layers",type:"Attribute"},{datatype:"Float",defaultValue:100,displayName:"Width",info:"Width in percent to render",name:"Width",type:"Attribute",widget:"Slider"},{datatype:"Float",defaultValue:100,displayName:"Height",info:"Height in percent to render",name:"Height",type:"Attribute",widget:"Slider"}],inputs:[],outputs:[{displayName:"Color output",name:"ColorOutput",type:"RGBImage"},{displayName:"Depth output",name:"DepthOutput",type:"GrayImage"},{displayName:"Depth Comparison output",name:"DepthComparisonOutput",type:"GrayImage"},{displayName:"Normal output",name:"NormalOutput",type:"RGBImage"},{displayName:"Camera Output",name:"CameraOutput",type:"Attribute"}],typeName:"camera"},{displayName:"Merge",fields:[{datatype:"String",defaultValue:"",displayName:"Name",name:"Name",type:"Attribute"},{datatype:"Boolean",defaultValue:!0,displayName:"Enabled",name:"Enabled",type:"Attribute"},{datatype:"Enum",defaultValue:"Alpha",displayName:"Blending Mode",name:"BlendingMode",options:["Add","Alpha","Average","Color","Color Burn","Color Dodge","Darken","Difference","Divide","Exclusion","Hard Light","Hard Mix","Hue","Invert","Invert RGB","Lighten","Linear Burn","Linear Dodge","Linear Light","Luminosity","Multiply","Negation","Normal","Overlay","Pin Light","Reflect","Saturation","Screen","Soft Light","Set","Src","Subtract","Vivid Light"],type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"Blend amount",info:"Adjusts how strongly the blending mode affects the final result.",maxValue:1,minValue:0,name:"Opacity",type:"Attribute",widget:"Slider"},{datatype:"Float",defaultValue:0,displayName:"Offset X",info:"Horizontal offset for the secondary input (relative to composition resolution). Positive values move right, negative left. Percentage-based for resolution independence.",maxValue:100,minValue:-100,name:"OffsetX",type:"Attribute"},{datatype:"Float",defaultValue:0,displayName:"Offset Y",info:"Vertical offset for the secondary input (relative to composition resolution). Positive values move up, negative down. Percentage-based for resolution independence.",maxValue:100,minValue:-100,name:"OffsetY",type:"Attribute"},{datatype:"Float",defaultValue:100,displayName:"Width",info:"Horizontal scale of the secondary input as percentage of composition width. 100% maintains original aspect ratio when Height is also 100%. Values <100% shrink, >100% stretch.",maxValue:100,minValue:0,name:"Width",type:"Attribute"},{datatype:"Float",defaultValue:100,displayName:"Height",info:"Vertical scale of the secondary input as percentage of composition height. 100% maintains original aspect ratio when Width is also 100%. Values <100% shrink, >100% stretch.",maxValue:100,minValue:0,name:"Height",type:"Attribute"}],inputs:[{displayName:"Color input 1",name:"ColorInput1",types:["RGBImage"]},{displayName:"Color input 2",name:"ColorInput2",types:["RGBImage"]}],outputs:[{displayName:"Color output",name:"ColorOutput",type:"RGBImage"}],typeName:"merge"},{displayName:"SSAO",fields:[{datatype:"String",defaultValue:"",displayName:"Name",name:"Name",type:"Attribute"},{datatype:"Boolean",defaultValue:!0,displayName:"Enabled",name:"Enabled",type:"Attribute"},{datatype:"Float",defaultValue:.2,displayName:"Radius",minValue:.01,name:"Radius",type:"Attribute"},{datatype:"Integer",defaultValue:8,displayName:"Samples",maxValue:32,minValue:8,name:"Samples",type:"Attribute"},{datatype:"Float",defaultValue:.001,displayName:"Bias",minValue:.001,name:"Bias",type:"Attribute"},{datatype:"Float",defaultValue:2,displayName:"Intensity",minValue:0,name:"Intensity",type:"Attribute"},{datatype:"Float",defaultValue:.07,displayName:"Max distance",minValue:.01,name:"MaxDistance",type:"Attribute"}],inputs:[{displayName:"Depth input",name:"DepthInput",types:["GrayImage"]},{displayName:"Normal input",name:"NormalInput",types:["RGBImage"]},{displayName:"Camera Input",name:"CameraInput",types:["Attribute"]}],outputs:[{displayName:"Color output",name:"ColorOutput",type:"RGBImage"}],typeName:"ssao"},{displayName:"FXAA",fields:[{datatype:"String",defaultValue:"",displayName:"Name",name:"Name",type:"Attribute"},{datatype:"Boolean",defaultValue:!0,displayName:"Enabled",name:"Enabled",type:"Attribute"}],inputs:[{displayName:"Color input",name:"ColorInput",types:["RGBImage"]}],outputs:[{displayName:"Color output",name:"ColorOutput",type:"RGBImage"}],typeName:"fxaa"},{displayName:"Bloom",fields:[{datatype:"String",defaultValue:"",displayName:"Name",name:"Name",type:"Attribute"},{datatype:"Boolean",defaultValue:!0,displayName:"Enabled",name:"Enabled",type:"Attribute"},{datatype:"Float",defaultValue:1.5,displayName:"Strength",maxValue:10,minValue:0,name:"Strength",type:"Attribute",widget:"Slider"},{datatype:"Float",defaultValue:.4,displayName:"Radius",maxValue:1,minValue:0,name:"Radius",type:"Attribute",widget:"Slider"},{datatype:"Float",defaultValue:.8,displayName:"Threshold",info:"Minimum luminance required for a pixel to contribute to bloom. Pixels darker than this value are suppressed, while brighter pixels contribute to the blur.",maxValue:1,minValue:0,name:"Threshold",type:"Attribute",widget:"Slider"},{datatype:"Float",defaultValue:.4,displayName:"Soft Knee",info:"Creates a smooth transition around the threshold to avoid harsh cutoffs. Higher values produce a more gradual blend between non-blooming and blooming pixels.",maxValue:1,minValue:0,name:"SoftKnee",type:"Attribute",widget:"Slider"}],inputs:[{displayName:"Color input",name:"ColorInput",types:["RGBImage"]}],outputs:[{displayName:"Color output",name:"ColorOutput",type:"RGBImage"}],typeName:"bloom"},{displayName:"Outline",fields:[{datatype:"String",defaultValue:"",displayName:"Name",name:"Name",type:"Attribute"},{datatype:"Boolean",defaultValue:!0,displayName:"Enabled",name:"Enabled",type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"Edge Strength",maxValue:5,minValue:0,name:"EdgeStrength",type:"Attribute",widget:"Slider"},{datatype:"Float",defaultValue:.5,displayName:"Edge Width",maxValue:2,minValue:.1,name:"EdgeWidth",type:"Attribute",widget:"Slider"},{datatype:"Color",defaultValue:{r:255,g:0,b:0,a:255},displayName:"Edge Color",name:"EdgeColor",type:"Attribute"},{datatype:"Enum",defaultValue:"Add",displayName:"Blending Mode",name:"BlendingMode",options:["Add","Alpha","Average","Color","Color Burn","Color Dodge","Darken","Difference","Divide","Exclusion","Hard Light","Hard Mix","Hue","Invert","Invert RGB","Lighten","Linear Burn","Linear Dodge","Linear Light","Luminosity","Multiply","Negation","Normal","Overlay","Pin Light","Reflect","Saturation","Screen","Soft Light","Set","Src","Subtract","Vivid Light"],type:"Attribute"},{datatype:"Float",defaultValue:.25,displayName:"Opacity",name:"Opacity",maxValue:1,minValue:0,type:"Attribute"}],inputs:[{displayName:"Color input",name:"ColorInput",types:["RGBImage"]},{displayName:"Depth Comparison input",name:"DepthComparisonInput",types:["GrayImage"]}],outputs:[{displayName:"Color output",name:"ColorOutput",type:"RGBImage"}],typeName:"outline"},{displayName:"Film",fields:[{datatype:"String",defaultValue:"",displayName:"Name",name:"Name",type:"Attribute"},{datatype:"Boolean",defaultValue:!0,displayName:"Enabled",name:"Enabled",type:"Attribute"},{datatype:"Float",defaultValue:.05,displayName:"Noise intensity",maxValue:1,minValue:0,name:"NoiseIntensity",type:"Attribute",widget:"Slider"},{datatype:"Float",defaultValue:0,displayName:"Scanlines intensity",maxValue:1,minValue:0,name:"ScanlinesIntensity",type:"Attribute",widget:"Slider"},{datatype:"Integer",defaultValue:0,displayName:"Scanlines count",maxValue:1e3,minValue:0,name:"ScanlinesCount",type:"Attribute",widget:"Slider"},{datatype:"Boolean",defaultValue:!1,displayName:"Grayscale",name:"Grayscale",type:"Attribute"},{datatype:"Boolean",defaultValue:!1,displayName:"Animated",name:"Animated",type:"Attribute"}],inputs:[{displayName:"Color input",name:"ColorInput",types:["RGBImage"]}],outputs:[{displayName:"Color output",name:"ColorOutput",type:"RGBImage"}],typeName:"film"},{displayName:"Fog",fields:[{datatype:"String",defaultValue:"",displayName:"Name",name:"Name",type:"Attribute"},{datatype:"Boolean",defaultValue:!0,displayName:"Enabled",name:"Enabled",type:"Attribute"},{datatype:"Color",defaultValue:{r:255,g:0,b:0,a:255},displayName:"Color",name:"Color",type:"Attribute"},{datatype:"Enum",defaultValue:"Camera Depth",displayName:"Direction",name:"Direction",type:"Attribute",options:["Camera Depth","X","Y","Z"],info:"Defines the ray along which the fog is evaluated. 'Camera Depth' applies fog based on distance from the camera view direction (distances should be non-negative). 'X', 'Y', and 'Z' apply fog along the corresponding world-space axis; distances may be positive or negative depending on where the fog volume should begin and end."},{datatype:"Enum",defaultValue:"Linear",displayName:"Type",name:"Type",type:"Attribute",options:["Linear","Exponential","Exponential Squared"]},{datatype:"Float",defaultValue:1,displayName:"Start Distance",name:"StartDistance",type:"Attribute",info:"Distance along the selected fog ray where the fog begins to accumulate. Must be >= 0 when using Camera Depth."},{datatype:"Float",defaultValue:1e3,displayName:"End Distance",name:"EndDistance",type:"Attribute",info:"Distance along the selected fog ray where the fog reaches maximum density. Must be >= 0 when using Camera Depth."},{datatype:"Float",defaultValue:.0025,displayName:"Density",minValue:1e-5,maxValue:1,name:"Density",type:"Attribute",step:.1,if:{$or:[{FogType:"Exponential"},{FogType:"Exponential Squared"}]}},{datatype:"Boolean",defaultValue:!0,displayName:"Enable Noise",name:"EnableNoise",info:"Adds animated noise to the fog to create more natural variation.",type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"Noise Scale",minValue:.001,name:"NoiseScale",type:"Attribute",step:1,if:{EnableFogNoise:!0}},{datatype:"Float",defaultValue:.1,displayName:"Noise Speed",maxValue:1,minValue:0,name:"NoiseSpeed",type:"Attribute",step:.1,if:{EnableFogNoise:!0}},{datatype:"Float",defaultValue:.5,displayName:"Noise Amount",maxValue:1,minValue:0,name:"NoiseAmount",type:"Attribute",step:.1,if:{EnableFogNoise:!0}},{datatype:"Float",defaultValue:0,maxValue:1,displayName:"Sky Density",info:"Controls the amount of fog applied to the sky.",name:"SkyDensity",type:"Attribute",step:.1}],inputs:[{displayName:"Color input",name:"ColorInput",types:["RGBImage"]},{displayName:"Depth input",name:"DepthInput",types:["DepthBuffer"]},{displayName:"Camera input",name:"CameraInput",types:["Camera"]}],outputs:[{displayName:"Color output",name:"ColorOutput",type:"RGBImage"}],typeName:"fog"},{displayName:"Sepia",fields:[{datatype:"String",defaultValue:"",displayName:"Name",name:"Name",type:"Attribute"},{datatype:"Boolean",defaultValue:!0,displayName:"Enabled",name:"Enabled",type:"Attribute"},{datatype:"Enum",defaultValue:"Normal",displayName:"Blending Mode",name:"BlendingMode",options:["Add","Alpha","Average","Color","Color Burn","Color Dodge","Darken","Difference","Divide","Exclusion","Hard Light","Hard Mix","Hue","Invert","Invert RGB","Lighten","Linear Burn","Linear Dodge","Linear Light","Luminosity","Multiply","Negation","Normal","Overlay","Pin Light","Reflect","Saturation","Screen","Soft Light","Set","Src","Subtract","Vivid Light"],type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"Opacity",name:"Opacity",maxValue:1,minValue:0,type:"Attribute"}],inputs:[{displayName:"Color input",name:"ColorInput",types:["RGBImage"]}],outputs:[{displayName:"Color output",name:"ColorOutput",type:"RGBImage"}],typeName:"sepia"},{displayName:"Vignette",fields:[{datatype:"String",defaultValue:"",displayName:"Name",name:"Name",type:"Attribute"},{datatype:"Boolean",defaultValue:!0,displayName:"Enabled",name:"Enabled",type:"Attribute"},{datatype:"Enum",defaultValue:"Normal",displayName:"Blending Mode",name:"BlendingMode",options:["Add","Alpha","Average","Color","Color Burn","Color Dodge","Darken","Difference","Divide","Exclusion","Hard Light","Hard Mix","Hue","Invert","Invert RGB","Lighten","Linear Burn","Linear Dodge","Linear Light","Luminosity","Multiply","Negation","Normal","Overlay","Pin Light","Reflect","Saturation","Screen","Soft Light","Set","Src","Subtract","Vivid Light"],type:"Attribute"},{datatype:"Float",defaultValue:.9,displayName:"Opacity",name:"Opacity",maxValue:1,minValue:0,type:"Attribute"},{datatype:"Float",defaultValue:.4,displayName:"Amount",maxValue:1,minValue:0,name:"Amount",type:"Attribute"}],inputs:[{displayName:"Color input",name:"ColorInput",types:["RGBImage"]}],outputs:[{displayName:"Color output",name:"ColorOutput",type:"RGBImage"}],typeName:"vignette"},{displayName:"Blur",fields:[{datatype:"String",defaultValue:"",displayName:"Name",name:"Name",type:"Attribute"},{datatype:"Boolean",defaultValue:!0,displayName:"Enabled",name:"Enabled",type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"Amount",maxValue:10,minValue:0,name:"Amount",type:"Attribute"}],inputs:[{displayName:"Color input",name:"ColorInput",types:["RGBImage"]}],outputs:[{displayName:"Color output",name:"ColorOutput",type:"RGBImage"}],typeName:"blur"},{displayName:"Scanline",fields:[{datatype:"String",defaultValue:"",displayName:"Name",name:"Name",type:"Attribute"},{datatype:"Boolean",defaultValue:!0,displayName:"Enabled",name:"Enabled",type:"Attribute"},{datatype:"Float",defaultValue:.5,displayName:"Density",maxValue:1,minValue:0,name:"Density",type:"Attribute",widget:"Slider"},{datatype:"Float",defaultValue:.01,displayName:"Scroll Speed",maxValue:1,minValue:0,name:"ScrollSpeed",type:"Attribute",widget:"Slider"},{datatype:"Enum",defaultValue:"Overlay",displayName:"Blending Mode",name:"BlendingMode",options:["Add","Alpha","Average","Color","Color Burn","Color Dodge","Darken","Difference","Divide","Exclusion","Hard Light","Hard Mix","Hue","Invert","Invert RGB","Lighten","Linear Burn","Linear Dodge","Linear Light","Luminosity","Multiply","Negation","Normal","Overlay","Pin Light","Reflect","Saturation","Screen","Soft Light","Set","Src","Subtract","Vivid Light"],type:"Attribute"},{datatype:"Float",defaultValue:.25,displayName:"Opacity",name:"Opacity",maxValue:1,minValue:0,type:"Attribute"}],inputs:[{displayName:"Color input",name:"ColorInput",types:["RGBImage"]}],outputs:[{displayName:"Color output",name:"ColorOutput",type:"RGBImage"}],typeName:"scanline"},{displayName:"Shockwave",fields:[{datatype:"String",defaultValue:"",displayName:"Name",name:"Name",type:"Attribute"},{datatype:"Boolean",defaultValue:!0,displayName:"Enabled",name:"Enabled",type:"Attribute"},{datatype:"Boolean",defaultValue:!0,displayName:"Continuous",info:"Whether or not new shockwaves will emit as soon as the previous shockwave ended.",name:"Continuous",type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"Delay",minValue:0,name:"Delay",info:"How long to wait between shockwave emissions.",type:"Attribute",if:{Continuous:!1}},{datatype:"Integer",defaultValue:5,displayName:"Amount",minValue:0,name:"Amount",info:"The number of shockwaves.",type:"Attribute",if:{Continuous:!1}},{datatype:"Vector3d",defaultValue:{x:0,y:0,z:0},displayName:"Center",info:"The center in world coordinates of the shockwave effect.",name:"Center",type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"Size",maxValue:100,minValue:.001,name:"Size",type:"Attribute"},{datatype:"Float",defaultValue:2,displayName:"Speed",maxValue:100,minValue:.001,name:"Speed",type:"Attribute"},{datatype:"Float",defaultValue:-.2,displayName:"Radius",maxValue:10,minValue:-10,name:"Radius",type:"Attribute"},{datatype:"Float",defaultValue:.2,displayName:"Maximum Radius",maxValue:10,minValue:0,name:"MaxRadius",type:"Attribute"},{datatype:"Float",defaultValue:10,displayName:"Wave Size",maxValue:100,minValue:1,name:"WaveSize",type:"Attribute"},{datatype:"Float",defaultValue:.05,displayName:"Amplitude",maxValue:10,minValue:0,name:"Amplitude",type:"Attribute"},{datatype:"Enum",defaultValue:"Screen",displayName:"Blending Mode",name:"BlendingMode",options:["Add","Alpha","Average","Color","Color Burn","Color Dodge","Darken","Difference","Divide","Exclusion","Hard Light","Hard Mix","Hue","Invert","Invert RGB","Lighten","Linear Burn","Linear Dodge","Linear Light","Luminosity","Multiply","Negation","Normal","Overlay","Pin Light","Reflect","Saturation","Screen","Soft Light","Set","Src","Subtract","Vivid Light"],type:"Attribute"},{datatype:"Float",defaultValue:.75,displayName:"Opacity",name:"Opacity",maxValue:1,minValue:0,type:"Attribute"},{datatype:"Boolean",defaultValue:!1,displayName:"Enable Debug",name:"Debug",type:"Attribute"}],inputs:[{displayName:"Color input",name:"ColorInput",types:["RGBImage"]},{displayName:"Camera Input",name:"CameraInput",types:["Attribute"]}],outputs:[{displayName:"Color output",name:"ColorOutput",type:"RGBImage"}],typeName:"shockwave"},{displayName:"Pixelation",fields:[{datatype:"String",defaultValue:"",displayName:"Name",name:"Name",type:"Attribute"},{datatype:"Boolean",defaultValue:!0,displayName:"Enabled",name:"Enabled",type:"Attribute"},{datatype:"Float",defaultValue:10,displayName:"Granularity",maxValue:100,minValue:1,name:"Granularity",type:"Attribute",widget:"Slider"}],inputs:[{displayName:"Color input",name:"ColorInput",types:["RGBImage"]}],outputs:[{displayName:"Color output",name:"ColorOutput",type:"RGBImage"}],typeName:"pixelation"},{displayName:"Adjust",fields:[{datatype:"String",defaultValue:"",displayName:"Name",name:"Name",type:"Attribute"},{datatype:"Boolean",defaultValue:!0,displayName:"Enabled",name:"Enabled",type:"Attribute"},{datatype:"Float",defaultValue:0,displayName:"Brightness",maxValue:10,minValue:-10,name:"Brightness",type:"Attribute"},{datatype:"Float",defaultValue:0,displayName:"Contrast",maxValue:10,minValue:-10,name:"Contrast",type:"Attribute"},{datatype:"Float",defaultValue:0,displayName:"Hue",maxValue:6.283,minValue:0,name:"Hue",type:"Attribute"},{datatype:"Float",defaultValue:0,displayName:"Saturation",maxValue:1,minValue:-1,name:"Saturation",type:"Attribute"}],inputs:[{displayName:"Color input",name:"ColorInput",types:["RGBImage"]}],outputs:[{displayName:"Color output",name:"ColorOutput",type:"RGBImage"}],typeName:"adjust"},{displayName:"Chromatic abberation",fields:[{datatype:"String",defaultValue:"",displayName:"Name",name:"Name",type:"Attribute"},{datatype:"Boolean",defaultValue:!0,displayName:"Enabled",name:"Enabled",type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"Amount",maxValue:10,minValue:0,name:"Amount",type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"Red factor",maxValue:1,minValue:0,name:"RedFactor",type:"Attribute"},{datatype:"Float",defaultValue:.5,displayName:"Green factor",maxValue:1,minValue:0,name:"GreenFactor",type:"Attribute"},{datatype:"Float",defaultValue:.25,displayName:"Blue factor",maxValue:1,minValue:0,name:"BlueFactor",type:"Attribute"}],inputs:[{displayName:"Color input",name:"ColorInput",types:["RGBImage"]}],outputs:[{displayName:"Color output",name:"ColorOutput",type:"RGBImage"}],typeName:"chromaticAbberation"},{displayName:"Color Depth",fields:[{datatype:"String",defaultValue:"",displayName:"Name",name:"Name",type:"Attribute"},{datatype:"Boolean",defaultValue:!0,displayName:"Enabled",name:"Enabled",type:"Attribute"},{datatype:"Integer",defaultValue:16,displayName:"Bit Depth",maxValue:32,minValue:1,name:"bitDepth",type:"Attribute"},{datatype:"Enum",defaultValue:"Normal",displayName:"Blending Mode",name:"BlendingMode",options:["Add","Alpha","Average","Color","Color Burn","Color Dodge","Darken","Difference","Divide","Exclusion","Hard Light","Hard Mix","Hue","Invert","Invert RGB","Lighten","Linear Burn","Linear Dodge","Linear Light","Luminosity","Multiply","Negation","Normal","Overlay","Pin Light","Reflect","Saturation","Screen","Soft Light","Set","Src","Subtract","Vivid Light"],type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"Blend amount",info:"Amount of blending. Only valid for additive and subtractive modes",maxValue:1,minValue:0,name:"Opacity",type:"Attribute",widget:"Slider"}],inputs:[{displayName:"Color input",name:"ColorInput",types:["RGBImage"]}],outputs:[{displayName:"Color output",name:"ColorOutput",type:"RGBImage"}],typeName:"colorDepth"},{displayName:"Depth Of Field",fields:[{datatype:"String",defaultValue:"",displayName:"Name",name:"Name",type:"Attribute"},{datatype:"Boolean",defaultValue:!0,displayName:"Enabled",name:"Enabled",type:"Attribute"},{datatype:"String",defaultValue:"",displayName:"Focus Target",name:"FocusTarget",type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"World Focus Distance",minValue:0,name:"WorldFocusDistance",type:"Attribute"},{datatype:"Float",defaultValue:5,displayName:"World Focus Range",minValue:0,name:"WorldFocusRange",type:"Attribute"},{datatype:"Integer",defaultValue:4,displayName:"Kawase Blur Kernel Size",maxValue:10,minValue:0,name:"Kernel",type:"Attribute"},{datatype:"Float",defaultValue:.5,displayName:"Bokeh Scale",maxValue:25,minValue:0,name:"BokehScale",type:"Attribute"},{datatype:"Float",defaultValue:.75,displayName:"Resolution Scale",maxValue:1,minValue:0,name:"ResolutionScale",type:"Attribute"},{datatype:"Boolean",defaultValue:!1,displayName:"Enable Debug",name:"Debug",type:"Attribute"}],inputs:[{displayName:"Color input",name:"ColorInput",types:["RGBImage"]},{displayName:"Depth input",name:"DepthInput",types:["GrayImage"]},{displayName:"Camera Input",name:"CameraInput",types:["Attribute"]}],outputs:[{displayName:"Color output",name:"ColorOutput",type:"RGBImage"}],typeName:"depthoffield"},{displayName:"Glitch",fields:[{datatype:"String",defaultValue:"",displayName:"Name",name:"Name",type:"Attribute"},{datatype:"Boolean",defaultValue:!0,displayName:"Enabled",name:"Enabled",type:"Attribute"},{datatype:"Vector2d",defaultValue:{x:.3,y:1},displayName:"Strength",info:"Two values controlling the maximum and minimum strength of the glitch effect.",name:"Strength",type:"Attribute"},{datatype:"Float",defaultValue:.1,displayName:"Columns",maxValue:1,minValue:0,name:"Columns",type:"Attribute"},{datatype:"Vector2d",defaultValue:{x:0,y:2.5},displayName:"Delay",info:"Two values controlling the duration of the delay of the glitch effect.",name:"Delay",type:"Attribute"},{datatype:"Vector2d",defaultValue:{x:0,y:3},displayName:"Duration",info:"Two values controlling the duration of the glitch effect.",name:"Duration",type:"Attribute"}],inputs:[{displayName:"Color input",name:"ColorInput",types:["RGBImage"]}],outputs:[{displayName:"Color output",name:"ColorOutput",type:"RGBImage"}],typeName:"glitch"},{displayName:"God Rays",fields:[{datatype:"String",defaultValue:"",displayName:"Name",name:"Name",type:"Attribute"},{datatype:"Boolean",defaultValue:!0,displayName:"Enabled",name:"Enabled",type:"Attribute"},{datatype:"String",defaultValue:"",type:"Attribute",displayName:"Light Source",name:"SunTag"},{datatype:"Float",defaultValue:1,displayName:"Size",minValue:.01,maxValue:10,name:"Size",type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"Density",minValue:.01,maxValue:1,name:"Density",type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"Decay",minValue:.01,maxValue:1,name:"Decay",type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"Weight",minValue:.01,maxValue:1,name:"Weight",type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"Exposure",minValue:.01,maxValue:1,name:"Exposure",type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"MaximumIntensity",minValue:.01,maxValue:1,name:"MaximumIntensity",type:"Attribute"},{datatype:"Integer",defaultValue:60,displayName:"Samples",minValue:0,name:"Samples",type:"Attribute"},{datatype:"Boolean",defaultValue:!0,displayName:"Blur Rays",name:"BlurRays",type:"Attribute"},{datatype:"Integer",defaultValue:2,displayName:"Kernel Size",info:"The number of kernel applied on the God Rays. A higher number yields to a better blur effect at higher computational cost",maxValue:10,minValue:0,name:"Kernel",if:{BlurRays:!0},type:"Attribute"},{datatype:"Float",defaultValue:.5,displayName:"Resolution Scale",info:"A higher resolution yields a more realistic result at higher computational cost",maxValue:1,minValue:0,name:"ResolutionScale",type:"Attribute"},{datatype:"Enum",defaultValue:"Screen",displayName:"Blending Mode",name:"BlendingMode",options:["Add","Alpha","Average","Color","Color Burn","Color Dodge","Darken","Difference","Divide","Exclusion","Hard Light","Hard Mix","Hue","Invert","Invert RGB","Lighten","Linear Burn","Linear Dodge","Linear Light","Luminosity","Multiply","Negation","Normal","Overlay","Pin Light","Reflect","Saturation","Screen","Soft Light","Set","Src","Subtract","Vivid Light"],type:"Attribute"},{datatype:"Float",defaultValue:.25,displayName:"Opacity",name:"Opacity",maxValue:1,minValue:0,type:"Attribute"},{datatype:"Boolean",defaultValue:!1,displayName:"Enable Debug",name:"Debug",type:"Attribute"}],inputs:[{displayName:"Color input",name:"ColorInput",types:["RGBImage"]},{displayName:"Depth input",name:"DepthInput",types:["GrayImage"]},{displayName:"Camera Input",name:"CameraInput",types:["Attribute"]}],outputs:[{displayName:"Color output",name:"ColorOutput",type:"RGBImage"}],typeName:"godrays"},{displayName:"Kawase Blur",fields:[{datatype:"String",defaultValue:"",displayName:"Name",name:"Name",type:"Attribute"},{datatype:"Boolean",defaultValue:!0,displayName:"Enabled",name:"Enabled",type:"Attribute"},{datatype:"Integer",defaultValue:2,displayName:"Kernel Size",info:"The number of kernel applied on the effect. A higher number yields to a better blur effect at higher computational cost",maxValue:10,minValue:0,name:"Kernel",type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"Scale",info:"The strenth of the blur effect.",maxValue:1,minValue:0,name:"Scale",type:"Attribute"}],inputs:[{displayName:"Color input",name:"ColorInput",types:["RGBImage"]}],outputs:[{displayName:"Color output",name:"ColorOutput",type:"RGBImage"}],typeName:"kawaseblur"},{displayName:"Radial blur",fields:[{datatype:"String",defaultValue:"",displayName:"Name",name:"Name",type:"Attribute"},{datatype:"Boolean",defaultValue:!0,displayName:"Enabled",name:"Enabled",type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"Amount",maxValue:10,minValue:0,name:"Amount",type:"Attribute"},{datatype:"Vector2d",defaultValue:{x:.5,y:.5},displayName:"Center",name:"Center",type:"Attribute"}],inputs:[{displayName:"Color input",name:"ColorInput",types:["RGBImage"]}],outputs:[{displayName:"Color output",name:"ColorOutput",type:"RGBImage"}],typeName:"radialBlur"},{displayName:"Tone Mapping",fields:[{datatype:"String",defaultValue:"",displayName:"Name",name:"Name",type:"Attribute"},{datatype:"Boolean",defaultValue:!0,displayName:"Enabled",name:"Enabled",type:"Attribute"},{datatype:"Enum",defaultValue:"LINEAR",displayName:"Mode",name:"TonemappingMode",options:["LINEAR","REINHARD","REINHARD2","REINHARD2_ADAPTIVE","UNCHARTED2","ACES_FILMIC","AGX","NEUTRAL"],type:"Attribute"},{datatype:"Integer",defaultValue:256,displayName:"Luminance Map Width. Must be a power of 2.",minValue:1,name:"LuminanceMapWidth",type:"Attribute",if:{TonemappingMode:"REINHARD2_ADAPTIVE"}},{datatype:"Integer",defaultValue:256,displayName:"Luminance Map Height. Must be a power of 2.",if:{TonemappingMode:"REINHARD2_ADAPTIVE"},minValue:1,name:"LuminanceMapHeight",type:"Attribute"},{datatype:"Float",defaultValue:4,displayName:"Maximum Luminance",minValue:0,maxValue:20,name:"MaxLuminance",type:"Attribute"},{datatype:"Float",defaultValue:.01,displayName:"Minimum Luminance",minValue:0,maxValue:3,name:"MinLuminance",type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"Average Luminance",minValue:0,maxValue:1,name:"MeanLuminance",type:"Attribute"},{datatype:"Float",defaultValue:.6,displayName:"Middle Grey",maxValue:1,minValue:0,name:"MiddleGrey",type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"Adaptation Rate",minValue:0,name:"AdaptationRate",type:"Attribute"}],inputs:[{displayName:"Color input",name:"ColorInput",types:["RGBImage"]}],outputs:[{displayName:"Color output",name:"ColorOutput",type:"RGBImage"}],typeName:"tonemapping"},{displayName:"Output",fields:[{datatype:"String",defaultValue:"Output",displayName:"Name",name:"Name",type:"Attribute"},{datatype:"Integer",defaultValue:256,displayName:"Desired width",minValue:1,name:"DesiredWidth",type:"Attribute"},{datatype:"Integer",defaultValue:256,displayName:"Desired height",minValue:1,name:"DesiredHeight",type:"Attribute"}],inputs:[{displayName:"Color input",name:"ColorInput",types:["RGBImage"]}],outputs:[],typeName:"output"}],name:"NodeGraph",type:"NodeGraph"}],name:"Composition",updateRequiresThumbRefresh:!1,creatableEmpty:!0},{_id:{$oid:"5e6a1ad189707f2ef9147396"},contentTypes:[],fieldSets:[],fields:[],name:"Behavior",updateRequiresThumbRefresh:!1,creatableEmpty:!1},{_id:{$oid:"5e6a1ad189707feef9173398"},contentTypes:["text/x-glsl"],fieldSets:[],fields:[{datatype:"Enum",defaultValue:1,displayName:"GLSL Version",name:"GLSLVersion",options:[1,3],type:"Attribute"},{datatype:"Enum",defaultValue:"Full",displayName:"Resolution",name:"Resolution",options:["Full","Half","Quarter"],type:"Attribute"},{displayName:"Texture Channel 1",linkableTypes:["Image"],type:"Link",usageAs:"TexChannel1"},{displayName:"Texture Channel 2",linkableTypes:["Image"],type:"Link",usageAs:"TexChannel2"},{displayName:"Texture Channel 3",linkableTypes:["Image"],type:"Link",usageAs:"TexChannel3"},{displayName:"Texture Channel 4",linkableTypes:["Image"],type:"Link",usageAs:"TexChannel4"}],name:"Background Shader",updateRequiresThumbRefresh:!1,creatableEmpty:!0},{_id:{$oid:"5e6a1ad189707feef9173399"},contentTypes:["video/mp4","video/webm"],fieldSets:[],fields:[{datatype:"Enum",defaultValue:"Linear",displayName:"Encoding",name:"Encoding",options:["Linear","sRGB"],type:"Attribute"}],name:"Video",creatableEmpty:!1},{_id:{$oid:"5e8c9d5c02a37596bb1fd5b6"},contentTypes:[""],fieldSets:[],fields:[{elementName:"Item",fields:[{datatype:"String",defaultValue:"",displayName:"Description",name:"Description",type:"Attribute"},{type:"Link",usageAs:"Item",mandatory:!0}],name:"Items",type:"List"}],name:"Collection",creatableEmpty:!0},{_id:{$oid:"5e8c9d5c02a33596bb53d5b6"},contentTypes:[""],fieldSets:[],fields:[{displayName:"Audio items",elementName:"AudioItem",fields:[{datatype:"String",defaultValue:"",displayName:"Name",name:"Name",type:"Attribute"},{linkableTypes:["Audio"],type:"Link",usageAs:"Audio",mandatory:!0}],name:"AudioItems",type:"List"}],name:"Audio Collection",creatableEmpty:!0},{_id:{$oid:"5e8c9d5c01a32576bb53d5b6"},contentTypes:[""],fieldSets:[],fields:[{displayName:"Mesh items",elementName:"MeshItem",fields:[{datatype:"String",defaultValue:"",displayName:"Name",name:"Name",type:"Attribute"},{linkableTypes:["Mesh"],type:"Link",usageAs:"Mesh",mandatory:!0}],name:"MeshItems",type:"List"}],name:"Mesh Collection",creatableEmpty:!0},{_id:{$oid:"5e8c9d5c0233596cb31d5ba2"},contentTypes:[""],fieldSets:[],fields:[{displayName:"Material items",elementName:"MaterialItem",fields:[{datatype:"String",defaultValue:"",displayName:"Name",name:"Name",type:"Attribute"},{linkableTypes:["Material"],type:"Link",usageAs:"Material",mandatory:!0}],name:"MaterialItems",type:"List"}],name:"Material Collection",creatableEmpty:!0},{_id:{$oid:"5edf2f6edc25bdf4e5723e52"},contentTypes:["text/x-yaml"],fieldSets:[],fields:[{displayName:"Material collections",elementName:"Material Collection",fields:[{linkableTypes:["Material Collection"],type:"Link",usageAs:"MaterialCollection",displayName:"Material Collection",mandatory:!0}],name:"MaterialCollections",type:"List"},{displayName:"Mesh collections",elementName:"Mesh Collection",fields:[{linkableTypes:["Mesh Collection"],type:"Link",usageAs:"MeshCollection",displayName:"Mesh Collection",mandatory:!0}],name:"MeshCollections",type:"List"}],name:"GridMap",creatableEmpty:!0},{_id:{$oid:"60827c20d3f7a631e71522cc"},contentTypes:[],fieldSets:[],fields:[],name:"Dataset",creatableEmpty:!1},{_id:{$oid:"62133ff41302cfcd0d9a2346"},contentTypes:["text/x-glsl"],fieldSets:[],fields:[],name:"Pixel Shader",updateRequiresThumbRefresh:!1,creatableEmpty:!0},{_id:{$oid:"62133ffb1302cf53ef9a234e"},contentTypes:["text/x-glsl"],fieldSets:[],fields:[],name:"Vertex Shader",updateRequiresThumbRefresh:!1,creatableEmpty:!0},{_id:{$oid:"62a83a1ef46738fe096fd7e3"},contentTypes:["application/zip"],fieldSets:[],fields:[],name:"Archive",updateRequiresThumbRefresh:!1,creatableEmpty:!1},{_id:{$oid:"640076f0e49250ab06ea4aec"},contentTypes:["font/ttf","font/otf"],fieldSets:[],fields:[],name:"Font",updateRequiresThumbRefresh:!0,creatableEmpty:!1},{_id:{$oid:"6463df676055450cac673d90"},contentTypes:[],fieldSets:[],fields:[{label:"General Settings",type:"Separator"},{datatype:"Integer",defaultValue:1e3,displayName:"Maximum Number of Particles",info:"The maximum number of particles that can exist at the same time in the simulation.",minValue:0,name:"MaxParticles",type:"Attribute"},{datatype:"Float",defaultValue:-1,displayName:"Duration",info:"Duration (in seconds) the particle system runs. Use -1 for infinite duration.",minValue:-1,name:"Duration",type:"Attribute"},{datatype:"Enum",defaultValue:"Local",displayName:"Coordinate System",info:"Defines whether particle movement is relative to the emitter's local space or the global world space.",name:"SystemCoordinates",options:["Local","World"],type:"Attribute"},{label:"Emission Settings",type:"Separator",collapsed:!0},{datatype:"Boolean",defaultValue:!1,displayName:"Emit All At Once",info:"Emit all particles immediately when the simulation starts.",name:"EmitAllAtOnce",type:"Attribute"},{datatype:"Float",defaultValue:128,minValue:0,displayName:"Spawn amount",if:{EmitAllAtOnce:!1},info:"The number of particles emitted each time the emitter spawns.",name:"SpawnAmount",type:"Attribute"},{datatype:"Float",defaultValue:1,minValue:0,displayName:"Spawn Interval",info:"The time, in seconds, between each consecutive spawn of particles.",if:{EmitAllAtOnce:!1},name:"SpawnRate",type:"Attribute"},{datatype:"Float",defaultValue:-1,minValue:-1,displayName:"Number of Emissions",info:"Total number of spawn events before emission stops; after this number of emissions, no more particles will be emitted.",if:{EmitAllAtOnce:!1},name:"MaximumEmissions",type:"Attribute"},{datatype:"Boolean",defaultValue:!1,displayName:"Continuous emission",info:"If enabled, particles in each emission spawn gradually over time instead of instantly.",if:{EmitAllAtOnce:!1},name:"ContinuousEmissionFlag",type:"Attribute"},{datatype:"Boolean",defaultValue:!1,displayName:"Auto Respawn",info:"Automatically respawn particles when they die.",name:"Respawn",type:"Attribute",if:{EmitAllAtOnce:!0}},{label:"Size Settings",type:"Separator",collapsed:!0},{datatype:"Enum",defaultValue:"Constant",options:["Constant","Variable","Velocity"],displayName:"Scaling Mode",info:"Determines how particle size changes over their lifetime: constant size, variable scaling, or based on velocity.",name:"ScaleMode",type:"Attribute"},{datatype:"Float",defaultValue:10,displayName:"Base Size",info:"The size of the particles at emission",minValue:0,name:"ParticleInitialSize",type:"Attribute"},{datatype:"Float",defaultValue:15,displayName:"Final Size",info:"The size particles reach at the end of their lifetime. If particles die early, they may not reach their final size.",minValue:0,name:"ParticleFinalSize",type:"Attribute",if:{ScaleMode:"Variable"}},{datatype:"Float",displayName:"Scale Randomness",name:"ScaleRandomness",defaultValue:.1,minValue:0,maxValue:1,info:"Random variation applied to scale curve values."},{datatype:"Enum",defaultValue:"Linear",options:["Linear","Exponential","Inverse Exponential","Ease-in, Ease-out"],displayName:"Interpolation Function",info:"Interpolation method for scaling particles over their lifetime.",type:"Attribute",name:"ScaleFunction",if:{ScaleMode:"Variable"}},{datatype:"Float",defaultValue:.5,minValue:0,maxValue:5,if:{ScaleMode:"Variable",$or:[{ScaleFunction:"Exponential"},{ScaleFunction:"Inverse Exponential"},{ScaleFunction:"Ease-in, Ease-out"}]},displayName:"Interpolation Rate",name:"ApproachSize",info:"Controls the rate at which particles scale over time based on the interpolation modes.",type:"Attribute"},{label:"Velocity Settings",type:"Separator",collapsed:!0},{datatype:"Enum",defaultValue:"Constant",options:["Constant","Variable"],displayName:"Velocity Mode",info:"Determines if particles maintain a constant velocity or change velocity over their lifetime.",name:"VelocityMode",type:"Attribute"},{datatype:"Vector3d",defaultValue:{x:0,y:0,z:0},displayName:"Initial Velocity",info:"The starting velocity of particles when emitted.",name:"InitialVelocity",type:"Attribute"},{datatype:"Vector3d",defaultValue:{x:0,y:0,z:0},displayName:"Final Velocity",info:"The velocity particles will reach by the end of their lifetime. Used only when Velocity Mode is set to Variable.",name:"FinalVelocity",type:"Attribute",if:{VelocityMode:"Variable"}},{datatype:"Enum",defaultValue:"Linear",options:["Linear","Exponential","Inverse Exponential","Ease-in, Ease-out"],displayName:"Interpolation Function",info:"Defines the interpolation method for velocity changes over the particle’s lifetime.",name:"VelocityFunction",type:"Attribute",if:{VelocityMode:"Variable"}},{datatype:"Float",defaultValue:.5,displayName:"Interpolation Rate",info:"Controls the rate at which particles transition from initial to final velocity for the interpolation modes.",maxValue:5,minValue:0,name:"FinalVelocityApproach",type:"Attribute",if:{VelocityMode:"Variable",$or:[{VelocityFunction:"Exponential"},{VelocityFunction:"Inverse Exponential"},{VelocityFunction:"Ease-in, Ease-out"}]}},{datatype:"Float",defaultValue:0,displayName:"Spread",info:"Randomly offsets the emission angle (in degrees) from the base direction. A value of 360° emits particles uniformly in all directions. Requires Initial Velocity not be a 0-vector to have any effect.",maxValue:360,minValue:0,name:"Spread",type:"Attribute"},{datatype:"Float",defaultValue:0,displayName:"Angular Velocity",info:"The speed at which particles rotate around their center of mass, in radians per second.",minValue:0,name:"AngularVelocity",type:"Attribute",if:{$or:[{ParticleType:"Texture"},{ParticleType:"Sprite"}]}},{datatype:"Enum",defaultValue:"Clockwise",options:["Clockwise","Anticlockwise"],displayName:"Rotation Direction",info:"Controls the rotation direction of particles.",name:"AngularDirection",type:"Attribute",if:{$or:[{ParticleType:"Texture"},{ParticleType:"Sprite"}]}},{datatype:"Float",defaultValue:0,displayName:"Rotation Randomness",info:"Random variation applied to particle angular velocity. 0 = all particles rotate at the same speed, 1 = each particle can vary ±100% of base angular velocity.",minValue:0,maxValue:1,name:"RotationRandomness",type:"Attribute",if:{$or:[{ParticleType:"Texture"},{ParticleType:"Sprite"}]}},{label:"Force Settings",type:"Separator",collapsed:!0},{datatype:"Float",defaultValue:0,displayName:"Drift",info:"A random velocity added to particles in all directions to simulate drifting motion.",name:"Drift",type:"Attribute"},{datatype:"Float",defaultValue:0,displayName:"Gravity",info:"A constant acceleration applied to particles after emission, simulating gravity. Positive values pull particles downward; negative values pull them upward.",name:"Gravity",type:"Attribute"},{datatype:"Float",defaultValue:0,displayName:"Tangential Velocity",info:"Applies a tangential velocity to particles, causing them to orbit the center point along the defined orbital plane.",name:"OrbitalVelocity",type:"Attribute"},{datatype:"Vector3d",defaultValue:{x:0,y:0,z:0},displayName:"Orbit Center",info:"The point in 3D space around which particles orbit.",name:"OrbitalCenterPoint",type:"Attribute"},{datatype:"Vector3d",defaultValue:{x:0,y:1,z:0},displayName:"Orbital Plane",info:"A vector normal that defines the orientation of the orbital plane. Particles orbit around an axis perpendicular to this vector. Should be normalized (length = 1), but normalization is not enforced.",name:"OrbitalPlane",type:"Attribute"},{datatype:"Float",defaultValue:0,displayName:"Orbital Decay",info:"Causes particles to gradually spiral inward toward the orbital center over time.",name:"OrbitalDecay",type:"Attribute"},{datatype:"Vector3d",defaultValue:{x:0,y:0,z:0},displayName:"Target",info:"A 3D point in space that particles are attracted to.",name:"Target",type:"Attribute"},{datatype:"Float",defaultValue:0,displayName:"Target Force",info:"The strength of the attraction force pulling particles toward the target. Set to 0 to disable.",name:"TargetForce",type:"Attribute"},{datatype:"Boolean",defaultValue:!1,displayName:"Kill on target",info:"If enabled, particles are deleted once they reach the target position.",name:"TargetDeleteFlag",type:"Attribute"},{datatype:"Float",defaultValue:.1,if:{TargetDeleteFlag:!0},displayName:"Target Deletion Threshold",info:"The distance from the target at which particles are deleted.",minValue:0,name:"TargetDeletionThreshold",type:"Attribute"},{label:"Life Settings",type:"Separator",collapsed:!0},{datatype:"Float",defaultValue:10,displayName:"Life",info:"Time in seconds each particle remains alive before disappearing.",minValue:0,name:"Life",type:"Attribute"},{datatype:"Float",defaultValue:0,displayName:"Life Randomness",info:"Adds randomness, in seconds, to particle lifetimes. Each particle's life is calculated as: life + random(0 to 1) x life randomness.",minValue:0,name:"LifeRandomness",type:"Attribute"},{label:"Texture and Color Settings",type:"Separator",collapsed:!0},{datatype:"Enum",defaultValue:"Base",name:"ParticleType",info:"Defines the rendering style of particles: Base (simple points), Texture (image-based), or Sprite (animated images).",options:["Base","Texture","Sprite"],type:"Attribute"},{displayName:"Texture",info:"Image used as the particle’s texture.",if:{$or:[{ParticleType:"Texture"},{ParticleType:"Sprite"}]},linkableTypes:["Image"],type:"Link",usageAs:"ParticleTexture"},{datatype:"Boolean",defaultValue:!0,displayName:"Circular Mask",info:"Applies a circular alpha mask to the texture or sprite, making only the circular area visible while masking out the corners.",name:"useCircularMask",type:"Attribute"},{datatype:"Float",defaultValue:0,displayName:"Texture hue",info:"Amount of hue shift applied to the particle texture, expressed as a normalized value from 0 to 1, where 0 corresponds to 0 radians (0°) and 1 corresponds to 2π radians (360°).",minValue:0,maxValue:1,name:"TextureHue",type:"Attribute"},{datatype:"Boolean",defaultValue:!1,name:"TextureBlending",displayName:"Texture Blending",info:"If enabled, blends the particle texture with the background or other particles for smoother visuals.",if:{$or:[{ParticleType:"Texture"},{ParticleType:"Sprite"}]},type:"Attribute"},{datatype:"Color",defaultValue:{a:255,b:255,g:255,r:255},displayName:"Particle Color",info:"Base color applied to particles at emission.",if:{$or:[{ParticleType:"Base"},{TextureBlending:!0}]},name:"Color",type:"Attribute"},{datatype:"Boolean",defaultValue:!1,displayName:"Use Final Color",info:"Enable color transition so particles interpolate to a specified final color at the end of their lifetime.",if:{$or:[{ParticleType:"Base"},{TextureBlending:!0}]},name:"EnableFinalColor",type:"Attribute"},{datatype:"Color",defaultValue:{a:255,b:255,g:255,r:255},displayName:"Final Color",info:"The color particles interpolate to at the end of their life.",if:{EnableFinalColor:!0,$or:[{ParticleType:"Base"},{TextureBlending:!0}]},name:"FinalColor",type:"Attribute"},{datatype:"Float",defaultValue:0,displayName:"Random Color Factor",info:"Linearly blends each particle's color with a unique random tint. 0 = no randomness, 1 = full random color.",if:{$or:[{ParticleType:"Base"},{TextureBlending:!0}]},minValue:0,maxValue:1,name:"RandomColorFactor",type:"Attribute"},{datatype:"Boolean",defaultValue:!1,displayName:"Enable Sprite Fade",if:{ParticleType:"Sprite"},info:"Allows the sprite to smoothly fade in and fade, creating a softer transition.",name:"EnableSpriteFade",type:"Attribute"},{datatype:"Boolean",defaultValue:!1,displayName:"Roll Sprite Texture With Particle's Life",if:{ParticleType:"Sprite"},info:"Enable the sprite to animate by rolling through its frames based on the particle's lifetime.",name:"RollSpriteWithLife",type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"Sprite Speed",if:{ParticleType:"Sprite",RollSpriteWithLife:!1},info:"Speed, in frames per seconds, at which the sprite animation advances over time.",minValue:0,name:"SpriteSpeed",type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"Sprite Cols",if:{ParticleType:"Sprite"},info:"Number of horizontal frames (columns) in the sprite sheet. Must be specified manually. Incorrect values may cause improper animation.",minValue:1,name:"SpriteColumns",type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"Sprite Rows",if:{ParticleType:"Sprite"},info:"Number of vertical frames (rows) in the sprite sheet. Must be specified manually. Incorrect values may cause improper animation.",minValue:1,name:"SpriteRows",type:"Attribute"},{label:"Blending Settings",type:"Separator",collapsed:!0},{datatype:"Enum",defaultValue:"Normal",displayName:"Blending Mode",name:"BlendingMode",options:["Add","Multiply","Negation","Normal","Subtract"],type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"Blend amount",info:"Adjusts how strongly the blending mode affects the final result.",maxValue:1,minValue:0,name:"Opacity",type:"Attribute",widget:"Slider"},{label:"Fade Settings",type:"Separator",collapsed:!0},{datatype:"Enum",defaultValue:"Constant",options:["Constant","Variable"],displayName:"Fading Mode",info:"Determines how particle opacity changes: constant transparency, fade over lifetime, or based on velocity.",name:"FadeMode",type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"Initial Opacity",info:"The opacity of particles when they are first emitted (0.0 = transparent, 1.0 = opaque)",minValue:0,maxValue:1,name:"ParticleInitialOpacity",type:"Attribute"},{datatype:"Float",defaultValue:0,displayName:"Final Opacity",info:"The opacity particles reach at the end of their lifetime. Creates fade-out effect when lower than initial opacity.",minValue:0,maxValue:1,name:"ParticleFinalOpacity",type:"Attribute",if:{FadeMode:"Variable"}},{datatype:"Enum",defaultValue:"Linear",options:["Linear","Exponential","Inverse Exponential","Ease-in, Ease-out"],displayName:"Fade Interpolation",info:"Controls how smoothly particles fade between initial and final opacity over their lifetime.",type:"Attribute",name:"FadeFunction",if:{FadeMode:"Variable"}},{datatype:"Float",defaultValue:1,minValue:.1,maxValue:5,if:{FadeMode:"Variable",$or:[{FadeFunction:"Exponential"},{FadeFunction:"Inverse Exponential"},{FadeFunction:"Ease-in, Ease-out"}]},displayName:"Fade Rate",name:"FadeApproach",info:"Controls how quickly the fade transition occurs. Higher values create sharper transitions, lower values create gentler fades.",type:"Attribute"},{label:"Emission Settings",type:"Separator",collapsed:!0},{datatype:"Enum",defaultValue:"Box",name:"EmitterShape",displayName:"Emitter Shape",info:"Defines the geometric shape from which particles are emitted.",options:["Point","Box","Sphere","Hemisphere","Torus","Cone","Circle","Edge"],type:"Attribute"},{datatype:"Enum",defaultValue:"Volume",name:"EmitterTypeSurfaceVolumeNormal",displayName:"Emitter Type",info:"Specifies whether particles are emitted from the surface, volume, or along the normals of the shape.",options:["Surface","Volume","Normals"],if:{$or:[{EmitterShape:"Box"},{EmitterShape:"Sphere"},{EmitterShape:"Cone"}]},type:"Attribute"},{datatype:"Enum",defaultValue:"Volume",name:"EmitterTypeSurfaceVolume",info:"Specifies whether particles are emitted from the surface or volume of the shape.",displayName:"Emitter Type",options:["Surface","Volume"],if:{$or:[{EmitterShape:"Hemisphere"},{EmitterShape:"Torus"}]},type:"Attribute"},{datatype:"Float",defaultValue:10,displayName:"Velocity Along Normals.",info:"Speed at which particles are emitted along the surface normals.",if:{EmitterTypeSurfaceVolumeNormal:"Normals"},minValue:0,name:"NormalsVelocity",type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"The size of the emitter.",info:"Defines the size of the emitter.",if:{$or:[{EmitterShape:"Box"}]},minValue:0,name:"EmitterSize",type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"The radius of the emitter.",if:{$or:[{EmitterShape:"Torus"},{EmitterShape:"Cone"},{EmitterShape:"Sphere"},{EmitterShape:"Hemisphere"},{EmitterShape:"Circle"}]},minValue:0,name:"EmitterRadius",type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"The outer radius of the emitter",if:{$or:[{EmitterShape:"Torus"}]},minValue:0,name:"EmitterOuterRadius",type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"The height of the emitter",if:{$or:[{EmitterShape:"Cone"},{EmitterShape:"Edge"}]},minValue:0,name:"EmitterHeight",type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"The width of the emitter.",if:{$or:[{EmitterShape:"Edge"}]},minValue:0,name:"EmitterWidth",type:"Attribute"},{datatype:"Boolean",defaultValue:!1,displayName:"Round Tip",if:{$or:[{EmitterShape:"Cone"}]},info:"Round the tip of the cone instead of using a sharp point.",name:"EmitterRoundTip",type:"Attribute"},{label:"Bounding Box Settings",type:"Separator",collapsed:!0},{datatype:"Boolean",defaultValue:!1,displayName:"Enable Bounding Box",info:"Enable a bounding box to restrict particles within a defined 3D area.",name:"EnableBBox",type:"Attribute"},{datatype:"Vector3d",defaultValue:{x:10,y:10,z:10},info:"Coordinates of the bounding box's maximum corner (upper-right-front).",name:"BBoxMax",displayName:"Bounding Box Maximum Corner",if:{EnableBBox:!0},type:"Attribute"},{datatype:"Vector3d",defaultValue:{x:0,y:0,z:0},info:"Coordinates of the bounding box's minimum corner (lower-left-back).",name:"BBoxMin",displayName:"Bounding Box Minimum Corner",if:{EnableBBox:!0},type:"Attribute"},{label:"Curl Noise Settings",type:"Separator",collapsed:!0},{datatype:"Boolean",defaultValue:!1,displayName:"Enable Curl Noise",info:"Toggle curl noise effect on particles to simulate turbulent, swirling particle behavior.",name:"NoiseFlag",type:"Attribute"},{datatype:"NoisePreview",if:{NoiseFlag:!0},displayName:"Noise Preview",info:"Visual preview of the curl noise pattern applied to the particle system.",name:"NoisePreview",type:"Attribute"},{datatype:"Float",defaultValue:0,displayName:"Noise Strength",if:{NoiseFlag:!0},info:"Controls the intensity of the noise.",name:"NoiseStrength",type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"Noise Frequency",if:{NoiseFlag:!0},info:"Determines the smoothness of the noise: lower values produce smooth, slow variations; higher values produce rapid, detailed changes.",name:"NoiseFrequency",type:"Attribute"},{datatype:"Integer",defaultValue:1,displayName:"Noise Octaves",if:{NoiseFlag:!0},info:"Number of noise layers combined to create complexity. Higher octaves add detail but reduce performance.",name:"NoiseOctaves",type:"Attribute"}],name:"Particles",updateRequiresThumbRefresh:!1,creatableEmpty:!0}];function R(e,t=!1){let a=L.find((t=>t.name===e));if(!a)return null;if(a=structuredClone(a),a.fields=a.fields||[],a.fieldSets=a.fieldSets||[],t&&a.inherits){const e=R(a.inherits,!0);e&&(a.fields=[...e.fields,...a.fields],a.fieldSets=[...e.fieldSets,...a.fieldSets])}return a}var P="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function O(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function B(e){throw new Error('Could not dynamically require "'+e+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var $,j={exports:{}};var U,z=($||($=1,(U=j).exports=function(){var e,t;function a(){return e.apply(null,arguments)}function i(t){e=t}function n(e){return e instanceof Array||"[object Array]"===Object.prototype.toString.call(e)}function r(e){return null!=e&&"[object Object]"===Object.prototype.toString.call(e)}function s(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function o(e){if(Object.getOwnPropertyNames)return 0===Object.getOwnPropertyNames(e).length;var t;for(t in e)if(s(e,t))return!1;return!0}function l(e){return void 0===e}function u(e){return"number"==typeof e||"[object Number]"===Object.prototype.toString.call(e)}function c(e){return e instanceof Date||"[object Date]"===Object.prototype.toString.call(e)}function d(e,t){var a,i=[],n=e.length;for(a=0;a<n;++a)i.push(t(e[a],a));return i}function p(e,t){for(var a in t)s(t,a)&&(e[a]=t[a]);return s(t,"toString")&&(e.toString=t.toString),s(t,"valueOf")&&(e.valueOf=t.valueOf),e}function h(e,t,a,i){return qa(e,t,a,i,!0).utc()}function f(){return{empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidEra:null,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1,parsedDateParts:[],era:null,meridiem:null,rfc2822:!1,weekdayMismatch:!1}}function m(e){return null==e._pf&&(e._pf=f()),e._pf}function y(e){var a=null,i=!1,n=e._d&&!isNaN(e._d.getTime());return n&&(a=m(e),i=t.call(a.parsedDateParts,(function(e){return null!=e})),n=a.overflow<0&&!a.empty&&!a.invalidEra&&!a.invalidMonth&&!a.invalidWeekday&&!a.weekdayMismatch&&!a.nullInput&&!a.invalidFormat&&!a.userInvalidated&&(!a.meridiem||a.meridiem&&i),e._strict&&(n=n&&0===a.charsLeftOver&&0===a.unusedTokens.length&&void 0===a.bigHour)),null!=Object.isFrozen&&Object.isFrozen(e)?n:(e._isValid=n,e._isValid)}function g(e){var t=h(NaN);return null!=e?p(m(t),e):m(t).userInvalidated=!0,t}t=Array.prototype.some?Array.prototype.some:function(e){var t,a=Object(this),i=a.length>>>0;for(t=0;t<i;t++)if(t in a&&e.call(this,a[t],t,a))return!0;return!1};var b=a.momentProperties=[],v=!1;function _(e,t){var a,i,n,r=b.length;if(l(t._isAMomentObject)||(e._isAMomentObject=t._isAMomentObject),l(t._i)||(e._i=t._i),l(t._f)||(e._f=t._f),l(t._l)||(e._l=t._l),l(t._strict)||(e._strict=t._strict),l(t._tzm)||(e._tzm=t._tzm),l(t._isUTC)||(e._isUTC=t._isUTC),l(t._offset)||(e._offset=t._offset),l(t._pf)||(e._pf=m(t)),l(t._locale)||(e._locale=t._locale),r>0)for(a=0;a<r;a++)l(n=t[i=b[a]])||(e[i]=n);return e}function w(e){_(this,e),this._d=new Date(null!=e._d?e._d.getTime():NaN),this.isValid()||(this._d=new Date(NaN)),!1===v&&(v=!0,a.updateOffset(this),v=!1)}function A(e){return e instanceof w||null!=e&&null!=e._isAMomentObject}function k(e){!1===a.suppressDeprecationWarnings&&"undefined"!=typeof console&&console.warn&&console.warn("Deprecation warning: "+e)}function S(e,t){var i=!0;return p((function(){if(null!=a.deprecationHandler&&a.deprecationHandler(null,e),i){var n,r,o,l=[],u=arguments.length;for(r=0;r<u;r++){if(n="","object"==typeof arguments[r]){for(o in n+="\n["+r+"] ",arguments[0])s(arguments[0],o)&&(n+=o+": "+arguments[0][o]+", ");n=n.slice(0,-2)}else n=arguments[r];l.push(n)}k(e+"\nArguments: "+Array.prototype.slice.call(l).join("")+"\n"+(new Error).stack),i=!1}return t.apply(this,arguments)}),t)}var N,x={};function T(e,t){null!=a.deprecationHandler&&a.deprecationHandler(e,t),x[e]||(k(t),x[e]=!0)}function M(e){return"undefined"!=typeof Function&&e instanceof Function||"[object Function]"===Object.prototype.toString.call(e)}function V(e){var t,a;for(a in e)s(e,a)&&(M(t=e[a])?this[a]=t:this["_"+a]=t);this._config=e,this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+"|"+/\d{1,2}/.source)}function C(e,t){var a,i=p({},e);for(a in t)s(t,a)&&(r(e[a])&&r(t[a])?(i[a]={},p(i[a],e[a]),p(i[a],t[a])):null!=t[a]?i[a]=t[a]:delete i[a]);for(a in e)s(e,a)&&!s(t,a)&&r(e[a])&&(i[a]=p({},i[a]));return i}function I(e){null!=e&&this.set(e)}a.suppressDeprecationWarnings=!1,a.deprecationHandler=null,N=Object.keys?Object.keys:function(e){var t,a=[];for(t in e)s(e,t)&&a.push(t);return a};var F={sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"};function E(e,t,a){var i=this._calendar[e]||this._calendar.sameElse;return M(i)?i.call(t,a):i}function D(e,t,a){var i=""+Math.abs(e),n=t-i.length;return(e>=0?a?"+":"":"-")+Math.pow(10,Math.max(0,n)).toString().substr(1)+i}var L=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,R=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,P={},O={};function $(e,t,a,i){var n=i;"string"==typeof i&&(n=function(){return this[i]()}),e&&(O[e]=n),t&&(O[t[0]]=function(){return D(n.apply(this,arguments),t[1],t[2])}),a&&(O[a]=function(){return this.localeData().ordinal(n.apply(this,arguments),e)})}function j(e){return e.match(/\[[\s\S]/)?e.replace(/^\[|\]$/g,""):e.replace(/\\/g,"")}function z(e){var t,a,i=e.match(L);for(t=0,a=i.length;t<a;t++)O[i[t]]?i[t]=O[i[t]]:i[t]=j(i[t]);return function(t){var n,r="";for(n=0;n<a;n++)r+=M(i[n])?i[n].call(t,e):i[n];return r}}function W(e,t){return e.isValid()?(t=H(t,e.localeData()),P[t]=P[t]||z(t),P[t](e)):e.localeData().invalidDate()}function H(e,t){var a=5;function i(e){return t.longDateFormat(e)||e}for(R.lastIndex=0;a>=0&&R.test(e);)e=e.replace(R,i),R.lastIndex=0,a-=1;return e}var Y={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"};function G(e){var t=this._longDateFormat[e],a=this._longDateFormat[e.toUpperCase()];return t||!a?t:(this._longDateFormat[e]=a.match(L).map((function(e){return"MMMM"===e||"MM"===e||"DD"===e||"dddd"===e?e.slice(1):e})).join(""),this._longDateFormat[e])}var q="Invalid date";function Z(){return this._invalidDate}var J="%d",K=/\d{1,2}/;function X(e){return this._ordinal.replace("%d",e)}var Q={future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",w:"a week",ww:"%d weeks",M:"a month",MM:"%d months",y:"a year",yy:"%d years"};function ee(e,t,a,i){var n=this._relativeTime[a];return M(n)?n(e,t,a,i):n.replace(/%d/i,e)}function te(e,t){var a=this._relativeTime[e>0?"future":"past"];return M(a)?a(t):a.replace(/%s/i,t)}var ae={D:"date",dates:"date",date:"date",d:"day",days:"day",day:"day",e:"weekday",weekdays:"weekday",weekday:"weekday",E:"isoWeekday",isoweekdays:"isoWeekday",isoweekday:"isoWeekday",DDD:"dayOfYear",dayofyears:"dayOfYear",dayofyear:"dayOfYear",h:"hour",hours:"hour",hour:"hour",ms:"millisecond",milliseconds:"millisecond",millisecond:"millisecond",m:"minute",minutes:"minute",minute:"minute",M:"month",months:"month",month:"month",Q:"quarter",quarters:"quarter",quarter:"quarter",s:"second",seconds:"second",second:"second",gg:"weekYear",weekyears:"weekYear",weekyear:"weekYear",GG:"isoWeekYear",isoweekyears:"isoWeekYear",isoweekyear:"isoWeekYear",w:"week",weeks:"week",week:"week",W:"isoWeek",isoweeks:"isoWeek",isoweek:"isoWeek",y:"year",years:"year",year:"year"};function ie(e){return"string"==typeof e?ae[e]||ae[e.toLowerCase()]:void 0}function ne(e){var t,a,i={};for(a in e)s(e,a)&&(t=ie(a))&&(i[t]=e[a]);return i}var re={date:9,day:11,weekday:11,isoWeekday:11,dayOfYear:4,hour:13,millisecond:16,minute:14,month:8,quarter:7,second:15,weekYear:1,isoWeekYear:1,week:5,isoWeek:5,year:1};function se(e){var t,a=[];for(t in e)s(e,t)&&a.push({unit:t,priority:re[t]});return a.sort((function(e,t){return e.priority-t.priority})),a}var oe,le=/\d/,ue=/\d\d/,ce=/\d{3}/,de=/\d{4}/,pe=/[+-]?\d{6}/,he=/\d\d?/,fe=/\d\d\d\d?/,me=/\d\d\d\d\d\d?/,ye=/\d{1,3}/,ge=/\d{1,4}/,be=/[+-]?\d{1,6}/,ve=/\d+/,_e=/[+-]?\d+/,we=/Z|[+-]\d\d:?\d\d/gi,Ae=/Z|[+-]\d\d(?::?\d\d)?/gi,ke=/[+-]?\d+(\.\d{1,3})?/,Se=/[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i,Ne=/^[1-9]\d?/,xe=/^([1-9]\d|\d)/;function Te(e,t,a){oe[e]=M(t)?t:function(e,i){return e&&a?a:t}}function Me(e,t){return s(oe,e)?oe[e](t._strict,t._locale):new RegExp(Ve(e))}function Ve(e){return Ce(e.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,(function(e,t,a,i,n){return t||a||i||n})))}function Ce(e){return e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function Ie(e){return e<0?Math.ceil(e)||0:Math.floor(e)}function Fe(e){var t=+e,a=0;return 0!==t&&isFinite(t)&&(a=Ie(t)),a}oe={};var Ee={};function De(e,t){var a,i,n=t;for("string"==typeof e&&(e=[e]),u(t)&&(n=function(e,a){a[t]=Fe(e)}),i=e.length,a=0;a<i;a++)Ee[e[a]]=n}function Le(e,t){De(e,(function(e,a,i,n){i._w=i._w||{},t(e,i._w,i,n)}))}function Re(e,t,a){null!=t&&s(Ee,e)&&Ee[e](t,a._a,a,e)}function Pe(e){return e%4==0&&e%100!=0||e%400==0}var Oe=0,Be=1,$e=2,je=3,Ue=4,ze=5,We=6,He=7,Ye=8;function Ge(e){return Pe(e)?366:365}$("Y",0,0,(function(){var e=this.year();return e<=9999?D(e,4):"+"+e})),$(0,["YY",2],0,(function(){return this.year()%100})),$(0,["YYYY",4],0,"year"),$(0,["YYYYY",5],0,"year"),$(0,["YYYYYY",6,!0],0,"year"),Te("Y",_e),Te("YY",he,ue),Te("YYYY",ge,de),Te("YYYYY",be,pe),Te("YYYYYY",be,pe),De(["YYYYY","YYYYYY"],Oe),De("YYYY",(function(e,t){t[Oe]=2===e.length?a.parseTwoDigitYear(e):Fe(e)})),De("YY",(function(e,t){t[Oe]=a.parseTwoDigitYear(e)})),De("Y",(function(e,t){t[Oe]=parseInt(e,10)})),a.parseTwoDigitYear=function(e){return Fe(e)+(Fe(e)>68?1900:2e3)};var qe,Ze=Ke("FullYear",!0);function Je(){return Pe(this.year())}function Ke(e,t){return function(i){return null!=i?(Qe(this,e,i),a.updateOffset(this,t),this):Xe(this,e)}}function Xe(e,t){if(!e.isValid())return NaN;var a=e._d,i=e._isUTC;switch(t){case"Milliseconds":return i?a.getUTCMilliseconds():a.getMilliseconds();case"Seconds":return i?a.getUTCSeconds():a.getSeconds();case"Minutes":return i?a.getUTCMinutes():a.getMinutes();case"Hours":return i?a.getUTCHours():a.getHours();case"Date":return i?a.getUTCDate():a.getDate();case"Day":return i?a.getUTCDay():a.getDay();case"Month":return i?a.getUTCMonth():a.getMonth();case"FullYear":return i?a.getUTCFullYear():a.getFullYear();default:return NaN}}function Qe(e,t,a){var i,n,r,s,o;if(e.isValid()&&!isNaN(a)){switch(i=e._d,n=e._isUTC,t){case"Milliseconds":return void(n?i.setUTCMilliseconds(a):i.setMilliseconds(a));case"Seconds":return void(n?i.setUTCSeconds(a):i.setSeconds(a));case"Minutes":return void(n?i.setUTCMinutes(a):i.setMinutes(a));case"Hours":return void(n?i.setUTCHours(a):i.setHours(a));case"Date":return void(n?i.setUTCDate(a):i.setDate(a));case"FullYear":break;default:return}r=a,s=e.month(),o=29!==(o=e.date())||1!==s||Pe(r)?o:28,n?i.setUTCFullYear(r,s,o):i.setFullYear(r,s,o)}}function et(e){return M(this[e=ie(e)])?this[e]():this}function tt(e,t){if("object"==typeof e){var a,i=se(e=ne(e)),n=i.length;for(a=0;a<n;a++)this[i[a].unit](e[i[a].unit])}else if(M(this[e=ie(e)]))return this[e](t);return this}function at(e,t){return(e%t+t)%t}function it(e,t){if(isNaN(e)||isNaN(t))return NaN;var a=at(t,12);return e+=(t-a)/12,1===a?Pe(e)?29:28:31-a%7%2}qe=Array.prototype.indexOf?Array.prototype.indexOf:function(e){var t;for(t=0;t<this.length;++t)if(this[t]===e)return t;return-1},$("M",["MM",2],"Mo",(function(){return this.month()+1})),$("MMM",0,0,(function(e){return this.localeData().monthsShort(this,e)})),$("MMMM",0,0,(function(e){return this.localeData().months(this,e)})),Te("M",he,Ne),Te("MM",he,ue),Te("MMM",(function(e,t){return t.monthsShortRegex(e)})),Te("MMMM",(function(e,t){return t.monthsRegex(e)})),De(["M","MM"],(function(e,t){t[Be]=Fe(e)-1})),De(["MMM","MMMM"],(function(e,t,a,i){var n=a._locale.monthsParse(e,i,a._strict);null!=n?t[Be]=n:m(a).invalidMonth=e}));var nt="January_February_March_April_May_June_July_August_September_October_November_December".split("_"),rt="Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),st=/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/,ot=Se,lt=Se;function ut(e,t){return e?n(this._months)?this._months[e.month()]:this._months[(this._months.isFormat||st).test(t)?"format":"standalone"][e.month()]:n(this._months)?this._months:this._months.standalone}function ct(e,t){return e?n(this._monthsShort)?this._monthsShort[e.month()]:this._monthsShort[st.test(t)?"format":"standalone"][e.month()]:n(this._monthsShort)?this._monthsShort:this._monthsShort.standalone}function dt(e,t,a){var i,n,r,s=e.toLocaleLowerCase();if(!this._monthsParse)for(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[],i=0;i<12;++i)r=h([2e3,i]),this._shortMonthsParse[i]=this.monthsShort(r,"").toLocaleLowerCase(),this._longMonthsParse[i]=this.months(r,"").toLocaleLowerCase();return a?"MMM"===t?-1!==(n=qe.call(this._shortMonthsParse,s))?n:null:-1!==(n=qe.call(this._longMonthsParse,s))?n:null:"MMM"===t?-1!==(n=qe.call(this._shortMonthsParse,s))||-1!==(n=qe.call(this._longMonthsParse,s))?n:null:-1!==(n=qe.call(this._longMonthsParse,s))||-1!==(n=qe.call(this._shortMonthsParse,s))?n:null}function pt(e,t,a){var i,n,r;if(this._monthsParseExact)return dt.call(this,e,t,a);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),i=0;i<12;i++){if(n=h([2e3,i]),a&&!this._longMonthsParse[i]&&(this._longMonthsParse[i]=new RegExp("^"+this.months(n,"").replace(".","")+"$","i"),this._shortMonthsParse[i]=new RegExp("^"+this.monthsShort(n,"").replace(".","")+"$","i")),a||this._monthsParse[i]||(r="^"+this.months(n,"")+"|^"+this.monthsShort(n,""),this._monthsParse[i]=new RegExp(r.replace(".",""),"i")),a&&"MMMM"===t&&this._longMonthsParse[i].test(e))return i;if(a&&"MMM"===t&&this._shortMonthsParse[i].test(e))return i;if(!a&&this._monthsParse[i].test(e))return i}}function ht(e,t){if(!e.isValid())return e;if("string"==typeof t)if(/^\d+$/.test(t))t=Fe(t);else if(!u(t=e.localeData().monthsParse(t)))return e;var a=t,i=e.date();return i=i<29?i:Math.min(i,it(e.year(),a)),e._isUTC?e._d.setUTCMonth(a,i):e._d.setMonth(a,i),e}function ft(e){return null!=e?(ht(this,e),a.updateOffset(this,!0),this):Xe(this,"Month")}function mt(){return it(this.year(),this.month())}function yt(e){return this._monthsParseExact?(s(this,"_monthsRegex")||bt.call(this),e?this._monthsShortStrictRegex:this._monthsShortRegex):(s(this,"_monthsShortRegex")||(this._monthsShortRegex=ot),this._monthsShortStrictRegex&&e?this._monthsShortStrictRegex:this._monthsShortRegex)}function gt(e){return this._monthsParseExact?(s(this,"_monthsRegex")||bt.call(this),e?this._monthsStrictRegex:this._monthsRegex):(s(this,"_monthsRegex")||(this._monthsRegex=lt),this._monthsStrictRegex&&e?this._monthsStrictRegex:this._monthsRegex)}function bt(){function e(e,t){return t.length-e.length}var t,a,i,n,r=[],s=[],o=[];for(t=0;t<12;t++)a=h([2e3,t]),i=Ce(this.monthsShort(a,"")),n=Ce(this.months(a,"")),r.push(i),s.push(n),o.push(n),o.push(i);r.sort(e),s.sort(e),o.sort(e),this._monthsRegex=new RegExp("^("+o.join("|")+")","i"),this._monthsShortRegex=this._monthsRegex,this._monthsStrictRegex=new RegExp("^("+s.join("|")+")","i"),this._monthsShortStrictRegex=new RegExp("^("+r.join("|")+")","i")}function vt(e,t,a,i,n,r,s){var o;return e<100&&e>=0?(o=new Date(e+400,t,a,i,n,r,s),isFinite(o.getFullYear())&&o.setFullYear(e)):o=new Date(e,t,a,i,n,r,s),o}function _t(e){var t,a;return e<100&&e>=0?((a=Array.prototype.slice.call(arguments))[0]=e+400,t=new Date(Date.UTC.apply(null,a)),isFinite(t.getUTCFullYear())&&t.setUTCFullYear(e)):t=new Date(Date.UTC.apply(null,arguments)),t}function wt(e,t,a){var i=7+t-a;return-(7+_t(e,0,i).getUTCDay()-t)%7+i-1}function At(e,t,a,i,n){var r,s,o=1+7*(t-1)+(7+a-i)%7+wt(e,i,n);return o<=0?s=Ge(r=e-1)+o:o>Ge(e)?(r=e+1,s=o-Ge(e)):(r=e,s=o),{year:r,dayOfYear:s}}function kt(e,t,a){var i,n,r=wt(e.year(),t,a),s=Math.floor((e.dayOfYear()-r-1)/7)+1;return s<1?i=s+St(n=e.year()-1,t,a):s>St(e.year(),t,a)?(i=s-St(e.year(),t,a),n=e.year()+1):(n=e.year(),i=s),{week:i,year:n}}function St(e,t,a){var i=wt(e,t,a),n=wt(e+1,t,a);return(Ge(e)-i+n)/7}function Nt(e){return kt(e,this._week.dow,this._week.doy).week}$("w",["ww",2],"wo","week"),$("W",["WW",2],"Wo","isoWeek"),Te("w",he,Ne),Te("ww",he,ue),Te("W",he,Ne),Te("WW",he,ue),Le(["w","ww","W","WW"],(function(e,t,a,i){t[i.substr(0,1)]=Fe(e)}));var xt={dow:0,doy:6};function Tt(){return this._week.dow}function Mt(){return this._week.doy}function Vt(e){var t=this.localeData().week(this);return null==e?t:this.add(7*(e-t),"d")}function Ct(e){var t=kt(this,1,4).week;return null==e?t:this.add(7*(e-t),"d")}function It(e,t){return"string"!=typeof e?e:isNaN(e)?"number"==typeof(e=t.weekdaysParse(e))?e:null:parseInt(e,10)}function Ft(e,t){return"string"==typeof e?t.weekdaysParse(e)%7||7:isNaN(e)?null:e}function Et(e,t){return e.slice(t,7).concat(e.slice(0,t))}$("d",0,"do","day"),$("dd",0,0,(function(e){return this.localeData().weekdaysMin(this,e)})),$("ddd",0,0,(function(e){return this.localeData().weekdaysShort(this,e)})),$("dddd",0,0,(function(e){return this.localeData().weekdays(this,e)})),$("e",0,0,"weekday"),$("E",0,0,"isoWeekday"),Te("d",he),Te("e",he),Te("E",he),Te("dd",(function(e,t){return t.weekdaysMinRegex(e)})),Te("ddd",(function(e,t){return t.weekdaysShortRegex(e)})),Te("dddd",(function(e,t){return t.weekdaysRegex(e)})),Le(["dd","ddd","dddd"],(function(e,t,a,i){var n=a._locale.weekdaysParse(e,i,a._strict);null!=n?t.d=n:m(a).invalidWeekday=e})),Le(["d","e","E"],(function(e,t,a,i){t[i]=Fe(e)}));var Dt="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),Lt="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),Rt="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),Pt=Se,Ot=Se,Bt=Se;function $t(e,t){var a=n(this._weekdays)?this._weekdays:this._weekdays[e&&!0!==e&&this._weekdays.isFormat.test(t)?"format":"standalone"];return!0===e?Et(a,this._week.dow):e?a[e.day()]:a}function jt(e){return!0===e?Et(this._weekdaysShort,this._week.dow):e?this._weekdaysShort[e.day()]:this._weekdaysShort}function Ut(e){return!0===e?Et(this._weekdaysMin,this._week.dow):e?this._weekdaysMin[e.day()]:this._weekdaysMin}function zt(e,t,a){var i,n,r,s=e.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],i=0;i<7;++i)r=h([2e3,1]).day(i),this._minWeekdaysParse[i]=this.weekdaysMin(r,"").toLocaleLowerCase(),this._shortWeekdaysParse[i]=this.weekdaysShort(r,"").toLocaleLowerCase(),this._weekdaysParse[i]=this.weekdays(r,"").toLocaleLowerCase();return a?"dddd"===t?-1!==(n=qe.call(this._weekdaysParse,s))?n:null:"ddd"===t?-1!==(n=qe.call(this._shortWeekdaysParse,s))?n:null:-1!==(n=qe.call(this._minWeekdaysParse,s))?n:null:"dddd"===t?-1!==(n=qe.call(this._weekdaysParse,s))||-1!==(n=qe.call(this._shortWeekdaysParse,s))||-1!==(n=qe.call(this._minWeekdaysParse,s))?n:null:"ddd"===t?-1!==(n=qe.call(this._shortWeekdaysParse,s))||-1!==(n=qe.call(this._weekdaysParse,s))||-1!==(n=qe.call(this._minWeekdaysParse,s))?n:null:-1!==(n=qe.call(this._minWeekdaysParse,s))||-1!==(n=qe.call(this._weekdaysParse,s))||-1!==(n=qe.call(this._shortWeekdaysParse,s))?n:null}function Wt(e,t,a){var i,n,r;if(this._weekdaysParseExact)return zt.call(this,e,t,a);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),i=0;i<7;i++){if(n=h([2e3,1]).day(i),a&&!this._fullWeekdaysParse[i]&&(this._fullWeekdaysParse[i]=new RegExp("^"+this.weekdays(n,"").replace(".","\\.?")+"$","i"),this._shortWeekdaysParse[i]=new RegExp("^"+this.weekdaysShort(n,"").replace(".","\\.?")+"$","i"),this._minWeekdaysParse[i]=new RegExp("^"+this.weekdaysMin(n,"").replace(".","\\.?")+"$","i")),this._weekdaysParse[i]||(r="^"+this.weekdays(n,"")+"|^"+this.weekdaysShort(n,"")+"|^"+this.weekdaysMin(n,""),this._weekdaysParse[i]=new RegExp(r.replace(".",""),"i")),a&&"dddd"===t&&this._fullWeekdaysParse[i].test(e))return i;if(a&&"ddd"===t&&this._shortWeekdaysParse[i].test(e))return i;if(a&&"dd"===t&&this._minWeekdaysParse[i].test(e))return i;if(!a&&this._weekdaysParse[i].test(e))return i}}function Ht(e){if(!this.isValid())return null!=e?this:NaN;var t=Xe(this,"Day");return null!=e?(e=It(e,this.localeData()),this.add(e-t,"d")):t}function Yt(e){if(!this.isValid())return null!=e?this:NaN;var t=(this.day()+7-this.localeData()._week.dow)%7;return null==e?t:this.add(e-t,"d")}function Gt(e){if(!this.isValid())return null!=e?this:NaN;if(null!=e){var t=Ft(e,this.localeData());return this.day(this.day()%7?t:t-7)}return this.day()||7}function qt(e){return this._weekdaysParseExact?(s(this,"_weekdaysRegex")||Kt.call(this),e?this._weekdaysStrictRegex:this._weekdaysRegex):(s(this,"_weekdaysRegex")||(this._weekdaysRegex=Pt),this._weekdaysStrictRegex&&e?this._weekdaysStrictRegex:this._weekdaysRegex)}function Zt(e){return this._weekdaysParseExact?(s(this,"_weekdaysRegex")||Kt.call(this),e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(s(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=Ot),this._weekdaysShortStrictRegex&&e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)}function Jt(e){return this._weekdaysParseExact?(s(this,"_weekdaysRegex")||Kt.call(this),e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(s(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=Bt),this._weekdaysMinStrictRegex&&e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)}function Kt(){function e(e,t){return t.length-e.length}var t,a,i,n,r,s=[],o=[],l=[],u=[];for(t=0;t<7;t++)a=h([2e3,1]).day(t),i=Ce(this.weekdaysMin(a,"")),n=Ce(this.weekdaysShort(a,"")),r=Ce(this.weekdays(a,"")),s.push(i),o.push(n),l.push(r),u.push(i),u.push(n),u.push(r);s.sort(e),o.sort(e),l.sort(e),u.sort(e),this._weekdaysRegex=new RegExp("^("+u.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+l.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+o.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+s.join("|")+")","i")}function Xt(){return this.hours()%12||12}function Qt(){return this.hours()||24}function ea(e,t){$(e,0,0,(function(){return this.localeData().meridiem(this.hours(),this.minutes(),t)}))}function ta(e,t){return t._meridiemParse}function aa(e){return"p"===(e+"").toLowerCase().charAt(0)}$("H",["HH",2],0,"hour"),$("h",["hh",2],0,Xt),$("k",["kk",2],0,Qt),$("hmm",0,0,(function(){return""+Xt.apply(this)+D(this.minutes(),2)})),$("hmmss",0,0,(function(){return""+Xt.apply(this)+D(this.minutes(),2)+D(this.seconds(),2)})),$("Hmm",0,0,(function(){return""+this.hours()+D(this.minutes(),2)})),$("Hmmss",0,0,(function(){return""+this.hours()+D(this.minutes(),2)+D(this.seconds(),2)})),ea("a",!0),ea("A",!1),Te("a",ta),Te("A",ta),Te("H",he,xe),Te("h",he,Ne),Te("k",he,Ne),Te("HH",he,ue),Te("hh",he,ue),Te("kk",he,ue),Te("hmm",fe),Te("hmmss",me),Te("Hmm",fe),Te("Hmmss",me),De(["H","HH"],je),De(["k","kk"],(function(e,t,a){var i=Fe(e);t[je]=24===i?0:i})),De(["a","A"],(function(e,t,a){a._isPm=a._locale.isPM(e),a._meridiem=e})),De(["h","hh"],(function(e,t,a){t[je]=Fe(e),m(a).bigHour=!0})),De("hmm",(function(e,t,a){var i=e.length-2;t[je]=Fe(e.substr(0,i)),t[Ue]=Fe(e.substr(i)),m(a).bigHour=!0})),De("hmmss",(function(e,t,a){var i=e.length-4,n=e.length-2;t[je]=Fe(e.substr(0,i)),t[Ue]=Fe(e.substr(i,2)),t[ze]=Fe(e.substr(n)),m(a).bigHour=!0})),De("Hmm",(function(e,t,a){var i=e.length-2;t[je]=Fe(e.substr(0,i)),t[Ue]=Fe(e.substr(i))})),De("Hmmss",(function(e,t,a){var i=e.length-4,n=e.length-2;t[je]=Fe(e.substr(0,i)),t[Ue]=Fe(e.substr(i,2)),t[ze]=Fe(e.substr(n))}));var ia=/[ap]\.?m?\.?/i,na=Ke("Hours",!0);function ra(e,t,a){return e>11?a?"pm":"PM":a?"am":"AM"}var sa,oa={calendar:F,longDateFormat:Y,invalidDate:q,ordinal:J,dayOfMonthOrdinalParse:K,relativeTime:Q,months:nt,monthsShort:rt,week:xt,weekdays:Dt,weekdaysMin:Rt,weekdaysShort:Lt,meridiemParse:ia},la={},ua={};function ca(e,t){var a,i=Math.min(e.length,t.length);for(a=0;a<i;a+=1)if(e[a]!==t[a])return a;return i}function da(e){return e?e.toLowerCase().replace("_","-"):e}function pa(e){for(var t,a,i,n,r=0;r<e.length;){for(t=(n=da(e[r]).split("-")).length,a=(a=da(e[r+1]))?a.split("-"):null;t>0;){if(i=fa(n.slice(0,t).join("-")))return i;if(a&&a.length>=t&&ca(n,a)>=t-1)break;t--}r++}return sa}function ha(e){return!(!e||!e.match("^[^/\\\\]*$"))}function fa(e){var t=null;if(void 0===la[e]&&U&&U.exports&&ha(e))try{t=sa._abbr,B("./locale/"+e),ma(t)}catch(t){la[e]=null}return la[e]}function ma(e,t){var a;return e&&((a=l(t)?ba(e):ya(e,t))?sa=a:"undefined"!=typeof console&&console.warn&&console.warn("Locale "+e+" not found. Did you forget to load it?")),sa._abbr}function ya(e,t){if(null!==t){var a,i=oa;if(t.abbr=e,null!=la[e])T("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),i=la[e]._config;else if(null!=t.parentLocale)if(null!=la[t.parentLocale])i=la[t.parentLocale]._config;else{if(null==(a=fa(t.parentLocale)))return ua[t.parentLocale]||(ua[t.parentLocale]=[]),ua[t.parentLocale].push({name:e,config:t}),null;i=a._config}return la[e]=new I(C(i,t)),ua[e]&&ua[e].forEach((function(e){ya(e.name,e.config)})),ma(e),la[e]}return delete la[e],null}function ga(e,t){if(null!=t){var a,i,n=oa;null!=la[e]&&null!=la[e].parentLocale?la[e].set(C(la[e]._config,t)):(null!=(i=fa(e))&&(n=i._config),t=C(n,t),null==i&&(t.abbr=e),(a=new I(t)).parentLocale=la[e],la[e]=a),ma(e)}else null!=la[e]&&(null!=la[e].parentLocale?(la[e]=la[e].parentLocale,e===ma()&&ma(e)):null!=la[e]&&delete la[e]);return la[e]}function ba(e){var t;if(e&&e._locale&&e._locale._abbr&&(e=e._locale._abbr),!e)return sa;if(!n(e)){if(t=fa(e))return t;e=[e]}return pa(e)}function va(){return N(la)}function _a(e){var t,a=e._a;return a&&-2===m(e).overflow&&(t=a[Be]<0||a[Be]>11?Be:a[$e]<1||a[$e]>it(a[Oe],a[Be])?$e:a[je]<0||a[je]>24||24===a[je]&&(0!==a[Ue]||0!==a[ze]||0!==a[We])?je:a[Ue]<0||a[Ue]>59?Ue:a[ze]<0||a[ze]>59?ze:a[We]<0||a[We]>999?We:-1,m(e)._overflowDayOfYear&&(t<Oe||t>$e)&&(t=$e),m(e)._overflowWeeks&&-1===t&&(t=He),m(e)._overflowWeekday&&-1===t&&(t=Ye),m(e).overflow=t),e}var wa=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,Aa=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d|))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,ka=/Z|[+-]\d\d(?::?\d\d)?/,Sa=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/],["YYYYMM",/\d{6}/,!1],["YYYY",/\d{4}/,!1]],Na=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],xa=/^\/?Date\((-?\d+)/i,Ta=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/,Ma={UT:0,GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function Va(e){var t,a,i,n,r,s,o=e._i,l=wa.exec(o)||Aa.exec(o),u=Sa.length,c=Na.length;if(l){for(m(e).iso=!0,t=0,a=u;t<a;t++)if(Sa[t][1].exec(l[1])){n=Sa[t][0],i=!1!==Sa[t][2];break}if(null==n)return void(e._isValid=!1);if(l[3]){for(t=0,a=c;t<a;t++)if(Na[t][1].exec(l[3])){r=(l[2]||" ")+Na[t][0];break}if(null==r)return void(e._isValid=!1)}if(!i&&null!=r)return void(e._isValid=!1);if(l[4]){if(!ka.exec(l[4]))return void(e._isValid=!1);s="Z"}e._f=n+(r||"")+(s||""),ja(e)}else e._isValid=!1}function Ca(e,t,a,i,n,r){var s=[Ia(e),rt.indexOf(t),parseInt(a,10),parseInt(i,10),parseInt(n,10)];return r&&s.push(parseInt(r,10)),s}function Ia(e){var t=parseInt(e,10);return t<=49?2e3+t:t<=999?1900+t:t}function Fa(e){return e.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").replace(/^\s\s*/,"").replace(/\s\s*$/,"")}function Ea(e,t,a){return!e||Lt.indexOf(e)===new Date(t[0],t[1],t[2]).getDay()||(m(a).weekdayMismatch=!0,a._isValid=!1,!1)}function Da(e,t,a){if(e)return Ma[e];if(t)return 0;var i=parseInt(a,10),n=i%100;return(i-n)/100*60+n}function La(e){var t,a=Ta.exec(Fa(e._i));if(a){if(t=Ca(a[4],a[3],a[2],a[5],a[6],a[7]),!Ea(a[1],t,e))return;e._a=t,e._tzm=Da(a[8],a[9],a[10]),e._d=_t.apply(null,e._a),e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),m(e).rfc2822=!0}else e._isValid=!1}function Ra(e){var t=xa.exec(e._i);null===t?(Va(e),!1===e._isValid&&(delete e._isValid,La(e),!1===e._isValid&&(delete e._isValid,e._strict?e._isValid=!1:a.createFromInputFallback(e)))):e._d=new Date(+t[1])}function Pa(e,t,a){return null!=e?e:null!=t?t:a}function Oa(e){var t=new Date(a.now());return e._useUTC?[t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate()]:[t.getFullYear(),t.getMonth(),t.getDate()]}function Ba(e){var t,a,i,n,r,s=[];if(!e._d){for(i=Oa(e),e._w&&null==e._a[$e]&&null==e._a[Be]&&$a(e),null!=e._dayOfYear&&(r=Pa(e._a[Oe],i[Oe]),(e._dayOfYear>Ge(r)||0===e._dayOfYear)&&(m(e)._overflowDayOfYear=!0),a=_t(r,0,e._dayOfYear),e._a[Be]=a.getUTCMonth(),e._a[$e]=a.getUTCDate()),t=0;t<3&&null==e._a[t];++t)e._a[t]=s[t]=i[t];for(;t<7;t++)e._a[t]=s[t]=null==e._a[t]?2===t?1:0:e._a[t];24===e._a[je]&&0===e._a[Ue]&&0===e._a[ze]&&0===e._a[We]&&(e._nextDay=!0,e._a[je]=0),e._d=(e._useUTC?_t:vt).apply(null,s),n=e._useUTC?e._d.getUTCDay():e._d.getDay(),null!=e._tzm&&e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),e._nextDay&&(e._a[je]=24),e._w&&void 0!==e._w.d&&e._w.d!==n&&(m(e).weekdayMismatch=!0)}}function $a(e){var t,a,i,n,r,s,o,l,u;null!=(t=e._w).GG||null!=t.W||null!=t.E?(r=1,s=4,a=Pa(t.GG,e._a[Oe],kt(Za(),1,4).year),i=Pa(t.W,1),((n=Pa(t.E,1))<1||n>7)&&(l=!0)):(r=e._locale._week.dow,s=e._locale._week.doy,u=kt(Za(),r,s),a=Pa(t.gg,e._a[Oe],u.year),i=Pa(t.w,u.week),null!=t.d?((n=t.d)<0||n>6)&&(l=!0):null!=t.e?(n=t.e+r,(t.e<0||t.e>6)&&(l=!0)):n=r),i<1||i>St(a,r,s)?m(e)._overflowWeeks=!0:null!=l?m(e)._overflowWeekday=!0:(o=At(a,i,n,r,s),e._a[Oe]=o.year,e._dayOfYear=o.dayOfYear)}function ja(e){if(e._f!==a.ISO_8601)if(e._f!==a.RFC_2822){e._a=[],m(e).empty=!0;var t,i,n,r,s,o,l,u=""+e._i,c=u.length,d=0;for(l=(n=H(e._f,e._locale).match(L)||[]).length,t=0;t<l;t++)r=n[t],(i=(u.match(Me(r,e))||[])[0])&&((s=u.substr(0,u.indexOf(i))).length>0&&m(e).unusedInput.push(s),u=u.slice(u.indexOf(i)+i.length),d+=i.length),O[r]?(i?m(e).empty=!1:m(e).unusedTokens.push(r),Re(r,i,e)):e._strict&&!i&&m(e).unusedTokens.push(r);m(e).charsLeftOver=c-d,u.length>0&&m(e).unusedInput.push(u),e._a[je]<=12&&!0===m(e).bigHour&&e._a[je]>0&&(m(e).bigHour=void 0),m(e).parsedDateParts=e._a.slice(0),m(e).meridiem=e._meridiem,e._a[je]=Ua(e._locale,e._a[je],e._meridiem),null!==(o=m(e).era)&&(e._a[Oe]=e._locale.erasConvertYear(o,e._a[Oe])),Ba(e),_a(e)}else La(e);else Va(e)}function Ua(e,t,a){var i;return null==a?t:null!=e.meridiemHour?e.meridiemHour(t,a):null!=e.isPM?((i=e.isPM(a))&&t<12&&(t+=12),i||12!==t||(t=0),t):t}function za(e){var t,a,i,n,r,s,o=!1,l=e._f.length;if(0===l)return m(e).invalidFormat=!0,void(e._d=new Date(NaN));for(n=0;n<l;n++)r=0,s=!1,t=_({},e),null!=e._useUTC&&(t._useUTC=e._useUTC),t._f=e._f[n],ja(t),y(t)&&(s=!0),r+=m(t).charsLeftOver,r+=10*m(t).unusedTokens.length,m(t).score=r,o?r<i&&(i=r,a=t):(null==i||r<i||s)&&(i=r,a=t,s&&(o=!0));p(e,a||t)}function Wa(e){if(!e._d){var t=ne(e._i),a=void 0===t.day?t.date:t.day;e._a=d([t.year,t.month,a,t.hour,t.minute,t.second,t.millisecond],(function(e){return e&&parseInt(e,10)})),Ba(e)}}function Ha(e){var t=new w(_a(Ya(e)));return t._nextDay&&(t.add(1,"d"),t._nextDay=void 0),t}function Ya(e){var t=e._i,a=e._f;return e._locale=e._locale||ba(e._l),null===t||void 0===a&&""===t?g({nullInput:!0}):("string"==typeof t&&(e._i=t=e._locale.preparse(t)),A(t)?new w(_a(t)):(c(t)?e._d=t:n(a)?za(e):a?ja(e):Ga(e),y(e)||(e._d=null),e))}function Ga(e){var t=e._i;l(t)?e._d=new Date(a.now()):c(t)?e._d=new Date(t.valueOf()):"string"==typeof t?Ra(e):n(t)?(e._a=d(t.slice(0),(function(e){return parseInt(e,10)})),Ba(e)):r(t)?Wa(e):u(t)?e._d=new Date(t):a.createFromInputFallback(e)}function qa(e,t,a,i,s){var l={};return!0!==t&&!1!==t||(i=t,t=void 0),!0!==a&&!1!==a||(i=a,a=void 0),(r(e)&&o(e)||n(e)&&0===e.length)&&(e=void 0),l._isAMomentObject=!0,l._useUTC=l._isUTC=s,l._l=a,l._i=e,l._f=t,l._strict=i,Ha(l)}function Za(e,t,a,i){return qa(e,t,a,i,!1)}a.createFromInputFallback=S("value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.",(function(e){e._d=new Date(e._i+(e._useUTC?" UTC":""))})),a.ISO_8601=function(){},a.RFC_2822=function(){};var Ja=S("moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/",(function(){var e=Za.apply(null,arguments);return this.isValid()&&e.isValid()?e<this?this:e:g()})),Ka=S("moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/",(function(){var e=Za.apply(null,arguments);return this.isValid()&&e.isValid()?e>this?this:e:g()}));function Xa(e,t){var a,i;if(1===t.length&&n(t[0])&&(t=t[0]),!t.length)return Za();for(a=t[0],i=1;i<t.length;++i)t[i].isValid()&&!t[i][e](a)||(a=t[i]);return a}function Qa(){return Xa("isBefore",[].slice.call(arguments,0))}function ei(){return Xa("isAfter",[].slice.call(arguments,0))}var ti=function(){return Date.now?Date.now():+new Date},ai=["year","quarter","month","week","day","hour","minute","second","millisecond"];function ii(e){var t,a,i=!1,n=ai.length;for(t in e)if(s(e,t)&&(-1===qe.call(ai,t)||null!=e[t]&&isNaN(e[t])))return!1;for(a=0;a<n;++a)if(e[ai[a]]){if(i)return!1;parseFloat(e[ai[a]])!==Fe(e[ai[a]])&&(i=!0)}return!0}function ni(){return this._isValid}function ri(){return Mi(NaN)}function si(e){var t=ne(e),a=t.year||0,i=t.quarter||0,n=t.month||0,r=t.week||t.isoWeek||0,s=t.day||0,o=t.hour||0,l=t.minute||0,u=t.second||0,c=t.millisecond||0;this._isValid=ii(t),this._milliseconds=+c+1e3*u+6e4*l+1e3*o*60*60,this._days=+s+7*r,this._months=+n+3*i+12*a,this._data={},this._locale=ba(),this._bubble()}function oi(e){return e instanceof si}function li(e){return e<0?-1*Math.round(-1*e):Math.round(e)}function ui(e,t,a){var i,n=Math.min(e.length,t.length),r=Math.abs(e.length-t.length),s=0;for(i=0;i<n;i++)Fe(e[i])!==Fe(t[i])&&s++;return s+r}function ci(e,t){$(e,0,0,(function(){var e=this.utcOffset(),a="+";return e<0&&(e=-e,a="-"),a+D(~~(e/60),2)+t+D(~~e%60,2)}))}ci("Z",":"),ci("ZZ",""),Te("Z",Ae),Te("ZZ",Ae),De(["Z","ZZ"],(function(e,t,a){a._useUTC=!0,a._tzm=pi(Ae,e)}));var di=/([\+\-]|\d\d)/gi;function pi(e,t){var a,i,n=(t||"").match(e);return null===n?null:0===(i=60*(a=((n[n.length-1]||[])+"").match(di)||["-",0,0])[1]+Fe(a[2]))?0:"+"===a[0]?i:-i}function hi(e,t){var i,n;return t._isUTC?(i=t.clone(),n=(A(e)||c(e)?e.valueOf():Za(e).valueOf())-i.valueOf(),i._d.setTime(i._d.valueOf()+n),a.updateOffset(i,!1),i):Za(e).local()}function fi(e){return-Math.round(e._d.getTimezoneOffset())}function mi(e,t,i){var n,r=this._offset||0;if(!this.isValid())return null!=e?this:NaN;if(null!=e){if("string"==typeof e){if(null===(e=pi(Ae,e)))return this}else Math.abs(e)<16&&!i&&(e*=60);return!this._isUTC&&t&&(n=fi(this)),this._offset=e,this._isUTC=!0,null!=n&&this.add(n,"m"),r!==e&&(!t||this._changeInProgress?Ei(this,Mi(e-r,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,a.updateOffset(this,!0),this._changeInProgress=null)),this}return this._isUTC?r:fi(this)}function yi(e,t){return null!=e?("string"!=typeof e&&(e=-e),this.utcOffset(e,t),this):-this.utcOffset()}function gi(e){return this.utcOffset(0,e)}function bi(e){return this._isUTC&&(this.utcOffset(0,e),this._isUTC=!1,e&&this.subtract(fi(this),"m")),this}function vi(){if(null!=this._tzm)this.utcOffset(this._tzm,!1,!0);else if("string"==typeof this._i){var e=pi(we,this._i);null!=e?this.utcOffset(e):this.utcOffset(0,!0)}return this}function _i(e){return!!this.isValid()&&(e=e?Za(e).utcOffset():0,(this.utcOffset()-e)%60==0)}function wi(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function Ai(){if(!l(this._isDSTShifted))return this._isDSTShifted;var e,t={};return _(t,this),(t=Ya(t))._a?(e=t._isUTC?h(t._a):Za(t._a),this._isDSTShifted=this.isValid()&&ui(t._a,e.toArray())>0):this._isDSTShifted=!1,this._isDSTShifted}function ki(){return!!this.isValid()&&!this._isUTC}function Si(){return!!this.isValid()&&this._isUTC}function Ni(){return!!this.isValid()&&this._isUTC&&0===this._offset}a.updateOffset=function(){};var xi=/^(-|\+)?(?:(\d*)[. ])?(\d+):(\d+)(?::(\d+)(\.\d*)?)?$/,Ti=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;function Mi(e,t){var a,i,n,r=e,o=null;return oi(e)?r={ms:e._milliseconds,d:e._days,M:e._months}:u(e)||!isNaN(+e)?(r={},t?r[t]=+e:r.milliseconds=+e):(o=xi.exec(e))?(a="-"===o[1]?-1:1,r={y:0,d:Fe(o[$e])*a,h:Fe(o[je])*a,m:Fe(o[Ue])*a,s:Fe(o[ze])*a,ms:Fe(li(1e3*o[We]))*a}):(o=Ti.exec(e))?(a="-"===o[1]?-1:1,r={y:Vi(o[2],a),M:Vi(o[3],a),w:Vi(o[4],a),d:Vi(o[5],a),h:Vi(o[6],a),m:Vi(o[7],a),s:Vi(o[8],a)}):null==r?r={}:"object"==typeof r&&("from"in r||"to"in r)&&(n=Ii(Za(r.from),Za(r.to)),(r={}).ms=n.milliseconds,r.M=n.months),i=new si(r),oi(e)&&s(e,"_locale")&&(i._locale=e._locale),oi(e)&&s(e,"_isValid")&&(i._isValid=e._isValid),i}function Vi(e,t){var a=e&&parseFloat(e.replace(",","."));return(isNaN(a)?0:a)*t}function Ci(e,t){var a={};return a.months=t.month()-e.month()+12*(t.year()-e.year()),e.clone().add(a.months,"M").isAfter(t)&&--a.months,a.milliseconds=+t-+e.clone().add(a.months,"M"),a}function Ii(e,t){var a;return e.isValid()&&t.isValid()?(t=hi(t,e),e.isBefore(t)?a=Ci(e,t):((a=Ci(t,e)).milliseconds=-a.milliseconds,a.months=-a.months),a):{milliseconds:0,months:0}}function Fi(e,t){return function(a,i){var n;return null===i||isNaN(+i)||(T(t,"moment()."+t+"(period, number) is deprecated. Please use moment()."+t+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),n=a,a=i,i=n),Ei(this,Mi(a,i),e),this}}function Ei(e,t,i,n){var r=t._milliseconds,s=li(t._days),o=li(t._months);e.isValid()&&(n=null==n||n,o&&ht(e,Xe(e,"Month")+o*i),s&&Qe(e,"Date",Xe(e,"Date")+s*i),r&&e._d.setTime(e._d.valueOf()+r*i),n&&a.updateOffset(e,s||o))}Mi.fn=si.prototype,Mi.invalid=ri;var Di=Fi(1,"add"),Li=Fi(-1,"subtract");function Ri(e){return"string"==typeof e||e instanceof String}function Pi(e){return A(e)||c(e)||Ri(e)||u(e)||Bi(e)||Oi(e)||null==e}function Oi(e){var t,a,i=r(e)&&!o(e),n=!1,l=["years","year","y","months","month","M","days","day","d","dates","date","D","hours","hour","h","minutes","minute","m","seconds","second","s","milliseconds","millisecond","ms"],u=l.length;for(t=0;t<u;t+=1)a=l[t],n=n||s(e,a);return i&&n}function Bi(e){var t=n(e),a=!1;return t&&(a=0===e.filter((function(t){return!u(t)&&Ri(e)})).length),t&&a}function $i(e){var t,a,i=r(e)&&!o(e),n=!1,l=["sameDay","nextDay","lastDay","nextWeek","lastWeek","sameElse"];for(t=0;t<l.length;t+=1)a=l[t],n=n||s(e,a);return i&&n}function ji(e,t){var a=e.diff(t,"days",!0);return a<-6?"sameElse":a<-1?"lastWeek":a<0?"lastDay":a<1?"sameDay":a<2?"nextDay":a<7?"nextWeek":"sameElse"}function Ui(e,t){1===arguments.length&&(arguments[0]?Pi(arguments[0])?(e=arguments[0],t=void 0):$i(arguments[0])&&(t=arguments[0],e=void 0):(e=void 0,t=void 0));var i=e||Za(),n=hi(i,this).startOf("day"),r=a.calendarFormat(this,n)||"sameElse",s=t&&(M(t[r])?t[r].call(this,i):t[r]);return this.format(s||this.localeData().calendar(r,this,Za(i)))}function zi(){return new w(this)}function Wi(e,t){var a=A(e)?e:Za(e);return!(!this.isValid()||!a.isValid())&&("millisecond"===(t=ie(t)||"millisecond")?this.valueOf()>a.valueOf():a.valueOf()<this.clone().startOf(t).valueOf())}function Hi(e,t){var a=A(e)?e:Za(e);return!(!this.isValid()||!a.isValid())&&("millisecond"===(t=ie(t)||"millisecond")?this.valueOf()<a.valueOf():this.clone().endOf(t).valueOf()<a.valueOf())}function Yi(e,t,a,i){var n=A(e)?e:Za(e),r=A(t)?t:Za(t);return!!(this.isValid()&&n.isValid()&&r.isValid())&&("("===(i=i||"()")[0]?this.isAfter(n,a):!this.isBefore(n,a))&&(")"===i[1]?this.isBefore(r,a):!this.isAfter(r,a))}function Gi(e,t){var a,i=A(e)?e:Za(e);return!(!this.isValid()||!i.isValid())&&("millisecond"===(t=ie(t)||"millisecond")?this.valueOf()===i.valueOf():(a=i.valueOf(),this.clone().startOf(t).valueOf()<=a&&a<=this.clone().endOf(t).valueOf()))}function qi(e,t){return this.isSame(e,t)||this.isAfter(e,t)}function Zi(e,t){return this.isSame(e,t)||this.isBefore(e,t)}function Ji(e,t,a){var i,n,r;if(!this.isValid())return NaN;if(!(i=hi(e,this)).isValid())return NaN;switch(n=6e4*(i.utcOffset()-this.utcOffset()),t=ie(t)){case"year":r=Ki(this,i)/12;break;case"month":r=Ki(this,i);break;case"quarter":r=Ki(this,i)/3;break;case"second":r=(this-i)/1e3;break;case"minute":r=(this-i)/6e4;break;case"hour":r=(this-i)/36e5;break;case"day":r=(this-i-n)/864e5;break;case"week":r=(this-i-n)/6048e5;break;default:r=this-i}return a?r:Ie(r)}function Ki(e,t){if(e.date()<t.date())return-Ki(t,e);var a=12*(t.year()-e.year())+(t.month()-e.month()),i=e.clone().add(a,"months");return-(a+(t-i<0?(t-i)/(i-e.clone().add(a-1,"months")):(t-i)/(e.clone().add(a+1,"months")-i)))||0}function Xi(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")}function Qi(e){if(!this.isValid())return null;var t=!0!==e,a=t?this.clone().utc():this;return a.year()<0||a.year()>9999?W(a,t?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):M(Date.prototype.toISOString)?t?this.toDate().toISOString():new Date(this.valueOf()+60*this.utcOffset()*1e3).toISOString().replace("Z",W(a,"Z")):W(a,t?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")}function en(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var e,t,a,i,n="moment",r="";return this.isLocal()||(n=0===this.utcOffset()?"moment.utc":"moment.parseZone",r="Z"),e="["+n+'("]',t=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",a="-MM-DD[T]HH:mm:ss.SSS",i=r+'[")]',this.format(e+t+a+i)}function tn(e){e||(e=this.isUtc()?a.defaultFormatUtc:a.defaultFormat);var t=W(this,e);return this.localeData().postformat(t)}function an(e,t){return this.isValid()&&(A(e)&&e.isValid()||Za(e).isValid())?Mi({to:this,from:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()}function nn(e){return this.from(Za(),e)}function rn(e,t){return this.isValid()&&(A(e)&&e.isValid()||Za(e).isValid())?Mi({from:this,to:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()}function sn(e){return this.to(Za(),e)}function on(e){var t;return void 0===e?this._locale._abbr:(null!=(t=ba(e))&&(this._locale=t),this)}a.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",a.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var ln=S("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",(function(e){return void 0===e?this.localeData():this.locale(e)}));function un(){return this._locale}var cn=1e3,dn=60*cn,pn=60*dn,hn=3506328*pn;function fn(e,t){return(e%t+t)%t}function mn(e,t,a){return e<100&&e>=0?new Date(e+400,t,a)-hn:new Date(e,t,a).valueOf()}function yn(e,t,a){return e<100&&e>=0?Date.UTC(e+400,t,a)-hn:Date.UTC(e,t,a)}function gn(e){var t,i;if(void 0===(e=ie(e))||"millisecond"===e||!this.isValid())return this;switch(i=this._isUTC?yn:mn,e){case"year":t=i(this.year(),0,1);break;case"quarter":t=i(this.year(),this.month()-this.month()%3,1);break;case"month":t=i(this.year(),this.month(),1);break;case"week":t=i(this.year(),this.month(),this.date()-this.weekday());break;case"isoWeek":t=i(this.year(),this.month(),this.date()-(this.isoWeekday()-1));break;case"day":case"date":t=i(this.year(),this.month(),this.date());break;case"hour":t=this._d.valueOf(),t-=fn(t+(this._isUTC?0:this.utcOffset()*dn),pn);break;case"minute":t=this._d.valueOf(),t-=fn(t,dn);break;case"second":t=this._d.valueOf(),t-=fn(t,cn)}return this._d.setTime(t),a.updateOffset(this,!0),this}function bn(e){var t,i;if(void 0===(e=ie(e))||"millisecond"===e||!this.isValid())return this;switch(i=this._isUTC?yn:mn,e){case"year":t=i(this.year()+1,0,1)-1;break;case"quarter":t=i(this.year(),this.month()-this.month()%3+3,1)-1;break;case"month":t=i(this.year(),this.month()+1,1)-1;break;case"week":t=i(this.year(),this.month(),this.date()-this.weekday()+7)-1;break;case"isoWeek":t=i(this.year(),this.month(),this.date()-(this.isoWeekday()-1)+7)-1;break;case"day":case"date":t=i(this.year(),this.month(),this.date()+1)-1;break;case"hour":t=this._d.valueOf(),t+=pn-fn(t+(this._isUTC?0:this.utcOffset()*dn),pn)-1;break;case"minute":t=this._d.valueOf(),t+=dn-fn(t,dn)-1;break;case"second":t=this._d.valueOf(),t+=cn-fn(t,cn)-1}return this._d.setTime(t),a.updateOffset(this,!0),this}function vn(){return this._d.valueOf()-6e4*(this._offset||0)}function _n(){return Math.floor(this.valueOf()/1e3)}function wn(){return new Date(this.valueOf())}function An(){var e=this;return[e.year(),e.month(),e.date(),e.hour(),e.minute(),e.second(),e.millisecond()]}function kn(){var e=this;return{years:e.year(),months:e.month(),date:e.date(),hours:e.hours(),minutes:e.minutes(),seconds:e.seconds(),milliseconds:e.milliseconds()}}function Sn(){return this.isValid()?this.toISOString():null}function Nn(){return y(this)}function xn(){return p({},m(this))}function Tn(){return m(this).overflow}function Mn(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}}function Vn(e,t){var i,n,r,s=this._eras||ba("en")._eras;for(i=0,n=s.length;i<n;++i)switch("string"==typeof s[i].since&&(r=a(s[i].since).startOf("day"),s[i].since=r.valueOf()),typeof s[i].until){case"undefined":s[i].until=1/0;break;case"string":r=a(s[i].until).startOf("day").valueOf(),s[i].until=r.valueOf()}return s}function Cn(e,t,a){var i,n,r,s,o,l=this.eras();for(e=e.toUpperCase(),i=0,n=l.length;i<n;++i)if(r=l[i].name.toUpperCase(),s=l[i].abbr.toUpperCase(),o=l[i].narrow.toUpperCase(),a)switch(t){case"N":case"NN":case"NNN":if(s===e)return l[i];break;case"NNNN":if(r===e)return l[i];break;case"NNNNN":if(o===e)return l[i]}else if([r,s,o].indexOf(e)>=0)return l[i]}function In(e,t){var i=e.since<=e.until?1:-1;return void 0===t?a(e.since).year():a(e.since).year()+(t-e.offset)*i}function Fn(){var e,t,a,i=this.localeData().eras();for(e=0,t=i.length;e<t;++e){if(a=this.clone().startOf("day").valueOf(),i[e].since<=a&&a<=i[e].until)return i[e].name;if(i[e].until<=a&&a<=i[e].since)return i[e].name}return""}function En(){var e,t,a,i=this.localeData().eras();for(e=0,t=i.length;e<t;++e){if(a=this.clone().startOf("day").valueOf(),i[e].since<=a&&a<=i[e].until)return i[e].narrow;if(i[e].until<=a&&a<=i[e].since)return i[e].narrow}return""}function Dn(){var e,t,a,i=this.localeData().eras();for(e=0,t=i.length;e<t;++e){if(a=this.clone().startOf("day").valueOf(),i[e].since<=a&&a<=i[e].until)return i[e].abbr;if(i[e].until<=a&&a<=i[e].since)return i[e].abbr}return""}function Ln(){var e,t,i,n,r=this.localeData().eras();for(e=0,t=r.length;e<t;++e)if(i=r[e].since<=r[e].until?1:-1,n=this.clone().startOf("day").valueOf(),r[e].since<=n&&n<=r[e].until||r[e].until<=n&&n<=r[e].since)return(this.year()-a(r[e].since).year())*i+r[e].offset;return this.year()}function Rn(e){return s(this,"_erasNameRegex")||zn.call(this),e?this._erasNameRegex:this._erasRegex}function Pn(e){return s(this,"_erasAbbrRegex")||zn.call(this),e?this._erasAbbrRegex:this._erasRegex}function On(e){return s(this,"_erasNarrowRegex")||zn.call(this),e?this._erasNarrowRegex:this._erasRegex}function Bn(e,t){return t.erasAbbrRegex(e)}function $n(e,t){return t.erasNameRegex(e)}function jn(e,t){return t.erasNarrowRegex(e)}function Un(e,t){return t._eraYearOrdinalRegex||ve}function zn(){var e,t,a,i,n,r=[],s=[],o=[],l=[],u=this.eras();for(e=0,t=u.length;e<t;++e)a=Ce(u[e].name),i=Ce(u[e].abbr),n=Ce(u[e].narrow),s.push(a),r.push(i),o.push(n),l.push(a),l.push(i),l.push(n);this._erasRegex=new RegExp("^("+l.join("|")+")","i"),this._erasNameRegex=new RegExp("^("+s.join("|")+")","i"),this._erasAbbrRegex=new RegExp("^("+r.join("|")+")","i"),this._erasNarrowRegex=new RegExp("^("+o.join("|")+")","i")}function Wn(e,t){$(0,[e,e.length],0,t)}function Hn(e){return Kn.call(this,e,this.week(),this.weekday()+this.localeData()._week.dow,this.localeData()._week.dow,this.localeData()._week.doy)}function Yn(e){return Kn.call(this,e,this.isoWeek(),this.isoWeekday(),1,4)}function Gn(){return St(this.year(),1,4)}function qn(){return St(this.isoWeekYear(),1,4)}function Zn(){var e=this.localeData()._week;return St(this.year(),e.dow,e.doy)}function Jn(){var e=this.localeData()._week;return St(this.weekYear(),e.dow,e.doy)}function Kn(e,t,a,i,n){var r;return null==e?kt(this,i,n).year:(t>(r=St(e,i,n))&&(t=r),Xn.call(this,e,t,a,i,n))}function Xn(e,t,a,i,n){var r=At(e,t,a,i,n),s=_t(r.year,0,r.dayOfYear);return this.year(s.getUTCFullYear()),this.month(s.getUTCMonth()),this.date(s.getUTCDate()),this}function Qn(e){return null==e?Math.ceil((this.month()+1)/3):this.month(3*(e-1)+this.month()%3)}$("N",0,0,"eraAbbr"),$("NN",0,0,"eraAbbr"),$("NNN",0,0,"eraAbbr"),$("NNNN",0,0,"eraName"),$("NNNNN",0,0,"eraNarrow"),$("y",["y",1],"yo","eraYear"),$("y",["yy",2],0,"eraYear"),$("y",["yyy",3],0,"eraYear"),$("y",["yyyy",4],0,"eraYear"),Te("N",Bn),Te("NN",Bn),Te("NNN",Bn),Te("NNNN",$n),Te("NNNNN",jn),De(["N","NN","NNN","NNNN","NNNNN"],(function(e,t,a,i){var n=a._locale.erasParse(e,i,a._strict);n?m(a).era=n:m(a).invalidEra=e})),Te("y",ve),Te("yy",ve),Te("yyy",ve),Te("yyyy",ve),Te("yo",Un),De(["y","yy","yyy","yyyy"],Oe),De(["yo"],(function(e,t,a,i){var n;a._locale._eraYearOrdinalRegex&&(n=e.match(a._locale._eraYearOrdinalRegex)),a._locale.eraYearOrdinalParse?t[Oe]=a._locale.eraYearOrdinalParse(e,n):t[Oe]=parseInt(e,10)})),$(0,["gg",2],0,(function(){return this.weekYear()%100})),$(0,["GG",2],0,(function(){return this.isoWeekYear()%100})),Wn("gggg","weekYear"),Wn("ggggg","weekYear"),Wn("GGGG","isoWeekYear"),Wn("GGGGG","isoWeekYear"),Te("G",_e),Te("g",_e),Te("GG",he,ue),Te("gg",he,ue),Te("GGGG",ge,de),Te("gggg",ge,de),Te("GGGGG",be,pe),Te("ggggg",be,pe),Le(["gggg","ggggg","GGGG","GGGGG"],(function(e,t,a,i){t[i.substr(0,2)]=Fe(e)})),Le(["gg","GG"],(function(e,t,i,n){t[n]=a.parseTwoDigitYear(e)})),$("Q",0,"Qo","quarter"),Te("Q",le),De("Q",(function(e,t){t[Be]=3*(Fe(e)-1)})),$("D",["DD",2],"Do","date"),Te("D",he,Ne),Te("DD",he,ue),Te("Do",(function(e,t){return e?t._dayOfMonthOrdinalParse||t._ordinalParse:t._dayOfMonthOrdinalParseLenient})),De(["D","DD"],$e),De("Do",(function(e,t){t[$e]=Fe(e.match(he)[0])}));var er=Ke("Date",!0);function tr(e){var t=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==e?t:this.add(e-t,"d")}$("DDD",["DDDD",3],"DDDo","dayOfYear"),Te("DDD",ye),Te("DDDD",ce),De(["DDD","DDDD"],(function(e,t,a){a._dayOfYear=Fe(e)})),$("m",["mm",2],0,"minute"),Te("m",he,xe),Te("mm",he,ue),De(["m","mm"],Ue);var ar=Ke("Minutes",!1);$("s",["ss",2],0,"second"),Te("s",he,xe),Te("ss",he,ue),De(["s","ss"],ze);var ir,nr,rr=Ke("Seconds",!1);for($("S",0,0,(function(){return~~(this.millisecond()/100)})),$(0,["SS",2],0,(function(){return~~(this.millisecond()/10)})),$(0,["SSS",3],0,"millisecond"),$(0,["SSSS",4],0,(function(){return 10*this.millisecond()})),$(0,["SSSSS",5],0,(function(){return 100*this.millisecond()})),$(0,["SSSSSS",6],0,(function(){return 1e3*this.millisecond()})),$(0,["SSSSSSS",7],0,(function(){return 1e4*this.millisecond()})),$(0,["SSSSSSSS",8],0,(function(){return 1e5*this.millisecond()})),$(0,["SSSSSSSSS",9],0,(function(){return 1e6*this.millisecond()})),Te("S",ye,le),Te("SS",ye,ue),Te("SSS",ye,ce),ir="SSSS";ir.length<=9;ir+="S")Te(ir,ve);function sr(e,t){t[We]=Fe(1e3*("0."+e))}for(ir="S";ir.length<=9;ir+="S")De(ir,sr);function or(){return this._isUTC?"UTC":""}function lr(){return this._isUTC?"Coordinated Universal Time":""}nr=Ke("Milliseconds",!1),$("z",0,0,"zoneAbbr"),$("zz",0,0,"zoneName");var ur=w.prototype;function cr(e){return Za(1e3*e)}function dr(){return Za.apply(null,arguments).parseZone()}function pr(e){return e}ur.add=Di,ur.calendar=Ui,ur.clone=zi,ur.diff=Ji,ur.endOf=bn,ur.format=tn,ur.from=an,ur.fromNow=nn,ur.to=rn,ur.toNow=sn,ur.get=et,ur.invalidAt=Tn,ur.isAfter=Wi,ur.isBefore=Hi,ur.isBetween=Yi,ur.isSame=Gi,ur.isSameOrAfter=qi,ur.isSameOrBefore=Zi,ur.isValid=Nn,ur.lang=ln,ur.locale=on,ur.localeData=un,ur.max=Ka,ur.min=Ja,ur.parsingFlags=xn,ur.set=tt,ur.startOf=gn,ur.subtract=Li,ur.toArray=An,ur.toObject=kn,ur.toDate=wn,ur.toISOString=Qi,ur.inspect=en,"undefined"!=typeof Symbol&&null!=Symbol.for&&(ur[Symbol.for("nodejs.util.inspect.custom")]=function(){return"Moment<"+this.format()+">"}),ur.toJSON=Sn,ur.toString=Xi,ur.unix=_n,ur.valueOf=vn,ur.creationData=Mn,ur.eraName=Fn,ur.eraNarrow=En,ur.eraAbbr=Dn,ur.eraYear=Ln,ur.year=Ze,ur.isLeapYear=Je,ur.weekYear=Hn,ur.isoWeekYear=Yn,ur.quarter=ur.quarters=Qn,ur.month=ft,ur.daysInMonth=mt,ur.week=ur.weeks=Vt,ur.isoWeek=ur.isoWeeks=Ct,ur.weeksInYear=Zn,ur.weeksInWeekYear=Jn,ur.isoWeeksInYear=Gn,ur.isoWeeksInISOWeekYear=qn,ur.date=er,ur.day=ur.days=Ht,ur.weekday=Yt,ur.isoWeekday=Gt,ur.dayOfYear=tr,ur.hour=ur.hours=na,ur.minute=ur.minutes=ar,ur.second=ur.seconds=rr,ur.millisecond=ur.milliseconds=nr,ur.utcOffset=mi,ur.utc=gi,ur.local=bi,ur.parseZone=vi,ur.hasAlignedHourOffset=_i,ur.isDST=wi,ur.isLocal=ki,ur.isUtcOffset=Si,ur.isUtc=Ni,ur.isUTC=Ni,ur.zoneAbbr=or,ur.zoneName=lr,ur.dates=S("dates accessor is deprecated. Use date instead.",er),ur.months=S("months accessor is deprecated. Use month instead",ft),ur.years=S("years accessor is deprecated. Use year instead",Ze),ur.zone=S("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",yi),ur.isDSTShifted=S("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",Ai);var hr=I.prototype;function fr(e,t,a,i){var n=ba(),r=h().set(i,t);return n[a](r,e)}function mr(e,t,a){if(u(e)&&(t=e,e=void 0),e=e||"",null!=t)return fr(e,t,a,"month");var i,n=[];for(i=0;i<12;i++)n[i]=fr(e,i,a,"month");return n}function yr(e,t,a,i){"boolean"==typeof e?(u(t)&&(a=t,t=void 0),t=t||""):(a=t=e,e=!1,u(t)&&(a=t,t=void 0),t=t||"");var n,r=ba(),s=e?r._week.dow:0,o=[];if(null!=a)return fr(t,(a+s)%7,i,"day");for(n=0;n<7;n++)o[n]=fr(t,(n+s)%7,i,"day");return o}function gr(e,t){return mr(e,t,"months")}function br(e,t){return mr(e,t,"monthsShort")}function vr(e,t,a){return yr(e,t,a,"weekdays")}function _r(e,t,a){return yr(e,t,a,"weekdaysShort")}function wr(e,t,a){return yr(e,t,a,"weekdaysMin")}hr.calendar=E,hr.longDateFormat=G,hr.invalidDate=Z,hr.ordinal=X,hr.preparse=pr,hr.postformat=pr,hr.relativeTime=ee,hr.pastFuture=te,hr.set=V,hr.eras=Vn,hr.erasParse=Cn,hr.erasConvertYear=In,hr.erasAbbrRegex=Pn,hr.erasNameRegex=Rn,hr.erasNarrowRegex=On,hr.months=ut,hr.monthsShort=ct,hr.monthsParse=pt,hr.monthsRegex=gt,hr.monthsShortRegex=yt,hr.week=Nt,hr.firstDayOfYear=Mt,hr.firstDayOfWeek=Tt,hr.weekdays=$t,hr.weekdaysMin=Ut,hr.weekdaysShort=jt,hr.weekdaysParse=Wt,hr.weekdaysRegex=qt,hr.weekdaysShortRegex=Zt,hr.weekdaysMinRegex=Jt,hr.isPM=aa,hr.meridiem=ra,ma("en",{eras:[{since:"0001-01-01",until:1/0,offset:1,name:"Anno Domini",narrow:"AD",abbr:"AD"},{since:"0000-12-31",until:-1/0,offset:1,name:"Before Christ",narrow:"BC",abbr:"BC"}],dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10;return e+(1===Fe(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")}}),a.lang=S("moment.lang is deprecated. Use moment.locale instead.",ma),a.langData=S("moment.langData is deprecated. Use moment.localeData instead.",ba);var Ar=Math.abs;function kr(){var e=this._data;return this._milliseconds=Ar(this._milliseconds),this._days=Ar(this._days),this._months=Ar(this._months),e.milliseconds=Ar(e.milliseconds),e.seconds=Ar(e.seconds),e.minutes=Ar(e.minutes),e.hours=Ar(e.hours),e.months=Ar(e.months),e.years=Ar(e.years),this}function Sr(e,t,a,i){var n=Mi(t,a);return e._milliseconds+=i*n._milliseconds,e._days+=i*n._days,e._months+=i*n._months,e._bubble()}function Nr(e,t){return Sr(this,e,t,1)}function xr(e,t){return Sr(this,e,t,-1)}function Tr(e){return e<0?Math.floor(e):Math.ceil(e)}function Mr(){var e,t,a,i,n,r=this._milliseconds,s=this._days,o=this._months,l=this._data;return r>=0&&s>=0&&o>=0||r<=0&&s<=0&&o<=0||(r+=864e5*Tr(Cr(o)+s),s=0,o=0),l.milliseconds=r%1e3,e=Ie(r/1e3),l.seconds=e%60,t=Ie(e/60),l.minutes=t%60,a=Ie(t/60),l.hours=a%24,s+=Ie(a/24),o+=n=Ie(Vr(s)),s-=Tr(Cr(n)),i=Ie(o/12),o%=12,l.days=s,l.months=o,l.years=i,this}function Vr(e){return 4800*e/146097}function Cr(e){return 146097*e/4800}function Ir(e){if(!this.isValid())return NaN;var t,a,i=this._milliseconds;if("month"===(e=ie(e))||"quarter"===e||"year"===e)switch(t=this._days+i/864e5,a=this._months+Vr(t),e){case"month":return a;case"quarter":return a/3;case"year":return a/12}else switch(t=this._days+Math.round(Cr(this._months)),e){case"week":return t/7+i/6048e5;case"day":return t+i/864e5;case"hour":return 24*t+i/36e5;case"minute":return 1440*t+i/6e4;case"second":return 86400*t+i/1e3;case"millisecond":return Math.floor(864e5*t)+i;default:throw new Error("Unknown unit "+e)}}function Fr(e){return function(){return this.as(e)}}var Er=Fr("ms"),Dr=Fr("s"),Lr=Fr("m"),Rr=Fr("h"),Pr=Fr("d"),Or=Fr("w"),Br=Fr("M"),$r=Fr("Q"),jr=Fr("y"),Ur=Er;function zr(){return Mi(this)}function Wr(e){return e=ie(e),this.isValid()?this[e+"s"]():NaN}function Hr(e){return function(){return this.isValid()?this._data[e]:NaN}}var Yr=Hr("milliseconds"),Gr=Hr("seconds"),qr=Hr("minutes"),Zr=Hr("hours"),Jr=Hr("days"),Kr=Hr("months"),Xr=Hr("years");function Qr(){return Ie(this.days()/7)}var es=Math.round,ts={ss:44,s:45,m:45,h:22,d:26,w:null,M:11};function as(e,t,a,i,n){return n.relativeTime(t||1,!!a,e,i)}function is(e,t,a,i){var n=Mi(e).abs(),r=es(n.as("s")),s=es(n.as("m")),o=es(n.as("h")),l=es(n.as("d")),u=es(n.as("M")),c=es(n.as("w")),d=es(n.as("y")),p=r<=a.ss&&["s",r]||r<a.s&&["ss",r]||s<=1&&["m"]||s<a.m&&["mm",s]||o<=1&&["h"]||o<a.h&&["hh",o]||l<=1&&["d"]||l<a.d&&["dd",l];return null!=a.w&&(p=p||c<=1&&["w"]||c<a.w&&["ww",c]),(p=p||u<=1&&["M"]||u<a.M&&["MM",u]||d<=1&&["y"]||["yy",d])[2]=t,p[3]=+e>0,p[4]=i,as.apply(null,p)}function ns(e){return void 0===e?es:"function"==typeof e&&(es=e,!0)}function rs(e,t){return void 0!==ts[e]&&(void 0===t?ts[e]:(ts[e]=t,"s"===e&&(ts.ss=t-1),!0))}function ss(e,t){if(!this.isValid())return this.localeData().invalidDate();var a,i,n=!1,r=ts;return"object"==typeof e&&(t=e,e=!1),"boolean"==typeof e&&(n=e),"object"==typeof t&&(r=Object.assign({},ts,t),null!=t.s&&null==t.ss&&(r.ss=t.s-1)),i=is(this,!n,r,a=this.localeData()),n&&(i=a.pastFuture(+this,i)),a.postformat(i)}var os=Math.abs;function ls(e){return(e>0)-(e<0)||+e}function us(){if(!this.isValid())return this.localeData().invalidDate();var e,t,a,i,n,r,s,o,l=os(this._milliseconds)/1e3,u=os(this._days),c=os(this._months),d=this.asSeconds();return d?(e=Ie(l/60),t=Ie(e/60),l%=60,e%=60,a=Ie(c/12),c%=12,i=l?l.toFixed(3).replace(/\.?0+$/,""):"",n=d<0?"-":"",r=ls(this._months)!==ls(d)?"-":"",s=ls(this._days)!==ls(d)?"-":"",o=ls(this._milliseconds)!==ls(d)?"-":"",n+"P"+(a?r+a+"Y":"")+(c?r+c+"M":"")+(u?s+u+"D":"")+(t||e||l?"T":"")+(t?o+t+"H":"")+(e?o+e+"M":"")+(l?o+i+"S":"")):"P0D"}var cs=si.prototype;return cs.isValid=ni,cs.abs=kr,cs.add=Nr,cs.subtract=xr,cs.as=Ir,cs.asMilliseconds=Er,cs.asSeconds=Dr,cs.asMinutes=Lr,cs.asHours=Rr,cs.asDays=Pr,cs.asWeeks=Or,cs.asMonths=Br,cs.asQuarters=$r,cs.asYears=jr,cs.valueOf=Ur,cs._bubble=Mr,cs.clone=zr,cs.get=Wr,cs.milliseconds=Yr,cs.seconds=Gr,cs.minutes=qr,cs.hours=Zr,cs.days=Jr,cs.weeks=Qr,cs.months=Kr,cs.years=Xr,cs.humanize=ss,cs.toISOString=us,cs.toString=us,cs.toJSON=us,cs.locale=on,cs.localeData=un,cs.toIsoString=S("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",us),cs.lang=ln,$("X",0,0,"unix"),$("x",0,0,"valueOf"),Te("x",_e),Te("X",ke),De("X",(function(e,t,a){a._d=new Date(1e3*parseFloat(e))})),De("x",(function(e,t,a){a._d=new Date(Fe(e))})),
1
+ "use strict";var e=require("short-unique-id"),t=require("axios"),a=require("axios-retry"),i=require("isomorphic-ws"),n=require("form-data"),r=require("buffer"),s=require("jszip");function o(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var l=o(e),u=o(t),c=o(a),d=o(i),p=o(n),h=o(s);class f{func;owner;constructor(e,t){this.func=e,this.owner=t}}class m{_debugMode=!1;_listeners=new Map;_onceListeners=new Map;_catchAllListeners=[];_capturedEvents=new Map;_capturedAccumulatedDuration=0;constructor(){}setDebugMode(e){this._debugMode&&!e&&(console.log("Captured events: ",this._capturedEvents),console.log(`Total duration: ${this._capturedAccumulatedDuration}ms`)),this._debugMode=e,this._capturedEvents=new Map,this._capturedAccumulatedDuration=0}$clear(){this._listeners.clear(),this._onceListeners.clear()}clearCatchAllListeners(){this._catchAllListeners=[]}listenerCount(e){let t=0;return t+=this._listeners.get(e)?.length||0,t+=this._onceListeners.get(e)?.length||0,t}$hasListener(e){return this.listenerCount(e)>0}$catchAll(e,t){this._catchAllListeners.push(new f(e,t))}$on(e,t,a){let i;this._listeners.has(e)?i=this._listeners.get(e):(i=[],this._listeners.set(e,i)),i.push(new f(t,a))}$once(e,t,a){let i;this._onceListeners.has(e)?i=this._onceListeners.get(e):(i=[],this._onceListeners.set(e,i)),i.push(new f(t,a))}$off(e,t,a){let i=0;if(this._listeners.has(e)){i+=this._listeners.get(e).removeByFilterFunc((e=>e.func===t&&e.owner===a))}if(this._onceListeners.has(e)){i+=this._onceListeners.get(e).removeByFilterFunc((e=>e.func===t&&e.owner===a))}return i}$offByOwner(e,t){let a=0;if(this._listeners.has(e)){a+=this._listeners.get(e).removeByFilterFunc((e=>e.owner===t))}if(this._onceListeners.has(e)){a+=this._onceListeners.get(e).removeByFilterFunc((e=>e.owner===t))}return a}$emitSync(e,...t){const a=[],i=performance.now();let n=0;try{for(const i of this._catchAllListeners.values())try{const r=i.func.call(i.owner,e,...t);r&&r.then&&a.push(r),n++}catch(e){console.error(e)}if(this._listeners.has(e)){const i=this._listeners.get(e);for(const e of i)try{const i=e.func.call(e.owner,...t);i&&i.then&&a.push(i),n++}catch(e){console.error(e)}}if(this._onceListeners.has(e)){const i=this._onceListeners.get(e);for(const e of i)try{const i=e.func.call(e.owner,...t);i&&i.then&&a.push(i),n++}catch(e){console.error(e)}this._onceListeners.set(e,[])}}catch(e){console.error(e)}if(this._debugMode&&"log"!==e){const t=performance.now(),r=Math.floor(t-i);let s=this._capturedEvents.get(e);s?(s.count++,s.duration+=r,s.promises+=a.length,s.sentTo+=n):(s={eventType:e,count:1,duration:r,promises:a.length,sentTo:n},this._capturedEvents.set(e,s)),r>3&&console.log(`Expensive event ${e}: ${r}ms`)}return a.length>0?Promise.all(a):null}$emit(e,...t){return new Promise((a=>{a(this.$emitSync(e,...t))}))}}const y=new m;class g{type;itemId;elementId;target;prop;value;oldValue;createdAt=Date.now();moveTargetArray;moveTargetArrayIndex;moveTargetElementId;start;length;position;elementsToDelete;field;fieldId;isLink;bundleIndex=0;_undoFunction;_redoFunction;constructor(e,t,a,i,n,r,s){this.type=e,this.itemId=t,this.elementId=a,this.target=i,this.prop=n,this.value=r,this.oldValue=s}async undo(){this._undoFunction&&await this._undoFunction()}async redo(){this._redoFunction&&await this._redoFunction()}setUndoFunction(e){this._undoFunction=e}setRedoFunction(e){this._redoFunction=e}setMoveTarget(e,t,a){this.moveTargetArray=e,this.moveTargetArrayIndex=t,this.moveTargetElementId=a}setRange(e,t){this.start=e,this.length=t}setPosition(e){this.position=e}setElementsToDelete(e){this.elementsToDelete=e}setField(e){this.field=e}setFieldId(e){this.fieldId=e}setIsLink(e){this.isLink=e}clone(){return Object.assign(new g,this)}isWithinMergeDeltaOf(e,t){return Math.abs(e.createdAt-this.createdAt)<=t}isMergeableWith(e,t){if(!this.isWithinMergeDeltaOf(e,t))return!1;const a=e.type===this.type&&e.itemId===this.itemId&&e.elementId===this.elementId&&e.target===this.target&&e.prop===this.prop,i=void 0!==e.value&&void 0!==e.oldValue&&void 0===e.start&&void 0===e.length&&void 0===e.position&&void 0===e.elementsToDelete;return a&&i}merge(e,t){if(!this.isMergeableWith(e,t))return null;let a=this.clone();return a.value=e.value,a.createdAt=e.createdAt,a._redoFunction=e._redoFunction,a}}const b=new l.default({dictionary:"hex",length:12});let v=(new Date).valueOf();var _={createItemOrBlockID:function(){return b.rnd()},createFieldID:function(){return(v++).toString()},createGUID:function(){return b.rnd()},createGeneratedItemId:function(){return"gen_"+this.createGUID()},toUserFriendlyName:function(e){return e.replace(/_./g,(e=>e.charAt(1).toUpperCase())).replace(/([a-z])([A-Z])/g,"$1 $2").replace(/^(.)/,(e=>e.toUpperCase()))},assert:function(e,t){e||console.error(`ASSERTION FAILED: '${e}' is untrue: ${t}`)},matchItemIdAndObject:(e,t)=>!(!e||!t)&&(e._id===t||e===t._id),areValuesEqual(e,t,a=5){if(e===t)return!0;if("number"==typeof e&&"number"==typeof t)return isNaN(e)&&isNaN(t);if(null==e||null==t||typeof e!=typeof t)return!1;if("object"!=typeof e)return!1;if(Array.isArray(e)!==Array.isArray(t))return!1;const i=Object.keys(e),n=Object.keys(t);if(i.length!==n.length)return!1;for(let n of i){if(!Object.prototype.hasOwnProperty.call(t,n))return!1;if(a>0&&!this.areValuesEqual(e[n],t[n],a--))return!1}return!0},startTimer(e){const t=Date.now();return e&&console.log(`[TIMER] - ${e}`),function(e){const a=Date.now()-t;e?console.log(`[TIMER] - ${e}: ${a}ms`):console.log(`[TIMER] - ${a}ms`)}},dataURItoBlob(e){const t=e.split(",")[0].split(":")[1].split(";")[0],a=atob(e.split(",")[1]),i=[];for(let e=0;e<a.length;e++)i.push(a.charCodeAt(e));return new Blob([new Uint8Array(i)],{type:t})},xmur3(e){let t=1779033703^e.length;for(let a=0;a<e.length;a++)t=Math.imul(t^e.charCodeAt(a),3432918353),t=t<<13|t>>>19;return()=>(t=Math.imul(t^t>>>16,2246822507),t=Math.imul(t^t>>>13,3266489909),t^=t>>>16,t>>>0)},mulberry32:e=>()=>{let t=e+=1831565813;return t=Math.imul(t^t>>>15,1|t),t^=t+Math.imul(t^t>>>7,61|t),((t^t>>>14)>>>0)/4294967296},hslToRgb(e,t,a){const i=(1-Math.abs(2*a-1))*t,n=e/60,r=i*(1-Math.abs(n%2-1));let[s,o,l]=[0,0,0];[s,o,l]=n>=0&&n<1?[i,r,0]:n<2?[r,i,0]:n<3?[0,i,r]:n<4?[0,r,i]:n<5?[r,0,i]:[i,0,r];const u=a-i/2;return[Math.round(255*(s+u)),Math.round(255*(o+u)),Math.round(255*(l+u))]},rgbToHex:(e,t,a)=>"#"+[e,t,a].map((e=>e.toString(16).padStart(2,"0"))).join(""),colorFromString(e,t={}){const{minS:a=.72,maxS:i=.97,minL:n=.48,maxL:r=.62,return:s="hex"}=t,o=this.xmur3(e)(),l=this.mulberry32(o),u=Math.floor(360*l()),c=a+l()*(i-a),d=n+l()*(r-n);if("hsl"===s)return`hsl(${u} ${Math.round(100*c)}% ${Math.round(100*d)}%)`;const[p,h,f]=this.hslToRgb(u,c,d);return"rgb"===s?`rgb(${p}, ${h}, ${f})`:this.rgbToHex(p,h,f)},async downloadFile(e,t){if(e.startsWith("blob:")){const t=await fetch(e),a=await t.blob();return{data:a,mimeType:a.type}}return u.default.get(e,{responseType:"blob",onDownloadProgress:e=>{if(t&&e.total){const a=Math.round(100*e.loaded/e.total);t(a,e.total,e.loaded)}}})}};const w=new Set(["dependantFields","conditionFields","dependenciesInitialized","_hidden","_updateConditions"]),A=new Set(["__proto__","__ob__","isSelected","isDirty","options","_hidden","_updateConditions","dependantFields","conditionFields","separatorFields","dependenciesInitialized","order","inject","type","datatype","minValue","maxValue","id","linkableTypes"]),k=new Set(["isSelected","isDirty","_hidden","_updateConditions","options","dependantFields","conditionFields","separatorFields","dependenciesInitialized","id","linkableTypes"]);class S{suppressDirty=!1;undoManager;_promises=[];_capturePromises=!1;_profiledEvents=[];_profiling=!1;_profilerStartTime=0;_profiledCount=0;static _instance;static get instance(){return this._instance||(this._instance=new this)}constructor(){}suppressDirtyFlag(e){this.suppressDirty=e}setUndoManager(e){this.undoManager=e}isUndoManagerActive(){return this.undoManager?.getEnabled()}_postUndoManagerEvent(e){this.undoManager&&(k.has(e.prop)||this.undoManager.event(e))}setItemDirty(e,t,a,i){this.suppressDirty||e.isDirty||a===i||A.has(t)||e.markDirty()}capturePromise(e){try{return this._capturePromises=!0,e(),Promise.all(this._promises)}finally{this._capturePromises=!1,this._promises=[]}}startProfiling(){this._profiling=!0,this._profiledEvents=[],this._profiledCount=0,this._profilerStartTime=performance.now(),y.setDebugMode(!0)}endProfiling(){const e=performance.now()-this._profilerStartTime;y.setDebugMode(!1),console.log("Profiled events: ",this._profiledEvents),console.log(`Profiling took ${e}ms`)}_addPromise(e){this._capturePromises&&this._promises.push(e)}_proxyObject(e,t,a,i){const n=this;if(!e)throw"_proxyObject(): Object is not defined. Cannot create proxy!";if(!a)throw"_proxyObject(): Item is not defined. Cannot create proxy!";if(!i)throw"_proxyObject(): Options is not defined. Cannot create proxy!";return new Proxy(e,{set:function(r,s,o){if(w.has(s))return Reflect.set(r,s,o);const l=performance.now();let u=n.isUndoManagerActive();const c=Reflect.get(r,s);if(_.areValuesEqual(c,o))return!0;let d=Reflect.set(r,s,o);function p(n,o){const l=new g(i.proxyEventTypeName,a._id,t?t.id:null,r,s,n,o);return i.isField&&(l.setField(e.name),l.setFieldId(e.id)),void 0!==i.isLink&&l.setIsLink(i.isLink),l}i.changeDoesNotMakeItemDirty||(_.matchItemIdAndObject(c,o)?u=!1:n.setItemDirty(a,s,c,o));const h=p(o,c);u&&(h.setUndoFunction((()=>{Reflect.set(r,s,h.oldValue);const e=p(h.oldValue,h.value);y.$emitSync("proxy:valueChange",e),i.changeEventFunc(e)})),h.setRedoFunction((()=>{Reflect.set(r,s,h.value);const e=p(h.value,h.oldValue);y.$emitSync("proxy:valueChange",e),i.changeEventFunc(e)}))),i.changeEventFunc(h),u&&n._postUndoManagerEvent(h),y.$emitSync("proxy:valueChange",h);const f=performance.now();return n._profiledCount++,n._profiledEvents.push({event:h,type:"object",duration:f-l}),d}})}_proxyArray(e,t,a,i){const n=this;if(!e)throw"_proxyArray(): Array is not defined. Cannot create proxy!";if(!a)throw"_proxyArray(): Item is not defined. Cannot create proxy!";if(!i)throw"_proxyArray(): Options is not defined. Cannot create proxy!";return new Proxy(e,{set(e,r,s){const o=performance.now(),l=Reflect.get(e,r);let u=Reflect.set(e,r,s);if("length"!==r&&"__proto__"!==r){const c=n.isUndoManagerActive();function d(n,s){const o=new g("arraySetValue",a._id,t?t.id:null,e,r,n,s);return i.field&&(o.setField(i.field.name),o.setFieldId(i.field.id)),o}i.changeDoesNotMakeItemDirty||n.setItemDirty(a,r,l,s);const p=d(s,l);c&&(p.setUndoFunction((()=>{const t=d(p.oldValue,p.value),a=parseInt(r);if(void 0===p.oldValue&&e.length-1===a){const i=e.pop();t.setElementsToDelete([i]),t.setRange(a,1)}else Reflect.set(e,r,p.oldValue);y.$emitSync("proxy:valueChange",t),i.deleteEventFunc(t)})),p.setRedoFunction((()=>{Reflect.set(e,r,p.value);const t=d(p.value,p.oldValue);y.$emitSync("proxy:valueChange",t),i.addEventFunc(t)}))),i.addEventFunc(p),c&&n._postUndoManagerEvent(p),y.$emitSync("proxy:valueChange",p);const h=performance.now();n._profiledCount++,n._profiledEvents.push({event:p,type:"set_array",duration:h-o})}return u},get(r,s){if("splice"===s){const e=Reflect.get(r,s);return function(...o){const l=o[0],u=o[1],c=[];for(let e=l;e<l+u;e++){const t=r[e];c.push(t)}function d(e,n,s){const o=new g("arraySpliceRemove",a._id,t?t.id:null,r);return i.field&&(o.setField(i.field.name),o.setFieldId(i.field.id)),o.setRange(e,n),o.setElementsToDelete(s),o}function p(e,n){const o=new g("arraySpliceAdd",a._id,t?t.id:null,r,s,n);return i.field&&(o.setField(i.field.name),o.setFieldId(i.field.id)),o.setPosition(e),o}if(e.apply(r,o),n.setItemDirty(a,s,!0,!1),u>0&&o.length<3){const e=n.isUndoManagerActive(),t=d(l,u,c);e&&(t.setUndoFunction((()=>{r.splice(l,0,...c);const e=p(l,c);y.$emitSync("proxy:valueChange",e),i.addEventFunc(e)})),t.setRedoFunction((()=>{r.splice(l,u);const e=d(l,u,c);y.$emitSync("proxy:valueChange",e),i.deleteEventFunc(e)}))),i.deleteEventFunc(t),e&&n._postUndoManagerEvent(t),y.$emitSync("proxy:valueChange",t)}else if(o.length>2){const e=o.slice(2),t=p(l,e);t.setPosition(l),t.setUndoFunction((()=>{r.splice(l,e.length);const t=d(l,e.length,e);y.$emitSync("proxy:valueChange",t),i.deleteEventFunc(t)})),t.setRedoFunction((()=>{r.splice(l,0,...e);const t=p(l,e);y.$emitSync("proxy:valueChange",t),i.addEventFunc(t)})),i.addEventFunc(t),n._postUndoManagerEvent(t),y.$emitSync("proxy:valueChange",t)}}}return"moveToArray"===s?function(e,o,l){const u=r,c=t,{array:d,element:p}=o.getTargetArrayAndElement();function h(e,t,a,i){i=void 0===i?a.length:i;const n=Reflect.get(e,"splice").apply(e,[t,1]);if(n.length>0){const e=n[0];return Reflect.get(a,"splice").apply(a,[i,0,e]),e}return null}const f=h(u,e,d,l);if(f){function m(e,i,n,r,s,o){const l=new g("arrayMoveToArray",a._id,t?t.id:null,e,void 0,o);return l.setRange(i,1),l.setMoveTarget(n,r,s?s.id:null),l}n.setItemDirty(a,s,!0,!1);const b=n.isUndoManagerActive(),v=m(u,e,o,l,p,f);b&&(v.setUndoFunction((()=>{const t=h(d,l,u,e),a=m(o,l,u,e,c,t);y.$emitSync("proxy:valueChange",a),i.moveEventFunc(a)})),v.setRedoFunction((()=>{const t=h(u,e,d,l),a=m(u,e,o,l,p,t);y.$emitSync("proxy:valueChange",a),i.moveEventFunc(a)}))),i.moveEventFunc(v),b&&n._postUndoManagerEvent(v),y.$emitSync("proxy:valueChange",v)}}:"getTargetArrayAndElement"===s?function(){return{array:e,element:t}}:("move"===s&&console.warn("'move' prop is not implemented in Proxifier"),Reflect.get(r,s))}})}proxyBlockArray(e,t,a){return this._proxyArray(e,t,a,{addEventFunc:e=>{this._addPromise(y.$emit("itemRepo:blockAdded",e))},deleteEventFunc:e=>{this._addPromise(y.$emit("itemRepo:blockDeleted",e))},moveEventFunc:e=>{this._addPromise(y.$emit("itemRepo:blockMoved",e))}})}proxyListArray(e,t,a){return this._proxyArray(e,null,a,{field:t,addEventFunc:function(e){y.$emit("itemRepo:listEntryAdded",e)},deleteEventFunc:function(e){y.$emit("itemRepo:listEntryDeleted",e)}})}proxyScriptArray(e,t,a){return this._proxyArray(e,t,a,{addEventFunc:function(e){y.$emit("itemRepo:scriptAdded",e)},deleteEventFunc:function(e){y.$emit("itemRepo:scriptDeleted",e)}})}proxyBlock(e,t){return this._proxyObject(e,e,t,{isLink:!0,changeEventFunc:function(e){y.$emit("itemRepo:fieldChanged",e),y.$emit("itemRepo:linkChanged",e)},proxyEventTypeName:"blockSetValue"})}proxyGraphBlock(e,t){return this._proxyObject(e,e,t,{isLink:!0,changeEventFunc:function(e){y.$emit("itemRepo:graphNodeChanged",e)},proxyEventTypeName:"blockSetValue"})}proxyGraphBlockArray(e,t){return this._proxyArray(e,t,t,{addEventFunc:function(e){y.$emit("itemRepo:graphNodeAdded",e)},deleteEventFunc:function(e){y.$emit("itemRepo:graphNodeDeleted",e)}})}proxyConnection(e,t){return this._proxyObject(e,t,t,{changeEventFunc:function(e){y.$emit("itemRepo:graphConnectionChanged",e)},proxyEventTypeName:"connectionSetValue"})}proxyConnectionArray(e,t){return this._proxyArray(e,e,t,{addEventFunc:function(e){y.$emit("itemRepo:graphConnectionAdded",e)},deleteEventFunc:function(e){y.$emit("itemRepo:graphConnectionDeleted",e)}})}proxyItemField(e,t){const a="Link"===e.type;return this._proxyObject(e,null,t,{isLink:a,isField:!0,changeEventFunc:function(e){y.$emit("itemRepo:fieldChanged",e),a&&y.$emit("itemRepo:linkChanged",e)},proxyEventTypeName:"itemFieldSetValue"})}proxyGraphBlockField(e,t,a){return this._proxyObject(e,t,a,{isLink:"Link"===e.type,isField:!0,changeEventFunc:function(e){y.$emit("itemRepo:graphNodeFieldChanged",e)},proxyEventTypeName:"blockFieldSetValue"})}proxyBlockField(e,t,a){const i="Link"===e.type;return this._proxyObject(e,t,a,{isLink:i,isField:!0,changeEventFunc:function(e){y.$emit("itemRepo:fieldChanged",e),i&&y.$emit("itemRepo:linkChanged",e)},proxyEventTypeName:"blockFieldSetValue"})}proxyScriptItem(e,t,a){return this._proxyObject(e,t,a,{isLink:!0,changeEventFunc:function(e){y.$emit("itemRepo:scriptItemChanged",e)},proxyEventTypeName:"scriptItemSetValue"})}proxyScriptFieldsArray(e,t,a){return this._proxyArray(e,t,a,{addEventFunc:function(e){y.$emit("itemRepo:scriptFieldAdded",e)},deleteEventFunc:function(e){y.$emit("itemRepo:scriptFieldDeleted",e)},changeDoesNotMakeItemDirty:!0})}proxyScriptField(e,t,a){return this._proxyObject(e,t,a,{isLink:!1,isField:!0,changeEventFunc:function(e){y.$emit("itemRepo:scriptFieldChanged",e)},proxyEventTypeName:"itemScriptFieldSetValue",changeDoesNotMakeItemDirty:!1})}proxyCustomFieldsArray(e,t){return this._proxyArray(e,null,t,{addEventFunc:function(e){y.$emit("itemRepo:customFieldAdded",e)},deleteEventFunc:function(e){y.$emit("itemRepo:customFieldDeleted",e)},changeDoesNotMakeItemDirty:!0})}proxyCustomField(e,t){return this._proxyObject(e,null,t,{isLink:!1,isField:!0,changeEventFunc:function(e){y.$emit("itemRepo:customFieldChanged",e)},proxyEventTypeName:"itemCustomFieldSetValue",changeDoesNotMakeItemDirty:!1})}}class N{level;name;times;durations=[];childrenMap=new Map;children=[];parent;constructor(e,t,a,i){this.name=e,this.level=t,this.times=[a],this.parent=i}}class x{startTime=0;endTime=0;startIteration=0;currentLevel=0;root=new N("root",0,0,void 0);currentEntry;active=!1;static _instance;static get instance(){return this._instance||(this._instance=new this)}constructor(){this.currentEntry=this.root}start(){this.startTime=performance.now(),this.startIteration=this.startTime,this.root=new N("root",0,0,void 0),this.currentEntry=this.root,this.currentLevel=0,this.active=!0}end(e=!1){this.active=!1,this.endTime=performance.now()-this.startTime,this.root.durations.push(this.endTime-this.root.times[0]),e&&this.printResults()}_iterate(e,t){e(t=t||this.root);for(const a of t.children)this._iterate(e,a)}getResults(){const e=[];function t(e){return Math.round(1e3*e)/1e3}function a(e){return e.reduce(((e,t)=>e+t),0)}return this._iterate((function(i){const n=t(a(i.times)/i.times.length),r=t(a(i.durations)/i.durations.length),s=t(a(i.durations)),o=t(s-i.children.reduce(((e,t)=>e+a(t.durations)),0));e.push({name:"".padStart(2*i.level," .")+i.name,executions:i.times.length,avgTimeStartMs:n,avgTimeEndMs:t(n+r),avgDurationMs:r,totalDurationMs:s,selfDurationMs:o})})),e}printResults(){console.table(this.getResults(),["name","executions","avgTimeStartMs","avgTimeEndMs","avgDurationMs","totalDurationMs","selfDurationMs"])}newIteration(){this.startIteration=performance.now(),this.currentLevel=0}async asyncBlock(e,t){if(!this.active)return t();let a;try{return a=this.beginBlock(e),await t()}finally{this.endBlock(a)}}block(e,t){if(!this.active)return t();let a;try{return a=this.beginBlock(e),t()}finally{this.endBlock(a)}}beginBlock(e){if(!this.active)return;this.currentLevel++;const t=performance.now()-this.startIteration;let a=this.currentEntry.childrenMap.get(e);return a?a.times.push(t):(a=new N(e,this.currentLevel,t,this.currentEntry),this.currentEntry.children.push(a),this.currentEntry.childrenMap.set(e,a)),this.currentEntry=a,a}endBlock(e){if(!e)return;const t=performance.now()-this.startIteration-e.times[e.times.length-1];e.durations.push(t),this.currentEntry=e.parent,this.currentLevel--}}class T extends Error{constructor(e,t){super(e),t&&(this.name=t)}toString(){return this.name?`${this.name}: ${this.message}`:this.message}}class M extends T{constructor(e){super(e,"InvalidArgumentException")}}class V extends T{constructor(e){super(e,"RuntimeException")}}class C extends T{constructor(e){super(e,"LoaderException")}}class I extends T{constructor(e){super(e,"QuotaExceededException")}}class F extends T{constructor(e){super(e,"AccessDeniedException")}}let E=class{_id;name;folder;folderPath;links;attributes;userAttributes;filename;createdAt;updatedAt;version;filesize;hash;mimeType;type;packageType;createdBy;updatedBy;acl;visibility;properties;allowConversation;conversation;tags;contributors;description;shortDescription;userAttributeTemplate;categories;attachments;license;quotaUser;quotaGroup;itemSize;totalSize;flags;perceptiveHash;unpackagedSize;location;itemFlag;constructor(e){if(this._id=e._id,this.name=e.name,this.folder=e.folder,this.folderPath=e.folderPath,this.links=[],Array.isArray(e.links))for(const t of e.links)this.links.push({to:t.to,usage:t.usage});this.attributes=JSON.parse(JSON.stringify(e.attributes||{})),this.userAttributes=JSON.parse(JSON.stringify(e.userAttributes||{})),this.filename=e.filename,this.createdAt=e.createdAt,this.updatedAt=e.updatedAt,this.version={major:e.version?.major||0,minor:e.version?.minor||0,revision:e.version?.revision||1},this.filesize=e.filesize,this.hash=e.hash,this.mimeType=e.mimeType,this.type=e.type,this.packageType=e.packageType,this.createdBy=e.createdBy,this.updatedBy=e.updatedBy,this.acl=JSON.parse(JSON.stringify(e.acl||[])),this.visibility=e.visibility,this.properties=JSON.parse(JSON.stringify(e.properties||{})),this.allowConversation=e.allowConversation,this.conversation=e.conversation,this.tags=JSON.parse(JSON.stringify(e.tags||[])),this.contributors=JSON.parse(JSON.stringify(e.contributors||[])),this.description=e.description,this.shortDescription=e.shortDescription,this.userAttributeTemplate=e.userAttributeTemplate,this.categories=e.categories,this.attachments=JSON.parse(JSON.stringify(e.attachments||[])),this.license=e.license,this.quotaUser=e.quotaUser,this.quotaGroup=e.quotaGroup,this.itemSize=e.itemSize,this.totalSize=e.totalSize,this.flags=JSON.parse(JSON.stringify(e.flags||[])),this.perceptiveHash=e.perceptiveHash,this.unpackagedSize=e.unpackagedSize,this.location=e.location,this.itemFlag=JSON.parse(JSON.stringify(e.itemFlag||{}))}};class D extends E{links;thumbnails;fieldSets;fields;userFields;isAggregatedItem=!0;constructor(e){if(super(e),this.links=[],Array.isArray(e.links))for(const t of e.links)this.links.push({to:t.to,usage:t.usage,stopRecursion:t.stopRecursion});this.thumbnails=JSON.parse(JSON.stringify(e.thumbnails||[])),this.fieldSets=JSON.parse(JSON.stringify(e.fieldSets||[])),this.fields=JSON.parse(JSON.stringify(e.fields||[])),this.userFields=JSON.parse(JSON.stringify(e.userFields||[]))}}var L=[{_id:{$oid:"5e6a1ace89707feef5738292"},contentTypes:["model/splat"],fieldSets:[],fields:[],name:"Gaussian Splats",updateRequiresThumbRefresh:!0,creatableEmpty:!1},{_id:{$oid:"5e6a1ace89707feef3748569"},contentTypes:[],fieldSets:[],fields:[{label:"Scenes",type:"Separator"},{elementName:"Scene",fields:[{linkableTypes:["Scene"],type:"Link",usageAs:"Scene",mandatory:!0},{datatype:"Boolean",defaultValue:!0,displayName:"Load",name:"Load",type:"Attribute"},{datatype:"Boolean",defaultValue:!0,displayName:"Active",if:{Load:!0},name:"Active",type:"Attribute"},{datatype:"Boolean",defaultValue:!1,displayName:"Primary",name:"Primary",type:"Attribute"},{datatype:"Boolean",defaultValue:!1,displayName:"Exclude in packages",name:"ExcludeInPackages",type:"Attribute"},{datatype:"Transform",defaultValue:{position:{x:0,y:0,z:0},rotation:{w:1,x:0,y:0,z:0},scale:{x:1,y:1,z:1}},name:"Transform",type:"Attribute"}],name:"Scenes",type:"List"},{label:"Variable Sets",type:"Separator",collapsed:!0},{displayName:"Variable sets",elementName:"Variable set",fields:[{displayName:"Variable set",linkableTypes:["Variable Set"],type:"Link",usageAs:"VariableSet",mandatory:!0},{datatype:"String",defaultValue:"",displayName:"Name",name:"Name",type:"Attribute"}],name:"VariableSets",type:"List"},{label:"Graphics",type:"Separator",collapsed:!0},{datatype:"Enum",defaultValue:"Not defined",displayName:"Aspect ratio",info:"This determines the project's aspect ratio. If not defined, the game will run in the default aspect depending on platform and browser size",name:"AspectRatio",options:["Not defined","Standard (4:3)","Widescreen (16:9)","Ultrawide (21:9)","Custom"],type:"Attribute"},{datatype:"Float",defaultValue:1.3,minValue:.1,maxValue:10,displayName:"Custom Aspect",if:{AspectRatio:"Custom"},name:"CustomAspect",type:"Attribute"},{label:"Physics",type:"Separator",collapsed:!0},{datatype:"Boolean",defaultValue:!1,displayName:"Enabled",name:"PhysicsEnabled",type:"Attribute"},{datatype:"Vector3d",defaultValue:{x:0,y:-9.81,z:0},displayName:"Gravity",if:{PhysicsEnabled:!0},name:"Gravity",type:"Attribute"},{datatype:"LayerMatrix",defaultValue:[[0]],displayName:"Collision matrix",if:{PhysicsEnabled:!0},info:"This controls which physics object interact with which others depending on their layers",name:"CollisionMatrix",type:"Attribute"},{datatype:"StringList",defaultValue:["Default","Terrain","TransparentFX","Water"],displayName:"Layer names",fixedLength:!0,info:"Names of the layers to use with all scenegraph nodes",name:"LayerNames",type:"Attribute"},{label:"Resources",type:"Separator",collapsed:!0},{datatype:"Enum",defaultValue:"After loading everything",displayName:"Start execution",info:"This controls when the engine will start execution of the project in the player",name:"StartExecution",options:["Right away","After loading minimum LOD","After loading everything"],type:"Attribute"},{label:"Controls",type:"Separator",collapsed:!0},{datatype:"Boolean",defaultValue:!1,displayName:"Automatic pointer lock",name:"AutomaticPointerLock",type:"Attribute",info:"Enabling this will cause the mouse pointer to be locked until Escape is pressed"},{label:"Canvas Fonts",type:"Separator",collapsed:!0},{displayName:"Canvas fonts",elementName:"Font",fields:[{displayName:"Font",linkableTypes:["Font"],type:"Link",usageAs:"Font",mandatory:!0}],name:"CanvasFonts",type:"List"}],name:"Project",recursiveLoadStopsHere:!0,updateRequiresThumbRefresh:!1,creatableEmpty:!1},{_id:{$oid:"5e6a1ace24a07f56f3742569"},contentTypes:[],fieldSets:[],fields:[{elementName:"Variable",fields:[{datatype:"String",defaultValue:"Name",displayName:"Name",name:"Name",type:"Attribute"},{datatype:"Enum",defaultValue:"Integer",displayName:"Type",name:"Type",options:["Integer","Float","String","Boolean"],type:"Attribute"},{datatype:"Boolean",defaultValue:!1,displayName:"Value",if:{Type:"Boolean"},name:"BooleanValue",type:"Attribute"},{datatype:"Integer",defaultValue:0,displayName:"Value",if:{Type:"Integer"},name:"IntegerValue",type:"Attribute"},{datatype:"Float",defaultValue:0,displayName:"Value",if:{Type:"Float"},name:"FloatValue",type:"Attribute"},{datatype:"String",defaultValue:"",displayName:"Value",if:{Type:"String"},name:"StringValue",type:"Attribute"}],name:"Variables",type:"List"}],name:"Variable Set",updateRequiresThumbRefresh:!1,creatableEmpty:!0},{_id:{$oid:"5e6a1ace89707feef9173386"},contentTypes:["audio/mpeg"],fieldSets:[],fields:[{datatype:"Float",defaultValue:1,displayName:"Volume",maxValue:1,minValue:0,name:"Volume",type:"Attribute",widget:"Slider"}],name:"Audio",updateRequiresThumbRefresh:!1,creatableEmpty:!1},{_id:{$oid:"5e6a1acf89707feef917338f"},contentTypes:["*"],fieldSets:[],fields:[],name:"Binary",creatableEmpty:!1},{_id:{$oid:"5e6a1acf89707feef917337f"},contentTypes:["application/vnd.lumino.package"],fieldSets:[],fields:[],name:"Package",creatableEmpty:!1},{_id:{$oid:"5e6a1ad189707feef9173391"},contentTypes:["image/vnd.radiance"],fieldSets:[],fields:[],name:"HDR Image",creatableEmpty:!1},{_id:{$oid:"5e6a1ad189707feef9173392"},contentTypes:["image/png","image/jpeg","image/avif","image/heif"],fieldSets:[],fields:[{datatype:"Enum",defaultValue:"Linear",displayName:"Encoding",name:"Encoding",options:["Linear","sRGB"],type:"Attribute"}],name:"Image",updateRequiresThumbRefresh:!0,creatableEmpty:!1},{_id:{$oid:"5e6a1ad189707feef9173393"},contentTypes:[""],fieldSets:[],fields:[{label:"Type",type:"Separator"},{datatype:"Enum",defaultValue:"Physical",displayName:"Material type",name:"MaterialType",options:["Physical","Shader","Point","Basic","Normal","Toon","Matcap","Lambert","Phong"],type:"Attribute"},{label:"Matcap material options",type:"Separator",if:{MaterialType:"Matcap"}},{displayName:"Matcap map",linkableTypes:["Image"],type:"Link",usageAs:"Matcap",if:{MaterialType:"Matcap"}},{datatype:"Enum",defaultValue:"Repeat",displayName:"Horiz. wrapping",if:{MaterialType:"Matcap",Matcap:{$isset:!0}},name:"MatcapWrapS",options:["Repeat","Clamp to edge","Mirrored repeat"],type:"Attribute"},{datatype:"Enum",defaultValue:"Repeat",displayName:"Vert. wrapping",if:{MaterialType:"Matcap",Matcap:{$isset:!0}},name:"MatcapWrapT",options:["Repeat","Clamp to edge","Mirrored repeat"],type:"Attribute"},{datatype:"Enum",defaultValue:"Linear",displayName:"Mag filter",if:{MaterialType:"Matcap",Matcap:{$isset:!0}},name:"MatcapMagFilter",options:["Linear","Nearest"],type:"Attribute"},{datatype:"Enum",defaultValue:"Linear, Mipmap linear",displayName:"Min Filter",if:{MaterialType:"Matcap",Matcap:{$isset:!0}},name:"MatcapMinFilter",options:["Nearest","Nearest, Mipmap nearest","Nearest, Mipmap linear","Linear","Linear, Mipmap nearest","Linear, Mipmap linear"],type:"Attribute"},{datatype:"Enum",defaultValue:"1x",displayName:"Anisotropy",if:{MaterialType:"Matcap",Matcap:{$isset:!0}},name:"MatcapAnisotropy",options:["1x","2x","4x","8x","16x"],type:"Attribute"},{label:"Toon material options",type:"Separator",if:{MaterialType:"Toon"}},{displayName:"Gradient map",linkableTypes:["Image"],if:{MaterialType:"Toon"},type:"Link",usageAs:"Gradient"},{datatype:"Enum",defaultValue:"Repeat",displayName:"Horiz. wrapping",if:{MaterialType:"Toon",Gradient:{$isset:!0}},name:"GradientWrapS",options:["Repeat","Clamp to edge","Mirrored repeat"],type:"Attribute"},{datatype:"Enum",defaultValue:"Repeat",displayName:"Vert. wrapping",if:{MaterialType:"Toon",Gradient:{$isset:!0}},name:"GradientWrapT",options:["Repeat","Clamp to edge","Mirrored repeat"],type:"Attribute"},{datatype:"Enum",defaultValue:"Nearest",displayName:"Mag filter",if:{MaterialType:"Toon",Gradient:{$isset:!0}},name:"GradientMagFilter",options:["Nearest"],type:"Attribute"},{datatype:"Enum",defaultValue:"Nearest",displayName:"Min Filter",if:{MaterialType:"Toon",Gradient:{$isset:!0}},name:"GradientMinFilter",options:["Nearest"],type:"Attribute"},{datatype:"Enum",defaultValue:"1x",displayName:"Anisotropy",if:{MaterialType:"Toon",Gradient:{$isset:!0}},name:"GradientAnisotropy",options:["1x","2x","4x","8x","16x"],type:"Attribute"},{label:"Basic material options",type:"Separator",if:{MaterialType:"Basic"}},{datatype:"Color",defaultValue:{a:255,b:255,g:255,r:255},displayName:"Color",name:"EmissionColor",type:"Attribute",if:{MaterialType:"Basic"}},{label:"Custom shaders",type:"Separator",if:{MaterialType:"Shader"}},{displayName:"Vertex shader",linkableTypes:["Vertex Shader"],type:"Link",usageAs:"VertexShader",if:{MaterialType:"Shader"}},{displayName:"Pixel shader",linkableTypes:["Pixel Shader"],type:"Link",usageAs:"PixelShader",if:{MaterialType:"Shader"}},{label:"Point rendering",type:"Separator",if:{MaterialType:"Point"}},{datatype:"Float",defaultValue:1,displayName:"Size",if:{MaterialType:"Point"},minValue:0,name:"PointSize",type:"Attribute"},{datatype:"Boolean",defaultValue:!0,displayName:"Size attenuation",if:{MaterialType:"Point"},name:"PointSizeAttenuation",type:"Attribute"},{label:"Attenuation",type:"Separator",if:{MaterialType:"Physical"}},{datatype:"Color",defaultValue:{a:255,b:255,g:255,r:255},displayName:"Color",info:"The color that white light turns into due to absorption when reaching the attenuation distance.",name:"AttenuationColor",type:"Attribute",if:{MaterialType:"Physical"}},{datatype:"Float",defaultValue:1e3,displayName:"Distance",info:"Density of the medium given as the average distance that light travels in the medium before interacting with a particle. The value is given in world space units, and must be greater than zero.",minValue:1e-5,name:"AttenuationDistance",type:"Attribute",if:{MaterialType:"Physical"}},{label:"Diffuse",type:"Separator",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Point"},{MaterialType:"Basic"},{MaterialType:"Toon"},{MaterialType:"Matcap"},{MaterialType:"Lambert"},{MaterialType:"Phong"}]}},{datatype:"Color",defaultValue:{a:255,b:255,g:255,r:255},displayName:"Color",name:"DiffuseColor",type:"Attribute",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Point"},{MaterialType:"Toon"},{MaterialType:"Matcap"},{MaterialType:"Lambert"},{MaterialType:"Phong"}]}},{displayName:"Albedo map",linkableTypes:["Image","Composition","Video"],type:"Link",usageAs:"Albedo",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Point"},{MaterialType:"Basic"},{MaterialType:"Toon"},{MaterialType:"Matcap"},{MaterialType:"Lambert"},{MaterialType:"Phong"}]}},{datatype:"Enum",defaultValue:"Repeat",displayName:"Horiz. wrapping",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Point"},{MaterialType:"Basic"},{MaterialType:"Toon"},{MaterialType:"Matcap"},{MaterialType:"Lambert"},{MaterialType:"Phong"}],Albedo:{$isset:!0}},name:"AlbedoWrapS",options:["Repeat","Clamp to edge","Mirrored repeat"],type:"Attribute"},{datatype:"Enum",defaultValue:"Repeat",displayName:"Vert. wrapping",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Point"},{MaterialType:"Basic"},{MaterialType:"Toon"},{MaterialType:"Matcap"},{MaterialType:"Lambert"},{MaterialType:"Phong"}],Albedo:{$isset:!0}},name:"AlbedoWrapT",options:["Repeat","Clamp to edge","Mirrored repeat"],type:"Attribute"},{datatype:"Enum",defaultValue:"Linear",displayName:"Mag filter",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Point"},{MaterialType:"Basic"},{MaterialType:"Toon"},{MaterialType:"Matcap"},{MaterialType:"Lambert"},{MaterialType:"Phong"}],Albedo:{$isset:!0}},name:"AlbedoMagFilter",options:["Linear","Nearest"],type:"Attribute"},{datatype:"Enum",defaultValue:"Linear, Mipmap linear",displayName:"Min Filter",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Point"},{MaterialType:"Basic"},{MaterialType:"Toon"},{MaterialType:"Matcap"},{MaterialType:"Lambert"},{MaterialType:"Phong"}],Albedo:{$isset:!0}},name:"AlbedoMinFilter",options:["Nearest","Nearest, Mipmap nearest","Nearest, Mipmap linear","Linear","Linear, Mipmap nearest","Linear, Mipmap linear"],type:"Attribute"},{datatype:"Enum",defaultValue:"1x",displayName:"Anisotropy",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Point"},{MaterialType:"Basic"},{MaterialType:"Toon"},{MaterialType:"Matcap"},{MaterialType:"Lambert"},{MaterialType:"Phong"}],Albedo:{$isset:!0}},name:"AlbedoAnisotropy",options:["1x","2x","4x","8x","16x"],type:"Attribute"},{datatype:"Boolean",defaultValue:!1,displayName:"Vertex Colors",name:"VertexColors",type:"Attribute"},{label:"Transparency",type:"Separator"},{datatype:"Float",defaultValue:0,displayName:"Alpha test",maxValue:1,minValue:0,name:"AlphaTest",type:"Attribute",widget:"Slider"},{datatype:"Boolean",defaultValue:!1,displayName:"Transparent",name:"Transparent",type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"Opacity",if:{Transparent:!0},maxValue:1,minValue:0,name:"Opacity",type:"Attribute",widget:"Slider"},{displayName:"Alpha map",linkableTypes:["Image"],type:"Link",usageAs:"Alpha",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Point"},{MaterialType:"Basic"},{MaterialType:"Toon"},{MaterialType:"Matcap"},{MaterialType:"Lambert"},{MaterialType:"Phong"}]}},{datatype:"Enum",defaultValue:"Repeat",displayName:"Horiz. wrapping",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Point"},{MaterialType:"Basic"},{MaterialType:"Toon"},{MaterialType:"Matcap"},{MaterialType:"Lambert"},{MaterialType:"Phong"}],Alpha:{$isset:!0}},name:"AlphaWrapS",options:["Repeat","Clamp to edge","Mirrored repeat"],type:"Attribute"},{datatype:"Enum",defaultValue:"Repeat",displayName:"Vert. wrapping",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Point"},{MaterialType:"Basic"},{MaterialType:"Toon"},{MaterialType:"Matcap"},{MaterialType:"Lambert"},{MaterialType:"Phong"}],Alpha:{$isset:!0}},name:"AlphaWrapT",options:["Repeat","Clamp to edge","Mirrored repeat"],type:"Attribute"},{datatype:"Enum",defaultValue:"Linear",displayName:"Mag filter",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Point"},{MaterialType:"Basic"},{MaterialType:"Toon"},{MaterialType:"Matcap"},{MaterialType:"Lambert"},{MaterialType:"Phong"}],Alpha:{$isset:!0}},name:"AlphaMagFilter",options:["Linear","Nearest"],type:"Attribute"},{datatype:"Enum",defaultValue:"Linear, Mipmap linear",displayName:"Min Filter",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Point"},{MaterialType:"Basic"},{MaterialType:"Toon"},{MaterialType:"Matcap"},{MaterialType:"Lambert"},{MaterialType:"Phong"}],Alpha:{$isset:!0}},name:"AlphaMinFilter",options:["Nearest","Nearest, Mipmap nearest","Nearest, Mipmap linear","Linear","Linear, Mipmap nearest","Linear, Mipmap linear"],type:"Attribute"},{datatype:"Enum",defaultValue:"1x",displayName:"Anisotropy",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Point"},{MaterialType:"Basic"},{MaterialType:"Toon"},{MaterialType:"Matcap"},{MaterialType:"Lambert"},{MaterialType:"Phong"}],Alpha:{$isset:!0}},name:"AlphaAnisotropy",options:["1x","2x","4x","8x","16x"],type:"Attribute"},{label:"Emission",type:"Separator",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Toon"},{MaterialType:"Lambert"},{MaterialType:"Phong"}]}},{datatype:"Color",defaultValue:{a:255,b:0,g:0,r:0},displayName:"Color",name:"EmissiveColor",type:"Attribute",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Toon"},{MaterialType:"Lambert"},{MaterialType:"Phong"}]}},{datatype:"Float",defaultValue:1,displayName:"Intensity",maxValue:10,minValue:0,name:"EmissiveIntensity",type:"Attribute",widget:"Slider",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Toon"},{MaterialType:"Lambert"},{MaterialType:"Phong"}]}},{displayName:"Emissive map",linkableTypes:["Image"],type:"Link",usageAs:"Emissive",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Toon"},{MaterialType:"Lambert"},{MaterialType:"Phong"}]}},{datatype:"Enum",defaultValue:"Repeat",displayName:"Horiz. wrapping",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Toon"},{MaterialType:"Lambert"},{MaterialType:"Phong"}],Emissive:{$isset:!0}},name:"EmissiveWrapS",options:["Repeat","Clamp to edge","Mirrored repeat"],type:"Attribute"},{datatype:"Enum",defaultValue:"Repeat",displayName:"Vert. wrapping",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Toon"},{MaterialType:"Lambert"},{MaterialType:"Phong"}],Emissive:{$isset:!0}},name:"EmissiveWrapT",options:["Repeat","Clamp to edge","Mirrored repeat"],type:"Attribute"},{datatype:"Enum",defaultValue:"Linear",displayName:"Mag filter",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Toon"},{MaterialType:"Lambert"},{MaterialType:"Phong"}],Emissive:{$isset:!0}},name:"EmissiveMagFilter",options:["Linear","Nearest"],type:"Attribute"},{datatype:"Enum",defaultValue:"Linear, Mipmap linear",displayName:"Min Filter",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Toon"},{MaterialType:"Lambert"},{MaterialType:"Phong"}],Emissive:{$isset:!0}},name:"EmissiveMinFilter",options:["Nearest","Nearest, Mipmap nearest","Nearest, Mipmap linear","Linear","Linear, Mipmap nearest","Linear, Mipmap linear"],type:"Attribute"},{datatype:"Enum",defaultValue:"1x",displayName:"Anisotropy",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Toon"},{MaterialType:"Lambert"},{MaterialType:"Phong"}],Emissive:{$isset:!0}},name:"EmissiveAnisotropy",options:["1x","2x","4x","8x","16x"],type:"Attribute"},{label:"Sheen",type:"Separator",if:{MaterialType:"Physical"}},{datatype:"Float",defaultValue:0,displayName:"Sheen",maxValue:1,minValue:0,name:"Sheen",type:"Attribute",if:{MaterialType:"Physical"}},{datatype:"Float",defaultValue:0,displayName:"Sheen roughness",maxValue:1,minValue:0,name:"SheenRoughness",type:"Attribute",if:{MaterialType:"Physical"}},{displayName:"Sheen roughness map",linkableTypes:["Image"],type:"Link",usageAs:"SheenRoughnessMap",if:{MaterialType:"Physical"}},{datatype:"Enum",defaultValue:"Repeat",displayName:"Horiz. wrapping",if:{MaterialType:"Physical",SheenRoughnessMap:{$isset:!0}},name:"SheenRoughnessWrapS",options:["Repeat","Clamp to edge","Mirrored repeat"],type:"Attribute"},{datatype:"Enum",defaultValue:"Repeat",displayName:"Vert. wrapping",if:{MaterialType:"Physical",SheenRoughnessMap:{$isset:!0}},name:"SheenRoughnessWrapT",options:["Repeat","Clamp to edge","Mirrored repeat"],type:"Attribute"},{datatype:"Enum",defaultValue:"Linear",displayName:"Mag filter",if:{MaterialType:"Physical",SheenRoughnessMap:{$isset:!0}},name:"SheenRoughnessMagFilter",options:["Linear","Nearest"],type:"Attribute"},{datatype:"Enum",defaultValue:"Linear, Mipmap linear",displayName:"Min Filter",if:{MaterialType:"Physical",SheenRoughnessMap:{$isset:!0}},name:"SheenRoughnessMinFilter",options:["Nearest","Nearest, Mipmap nearest","Nearest, Mipmap linear","Linear","Linear, Mipmap nearest","Linear, Mipmap linear"],type:"Attribute"},{datatype:"Enum",defaultValue:"1x",displayName:"Anisotropy",if:{MaterialType:"Physical",SheenRoughnessMap:{$isset:!0}},name:"SheenRoughnessAnisotropy",options:["1x","2x","4x","8x","16x"],type:"Attribute"},{datatype:"Color",defaultValue:{a:255,b:255,g:255,r:255},displayName:"Sheen color",name:"SheenColor",type:"Attribute",if:{MaterialType:"Physical"}},{displayName:"Sheen color map",linkableTypes:["Image"],type:"Link",usageAs:"SheenColorMap",if:{MaterialType:"Physical"}},{datatype:"Enum",defaultValue:"Repeat",displayName:"Horiz. wrapping",if:{MaterialType:"Physical",SheenColorMap:{$isset:!0}},name:"SheenColorWrapS",options:["Repeat","Clamp to edge","Mirrored repeat"],type:"Attribute"},{datatype:"Enum",defaultValue:"Repeat",displayName:"Vert. wrapping",if:{MaterialType:"Physical",SheenColorMap:{$isset:!0}},name:"SheenColorWrapT",options:["Repeat","Clamp to edge","Mirrored repeat"],type:"Attribute"},{datatype:"Enum",defaultValue:"Linear",displayName:"Mag filter",if:{MaterialType:"Physical",SheenColorMap:{$isset:!0}},name:"SheenColorMagFilter",options:["Linear","Nearest"],type:"Attribute"},{datatype:"Enum",defaultValue:"Linear, Mipmap linear",displayName:"Min Filter",if:{MaterialType:"Physical",SheenColorMap:{$isset:!0}},name:"SheenColorMinFilter",options:["Nearest","Nearest, Mipmap nearest","Nearest, Mipmap linear","Linear","Linear, Mipmap nearest","Linear, Mipmap linear"],type:"Attribute"},{datatype:"Enum",defaultValue:"1x",displayName:"Anisotropy",if:{MaterialType:"Physical",SheenColorMap:{$isset:!0}},name:"SheenColorAnisotropy",options:["1x","2x","4x","8x","16x"],type:"Attribute"},{label:"Normal",type:"Separator",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Normal"},{MaterialType:"Toon"},{MaterialType:"Matcap"},{MaterialType:"Lambert"},{MaterialType:"Phong"}]}},{displayName:"Normal map",linkableTypes:["Image"],type:"Link",usageAs:"Normal",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Normal"},{MaterialType:"Toon"},{MaterialType:"Matcap"},{MaterialType:"Lambert"},{MaterialType:"Phong"}]}},{datatype:"Vector2d",defaultValue:{x:1,y:1},displayName:"Scale",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Normal"},{MaterialType:"Toon"},{MaterialType:"Matcap"},{MaterialType:"Lambert"},{MaterialType:"Phong"}],Normal:{$isset:!0}},maxValue:10,minValue:0,name:"NormalScale2d",type:"Attribute"},{datatype:"Enum",defaultValue:"TangentSpace",displayName:"Type",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Normal"},{MaterialType:"Toon"},{MaterialType:"Matcap"},{MaterialType:"Lambert"},{MaterialType:"Phong"}],Normal:{$isset:!0}},name:"NormalType",options:["TangentSpace","ObjectSpace"],type:"Attribute"},{datatype:"Enum",defaultValue:"Repeat",displayName:"Horiz. wrapping",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Normal"},{MaterialType:"Toon"},{MaterialType:"Matcap"},{MaterialType:"Lambert"},{MaterialType:"Phong"}],Normal:{$isset:!0}},name:"NormalWrapS",options:["Repeat","Clamp to edge","Mirrored repeat"],type:"Attribute"},{datatype:"Enum",defaultValue:"Repeat",displayName:"Vert. wrapping",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Normal"},{MaterialType:"Toon"},{MaterialType:"Matcap"},{MaterialType:"Lambert"},{MaterialType:"Phong"}],Normal:{$isset:!0}},name:"NormalWrapT",options:["Repeat","Clamp to edge","Mirrored repeat"],type:"Attribute"},{datatype:"Enum",defaultValue:"Linear",displayName:"Mag filter",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Normal"},{MaterialType:"Toon"},{MaterialType:"Matcap"},{MaterialType:"Lambert"},{MaterialType:"Phong"}],Normal:{$isset:!0}},name:"NormalMagFilter",options:["Linear","Nearest"],type:"Attribute"},{datatype:"Enum",defaultValue:"Linear, Mipmap linear",displayName:"Min Filter",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Normal"},{MaterialType:"Toon"},{MaterialType:"Matcap"},{MaterialType:"Lambert"},{MaterialType:"Phong"}],Normal:{$isset:!0}},name:"NormalMinFilter",options:["Nearest","Nearest, Mipmap nearest","Nearest, Mipmap linear","Linear","Linear, Mipmap nearest","Linear, Mipmap linear"],type:"Attribute"},{datatype:"Enum",defaultValue:"1x",displayName:"Anisotropy",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Normal"},{MaterialType:"Toon"},{MaterialType:"Matcap"},{MaterialType:"Lambert"},{MaterialType:"Phong"}],Normal:{$isset:!0}},name:"NormalAnisotropy",options:["1x","2x","4x","8x","16x"],type:"Attribute"},{label:"Roughness",type:"Separator",if:{MaterialType:"Physical"}},{datatype:"Float",defaultValue:1,displayName:"Roughness Intensity",maxValue:1,minValue:0,name:"RoughnessIntensity",type:"Attribute",widget:"Slider",if:{MaterialType:"Physical"}},{displayName:"Roughness map",linkableTypes:["Image"],type:"Link",usageAs:"Roughness",if:{MaterialType:"Physical"}},{datatype:"Enum",defaultValue:"Repeat",displayName:"Horiz. wrapping",if:{Roughness:{$isset:!0}},name:"RoughnessWrapS",options:["Repeat","Clamp to edge","Mirrored repeat"],type:"Attribute"},{datatype:"Enum",defaultValue:"Repeat",displayName:"Vert. wrapping",if:{Roughness:{$isset:!0}},name:"RoughnessWrapT",options:["Repeat","Clamp to edge","Mirrored repeat"],type:"Attribute"},{datatype:"Enum",defaultValue:"Linear",displayName:"Mag filter",if:{Roughness:{$isset:!0}},name:"RoughnessMagFilter",options:["Linear","Nearest"],type:"Attribute"},{datatype:"Enum",defaultValue:"Linear, Mipmap linear",displayName:"Min Filter",if:{Roughness:{$isset:!0}},name:"RoughnessMinFilter",options:["Nearest","Nearest, Mipmap nearest","Nearest, Mipmap linear","Linear","Linear, Mipmap nearest","Linear, Mipmap linear"],type:"Attribute"},{datatype:"Enum",defaultValue:"1x",displayName:"Anisotropy",if:{MaterialType:"Physical",Roughness:{$isset:!0}},name:"RoughnessAnisotropy",options:["1x","2x","4x","8x","16x"],type:"Attribute"},{label:"Metalness",type:"Separator",if:{MaterialType:"Physical"}},{datatype:"Float",defaultValue:1,displayName:"Metalness Intensity",maxValue:1,minValue:0,name:"MetalnessIntensity",type:"Attribute",widget:"Slider",if:{MaterialType:"Physical"}},{displayName:"Metalness map",linkableTypes:["Image"],type:"Link",usageAs:"Metalness",if:{MaterialType:"Physical"}},{datatype:"Enum",defaultValue:"Repeat",displayName:"Horiz. wrapping",if:{Metalness:{$isset:!0}},name:"MetalnessWrapS",options:["Repeat","Clamp to edge","Mirrored repeat"],type:"Attribute"},{datatype:"Enum",defaultValue:"Repeat",displayName:"Vert. wrapping",if:{Metalness:{$isset:!0}},name:"MetalnessWrapT",options:["Repeat","Clamp to edge","Mirrored repeat"],type:"Attribute"},{datatype:"Enum",defaultValue:"Linear",displayName:"Mag filter",if:{Metalness:{$isset:!0}},name:"MetalnessMagFilter",options:["Linear","Nearest"],type:"Attribute"},{datatype:"Enum",defaultValue:"Linear, Mipmap linear",displayName:"Min Filter",if:{Metalness:{$isset:!0}},name:"MetalnessMinFilter",options:["Nearest","Nearest, Mipmap nearest","Nearest, Mipmap linear","Linear","Linear, Mipmap nearest","Linear, Mipmap linear"],type:"Attribute"},{datatype:"Enum",defaultValue:"1x",displayName:"Anisotropy",if:{MaterialType:"Physical",Metalness:{$isset:!0}},name:"MetalnessAnisotropy",options:["1x","2x","4x","8x","16x"],type:"Attribute"},{label:"Specular",type:"Separator",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Basic"}]}},{datatype:"Float",defaultValue:1,displayName:"Specular intensity",maxValue:1,minValue:0,name:"SpecularIntensity",type:"Attribute",widget:"Slider",if:{MaterialType:"Physical"}},{displayName:"Specular intensity map",linkableTypes:["Image"],type:"Link",usageAs:"SpecularIntensityMap",if:{MaterialType:"Physical"}},{datatype:"Enum",defaultValue:"Repeat",displayName:"Horiz. wrapping",if:{MaterialType:"Physical",SpecularIntensityMap:{$isset:!0}},name:"SpecularIntensityWrapS",options:["Repeat","Clamp to edge","Mirrored repeat"],type:"Attribute"},{datatype:"Enum",defaultValue:"Repeat",displayName:"Vert. wrapping",if:{MaterialType:"Physical",SpecularIntensityMap:{$isset:!0}},name:"SpecularIntensityWrapT",options:["Repeat","Clamp to edge","Mirrored repeat"],type:"Attribute"},{datatype:"Enum",defaultValue:"Linear",displayName:"Mag filter",if:{MaterialType:"Physical",SpecularIntensityMap:{$isset:!0}},name:"SpecularIntensityMagFilter",options:["Linear","Nearest"],type:"Attribute"},{datatype:"Enum",defaultValue:"Linear, Mipmap linear",displayName:"Min Filter",if:{MaterialType:"Physical",SpecularIntensityMap:{$isset:!0}},name:"SpecularIntensityMinFilter",options:["Nearest","Nearest, Mipmap nearest","Nearest, Mipmap linear","Linear","Linear, Mipmap nearest","Linear, Mipmap linear"],type:"Attribute"},{datatype:"Enum",defaultValue:"1x",displayName:"Anisotropy",if:{MaterialType:"Physical",SpecularIntensityMap:{$isset:!0}},name:"SpecularIntensityAnisotropy",options:["1x","2x","4x","8x","16x"],type:"Attribute"},{datatype:"Color",defaultValue:{a:255,b:255,g:255,r:255},if:{MaterialType:"Physical"},displayName:"Specular color",name:"SpecularColor",type:"Attribute"},{displayName:"Specular color map",linkableTypes:["Image"],if:{MaterialType:"Physical"},type:"Link",usageAs:"SpecularColorMap"},{datatype:"Enum",defaultValue:"Repeat",displayName:"Horiz. wrapping",if:{MaterialType:"Physical",SpecularColorMap:{$isset:!0}},name:"SpecularColorWrapS",options:["Repeat","Clamp to edge","Mirrored repeat"],type:"Attribute"},{datatype:"Enum",defaultValue:"Repeat",displayName:"Vert. wrapping",if:{MaterialType:"Physical",SpecularColorMap:{$isset:!0}},name:"SpecularColorWrapT",options:["Repeat","Clamp to edge","Mirrored repeat"],type:"Attribute"},{datatype:"Enum",defaultValue:"Linear",displayName:"Mag filter",if:{MaterialType:"Physical",SpecularColorMap:{$isset:!0}},name:"SpecularColorMagFilter",options:["Linear","Nearest"],type:"Attribute"},{datatype:"Enum",defaultValue:"Linear, Mipmap linear",displayName:"Min Filter",if:{MaterialType:"Physical",SpecularColorMap:{$isset:!0}},name:"SpecularColorMinFilter",options:["Nearest","Nearest, Mipmap nearest","Nearest, Mipmap linear","Linear","Linear, Mipmap nearest","Linear, Mipmap linear"],type:"Attribute"},{datatype:"Enum",defaultValue:"1x",displayName:"Anisotropy",if:{MaterialType:"Physical",SpecularColorMap:{$isset:!0}},name:"SpecularColorAnisotropy",options:["1x","2x","4x","8x","16x"],type:"Attribute"},{label:"Ambient occlusion",type:"Separator",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Basic"},{MaterialType:"Toon"},{MaterialType:"Lambert"},{MaterialType:"Phong"}]}},{displayName:"Ambient occlusion map",linkableTypes:["Image"],type:"Link",usageAs:"AmbientOcclusion",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Basic"},{MaterialType:"Toon"},{MaterialType:"Lambert"},{MaterialType:"Phong"}]}},{datatype:"Float",defaultValue:1,displayName:"Intensity",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Basic"},{MaterialType:"Toon"},{MaterialType:"Lambert"},{MaterialType:"Phong"}],AmbientOcclusion:{$isset:!0}},maxValue:10,minValue:0,name:"AmbientOcclusionIntensity",type:"Attribute",widget:"Slider"},{datatype:"Enum",defaultValue:"Repeat",displayName:"Horiz. wrapping",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Basic"},{MaterialType:"Toon"},{MaterialType:"Lambert"},{MaterialType:"Phong"}],AmbientOcclusion:{$isset:!0}},name:"AmbientOcclusionWrapS",options:["Repeat","Clamp to edge","Mirrored repeat"],type:"Attribute"},{datatype:"Enum",defaultValue:"Repeat",displayName:"Vert. wrapping",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Basic"},{MaterialType:"Toon"},{MaterialType:"Lambert"},{MaterialType:"Phong"}],AmbientOcclusion:{$isset:!0}},name:"AmbientOcclusionWrapT",options:["Repeat","Clamp to edge","Mirrored repeat"],type:"Attribute"},{datatype:"Enum",defaultValue:"Linear",displayName:"Mag filter",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Basic"},{MaterialType:"Toon"},{MaterialType:"Lambert"},{MaterialType:"Phong"}],AmbientOcclusion:{$isset:!0}},name:"AmbientOcclusionMagFilter",options:["Linear","Nearest"],type:"Attribute"},{datatype:"Enum",defaultValue:"Linear, Mipmap linear",displayName:"Min Filter",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Basic"},{MaterialType:"Toon"},{MaterialType:"Lambert"},{MaterialType:"Phong"}],AmbientOcclusion:{$isset:!0}},name:"AmbientOcclusionMinFilter",options:["Nearest","Nearest, Mipmap nearest","Nearest, Mipmap linear","Linear","Linear, Mipmap nearest","Linear, Mipmap linear"],type:"Attribute"},{datatype:"Enum",defaultValue:"1x",displayName:"Anisotropy",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Basic"},{MaterialType:"Toon"},{MaterialType:"Lambert"},{MaterialType:"Phong"}],AmbientOcclusion:{$isset:!0}},name:"AmbientOcclusionAnisotropy",options:["1x","2x","4x","8x","16x"],type:"Attribute"},{label:"Clearcoat",type:"Separator",if:{MaterialType:"Physical"}},{datatype:"Float",defaultValue:0,displayName:"Intensity",maxValue:1,minValue:0,name:"ClearcoatLevel",type:"Attribute",widget:"Slider",if:{MaterialType:"Physical"}},{displayName:"Clearcoat map",linkableTypes:["Image"],type:"Link",usageAs:"Clearcoat",if:{MaterialType:"Physical"}},{datatype:"Enum",defaultValue:"Repeat",displayName:"Horiz. wrapping",if:{MaterialType:"Physical",Clearcoat:{$isset:!0}},name:"ClearcoatWrapS",options:["Repeat","Clamp to edge","Mirrored repeat"],type:"Attribute"},{datatype:"Enum",defaultValue:"Repeat",displayName:"Vert. wrapping",if:{MaterialType:"Physical",Clearcoat:{$isset:!0}},name:"ClearcoatWrapT",options:["Repeat","Clamp to edge","Mirrored repeat"],type:"Attribute"},{datatype:"Enum",defaultValue:"Linear",displayName:"Mag filter",if:{MaterialType:"Physical",Clearcoat:{$isset:!0}},name:"ClearcoatMagFilter",options:["Linear","Nearest"],type:"Attribute"},{datatype:"Enum",defaultValue:"Linear, Mipmap linear",displayName:"Min Filter",if:{MaterialType:"Physical",Clearcoat:{$isset:!0}},name:"ClearcoatMinFilter",options:["Nearest","Nearest, Mipmap nearest","Nearest, Mipmap linear","Linear","Linear, Mipmap nearest","Linear, Mipmap linear"],type:"Attribute"},{datatype:"Enum",defaultValue:"1x",displayName:"Anisotropy",if:{MaterialType:"Physical",Clearcoat:{$isset:!0}},name:"ClearcoatAnisotropy",options:["1x","2x","4x","8x","16x"],type:"Attribute"},{displayName:"Normal map",linkableTypes:["Image"],type:"Link",usageAs:"ClearcoatNormalMap",if:{MaterialType:"Physical"}},{datatype:"Vector2d",defaultValue:{x:1,y:1},displayName:"Normal scale",if:{MaterialType:"Physical",ClearcoatNormalMap:{$isset:!0}},maxValue:10,minValue:0,name:"ClearcoatNormalScale2d",type:"Attribute",widget:"Slider"},{datatype:"Enum",defaultValue:"Repeat",displayName:"Normal H-wrapping",if:{MaterialType:"Physical",ClearcoatNormalMap:{$isset:!0}},name:"ClearcoatNormalWrapS",options:["Repeat","Clamp to edge","Mirrored repeat"],type:"Attribute"},{datatype:"Enum",defaultValue:"Repeat",displayName:"Normal V-wrapping",if:{MaterialType:"Physical",ClearcoatNormalMap:{$isset:!0}},name:"ClearcoatNormalWrapT",options:["Repeat","Clamp to edge","Mirrored repeat"],type:"Attribute"},{datatype:"Enum",defaultValue:"Linear",displayName:"Normal mag filter",if:{MaterialType:"Physical",ClearcoatNormalMap:{$isset:!0}},name:"ClearcoatNormalMagFilter",options:["Linear","Nearest"],type:"Attribute"},{datatype:"Enum",defaultValue:"Linear, Mipmap linear",displayName:"Normal min Filter",if:{MaterialType:"Physical",ClearcoatNormalMap:{$isset:!0}},name:"ClearcoatNormalMinFilter",options:["Nearest","Nearest, Mipmap nearest","Nearest, Mipmap linear","Linear","Linear, Mipmap nearest","Linear, Mipmap linear"],type:"Attribute"},{datatype:"Enum",defaultValue:"1x",displayName:"Normal Anisotropy",if:{MaterialType:"Physical",ClearcoatNormalMap:{$isset:!0}},name:"ClearcoatNormalAnisotropy",options:["1x","2x","4x","8x","16x"],type:"Attribute"},{datatype:"Float",defaultValue:0,displayName:"Roughness intensity",maxValue:1,minValue:0,name:"ClearcoatRoughness",type:"Attribute",widget:"Slider",if:{MaterialType:"Physical"}},{displayName:"Roughness map",linkableTypes:["Image"],type:"Link",usageAs:"ClearcoatRoughnessMap"},{datatype:"Enum",defaultValue:"Repeat",displayName:"Roughness H-wrapping",if:{MaterialType:"Physical",ClearcoatRoughnessMap:{$isset:!0}},name:"ClearcoatRoughnessWrapS",options:["Repeat","Clamp to edge","Mirrored repeat"],type:"Attribute"},{datatype:"Enum",defaultValue:"Repeat",displayName:"Roughness V-wrapping",if:{MaterialType:"Physical",ClearcoatRoughnessMap:{$isset:!0}},name:"ClearcoatRoughnessWrapT",options:["Repeat","Clamp to edge","Mirrored repeat"],type:"Attribute"},{datatype:"Enum",defaultValue:"Linear",displayName:"Roughness mag filter",if:{MaterialType:"Physical",ClearcoatRoughnessMap:{$isset:!0}},name:"ClearcoatRoughnessMagFilter",options:["Linear","Nearest"],type:"Attribute"},{datatype:"Enum",defaultValue:"Linear, Mipmap linear",displayName:"Roughness min Filter",if:{MaterialType:"Physical",ClearcoatRoughnessMap:{$isset:!0}},name:"ClearcoatRoughnessMinFilter",options:["Nearest","Nearest, Mipmap nearest","Nearest, Mipmap linear","Linear","Linear, Mipmap nearest","Linear, Mipmap linear"],type:"Attribute"},{datatype:"Enum",defaultValue:"1x",displayName:"Roughness Anisotropy",if:{MaterialType:"Physical",ClearcoatRoughnessMap:{$isset:!0}},name:"ClearcoatRoughnessAnisotropy",options:["1x","2x","4x","8x","16x"],type:"Attribute"},{label:"Reflections and Refractions",type:"Separator",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Basic"},{MaterialType:"Lambert"},{MaterialType:"Phong"}]}},{datatype:"Float",defaultValue:.98,displayName:"Refraction ratio",if:{$or:[{MaterialType:"Basic"},{MaterialType:"Lambert"},{MaterialType:"Phong"}]},minValue:0,maxValue:1,name:"RefractionRatio",type:"Attribute"},{datatype:"Float",defaultValue:.5,displayName:"Reflectivity",maxValue:1,minValue:0,name:"Reflectivity",type:"Attribute",widget:"Slider",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Basic"},{MaterialType:"Lambert"},{MaterialType:"Phong"}]}},{datatype:"Float",defaultValue:1.5,displayName:"Index of refraction",maxValue:2.333,minValue:1,name:"IndexOfRefraction",type:"Attribute",widget:"Slider",if:{MaterialType:"Physical"}},{label:"Environment",type:"Separator",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Basic"},{MaterialType:"Lambert"},{MaterialType:"Phong"}]}},{displayName:"Environment map",linkableTypes:["HDR Image"],type:"Link",usageAs:"Environment",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Basic"},{MaterialType:"Lambert"},{MaterialType:"Phong"}]}},{datatype:"Float",defaultValue:1,displayName:"Intensity",if:{$or:[{MaterialType:"Physical"}],Environment:{$isset:!0}},maxValue:10,minValue:0,name:"EnvironmentIntensity",type:"Attribute",widget:"Slider"},{datatype:"Enum",defaultValue:"Multiply",info:"How to combine the result of the surface's color with the environment map, if any. If mix is chosen, the .reflectivity is used to blend between the two colors.",displayName:"Surface combination",name:"SurfaceEnvironmentCombination",options:["Multiply","Mix","Add"],type:"Attribute",if:{$or:[{MaterialType:"Lambert"},{MaterialType:"Basic"},{MaterialType:"Phong"}]}},{label:"Thickness",type:"Separator",if:{MaterialType:"Physical"}},{datatype:"Float",defaultValue:0,displayName:"Thickness",minValue:0,name:"Thickness",type:"Attribute",if:{MaterialType:"Physical"}},{displayName:"Thickness map",linkableTypes:["Image"],type:"Link",usageAs:"ThicknessMap",if:{MaterialType:"Physical"}},{datatype:"Enum",defaultValue:"Repeat",displayName:"Horiz. wrapping",if:{MaterialType:"Physical",ThicknessMap:{$isset:!0}},name:"ThicknessWrapS",options:["Repeat","Clamp to edge","Mirrored repeat"],type:"Attribute"},{datatype:"Enum",defaultValue:"Repeat",displayName:"Vert. wrapping",if:{MaterialType:"Physical",ThicknessMap:{$isset:!0}},name:"ThicknessWrapT",options:["Repeat","Clamp to edge","Mirrored repeat"],type:"Attribute"},{datatype:"Enum",defaultValue:"Linear",displayName:"Mag filter",if:{MaterialType:"Physical",ThicknessMap:{$isset:!0}},name:"ThicknessMagFilter",options:["Linear","Nearest"],type:"Attribute"},{datatype:"Enum",defaultValue:"Linear, Mipmap linear",displayName:"Min Filter",if:{MaterialType:"Physical",ThicknessMap:{$isset:!0}},name:"ThicknessMinFilter",options:["Nearest","Nearest, Mipmap nearest","Nearest, Mipmap linear","Linear","Linear, Mipmap nearest","Linear, Mipmap linear"],type:"Attribute"},{datatype:"Enum",defaultValue:"1x",displayName:"Anisotropy",if:{MaterialType:"Physical",ThicknessMap:{$isset:!0}},name:"ThicknessAnisotropy",options:["1x","2x","4x","8x","16x"],type:"Attribute"},{label:"Displacement",type:"Separator",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Normal"},{MaterialType:"Toon"},{MaterialType:"Matcap"},{MaterialType:"Lambert"},{MaterialType:"Phong"}]}},{displayName:"Displacement map",linkableTypes:["Image"],type:"Link",usageAs:"Displacement",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Normal"},{MaterialType:"Toon"},{MaterialType:"Matcap"},{MaterialType:"Lambert"},{MaterialType:"Phong"}]}},{datatype:"Float",defaultValue:.1,displayName:"Scale",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Normal"},{MaterialType:"Toon"},{MaterialType:"Matcap"},{MaterialType:"Lambert"},{MaterialType:"Phong"}],Displacement:{$isset:!0}},maxValue:10,minValue:0,name:"DisplacementScale",type:"Attribute",widget:"Slider"},{datatype:"Float",defaultValue:0,displayName:"Bias",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Normal"},{MaterialType:"Toon"},{MaterialType:"Matcap"},{MaterialType:"Lambert"},{MaterialType:"Phong"}],Displacement:{$isset:!0}},name:"DisplacementBias",type:"Attribute"},{datatype:"Enum",defaultValue:"Repeat",displayName:"Horiz. wrapping",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Normal"},{MaterialType:"Toon"},{MaterialType:"Matcap"},{MaterialType:"Lambert"},{MaterialType:"Phong"}],Displacement:{$isset:!0}},name:"DisplacementWrapS",options:["Repeat","Clamp to edge","Mirrored repeat"],type:"Attribute"},{datatype:"Enum",defaultValue:"Repeat",displayName:"Vert. wrapping",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Normal"},{MaterialType:"Toon"},{MaterialType:"Matcap"},{MaterialType:"Lambert"},{MaterialType:"Phong"}],Displacement:{$isset:!0}},name:"DisplacementWrapT",options:["Repeat","Clamp to edge","Mirrored repeat"],type:"Attribute"},{datatype:"Enum",defaultValue:"Linear",displayName:"Mag filter",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Normal"},{MaterialType:"Toon"},{MaterialType:"Matcap"},{MaterialType:"Lambert"},{MaterialType:"Phong"}],Displacement:{$isset:!0}},name:"DisplacementMagFilter",options:["Linear","Nearest"],type:"Attribute"},{datatype:"Enum",defaultValue:"Linear, Mipmap linear",displayName:"Min Filter",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Normal"},{MaterialType:"Toon"},{MaterialType:"Matcap"},{MaterialType:"Lambert"},{MaterialType:"Phong"}],Displacement:{$isset:!0}},name:"DisplacementMinFilter",options:["Nearest","Nearest, Mipmap nearest","Nearest, Mipmap linear","Linear","Linear, Mipmap nearest","Linear, Mipmap linear"],type:"Attribute"},{datatype:"Enum",defaultValue:"1x",displayName:"Anisotropy",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Normal"},{MaterialType:"Toon"},{MaterialType:"Matcap"},{MaterialType:"Lambert"},{MaterialType:"Phong"}],Displacement:{$isset:!0}},name:"DisplacementAnisotropy",options:["1x","2x","4x","8x","16x"],type:"Attribute"},{label:"Lightmaps",type:"Separator",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Basic"},{MaterialType:"Toon"},{MaterialType:"Lambert"},{MaterialType:"Phong"}]}},{displayName:"Light map",linkableTypes:["Image"],type:"Link",usageAs:"LightMap",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Basic"},{MaterialType:"Toon"},{MaterialType:"Lambert"},{MaterialType:"Phong"}]}},{datatype:"Float",defaultValue:1,displayName:"Intensity",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Basic"},{MaterialType:"Toon"},{MaterialType:"Lambert"},{MaterialType:"Phong"}],LightMap:{$isset:!0}},maxValue:100,minValue:0,name:"LightMapIntensity",type:"Attribute",widget:"Slider"},{datatype:"Enum",defaultValue:"Repeat",displayName:"Horiz. wrapping",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Basic"},{MaterialType:"Toon"},{MaterialType:"Lambert"},{MaterialType:"Phong"}],LightMap:{$isset:!0}},name:"LightMapWrapS",options:["Repeat","Clamp to edge","Mirrored repeat"],type:"Attribute"},{datatype:"Enum",defaultValue:"Repeat",displayName:"Vert. wrapping",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Basic"},{MaterialType:"Toon"},{MaterialType:"Lambert"},{MaterialType:"Phong"}],LightMap:{$isset:!0}},name:"LightMapWrapT",options:["Repeat","Clamp to edge","Mirrored repeat"],type:"Attribute"},{datatype:"Enum",defaultValue:"Linear",displayName:"Mag filter",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Basic"},{MaterialType:"Toon"},{MaterialType:"Lambert"},{MaterialType:"Phong"}],LightMap:{$isset:!0}},name:"LightMapMagFilter",options:["Linear","Nearest"],type:"Attribute"},{datatype:"Enum",defaultValue:"Linear, Mipmap linear",displayName:"Min Filter",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Basic"},{MaterialType:"Toon"},{MaterialType:"Lambert"},{MaterialType:"Phong"}],LightMap:{$isset:!0}},name:"LightMapMinFilter",options:["Nearest","Nearest, Mipmap nearest","Nearest, Mipmap linear","Linear","Linear, Mipmap nearest","Linear, Mipmap linear"],type:"Attribute"},{datatype:"Enum",defaultValue:"1x",displayName:"Anisotropy",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Basic"},{MaterialType:"Toon"},{MaterialType:"Lambert"},{MaterialType:"Phong"}],LightMap:{$isset:!0}},name:"LightMapAnisotropy",options:["1x","2x","4x","8x","16x"],type:"Attribute"},{label:"Specular map options",type:"Separator",if:{$or:[{MaterialType:"Basic"},{MaterialType:"Lambert"},{MaterialType:"Phong"}]}},{datatype:"Float",defaultValue:30,displayName:"Shininess",minValue:0,name:"Shininess",type:"Attribute",widget:"Slider",if:{$or:[{MaterialType:"Phong"}]}},{datatype:"Color",defaultValue:{a:255,b:255,g:255,r:255},if:{MaterialType:"Phong"},displayName:"Specular color",name:"SpecularColor",type:"Attribute"},{displayName:"Specular map",linkableTypes:["Image"],if:{$or:[{MaterialType:"Basic"},{MaterialType:"Lambert"},{MaterialType:"Phong"}]},type:"Link",usageAs:"SpecularMap"},{datatype:"Enum",defaultValue:"Repeat",displayName:"Horiz. wrapping",if:{$or:[{MaterialType:"Basic"},{MaterialType:"Lambert"},{MaterialType:"Phong"}],SpecularMap:{$isset:!0}},name:"SpecularWrapS",options:["Repeat","Clamp to edge","Mirrored repeat"],type:"Attribute"},{datatype:"Enum",defaultValue:"Repeat",displayName:"Vert. wrapping",if:{$or:[{MaterialType:"Basic"},{MaterialType:"Lambert"},{MaterialType:"Phong"}],SpecularMap:{$isset:!0}},name:"SpecularWrapT",options:["Repeat","Clamp to edge","Mirrored repeat"],type:"Attribute"},{datatype:"Enum",defaultValue:"Linear",displayName:"Mag filter",if:{$or:[{MaterialType:"Basic"},{MaterialType:"Lambert"},{MaterialType:"Phong"}],SpecularMap:{$isset:!0}},name:"SpecularMagFilter",options:["Linear","Nearest"],type:"Attribute"},{datatype:"Enum",defaultValue:"Linear, Mipmap linear",displayName:"Min Filter",if:{$or:[{MaterialType:"Basic"},{MaterialType:"Lambert"},{MaterialType:"Phong"}],SpecularMap:{$isset:!0}},name:"SpecularMinFilter",options:["Nearest","Nearest, Mipmap nearest","Nearest, Mipmap linear","Linear","Linear, Mipmap nearest","Linear, Mipmap linear"],type:"Attribute"},{datatype:"Enum",defaultValue:"1x",displayName:"Anisotropy",if:{$or:[{MaterialType:"Basic"},{MaterialType:"Lambert"},{MaterialType:"Phong"}],SpecularMap:{$isset:!0}},name:"SpecularAnisotropy",options:["1x","2x","4x","8x","16x"],type:"Attribute"},{label:"Transmission",type:"Separator",if:{MaterialType:"Physical"}},{datatype:"Float",defaultValue:0,displayName:"Intensity",maxValue:1,minValue:0,name:"Transmission",type:"Attribute",widget:"Slider",if:{MaterialType:"Physical"}},{displayName:"Transmission map",linkableTypes:["Image"],type:"Link",usageAs:"TransmissionMap",if:{MaterialType:"Physical"}},{datatype:"Enum",defaultValue:"Repeat",displayName:"Horiz. wrapping",if:{MaterialType:"Physical",TransmissionMap:{$isset:!0}},name:"TransmissionWrapS",options:["Repeat","Clamp to edge","Mirrored repeat"],type:"Attribute"},{datatype:"Enum",defaultValue:"Repeat",displayName:"Vert. wrapping",if:{MaterialType:"Physical",TransmissionMap:{$isset:!0}},name:"TransmissionWrapT",options:["Repeat","Clamp to edge","Mirrored repeat"],type:"Attribute"},{datatype:"Enum",defaultValue:"Linear",displayName:"Mag filter",if:{MaterialType:"Physical",TransmissionMap:{$isset:!0}},name:"TransmissionMagFilter",options:["Linear","Nearest"],type:"Attribute"},{datatype:"Enum",defaultValue:"Linear, Mipmap linear",displayName:"Min Filter",if:{MaterialType:"Physical",TransmissionMap:{$isset:!0}},name:"TransmissionMinFilter",options:["Nearest","Nearest, Mipmap nearest","Nearest, Mipmap linear","Linear","Linear, Mipmap nearest","Linear, Mipmap linear"],type:"Attribute"},{datatype:"Enum",defaultValue:"1x",displayName:"Anisotropy",if:{MaterialType:"Physical",TransmissionMap:{$isset:!0}},name:"TransmissionAnisotropy",options:["1x","2x","4x","8x","16x"],type:"Attribute"},{label:"Blending",type:"Separator"},{datatype:"Enum",defaultValue:"Normal",displayName:"Mode",name:"Blending",options:["None","Normal","Additive","Subtractive","Multiply","Custom"],type:"Attribute"},{datatype:"Enum",defaultValue:"Source alpha",displayName:"Source",name:"BlendSrc",options:["Zero","One","Source color","One minus source color","Source alpha","One minus source alpha","Destination alpha","One minus destination alpha","Destination color","One minus destination color","Source alpha saturate"],type:"Attribute",if:{Blending:"Custom"}},{datatype:"Enum",defaultValue:"One minus source alpha",displayName:"Destination",name:"BlendDest",options:["Zero","One","Source color","One minus source color","Source alpha","One minus source alpha","Destination alpha","One minus destination alpha","Destination color","One minus destination color"],type:"Attribute",if:{Blending:"Custom"}},{datatype:"Enum",defaultValue:"Add",displayName:"Equation",name:"BlendEquation",options:["Add","Subtract","Reverse subtract","Min","Max"],type:"Attribute",if:{Blending:"Custom"}},{label:"Depth test",type:"Separator"},{datatype:"Boolean",defaultValue:!0,displayName:"Active",name:"DepthTest",type:"Attribute"},{datatype:"Boolean",defaultValue:!0,displayName:"Write",if:{DepthTest:!0},name:"DepthWrite",type:"Attribute"},{datatype:"Enum",defaultValue:"Less/equal",displayName:"Mode",if:{DepthTest:!0},name:"DepthMode",options:["Never","Always","Less","Less/equal","Greater/equal","Greater","Not equal"],type:"Attribute"},{label:"Culling",type:"Separator"},{datatype:"Enum",defaultValue:"Back",displayName:"Mode",name:"Culling",options:["Front","Back","Off"],type:"Attribute"},{label:"Flat shading",type:"Separator",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Normal"},{MaterialType:"Matcap"},{MaterialType:"Lambert"},{MaterialType:"Phong"}]}},{datatype:"Boolean",defaultValue:!1,displayName:"Active",name:"FlatShading",type:"Attribute",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Normal"},{MaterialType:"Matcap"},{MaterialType:"Lambert"},{MaterialType:"Phong"}]}},{label:"Wireframe",type:"Separator",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Basic"},{MaterialType:"Normal"},{MaterialType:"Toon"},{MaterialType:"Shader"},{MaterialType:"Lambert"},{MaterialType:"Phong"}]}},{datatype:"Boolean",defaultValue:!1,displayName:"Wireframe",name:"Wireframe",type:"Attribute",if:{$or:[{MaterialType:"Physical"},{MaterialType:"Basic"},{MaterialType:"Normal"},{MaterialType:"Toon"},{MaterialType:"Shader"},{MaterialType:"Lambert"},{MaterialType:"Phong"}]}}],name:"Material",updateRequiresThumbRefresh:!0,creatableEmpty:!0},{_id:{$oid:"5e6a1ad189707feef9173394"},contentTypes:["model/obj","model/gltf-binary","model/vnd.usdz+zip","model/draco","model/ply","model/fbx"],fieldSets:[],fields:[{linkableTypes:["Material"],type:"Link",usageAs:"Material"},{doesNotAffectThumbnail:!0,linkableTypes:["Mesh"],loadingManager:"ignore",preload:!1,type:"Link",usageAs:"USDZ"},{doesNotAffectThumbnail:!0,linkableTypes:["Mesh"],loadingManager:"ignore",preload:!1,type:"Link",usageAs:"GLB"},{datatype:"Vector3d",defaultValue:{x:0,y:0,z:0},name:"Pivot",type:"Attribute"},{datatype:"Transform",defaultValue:{position:{x:0,y:0,z:0},rotation:{w:1,x:0,y:0,z:0},scale:{x:1,y:1,z:1}},name:"DefaultTransform",displayName:"Default transform",type:"Attribute"}],name:"Mesh",updateRequiresThumbRefresh:!0,creatableEmpty:!1},{_id:{$oid:"5e6a1ad189707feef9173396"},contentTypes:[""],fields:[{label:"Camera & Composition",type:"Separator"},{datatype:"Enum",defaultValue:"Automatic user controllable camera",displayName:"Camera mode",info:"Camera to render during playback. The main camera is the one with the 'mainCamera' Tag or if only one camera exists, that is the one. Composer setting will render whatever the composition defines.",name:"CameraMode",options:["Automatic user controllable camera","Main camera","Composer"],type:"Attribute"},{linkableTypes:["Composition"],type:"Link",if:{CameraMode:"Composer"},usageAs:"Composition",mandatory:!0},{label:"Environment & Background",type:"Separator"},{datatype:"Enum",defaultValue:"None",displayName:"Background mode",name:"BackgroundMode",options:["None","Color","Image","Environment map","Shader"],type:"Attribute"},{datatype:"Float",defaultValue:0,displayName:"Background blurriness",if:{BackgroundMode:"Environment map"},maxValue:1,minValue:0,name:"BackgroundBlurriness",type:"Attribute",widget:"Slider"},{datatype:"Float",defaultValue:1,displayName:"Background intensity",if:{$or:[{BackgroundMode:"Image"},{BackgroundMode:"Environment map"}]},maxValue:10,minValue:0,name:"BackgroundIntensity",type:"Attribute",widget:"Slider"},{displayName:"Background shader",if:{BackgroundMode:"Shader"},linkableTypes:["Background Shader"],type:"Link",usageAs:"BackgroundShader",mandatory:!0},{displayName:"Background image",if:{BackgroundMode:"Image"},linkableTypes:["Image"],type:"Link",usageAs:"Background",mandatory:!0},{datatype:"Color",defaultValue:{a:255,b:255,g:255,r:255},displayName:"Background color",if:{BackgroundMode:"Color"},name:"BackgroundColor",type:"Attribute"},{displayName:"Environment map",linkableTypes:["HDR Image"],type:"Link",usageAs:"Environment"},{datatype:"Float",defaultValue:1,displayName:"Environment intensity",maxValue:10,minValue:0,name:"EnvironmentIntensity",type:"Attribute",widget:"Slider"},{datatype:"Color",defaultValue:{a:255,b:0,g:0,r:0},displayName:"Clear color",name:"ClearColor",type:"Attribute"},{label:"Rendering",type:"Separator",collapsed:!1},{datatype:"Enum",defaultValue:"PCF Shadow Map",displayName:"Shadow type",name:"ShadowType",options:["Basic Shadow Map","PCF Shadow Map","VSM Shadow Map"],type:"Attribute"}],name:"Scene",updateRequiresThumbRefresh:!0,inherits:"Prefab",creatableEmpty:!0},{_id:{$oid:"5e6a1ad189707fcef4252336"},contentTypes:[""],fieldSets:[{fields:[{label:"3D Object",type:"Separator"},{datatype:"Boolean",defaultValue:!0,displayName:"Active",info:"Indicates if the 3D object is currently active or inactive. When set to true, the object is active.",name:"Active",type:"Attribute"},{datatype:"Boolean",defaultValue:!1,displayName:"Static",info:"A Boolean attribute indicating whether the 3D object is static or not. Static objects can and will never be transformed during runtime.",name:"Static",type:"Attribute"},{datatype:"String",defaultValue:"",displayName:"Name",info:"Specifies the name of the 3D object. This is used for identification and reference in the scene.",name:"Name",type:"Attribute"},{datatype:"Transform",defaultValue:{position:{x:0,y:0,z:0},rotation:{w:1,x:0,y:0,z:0},scale:{x:1,y:1,z:1}},info:"Describes the object's transformation attributes including its position, rotation, and scale in the 3D space.",name:"Transform",type:"Attribute"},{type:"Label",text:"Changing scale in transforms for physics enabled objects is not recommended. Not all objects fully support it. Keep it at least uniform!",labelType:"warning",if:{"PhysicsEnabled?":!0,$or:[{"Transform.scale.x":{$not:1}},{"Transform.scale.y":{$not:1}},{"Transform.scale.z":{$not:1}}]}},{datatype:"Layers",defaultValue:[0],info:"Defines the layers that the 3D object is part of. Layers are used for managing object interactions and visibility in the scene.",name:"Layers",type:"Attribute"},{datatype:"Tags",defaultValue:[],info:"Lists tags associated with the 3D object. Tags are useful for categorizing and searching objects in the scene.",name:"Tags",type:"Attribute"},{datatype:"Boolean",defaultValue:!1,displayName:"Receive shadow",info:"Determines whether the object can receive shadows from other objects. Set to true if the object should display shadows cast upon it.",name:"ReceiveShadow",type:"Attribute"},{datatype:"Boolean",defaultValue:!1,displayName:"Cast shadow",info:"Controls whether the object casts shadows in the presence of light sources. Set to true to enable shadow casting from this object.",name:"CastShadow",type:"Attribute"}],name:"3dObjectDefault"},{fields:[{label:"3D Object",type:"Separator"},{datatype:"Boolean",defaultValue:!0,displayName:"Active",info:"A Boolean attribute indicating whether the 3D object is active or not. When set to true, the object is considered active in the scene.",name:"Active",type:"Attribute"},{datatype:"Boolean",defaultValue:!1,displayName:"Static",info:"A Boolean attribute indicating whether the 3D object is static or not. Static objects can and will never be transformed during runtime.",name:"Static",type:"Attribute"},{datatype:"String",defaultValue:"",displayName:"Name",info:"A string attribute representing the name of the 3D object. It is used to identify and reference the object within the scene.",name:"Name",type:"Attribute"},{datatype:"Transform",defaultValue:{position:{x:0,y:0,z:0},rotation:{w:1,x:0,y:0,z:0},scale:{x:1,y:1,z:1}},info:"Specifies the transformation properties of the 3D object, including its position, rotation, and scale in the scene.",name:"Transform",type:"Attribute"},{datatype:"Layers",defaultValue:[0],info:"Determines the layers the 3D object belongs to. Layers are used to organize objects in the scene for various purposes like rendering and interaction.",name:"Layers",type:"Attribute"},{datatype:"Tags",defaultValue:[],info:"A list of tags associated with the 3D object. Tags are used for categorizing and identifying objects for scripting and scene management.",name:"Tags",type:"Attribute"}],name:"3dObjectNoShadows"},{fields:[{label:"Physics",type:"Separator"},{datatype:"Boolean",defaultValue:!1,displayName:"Physics enabled",info:"A Boolean attribute that determines whether physics properties are applied to the object. Disabling it turns off physics calculations.",name:"PhysicsEnabled",type:"Attribute"},{datatype:"Enum",defaultValue:"Rigid body",displayName:"Body type",if:{PhysicsEnabled:!0},name:"BodyType",options:["Rigid body","Soft body","Ghost object"],type:"Attribute"},{datatype:"Boolean",defaultValue:!1,displayName:"Separate subobjects",if:{BodyType:"Rigid body",PhysicsEnabled:!0},info:"When adding all subobjects of the mesh separately, they will all act individually. We lose however also the possibility to control and watch them as a single object. The configured mass will be distributed among all subobjects",name:"SeparateSubobjects",type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"Mass",if:{BodyType:{$not:"Ghost object"},PhysicsEnabled:!0},info:"Specifies the mass of the object as a float value. The mass must be a non-negative value.",minValue:0,name:"Mass",type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"Pressure",if:{BodyType:"Soft body",PhysicsEnabled:!0},info:"Specifies the pressure of the soft body as a float value. The pressure must be a non-negative value.",minValue:0,name:"Pressure",type:"Attribute"},{datatype:"Float",defaultValue:.01,displayName:"Damping",if:{BodyType:"Soft body",PhysicsEnabled:!0},info:"Specifies the damping of the soft body.",minValue:0,name:"Damping",type:"Attribute"},{datatype:"Float",defaultValue:.04,displayName:"Margin",if:{BodyType:{$not:"Ghost object"},PhysicsEnabled:!0},info:"Defines the margin of the object for physics calculations as a float value. The margin is a non-negative value.",minValue:0,name:"Margin",type:"Attribute"},{datatype:"Float",defaultValue:.1,displayName:"Restitution",if:{BodyType:{$not:"Ghost object"},PhysicsEnabled:!0},info:"Determines the restitution (bounciness) of the object. It's a float value affecting how the object bounces upon impact.",name:"Restitution",type:"Attribute"},{datatype:"Float",defaultValue:.1,displayName:"Friction",if:{BodyType:{$not:"Ghost object"},PhysicsEnabled:!0},info:"Sets the friction coefficient of the object. It's a float value, affecting how the object slides against other surfaces.",name:"Friction",type:"Attribute"},{datatype:"Float",defaultValue:.1,displayName:"Spinning friction",if:{BodyType:{$not:"Ghost object"},PhysicsEnabled:!0},info:"Defines the spinning friction of the object as a float value, affecting the object's rotational resistance.",name:"SpinningFriction",type:"Attribute"},{datatype:"Float",defaultValue:.1,displayName:"Rolling friction",if:{BodyType:{$not:"Ghost object"},PhysicsEnabled:!0},info:"Specifies the rolling friction of the object. It's a float value that influences how the object rolls over surfaces.",name:"RollingFriction",type:"Attribute"},{datatype:"Float",defaultValue:0,displayName:"Linear damping",if:{BodyType:"Rigid body",PhysicsEnabled:!0},info:"Sets the linear damping.",name:"LinearDamping",type:"Attribute"},{datatype:"Float",defaultValue:0,displayName:"Angular damping",if:{BodyType:"Rigid body",PhysicsEnabled:!0},info:"Sets the angular damping.",name:"AngularDamping",type:"Attribute"},{datatype:"Vector3d",defaultValue:{x:1,y:1,z:1},displayName:"Linear factor",if:{BodyType:"Rigid body",PhysicsEnabled:!0},info:"A Vector3d value that defines the linear factor of the object in terms of x, y, and z axes, controlling how the object moves linearly.",name:"LinearFactor",type:"Attribute"},{datatype:"Vector3d",defaultValue:{x:0,y:0,z:0},displayName:"Linear velocity",if:{BodyType:"Rigid body",PhysicsEnabled:!0},info:"Defines the object's linear velocity using a Vector3d value, representing the velocity along the x, y, and z axes.",name:"LinearVelocity",type:"Attribute"},{datatype:"Vector3d",defaultValue:{x:1,y:1,z:1},displayName:"Angular factor",if:{BodyType:"Rigid body",PhysicsEnabled:!0},info:"A Vector3d attribute that specifies the angular factor of the object, influencing the object's rotation around each axis.",name:"AngularFactor",type:"Attribute"},{datatype:"Vector3d",defaultValue:{x:0,y:0,z:0},displayName:"Angular velocity",if:{BodyType:"Rigid body",PhysicsEnabled:!0},info:"Sets the angular velocity of the object using a Vector3d value, affecting the object's rotational speed.",name:"AngularVelocity",type:"Attribute"},{datatype:"Boolean",defaultValue:!1,displayName:"Is kinematic",if:{BodyType:"Rigid body",PhysicsEnabled:!0,SeparateSubobjects:!1},info:"A Boolean attribute that makes the object kinematic when true, meaning it will not be affected by physics but can still affect other objects.",name:"IsKinematic",type:"Attribute"},{datatype:"Boolean",defaultValue:!1,displayName:"Disable deactivation",if:{BodyType:{$not:"Ghost object"},PhysicsEnabled:!0,$or:[{IsKinematic:!1},{BodyType:"Soft body"}]},info:"When set to true, object will be simulated in physics forever. Otherwise it will be deactivated when not moving anymore",name:"DisableDeactivation",type:"Attribute"},{datatype:"Boolean",defaultValue:!1,displayName:"Watch collisions",if:{BodyType:{$not:"Ghost object"},PhysicsEnabled:!0,SeparateSubobjects:!1},info:"When set to true, enables monitoring of collisions involving the object.",name:"WatchCollisions",type:"Attribute"},{datatype:"Boolean",defaultValue:!1,displayName:"Report contact points",if:{BodyType:{$not:"Ghost object"},PhysicsEnabled:!0,SeparateSubobjects:!1},info:"If set to true, collision events will contain the exact contact points. Only enable if you really need it as it costs performance.",name:"ReportContactPoints",type:"Attribute"},{datatype:"Boolean",defaultValue:!0,displayName:"Filter potential collisions",if:{BodyType:{$not:"Ghost object"},PhysicsEnabled:!0,SeparateSubobjects:!1},info:"The physics engine might report collisions without contact points in cases where objects get close. Filter these out by setting this.",name:"FilterPotentialCollisions",type:"Attribute"},{datatype:"Boolean",defaultValue:!1,displayName:"Watch linear velocity",if:{BodyType:{$not:"Ghost object"},PhysicsEnabled:!0,SeparateSubobjects:!1},info:"Enables the tracking of changes in the object's linear velocity when set to true.",name:"WatchLinearVelocity",type:"Attribute"},{datatype:"Boolean",defaultValue:!1,displayName:"Watch angular velocity",if:{BodyType:{$not:"Ghost object"},PhysicsEnabled:!0,SeparateSubobjects:!1},info:"Allows for the monitoring of changes in the object's angular velocity when enabled.",name:"WatchAngularVelocity",type:"Attribute"},{if:{BodyType:{$not:"Soft body"},PhysicsEnabled:!0},label:"Collider",type:"Separator"},{datatype:"Enum",defaultValue:"Self",displayName:"Collider type",if:{BodyType:{$not:"Soft body"},PhysicsEnabled:!0},name:"ColliderType",options:["Self","Bounding Box","Bounding Sphere","Bounding Cylinder","Capsule","Convex Hull","Custom Mesh"],type:"Attribute"},{datatype:"Enum",defaultValue:"Derive from mesh",displayName:"Capsule size",if:{BodyType:{$not:"Soft body"},ColliderType:"Capsule",PhysicsEnabled:!0},name:"CapsuleSize",options:["Derive from mesh","Manual"],type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"Capsule height",if:{BodyType:{$not:"Soft body"},ColliderType:"Capsule",CapsuleSize:"Manual",PhysicsEnabled:!0},name:"CapsuleHeight",minValue:0,type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"Capsule radius",if:{BodyType:{$not:"Soft body"},ColliderType:"Capsule",CapsuleSize:"Manual",PhysicsEnabled:!0},name:"CapsuleRadius",minValue:0,type:"Attribute"},{displayName:"Collider mesh",if:{BodyType:{$not:"Soft body"},ColliderType:"Custom Mesh",PhysicsEnabled:!0},linkableTypes:["Mesh","Mesh Collection"],type:"Link",usageAs:"ColliderMesh",mandatory:!0},{datatype:"Enum",defaultValue:"",displayName:"Collection entry",if:{BodyType:{$not:"Soft body"},ColliderType:"Custom Mesh",PhysicsEnabled:!0,$optionsexist:!0},name:"ColliderMeshCollectionEntry",options:[],type:"Attribute"}],name:"Physics"},{fields:[{datatype:"Enum",defaultValue:"Single",displayName:"Source type",name:"SourceType",options:["Single","Collection"],type:"Attribute"},{displayName:"Audio item",if:{SourceType:"Single"},linkableTypes:["Audio"],type:"Link",usageAs:"AudioItem"},{displayName:"Audio collection",if:{SourceType:"Collection"},linkableTypes:["Audio Collection"],type:"Link",usageAs:"AudioCollectionItem"},{datatype:"Enum",defaultValue:"",displayName:"Collection entry",if:{SourceType:"Collection"},name:"AudioCollectionEntry",options:[],type:"Attribute"}],name:"AudioLink"},{fields:[{displayName:"Mesh item",linkableTypes:["Mesh","Mesh Collection"],type:"Link",usageAs:"Mesh",mandatory:!0},{datatype:"Enum",defaultValue:"",displayName:"Collection entry",if:{$optionsexist:!0},name:"MeshCollectionEntry",options:[],type:"Attribute"}],name:"MeshLink"}],fields:[{childTypes:[{fields:[{name:"3dObjectDefault",type:"FieldSet"},{label:"Mesh specific fields",type:"Separator"},{name:"MeshLink",type:"FieldSet"},{datatype:"Enum",defaultValue:"Pivot",name:"OriginMode",displayName:"Origin mode",if:{$or:[{MeshCollectionEntry:{$isset:!0}},{Mesh:{$isset:!0}}]},options:["Pivot","Center","Custom"],type:"Attribute"},{name:"CustomPivot",displayName:"Custom Pivot",type:"Attribute",datatype:"Vector3d",if:{OriginMode:"Custom"},defaultValue:{x:0,y:0,z:0}},{datatype:"Animations",defaultValue:[],displayName:"Animations",if:{$or:[{MeshCollectionEntry:{$isset:!0}},{Mesh:{$isset:!0}}]},name:"Animations",type:"Attribute"},{name:"Physics",type:"FieldSet"}],mainItemField:"Mesh",typeName:"Mesh"},{fields:[{name:"3dObjectDefault",type:"FieldSet"},{label:"ScriptedMesh specific fields",type:"Separator"},{displayName:"Material(s)",linkableTypes:["Material","Material Collection"],type:"Link",usageAs:"Materials"},{datatype:"Boolean",defaultValue:!1,displayName:"Indexed",info:"Indicates if the geometry buffer is indexed.",name:"Indexed",type:"Attribute"},{datatype:"Boolean",defaultValue:!0,displayName:"Have positions",info:"Add a position attribute to the mesh.",name:"HavePositions",type:"Attribute"},{datatype:"Boolean",defaultValue:!1,displayName:"Have normals",info:"Add a normal attribute to the mesh.",name:"HaveNormals",type:"Attribute"},{datatype:"Boolean",defaultValue:!1,displayName:"Have colors",info:"Add a color attribute to the mesh.",name:"HaveColors",type:"Attribute"},{datatype:"Boolean",defaultValue:!1,displayName:"Have UV Coords",info:"Add a UV texture coordinate attribute to the mesh.",name:"HaveUVs",type:"Attribute"},{name:"Physics",type:"FieldSet"}],typeName:"ScriptedMesh"},{fields:[{name:"3dObjectDefault",type:"FieldSet"},{label:"Splats specific fields",type:"Separator"},{linkableTypes:["Gaussian Splats"],type:"Link",usageAs:"Splats",mandatory:!0}],mainItemField:"Splats",typeName:"GaussianSplats"},{fields:[{name:"3dObjectDefault",type:"FieldSet"},{label:"Prefab specific fields",type:"Separator"},{linkableTypes:["Scene","Prefab"],type:"Link",usageAs:"Prefab",mandatory:!0}],mainItemField:"Prefab",typeName:"Prefab"},{fields:[{name:"3dObjectDefault",type:"FieldSet"},{label:"Points specific fields",type:"Separator"},{name:"MeshLink",type:"FieldSet"}],mainItemField:"Mesh",typeName:"Points"},{fields:[{name:"3dObjectNoShadows",type:"FieldSet"},{label:"Lightsource specific fields",type:"Separator"},{datatype:"Enum",defaultValue:"Point",name:"Type",options:["Point","Directional","Ambient","Hemisphere","Spot"],type:"Attribute"},{datatype:"Color",defaultValue:{a:255,b:255,g:255,r:255},name:"Color",type:"Attribute"},{datatype:"Color",defaultValue:{a:255,b:64,g:64,r:64},displayName:"Ground color (Hemisphere)",if:{Type:"Hemisphere"},name:"GroundColor",type:"Attribute"},{datatype:"Float",defaultValue:10,minValue:0,name:"Intensity",type:"Attribute"},{datatype:"Float",defaultValue:100,if:{$or:[{Type:"Spot"},{Type:"Point"}]},minValue:0,name:"Distance",type:"Attribute"},{datatype:"Float",defaultValue:2,if:{$or:[{Type:"Spot"},{Type:"Point"}]},minValue:1,name:"Decay",type:"Attribute"},{datatype:"Float",defaultValue:.5,displayName:"Angle",if:{Type:"Spot"},maxValue:1.57,minValue:0,name:"Angle",type:"Attribute"},{datatype:"Float",defaultValue:0,displayName:"Penumbra",if:{Type:"Spot"},maxValue:1,minValue:0,name:"Penumbra",type:"Attribute"},{datatype:"Node",defaultValue:null,displayName:"Target",if:{$or:[{Type:"Spot"},{Type:"Directional"}]},name:"Target",type:"Attribute"},{datatype:"Boolean",defaultValue:!1,displayName:"Cast shadows",name:"CastShadows",type:"Attribute",if:{$or:[{Type:"Point"},{Type:"Directional"},{Type:"Spot"}]}},{datatype:"Float",defaultValue:0,displayName:"Shadow bias",if:{CastShadows:!0,$or:[{Type:"Point"},{Type:"Directional"},{Type:"Spot"}]},maxValue:1,minValue:-1,name:"ShadowBias",type:"Attribute",widget:"Slider"},{datatype:"Enum",defaultValue:512,displayName:"Shadow size",if:{CastShadows:!0,$or:[{Type:"Point"},{Type:"Directional"},{Type:"Spot"}]},name:"ShadowSize",options:[128,256,512,1024,2048],type:"Attribute"},{datatype:"Float",defaultValue:.5,displayName:"Shadow camera near",if:{CastShadows:!0,$or:[{Type:"Point"},{Type:"Directional"},{Type:"Spot"}]},minValue:0,name:"ShadowCameraNear",type:"Attribute"},{datatype:"Float",defaultValue:500,displayName:"Shadow camera far",if:{CastShadows:!0,$or:[{Type:"Point"},{Type:"Directional"},{Type:"Spot"}]},minValue:0,name:"ShadowCameraFar",type:"Attribute"},{datatype:"Float",defaultValue:10,displayName:"Shadow area width",if:{CastShadows:!0,Type:"Directional"},minValue:1,name:"ShadowAreaWidth",type:"Attribute"},{datatype:"Float",defaultValue:10,displayName:"Shadow area height",if:{CastShadows:!0,Type:"Directional"},minValue:1,name:"ShadowAreaHeight",type:"Attribute"},{datatype:"Float",defaultValue:4,displayName:"Shadow radius",minValue:0,name:"ShadowRadius",type:"Attribute",if:{CastShadows:!0,$or:[{Type:"Point"},{Type:"Directional"},{Type:"Spot"}]}},{datatype:"Integer",defaultValue:8,displayName:"VSM blur samples",maxValue:32,minValue:1,name:"VsmBlurSamples",type:"Attribute",if:{CastShadows:!0,$or:[{Type:"Point"},{Type:"Directional"},{Type:"Spot"}]}}],typeName:"Lightsource"},{fields:[{label:"3D Object Fields",type:"Separator"},{datatype:"Boolean",defaultValue:!0,displayName:"Active",info:"Indicates if the 3D object is currently active or inactive. When set to true, the object is active.",name:"Active",type:"Attribute"},{datatype:"Boolean",defaultValue:!1,displayName:"Static",info:"A Boolean attribute indicating whether the 3D object is static or not. Static objects can and will never be transformed during runtime.",name:"Static",type:"Attribute"},{datatype:"String",defaultValue:"",displayName:"Name",info:"Specifies the name of the 3D object. This is used for identification and reference in the scene.",name:"Name",type:"Attribute"},{datatype:"Transform",defaultValue:{position:{x:0,y:0,z:0},rotation:{w:1,x:0,y:0,z:0},scale:{x:1,y:1,z:1}},info:"Describes the object's transformation attributes including its position, rotation, and scale in the 3D space.",name:"Transform",type:"Attribute"},{datatype:"Layers",defaultValue:[],name:"Cullmode",info:"Defines the layers that are not visible to the camera.",displayName:"Cull mode",type:"Attribute"},{datatype:"Tags",defaultValue:[],info:"Lists tags associated with the 3D object. Tags are useful for categorizing and searching objects in the scene.",name:"Tags",type:"Attribute"},{label:"Camera specific fields",type:"Separator"},{datatype:"Enum",defaultValue:"Perspective",name:"Type",options:["Perspective","Orthographic"],type:"Attribute"},{datatype:"Float",defaultValue:60,displayName:"Field of view",if:{Type:"Perspective"},maxValue:360,minValue:1,name:"FieldOfView",type:"Attribute"},{datatype:"Float",defaultValue:-1,displayName:"Left",if:{Type:"Orthographic"},name:"Left",type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"Right",if:{Type:"Orthographic"},name:"Right",type:"Attribute"},{datatype:"Float",defaultValue:-1,displayName:"Top",if:{Type:"Orthographic"},name:"Top",type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"Bottom",if:{Type:"Orthographic"},name:"Bottom",type:"Attribute"},{datatype:"Float",defaultValue:.1,displayName:"Near plane",minValue:0,name:"NearPlane",type:"Attribute"},{datatype:"Float",defaultValue:1e3,displayName:"Far plane",minValue:0,name:"FarPlane",type:"Attribute"},{datatype:"Enum",defaultValue:"Free",name:"Mode",options:["Free","Look at"],type:"Attribute"},{datatype:"Vector3d",defaultValue:{x:0,y:0,z:0},if:{Mode:"Look at"},name:"LookAt",type:"Attribute"},{datatype:"Vector3d",defaultValue:{x:0,y:1,z:0},displayName:"Up vector",if:{Mode:"Look at"},name:"UpVector",type:"Attribute"}],typeName:"Camera"},{fields:[{name:"3dObjectNoShadows",type:"FieldSet"}],typeName:"Group"},{fields:[{name:"3dObjectDefault",type:"FieldSet"},{label:"Box specific fields",type:"Separator"},{linkableTypes:["Material"],type:"Link",usageAs:"Material"},{datatype:"Vector3d",defaultValue:{x:1,y:1,z:1},name:"Size",type:"Attribute"},{datatype:"Vector3d",defaultValue:{x:1,y:1,z:1},name:"Segments",type:"Attribute"},{datatype:"Vector2d",defaultValue:{x:1,y:1},displayName:"UV Scale",name:"UVScale",type:"Attribute"},{name:"Physics",type:"FieldSet"}],typeName:"Box"},{fields:[{name:"3dObjectDefault",type:"FieldSet"},{label:"GridMap specific fields",type:"Separator"},{linkableTypes:["GridMap"],type:"Link",usageAs:"GridMap"},{name:"Physics",type:"FieldSet"}],typeName:"GridMap"},{fields:[{name:"3dObjectDefault",type:"FieldSet"},{label:"Ribbon specific fields",type:"Separator"},{linkableTypes:["Material"],type:"Link",usageAs:"Material"},{datatype:"Integer",defaultValue:16,displayName:"Ring vertex count",minValue:3,maxValue:256,name:"RingVertexCount",type:"Attribute"},{datatype:"Integer",defaultValue:16,displayName:"Path steps",minValue:2,name:"PathStepCount",type:"Attribute"},{datatype:"Float",defaultValue:0,displayName:"Start time",minValue:0,name:"StartTime",type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"End time",minValue:0,name:"EndTime",type:"Attribute"},{datatype:"Vector2d",defaultValue:{x:1,y:1},displayName:"UV Scale",name:"UVScale",type:"Attribute"},{datatype:"Boolean",defaultValue:!1,displayName:"Closed",name:"Closed",type:"Attribute"},{datatype:"Boolean",defaultValue:!0,displayName:"Add caps",name:"AddCaps",if:{Closed:!1},type:"Attribute"},{datatype:"Boolean",defaultValue:!0,displayName:"Vertex colors",name:"VertexColors",type:"Attribute"},{label:"Ring formulas",type:"Separator",presets:[{name:"Circle",fields:{RingFormulaX:"cos(theta) * 0.5",RingFormulaY:"0",RingFormulaZ:"sin(theta) * 0.5"}}]},{datatype:"Formula",defaultValue:"cos(theta) * 0.5",displayName:"X",name:"RingFormulaX",type:"Attribute"},{datatype:"Formula",defaultValue:"0",displayName:"Y",name:"RingFormulaY",type:"Attribute"},{datatype:"Formula",defaultValue:"sin(theta) * 0.5",displayName:"Z",name:"RingFormulaZ",type:"Attribute"},{label:"Path formulas",type:"Separator"},{datatype:"Formula",defaultValue:"0",displayName:"X",name:"PathFormulaX",type:"Attribute"},{datatype:"Formula",defaultValue:"sin(t)",displayName:"Y",name:"PathFormulaY",type:"Attribute"},{datatype:"Formula",defaultValue:"t",displayName:"Z",name:"PathFormulaZ",type:"Attribute"},{label:"Color formulas",type:"Separator",if:{VertexColors:!0}},{datatype:"Formula",defaultValue:"abs(sin(t))",displayName:"R",name:"ColorFormulaR",type:"Attribute",if:{VertexColors:!0}},{datatype:"Formula",defaultValue:"0",displayName:"G",name:"ColorFormulaG",type:"Attribute",if:{VertexColors:!0}},{datatype:"Formula",defaultValue:"abs(cos(t))",displayName:"B",name:"ColorFormulaB",type:"Attribute",if:{VertexColors:!0}},{label:"Other formulas",type:"Separator"},{datatype:"Formula",defaultValue:"1 + 0.3 * sin(t * 2)",displayName:"Scale",name:"ScaleFormula",type:"Attribute"},{datatype:"Formula",defaultValue:"t * PI * 2",displayName:"Twist",name:"TwistFormula",type:"Attribute"},{name:"Physics",type:"FieldSet"}],typeName:"Ribbon"},{fields:[{name:"3dObjectDefault",type:"FieldSet"},{label:"Billboard Specific Fields",type:"Separator"},{linkableTypes:["Material"],type:"Link",usageAs:"Material",mandatory:!0},{datatype:"Text",defaultValue:"Text",displayName:"Text",name:"Text",type:"Attribute"},{datatype:"Enum",defaultValue:"center",displayName:"Text Alignment",info:"The alignment of the text",name:"TextAlign",options:["left","center","right"],type:"Attribute"},{linkableTypes:["Font"],type:"Link",usageAs:"Font"},{datatype:"Boolean",defaultValue:!0,displayName:"Size Attenuation",info:"Scales the Billboard with respect to distance to the camera.",name:"SizeAttenuation",type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"Size",minValue:0,name:"Size",type:"Attribute"},{datatype:"Float",defaultValue:2,displayName:"Text Stroke Width",info:"The width of the border of the text.",maxValue:100,minValue:0,name:"TextStrokeWidth",type:"Attribute"},{datatype:"Color",defaultValue:{a:255,b:255,g:255,r:255},displayName:"Text Stroke Color",info:"The color of the border of the text.",name:"TextStrokeColor",type:"Attribute"},{datatype:"Color",defaultValue:{a:255,b:0,g:0,r:0},displayName:"Text color",info:"The infill color of the text.",name:"TextColor",type:"Attribute"},{datatype:"Vector2d",defaultValue:{x:5,y:5},displayName:"Padding",info:"Two values controlling the vertical and horizontal padding size. Higher values increase the size of the padding.",name:"Padding",type:"Attribute"},{datatype:"Color",defaultValue:{a:255,b:255,g:255,r:255},displayName:"Padding color",info:"The background color of the padding section.",name:"BackgroundColor",type:"Attribute"},{datatype:"Color",defaultValue:{a:255,b:255,g:255,r:255},displayName:"Padding Line Color",info:"The color of the border delimited by the padding.",name:"BackgroundStrokeColor",type:"Attribute"},{datatype:"Integer",defaultValue:1,displayName:"Padding Line Width",info:"The width of the border of the padding section.",minValue:0,name:"BackgroundStrokeWidth",type:"Attribute"},{datatype:"Vector2d",defaultValue:{x:2,y:2},displayName:"Border",info:"Two values controlling the vertical and horizontal border size. Higher values increase the size of the border.",name:"BorderWidth",type:"Attribute"},{datatype:"Color",defaultValue:{a:255,b:255,g:255,r:255},displayName:"Border Color",info:"The background color of the border section.",name:"BorderBackgroundColor",type:"Attribute"},{datatype:"Color",defaultValue:{a:255,b:255,g:255,r:255},displayName:"Border Line Color",info:"The color of the outer border of the sprite.",name:"BorderStrokeColor",type:"Attribute"},{datatype:"Integer",defaultValue:1,displayName:"Border Line Width",info:"The width of the outer border.",minValue:0,name:"BorderStrokeWidth",type:"Attribute"},{datatype:"Integer",defaultValue:2,displayName:"Outer Radius",info:"The outer radius of the sprite. Higher values increase the roundness.",minValue:0,name:"OuterRadius",type:"Attribute"},{datatype:"Integer",defaultValue:2,displayName:"Inner Radius",info:"The inner radius of the sprite. Higher values increase the roundness.",minValue:0,name:"InnerRadius",type:"Attribute"},{datatype:"Vector2d",defaultValue:{x:1,y:1},displayName:"UV Scale",name:"UVScale",type:"Attribute"}],typeName:"Billboard"},{fields:[{name:"3dObjectDefault",type:"FieldSet"},{label:"Cone specific fields",type:"Separator"},{linkableTypes:["Material"],type:"Link",usageAs:"Material"},{datatype:"Float",defaultValue:1,displayName:"Radius",minValue:0,name:"Radius",type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"Height",minValue:0,name:"Height",type:"Attribute"},{datatype:"Integer",defaultValue:8,displayName:"Radial segments",minValue:1,name:"RadialSegments",type:"Attribute"},{datatype:"Integer",defaultValue:1,displayName:"Height segments",minValue:1,name:"HeightSegments",type:"Attribute"},{datatype:"Boolean",defaultValue:!1,displayName:"Open ended",name:"OpenEnded",type:"Attribute"},{datatype:"Float",defaultValue:0,displayName:"Theta start",maxValue:360,minValue:0,name:"ThetaStart",type:"Attribute",widget:"Slider"},{datatype:"Float",defaultValue:360,displayName:"Theta length",maxValue:360,minValue:0,name:"ThetaLength",type:"Attribute",widget:"Slider"},{datatype:"Vector2d",defaultValue:{x:1,y:1},displayName:"UV Scale",name:"UVScale",type:"Attribute"},{name:"Physics",type:"FieldSet"}],typeName:"Cone"},{fields:[{name:"3dObjectNoShadows",type:"FieldSet"},{label:"Lod specific fields",type:"Separator"},{datatype:"String",defaultValue:"0,2,4,6,8,10",displayName:"Distances",name:"Distances",type:"Attribute"}],typeName:"Lod"},{fields:[{name:"3dObjectDefault",type:"FieldSet"},{label:"Cylinder specific fields",type:"Separator"},{linkableTypes:["Material"],type:"Link",usageAs:"Material"},{datatype:"Float",defaultValue:1,displayName:"Radius top",minValue:0,name:"RadiusTop",type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"Radius bottom",minValue:0,name:"RadiusBottom",type:"Attribute"},{datatype:"Integer",defaultValue:8,displayName:"Radial segments",minValue:1,name:"RadialSegments",type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"Height",minValue:0,name:"Height",type:"Attribute"},{datatype:"Integer",defaultValue:1,displayName:"Height segments",minValue:1,name:"HeightSegments",type:"Attribute"},{datatype:"Boolean",defaultValue:!1,displayName:"Open ended",name:"OpenEnded",type:"Attribute"},{datatype:"Float",defaultValue:0,displayName:"Theta start",maxValue:360,minValue:0,name:"ThetaStart",type:"Attribute",widget:"Slider"},{datatype:"Float",defaultValue:360,displayName:"Theta length",maxValue:360,minValue:0,name:"ThetaLength",type:"Attribute",widget:"Slider"},{datatype:"Vector2d",defaultValue:{x:1,y:1},displayName:"UV Scale",name:"UVScale",type:"Attribute"},{name:"Physics",type:"FieldSet"}],typeName:"Cylinder"},{fields:[{name:"3dObjectDefault",type:"FieldSet"},{label:"Plane specific fields",type:"Separator"},{linkableTypes:["Material"],type:"Link",usageAs:"Material"},{datatype:"Float",defaultValue:1,displayName:"Width",minValue:0,name:"Width",type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"Height",minValue:0,name:"Height",type:"Attribute"},{datatype:"Integer",defaultValue:1,displayName:"Width segments",minValue:1,name:"WidthSegments",type:"Attribute"},{datatype:"Integer",defaultValue:1,displayName:"Height segments",minValue:1,name:"HeightSegments",type:"Attribute"},{datatype:"Vector2d",defaultValue:{x:1,y:1},displayName:"UV Scale",name:"UVScale",type:"Attribute"},{name:"Physics",type:"FieldSet"}],typeName:"Plane"},{fields:[{name:"3dObjectDefault",type:"FieldSet"},{label:"Ring specific fields",type:"Separator"},{linkableTypes:["Material"],type:"Link",usageAs:"Material"},{datatype:"Float",defaultValue:.5,displayName:"Inner radius",minValue:0,name:"InnerRadius",type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"Outer radius",minValue:0,name:"OuterRadius",type:"Attribute"},{datatype:"Integer",defaultValue:8,displayName:"Theta segments",minValue:3,name:"ThetaSegments",type:"Attribute"},{datatype:"Integer",defaultValue:1,displayName:"Phi segments",minValue:1,name:"PhiSegments",type:"Attribute"},{datatype:"Float",defaultValue:0,displayName:"Theta start",maxValue:360,minValue:0,name:"ThetaStart",type:"Attribute",widget:"Slider"},{datatype:"Float",defaultValue:360,displayName:"Theta length",maxValue:360,minValue:0,name:"ThetaLength",type:"Attribute",widget:"Slider"},{datatype:"Vector2d",defaultValue:{x:1,y:1},displayName:"UV Scale",name:"UVScale",type:"Attribute"},{name:"Physics",type:"FieldSet"}],typeName:"Ring"},{fields:[{name:"3dObjectNoShadows",type:"FieldSet"},{label:"Particles Editor Fields",type:"Separator"},{datatype:"Boolean",defaultValue:!1,displayName:"Preview",info:"Previews the particle system by playing it in the editor.",name:"RunPreview",type:"Attribute"},{datatype:"Boolean",defaultValue:!0,displayName:"Show Emitter Preview",info:"Shows a preview of the particle system's emitter.",name:"ShowHelper",type:"Attribute"},{datatype:"Boolean",defaultValue:!1,displayName:"Pause",info:"Pauses the particle system.",name:"Pause",type:"Attribute"},{datatype:"Boolean",defaultValue:!1,displayName:"Kill All Particles",info:"Kills all the alive particles in the system.",name:"KillAllParticles",type:"Attribute"},{datatype:"Boolean",defaultValue:!1,displayName:"Restart",info:"Hard restart of the particle system. It kills all particles, clean all data and reset the simulation time.",name:"Restart",type:"Attribute"},{displayName:"Particle System",label:"Particle System Configuration File",linkableTypes:["Particles"],type:"Link",usageAs:"ParticleData",mandatory:!0}],typeName:"ParticleSystem"},{fields:[{name:"3dObjectDefault",type:"FieldSet"},{label:"CircleShadow specific fields",type:"Separator"},{datatype:"Float",defaultValue:1,displayName:"Size",minValue:0,name:"Size",type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"Strength",maxValue:1,minValue:0,name:"Strength",type:"Attribute",widget:"Slider"}],typeName:"CircleShadow"},{fields:[{name:"3dObjectDefault",type:"FieldSet"},{label:"Sphere specific fields",type:"Separator"},{linkableTypes:["Material"],type:"Link",usageAs:"Material"},{datatype:"Float",defaultValue:1,displayName:"Radius",minValue:0,name:"Radius",type:"Attribute"},{datatype:"Integer",defaultValue:8,displayName:"Width segments",minValue:3,name:"WidthSegments",type:"Attribute"},{datatype:"Integer",defaultValue:6,displayName:"Height segments",minValue:2,name:"HeightSegments",type:"Attribute"},{datatype:"Float",defaultValue:0,displayName:"Phi start",maxValue:360,minValue:0,name:"PhiStart",type:"Attribute",widget:"Slider"},{datatype:"Float",defaultValue:360,displayName:"Phi length",maxValue:360,minValue:0,name:"PhiLength",type:"Attribute",widget:"Slider"},{datatype:"Float",defaultValue:0,displayName:"Theta start",maxValue:360,minValue:0,name:"ThetaStart",type:"Attribute",widget:"Slider"},{datatype:"Float",defaultValue:180,displayName:"Theta length",maxValue:180,minValue:0,name:"ThetaLength",type:"Attribute",widget:"Slider"},{datatype:"Vector2d",defaultValue:{x:1,y:1},displayName:"UV Scale",name:"UVScale",type:"Attribute"},{name:"Physics",type:"FieldSet"}],typeName:"Sphere"},{fields:[{name:"3dObjectDefault",type:"FieldSet"},{label:"Text specific fields",type:"Separator"},{linkableTypes:["Material"],type:"Link",usageAs:"Material"},{datatype:"String",defaultValue:"Text",name:"Text",type:"Attribute"},{datatype:"Enum",defaultValue:"center",displayName:"Horizontal Alignment",info:"Horizontal text positioning",name:"HorizontalAlign",options:["left","center","right"],type:"Attribute"},{datatype:"Enum",defaultValue:"baseline",displayName:"Vertical Alignment",info:"Vertical text positioning",name:"VerticalAlign",options:["baseline","top","middle","bottom"],type:"Attribute"},{linkableTypes:["Font"],type:"Link",usageAs:"Font"},{datatype:"Float",defaultValue:1,name:"Size",type:"Attribute"},{datatype:"Float",defaultValue:1,name:"Height",type:"Attribute"},{datatype:"Integer",defaultValue:12,displayName:"Curve segments",name:"CurveSegments",type:"Attribute"},{datatype:"Boolean",defaultValue:!1,displayName:"Bevel enabled",name:"BevelEnabled",type:"Attribute"},{datatype:"Float",defaultValue:.1,displayName:"Bevel thickness",name:"BevelThickness",type:"Attribute"},{datatype:"Float",defaultValue:.03,displayName:"Bevel size",name:"BevelSize",type:"Attribute"},{datatype:"Float",defaultValue:0,displayName:"Bevel offset",name:"BevelOffset",type:"Attribute"},{datatype:"Integer",defaultValue:3,displayName:"Bevel segments",name:"BevelSegments",type:"Attribute"},{datatype:"Vector2d",defaultValue:{x:1,y:1},displayName:"UV Scale",name:"UVScale",type:"Attribute"},{name:"Physics",type:"FieldSet"}],typeName:"Text"},{fields:[{name:"3dObjectDefault",type:"FieldSet"},{label:"Torus specific fields",type:"Separator"},{linkableTypes:["Material"],type:"Link",usageAs:"Material"},{datatype:"Float",defaultValue:1,displayName:"Radius",minValue:0,name:"Radius",type:"Attribute"},{datatype:"Float",defaultValue:.4,displayName:"Tube",minValue:0,name:"Tube",type:"Attribute"},{datatype:"Integer",defaultValue:8,displayName:"Radial segments",minValue:3,name:"RadialSegments",type:"Attribute"},{datatype:"Integer",defaultValue:16,displayName:"Tubular segments",minValue:2,name:"TubularSegments",type:"Attribute"},{datatype:"Float",defaultValue:360,displayName:"Arc",maxValue:360,minValue:0,name:"Arc",type:"Attribute",widget:"Slider"},{datatype:"Vector2d",defaultValue:{x:1,y:1},displayName:"UV Scale",name:"UVScale",type:"Attribute"},{name:"Physics",type:"FieldSet"}],typeName:"Torus"},{fields:[{label:"3D Object Fields",type:"Separator"},{datatype:"Boolean",defaultValue:!0,displayName:"Active",name:"Active",type:"Attribute"},{datatype:"String",defaultValue:"",displayName:"Name",name:"Name",type:"Attribute"},{datatype:"Layers",defaultValue:[0],name:"Layers",type:"Attribute"},{datatype:"Tags",defaultValue:[],name:"Tags",type:"Attribute"},{label:"Sky specific fields",type:"Separator"},{datatype:"Float",defaultValue:1e3,name:"Size",type:"Attribute"},{datatype:"Float",defaultValue:10,displayName:"Turbidity",maxValue:20,minValue:1,name:"Turbidity",type:"Attribute",widget:"Slider"},{datatype:"Float",defaultValue:2,displayName:"Rayleigh",maxValue:4,minValue:0,name:"Rayleigh",type:"Attribute",widget:"Slider"},{datatype:"Float",defaultValue:.005,displayName:"Mie coefficient",maxValue:1,minValue:0,name:"MieCoefficient",type:"Attribute",widget:"Slider"},{datatype:"Float",defaultValue:.8,displayName:"Mie directional G",maxValue:1,minValue:0,name:"MieDirectionalG",type:"Attribute",widget:"Slider"},{datatype:"Float",defaultValue:.49,displayName:"Inclination",maxValue:1,minValue:0,name:"Inclination",type:"Attribute",widget:"Slider"},{datatype:"Float",defaultValue:.25,displayName:"Azimuth",maxValue:1,minValue:0,name:"Azimuth",type:"Attribute",widget:"Slider"}],typeName:"Sky"},{fields:[{label:"3D Object Fields",type:"Separator"},{datatype:"Boolean",defaultValue:!0,displayName:"Active",name:"Active",type:"Attribute"},{datatype:"String",defaultValue:"",displayName:"Name",name:"Name",type:"Attribute"},{datatype:"Transform",defaultValue:{position:{x:0,y:0,z:0},rotation:{w:1,x:0,y:0,z:0},scale:{x:1,y:1,z:1}},name:"Transform",type:"Attribute"},{datatype:"Tags",defaultValue:[],name:"Tags",type:"Attribute"},{label:"Audio listener specific fields",type:"Separator"},{datatype:"Float",defaultValue:1,name:"Gain",type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"Time delta",name:"TimeDelta",type:"Attribute"}],maxInstances:1,typeName:"AudioListener"},{fields:[{label:"3D Object Fields",type:"Separator"},{datatype:"Boolean",defaultValue:!0,displayName:"Active",name:"Active",type:"Attribute"},{datatype:"String",defaultValue:"",displayName:"Name",name:"Name",type:"Attribute"},{datatype:"Transform",defaultValue:{position:{x:0,y:0,z:0},rotation:{w:1,x:0,y:0,z:0},scale:{x:1,y:1,z:1}},name:"Transform",type:"Attribute"},{datatype:"Tags",defaultValue:[],name:"Tags",type:"Attribute"},{label:"Positional audio specific fields",type:"Separator"},{name:"AudioLink",type:"FieldSet"},{datatype:"Boolean",defaultValue:!1,displayName:"Autoplay",name:"Autoplay",type:"Attribute"},{datatype:"Boolean",defaultValue:!1,displayName:"Loop",name:"Loop",type:"Attribute"},{datatype:"Boolean",defaultValue:!1,displayName:"Loop section",name:"LoopSection",type:"Attribute",if:{Loop:!0}},{datatype:"Float",defaultValue:0,displayName:"Loop start",minValue:0,name:"LoopStart",type:"Attribute",widget:"Slider",if:{Loop:!0,LoopSection:!0}},{datatype:"Float",displayName:"Loop end",defaultValue:1,minValue:0,name:"LoopEnd",type:"Attribute",widget:"Slider",if:{Loop:!0,LoopSection:!0}},{datatype:"Float",defaultValue:1,displayName:"Volume",minValue:0,name:"Volume",type:"Attribute"},{datatype:"Float",defaultValue:0,displayName:"Panning",maxValue:1,minValue:-1,name:"Panning",type:"Attribute",widget:"Slider"},{datatype:"Float",defaultValue:0,displayName:"Duration",minValue:0,name:"Duration",type:"Attribute"},{datatype:"Float",defaultValue:0,displayName:"Detune",name:"Detune",type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"Playback rate",minValue:0,name:"PlaybackRate",type:"Attribute"},{datatype:"Float",defaultValue:0,displayName:"Offset",maxValue:1,minValue:0,name:"Offset",type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"Ref distance",minValue:0,name:"RefDistance",type:"Attribute"},{datatype:"Float",defaultValue:1e4,displayName:"Max distance",minValue:0,name:"MaxDistance",type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"Rolloff factor",minValue:0,name:"RolloffFactor",type:"Attribute"},{datatype:"Enum",defaultValue:"Inverse",displayName:"Distance model",name:"DistanceModel",options:["Linear","Inverse","Exponential"],type:"Attribute"},{datatype:"Enum",defaultValue:"Omnidirectional",displayName:"Direction",name:"Direction",options:["Omnidirectional","Directional"],type:"Attribute"},{datatype:"Float",defaultValue:90,displayName:"Cone inner angle",if:{Direction:"Directional"},maxValue:360,minValue:0,name:"ConeInnerAngle",type:"Attribute",widget:"Slider"},{datatype:"Float",defaultValue:180,displayName:"Cone outer angle",if:{Direction:"Directional"},maxValue:360,minValue:0,name:"ConeOuterAngle",type:"Attribute",widget:"Slider"},{datatype:"Float",defaultValue:.2,displayName:"Cone outer gain",if:{Direction:"Directional"},maxValue:1,minValue:0,name:"ConeOuterGain",type:"Attribute",widget:"Slider"}],typeName:"PositionalAudio"},{fields:[{label:"3D Object Fields",type:"Separator"},{datatype:"Boolean",defaultValue:!0,displayName:"Active",name:"Active",type:"Attribute"},{datatype:"String",defaultValue:"",displayName:"Name",name:"Name",type:"Attribute"},{datatype:"Tags",defaultValue:[],name:"Tags",type:"Attribute"},{label:"Audio specific fields",type:"Separator"},{name:"AudioLink",type:"FieldSet"},{datatype:"Boolean",defaultValue:!1,displayName:"Autoplay",name:"Autoplay",type:"Attribute"},{datatype:"Boolean",defaultValue:!1,displayName:"Loop",name:"Loop",type:"Attribute"},{datatype:"Boolean",defaultValue:!1,displayName:"Loop section",name:"LoopSection",type:"Attribute",if:{Loop:!0}},{datatype:"Float",defaultValue:0,displayName:"Loop start",minValue:0,name:"LoopStart",type:"Attribute",widget:"Slider",if:{Loop:!0,LoopSection:!0}},{datatype:"Float",displayName:"Loop end",defaultValue:1,minValue:0,name:"LoopEnd",type:"Attribute",widget:"Slider",if:{Loop:!0,LoopSection:!0}},{datatype:"Float",defaultValue:1,displayName:"Volume",minValue:0,name:"Volume",type:"Attribute"},{datatype:"Float",defaultValue:0,displayName:"Panning",maxValue:1,minValue:-1,name:"Panning",type:"Attribute",widget:"Slider"},{datatype:"Float",defaultValue:0,displayName:"Duration",minValue:0,name:"Duration",type:"Attribute"},{datatype:"Float",defaultValue:0,displayName:"Detune",name:"Detune",type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"Playback rate",minValue:0,name:"PlaybackRate",type:"Attribute"},{datatype:"Float",defaultValue:0,displayName:"Offset",maxValue:1,minValue:0,name:"Offset",type:"Attribute"}],typeName:"Audio"},{fields:[{name:"3dObjectNoShadows",type:"FieldSet"},{label:"Vehicle specific fields",type:"Separator"},{datatype:"Node",defaultValue:null,displayName:"Chassis node",name:"ChassisNode",type:"Attribute"},{elementName:"Wheel",fields:[{datatype:"Node",defaultValue:null,displayName:"Wheel node",name:"WheelNode",type:"Attribute"},{datatype:"Boolean",defaultValue:!1,displayName:"Is Front",name:"IsFront",type:"Attribute"},{label:"Wheel config",type:"Separator",collapsed:!0},{datatype:"Float",defaultValue:.6,displayName:"Suspension rest length",name:"SuspensionRestLength",type:"Attribute"},{datatype:"Float",defaultValue:20,displayName:"Suspension stiffness",name:"SuspensionStiffness",type:"Attribute"},{datatype:"Float",defaultValue:2.3,displayName:"Suspension damping",name:"SuspensionDamping",type:"Attribute"},{datatype:"Float",defaultValue:4.4,displayName:"Suspension compression",name:"SuspensionCompression",type:"Attribute"},{datatype:"Float",defaultValue:1e3,displayName:"Friction",name:"Friction",type:"Attribute"},{datatype:"Float",defaultValue:.2,displayName:"Roll influence",name:"RollInfluence",type:"Attribute"},{datatype:"Float",defaultValue:.1,displayName:"Radius",name:"Radius",type:"Attribute"},{datatype:"Float",defaultValue:0,displayName:"Acceleration",name:"Acceleration",type:"Attribute"},{datatype:"Float",defaultValue:0,displayName:"Brakes",name:"Brakes",type:"Attribute"},{datatype:"Float",defaultValue:0,displayName:"Steering",name:"Steering",type:"Attribute"}],name:"Wheels",type:"List"}],typeName:"Vehicle"},{fields:[{name:"3dObjectNoShadows",type:"FieldSet"},{label:"Constraint specific fields",type:"Separator"},{datatype:"Enum",defaultValue:"",displayName:"Type",name:"Type",options:["Point to Point","Hinge","Slider","Cone twist"],type:"Attribute"},{datatype:"Node",defaultValue:null,displayName:"First node",name:"FirstNode",type:"Attribute"},{datatype:"Node",defaultValue:null,displayName:"Second node",name:"SecondNode",type:"Attribute"}],typeName:"Constraint"},{fields:[{name:"3dObjectDefault",type:"FieldSet"},{label:"NavMesh specific fields",type:"Separator"},{datatype:"Enum",defaultValue:"Solo",displayName:"Type",name:"Type",options:["Solo","Tiled","Tile cache"],info:"For simple static scenes, use solo. For large maps use tiled, for large and/or dynamic maps, use tile cache",type:"Attribute"},{datatype:"Enum",defaultValue:"From children",displayName:"Mode",name:"Mode",options:["From children","From tags","From layers"],type:"Attribute"},{datatype:"Layers",defaultValue:[0],displayName:"Navmesh layers",info:"Selects which layers are added to the navmesh",name:"NavmeshLayers",type:"Attribute",if:{Mode:"From layers"}},{datatype:"Tags",defaultValue:[],info:"Selects meshes to add to the navmesh based on tag.",displayName:"Navmesh tags",name:"NavmeshTags",type:"Attribute",if:{Mode:"From tags"}},{datatype:"Boolean",defaultValue:!1,displayName:"Auto generate",name:"AutoGenerate",type:"Attribute"},{datatype:"Boolean",defaultValue:!1,displayName:"Always render helper",name:"AlwaysRenderHelper",type:"Attribute"},{datatype:"Button",defaultValue:!1,displayName:"Regenerate now",name:"RegenerateNow",type:"Attribute"},{datatype:"Float",defaultValue:0,minValue:0,displayName:"Border size",name:"BorderSize",type:"Attribute"},{datatype:"Float",defaultValue:.2,minValue:.01,displayName:"Voxel cell height",name:"CellHeight",type:"Attribute",info:"Needs to resolve step/climb height cleanly."},{datatype:"Float",defaultValue:.2,minValue:.01,displayName:"Voxel cell size",name:"CellSize",type:"Attribute",info:"Smaller = more detail. Around 0.2m for human‑scale"},{datatype:"Integer",defaultValue:256,minValue:1,displayName:"Chunky tri mesh tris per chunk",name:"ChunkyTriMeshTrisPerChunk",type:"Attribute",if:{Type:"Tiled"}},{datatype:"Float",defaultValue:6,minValue:.01,displayName:"Detail sample dist",name:"DetailSampleDist",type:"Attribute"},{datatype:"Float",defaultValue:1,minValue:0,displayName:"Detail sample max error",name:"DetailSampleMaxError",type:"Attribute"},{datatype:"Integer",defaultValue:4,minValue:1,displayName:"Expected layers per tile",name:"ExpectedLayersPerTile",type:"Attribute",if:{Type:"Tile Cache"}},{datatype:"Integer",defaultValue:128,minValue:1,displayName:"Max obstacles",name:"MaxObstacles",type:"Attribute",if:{Type:"Tile Cache"}},{datatype:"Float",defaultValue:12,minValue:.01,displayName:"Max edge length",name:"MaxEdgeLen",type:"Attribute"},{datatype:"Float",defaultValue:1.3,minValue:0,displayName:"Max simplification error",name:"MaxSimplificationError",type:"Attribute",info:"Allowed contour deviation from source before another vertex is kept"},{datatype:"Integer",defaultValue:6,minValue:3,displayName:"Max vertices per poly",name:"MaxVertsPerPoly",type:"Attribute"},{datatype:"Float",defaultValue:20,minValue:.01,displayName:"Merge region area",name:"MergeRegionArea",type:"Attribute"},{datatype:"Float",defaultValue:8,minValue:.01,displayName:"Min region area",name:"MinRegionArea",type:"Attribute"},{datatype:"Float",defaultValue:2,minValue:0,displayName:"Walkable climb",name:"WalkableClimb",type:"Attribute",info:"Maximum step height"},{datatype:"Float",defaultValue:2,minValue:0,displayName:"Walkable height",name:"WalkableHeight",type:"Attribute",info:"Required head‑clearance. Must be at least the height of the characters."},{datatype:"Float",defaultValue:.5,minValue:.01,displayName:"Walkable radius",name:"WalkableRadius",type:"Attribute",info:"Clearance from walls/obstacles"},{datatype:"Float",defaultValue:60,minValue:0,maxValue:360,displayName:"Walkable slope angle",name:"WalkableSlopeAngle",type:"Attribute",info:"Steepest walkable slope"},{datatype:"Boolean",defaultValue:!0,displayName:"Build BV Tree",name:"BuildBvTree",info:"",type:"Attribute",if:{$or:[{Type:"Solo"},{Type:"Tiled"}]}},{datatype:"Integer",defaultValue:32,minValue:1,displayName:"Tile size",name:"TileSize",type:"Attribute",info:"The size of the tiles to be used. Typically you will want to stay in the range 32 - 64. Sizes outside this range might result in unexpected behaviour",if:{$or:[{Type:"Tiled"},{Type:"Tile cache"}]}},{label:"Crowd fields",type:"Separator"},{datatype:"Boolean",defaultValue:!0,displayName:"Enable crowd",name:"EnableCrowd",type:"Attribute"},{datatype:"Integer",defaultValue:100,minValue:1,displayName:"Max agent count",name:"MaxAgentCount",type:"Attribute"},{datatype:"Float",defaultValue:1,minValue:.01,displayName:"Max agent radius",name:"MaxAgentRadius",type:"Attribute"}],typeName:"NavMesh"}],name:"Scenegraph",type:"Tree"}],name:"Prefab",updateRequiresThumbRefresh:!0},{_id:{$oid:"5e6a1ad189707feef9173397"},contentTypes:["text/x-lua"],fieldSets:[],fields:[],name:"Script",updateRequiresThumbRefresh:!1,creatableEmpty:!0},{_id:{$oid:"5e6a1ad189707f2ef9133396"},contentTypes:[],fieldSets:[],fields:[{childTypes:[{displayName:"Camera",fields:[{datatype:"String",defaultValue:"",displayName:"Name",name:"Name",type:"Attribute"},{datatype:"String",defaultValue:"",displayName:"Tag",info:"Tag of the camera to render",name:"Tag",type:"Attribute"},{datatype:"Layers",defaultValue:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31],displayName:"Layers",info:"Selects which layers are rendered by the camera. Overrides scene Camera node 'Cull mode' field.",name:"Layers",type:"Attribute"},{datatype:"Float",defaultValue:100,displayName:"Width",info:"Width in percent to render",name:"Width",type:"Attribute",widget:"Slider"},{datatype:"Float",defaultValue:100,displayName:"Height",info:"Height in percent to render",name:"Height",type:"Attribute",widget:"Slider"}],inputs:[],outputs:[{displayName:"Color output",name:"ColorOutput",type:"RGBImage"},{displayName:"Depth output",name:"DepthOutput",type:"GrayImage"},{displayName:"Depth Comparison output",name:"DepthComparisonOutput",type:"GrayImage"},{displayName:"Normal output",name:"NormalOutput",type:"RGBImage"},{displayName:"Camera Output",name:"CameraOutput",type:"Attribute"}],typeName:"camera"},{displayName:"Merge",fields:[{datatype:"String",defaultValue:"",displayName:"Name",name:"Name",type:"Attribute"},{datatype:"Boolean",defaultValue:!0,displayName:"Enabled",name:"Enabled",type:"Attribute"},{datatype:"Enum",defaultValue:"Alpha",displayName:"Blending Mode",name:"BlendingMode",options:["Add","Alpha","Average","Color","Color Burn","Color Dodge","Darken","Difference","Divide","Exclusion","Hard Light","Hard Mix","Hue","Invert","Invert RGB","Lighten","Linear Burn","Linear Dodge","Linear Light","Luminosity","Multiply","Negation","Normal","Overlay","Pin Light","Reflect","Saturation","Screen","Soft Light","Set","Src","Subtract","Vivid Light"],type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"Blend amount",info:"Adjusts how strongly the blending mode affects the final result.",maxValue:1,minValue:0,name:"Opacity",type:"Attribute",widget:"Slider"},{datatype:"Float",defaultValue:0,displayName:"Offset X",info:"Horizontal offset for the secondary input (relative to composition resolution). Positive values move right, negative left. Percentage-based for resolution independence.",maxValue:100,minValue:-100,name:"OffsetX",type:"Attribute"},{datatype:"Float",defaultValue:0,displayName:"Offset Y",info:"Vertical offset for the secondary input (relative to composition resolution). Positive values move up, negative down. Percentage-based for resolution independence.",maxValue:100,minValue:-100,name:"OffsetY",type:"Attribute"},{datatype:"Float",defaultValue:100,displayName:"Width",info:"Horizontal scale of the secondary input as percentage of composition width. 100% maintains original aspect ratio when Height is also 100%. Values <100% shrink, >100% stretch.",maxValue:100,minValue:0,name:"Width",type:"Attribute"},{datatype:"Float",defaultValue:100,displayName:"Height",info:"Vertical scale of the secondary input as percentage of composition height. 100% maintains original aspect ratio when Width is also 100%. Values <100% shrink, >100% stretch.",maxValue:100,minValue:0,name:"Height",type:"Attribute"}],inputs:[{displayName:"Color input 1",name:"ColorInput1",types:["RGBImage"]},{displayName:"Color input 2",name:"ColorInput2",types:["RGBImage"]}],outputs:[{displayName:"Color output",name:"ColorOutput",type:"RGBImage"}],typeName:"merge"},{displayName:"SSAO",fields:[{datatype:"String",defaultValue:"",displayName:"Name",name:"Name",type:"Attribute"},{datatype:"Boolean",defaultValue:!0,displayName:"Enabled",name:"Enabled",type:"Attribute"},{datatype:"Float",defaultValue:.2,displayName:"Radius",minValue:.01,name:"Radius",type:"Attribute"},{datatype:"Integer",defaultValue:8,displayName:"Samples",maxValue:32,minValue:8,name:"Samples",type:"Attribute"},{datatype:"Float",defaultValue:.001,displayName:"Bias",minValue:.001,name:"Bias",type:"Attribute"},{datatype:"Float",defaultValue:2,displayName:"Intensity",minValue:0,name:"Intensity",type:"Attribute"},{datatype:"Float",defaultValue:.07,displayName:"Max distance",minValue:.01,name:"MaxDistance",type:"Attribute"}],inputs:[{displayName:"Depth input",name:"DepthInput",types:["GrayImage"]},{displayName:"Normal input",name:"NormalInput",types:["RGBImage"]},{displayName:"Camera Input",name:"CameraInput",types:["Attribute"]}],outputs:[{displayName:"Color output",name:"ColorOutput",type:"RGBImage"}],typeName:"ssao"},{displayName:"FXAA",fields:[{datatype:"String",defaultValue:"",displayName:"Name",name:"Name",type:"Attribute"},{datatype:"Boolean",defaultValue:!0,displayName:"Enabled",name:"Enabled",type:"Attribute"}],inputs:[{displayName:"Color input",name:"ColorInput",types:["RGBImage"]}],outputs:[{displayName:"Color output",name:"ColorOutput",type:"RGBImage"}],typeName:"fxaa"},{displayName:"Bloom",fields:[{datatype:"String",defaultValue:"",displayName:"Name",name:"Name",type:"Attribute"},{datatype:"Boolean",defaultValue:!0,displayName:"Enabled",name:"Enabled",type:"Attribute"},{datatype:"Float",defaultValue:1.5,displayName:"Strength",maxValue:10,minValue:0,name:"Strength",type:"Attribute",widget:"Slider"},{datatype:"Float",defaultValue:.4,displayName:"Radius",maxValue:1,minValue:0,name:"Radius",type:"Attribute",widget:"Slider"},{datatype:"Float",defaultValue:.8,displayName:"Threshold",info:"Minimum luminance required for a pixel to contribute to bloom. Pixels darker than this value are suppressed, while brighter pixels contribute to the blur.",maxValue:1,minValue:0,name:"Threshold",type:"Attribute",widget:"Slider"},{datatype:"Float",defaultValue:.4,displayName:"Soft Knee",info:"Creates a smooth transition around the threshold to avoid harsh cutoffs. Higher values produce a more gradual blend between non-blooming and blooming pixels.",maxValue:1,minValue:0,name:"SoftKnee",type:"Attribute",widget:"Slider"}],inputs:[{displayName:"Color input",name:"ColorInput",types:["RGBImage"]}],outputs:[{displayName:"Color output",name:"ColorOutput",type:"RGBImage"}],typeName:"bloom"},{displayName:"Outline",fields:[{datatype:"String",defaultValue:"",displayName:"Name",name:"Name",type:"Attribute"},{datatype:"Boolean",defaultValue:!0,displayName:"Enabled",name:"Enabled",type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"Edge Strength",maxValue:5,minValue:0,name:"EdgeStrength",type:"Attribute",widget:"Slider"},{datatype:"Float",defaultValue:.5,displayName:"Edge Width",maxValue:2,minValue:.1,name:"EdgeWidth",type:"Attribute",widget:"Slider"},{datatype:"Color",defaultValue:{r:255,g:0,b:0,a:255},displayName:"Edge Color",name:"EdgeColor",type:"Attribute"},{datatype:"Enum",defaultValue:"Add",displayName:"Blending Mode",name:"BlendingMode",options:["Add","Alpha","Average","Color","Color Burn","Color Dodge","Darken","Difference","Divide","Exclusion","Hard Light","Hard Mix","Hue","Invert","Invert RGB","Lighten","Linear Burn","Linear Dodge","Linear Light","Luminosity","Multiply","Negation","Normal","Overlay","Pin Light","Reflect","Saturation","Screen","Soft Light","Set","Src","Subtract","Vivid Light"],type:"Attribute"},{datatype:"Float",defaultValue:.25,displayName:"Opacity",name:"Opacity",maxValue:1,minValue:0,type:"Attribute"}],inputs:[{displayName:"Color input",name:"ColorInput",types:["RGBImage"]},{displayName:"Depth Comparison input",name:"DepthComparisonInput",types:["GrayImage"]}],outputs:[{displayName:"Color output",name:"ColorOutput",type:"RGBImage"}],typeName:"outline"},{displayName:"Film",fields:[{datatype:"String",defaultValue:"",displayName:"Name",name:"Name",type:"Attribute"},{datatype:"Boolean",defaultValue:!0,displayName:"Enabled",name:"Enabled",type:"Attribute"},{datatype:"Float",defaultValue:.05,displayName:"Noise intensity",maxValue:1,minValue:0,name:"NoiseIntensity",type:"Attribute",widget:"Slider"},{datatype:"Float",defaultValue:0,displayName:"Scanlines intensity",maxValue:1,minValue:0,name:"ScanlinesIntensity",type:"Attribute",widget:"Slider"},{datatype:"Integer",defaultValue:0,displayName:"Scanlines count",maxValue:1e3,minValue:0,name:"ScanlinesCount",type:"Attribute",widget:"Slider"},{datatype:"Boolean",defaultValue:!1,displayName:"Grayscale",name:"Grayscale",type:"Attribute"},{datatype:"Boolean",defaultValue:!1,displayName:"Animated",name:"Animated",type:"Attribute"}],inputs:[{displayName:"Color input",name:"ColorInput",types:["RGBImage"]}],outputs:[{displayName:"Color output",name:"ColorOutput",type:"RGBImage"}],typeName:"film"},{displayName:"Fog",fields:[{datatype:"String",defaultValue:"",displayName:"Name",name:"Name",type:"Attribute"},{datatype:"Boolean",defaultValue:!0,displayName:"Enabled",name:"Enabled",type:"Attribute"},{datatype:"Color",defaultValue:{r:255,g:0,b:0,a:255},displayName:"Color",name:"Color",type:"Attribute"},{datatype:"Enum",defaultValue:"Camera Depth",displayName:"Direction",name:"Direction",type:"Attribute",options:["Camera Depth","X","Y","Z"],info:"Defines the ray along which the fog is evaluated. 'Camera Depth' applies fog based on distance from the camera view direction (distances should be non-negative). 'X', 'Y', and 'Z' apply fog along the corresponding world-space axis; distances may be positive or negative depending on where the fog volume should begin and end."},{datatype:"Enum",defaultValue:"Linear",displayName:"Type",name:"Type",type:"Attribute",options:["Linear","Exponential","Exponential Squared"]},{datatype:"Float",defaultValue:1,displayName:"Start Distance",name:"StartDistance",type:"Attribute",info:"Distance along the selected fog ray where the fog begins to accumulate. Must be >= 0 when using Camera Depth."},{datatype:"Float",defaultValue:1e3,displayName:"End Distance",name:"EndDistance",type:"Attribute",info:"Distance along the selected fog ray where the fog reaches maximum density. Must be >= 0 when using Camera Depth."},{datatype:"Float",defaultValue:.0025,displayName:"Density",minValue:1e-5,maxValue:1,name:"Density",type:"Attribute",step:.1,if:{$or:[{FogType:"Exponential"},{FogType:"Exponential Squared"}]}},{datatype:"Boolean",defaultValue:!0,displayName:"Enable Noise",name:"EnableNoise",info:"Adds animated noise to the fog to create more natural variation.",type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"Noise Scale",minValue:.001,name:"NoiseScale",type:"Attribute",step:1,if:{EnableFogNoise:!0}},{datatype:"Float",defaultValue:.1,displayName:"Noise Speed",maxValue:1,minValue:0,name:"NoiseSpeed",type:"Attribute",step:.1,if:{EnableFogNoise:!0}},{datatype:"Float",defaultValue:.5,displayName:"Noise Amount",maxValue:1,minValue:0,name:"NoiseAmount",type:"Attribute",step:.1,if:{EnableFogNoise:!0}},{datatype:"Float",defaultValue:0,maxValue:1,displayName:"Sky Density",info:"Controls the amount of fog applied to the sky.",name:"SkyDensity",type:"Attribute",step:.1}],inputs:[{displayName:"Color input",name:"ColorInput",types:["RGBImage"]},{displayName:"Depth input",name:"DepthInput",types:["DepthBuffer"]},{displayName:"Camera input",name:"CameraInput",types:["Camera"]}],outputs:[{displayName:"Color output",name:"ColorOutput",type:"RGBImage"}],typeName:"fog"},{displayName:"Sepia",fields:[{datatype:"String",defaultValue:"",displayName:"Name",name:"Name",type:"Attribute"},{datatype:"Boolean",defaultValue:!0,displayName:"Enabled",name:"Enabled",type:"Attribute"},{datatype:"Enum",defaultValue:"Normal",displayName:"Blending Mode",name:"BlendingMode",options:["Add","Alpha","Average","Color","Color Burn","Color Dodge","Darken","Difference","Divide","Exclusion","Hard Light","Hard Mix","Hue","Invert","Invert RGB","Lighten","Linear Burn","Linear Dodge","Linear Light","Luminosity","Multiply","Negation","Normal","Overlay","Pin Light","Reflect","Saturation","Screen","Soft Light","Set","Src","Subtract","Vivid Light"],type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"Opacity",name:"Opacity",maxValue:1,minValue:0,type:"Attribute"}],inputs:[{displayName:"Color input",name:"ColorInput",types:["RGBImage"]}],outputs:[{displayName:"Color output",name:"ColorOutput",type:"RGBImage"}],typeName:"sepia"},{displayName:"Vignette",fields:[{datatype:"String",defaultValue:"",displayName:"Name",name:"Name",type:"Attribute"},{datatype:"Boolean",defaultValue:!0,displayName:"Enabled",name:"Enabled",type:"Attribute"},{datatype:"Enum",defaultValue:"Normal",displayName:"Blending Mode",name:"BlendingMode",options:["Add","Alpha","Average","Color","Color Burn","Color Dodge","Darken","Difference","Divide","Exclusion","Hard Light","Hard Mix","Hue","Invert","Invert RGB","Lighten","Linear Burn","Linear Dodge","Linear Light","Luminosity","Multiply","Negation","Normal","Overlay","Pin Light","Reflect","Saturation","Screen","Soft Light","Set","Src","Subtract","Vivid Light"],type:"Attribute"},{datatype:"Float",defaultValue:.9,displayName:"Opacity",name:"Opacity",maxValue:1,minValue:0,type:"Attribute"},{datatype:"Float",defaultValue:.4,displayName:"Amount",maxValue:1,minValue:0,name:"Amount",type:"Attribute"}],inputs:[{displayName:"Color input",name:"ColorInput",types:["RGBImage"]}],outputs:[{displayName:"Color output",name:"ColorOutput",type:"RGBImage"}],typeName:"vignette"},{displayName:"Blur",fields:[{datatype:"String",defaultValue:"",displayName:"Name",name:"Name",type:"Attribute"},{datatype:"Boolean",defaultValue:!0,displayName:"Enabled",name:"Enabled",type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"Amount",maxValue:10,minValue:0,name:"Amount",type:"Attribute"}],inputs:[{displayName:"Color input",name:"ColorInput",types:["RGBImage"]}],outputs:[{displayName:"Color output",name:"ColorOutput",type:"RGBImage"}],typeName:"blur"},{displayName:"Scanline",fields:[{datatype:"String",defaultValue:"",displayName:"Name",name:"Name",type:"Attribute"},{datatype:"Boolean",defaultValue:!0,displayName:"Enabled",name:"Enabled",type:"Attribute"},{datatype:"Float",defaultValue:.5,displayName:"Density",maxValue:1,minValue:0,name:"Density",type:"Attribute",widget:"Slider"},{datatype:"Float",defaultValue:.01,displayName:"Scroll Speed",maxValue:1,minValue:0,name:"ScrollSpeed",type:"Attribute",widget:"Slider"},{datatype:"Enum",defaultValue:"Overlay",displayName:"Blending Mode",name:"BlendingMode",options:["Add","Alpha","Average","Color","Color Burn","Color Dodge","Darken","Difference","Divide","Exclusion","Hard Light","Hard Mix","Hue","Invert","Invert RGB","Lighten","Linear Burn","Linear Dodge","Linear Light","Luminosity","Multiply","Negation","Normal","Overlay","Pin Light","Reflect","Saturation","Screen","Soft Light","Set","Src","Subtract","Vivid Light"],type:"Attribute"},{datatype:"Float",defaultValue:.25,displayName:"Opacity",name:"Opacity",maxValue:1,minValue:0,type:"Attribute"}],inputs:[{displayName:"Color input",name:"ColorInput",types:["RGBImage"]}],outputs:[{displayName:"Color output",name:"ColorOutput",type:"RGBImage"}],typeName:"scanline"},{displayName:"Shockwave",fields:[{datatype:"String",defaultValue:"",displayName:"Name",name:"Name",type:"Attribute"},{datatype:"Boolean",defaultValue:!0,displayName:"Enabled",name:"Enabled",type:"Attribute"},{datatype:"Boolean",defaultValue:!0,displayName:"Continuous",info:"Whether or not new shockwaves will emit as soon as the previous shockwave ended.",name:"Continuous",type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"Delay",minValue:0,name:"Delay",info:"How long to wait between shockwave emissions.",type:"Attribute",if:{Continuous:!1}},{datatype:"Integer",defaultValue:5,displayName:"Amount",minValue:0,name:"Amount",info:"The number of shockwaves.",type:"Attribute",if:{Continuous:!1}},{datatype:"Vector3d",defaultValue:{x:0,y:0,z:0},displayName:"Center",info:"The center in world coordinates of the shockwave effect.",name:"Center",type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"Size",maxValue:100,minValue:.001,name:"Size",type:"Attribute"},{datatype:"Float",defaultValue:2,displayName:"Speed",maxValue:100,minValue:.001,name:"Speed",type:"Attribute"},{datatype:"Float",defaultValue:-.2,displayName:"Radius",maxValue:10,minValue:-10,name:"Radius",type:"Attribute"},{datatype:"Float",defaultValue:.2,displayName:"Maximum Radius",maxValue:10,minValue:0,name:"MaxRadius",type:"Attribute"},{datatype:"Float",defaultValue:10,displayName:"Wave Size",maxValue:100,minValue:1,name:"WaveSize",type:"Attribute"},{datatype:"Float",defaultValue:.05,displayName:"Amplitude",maxValue:10,minValue:0,name:"Amplitude",type:"Attribute"},{datatype:"Enum",defaultValue:"Screen",displayName:"Blending Mode",name:"BlendingMode",options:["Add","Alpha","Average","Color","Color Burn","Color Dodge","Darken","Difference","Divide","Exclusion","Hard Light","Hard Mix","Hue","Invert","Invert RGB","Lighten","Linear Burn","Linear Dodge","Linear Light","Luminosity","Multiply","Negation","Normal","Overlay","Pin Light","Reflect","Saturation","Screen","Soft Light","Set","Src","Subtract","Vivid Light"],type:"Attribute"},{datatype:"Float",defaultValue:.75,displayName:"Opacity",name:"Opacity",maxValue:1,minValue:0,type:"Attribute"},{datatype:"Boolean",defaultValue:!1,displayName:"Enable Debug",name:"Debug",type:"Attribute"}],inputs:[{displayName:"Color input",name:"ColorInput",types:["RGBImage"]},{displayName:"Camera Input",name:"CameraInput",types:["Attribute"]}],outputs:[{displayName:"Color output",name:"ColorOutput",type:"RGBImage"}],typeName:"shockwave"},{displayName:"Pixelation",fields:[{datatype:"String",defaultValue:"",displayName:"Name",name:"Name",type:"Attribute"},{datatype:"Boolean",defaultValue:!0,displayName:"Enabled",name:"Enabled",type:"Attribute"},{datatype:"Float",defaultValue:10,displayName:"Granularity",maxValue:100,minValue:1,name:"Granularity",type:"Attribute",widget:"Slider"}],inputs:[{displayName:"Color input",name:"ColorInput",types:["RGBImage"]}],outputs:[{displayName:"Color output",name:"ColorOutput",type:"RGBImage"}],typeName:"pixelation"},{displayName:"Adjust",fields:[{datatype:"String",defaultValue:"",displayName:"Name",name:"Name",type:"Attribute"},{datatype:"Boolean",defaultValue:!0,displayName:"Enabled",name:"Enabled",type:"Attribute"},{datatype:"Float",defaultValue:0,displayName:"Brightness",maxValue:10,minValue:-10,name:"Brightness",type:"Attribute"},{datatype:"Float",defaultValue:0,displayName:"Contrast",maxValue:10,minValue:-10,name:"Contrast",type:"Attribute"},{datatype:"Float",defaultValue:0,displayName:"Hue",maxValue:6.283,minValue:0,name:"Hue",type:"Attribute"},{datatype:"Float",defaultValue:0,displayName:"Saturation",maxValue:1,minValue:-1,name:"Saturation",type:"Attribute"}],inputs:[{displayName:"Color input",name:"ColorInput",types:["RGBImage"]}],outputs:[{displayName:"Color output",name:"ColorOutput",type:"RGBImage"}],typeName:"adjust"},{displayName:"Chromatic abberation",fields:[{datatype:"String",defaultValue:"",displayName:"Name",name:"Name",type:"Attribute"},{datatype:"Boolean",defaultValue:!0,displayName:"Enabled",name:"Enabled",type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"Amount",maxValue:10,minValue:0,name:"Amount",type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"Red factor",maxValue:1,minValue:0,name:"RedFactor",type:"Attribute"},{datatype:"Float",defaultValue:.5,displayName:"Green factor",maxValue:1,minValue:0,name:"GreenFactor",type:"Attribute"},{datatype:"Float",defaultValue:.25,displayName:"Blue factor",maxValue:1,minValue:0,name:"BlueFactor",type:"Attribute"}],inputs:[{displayName:"Color input",name:"ColorInput",types:["RGBImage"]}],outputs:[{displayName:"Color output",name:"ColorOutput",type:"RGBImage"}],typeName:"chromaticAbberation"},{displayName:"Color Depth",fields:[{datatype:"String",defaultValue:"",displayName:"Name",name:"Name",type:"Attribute"},{datatype:"Boolean",defaultValue:!0,displayName:"Enabled",name:"Enabled",type:"Attribute"},{datatype:"Integer",defaultValue:16,displayName:"Bit Depth",maxValue:32,minValue:1,name:"bitDepth",type:"Attribute"},{datatype:"Enum",defaultValue:"Normal",displayName:"Blending Mode",name:"BlendingMode",options:["Add","Alpha","Average","Color","Color Burn","Color Dodge","Darken","Difference","Divide","Exclusion","Hard Light","Hard Mix","Hue","Invert","Invert RGB","Lighten","Linear Burn","Linear Dodge","Linear Light","Luminosity","Multiply","Negation","Normal","Overlay","Pin Light","Reflect","Saturation","Screen","Soft Light","Set","Src","Subtract","Vivid Light"],type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"Blend amount",info:"Amount of blending. Only valid for additive and subtractive modes",maxValue:1,minValue:0,name:"Opacity",type:"Attribute",widget:"Slider"}],inputs:[{displayName:"Color input",name:"ColorInput",types:["RGBImage"]}],outputs:[{displayName:"Color output",name:"ColorOutput",type:"RGBImage"}],typeName:"colorDepth"},{displayName:"Depth Of Field",fields:[{datatype:"String",defaultValue:"",displayName:"Name",name:"Name",type:"Attribute"},{datatype:"Boolean",defaultValue:!0,displayName:"Enabled",name:"Enabled",type:"Attribute"},{datatype:"String",defaultValue:"",displayName:"Focus Target",name:"FocusTarget",type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"World Focus Distance",minValue:0,name:"WorldFocusDistance",type:"Attribute"},{datatype:"Float",defaultValue:5,displayName:"World Focus Range",minValue:0,name:"WorldFocusRange",type:"Attribute"},{datatype:"Integer",defaultValue:4,displayName:"Kawase Blur Kernel Size",maxValue:10,minValue:0,name:"Kernel",type:"Attribute"},{datatype:"Float",defaultValue:.5,displayName:"Bokeh Scale",maxValue:25,minValue:0,name:"BokehScale",type:"Attribute"},{datatype:"Float",defaultValue:.75,displayName:"Resolution Scale",maxValue:1,minValue:0,name:"ResolutionScale",type:"Attribute"},{datatype:"Boolean",defaultValue:!1,displayName:"Enable Debug",name:"Debug",type:"Attribute"}],inputs:[{displayName:"Color input",name:"ColorInput",types:["RGBImage"]},{displayName:"Depth input",name:"DepthInput",types:["GrayImage"]},{displayName:"Camera Input",name:"CameraInput",types:["Attribute"]}],outputs:[{displayName:"Color output",name:"ColorOutput",type:"RGBImage"}],typeName:"depthoffield"},{displayName:"Glitch",fields:[{datatype:"String",defaultValue:"",displayName:"Name",name:"Name",type:"Attribute"},{datatype:"Boolean",defaultValue:!0,displayName:"Enabled",name:"Enabled",type:"Attribute"},{datatype:"Vector2d",defaultValue:{x:.3,y:1},displayName:"Strength",info:"Two values controlling the maximum and minimum strength of the glitch effect.",name:"Strength",type:"Attribute"},{datatype:"Float",defaultValue:.1,displayName:"Columns",maxValue:1,minValue:0,name:"Columns",type:"Attribute"},{datatype:"Vector2d",defaultValue:{x:0,y:2.5},displayName:"Delay",info:"Two values controlling the duration of the delay of the glitch effect.",name:"Delay",type:"Attribute"},{datatype:"Vector2d",defaultValue:{x:0,y:3},displayName:"Duration",info:"Two values controlling the duration of the glitch effect.",name:"Duration",type:"Attribute"}],inputs:[{displayName:"Color input",name:"ColorInput",types:["RGBImage"]}],outputs:[{displayName:"Color output",name:"ColorOutput",type:"RGBImage"}],typeName:"glitch"},{displayName:"God Rays",fields:[{datatype:"String",defaultValue:"",displayName:"Name",name:"Name",type:"Attribute"},{datatype:"Boolean",defaultValue:!0,displayName:"Enabled",name:"Enabled",type:"Attribute"},{datatype:"String",defaultValue:"",type:"Attribute",displayName:"Light Source",name:"SunTag"},{datatype:"Float",defaultValue:1,displayName:"Size",minValue:.01,maxValue:10,name:"Size",type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"Density",minValue:.01,maxValue:1,name:"Density",type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"Decay",minValue:.01,maxValue:1,name:"Decay",type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"Weight",minValue:.01,maxValue:1,name:"Weight",type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"Exposure",minValue:.01,maxValue:1,name:"Exposure",type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"MaximumIntensity",minValue:.01,maxValue:1,name:"MaximumIntensity",type:"Attribute"},{datatype:"Integer",defaultValue:60,displayName:"Samples",minValue:0,name:"Samples",type:"Attribute"},{datatype:"Boolean",defaultValue:!0,displayName:"Blur Rays",name:"BlurRays",type:"Attribute"},{datatype:"Integer",defaultValue:2,displayName:"Kernel Size",info:"The number of kernel applied on the God Rays. A higher number yields to a better blur effect at higher computational cost",maxValue:10,minValue:0,name:"Kernel",if:{BlurRays:!0},type:"Attribute"},{datatype:"Float",defaultValue:.5,displayName:"Resolution Scale",info:"A higher resolution yields a more realistic result at higher computational cost",maxValue:1,minValue:0,name:"ResolutionScale",type:"Attribute"},{datatype:"Enum",defaultValue:"Screen",displayName:"Blending Mode",name:"BlendingMode",options:["Add","Alpha","Average","Color","Color Burn","Color Dodge","Darken","Difference","Divide","Exclusion","Hard Light","Hard Mix","Hue","Invert","Invert RGB","Lighten","Linear Burn","Linear Dodge","Linear Light","Luminosity","Multiply","Negation","Normal","Overlay","Pin Light","Reflect","Saturation","Screen","Soft Light","Set","Src","Subtract","Vivid Light"],type:"Attribute"},{datatype:"Float",defaultValue:.25,displayName:"Opacity",name:"Opacity",maxValue:1,minValue:0,type:"Attribute"},{datatype:"Boolean",defaultValue:!1,displayName:"Enable Debug",name:"Debug",type:"Attribute"}],inputs:[{displayName:"Color input",name:"ColorInput",types:["RGBImage"]},{displayName:"Depth input",name:"DepthInput",types:["GrayImage"]},{displayName:"Camera Input",name:"CameraInput",types:["Attribute"]}],outputs:[{displayName:"Color output",name:"ColorOutput",type:"RGBImage"}],typeName:"godrays"},{displayName:"Kawase Blur",fields:[{datatype:"String",defaultValue:"",displayName:"Name",name:"Name",type:"Attribute"},{datatype:"Boolean",defaultValue:!0,displayName:"Enabled",name:"Enabled",type:"Attribute"},{datatype:"Integer",defaultValue:2,displayName:"Kernel Size",info:"The number of kernel applied on the effect. A higher number yields to a better blur effect at higher computational cost",maxValue:10,minValue:0,name:"Kernel",type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"Scale",info:"The strenth of the blur effect.",maxValue:1,minValue:0,name:"Scale",type:"Attribute"}],inputs:[{displayName:"Color input",name:"ColorInput",types:["RGBImage"]}],outputs:[{displayName:"Color output",name:"ColorOutput",type:"RGBImage"}],typeName:"kawaseblur"},{displayName:"Radial blur",fields:[{datatype:"String",defaultValue:"",displayName:"Name",name:"Name",type:"Attribute"},{datatype:"Boolean",defaultValue:!0,displayName:"Enabled",name:"Enabled",type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"Amount",maxValue:10,minValue:0,name:"Amount",type:"Attribute"},{datatype:"Vector2d",defaultValue:{x:.5,y:.5},displayName:"Center",name:"Center",type:"Attribute"}],inputs:[{displayName:"Color input",name:"ColorInput",types:["RGBImage"]}],outputs:[{displayName:"Color output",name:"ColorOutput",type:"RGBImage"}],typeName:"radialBlur"},{displayName:"Tone Mapping",fields:[{datatype:"String",defaultValue:"",displayName:"Name",name:"Name",type:"Attribute"},{datatype:"Boolean",defaultValue:!0,displayName:"Enabled",name:"Enabled",type:"Attribute"},{datatype:"Enum",defaultValue:"LINEAR",displayName:"Mode",name:"TonemappingMode",options:["LINEAR","REINHARD","REINHARD2","REINHARD2_ADAPTIVE","UNCHARTED2","ACES_FILMIC","AGX","NEUTRAL"],type:"Attribute"},{datatype:"Integer",defaultValue:256,displayName:"Luminance Map Width. Must be a power of 2.",minValue:1,name:"LuminanceMapWidth",type:"Attribute",if:{TonemappingMode:"REINHARD2_ADAPTIVE"}},{datatype:"Integer",defaultValue:256,displayName:"Luminance Map Height. Must be a power of 2.",if:{TonemappingMode:"REINHARD2_ADAPTIVE"},minValue:1,name:"LuminanceMapHeight",type:"Attribute"},{datatype:"Float",defaultValue:4,displayName:"Maximum Luminance",minValue:0,maxValue:20,name:"MaxLuminance",type:"Attribute"},{datatype:"Float",defaultValue:.01,displayName:"Minimum Luminance",minValue:0,maxValue:3,name:"MinLuminance",type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"Average Luminance",minValue:0,maxValue:1,name:"MeanLuminance",type:"Attribute"},{datatype:"Float",defaultValue:.6,displayName:"Middle Grey",maxValue:1,minValue:0,name:"MiddleGrey",type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"Adaptation Rate",minValue:0,name:"AdaptationRate",type:"Attribute"}],inputs:[{displayName:"Color input",name:"ColorInput",types:["RGBImage"]}],outputs:[{displayName:"Color output",name:"ColorOutput",type:"RGBImage"}],typeName:"tonemapping"},{displayName:"Output",fields:[{datatype:"String",defaultValue:"Output",displayName:"Name",name:"Name",type:"Attribute"},{datatype:"Integer",defaultValue:256,displayName:"Target width",minValue:1,name:"DesiredWidth",type:"Attribute",info:"This is the width of the render target in case the composition is used in a material albedo slot."},{datatype:"Integer",defaultValue:256,displayName:"Target height",minValue:1,name:"DesiredHeight",type:"Attribute",info:"This is the height of the render target in case the composition is used in a material albedo slot."}],inputs:[{displayName:"Color input",name:"ColorInput",types:["RGBImage"]}],outputs:[],typeName:"output"}],name:"NodeGraph",type:"NodeGraph"}],name:"Composition",updateRequiresThumbRefresh:!1,creatableEmpty:!0},{_id:{$oid:"5e6a1ad189707f2ef9147396"},contentTypes:[],fieldSets:[],fields:[],name:"Behavior",updateRequiresThumbRefresh:!1,creatableEmpty:!1},{_id:{$oid:"5e6a1ad189707feef9173398"},contentTypes:["text/x-glsl"],fieldSets:[],fields:[{datatype:"Enum",defaultValue:1,displayName:"GLSL Version",name:"GLSLVersion",options:[1,3],type:"Attribute"},{datatype:"Enum",defaultValue:"Full",displayName:"Resolution",name:"Resolution",options:["Full","Half","Quarter"],type:"Attribute"},{displayName:"Texture Channel 1",linkableTypes:["Image"],type:"Link",usageAs:"TexChannel1"},{displayName:"Texture Channel 2",linkableTypes:["Image"],type:"Link",usageAs:"TexChannel2"},{displayName:"Texture Channel 3",linkableTypes:["Image"],type:"Link",usageAs:"TexChannel3"},{displayName:"Texture Channel 4",linkableTypes:["Image"],type:"Link",usageAs:"TexChannel4"}],name:"Background Shader",updateRequiresThumbRefresh:!1,creatableEmpty:!0},{_id:{$oid:"5e6a1ad189707feef9173399"},contentTypes:["video/mp4","video/webm"],fieldSets:[],fields:[{datatype:"Enum",defaultValue:"Linear",displayName:"Encoding",name:"Encoding",options:["Linear","sRGB"],type:"Attribute"}],name:"Video",creatableEmpty:!1},{_id:{$oid:"5e8c9d5c02a37596bb1fd5b6"},contentTypes:[""],fieldSets:[],fields:[{elementName:"Item",fields:[{datatype:"String",defaultValue:"",displayName:"Description",name:"Description",type:"Attribute"},{type:"Link",usageAs:"Item",mandatory:!0}],name:"Items",type:"List"}],name:"Collection",creatableEmpty:!0},{_id:{$oid:"5e8c9d5c02a33596bb53d5b6"},contentTypes:[""],fieldSets:[],fields:[{displayName:"Audio items",elementName:"AudioItem",fields:[{datatype:"String",defaultValue:"",displayName:"Name",name:"Name",type:"Attribute"},{linkableTypes:["Audio"],type:"Link",usageAs:"Audio",mandatory:!0}],name:"AudioItems",type:"List"}],name:"Audio Collection",creatableEmpty:!0},{_id:{$oid:"5e8c9d5c01a32576bb53d5b6"},contentTypes:[""],fieldSets:[],fields:[{displayName:"Mesh items",elementName:"MeshItem",fields:[{datatype:"String",defaultValue:"",displayName:"Name",name:"Name",type:"Attribute"},{linkableTypes:["Mesh"],type:"Link",usageAs:"Mesh",mandatory:!0}],name:"MeshItems",type:"List"}],name:"Mesh Collection",creatableEmpty:!0},{_id:{$oid:"5e8c9d5c0233596cb31d5ba2"},contentTypes:[""],fieldSets:[],fields:[{displayName:"Material items",elementName:"MaterialItem",fields:[{datatype:"String",defaultValue:"",displayName:"Name",name:"Name",type:"Attribute"},{linkableTypes:["Material"],type:"Link",usageAs:"Material",mandatory:!0}],name:"MaterialItems",type:"List"}],name:"Material Collection",creatableEmpty:!0},{_id:{$oid:"5edf2f6edc25bdf4e5723e52"},contentTypes:["text/x-yaml"],fieldSets:[],fields:[{displayName:"Material collections",elementName:"Material Collection",fields:[{linkableTypes:["Material Collection"],type:"Link",usageAs:"MaterialCollection",displayName:"Material Collection",mandatory:!0}],name:"MaterialCollections",type:"List"},{displayName:"Mesh collections",elementName:"Mesh Collection",fields:[{linkableTypes:["Mesh Collection"],type:"Link",usageAs:"MeshCollection",displayName:"Mesh Collection",mandatory:!0}],name:"MeshCollections",type:"List"}],name:"GridMap",creatableEmpty:!0},{_id:{$oid:"60827c20d3f7a631e71522cc"},contentTypes:[],fieldSets:[],fields:[],name:"Dataset",creatableEmpty:!1},{_id:{$oid:"62133ff41302cfcd0d9a2346"},contentTypes:["text/x-glsl"],fieldSets:[],fields:[],name:"Pixel Shader",updateRequiresThumbRefresh:!1,creatableEmpty:!0},{_id:{$oid:"62133ffb1302cf53ef9a234e"},contentTypes:["text/x-glsl"],fieldSets:[],fields:[],name:"Vertex Shader",updateRequiresThumbRefresh:!1,creatableEmpty:!0},{_id:{$oid:"62a83a1ef46738fe096fd7e3"},contentTypes:["application/zip"],fieldSets:[],fields:[],name:"Archive",updateRequiresThumbRefresh:!1,creatableEmpty:!1},{_id:{$oid:"640076f0e49250ab06ea4aec"},contentTypes:["font/ttf","font/otf"],fieldSets:[],fields:[],name:"Font",updateRequiresThumbRefresh:!0,creatableEmpty:!1},{_id:{$oid:"6463df676055450cac673d90"},contentTypes:[],fieldSets:[],fields:[{label:"General Settings",type:"Separator"},{datatype:"Integer",defaultValue:1e3,displayName:"Maximum Number of Particles",info:"The maximum number of particles that can exist at the same time in the simulation.",minValue:0,name:"MaxParticles",type:"Attribute"},{datatype:"Float",defaultValue:-1,displayName:"Duration",info:"Duration (in seconds) the particle system runs. Use -1 for infinite duration.",minValue:-1,name:"Duration",type:"Attribute"},{datatype:"Enum",defaultValue:"Local",displayName:"Coordinate System",info:"Defines whether particle movement is relative to the emitter's local space or the global world space.",name:"SystemCoordinates",options:["Local","World"],type:"Attribute"},{label:"Emission Settings",type:"Separator",collapsed:!0},{datatype:"Boolean",defaultValue:!1,displayName:"Emit All At Once",info:"Emit all particles immediately when the simulation starts.",name:"EmitAllAtOnce",type:"Attribute"},{datatype:"Float",defaultValue:128,minValue:0,displayName:"Spawn amount",if:{EmitAllAtOnce:!1},info:"The number of particles emitted each time the emitter spawns.",name:"SpawnAmount",type:"Attribute"},{datatype:"Float",defaultValue:1,minValue:0,displayName:"Spawn Interval",info:"The time, in seconds, between each consecutive spawn of particles.",if:{EmitAllAtOnce:!1},name:"SpawnRate",type:"Attribute"},{datatype:"Float",defaultValue:-1,minValue:-1,displayName:"Number of Emissions",info:"Total number of spawn events before emission stops; after this number of emissions, no more particles will be emitted.",if:{EmitAllAtOnce:!1},name:"MaximumEmissions",type:"Attribute"},{datatype:"Boolean",defaultValue:!1,displayName:"Continuous emission",info:"If enabled, particles in each emission spawn gradually over time instead of instantly.",if:{EmitAllAtOnce:!1},name:"ContinuousEmissionFlag",type:"Attribute"},{datatype:"Boolean",defaultValue:!1,displayName:"Auto Respawn",info:"Automatically respawn particles when they die.",name:"Respawn",type:"Attribute",if:{EmitAllAtOnce:!0}},{label:"Size Settings",type:"Separator",collapsed:!0},{datatype:"Enum",defaultValue:"Constant",options:["Constant","Variable","Velocity"],displayName:"Scaling Mode",info:"Determines how particle size changes over their lifetime: constant size, variable scaling, or based on velocity.",name:"ScaleMode",type:"Attribute"},{datatype:"Float",defaultValue:10,displayName:"Base Size",info:"The size of the particles at emission",minValue:0,name:"ParticleInitialSize",type:"Attribute"},{datatype:"Float",defaultValue:15,displayName:"Final Size",info:"The size particles reach at the end of their lifetime. If particles die early, they may not reach their final size.",minValue:0,name:"ParticleFinalSize",type:"Attribute",if:{ScaleMode:"Variable"}},{datatype:"Float",displayName:"Scale Randomness",name:"ScaleRandomness",defaultValue:.1,minValue:0,maxValue:1,info:"Random variation applied to scale curve values."},{datatype:"Enum",defaultValue:"Linear",options:["Linear","Exponential","Inverse Exponential","Ease-in, Ease-out"],displayName:"Interpolation Function",info:"Interpolation method for scaling particles over their lifetime.",type:"Attribute",name:"ScaleFunction",if:{ScaleMode:"Variable"}},{datatype:"Float",defaultValue:.5,minValue:0,maxValue:5,if:{ScaleMode:"Variable",$or:[{ScaleFunction:"Exponential"},{ScaleFunction:"Inverse Exponential"},{ScaleFunction:"Ease-in, Ease-out"}]},displayName:"Interpolation Rate",name:"ApproachSize",info:"Controls the rate at which particles scale over time based on the interpolation modes.",type:"Attribute"},{label:"Velocity Settings",type:"Separator",collapsed:!0},{datatype:"Enum",defaultValue:"Constant",options:["Constant","Variable"],displayName:"Velocity Mode",info:"Determines if particles maintain a constant velocity or change velocity over their lifetime.",name:"VelocityMode",type:"Attribute"},{datatype:"Vector3d",defaultValue:{x:0,y:0,z:0},displayName:"Initial Velocity",info:"The starting velocity of particles when emitted.",name:"InitialVelocity",type:"Attribute"},{datatype:"Vector3d",defaultValue:{x:0,y:0,z:0},displayName:"Final Velocity",info:"The velocity particles will reach by the end of their lifetime. Used only when Velocity Mode is set to Variable.",name:"FinalVelocity",type:"Attribute",if:{VelocityMode:"Variable"}},{datatype:"Enum",defaultValue:"Linear",options:["Linear","Exponential","Inverse Exponential","Ease-in, Ease-out"],displayName:"Interpolation Function",info:"Defines the interpolation method for velocity changes over the particle’s lifetime.",name:"VelocityFunction",type:"Attribute",if:{VelocityMode:"Variable"}},{datatype:"Float",defaultValue:.5,displayName:"Interpolation Rate",info:"Controls the rate at which particles transition from initial to final velocity for the interpolation modes.",maxValue:5,minValue:0,name:"FinalVelocityApproach",type:"Attribute",if:{VelocityMode:"Variable",$or:[{VelocityFunction:"Exponential"},{VelocityFunction:"Inverse Exponential"},{VelocityFunction:"Ease-in, Ease-out"}]}},{datatype:"Float",defaultValue:0,displayName:"Spread",info:"Randomly offsets the emission angle (in degrees) from the base direction. A value of 360° emits particles uniformly in all directions. Requires Initial Velocity not be a 0-vector to have any effect.",maxValue:360,minValue:0,name:"Spread",type:"Attribute"},{datatype:"Float",defaultValue:0,displayName:"Angular Velocity",info:"The speed at which particles rotate around their center of mass, in radians per second.",minValue:0,name:"AngularVelocity",type:"Attribute",if:{$or:[{ParticleType:"Texture"},{ParticleType:"Sprite"}]}},{datatype:"Enum",defaultValue:"Clockwise",options:["Clockwise","Anticlockwise"],displayName:"Rotation Direction",info:"Controls the rotation direction of particles.",name:"AngularDirection",type:"Attribute",if:{$or:[{ParticleType:"Texture"},{ParticleType:"Sprite"}]}},{datatype:"Float",defaultValue:0,displayName:"Rotation Randomness",info:"Random variation applied to particle angular velocity. 0 = all particles rotate at the same speed, 1 = each particle can vary ±100% of base angular velocity.",minValue:0,maxValue:1,name:"RotationRandomness",type:"Attribute",if:{$or:[{ParticleType:"Texture"},{ParticleType:"Sprite"}]}},{label:"Force Settings",type:"Separator",collapsed:!0},{datatype:"Float",defaultValue:0,displayName:"Drift",info:"A random velocity added to particles in all directions to simulate drifting motion.",name:"Drift",type:"Attribute"},{datatype:"Float",defaultValue:0,displayName:"Gravity",info:"A constant acceleration applied to particles after emission, simulating gravity. Positive values pull particles downward; negative values pull them upward.",name:"Gravity",type:"Attribute"},{datatype:"Float",defaultValue:0,displayName:"Tangential Velocity",info:"Applies a tangential velocity to particles, causing them to orbit the center point along the defined orbital plane.",name:"OrbitalVelocity",type:"Attribute"},{datatype:"Vector3d",defaultValue:{x:0,y:0,z:0},displayName:"Orbit Center",info:"The point in 3D space around which particles orbit.",name:"OrbitalCenterPoint",type:"Attribute"},{datatype:"Vector3d",defaultValue:{x:0,y:1,z:0},displayName:"Orbital Plane",info:"A vector normal that defines the orientation of the orbital plane. Particles orbit around an axis perpendicular to this vector. Should be normalized (length = 1), but normalization is not enforced.",name:"OrbitalPlane",type:"Attribute"},{datatype:"Float",defaultValue:0,displayName:"Orbital Decay",info:"Causes particles to gradually spiral inward toward the orbital center over time.",name:"OrbitalDecay",type:"Attribute"},{datatype:"Vector3d",defaultValue:{x:0,y:0,z:0},displayName:"Target",info:"A 3D point in space that particles are attracted to.",name:"Target",type:"Attribute"},{datatype:"Float",defaultValue:0,displayName:"Target Force",info:"The strength of the attraction force pulling particles toward the target. Set to 0 to disable.",name:"TargetForce",type:"Attribute"},{datatype:"Boolean",defaultValue:!1,displayName:"Kill on target",info:"If enabled, particles are deleted once they reach the target position.",name:"TargetDeleteFlag",type:"Attribute"},{datatype:"Float",defaultValue:.1,if:{TargetDeleteFlag:!0},displayName:"Target Deletion Threshold",info:"The distance from the target at which particles are deleted.",minValue:0,name:"TargetDeletionThreshold",type:"Attribute"},{label:"Life Settings",type:"Separator",collapsed:!0},{datatype:"Float",defaultValue:10,displayName:"Life",info:"Time in seconds each particle remains alive before disappearing.",minValue:0,name:"Life",type:"Attribute"},{datatype:"Float",defaultValue:0,displayName:"Life Randomness",info:"Adds randomness, in seconds, to particle lifetimes. Each particle's life is calculated as: life + random(0 to 1) x life randomness.",minValue:0,name:"LifeRandomness",type:"Attribute"},{label:"Texture and Color Settings",type:"Separator",collapsed:!0},{datatype:"Enum",defaultValue:"Base",name:"ParticleType",info:"Defines the rendering style of particles: Base (simple points), Texture (image-based), or Sprite (animated images).",options:["Base","Texture","Sprite"],type:"Attribute"},{displayName:"Texture",info:"Image used as the particle’s texture.",if:{$or:[{ParticleType:"Texture"},{ParticleType:"Sprite"}]},linkableTypes:["Image"],type:"Link",usageAs:"ParticleTexture"},{datatype:"Boolean",defaultValue:!0,displayName:"Circular Mask",info:"Applies a circular alpha mask to the texture or sprite, making only the circular area visible while masking out the corners.",name:"useCircularMask",type:"Attribute"},{datatype:"Float",defaultValue:0,displayName:"Texture hue",info:"Amount of hue shift applied to the particle texture, expressed as a normalized value from 0 to 1, where 0 corresponds to 0 radians (0°) and 1 corresponds to 2π radians (360°).",minValue:0,maxValue:1,name:"TextureHue",type:"Attribute"},{datatype:"Boolean",defaultValue:!1,name:"TextureBlending",displayName:"Texture Blending",info:"If enabled, blends the particle texture with the background or other particles for smoother visuals.",if:{$or:[{ParticleType:"Texture"},{ParticleType:"Sprite"}]},type:"Attribute"},{datatype:"Color",defaultValue:{a:255,b:255,g:255,r:255},displayName:"Particle Color",info:"Base color applied to particles at emission.",if:{$or:[{ParticleType:"Base"},{TextureBlending:!0}]},name:"Color",type:"Attribute"},{datatype:"Boolean",defaultValue:!1,displayName:"Use Final Color",info:"Enable color transition so particles interpolate to a specified final color at the end of their lifetime.",if:{$or:[{ParticleType:"Base"},{TextureBlending:!0}]},name:"EnableFinalColor",type:"Attribute"},{datatype:"Color",defaultValue:{a:255,b:255,g:255,r:255},displayName:"Final Color",info:"The color particles interpolate to at the end of their life.",if:{EnableFinalColor:!0,$or:[{ParticleType:"Base"},{TextureBlending:!0}]},name:"FinalColor",type:"Attribute"},{datatype:"Float",defaultValue:0,displayName:"Random Color Factor",info:"Linearly blends each particle's color with a unique random tint. 0 = no randomness, 1 = full random color.",if:{$or:[{ParticleType:"Base"},{TextureBlending:!0}]},minValue:0,maxValue:1,name:"RandomColorFactor",type:"Attribute"},{datatype:"Boolean",defaultValue:!1,displayName:"Enable Sprite Fade",if:{ParticleType:"Sprite"},info:"Allows the sprite to smoothly fade in and fade, creating a softer transition.",name:"EnableSpriteFade",type:"Attribute"},{datatype:"Boolean",defaultValue:!1,displayName:"Roll Sprite Texture With Particle's Life",if:{ParticleType:"Sprite"},info:"Enable the sprite to animate by rolling through its frames based on the particle's lifetime.",name:"RollSpriteWithLife",type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"Sprite Speed",if:{ParticleType:"Sprite",RollSpriteWithLife:!1},info:"Speed, in frames per seconds, at which the sprite animation advances over time.",minValue:0,name:"SpriteSpeed",type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"Sprite Cols",if:{ParticleType:"Sprite"},info:"Number of horizontal frames (columns) in the sprite sheet. Must be specified manually. Incorrect values may cause improper animation.",minValue:1,name:"SpriteColumns",type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"Sprite Rows",if:{ParticleType:"Sprite"},info:"Number of vertical frames (rows) in the sprite sheet. Must be specified manually. Incorrect values may cause improper animation.",minValue:1,name:"SpriteRows",type:"Attribute"},{label:"Blending Settings",type:"Separator",collapsed:!0},{datatype:"Enum",defaultValue:"Normal",displayName:"Blending Mode",name:"BlendingMode",options:["Add","Multiply","Negation","Normal","Subtract"],type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"Blend amount",info:"Adjusts how strongly the blending mode affects the final result.",maxValue:1,minValue:0,name:"Opacity",type:"Attribute",widget:"Slider"},{label:"Fade Settings",type:"Separator",collapsed:!0},{datatype:"Enum",defaultValue:"Constant",options:["Constant","Variable"],displayName:"Fading Mode",info:"Determines how particle opacity changes: constant transparency, fade over lifetime, or based on velocity.",name:"FadeMode",type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"Initial Opacity",info:"The opacity of particles when they are first emitted (0.0 = transparent, 1.0 = opaque)",minValue:0,maxValue:1,name:"ParticleInitialOpacity",type:"Attribute"},{datatype:"Float",defaultValue:0,displayName:"Final Opacity",info:"The opacity particles reach at the end of their lifetime. Creates fade-out effect when lower than initial opacity.",minValue:0,maxValue:1,name:"ParticleFinalOpacity",type:"Attribute",if:{FadeMode:"Variable"}},{datatype:"Enum",defaultValue:"Linear",options:["Linear","Exponential","Inverse Exponential","Ease-in, Ease-out"],displayName:"Fade Interpolation",info:"Controls how smoothly particles fade between initial and final opacity over their lifetime.",type:"Attribute",name:"FadeFunction",if:{FadeMode:"Variable"}},{datatype:"Float",defaultValue:1,minValue:.1,maxValue:5,if:{FadeMode:"Variable",$or:[{FadeFunction:"Exponential"},{FadeFunction:"Inverse Exponential"},{FadeFunction:"Ease-in, Ease-out"}]},displayName:"Fade Rate",name:"FadeApproach",info:"Controls how quickly the fade transition occurs. Higher values create sharper transitions, lower values create gentler fades.",type:"Attribute"},{label:"Emission Settings",type:"Separator",collapsed:!0},{datatype:"Enum",defaultValue:"Box",name:"EmitterShape",displayName:"Emitter Shape",info:"Defines the geometric shape from which particles are emitted.",options:["Point","Box","Sphere","Hemisphere","Torus","Cone","Circle","Edge"],type:"Attribute"},{datatype:"Enum",defaultValue:"Volume",name:"EmitterTypeSurfaceVolumeNormal",displayName:"Emitter Type",info:"Specifies whether particles are emitted from the surface, volume, or along the normals of the shape.",options:["Surface","Volume","Normals"],if:{$or:[{EmitterShape:"Box"},{EmitterShape:"Sphere"},{EmitterShape:"Cone"}]},type:"Attribute"},{datatype:"Enum",defaultValue:"Volume",name:"EmitterTypeSurfaceVolume",info:"Specifies whether particles are emitted from the surface or volume of the shape.",displayName:"Emitter Type",options:["Surface","Volume"],if:{$or:[{EmitterShape:"Hemisphere"},{EmitterShape:"Torus"}]},type:"Attribute"},{datatype:"Float",defaultValue:10,displayName:"Velocity Along Normals.",info:"Speed at which particles are emitted along the surface normals.",if:{EmitterTypeSurfaceVolumeNormal:"Normals"},minValue:0,name:"NormalsVelocity",type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"The size of the emitter.",info:"Defines the size of the emitter.",if:{$or:[{EmitterShape:"Box"}]},minValue:0,name:"EmitterSize",type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"The radius of the emitter.",if:{$or:[{EmitterShape:"Torus"},{EmitterShape:"Cone"},{EmitterShape:"Sphere"},{EmitterShape:"Hemisphere"},{EmitterShape:"Circle"}]},minValue:0,name:"EmitterRadius",type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"The outer radius of the emitter",if:{$or:[{EmitterShape:"Torus"}]},minValue:0,name:"EmitterOuterRadius",type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"The height of the emitter",if:{$or:[{EmitterShape:"Cone"},{EmitterShape:"Edge"}]},minValue:0,name:"EmitterHeight",type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"The width of the emitter.",if:{$or:[{EmitterShape:"Edge"}]},minValue:0,name:"EmitterWidth",type:"Attribute"},{datatype:"Boolean",defaultValue:!1,displayName:"Round Tip",if:{$or:[{EmitterShape:"Cone"}]},info:"Round the tip of the cone instead of using a sharp point.",name:"EmitterRoundTip",type:"Attribute"},{label:"Bounding Box Settings",type:"Separator",collapsed:!0},{datatype:"Boolean",defaultValue:!1,displayName:"Enable Bounding Box",info:"Enable a bounding box to restrict particles within a defined 3D area.",name:"EnableBBox",type:"Attribute"},{datatype:"Vector3d",defaultValue:{x:10,y:10,z:10},info:"Coordinates of the bounding box's maximum corner (upper-right-front).",name:"BBoxMax",displayName:"Bounding Box Maximum Corner",if:{EnableBBox:!0},type:"Attribute"},{datatype:"Vector3d",defaultValue:{x:0,y:0,z:0},info:"Coordinates of the bounding box's minimum corner (lower-left-back).",name:"BBoxMin",displayName:"Bounding Box Minimum Corner",if:{EnableBBox:!0},type:"Attribute"},{label:"Curl Noise Settings",type:"Separator",collapsed:!0},{datatype:"Boolean",defaultValue:!1,displayName:"Enable Curl Noise",info:"Toggle curl noise effect on particles to simulate turbulent, swirling particle behavior.",name:"NoiseFlag",type:"Attribute"},{datatype:"NoisePreview",if:{NoiseFlag:!0},displayName:"Noise Preview",info:"Visual preview of the curl noise pattern applied to the particle system.",name:"NoisePreview",type:"Attribute"},{datatype:"Float",defaultValue:0,displayName:"Noise Strength",if:{NoiseFlag:!0},info:"Controls the intensity of the noise.",name:"NoiseStrength",type:"Attribute"},{datatype:"Float",defaultValue:1,displayName:"Noise Frequency",if:{NoiseFlag:!0},info:"Determines the smoothness of the noise: lower values produce smooth, slow variations; higher values produce rapid, detailed changes.",name:"NoiseFrequency",type:"Attribute"},{datatype:"Integer",defaultValue:1,displayName:"Noise Octaves",if:{NoiseFlag:!0},info:"Number of noise layers combined to create complexity. Higher octaves add detail but reduce performance.",name:"NoiseOctaves",type:"Attribute"}],name:"Particles",updateRequiresThumbRefresh:!1,creatableEmpty:!0}];function R(e,t=!1){let a=L.find((t=>t.name===e));if(!a)return null;if(a=structuredClone(a),a.fields=a.fields||[],a.fieldSets=a.fieldSets||[],t&&a.inherits){const e=R(a.inherits,!0);e&&(a.fields=[...e.fields,...a.fields],a.fieldSets=[...e.fieldSets,...a.fieldSets])}return a}var P="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function O(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function B(e){throw new Error('Could not dynamically require "'+e+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var $,j={exports:{}};var U,z=($||($=1,(U=j).exports=function(){var e,t;function a(){return e.apply(null,arguments)}function i(t){e=t}function n(e){return e instanceof Array||"[object Array]"===Object.prototype.toString.call(e)}function r(e){return null!=e&&"[object Object]"===Object.prototype.toString.call(e)}function s(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function o(e){if(Object.getOwnPropertyNames)return 0===Object.getOwnPropertyNames(e).length;var t;for(t in e)if(s(e,t))return!1;return!0}function l(e){return void 0===e}function u(e){return"number"==typeof e||"[object Number]"===Object.prototype.toString.call(e)}function c(e){return e instanceof Date||"[object Date]"===Object.prototype.toString.call(e)}function d(e,t){var a,i=[],n=e.length;for(a=0;a<n;++a)i.push(t(e[a],a));return i}function p(e,t){for(var a in t)s(t,a)&&(e[a]=t[a]);return s(t,"toString")&&(e.toString=t.toString),s(t,"valueOf")&&(e.valueOf=t.valueOf),e}function h(e,t,a,i){return qa(e,t,a,i,!0).utc()}function f(){return{empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidEra:null,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1,parsedDateParts:[],era:null,meridiem:null,rfc2822:!1,weekdayMismatch:!1}}function m(e){return null==e._pf&&(e._pf=f()),e._pf}function y(e){var a=null,i=!1,n=e._d&&!isNaN(e._d.getTime());return n&&(a=m(e),i=t.call(a.parsedDateParts,(function(e){return null!=e})),n=a.overflow<0&&!a.empty&&!a.invalidEra&&!a.invalidMonth&&!a.invalidWeekday&&!a.weekdayMismatch&&!a.nullInput&&!a.invalidFormat&&!a.userInvalidated&&(!a.meridiem||a.meridiem&&i),e._strict&&(n=n&&0===a.charsLeftOver&&0===a.unusedTokens.length&&void 0===a.bigHour)),null!=Object.isFrozen&&Object.isFrozen(e)?n:(e._isValid=n,e._isValid)}function g(e){var t=h(NaN);return null!=e?p(m(t),e):m(t).userInvalidated=!0,t}t=Array.prototype.some?Array.prototype.some:function(e){var t,a=Object(this),i=a.length>>>0;for(t=0;t<i;t++)if(t in a&&e.call(this,a[t],t,a))return!0;return!1};var b=a.momentProperties=[],v=!1;function _(e,t){var a,i,n,r=b.length;if(l(t._isAMomentObject)||(e._isAMomentObject=t._isAMomentObject),l(t._i)||(e._i=t._i),l(t._f)||(e._f=t._f),l(t._l)||(e._l=t._l),l(t._strict)||(e._strict=t._strict),l(t._tzm)||(e._tzm=t._tzm),l(t._isUTC)||(e._isUTC=t._isUTC),l(t._offset)||(e._offset=t._offset),l(t._pf)||(e._pf=m(t)),l(t._locale)||(e._locale=t._locale),r>0)for(a=0;a<r;a++)l(n=t[i=b[a]])||(e[i]=n);return e}function w(e){_(this,e),this._d=new Date(null!=e._d?e._d.getTime():NaN),this.isValid()||(this._d=new Date(NaN)),!1===v&&(v=!0,a.updateOffset(this),v=!1)}function A(e){return e instanceof w||null!=e&&null!=e._isAMomentObject}function k(e){!1===a.suppressDeprecationWarnings&&"undefined"!=typeof console&&console.warn&&console.warn("Deprecation warning: "+e)}function S(e,t){var i=!0;return p((function(){if(null!=a.deprecationHandler&&a.deprecationHandler(null,e),i){var n,r,o,l=[],u=arguments.length;for(r=0;r<u;r++){if(n="","object"==typeof arguments[r]){for(o in n+="\n["+r+"] ",arguments[0])s(arguments[0],o)&&(n+=o+": "+arguments[0][o]+", ");n=n.slice(0,-2)}else n=arguments[r];l.push(n)}k(e+"\nArguments: "+Array.prototype.slice.call(l).join("")+"\n"+(new Error).stack),i=!1}return t.apply(this,arguments)}),t)}var N,x={};function T(e,t){null!=a.deprecationHandler&&a.deprecationHandler(e,t),x[e]||(k(t),x[e]=!0)}function M(e){return"undefined"!=typeof Function&&e instanceof Function||"[object Function]"===Object.prototype.toString.call(e)}function V(e){var t,a;for(a in e)s(e,a)&&(M(t=e[a])?this[a]=t:this["_"+a]=t);this._config=e,this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+"|"+/\d{1,2}/.source)}function C(e,t){var a,i=p({},e);for(a in t)s(t,a)&&(r(e[a])&&r(t[a])?(i[a]={},p(i[a],e[a]),p(i[a],t[a])):null!=t[a]?i[a]=t[a]:delete i[a]);for(a in e)s(e,a)&&!s(t,a)&&r(e[a])&&(i[a]=p({},i[a]));return i}function I(e){null!=e&&this.set(e)}a.suppressDeprecationWarnings=!1,a.deprecationHandler=null,N=Object.keys?Object.keys:function(e){var t,a=[];for(t in e)s(e,t)&&a.push(t);return a};var F={sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"};function E(e,t,a){var i=this._calendar[e]||this._calendar.sameElse;return M(i)?i.call(t,a):i}function D(e,t,a){var i=""+Math.abs(e),n=t-i.length;return(e>=0?a?"+":"":"-")+Math.pow(10,Math.max(0,n)).toString().substr(1)+i}var L=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,R=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,P={},O={};function $(e,t,a,i){var n=i;"string"==typeof i&&(n=function(){return this[i]()}),e&&(O[e]=n),t&&(O[t[0]]=function(){return D(n.apply(this,arguments),t[1],t[2])}),a&&(O[a]=function(){return this.localeData().ordinal(n.apply(this,arguments),e)})}function j(e){return e.match(/\[[\s\S]/)?e.replace(/^\[|\]$/g,""):e.replace(/\\/g,"")}function z(e){var t,a,i=e.match(L);for(t=0,a=i.length;t<a;t++)O[i[t]]?i[t]=O[i[t]]:i[t]=j(i[t]);return function(t){var n,r="";for(n=0;n<a;n++)r+=M(i[n])?i[n].call(t,e):i[n];return r}}function W(e,t){return e.isValid()?(t=H(t,e.localeData()),P[t]=P[t]||z(t),P[t](e)):e.localeData().invalidDate()}function H(e,t){var a=5;function i(e){return t.longDateFormat(e)||e}for(R.lastIndex=0;a>=0&&R.test(e);)e=e.replace(R,i),R.lastIndex=0,a-=1;return e}var Y={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"};function G(e){var t=this._longDateFormat[e],a=this._longDateFormat[e.toUpperCase()];return t||!a?t:(this._longDateFormat[e]=a.match(L).map((function(e){return"MMMM"===e||"MM"===e||"DD"===e||"dddd"===e?e.slice(1):e})).join(""),this._longDateFormat[e])}var q="Invalid date";function Z(){return this._invalidDate}var J="%d",K=/\d{1,2}/;function X(e){return this._ordinal.replace("%d",e)}var Q={future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",w:"a week",ww:"%d weeks",M:"a month",MM:"%d months",y:"a year",yy:"%d years"};function ee(e,t,a,i){var n=this._relativeTime[a];return M(n)?n(e,t,a,i):n.replace(/%d/i,e)}function te(e,t){var a=this._relativeTime[e>0?"future":"past"];return M(a)?a(t):a.replace(/%s/i,t)}var ae={D:"date",dates:"date",date:"date",d:"day",days:"day",day:"day",e:"weekday",weekdays:"weekday",weekday:"weekday",E:"isoWeekday",isoweekdays:"isoWeekday",isoweekday:"isoWeekday",DDD:"dayOfYear",dayofyears:"dayOfYear",dayofyear:"dayOfYear",h:"hour",hours:"hour",hour:"hour",ms:"millisecond",milliseconds:"millisecond",millisecond:"millisecond",m:"minute",minutes:"minute",minute:"minute",M:"month",months:"month",month:"month",Q:"quarter",quarters:"quarter",quarter:"quarter",s:"second",seconds:"second",second:"second",gg:"weekYear",weekyears:"weekYear",weekyear:"weekYear",GG:"isoWeekYear",isoweekyears:"isoWeekYear",isoweekyear:"isoWeekYear",w:"week",weeks:"week",week:"week",W:"isoWeek",isoweeks:"isoWeek",isoweek:"isoWeek",y:"year",years:"year",year:"year"};function ie(e){return"string"==typeof e?ae[e]||ae[e.toLowerCase()]:void 0}function ne(e){var t,a,i={};for(a in e)s(e,a)&&(t=ie(a))&&(i[t]=e[a]);return i}var re={date:9,day:11,weekday:11,isoWeekday:11,dayOfYear:4,hour:13,millisecond:16,minute:14,month:8,quarter:7,second:15,weekYear:1,isoWeekYear:1,week:5,isoWeek:5,year:1};function se(e){var t,a=[];for(t in e)s(e,t)&&a.push({unit:t,priority:re[t]});return a.sort((function(e,t){return e.priority-t.priority})),a}var oe,le=/\d/,ue=/\d\d/,ce=/\d{3}/,de=/\d{4}/,pe=/[+-]?\d{6}/,he=/\d\d?/,fe=/\d\d\d\d?/,me=/\d\d\d\d\d\d?/,ye=/\d{1,3}/,ge=/\d{1,4}/,be=/[+-]?\d{1,6}/,ve=/\d+/,_e=/[+-]?\d+/,we=/Z|[+-]\d\d:?\d\d/gi,Ae=/Z|[+-]\d\d(?::?\d\d)?/gi,ke=/[+-]?\d+(\.\d{1,3})?/,Se=/[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i,Ne=/^[1-9]\d?/,xe=/^([1-9]\d|\d)/;function Te(e,t,a){oe[e]=M(t)?t:function(e,i){return e&&a?a:t}}function Me(e,t){return s(oe,e)?oe[e](t._strict,t._locale):new RegExp(Ve(e))}function Ve(e){return Ce(e.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,(function(e,t,a,i,n){return t||a||i||n})))}function Ce(e){return e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function Ie(e){return e<0?Math.ceil(e)||0:Math.floor(e)}function Fe(e){var t=+e,a=0;return 0!==t&&isFinite(t)&&(a=Ie(t)),a}oe={};var Ee={};function De(e,t){var a,i,n=t;for("string"==typeof e&&(e=[e]),u(t)&&(n=function(e,a){a[t]=Fe(e)}),i=e.length,a=0;a<i;a++)Ee[e[a]]=n}function Le(e,t){De(e,(function(e,a,i,n){i._w=i._w||{},t(e,i._w,i,n)}))}function Re(e,t,a){null!=t&&s(Ee,e)&&Ee[e](t,a._a,a,e)}function Pe(e){return e%4==0&&e%100!=0||e%400==0}var Oe=0,Be=1,$e=2,je=3,Ue=4,ze=5,We=6,He=7,Ye=8;function Ge(e){return Pe(e)?366:365}$("Y",0,0,(function(){var e=this.year();return e<=9999?D(e,4):"+"+e})),$(0,["YY",2],0,(function(){return this.year()%100})),$(0,["YYYY",4],0,"year"),$(0,["YYYYY",5],0,"year"),$(0,["YYYYYY",6,!0],0,"year"),Te("Y",_e),Te("YY",he,ue),Te("YYYY",ge,de),Te("YYYYY",be,pe),Te("YYYYYY",be,pe),De(["YYYYY","YYYYYY"],Oe),De("YYYY",(function(e,t){t[Oe]=2===e.length?a.parseTwoDigitYear(e):Fe(e)})),De("YY",(function(e,t){t[Oe]=a.parseTwoDigitYear(e)})),De("Y",(function(e,t){t[Oe]=parseInt(e,10)})),a.parseTwoDigitYear=function(e){return Fe(e)+(Fe(e)>68?1900:2e3)};var qe,Ze=Ke("FullYear",!0);function Je(){return Pe(this.year())}function Ke(e,t){return function(i){return null!=i?(Qe(this,e,i),a.updateOffset(this,t),this):Xe(this,e)}}function Xe(e,t){if(!e.isValid())return NaN;var a=e._d,i=e._isUTC;switch(t){case"Milliseconds":return i?a.getUTCMilliseconds():a.getMilliseconds();case"Seconds":return i?a.getUTCSeconds():a.getSeconds();case"Minutes":return i?a.getUTCMinutes():a.getMinutes();case"Hours":return i?a.getUTCHours():a.getHours();case"Date":return i?a.getUTCDate():a.getDate();case"Day":return i?a.getUTCDay():a.getDay();case"Month":return i?a.getUTCMonth():a.getMonth();case"FullYear":return i?a.getUTCFullYear():a.getFullYear();default:return NaN}}function Qe(e,t,a){var i,n,r,s,o;if(e.isValid()&&!isNaN(a)){switch(i=e._d,n=e._isUTC,t){case"Milliseconds":return void(n?i.setUTCMilliseconds(a):i.setMilliseconds(a));case"Seconds":return void(n?i.setUTCSeconds(a):i.setSeconds(a));case"Minutes":return void(n?i.setUTCMinutes(a):i.setMinutes(a));case"Hours":return void(n?i.setUTCHours(a):i.setHours(a));case"Date":return void(n?i.setUTCDate(a):i.setDate(a));case"FullYear":break;default:return}r=a,s=e.month(),o=29!==(o=e.date())||1!==s||Pe(r)?o:28,n?i.setUTCFullYear(r,s,o):i.setFullYear(r,s,o)}}function et(e){return M(this[e=ie(e)])?this[e]():this}function tt(e,t){if("object"==typeof e){var a,i=se(e=ne(e)),n=i.length;for(a=0;a<n;a++)this[i[a].unit](e[i[a].unit])}else if(M(this[e=ie(e)]))return this[e](t);return this}function at(e,t){return(e%t+t)%t}function it(e,t){if(isNaN(e)||isNaN(t))return NaN;var a=at(t,12);return e+=(t-a)/12,1===a?Pe(e)?29:28:31-a%7%2}qe=Array.prototype.indexOf?Array.prototype.indexOf:function(e){var t;for(t=0;t<this.length;++t)if(this[t]===e)return t;return-1},$("M",["MM",2],"Mo",(function(){return this.month()+1})),$("MMM",0,0,(function(e){return this.localeData().monthsShort(this,e)})),$("MMMM",0,0,(function(e){return this.localeData().months(this,e)})),Te("M",he,Ne),Te("MM",he,ue),Te("MMM",(function(e,t){return t.monthsShortRegex(e)})),Te("MMMM",(function(e,t){return t.monthsRegex(e)})),De(["M","MM"],(function(e,t){t[Be]=Fe(e)-1})),De(["MMM","MMMM"],(function(e,t,a,i){var n=a._locale.monthsParse(e,i,a._strict);null!=n?t[Be]=n:m(a).invalidMonth=e}));var nt="January_February_March_April_May_June_July_August_September_October_November_December".split("_"),rt="Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),st=/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/,ot=Se,lt=Se;function ut(e,t){return e?n(this._months)?this._months[e.month()]:this._months[(this._months.isFormat||st).test(t)?"format":"standalone"][e.month()]:n(this._months)?this._months:this._months.standalone}function ct(e,t){return e?n(this._monthsShort)?this._monthsShort[e.month()]:this._monthsShort[st.test(t)?"format":"standalone"][e.month()]:n(this._monthsShort)?this._monthsShort:this._monthsShort.standalone}function dt(e,t,a){var i,n,r,s=e.toLocaleLowerCase();if(!this._monthsParse)for(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[],i=0;i<12;++i)r=h([2e3,i]),this._shortMonthsParse[i]=this.monthsShort(r,"").toLocaleLowerCase(),this._longMonthsParse[i]=this.months(r,"").toLocaleLowerCase();return a?"MMM"===t?-1!==(n=qe.call(this._shortMonthsParse,s))?n:null:-1!==(n=qe.call(this._longMonthsParse,s))?n:null:"MMM"===t?-1!==(n=qe.call(this._shortMonthsParse,s))||-1!==(n=qe.call(this._longMonthsParse,s))?n:null:-1!==(n=qe.call(this._longMonthsParse,s))||-1!==(n=qe.call(this._shortMonthsParse,s))?n:null}function pt(e,t,a){var i,n,r;if(this._monthsParseExact)return dt.call(this,e,t,a);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),i=0;i<12;i++){if(n=h([2e3,i]),a&&!this._longMonthsParse[i]&&(this._longMonthsParse[i]=new RegExp("^"+this.months(n,"").replace(".","")+"$","i"),this._shortMonthsParse[i]=new RegExp("^"+this.monthsShort(n,"").replace(".","")+"$","i")),a||this._monthsParse[i]||(r="^"+this.months(n,"")+"|^"+this.monthsShort(n,""),this._monthsParse[i]=new RegExp(r.replace(".",""),"i")),a&&"MMMM"===t&&this._longMonthsParse[i].test(e))return i;if(a&&"MMM"===t&&this._shortMonthsParse[i].test(e))return i;if(!a&&this._monthsParse[i].test(e))return i}}function ht(e,t){if(!e.isValid())return e;if("string"==typeof t)if(/^\d+$/.test(t))t=Fe(t);else if(!u(t=e.localeData().monthsParse(t)))return e;var a=t,i=e.date();return i=i<29?i:Math.min(i,it(e.year(),a)),e._isUTC?e._d.setUTCMonth(a,i):e._d.setMonth(a,i),e}function ft(e){return null!=e?(ht(this,e),a.updateOffset(this,!0),this):Xe(this,"Month")}function mt(){return it(this.year(),this.month())}function yt(e){return this._monthsParseExact?(s(this,"_monthsRegex")||bt.call(this),e?this._monthsShortStrictRegex:this._monthsShortRegex):(s(this,"_monthsShortRegex")||(this._monthsShortRegex=ot),this._monthsShortStrictRegex&&e?this._monthsShortStrictRegex:this._monthsShortRegex)}function gt(e){return this._monthsParseExact?(s(this,"_monthsRegex")||bt.call(this),e?this._monthsStrictRegex:this._monthsRegex):(s(this,"_monthsRegex")||(this._monthsRegex=lt),this._monthsStrictRegex&&e?this._monthsStrictRegex:this._monthsRegex)}function bt(){function e(e,t){return t.length-e.length}var t,a,i,n,r=[],s=[],o=[];for(t=0;t<12;t++)a=h([2e3,t]),i=Ce(this.monthsShort(a,"")),n=Ce(this.months(a,"")),r.push(i),s.push(n),o.push(n),o.push(i);r.sort(e),s.sort(e),o.sort(e),this._monthsRegex=new RegExp("^("+o.join("|")+")","i"),this._monthsShortRegex=this._monthsRegex,this._monthsStrictRegex=new RegExp("^("+s.join("|")+")","i"),this._monthsShortStrictRegex=new RegExp("^("+r.join("|")+")","i")}function vt(e,t,a,i,n,r,s){var o;return e<100&&e>=0?(o=new Date(e+400,t,a,i,n,r,s),isFinite(o.getFullYear())&&o.setFullYear(e)):o=new Date(e,t,a,i,n,r,s),o}function _t(e){var t,a;return e<100&&e>=0?((a=Array.prototype.slice.call(arguments))[0]=e+400,t=new Date(Date.UTC.apply(null,a)),isFinite(t.getUTCFullYear())&&t.setUTCFullYear(e)):t=new Date(Date.UTC.apply(null,arguments)),t}function wt(e,t,a){var i=7+t-a;return-(7+_t(e,0,i).getUTCDay()-t)%7+i-1}function At(e,t,a,i,n){var r,s,o=1+7*(t-1)+(7+a-i)%7+wt(e,i,n);return o<=0?s=Ge(r=e-1)+o:o>Ge(e)?(r=e+1,s=o-Ge(e)):(r=e,s=o),{year:r,dayOfYear:s}}function kt(e,t,a){var i,n,r=wt(e.year(),t,a),s=Math.floor((e.dayOfYear()-r-1)/7)+1;return s<1?i=s+St(n=e.year()-1,t,a):s>St(e.year(),t,a)?(i=s-St(e.year(),t,a),n=e.year()+1):(n=e.year(),i=s),{week:i,year:n}}function St(e,t,a){var i=wt(e,t,a),n=wt(e+1,t,a);return(Ge(e)-i+n)/7}function Nt(e){return kt(e,this._week.dow,this._week.doy).week}$("w",["ww",2],"wo","week"),$("W",["WW",2],"Wo","isoWeek"),Te("w",he,Ne),Te("ww",he,ue),Te("W",he,Ne),Te("WW",he,ue),Le(["w","ww","W","WW"],(function(e,t,a,i){t[i.substr(0,1)]=Fe(e)}));var xt={dow:0,doy:6};function Tt(){return this._week.dow}function Mt(){return this._week.doy}function Vt(e){var t=this.localeData().week(this);return null==e?t:this.add(7*(e-t),"d")}function Ct(e){var t=kt(this,1,4).week;return null==e?t:this.add(7*(e-t),"d")}function It(e,t){return"string"!=typeof e?e:isNaN(e)?"number"==typeof(e=t.weekdaysParse(e))?e:null:parseInt(e,10)}function Ft(e,t){return"string"==typeof e?t.weekdaysParse(e)%7||7:isNaN(e)?null:e}function Et(e,t){return e.slice(t,7).concat(e.slice(0,t))}$("d",0,"do","day"),$("dd",0,0,(function(e){return this.localeData().weekdaysMin(this,e)})),$("ddd",0,0,(function(e){return this.localeData().weekdaysShort(this,e)})),$("dddd",0,0,(function(e){return this.localeData().weekdays(this,e)})),$("e",0,0,"weekday"),$("E",0,0,"isoWeekday"),Te("d",he),Te("e",he),Te("E",he),Te("dd",(function(e,t){return t.weekdaysMinRegex(e)})),Te("ddd",(function(e,t){return t.weekdaysShortRegex(e)})),Te("dddd",(function(e,t){return t.weekdaysRegex(e)})),Le(["dd","ddd","dddd"],(function(e,t,a,i){var n=a._locale.weekdaysParse(e,i,a._strict);null!=n?t.d=n:m(a).invalidWeekday=e})),Le(["d","e","E"],(function(e,t,a,i){t[i]=Fe(e)}));var Dt="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),Lt="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),Rt="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),Pt=Se,Ot=Se,Bt=Se;function $t(e,t){var a=n(this._weekdays)?this._weekdays:this._weekdays[e&&!0!==e&&this._weekdays.isFormat.test(t)?"format":"standalone"];return!0===e?Et(a,this._week.dow):e?a[e.day()]:a}function jt(e){return!0===e?Et(this._weekdaysShort,this._week.dow):e?this._weekdaysShort[e.day()]:this._weekdaysShort}function Ut(e){return!0===e?Et(this._weekdaysMin,this._week.dow):e?this._weekdaysMin[e.day()]:this._weekdaysMin}function zt(e,t,a){var i,n,r,s=e.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],i=0;i<7;++i)r=h([2e3,1]).day(i),this._minWeekdaysParse[i]=this.weekdaysMin(r,"").toLocaleLowerCase(),this._shortWeekdaysParse[i]=this.weekdaysShort(r,"").toLocaleLowerCase(),this._weekdaysParse[i]=this.weekdays(r,"").toLocaleLowerCase();return a?"dddd"===t?-1!==(n=qe.call(this._weekdaysParse,s))?n:null:"ddd"===t?-1!==(n=qe.call(this._shortWeekdaysParse,s))?n:null:-1!==(n=qe.call(this._minWeekdaysParse,s))?n:null:"dddd"===t?-1!==(n=qe.call(this._weekdaysParse,s))||-1!==(n=qe.call(this._shortWeekdaysParse,s))||-1!==(n=qe.call(this._minWeekdaysParse,s))?n:null:"ddd"===t?-1!==(n=qe.call(this._shortWeekdaysParse,s))||-1!==(n=qe.call(this._weekdaysParse,s))||-1!==(n=qe.call(this._minWeekdaysParse,s))?n:null:-1!==(n=qe.call(this._minWeekdaysParse,s))||-1!==(n=qe.call(this._weekdaysParse,s))||-1!==(n=qe.call(this._shortWeekdaysParse,s))?n:null}function Wt(e,t,a){var i,n,r;if(this._weekdaysParseExact)return zt.call(this,e,t,a);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),i=0;i<7;i++){if(n=h([2e3,1]).day(i),a&&!this._fullWeekdaysParse[i]&&(this._fullWeekdaysParse[i]=new RegExp("^"+this.weekdays(n,"").replace(".","\\.?")+"$","i"),this._shortWeekdaysParse[i]=new RegExp("^"+this.weekdaysShort(n,"").replace(".","\\.?")+"$","i"),this._minWeekdaysParse[i]=new RegExp("^"+this.weekdaysMin(n,"").replace(".","\\.?")+"$","i")),this._weekdaysParse[i]||(r="^"+this.weekdays(n,"")+"|^"+this.weekdaysShort(n,"")+"|^"+this.weekdaysMin(n,""),this._weekdaysParse[i]=new RegExp(r.replace(".",""),"i")),a&&"dddd"===t&&this._fullWeekdaysParse[i].test(e))return i;if(a&&"ddd"===t&&this._shortWeekdaysParse[i].test(e))return i;if(a&&"dd"===t&&this._minWeekdaysParse[i].test(e))return i;if(!a&&this._weekdaysParse[i].test(e))return i}}function Ht(e){if(!this.isValid())return null!=e?this:NaN;var t=Xe(this,"Day");return null!=e?(e=It(e,this.localeData()),this.add(e-t,"d")):t}function Yt(e){if(!this.isValid())return null!=e?this:NaN;var t=(this.day()+7-this.localeData()._week.dow)%7;return null==e?t:this.add(e-t,"d")}function Gt(e){if(!this.isValid())return null!=e?this:NaN;if(null!=e){var t=Ft(e,this.localeData());return this.day(this.day()%7?t:t-7)}return this.day()||7}function qt(e){return this._weekdaysParseExact?(s(this,"_weekdaysRegex")||Kt.call(this),e?this._weekdaysStrictRegex:this._weekdaysRegex):(s(this,"_weekdaysRegex")||(this._weekdaysRegex=Pt),this._weekdaysStrictRegex&&e?this._weekdaysStrictRegex:this._weekdaysRegex)}function Zt(e){return this._weekdaysParseExact?(s(this,"_weekdaysRegex")||Kt.call(this),e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(s(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=Ot),this._weekdaysShortStrictRegex&&e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)}function Jt(e){return this._weekdaysParseExact?(s(this,"_weekdaysRegex")||Kt.call(this),e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(s(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=Bt),this._weekdaysMinStrictRegex&&e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)}function Kt(){function e(e,t){return t.length-e.length}var t,a,i,n,r,s=[],o=[],l=[],u=[];for(t=0;t<7;t++)a=h([2e3,1]).day(t),i=Ce(this.weekdaysMin(a,"")),n=Ce(this.weekdaysShort(a,"")),r=Ce(this.weekdays(a,"")),s.push(i),o.push(n),l.push(r),u.push(i),u.push(n),u.push(r);s.sort(e),o.sort(e),l.sort(e),u.sort(e),this._weekdaysRegex=new RegExp("^("+u.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+l.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+o.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+s.join("|")+")","i")}function Xt(){return this.hours()%12||12}function Qt(){return this.hours()||24}function ea(e,t){$(e,0,0,(function(){return this.localeData().meridiem(this.hours(),this.minutes(),t)}))}function ta(e,t){return t._meridiemParse}function aa(e){return"p"===(e+"").toLowerCase().charAt(0)}$("H",["HH",2],0,"hour"),$("h",["hh",2],0,Xt),$("k",["kk",2],0,Qt),$("hmm",0,0,(function(){return""+Xt.apply(this)+D(this.minutes(),2)})),$("hmmss",0,0,(function(){return""+Xt.apply(this)+D(this.minutes(),2)+D(this.seconds(),2)})),$("Hmm",0,0,(function(){return""+this.hours()+D(this.minutes(),2)})),$("Hmmss",0,0,(function(){return""+this.hours()+D(this.minutes(),2)+D(this.seconds(),2)})),ea("a",!0),ea("A",!1),Te("a",ta),Te("A",ta),Te("H",he,xe),Te("h",he,Ne),Te("k",he,Ne),Te("HH",he,ue),Te("hh",he,ue),Te("kk",he,ue),Te("hmm",fe),Te("hmmss",me),Te("Hmm",fe),Te("Hmmss",me),De(["H","HH"],je),De(["k","kk"],(function(e,t,a){var i=Fe(e);t[je]=24===i?0:i})),De(["a","A"],(function(e,t,a){a._isPm=a._locale.isPM(e),a._meridiem=e})),De(["h","hh"],(function(e,t,a){t[je]=Fe(e),m(a).bigHour=!0})),De("hmm",(function(e,t,a){var i=e.length-2;t[je]=Fe(e.substr(0,i)),t[Ue]=Fe(e.substr(i)),m(a).bigHour=!0})),De("hmmss",(function(e,t,a){var i=e.length-4,n=e.length-2;t[je]=Fe(e.substr(0,i)),t[Ue]=Fe(e.substr(i,2)),t[ze]=Fe(e.substr(n)),m(a).bigHour=!0})),De("Hmm",(function(e,t,a){var i=e.length-2;t[je]=Fe(e.substr(0,i)),t[Ue]=Fe(e.substr(i))})),De("Hmmss",(function(e,t,a){var i=e.length-4,n=e.length-2;t[je]=Fe(e.substr(0,i)),t[Ue]=Fe(e.substr(i,2)),t[ze]=Fe(e.substr(n))}));var ia=/[ap]\.?m?\.?/i,na=Ke("Hours",!0);function ra(e,t,a){return e>11?a?"pm":"PM":a?"am":"AM"}var sa,oa={calendar:F,longDateFormat:Y,invalidDate:q,ordinal:J,dayOfMonthOrdinalParse:K,relativeTime:Q,months:nt,monthsShort:rt,week:xt,weekdays:Dt,weekdaysMin:Rt,weekdaysShort:Lt,meridiemParse:ia},la={},ua={};function ca(e,t){var a,i=Math.min(e.length,t.length);for(a=0;a<i;a+=1)if(e[a]!==t[a])return a;return i}function da(e){return e?e.toLowerCase().replace("_","-"):e}function pa(e){for(var t,a,i,n,r=0;r<e.length;){for(t=(n=da(e[r]).split("-")).length,a=(a=da(e[r+1]))?a.split("-"):null;t>0;){if(i=fa(n.slice(0,t).join("-")))return i;if(a&&a.length>=t&&ca(n,a)>=t-1)break;t--}r++}return sa}function ha(e){return!(!e||!e.match("^[^/\\\\]*$"))}function fa(e){var t=null;if(void 0===la[e]&&U&&U.exports&&ha(e))try{t=sa._abbr,B("./locale/"+e),ma(t)}catch(t){la[e]=null}return la[e]}function ma(e,t){var a;return e&&((a=l(t)?ba(e):ya(e,t))?sa=a:"undefined"!=typeof console&&console.warn&&console.warn("Locale "+e+" not found. Did you forget to load it?")),sa._abbr}function ya(e,t){if(null!==t){var a,i=oa;if(t.abbr=e,null!=la[e])T("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),i=la[e]._config;else if(null!=t.parentLocale)if(null!=la[t.parentLocale])i=la[t.parentLocale]._config;else{if(null==(a=fa(t.parentLocale)))return ua[t.parentLocale]||(ua[t.parentLocale]=[]),ua[t.parentLocale].push({name:e,config:t}),null;i=a._config}return la[e]=new I(C(i,t)),ua[e]&&ua[e].forEach((function(e){ya(e.name,e.config)})),ma(e),la[e]}return delete la[e],null}function ga(e,t){if(null!=t){var a,i,n=oa;null!=la[e]&&null!=la[e].parentLocale?la[e].set(C(la[e]._config,t)):(null!=(i=fa(e))&&(n=i._config),t=C(n,t),null==i&&(t.abbr=e),(a=new I(t)).parentLocale=la[e],la[e]=a),ma(e)}else null!=la[e]&&(null!=la[e].parentLocale?(la[e]=la[e].parentLocale,e===ma()&&ma(e)):null!=la[e]&&delete la[e]);return la[e]}function ba(e){var t;if(e&&e._locale&&e._locale._abbr&&(e=e._locale._abbr),!e)return sa;if(!n(e)){if(t=fa(e))return t;e=[e]}return pa(e)}function va(){return N(la)}function _a(e){var t,a=e._a;return a&&-2===m(e).overflow&&(t=a[Be]<0||a[Be]>11?Be:a[$e]<1||a[$e]>it(a[Oe],a[Be])?$e:a[je]<0||a[je]>24||24===a[je]&&(0!==a[Ue]||0!==a[ze]||0!==a[We])?je:a[Ue]<0||a[Ue]>59?Ue:a[ze]<0||a[ze]>59?ze:a[We]<0||a[We]>999?We:-1,m(e)._overflowDayOfYear&&(t<Oe||t>$e)&&(t=$e),m(e)._overflowWeeks&&-1===t&&(t=He),m(e)._overflowWeekday&&-1===t&&(t=Ye),m(e).overflow=t),e}var wa=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,Aa=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d|))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,ka=/Z|[+-]\d\d(?::?\d\d)?/,Sa=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/],["YYYYMM",/\d{6}/,!1],["YYYY",/\d{4}/,!1]],Na=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],xa=/^\/?Date\((-?\d+)/i,Ta=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/,Ma={UT:0,GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function Va(e){var t,a,i,n,r,s,o=e._i,l=wa.exec(o)||Aa.exec(o),u=Sa.length,c=Na.length;if(l){for(m(e).iso=!0,t=0,a=u;t<a;t++)if(Sa[t][1].exec(l[1])){n=Sa[t][0],i=!1!==Sa[t][2];break}if(null==n)return void(e._isValid=!1);if(l[3]){for(t=0,a=c;t<a;t++)if(Na[t][1].exec(l[3])){r=(l[2]||" ")+Na[t][0];break}if(null==r)return void(e._isValid=!1)}if(!i&&null!=r)return void(e._isValid=!1);if(l[4]){if(!ka.exec(l[4]))return void(e._isValid=!1);s="Z"}e._f=n+(r||"")+(s||""),ja(e)}else e._isValid=!1}function Ca(e,t,a,i,n,r){var s=[Ia(e),rt.indexOf(t),parseInt(a,10),parseInt(i,10),parseInt(n,10)];return r&&s.push(parseInt(r,10)),s}function Ia(e){var t=parseInt(e,10);return t<=49?2e3+t:t<=999?1900+t:t}function Fa(e){return e.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").replace(/^\s\s*/,"").replace(/\s\s*$/,"")}function Ea(e,t,a){return!e||Lt.indexOf(e)===new Date(t[0],t[1],t[2]).getDay()||(m(a).weekdayMismatch=!0,a._isValid=!1,!1)}function Da(e,t,a){if(e)return Ma[e];if(t)return 0;var i=parseInt(a,10),n=i%100;return(i-n)/100*60+n}function La(e){var t,a=Ta.exec(Fa(e._i));if(a){if(t=Ca(a[4],a[3],a[2],a[5],a[6],a[7]),!Ea(a[1],t,e))return;e._a=t,e._tzm=Da(a[8],a[9],a[10]),e._d=_t.apply(null,e._a),e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),m(e).rfc2822=!0}else e._isValid=!1}function Ra(e){var t=xa.exec(e._i);null===t?(Va(e),!1===e._isValid&&(delete e._isValid,La(e),!1===e._isValid&&(delete e._isValid,e._strict?e._isValid=!1:a.createFromInputFallback(e)))):e._d=new Date(+t[1])}function Pa(e,t,a){return null!=e?e:null!=t?t:a}function Oa(e){var t=new Date(a.now());return e._useUTC?[t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate()]:[t.getFullYear(),t.getMonth(),t.getDate()]}function Ba(e){var t,a,i,n,r,s=[];if(!e._d){for(i=Oa(e),e._w&&null==e._a[$e]&&null==e._a[Be]&&$a(e),null!=e._dayOfYear&&(r=Pa(e._a[Oe],i[Oe]),(e._dayOfYear>Ge(r)||0===e._dayOfYear)&&(m(e)._overflowDayOfYear=!0),a=_t(r,0,e._dayOfYear),e._a[Be]=a.getUTCMonth(),e._a[$e]=a.getUTCDate()),t=0;t<3&&null==e._a[t];++t)e._a[t]=s[t]=i[t];for(;t<7;t++)e._a[t]=s[t]=null==e._a[t]?2===t?1:0:e._a[t];24===e._a[je]&&0===e._a[Ue]&&0===e._a[ze]&&0===e._a[We]&&(e._nextDay=!0,e._a[je]=0),e._d=(e._useUTC?_t:vt).apply(null,s),n=e._useUTC?e._d.getUTCDay():e._d.getDay(),null!=e._tzm&&e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),e._nextDay&&(e._a[je]=24),e._w&&void 0!==e._w.d&&e._w.d!==n&&(m(e).weekdayMismatch=!0)}}function $a(e){var t,a,i,n,r,s,o,l,u;null!=(t=e._w).GG||null!=t.W||null!=t.E?(r=1,s=4,a=Pa(t.GG,e._a[Oe],kt(Za(),1,4).year),i=Pa(t.W,1),((n=Pa(t.E,1))<1||n>7)&&(l=!0)):(r=e._locale._week.dow,s=e._locale._week.doy,u=kt(Za(),r,s),a=Pa(t.gg,e._a[Oe],u.year),i=Pa(t.w,u.week),null!=t.d?((n=t.d)<0||n>6)&&(l=!0):null!=t.e?(n=t.e+r,(t.e<0||t.e>6)&&(l=!0)):n=r),i<1||i>St(a,r,s)?m(e)._overflowWeeks=!0:null!=l?m(e)._overflowWeekday=!0:(o=At(a,i,n,r,s),e._a[Oe]=o.year,e._dayOfYear=o.dayOfYear)}function ja(e){if(e._f!==a.ISO_8601)if(e._f!==a.RFC_2822){e._a=[],m(e).empty=!0;var t,i,n,r,s,o,l,u=""+e._i,c=u.length,d=0;for(l=(n=H(e._f,e._locale).match(L)||[]).length,t=0;t<l;t++)r=n[t],(i=(u.match(Me(r,e))||[])[0])&&((s=u.substr(0,u.indexOf(i))).length>0&&m(e).unusedInput.push(s),u=u.slice(u.indexOf(i)+i.length),d+=i.length),O[r]?(i?m(e).empty=!1:m(e).unusedTokens.push(r),Re(r,i,e)):e._strict&&!i&&m(e).unusedTokens.push(r);m(e).charsLeftOver=c-d,u.length>0&&m(e).unusedInput.push(u),e._a[je]<=12&&!0===m(e).bigHour&&e._a[je]>0&&(m(e).bigHour=void 0),m(e).parsedDateParts=e._a.slice(0),m(e).meridiem=e._meridiem,e._a[je]=Ua(e._locale,e._a[je],e._meridiem),null!==(o=m(e).era)&&(e._a[Oe]=e._locale.erasConvertYear(o,e._a[Oe])),Ba(e),_a(e)}else La(e);else Va(e)}function Ua(e,t,a){var i;return null==a?t:null!=e.meridiemHour?e.meridiemHour(t,a):null!=e.isPM?((i=e.isPM(a))&&t<12&&(t+=12),i||12!==t||(t=0),t):t}function za(e){var t,a,i,n,r,s,o=!1,l=e._f.length;if(0===l)return m(e).invalidFormat=!0,void(e._d=new Date(NaN));for(n=0;n<l;n++)r=0,s=!1,t=_({},e),null!=e._useUTC&&(t._useUTC=e._useUTC),t._f=e._f[n],ja(t),y(t)&&(s=!0),r+=m(t).charsLeftOver,r+=10*m(t).unusedTokens.length,m(t).score=r,o?r<i&&(i=r,a=t):(null==i||r<i||s)&&(i=r,a=t,s&&(o=!0));p(e,a||t)}function Wa(e){if(!e._d){var t=ne(e._i),a=void 0===t.day?t.date:t.day;e._a=d([t.year,t.month,a,t.hour,t.minute,t.second,t.millisecond],(function(e){return e&&parseInt(e,10)})),Ba(e)}}function Ha(e){var t=new w(_a(Ya(e)));return t._nextDay&&(t.add(1,"d"),t._nextDay=void 0),t}function Ya(e){var t=e._i,a=e._f;return e._locale=e._locale||ba(e._l),null===t||void 0===a&&""===t?g({nullInput:!0}):("string"==typeof t&&(e._i=t=e._locale.preparse(t)),A(t)?new w(_a(t)):(c(t)?e._d=t:n(a)?za(e):a?ja(e):Ga(e),y(e)||(e._d=null),e))}function Ga(e){var t=e._i;l(t)?e._d=new Date(a.now()):c(t)?e._d=new Date(t.valueOf()):"string"==typeof t?Ra(e):n(t)?(e._a=d(t.slice(0),(function(e){return parseInt(e,10)})),Ba(e)):r(t)?Wa(e):u(t)?e._d=new Date(t):a.createFromInputFallback(e)}function qa(e,t,a,i,s){var l={};return!0!==t&&!1!==t||(i=t,t=void 0),!0!==a&&!1!==a||(i=a,a=void 0),(r(e)&&o(e)||n(e)&&0===e.length)&&(e=void 0),l._isAMomentObject=!0,l._useUTC=l._isUTC=s,l._l=a,l._i=e,l._f=t,l._strict=i,Ha(l)}function Za(e,t,a,i){return qa(e,t,a,i,!1)}a.createFromInputFallback=S("value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.",(function(e){e._d=new Date(e._i+(e._useUTC?" UTC":""))})),a.ISO_8601=function(){},a.RFC_2822=function(){};var Ja=S("moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/",(function(){var e=Za.apply(null,arguments);return this.isValid()&&e.isValid()?e<this?this:e:g()})),Ka=S("moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/",(function(){var e=Za.apply(null,arguments);return this.isValid()&&e.isValid()?e>this?this:e:g()}));function Xa(e,t){var a,i;if(1===t.length&&n(t[0])&&(t=t[0]),!t.length)return Za();for(a=t[0],i=1;i<t.length;++i)t[i].isValid()&&!t[i][e](a)||(a=t[i]);return a}function Qa(){return Xa("isBefore",[].slice.call(arguments,0))}function ei(){return Xa("isAfter",[].slice.call(arguments,0))}var ti=function(){return Date.now?Date.now():+new Date},ai=["year","quarter","month","week","day","hour","minute","second","millisecond"];function ii(e){var t,a,i=!1,n=ai.length;for(t in e)if(s(e,t)&&(-1===qe.call(ai,t)||null!=e[t]&&isNaN(e[t])))return!1;for(a=0;a<n;++a)if(e[ai[a]]){if(i)return!1;parseFloat(e[ai[a]])!==Fe(e[ai[a]])&&(i=!0)}return!0}function ni(){return this._isValid}function ri(){return Mi(NaN)}function si(e){var t=ne(e),a=t.year||0,i=t.quarter||0,n=t.month||0,r=t.week||t.isoWeek||0,s=t.day||0,o=t.hour||0,l=t.minute||0,u=t.second||0,c=t.millisecond||0;this._isValid=ii(t),this._milliseconds=+c+1e3*u+6e4*l+1e3*o*60*60,this._days=+s+7*r,this._months=+n+3*i+12*a,this._data={},this._locale=ba(),this._bubble()}function oi(e){return e instanceof si}function li(e){return e<0?-1*Math.round(-1*e):Math.round(e)}function ui(e,t,a){var i,n=Math.min(e.length,t.length),r=Math.abs(e.length-t.length),s=0;for(i=0;i<n;i++)Fe(e[i])!==Fe(t[i])&&s++;return s+r}function ci(e,t){$(e,0,0,(function(){var e=this.utcOffset(),a="+";return e<0&&(e=-e,a="-"),a+D(~~(e/60),2)+t+D(~~e%60,2)}))}ci("Z",":"),ci("ZZ",""),Te("Z",Ae),Te("ZZ",Ae),De(["Z","ZZ"],(function(e,t,a){a._useUTC=!0,a._tzm=pi(Ae,e)}));var di=/([\+\-]|\d\d)/gi;function pi(e,t){var a,i,n=(t||"").match(e);return null===n?null:0===(i=60*(a=((n[n.length-1]||[])+"").match(di)||["-",0,0])[1]+Fe(a[2]))?0:"+"===a[0]?i:-i}function hi(e,t){var i,n;return t._isUTC?(i=t.clone(),n=(A(e)||c(e)?e.valueOf():Za(e).valueOf())-i.valueOf(),i._d.setTime(i._d.valueOf()+n),a.updateOffset(i,!1),i):Za(e).local()}function fi(e){return-Math.round(e._d.getTimezoneOffset())}function mi(e,t,i){var n,r=this._offset||0;if(!this.isValid())return null!=e?this:NaN;if(null!=e){if("string"==typeof e){if(null===(e=pi(Ae,e)))return this}else Math.abs(e)<16&&!i&&(e*=60);return!this._isUTC&&t&&(n=fi(this)),this._offset=e,this._isUTC=!0,null!=n&&this.add(n,"m"),r!==e&&(!t||this._changeInProgress?Ei(this,Mi(e-r,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,a.updateOffset(this,!0),this._changeInProgress=null)),this}return this._isUTC?r:fi(this)}function yi(e,t){return null!=e?("string"!=typeof e&&(e=-e),this.utcOffset(e,t),this):-this.utcOffset()}function gi(e){return this.utcOffset(0,e)}function bi(e){return this._isUTC&&(this.utcOffset(0,e),this._isUTC=!1,e&&this.subtract(fi(this),"m")),this}function vi(){if(null!=this._tzm)this.utcOffset(this._tzm,!1,!0);else if("string"==typeof this._i){var e=pi(we,this._i);null!=e?this.utcOffset(e):this.utcOffset(0,!0)}return this}function _i(e){return!!this.isValid()&&(e=e?Za(e).utcOffset():0,(this.utcOffset()-e)%60==0)}function wi(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function Ai(){if(!l(this._isDSTShifted))return this._isDSTShifted;var e,t={};return _(t,this),(t=Ya(t))._a?(e=t._isUTC?h(t._a):Za(t._a),this._isDSTShifted=this.isValid()&&ui(t._a,e.toArray())>0):this._isDSTShifted=!1,this._isDSTShifted}function ki(){return!!this.isValid()&&!this._isUTC}function Si(){return!!this.isValid()&&this._isUTC}function Ni(){return!!this.isValid()&&this._isUTC&&0===this._offset}a.updateOffset=function(){};var xi=/^(-|\+)?(?:(\d*)[. ])?(\d+):(\d+)(?::(\d+)(\.\d*)?)?$/,Ti=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;function Mi(e,t){var a,i,n,r=e,o=null;return oi(e)?r={ms:e._milliseconds,d:e._days,M:e._months}:u(e)||!isNaN(+e)?(r={},t?r[t]=+e:r.milliseconds=+e):(o=xi.exec(e))?(a="-"===o[1]?-1:1,r={y:0,d:Fe(o[$e])*a,h:Fe(o[je])*a,m:Fe(o[Ue])*a,s:Fe(o[ze])*a,ms:Fe(li(1e3*o[We]))*a}):(o=Ti.exec(e))?(a="-"===o[1]?-1:1,r={y:Vi(o[2],a),M:Vi(o[3],a),w:Vi(o[4],a),d:Vi(o[5],a),h:Vi(o[6],a),m:Vi(o[7],a),s:Vi(o[8],a)}):null==r?r={}:"object"==typeof r&&("from"in r||"to"in r)&&(n=Ii(Za(r.from),Za(r.to)),(r={}).ms=n.milliseconds,r.M=n.months),i=new si(r),oi(e)&&s(e,"_locale")&&(i._locale=e._locale),oi(e)&&s(e,"_isValid")&&(i._isValid=e._isValid),i}function Vi(e,t){var a=e&&parseFloat(e.replace(",","."));return(isNaN(a)?0:a)*t}function Ci(e,t){var a={};return a.months=t.month()-e.month()+12*(t.year()-e.year()),e.clone().add(a.months,"M").isAfter(t)&&--a.months,a.milliseconds=+t-+e.clone().add(a.months,"M"),a}function Ii(e,t){var a;return e.isValid()&&t.isValid()?(t=hi(t,e),e.isBefore(t)?a=Ci(e,t):((a=Ci(t,e)).milliseconds=-a.milliseconds,a.months=-a.months),a):{milliseconds:0,months:0}}function Fi(e,t){return function(a,i){var n;return null===i||isNaN(+i)||(T(t,"moment()."+t+"(period, number) is deprecated. Please use moment()."+t+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),n=a,a=i,i=n),Ei(this,Mi(a,i),e),this}}function Ei(e,t,i,n){var r=t._milliseconds,s=li(t._days),o=li(t._months);e.isValid()&&(n=null==n||n,o&&ht(e,Xe(e,"Month")+o*i),s&&Qe(e,"Date",Xe(e,"Date")+s*i),r&&e._d.setTime(e._d.valueOf()+r*i),n&&a.updateOffset(e,s||o))}Mi.fn=si.prototype,Mi.invalid=ri;var Di=Fi(1,"add"),Li=Fi(-1,"subtract");function Ri(e){return"string"==typeof e||e instanceof String}function Pi(e){return A(e)||c(e)||Ri(e)||u(e)||Bi(e)||Oi(e)||null==e}function Oi(e){var t,a,i=r(e)&&!o(e),n=!1,l=["years","year","y","months","month","M","days","day","d","dates","date","D","hours","hour","h","minutes","minute","m","seconds","second","s","milliseconds","millisecond","ms"],u=l.length;for(t=0;t<u;t+=1)a=l[t],n=n||s(e,a);return i&&n}function Bi(e){var t=n(e),a=!1;return t&&(a=0===e.filter((function(t){return!u(t)&&Ri(e)})).length),t&&a}function $i(e){var t,a,i=r(e)&&!o(e),n=!1,l=["sameDay","nextDay","lastDay","nextWeek","lastWeek","sameElse"];for(t=0;t<l.length;t+=1)a=l[t],n=n||s(e,a);return i&&n}function ji(e,t){var a=e.diff(t,"days",!0);return a<-6?"sameElse":a<-1?"lastWeek":a<0?"lastDay":a<1?"sameDay":a<2?"nextDay":a<7?"nextWeek":"sameElse"}function Ui(e,t){1===arguments.length&&(arguments[0]?Pi(arguments[0])?(e=arguments[0],t=void 0):$i(arguments[0])&&(t=arguments[0],e=void 0):(e=void 0,t=void 0));var i=e||Za(),n=hi(i,this).startOf("day"),r=a.calendarFormat(this,n)||"sameElse",s=t&&(M(t[r])?t[r].call(this,i):t[r]);return this.format(s||this.localeData().calendar(r,this,Za(i)))}function zi(){return new w(this)}function Wi(e,t){var a=A(e)?e:Za(e);return!(!this.isValid()||!a.isValid())&&("millisecond"===(t=ie(t)||"millisecond")?this.valueOf()>a.valueOf():a.valueOf()<this.clone().startOf(t).valueOf())}function Hi(e,t){var a=A(e)?e:Za(e);return!(!this.isValid()||!a.isValid())&&("millisecond"===(t=ie(t)||"millisecond")?this.valueOf()<a.valueOf():this.clone().endOf(t).valueOf()<a.valueOf())}function Yi(e,t,a,i){var n=A(e)?e:Za(e),r=A(t)?t:Za(t);return!!(this.isValid()&&n.isValid()&&r.isValid())&&("("===(i=i||"()")[0]?this.isAfter(n,a):!this.isBefore(n,a))&&(")"===i[1]?this.isBefore(r,a):!this.isAfter(r,a))}function Gi(e,t){var a,i=A(e)?e:Za(e);return!(!this.isValid()||!i.isValid())&&("millisecond"===(t=ie(t)||"millisecond")?this.valueOf()===i.valueOf():(a=i.valueOf(),this.clone().startOf(t).valueOf()<=a&&a<=this.clone().endOf(t).valueOf()))}function qi(e,t){return this.isSame(e,t)||this.isAfter(e,t)}function Zi(e,t){return this.isSame(e,t)||this.isBefore(e,t)}function Ji(e,t,a){var i,n,r;if(!this.isValid())return NaN;if(!(i=hi(e,this)).isValid())return NaN;switch(n=6e4*(i.utcOffset()-this.utcOffset()),t=ie(t)){case"year":r=Ki(this,i)/12;break;case"month":r=Ki(this,i);break;case"quarter":r=Ki(this,i)/3;break;case"second":r=(this-i)/1e3;break;case"minute":r=(this-i)/6e4;break;case"hour":r=(this-i)/36e5;break;case"day":r=(this-i-n)/864e5;break;case"week":r=(this-i-n)/6048e5;break;default:r=this-i}return a?r:Ie(r)}function Ki(e,t){if(e.date()<t.date())return-Ki(t,e);var a=12*(t.year()-e.year())+(t.month()-e.month()),i=e.clone().add(a,"months");return-(a+(t-i<0?(t-i)/(i-e.clone().add(a-1,"months")):(t-i)/(e.clone().add(a+1,"months")-i)))||0}function Xi(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")}function Qi(e){if(!this.isValid())return null;var t=!0!==e,a=t?this.clone().utc():this;return a.year()<0||a.year()>9999?W(a,t?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):M(Date.prototype.toISOString)?t?this.toDate().toISOString():new Date(this.valueOf()+60*this.utcOffset()*1e3).toISOString().replace("Z",W(a,"Z")):W(a,t?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")}function en(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var e,t,a,i,n="moment",r="";return this.isLocal()||(n=0===this.utcOffset()?"moment.utc":"moment.parseZone",r="Z"),e="["+n+'("]',t=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",a="-MM-DD[T]HH:mm:ss.SSS",i=r+'[")]',this.format(e+t+a+i)}function tn(e){e||(e=this.isUtc()?a.defaultFormatUtc:a.defaultFormat);var t=W(this,e);return this.localeData().postformat(t)}function an(e,t){return this.isValid()&&(A(e)&&e.isValid()||Za(e).isValid())?Mi({to:this,from:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()}function nn(e){return this.from(Za(),e)}function rn(e,t){return this.isValid()&&(A(e)&&e.isValid()||Za(e).isValid())?Mi({from:this,to:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()}function sn(e){return this.to(Za(),e)}function on(e){var t;return void 0===e?this._locale._abbr:(null!=(t=ba(e))&&(this._locale=t),this)}a.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",a.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var ln=S("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",(function(e){return void 0===e?this.localeData():this.locale(e)}));function un(){return this._locale}var cn=1e3,dn=60*cn,pn=60*dn,hn=3506328*pn;function fn(e,t){return(e%t+t)%t}function mn(e,t,a){return e<100&&e>=0?new Date(e+400,t,a)-hn:new Date(e,t,a).valueOf()}function yn(e,t,a){return e<100&&e>=0?Date.UTC(e+400,t,a)-hn:Date.UTC(e,t,a)}function gn(e){var t,i;if(void 0===(e=ie(e))||"millisecond"===e||!this.isValid())return this;switch(i=this._isUTC?yn:mn,e){case"year":t=i(this.year(),0,1);break;case"quarter":t=i(this.year(),this.month()-this.month()%3,1);break;case"month":t=i(this.year(),this.month(),1);break;case"week":t=i(this.year(),this.month(),this.date()-this.weekday());break;case"isoWeek":t=i(this.year(),this.month(),this.date()-(this.isoWeekday()-1));break;case"day":case"date":t=i(this.year(),this.month(),this.date());break;case"hour":t=this._d.valueOf(),t-=fn(t+(this._isUTC?0:this.utcOffset()*dn),pn);break;case"minute":t=this._d.valueOf(),t-=fn(t,dn);break;case"second":t=this._d.valueOf(),t-=fn(t,cn)}return this._d.setTime(t),a.updateOffset(this,!0),this}function bn(e){var t,i;if(void 0===(e=ie(e))||"millisecond"===e||!this.isValid())return this;switch(i=this._isUTC?yn:mn,e){case"year":t=i(this.year()+1,0,1)-1;break;case"quarter":t=i(this.year(),this.month()-this.month()%3+3,1)-1;break;case"month":t=i(this.year(),this.month()+1,1)-1;break;case"week":t=i(this.year(),this.month(),this.date()-this.weekday()+7)-1;break;case"isoWeek":t=i(this.year(),this.month(),this.date()-(this.isoWeekday()-1)+7)-1;break;case"day":case"date":t=i(this.year(),this.month(),this.date()+1)-1;break;case"hour":t=this._d.valueOf(),t+=pn-fn(t+(this._isUTC?0:this.utcOffset()*dn),pn)-1;break;case"minute":t=this._d.valueOf(),t+=dn-fn(t,dn)-1;break;case"second":t=this._d.valueOf(),t+=cn-fn(t,cn)-1}return this._d.setTime(t),a.updateOffset(this,!0),this}function vn(){return this._d.valueOf()-6e4*(this._offset||0)}function _n(){return Math.floor(this.valueOf()/1e3)}function wn(){return new Date(this.valueOf())}function An(){var e=this;return[e.year(),e.month(),e.date(),e.hour(),e.minute(),e.second(),e.millisecond()]}function kn(){var e=this;return{years:e.year(),months:e.month(),date:e.date(),hours:e.hours(),minutes:e.minutes(),seconds:e.seconds(),milliseconds:e.milliseconds()}}function Sn(){return this.isValid()?this.toISOString():null}function Nn(){return y(this)}function xn(){return p({},m(this))}function Tn(){return m(this).overflow}function Mn(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}}function Vn(e,t){var i,n,r,s=this._eras||ba("en")._eras;for(i=0,n=s.length;i<n;++i)switch("string"==typeof s[i].since&&(r=a(s[i].since).startOf("day"),s[i].since=r.valueOf()),typeof s[i].until){case"undefined":s[i].until=1/0;break;case"string":r=a(s[i].until).startOf("day").valueOf(),s[i].until=r.valueOf()}return s}function Cn(e,t,a){var i,n,r,s,o,l=this.eras();for(e=e.toUpperCase(),i=0,n=l.length;i<n;++i)if(r=l[i].name.toUpperCase(),s=l[i].abbr.toUpperCase(),o=l[i].narrow.toUpperCase(),a)switch(t){case"N":case"NN":case"NNN":if(s===e)return l[i];break;case"NNNN":if(r===e)return l[i];break;case"NNNNN":if(o===e)return l[i]}else if([r,s,o].indexOf(e)>=0)return l[i]}function In(e,t){var i=e.since<=e.until?1:-1;return void 0===t?a(e.since).year():a(e.since).year()+(t-e.offset)*i}function Fn(){var e,t,a,i=this.localeData().eras();for(e=0,t=i.length;e<t;++e){if(a=this.clone().startOf("day").valueOf(),i[e].since<=a&&a<=i[e].until)return i[e].name;if(i[e].until<=a&&a<=i[e].since)return i[e].name}return""}function En(){var e,t,a,i=this.localeData().eras();for(e=0,t=i.length;e<t;++e){if(a=this.clone().startOf("day").valueOf(),i[e].since<=a&&a<=i[e].until)return i[e].narrow;if(i[e].until<=a&&a<=i[e].since)return i[e].narrow}return""}function Dn(){var e,t,a,i=this.localeData().eras();for(e=0,t=i.length;e<t;++e){if(a=this.clone().startOf("day").valueOf(),i[e].since<=a&&a<=i[e].until)return i[e].abbr;if(i[e].until<=a&&a<=i[e].since)return i[e].abbr}return""}function Ln(){var e,t,i,n,r=this.localeData().eras();for(e=0,t=r.length;e<t;++e)if(i=r[e].since<=r[e].until?1:-1,n=this.clone().startOf("day").valueOf(),r[e].since<=n&&n<=r[e].until||r[e].until<=n&&n<=r[e].since)return(this.year()-a(r[e].since).year())*i+r[e].offset;return this.year()}function Rn(e){return s(this,"_erasNameRegex")||zn.call(this),e?this._erasNameRegex:this._erasRegex}function Pn(e){return s(this,"_erasAbbrRegex")||zn.call(this),e?this._erasAbbrRegex:this._erasRegex}function On(e){return s(this,"_erasNarrowRegex")||zn.call(this),e?this._erasNarrowRegex:this._erasRegex}function Bn(e,t){return t.erasAbbrRegex(e)}function $n(e,t){return t.erasNameRegex(e)}function jn(e,t){return t.erasNarrowRegex(e)}function Un(e,t){return t._eraYearOrdinalRegex||ve}function zn(){var e,t,a,i,n,r=[],s=[],o=[],l=[],u=this.eras();for(e=0,t=u.length;e<t;++e)a=Ce(u[e].name),i=Ce(u[e].abbr),n=Ce(u[e].narrow),s.push(a),r.push(i),o.push(n),l.push(a),l.push(i),l.push(n);this._erasRegex=new RegExp("^("+l.join("|")+")","i"),this._erasNameRegex=new RegExp("^("+s.join("|")+")","i"),this._erasAbbrRegex=new RegExp("^("+r.join("|")+")","i"),this._erasNarrowRegex=new RegExp("^("+o.join("|")+")","i")}function Wn(e,t){$(0,[e,e.length],0,t)}function Hn(e){return Kn.call(this,e,this.week(),this.weekday()+this.localeData()._week.dow,this.localeData()._week.dow,this.localeData()._week.doy)}function Yn(e){return Kn.call(this,e,this.isoWeek(),this.isoWeekday(),1,4)}function Gn(){return St(this.year(),1,4)}function qn(){return St(this.isoWeekYear(),1,4)}function Zn(){var e=this.localeData()._week;return St(this.year(),e.dow,e.doy)}function Jn(){var e=this.localeData()._week;return St(this.weekYear(),e.dow,e.doy)}function Kn(e,t,a,i,n){var r;return null==e?kt(this,i,n).year:(t>(r=St(e,i,n))&&(t=r),Xn.call(this,e,t,a,i,n))}function Xn(e,t,a,i,n){var r=At(e,t,a,i,n),s=_t(r.year,0,r.dayOfYear);return this.year(s.getUTCFullYear()),this.month(s.getUTCMonth()),this.date(s.getUTCDate()),this}function Qn(e){return null==e?Math.ceil((this.month()+1)/3):this.month(3*(e-1)+this.month()%3)}$("N",0,0,"eraAbbr"),$("NN",0,0,"eraAbbr"),$("NNN",0,0,"eraAbbr"),$("NNNN",0,0,"eraName"),$("NNNNN",0,0,"eraNarrow"),$("y",["y",1],"yo","eraYear"),$("y",["yy",2],0,"eraYear"),$("y",["yyy",3],0,"eraYear"),$("y",["yyyy",4],0,"eraYear"),Te("N",Bn),Te("NN",Bn),Te("NNN",Bn),Te("NNNN",$n),Te("NNNNN",jn),De(["N","NN","NNN","NNNN","NNNNN"],(function(e,t,a,i){var n=a._locale.erasParse(e,i,a._strict);n?m(a).era=n:m(a).invalidEra=e})),Te("y",ve),Te("yy",ve),Te("yyy",ve),Te("yyyy",ve),Te("yo",Un),De(["y","yy","yyy","yyyy"],Oe),De(["yo"],(function(e,t,a,i){var n;a._locale._eraYearOrdinalRegex&&(n=e.match(a._locale._eraYearOrdinalRegex)),a._locale.eraYearOrdinalParse?t[Oe]=a._locale.eraYearOrdinalParse(e,n):t[Oe]=parseInt(e,10)})),$(0,["gg",2],0,(function(){return this.weekYear()%100})),$(0,["GG",2],0,(function(){return this.isoWeekYear()%100})),Wn("gggg","weekYear"),Wn("ggggg","weekYear"),Wn("GGGG","isoWeekYear"),Wn("GGGGG","isoWeekYear"),Te("G",_e),Te("g",_e),Te("GG",he,ue),Te("gg",he,ue),Te("GGGG",ge,de),Te("gggg",ge,de),Te("GGGGG",be,pe),Te("ggggg",be,pe),Le(["gggg","ggggg","GGGG","GGGGG"],(function(e,t,a,i){t[i.substr(0,2)]=Fe(e)})),Le(["gg","GG"],(function(e,t,i,n){t[n]=a.parseTwoDigitYear(e)})),$("Q",0,"Qo","quarter"),Te("Q",le),De("Q",(function(e,t){t[Be]=3*(Fe(e)-1)})),$("D",["DD",2],"Do","date"),Te("D",he,Ne),Te("DD",he,ue),Te("Do",(function(e,t){return e?t._dayOfMonthOrdinalParse||t._ordinalParse:t._dayOfMonthOrdinalParseLenient})),De(["D","DD"],$e),De("Do",(function(e,t){t[$e]=Fe(e.match(he)[0])}));var er=Ke("Date",!0);function tr(e){var t=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==e?t:this.add(e-t,"d")}$("DDD",["DDDD",3],"DDDo","dayOfYear"),Te("DDD",ye),Te("DDDD",ce),De(["DDD","DDDD"],(function(e,t,a){a._dayOfYear=Fe(e)})),$("m",["mm",2],0,"minute"),Te("m",he,xe),Te("mm",he,ue),De(["m","mm"],Ue);var ar=Ke("Minutes",!1);$("s",["ss",2],0,"second"),Te("s",he,xe),Te("ss",he,ue),De(["s","ss"],ze);var ir,nr,rr=Ke("Seconds",!1);for($("S",0,0,(function(){return~~(this.millisecond()/100)})),$(0,["SS",2],0,(function(){return~~(this.millisecond()/10)})),$(0,["SSS",3],0,"millisecond"),$(0,["SSSS",4],0,(function(){return 10*this.millisecond()})),$(0,["SSSSS",5],0,(function(){return 100*this.millisecond()})),$(0,["SSSSSS",6],0,(function(){return 1e3*this.millisecond()})),$(0,["SSSSSSS",7],0,(function(){return 1e4*this.millisecond()})),$(0,["SSSSSSSS",8],0,(function(){return 1e5*this.millisecond()})),$(0,["SSSSSSSSS",9],0,(function(){return 1e6*this.millisecond()})),Te("S",ye,le),Te("SS",ye,ue),Te("SSS",ye,ce),ir="SSSS";ir.length<=9;ir+="S")Te(ir,ve);function sr(e,t){t[We]=Fe(1e3*("0."+e))}for(ir="S";ir.length<=9;ir+="S")De(ir,sr);function or(){return this._isUTC?"UTC":""}function lr(){return this._isUTC?"Coordinated Universal Time":""}nr=Ke("Milliseconds",!1),$("z",0,0,"zoneAbbr"),$("zz",0,0,"zoneName");var ur=w.prototype;function cr(e){return Za(1e3*e)}function dr(){return Za.apply(null,arguments).parseZone()}function pr(e){return e}ur.add=Di,ur.calendar=Ui,ur.clone=zi,ur.diff=Ji,ur.endOf=bn,ur.format=tn,ur.from=an,ur.fromNow=nn,ur.to=rn,ur.toNow=sn,ur.get=et,ur.invalidAt=Tn,ur.isAfter=Wi,ur.isBefore=Hi,ur.isBetween=Yi,ur.isSame=Gi,ur.isSameOrAfter=qi,ur.isSameOrBefore=Zi,ur.isValid=Nn,ur.lang=ln,ur.locale=on,ur.localeData=un,ur.max=Ka,ur.min=Ja,ur.parsingFlags=xn,ur.set=tt,ur.startOf=gn,ur.subtract=Li,ur.toArray=An,ur.toObject=kn,ur.toDate=wn,ur.toISOString=Qi,ur.inspect=en,"undefined"!=typeof Symbol&&null!=Symbol.for&&(ur[Symbol.for("nodejs.util.inspect.custom")]=function(){return"Moment<"+this.format()+">"}),ur.toJSON=Sn,ur.toString=Xi,ur.unix=_n,ur.valueOf=vn,ur.creationData=Mn,ur.eraName=Fn,ur.eraNarrow=En,ur.eraAbbr=Dn,ur.eraYear=Ln,ur.year=Ze,ur.isLeapYear=Je,ur.weekYear=Hn,ur.isoWeekYear=Yn,ur.quarter=ur.quarters=Qn,ur.month=ft,ur.daysInMonth=mt,ur.week=ur.weeks=Vt,ur.isoWeek=ur.isoWeeks=Ct,ur.weeksInYear=Zn,ur.weeksInWeekYear=Jn,ur.isoWeeksInYear=Gn,ur.isoWeeksInISOWeekYear=qn,ur.date=er,ur.day=ur.days=Ht,ur.weekday=Yt,ur.isoWeekday=Gt,ur.dayOfYear=tr,ur.hour=ur.hours=na,ur.minute=ur.minutes=ar,ur.second=ur.seconds=rr,ur.millisecond=ur.milliseconds=nr,ur.utcOffset=mi,ur.utc=gi,ur.local=bi,ur.parseZone=vi,ur.hasAlignedHourOffset=_i,ur.isDST=wi,ur.isLocal=ki,ur.isUtcOffset=Si,ur.isUtc=Ni,ur.isUTC=Ni,ur.zoneAbbr=or,ur.zoneName=lr,ur.dates=S("dates accessor is deprecated. Use date instead.",er),ur.months=S("months accessor is deprecated. Use month instead",ft),ur.years=S("years accessor is deprecated. Use year instead",Ze),ur.zone=S("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",yi),ur.isDSTShifted=S("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",Ai);var hr=I.prototype;function fr(e,t,a,i){var n=ba(),r=h().set(i,t);return n[a](r,e)}function mr(e,t,a){if(u(e)&&(t=e,e=void 0),e=e||"",null!=t)return fr(e,t,a,"month");var i,n=[];for(i=0;i<12;i++)n[i]=fr(e,i,a,"month");return n}function yr(e,t,a,i){"boolean"==typeof e?(u(t)&&(a=t,t=void 0),t=t||""):(a=t=e,e=!1,u(t)&&(a=t,t=void 0),t=t||"");var n,r=ba(),s=e?r._week.dow:0,o=[];if(null!=a)return fr(t,(a+s)%7,i,"day");for(n=0;n<7;n++)o[n]=fr(t,(n+s)%7,i,"day");return o}function gr(e,t){return mr(e,t,"months")}function br(e,t){return mr(e,t,"monthsShort")}function vr(e,t,a){return yr(e,t,a,"weekdays")}function _r(e,t,a){return yr(e,t,a,"weekdaysShort")}function wr(e,t,a){return yr(e,t,a,"weekdaysMin")}hr.calendar=E,hr.longDateFormat=G,hr.invalidDate=Z,hr.ordinal=X,hr.preparse=pr,hr.postformat=pr,hr.relativeTime=ee,hr.pastFuture=te,hr.set=V,hr.eras=Vn,hr.erasParse=Cn,hr.erasConvertYear=In,hr.erasAbbrRegex=Pn,hr.erasNameRegex=Rn,hr.erasNarrowRegex=On,hr.months=ut,hr.monthsShort=ct,hr.monthsParse=pt,hr.monthsRegex=gt,hr.monthsShortRegex=yt,hr.week=Nt,hr.firstDayOfYear=Mt,hr.firstDayOfWeek=Tt,hr.weekdays=$t,hr.weekdaysMin=Ut,hr.weekdaysShort=jt,hr.weekdaysParse=Wt,hr.weekdaysRegex=qt,hr.weekdaysShortRegex=Zt,hr.weekdaysMinRegex=Jt,hr.isPM=aa,hr.meridiem=ra,ma("en",{eras:[{since:"0001-01-01",until:1/0,offset:1,name:"Anno Domini",narrow:"AD",abbr:"AD"},{since:"0000-12-31",until:-1/0,offset:1,name:"Before Christ",narrow:"BC",abbr:"BC"}],dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10;return e+(1===Fe(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")}}),a.lang=S("moment.lang is deprecated. Use moment.locale instead.",ma),a.langData=S("moment.langData is deprecated. Use moment.localeData instead.",ba);var Ar=Math.abs;function kr(){var e=this._data;return this._milliseconds=Ar(this._milliseconds),this._days=Ar(this._days),this._months=Ar(this._months),e.milliseconds=Ar(e.milliseconds),e.seconds=Ar(e.seconds),e.minutes=Ar(e.minutes),e.hours=Ar(e.hours),e.months=Ar(e.months),e.years=Ar(e.years),this}function Sr(e,t,a,i){var n=Mi(t,a);return e._milliseconds+=i*n._milliseconds,e._days+=i*n._days,e._months+=i*n._months,e._bubble()}function Nr(e,t){return Sr(this,e,t,1)}function xr(e,t){return Sr(this,e,t,-1)}function Tr(e){return e<0?Math.floor(e):Math.ceil(e)}function Mr(){var e,t,a,i,n,r=this._milliseconds,s=this._days,o=this._months,l=this._data;return r>=0&&s>=0&&o>=0||r<=0&&s<=0&&o<=0||(r+=864e5*Tr(Cr(o)+s),s=0,o=0),l.milliseconds=r%1e3,e=Ie(r/1e3),l.seconds=e%60,t=Ie(e/60),l.minutes=t%60,a=Ie(t/60),l.hours=a%24,s+=Ie(a/24),o+=n=Ie(Vr(s)),s-=Tr(Cr(n)),i=Ie(o/12),o%=12,l.days=s,l.months=o,l.years=i,this}function Vr(e){return 4800*e/146097}function Cr(e){return 146097*e/4800}function Ir(e){if(!this.isValid())return NaN;var t,a,i=this._milliseconds;if("month"===(e=ie(e))||"quarter"===e||"year"===e)switch(t=this._days+i/864e5,a=this._months+Vr(t),e){case"month":return a;case"quarter":return a/3;case"year":return a/12}else switch(t=this._days+Math.round(Cr(this._months)),e){case"week":return t/7+i/6048e5;case"day":return t+i/864e5;case"hour":return 24*t+i/36e5;case"minute":return 1440*t+i/6e4;case"second":return 86400*t+i/1e3;case"millisecond":return Math.floor(864e5*t)+i;default:throw new Error("Unknown unit "+e)}}function Fr(e){return function(){return this.as(e)}}var Er=Fr("ms"),Dr=Fr("s"),Lr=Fr("m"),Rr=Fr("h"),Pr=Fr("d"),Or=Fr("w"),Br=Fr("M"),$r=Fr("Q"),jr=Fr("y"),Ur=Er;function zr(){return Mi(this)}function Wr(e){return e=ie(e),this.isValid()?this[e+"s"]():NaN}function Hr(e){return function(){return this.isValid()?this._data[e]:NaN}}var Yr=Hr("milliseconds"),Gr=Hr("seconds"),qr=Hr("minutes"),Zr=Hr("hours"),Jr=Hr("days"),Kr=Hr("months"),Xr=Hr("years");function Qr(){return Ie(this.days()/7)}var es=Math.round,ts={ss:44,s:45,m:45,h:22,d:26,w:null,M:11};function as(e,t,a,i,n){return n.relativeTime(t||1,!!a,e,i)}function is(e,t,a,i){var n=Mi(e).abs(),r=es(n.as("s")),s=es(n.as("m")),o=es(n.as("h")),l=es(n.as("d")),u=es(n.as("M")),c=es(n.as("w")),d=es(n.as("y")),p=r<=a.ss&&["s",r]||r<a.s&&["ss",r]||s<=1&&["m"]||s<a.m&&["mm",s]||o<=1&&["h"]||o<a.h&&["hh",o]||l<=1&&["d"]||l<a.d&&["dd",l];return null!=a.w&&(p=p||c<=1&&["w"]||c<a.w&&["ww",c]),(p=p||u<=1&&["M"]||u<a.M&&["MM",u]||d<=1&&["y"]||["yy",d])[2]=t,p[3]=+e>0,p[4]=i,as.apply(null,p)}function ns(e){return void 0===e?es:"function"==typeof e&&(es=e,!0)}function rs(e,t){return void 0!==ts[e]&&(void 0===t?ts[e]:(ts[e]=t,"s"===e&&(ts.ss=t-1),!0))}function ss(e,t){if(!this.isValid())return this.localeData().invalidDate();var a,i,n=!1,r=ts;return"object"==typeof e&&(t=e,e=!1),"boolean"==typeof e&&(n=e),"object"==typeof t&&(r=Object.assign({},ts,t),null!=t.s&&null==t.ss&&(r.ss=t.s-1)),i=is(this,!n,r,a=this.localeData()),n&&(i=a.pastFuture(+this,i)),a.postformat(i)}var os=Math.abs;function ls(e){return(e>0)-(e<0)||+e}function us(){if(!this.isValid())return this.localeData().invalidDate();var e,t,a,i,n,r,s,o,l=os(this._milliseconds)/1e3,u=os(this._days),c=os(this._months),d=this.asSeconds();return d?(e=Ie(l/60),t=Ie(e/60),l%=60,e%=60,a=Ie(c/12),c%=12,i=l?l.toFixed(3).replace(/\.?0+$/,""):"",n=d<0?"-":"",r=ls(this._months)!==ls(d)?"-":"",s=ls(this._days)!==ls(d)?"-":"",o=ls(this._milliseconds)!==ls(d)?"-":"",n+"P"+(a?r+a+"Y":"")+(c?r+c+"M":"")+(u?s+u+"D":"")+(t||e||l?"T":"")+(t?o+t+"H":"")+(e?o+e+"M":"")+(l?o+i+"S":"")):"P0D"}var cs=si.prototype;return cs.isValid=ni,cs.abs=kr,cs.add=Nr,cs.subtract=xr,cs.as=Ir,cs.asMilliseconds=Er,cs.asSeconds=Dr,cs.asMinutes=Lr,cs.asHours=Rr,cs.asDays=Pr,cs.asWeeks=Or,cs.asMonths=Br,cs.asQuarters=$r,cs.asYears=jr,cs.valueOf=Ur,cs._bubble=Mr,cs.clone=zr,cs.get=Wr,cs.milliseconds=Yr,cs.seconds=Gr,cs.minutes=qr,cs.hours=Zr,cs.days=Jr,cs.weeks=Qr,cs.months=Kr,cs.years=Xr,cs.humanize=ss,cs.toISOString=us,cs.toString=us,cs.toJSON=us,cs.locale=on,cs.localeData=un,cs.toIsoString=S("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",us),cs.lang=ln,$("X",0,0,"unix"),$("x",0,0,"valueOf"),Te("x",_e),Te("X",ke),De("X",(function(e,t,a){a._d=new Date(1e3*parseFloat(e))})),De("x",(function(e,t,a){a._d=new Date(Fe(e))})),
2
2
  //! moment.js
3
3
  a.version="2.30.1",i(Za),a.fn=ur,a.min=Qa,a.max=ei,a.now=ti,a.utc=h,a.unix=cr,a.months=gr,a.isDate=c,a.locale=ma,a.invalid=g,a.duration=Mi,a.isMoment=A,a.weekdays=vr,a.parseZone=dr,a.localeData=ba,a.isDuration=oi,a.monthsShort=br,a.weekdaysMin=wr,a.defineLocale=ya,a.updateLocale=ga,a.locales=va,a.weekdaysShort=_r,a.normalizeUnits=ie,a.relativeTimeRounding=ns,a.relativeTimeThreshold=rs,a.calendarFormat=ji,a.prototype=ur,a.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"GGGG-[W]WW",MONTH:"YYYY-MM"},a}()),j.exports),W=O(z);class H{apiClient;debug;apiCalls=[];apiCallsStartTime=null;constructor(e){if(!e)throw"A lumino client needs to be passed.";this.apiClient=e,this.debug=false,this.debug&&(this.apiCalls=[],this.apiCallsStartTime=null)}start(){this.debug&&(this.apiCallsStartTime=W(),this.apiCalls=[])}end(){if(this.debug){console.log("Calls: "+this.apiCalls.length);for(const e of this.apiCalls){const t=e.callTime.toString().padStart(6," "),a=e.totalTime.toString().padStart(6," ");console.log(t+a+" -> "+e.caller+"::"+e.method+" ("+JSON.stringify(e.params)+")")}}}async call(e,t,...a){try{if(this.debug){const i=W(),n=await this.apiClient[t](...a),r=W(),s=r.diff(i,"milliseconds"),o=r.diff(this.apiCallsStartTime,"milliseconds");return this.apiCalls.push({caller:e,method:t,params:a,callTime:s,totalTime:o}),n}return this.apiClient[t](...a)}catch(e){throw y.$emit("client:fatalError","API call failed: "+t),e}}}let Y=class{itemCache;apiGateway;constructor(e){this.itemCache=new Map,this.apiGateway=e}clear(){this.itemCache.clear()}async getItem(e){if(this.itemCache.has(e))return this.itemCache.get(e);const t=await this.apiGateway.call("ItemCache::getItem","getItem",e);return this.itemCache.set(e,t),t}};class G{id;type;data;constructor(e,t,a){this.id=e,this.type=t,this.data=a}}class q{ownerItem;constructor(e=void 0){this.ownerItem=e}createSnapshot(){throw"createSnapshot not implemented!"}restoreFromSnapshot(e,t){throw"restoreFromSnapshot not implemented!"}rollbackFromSnapshot(e){throw"rollbackFromSnapshot not implemented!"}_getElementById(e,t){for(const a of t)if(a.id===e)return a;return null}_rollbackArray(e,t,a){if(!Array.isArray(e))return void console.log("_rollbackArray(): no array given!");const i=[],n=[];let r=0;for(const a of t){const t=this._getElementById(a.id,e);t?n.push({element:t,snapshot:a}):i.push({position:r,snapshot:a}),r++}const s=[];r=0;for(const a of e){this._getElementById(a.id,t)||s.push(r-s.length),r++}for(const t of s)e.splice(t,1);for(const e of n)e.element.rollbackFromSnapshot(e.snapshot);for(const t of i){const i=a(t.snapshot,this);e.splice(t.position,0,i)}}}class Z extends q{id;srcNode;srcSlot;destNode;destSlot;posX;posY;constructor(e,t){super(t),_.assert(e,"NkConnection: data is null or undefined!"),_.assert(e.srcNode,"NkConnection: srcNode is null or undefined!"),_.assert(e.srcSlot,"NkConnection: srcSlot is null or undefined!"),_.assert(e.destNode,"NkConnection: srcNode is null or undefined!"),_.assert(e.destSlot,"NkConnection: srcSlot is null or undefined!"),this.id=e.id||_.createItemOrBlockID(),this.srcNode=e.srcNode,this.srcSlot=e.srcSlot,this.destNode=e.destNode,this.destSlot=e.destSlot,this.posX=e.posX||0,this.posY=e.posY||0}getId(){return this.id}setPosition(e,t){this.posX=e,this.posY=t}getPosX(){return this.posX}getPosY(){return this.posY}getSrcNode(){return this.srcNode}getDestNode(){return this.destNode}getSrcSlot(){return this.srcSlot}getDestSlot(){return this.destSlot}setSrcNode(e){this.srcNode=e}setDestNode(e){this.destNode=e}setSrcSlot(e){this.srcSlot=e}setDestSlot(e){this.destSlot=e}clone(){return new Z({srcNode:this.srcNode,srcSlot:this.srcSlot,destNode:this.destNode,destSlot:this.destSlot,posX:this.posX,posY:this.posY},this.ownerItem)}createSnapshot(){return new G(this.id,"connection",{id:this.id,srcNode:this.srcNode,srcSlot:this.srcSlot,destNode:this.destNode,destSlot:this.destSlot,posX:this.posX,posY:this.posY})}restoreFromSnapshot(e){this.id=e.id,this.srcNode=e.data.srcNode,this.srcSlot=e.data.srcSlot,this.destNode=e.data.destNode,this.destSlot=e.data.destSlot,this.posX=e.data.posX,this.posY=e.data.posY}rollbackFromSnapshot(e){this.srcNode=e.data.srcNode,this.srcSlot=e.data.srcSlot,this.destNode=e.data.destNode,this.destSlot=e.data.destSlot,this.posX=e.data.posX,this.posY=e.data.posY}}class J extends q{id;name=void 0;displayName=void 0;value;script;type=void 0;datatype=void 0;minValue=void 0;maxValue=void 0;order=0;inject=void 0;info=void 0;constructor(e=void 0,t=void 0,a=void 0,i=void 0){super(i),this.value=a,this.script=e,this.id=_.createGUID(),this.name=t,this.displayName=t,this._updateDisplayName()}getId(){return this.id}setName(e){this.name=e,this._updateDisplayName()}setOrder(e){this.order=e}setInfo(e){this.info=e}clone(e=new Map){const t=new J;return t.ownerItem=this.ownerItem,t.value=e.get(this.value)??this.value,t.script=this.script,t.type=this.type,t.minValue=this.minValue,t.maxValue=this.maxValue,t.order=this.order,t.info=this.info,t.setName(this.name),t}clearDefinition(){this.type=void 0}setDefinition(e){this.inject=e.inject;const t=e.type.toLowerCase();switch(t){case"boolean":case"bool":this.type="Attribute",this.datatype="Boolean",this.value=void 0!==this.value?this._toBoolean(this.value):this._toBoolean(e.defaultValue);break;case"number":{this.type="Attribute",this.datatype="Float",this.value=void 0!==this.value?Number(this.value):Number(e.defaultValue);const t=this._parseTypeParams(e.typeparams,2);t?(this.minValue=Number(t[0]),this.maxValue=Number(t[1])):(this.minValue=void 0,this.maxValue=void 0);break}case"string":this.type="Attribute",this.datatype="String",this.value=void 0!==this.value&&null!==this.value?this.value.toString():e.defaultValue?e.defaultValue.toString():"";break;case"node":this.type="Attribute",this.datatype="Node";break;default:console.error("Unknown script field type: "+t),this.type="Attribute",this.datatype="String",this.value=this.value?this.value.toString():e.defaultValue?e.defaultValue.toString():""}}_toBoolean(e){return null!=e&&(!0===e||!1===e?e:"false"!==e.toString().toLowerCase())}_updateDisplayName(){this.name?this.displayName=_.toUserFriendlyName(this.name):this.displayName=""}_parseTypeParams(e,t){if(!e)return null;const a=e.split(",").map((e=>e.trim()));return a.length!==t?null:a}createSnapshot(){return new G(this.name,"scriptfield",{id:this.id,type:this.type,name:this.name,value:this.value,datatype:this.datatype,minValue:this.minValue,maxValue:this.maxValue,order:this.order,info:this.info})}}function K(e,t,a){const{datatype:i,minValue:n,maxValue:r,name:s,value:o,type:l,order:u,id:c,info:d}=e.data,p=new J(t,s,o,a);return p.id=c,p.type=l,p.datatype=i,p.minValue=n,p.maxValue=r,p.order=u,p.info=d,p}class X extends q{id=void 0;block=void 0;fields=[];item=null;deferInitCall=!1;constructor(e=void 0,t=void 0,a=void 0,i=void 0){super(a),e instanceof G?this.restoreFromSnapshot(e,t):(this.id=e||_.createItemOrBlockID(),this.block=t),this.item||(this.item={value:i,linkableItems:[],linkableTypes:["Script"]}),this.item=S.instance.proxyScriptItem(this.item,this,this.ownerItem),this.fields=S.instance.proxyScriptFieldsArray(this.fields,this,this.ownerItem)}getId(){return this.id}makeIdsUnique(e,t=!1){if(this.id)if(e.has(this.id)||t){const t=_.createItemOrBlockID();e.set(this.id,t),this.id=t}else e.set(this.id,this.id)}transformNodeIds(e){for(const t of this.fields)t.value&&e.has(t.value)&&(t.value=e.get(t.value))}clone(e=new Map){const t=new X(void 0,this.block,this.ownerItem,this.item.value);for(const a of this.fields){const i=a.clone(e);i.script=t,t.addField(i)}return t}createFieldsFromDefinition(e=[]){function t(e,t){for(const a of e)if(a.name===t)return a;return null}for(const a of this.fields)t(e,a.name)||a.clearDefinition();let a=0;for(const i of e){let e=t(this.fields,i.name);e||(e=new J(this,i.name,void 0,this.ownerItem),this.addField(e)),e.setOrder(a++),e.setInfo(i.info),e.setDefinition(i)}this.fields.sort((function(e,t){return e.order-t.order}))}clearFieldTypes(){this.createFieldsFromDefinition()}addField(e){this.fields.push(S.instance.proxyScriptField(e,this,this.ownerItem))}createSnapshot(){const e=[];for(const t of this.fields)e.push(t.createSnapshot());return new G(this.id,"script",{id:this.id,value:this.item.value,fields:e})}restoreFromSnapshot(e,t){this.id=e.data.id,this.block=t,this.item={value:e.data.value,linkableItems:[],linkableTypes:["Script"]};const a=[];this._rollbackArray(a,e.data.fields,(e=>{const t=K(e,this,this.ownerItem);return S.instance.proxyScriptField(t,this,this.ownerItem)})),this.fields=a}rollbackFromSnapshot(e){e.data.value&&(this.item.value=e.data.value),this._rollbackArray(this.fields,e.data.fields,(e=>{const t=K(e,this,this.ownerItem);return S.instance.proxyScriptField(t,this,this.ownerItem)}))}}var Q,ee={exports:{}},te=ee.exports;
4
4
  /**
@@ -8,12 +8,12 @@ a.version="2.30.1",i(Za),a.fn=ur,a.min=Qa,a.max=ei,a.now=ti,a.utc=h,a.unix=cr,a.
8
8
  * Released under MIT license <https://lodash.com/license>
9
9
  * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
10
10
  * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
11
- */var ae=(Q||(Q=1,function(e,t){(function(){var a,i="Expected a function",n="__lodash_hash_undefined__",r="__lodash_placeholder__",s=32,o=128,l=256,u=1/0,c=9007199254740991,d=NaN,p=4294967295,h=[["ary",o],["bind",1],["bindKey",2],["curry",8],["curryRight",16],["flip",512],["partial",s],["partialRight",64],["rearg",l]],f="[object Arguments]",m="[object Array]",y="[object Boolean]",g="[object Date]",b="[object Error]",v="[object Function]",_="[object GeneratorFunction]",w="[object Map]",A="[object Number]",k="[object Object]",S="[object Promise]",N="[object RegExp]",x="[object Set]",T="[object String]",M="[object Symbol]",V="[object WeakMap]",C="[object ArrayBuffer]",I="[object DataView]",F="[object Float32Array]",E="[object Float64Array]",D="[object Int8Array]",L="[object Int16Array]",R="[object Int32Array]",O="[object Uint8Array]",B="[object Uint8ClampedArray]",$="[object Uint16Array]",j="[object Uint32Array]",U=/\b__p \+= '';/g,z=/\b(__p \+=) '' \+/g,W=/(__e\(.*?\)|\b__t\)) \+\n'';/g,H=/&(?:amp|lt|gt|quot|#39);/g,Y=/[&<>"']/g,G=RegExp(H.source),q=RegExp(Y.source),Z=/<%-([\s\S]+?)%>/g,J=/<%([\s\S]+?)%>/g,K=/<%=([\s\S]+?)%>/g,X=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Q=/^\w*$/,ee=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,te=/[\\^$.*+?()[\]{}|]/g,ae=RegExp(te.source),ie=/^\s+/,ne=/\s/,re=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,se=/\{\n\/\* \[wrapped with (.+)\] \*/,oe=/,? & /,le=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,ue=/[()=,{}\[\]\/\s]/,ce=/\\(\\)?/g,de=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,pe=/\w*$/,he=/^[-+]0x[0-9a-f]+$/i,fe=/^0b[01]+$/i,me=/^\[object .+?Constructor\]$/,ye=/^0o[0-7]+$/i,ge=/^(?:0|[1-9]\d*)$/,be=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,ve=/($^)/,_e=/['\n\r\u2028\u2029\\]/g,we="\\ud800-\\udfff",Ae="\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff",ke="\\u2700-\\u27bf",Se="a-z\\xdf-\\xf6\\xf8-\\xff",Ne="A-Z\\xc0-\\xd6\\xd8-\\xde",xe="\\ufe0e\\ufe0f",Te="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Me="['’]",Ve="["+we+"]",Ce="["+Te+"]",Ie="["+Ae+"]",Fe="\\d+",Ee="["+ke+"]",De="["+Se+"]",Le="[^"+we+Te+Fe+ke+Se+Ne+"]",Re="\\ud83c[\\udffb-\\udfff]",Pe="[^"+we+"]",Oe="(?:\\ud83c[\\udde6-\\uddff]){2}",Be="[\\ud800-\\udbff][\\udc00-\\udfff]",$e="["+Ne+"]",je="\\u200d",Ue="(?:"+De+"|"+Le+")",ze="(?:"+$e+"|"+Le+")",We="(?:['’](?:d|ll|m|re|s|t|ve))?",He="(?:['’](?:D|LL|M|RE|S|T|VE))?",Ye="(?:"+Ie+"|"+Re+")?",Ge="["+xe+"]?",qe=Ge+Ye+"(?:"+je+"(?:"+[Pe,Oe,Be].join("|")+")"+Ge+Ye+")*",Ze="(?:"+[Ee,Oe,Be].join("|")+")"+qe,Je="(?:"+[Pe+Ie+"?",Ie,Oe,Be,Ve].join("|")+")",Ke=RegExp(Me,"g"),Xe=RegExp(Ie,"g"),Qe=RegExp(Re+"(?="+Re+")|"+Je+qe,"g"),et=RegExp([$e+"?"+De+"+"+We+"(?="+[Ce,$e,"$"].join("|")+")",ze+"+"+He+"(?="+[Ce,$e+Ue,"$"].join("|")+")",$e+"?"+Ue+"+"+We,$e+"+"+He,"\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",Fe,Ze].join("|"),"g"),tt=RegExp("["+je+we+Ae+xe+"]"),at=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,it=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],nt=-1,rt={};rt[F]=rt[E]=rt[D]=rt[L]=rt[R]=rt[O]=rt[B]=rt[$]=rt[j]=!0,rt[f]=rt[m]=rt[C]=rt[y]=rt[I]=rt[g]=rt[b]=rt[v]=rt[w]=rt[A]=rt[k]=rt[N]=rt[x]=rt[T]=rt[V]=!1;var st={};st[f]=st[m]=st[C]=st[I]=st[y]=st[g]=st[F]=st[E]=st[D]=st[L]=st[R]=st[w]=st[A]=st[k]=st[N]=st[x]=st[T]=st[M]=st[O]=st[B]=st[$]=st[j]=!0,st[b]=st[v]=st[V]=!1;var ot={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},lt=parseFloat,ut=parseInt,ct="object"==typeof P&&P&&P.Object===Object&&P,dt="object"==typeof self&&self&&self.Object===Object&&self,pt=ct||dt||Function("return this")(),ht=t&&!t.nodeType&&t,ft=ht&&e&&!e.nodeType&&e,mt=ft&&ft.exports===ht,yt=mt&&ct.process,gt=function(){try{var e=ft&&ft.require&&ft.require("util").types;return e||yt&&yt.binding&&yt.binding("util")}catch(e){}}(),bt=gt&&gt.isArrayBuffer,vt=gt&&gt.isDate,_t=gt&&gt.isMap,wt=gt&&gt.isRegExp,At=gt&&gt.isSet,kt=gt&&gt.isTypedArray;function St(e,t,a){switch(a.length){case 0:return e.call(t);case 1:return e.call(t,a[0]);case 2:return e.call(t,a[0],a[1]);case 3:return e.call(t,a[0],a[1],a[2])}return e.apply(t,a)}function Nt(e,t,a,i){for(var n=-1,r=null==e?0:e.length;++n<r;){var s=e[n];t(i,s,a(s),e)}return i}function xt(e,t){for(var a=-1,i=null==e?0:e.length;++a<i&&!1!==t(e[a],a,e););return e}function Tt(e,t){for(var a=null==e?0:e.length;a--&&!1!==t(e[a],a,e););return e}function Mt(e,t){for(var a=-1,i=null==e?0:e.length;++a<i;)if(!t(e[a],a,e))return!1;return!0}function Vt(e,t){for(var a=-1,i=null==e?0:e.length,n=0,r=[];++a<i;){var s=e[a];t(s,a,e)&&(r[n++]=s)}return r}function Ct(e,t){return!(null==e||!e.length)&&$t(e,t,0)>-1}function It(e,t,a){for(var i=-1,n=null==e?0:e.length;++i<n;)if(a(t,e[i]))return!0;return!1}function Ft(e,t){for(var a=-1,i=null==e?0:e.length,n=Array(i);++a<i;)n[a]=t(e[a],a,e);return n}function Et(e,t){for(var a=-1,i=t.length,n=e.length;++a<i;)e[n+a]=t[a];return e}function Dt(e,t,a,i){var n=-1,r=null==e?0:e.length;for(i&&r&&(a=e[++n]);++n<r;)a=t(a,e[n],n,e);return a}function Lt(e,t,a,i){var n=null==e?0:e.length;for(i&&n&&(a=e[--n]);n--;)a=t(a,e[n],n,e);return a}function Rt(e,t){for(var a=-1,i=null==e?0:e.length;++a<i;)if(t(e[a],a,e))return!0;return!1}var Pt=Wt("length");function Ot(e,t,a){var i;return a(e,(function(e,a,n){if(t(e,a,n))return i=a,!1})),i}function Bt(e,t,a,i){for(var n=e.length,r=a+(i?1:-1);i?r--:++r<n;)if(t(e[r],r,e))return r;return-1}function $t(e,t,a){return t==t?function(e,t,a){for(var i=a-1,n=e.length;++i<n;)if(e[i]===t)return i;return-1}(e,t,a):Bt(e,Ut,a)}function jt(e,t,a,i){for(var n=a-1,r=e.length;++n<r;)if(i(e[n],t))return n;return-1}function Ut(e){return e!=e}function zt(e,t){var a=null==e?0:e.length;return a?Gt(e,t)/a:d}function Wt(e){return function(t){return null==t?a:t[e]}}function Ht(e){return function(t){return null==e?a:e[t]}}function Yt(e,t,a,i,n){return n(e,(function(e,n,r){a=i?(i=!1,e):t(a,e,n,r)})),a}function Gt(e,t){for(var i,n=-1,r=e.length;++n<r;){var s=t(e[n]);s!==a&&(i=i===a?s:i+s)}return i}function qt(e,t){for(var a=-1,i=Array(e);++a<e;)i[a]=t(a);return i}function Zt(e){return e?e.slice(0,pa(e)+1).replace(ie,""):e}function Jt(e){return function(t){return e(t)}}function Kt(e,t){return Ft(t,(function(t){return e[t]}))}function Xt(e,t){return e.has(t)}function Qt(e,t){for(var a=-1,i=e.length;++a<i&&$t(t,e[a],0)>-1;);return a}function ea(e,t){for(var a=e.length;a--&&$t(t,e[a],0)>-1;);return a}var ta=Ht({"À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","Ç":"C","ç":"c","Ð":"D","ð":"d","È":"E","É":"E","Ê":"E","Ë":"E","è":"e","é":"e","ê":"e","ë":"e","Ì":"I","Í":"I","Î":"I","Ï":"I","ì":"i","í":"i","î":"i","ï":"i","Ñ":"N","ñ":"n","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","Ù":"U","Ú":"U","Û":"U","Ü":"U","ù":"u","ú":"u","û":"u","ü":"u","Ý":"Y","ý":"y","ÿ":"y","Æ":"Ae","æ":"ae","Þ":"Th","þ":"th","ß":"ss","Ā":"A","Ă":"A","Ą":"A","ā":"a","ă":"a","ą":"a","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","ć":"c","ĉ":"c","ċ":"c","č":"c","Ď":"D","Đ":"D","ď":"d","đ":"d","Ē":"E","Ĕ":"E","Ė":"E","Ę":"E","Ě":"E","ē":"e","ĕ":"e","ė":"e","ę":"e","ě":"e","Ĝ":"G","Ğ":"G","Ġ":"G","Ģ":"G","ĝ":"g","ğ":"g","ġ":"g","ģ":"g","Ĥ":"H","Ħ":"H","ĥ":"h","ħ":"h","Ĩ":"I","Ī":"I","Ĭ":"I","Į":"I","İ":"I","ĩ":"i","ī":"i","ĭ":"i","į":"i","ı":"i","Ĵ":"J","ĵ":"j","Ķ":"K","ķ":"k","ĸ":"k","Ĺ":"L","Ļ":"L","Ľ":"L","Ŀ":"L","Ł":"L","ĺ":"l","ļ":"l","ľ":"l","ŀ":"l","ł":"l","Ń":"N","Ņ":"N","Ň":"N","Ŋ":"N","ń":"n","ņ":"n","ň":"n","ŋ":"n","Ō":"O","Ŏ":"O","Ő":"O","ō":"o","ŏ":"o","ő":"o","Ŕ":"R","Ŗ":"R","Ř":"R","ŕ":"r","ŗ":"r","ř":"r","Ś":"S","Ŝ":"S","Ş":"S","Š":"S","ś":"s","ŝ":"s","ş":"s","š":"s","Ţ":"T","Ť":"T","Ŧ":"T","ţ":"t","ť":"t","ŧ":"t","Ũ":"U","Ū":"U","Ŭ":"U","Ů":"U","Ű":"U","Ų":"U","ũ":"u","ū":"u","ŭ":"u","ů":"u","ű":"u","ų":"u","Ŵ":"W","ŵ":"w","Ŷ":"Y","ŷ":"y","Ÿ":"Y","Ź":"Z","Ż":"Z","Ž":"Z","ź":"z","ż":"z","ž":"z","IJ":"IJ","ij":"ij","Œ":"Oe","œ":"oe","ʼn":"'n","ſ":"s"}),aa=Ht({"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"});function ia(e){return"\\"+ot[e]}function na(e){return tt.test(e)}function ra(e){var t=-1,a=Array(e.size);return e.forEach((function(e,i){a[++t]=[i,e]})),a}function sa(e,t){return function(a){return e(t(a))}}function oa(e,t){for(var a=-1,i=e.length,n=0,s=[];++a<i;){var o=e[a];o!==t&&o!==r||(e[a]=r,s[n++]=a)}return s}function la(e){var t=-1,a=Array(e.size);return e.forEach((function(e){a[++t]=e})),a}function ua(e){var t=-1,a=Array(e.size);return e.forEach((function(e){a[++t]=[e,e]})),a}function ca(e){return na(e)?function(e){for(var t=Qe.lastIndex=0;Qe.test(e);)++t;return t}(e):Pt(e)}function da(e){return na(e)?function(e){return e.match(Qe)||[]}(e):function(e){return e.split("")}(e)}function pa(e){for(var t=e.length;t--&&ne.test(e.charAt(t)););return t}var ha=Ht({"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&#39;":"'"}),fa=function e(t){var P,ne=(t=null==t?pt:fa.defaults(pt.Object(),t,fa.pick(pt,it))).Array,we=t.Date,Ae=t.Error,ke=t.Function,Se=t.Math,Ne=t.Object,xe=t.RegExp,Te=t.String,Me=t.TypeError,Ve=ne.prototype,Ce=ke.prototype,Ie=Ne.prototype,Fe=t["__core-js_shared__"],Ee=Ce.toString,De=Ie.hasOwnProperty,Le=0,Re=(P=/[^.]+$/.exec(Fe&&Fe.keys&&Fe.keys.IE_PROTO||""))?"Symbol(src)_1."+P:"",Pe=Ie.toString,Oe=Ee.call(Ne),Be=pt._,$e=xe("^"+Ee.call(De).replace(te,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),je=mt?t.Buffer:a,Ue=t.Symbol,ze=t.Uint8Array,We=je?je.allocUnsafe:a,He=sa(Ne.getPrototypeOf,Ne),Ye=Ne.create,Ge=Ie.propertyIsEnumerable,qe=Ve.splice,Ze=Ue?Ue.isConcatSpreadable:a,Je=Ue?Ue.iterator:a,Qe=Ue?Ue.toStringTag:a,tt=function(){try{var e=cr(Ne,"defineProperty");return e({},"",{}),e}catch(e){}}(),ot=t.clearTimeout!==pt.clearTimeout&&t.clearTimeout,ct=we&&we.now!==pt.Date.now&&we.now,dt=t.setTimeout!==pt.setTimeout&&t.setTimeout,ht=Se.ceil,ft=Se.floor,yt=Ne.getOwnPropertySymbols,gt=je?je.isBuffer:a,Pt=t.isFinite,Ht=Ve.join,ma=sa(Ne.keys,Ne),ya=Se.max,ga=Se.min,ba=we.now,va=t.parseInt,_a=Se.random,wa=Ve.reverse,Aa=cr(t,"DataView"),ka=cr(t,"Map"),Sa=cr(t,"Promise"),Na=cr(t,"Set"),xa=cr(t,"WeakMap"),Ta=cr(Ne,"create"),Ma=xa&&new xa,Va={},Ca=Rr(Aa),Ia=Rr(ka),Fa=Rr(Sa),Ea=Rr(Na),Da=Rr(xa),La=Ue?Ue.prototype:a,Ra=La?La.valueOf:a,Pa=La?La.toString:a;function Oa(e){if(Qs(e)&&!Us(e)&&!(e instanceof Ua)){if(e instanceof ja)return e;if(De.call(e,"__wrapped__"))return Pr(e)}return new ja(e)}var Ba=function(){function e(){}return function(t){if(!Xs(t))return{};if(Ye)return Ye(t);e.prototype=t;var i=new e;return e.prototype=a,i}}();function $a(){}function ja(e,t){this.__wrapped__=e,this.__actions__=[],this.__chain__=!!t,this.__index__=0,this.__values__=a}function Ua(e){this.__wrapped__=e,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=p,this.__views__=[]}function za(e){var t=-1,a=null==e?0:e.length;for(this.clear();++t<a;){var i=e[t];this.set(i[0],i[1])}}function Wa(e){var t=-1,a=null==e?0:e.length;for(this.clear();++t<a;){var i=e[t];this.set(i[0],i[1])}}function Ha(e){var t=-1,a=null==e?0:e.length;for(this.clear();++t<a;){var i=e[t];this.set(i[0],i[1])}}function Ya(e){var t=-1,a=null==e?0:e.length;for(this.__data__=new Ha;++t<a;)this.add(e[t])}function Ga(e){var t=this.__data__=new Wa(e);this.size=t.size}function qa(e,t){var a=Us(e),i=!a&&js(e),n=!a&&!i&&Ys(e),r=!a&&!i&&!n&&oo(e),s=a||i||n||r,o=s?qt(e.length,Te):[],l=o.length;for(var u in e)!t&&!De.call(e,u)||s&&("length"==u||n&&("offset"==u||"parent"==u)||r&&("buffer"==u||"byteLength"==u||"byteOffset"==u)||gr(u,l))||o.push(u);return o}function Za(e){var t=e.length;return t?e[Yi(0,t-1)]:a}function Ja(e,t){return Er(Mn(e),ri(t,0,e.length))}function Ka(e){return Er(Mn(e))}function Xa(e,t,i){(i!==a&&!Os(e[t],i)||i===a&&!(t in e))&&ii(e,t,i)}function Qa(e,t,i){var n=e[t];De.call(e,t)&&Os(n,i)&&(i!==a||t in e)||ii(e,t,i)}function ei(e,t){for(var a=e.length;a--;)if(Os(e[a][0],t))return a;return-1}function ti(e,t,a,i){return ci(e,(function(e,n,r){t(i,e,a(e),r)})),i}function ai(e,t){return e&&Vn(t,Co(t),e)}function ii(e,t,a){"__proto__"==t&&tt?tt(e,t,{configurable:!0,enumerable:!0,value:a,writable:!0}):e[t]=a}function ni(e,t){for(var i=-1,n=t.length,r=ne(n),s=null==e;++i<n;)r[i]=s?a:No(e,t[i]);return r}function ri(e,t,i){return e==e&&(i!==a&&(e=e<=i?e:i),t!==a&&(e=e>=t?e:t)),e}function si(e,t,i,n,r,s){var o,l=1&t,u=2&t,c=4&t;if(i&&(o=r?i(e,n,r,s):i(e)),o!==a)return o;if(!Xs(e))return e;var d=Us(e);if(d){if(o=function(e){var t=e.length,a=new e.constructor(t);return t&&"string"==typeof e[0]&&De.call(e,"index")&&(a.index=e.index,a.input=e.input),a}(e),!l)return Mn(e,o)}else{var p=hr(e),h=p==v||p==_;if(Ys(e))return An(e,l);if(p==k||p==f||h&&!r){if(o=u||h?{}:mr(e),!l)return u?function(e,t){return Vn(e,pr(e),t)}(e,function(e,t){return e&&Vn(t,Io(t),e)}(o,e)):function(e,t){return Vn(e,dr(e),t)}(e,ai(o,e))}else{if(!st[p])return r?e:{};o=function(e,t,a){var i,n=e.constructor;switch(t){case C:return kn(e);case y:case g:return new n(+e);case I:return function(e,t){var a=t?kn(e.buffer):e.buffer;return new e.constructor(a,e.byteOffset,e.byteLength)}(e,a);case F:case E:case D:case L:case R:case O:case B:case $:case j:return Sn(e,a);case w:return new n;case A:case T:return new n(e);case N:return function(e){var t=new e.constructor(e.source,pe.exec(e));return t.lastIndex=e.lastIndex,t}(e);case x:return new n;case M:return i=e,Ra?Ne(Ra.call(i)):{}}}(e,p,l)}}s||(s=new Ga);var m=s.get(e);if(m)return m;s.set(e,o),no(e)?e.forEach((function(a){o.add(si(a,t,i,a,e,s))})):eo(e)&&e.forEach((function(a,n){o.set(n,si(a,t,i,n,e,s))}));var b=d?a:(c?u?ir:ar:u?Io:Co)(e);return xt(b||e,(function(a,n){b&&(a=e[n=a]),Qa(o,n,si(a,t,i,n,e,s))})),o}function oi(e,t,i){var n=i.length;if(null==e)return!n;for(e=Ne(e);n--;){var r=i[n],s=t[r],o=e[r];if(o===a&&!(r in e)||!s(o))return!1}return!0}function li(e,t,n){if("function"!=typeof e)throw new Me(i);return Vr((function(){e.apply(a,n)}),t)}function ui(e,t,a,i){var n=-1,r=Ct,s=!0,o=e.length,l=[],u=t.length;if(!o)return l;a&&(t=Ft(t,Jt(a))),i?(r=It,s=!1):t.length>=200&&(r=Xt,s=!1,t=new Ya(t));e:for(;++n<o;){var c=e[n],d=null==a?c:a(c);if(c=i||0!==c?c:0,s&&d==d){for(var p=u;p--;)if(t[p]===d)continue e;l.push(c)}else r(t,d,i)||l.push(c)}return l}Oa.templateSettings={escape:Z,evaluate:J,interpolate:K,variable:"",imports:{_:Oa}},Oa.prototype=$a.prototype,Oa.prototype.constructor=Oa,ja.prototype=Ba($a.prototype),ja.prototype.constructor=ja,Ua.prototype=Ba($a.prototype),Ua.prototype.constructor=Ua,za.prototype.clear=function(){this.__data__=Ta?Ta(null):{},this.size=0},za.prototype.delete=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t},za.prototype.get=function(e){var t=this.__data__;if(Ta){var i=t[e];return i===n?a:i}return De.call(t,e)?t[e]:a},za.prototype.has=function(e){var t=this.__data__;return Ta?t[e]!==a:De.call(t,e)},za.prototype.set=function(e,t){var i=this.__data__;return this.size+=this.has(e)?0:1,i[e]=Ta&&t===a?n:t,this},Wa.prototype.clear=function(){this.__data__=[],this.size=0},Wa.prototype.delete=function(e){var t=this.__data__,a=ei(t,e);return!(a<0||(a==t.length-1?t.pop():qe.call(t,a,1),--this.size,0))},Wa.prototype.get=function(e){var t=this.__data__,i=ei(t,e);return i<0?a:t[i][1]},Wa.prototype.has=function(e){return ei(this.__data__,e)>-1},Wa.prototype.set=function(e,t){var a=this.__data__,i=ei(a,e);return i<0?(++this.size,a.push([e,t])):a[i][1]=t,this},Ha.prototype.clear=function(){this.size=0,this.__data__={hash:new za,map:new(ka||Wa),string:new za}},Ha.prototype.delete=function(e){var t=lr(this,e).delete(e);return this.size-=t?1:0,t},Ha.prototype.get=function(e){return lr(this,e).get(e)},Ha.prototype.has=function(e){return lr(this,e).has(e)},Ha.prototype.set=function(e,t){var a=lr(this,e),i=a.size;return a.set(e,t),this.size+=a.size==i?0:1,this},Ya.prototype.add=Ya.prototype.push=function(e){return this.__data__.set(e,n),this},Ya.prototype.has=function(e){return this.__data__.has(e)},Ga.prototype.clear=function(){this.__data__=new Wa,this.size=0},Ga.prototype.delete=function(e){var t=this.__data__,a=t.delete(e);return this.size=t.size,a},Ga.prototype.get=function(e){return this.__data__.get(e)},Ga.prototype.has=function(e){return this.__data__.has(e)},Ga.prototype.set=function(e,t){var a=this.__data__;if(a instanceof Wa){var i=a.__data__;if(!ka||i.length<199)return i.push([e,t]),this.size=++a.size,this;a=this.__data__=new Ha(i)}return a.set(e,t),this.size=a.size,this};var ci=Fn(bi),di=Fn(vi,!0);function pi(e,t){var a=!0;return ci(e,(function(e,i,n){return a=!!t(e,i,n)})),a}function hi(e,t,i){for(var n=-1,r=e.length;++n<r;){var s=e[n],o=t(s);if(null!=o&&(l===a?o==o&&!so(o):i(o,l)))var l=o,u=s}return u}function fi(e,t){var a=[];return ci(e,(function(e,i,n){t(e,i,n)&&a.push(e)})),a}function mi(e,t,a,i,n){var r=-1,s=e.length;for(a||(a=yr),n||(n=[]);++r<s;){var o=e[r];t>0&&a(o)?t>1?mi(o,t-1,a,i,n):Et(n,o):i||(n[n.length]=o)}return n}var yi=En(),gi=En(!0);function bi(e,t){return e&&yi(e,t,Co)}function vi(e,t){return e&&gi(e,t,Co)}function _i(e,t){return Vt(t,(function(t){return Zs(e[t])}))}function wi(e,t){for(var i=0,n=(t=bn(t,e)).length;null!=e&&i<n;)e=e[Lr(t[i++])];return i&&i==n?e:a}function Ai(e,t,a){var i=t(e);return Us(e)?i:Et(i,a(e))}function ki(e){return null==e?e===a?"[object Undefined]":"[object Null]":Qe&&Qe in Ne(e)?function(e){var t=De.call(e,Qe),i=e[Qe];try{e[Qe]=a;var n=!0}catch(e){}var r=Pe.call(e);return n&&(t?e[Qe]=i:delete e[Qe]),r}(e):function(e){return Pe.call(e)}(e)}function Si(e,t){return e>t}function Ni(e,t){return null!=e&&De.call(e,t)}function xi(e,t){return null!=e&&t in Ne(e)}function Ti(e,t,i){for(var n=i?It:Ct,r=e[0].length,s=e.length,o=s,l=ne(s),u=1/0,c=[];o--;){var d=e[o];o&&t&&(d=Ft(d,Jt(t))),u=ga(d.length,u),l[o]=!i&&(t||r>=120&&d.length>=120)?new Ya(o&&d):a}d=e[0];var p=-1,h=l[0];e:for(;++p<r&&c.length<u;){var f=d[p],m=t?t(f):f;if(f=i||0!==f?f:0,!(h?Xt(h,m):n(c,m,i))){for(o=s;--o;){var y=l[o];if(!(y?Xt(y,m):n(e[o],m,i)))continue e}h&&h.push(m),c.push(f)}}return c}function Mi(e,t,i){var n=null==(e=xr(e,t=bn(t,e)))?e:e[Lr(qr(t))];return null==n?a:St(n,e,i)}function Vi(e){return Qs(e)&&ki(e)==f}function Ci(e,t,i,n,r){return e===t||(null==e||null==t||!Qs(e)&&!Qs(t)?e!=e&&t!=t:function(e,t,i,n,r,s){var o=Us(e),l=Us(t),u=o?m:hr(e),c=l?m:hr(t),d=(u=u==f?k:u)==k,p=(c=c==f?k:c)==k,h=u==c;if(h&&Ys(e)){if(!Ys(t))return!1;o=!0,d=!1}if(h&&!d)return s||(s=new Ga),o||oo(e)?er(e,t,i,n,r,s):function(e,t,a,i,n,r,s){switch(a){case I:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case C:return!(e.byteLength!=t.byteLength||!r(new ze(e),new ze(t)));case y:case g:case A:return Os(+e,+t);case b:return e.name==t.name&&e.message==t.message;case N:case T:return e==t+"";case w:var o=ra;case x:var l=1&i;if(o||(o=la),e.size!=t.size&&!l)return!1;var u=s.get(e);if(u)return u==t;i|=2,s.set(e,t);var c=er(o(e),o(t),i,n,r,s);return s.delete(e),c;case M:if(Ra)return Ra.call(e)==Ra.call(t)}return!1}(e,t,u,i,n,r,s);if(!(1&i)){var v=d&&De.call(e,"__wrapped__"),_=p&&De.call(t,"__wrapped__");if(v||_){var S=v?e.value():e,V=_?t.value():t;return s||(s=new Ga),r(S,V,i,n,s)}}return!!h&&(s||(s=new Ga),function(e,t,i,n,r,s){var o=1&i,l=ar(e),u=l.length,c=ar(t),d=c.length;if(u!=d&&!o)return!1;for(var p=u;p--;){var h=l[p];if(!(o?h in t:De.call(t,h)))return!1}var f=s.get(e),m=s.get(t);if(f&&m)return f==t&&m==e;var y=!0;s.set(e,t),s.set(t,e);for(var g=o;++p<u;){var b=e[h=l[p]],v=t[h];if(n)var _=o?n(v,b,h,t,e,s):n(b,v,h,e,t,s);if(!(_===a?b===v||r(b,v,i,n,s):_)){y=!1;break}g||(g="constructor"==h)}if(y&&!g){var w=e.constructor,A=t.constructor;w==A||!("constructor"in e)||!("constructor"in t)||"function"==typeof w&&w instanceof w&&"function"==typeof A&&A instanceof A||(y=!1)}return s.delete(e),s.delete(t),y}(e,t,i,n,r,s))}(e,t,i,n,Ci,r))}function Ii(e,t,i,n){var r=i.length,s=r,o=!n;if(null==e)return!s;for(e=Ne(e);r--;){var l=i[r];if(o&&l[2]?l[1]!==e[l[0]]:!(l[0]in e))return!1}for(;++r<s;){var u=(l=i[r])[0],c=e[u],d=l[1];if(o&&l[2]){if(c===a&&!(u in e))return!1}else{var p=new Ga;if(n)var h=n(c,d,u,e,t,p);if(!(h===a?Ci(d,c,3,n,p):h))return!1}}return!0}function Fi(e){return!(!Xs(e)||(t=e,Re&&Re in t))&&(Zs(e)?$e:me).test(Rr(e));var t}function Ei(e){return"function"==typeof e?e:null==e?al:"object"==typeof e?Us(e)?Bi(e[0],e[1]):Oi(e):dl(e)}function Di(e){if(!Ar(e))return ma(e);var t=[];for(var a in Ne(e))De.call(e,a)&&"constructor"!=a&&t.push(a);return t}function Li(e){if(!Xs(e))return function(e){var t=[];if(null!=e)for(var a in Ne(e))t.push(a);return t}(e);var t=Ar(e),a=[];for(var i in e)("constructor"!=i||!t&&De.call(e,i))&&a.push(i);return a}function Ri(e,t){return e<t}function Pi(e,t){var a=-1,i=Ws(e)?ne(e.length):[];return ci(e,(function(e,n,r){i[++a]=t(e,n,r)})),i}function Oi(e){var t=ur(e);return 1==t.length&&t[0][2]?Sr(t[0][0],t[0][1]):function(a){return a===e||Ii(a,e,t)}}function Bi(e,t){return vr(e)&&kr(t)?Sr(Lr(e),t):function(i){var n=No(i,e);return n===a&&n===t?xo(i,e):Ci(t,n,3)}}function $i(e,t,i,n,r){e!==t&&yi(t,(function(s,o){if(r||(r=new Ga),Xs(s))!function(e,t,i,n,r,s,o){var l=Tr(e,i),u=Tr(t,i),c=o.get(u);if(c)Xa(e,i,c);else{var d=s?s(l,u,i+"",e,t,o):a,p=d===a;if(p){var h=Us(u),f=!h&&Ys(u),m=!h&&!f&&oo(u);d=u,h||f||m?Us(l)?d=l:Hs(l)?d=Mn(l):f?(p=!1,d=An(u,!0)):m?(p=!1,d=Sn(u,!0)):d=[]:ao(u)||js(u)?(d=l,js(l)?d=yo(l):Xs(l)&&!Zs(l)||(d=mr(u))):p=!1}p&&(o.set(u,d),r(d,u,n,s,o),o.delete(u)),Xa(e,i,d)}}(e,t,o,i,$i,n,r);else{var l=n?n(Tr(e,o),s,o+"",e,t,r):a;l===a&&(l=s),Xa(e,o,l)}}),Io)}function ji(e,t){var i=e.length;if(i)return gr(t+=t<0?i:0,i)?e[t]:a}function Ui(e,t,a){t=t.length?Ft(t,(function(e){return Us(e)?function(t){return wi(t,1===e.length?e[0]:e)}:e})):[al];var i=-1;t=Ft(t,Jt(or()));var n=Pi(e,(function(e,a,n){var r=Ft(t,(function(t){return t(e)}));return{criteria:r,index:++i,value:e}}));return function(e,t){var a=e.length;for(e.sort(t);a--;)e[a]=e[a].value;return e}(n,(function(e,t){return function(e,t,a){for(var i=-1,n=e.criteria,r=t.criteria,s=n.length,o=a.length;++i<s;){var l=Nn(n[i],r[i]);if(l)return i>=o?l:l*("desc"==a[i]?-1:1)}return e.index-t.index}(e,t,a)}))}function zi(e,t,a){for(var i=-1,n=t.length,r={};++i<n;){var s=t[i],o=wi(e,s);a(o,s)&&Ki(r,bn(s,e),o)}return r}function Wi(e,t,a,i){var n=i?jt:$t,r=-1,s=t.length,o=e;for(e===t&&(t=Mn(t)),a&&(o=Ft(e,Jt(a)));++r<s;)for(var l=0,u=t[r],c=a?a(u):u;(l=n(o,c,l,i))>-1;)o!==e&&qe.call(o,l,1),qe.call(e,l,1);return e}function Hi(e,t){for(var a=e?t.length:0,i=a-1;a--;){var n=t[a];if(a==i||n!==r){var r=n;gr(n)?qe.call(e,n,1):cn(e,n)}}return e}function Yi(e,t){return e+ft(_a()*(t-e+1))}function Gi(e,t){var a="";if(!e||t<1||t>c)return a;do{t%2&&(a+=e),(t=ft(t/2))&&(e+=e)}while(t);return a}function qi(e,t){return Cr(Nr(e,t,al),e+"")}function Zi(e){return Za(Bo(e))}function Ji(e,t){var a=Bo(e);return Er(a,ri(t,0,a.length))}function Ki(e,t,i,n){if(!Xs(e))return e;for(var r=-1,s=(t=bn(t,e)).length,o=s-1,l=e;null!=l&&++r<s;){var u=Lr(t[r]),c=i;if("__proto__"===u||"constructor"===u||"prototype"===u)return e;if(r!=o){var d=l[u];(c=n?n(d,u,l):a)===a&&(c=Xs(d)?d:gr(t[r+1])?[]:{})}Qa(l,u,c),l=l[u]}return e}var Xi=Ma?function(e,t){return Ma.set(e,t),e}:al,Qi=tt?function(e,t){return tt(e,"toString",{configurable:!0,enumerable:!1,value:Qo(t),writable:!0})}:al;function en(e){return Er(Bo(e))}function tn(e,t,a){var i=-1,n=e.length;t<0&&(t=-t>n?0:n+t),(a=a>n?n:a)<0&&(a+=n),n=t>a?0:a-t>>>0,t>>>=0;for(var r=ne(n);++i<n;)r[i]=e[i+t];return r}function an(e,t){var a;return ci(e,(function(e,i,n){return!(a=t(e,i,n))})),!!a}function nn(e,t,a){var i=0,n=null==e?i:e.length;if("number"==typeof t&&t==t&&n<=2147483647){for(;i<n;){var r=i+n>>>1,s=e[r];null!==s&&!so(s)&&(a?s<=t:s<t)?i=r+1:n=r}return n}return rn(e,t,al,a)}function rn(e,t,i,n){var r=0,s=null==e?0:e.length;if(0===s)return 0;for(var o=(t=i(t))!=t,l=null===t,u=so(t),c=t===a;r<s;){var d=ft((r+s)/2),p=i(e[d]),h=p!==a,f=null===p,m=p==p,y=so(p);if(o)var g=n||m;else g=c?m&&(n||h):l?m&&h&&(n||!f):u?m&&h&&!f&&(n||!y):!f&&!y&&(n?p<=t:p<t);g?r=d+1:s=d}return ga(s,4294967294)}function sn(e,t){for(var a=-1,i=e.length,n=0,r=[];++a<i;){var s=e[a],o=t?t(s):s;if(!a||!Os(o,l)){var l=o;r[n++]=0===s?0:s}}return r}function on(e){return"number"==typeof e?e:so(e)?d:+e}function ln(e){if("string"==typeof e)return e;if(Us(e))return Ft(e,ln)+"";if(so(e))return Pa?Pa.call(e):"";var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}function un(e,t,a){var i=-1,n=Ct,r=e.length,s=!0,o=[],l=o;if(a)s=!1,n=It;else if(r>=200){var u=t?null:qn(e);if(u)return la(u);s=!1,n=Xt,l=new Ya}else l=t?[]:o;e:for(;++i<r;){var c=e[i],d=t?t(c):c;if(c=a||0!==c?c:0,s&&d==d){for(var p=l.length;p--;)if(l[p]===d)continue e;t&&l.push(d),o.push(c)}else n(l,d,a)||(l!==o&&l.push(d),o.push(c))}return o}function cn(e,t){return null==(e=xr(e,t=bn(t,e)))||delete e[Lr(qr(t))]}function dn(e,t,a,i){return Ki(e,t,a(wi(e,t)),i)}function pn(e,t,a,i){for(var n=e.length,r=i?n:-1;(i?r--:++r<n)&&t(e[r],r,e););return a?tn(e,i?0:r,i?r+1:n):tn(e,i?r+1:0,i?n:r)}function hn(e,t){var a=e;return a instanceof Ua&&(a=a.value()),Dt(t,(function(e,t){return t.func.apply(t.thisArg,Et([e],t.args))}),a)}function fn(e,t,a){var i=e.length;if(i<2)return i?un(e[0]):[];for(var n=-1,r=ne(i);++n<i;)for(var s=e[n],o=-1;++o<i;)o!=n&&(r[n]=ui(r[n]||s,e[o],t,a));return un(mi(r,1),t,a)}function mn(e,t,i){for(var n=-1,r=e.length,s=t.length,o={};++n<r;){var l=n<s?t[n]:a;i(o,e[n],l)}return o}function yn(e){return Hs(e)?e:[]}function gn(e){return"function"==typeof e?e:al}function bn(e,t){return Us(e)?e:vr(e,t)?[e]:Dr(go(e))}var vn=qi;function _n(e,t,i){var n=e.length;return i=i===a?n:i,!t&&i>=n?e:tn(e,t,i)}var wn=ot||function(e){return pt.clearTimeout(e)};function An(e,t){if(t)return e.slice();var a=e.length,i=We?We(a):new e.constructor(a);return e.copy(i),i}function kn(e){var t=new e.constructor(e.byteLength);return new ze(t).set(new ze(e)),t}function Sn(e,t){var a=t?kn(e.buffer):e.buffer;return new e.constructor(a,e.byteOffset,e.length)}function Nn(e,t){if(e!==t){var i=e!==a,n=null===e,r=e==e,s=so(e),o=t!==a,l=null===t,u=t==t,c=so(t);if(!l&&!c&&!s&&e>t||s&&o&&u&&!l&&!c||n&&o&&u||!i&&u||!r)return 1;if(!n&&!s&&!c&&e<t||c&&i&&r&&!n&&!s||l&&i&&r||!o&&r||!u)return-1}return 0}function xn(e,t,a,i){for(var n=-1,r=e.length,s=a.length,o=-1,l=t.length,u=ya(r-s,0),c=ne(l+u),d=!i;++o<l;)c[o]=t[o];for(;++n<s;)(d||n<r)&&(c[a[n]]=e[n]);for(;u--;)c[o++]=e[n++];return c}function Tn(e,t,a,i){for(var n=-1,r=e.length,s=-1,o=a.length,l=-1,u=t.length,c=ya(r-o,0),d=ne(c+u),p=!i;++n<c;)d[n]=e[n];for(var h=n;++l<u;)d[h+l]=t[l];for(;++s<o;)(p||n<r)&&(d[h+a[s]]=e[n++]);return d}function Mn(e,t){var a=-1,i=e.length;for(t||(t=ne(i));++a<i;)t[a]=e[a];return t}function Vn(e,t,i,n){var r=!i;i||(i={});for(var s=-1,o=t.length;++s<o;){var l=t[s],u=n?n(i[l],e[l],l,i,e):a;u===a&&(u=e[l]),r?ii(i,l,u):Qa(i,l,u)}return i}function Cn(e,t){return function(a,i){var n=Us(a)?Nt:ti,r=t?t():{};return n(a,e,or(i,2),r)}}function In(e){return qi((function(t,i){var n=-1,r=i.length,s=r>1?i[r-1]:a,o=r>2?i[2]:a;for(s=e.length>3&&"function"==typeof s?(r--,s):a,o&&br(i[0],i[1],o)&&(s=r<3?a:s,r=1),t=Ne(t);++n<r;){var l=i[n];l&&e(t,l,n,s)}return t}))}function Fn(e,t){return function(a,i){if(null==a)return a;if(!Ws(a))return e(a,i);for(var n=a.length,r=t?n:-1,s=Ne(a);(t?r--:++r<n)&&!1!==i(s[r],r,s););return a}}function En(e){return function(t,a,i){for(var n=-1,r=Ne(t),s=i(t),o=s.length;o--;){var l=s[e?o:++n];if(!1===a(r[l],l,r))break}return t}}function Dn(e){return function(t){var i=na(t=go(t))?da(t):a,n=i?i[0]:t.charAt(0),r=i?_n(i,1).join(""):t.slice(1);return n[e]()+r}}function Ln(e){return function(t){return Dt(Jo(Uo(t).replace(Ke,"")),e,"")}}function Rn(e){return function(){var t=arguments;switch(t.length){case 0:return new e;case 1:return new e(t[0]);case 2:return new e(t[0],t[1]);case 3:return new e(t[0],t[1],t[2]);case 4:return new e(t[0],t[1],t[2],t[3]);case 5:return new e(t[0],t[1],t[2],t[3],t[4]);case 6:return new e(t[0],t[1],t[2],t[3],t[4],t[5]);case 7:return new e(t[0],t[1],t[2],t[3],t[4],t[5],t[6])}var a=Ba(e.prototype),i=e.apply(a,t);return Xs(i)?i:a}}function Pn(e){return function(t,i,n){var r=Ne(t);if(!Ws(t)){var s=or(i,3);t=Co(t),i=function(e){return s(r[e],e,r)}}var o=e(t,i,n);return o>-1?r[s?t[o]:o]:a}}function On(e){return tr((function(t){var n=t.length,r=n,s=ja.prototype.thru;for(e&&t.reverse();r--;){var o=t[r];if("function"!=typeof o)throw new Me(i);if(s&&!l&&"wrapper"==rr(o))var l=new ja([],!0)}for(r=l?r:n;++r<n;){var u=rr(o=t[r]),c="wrapper"==u?nr(o):a;l=c&&_r(c[0])&&424==c[1]&&!c[4].length&&1==c[9]?l[rr(c[0])].apply(l,c[3]):1==o.length&&_r(o)?l[u]():l.thru(o)}return function(){var e=arguments,a=e[0];if(l&&1==e.length&&Us(a))return l.plant(a).value();for(var i=0,r=n?t[i].apply(this,e):a;++i<n;)r=t[i].call(this,r);return r}}))}function Bn(e,t,i,n,r,s,l,u,c,d){var p=t&o,h=1&t,f=2&t,m=24&t,y=512&t,g=f?a:Rn(e);return function o(){for(var b=arguments.length,v=ne(b),_=b;_--;)v[_]=arguments[_];if(m)var w=sr(o),A=function(e,t){for(var a=e.length,i=0;a--;)e[a]===t&&++i;return i}(v,w);if(n&&(v=xn(v,n,r,m)),s&&(v=Tn(v,s,l,m)),b-=A,m&&b<d){var k=oa(v,w);return Yn(e,t,Bn,o.placeholder,i,v,k,u,c,d-b)}var S=h?i:this,N=f?S[e]:e;return b=v.length,u?v=function(e,t){for(var i=e.length,n=ga(t.length,i),r=Mn(e);n--;){var s=t[n];e[n]=gr(s,i)?r[s]:a}return e}(v,u):y&&b>1&&v.reverse(),p&&c<b&&(v.length=c),this&&this!==pt&&this instanceof o&&(N=g||Rn(N)),N.apply(S,v)}}function $n(e,t){return function(a,i){return function(e,t,a,i){return bi(e,(function(e,n,r){t(i,a(e),n,r)})),i}(a,e,t(i),{})}}function jn(e,t){return function(i,n){var r;if(i===a&&n===a)return t;if(i!==a&&(r=i),n!==a){if(r===a)return n;"string"==typeof i||"string"==typeof n?(i=ln(i),n=ln(n)):(i=on(i),n=on(n)),r=e(i,n)}return r}}function Un(e){return tr((function(t){return t=Ft(t,Jt(or())),qi((function(a){var i=this;return e(t,(function(e){return St(e,i,a)}))}))}))}function zn(e,t){var i=(t=t===a?" ":ln(t)).length;if(i<2)return i?Gi(t,e):t;var n=Gi(t,ht(e/ca(t)));return na(t)?_n(da(n),0,e).join(""):n.slice(0,e)}function Wn(e){return function(t,i,n){return n&&"number"!=typeof n&&br(t,i,n)&&(i=n=a),t=po(t),i===a?(i=t,t=0):i=po(i),function(e,t,a,i){for(var n=-1,r=ya(ht((t-e)/(a||1)),0),s=ne(r);r--;)s[i?r:++n]=e,e+=a;return s}(t,i,n=n===a?t<i?1:-1:po(n),e)}}function Hn(e){return function(t,a){return"string"==typeof t&&"string"==typeof a||(t=mo(t),a=mo(a)),e(t,a)}}function Yn(e,t,i,n,r,o,l,u,c,d){var p=8&t;t|=p?s:64,4&(t&=~(p?64:s))||(t&=-4);var h=[e,t,r,p?o:a,p?l:a,p?a:o,p?a:l,u,c,d],f=i.apply(a,h);return _r(e)&&Mr(f,h),f.placeholder=n,Ir(f,e,t)}function Gn(e){var t=Se[e];return function(e,a){if(e=mo(e),(a=null==a?0:ga(ho(a),292))&&Pt(e)){var i=(go(e)+"e").split("e");return+((i=(go(t(i[0]+"e"+(+i[1]+a)))+"e").split("e"))[0]+"e"+(+i[1]-a))}return t(e)}}var qn=Na&&1/la(new Na([,-0]))[1]==u?function(e){return new Na(e)}:ol;function Zn(e){return function(t){var a=hr(t);return a==w?ra(t):a==x?ua(t):function(e,t){return Ft(t,(function(t){return[t,e[t]]}))}(t,e(t))}}function Jn(e,t,n,u,c,d,p,h){var f=2&t;if(!f&&"function"!=typeof e)throw new Me(i);var m=u?u.length:0;if(m||(t&=-97,u=c=a),p=p===a?p:ya(ho(p),0),h=h===a?h:ho(h),m-=c?c.length:0,64&t){var y=u,g=c;u=c=a}var b=f?a:nr(e),v=[e,t,n,u,c,y,g,d,p,h];if(b&&function(e,t){var a=e[1],i=t[1],n=a|i,s=n<131,u=i==o&&8==a||i==o&&a==l&&e[7].length<=t[8]||384==i&&t[7].length<=t[8]&&8==a;if(!s&&!u)return e;1&i&&(e[2]=t[2],n|=1&a?0:4);var c=t[3];if(c){var d=e[3];e[3]=d?xn(d,c,t[4]):c,e[4]=d?oa(e[3],r):t[4]}(c=t[5])&&(d=e[5],e[5]=d?Tn(d,c,t[6]):c,e[6]=d?oa(e[5],r):t[6]),(c=t[7])&&(e[7]=c),i&o&&(e[8]=null==e[8]?t[8]:ga(e[8],t[8])),null==e[9]&&(e[9]=t[9]),e[0]=t[0],e[1]=n}(v,b),e=v[0],t=v[1],n=v[2],u=v[3],c=v[4],!(h=v[9]=v[9]===a?f?0:e.length:ya(v[9]-m,0))&&24&t&&(t&=-25),t&&1!=t)_=8==t||16==t?function(e,t,i){var n=Rn(e);return function r(){for(var s=arguments.length,o=ne(s),l=s,u=sr(r);l--;)o[l]=arguments[l];var c=s<3&&o[0]!==u&&o[s-1]!==u?[]:oa(o,u);return(s-=c.length)<i?Yn(e,t,Bn,r.placeholder,a,o,c,a,a,i-s):St(this&&this!==pt&&this instanceof r?n:e,this,o)}}(e,t,h):t!=s&&33!=t||c.length?Bn.apply(a,v):function(e,t,a,i){var n=1&t,r=Rn(e);return function t(){for(var s=-1,o=arguments.length,l=-1,u=i.length,c=ne(u+o),d=this&&this!==pt&&this instanceof t?r:e;++l<u;)c[l]=i[l];for(;o--;)c[l++]=arguments[++s];return St(d,n?a:this,c)}}(e,t,n,u);else var _=function(e,t,a){var i=1&t,n=Rn(e);return function t(){return(this&&this!==pt&&this instanceof t?n:e).apply(i?a:this,arguments)}}(e,t,n);return Ir((b?Xi:Mr)(_,v),e,t)}function Kn(e,t,i,n){return e===a||Os(e,Ie[i])&&!De.call(n,i)?t:e}function Xn(e,t,i,n,r,s){return Xs(e)&&Xs(t)&&(s.set(t,e),$i(e,t,a,Xn,s),s.delete(t)),e}function Qn(e){return ao(e)?a:e}function er(e,t,i,n,r,s){var o=1&i,l=e.length,u=t.length;if(l!=u&&!(o&&u>l))return!1;var c=s.get(e),d=s.get(t);if(c&&d)return c==t&&d==e;var p=-1,h=!0,f=2&i?new Ya:a;for(s.set(e,t),s.set(t,e);++p<l;){var m=e[p],y=t[p];if(n)var g=o?n(y,m,p,t,e,s):n(m,y,p,e,t,s);if(g!==a){if(g)continue;h=!1;break}if(f){if(!Rt(t,(function(e,t){if(!Xt(f,t)&&(m===e||r(m,e,i,n,s)))return f.push(t)}))){h=!1;break}}else if(m!==y&&!r(m,y,i,n,s)){h=!1;break}}return s.delete(e),s.delete(t),h}function tr(e){return Cr(Nr(e,a,zr),e+"")}function ar(e){return Ai(e,Co,dr)}function ir(e){return Ai(e,Io,pr)}var nr=Ma?function(e){return Ma.get(e)}:ol;function rr(e){for(var t=e.name+"",a=Va[t],i=De.call(Va,t)?a.length:0;i--;){var n=a[i],r=n.func;if(null==r||r==e)return n.name}return t}function sr(e){return(De.call(Oa,"placeholder")?Oa:e).placeholder}function or(){var e=Oa.iteratee||il;return e=e===il?Ei:e,arguments.length?e(arguments[0],arguments[1]):e}function lr(e,t){var a,i,n=e.__data__;return("string"==(i=typeof(a=t))||"number"==i||"symbol"==i||"boolean"==i?"__proto__"!==a:null===a)?n["string"==typeof t?"string":"hash"]:n.map}function ur(e){for(var t=Co(e),a=t.length;a--;){var i=t[a],n=e[i];t[a]=[i,n,kr(n)]}return t}function cr(e,t){var i=function(e,t){return null==e?a:e[t]}(e,t);return Fi(i)?i:a}var dr=yt?function(e){return null==e?[]:(e=Ne(e),Vt(yt(e),(function(t){return Ge.call(e,t)})))}:fl,pr=yt?function(e){for(var t=[];e;)Et(t,dr(e)),e=He(e);return t}:fl,hr=ki;function fr(e,t,a){for(var i=-1,n=(t=bn(t,e)).length,r=!1;++i<n;){var s=Lr(t[i]);if(!(r=null!=e&&a(e,s)))break;e=e[s]}return r||++i!=n?r:!!(n=null==e?0:e.length)&&Ks(n)&&gr(s,n)&&(Us(e)||js(e))}function mr(e){return"function"!=typeof e.constructor||Ar(e)?{}:Ba(He(e))}function yr(e){return Us(e)||js(e)||!!(Ze&&e&&e[Ze])}function gr(e,t){var a=typeof e;return!!(t=null==t?c:t)&&("number"==a||"symbol"!=a&&ge.test(e))&&e>-1&&e%1==0&&e<t}function br(e,t,a){if(!Xs(a))return!1;var i=typeof t;return!!("number"==i?Ws(a)&&gr(t,a.length):"string"==i&&t in a)&&Os(a[t],e)}function vr(e,t){if(Us(e))return!1;var a=typeof e;return!("number"!=a&&"symbol"!=a&&"boolean"!=a&&null!=e&&!so(e))||Q.test(e)||!X.test(e)||null!=t&&e in Ne(t)}function _r(e){var t=rr(e),a=Oa[t];if("function"!=typeof a||!(t in Ua.prototype))return!1;if(e===a)return!0;var i=nr(a);return!!i&&e===i[0]}(Aa&&hr(new Aa(new ArrayBuffer(1)))!=I||ka&&hr(new ka)!=w||Sa&&hr(Sa.resolve())!=S||Na&&hr(new Na)!=x||xa&&hr(new xa)!=V)&&(hr=function(e){var t=ki(e),i=t==k?e.constructor:a,n=i?Rr(i):"";if(n)switch(n){case Ca:return I;case Ia:return w;case Fa:return S;case Ea:return x;case Da:return V}return t});var wr=Fe?Zs:ml;function Ar(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||Ie)}function kr(e){return e==e&&!Xs(e)}function Sr(e,t){return function(i){return null!=i&&i[e]===t&&(t!==a||e in Ne(i))}}function Nr(e,t,i){return t=ya(t===a?e.length-1:t,0),function(){for(var a=arguments,n=-1,r=ya(a.length-t,0),s=ne(r);++n<r;)s[n]=a[t+n];n=-1;for(var o=ne(t+1);++n<t;)o[n]=a[n];return o[t]=i(s),St(e,this,o)}}function xr(e,t){return t.length<2?e:wi(e,tn(t,0,-1))}function Tr(e,t){if(("constructor"!==t||"function"!=typeof e[t])&&"__proto__"!=t)return e[t]}var Mr=Fr(Xi),Vr=dt||function(e,t){return pt.setTimeout(e,t)},Cr=Fr(Qi);function Ir(e,t,a){var i=t+"";return Cr(e,function(e,t){var a=t.length;if(!a)return e;var i=a-1;return t[i]=(a>1?"& ":"")+t[i],t=t.join(a>2?", ":" "),e.replace(re,"{\n/* [wrapped with "+t+"] */\n")}(i,function(e,t){return xt(h,(function(a){var i="_."+a[0];t&a[1]&&!Ct(e,i)&&e.push(i)})),e.sort()}(function(e){var t=e.match(se);return t?t[1].split(oe):[]}(i),a)))}function Fr(e){var t=0,i=0;return function(){var n=ba(),r=16-(n-i);if(i=n,r>0){if(++t>=800)return arguments[0]}else t=0;return e.apply(a,arguments)}}function Er(e,t){var i=-1,n=e.length,r=n-1;for(t=t===a?n:t;++i<t;){var s=Yi(i,r),o=e[s];e[s]=e[i],e[i]=o}return e.length=t,e}var Dr=function(e){var t=Fs(e,(function(e){return 500===a.size&&a.clear(),e})),a=t.cache;return t}((function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(ee,(function(e,a,i,n){t.push(i?n.replace(ce,"$1"):a||e)})),t}));function Lr(e){if("string"==typeof e||so(e))return e;var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}function Rr(e){if(null!=e){try{return Ee.call(e)}catch(e){}try{return e+""}catch(e){}}return""}function Pr(e){if(e instanceof Ua)return e.clone();var t=new ja(e.__wrapped__,e.__chain__);return t.__actions__=Mn(e.__actions__),t.__index__=e.__index__,t.__values__=e.__values__,t}var Or=qi((function(e,t){return Hs(e)?ui(e,mi(t,1,Hs,!0)):[]})),Br=qi((function(e,t){var i=qr(t);return Hs(i)&&(i=a),Hs(e)?ui(e,mi(t,1,Hs,!0),or(i,2)):[]})),$r=qi((function(e,t){var i=qr(t);return Hs(i)&&(i=a),Hs(e)?ui(e,mi(t,1,Hs,!0),a,i):[]}));function jr(e,t,a){var i=null==e?0:e.length;if(!i)return-1;var n=null==a?0:ho(a);return n<0&&(n=ya(i+n,0)),Bt(e,or(t,3),n)}function Ur(e,t,i){var n=null==e?0:e.length;if(!n)return-1;var r=n-1;return i!==a&&(r=ho(i),r=i<0?ya(n+r,0):ga(r,n-1)),Bt(e,or(t,3),r,!0)}function zr(e){return null!=e&&e.length?mi(e,1):[]}function Wr(e){return e&&e.length?e[0]:a}var Hr=qi((function(e){var t=Ft(e,yn);return t.length&&t[0]===e[0]?Ti(t):[]})),Yr=qi((function(e){var t=qr(e),i=Ft(e,yn);return t===qr(i)?t=a:i.pop(),i.length&&i[0]===e[0]?Ti(i,or(t,2)):[]})),Gr=qi((function(e){var t=qr(e),i=Ft(e,yn);return(t="function"==typeof t?t:a)&&i.pop(),i.length&&i[0]===e[0]?Ti(i,a,t):[]}));function qr(e){var t=null==e?0:e.length;return t?e[t-1]:a}var Zr=qi(Jr);function Jr(e,t){return e&&e.length&&t&&t.length?Wi(e,t):e}var Kr=tr((function(e,t){var a=null==e?0:e.length,i=ni(e,t);return Hi(e,Ft(t,(function(e){return gr(e,a)?+e:e})).sort(Nn)),i}));function Xr(e){return null==e?e:wa.call(e)}var Qr=qi((function(e){return un(mi(e,1,Hs,!0))})),es=qi((function(e){var t=qr(e);return Hs(t)&&(t=a),un(mi(e,1,Hs,!0),or(t,2))})),ts=qi((function(e){var t=qr(e);return t="function"==typeof t?t:a,un(mi(e,1,Hs,!0),a,t)}));function as(e){if(!e||!e.length)return[];var t=0;return e=Vt(e,(function(e){if(Hs(e))return t=ya(e.length,t),!0})),qt(t,(function(t){return Ft(e,Wt(t))}))}function is(e,t){if(!e||!e.length)return[];var i=as(e);return null==t?i:Ft(i,(function(e){return St(t,a,e)}))}var ns=qi((function(e,t){return Hs(e)?ui(e,t):[]})),rs=qi((function(e){return fn(Vt(e,Hs))})),ss=qi((function(e){var t=qr(e);return Hs(t)&&(t=a),fn(Vt(e,Hs),or(t,2))})),os=qi((function(e){var t=qr(e);return t="function"==typeof t?t:a,fn(Vt(e,Hs),a,t)})),ls=qi(as),us=qi((function(e){var t=e.length,i=t>1?e[t-1]:a;return i="function"==typeof i?(e.pop(),i):a,is(e,i)}));function cs(e){var t=Oa(e);return t.__chain__=!0,t}function ds(e,t){return t(e)}var ps=tr((function(e){var t=e.length,i=t?e[0]:0,n=this.__wrapped__,r=function(t){return ni(t,e)};return!(t>1||this.__actions__.length)&&n instanceof Ua&&gr(i)?((n=n.slice(i,+i+(t?1:0))).__actions__.push({func:ds,args:[r],thisArg:a}),new ja(n,this.__chain__).thru((function(e){return t&&!e.length&&e.push(a),e}))):this.thru(r)})),hs=Cn((function(e,t,a){De.call(e,a)?++e[a]:ii(e,a,1)})),fs=Pn(jr),ms=Pn(Ur);function ys(e,t){return(Us(e)?xt:ci)(e,or(t,3))}function gs(e,t){return(Us(e)?Tt:di)(e,or(t,3))}var bs=Cn((function(e,t,a){De.call(e,a)?e[a].push(t):ii(e,a,[t])})),vs=qi((function(e,t,a){var i=-1,n="function"==typeof t,r=Ws(e)?ne(e.length):[];return ci(e,(function(e){r[++i]=n?St(t,e,a):Mi(e,t,a)})),r})),_s=Cn((function(e,t,a){ii(e,a,t)}));function ws(e,t){return(Us(e)?Ft:Pi)(e,or(t,3))}var As=Cn((function(e,t,a){e[a?0:1].push(t)}),(function(){return[[],[]]})),ks=qi((function(e,t){if(null==e)return[];var a=t.length;return a>1&&br(e,t[0],t[1])?t=[]:a>2&&br(t[0],t[1],t[2])&&(t=[t[0]]),Ui(e,mi(t,1),[])})),Ss=ct||function(){return pt.Date.now()};function Ns(e,t,i){return t=i?a:t,t=e&&null==t?e.length:t,Jn(e,o,a,a,a,a,t)}function xs(e,t){var n;if("function"!=typeof t)throw new Me(i);return e=ho(e),function(){return--e>0&&(n=t.apply(this,arguments)),e<=1&&(t=a),n}}var Ts=qi((function(e,t,a){var i=1;if(a.length){var n=oa(a,sr(Ts));i|=s}return Jn(e,i,t,a,n)})),Ms=qi((function(e,t,a){var i=3;if(a.length){var n=oa(a,sr(Ms));i|=s}return Jn(t,i,e,a,n)}));function Vs(e,t,n){var r,s,o,l,u,c,d=0,p=!1,h=!1,f=!0;if("function"!=typeof e)throw new Me(i);function m(t){var i=r,n=s;return r=s=a,d=t,l=e.apply(n,i)}function y(e){var i=e-c;return c===a||i>=t||i<0||h&&e-d>=o}function g(){var e=Ss();if(y(e))return b(e);u=Vr(g,function(e){var a=t-(e-c);return h?ga(a,o-(e-d)):a}(e))}function b(e){return u=a,f&&r?m(e):(r=s=a,l)}function v(){var e=Ss(),i=y(e);if(r=arguments,s=this,c=e,i){if(u===a)return function(e){return d=e,u=Vr(g,t),p?m(e):l}(c);if(h)return wn(u),u=Vr(g,t),m(c)}return u===a&&(u=Vr(g,t)),l}return t=mo(t)||0,Xs(n)&&(p=!!n.leading,o=(h="maxWait"in n)?ya(mo(n.maxWait)||0,t):o,f="trailing"in n?!!n.trailing:f),v.cancel=function(){u!==a&&wn(u),d=0,r=c=s=u=a},v.flush=function(){return u===a?l:b(Ss())},v}var Cs=qi((function(e,t){return li(e,1,t)})),Is=qi((function(e,t,a){return li(e,mo(t)||0,a)}));function Fs(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new Me(i);var a=function(){var i=arguments,n=t?t.apply(this,i):i[0],r=a.cache;if(r.has(n))return r.get(n);var s=e.apply(this,i);return a.cache=r.set(n,s)||r,s};return a.cache=new(Fs.Cache||Ha),a}function Es(e){if("function"!=typeof e)throw new Me(i);return function(){var t=arguments;switch(t.length){case 0:return!e.call(this);case 1:return!e.call(this,t[0]);case 2:return!e.call(this,t[0],t[1]);case 3:return!e.call(this,t[0],t[1],t[2])}return!e.apply(this,t)}}Fs.Cache=Ha;var Ds=vn((function(e,t){var a=(t=1==t.length&&Us(t[0])?Ft(t[0],Jt(or())):Ft(mi(t,1),Jt(or()))).length;return qi((function(i){for(var n=-1,r=ga(i.length,a);++n<r;)i[n]=t[n].call(this,i[n]);return St(e,this,i)}))})),Ls=qi((function(e,t){var i=oa(t,sr(Ls));return Jn(e,s,a,t,i)})),Rs=qi((function(e,t){var i=oa(t,sr(Rs));return Jn(e,64,a,t,i)})),Ps=tr((function(e,t){return Jn(e,l,a,a,a,t)}));function Os(e,t){return e===t||e!=e&&t!=t}var Bs=Hn(Si),$s=Hn((function(e,t){return e>=t})),js=Vi(function(){return arguments}())?Vi:function(e){return Qs(e)&&De.call(e,"callee")&&!Ge.call(e,"callee")},Us=ne.isArray,zs=bt?Jt(bt):function(e){return Qs(e)&&ki(e)==C};function Ws(e){return null!=e&&Ks(e.length)&&!Zs(e)}function Hs(e){return Qs(e)&&Ws(e)}var Ys=gt||ml,Gs=vt?Jt(vt):function(e){return Qs(e)&&ki(e)==g};function qs(e){if(!Qs(e))return!1;var t=ki(e);return t==b||"[object DOMException]"==t||"string"==typeof e.message&&"string"==typeof e.name&&!ao(e)}function Zs(e){if(!Xs(e))return!1;var t=ki(e);return t==v||t==_||"[object AsyncFunction]"==t||"[object Proxy]"==t}function Js(e){return"number"==typeof e&&e==ho(e)}function Ks(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=c}function Xs(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}function Qs(e){return null!=e&&"object"==typeof e}var eo=_t?Jt(_t):function(e){return Qs(e)&&hr(e)==w};function to(e){return"number"==typeof e||Qs(e)&&ki(e)==A}function ao(e){if(!Qs(e)||ki(e)!=k)return!1;var t=He(e);if(null===t)return!0;var a=De.call(t,"constructor")&&t.constructor;return"function"==typeof a&&a instanceof a&&Ee.call(a)==Oe}var io=wt?Jt(wt):function(e){return Qs(e)&&ki(e)==N},no=At?Jt(At):function(e){return Qs(e)&&hr(e)==x};function ro(e){return"string"==typeof e||!Us(e)&&Qs(e)&&ki(e)==T}function so(e){return"symbol"==typeof e||Qs(e)&&ki(e)==M}var oo=kt?Jt(kt):function(e){return Qs(e)&&Ks(e.length)&&!!rt[ki(e)]},lo=Hn(Ri),uo=Hn((function(e,t){return e<=t}));function co(e){if(!e)return[];if(Ws(e))return ro(e)?da(e):Mn(e);if(Je&&e[Je])return function(e){for(var t,a=[];!(t=e.next()).done;)a.push(t.value);return a}(e[Je]());var t=hr(e);return(t==w?ra:t==x?la:Bo)(e)}function po(e){return e?(e=mo(e))===u||e===-1/0?17976931348623157e292*(e<0?-1:1):e==e?e:0:0===e?e:0}function ho(e){var t=po(e),a=t%1;return t==t?a?t-a:t:0}function fo(e){return e?ri(ho(e),0,p):0}function mo(e){if("number"==typeof e)return e;if(so(e))return d;if(Xs(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=Xs(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=Zt(e);var a=fe.test(e);return a||ye.test(e)?ut(e.slice(2),a?2:8):he.test(e)?d:+e}function yo(e){return Vn(e,Io(e))}function go(e){return null==e?"":ln(e)}var bo=In((function(e,t){if(Ar(t)||Ws(t))Vn(t,Co(t),e);else for(var a in t)De.call(t,a)&&Qa(e,a,t[a])})),vo=In((function(e,t){Vn(t,Io(t),e)})),_o=In((function(e,t,a,i){Vn(t,Io(t),e,i)})),wo=In((function(e,t,a,i){Vn(t,Co(t),e,i)})),Ao=tr(ni),ko=qi((function(e,t){e=Ne(e);var i=-1,n=t.length,r=n>2?t[2]:a;for(r&&br(t[0],t[1],r)&&(n=1);++i<n;)for(var s=t[i],o=Io(s),l=-1,u=o.length;++l<u;){var c=o[l],d=e[c];(d===a||Os(d,Ie[c])&&!De.call(e,c))&&(e[c]=s[c])}return e})),So=qi((function(e){return e.push(a,Xn),St(Eo,a,e)}));function No(e,t,i){var n=null==e?a:wi(e,t);return n===a?i:n}function xo(e,t){return null!=e&&fr(e,t,xi)}var To=$n((function(e,t,a){null!=t&&"function"!=typeof t.toString&&(t=Pe.call(t)),e[t]=a}),Qo(al)),Mo=$n((function(e,t,a){null!=t&&"function"!=typeof t.toString&&(t=Pe.call(t)),De.call(e,t)?e[t].push(a):e[t]=[a]}),or),Vo=qi(Mi);function Co(e){return Ws(e)?qa(e):Di(e)}function Io(e){return Ws(e)?qa(e,!0):Li(e)}var Fo=In((function(e,t,a){$i(e,t,a)})),Eo=In((function(e,t,a,i){$i(e,t,a,i)})),Do=tr((function(e,t){var a={};if(null==e)return a;var i=!1;t=Ft(t,(function(t){return t=bn(t,e),i||(i=t.length>1),t})),Vn(e,ir(e),a),i&&(a=si(a,7,Qn));for(var n=t.length;n--;)cn(a,t[n]);return a})),Lo=tr((function(e,t){return null==e?{}:function(e,t){return zi(e,t,(function(t,a){return xo(e,a)}))}(e,t)}));function Ro(e,t){if(null==e)return{};var a=Ft(ir(e),(function(e){return[e]}));return t=or(t),zi(e,a,(function(e,a){return t(e,a[0])}))}var Po=Zn(Co),Oo=Zn(Io);function Bo(e){return null==e?[]:Kt(e,Co(e))}var $o=Ln((function(e,t,a){return t=t.toLowerCase(),e+(a?jo(t):t)}));function jo(e){return Zo(go(e).toLowerCase())}function Uo(e){return(e=go(e))&&e.replace(be,ta).replace(Xe,"")}var zo=Ln((function(e,t,a){return e+(a?"-":"")+t.toLowerCase()})),Wo=Ln((function(e,t,a){return e+(a?" ":"")+t.toLowerCase()})),Ho=Dn("toLowerCase"),Yo=Ln((function(e,t,a){return e+(a?"_":"")+t.toLowerCase()})),Go=Ln((function(e,t,a){return e+(a?" ":"")+Zo(t)})),qo=Ln((function(e,t,a){return e+(a?" ":"")+t.toUpperCase()})),Zo=Dn("toUpperCase");function Jo(e,t,i){return e=go(e),(t=i?a:t)===a?function(e){return at.test(e)}(e)?function(e){return e.match(et)||[]}(e):function(e){return e.match(le)||[]}(e):e.match(t)||[]}var Ko=qi((function(e,t){try{return St(e,a,t)}catch(e){return qs(e)?e:new Ae(e)}})),Xo=tr((function(e,t){return xt(t,(function(t){t=Lr(t),ii(e,t,Ts(e[t],e))})),e}));function Qo(e){return function(){return e}}var el=On(),tl=On(!0);function al(e){return e}function il(e){return Ei("function"==typeof e?e:si(e,1))}var nl=qi((function(e,t){return function(a){return Mi(a,e,t)}})),rl=qi((function(e,t){return function(a){return Mi(e,a,t)}}));function sl(e,t,a){var i=Co(t),n=_i(t,i);null!=a||Xs(t)&&(n.length||!i.length)||(a=t,t=e,e=this,n=_i(t,Co(t)));var r=!(Xs(a)&&"chain"in a&&!a.chain),s=Zs(e);return xt(n,(function(a){var i=t[a];e[a]=i,s&&(e.prototype[a]=function(){var t=this.__chain__;if(r||t){var a=e(this.__wrapped__);return(a.__actions__=Mn(this.__actions__)).push({func:i,args:arguments,thisArg:e}),a.__chain__=t,a}return i.apply(e,Et([this.value()],arguments))})})),e}function ol(){}var ll=Un(Ft),ul=Un(Mt),cl=Un(Rt);function dl(e){return vr(e)?Wt(Lr(e)):function(e){return function(t){return wi(t,e)}}(e)}var pl=Wn(),hl=Wn(!0);function fl(){return[]}function ml(){return!1}var yl,gl=jn((function(e,t){return e+t}),0),bl=Gn("ceil"),vl=jn((function(e,t){return e/t}),1),_l=Gn("floor"),wl=jn((function(e,t){return e*t}),1),Al=Gn("round"),kl=jn((function(e,t){return e-t}),0);return Oa.after=function(e,t){if("function"!=typeof t)throw new Me(i);return e=ho(e),function(){if(--e<1)return t.apply(this,arguments)}},Oa.ary=Ns,Oa.assign=bo,Oa.assignIn=vo,Oa.assignInWith=_o,Oa.assignWith=wo,Oa.at=Ao,Oa.before=xs,Oa.bind=Ts,Oa.bindAll=Xo,Oa.bindKey=Ms,Oa.castArray=function(){if(!arguments.length)return[];var e=arguments[0];return Us(e)?e:[e]},Oa.chain=cs,Oa.chunk=function(e,t,i){t=(i?br(e,t,i):t===a)?1:ya(ho(t),0);var n=null==e?0:e.length;if(!n||t<1)return[];for(var r=0,s=0,o=ne(ht(n/t));r<n;)o[s++]=tn(e,r,r+=t);return o},Oa.compact=function(e){for(var t=-1,a=null==e?0:e.length,i=0,n=[];++t<a;){var r=e[t];r&&(n[i++]=r)}return n},Oa.concat=function(){var e=arguments.length;if(!e)return[];for(var t=ne(e-1),a=arguments[0],i=e;i--;)t[i-1]=arguments[i];return Et(Us(a)?Mn(a):[a],mi(t,1))},Oa.cond=function(e){var t=null==e?0:e.length,a=or();return e=t?Ft(e,(function(e){if("function"!=typeof e[1])throw new Me(i);return[a(e[0]),e[1]]})):[],qi((function(a){for(var i=-1;++i<t;){var n=e[i];if(St(n[0],this,a))return St(n[1],this,a)}}))},Oa.conforms=function(e){return function(e){var t=Co(e);return function(a){return oi(a,e,t)}}(si(e,1))},Oa.constant=Qo,Oa.countBy=hs,Oa.create=function(e,t){var a=Ba(e);return null==t?a:ai(a,t)},Oa.curry=function e(t,i,n){var r=Jn(t,8,a,a,a,a,a,i=n?a:i);return r.placeholder=e.placeholder,r},Oa.curryRight=function e(t,i,n){var r=Jn(t,16,a,a,a,a,a,i=n?a:i);return r.placeholder=e.placeholder,r},Oa.debounce=Vs,Oa.defaults=ko,Oa.defaultsDeep=So,Oa.defer=Cs,Oa.delay=Is,Oa.difference=Or,Oa.differenceBy=Br,Oa.differenceWith=$r,Oa.drop=function(e,t,i){var n=null==e?0:e.length;return n?tn(e,(t=i||t===a?1:ho(t))<0?0:t,n):[]},Oa.dropRight=function(e,t,i){var n=null==e?0:e.length;return n?tn(e,0,(t=n-(t=i||t===a?1:ho(t)))<0?0:t):[]},Oa.dropRightWhile=function(e,t){return e&&e.length?pn(e,or(t,3),!0,!0):[]},Oa.dropWhile=function(e,t){return e&&e.length?pn(e,or(t,3),!0):[]},Oa.fill=function(e,t,i,n){var r=null==e?0:e.length;return r?(i&&"number"!=typeof i&&br(e,t,i)&&(i=0,n=r),function(e,t,i,n){var r=e.length;for((i=ho(i))<0&&(i=-i>r?0:r+i),(n=n===a||n>r?r:ho(n))<0&&(n+=r),n=i>n?0:fo(n);i<n;)e[i++]=t;return e}(e,t,i,n)):[]},Oa.filter=function(e,t){return(Us(e)?Vt:fi)(e,or(t,3))},Oa.flatMap=function(e,t){return mi(ws(e,t),1)},Oa.flatMapDeep=function(e,t){return mi(ws(e,t),u)},Oa.flatMapDepth=function(e,t,i){return i=i===a?1:ho(i),mi(ws(e,t),i)},Oa.flatten=zr,Oa.flattenDeep=function(e){return null!=e&&e.length?mi(e,u):[]},Oa.flattenDepth=function(e,t){return null!=e&&e.length?mi(e,t=t===a?1:ho(t)):[]},Oa.flip=function(e){return Jn(e,512)},Oa.flow=el,Oa.flowRight=tl,Oa.fromPairs=function(e){for(var t=-1,a=null==e?0:e.length,i={};++t<a;){var n=e[t];i[n[0]]=n[1]}return i},Oa.functions=function(e){return null==e?[]:_i(e,Co(e))},Oa.functionsIn=function(e){return null==e?[]:_i(e,Io(e))},Oa.groupBy=bs,Oa.initial=function(e){return null!=e&&e.length?tn(e,0,-1):[]},Oa.intersection=Hr,Oa.intersectionBy=Yr,Oa.intersectionWith=Gr,Oa.invert=To,Oa.invertBy=Mo,Oa.invokeMap=vs,Oa.iteratee=il,Oa.keyBy=_s,Oa.keys=Co,Oa.keysIn=Io,Oa.map=ws,Oa.mapKeys=function(e,t){var a={};return t=or(t,3),bi(e,(function(e,i,n){ii(a,t(e,i,n),e)})),a},Oa.mapValues=function(e,t){var a={};return t=or(t,3),bi(e,(function(e,i,n){ii(a,i,t(e,i,n))})),a},Oa.matches=function(e){return Oi(si(e,1))},Oa.matchesProperty=function(e,t){return Bi(e,si(t,1))},Oa.memoize=Fs,Oa.merge=Fo,Oa.mergeWith=Eo,Oa.method=nl,Oa.methodOf=rl,Oa.mixin=sl,Oa.negate=Es,Oa.nthArg=function(e){return e=ho(e),qi((function(t){return ji(t,e)}))},Oa.omit=Do,Oa.omitBy=function(e,t){return Ro(e,Es(or(t)))},Oa.once=function(e){return xs(2,e)},Oa.orderBy=function(e,t,i,n){return null==e?[]:(Us(t)||(t=null==t?[]:[t]),Us(i=n?a:i)||(i=null==i?[]:[i]),Ui(e,t,i))},Oa.over=ll,Oa.overArgs=Ds,Oa.overEvery=ul,Oa.overSome=cl,Oa.partial=Ls,Oa.partialRight=Rs,Oa.partition=As,Oa.pick=Lo,Oa.pickBy=Ro,Oa.property=dl,Oa.propertyOf=function(e){return function(t){return null==e?a:wi(e,t)}},Oa.pull=Zr,Oa.pullAll=Jr,Oa.pullAllBy=function(e,t,a){return e&&e.length&&t&&t.length?Wi(e,t,or(a,2)):e},Oa.pullAllWith=function(e,t,i){return e&&e.length&&t&&t.length?Wi(e,t,a,i):e},Oa.pullAt=Kr,Oa.range=pl,Oa.rangeRight=hl,Oa.rearg=Ps,Oa.reject=function(e,t){return(Us(e)?Vt:fi)(e,Es(or(t,3)))},Oa.remove=function(e,t){var a=[];if(!e||!e.length)return a;var i=-1,n=[],r=e.length;for(t=or(t,3);++i<r;){var s=e[i];t(s,i,e)&&(a.push(s),n.push(i))}return Hi(e,n),a},Oa.rest=function(e,t){if("function"!=typeof e)throw new Me(i);return qi(e,t=t===a?t:ho(t))},Oa.reverse=Xr,Oa.sampleSize=function(e,t,i){return t=(i?br(e,t,i):t===a)?1:ho(t),(Us(e)?Ja:Ji)(e,t)},Oa.set=function(e,t,a){return null==e?e:Ki(e,t,a)},Oa.setWith=function(e,t,i,n){return n="function"==typeof n?n:a,null==e?e:Ki(e,t,i,n)},Oa.shuffle=function(e){return(Us(e)?Ka:en)(e)},Oa.slice=function(e,t,i){var n=null==e?0:e.length;return n?(i&&"number"!=typeof i&&br(e,t,i)?(t=0,i=n):(t=null==t?0:ho(t),i=i===a?n:ho(i)),tn(e,t,i)):[]},Oa.sortBy=ks,Oa.sortedUniq=function(e){return e&&e.length?sn(e):[]},Oa.sortedUniqBy=function(e,t){return e&&e.length?sn(e,or(t,2)):[]},Oa.split=function(e,t,i){return i&&"number"!=typeof i&&br(e,t,i)&&(t=i=a),(i=i===a?p:i>>>0)?(e=go(e))&&("string"==typeof t||null!=t&&!io(t))&&!(t=ln(t))&&na(e)?_n(da(e),0,i):e.split(t,i):[]},Oa.spread=function(e,t){if("function"!=typeof e)throw new Me(i);return t=null==t?0:ya(ho(t),0),qi((function(a){var i=a[t],n=_n(a,0,t);return i&&Et(n,i),St(e,this,n)}))},Oa.tail=function(e){var t=null==e?0:e.length;return t?tn(e,1,t):[]},Oa.take=function(e,t,i){return e&&e.length?tn(e,0,(t=i||t===a?1:ho(t))<0?0:t):[]},Oa.takeRight=function(e,t,i){var n=null==e?0:e.length;return n?tn(e,(t=n-(t=i||t===a?1:ho(t)))<0?0:t,n):[]},Oa.takeRightWhile=function(e,t){return e&&e.length?pn(e,or(t,3),!1,!0):[]},Oa.takeWhile=function(e,t){return e&&e.length?pn(e,or(t,3)):[]},Oa.tap=function(e,t){return t(e),e},Oa.throttle=function(e,t,a){var n=!0,r=!0;if("function"!=typeof e)throw new Me(i);return Xs(a)&&(n="leading"in a?!!a.leading:n,r="trailing"in a?!!a.trailing:r),Vs(e,t,{leading:n,maxWait:t,trailing:r})},Oa.thru=ds,Oa.toArray=co,Oa.toPairs=Po,Oa.toPairsIn=Oo,Oa.toPath=function(e){return Us(e)?Ft(e,Lr):so(e)?[e]:Mn(Dr(go(e)))},Oa.toPlainObject=yo,Oa.transform=function(e,t,a){var i=Us(e),n=i||Ys(e)||oo(e);if(t=or(t,4),null==a){var r=e&&e.constructor;a=n?i?new r:[]:Xs(e)&&Zs(r)?Ba(He(e)):{}}return(n?xt:bi)(e,(function(e,i,n){return t(a,e,i,n)})),a},Oa.unary=function(e){return Ns(e,1)},Oa.union=Qr,Oa.unionBy=es,Oa.unionWith=ts,Oa.uniq=function(e){return e&&e.length?un(e):[]},Oa.uniqBy=function(e,t){return e&&e.length?un(e,or(t,2)):[]},Oa.uniqWith=function(e,t){return t="function"==typeof t?t:a,e&&e.length?un(e,a,t):[]},Oa.unset=function(e,t){return null==e||cn(e,t)},Oa.unzip=as,Oa.unzipWith=is,Oa.update=function(e,t,a){return null==e?e:dn(e,t,gn(a))},Oa.updateWith=function(e,t,i,n){return n="function"==typeof n?n:a,null==e?e:dn(e,t,gn(i),n)},Oa.values=Bo,Oa.valuesIn=function(e){return null==e?[]:Kt(e,Io(e))},Oa.without=ns,Oa.words=Jo,Oa.wrap=function(e,t){return Ls(gn(t),e)},Oa.xor=rs,Oa.xorBy=ss,Oa.xorWith=os,Oa.zip=ls,Oa.zipObject=function(e,t){return mn(e||[],t||[],Qa)},Oa.zipObjectDeep=function(e,t){return mn(e||[],t||[],Ki)},Oa.zipWith=us,Oa.entries=Po,Oa.entriesIn=Oo,Oa.extend=vo,Oa.extendWith=_o,sl(Oa,Oa),Oa.add=gl,Oa.attempt=Ko,Oa.camelCase=$o,Oa.capitalize=jo,Oa.ceil=bl,Oa.clamp=function(e,t,i){return i===a&&(i=t,t=a),i!==a&&(i=(i=mo(i))==i?i:0),t!==a&&(t=(t=mo(t))==t?t:0),ri(mo(e),t,i)},Oa.clone=function(e){return si(e,4)},Oa.cloneDeep=function(e){return si(e,5)},Oa.cloneDeepWith=function(e,t){return si(e,5,t="function"==typeof t?t:a)},Oa.cloneWith=function(e,t){return si(e,4,t="function"==typeof t?t:a)},Oa.conformsTo=function(e,t){return null==t||oi(e,t,Co(t))},Oa.deburr=Uo,Oa.defaultTo=function(e,t){return null==e||e!=e?t:e},Oa.divide=vl,Oa.endsWith=function(e,t,i){e=go(e),t=ln(t);var n=e.length,r=i=i===a?n:ri(ho(i),0,n);return(i-=t.length)>=0&&e.slice(i,r)==t},Oa.eq=Os,Oa.escape=function(e){return(e=go(e))&&q.test(e)?e.replace(Y,aa):e},Oa.escapeRegExp=function(e){return(e=go(e))&&ae.test(e)?e.replace(te,"\\$&"):e},Oa.every=function(e,t,i){var n=Us(e)?Mt:pi;return i&&br(e,t,i)&&(t=a),n(e,or(t,3))},Oa.find=fs,Oa.findIndex=jr,Oa.findKey=function(e,t){return Ot(e,or(t,3),bi)},Oa.findLast=ms,Oa.findLastIndex=Ur,Oa.findLastKey=function(e,t){return Ot(e,or(t,3),vi)},Oa.floor=_l,Oa.forEach=ys,Oa.forEachRight=gs,Oa.forIn=function(e,t){return null==e?e:yi(e,or(t,3),Io)},Oa.forInRight=function(e,t){return null==e?e:gi(e,or(t,3),Io)},Oa.forOwn=function(e,t){return e&&bi(e,or(t,3))},Oa.forOwnRight=function(e,t){return e&&vi(e,or(t,3))},Oa.get=No,Oa.gt=Bs,Oa.gte=$s,Oa.has=function(e,t){return null!=e&&fr(e,t,Ni)},Oa.hasIn=xo,Oa.head=Wr,Oa.identity=al,Oa.includes=function(e,t,a,i){e=Ws(e)?e:Bo(e),a=a&&!i?ho(a):0;var n=e.length;return a<0&&(a=ya(n+a,0)),ro(e)?a<=n&&e.indexOf(t,a)>-1:!!n&&$t(e,t,a)>-1},Oa.indexOf=function(e,t,a){var i=null==e?0:e.length;if(!i)return-1;var n=null==a?0:ho(a);return n<0&&(n=ya(i+n,0)),$t(e,t,n)},Oa.inRange=function(e,t,i){return t=po(t),i===a?(i=t,t=0):i=po(i),function(e,t,a){return e>=ga(t,a)&&e<ya(t,a)}(e=mo(e),t,i)},Oa.invoke=Vo,Oa.isArguments=js,Oa.isArray=Us,Oa.isArrayBuffer=zs,Oa.isArrayLike=Ws,Oa.isArrayLikeObject=Hs,Oa.isBoolean=function(e){return!0===e||!1===e||Qs(e)&&ki(e)==y},Oa.isBuffer=Ys,Oa.isDate=Gs,Oa.isElement=function(e){return Qs(e)&&1===e.nodeType&&!ao(e)},Oa.isEmpty=function(e){if(null==e)return!0;if(Ws(e)&&(Us(e)||"string"==typeof e||"function"==typeof e.splice||Ys(e)||oo(e)||js(e)))return!e.length;var t=hr(e);if(t==w||t==x)return!e.size;if(Ar(e))return!Di(e).length;for(var a in e)if(De.call(e,a))return!1;return!0},Oa.isEqual=function(e,t){return Ci(e,t)},Oa.isEqualWith=function(e,t,i){var n=(i="function"==typeof i?i:a)?i(e,t):a;return n===a?Ci(e,t,a,i):!!n},Oa.isError=qs,Oa.isFinite=function(e){return"number"==typeof e&&Pt(e)},Oa.isFunction=Zs,Oa.isInteger=Js,Oa.isLength=Ks,Oa.isMap=eo,Oa.isMatch=function(e,t){return e===t||Ii(e,t,ur(t))},Oa.isMatchWith=function(e,t,i){return i="function"==typeof i?i:a,Ii(e,t,ur(t),i)},Oa.isNaN=function(e){return to(e)&&e!=+e},Oa.isNative=function(e){if(wr(e))throw new Ae("Unsupported core-js use. Try https://npms.io/search?q=ponyfill.");return Fi(e)},Oa.isNil=function(e){return null==e},Oa.isNull=function(e){return null===e},Oa.isNumber=to,Oa.isObject=Xs,Oa.isObjectLike=Qs,Oa.isPlainObject=ao,Oa.isRegExp=io,Oa.isSafeInteger=function(e){return Js(e)&&e>=-9007199254740991&&e<=c},Oa.isSet=no,Oa.isString=ro,Oa.isSymbol=so,Oa.isTypedArray=oo,Oa.isUndefined=function(e){return e===a},Oa.isWeakMap=function(e){return Qs(e)&&hr(e)==V},Oa.isWeakSet=function(e){return Qs(e)&&"[object WeakSet]"==ki(e)},Oa.join=function(e,t){return null==e?"":Ht.call(e,t)},Oa.kebabCase=zo,Oa.last=qr,Oa.lastIndexOf=function(e,t,i){var n=null==e?0:e.length;if(!n)return-1;var r=n;return i!==a&&(r=(r=ho(i))<0?ya(n+r,0):ga(r,n-1)),t==t?function(e,t,a){for(var i=a+1;i--;)if(e[i]===t)return i;return i}(e,t,r):Bt(e,Ut,r,!0)},Oa.lowerCase=Wo,Oa.lowerFirst=Ho,Oa.lt=lo,Oa.lte=uo,Oa.max=function(e){return e&&e.length?hi(e,al,Si):a},Oa.maxBy=function(e,t){return e&&e.length?hi(e,or(t,2),Si):a},Oa.mean=function(e){return zt(e,al)},Oa.meanBy=function(e,t){return zt(e,or(t,2))},Oa.min=function(e){return e&&e.length?hi(e,al,Ri):a},Oa.minBy=function(e,t){return e&&e.length?hi(e,or(t,2),Ri):a},Oa.stubArray=fl,Oa.stubFalse=ml,Oa.stubObject=function(){return{}},Oa.stubString=function(){return""},Oa.stubTrue=function(){return!0},Oa.multiply=wl,Oa.nth=function(e,t){return e&&e.length?ji(e,ho(t)):a},Oa.noConflict=function(){return pt._===this&&(pt._=Be),this},Oa.noop=ol,Oa.now=Ss,Oa.pad=function(e,t,a){e=go(e);var i=(t=ho(t))?ca(e):0;if(!t||i>=t)return e;var n=(t-i)/2;return zn(ft(n),a)+e+zn(ht(n),a)},Oa.padEnd=function(e,t,a){e=go(e);var i=(t=ho(t))?ca(e):0;return t&&i<t?e+zn(t-i,a):e},Oa.padStart=function(e,t,a){e=go(e);var i=(t=ho(t))?ca(e):0;return t&&i<t?zn(t-i,a)+e:e},Oa.parseInt=function(e,t,a){return a||null==t?t=0:t&&(t=+t),va(go(e).replace(ie,""),t||0)},Oa.random=function(e,t,i){if(i&&"boolean"!=typeof i&&br(e,t,i)&&(t=i=a),i===a&&("boolean"==typeof t?(i=t,t=a):"boolean"==typeof e&&(i=e,e=a)),e===a&&t===a?(e=0,t=1):(e=po(e),t===a?(t=e,e=0):t=po(t)),e>t){var n=e;e=t,t=n}if(i||e%1||t%1){var r=_a();return ga(e+r*(t-e+lt("1e-"+((r+"").length-1))),t)}return Yi(e,t)},Oa.reduce=function(e,t,a){var i=Us(e)?Dt:Yt,n=arguments.length<3;return i(e,or(t,4),a,n,ci)},Oa.reduceRight=function(e,t,a){var i=Us(e)?Lt:Yt,n=arguments.length<3;return i(e,or(t,4),a,n,di)},Oa.repeat=function(e,t,i){return t=(i?br(e,t,i):t===a)?1:ho(t),Gi(go(e),t)},Oa.replace=function(){var e=arguments,t=go(e[0]);return e.length<3?t:t.replace(e[1],e[2])},Oa.result=function(e,t,i){var n=-1,r=(t=bn(t,e)).length;for(r||(r=1,e=a);++n<r;){var s=null==e?a:e[Lr(t[n])];s===a&&(n=r,s=i),e=Zs(s)?s.call(e):s}return e},Oa.round=Al,Oa.runInContext=e,Oa.sample=function(e){return(Us(e)?Za:Zi)(e)},Oa.size=function(e){if(null==e)return 0;if(Ws(e))return ro(e)?ca(e):e.length;var t=hr(e);return t==w||t==x?e.size:Di(e).length},Oa.snakeCase=Yo,Oa.some=function(e,t,i){var n=Us(e)?Rt:an;return i&&br(e,t,i)&&(t=a),n(e,or(t,3))},Oa.sortedIndex=function(e,t){return nn(e,t)},Oa.sortedIndexBy=function(e,t,a){return rn(e,t,or(a,2))},Oa.sortedIndexOf=function(e,t){var a=null==e?0:e.length;if(a){var i=nn(e,t);if(i<a&&Os(e[i],t))return i}return-1},Oa.sortedLastIndex=function(e,t){return nn(e,t,!0)},Oa.sortedLastIndexBy=function(e,t,a){return rn(e,t,or(a,2),!0)},Oa.sortedLastIndexOf=function(e,t){if(null!=e&&e.length){var a=nn(e,t,!0)-1;if(Os(e[a],t))return a}return-1},Oa.startCase=Go,Oa.startsWith=function(e,t,a){return e=go(e),a=null==a?0:ri(ho(a),0,e.length),t=ln(t),e.slice(a,a+t.length)==t},Oa.subtract=kl,Oa.sum=function(e){return e&&e.length?Gt(e,al):0},Oa.sumBy=function(e,t){return e&&e.length?Gt(e,or(t,2)):0},Oa.template=function(e,t,i){var n=Oa.templateSettings;i&&br(e,t,i)&&(t=a),e=go(e),t=_o({},t,n,Kn);var r,s,o=_o({},t.imports,n.imports,Kn),l=Co(o),u=Kt(o,l),c=0,d=t.interpolate||ve,p="__p += '",h=xe((t.escape||ve).source+"|"+d.source+"|"+(d===K?de:ve).source+"|"+(t.evaluate||ve).source+"|$","g"),f="//# sourceURL="+(De.call(t,"sourceURL")?(t.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++nt+"]")+"\n";e.replace(h,(function(t,a,i,n,o,l){return i||(i=n),p+=e.slice(c,l).replace(_e,ia),a&&(r=!0,p+="' +\n__e("+a+") +\n'"),o&&(s=!0,p+="';\n"+o+";\n__p += '"),i&&(p+="' +\n((__t = ("+i+")) == null ? '' : __t) +\n'"),c=l+t.length,t})),p+="';\n";var m=De.call(t,"variable")&&t.variable;if(m){if(ue.test(m))throw new Ae("Invalid `variable` option passed into `_.template`")}else p="with (obj) {\n"+p+"\n}\n";p=(s?p.replace(U,""):p).replace(z,"$1").replace(W,"$1;"),p="function("+(m||"obj")+") {\n"+(m?"":"obj || (obj = {});\n")+"var __t, __p = ''"+(r?", __e = _.escape":"")+(s?", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n":";\n")+p+"return __p\n}";var y=Ko((function(){return ke(l,f+"return "+p).apply(a,u)}));if(y.source=p,qs(y))throw y;return y},Oa.times=function(e,t){if((e=ho(e))<1||e>c)return[];var a=p,i=ga(e,p);t=or(t),e-=p;for(var n=qt(i,t);++a<e;)t(a);return n},Oa.toFinite=po,Oa.toInteger=ho,Oa.toLength=fo,Oa.toLower=function(e){return go(e).toLowerCase()},Oa.toNumber=mo,Oa.toSafeInteger=function(e){return e?ri(ho(e),-9007199254740991,c):0===e?e:0},Oa.toString=go,Oa.toUpper=function(e){return go(e).toUpperCase()},Oa.trim=function(e,t,i){if((e=go(e))&&(i||t===a))return Zt(e);if(!e||!(t=ln(t)))return e;var n=da(e),r=da(t);return _n(n,Qt(n,r),ea(n,r)+1).join("")},Oa.trimEnd=function(e,t,i){if((e=go(e))&&(i||t===a))return e.slice(0,pa(e)+1);if(!e||!(t=ln(t)))return e;var n=da(e);return _n(n,0,ea(n,da(t))+1).join("")},Oa.trimStart=function(e,t,i){if((e=go(e))&&(i||t===a))return e.replace(ie,"");if(!e||!(t=ln(t)))return e;var n=da(e);return _n(n,Qt(n,da(t))).join("")},Oa.truncate=function(e,t){var i=30,n="...";if(Xs(t)){var r="separator"in t?t.separator:r;i="length"in t?ho(t.length):i,n="omission"in t?ln(t.omission):n}var s=(e=go(e)).length;if(na(e)){var o=da(e);s=o.length}if(i>=s)return e;var l=i-ca(n);if(l<1)return n;var u=o?_n(o,0,l).join(""):e.slice(0,l);if(r===a)return u+n;if(o&&(l+=u.length-l),io(r)){if(e.slice(l).search(r)){var c,d=u;for(r.global||(r=xe(r.source,go(pe.exec(r))+"g")),r.lastIndex=0;c=r.exec(d);)var p=c.index;u=u.slice(0,p===a?l:p)}}else if(e.indexOf(ln(r),l)!=l){var h=u.lastIndexOf(r);h>-1&&(u=u.slice(0,h))}return u+n},Oa.unescape=function(e){return(e=go(e))&&G.test(e)?e.replace(H,ha):e},Oa.uniqueId=function(e){var t=++Le;return go(e)+t},Oa.upperCase=qo,Oa.upperFirst=Zo,Oa.each=ys,Oa.eachRight=gs,Oa.first=Wr,sl(Oa,(yl={},bi(Oa,(function(e,t){De.call(Oa.prototype,t)||(yl[t]=e)})),yl),{chain:!1}),Oa.VERSION="4.17.21",xt(["bind","bindKey","curry","curryRight","partial","partialRight"],(function(e){Oa[e].placeholder=Oa})),xt(["drop","take"],(function(e,t){Ua.prototype[e]=function(i){i=i===a?1:ya(ho(i),0);var n=this.__filtered__&&!t?new Ua(this):this.clone();return n.__filtered__?n.__takeCount__=ga(i,n.__takeCount__):n.__views__.push({size:ga(i,p),type:e+(n.__dir__<0?"Right":"")}),n},Ua.prototype[e+"Right"]=function(t){return this.reverse()[e](t).reverse()}})),xt(["filter","map","takeWhile"],(function(e,t){var a=t+1,i=1==a||3==a;Ua.prototype[e]=function(e){var t=this.clone();return t.__iteratees__.push({iteratee:or(e,3),type:a}),t.__filtered__=t.__filtered__||i,t}})),xt(["head","last"],(function(e,t){var a="take"+(t?"Right":"");Ua.prototype[e]=function(){return this[a](1).value()[0]}})),xt(["initial","tail"],(function(e,t){var a="drop"+(t?"":"Right");Ua.prototype[e]=function(){return this.__filtered__?new Ua(this):this[a](1)}})),Ua.prototype.compact=function(){return this.filter(al)},Ua.prototype.find=function(e){return this.filter(e).head()},Ua.prototype.findLast=function(e){return this.reverse().find(e)},Ua.prototype.invokeMap=qi((function(e,t){return"function"==typeof e?new Ua(this):this.map((function(a){return Mi(a,e,t)}))})),Ua.prototype.reject=function(e){return this.filter(Es(or(e)))},Ua.prototype.slice=function(e,t){e=ho(e);var i=this;return i.__filtered__&&(e>0||t<0)?new Ua(i):(e<0?i=i.takeRight(-e):e&&(i=i.drop(e)),t!==a&&(i=(t=ho(t))<0?i.dropRight(-t):i.take(t-e)),i)},Ua.prototype.takeRightWhile=function(e){return this.reverse().takeWhile(e).reverse()},Ua.prototype.toArray=function(){return this.take(p)},bi(Ua.prototype,(function(e,t){var i=/^(?:filter|find|map|reject)|While$/.test(t),n=/^(?:head|last)$/.test(t),r=Oa[n?"take"+("last"==t?"Right":""):t],s=n||/^find/.test(t);r&&(Oa.prototype[t]=function(){var t=this.__wrapped__,o=n?[1]:arguments,l=t instanceof Ua,u=o[0],c=l||Us(t),d=function(e){var t=r.apply(Oa,Et([e],o));return n&&p?t[0]:t};c&&i&&"function"==typeof u&&1!=u.length&&(l=c=!1);var p=this.__chain__,h=!!this.__actions__.length,f=s&&!p,m=l&&!h;if(!s&&c){t=m?t:new Ua(this);var y=e.apply(t,o);return y.__actions__.push({func:ds,args:[d],thisArg:a}),new ja(y,p)}return f&&m?e.apply(this,o):(y=this.thru(d),f?n?y.value()[0]:y.value():y)})})),xt(["pop","push","shift","sort","splice","unshift"],(function(e){var t=Ve[e],a=/^(?:push|sort|unshift)$/.test(e)?"tap":"thru",i=/^(?:pop|shift)$/.test(e);Oa.prototype[e]=function(){var e=arguments;if(i&&!this.__chain__){var n=this.value();return t.apply(Us(n)?n:[],e)}return this[a]((function(a){return t.apply(Us(a)?a:[],e)}))}})),bi(Ua.prototype,(function(e,t){var a=Oa[t];if(a){var i=a.name+"";De.call(Va,i)||(Va[i]=[]),Va[i].push({name:t,func:a})}})),Va[Bn(a,2).name]=[{name:"wrapper",func:a}],Ua.prototype.clone=function(){var e=new Ua(this.__wrapped__);return e.__actions__=Mn(this.__actions__),e.__dir__=this.__dir__,e.__filtered__=this.__filtered__,e.__iteratees__=Mn(this.__iteratees__),e.__takeCount__=this.__takeCount__,e.__views__=Mn(this.__views__),e},Ua.prototype.reverse=function(){if(this.__filtered__){var e=new Ua(this);e.__dir__=-1,e.__filtered__=!0}else(e=this.clone()).__dir__*=-1;return e},Ua.prototype.value=function(){var e=this.__wrapped__.value(),t=this.__dir__,a=Us(e),i=t<0,n=a?e.length:0,r=function(e,t,a){for(var i=-1,n=a.length;++i<n;){var r=a[i],s=r.size;switch(r.type){case"drop":e+=s;break;case"dropRight":t-=s;break;case"take":t=ga(t,e+s);break;case"takeRight":e=ya(e,t-s)}}return{start:e,end:t}}(0,n,this.__views__),s=r.start,o=r.end,l=o-s,u=i?o:s-1,c=this.__iteratees__,d=c.length,p=0,h=ga(l,this.__takeCount__);if(!a||!i&&n==l&&h==l)return hn(e,this.__actions__);var f=[];e:for(;l--&&p<h;){for(var m=-1,y=e[u+=t];++m<d;){var g=c[m],b=g.iteratee,v=g.type,_=b(y);if(2==v)y=_;else if(!_){if(1==v)continue e;break e}}f[p++]=y}return f},Oa.prototype.at=ps,Oa.prototype.chain=function(){return cs(this)},Oa.prototype.commit=function(){return new ja(this.value(),this.__chain__)},Oa.prototype.next=function(){this.__values__===a&&(this.__values__=co(this.value()));var e=this.__index__>=this.__values__.length;return{done:e,value:e?a:this.__values__[this.__index__++]}},Oa.prototype.plant=function(e){for(var t,i=this;i instanceof $a;){var n=Pr(i);n.__index__=0,n.__values__=a,t?r.__wrapped__=n:t=n;var r=n;i=i.__wrapped__}return r.__wrapped__=e,t},Oa.prototype.reverse=function(){var e=this.__wrapped__;if(e instanceof Ua){var t=e;return this.__actions__.length&&(t=new Ua(this)),(t=t.reverse()).__actions__.push({func:ds,args:[Xr],thisArg:a}),new ja(t,this.__chain__)}return this.thru(Xr)},Oa.prototype.toJSON=Oa.prototype.valueOf=Oa.prototype.value=function(){return hn(this.__wrapped__,this.__actions__)},Oa.prototype.first=Oa.prototype.head,Je&&(Oa.prototype[Je]=function(){return this}),Oa}();ft?((ft.exports=fa)._=fa,ht._=fa):pt._=fa}).call(te)}(ee,ee.exports)),ee.exports);class ie extends q{name="";displayName="";type=void 0;info;preload=!0;loadingManagerRule="load";item;itemRepo;condition;conditionFields=[];conditionFieldNames=[];dependantFields=[];dependenciesInitialized=!1;linkableTypes=[];collapsed=!1;presets=[];datatype=null;defaultValue=null;minValue=null;maxValue=null;language=null;widget=null;length=null;labelType=null;blocks=[];connections=[];_id="";_internalValue;_internalOptions=[];_updateConditions=!0;_hidden=!1;get hidden(){return!(!this.condition||!this.dependenciesInitialized)&&(this._updateConditions&&(this._hidden=!this._calculateConditionBlock(this.condition),this._updateConditions=!1),this._hidden)}get id(){return this._id}get options(){return this._internalOptions}set options(e){this._internalOptions=e}get value(){return this._internalValue}set value(e){this._internalValue=e,this._processDependencies()}constructor(e,t=void 0,a=void 0,i=void 0,n=void 0,r=void 0){super(n),e instanceof G?(this._id=e.id,this.restoreFromSnapshot(e)):(_.assert(e,"Field has no name!"),_.assert(a,"Field has no type!"),this._id=_.createFieldID(),this.name=e,this.displayName=t||e,this.type=a,this._internalValue=i,this.item=n,this.itemRepo=r)}updateConditions(){this.condition&&this.dependenciesInitialized&&(this._updateConditions=!0,y.$emit("field:hiddenChanged",this.id))}getId(){return this.id}resetValue(){this.value=this.defaultValue}makeIdsUnique(e=new Map,t=!1){if(e.has(this._id)||t){const t=_.createFieldID();e.set(this._id,t),this._id=t}else e.set(this._id,this._id);for(const a of this.blocks)a.makeIdsUnique(e,t);return e}transformNodeIds(e){for(const t of this.blocks)t.transformNodeIds(e);"Attribute"===this.type&&"Node"===this.datatype&&this.value&&e.has(this.value)&&(this.value=e.get(this.value))}findBlock(e){for(const t of this.blocks){const a=t.findBlock(e);if(a)return a}return null}clone(e=void 0,t=!1){let a=new ie(this.name,this.displayName,this.type);void 0===this._internalValue?a._internalValue=void 0:null===this._internalValue?a._internalValue=null:"Link"===this.type?a._internalValue=this._internalValue:a._internalValue=ae.cloneDeep(this._internalValue),a.info=this.info,a.preload=this.preload,a.loadingManagerRule=this.loadingManagerRule,a.item=this.item,a.ownerItem=this.ownerItem,a.itemRepo=this.itemRepo,a.condition=this.condition,a.conditionFields=this.conditionFields,a.conditionFieldNames=this.conditionFieldNames,a.dependantFields=this.dependantFields,a.collapsed=this.collapsed,a.presets=this.presets,a.labelType=this.labelType,a.datatype=this.datatype,a.defaultValue=this.defaultValue,a.minValue=this.minValue,a.maxValue=this.maxValue,a.options=this.options,a.language=this.language,a.widget=this.widget,a.length=this.length,a.linkableTypes=this.linkableTypes;for(const i of this.blocks){let n=i.clone(e,!0,{},t);e&&(n=S.instance.proxyBlock(n,e)),a.blocks.push(n)}for(const t of this.connections){let i=t.clone();e&&(i=S.instance.proxyConnection(i,e)),a.connections.push(i)}return a}_processDependencies(){for(const e of this.dependantFields)e.updateConditions()}_getConditionField(e){for(const t of this.conditionFields)if(t&&t.name===e)return t;return null}_calculateConditionField(e,t){if(!e.startsWith("$")){let a;e.includes(".")?(a=e.split("."),e=a.splice(0,1)[0]):a=[];let i=e.endsWith("?");i&&(e=e.substring(0,e.length-1));const n=this._getConditionField(e);if(!n)return i||console.error("Field to resolve condition not found: "+e),!1;let r=n.value;for(let t=0;t<a.length;t++){if(!r)return console.error(`Field path ${a.join(".")} not found in field ${e}!`),!1;r=r[a[t]]}return"object"==typeof t?void 0!==t.$isset?t.$isset===!!r:void 0!==t.$not?t.$not!==r:(console.error("Condition value cannot be interpreted: ",t,this),!1):n.value==t}switch(e){case"$isroot":return this.item._id===this.itemRepo.rootItemId===t;case"$parenttype":return console.log("$parenttype is not yet implemented!",this),!1;case"$optionsexist":return(Array.isArray(this.options)&&this.options.length>0)===t;case"$featureenabled":return this.itemRepo.apiClient.isFeatureEnabled(t);default:return console.error("Computed value unknown: "+e,this),!1}}_calculateConditionBlock(e){for(const t in e)if(e.hasOwnProperty(t)){const a=e[t];if("$or"===t)if(Array.isArray(a)){let e=!1;for(const t of a)if(this._calculateConditionBlock(t)){e=!0;break}if(!e)return!1}else console.error("Condition contains $or but its value is not an array!");else if("$not"===t){if("object"!=typeof a)console.error("When using the $not operator, the value needs to be an object");else if(this._calculateConditionBlock(a))return!1}else if(!this._calculateConditionField(t,a))return!1}return!0}refreshFieldDependencies(){for(const e of this.blocks)e.refreshFieldDependencies()}refreshDependantFields(e,t){const a=[];if(this.condition)for(let t of this.conditionFieldNames){const i=t.endsWith("?");i&&(t=t.substring(0,t.length-1));const n=e.get(t);n?a.push(n):i||console.warn("Condition field not found: "+t)}this.conditionFields=a,this.dependantFields=t||[],this.dependenciesInitialized=!0}setCondition(e){e?"object"==typeof e?this.condition=e:(console.error("Condition must be an object if set",e),this.condition=null):this.condition=null,this.conditionFieldNames=[],this.condition&&this._scanConditions(this.condition)}_scanConditions(e){for(let t in e)if(e.hasOwnProperty(t)){const a=e[t];if(Array.isArray(a))for(const e of a)this._scanConditions(e);else t.startsWith("$")||(t.includes(".")&&(t=t.split(".")[0]),this.conditionFieldNames.includes(t)||this.conditionFieldNames.push(t))}}forEachField(e){if(e(this),this.blocks)for(const t of this.blocks)t.forEachField(e)}setInfo(e){this.info=e}setPreload(e){this.preload=e}setLoadingManagerRule(e){this.loadingManagerRule=e}setLinkableTypes(e){this.linkableTypes=e}setDefaultValue(e){this.defaultValue=e,void 0!==this._internalValue&&null!==this._internalValue||(this._internalValue=e)}setMinValue(e){this.minValue=e}setMaxValue(e){this.maxValue=e}setOptions(e){this.options=e}setDatatype(e){this.datatype=e}setLanguage(e){this.language=e}setLength(e){this.length=e}setWidget(e){this.widget=e}setBlocks(e){this.blocks=e}setConnections(e){this.connections=e}setCollapsed(e){this.collapsed=!!e}setPresets(e){this.presets=e||[]}setLabelType(e){this.labelType=e||"info"}createSnapshot(e=!1){_.assert(this.id,"Field has no ID. Cannot create snapshot");const t=[];for(const a of this.blocks)t.push(a.createSnapshot(e));const a=[];for(const e of this.connections)a.push(e.createSnapshot());return new G(this.id,"field",{name:this.name,displayName:this.displayName,type:this.type,value:this._internalValue,preload:this.preload,info:this.info,loadingManagerRule:this.loadingManagerRule,item:this.item,itemRepo:this.itemRepo,condition:this.condition,conditionFields:this.conditionFields,conditionFieldNames:this.conditionFieldNames,dependantFields:this.dependantFields,linkableTypes:this.linkableTypes,collapsed:this.collapsed,presets:this.presets,datatype:this.datatype,defaultValue:this.defaultValue,minValue:this.minValue,maxValue:this.maxValue,options:this.options,language:this.language,widget:this.widget,length:this.length,labelType:this.labelType,blocks:t,connections:a})}restoreFromSnapshot(e){e.id===this.id?(this.name=e.data.name,this.displayName=e.data.displayName,this.type=e.data.type,this._internalValue=e.data.value,this.info=e.data.info,this.preload=e.data.preload,this.loadingManagerRule=e.data.loadingManagerRule,this.item=e.data.item,this.ownerItem=e.data.item,this.itemRepo=e.data.itemRepo,this.condition=e.data.condition,this.conditionFields=e.data.conditionFields,this.conditionFieldNames=e.data.conditionFieldNames,this.dependantFields=e.data.dependantFields,this.linkableTypes=e.data.linkableTypes,this.collapsed=e.data.collapsed,this.presets=e.data.presets,this.datatype=e.data.datatype,this.defaultValue=e.data.defaultValue,this.minValue=e.data.minValue,this.maxValue=e.data.maxValue,this.options=e.data.options,this.language=e.data.language,this.widget=e.data.widget,this.length=e.data.length,this.labelType=e.data.labelType,this.blocks=[],this.connections=[],this._rollbackArray(this.blocks,e.data.blocks,((e,t)=>S.instance.proxyBlock(new ce(e,t),this.ownerItem))),this._rollbackArray(this.connections,e.data.connections,((e,t)=>S.instance.proxyConnection(new Z(e.data,t),this.ownerItem)))):console.error("Snapshot ID does not match! Cannot rollback!",this,e)}rollbackFromSnapshot(e){this.value=e.data.value,this._rollbackArray(this.blocks,e.data.blocks,((e,t)=>S.instance.proxyBlock(new ce(e,t),this.ownerItem))),this._rollbackArray(this.connections,e.data.connections,((e,t)=>S.instance.proxyConnection(new Z(e.data,t),this.ownerItem)))}}class ne extends q{id;name=void 0;displayName=void 0;value;type=void 0;datatype=void 0;linkableTypes=[];order=0;constructor(e=void 0,t=void 0,a=void 0){super(a),this.value=t,this.id=_.createItemOrBlockID(),this.name=e,this.displayName=e,this._updateDisplayName()}getId(){return this.id}setName(e){this.name=e,this._updateDisplayName()}setType(e){this.type=e}setOrder(e){this.order=e}clone(e=new Map){const t=new ne;return t.ownerItem=this.ownerItem,t.value=e.get(this.value)??this.value,t.type=this.type,t.order=this.order,t.setName(this.name),t}clearDefinition(){this.type=void 0}setDefinition(e){const t=e.type.toLowerCase();switch(t){case"boolean":case"bool":this.type="Attribute",this.datatype="Boolean",this.value=void 0!==this.value?this._toBoolean(this.value):this._toBoolean(e.defaultValue);break;case"float":this.type="Attribute",this.datatype="Float",this.value=void 0!==this.value?Number(this.value):Number(e.defaultValue);break;case"int":this.type="Attribute",this.datatype="Integer",this.value=void 0!==this.value?parseInt(this.value):parseInt(e.defaultValue);break;case"string":this.type="Attribute",this.datatype="String",this.value=void 0!==this.value&&null!==this.value?this.value.toString():e.defaultValue?e.defaultValue.toString():"";break;case"vec2":this.type="Attribute",this.datatype="Vector2d";break;case"vec3":this.type="Attribute",this.datatype="Vector3d";break;case"vec4":this.type="Attribute",this.datatype="Vector4d";break;case"mat3":this.type="Attribute",this.datatype="Mat3";break;case"mat4":this.type="Attribute",this.datatype="Mat4";break;case"color":this.type="Attribute",this.datatype="Color";break;case"image":this.type="Link",this.linkableTypes=["Image"];break;default:console.error("Unknown script field type: "+t),this.type="Attribute",this.datatype="String",this.value=this.value?this.value.toString():e.defaultValue?e.defaultValue.toString():""}}_toBoolean(e){return null!=e&&(!0===e||!1===e?e:"false"!==e.toString().toLowerCase())}_updateDisplayName(){this.name?this.displayName=_.toUserFriendlyName(this.name):this.displayName=""}createSnapshot(){return new G(this.id,"customfield",{id:this.id,value:this.value})}rollbackFromSnapshot(e){this.value=e.data.value}}class re extends D{links;instanceId;isDirty=!1;fieldInstances;userFieldInstances;customFieldInstances;packageContent;packageType;public=!1;readOnly=!1;isPackaged=!1;isGenerated=!1;packageItem;isPreparedItem=!0;resultingAcl;constructor(e){if(super(e),this.instanceId=_.createItemOrBlockID(),this.links=[],Array.isArray(e.links))for(const t of e.links)this.links.push({to:t.to,usage:t.usage,stopRecursion:t.stopRecursion,item:t.item});this.fieldInstances=[],this.userFieldInstances=[],this.customFieldInstances=S.instance.proxyCustomFieldsArray([],this),this.public=!!e.public,this.packageContent=e.packageContent,this.packageType=e.packageType,this.packageItem=e.packageItem,this.readOnly=!!e.readOnly,this.isPackaged=!!e.isPackaged,this.isGenerated=!!e.isGenerated,this.resultingAcl=JSON.parse(JSON.stringify(e.resultingAcl||[]))}createCustomFieldInstances(e){function t(e,t){for(const a of e)if(a.name===t)return a;return null}for(const a of this.customFieldInstances)t(e,a.name)||a.clearDefinition();let a=0;for(const i of e){let e=t(this.customFieldInstances,i.name);e||(e=new ne(i.name,i.defaultValue,this),this.addCustomField(e)),e.setOrder(a++),e.setDefinition(i)}this.customFieldInstances.sort((function(e,t){return e.order-t.order}))}addCustomField(e){this.customFieldInstances.push(S.instance.proxyCustomField(e,this))}markDirty(){this.isDirty||(this.isDirty=!0,y.$emit("itemRepo:itemBecameDirty",this._id))}makeIdsUnique(){const e=new Map;for(const t of this.fieldInstances)t.makeIdsUnique(e,!0);this.packageContent&&this.packageContent.makeIdsUnique()}clone(e=!1){let t=new re(this);const a=new Map;for(const i of this.fieldInstances){const n=i.clone(this,!0);e&&n.makeIdsUnique(a,!0),t.fieldInstances.push(n)}if(e)for(const e of t.fieldInstances)e.transformNodeIds(a);return t}findBlock(e){for(const t of this.fieldInstances){const a=t.findBlock(e);if(a)return a}return null}refreshFieldDependencies(){ue.refreshFieldDependencies(this.fieldInstances);for(const e of this.fieldInstances)e.refreshFieldDependencies()}forEachItem(e){if(e(this),this.links)for(const t of this.links)t.item&&t.item.forEachItem(e)}forEachFieldInstance(e){if(this.fieldInstances)for(const t of this.fieldInstances)t.forEachField(e)}toString(){return`PreparedItem(${JSON.stringify({_id:this._id,name:this.name,type:this.type})})`}}function se(e,t,a){if(e.admin||e.superadmin)return!0;if(!Array.isArray(t))return!0;for(const i of t)if(i.can.includes(a)){if(!i.user&&!i.group)return!0;if(i.user&&i.user===e._id)return!0;if(i.group)for(const t of e.groups){if("object"==typeof t&&t._id===i.group)return!0;if(t===i.group)return!0}}}class oe{fields;constructor(e){if(!Array.isArray(e))throw"Template fields need to be an array!";this.fields=e}clone(){const e=[];for(const t of this.fields)e.push(t.clone());return new oe(e)}specialize(e){for(const t of this.fields)void 0!==e[t.name]&&(t.defaultValue=e[t.name]);return this}instantiate(e){if(e)return this.fields;{const e=[];for(const t of this.fields)e.push(t.clone());return e}}}class le{templates=new Map;templatesByField=new Map;static _instance;static get instance(){return this._instance||(this._instance=new this)}_existsTemplate(e,t){for(const a of e)if(a.typeName===t)return!0;return!1}addTemplates(e,t,a){const i=`${e}_${t}`,n=this.templatesByField.get(i)||[];for(const e of a){const t=`${i}_${e.typeName}`;this.templates.set(t,e),this._existsTemplate(n,e.typeName)||n.push(e)}this.templatesByField.set(i,n)}getTemplate(e,t,a){const i=`${e}_${t}_${a}`;return this.templates.get(i)}getTemplates(e,t){const a=`${e}_${t}`;return this.templatesByField.get(a)||[]}}class ue{itemRepo;itemFetcher;constructor(e){this.itemRepo=e,this.itemFetcher=function(e){return e}}setItemFetcher(e){this.itemFetcher=e}setFieldsFromDatatypes(e){const t=R(e.type,!0);e.fields=t.fields||[],e.fieldSets=t.fieldSets||[]}async prepare(e){return e instanceof re?(console.warn("Trying to prepare an already prepared item: ",e),e):this.itemRepo.undoManager.ignore((async()=>{const t=new re(e);return this.setFieldsFromDatatypes(t),t.fieldInstances=await this.createFieldInstances(t,t.fields,t.attributes,"","attributes",!1),t.userFieldInstances=await this.createFieldInstances(t,t.userFields,t.userAttributes,"","userAttributes",!1),t.customFieldInstances=await this.createCustomFieldInstances(t,t.userAttributes,"_"),t.allowConversation=!!t.allowConversation,t.packageContent&&await this.itemRepo.traverseItems((e=>{e.readOnly=!0,e.isPackaged=!0,e.packageItem=t}),t.packageContent),t.packageItem?(t.readOnly=!0,t.isPackaged=!0):(t.isPackaged=!1,t.resultingAcl&&t.resultingAcl.length>0?t.readOnly=!se(await this.itemRepo.apiClient.me(!0),t.resultingAcl,"write"):t.readOnly=!0),t}))}async createCustomFieldInstances(e,t,a=""){if(!e)throw new M("createCustomFieldInstances(): Item cannot be null!");if(!t)throw new M("createCustomFieldInstances(): attributes cannot be null!");const i=[];for(const n in t)if(!a.length||n.startsWith(a)){const r=n.substring(a.length);let s=new ne(r,t[n],e);s.setType("Attribute"),i.push(S.instance.proxyCustomField(s,e))}if(e.links)for(const t of e.links)if(!a.length||t.usage.startsWith(a)){const n=t.usage.substring(a.length);let r,{id:s,linkItem:o,stopRecursion:l}=await this.fetchLinkValue(e,t.usage);o?r=o:l&&(r=s);let u=new ne(n,r,e);u.setType("Link"),i.push(S.instance.proxyCustomField(u,e))}return i}async createFieldInstances(e,t,a,i,n,r=!1){if(!e)throw new M("createFieldInstances(): Item cannot be null!");if(!t)throw new M("createFieldInstances(): Fields cannot be null!");const s=[],o=i.length?`${i}->`:i;for(let a=0;a<t.length;a++){const i=t[a];if("FieldSet"===i.type){const n=this.getFieldSet(e,i.name);n?(t.splice(a,1,...structuredClone(n.fields)),a+=n.fields.length-1):console.error("Fieldset not found: "+i.name)}}for(const i of t)switch(i.type){case"Separator":{const t=new ie("Separator",i.label,"Separator",null,e,this.itemRepo);t.setInfo(i.info),t.setCondition(i.if),t.setCollapsed(i.collapsed),t.setPresets(i.presets),s.push(t);break}case"Label":{const t=new ie("Label","","Label",i.text,e,this.itemRepo);t.setLabelType(i.labelType),t.setCondition(i.if),s.push(t);break}case"Link":{let t;if(!r){let{id:a,linkItem:n,stopRecursion:r}=await this.fetchLinkValue(e,i.usageAs);n?t=n:r&&(t=a)}let a=new ie(i.usageAs,i.displayName,i.type,t,e,this.itemRepo);a.setInfo(i.info),a.setCondition(i.if),a.setLinkableTypes(i.linkableTypes),void 0!==i.preload&&a.setPreload(i.preload),void 0!==i.loadingManager&&a.setLoadingManagerRule(i.loadingManager),s.push(S.instance.proxyItemField(a,e));break}case"Tree":{const t=`${o}${i.name}`,r=[];for(const s of i.childTypes){const i=new oe(await this.createFieldInstances(e,s.fields,a,t,n,!0));r.push({typeName:s.typeName,displayName:s.displayName||s.typeName,template:i,inputs:[],outputs:[]})}r.sort((function(e,t){return e.displayName.localeCompare(t.displayName)})),le.instance.addTemplates(e.type,i.name,r);const l=new ce(void 0,void 0,"","Root",void 0,e),u=await this.readBlocks(e,l,i.name,t,a,!0,!0,"Tree");l.blocks=S.instance.proxyBlockArray(u,l,e);let c=new ie(i.name,i.displayName,i.type,null,e,this.itemRepo);c.setInfo(i.info),c.setCondition(i.if),c.setBlocks([l]),s.push(c);break}case"List":{const t=`${o}${i.name}`,r=new oe(await this.createFieldInstances(e,i.fields,a,t,n,!0)),l=[{typeName:"Entry",displayName:i.elementName,template:r,inputs:[],outputs:[]}];le.instance.addTemplates(e.type,i.name,l);let u=new ie(i.name,i.displayName,i.type,null,e,this.itemRepo);const c=await this.readBlocks(e,void 0,i.name,t,a,!0,!0,"List"),d=S.instance.proxyListArray(c,u,e);u.setInfo(i.info),u.setCondition(i.if),u.setBlocks(d),s.push(u);break}case"NodeGraph":{const t=`${o}${i.name}`,r=[];for(const s of i.childTypes){const i=new oe(await this.createFieldInstances(e,s.fields,a,t,n,!0));r.push({typeName:s.typeName,displayName:s.displayName||s.typeName,template:i,inputs:s.inputs||[],outputs:s.outputs||[]})}r.sort((function(e,t){return e.displayName.localeCompare(t.displayName)})),le.instance.addTemplates(e.type,i.name,r);let l=await this.readBlocks(e,void 0,i.name,t,a,!1,!1,"NodeGraph"),u=this.readConnections(e,t,a),c=new ie(i.name,i.displayName,i.type,null,e,this.itemRepo);c.setInfo(i.info),c.setCondition(i.if),c.setBlocks(S.instance.proxyGraphBlockArray(l,e)),c.setConnections(S.instance.proxyConnectionArray(u,e)),s.push(c);break}case"Attribute":{let t;r||(t=e[n]?e[n][i.name]:void 0,void 0===t&&(t=i.defaultValue));let a=new ie(i.name,i.displayName,i.type,t,e,this.itemRepo);a.setInfo(i.info),a.setCondition(i.if),a.setDefaultValue(i.defaultValue),a.setMinValue(i.minValue),a.setMaxValue(i.maxValue),a.setOptions(i.options),a.setDatatype(i.datatype),a.setLanguage(i.language),a.setWidget(i.widget),a.setLength(i.length),s.push(S.instance.proxyItemField(a,e));break}}return s}getFieldSet(e,t){if(Array.isArray(e.fieldSets))for(const a of e.fieldSets)if(a.name===t)return a;return null}async fetchLinkValue(e,t){if(!e)throw new M("fetchLinkValue(): Item cannot be null!");for(const a of e.links)if(a.usage===t)return{id:a.to,linkItem:a.item?await this.itemFetcher(a.item):null,stopRecursion:a.stopRecursion};return{id:null,linkItem:null}}async readBlocks(e,t,a,i,n,r,s,o){if(!e)throw new M("readBlocks(): Item cannot be null!");const l=[];let u=0;for(;;){const c=`${i}[${u}]`;if(!this.existsBlockNamespace(e,n,c))break;{const i=`${c}#id`,u=e.attributes[i],d=`${c}#type`;let p,h,f=e.attributes[d];switch(o){case"NodeGraph":{const t=`${c}#posx`,a=`${c}#posy`;p=e.attributes[t]||0,h=e.attributes[a]||0;break}case"List":r=!1,f="Entry"}const m=le.instance.getTemplate(e.packageType||e.type,a,f);if(m){const i=m.typeName,d=m.displayName,f=new ce(u,t,i,i,d,e),y=await this.createFields(f,e,m.template,c,"NodeGraph"===o,n);if(f.setFields(y),"NodeGraph"===o&&(f.setPosition(p,h),f.setInputs(m.inputs),f.setOutputs(m.outputs)),r){const t=await this.readBlocks(e,f,a,c,n,r,s,o);f.blocks=S.instance.proxyBlockArray(t,f,e)}if(s){const t=await this.readScripts(e,f,c,n);f.scripts=S.instance.proxyScriptArray(t,f,e)}"NodeGraph"===o?l.push(S.instance.proxyGraphBlock(f,e)):l.push(S.instance.proxyBlock(f,e))}else console.error(`Block template not found: ${a}_${f}`)}u++}return l}async readScripts(e,t,a,i){if(!e)throw new M("readScripts(): Item cannot be null!");const n=[];let r=0;for(;;){const s=`${a}#scripts[${r}]`;if(!this.existsScriptNamespace(e,i,s))break;{const a=i[`${s}#id`],r=`${s}#item`,o=`${s}->`,l=o.length;let{linkItem:u}=await this.fetchLinkValue(e,r);const c=new X(a,t,e,u);n.push(c);for(const t in i)if(i.hasOwnProperty(t)&&t.startsWith(o)){const a=i[t],n=t.substring(l),r=new J(c,n,a,e);c.addField(r)}}r++}return n}existsScriptNamespace(e,t,a){if(!e)throw new M("existsScriptNamespace(): Item cannot be null!");return"Script"===t[`${a}#usage`]}readConnections(e,t,a){const i=[];let n=0;for(;;){const r=a[`${t}#connection[${n++}]`];if(!r)break;i.push(new Z(r,e))}return i}existsBlockNamespace(e,t,a){if(!e)throw new M("existsBlockNamespace(): Item cannot be null!");const i=t[`${a}#usage`];if(i)return"Block"===i;for(const e in t)if(t.hasOwnProperty(e)&&e.startsWith(a))return!0;for(const t of e.links)if(t.usage.startsWith(a))return!0;return!1}async createFields(e,t,a,i,n,r,s=!1){let o=a.instantiate(s),l=[];for(const a of o)if(a.name){const s=`${i}->${a.name}`;switch(a.type){case"Link":if(i){let{id:e,linkItem:i,stopRecursion:n}=await this.fetchLinkValue(t,s);a.value=i||(n?e:null)}else a.value=a.defaultValue;break;case"List":{const e=await this.readBlocks(t,void 0,a.name,s,r,!0,!0,"List"),i=S.instance.proxyListArray(e,a,t);a.setBlocks(i);break}case"Attribute":i?(a.value=t.attributes[s],void 0===a.value&&(a.value=a.defaultValue)):a.value=a.defaultValue}n?l.push(S.instance.proxyGraphBlockField(a,e,t)):l.push(S.instance.proxyBlockField(a,e,t))}return l}static refreshFieldDependencies(e){const t=new Map,a=new Map;for(const a of e)t.set(a.name,a);for(const i of e)if(Array.isArray(i.conditionFieldNames))for(const e of i.conditionFieldNames){const n=t.get(e);if(n){const e=a.get(n);e?e.push(i):a.set(n,[i])}}for(const i of e)i.refreshDependantFields(t,a.get(i))}}class ce extends q{id="";parent=void 0;type=void 0;name="";displayName="";fields=[];blocks=[];isSelected=!1;isExpanded=!0;scripts=[];inputs=[];outputs=[];posX=0;posY=0;constructor(e=void 0,t=void 0,a=void 0,i=void 0,n=void 0,r=void 0){super(r),e instanceof G?this.restoreFromSnapshot(e,t):(this.id=e||_.createItemOrBlockID(),this.parent=t,this.type=a,this.name=i||this.type||"",this.displayName=n||this.name)}getId(){return this.id}getPositionInParent(){if(this.parent){let e=0;for(const t of this.parent.blocks){if(t.id===this.id)return e;e++}}return-1}refreshFieldDependencies(){ue.refreshFieldDependencies(this.fields);for(const e of this.fields)e.refreshFieldDependencies();for(const e of this.blocks)e.refreshFieldDependencies()}resetFieldValues(e=!1){for(const e of this.fields)e.resetValue();if(e)for(const t of this.blocks)t.resetFieldValues(e)}makeIdsUnique(e=new Map,t=!1){if(e.has(this.id)||t){const t=_.createItemOrBlockID();e.set(this.id,t),this.id=t}else e.set(this.id,this.id);for(const a of this.fields)a.makeIdsUnique(e,t);for(const a of this.blocks)a.makeIdsUnique(e,t);for(const a of this.scripts)a.makeIdsUnique(e,t);return e}transformNodeIds(e){for(const t of this.fields)t.transformNodeIds(e);for(const t of this.blocks)t.transformNodeIds(e);for(const t of this.scripts)t.transformNodeIds(e)}clone(e,t=!0,a={},i=!1){const n=new ce;i&&(n.id=this.id),n.ownerItem=this.ownerItem,n.parent=this.parent,n.type=this.type,n.name=this.name,n.displayName=this.displayName,n.isSelected=!1,n.isExpanded=!0,n.inputs=this.inputs,n.outputs=this.outputs,n.posX=0,n.posY=0;for(const t of this.fields){let r=t.clone(e,i);void 0!==a[t.name]&&(r.value=a[t.name]),e&&(r=S.instance.proxyBlockField(r,n,e)),n.fields.push(r)}if(e&&(n.scripts=S.instance.proxyScriptArray(n.scripts,n,e)),t)for(const e of this.scripts){const t=e.clone();n.scripts.push(t)}const r=n.blocks;e&&(n.blocks=S.instance.proxyBlockArray(r,n,e));for(const a of this.blocks){let s=a.clone(e,t,{},i);s.parent=n,e&&(s=S.instance.proxyBlock(s,e)),r.push(s)}return n}getDescendantBlocks(e=[]){const t=this.blocks;return e.push(...t),t.forEach((t=>t.getDescendantBlocks(e))),e}setFields(e){this.fields=e}setInputs(e){this.inputs=e}setOutputs(e){this.outputs=e}setPosition(e,t){this.posX=e,this.posY=t}setSelected(e){this.isSelected=e}setExpanded(e){this.isExpanded=e}getRoot(){return this.parent?this.parent.getRoot():this}forEachField(e){if(this.fields)for(const t of this.fields)t.forEachField(e);if(this.blocks)for(const t of this.blocks)t.forEachField(e)}findField(e){for(const t of this.fields)if(t.name===e)return t;return null}findBlock(e){if(this.id===e)return this;for(const t of this.blocks){const a=t.findBlock(e);if(a)return a}return null}removeBlock(e){this.blocks.removeObject(e)}addBlock(e,t){this.blocks.includes(e)||(void 0===t?this.blocks.push(e):this.blocks.splice(t,0,e))}moveBlock(e,t){e.parent.blocks.moveObjectToArray(e,e.parent.blocks,t)}moveToPosition(e){this.parent.moveBlock(this,e)}moveBlockToParent(e,t){this.parent.blocks.moveObjectToArray(this,e.blocks,t),this.parent=e}moveToParent(e,t){if(this.findBlock(e))return void console.error("Cannot move block to a parent that is a child.");const a=this.getRoot();if(!a)return void console.error("Cannot find root block!");const i=a.findBlock(e);i?this.parent!==i?this.moveBlockToParent(i,t):console.warn(`Node is already in parent ${e}`):console.error(`Cannot find the new parent block: ${e}`)}getField(e){for(const t of this.fields)if(t.name===e)return t;return null}hasTag(e){const t=this.getField("Tags");return!(!t||!Array.isArray(t.value))&&t.value.includes(e)}hasOneTag(e){const t=this.getField("Tags");if(t&&Array.isArray(t.value))for(const a of e)if(t.value.includes(a))return!0;return!1}getNameFieldValue(){const e=this.getField("Name");return e?e.value:null}getActiveFieldValue(){const e=this.getField("Active");return!e||e.value}createSnapshot(e=!1){const t=[];for(const a of this.fields)a.createSnapshot&&t.push(a.createSnapshot(e));const a=[];if(!e)for(const t of this.blocks)a.push(t.createSnapshot(e));const i=[];for(const e of this.scripts)i.push(e.createSnapshot());return new G(this.id,"block",{id:this.id,ownerItem:this.ownerItem,type:this.type,name:this.name,displayName:this.displayName,fields:t,blocks:a,isExpanded:this.isExpanded,scripts:i,inputs:this.inputs,outputs:this.outputs,posX:this.posX,posY:this.posY})}restoreFromSnapshot(e,t){this.id=e.data.id,this.parent=t,this.type=e.data.type,this.ownerItem=e.data.ownerItem,this.name=e.data.name,this.displayName=e.data.displayName,this.isSelected=!1,this.isExpanded=e.data.isExpanded,this.inputs=e.data.inputs,this.outputs=e.data.outputs,this.posX=e.data.posX,this.posY=e.data.posY;const a=[];this._rollbackArray(a,e.data.fields,(e=>S.instance.proxyBlockField(new ie(e),this,this.ownerItem))),this.fields=a;const i=[];this._rollbackArray(i,e.data.blocks,((e,t)=>S.instance.proxyBlock(new ce(e,t),this.ownerItem))),this.blocks=S.instance.proxyBlockArray(i,this,this.ownerItem);const n=[];this._rollbackArray(n,e.data.scripts,((e,t)=>new X(e,t,this.ownerItem))),this.scripts=S.instance.proxyScriptArray(n,this,this.ownerItem)}rollbackFromSnapshot(e,t=!1){this._rollbackArray(this.fields,e.data.fields,(e=>S.instance.proxyBlockField(new ie(e),this,this.ownerItem))),this._rollbackArray(this.scripts,e.data.scripts,(e=>new X(e,this,this.ownerItem))),t||this._rollbackArray(this.blocks,e.data.blocks,((e,t)=>S.instance.proxyBlock(new ce(e,t),this.ownerItem)))}_getFieldByName(e,t){for(const a of t)if(a.id===e)return a;return null}}
12
- /*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) */function de(e){let t=e.length;for(;--t>=0;)e[t]=0}const pe=256,he=286,fe=30,me=15,ye=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),ge=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),be=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),ve=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),_e=new Array(576);de(_e);const we=new Array(60);de(we);const Ae=new Array(512);de(Ae);const ke=new Array(256);de(ke);const Se=new Array(29);de(Se);const Ne=new Array(fe);function xe(e,t,a,i,n){this.static_tree=e,this.extra_bits=t,this.extra_base=a,this.elems=i,this.max_length=n,this.has_stree=e&&e.length}let Te,Me,Ve;function Ce(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}de(Ne);const Ie=e=>e<256?Ae[e]:Ae[256+(e>>>7)],Fe=(e,t)=>{e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255},Ee=(e,t,a)=>{e.bi_valid>16-a?(e.bi_buf|=t<<e.bi_valid&65535,Fe(e,e.bi_buf),e.bi_buf=t>>16-e.bi_valid,e.bi_valid+=a-16):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=a)},De=(e,t,a)=>{Ee(e,a[2*t],a[2*t+1])},Le=(e,t)=>{let a=0;do{a|=1&e,e>>>=1,a<<=1}while(--t>0);return a>>>1},Re=(e,t,a)=>{const i=new Array(16);let n,r,s=0;for(n=1;n<=me;n++)s=s+a[n-1]<<1,i[n]=s;for(r=0;r<=t;r++){let t=e[2*r+1];0!==t&&(e[2*r]=Le(i[t]++,t))}},Pe=e=>{let t;for(t=0;t<he;t++)e.dyn_ltree[2*t]=0;for(t=0;t<fe;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.sym_next=e.matches=0},Oe=e=>{e.bi_valid>8?Fe(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0},Be=(e,t,a,i)=>{const n=2*t,r=2*a;return e[n]<e[r]||e[n]===e[r]&&i[t]<=i[a]},$e=(e,t,a)=>{const i=e.heap[a];let n=a<<1;for(;n<=e.heap_len&&(n<e.heap_len&&Be(t,e.heap[n+1],e.heap[n],e.depth)&&n++,!Be(t,i,e.heap[n],e.depth));)e.heap[a]=e.heap[n],a=n,n<<=1;e.heap[a]=i},je=(e,t,a)=>{let i,n,r,s,o=0;if(0!==e.sym_next)do{i=255&e.pending_buf[e.sym_buf+o++],i+=(255&e.pending_buf[e.sym_buf+o++])<<8,n=e.pending_buf[e.sym_buf+o++],0===i?De(e,n,t):(r=ke[n],De(e,r+pe+1,t),s=ye[r],0!==s&&(n-=Se[r],Ee(e,n,s)),i--,r=Ie(i),De(e,r,a),s=ge[r],0!==s&&(i-=Ne[r],Ee(e,i,s)))}while(o<e.sym_next);De(e,256,t)},Ue=(e,t)=>{const a=t.dyn_tree,i=t.stat_desc.static_tree,n=t.stat_desc.has_stree,r=t.stat_desc.elems;let s,o,l,u=-1;for(e.heap_len=0,e.heap_max=573,s=0;s<r;s++)0!==a[2*s]?(e.heap[++e.heap_len]=u=s,e.depth[s]=0):a[2*s+1]=0;for(;e.heap_len<2;)l=e.heap[++e.heap_len]=u<2?++u:0,a[2*l]=1,e.depth[l]=0,e.opt_len--,n&&(e.static_len-=i[2*l+1]);for(t.max_code=u,s=e.heap_len>>1;s>=1;s--)$e(e,a,s);l=r;do{s=e.heap[1],e.heap[1]=e.heap[e.heap_len--],$e(e,a,1),o=e.heap[1],e.heap[--e.heap_max]=s,e.heap[--e.heap_max]=o,a[2*l]=a[2*s]+a[2*o],e.depth[l]=(e.depth[s]>=e.depth[o]?e.depth[s]:e.depth[o])+1,a[2*s+1]=a[2*o+1]=l,e.heap[1]=l++,$e(e,a,1)}while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],((e,t)=>{const a=t.dyn_tree,i=t.max_code,n=t.stat_desc.static_tree,r=t.stat_desc.has_stree,s=t.stat_desc.extra_bits,o=t.stat_desc.extra_base,l=t.stat_desc.max_length;let u,c,d,p,h,f,m=0;for(p=0;p<=me;p++)e.bl_count[p]=0;for(a[2*e.heap[e.heap_max]+1]=0,u=e.heap_max+1;u<573;u++)c=e.heap[u],p=a[2*a[2*c+1]+1]+1,p>l&&(p=l,m++),a[2*c+1]=p,c>i||(e.bl_count[p]++,h=0,c>=o&&(h=s[c-o]),f=a[2*c],e.opt_len+=f*(p+h),r&&(e.static_len+=f*(n[2*c+1]+h)));if(0!==m){do{for(p=l-1;0===e.bl_count[p];)p--;e.bl_count[p]--,e.bl_count[p+1]+=2,e.bl_count[l]--,m-=2}while(m>0);for(p=l;0!==p;p--)for(c=e.bl_count[p];0!==c;)d=e.heap[--u],d>i||(a[2*d+1]!==p&&(e.opt_len+=(p-a[2*d+1])*a[2*d],a[2*d+1]=p),c--)}})(e,t),Re(a,u,e.bl_count)},ze=(e,t,a)=>{let i,n,r=-1,s=t[1],o=0,l=7,u=4;for(0===s&&(l=138,u=3),t[2*(a+1)+1]=65535,i=0;i<=a;i++)n=s,s=t[2*(i+1)+1],++o<l&&n===s||(o<u?e.bl_tree[2*n]+=o:0!==n?(n!==r&&e.bl_tree[2*n]++,e.bl_tree[32]++):o<=10?e.bl_tree[34]++:e.bl_tree[36]++,o=0,r=n,0===s?(l=138,u=3):n===s?(l=6,u=3):(l=7,u=4))},We=(e,t,a)=>{let i,n,r=-1,s=t[1],o=0,l=7,u=4;for(0===s&&(l=138,u=3),i=0;i<=a;i++)if(n=s,s=t[2*(i+1)+1],!(++o<l&&n===s)){if(o<u)do{De(e,n,e.bl_tree)}while(0!=--o);else 0!==n?(n!==r&&(De(e,n,e.bl_tree),o--),De(e,16,e.bl_tree),Ee(e,o-3,2)):o<=10?(De(e,17,e.bl_tree),Ee(e,o-3,3)):(De(e,18,e.bl_tree),Ee(e,o-11,7));o=0,r=n,0===s?(l=138,u=3):n===s?(l=6,u=3):(l=7,u=4)}};let He=!1;const Ye=(e,t,a,i)=>{Ee(e,0+(i?1:0),3),Oe(e),Fe(e,a),Fe(e,~a),a&&e.pending_buf.set(e.window.subarray(t,t+a),e.pending),e.pending+=a};var Ge=e=>{He||((()=>{let e,t,a,i,n;const r=new Array(16);for(a=0,i=0;i<28;i++)for(Se[i]=a,e=0;e<1<<ye[i];e++)ke[a++]=i;for(ke[a-1]=i,n=0,i=0;i<16;i++)for(Ne[i]=n,e=0;e<1<<ge[i];e++)Ae[n++]=i;for(n>>=7;i<fe;i++)for(Ne[i]=n<<7,e=0;e<1<<ge[i]-7;e++)Ae[256+n++]=i;for(t=0;t<=me;t++)r[t]=0;for(e=0;e<=143;)_e[2*e+1]=8,e++,r[8]++;for(;e<=255;)_e[2*e+1]=9,e++,r[9]++;for(;e<=279;)_e[2*e+1]=7,e++,r[7]++;for(;e<=287;)_e[2*e+1]=8,e++,r[8]++;for(Re(_e,287,r),e=0;e<fe;e++)we[2*e+1]=5,we[2*e]=Le(e,5);Te=new xe(_e,ye,257,he,me),Me=new xe(we,ge,0,fe,me),Ve=new xe(new Array(0),be,0,19,7)})(),He=!0),e.l_desc=new Ce(e.dyn_ltree,Te),e.d_desc=new Ce(e.dyn_dtree,Me),e.bl_desc=new Ce(e.bl_tree,Ve),e.bi_buf=0,e.bi_valid=0,Pe(e)},qe=(e,t,a,i)=>{let n,r,s=0;e.level>0?(2===e.strm.data_type&&(e.strm.data_type=(e=>{let t,a=4093624447;for(t=0;t<=31;t++,a>>>=1)if(1&a&&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<pe;t++)if(0!==e.dyn_ltree[2*t])return 1;return 0})(e)),Ue(e,e.l_desc),Ue(e,e.d_desc),s=(e=>{let t;for(ze(e,e.dyn_ltree,e.l_desc.max_code),ze(e,e.dyn_dtree,e.d_desc.max_code),Ue(e,e.bl_desc),t=18;t>=3&&0===e.bl_tree[2*ve[t]+1];t--);return e.opt_len+=3*(t+1)+5+5+4,t})(e),n=e.opt_len+3+7>>>3,r=e.static_len+3+7>>>3,r<=n&&(n=r)):n=r=a+5,a+4<=n&&-1!==t?Ye(e,t,a,i):4===e.strategy||r===n?(Ee(e,2+(i?1:0),3),je(e,_e,we)):(Ee(e,4+(i?1:0),3),((e,t,a,i)=>{let n;for(Ee(e,t-257,5),Ee(e,a-1,5),Ee(e,i-4,4),n=0;n<i;n++)Ee(e,e.bl_tree[2*ve[n]+1],3);We(e,e.dyn_ltree,t-1),We(e,e.dyn_dtree,a-1)})(e,e.l_desc.max_code+1,e.d_desc.max_code+1,s+1),je(e,e.dyn_ltree,e.dyn_dtree)),Pe(e),i&&Oe(e)},Ze={_tr_init:Ge,_tr_stored_block:Ye,_tr_flush_block:qe,_tr_tally:(e,t,a)=>(e.pending_buf[e.sym_buf+e.sym_next++]=t,e.pending_buf[e.sym_buf+e.sym_next++]=t>>8,e.pending_buf[e.sym_buf+e.sym_next++]=a,0===t?e.dyn_ltree[2*a]++:(e.matches++,t--,e.dyn_ltree[2*(ke[a]+pe+1)]++,e.dyn_dtree[2*Ie(t)]++),e.sym_next===e.sym_end),_tr_align:e=>{Ee(e,2,3),De(e,256,_e),(e=>{16===e.bi_valid?(Fe(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=255&e.bi_buf,e.bi_buf>>=8,e.bi_valid-=8)})(e)}};var Je=(e,t,a,i)=>{let n=65535&e,r=e>>>16&65535,s=0;for(;0!==a;){s=a>2e3?2e3:a,a-=s;do{n=n+t[i++]|0,r=r+n|0}while(--s);n%=65521,r%=65521}return n|r<<16};const Ke=new Uint32Array((()=>{let e,t=[];for(var a=0;a<256;a++){e=a;for(var i=0;i<8;i++)e=1&e?3988292384^e>>>1:e>>>1;t[a]=e}return t})());var Xe=(e,t,a,i)=>{const n=Ke,r=i+a;e^=-1;for(let a=i;a<r;a++)e=e>>>8^n[255&(e^t[a])];return~e},Qe={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"},et={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_MEM_ERROR:-4,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};const{_tr_init:tt,_tr_stored_block:at,_tr_flush_block:it,_tr_tally:nt,_tr_align:rt}=Ze,{Z_NO_FLUSH:st,Z_PARTIAL_FLUSH:ot,Z_FULL_FLUSH:lt,Z_FINISH:ut,Z_BLOCK:ct,Z_OK:dt,Z_STREAM_END:pt,Z_STREAM_ERROR:ht,Z_DATA_ERROR:ft,Z_BUF_ERROR:mt,Z_DEFAULT_COMPRESSION:yt,Z_FILTERED:gt,Z_HUFFMAN_ONLY:bt,Z_RLE:vt,Z_FIXED:_t,Z_DEFAULT_STRATEGY:wt,Z_UNKNOWN:At,Z_DEFLATED:kt}=et,St=258,Nt=262,xt=42,Tt=113,Mt=666,Vt=(e,t)=>(e.msg=Qe[t],t),Ct=e=>2*e-(e>4?9:0),It=e=>{let t=e.length;for(;--t>=0;)e[t]=0},Ft=e=>{let t,a,i,n=e.w_size;t=e.hash_size,i=t;do{a=e.head[--i],e.head[i]=a>=n?a-n:0}while(--t);t=n,i=t;do{a=e.prev[--i],e.prev[i]=a>=n?a-n:0}while(--t)};let Et=(e,t,a)=>(t<<e.hash_shift^a)&e.hash_mask;const Dt=e=>{const t=e.state;let a=t.pending;a>e.avail_out&&(a=e.avail_out),0!==a&&(e.output.set(t.pending_buf.subarray(t.pending_out,t.pending_out+a),e.next_out),e.next_out+=a,t.pending_out+=a,e.total_out+=a,e.avail_out-=a,t.pending-=a,0===t.pending&&(t.pending_out=0))},Lt=(e,t)=>{it(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,Dt(e.strm)},Rt=(e,t)=>{e.pending_buf[e.pending++]=t},Pt=(e,t)=>{e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t},Ot=(e,t,a,i)=>{let n=e.avail_in;return n>i&&(n=i),0===n?0:(e.avail_in-=n,t.set(e.input.subarray(e.next_in,e.next_in+n),a),1===e.state.wrap?e.adler=Je(e.adler,t,n,a):2===e.state.wrap&&(e.adler=Xe(e.adler,t,n,a)),e.next_in+=n,e.total_in+=n,n)},Bt=(e,t)=>{let a,i,n=e.max_chain_length,r=e.strstart,s=e.prev_length,o=e.nice_match;const l=e.strstart>e.w_size-Nt?e.strstart-(e.w_size-Nt):0,u=e.window,c=e.w_mask,d=e.prev,p=e.strstart+St;let h=u[r+s-1],f=u[r+s];e.prev_length>=e.good_match&&(n>>=2),o>e.lookahead&&(o=e.lookahead);do{if(a=t,u[a+s]===f&&u[a+s-1]===h&&u[a]===u[r]&&u[++a]===u[r+1]){r+=2,a++;do{}while(u[++r]===u[++a]&&u[++r]===u[++a]&&u[++r]===u[++a]&&u[++r]===u[++a]&&u[++r]===u[++a]&&u[++r]===u[++a]&&u[++r]===u[++a]&&u[++r]===u[++a]&&r<p);if(i=St-(p-r),r=p-St,i>s){if(e.match_start=t,s=i,i>=o)break;h=u[r+s-1],f=u[r+s]}}}while((t=d[t&c])>l&&0!=--n);return s<=e.lookahead?s:e.lookahead},$t=e=>{const t=e.w_size;let a,i,n;do{if(i=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-Nt)&&(e.window.set(e.window.subarray(t,t+t-i),0),e.match_start-=t,e.strstart-=t,e.block_start-=t,e.insert>e.strstart&&(e.insert=e.strstart),Ft(e),i+=t),0===e.strm.avail_in)break;if(a=Ot(e.strm,e.window,e.strstart+e.lookahead,i),e.lookahead+=a,e.lookahead+e.insert>=3)for(n=e.strstart-e.insert,e.ins_h=e.window[n],e.ins_h=Et(e,e.ins_h,e.window[n+1]);e.insert&&(e.ins_h=Et(e,e.ins_h,e.window[n+3-1]),e.prev[n&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=n,n++,e.insert--,!(e.lookahead+e.insert<3)););}while(e.lookahead<Nt&&0!==e.strm.avail_in)},jt=(e,t)=>{let a,i,n,r=e.pending_buf_size-5>e.w_size?e.w_size:e.pending_buf_size-5,s=0,o=e.strm.avail_in;do{if(a=65535,n=e.bi_valid+42>>3,e.strm.avail_out<n)break;if(n=e.strm.avail_out-n,i=e.strstart-e.block_start,a>i+e.strm.avail_in&&(a=i+e.strm.avail_in),a>n&&(a=n),a<r&&(0===a&&t!==ut||t===st||a!==i+e.strm.avail_in))break;s=t===ut&&a===i+e.strm.avail_in?1:0,at(e,0,0,s),e.pending_buf[e.pending-4]=a,e.pending_buf[e.pending-3]=a>>8,e.pending_buf[e.pending-2]=~a,e.pending_buf[e.pending-1]=~a>>8,Dt(e.strm),i&&(i>a&&(i=a),e.strm.output.set(e.window.subarray(e.block_start,e.block_start+i),e.strm.next_out),e.strm.next_out+=i,e.strm.avail_out-=i,e.strm.total_out+=i,e.block_start+=i,a-=i),a&&(Ot(e.strm,e.strm.output,e.strm.next_out,a),e.strm.next_out+=a,e.strm.avail_out-=a,e.strm.total_out+=a)}while(0===s);return o-=e.strm.avail_in,o&&(o>=e.w_size?(e.matches=2,e.window.set(e.strm.input.subarray(e.strm.next_in-e.w_size,e.strm.next_in),0),e.strstart=e.w_size,e.insert=e.strstart):(e.window_size-e.strstart<=o&&(e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,e.insert>e.strstart&&(e.insert=e.strstart)),e.window.set(e.strm.input.subarray(e.strm.next_in-o,e.strm.next_in),e.strstart),e.strstart+=o,e.insert+=o>e.w_size-e.insert?e.w_size-e.insert:o),e.block_start=e.strstart),e.high_water<e.strstart&&(e.high_water=e.strstart),s?4:t!==st&&t!==ut&&0===e.strm.avail_in&&e.strstart===e.block_start?2:(n=e.window_size-e.strstart,e.strm.avail_in>n&&e.block_start>=e.w_size&&(e.block_start-=e.w_size,e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,n+=e.w_size,e.insert>e.strstart&&(e.insert=e.strstart)),n>e.strm.avail_in&&(n=e.strm.avail_in),n&&(Ot(e.strm,e.window,e.strstart,n),e.strstart+=n,e.insert+=n>e.w_size-e.insert?e.w_size-e.insert:n),e.high_water<e.strstart&&(e.high_water=e.strstart),n=e.bi_valid+42>>3,n=e.pending_buf_size-n>65535?65535:e.pending_buf_size-n,r=n>e.w_size?e.w_size:n,i=e.strstart-e.block_start,(i>=r||(i||t===ut)&&t!==st&&0===e.strm.avail_in&&i<=n)&&(a=i>n?n:i,s=t===ut&&0===e.strm.avail_in&&a===i?1:0,at(e,e.block_start,a,s),e.block_start+=a,Dt(e.strm)),s?3:1)},Ut=(e,t)=>{let a,i;for(;;){if(e.lookahead<Nt){if($t(e),e.lookahead<Nt&&t===st)return 1;if(0===e.lookahead)break}if(a=0,e.lookahead>=3&&(e.ins_h=Et(e,e.ins_h,e.window[e.strstart+3-1]),a=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),0!==a&&e.strstart-a<=e.w_size-Nt&&(e.match_length=Bt(e,a)),e.match_length>=3)if(i=nt(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){e.match_length--;do{e.strstart++,e.ins_h=Et(e,e.ins_h,e.window[e.strstart+3-1]),a=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart}while(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=Et(e,e.ins_h,e.window[e.strstart+1]);else i=nt(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(i&&(Lt(e,!1),0===e.strm.avail_out))return 1}return e.insert=e.strstart<2?e.strstart:2,t===ut?(Lt(e,!0),0===e.strm.avail_out?3:4):e.sym_next&&(Lt(e,!1),0===e.strm.avail_out)?1:2},zt=(e,t)=>{let a,i,n;for(;;){if(e.lookahead<Nt){if($t(e),e.lookahead<Nt&&t===st)return 1;if(0===e.lookahead)break}if(a=0,e.lookahead>=3&&(e.ins_h=Et(e,e.ins_h,e.window[e.strstart+3-1]),a=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!==a&&e.prev_length<e.max_lazy_match&&e.strstart-a<=e.w_size-Nt&&(e.match_length=Bt(e,a),e.match_length<=5&&(e.strategy===gt||3===e.match_length&&e.strstart-e.match_start>4096)&&(e.match_length=2)),e.prev_length>=3&&e.match_length<=e.prev_length){n=e.strstart+e.lookahead-3,i=nt(e,e.strstart-1-e.prev_match,e.prev_length-3),e.lookahead-=e.prev_length-1,e.prev_length-=2;do{++e.strstart<=n&&(e.ins_h=Et(e,e.ins_h,e.window[e.strstart+3-1]),a=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart)}while(0!=--e.prev_length);if(e.match_available=0,e.match_length=2,e.strstart++,i&&(Lt(e,!1),0===e.strm.avail_out))return 1}else if(e.match_available){if(i=nt(e,0,e.window[e.strstart-1]),i&&Lt(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&&(i=nt(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<2?e.strstart:2,t===ut?(Lt(e,!0),0===e.strm.avail_out?3:4):e.sym_next&&(Lt(e,!1),0===e.strm.avail_out)?1:2};function Wt(e,t,a,i,n){this.good_length=e,this.max_lazy=t,this.nice_length=a,this.max_chain=i,this.func=n}const Ht=[new Wt(0,0,0,0,jt),new Wt(4,4,8,4,Ut),new Wt(4,5,16,8,Ut),new Wt(4,6,32,32,Ut),new Wt(4,4,16,16,zt),new Wt(8,16,32,32,zt),new Wt(8,16,128,128,zt),new Wt(8,32,128,256,zt),new Wt(32,128,258,1024,zt),new Wt(32,258,258,4096,zt)];function Yt(){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=kt,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 Uint16Array(1146),this.dyn_dtree=new Uint16Array(122),this.bl_tree=new Uint16Array(78),It(this.dyn_ltree),It(this.dyn_dtree),It(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(16),this.heap=new Uint16Array(573),It(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(573),It(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}const Gt=e=>{if(!e)return 1;const t=e.state;return!t||t.strm!==e||t.status!==xt&&57!==t.status&&69!==t.status&&73!==t.status&&91!==t.status&&103!==t.status&&t.status!==Tt&&t.status!==Mt?1:0},qt=e=>{if(Gt(e))return Vt(e,ht);e.total_in=e.total_out=0,e.data_type=At;const t=e.state;return t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=2===t.wrap?57:t.wrap?xt:Tt,e.adler=2===t.wrap?0:1,t.last_flush=-2,tt(t),dt},Zt=e=>{const t=qt(e);var a;return t===dt&&((a=e.state).window_size=2*a.w_size,It(a.head),a.max_lazy_match=Ht[a.level].max_lazy,a.good_match=Ht[a.level].good_length,a.nice_match=Ht[a.level].nice_length,a.max_chain_length=Ht[a.level].max_chain,a.strstart=0,a.block_start=0,a.lookahead=0,a.insert=0,a.match_length=a.prev_length=2,a.match_available=0,a.ins_h=0),t},Jt=(e,t,a,i,n,r)=>{if(!e)return ht;let s=1;if(t===yt&&(t=6),i<0?(s=0,i=-i):i>15&&(s=2,i-=16),n<1||n>9||a!==kt||i<8||i>15||t<0||t>9||r<0||r>_t||8===i&&1!==s)return Vt(e,ht);8===i&&(i=9);const o=new Yt;return e.state=o,o.strm=e,o.status=xt,o.wrap=s,o.gzhead=null,o.w_bits=i,o.w_size=1<<o.w_bits,o.w_mask=o.w_size-1,o.hash_bits=n+7,o.hash_size=1<<o.hash_bits,o.hash_mask=o.hash_size-1,o.hash_shift=~~((o.hash_bits+3-1)/3),o.window=new Uint8Array(2*o.w_size),o.head=new Uint16Array(o.hash_size),o.prev=new Uint16Array(o.w_size),o.lit_bufsize=1<<n+6,o.pending_buf_size=4*o.lit_bufsize,o.pending_buf=new Uint8Array(o.pending_buf_size),o.sym_buf=o.lit_bufsize,o.sym_end=3*(o.lit_bufsize-1),o.level=t,o.strategy=r,o.method=a,Zt(e)};var Kt=(e,t)=>{if(Gt(e)||t>ct||t<0)return e?Vt(e,ht):ht;const a=e.state;if(!e.output||0!==e.avail_in&&!e.input||a.status===Mt&&t!==ut)return Vt(e,0===e.avail_out?mt:ht);const i=a.last_flush;if(a.last_flush=t,0!==a.pending){if(Dt(e),0===e.avail_out)return a.last_flush=-1,dt}else if(0===e.avail_in&&Ct(t)<=Ct(i)&&t!==ut)return Vt(e,mt);if(a.status===Mt&&0!==e.avail_in)return Vt(e,mt);if(a.status===xt&&0===a.wrap&&(a.status=Tt),a.status===xt){let t=kt+(a.w_bits-8<<4)<<8,i=-1;if(i=a.strategy>=bt||a.level<2?0:a.level<6?1:6===a.level?2:3,t|=i<<6,0!==a.strstart&&(t|=32),t+=31-t%31,Pt(a,t),0!==a.strstart&&(Pt(a,e.adler>>>16),Pt(a,65535&e.adler)),e.adler=1,a.status=Tt,Dt(e),0!==a.pending)return a.last_flush=-1,dt}if(57===a.status)if(e.adler=0,Rt(a,31),Rt(a,139),Rt(a,8),a.gzhead)Rt(a,(a.gzhead.text?1:0)+(a.gzhead.hcrc?2:0)+(a.gzhead.extra?4:0)+(a.gzhead.name?8:0)+(a.gzhead.comment?16:0)),Rt(a,255&a.gzhead.time),Rt(a,a.gzhead.time>>8&255),Rt(a,a.gzhead.time>>16&255),Rt(a,a.gzhead.time>>24&255),Rt(a,9===a.level?2:a.strategy>=bt||a.level<2?4:0),Rt(a,255&a.gzhead.os),a.gzhead.extra&&a.gzhead.extra.length&&(Rt(a,255&a.gzhead.extra.length),Rt(a,a.gzhead.extra.length>>8&255)),a.gzhead.hcrc&&(e.adler=Xe(e.adler,a.pending_buf,a.pending,0)),a.gzindex=0,a.status=69;else if(Rt(a,0),Rt(a,0),Rt(a,0),Rt(a,0),Rt(a,0),Rt(a,9===a.level?2:a.strategy>=bt||a.level<2?4:0),Rt(a,3),a.status=Tt,Dt(e),0!==a.pending)return a.last_flush=-1,dt;if(69===a.status){if(a.gzhead.extra){let t=a.pending,i=(65535&a.gzhead.extra.length)-a.gzindex;for(;a.pending+i>a.pending_buf_size;){let n=a.pending_buf_size-a.pending;if(a.pending_buf.set(a.gzhead.extra.subarray(a.gzindex,a.gzindex+n),a.pending),a.pending=a.pending_buf_size,a.gzhead.hcrc&&a.pending>t&&(e.adler=Xe(e.adler,a.pending_buf,a.pending-t,t)),a.gzindex+=n,Dt(e),0!==a.pending)return a.last_flush=-1,dt;t=0,i-=n}let n=new Uint8Array(a.gzhead.extra);a.pending_buf.set(n.subarray(a.gzindex,a.gzindex+i),a.pending),a.pending+=i,a.gzhead.hcrc&&a.pending>t&&(e.adler=Xe(e.adler,a.pending_buf,a.pending-t,t)),a.gzindex=0}a.status=73}if(73===a.status){if(a.gzhead.name){let t,i=a.pending;do{if(a.pending===a.pending_buf_size){if(a.gzhead.hcrc&&a.pending>i&&(e.adler=Xe(e.adler,a.pending_buf,a.pending-i,i)),Dt(e),0!==a.pending)return a.last_flush=-1,dt;i=0}t=a.gzindex<a.gzhead.name.length?255&a.gzhead.name.charCodeAt(a.gzindex++):0,Rt(a,t)}while(0!==t);a.gzhead.hcrc&&a.pending>i&&(e.adler=Xe(e.adler,a.pending_buf,a.pending-i,i)),a.gzindex=0}a.status=91}if(91===a.status){if(a.gzhead.comment){let t,i=a.pending;do{if(a.pending===a.pending_buf_size){if(a.gzhead.hcrc&&a.pending>i&&(e.adler=Xe(e.adler,a.pending_buf,a.pending-i,i)),Dt(e),0!==a.pending)return a.last_flush=-1,dt;i=0}t=a.gzindex<a.gzhead.comment.length?255&a.gzhead.comment.charCodeAt(a.gzindex++):0,Rt(a,t)}while(0!==t);a.gzhead.hcrc&&a.pending>i&&(e.adler=Xe(e.adler,a.pending_buf,a.pending-i,i))}a.status=103}if(103===a.status){if(a.gzhead.hcrc){if(a.pending+2>a.pending_buf_size&&(Dt(e),0!==a.pending))return a.last_flush=-1,dt;Rt(a,255&e.adler),Rt(a,e.adler>>8&255),e.adler=0}if(a.status=Tt,Dt(e),0!==a.pending)return a.last_flush=-1,dt}if(0!==e.avail_in||0!==a.lookahead||t!==st&&a.status!==Mt){let i=0===a.level?jt(a,t):a.strategy===bt?((e,t)=>{let a;for(;;){if(0===e.lookahead&&($t(e),0===e.lookahead)){if(t===st)return 1;break}if(e.match_length=0,a=nt(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,a&&(Lt(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,t===ut?(Lt(e,!0),0===e.strm.avail_out?3:4):e.sym_next&&(Lt(e,!1),0===e.strm.avail_out)?1:2})(a,t):a.strategy===vt?((e,t)=>{let a,i,n,r;const s=e.window;for(;;){if(e.lookahead<=St){if($t(e),e.lookahead<=St&&t===st)return 1;if(0===e.lookahead)break}if(e.match_length=0,e.lookahead>=3&&e.strstart>0&&(n=e.strstart-1,i=s[n],i===s[++n]&&i===s[++n]&&i===s[++n])){r=e.strstart+St;do{}while(i===s[++n]&&i===s[++n]&&i===s[++n]&&i===s[++n]&&i===s[++n]&&i===s[++n]&&i===s[++n]&&i===s[++n]&&n<r);e.match_length=St-(r-n),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=3?(a=nt(e,1,e.match_length-3),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(a=nt(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),a&&(Lt(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,t===ut?(Lt(e,!0),0===e.strm.avail_out?3:4):e.sym_next&&(Lt(e,!1),0===e.strm.avail_out)?1:2})(a,t):Ht[a.level].func(a,t);if(3!==i&&4!==i||(a.status=Mt),1===i||3===i)return 0===e.avail_out&&(a.last_flush=-1),dt;if(2===i&&(t===ot?rt(a):t!==ct&&(at(a,0,0,!1),t===lt&&(It(a.head),0===a.lookahead&&(a.strstart=0,a.block_start=0,a.insert=0))),Dt(e),0===e.avail_out))return a.last_flush=-1,dt}return t!==ut?dt:a.wrap<=0?pt:(2===a.wrap?(Rt(a,255&e.adler),Rt(a,e.adler>>8&255),Rt(a,e.adler>>16&255),Rt(a,e.adler>>24&255),Rt(a,255&e.total_in),Rt(a,e.total_in>>8&255),Rt(a,e.total_in>>16&255),Rt(a,e.total_in>>24&255)):(Pt(a,e.adler>>>16),Pt(a,65535&e.adler)),Dt(e),a.wrap>0&&(a.wrap=-a.wrap),0!==a.pending?dt:pt)},Xt={deflateInit:(e,t)=>Jt(e,t,kt,15,8,wt),deflateInit2:Jt,deflateReset:Zt,deflateResetKeep:qt,deflateSetHeader:(e,t)=>Gt(e)||2!==e.state.wrap?ht:(e.state.gzhead=t,dt),deflate:Kt,deflateEnd:e=>{if(Gt(e))return ht;const t=e.state.status;return e.state=null,t===Tt?Vt(e,ft):dt},deflateSetDictionary:(e,t)=>{let a=t.length;if(Gt(e))return ht;const i=e.state,n=i.wrap;if(2===n||1===n&&i.status!==xt||i.lookahead)return ht;if(1===n&&(e.adler=Je(e.adler,t,a,0)),i.wrap=0,a>=i.w_size){0===n&&(It(i.head),i.strstart=0,i.block_start=0,i.insert=0);let e=new Uint8Array(i.w_size);e.set(t.subarray(a-i.w_size,a),0),t=e,a=i.w_size}const r=e.avail_in,s=e.next_in,o=e.input;for(e.avail_in=a,e.next_in=0,e.input=t,$t(i);i.lookahead>=3;){let e=i.strstart,t=i.lookahead-2;do{i.ins_h=Et(i,i.ins_h,i.window[e+3-1]),i.prev[e&i.w_mask]=i.head[i.ins_h],i.head[i.ins_h]=e,e++}while(--t);i.strstart=e,i.lookahead=2,$t(i)}return i.strstart+=i.lookahead,i.block_start=i.strstart,i.insert=i.lookahead,i.lookahead=0,i.match_length=i.prev_length=2,i.match_available=0,e.next_in=s,e.input=o,e.avail_in=r,i.wrap=n,dt},deflateInfo:"pako deflate (from Nodeca project)"};const Qt=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var ea=function(e){const t=Array.prototype.slice.call(arguments,1);for(;t.length;){const a=t.shift();if(a){if("object"!=typeof a)throw new TypeError(a+"must be non-object");for(const t in a)Qt(a,t)&&(e[t]=a[t])}}return e},ta=e=>{let t=0;for(let a=0,i=e.length;a<i;a++)t+=e[a].length;const a=new Uint8Array(t);for(let t=0,i=0,n=e.length;t<n;t++){let n=e[t];a.set(n,i),i+=n.length}return a};let aa=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(e){aa=!1}const ia=new Uint8Array(256);for(let e=0;e<256;e++)ia[e]=e>=252?6:e>=248?5:e>=240?4:e>=224?3:e>=192?2:1;ia[254]=ia[254]=1;var na=e=>{if("function"==typeof TextEncoder&&TextEncoder.prototype.encode)return(new TextEncoder).encode(e);let t,a,i,n,r,s=e.length,o=0;for(n=0;n<s;n++)a=e.charCodeAt(n),55296==(64512&a)&&n+1<s&&(i=e.charCodeAt(n+1),56320==(64512&i)&&(a=65536+(a-55296<<10)+(i-56320),n++)),o+=a<128?1:a<2048?2:a<65536?3:4;for(t=new Uint8Array(o),r=0,n=0;r<o;n++)a=e.charCodeAt(n),55296==(64512&a)&&n+1<s&&(i=e.charCodeAt(n+1),56320==(64512&i)&&(a=65536+(a-55296<<10)+(i-56320),n++)),a<128?t[r++]=a:a<2048?(t[r++]=192|a>>>6,t[r++]=128|63&a):a<65536?(t[r++]=224|a>>>12,t[r++]=128|a>>>6&63,t[r++]=128|63&a):(t[r++]=240|a>>>18,t[r++]=128|a>>>12&63,t[r++]=128|a>>>6&63,t[r++]=128|63&a);return t},ra=(e,t)=>{const a=t||e.length;if("function"==typeof TextDecoder&&TextDecoder.prototype.decode)return(new TextDecoder).decode(e.subarray(0,t));let i,n;const r=new Array(2*a);for(n=0,i=0;i<a;){let t=e[i++];if(t<128){r[n++]=t;continue}let s=ia[t];if(s>4)r[n++]=65533,i+=s-1;else{for(t&=2===s?31:3===s?15:7;s>1&&i<a;)t=t<<6|63&e[i++],s--;s>1?r[n++]=65533:t<65536?r[n++]=t:(t-=65536,r[n++]=55296|t>>10&1023,r[n++]=56320|1023&t)}}return((e,t)=>{if(t<65534&&e.subarray&&aa)return String.fromCharCode.apply(null,e.length===t?e:e.subarray(0,t));let a="";for(let i=0;i<t;i++)a+=String.fromCharCode(e[i]);return a})(r,n)},sa=(e,t)=>{(t=t||e.length)>e.length&&(t=e.length);let a=t-1;for(;a>=0&&128==(192&e[a]);)a--;return a<0||0===a?t:a+ia[e[a]]>t?a:t};var oa=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};const la=Object.prototype.toString,{Z_NO_FLUSH:ua,Z_SYNC_FLUSH:ca,Z_FULL_FLUSH:da,Z_FINISH:pa,Z_OK:ha,Z_STREAM_END:fa,Z_DEFAULT_COMPRESSION:ma,Z_DEFAULT_STRATEGY:ya,Z_DEFLATED:ga}=et;function ba(e){this.options=ea({level:ma,method:ga,chunkSize:16384,windowBits:15,memLevel:8,strategy:ya},e||{});let t=this.options;t.raw&&t.windowBits>0?t.windowBits=-t.windowBits:t.gzip&&t.windowBits>0&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new oa,this.strm.avail_out=0;let a=Xt.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(a!==ha)throw new Error(Qe[a]);if(t.header&&Xt.deflateSetHeader(this.strm,t.header),t.dictionary){let e;if(e="string"==typeof t.dictionary?na(t.dictionary):"[object ArrayBuffer]"===la.call(t.dictionary)?new Uint8Array(t.dictionary):t.dictionary,a=Xt.deflateSetDictionary(this.strm,e),a!==ha)throw new Error(Qe[a]);this._dict_set=!0}}function va(e,t){const a=new ba(t);if(a.push(e,!0),a.err)throw a.msg||Qe[a.err];return a.result}ba.prototype.push=function(e,t){const a=this.strm,i=this.options.chunkSize;let n,r;if(this.ended)return!1;for(r=t===~~t?t:!0===t?pa:ua,"string"==typeof e?a.input=na(e):"[object ArrayBuffer]"===la.call(e)?a.input=new Uint8Array(e):a.input=e,a.next_in=0,a.avail_in=a.input.length;;)if(0===a.avail_out&&(a.output=new Uint8Array(i),a.next_out=0,a.avail_out=i),(r===ca||r===da)&&a.avail_out<=6)this.onData(a.output.subarray(0,a.next_out)),a.avail_out=0;else{if(n=Xt.deflate(a,r),n===fa)return a.next_out>0&&this.onData(a.output.subarray(0,a.next_out)),n=Xt.deflateEnd(this.strm),this.onEnd(n),this.ended=!0,n===ha;if(0!==a.avail_out){if(r>0&&a.next_out>0)this.onData(a.output.subarray(0,a.next_out)),a.avail_out=0;else if(0===a.avail_in)break}else this.onData(a.output)}return!0},ba.prototype.onData=function(e){this.chunks.push(e)},ba.prototype.onEnd=function(e){e===ha&&(this.result=ta(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};var _a=function(e,t){return(t=t||{}).raw=!0,va(e,t)},wa=function(e,t){return(t=t||{}).gzip=!0,va(e,t)},Aa={Deflate:ba,deflate:va,deflateRaw:_a,gzip:wa};const ka=16209;var Sa=function(e,t){let a,i,n,r,s,o,l,u,c,d,p,h,f,m,y,g,b,v,_,w,A,k,S,N;const x=e.state;a=e.next_in,S=e.input,i=a+(e.avail_in-5),n=e.next_out,N=e.output,r=n-(t-e.avail_out),s=n+(e.avail_out-257),o=x.dmax,l=x.wsize,u=x.whave,c=x.wnext,d=x.window,p=x.hold,h=x.bits,f=x.lencode,m=x.distcode,y=(1<<x.lenbits)-1,g=(1<<x.distbits)-1;e:do{h<15&&(p+=S[a++]<<h,h+=8,p+=S[a++]<<h,h+=8),b=f[p&y];t:for(;;){if(v=b>>>24,p>>>=v,h-=v,v=b>>>16&255,0===v)N[n++]=65535&b;else{if(!(16&v)){if(64&v){if(32&v){x.mode=16191;break e}e.msg="invalid literal/length code",x.mode=ka;break e}b=f[(65535&b)+(p&(1<<v)-1)];continue t}for(_=65535&b,v&=15,v&&(h<v&&(p+=S[a++]<<h,h+=8),_+=p&(1<<v)-1,p>>>=v,h-=v),h<15&&(p+=S[a++]<<h,h+=8,p+=S[a++]<<h,h+=8),b=m[p&g];;){if(v=b>>>24,p>>>=v,h-=v,v=b>>>16&255,16&v){if(w=65535&b,v&=15,h<v&&(p+=S[a++]<<h,h+=8,h<v&&(p+=S[a++]<<h,h+=8)),w+=p&(1<<v)-1,w>o){e.msg="invalid distance too far back",x.mode=ka;break e}if(p>>>=v,h-=v,v=n-r,w>v){if(v=w-v,v>u&&x.sane){e.msg="invalid distance too far back",x.mode=ka;break e}if(A=0,k=d,0===c){if(A+=l-v,v<_){_-=v;do{N[n++]=d[A++]}while(--v);A=n-w,k=N}}else if(c<v){if(A+=l+c-v,v-=c,v<_){_-=v;do{N[n++]=d[A++]}while(--v);if(A=0,c<_){v=c,_-=v;do{N[n++]=d[A++]}while(--v);A=n-w,k=N}}}else if(A+=c-v,v<_){_-=v;do{N[n++]=d[A++]}while(--v);A=n-w,k=N}for(;_>2;)N[n++]=k[A++],N[n++]=k[A++],N[n++]=k[A++],_-=3;_&&(N[n++]=k[A++],_>1&&(N[n++]=k[A++]))}else{A=n-w;do{N[n++]=N[A++],N[n++]=N[A++],N[n++]=N[A++],_-=3}while(_>2);_&&(N[n++]=N[A++],_>1&&(N[n++]=N[A++]))}break}if(64&v){e.msg="invalid distance code",x.mode=ka;break e}b=m[(65535&b)+(p&(1<<v)-1)]}}break}}while(a<i&&n<s);_=h>>3,a-=_,h-=_<<3,p&=(1<<h)-1,e.next_in=a,e.next_out=n,e.avail_in=a<i?i-a+5:5-(a-i),e.avail_out=n<s?s-n+257:257-(n-s),x.hold=p,x.bits=h};const Na=15,xa=new Uint16Array([3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0]),Ta=new Uint8Array([16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78]),Ma=new Uint16Array([1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0]),Va=new Uint8Array([16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64]);var Ca=(e,t,a,i,n,r,s,o)=>{const l=o.bits;let u,c,d,p,h,f,m=0,y=0,g=0,b=0,v=0,_=0,w=0,A=0,k=0,S=0,N=null;const x=new Uint16Array(16),T=new Uint16Array(16);let M,V,C,I=null;for(m=0;m<=Na;m++)x[m]=0;for(y=0;y<i;y++)x[t[a+y]]++;for(v=l,b=Na;b>=1&&0===x[b];b--);if(v>b&&(v=b),0===b)return n[r++]=20971520,n[r++]=20971520,o.bits=1,0;for(g=1;g<b&&0===x[g];g++);for(v<g&&(v=g),A=1,m=1;m<=Na;m++)if(A<<=1,A-=x[m],A<0)return-1;if(A>0&&(0===e||1!==b))return-1;for(T[1]=0,m=1;m<Na;m++)T[m+1]=T[m]+x[m];for(y=0;y<i;y++)0!==t[a+y]&&(s[T[t[a+y]]++]=y);if(0===e?(N=I=s,f=20):1===e?(N=xa,I=Ta,f=257):(N=Ma,I=Va,f=0),S=0,y=0,m=g,h=r,_=v,w=0,d=-1,k=1<<v,p=k-1,1===e&&k>852||2===e&&k>592)return 1;for(;;){M=m-w,s[y]+1<f?(V=0,C=s[y]):s[y]>=f?(V=I[s[y]-f],C=N[s[y]-f]):(V=96,C=0),u=1<<m-w,c=1<<_,g=c;do{c-=u,n[h+(S>>w)+c]=M<<24|V<<16|C}while(0!==c);for(u=1<<m-1;S&u;)u>>=1;if(0!==u?(S&=u-1,S+=u):S=0,y++,0==--x[m]){if(m===b)break;m=t[a+s[y]]}if(m>v&&(S&p)!==d){for(0===w&&(w=v),h+=g,_=m-w,A=1<<_;_+w<b&&(A-=x[_+w],!(A<=0));)_++,A<<=1;if(k+=1<<_,1===e&&k>852||2===e&&k>592)return 1;d=S&p,n[d]=v<<24|_<<16|h-r}}return 0!==S&&(n[h+S]=m-w<<24|64<<16),o.bits=v,0};const{Z_FINISH:Ia,Z_BLOCK:Fa,Z_TREES:Ea,Z_OK:Da,Z_STREAM_END:La,Z_NEED_DICT:Ra,Z_STREAM_ERROR:Pa,Z_DATA_ERROR:Oa,Z_MEM_ERROR:Ba,Z_BUF_ERROR:$a,Z_DEFLATED:ja}=et,Ua=16180,za=16190,Wa=16191,Ha=16192,Ya=16194,Ga=16199,qa=16200,Za=16206,Ja=16209,Ka=e=>(e>>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24);function Xa(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}const Qa=e=>{if(!e)return 1;const t=e.state;return!t||t.strm!==e||t.mode<Ua||t.mode>16211?1:0},ei=e=>{if(Qa(e))return Pa;const t=e.state;return e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=1&t.wrap),t.mode=Ua,t.last=0,t.havedict=0,t.flags=-1,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Int32Array(852),t.distcode=t.distdyn=new Int32Array(592),t.sane=1,t.back=-1,Da},ti=e=>{if(Qa(e))return Pa;const t=e.state;return t.wsize=0,t.whave=0,t.wnext=0,ei(e)},ai=(e,t)=>{let a;if(Qa(e))return Pa;const i=e.state;return t<0?(a=0,t=-t):(a=5+(t>>4),t<48&&(t&=15)),t&&(t<8||t>15)?Pa:(null!==i.window&&i.wbits!==t&&(i.window=null),i.wrap=a,i.wbits=t,ti(e))},ii=(e,t)=>{if(!e)return Pa;const a=new Xa;e.state=a,a.strm=e,a.window=null,a.mode=Ua;const i=ai(e,t);return i!==Da&&(e.state=null),i};let ni,ri,si=!0;const oi=e=>{if(si){ni=new Int32Array(512),ri=new Int32Array(32);let t=0;for(;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(Ca(1,e.lens,0,288,ni,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;Ca(2,e.lens,0,32,ri,0,e.work,{bits:5}),si=!1}e.lencode=ni,e.lenbits=9,e.distcode=ri,e.distbits=5},li=(e,t,a,i)=>{let n;const r=e.state;return null===r.window&&(r.wsize=1<<r.wbits,r.wnext=0,r.whave=0,r.window=new Uint8Array(r.wsize)),i>=r.wsize?(r.window.set(t.subarray(a-r.wsize,a),0),r.wnext=0,r.whave=r.wsize):(n=r.wsize-r.wnext,n>i&&(n=i),r.window.set(t.subarray(a-i,a-i+n),r.wnext),(i-=n)?(r.window.set(t.subarray(a-i,a),0),r.wnext=i,r.whave=r.wsize):(r.wnext+=n,r.wnext===r.wsize&&(r.wnext=0),r.whave<r.wsize&&(r.whave+=n))),0};var ui=(e,t)=>{let a,i,n,r,s,o,l,u,c,d,p,h,f,m,y,g,b,v,_,w,A,k,S=0;const N=new Uint8Array(4);let x,T;const M=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(Qa(e)||!e.output||!e.input&&0!==e.avail_in)return Pa;a=e.state,a.mode===Wa&&(a.mode=Ha),s=e.next_out,n=e.output,l=e.avail_out,r=e.next_in,i=e.input,o=e.avail_in,u=a.hold,c=a.bits,d=o,p=l,k=Da;e:for(;;)switch(a.mode){case Ua:if(0===a.wrap){a.mode=Ha;break}for(;c<16;){if(0===o)break e;o--,u+=i[r++]<<c,c+=8}if(2&a.wrap&&35615===u){0===a.wbits&&(a.wbits=15),a.check=0,N[0]=255&u,N[1]=u>>>8&255,a.check=Xe(a.check,N,2,0),u=0,c=0,a.mode=16181;break}if(a.head&&(a.head.done=!1),!(1&a.wrap)||(((255&u)<<8)+(u>>8))%31){e.msg="incorrect header check",a.mode=Ja;break}if((15&u)!==ja){e.msg="unknown compression method",a.mode=Ja;break}if(u>>>=4,c-=4,A=8+(15&u),0===a.wbits&&(a.wbits=A),A>15||A>a.wbits){e.msg="invalid window size",a.mode=Ja;break}a.dmax=1<<a.wbits,a.flags=0,e.adler=a.check=1,a.mode=512&u?16189:Wa,u=0,c=0;break;case 16181:for(;c<16;){if(0===o)break e;o--,u+=i[r++]<<c,c+=8}if(a.flags=u,(255&a.flags)!==ja){e.msg="unknown compression method",a.mode=Ja;break}if(57344&a.flags){e.msg="unknown header flags set",a.mode=Ja;break}a.head&&(a.head.text=u>>8&1),512&a.flags&&4&a.wrap&&(N[0]=255&u,N[1]=u>>>8&255,a.check=Xe(a.check,N,2,0)),u=0,c=0,a.mode=16182;case 16182:for(;c<32;){if(0===o)break e;o--,u+=i[r++]<<c,c+=8}a.head&&(a.head.time=u),512&a.flags&&4&a.wrap&&(N[0]=255&u,N[1]=u>>>8&255,N[2]=u>>>16&255,N[3]=u>>>24&255,a.check=Xe(a.check,N,4,0)),u=0,c=0,a.mode=16183;case 16183:for(;c<16;){if(0===o)break e;o--,u+=i[r++]<<c,c+=8}a.head&&(a.head.xflags=255&u,a.head.os=u>>8),512&a.flags&&4&a.wrap&&(N[0]=255&u,N[1]=u>>>8&255,a.check=Xe(a.check,N,2,0)),u=0,c=0,a.mode=16184;case 16184:if(1024&a.flags){for(;c<16;){if(0===o)break e;o--,u+=i[r++]<<c,c+=8}a.length=u,a.head&&(a.head.extra_len=u),512&a.flags&&4&a.wrap&&(N[0]=255&u,N[1]=u>>>8&255,a.check=Xe(a.check,N,2,0)),u=0,c=0}else a.head&&(a.head.extra=null);a.mode=16185;case 16185:if(1024&a.flags&&(h=a.length,h>o&&(h=o),h&&(a.head&&(A=a.head.extra_len-a.length,a.head.extra||(a.head.extra=new Uint8Array(a.head.extra_len)),a.head.extra.set(i.subarray(r,r+h),A)),512&a.flags&&4&a.wrap&&(a.check=Xe(a.check,i,h,r)),o-=h,r+=h,a.length-=h),a.length))break e;a.length=0,a.mode=16186;case 16186:if(2048&a.flags){if(0===o)break e;h=0;do{A=i[r+h++],a.head&&A&&a.length<65536&&(a.head.name+=String.fromCharCode(A))}while(A&&h<o);if(512&a.flags&&4&a.wrap&&(a.check=Xe(a.check,i,h,r)),o-=h,r+=h,A)break e}else a.head&&(a.head.name=null);a.length=0,a.mode=16187;case 16187:if(4096&a.flags){if(0===o)break e;h=0;do{A=i[r+h++],a.head&&A&&a.length<65536&&(a.head.comment+=String.fromCharCode(A))}while(A&&h<o);if(512&a.flags&&4&a.wrap&&(a.check=Xe(a.check,i,h,r)),o-=h,r+=h,A)break e}else a.head&&(a.head.comment=null);a.mode=16188;case 16188:if(512&a.flags){for(;c<16;){if(0===o)break e;o--,u+=i[r++]<<c,c+=8}if(4&a.wrap&&u!==(65535&a.check)){e.msg="header crc mismatch",a.mode=Ja;break}u=0,c=0}a.head&&(a.head.hcrc=a.flags>>9&1,a.head.done=!0),e.adler=a.check=0,a.mode=Wa;break;case 16189:for(;c<32;){if(0===o)break e;o--,u+=i[r++]<<c,c+=8}e.adler=a.check=Ka(u),u=0,c=0,a.mode=za;case za:if(0===a.havedict)return e.next_out=s,e.avail_out=l,e.next_in=r,e.avail_in=o,a.hold=u,a.bits=c,Ra;e.adler=a.check=1,a.mode=Wa;case Wa:if(t===Fa||t===Ea)break e;case Ha:if(a.last){u>>>=7&c,c-=7&c,a.mode=Za;break}for(;c<3;){if(0===o)break e;o--,u+=i[r++]<<c,c+=8}switch(a.last=1&u,u>>>=1,c-=1,3&u){case 0:a.mode=16193;break;case 1:if(oi(a),a.mode=Ga,t===Ea){u>>>=2,c-=2;break e}break;case 2:a.mode=16196;break;case 3:e.msg="invalid block type",a.mode=Ja}u>>>=2,c-=2;break;case 16193:for(u>>>=7&c,c-=7&c;c<32;){if(0===o)break e;o--,u+=i[r++]<<c,c+=8}if((65535&u)!=(u>>>16^65535)){e.msg="invalid stored block lengths",a.mode=Ja;break}if(a.length=65535&u,u=0,c=0,a.mode=Ya,t===Ea)break e;case Ya:a.mode=16195;case 16195:if(h=a.length,h){if(h>o&&(h=o),h>l&&(h=l),0===h)break e;n.set(i.subarray(r,r+h),s),o-=h,r+=h,l-=h,s+=h,a.length-=h;break}a.mode=Wa;break;case 16196:for(;c<14;){if(0===o)break e;o--,u+=i[r++]<<c,c+=8}if(a.nlen=257+(31&u),u>>>=5,c-=5,a.ndist=1+(31&u),u>>>=5,c-=5,a.ncode=4+(15&u),u>>>=4,c-=4,a.nlen>286||a.ndist>30){e.msg="too many length or distance symbols",a.mode=Ja;break}a.have=0,a.mode=16197;case 16197:for(;a.have<a.ncode;){for(;c<3;){if(0===o)break e;o--,u+=i[r++]<<c,c+=8}a.lens[M[a.have++]]=7&u,u>>>=3,c-=3}for(;a.have<19;)a.lens[M[a.have++]]=0;if(a.lencode=a.lendyn,a.lenbits=7,x={bits:a.lenbits},k=Ca(0,a.lens,0,19,a.lencode,0,a.work,x),a.lenbits=x.bits,k){e.msg="invalid code lengths set",a.mode=Ja;break}a.have=0,a.mode=16198;case 16198:for(;a.have<a.nlen+a.ndist;){for(;S=a.lencode[u&(1<<a.lenbits)-1],y=S>>>24,g=S>>>16&255,b=65535&S,!(y<=c);){if(0===o)break e;o--,u+=i[r++]<<c,c+=8}if(b<16)u>>>=y,c-=y,a.lens[a.have++]=b;else{if(16===b){for(T=y+2;c<T;){if(0===o)break e;o--,u+=i[r++]<<c,c+=8}if(u>>>=y,c-=y,0===a.have){e.msg="invalid bit length repeat",a.mode=Ja;break}A=a.lens[a.have-1],h=3+(3&u),u>>>=2,c-=2}else if(17===b){for(T=y+3;c<T;){if(0===o)break e;o--,u+=i[r++]<<c,c+=8}u>>>=y,c-=y,A=0,h=3+(7&u),u>>>=3,c-=3}else{for(T=y+7;c<T;){if(0===o)break e;o--,u+=i[r++]<<c,c+=8}u>>>=y,c-=y,A=0,h=11+(127&u),u>>>=7,c-=7}if(a.have+h>a.nlen+a.ndist){e.msg="invalid bit length repeat",a.mode=Ja;break}for(;h--;)a.lens[a.have++]=A}}if(a.mode===Ja)break;if(0===a.lens[256]){e.msg="invalid code -- missing end-of-block",a.mode=Ja;break}if(a.lenbits=9,x={bits:a.lenbits},k=Ca(1,a.lens,0,a.nlen,a.lencode,0,a.work,x),a.lenbits=x.bits,k){e.msg="invalid literal/lengths set",a.mode=Ja;break}if(a.distbits=6,a.distcode=a.distdyn,x={bits:a.distbits},k=Ca(2,a.lens,a.nlen,a.ndist,a.distcode,0,a.work,x),a.distbits=x.bits,k){e.msg="invalid distances set",a.mode=Ja;break}if(a.mode=Ga,t===Ea)break e;case Ga:a.mode=qa;case qa:if(o>=6&&l>=258){e.next_out=s,e.avail_out=l,e.next_in=r,e.avail_in=o,a.hold=u,a.bits=c,Sa(e,p),s=e.next_out,n=e.output,l=e.avail_out,r=e.next_in,i=e.input,o=e.avail_in,u=a.hold,c=a.bits,a.mode===Wa&&(a.back=-1);break}for(a.back=0;S=a.lencode[u&(1<<a.lenbits)-1],y=S>>>24,g=S>>>16&255,b=65535&S,!(y<=c);){if(0===o)break e;o--,u+=i[r++]<<c,c+=8}if(g&&!(240&g)){for(v=y,_=g,w=b;S=a.lencode[w+((u&(1<<v+_)-1)>>v)],y=S>>>24,g=S>>>16&255,b=65535&S,!(v+y<=c);){if(0===o)break e;o--,u+=i[r++]<<c,c+=8}u>>>=v,c-=v,a.back+=v}if(u>>>=y,c-=y,a.back+=y,a.length=b,0===g){a.mode=16205;break}if(32&g){a.back=-1,a.mode=Wa;break}if(64&g){e.msg="invalid literal/length code",a.mode=Ja;break}a.extra=15&g,a.mode=16201;case 16201:if(a.extra){for(T=a.extra;c<T;){if(0===o)break e;o--,u+=i[r++]<<c,c+=8}a.length+=u&(1<<a.extra)-1,u>>>=a.extra,c-=a.extra,a.back+=a.extra}a.was=a.length,a.mode=16202;case 16202:for(;S=a.distcode[u&(1<<a.distbits)-1],y=S>>>24,g=S>>>16&255,b=65535&S,!(y<=c);){if(0===o)break e;o--,u+=i[r++]<<c,c+=8}if(!(240&g)){for(v=y,_=g,w=b;S=a.distcode[w+((u&(1<<v+_)-1)>>v)],y=S>>>24,g=S>>>16&255,b=65535&S,!(v+y<=c);){if(0===o)break e;o--,u+=i[r++]<<c,c+=8}u>>>=v,c-=v,a.back+=v}if(u>>>=y,c-=y,a.back+=y,64&g){e.msg="invalid distance code",a.mode=Ja;break}a.offset=b,a.extra=15&g,a.mode=16203;case 16203:if(a.extra){for(T=a.extra;c<T;){if(0===o)break e;o--,u+=i[r++]<<c,c+=8}a.offset+=u&(1<<a.extra)-1,u>>>=a.extra,c-=a.extra,a.back+=a.extra}if(a.offset>a.dmax){e.msg="invalid distance too far back",a.mode=Ja;break}a.mode=16204;case 16204:if(0===l)break e;if(h=p-l,a.offset>h){if(h=a.offset-h,h>a.whave&&a.sane){e.msg="invalid distance too far back",a.mode=Ja;break}h>a.wnext?(h-=a.wnext,f=a.wsize-h):f=a.wnext-h,h>a.length&&(h=a.length),m=a.window}else m=n,f=s-a.offset,h=a.length;h>l&&(h=l),l-=h,a.length-=h;do{n[s++]=m[f++]}while(--h);0===a.length&&(a.mode=qa);break;case 16205:if(0===l)break e;n[s++]=a.length,l--,a.mode=qa;break;case Za:if(a.wrap){for(;c<32;){if(0===o)break e;o--,u|=i[r++]<<c,c+=8}if(p-=l,e.total_out+=p,a.total+=p,4&a.wrap&&p&&(e.adler=a.check=a.flags?Xe(a.check,n,p,s-p):Je(a.check,n,p,s-p)),p=l,4&a.wrap&&(a.flags?u:Ka(u))!==a.check){e.msg="incorrect data check",a.mode=Ja;break}u=0,c=0}a.mode=16207;case 16207:if(a.wrap&&a.flags){for(;c<32;){if(0===o)break e;o--,u+=i[r++]<<c,c+=8}if(4&a.wrap&&u!==(4294967295&a.total)){e.msg="incorrect length check",a.mode=Ja;break}u=0,c=0}a.mode=16208;case 16208:k=La;break e;case Ja:k=Oa;break e;case 16210:return Ba;default:return Pa}return e.next_out=s,e.avail_out=l,e.next_in=r,e.avail_in=o,a.hold=u,a.bits=c,(a.wsize||p!==e.avail_out&&a.mode<Ja&&(a.mode<Za||t!==Ia))&&li(e,e.output,e.next_out,p-e.avail_out),d-=e.avail_in,p-=e.avail_out,e.total_in+=d,e.total_out+=p,a.total+=p,4&a.wrap&&p&&(e.adler=a.check=a.flags?Xe(a.check,n,p,e.next_out-p):Je(a.check,n,p,e.next_out-p)),e.data_type=a.bits+(a.last?64:0)+(a.mode===Wa?128:0)+(a.mode===Ga||a.mode===Ya?256:0),(0===d&&0===p||t===Ia)&&k===Da&&(k=$a),k},ci={inflateReset:ti,inflateReset2:ai,inflateResetKeep:ei,inflateInit:e=>ii(e,15),inflateInit2:ii,inflate:ui,inflateEnd:e=>{if(Qa(e))return Pa;let t=e.state;return t.window&&(t.window=null),e.state=null,Da},inflateGetHeader:(e,t)=>{if(Qa(e))return Pa;const a=e.state;return 2&a.wrap?(a.head=t,t.done=!1,Da):Pa},inflateSetDictionary:(e,t)=>{const a=t.length;let i,n,r;return Qa(e)?Pa:(i=e.state,0!==i.wrap&&i.mode!==za?Pa:i.mode===za&&(n=1,n=Je(n,t,a,0),n!==i.check)?Oa:(r=li(e,t,a,a),r?(i.mode=16210,Ba):(i.havedict=1,Da)))},inflateInfo:"pako inflate (from Nodeca project)"};var di=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};const pi=Object.prototype.toString,{Z_NO_FLUSH:hi,Z_FINISH:fi,Z_OK:mi,Z_STREAM_END:yi,Z_NEED_DICT:gi,Z_STREAM_ERROR:bi,Z_DATA_ERROR:vi,Z_MEM_ERROR:_i}=et;function wi(e){this.options=ea({chunkSize:65536,windowBits:15,to:""},e||{});const t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,0===t.windowBits&&(t.windowBits=-15)),!(t.windowBits>=0&&t.windowBits<16)||e&&e.windowBits||(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&(15&t.windowBits||(t.windowBits|=15)),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new oa,this.strm.avail_out=0;let a=ci.inflateInit2(this.strm,t.windowBits);if(a!==mi)throw new Error(Qe[a]);if(this.header=new di,ci.inflateGetHeader(this.strm,this.header),t.dictionary&&("string"==typeof t.dictionary?t.dictionary=na(t.dictionary):"[object ArrayBuffer]"===pi.call(t.dictionary)&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(a=ci.inflateSetDictionary(this.strm,t.dictionary),a!==mi)))throw new Error(Qe[a])}function Ai(e,t){const a=new wi(t);if(a.push(e),a.err)throw a.msg||Qe[a.err];return a.result}wi.prototype.push=function(e,t){const a=this.strm,i=this.options.chunkSize,n=this.options.dictionary;let r,s,o;if(this.ended)return!1;for(s=t===~~t?t:!0===t?fi:hi,"[object ArrayBuffer]"===pi.call(e)?a.input=new Uint8Array(e):a.input=e,a.next_in=0,a.avail_in=a.input.length;;){for(0===a.avail_out&&(a.output=new Uint8Array(i),a.next_out=0,a.avail_out=i),r=ci.inflate(a,s),r===gi&&n&&(r=ci.inflateSetDictionary(a,n),r===mi?r=ci.inflate(a,s):r===vi&&(r=gi));a.avail_in>0&&r===yi&&a.state.wrap>0&&0!==e[a.next_in];)ci.inflateReset(a),r=ci.inflate(a,s);switch(r){case bi:case vi:case gi:case _i:return this.onEnd(r),this.ended=!0,!1}if(o=a.avail_out,a.next_out&&(0===a.avail_out||r===yi))if("string"===this.options.to){let e=sa(a.output,a.next_out),t=a.next_out-e,n=ra(a.output,e);a.next_out=t,a.avail_out=i-t,t&&a.output.set(a.output.subarray(e,e+t),0),this.onData(n)}else this.onData(a.output.length===a.next_out?a.output:a.output.subarray(0,a.next_out));if(r!==mi||0!==o){if(r===yi)return r=ci.inflateEnd(this.strm),this.onEnd(r),this.ended=!0,!0;if(0===a.avail_in)break}}return!0},wi.prototype.onData=function(e){this.chunks.push(e)},wi.prototype.onEnd=function(e){e===mi&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=ta(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};var ki=function(e,t){return(t=t||{}).raw=!0,Ai(e,t)},Si={Inflate:wi,inflate:Ai,inflateRaw:ki,ungzip:Ai};const{Deflate:Ni,deflate:xi,deflateRaw:Ti,gzip:Mi}=Aa,{Inflate:Vi,inflate:Ci,inflateRaw:Ii,ungzip:Fi}=Si;var Ei={Deflate:Ni,deflate:xi,deflateRaw:Ti,gzip:Mi,Inflate:Vi,inflate:Ci,inflateRaw:Ii,ungzip:Fi,constants:et};const Di={files:{},items:{},folders:{}};function Li(e){return Di.files[e]}function Ri(){return Di.folders}function Pi(e){return Di.folders[e]}function Oi(e,t){for(const a of Object.values(Di.folders))if(a.name===e&&a.parent===t)return a}function Bi(e,t){for(const a of Object.values(Di.items))if(a.name===e&&a.folder._id===t)return a}function $i(){return Di.items}function ji(e){return Di.items[e]}function Ui(e,t){Di.items[e]=t.rootItem;for(const[e,a]of Object.entries(t.metadata)){if(t.files[e]&&(Di.files[e]={blob:new Blob([t.files[e]],{type:a.mimeType}),hash:a.hash,itemName:a.name,itemType:a.type,mimeType:a.mimeType}),a.attachments)for(const i of a.attachments){const a=Wi(e,i.name,i.queryParam,i.index);Di.files[a]={blob:new Blob([t.files[a]],{type:i.mimeType}),hash:i.hash,itemName:i.name,itemType:i.type,mimeType:i.mimeType}}Di.items[e]=a}for(const a of Object.values(t.folders))a._id=e+":"+a._id,a.parent=e+":"+a.parent,Di.folders[a._id]=a}async function zi(e,t){const a=r.Buffer.from(await e.arrayBuffer());let i=0;i+=8;const n=a.readInt32LE(8);i+=4;const s=new TextDecoder,o=a.subarray(i,i+n);i+=n;const l=JSON.parse(s.decode(o));l.root=t+"/"+l.root;let u=0;const c=Ei.ungzip(a.subarray(i)),d=r.Buffer.from(c),p=d.subarray(u,u+l.metadataSize);u+=l.metadataSize;const h=JSON.parse(s.decode(p)),f={};Object.entries(h).forEach((([e,a])=>{const i=t+"/"+e;a._id=i,f[i]=a,a.folder._id=t+":"+a.folder._id;for(const e of a.links)e.to=t+"/"+e.to}));const m=d.subarray(u,u+l.foldersSize);u+=l.foldersSize;const y=JSON.parse(s.decode(m)),g={};for(const[,e]of Object.entries(f))if(e.filesize&&(g[e._id]={start:u+(e.packageFileOffset||0),end:u+(e.packageFileOffset||0)+e.filesize}),e.attachments)for(const t of e.attachments)g[Wi(e._id,t.name,t.queryParam,t.index)]={start:u+(t.packageFileOffset||0),end:u+(t.packageFileOffset||0)+t.filesize};const b={};for(const[e,t]of Object.entries(g)){const a=d.subarray(t.start,t.end);b[e]=a}const v=f[l.root],_=[],w=e=>{_.push(e._id);for(const t of e.links)t.item=structuredClone(f[t.to]),w(t.item)};return w(v),{rootItem:v,metadata:f,folders:y,files:b}}function Wi(e,t,a,i){return`${e}_${t}`+(null!=a?`_${a}`:"")+(null!=i?`_${i}`:"")}function Hi(e,t,a,i){return Array.isArray(e.attachments)?e.attachments.filter((e=>e.name===t&&(void 0===i||e.index===i))).reduce(((e,t)=>Math.abs(t.queryParam-(a??0))<Math.abs(e.queryParam-(a??0))?t:e),{queryParam:1/0}):null}function Yi(e,t,a,i){const n=ji(e);if(n){const r=Hi(n,t,a,i);if(!r)return null;return Li(Wi(e,r.name,r.queryParam,r.index))}}var Gi=Object.freeze({__proto__:null,addPackageToCache:Ui,createAttachmentID:Wi,findFolder:Oi,findItem:Bi,getAttachmentFromPackageCache:Yi,getFileFromCache:Li,getFolder:Pi,getFolders:Ri,getItemFromCache:ji,getItems:$i,parsePackage:zi,queryAttachments:Hi});class qi{id=_.createGUID();items=[]}class Zi{itemRepo;undoEvents=[];redoEvents=[];maxUndoCount=100;enabled=!0;snapshots=new Map;_undoRedoPromise=Promise.resolve();constructor(e,t=100){this.itemRepo=e,this.maxUndoCount=t,S.instance.setUndoManager(this),y.$on("undoManager:undo",(e=>this.undo(e))),y.$on("undoManager:redo",(e=>this.redo(e)))}clear(){this.undoEvents=[],this.redoEvents=[],this.snapshots.clear(),y.$emit("undoManager:undoStepsChanged",0),y.$emit("undoManager:redoStepsChanged",0)}createSnapshot(){const e=new qi;for(const t of this.itemRepo.itemInstances.values())for(const a of t.values())e.items.push({_id:a._id,instanceId:a.instanceId,data:this._grabSnapshot(a)});return this.snapshots.set(e.id,e),e.id}rollbackFromSnapshot(e){const t=this.snapshots.get(e);if(!t)throw new M("Snapshot not found");for(const e of t.items){const t=this.itemRepo.itemInstances.get(e._id);if(t){const a=t.get(e.instanceId);a?this._rollbackFromSnapshot(a,e.data):console.error(`[SNAPSHOT] - Trying to rollback snapshot for item but did not find the instance: ${e._id} -> ${e.instanceId}`)}else console.error(`[SNAPSHOT] - Trying to rollback snapshot for item but did not find the item map: ${e._id}`)}this.snapshots.delete(e)}_grabSnapshot(e){const t=[];for(const a of e.fieldInstances)try{t.push(a.createSnapshot())}catch(e){const t=`[SNAPSHOT] - Could not grab snapshot of field ${a.name}`;throw console.error(t,e),new Error(e.toString())}const a=[];for(const t of e.customFieldInstances)try{a.push(t.createSnapshot())}catch(e){const a=`[SNAPSHOT] - Could not grab snapshot of custom field ${t.name}`;throw console.error(a,e),new Error(e.toString())}return new G(e._id,"item",{fieldInstances:t,customFieldInstances:a})}_getFieldInstance(e,t){for(const a of e.fieldInstances)if(a.getId()===t)return a;return null}_getCustomFieldInstance(e,t){for(const a of e.customFieldInstances)if(a.getId()===t)return a;return null}_rollbackFromSnapshot(e,t){for(const a of t.data.fieldInstances){const t=this._getFieldInstance(e,a.id);t?t.rollbackFromSnapshot(a):console.warn("[SNAPSHOT] - Could not find field instance in snapshot: "+a.id)}for(const a of t.data.customFieldInstances){const t=this._getCustomFieldInstance(e,a.id);t?t.rollbackFromSnapshot(a):console.warn("[SNAPSHOT] - Could not find custom field instance in snapshot: "+a.id)}}getEnabled(){return this.enabled}setEnabled(e){this.enabled=!!e}ignore(e){const t=this.enabled;let a=!1;try{t&&this.setEnabled(!1);const i=e();if(i&&i.then)return a=!0,i.finally((()=>{t&&this.setEnabled(!0)}))}finally{t&&!a&&this.setEnabled(!0)}}undo(e){return this._undoRedoPromise=this._undoRedoPromise.then((()=>this._performUndo(e))),this._undoRedoPromise}redo(e){return this._undoRedoPromise=this._undoRedoPromise.then((()=>this._performRedo(e))),this._undoRedoPromise}async _performUndo(e){if(this.enabled&&this.undoEvents.length){for(e=e||1;this.undoEvents.length>0&&e>0;){const t=this.spliceLastEventBundle(this.undoEvents).reverse();for(const e of t)await e.undo(),this.redoEvents.push(e);e--}y.$emit("undoManager:undoStepsChanged",this.getNumberOfUndoBundles()),y.$emit("undoManager:redoStepsChanged",this.getNumberOfRedoBundles())}}async _performRedo(e){if(this.enabled&&this.redoEvents.length){for(e=e||1;this.redoEvents.length>0&&e>0;){const t=this.spliceLastEventBundle(this.redoEvents).reverse();for(const e of t)await e.redo(),this.undoEvents.push(e);e--}y.$emit("undoManager:undoStepsChanged",this.getNumberOfUndoBundles()),y.$emit("undoManager:redoStepsChanged",this.getNumberOfRedoBundles())}}getUndoSteps(){return this.undoEvents.map((function(e){return{type:e.type,itemId:e.itemId,prop:e.prop}}))}getRedoSteps(){return this.redoEvents.map((e=>({type:e.type,itemId:e.itemId,prop:e.prop})))}event(e){if(this.enabled){if(this.redoEvents=[],y.$emit("undoManager:redoStepsChanged",0),this.assignBundleIndexToEvent(e),0!==this.undoEvents.length){let t=!1;for(let a=this.undoEvents.length-1;a>=0;a--){const i=this.undoEvents[a];if(!e.isWithinMergeDeltaOf(i,300))break;const n=i.merge(e,300);if(n){t=!0,this.undoEvents.splice(a,1),this.undoEvents.push(n);break}}t||(this.undoEvents.push(e),y.$emit("undoManager:undoStepsChanged",this.getNumberOfUndoBundles()))}else this.undoEvents.push(e),y.$emit("undoManager:undoStepsChanged",this.getNumberOfUndoBundles());if(this.getNumberOfUndoBundles()>this.maxUndoCount){this.spliceFirstEventBundle(this.undoEvents);for(const e of this.undoEvents)e.bundleIndex-=1;y.$emit("undoManager:undoStepsChanged",this.getNumberOfUndoBundles())}}}getNumberOfUndoBundles(){return 0===this.undoEvents.length?0:this.undoEvents.at(-1).bundleIndex+1}getNumberOfRedoBundles(){if(0===this.redoEvents.length)return 0;const e=this.getNumberOfUndoBundles()-1;return this.redoEvents.at(0).bundleIndex-e}spliceLastEventBundle(e){if(0===e.length)return[];const t=e.at(-1).bundleIndex;let a=e.length-1;for(let i=e.length-1;i>=0&&e[i].bundleIndex===t;i--)a=i;return e.splice(a)}spliceFirstEventBundle(e){if(0===e.length)return[];const t=e.at(0).bundleIndex;for(let a=1;a<e.length;a++)if(e[a].bundleIndex!==t)return e.splice(0,a);return e.splice(0)}assignBundleIndexToEvent(e){if(0===this.undoEvents.length)return void(e.bundleIndex=0);const t=this.undoEvents.at(-1),a=Math.abs(e.createdAt-t.createdAt);e.bundleIndex=a>300?t.bundleIndex+1:t.bundleIndex}}class Ji{updateItemLinksAndAttributes(e,t,a){try{const i=[],n={},r={};this.getLinksAndAttributes(e,i,n,r,t,a),e.attributes=n,e.userAttributes=r,e.links=i}catch(e){throw console.error(e),new C(e)}}getLinksAndAttributes(e,t,a,i,n,r){e.fieldInstances.length&&this.retrieveLinksAndAttributesFromFieldInstances(e.fieldInstances,t,a,n,r),e.userFieldInstances.length&&this.retrieveLinksAndAttributesFromFieldInstances(e.userFieldInstances,t,i,n,r),e.customFieldInstances.length&&(console.log(e.customFieldInstances),this.retrieveLinksAndAttributesFromFieldInstances(e.customFieldInstances,t,i,n,r,"_"))}retrieveLinksAndAttributesFromFieldInstances(e,t,a,i,n,r=""){for(const s of e)switch(s.type){case"Link":if(s.value&&t){if(n&&s.hidden)continue;i?t.push({usage:r+s.name,to:s.value._id,item:s.value}):t.push({usage:r+s.name,to:s.value._id})}break;case"Attribute":a&&(a[r+s.name]=s.value);break;case"List":s.blocks&&this.traverseListFieldInstances(s.blocks,t,a,r+s.name,i);break;case"Tree":if(s.blocks){const e=s.blocks[0];e.blocks&&this.traverseTreeFieldInstance(e.blocks,t,a,r+s.name,i)}break;case"NodeGraph":if(s.blocks&&this.traverseTreeFieldInstance(s.blocks,t,a,r+s.name,i),a&&Array.isArray(s.connections)){let e=0;for(const t of s.connections){a[`${r}${s.name}#connection[${e++}]`]={srcNode:t.srcNode,srcSlot:t.srcSlot,destNode:t.destNode,destSlot:t.destSlot}}}}}traverseTreeFieldInstance(e,t,a,i,n){let r=0;for(const s of e){const e=`${i}[${r}]`,o=e+"#type",l=e+"#id",u=e+"#posx",c=e+"#posy";a&&(a[e+"#usage"]="Block",a[o]=s.type,a[l]=s.id,void 0!==s.posX&&(a[u]=s.posX||0),void 0!==s.posY&&(a[c]=s.posY||0));for(const i of s.fields){const r=`${e}->${i.name}`;switch(i.type){case"Link":i.value&&t&&(n?t.push({usage:r,to:i.value._id,item:i.value}):t.push({usage:r,to:i.value._id}));break;case"List":i.blocks&&this.traverseListFieldInstances(i.blocks,t,a,r,n);break;case"Attribute":a&&(a[r]=i.value)}}s.scripts&&this.processScripts(s.scripts,t,a,e,n),s.blocks&&this.traverseTreeFieldInstance(s.blocks,t,a,e,n),r++}}traverseListFieldInstances(e,t,a,i,n){let r=0;for(const s of e){const e=`${i}[${r}]`;for(const i of s.fields){const r=`${e}->${i.name}`;switch(i.type){case"Link":if(i.value&&t){const e={usage:r,to:"object"==typeof i.value?i.value._id:i.value,item:null};n&&"object"===i.value&&(e.item=i.value),t.push(e)}break;case"Attribute":a&&(a[r]=i.value)}}r++}}processScripts(e,t,a,i,n){let r=0;for(const s of e){const e=`${i}#scripts[${r}]`,o=e+"#id",l=e+"#item";a&&(a[e+"#usage"]="Script",a[o]=s.id),t&&s.item.value&&(n?t.push({usage:l,to:s.item.value._id,item:s.item.value}):t.push({usage:l,to:s.item.value._id}));for(const i of s.fields){const r=`${e}->${i.name}`;if("Link"===i.type)i.value&&t&&(n?t.push({usage:r,to:i.value._id,item:i.value}):t.push({usage:r,to:i.value._id}));else a&&(a[r]=i.value)}r++}}}class Ki{apiClient;activeItem=void 0;rootItemId=void 0;loadingItems=new Map;loadedItems=new Map;itemInstances=new Map;resolvedPaths=new Map;jail;apiGateway;itemCache;undoManager=new Zi(this);itemPreparator=new ue(this);itemChangeProcessor=new Ji;usePublicApi;constructor(e,t){this.apiClient=t,this.apiGateway=new H(t),this.itemCache=new Y(this.apiGateway),this.usePublicApi=!!e,this.jail={active:!1,mountedFolders:[]},y.$on("item:rename",(e=>this.handleRename(e)))}_logGroup(e){}_logGroupEnd(){}_log(e){}getLoadedItems(){return Array.from(this.loadedItems.values())}getItemInstances(){return this.itemInstances}findLoadedItem(e){return this.loadedItems.get(e)}_handleError(e,t){throw console.error(e),new C("ItemRepo: "+t)}getUndoManager(){return this.undoManager}async createFieldsForItem(e,t,a,i=!1){return this.itemPreparator.createFields(e,a,t,"",!1,a.attributes,i)}async createScriptsForItem(e,t=[],a,i=!0){const n=[];for(const i of t){if(!i.item)continue;const t=await this.loadItem(i.item);if(!t)continue;const r=new X(void 0,e,a,t);n.push(r);for(const e of i.fields){const t=new J(r,e.name,e.value,a);r.addField(t)}}e.scripts=i?S.instance.proxyScriptArray(n,e,a):n}clear(){this.rootItemId=void 0,this.activeItem=void 0,this.loadedItems.clear(),this.resolvedPaths.clear(),this.itemInstances.clear(),this.loadingItems.clear();this.apiClient.getCollab().endCollaboration()}removeBlock(e,t){t.blocks.removeObject(e),e.parent=void 0}traverseBlockPairs(e,t,a){a(e,t);for(let i=0;i<e.blocks.length&&i<t.blocks.length;i++)this.traverseBlockPairs(e.blocks[i],t.blocks[i],a)}copyScripts(e,t,a=!1){const i=new Map;this.traverseBlockPairs(e,t,((e,t)=>i.set(e.getId(),t.getId())));const n=[];return this.traverseBlockPairs(e,t,((e,t)=>{for(const r of e.scripts){const e=r.clone(i);a&&(e.deferInitCall=!0),t.scripts.push(e),n.push(e)}})),n}updateScriptFieldReferences(e,t){const a=new Map;this.traverseBlockPairs(e,t,((e,t)=>{a.set(e.id,t.id)})),this.updateScriptFieldReferencesFromMap(a,t)}updateScriptFieldReferencesFromMap(e,t){this.traverseBlocks((t=>{for(const a of t.scripts)for(const t of a.fields)e.has(t.value)&&(t.value=e.get(t.value))}),[t])}async createNewBlock(e,t,a){const i=new ce(void 0,t,e.typeName,void 0,void 0,a),n=await this.createFieldsForItem(i,e.template,a);return i.setFields(n),i.blocks=S.instance.proxyBlockArray(i.blocks,i,a),await this.createScriptsForItem(i,void 0,a),this.addBlockToParent(i,t,a)}addBlockToParent(e,t,a){e.parent=t;const i=S.instance.proxyBlock(e,a);return t.blocks.push(i),i}async createNewListEntry(e,t,a){const i=new ce(void 0,void 0,e.typeName,void 0,void 0,a),n=await this.createFieldsForItem(i,e.template,a);return i.setFields(n),i.blocks=S.instance.proxyListArray(i.blocks,t,a),S.instance.proxyBlock(i,a)}async createNewGraphNode(e,t,a,i,n){const r=new ce(void 0,void 0,e.typeName,void 0,e.displayName,n),s=await this.itemPreparator.createFields(r,n,e.template,"",!0,n.attributes);return r.setFields(s),r.setInputs(e.inputs),r.setOutputs(e.outputs),r.setPosition(a,i),r.blocks=S.instance.proxyGraphBlockArray(r.blocks,t),this.addNodeToGraph(r,t,n),r}addNodeToGraph(e,t,a){const i=S.instance.proxyGraphBlock(e,a);t.blocks.push(i)}removeGraphNode(e,t){const a=[];for(const i of e.connections)i.srcNode!==t.id&&i.destNode!==t.id||a.push(i);for(const t of a)e.connections.removeObject(t);e.blocks.removeObject(t)}addGraphLink(e,t,a,i,n,r){e.connections.push(new Z({srcNode:t,srcSlot:a,destNode:i,destSlot:n},r))}removeGraphLink(e,t,a,i,n){for(const r of e.connections)if(r.srcNode===t&&r.srcSlot===a&&r.destNode===i&&r.destSlot===n)return void e.connections.removeObject(r)}createNewScript(e,t=-1,a){t=t>=0?t:e.scripts.length;const i=new X(void 0,e,a);return e.scripts.splice(t,0,i),i}removeScript(e,t){t.scripts.removeObject(e)}findBlock(e){for(const t of this.itemInstances.values())for(const a of t.values()){const t=a.findBlock(e);if(t)return t}return null}async loadPackage(e,t){const a=await _.downloadFile(e,((e,a,i)=>{t&&t({phase:"Loading",percent:e,bytesTotal:a,bytesLoaded:i})})),i=await a.data;this.apiClient.getCollab().endCollaboration();const n=new re({_id:"root",name:"Root package",type:"Package",links:[],attributes:{},fields:[],readOnly:!0,isPackaged:!1}),r=await zi(i,n._id);Ui(n._id,structuredClone(r));const s=Object.values(r.metadata).reverse();for(const e of s)e._id===r.rootItem._id&&(n.packageContent=e,n.packageType=e.type);return await this._linkAndPrepareItems(s),n.packageContent=this.loadedItems.get(r.rootItem._id),this.activeItem=n,n}createPackageItemUrl(e){const t=Li(e);return t?URL.createObjectURL(t.blob):null}revokePackageItemUrl(e){URL.revokeObjectURL(e)}async _loadPackageContentRecursively(e,t){t("Loading from cache",0);const a=await this.apiClient.itemCache.addItemToCache(e._id,void 0,e.hash,(function(e,a,i){t("Loading from cloud",.9*e,i,a)})),i=await(await fetch(a.objectUrl)).blob();t("Unpacking",90);const n=await zi(i,e._id);Ui(e._id,structuredClone(n));const r=Object.values(n.metadata).reverse();for(const t of r)t._id===n.rootItem._id&&(e.packageContent=t,e.packageType=t.type);return r}createNewItemInstance(e){const t=this.loadedItems.get(e);if(!t)return console.error(`Tried creating new instance of item, but it was not found: ${e}`),null;const a=t.clone(!0);return this._addItemInstance(a),a}_addLoadedItem(e){this.loadedItems.set(e._id,e),this._addItemInstance(e)}_addItemInstance(e){let t=this.itemInstances.get(e._id);t||(t=new Map,this.itemInstances.set(e._id,t)),t.set(e.instanceId,e)}async loadItemByRelativePath(e,t,a={}){try{const i=ji(e);let n;if(i){const e=t.split("/"),a=e.pop();let r=Pi(i.folder._id);for(const t of e)if(r=".."===t?Pi(r.parent):Oi(t,r._id),!r)return;const s=Bi(a,r._id);n=s?._id}else n=await this.resolveRelativePath(t,e);return this.loadItem(n,a)}catch(e){this._handleError(e,`Unable to load item by relative path: ${t}: ${e}`)}}async _loadItemFromApi(e,t={}){let a;if(this.apiGateway.start(),t.recursive)if(this.usePublicApi)a=await this.apiGateway.call("_loadItemFromApi","getItemPublicRecursive",e,!0),a.forEach((e=>e.public=!0));else try{a=await this.apiGateway.call("_loadItemFromApi","getItemAggregatedRecursive",e,{withAttachmentInfo:!0,noFields:!0})}catch{a=await this.apiGateway.call("_loadItemFromApi","getItemPublicRecursive",e,!0),a.forEach((e=>e.public=!0))}else{let t;if(this.usePublicApi)t=await this.apiGateway.call("_loadItemFromApi","getItemPublicRecursive",e),t.public=!0;else try{t=await this.apiGateway.call("_loadItemFromApi","getItemAggregated",e,{noFields:!0})}catch{t=await this.apiGateway.call("_loadItemFromApi","getItemPublicRecursive",e),t.public=!0}a=[t]}return this.apiGateway.end(),a}_relinkItems(e,t){for(const a of e){if(Array.isArray(a.links))for(const e of a.links)e.item=t.get(e.to),e.item||e.stopRecursion||console.warn(`Missing link in item '${a.name}' (${a._id}) to: ${e.to} with usage ${e.usage}`);a.packageContent&&(a.packageContent=t.get(a.packageContent._id))}}createItem(e,t){const a={_id:_.createGeneratedItemId(),name:`Generated ${e}`,type:e,attributes:t||{},links:[],fields:[],fieldInstances:[],userFieldInstances:[],isGenerated:!0};return this.itemPreparator.prepare(a)}getLoadedItem(e){return this.loadedItems.get(e)}async loadItem(e,t={}){let a,i,n;if(n=this.loadedItems.get(e),n)return n;if(n=this.loadingItems.get(e),n)return n;try{const r=new Promise(((e,t)=>{a=e,i=t}));return this.loadingItems.set(e,r),n=await this._loadItemInternal(e,t),a(n),!this.activeItem&&n&&(this.rootItemId=e,this.activeItem=n,t.withCollaboration,await y.$emit("itemRepo:itemLoaded",n)),n}catch(t){return this._handleError(t,`Unable to load item ${e}: ${t}`),void i(void 0)}finally{this.loadingItems.delete(e)}}async _loadItemInternal(e,t={}){const a=(e,a,i=0,n=0)=>{"function"==typeof t.progressCallback&&t.progressCallback({phase:e,percent:a,bytesTotal:i,bytesLoaded:n})};a("Fetching metadata",1);let i=await this._loadItemFromApi(e,t);if(i=i.filter((e=>!this.loadedItems.has(e._id))),0===i.length)return console.log("After loading the item, it turns out we have them all already loaded! This should not happen!"),this.loadedItems.get(e);const n=i[0]._id;for(const e of i)if("Package"===e.type){const t=await this._loadPackageContentRecursively(e,a);for(const e of t)i.push(e)}a("Preparing data",100),await this._linkAndPrepareItems(i);return this.loadedItems.get(n)}async _linkAndPrepareItems(e){const t=new Map;for(const a of e)t.set(a._id,a);const a=new Map([...this.loadedItems,...t]);this._relinkItems(e,a);const i=[],n=()=>{const e=t.values().next().value;return t.delete(e._id),this._log(`- Fetched next item ${e.name} (${e._id})`),e},r=async e=>{this._logGroup(`- Preparing item ${e.name} (${e._id})`);const t=await this.itemPreparator.prepare(e);return i.push(t),this._addLoadedItem(t),this._logGroupEnd(),t};for(this.itemPreparator.setItemFetcher((async e=>{this._logGroup(`- Requesting item ${e.name} (${e._id})`);let a=this.loadedItems.get(e._id);if(a)return this._log("- Already prepared. Returning."),this._logGroupEnd(),a;const i=t.get(e._id);return i?(t.delete(e._id),this._log("- Don't have it yet. Preparing..."),a=await r(i),this._log("- Now prepared. Returning."),this._logGroupEnd(),a):(console.error("ItemFetcher: Could not find requested item: "+e._id,t,this.loadedItems),null)}));t.size>0;){let e=n();await r(e)}return this._relinkItems(i,this.loadedItems),i}async resolveRelativePath(e,t=null){if(!(t=t||this.activeItem?._id||null))return null;const a=`${t}#${e}`;let i;return i=this.resolvedPaths.has(a)?this.resolvedPaths.get(a):this.usePublicApi?await this.apiClient.publicResolveRelativeItem(t,e):await this.apiClient.resolveRelativeItem(t,e),this.resolvedPaths.set(a,i),i}async traverseItems(e,t=void 0){if("function"!=typeof e)return;const a=this,i=new Map;await async function t(n){if(!n)return;if(i.has(n._id))return;i.set(n._id,!0);const r=e(n);if(r&&r.then&&await r,Array.isArray(n.links))for(const e of n.links)if(e.item)await t(e.item);else if(e.to)try{const i=await a.loadItem(e.to);await t(i)}catch{console.warn(`Could not load additional item ${e.to} so cannot traverse it. Probably dead link!`)}}(t||this.activeItem)}async traverseBlocks(e,t){for(const a of t){const t=e(a);t&&t.then&&await t,Array.isArray(a.blocks)&&a.blocks?.length&&await this.traverseBlocks(e,a.blocks)}}async traverseFieldInstances(e,t){const a=this;t=t||this.activeItem?.fieldInstances||[];for(const i of t){const t=e(i);t&&t.then&&await t,Array.isArray(i.blocks)&&await this.traverseBlocks((async function(t){Array.isArray(t.fields)&&t.fields?.length&&await a.traverseFieldInstances(e,t.fields)}),i.blocks)}}async _updateLinkReferences(e,t,a,i){t?await this.traverseItems((async n=>{if(Array.isArray(n.fieldInstances)&&n.fieldInstances.length&&await this.traverseFieldInstances((async a=>{"Link"===a.type&&a.value&&a.value._id===e&&(i&&(a.value=null),a.value=t)}),n.fieldInstances),n.links)for(const r of n.links)r.to===e&&(i&&(r.to=null,r.item=null),r.to=a,r.item=t)})):console.warn(`Aborting link update: Could not load item ${a}`)}async replaceLink(e,t){if(this.getLoadedItem(e)){const a=await this.loadItem(t,{recursive:!0});await this._updateLinkReferences(e,a,t,!1)}}async forceUpdateLink(e){const t=await this.loadItem(e,{recursive:!0});await this._updateLinkReferences(e,t,e,!0)}saveItem(e){return e._id&&e.isDirty?(this.itemChangeProcessor.updateItemLinksAndAttributes(e,!1,!0),e.version||(e.version={major:0,minor:0,revision:1}),this.apiClient.updateItem({_id:e._id,name:e.name,attributes:e.attributes,userAttributes:e.userAttributes,links:e.links,tags:e.tags,contributors:e.contributors,description:e.description,shortDescription:e.shortDescription,categories:e.categories,license:e.license,version:e.version,allowConversation:e.allowConversation,visibility:e.visibility}).then((t=>(JSON.stringify(e.version)===JSON.stringify(t.version)?console.log(`Saved item ${e.name}. New version: ${e.version.major}.${e.version.minor}.${e.version.revision}`):console.log(`Saved item ${e.name}. Version ${e.version.major}.${e.version.minor}.${e.version.revision} -> ${t.version.major}.${t.version.minor}.${t.version.revision}`),t&&t.version&&(e.version=t.version),e.isDirty=!1,this.itemChangeProcessor.updateItemLinksAndAttributes(e,!0,!1),e))).catch((function(t){throw console.error(`Error saving item ${e.name}`,t,e),t}))):null}async save(){console.log("Saving changes in loaded items...");const e=[];for(const t of this.loadedItems.values()){const a=this.saveItem(t);a&&e.push(a)}if(0!==e.length){let t=0;for(const a of e)a.then((function(a){y.$emit("itemRepo:itemSaved",{item:a,progress:++t,total:e.length})}));return Promise.all(e).then((function(){console.log("Saved successfully"),y.$emit("itemRepo:itemsSaved")})).catch((function(e){console.error("Error saving:",e)}))}console.log("No changes detected.")}async existsUnsavedChanges(){if(!this.activeItem)return!1;for(const e of this.loadedItems.values())if(e._id&&e.isDirty)return!0;return!1}handleRename({id:e,newName:t}){for(const a of this.itemInstances.values())for(const i of a.values())i._id===e&&(i.name=t)}isItemKnown(e){return this.loadedItems.has(e)||this.itemInstances.has(e)||this.loadingItems.has(e)}invalidateId(e){this.loadedItems.delete(e),this.itemInstances.delete(e),this.loadingItems.delete(e)}}var Xi,Qi={exports:{}};
11
+ */var ae=(Q||(Q=1,function(e,t){(function(){var a,i="Expected a function",n="__lodash_hash_undefined__",r="__lodash_placeholder__",s=32,o=128,l=256,u=1/0,c=9007199254740991,d=NaN,p=4294967295,h=[["ary",o],["bind",1],["bindKey",2],["curry",8],["curryRight",16],["flip",512],["partial",s],["partialRight",64],["rearg",l]],f="[object Arguments]",m="[object Array]",y="[object Boolean]",g="[object Date]",b="[object Error]",v="[object Function]",_="[object GeneratorFunction]",w="[object Map]",A="[object Number]",k="[object Object]",S="[object Promise]",N="[object RegExp]",x="[object Set]",T="[object String]",M="[object Symbol]",V="[object WeakMap]",C="[object ArrayBuffer]",I="[object DataView]",F="[object Float32Array]",E="[object Float64Array]",D="[object Int8Array]",L="[object Int16Array]",R="[object Int32Array]",O="[object Uint8Array]",B="[object Uint8ClampedArray]",$="[object Uint16Array]",j="[object Uint32Array]",U=/\b__p \+= '';/g,z=/\b(__p \+=) '' \+/g,W=/(__e\(.*?\)|\b__t\)) \+\n'';/g,H=/&(?:amp|lt|gt|quot|#39);/g,Y=/[&<>"']/g,G=RegExp(H.source),q=RegExp(Y.source),Z=/<%-([\s\S]+?)%>/g,J=/<%([\s\S]+?)%>/g,K=/<%=([\s\S]+?)%>/g,X=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Q=/^\w*$/,ee=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,te=/[\\^$.*+?()[\]{}|]/g,ae=RegExp(te.source),ie=/^\s+/,ne=/\s/,re=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,se=/\{\n\/\* \[wrapped with (.+)\] \*/,oe=/,? & /,le=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,ue=/[()=,{}\[\]\/\s]/,ce=/\\(\\)?/g,de=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,pe=/\w*$/,he=/^[-+]0x[0-9a-f]+$/i,fe=/^0b[01]+$/i,me=/^\[object .+?Constructor\]$/,ye=/^0o[0-7]+$/i,ge=/^(?:0|[1-9]\d*)$/,be=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,ve=/($^)/,_e=/['\n\r\u2028\u2029\\]/g,we="\\ud800-\\udfff",Ae="\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff",ke="\\u2700-\\u27bf",Se="a-z\\xdf-\\xf6\\xf8-\\xff",Ne="A-Z\\xc0-\\xd6\\xd8-\\xde",xe="\\ufe0e\\ufe0f",Te="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Me="['’]",Ve="["+we+"]",Ce="["+Te+"]",Ie="["+Ae+"]",Fe="\\d+",Ee="["+ke+"]",De="["+Se+"]",Le="[^"+we+Te+Fe+ke+Se+Ne+"]",Re="\\ud83c[\\udffb-\\udfff]",Pe="[^"+we+"]",Oe="(?:\\ud83c[\\udde6-\\uddff]){2}",Be="[\\ud800-\\udbff][\\udc00-\\udfff]",$e="["+Ne+"]",je="\\u200d",Ue="(?:"+De+"|"+Le+")",ze="(?:"+$e+"|"+Le+")",We="(?:['’](?:d|ll|m|re|s|t|ve))?",He="(?:['’](?:D|LL|M|RE|S|T|VE))?",Ye="(?:"+Ie+"|"+Re+")?",Ge="["+xe+"]?",qe=Ge+Ye+"(?:"+je+"(?:"+[Pe,Oe,Be].join("|")+")"+Ge+Ye+")*",Ze="(?:"+[Ee,Oe,Be].join("|")+")"+qe,Je="(?:"+[Pe+Ie+"?",Ie,Oe,Be,Ve].join("|")+")",Ke=RegExp(Me,"g"),Xe=RegExp(Ie,"g"),Qe=RegExp(Re+"(?="+Re+")|"+Je+qe,"g"),et=RegExp([$e+"?"+De+"+"+We+"(?="+[Ce,$e,"$"].join("|")+")",ze+"+"+He+"(?="+[Ce,$e+Ue,"$"].join("|")+")",$e+"?"+Ue+"+"+We,$e+"+"+He,"\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",Fe,Ze].join("|"),"g"),tt=RegExp("["+je+we+Ae+xe+"]"),at=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,it=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],nt=-1,rt={};rt[F]=rt[E]=rt[D]=rt[L]=rt[R]=rt[O]=rt[B]=rt[$]=rt[j]=!0,rt[f]=rt[m]=rt[C]=rt[y]=rt[I]=rt[g]=rt[b]=rt[v]=rt[w]=rt[A]=rt[k]=rt[N]=rt[x]=rt[T]=rt[V]=!1;var st={};st[f]=st[m]=st[C]=st[I]=st[y]=st[g]=st[F]=st[E]=st[D]=st[L]=st[R]=st[w]=st[A]=st[k]=st[N]=st[x]=st[T]=st[M]=st[O]=st[B]=st[$]=st[j]=!0,st[b]=st[v]=st[V]=!1;var ot={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},lt=parseFloat,ut=parseInt,ct="object"==typeof P&&P&&P.Object===Object&&P,dt="object"==typeof self&&self&&self.Object===Object&&self,pt=ct||dt||Function("return this")(),ht=t&&!t.nodeType&&t,ft=ht&&e&&!e.nodeType&&e,mt=ft&&ft.exports===ht,yt=mt&&ct.process,gt=function(){try{var e=ft&&ft.require&&ft.require("util").types;return e||yt&&yt.binding&&yt.binding("util")}catch(e){}}(),bt=gt&&gt.isArrayBuffer,vt=gt&&gt.isDate,_t=gt&&gt.isMap,wt=gt&&gt.isRegExp,At=gt&&gt.isSet,kt=gt&&gt.isTypedArray;function St(e,t,a){switch(a.length){case 0:return e.call(t);case 1:return e.call(t,a[0]);case 2:return e.call(t,a[0],a[1]);case 3:return e.call(t,a[0],a[1],a[2])}return e.apply(t,a)}function Nt(e,t,a,i){for(var n=-1,r=null==e?0:e.length;++n<r;){var s=e[n];t(i,s,a(s),e)}return i}function xt(e,t){for(var a=-1,i=null==e?0:e.length;++a<i&&!1!==t(e[a],a,e););return e}function Tt(e,t){for(var a=null==e?0:e.length;a--&&!1!==t(e[a],a,e););return e}function Mt(e,t){for(var a=-1,i=null==e?0:e.length;++a<i;)if(!t(e[a],a,e))return!1;return!0}function Vt(e,t){for(var a=-1,i=null==e?0:e.length,n=0,r=[];++a<i;){var s=e[a];t(s,a,e)&&(r[n++]=s)}return r}function Ct(e,t){return!(null==e||!e.length)&&$t(e,t,0)>-1}function It(e,t,a){for(var i=-1,n=null==e?0:e.length;++i<n;)if(a(t,e[i]))return!0;return!1}function Ft(e,t){for(var a=-1,i=null==e?0:e.length,n=Array(i);++a<i;)n[a]=t(e[a],a,e);return n}function Et(e,t){for(var a=-1,i=t.length,n=e.length;++a<i;)e[n+a]=t[a];return e}function Dt(e,t,a,i){var n=-1,r=null==e?0:e.length;for(i&&r&&(a=e[++n]);++n<r;)a=t(a,e[n],n,e);return a}function Lt(e,t,a,i){var n=null==e?0:e.length;for(i&&n&&(a=e[--n]);n--;)a=t(a,e[n],n,e);return a}function Rt(e,t){for(var a=-1,i=null==e?0:e.length;++a<i;)if(t(e[a],a,e))return!0;return!1}var Pt=Wt("length");function Ot(e,t,a){var i;return a(e,(function(e,a,n){if(t(e,a,n))return i=a,!1})),i}function Bt(e,t,a,i){for(var n=e.length,r=a+(i?1:-1);i?r--:++r<n;)if(t(e[r],r,e))return r;return-1}function $t(e,t,a){return t==t?function(e,t,a){for(var i=a-1,n=e.length;++i<n;)if(e[i]===t)return i;return-1}(e,t,a):Bt(e,Ut,a)}function jt(e,t,a,i){for(var n=a-1,r=e.length;++n<r;)if(i(e[n],t))return n;return-1}function Ut(e){return e!=e}function zt(e,t){var a=null==e?0:e.length;return a?Gt(e,t)/a:d}function Wt(e){return function(t){return null==t?a:t[e]}}function Ht(e){return function(t){return null==e?a:e[t]}}function Yt(e,t,a,i,n){return n(e,(function(e,n,r){a=i?(i=!1,e):t(a,e,n,r)})),a}function Gt(e,t){for(var i,n=-1,r=e.length;++n<r;){var s=t(e[n]);s!==a&&(i=i===a?s:i+s)}return i}function qt(e,t){for(var a=-1,i=Array(e);++a<e;)i[a]=t(a);return i}function Zt(e){return e?e.slice(0,pa(e)+1).replace(ie,""):e}function Jt(e){return function(t){return e(t)}}function Kt(e,t){return Ft(t,(function(t){return e[t]}))}function Xt(e,t){return e.has(t)}function Qt(e,t){for(var a=-1,i=e.length;++a<i&&$t(t,e[a],0)>-1;);return a}function ea(e,t){for(var a=e.length;a--&&$t(t,e[a],0)>-1;);return a}var ta=Ht({"À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","Ç":"C","ç":"c","Ð":"D","ð":"d","È":"E","É":"E","Ê":"E","Ë":"E","è":"e","é":"e","ê":"e","ë":"e","Ì":"I","Í":"I","Î":"I","Ï":"I","ì":"i","í":"i","î":"i","ï":"i","Ñ":"N","ñ":"n","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","Ù":"U","Ú":"U","Û":"U","Ü":"U","ù":"u","ú":"u","û":"u","ü":"u","Ý":"Y","ý":"y","ÿ":"y","Æ":"Ae","æ":"ae","Þ":"Th","þ":"th","ß":"ss","Ā":"A","Ă":"A","Ą":"A","ā":"a","ă":"a","ą":"a","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","ć":"c","ĉ":"c","ċ":"c","č":"c","Ď":"D","Đ":"D","ď":"d","đ":"d","Ē":"E","Ĕ":"E","Ė":"E","Ę":"E","Ě":"E","ē":"e","ĕ":"e","ė":"e","ę":"e","ě":"e","Ĝ":"G","Ğ":"G","Ġ":"G","Ģ":"G","ĝ":"g","ğ":"g","ġ":"g","ģ":"g","Ĥ":"H","Ħ":"H","ĥ":"h","ħ":"h","Ĩ":"I","Ī":"I","Ĭ":"I","Į":"I","İ":"I","ĩ":"i","ī":"i","ĭ":"i","į":"i","ı":"i","Ĵ":"J","ĵ":"j","Ķ":"K","ķ":"k","ĸ":"k","Ĺ":"L","Ļ":"L","Ľ":"L","Ŀ":"L","Ł":"L","ĺ":"l","ļ":"l","ľ":"l","ŀ":"l","ł":"l","Ń":"N","Ņ":"N","Ň":"N","Ŋ":"N","ń":"n","ņ":"n","ň":"n","ŋ":"n","Ō":"O","Ŏ":"O","Ő":"O","ō":"o","ŏ":"o","ő":"o","Ŕ":"R","Ŗ":"R","Ř":"R","ŕ":"r","ŗ":"r","ř":"r","Ś":"S","Ŝ":"S","Ş":"S","Š":"S","ś":"s","ŝ":"s","ş":"s","š":"s","Ţ":"T","Ť":"T","Ŧ":"T","ţ":"t","ť":"t","ŧ":"t","Ũ":"U","Ū":"U","Ŭ":"U","Ů":"U","Ű":"U","Ų":"U","ũ":"u","ū":"u","ŭ":"u","ů":"u","ű":"u","ų":"u","Ŵ":"W","ŵ":"w","Ŷ":"Y","ŷ":"y","Ÿ":"Y","Ź":"Z","Ż":"Z","Ž":"Z","ź":"z","ż":"z","ž":"z","IJ":"IJ","ij":"ij","Œ":"Oe","œ":"oe","ʼn":"'n","ſ":"s"}),aa=Ht({"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"});function ia(e){return"\\"+ot[e]}function na(e){return tt.test(e)}function ra(e){var t=-1,a=Array(e.size);return e.forEach((function(e,i){a[++t]=[i,e]})),a}function sa(e,t){return function(a){return e(t(a))}}function oa(e,t){for(var a=-1,i=e.length,n=0,s=[];++a<i;){var o=e[a];o!==t&&o!==r||(e[a]=r,s[n++]=a)}return s}function la(e){var t=-1,a=Array(e.size);return e.forEach((function(e){a[++t]=e})),a}function ua(e){var t=-1,a=Array(e.size);return e.forEach((function(e){a[++t]=[e,e]})),a}function ca(e){return na(e)?function(e){for(var t=Qe.lastIndex=0;Qe.test(e);)++t;return t}(e):Pt(e)}function da(e){return na(e)?function(e){return e.match(Qe)||[]}(e):function(e){return e.split("")}(e)}function pa(e){for(var t=e.length;t--&&ne.test(e.charAt(t)););return t}var ha=Ht({"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&#39;":"'"}),fa=function e(t){var P,ne=(t=null==t?pt:fa.defaults(pt.Object(),t,fa.pick(pt,it))).Array,we=t.Date,Ae=t.Error,ke=t.Function,Se=t.Math,Ne=t.Object,xe=t.RegExp,Te=t.String,Me=t.TypeError,Ve=ne.prototype,Ce=ke.prototype,Ie=Ne.prototype,Fe=t["__core-js_shared__"],Ee=Ce.toString,De=Ie.hasOwnProperty,Le=0,Re=(P=/[^.]+$/.exec(Fe&&Fe.keys&&Fe.keys.IE_PROTO||""))?"Symbol(src)_1."+P:"",Pe=Ie.toString,Oe=Ee.call(Ne),Be=pt._,$e=xe("^"+Ee.call(De).replace(te,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),je=mt?t.Buffer:a,Ue=t.Symbol,ze=t.Uint8Array,We=je?je.allocUnsafe:a,He=sa(Ne.getPrototypeOf,Ne),Ye=Ne.create,Ge=Ie.propertyIsEnumerable,qe=Ve.splice,Ze=Ue?Ue.isConcatSpreadable:a,Je=Ue?Ue.iterator:a,Qe=Ue?Ue.toStringTag:a,tt=function(){try{var e=cr(Ne,"defineProperty");return e({},"",{}),e}catch(e){}}(),ot=t.clearTimeout!==pt.clearTimeout&&t.clearTimeout,ct=we&&we.now!==pt.Date.now&&we.now,dt=t.setTimeout!==pt.setTimeout&&t.setTimeout,ht=Se.ceil,ft=Se.floor,yt=Ne.getOwnPropertySymbols,gt=je?je.isBuffer:a,Pt=t.isFinite,Ht=Ve.join,ma=sa(Ne.keys,Ne),ya=Se.max,ga=Se.min,ba=we.now,va=t.parseInt,_a=Se.random,wa=Ve.reverse,Aa=cr(t,"DataView"),ka=cr(t,"Map"),Sa=cr(t,"Promise"),Na=cr(t,"Set"),xa=cr(t,"WeakMap"),Ta=cr(Ne,"create"),Ma=xa&&new xa,Va={},Ca=Rr(Aa),Ia=Rr(ka),Fa=Rr(Sa),Ea=Rr(Na),Da=Rr(xa),La=Ue?Ue.prototype:a,Ra=La?La.valueOf:a,Pa=La?La.toString:a;function Oa(e){if(Qs(e)&&!Us(e)&&!(e instanceof Ua)){if(e instanceof ja)return e;if(De.call(e,"__wrapped__"))return Pr(e)}return new ja(e)}var Ba=function(){function e(){}return function(t){if(!Xs(t))return{};if(Ye)return Ye(t);e.prototype=t;var i=new e;return e.prototype=a,i}}();function $a(){}function ja(e,t){this.__wrapped__=e,this.__actions__=[],this.__chain__=!!t,this.__index__=0,this.__values__=a}function Ua(e){this.__wrapped__=e,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=p,this.__views__=[]}function za(e){var t=-1,a=null==e?0:e.length;for(this.clear();++t<a;){var i=e[t];this.set(i[0],i[1])}}function Wa(e){var t=-1,a=null==e?0:e.length;for(this.clear();++t<a;){var i=e[t];this.set(i[0],i[1])}}function Ha(e){var t=-1,a=null==e?0:e.length;for(this.clear();++t<a;){var i=e[t];this.set(i[0],i[1])}}function Ya(e){var t=-1,a=null==e?0:e.length;for(this.__data__=new Ha;++t<a;)this.add(e[t])}function Ga(e){var t=this.__data__=new Wa(e);this.size=t.size}function qa(e,t){var a=Us(e),i=!a&&js(e),n=!a&&!i&&Ys(e),r=!a&&!i&&!n&&oo(e),s=a||i||n||r,o=s?qt(e.length,Te):[],l=o.length;for(var u in e)!t&&!De.call(e,u)||s&&("length"==u||n&&("offset"==u||"parent"==u)||r&&("buffer"==u||"byteLength"==u||"byteOffset"==u)||gr(u,l))||o.push(u);return o}function Za(e){var t=e.length;return t?e[Yi(0,t-1)]:a}function Ja(e,t){return Er(Mn(e),ri(t,0,e.length))}function Ka(e){return Er(Mn(e))}function Xa(e,t,i){(i!==a&&!Os(e[t],i)||i===a&&!(t in e))&&ii(e,t,i)}function Qa(e,t,i){var n=e[t];De.call(e,t)&&Os(n,i)&&(i!==a||t in e)||ii(e,t,i)}function ei(e,t){for(var a=e.length;a--;)if(Os(e[a][0],t))return a;return-1}function ti(e,t,a,i){return ci(e,(function(e,n,r){t(i,e,a(e),r)})),i}function ai(e,t){return e&&Vn(t,Co(t),e)}function ii(e,t,a){"__proto__"==t&&tt?tt(e,t,{configurable:!0,enumerable:!0,value:a,writable:!0}):e[t]=a}function ni(e,t){for(var i=-1,n=t.length,r=ne(n),s=null==e;++i<n;)r[i]=s?a:No(e,t[i]);return r}function ri(e,t,i){return e==e&&(i!==a&&(e=e<=i?e:i),t!==a&&(e=e>=t?e:t)),e}function si(e,t,i,n,r,s){var o,l=1&t,u=2&t,c=4&t;if(i&&(o=r?i(e,n,r,s):i(e)),o!==a)return o;if(!Xs(e))return e;var d=Us(e);if(d){if(o=function(e){var t=e.length,a=new e.constructor(t);return t&&"string"==typeof e[0]&&De.call(e,"index")&&(a.index=e.index,a.input=e.input),a}(e),!l)return Mn(e,o)}else{var p=hr(e),h=p==v||p==_;if(Ys(e))return An(e,l);if(p==k||p==f||h&&!r){if(o=u||h?{}:mr(e),!l)return u?function(e,t){return Vn(e,pr(e),t)}(e,function(e,t){return e&&Vn(t,Io(t),e)}(o,e)):function(e,t){return Vn(e,dr(e),t)}(e,ai(o,e))}else{if(!st[p])return r?e:{};o=function(e,t,a){var i,n=e.constructor;switch(t){case C:return kn(e);case y:case g:return new n(+e);case I:return function(e,t){var a=t?kn(e.buffer):e.buffer;return new e.constructor(a,e.byteOffset,e.byteLength)}(e,a);case F:case E:case D:case L:case R:case O:case B:case $:case j:return Sn(e,a);case w:return new n;case A:case T:return new n(e);case N:return function(e){var t=new e.constructor(e.source,pe.exec(e));return t.lastIndex=e.lastIndex,t}(e);case x:return new n;case M:return i=e,Ra?Ne(Ra.call(i)):{}}}(e,p,l)}}s||(s=new Ga);var m=s.get(e);if(m)return m;s.set(e,o),no(e)?e.forEach((function(a){o.add(si(a,t,i,a,e,s))})):eo(e)&&e.forEach((function(a,n){o.set(n,si(a,t,i,n,e,s))}));var b=d?a:(c?u?ir:ar:u?Io:Co)(e);return xt(b||e,(function(a,n){b&&(a=e[n=a]),Qa(o,n,si(a,t,i,n,e,s))})),o}function oi(e,t,i){var n=i.length;if(null==e)return!n;for(e=Ne(e);n--;){var r=i[n],s=t[r],o=e[r];if(o===a&&!(r in e)||!s(o))return!1}return!0}function li(e,t,n){if("function"!=typeof e)throw new Me(i);return Vr((function(){e.apply(a,n)}),t)}function ui(e,t,a,i){var n=-1,r=Ct,s=!0,o=e.length,l=[],u=t.length;if(!o)return l;a&&(t=Ft(t,Jt(a))),i?(r=It,s=!1):t.length>=200&&(r=Xt,s=!1,t=new Ya(t));e:for(;++n<o;){var c=e[n],d=null==a?c:a(c);if(c=i||0!==c?c:0,s&&d==d){for(var p=u;p--;)if(t[p]===d)continue e;l.push(c)}else r(t,d,i)||l.push(c)}return l}Oa.templateSettings={escape:Z,evaluate:J,interpolate:K,variable:"",imports:{_:Oa}},Oa.prototype=$a.prototype,Oa.prototype.constructor=Oa,ja.prototype=Ba($a.prototype),ja.prototype.constructor=ja,Ua.prototype=Ba($a.prototype),Ua.prototype.constructor=Ua,za.prototype.clear=function(){this.__data__=Ta?Ta(null):{},this.size=0},za.prototype.delete=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t},za.prototype.get=function(e){var t=this.__data__;if(Ta){var i=t[e];return i===n?a:i}return De.call(t,e)?t[e]:a},za.prototype.has=function(e){var t=this.__data__;return Ta?t[e]!==a:De.call(t,e)},za.prototype.set=function(e,t){var i=this.__data__;return this.size+=this.has(e)?0:1,i[e]=Ta&&t===a?n:t,this},Wa.prototype.clear=function(){this.__data__=[],this.size=0},Wa.prototype.delete=function(e){var t=this.__data__,a=ei(t,e);return!(a<0||(a==t.length-1?t.pop():qe.call(t,a,1),--this.size,0))},Wa.prototype.get=function(e){var t=this.__data__,i=ei(t,e);return i<0?a:t[i][1]},Wa.prototype.has=function(e){return ei(this.__data__,e)>-1},Wa.prototype.set=function(e,t){var a=this.__data__,i=ei(a,e);return i<0?(++this.size,a.push([e,t])):a[i][1]=t,this},Ha.prototype.clear=function(){this.size=0,this.__data__={hash:new za,map:new(ka||Wa),string:new za}},Ha.prototype.delete=function(e){var t=lr(this,e).delete(e);return this.size-=t?1:0,t},Ha.prototype.get=function(e){return lr(this,e).get(e)},Ha.prototype.has=function(e){return lr(this,e).has(e)},Ha.prototype.set=function(e,t){var a=lr(this,e),i=a.size;return a.set(e,t),this.size+=a.size==i?0:1,this},Ya.prototype.add=Ya.prototype.push=function(e){return this.__data__.set(e,n),this},Ya.prototype.has=function(e){return this.__data__.has(e)},Ga.prototype.clear=function(){this.__data__=new Wa,this.size=0},Ga.prototype.delete=function(e){var t=this.__data__,a=t.delete(e);return this.size=t.size,a},Ga.prototype.get=function(e){return this.__data__.get(e)},Ga.prototype.has=function(e){return this.__data__.has(e)},Ga.prototype.set=function(e,t){var a=this.__data__;if(a instanceof Wa){var i=a.__data__;if(!ka||i.length<199)return i.push([e,t]),this.size=++a.size,this;a=this.__data__=new Ha(i)}return a.set(e,t),this.size=a.size,this};var ci=Fn(bi),di=Fn(vi,!0);function pi(e,t){var a=!0;return ci(e,(function(e,i,n){return a=!!t(e,i,n)})),a}function hi(e,t,i){for(var n=-1,r=e.length;++n<r;){var s=e[n],o=t(s);if(null!=o&&(l===a?o==o&&!so(o):i(o,l)))var l=o,u=s}return u}function fi(e,t){var a=[];return ci(e,(function(e,i,n){t(e,i,n)&&a.push(e)})),a}function mi(e,t,a,i,n){var r=-1,s=e.length;for(a||(a=yr),n||(n=[]);++r<s;){var o=e[r];t>0&&a(o)?t>1?mi(o,t-1,a,i,n):Et(n,o):i||(n[n.length]=o)}return n}var yi=En(),gi=En(!0);function bi(e,t){return e&&yi(e,t,Co)}function vi(e,t){return e&&gi(e,t,Co)}function _i(e,t){return Vt(t,(function(t){return Zs(e[t])}))}function wi(e,t){for(var i=0,n=(t=bn(t,e)).length;null!=e&&i<n;)e=e[Lr(t[i++])];return i&&i==n?e:a}function Ai(e,t,a){var i=t(e);return Us(e)?i:Et(i,a(e))}function ki(e){return null==e?e===a?"[object Undefined]":"[object Null]":Qe&&Qe in Ne(e)?function(e){var t=De.call(e,Qe),i=e[Qe];try{e[Qe]=a;var n=!0}catch(e){}var r=Pe.call(e);return n&&(t?e[Qe]=i:delete e[Qe]),r}(e):function(e){return Pe.call(e)}(e)}function Si(e,t){return e>t}function Ni(e,t){return null!=e&&De.call(e,t)}function xi(e,t){return null!=e&&t in Ne(e)}function Ti(e,t,i){for(var n=i?It:Ct,r=e[0].length,s=e.length,o=s,l=ne(s),u=1/0,c=[];o--;){var d=e[o];o&&t&&(d=Ft(d,Jt(t))),u=ga(d.length,u),l[o]=!i&&(t||r>=120&&d.length>=120)?new Ya(o&&d):a}d=e[0];var p=-1,h=l[0];e:for(;++p<r&&c.length<u;){var f=d[p],m=t?t(f):f;if(f=i||0!==f?f:0,!(h?Xt(h,m):n(c,m,i))){for(o=s;--o;){var y=l[o];if(!(y?Xt(y,m):n(e[o],m,i)))continue e}h&&h.push(m),c.push(f)}}return c}function Mi(e,t,i){var n=null==(e=xr(e,t=bn(t,e)))?e:e[Lr(qr(t))];return null==n?a:St(n,e,i)}function Vi(e){return Qs(e)&&ki(e)==f}function Ci(e,t,i,n,r){return e===t||(null==e||null==t||!Qs(e)&&!Qs(t)?e!=e&&t!=t:function(e,t,i,n,r,s){var o=Us(e),l=Us(t),u=o?m:hr(e),c=l?m:hr(t),d=(u=u==f?k:u)==k,p=(c=c==f?k:c)==k,h=u==c;if(h&&Ys(e)){if(!Ys(t))return!1;o=!0,d=!1}if(h&&!d)return s||(s=new Ga),o||oo(e)?er(e,t,i,n,r,s):function(e,t,a,i,n,r,s){switch(a){case I:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case C:return!(e.byteLength!=t.byteLength||!r(new ze(e),new ze(t)));case y:case g:case A:return Os(+e,+t);case b:return e.name==t.name&&e.message==t.message;case N:case T:return e==t+"";case w:var o=ra;case x:var l=1&i;if(o||(o=la),e.size!=t.size&&!l)return!1;var u=s.get(e);if(u)return u==t;i|=2,s.set(e,t);var c=er(o(e),o(t),i,n,r,s);return s.delete(e),c;case M:if(Ra)return Ra.call(e)==Ra.call(t)}return!1}(e,t,u,i,n,r,s);if(!(1&i)){var v=d&&De.call(e,"__wrapped__"),_=p&&De.call(t,"__wrapped__");if(v||_){var S=v?e.value():e,V=_?t.value():t;return s||(s=new Ga),r(S,V,i,n,s)}}return!!h&&(s||(s=new Ga),function(e,t,i,n,r,s){var o=1&i,l=ar(e),u=l.length,c=ar(t),d=c.length;if(u!=d&&!o)return!1;for(var p=u;p--;){var h=l[p];if(!(o?h in t:De.call(t,h)))return!1}var f=s.get(e),m=s.get(t);if(f&&m)return f==t&&m==e;var y=!0;s.set(e,t),s.set(t,e);for(var g=o;++p<u;){var b=e[h=l[p]],v=t[h];if(n)var _=o?n(v,b,h,t,e,s):n(b,v,h,e,t,s);if(!(_===a?b===v||r(b,v,i,n,s):_)){y=!1;break}g||(g="constructor"==h)}if(y&&!g){var w=e.constructor,A=t.constructor;w==A||!("constructor"in e)||!("constructor"in t)||"function"==typeof w&&w instanceof w&&"function"==typeof A&&A instanceof A||(y=!1)}return s.delete(e),s.delete(t),y}(e,t,i,n,r,s))}(e,t,i,n,Ci,r))}function Ii(e,t,i,n){var r=i.length,s=r,o=!n;if(null==e)return!s;for(e=Ne(e);r--;){var l=i[r];if(o&&l[2]?l[1]!==e[l[0]]:!(l[0]in e))return!1}for(;++r<s;){var u=(l=i[r])[0],c=e[u],d=l[1];if(o&&l[2]){if(c===a&&!(u in e))return!1}else{var p=new Ga;if(n)var h=n(c,d,u,e,t,p);if(!(h===a?Ci(d,c,3,n,p):h))return!1}}return!0}function Fi(e){return!(!Xs(e)||(t=e,Re&&Re in t))&&(Zs(e)?$e:me).test(Rr(e));var t}function Ei(e){return"function"==typeof e?e:null==e?al:"object"==typeof e?Us(e)?Bi(e[0],e[1]):Oi(e):dl(e)}function Di(e){if(!Ar(e))return ma(e);var t=[];for(var a in Ne(e))De.call(e,a)&&"constructor"!=a&&t.push(a);return t}function Li(e){if(!Xs(e))return function(e){var t=[];if(null!=e)for(var a in Ne(e))t.push(a);return t}(e);var t=Ar(e),a=[];for(var i in e)("constructor"!=i||!t&&De.call(e,i))&&a.push(i);return a}function Ri(e,t){return e<t}function Pi(e,t){var a=-1,i=Ws(e)?ne(e.length):[];return ci(e,(function(e,n,r){i[++a]=t(e,n,r)})),i}function Oi(e){var t=ur(e);return 1==t.length&&t[0][2]?Sr(t[0][0],t[0][1]):function(a){return a===e||Ii(a,e,t)}}function Bi(e,t){return vr(e)&&kr(t)?Sr(Lr(e),t):function(i){var n=No(i,e);return n===a&&n===t?xo(i,e):Ci(t,n,3)}}function $i(e,t,i,n,r){e!==t&&yi(t,(function(s,o){if(r||(r=new Ga),Xs(s))!function(e,t,i,n,r,s,o){var l=Tr(e,i),u=Tr(t,i),c=o.get(u);if(c)Xa(e,i,c);else{var d=s?s(l,u,i+"",e,t,o):a,p=d===a;if(p){var h=Us(u),f=!h&&Ys(u),m=!h&&!f&&oo(u);d=u,h||f||m?Us(l)?d=l:Hs(l)?d=Mn(l):f?(p=!1,d=An(u,!0)):m?(p=!1,d=Sn(u,!0)):d=[]:ao(u)||js(u)?(d=l,js(l)?d=yo(l):Xs(l)&&!Zs(l)||(d=mr(u))):p=!1}p&&(o.set(u,d),r(d,u,n,s,o),o.delete(u)),Xa(e,i,d)}}(e,t,o,i,$i,n,r);else{var l=n?n(Tr(e,o),s,o+"",e,t,r):a;l===a&&(l=s),Xa(e,o,l)}}),Io)}function ji(e,t){var i=e.length;if(i)return gr(t+=t<0?i:0,i)?e[t]:a}function Ui(e,t,a){t=t.length?Ft(t,(function(e){return Us(e)?function(t){return wi(t,1===e.length?e[0]:e)}:e})):[al];var i=-1;t=Ft(t,Jt(or()));var n=Pi(e,(function(e,a,n){var r=Ft(t,(function(t){return t(e)}));return{criteria:r,index:++i,value:e}}));return function(e,t){var a=e.length;for(e.sort(t);a--;)e[a]=e[a].value;return e}(n,(function(e,t){return function(e,t,a){for(var i=-1,n=e.criteria,r=t.criteria,s=n.length,o=a.length;++i<s;){var l=Nn(n[i],r[i]);if(l)return i>=o?l:l*("desc"==a[i]?-1:1)}return e.index-t.index}(e,t,a)}))}function zi(e,t,a){for(var i=-1,n=t.length,r={};++i<n;){var s=t[i],o=wi(e,s);a(o,s)&&Ki(r,bn(s,e),o)}return r}function Wi(e,t,a,i){var n=i?jt:$t,r=-1,s=t.length,o=e;for(e===t&&(t=Mn(t)),a&&(o=Ft(e,Jt(a)));++r<s;)for(var l=0,u=t[r],c=a?a(u):u;(l=n(o,c,l,i))>-1;)o!==e&&qe.call(o,l,1),qe.call(e,l,1);return e}function Hi(e,t){for(var a=e?t.length:0,i=a-1;a--;){var n=t[a];if(a==i||n!==r){var r=n;gr(n)?qe.call(e,n,1):cn(e,n)}}return e}function Yi(e,t){return e+ft(_a()*(t-e+1))}function Gi(e,t){var a="";if(!e||t<1||t>c)return a;do{t%2&&(a+=e),(t=ft(t/2))&&(e+=e)}while(t);return a}function qi(e,t){return Cr(Nr(e,t,al),e+"")}function Zi(e){return Za(Bo(e))}function Ji(e,t){var a=Bo(e);return Er(a,ri(t,0,a.length))}function Ki(e,t,i,n){if(!Xs(e))return e;for(var r=-1,s=(t=bn(t,e)).length,o=s-1,l=e;null!=l&&++r<s;){var u=Lr(t[r]),c=i;if("__proto__"===u||"constructor"===u||"prototype"===u)return e;if(r!=o){var d=l[u];(c=n?n(d,u,l):a)===a&&(c=Xs(d)?d:gr(t[r+1])?[]:{})}Qa(l,u,c),l=l[u]}return e}var Xi=Ma?function(e,t){return Ma.set(e,t),e}:al,Qi=tt?function(e,t){return tt(e,"toString",{configurable:!0,enumerable:!1,value:Qo(t),writable:!0})}:al;function en(e){return Er(Bo(e))}function tn(e,t,a){var i=-1,n=e.length;t<0&&(t=-t>n?0:n+t),(a=a>n?n:a)<0&&(a+=n),n=t>a?0:a-t>>>0,t>>>=0;for(var r=ne(n);++i<n;)r[i]=e[i+t];return r}function an(e,t){var a;return ci(e,(function(e,i,n){return!(a=t(e,i,n))})),!!a}function nn(e,t,a){var i=0,n=null==e?i:e.length;if("number"==typeof t&&t==t&&n<=2147483647){for(;i<n;){var r=i+n>>>1,s=e[r];null!==s&&!so(s)&&(a?s<=t:s<t)?i=r+1:n=r}return n}return rn(e,t,al,a)}function rn(e,t,i,n){var r=0,s=null==e?0:e.length;if(0===s)return 0;for(var o=(t=i(t))!=t,l=null===t,u=so(t),c=t===a;r<s;){var d=ft((r+s)/2),p=i(e[d]),h=p!==a,f=null===p,m=p==p,y=so(p);if(o)var g=n||m;else g=c?m&&(n||h):l?m&&h&&(n||!f):u?m&&h&&!f&&(n||!y):!f&&!y&&(n?p<=t:p<t);g?r=d+1:s=d}return ga(s,4294967294)}function sn(e,t){for(var a=-1,i=e.length,n=0,r=[];++a<i;){var s=e[a],o=t?t(s):s;if(!a||!Os(o,l)){var l=o;r[n++]=0===s?0:s}}return r}function on(e){return"number"==typeof e?e:so(e)?d:+e}function ln(e){if("string"==typeof e)return e;if(Us(e))return Ft(e,ln)+"";if(so(e))return Pa?Pa.call(e):"";var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}function un(e,t,a){var i=-1,n=Ct,r=e.length,s=!0,o=[],l=o;if(a)s=!1,n=It;else if(r>=200){var u=t?null:qn(e);if(u)return la(u);s=!1,n=Xt,l=new Ya}else l=t?[]:o;e:for(;++i<r;){var c=e[i],d=t?t(c):c;if(c=a||0!==c?c:0,s&&d==d){for(var p=l.length;p--;)if(l[p]===d)continue e;t&&l.push(d),o.push(c)}else n(l,d,a)||(l!==o&&l.push(d),o.push(c))}return o}function cn(e,t){return null==(e=xr(e,t=bn(t,e)))||delete e[Lr(qr(t))]}function dn(e,t,a,i){return Ki(e,t,a(wi(e,t)),i)}function pn(e,t,a,i){for(var n=e.length,r=i?n:-1;(i?r--:++r<n)&&t(e[r],r,e););return a?tn(e,i?0:r,i?r+1:n):tn(e,i?r+1:0,i?n:r)}function hn(e,t){var a=e;return a instanceof Ua&&(a=a.value()),Dt(t,(function(e,t){return t.func.apply(t.thisArg,Et([e],t.args))}),a)}function fn(e,t,a){var i=e.length;if(i<2)return i?un(e[0]):[];for(var n=-1,r=ne(i);++n<i;)for(var s=e[n],o=-1;++o<i;)o!=n&&(r[n]=ui(r[n]||s,e[o],t,a));return un(mi(r,1),t,a)}function mn(e,t,i){for(var n=-1,r=e.length,s=t.length,o={};++n<r;){var l=n<s?t[n]:a;i(o,e[n],l)}return o}function yn(e){return Hs(e)?e:[]}function gn(e){return"function"==typeof e?e:al}function bn(e,t){return Us(e)?e:vr(e,t)?[e]:Dr(go(e))}var vn=qi;function _n(e,t,i){var n=e.length;return i=i===a?n:i,!t&&i>=n?e:tn(e,t,i)}var wn=ot||function(e){return pt.clearTimeout(e)};function An(e,t){if(t)return e.slice();var a=e.length,i=We?We(a):new e.constructor(a);return e.copy(i),i}function kn(e){var t=new e.constructor(e.byteLength);return new ze(t).set(new ze(e)),t}function Sn(e,t){var a=t?kn(e.buffer):e.buffer;return new e.constructor(a,e.byteOffset,e.length)}function Nn(e,t){if(e!==t){var i=e!==a,n=null===e,r=e==e,s=so(e),o=t!==a,l=null===t,u=t==t,c=so(t);if(!l&&!c&&!s&&e>t||s&&o&&u&&!l&&!c||n&&o&&u||!i&&u||!r)return 1;if(!n&&!s&&!c&&e<t||c&&i&&r&&!n&&!s||l&&i&&r||!o&&r||!u)return-1}return 0}function xn(e,t,a,i){for(var n=-1,r=e.length,s=a.length,o=-1,l=t.length,u=ya(r-s,0),c=ne(l+u),d=!i;++o<l;)c[o]=t[o];for(;++n<s;)(d||n<r)&&(c[a[n]]=e[n]);for(;u--;)c[o++]=e[n++];return c}function Tn(e,t,a,i){for(var n=-1,r=e.length,s=-1,o=a.length,l=-1,u=t.length,c=ya(r-o,0),d=ne(c+u),p=!i;++n<c;)d[n]=e[n];for(var h=n;++l<u;)d[h+l]=t[l];for(;++s<o;)(p||n<r)&&(d[h+a[s]]=e[n++]);return d}function Mn(e,t){var a=-1,i=e.length;for(t||(t=ne(i));++a<i;)t[a]=e[a];return t}function Vn(e,t,i,n){var r=!i;i||(i={});for(var s=-1,o=t.length;++s<o;){var l=t[s],u=n?n(i[l],e[l],l,i,e):a;u===a&&(u=e[l]),r?ii(i,l,u):Qa(i,l,u)}return i}function Cn(e,t){return function(a,i){var n=Us(a)?Nt:ti,r=t?t():{};return n(a,e,or(i,2),r)}}function In(e){return qi((function(t,i){var n=-1,r=i.length,s=r>1?i[r-1]:a,o=r>2?i[2]:a;for(s=e.length>3&&"function"==typeof s?(r--,s):a,o&&br(i[0],i[1],o)&&(s=r<3?a:s,r=1),t=Ne(t);++n<r;){var l=i[n];l&&e(t,l,n,s)}return t}))}function Fn(e,t){return function(a,i){if(null==a)return a;if(!Ws(a))return e(a,i);for(var n=a.length,r=t?n:-1,s=Ne(a);(t?r--:++r<n)&&!1!==i(s[r],r,s););return a}}function En(e){return function(t,a,i){for(var n=-1,r=Ne(t),s=i(t),o=s.length;o--;){var l=s[e?o:++n];if(!1===a(r[l],l,r))break}return t}}function Dn(e){return function(t){var i=na(t=go(t))?da(t):a,n=i?i[0]:t.charAt(0),r=i?_n(i,1).join(""):t.slice(1);return n[e]()+r}}function Ln(e){return function(t){return Dt(Jo(Uo(t).replace(Ke,"")),e,"")}}function Rn(e){return function(){var t=arguments;switch(t.length){case 0:return new e;case 1:return new e(t[0]);case 2:return new e(t[0],t[1]);case 3:return new e(t[0],t[1],t[2]);case 4:return new e(t[0],t[1],t[2],t[3]);case 5:return new e(t[0],t[1],t[2],t[3],t[4]);case 6:return new e(t[0],t[1],t[2],t[3],t[4],t[5]);case 7:return new e(t[0],t[1],t[2],t[3],t[4],t[5],t[6])}var a=Ba(e.prototype),i=e.apply(a,t);return Xs(i)?i:a}}function Pn(e){return function(t,i,n){var r=Ne(t);if(!Ws(t)){var s=or(i,3);t=Co(t),i=function(e){return s(r[e],e,r)}}var o=e(t,i,n);return o>-1?r[s?t[o]:o]:a}}function On(e){return tr((function(t){var n=t.length,r=n,s=ja.prototype.thru;for(e&&t.reverse();r--;){var o=t[r];if("function"!=typeof o)throw new Me(i);if(s&&!l&&"wrapper"==rr(o))var l=new ja([],!0)}for(r=l?r:n;++r<n;){var u=rr(o=t[r]),c="wrapper"==u?nr(o):a;l=c&&_r(c[0])&&424==c[1]&&!c[4].length&&1==c[9]?l[rr(c[0])].apply(l,c[3]):1==o.length&&_r(o)?l[u]():l.thru(o)}return function(){var e=arguments,a=e[0];if(l&&1==e.length&&Us(a))return l.plant(a).value();for(var i=0,r=n?t[i].apply(this,e):a;++i<n;)r=t[i].call(this,r);return r}}))}function Bn(e,t,i,n,r,s,l,u,c,d){var p=t&o,h=1&t,f=2&t,m=24&t,y=512&t,g=f?a:Rn(e);return function o(){for(var b=arguments.length,v=ne(b),_=b;_--;)v[_]=arguments[_];if(m)var w=sr(o),A=function(e,t){for(var a=e.length,i=0;a--;)e[a]===t&&++i;return i}(v,w);if(n&&(v=xn(v,n,r,m)),s&&(v=Tn(v,s,l,m)),b-=A,m&&b<d){var k=oa(v,w);return Yn(e,t,Bn,o.placeholder,i,v,k,u,c,d-b)}var S=h?i:this,N=f?S[e]:e;return b=v.length,u?v=function(e,t){for(var i=e.length,n=ga(t.length,i),r=Mn(e);n--;){var s=t[n];e[n]=gr(s,i)?r[s]:a}return e}(v,u):y&&b>1&&v.reverse(),p&&c<b&&(v.length=c),this&&this!==pt&&this instanceof o&&(N=g||Rn(N)),N.apply(S,v)}}function $n(e,t){return function(a,i){return function(e,t,a,i){return bi(e,(function(e,n,r){t(i,a(e),n,r)})),i}(a,e,t(i),{})}}function jn(e,t){return function(i,n){var r;if(i===a&&n===a)return t;if(i!==a&&(r=i),n!==a){if(r===a)return n;"string"==typeof i||"string"==typeof n?(i=ln(i),n=ln(n)):(i=on(i),n=on(n)),r=e(i,n)}return r}}function Un(e){return tr((function(t){return t=Ft(t,Jt(or())),qi((function(a){var i=this;return e(t,(function(e){return St(e,i,a)}))}))}))}function zn(e,t){var i=(t=t===a?" ":ln(t)).length;if(i<2)return i?Gi(t,e):t;var n=Gi(t,ht(e/ca(t)));return na(t)?_n(da(n),0,e).join(""):n.slice(0,e)}function Wn(e){return function(t,i,n){return n&&"number"!=typeof n&&br(t,i,n)&&(i=n=a),t=po(t),i===a?(i=t,t=0):i=po(i),function(e,t,a,i){for(var n=-1,r=ya(ht((t-e)/(a||1)),0),s=ne(r);r--;)s[i?r:++n]=e,e+=a;return s}(t,i,n=n===a?t<i?1:-1:po(n),e)}}function Hn(e){return function(t,a){return"string"==typeof t&&"string"==typeof a||(t=mo(t),a=mo(a)),e(t,a)}}function Yn(e,t,i,n,r,o,l,u,c,d){var p=8&t;t|=p?s:64,4&(t&=~(p?64:s))||(t&=-4);var h=[e,t,r,p?o:a,p?l:a,p?a:o,p?a:l,u,c,d],f=i.apply(a,h);return _r(e)&&Mr(f,h),f.placeholder=n,Ir(f,e,t)}function Gn(e){var t=Se[e];return function(e,a){if(e=mo(e),(a=null==a?0:ga(ho(a),292))&&Pt(e)){var i=(go(e)+"e").split("e");return+((i=(go(t(i[0]+"e"+(+i[1]+a)))+"e").split("e"))[0]+"e"+(+i[1]-a))}return t(e)}}var qn=Na&&1/la(new Na([,-0]))[1]==u?function(e){return new Na(e)}:ol;function Zn(e){return function(t){var a=hr(t);return a==w?ra(t):a==x?ua(t):function(e,t){return Ft(t,(function(t){return[t,e[t]]}))}(t,e(t))}}function Jn(e,t,n,u,c,d,p,h){var f=2&t;if(!f&&"function"!=typeof e)throw new Me(i);var m=u?u.length:0;if(m||(t&=-97,u=c=a),p=p===a?p:ya(ho(p),0),h=h===a?h:ho(h),m-=c?c.length:0,64&t){var y=u,g=c;u=c=a}var b=f?a:nr(e),v=[e,t,n,u,c,y,g,d,p,h];if(b&&function(e,t){var a=e[1],i=t[1],n=a|i,s=n<131,u=i==o&&8==a||i==o&&a==l&&e[7].length<=t[8]||384==i&&t[7].length<=t[8]&&8==a;if(!s&&!u)return e;1&i&&(e[2]=t[2],n|=1&a?0:4);var c=t[3];if(c){var d=e[3];e[3]=d?xn(d,c,t[4]):c,e[4]=d?oa(e[3],r):t[4]}(c=t[5])&&(d=e[5],e[5]=d?Tn(d,c,t[6]):c,e[6]=d?oa(e[5],r):t[6]),(c=t[7])&&(e[7]=c),i&o&&(e[8]=null==e[8]?t[8]:ga(e[8],t[8])),null==e[9]&&(e[9]=t[9]),e[0]=t[0],e[1]=n}(v,b),e=v[0],t=v[1],n=v[2],u=v[3],c=v[4],!(h=v[9]=v[9]===a?f?0:e.length:ya(v[9]-m,0))&&24&t&&(t&=-25),t&&1!=t)_=8==t||16==t?function(e,t,i){var n=Rn(e);return function r(){for(var s=arguments.length,o=ne(s),l=s,u=sr(r);l--;)o[l]=arguments[l];var c=s<3&&o[0]!==u&&o[s-1]!==u?[]:oa(o,u);return(s-=c.length)<i?Yn(e,t,Bn,r.placeholder,a,o,c,a,a,i-s):St(this&&this!==pt&&this instanceof r?n:e,this,o)}}(e,t,h):t!=s&&33!=t||c.length?Bn.apply(a,v):function(e,t,a,i){var n=1&t,r=Rn(e);return function t(){for(var s=-1,o=arguments.length,l=-1,u=i.length,c=ne(u+o),d=this&&this!==pt&&this instanceof t?r:e;++l<u;)c[l]=i[l];for(;o--;)c[l++]=arguments[++s];return St(d,n?a:this,c)}}(e,t,n,u);else var _=function(e,t,a){var i=1&t,n=Rn(e);return function t(){return(this&&this!==pt&&this instanceof t?n:e).apply(i?a:this,arguments)}}(e,t,n);return Ir((b?Xi:Mr)(_,v),e,t)}function Kn(e,t,i,n){return e===a||Os(e,Ie[i])&&!De.call(n,i)?t:e}function Xn(e,t,i,n,r,s){return Xs(e)&&Xs(t)&&(s.set(t,e),$i(e,t,a,Xn,s),s.delete(t)),e}function Qn(e){return ao(e)?a:e}function er(e,t,i,n,r,s){var o=1&i,l=e.length,u=t.length;if(l!=u&&!(o&&u>l))return!1;var c=s.get(e),d=s.get(t);if(c&&d)return c==t&&d==e;var p=-1,h=!0,f=2&i?new Ya:a;for(s.set(e,t),s.set(t,e);++p<l;){var m=e[p],y=t[p];if(n)var g=o?n(y,m,p,t,e,s):n(m,y,p,e,t,s);if(g!==a){if(g)continue;h=!1;break}if(f){if(!Rt(t,(function(e,t){if(!Xt(f,t)&&(m===e||r(m,e,i,n,s)))return f.push(t)}))){h=!1;break}}else if(m!==y&&!r(m,y,i,n,s)){h=!1;break}}return s.delete(e),s.delete(t),h}function tr(e){return Cr(Nr(e,a,zr),e+"")}function ar(e){return Ai(e,Co,dr)}function ir(e){return Ai(e,Io,pr)}var nr=Ma?function(e){return Ma.get(e)}:ol;function rr(e){for(var t=e.name+"",a=Va[t],i=De.call(Va,t)?a.length:0;i--;){var n=a[i],r=n.func;if(null==r||r==e)return n.name}return t}function sr(e){return(De.call(Oa,"placeholder")?Oa:e).placeholder}function or(){var e=Oa.iteratee||il;return e=e===il?Ei:e,arguments.length?e(arguments[0],arguments[1]):e}function lr(e,t){var a,i,n=e.__data__;return("string"==(i=typeof(a=t))||"number"==i||"symbol"==i||"boolean"==i?"__proto__"!==a:null===a)?n["string"==typeof t?"string":"hash"]:n.map}function ur(e){for(var t=Co(e),a=t.length;a--;){var i=t[a],n=e[i];t[a]=[i,n,kr(n)]}return t}function cr(e,t){var i=function(e,t){return null==e?a:e[t]}(e,t);return Fi(i)?i:a}var dr=yt?function(e){return null==e?[]:(e=Ne(e),Vt(yt(e),(function(t){return Ge.call(e,t)})))}:fl,pr=yt?function(e){for(var t=[];e;)Et(t,dr(e)),e=He(e);return t}:fl,hr=ki;function fr(e,t,a){for(var i=-1,n=(t=bn(t,e)).length,r=!1;++i<n;){var s=Lr(t[i]);if(!(r=null!=e&&a(e,s)))break;e=e[s]}return r||++i!=n?r:!!(n=null==e?0:e.length)&&Ks(n)&&gr(s,n)&&(Us(e)||js(e))}function mr(e){return"function"!=typeof e.constructor||Ar(e)?{}:Ba(He(e))}function yr(e){return Us(e)||js(e)||!!(Ze&&e&&e[Ze])}function gr(e,t){var a=typeof e;return!!(t=null==t?c:t)&&("number"==a||"symbol"!=a&&ge.test(e))&&e>-1&&e%1==0&&e<t}function br(e,t,a){if(!Xs(a))return!1;var i=typeof t;return!!("number"==i?Ws(a)&&gr(t,a.length):"string"==i&&t in a)&&Os(a[t],e)}function vr(e,t){if(Us(e))return!1;var a=typeof e;return!("number"!=a&&"symbol"!=a&&"boolean"!=a&&null!=e&&!so(e))||Q.test(e)||!X.test(e)||null!=t&&e in Ne(t)}function _r(e){var t=rr(e),a=Oa[t];if("function"!=typeof a||!(t in Ua.prototype))return!1;if(e===a)return!0;var i=nr(a);return!!i&&e===i[0]}(Aa&&hr(new Aa(new ArrayBuffer(1)))!=I||ka&&hr(new ka)!=w||Sa&&hr(Sa.resolve())!=S||Na&&hr(new Na)!=x||xa&&hr(new xa)!=V)&&(hr=function(e){var t=ki(e),i=t==k?e.constructor:a,n=i?Rr(i):"";if(n)switch(n){case Ca:return I;case Ia:return w;case Fa:return S;case Ea:return x;case Da:return V}return t});var wr=Fe?Zs:ml;function Ar(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||Ie)}function kr(e){return e==e&&!Xs(e)}function Sr(e,t){return function(i){return null!=i&&i[e]===t&&(t!==a||e in Ne(i))}}function Nr(e,t,i){return t=ya(t===a?e.length-1:t,0),function(){for(var a=arguments,n=-1,r=ya(a.length-t,0),s=ne(r);++n<r;)s[n]=a[t+n];n=-1;for(var o=ne(t+1);++n<t;)o[n]=a[n];return o[t]=i(s),St(e,this,o)}}function xr(e,t){return t.length<2?e:wi(e,tn(t,0,-1))}function Tr(e,t){if(("constructor"!==t||"function"!=typeof e[t])&&"__proto__"!=t)return e[t]}var Mr=Fr(Xi),Vr=dt||function(e,t){return pt.setTimeout(e,t)},Cr=Fr(Qi);function Ir(e,t,a){var i=t+"";return Cr(e,function(e,t){var a=t.length;if(!a)return e;var i=a-1;return t[i]=(a>1?"& ":"")+t[i],t=t.join(a>2?", ":" "),e.replace(re,"{\n/* [wrapped with "+t+"] */\n")}(i,function(e,t){return xt(h,(function(a){var i="_."+a[0];t&a[1]&&!Ct(e,i)&&e.push(i)})),e.sort()}(function(e){var t=e.match(se);return t?t[1].split(oe):[]}(i),a)))}function Fr(e){var t=0,i=0;return function(){var n=ba(),r=16-(n-i);if(i=n,r>0){if(++t>=800)return arguments[0]}else t=0;return e.apply(a,arguments)}}function Er(e,t){var i=-1,n=e.length,r=n-1;for(t=t===a?n:t;++i<t;){var s=Yi(i,r),o=e[s];e[s]=e[i],e[i]=o}return e.length=t,e}var Dr=function(e){var t=Fs(e,(function(e){return 500===a.size&&a.clear(),e})),a=t.cache;return t}((function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(ee,(function(e,a,i,n){t.push(i?n.replace(ce,"$1"):a||e)})),t}));function Lr(e){if("string"==typeof e||so(e))return e;var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}function Rr(e){if(null!=e){try{return Ee.call(e)}catch(e){}try{return e+""}catch(e){}}return""}function Pr(e){if(e instanceof Ua)return e.clone();var t=new ja(e.__wrapped__,e.__chain__);return t.__actions__=Mn(e.__actions__),t.__index__=e.__index__,t.__values__=e.__values__,t}var Or=qi((function(e,t){return Hs(e)?ui(e,mi(t,1,Hs,!0)):[]})),Br=qi((function(e,t){var i=qr(t);return Hs(i)&&(i=a),Hs(e)?ui(e,mi(t,1,Hs,!0),or(i,2)):[]})),$r=qi((function(e,t){var i=qr(t);return Hs(i)&&(i=a),Hs(e)?ui(e,mi(t,1,Hs,!0),a,i):[]}));function jr(e,t,a){var i=null==e?0:e.length;if(!i)return-1;var n=null==a?0:ho(a);return n<0&&(n=ya(i+n,0)),Bt(e,or(t,3),n)}function Ur(e,t,i){var n=null==e?0:e.length;if(!n)return-1;var r=n-1;return i!==a&&(r=ho(i),r=i<0?ya(n+r,0):ga(r,n-1)),Bt(e,or(t,3),r,!0)}function zr(e){return null!=e&&e.length?mi(e,1):[]}function Wr(e){return e&&e.length?e[0]:a}var Hr=qi((function(e){var t=Ft(e,yn);return t.length&&t[0]===e[0]?Ti(t):[]})),Yr=qi((function(e){var t=qr(e),i=Ft(e,yn);return t===qr(i)?t=a:i.pop(),i.length&&i[0]===e[0]?Ti(i,or(t,2)):[]})),Gr=qi((function(e){var t=qr(e),i=Ft(e,yn);return(t="function"==typeof t?t:a)&&i.pop(),i.length&&i[0]===e[0]?Ti(i,a,t):[]}));function qr(e){var t=null==e?0:e.length;return t?e[t-1]:a}var Zr=qi(Jr);function Jr(e,t){return e&&e.length&&t&&t.length?Wi(e,t):e}var Kr=tr((function(e,t){var a=null==e?0:e.length,i=ni(e,t);return Hi(e,Ft(t,(function(e){return gr(e,a)?+e:e})).sort(Nn)),i}));function Xr(e){return null==e?e:wa.call(e)}var Qr=qi((function(e){return un(mi(e,1,Hs,!0))})),es=qi((function(e){var t=qr(e);return Hs(t)&&(t=a),un(mi(e,1,Hs,!0),or(t,2))})),ts=qi((function(e){var t=qr(e);return t="function"==typeof t?t:a,un(mi(e,1,Hs,!0),a,t)}));function as(e){if(!e||!e.length)return[];var t=0;return e=Vt(e,(function(e){if(Hs(e))return t=ya(e.length,t),!0})),qt(t,(function(t){return Ft(e,Wt(t))}))}function is(e,t){if(!e||!e.length)return[];var i=as(e);return null==t?i:Ft(i,(function(e){return St(t,a,e)}))}var ns=qi((function(e,t){return Hs(e)?ui(e,t):[]})),rs=qi((function(e){return fn(Vt(e,Hs))})),ss=qi((function(e){var t=qr(e);return Hs(t)&&(t=a),fn(Vt(e,Hs),or(t,2))})),os=qi((function(e){var t=qr(e);return t="function"==typeof t?t:a,fn(Vt(e,Hs),a,t)})),ls=qi(as),us=qi((function(e){var t=e.length,i=t>1?e[t-1]:a;return i="function"==typeof i?(e.pop(),i):a,is(e,i)}));function cs(e){var t=Oa(e);return t.__chain__=!0,t}function ds(e,t){return t(e)}var ps=tr((function(e){var t=e.length,i=t?e[0]:0,n=this.__wrapped__,r=function(t){return ni(t,e)};return!(t>1||this.__actions__.length)&&n instanceof Ua&&gr(i)?((n=n.slice(i,+i+(t?1:0))).__actions__.push({func:ds,args:[r],thisArg:a}),new ja(n,this.__chain__).thru((function(e){return t&&!e.length&&e.push(a),e}))):this.thru(r)})),hs=Cn((function(e,t,a){De.call(e,a)?++e[a]:ii(e,a,1)})),fs=Pn(jr),ms=Pn(Ur);function ys(e,t){return(Us(e)?xt:ci)(e,or(t,3))}function gs(e,t){return(Us(e)?Tt:di)(e,or(t,3))}var bs=Cn((function(e,t,a){De.call(e,a)?e[a].push(t):ii(e,a,[t])})),vs=qi((function(e,t,a){var i=-1,n="function"==typeof t,r=Ws(e)?ne(e.length):[];return ci(e,(function(e){r[++i]=n?St(t,e,a):Mi(e,t,a)})),r})),_s=Cn((function(e,t,a){ii(e,a,t)}));function ws(e,t){return(Us(e)?Ft:Pi)(e,or(t,3))}var As=Cn((function(e,t,a){e[a?0:1].push(t)}),(function(){return[[],[]]})),ks=qi((function(e,t){if(null==e)return[];var a=t.length;return a>1&&br(e,t[0],t[1])?t=[]:a>2&&br(t[0],t[1],t[2])&&(t=[t[0]]),Ui(e,mi(t,1),[])})),Ss=ct||function(){return pt.Date.now()};function Ns(e,t,i){return t=i?a:t,t=e&&null==t?e.length:t,Jn(e,o,a,a,a,a,t)}function xs(e,t){var n;if("function"!=typeof t)throw new Me(i);return e=ho(e),function(){return--e>0&&(n=t.apply(this,arguments)),e<=1&&(t=a),n}}var Ts=qi((function(e,t,a){var i=1;if(a.length){var n=oa(a,sr(Ts));i|=s}return Jn(e,i,t,a,n)})),Ms=qi((function(e,t,a){var i=3;if(a.length){var n=oa(a,sr(Ms));i|=s}return Jn(t,i,e,a,n)}));function Vs(e,t,n){var r,s,o,l,u,c,d=0,p=!1,h=!1,f=!0;if("function"!=typeof e)throw new Me(i);function m(t){var i=r,n=s;return r=s=a,d=t,l=e.apply(n,i)}function y(e){var i=e-c;return c===a||i>=t||i<0||h&&e-d>=o}function g(){var e=Ss();if(y(e))return b(e);u=Vr(g,function(e){var a=t-(e-c);return h?ga(a,o-(e-d)):a}(e))}function b(e){return u=a,f&&r?m(e):(r=s=a,l)}function v(){var e=Ss(),i=y(e);if(r=arguments,s=this,c=e,i){if(u===a)return function(e){return d=e,u=Vr(g,t),p?m(e):l}(c);if(h)return wn(u),u=Vr(g,t),m(c)}return u===a&&(u=Vr(g,t)),l}return t=mo(t)||0,Xs(n)&&(p=!!n.leading,o=(h="maxWait"in n)?ya(mo(n.maxWait)||0,t):o,f="trailing"in n?!!n.trailing:f),v.cancel=function(){u!==a&&wn(u),d=0,r=c=s=u=a},v.flush=function(){return u===a?l:b(Ss())},v}var Cs=qi((function(e,t){return li(e,1,t)})),Is=qi((function(e,t,a){return li(e,mo(t)||0,a)}));function Fs(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new Me(i);var a=function(){var i=arguments,n=t?t.apply(this,i):i[0],r=a.cache;if(r.has(n))return r.get(n);var s=e.apply(this,i);return a.cache=r.set(n,s)||r,s};return a.cache=new(Fs.Cache||Ha),a}function Es(e){if("function"!=typeof e)throw new Me(i);return function(){var t=arguments;switch(t.length){case 0:return!e.call(this);case 1:return!e.call(this,t[0]);case 2:return!e.call(this,t[0],t[1]);case 3:return!e.call(this,t[0],t[1],t[2])}return!e.apply(this,t)}}Fs.Cache=Ha;var Ds=vn((function(e,t){var a=(t=1==t.length&&Us(t[0])?Ft(t[0],Jt(or())):Ft(mi(t,1),Jt(or()))).length;return qi((function(i){for(var n=-1,r=ga(i.length,a);++n<r;)i[n]=t[n].call(this,i[n]);return St(e,this,i)}))})),Ls=qi((function(e,t){var i=oa(t,sr(Ls));return Jn(e,s,a,t,i)})),Rs=qi((function(e,t){var i=oa(t,sr(Rs));return Jn(e,64,a,t,i)})),Ps=tr((function(e,t){return Jn(e,l,a,a,a,t)}));function Os(e,t){return e===t||e!=e&&t!=t}var Bs=Hn(Si),$s=Hn((function(e,t){return e>=t})),js=Vi(function(){return arguments}())?Vi:function(e){return Qs(e)&&De.call(e,"callee")&&!Ge.call(e,"callee")},Us=ne.isArray,zs=bt?Jt(bt):function(e){return Qs(e)&&ki(e)==C};function Ws(e){return null!=e&&Ks(e.length)&&!Zs(e)}function Hs(e){return Qs(e)&&Ws(e)}var Ys=gt||ml,Gs=vt?Jt(vt):function(e){return Qs(e)&&ki(e)==g};function qs(e){if(!Qs(e))return!1;var t=ki(e);return t==b||"[object DOMException]"==t||"string"==typeof e.message&&"string"==typeof e.name&&!ao(e)}function Zs(e){if(!Xs(e))return!1;var t=ki(e);return t==v||t==_||"[object AsyncFunction]"==t||"[object Proxy]"==t}function Js(e){return"number"==typeof e&&e==ho(e)}function Ks(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=c}function Xs(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}function Qs(e){return null!=e&&"object"==typeof e}var eo=_t?Jt(_t):function(e){return Qs(e)&&hr(e)==w};function to(e){return"number"==typeof e||Qs(e)&&ki(e)==A}function ao(e){if(!Qs(e)||ki(e)!=k)return!1;var t=He(e);if(null===t)return!0;var a=De.call(t,"constructor")&&t.constructor;return"function"==typeof a&&a instanceof a&&Ee.call(a)==Oe}var io=wt?Jt(wt):function(e){return Qs(e)&&ki(e)==N},no=At?Jt(At):function(e){return Qs(e)&&hr(e)==x};function ro(e){return"string"==typeof e||!Us(e)&&Qs(e)&&ki(e)==T}function so(e){return"symbol"==typeof e||Qs(e)&&ki(e)==M}var oo=kt?Jt(kt):function(e){return Qs(e)&&Ks(e.length)&&!!rt[ki(e)]},lo=Hn(Ri),uo=Hn((function(e,t){return e<=t}));function co(e){if(!e)return[];if(Ws(e))return ro(e)?da(e):Mn(e);if(Je&&e[Je])return function(e){for(var t,a=[];!(t=e.next()).done;)a.push(t.value);return a}(e[Je]());var t=hr(e);return(t==w?ra:t==x?la:Bo)(e)}function po(e){return e?(e=mo(e))===u||e===-1/0?17976931348623157e292*(e<0?-1:1):e==e?e:0:0===e?e:0}function ho(e){var t=po(e),a=t%1;return t==t?a?t-a:t:0}function fo(e){return e?ri(ho(e),0,p):0}function mo(e){if("number"==typeof e)return e;if(so(e))return d;if(Xs(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=Xs(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=Zt(e);var a=fe.test(e);return a||ye.test(e)?ut(e.slice(2),a?2:8):he.test(e)?d:+e}function yo(e){return Vn(e,Io(e))}function go(e){return null==e?"":ln(e)}var bo=In((function(e,t){if(Ar(t)||Ws(t))Vn(t,Co(t),e);else for(var a in t)De.call(t,a)&&Qa(e,a,t[a])})),vo=In((function(e,t){Vn(t,Io(t),e)})),_o=In((function(e,t,a,i){Vn(t,Io(t),e,i)})),wo=In((function(e,t,a,i){Vn(t,Co(t),e,i)})),Ao=tr(ni),ko=qi((function(e,t){e=Ne(e);var i=-1,n=t.length,r=n>2?t[2]:a;for(r&&br(t[0],t[1],r)&&(n=1);++i<n;)for(var s=t[i],o=Io(s),l=-1,u=o.length;++l<u;){var c=o[l],d=e[c];(d===a||Os(d,Ie[c])&&!De.call(e,c))&&(e[c]=s[c])}return e})),So=qi((function(e){return e.push(a,Xn),St(Eo,a,e)}));function No(e,t,i){var n=null==e?a:wi(e,t);return n===a?i:n}function xo(e,t){return null!=e&&fr(e,t,xi)}var To=$n((function(e,t,a){null!=t&&"function"!=typeof t.toString&&(t=Pe.call(t)),e[t]=a}),Qo(al)),Mo=$n((function(e,t,a){null!=t&&"function"!=typeof t.toString&&(t=Pe.call(t)),De.call(e,t)?e[t].push(a):e[t]=[a]}),or),Vo=qi(Mi);function Co(e){return Ws(e)?qa(e):Di(e)}function Io(e){return Ws(e)?qa(e,!0):Li(e)}var Fo=In((function(e,t,a){$i(e,t,a)})),Eo=In((function(e,t,a,i){$i(e,t,a,i)})),Do=tr((function(e,t){var a={};if(null==e)return a;var i=!1;t=Ft(t,(function(t){return t=bn(t,e),i||(i=t.length>1),t})),Vn(e,ir(e),a),i&&(a=si(a,7,Qn));for(var n=t.length;n--;)cn(a,t[n]);return a})),Lo=tr((function(e,t){return null==e?{}:function(e,t){return zi(e,t,(function(t,a){return xo(e,a)}))}(e,t)}));function Ro(e,t){if(null==e)return{};var a=Ft(ir(e),(function(e){return[e]}));return t=or(t),zi(e,a,(function(e,a){return t(e,a[0])}))}var Po=Zn(Co),Oo=Zn(Io);function Bo(e){return null==e?[]:Kt(e,Co(e))}var $o=Ln((function(e,t,a){return t=t.toLowerCase(),e+(a?jo(t):t)}));function jo(e){return Zo(go(e).toLowerCase())}function Uo(e){return(e=go(e))&&e.replace(be,ta).replace(Xe,"")}var zo=Ln((function(e,t,a){return e+(a?"-":"")+t.toLowerCase()})),Wo=Ln((function(e,t,a){return e+(a?" ":"")+t.toLowerCase()})),Ho=Dn("toLowerCase"),Yo=Ln((function(e,t,a){return e+(a?"_":"")+t.toLowerCase()})),Go=Ln((function(e,t,a){return e+(a?" ":"")+Zo(t)})),qo=Ln((function(e,t,a){return e+(a?" ":"")+t.toUpperCase()})),Zo=Dn("toUpperCase");function Jo(e,t,i){return e=go(e),(t=i?a:t)===a?function(e){return at.test(e)}(e)?function(e){return e.match(et)||[]}(e):function(e){return e.match(le)||[]}(e):e.match(t)||[]}var Ko=qi((function(e,t){try{return St(e,a,t)}catch(e){return qs(e)?e:new Ae(e)}})),Xo=tr((function(e,t){return xt(t,(function(t){t=Lr(t),ii(e,t,Ts(e[t],e))})),e}));function Qo(e){return function(){return e}}var el=On(),tl=On(!0);function al(e){return e}function il(e){return Ei("function"==typeof e?e:si(e,1))}var nl=qi((function(e,t){return function(a){return Mi(a,e,t)}})),rl=qi((function(e,t){return function(a){return Mi(e,a,t)}}));function sl(e,t,a){var i=Co(t),n=_i(t,i);null!=a||Xs(t)&&(n.length||!i.length)||(a=t,t=e,e=this,n=_i(t,Co(t)));var r=!(Xs(a)&&"chain"in a&&!a.chain),s=Zs(e);return xt(n,(function(a){var i=t[a];e[a]=i,s&&(e.prototype[a]=function(){var t=this.__chain__;if(r||t){var a=e(this.__wrapped__);return(a.__actions__=Mn(this.__actions__)).push({func:i,args:arguments,thisArg:e}),a.__chain__=t,a}return i.apply(e,Et([this.value()],arguments))})})),e}function ol(){}var ll=Un(Ft),ul=Un(Mt),cl=Un(Rt);function dl(e){return vr(e)?Wt(Lr(e)):function(e){return function(t){return wi(t,e)}}(e)}var pl=Wn(),hl=Wn(!0);function fl(){return[]}function ml(){return!1}var yl,gl=jn((function(e,t){return e+t}),0),bl=Gn("ceil"),vl=jn((function(e,t){return e/t}),1),_l=Gn("floor"),wl=jn((function(e,t){return e*t}),1),Al=Gn("round"),kl=jn((function(e,t){return e-t}),0);return Oa.after=function(e,t){if("function"!=typeof t)throw new Me(i);return e=ho(e),function(){if(--e<1)return t.apply(this,arguments)}},Oa.ary=Ns,Oa.assign=bo,Oa.assignIn=vo,Oa.assignInWith=_o,Oa.assignWith=wo,Oa.at=Ao,Oa.before=xs,Oa.bind=Ts,Oa.bindAll=Xo,Oa.bindKey=Ms,Oa.castArray=function(){if(!arguments.length)return[];var e=arguments[0];return Us(e)?e:[e]},Oa.chain=cs,Oa.chunk=function(e,t,i){t=(i?br(e,t,i):t===a)?1:ya(ho(t),0);var n=null==e?0:e.length;if(!n||t<1)return[];for(var r=0,s=0,o=ne(ht(n/t));r<n;)o[s++]=tn(e,r,r+=t);return o},Oa.compact=function(e){for(var t=-1,a=null==e?0:e.length,i=0,n=[];++t<a;){var r=e[t];r&&(n[i++]=r)}return n},Oa.concat=function(){var e=arguments.length;if(!e)return[];for(var t=ne(e-1),a=arguments[0],i=e;i--;)t[i-1]=arguments[i];return Et(Us(a)?Mn(a):[a],mi(t,1))},Oa.cond=function(e){var t=null==e?0:e.length,a=or();return e=t?Ft(e,(function(e){if("function"!=typeof e[1])throw new Me(i);return[a(e[0]),e[1]]})):[],qi((function(a){for(var i=-1;++i<t;){var n=e[i];if(St(n[0],this,a))return St(n[1],this,a)}}))},Oa.conforms=function(e){return function(e){var t=Co(e);return function(a){return oi(a,e,t)}}(si(e,1))},Oa.constant=Qo,Oa.countBy=hs,Oa.create=function(e,t){var a=Ba(e);return null==t?a:ai(a,t)},Oa.curry=function e(t,i,n){var r=Jn(t,8,a,a,a,a,a,i=n?a:i);return r.placeholder=e.placeholder,r},Oa.curryRight=function e(t,i,n){var r=Jn(t,16,a,a,a,a,a,i=n?a:i);return r.placeholder=e.placeholder,r},Oa.debounce=Vs,Oa.defaults=ko,Oa.defaultsDeep=So,Oa.defer=Cs,Oa.delay=Is,Oa.difference=Or,Oa.differenceBy=Br,Oa.differenceWith=$r,Oa.drop=function(e,t,i){var n=null==e?0:e.length;return n?tn(e,(t=i||t===a?1:ho(t))<0?0:t,n):[]},Oa.dropRight=function(e,t,i){var n=null==e?0:e.length;return n?tn(e,0,(t=n-(t=i||t===a?1:ho(t)))<0?0:t):[]},Oa.dropRightWhile=function(e,t){return e&&e.length?pn(e,or(t,3),!0,!0):[]},Oa.dropWhile=function(e,t){return e&&e.length?pn(e,or(t,3),!0):[]},Oa.fill=function(e,t,i,n){var r=null==e?0:e.length;return r?(i&&"number"!=typeof i&&br(e,t,i)&&(i=0,n=r),function(e,t,i,n){var r=e.length;for((i=ho(i))<0&&(i=-i>r?0:r+i),(n=n===a||n>r?r:ho(n))<0&&(n+=r),n=i>n?0:fo(n);i<n;)e[i++]=t;return e}(e,t,i,n)):[]},Oa.filter=function(e,t){return(Us(e)?Vt:fi)(e,or(t,3))},Oa.flatMap=function(e,t){return mi(ws(e,t),1)},Oa.flatMapDeep=function(e,t){return mi(ws(e,t),u)},Oa.flatMapDepth=function(e,t,i){return i=i===a?1:ho(i),mi(ws(e,t),i)},Oa.flatten=zr,Oa.flattenDeep=function(e){return null!=e&&e.length?mi(e,u):[]},Oa.flattenDepth=function(e,t){return null!=e&&e.length?mi(e,t=t===a?1:ho(t)):[]},Oa.flip=function(e){return Jn(e,512)},Oa.flow=el,Oa.flowRight=tl,Oa.fromPairs=function(e){for(var t=-1,a=null==e?0:e.length,i={};++t<a;){var n=e[t];i[n[0]]=n[1]}return i},Oa.functions=function(e){return null==e?[]:_i(e,Co(e))},Oa.functionsIn=function(e){return null==e?[]:_i(e,Io(e))},Oa.groupBy=bs,Oa.initial=function(e){return null!=e&&e.length?tn(e,0,-1):[]},Oa.intersection=Hr,Oa.intersectionBy=Yr,Oa.intersectionWith=Gr,Oa.invert=To,Oa.invertBy=Mo,Oa.invokeMap=vs,Oa.iteratee=il,Oa.keyBy=_s,Oa.keys=Co,Oa.keysIn=Io,Oa.map=ws,Oa.mapKeys=function(e,t){var a={};return t=or(t,3),bi(e,(function(e,i,n){ii(a,t(e,i,n),e)})),a},Oa.mapValues=function(e,t){var a={};return t=or(t,3),bi(e,(function(e,i,n){ii(a,i,t(e,i,n))})),a},Oa.matches=function(e){return Oi(si(e,1))},Oa.matchesProperty=function(e,t){return Bi(e,si(t,1))},Oa.memoize=Fs,Oa.merge=Fo,Oa.mergeWith=Eo,Oa.method=nl,Oa.methodOf=rl,Oa.mixin=sl,Oa.negate=Es,Oa.nthArg=function(e){return e=ho(e),qi((function(t){return ji(t,e)}))},Oa.omit=Do,Oa.omitBy=function(e,t){return Ro(e,Es(or(t)))},Oa.once=function(e){return xs(2,e)},Oa.orderBy=function(e,t,i,n){return null==e?[]:(Us(t)||(t=null==t?[]:[t]),Us(i=n?a:i)||(i=null==i?[]:[i]),Ui(e,t,i))},Oa.over=ll,Oa.overArgs=Ds,Oa.overEvery=ul,Oa.overSome=cl,Oa.partial=Ls,Oa.partialRight=Rs,Oa.partition=As,Oa.pick=Lo,Oa.pickBy=Ro,Oa.property=dl,Oa.propertyOf=function(e){return function(t){return null==e?a:wi(e,t)}},Oa.pull=Zr,Oa.pullAll=Jr,Oa.pullAllBy=function(e,t,a){return e&&e.length&&t&&t.length?Wi(e,t,or(a,2)):e},Oa.pullAllWith=function(e,t,i){return e&&e.length&&t&&t.length?Wi(e,t,a,i):e},Oa.pullAt=Kr,Oa.range=pl,Oa.rangeRight=hl,Oa.rearg=Ps,Oa.reject=function(e,t){return(Us(e)?Vt:fi)(e,Es(or(t,3)))},Oa.remove=function(e,t){var a=[];if(!e||!e.length)return a;var i=-1,n=[],r=e.length;for(t=or(t,3);++i<r;){var s=e[i];t(s,i,e)&&(a.push(s),n.push(i))}return Hi(e,n),a},Oa.rest=function(e,t){if("function"!=typeof e)throw new Me(i);return qi(e,t=t===a?t:ho(t))},Oa.reverse=Xr,Oa.sampleSize=function(e,t,i){return t=(i?br(e,t,i):t===a)?1:ho(t),(Us(e)?Ja:Ji)(e,t)},Oa.set=function(e,t,a){return null==e?e:Ki(e,t,a)},Oa.setWith=function(e,t,i,n){return n="function"==typeof n?n:a,null==e?e:Ki(e,t,i,n)},Oa.shuffle=function(e){return(Us(e)?Ka:en)(e)},Oa.slice=function(e,t,i){var n=null==e?0:e.length;return n?(i&&"number"!=typeof i&&br(e,t,i)?(t=0,i=n):(t=null==t?0:ho(t),i=i===a?n:ho(i)),tn(e,t,i)):[]},Oa.sortBy=ks,Oa.sortedUniq=function(e){return e&&e.length?sn(e):[]},Oa.sortedUniqBy=function(e,t){return e&&e.length?sn(e,or(t,2)):[]},Oa.split=function(e,t,i){return i&&"number"!=typeof i&&br(e,t,i)&&(t=i=a),(i=i===a?p:i>>>0)?(e=go(e))&&("string"==typeof t||null!=t&&!io(t))&&!(t=ln(t))&&na(e)?_n(da(e),0,i):e.split(t,i):[]},Oa.spread=function(e,t){if("function"!=typeof e)throw new Me(i);return t=null==t?0:ya(ho(t),0),qi((function(a){var i=a[t],n=_n(a,0,t);return i&&Et(n,i),St(e,this,n)}))},Oa.tail=function(e){var t=null==e?0:e.length;return t?tn(e,1,t):[]},Oa.take=function(e,t,i){return e&&e.length?tn(e,0,(t=i||t===a?1:ho(t))<0?0:t):[]},Oa.takeRight=function(e,t,i){var n=null==e?0:e.length;return n?tn(e,(t=n-(t=i||t===a?1:ho(t)))<0?0:t,n):[]},Oa.takeRightWhile=function(e,t){return e&&e.length?pn(e,or(t,3),!1,!0):[]},Oa.takeWhile=function(e,t){return e&&e.length?pn(e,or(t,3)):[]},Oa.tap=function(e,t){return t(e),e},Oa.throttle=function(e,t,a){var n=!0,r=!0;if("function"!=typeof e)throw new Me(i);return Xs(a)&&(n="leading"in a?!!a.leading:n,r="trailing"in a?!!a.trailing:r),Vs(e,t,{leading:n,maxWait:t,trailing:r})},Oa.thru=ds,Oa.toArray=co,Oa.toPairs=Po,Oa.toPairsIn=Oo,Oa.toPath=function(e){return Us(e)?Ft(e,Lr):so(e)?[e]:Mn(Dr(go(e)))},Oa.toPlainObject=yo,Oa.transform=function(e,t,a){var i=Us(e),n=i||Ys(e)||oo(e);if(t=or(t,4),null==a){var r=e&&e.constructor;a=n?i?new r:[]:Xs(e)&&Zs(r)?Ba(He(e)):{}}return(n?xt:bi)(e,(function(e,i,n){return t(a,e,i,n)})),a},Oa.unary=function(e){return Ns(e,1)},Oa.union=Qr,Oa.unionBy=es,Oa.unionWith=ts,Oa.uniq=function(e){return e&&e.length?un(e):[]},Oa.uniqBy=function(e,t){return e&&e.length?un(e,or(t,2)):[]},Oa.uniqWith=function(e,t){return t="function"==typeof t?t:a,e&&e.length?un(e,a,t):[]},Oa.unset=function(e,t){return null==e||cn(e,t)},Oa.unzip=as,Oa.unzipWith=is,Oa.update=function(e,t,a){return null==e?e:dn(e,t,gn(a))},Oa.updateWith=function(e,t,i,n){return n="function"==typeof n?n:a,null==e?e:dn(e,t,gn(i),n)},Oa.values=Bo,Oa.valuesIn=function(e){return null==e?[]:Kt(e,Io(e))},Oa.without=ns,Oa.words=Jo,Oa.wrap=function(e,t){return Ls(gn(t),e)},Oa.xor=rs,Oa.xorBy=ss,Oa.xorWith=os,Oa.zip=ls,Oa.zipObject=function(e,t){return mn(e||[],t||[],Qa)},Oa.zipObjectDeep=function(e,t){return mn(e||[],t||[],Ki)},Oa.zipWith=us,Oa.entries=Po,Oa.entriesIn=Oo,Oa.extend=vo,Oa.extendWith=_o,sl(Oa,Oa),Oa.add=gl,Oa.attempt=Ko,Oa.camelCase=$o,Oa.capitalize=jo,Oa.ceil=bl,Oa.clamp=function(e,t,i){return i===a&&(i=t,t=a),i!==a&&(i=(i=mo(i))==i?i:0),t!==a&&(t=(t=mo(t))==t?t:0),ri(mo(e),t,i)},Oa.clone=function(e){return si(e,4)},Oa.cloneDeep=function(e){return si(e,5)},Oa.cloneDeepWith=function(e,t){return si(e,5,t="function"==typeof t?t:a)},Oa.cloneWith=function(e,t){return si(e,4,t="function"==typeof t?t:a)},Oa.conformsTo=function(e,t){return null==t||oi(e,t,Co(t))},Oa.deburr=Uo,Oa.defaultTo=function(e,t){return null==e||e!=e?t:e},Oa.divide=vl,Oa.endsWith=function(e,t,i){e=go(e),t=ln(t);var n=e.length,r=i=i===a?n:ri(ho(i),0,n);return(i-=t.length)>=0&&e.slice(i,r)==t},Oa.eq=Os,Oa.escape=function(e){return(e=go(e))&&q.test(e)?e.replace(Y,aa):e},Oa.escapeRegExp=function(e){return(e=go(e))&&ae.test(e)?e.replace(te,"\\$&"):e},Oa.every=function(e,t,i){var n=Us(e)?Mt:pi;return i&&br(e,t,i)&&(t=a),n(e,or(t,3))},Oa.find=fs,Oa.findIndex=jr,Oa.findKey=function(e,t){return Ot(e,or(t,3),bi)},Oa.findLast=ms,Oa.findLastIndex=Ur,Oa.findLastKey=function(e,t){return Ot(e,or(t,3),vi)},Oa.floor=_l,Oa.forEach=ys,Oa.forEachRight=gs,Oa.forIn=function(e,t){return null==e?e:yi(e,or(t,3),Io)},Oa.forInRight=function(e,t){return null==e?e:gi(e,or(t,3),Io)},Oa.forOwn=function(e,t){return e&&bi(e,or(t,3))},Oa.forOwnRight=function(e,t){return e&&vi(e,or(t,3))},Oa.get=No,Oa.gt=Bs,Oa.gte=$s,Oa.has=function(e,t){return null!=e&&fr(e,t,Ni)},Oa.hasIn=xo,Oa.head=Wr,Oa.identity=al,Oa.includes=function(e,t,a,i){e=Ws(e)?e:Bo(e),a=a&&!i?ho(a):0;var n=e.length;return a<0&&(a=ya(n+a,0)),ro(e)?a<=n&&e.indexOf(t,a)>-1:!!n&&$t(e,t,a)>-1},Oa.indexOf=function(e,t,a){var i=null==e?0:e.length;if(!i)return-1;var n=null==a?0:ho(a);return n<0&&(n=ya(i+n,0)),$t(e,t,n)},Oa.inRange=function(e,t,i){return t=po(t),i===a?(i=t,t=0):i=po(i),function(e,t,a){return e>=ga(t,a)&&e<ya(t,a)}(e=mo(e),t,i)},Oa.invoke=Vo,Oa.isArguments=js,Oa.isArray=Us,Oa.isArrayBuffer=zs,Oa.isArrayLike=Ws,Oa.isArrayLikeObject=Hs,Oa.isBoolean=function(e){return!0===e||!1===e||Qs(e)&&ki(e)==y},Oa.isBuffer=Ys,Oa.isDate=Gs,Oa.isElement=function(e){return Qs(e)&&1===e.nodeType&&!ao(e)},Oa.isEmpty=function(e){if(null==e)return!0;if(Ws(e)&&(Us(e)||"string"==typeof e||"function"==typeof e.splice||Ys(e)||oo(e)||js(e)))return!e.length;var t=hr(e);if(t==w||t==x)return!e.size;if(Ar(e))return!Di(e).length;for(var a in e)if(De.call(e,a))return!1;return!0},Oa.isEqual=function(e,t){return Ci(e,t)},Oa.isEqualWith=function(e,t,i){var n=(i="function"==typeof i?i:a)?i(e,t):a;return n===a?Ci(e,t,a,i):!!n},Oa.isError=qs,Oa.isFinite=function(e){return"number"==typeof e&&Pt(e)},Oa.isFunction=Zs,Oa.isInteger=Js,Oa.isLength=Ks,Oa.isMap=eo,Oa.isMatch=function(e,t){return e===t||Ii(e,t,ur(t))},Oa.isMatchWith=function(e,t,i){return i="function"==typeof i?i:a,Ii(e,t,ur(t),i)},Oa.isNaN=function(e){return to(e)&&e!=+e},Oa.isNative=function(e){if(wr(e))throw new Ae("Unsupported core-js use. Try https://npms.io/search?q=ponyfill.");return Fi(e)},Oa.isNil=function(e){return null==e},Oa.isNull=function(e){return null===e},Oa.isNumber=to,Oa.isObject=Xs,Oa.isObjectLike=Qs,Oa.isPlainObject=ao,Oa.isRegExp=io,Oa.isSafeInteger=function(e){return Js(e)&&e>=-9007199254740991&&e<=c},Oa.isSet=no,Oa.isString=ro,Oa.isSymbol=so,Oa.isTypedArray=oo,Oa.isUndefined=function(e){return e===a},Oa.isWeakMap=function(e){return Qs(e)&&hr(e)==V},Oa.isWeakSet=function(e){return Qs(e)&&"[object WeakSet]"==ki(e)},Oa.join=function(e,t){return null==e?"":Ht.call(e,t)},Oa.kebabCase=zo,Oa.last=qr,Oa.lastIndexOf=function(e,t,i){var n=null==e?0:e.length;if(!n)return-1;var r=n;return i!==a&&(r=(r=ho(i))<0?ya(n+r,0):ga(r,n-1)),t==t?function(e,t,a){for(var i=a+1;i--;)if(e[i]===t)return i;return i}(e,t,r):Bt(e,Ut,r,!0)},Oa.lowerCase=Wo,Oa.lowerFirst=Ho,Oa.lt=lo,Oa.lte=uo,Oa.max=function(e){return e&&e.length?hi(e,al,Si):a},Oa.maxBy=function(e,t){return e&&e.length?hi(e,or(t,2),Si):a},Oa.mean=function(e){return zt(e,al)},Oa.meanBy=function(e,t){return zt(e,or(t,2))},Oa.min=function(e){return e&&e.length?hi(e,al,Ri):a},Oa.minBy=function(e,t){return e&&e.length?hi(e,or(t,2),Ri):a},Oa.stubArray=fl,Oa.stubFalse=ml,Oa.stubObject=function(){return{}},Oa.stubString=function(){return""},Oa.stubTrue=function(){return!0},Oa.multiply=wl,Oa.nth=function(e,t){return e&&e.length?ji(e,ho(t)):a},Oa.noConflict=function(){return pt._===this&&(pt._=Be),this},Oa.noop=ol,Oa.now=Ss,Oa.pad=function(e,t,a){e=go(e);var i=(t=ho(t))?ca(e):0;if(!t||i>=t)return e;var n=(t-i)/2;return zn(ft(n),a)+e+zn(ht(n),a)},Oa.padEnd=function(e,t,a){e=go(e);var i=(t=ho(t))?ca(e):0;return t&&i<t?e+zn(t-i,a):e},Oa.padStart=function(e,t,a){e=go(e);var i=(t=ho(t))?ca(e):0;return t&&i<t?zn(t-i,a)+e:e},Oa.parseInt=function(e,t,a){return a||null==t?t=0:t&&(t=+t),va(go(e).replace(ie,""),t||0)},Oa.random=function(e,t,i){if(i&&"boolean"!=typeof i&&br(e,t,i)&&(t=i=a),i===a&&("boolean"==typeof t?(i=t,t=a):"boolean"==typeof e&&(i=e,e=a)),e===a&&t===a?(e=0,t=1):(e=po(e),t===a?(t=e,e=0):t=po(t)),e>t){var n=e;e=t,t=n}if(i||e%1||t%1){var r=_a();return ga(e+r*(t-e+lt("1e-"+((r+"").length-1))),t)}return Yi(e,t)},Oa.reduce=function(e,t,a){var i=Us(e)?Dt:Yt,n=arguments.length<3;return i(e,or(t,4),a,n,ci)},Oa.reduceRight=function(e,t,a){var i=Us(e)?Lt:Yt,n=arguments.length<3;return i(e,or(t,4),a,n,di)},Oa.repeat=function(e,t,i){return t=(i?br(e,t,i):t===a)?1:ho(t),Gi(go(e),t)},Oa.replace=function(){var e=arguments,t=go(e[0]);return e.length<3?t:t.replace(e[1],e[2])},Oa.result=function(e,t,i){var n=-1,r=(t=bn(t,e)).length;for(r||(r=1,e=a);++n<r;){var s=null==e?a:e[Lr(t[n])];s===a&&(n=r,s=i),e=Zs(s)?s.call(e):s}return e},Oa.round=Al,Oa.runInContext=e,Oa.sample=function(e){return(Us(e)?Za:Zi)(e)},Oa.size=function(e){if(null==e)return 0;if(Ws(e))return ro(e)?ca(e):e.length;var t=hr(e);return t==w||t==x?e.size:Di(e).length},Oa.snakeCase=Yo,Oa.some=function(e,t,i){var n=Us(e)?Rt:an;return i&&br(e,t,i)&&(t=a),n(e,or(t,3))},Oa.sortedIndex=function(e,t){return nn(e,t)},Oa.sortedIndexBy=function(e,t,a){return rn(e,t,or(a,2))},Oa.sortedIndexOf=function(e,t){var a=null==e?0:e.length;if(a){var i=nn(e,t);if(i<a&&Os(e[i],t))return i}return-1},Oa.sortedLastIndex=function(e,t){return nn(e,t,!0)},Oa.sortedLastIndexBy=function(e,t,a){return rn(e,t,or(a,2),!0)},Oa.sortedLastIndexOf=function(e,t){if(null!=e&&e.length){var a=nn(e,t,!0)-1;if(Os(e[a],t))return a}return-1},Oa.startCase=Go,Oa.startsWith=function(e,t,a){return e=go(e),a=null==a?0:ri(ho(a),0,e.length),t=ln(t),e.slice(a,a+t.length)==t},Oa.subtract=kl,Oa.sum=function(e){return e&&e.length?Gt(e,al):0},Oa.sumBy=function(e,t){return e&&e.length?Gt(e,or(t,2)):0},Oa.template=function(e,t,i){var n=Oa.templateSettings;i&&br(e,t,i)&&(t=a),e=go(e),t=_o({},t,n,Kn);var r,s,o=_o({},t.imports,n.imports,Kn),l=Co(o),u=Kt(o,l),c=0,d=t.interpolate||ve,p="__p += '",h=xe((t.escape||ve).source+"|"+d.source+"|"+(d===K?de:ve).source+"|"+(t.evaluate||ve).source+"|$","g"),f="//# sourceURL="+(De.call(t,"sourceURL")?(t.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++nt+"]")+"\n";e.replace(h,(function(t,a,i,n,o,l){return i||(i=n),p+=e.slice(c,l).replace(_e,ia),a&&(r=!0,p+="' +\n__e("+a+") +\n'"),o&&(s=!0,p+="';\n"+o+";\n__p += '"),i&&(p+="' +\n((__t = ("+i+")) == null ? '' : __t) +\n'"),c=l+t.length,t})),p+="';\n";var m=De.call(t,"variable")&&t.variable;if(m){if(ue.test(m))throw new Ae("Invalid `variable` option passed into `_.template`")}else p="with (obj) {\n"+p+"\n}\n";p=(s?p.replace(U,""):p).replace(z,"$1").replace(W,"$1;"),p="function("+(m||"obj")+") {\n"+(m?"":"obj || (obj = {});\n")+"var __t, __p = ''"+(r?", __e = _.escape":"")+(s?", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n":";\n")+p+"return __p\n}";var y=Ko((function(){return ke(l,f+"return "+p).apply(a,u)}));if(y.source=p,qs(y))throw y;return y},Oa.times=function(e,t){if((e=ho(e))<1||e>c)return[];var a=p,i=ga(e,p);t=or(t),e-=p;for(var n=qt(i,t);++a<e;)t(a);return n},Oa.toFinite=po,Oa.toInteger=ho,Oa.toLength=fo,Oa.toLower=function(e){return go(e).toLowerCase()},Oa.toNumber=mo,Oa.toSafeInteger=function(e){return e?ri(ho(e),-9007199254740991,c):0===e?e:0},Oa.toString=go,Oa.toUpper=function(e){return go(e).toUpperCase()},Oa.trim=function(e,t,i){if((e=go(e))&&(i||t===a))return Zt(e);if(!e||!(t=ln(t)))return e;var n=da(e),r=da(t);return _n(n,Qt(n,r),ea(n,r)+1).join("")},Oa.trimEnd=function(e,t,i){if((e=go(e))&&(i||t===a))return e.slice(0,pa(e)+1);if(!e||!(t=ln(t)))return e;var n=da(e);return _n(n,0,ea(n,da(t))+1).join("")},Oa.trimStart=function(e,t,i){if((e=go(e))&&(i||t===a))return e.replace(ie,"");if(!e||!(t=ln(t)))return e;var n=da(e);return _n(n,Qt(n,da(t))).join("")},Oa.truncate=function(e,t){var i=30,n="...";if(Xs(t)){var r="separator"in t?t.separator:r;i="length"in t?ho(t.length):i,n="omission"in t?ln(t.omission):n}var s=(e=go(e)).length;if(na(e)){var o=da(e);s=o.length}if(i>=s)return e;var l=i-ca(n);if(l<1)return n;var u=o?_n(o,0,l).join(""):e.slice(0,l);if(r===a)return u+n;if(o&&(l+=u.length-l),io(r)){if(e.slice(l).search(r)){var c,d=u;for(r.global||(r=xe(r.source,go(pe.exec(r))+"g")),r.lastIndex=0;c=r.exec(d);)var p=c.index;u=u.slice(0,p===a?l:p)}}else if(e.indexOf(ln(r),l)!=l){var h=u.lastIndexOf(r);h>-1&&(u=u.slice(0,h))}return u+n},Oa.unescape=function(e){return(e=go(e))&&G.test(e)?e.replace(H,ha):e},Oa.uniqueId=function(e){var t=++Le;return go(e)+t},Oa.upperCase=qo,Oa.upperFirst=Zo,Oa.each=ys,Oa.eachRight=gs,Oa.first=Wr,sl(Oa,(yl={},bi(Oa,(function(e,t){De.call(Oa.prototype,t)||(yl[t]=e)})),yl),{chain:!1}),Oa.VERSION="4.17.21",xt(["bind","bindKey","curry","curryRight","partial","partialRight"],(function(e){Oa[e].placeholder=Oa})),xt(["drop","take"],(function(e,t){Ua.prototype[e]=function(i){i=i===a?1:ya(ho(i),0);var n=this.__filtered__&&!t?new Ua(this):this.clone();return n.__filtered__?n.__takeCount__=ga(i,n.__takeCount__):n.__views__.push({size:ga(i,p),type:e+(n.__dir__<0?"Right":"")}),n},Ua.prototype[e+"Right"]=function(t){return this.reverse()[e](t).reverse()}})),xt(["filter","map","takeWhile"],(function(e,t){var a=t+1,i=1==a||3==a;Ua.prototype[e]=function(e){var t=this.clone();return t.__iteratees__.push({iteratee:or(e,3),type:a}),t.__filtered__=t.__filtered__||i,t}})),xt(["head","last"],(function(e,t){var a="take"+(t?"Right":"");Ua.prototype[e]=function(){return this[a](1).value()[0]}})),xt(["initial","tail"],(function(e,t){var a="drop"+(t?"":"Right");Ua.prototype[e]=function(){return this.__filtered__?new Ua(this):this[a](1)}})),Ua.prototype.compact=function(){return this.filter(al)},Ua.prototype.find=function(e){return this.filter(e).head()},Ua.prototype.findLast=function(e){return this.reverse().find(e)},Ua.prototype.invokeMap=qi((function(e,t){return"function"==typeof e?new Ua(this):this.map((function(a){return Mi(a,e,t)}))})),Ua.prototype.reject=function(e){return this.filter(Es(or(e)))},Ua.prototype.slice=function(e,t){e=ho(e);var i=this;return i.__filtered__&&(e>0||t<0)?new Ua(i):(e<0?i=i.takeRight(-e):e&&(i=i.drop(e)),t!==a&&(i=(t=ho(t))<0?i.dropRight(-t):i.take(t-e)),i)},Ua.prototype.takeRightWhile=function(e){return this.reverse().takeWhile(e).reverse()},Ua.prototype.toArray=function(){return this.take(p)},bi(Ua.prototype,(function(e,t){var i=/^(?:filter|find|map|reject)|While$/.test(t),n=/^(?:head|last)$/.test(t),r=Oa[n?"take"+("last"==t?"Right":""):t],s=n||/^find/.test(t);r&&(Oa.prototype[t]=function(){var t=this.__wrapped__,o=n?[1]:arguments,l=t instanceof Ua,u=o[0],c=l||Us(t),d=function(e){var t=r.apply(Oa,Et([e],o));return n&&p?t[0]:t};c&&i&&"function"==typeof u&&1!=u.length&&(l=c=!1);var p=this.__chain__,h=!!this.__actions__.length,f=s&&!p,m=l&&!h;if(!s&&c){t=m?t:new Ua(this);var y=e.apply(t,o);return y.__actions__.push({func:ds,args:[d],thisArg:a}),new ja(y,p)}return f&&m?e.apply(this,o):(y=this.thru(d),f?n?y.value()[0]:y.value():y)})})),xt(["pop","push","shift","sort","splice","unshift"],(function(e){var t=Ve[e],a=/^(?:push|sort|unshift)$/.test(e)?"tap":"thru",i=/^(?:pop|shift)$/.test(e);Oa.prototype[e]=function(){var e=arguments;if(i&&!this.__chain__){var n=this.value();return t.apply(Us(n)?n:[],e)}return this[a]((function(a){return t.apply(Us(a)?a:[],e)}))}})),bi(Ua.prototype,(function(e,t){var a=Oa[t];if(a){var i=a.name+"";De.call(Va,i)||(Va[i]=[]),Va[i].push({name:t,func:a})}})),Va[Bn(a,2).name]=[{name:"wrapper",func:a}],Ua.prototype.clone=function(){var e=new Ua(this.__wrapped__);return e.__actions__=Mn(this.__actions__),e.__dir__=this.__dir__,e.__filtered__=this.__filtered__,e.__iteratees__=Mn(this.__iteratees__),e.__takeCount__=this.__takeCount__,e.__views__=Mn(this.__views__),e},Ua.prototype.reverse=function(){if(this.__filtered__){var e=new Ua(this);e.__dir__=-1,e.__filtered__=!0}else(e=this.clone()).__dir__*=-1;return e},Ua.prototype.value=function(){var e=this.__wrapped__.value(),t=this.__dir__,a=Us(e),i=t<0,n=a?e.length:0,r=function(e,t,a){for(var i=-1,n=a.length;++i<n;){var r=a[i],s=r.size;switch(r.type){case"drop":e+=s;break;case"dropRight":t-=s;break;case"take":t=ga(t,e+s);break;case"takeRight":e=ya(e,t-s)}}return{start:e,end:t}}(0,n,this.__views__),s=r.start,o=r.end,l=o-s,u=i?o:s-1,c=this.__iteratees__,d=c.length,p=0,h=ga(l,this.__takeCount__);if(!a||!i&&n==l&&h==l)return hn(e,this.__actions__);var f=[];e:for(;l--&&p<h;){for(var m=-1,y=e[u+=t];++m<d;){var g=c[m],b=g.iteratee,v=g.type,_=b(y);if(2==v)y=_;else if(!_){if(1==v)continue e;break e}}f[p++]=y}return f},Oa.prototype.at=ps,Oa.prototype.chain=function(){return cs(this)},Oa.prototype.commit=function(){return new ja(this.value(),this.__chain__)},Oa.prototype.next=function(){this.__values__===a&&(this.__values__=co(this.value()));var e=this.__index__>=this.__values__.length;return{done:e,value:e?a:this.__values__[this.__index__++]}},Oa.prototype.plant=function(e){for(var t,i=this;i instanceof $a;){var n=Pr(i);n.__index__=0,n.__values__=a,t?r.__wrapped__=n:t=n;var r=n;i=i.__wrapped__}return r.__wrapped__=e,t},Oa.prototype.reverse=function(){var e=this.__wrapped__;if(e instanceof Ua){var t=e;return this.__actions__.length&&(t=new Ua(this)),(t=t.reverse()).__actions__.push({func:ds,args:[Xr],thisArg:a}),new ja(t,this.__chain__)}return this.thru(Xr)},Oa.prototype.toJSON=Oa.prototype.valueOf=Oa.prototype.value=function(){return hn(this.__wrapped__,this.__actions__)},Oa.prototype.first=Oa.prototype.head,Je&&(Oa.prototype[Je]=function(){return this}),Oa}();ft?((ft.exports=fa)._=fa,ht._=fa):pt._=fa}).call(te)}(ee,ee.exports)),ee.exports);class ie extends q{name="";displayName="";type=void 0;info;preload=!0;loadingManagerRule="load";item;itemRepo;condition;conditionFields=[];conditionFieldNames=[];dependantFields=[];dependenciesInitialized=!1;linkableTypes=[];collapsed=!1;presets=[];datatype=null;defaultValue=null;minValue=null;maxValue=null;language=null;widget=null;length=null;labelType=null;blocks=[];connections=[];_id="";_internalValue;_internalOptions=[];_updateConditions=!0;_hidden=!1;get hidden(){return!(!this.condition||!this.dependenciesInitialized)&&(this._updateConditions&&(this._hidden=!this._calculateConditionBlock(this.condition),this._updateConditions=!1),this._hidden)}get id(){return this._id}get options(){return this._internalOptions}set options(e){this._internalOptions=e}get value(){return this._internalValue}set value(e){this._internalValue=e,this._processDependencies()}constructor(e,t=void 0,a=void 0,i=void 0,n=void 0,r=void 0){super(n),e instanceof G?(this._id=e.id,this.restoreFromSnapshot(e)):(_.assert(e,"Field has no name!"),_.assert(a,"Field has no type!"),this._id=_.createFieldID(),this.name=e,this.displayName=t||e,this.type=a,this._internalValue=i,this.item=n,this.itemRepo=r)}updateConditions(){this.condition&&this.dependenciesInitialized&&(this._updateConditions=!0,y.$emit("field:hiddenChanged",this.id))}getId(){return this.id}resetValue(){this.value=this.defaultValue}makeIdsUnique(e=new Map,t=!1){if(e.has(this._id)||t){const t=_.createFieldID();e.set(this._id,t),this._id=t}else e.set(this._id,this._id);for(const a of this.blocks)a.makeIdsUnique(e,t);return e}transformNodeIds(e){for(const t of this.blocks)t.transformNodeIds(e);"Attribute"===this.type&&"Node"===this.datatype&&this.value&&e.has(this.value)&&(this.value=e.get(this.value))}findBlock(e){for(const t of this.blocks){const a=t.findBlock(e);if(a)return a}return null}clone(e=void 0,t=!1){let a=new ie(this.name,this.displayName,this.type);void 0===this._internalValue?a._internalValue=void 0:null===this._internalValue?a._internalValue=null:"Link"===this.type?a._internalValue=this._internalValue:a._internalValue=ae.cloneDeep(this._internalValue),a.info=this.info,a.preload=this.preload,a.loadingManagerRule=this.loadingManagerRule,a.item=this.item,a.ownerItem=this.ownerItem,a.itemRepo=this.itemRepo,a.condition=this.condition,a.conditionFields=this.conditionFields,a.conditionFieldNames=this.conditionFieldNames,a.dependantFields=this.dependantFields,a.collapsed=this.collapsed,a.presets=this.presets,a.labelType=this.labelType,a.datatype=this.datatype,a.defaultValue=this.defaultValue,a.minValue=this.minValue,a.maxValue=this.maxValue,a.options=this.options,a.language=this.language,a.widget=this.widget,a.length=this.length,a.linkableTypes=this.linkableTypes;for(const i of this.blocks){let n=i.clone(e,!0,{},t);e&&(n=S.instance.proxyBlock(n,e)),a.blocks.push(n)}for(const t of this.connections){let i=t.clone();e&&(i=S.instance.proxyConnection(i,e)),a.connections.push(i)}return a}_processDependencies(){for(const e of this.dependantFields)e.updateConditions()}_getConditionField(e){for(const t of this.conditionFields)if(t&&t.name===e)return t;return null}_calculateConditionField(e,t){if(!e.startsWith("$")){let a;e.includes(".")?(a=e.split("."),e=a.splice(0,1)[0]):a=[];let i=e.endsWith("?");i&&(e=e.substring(0,e.length-1));const n=this._getConditionField(e);if(!n)return i||console.error("Field to resolve condition not found: "+e),!1;let r=n.value;for(let t=0;t<a.length;t++){if(!r)return console.error(`Field path ${a.join(".")} not found in field ${e}!`),!1;r=r[a[t]]}return"object"==typeof t?void 0!==t.$isset?t.$isset===!!r:void 0!==t.$not?t.$not!==r:(console.error("Condition value cannot be interpreted: ",t,this),!1):n.value==t}switch(e){case"$isroot":return this.item._id===this.itemRepo.rootItemId===t;case"$parenttype":return console.log("$parenttype is not yet implemented!",this),!1;case"$optionsexist":return(Array.isArray(this.options)&&this.options.length>0)===t;case"$featureenabled":return this.itemRepo.apiClient.isFeatureEnabled(t);default:return console.error("Computed value unknown: "+e,this),!1}}_calculateConditionBlock(e){for(const t in e)if(e.hasOwnProperty(t)){const a=e[t];if("$or"===t)if(Array.isArray(a)){let e=!1;for(const t of a)if(this._calculateConditionBlock(t)){e=!0;break}if(!e)return!1}else console.error("Condition contains $or but its value is not an array!");else if("$not"===t){if("object"!=typeof a)console.error("When using the $not operator, the value needs to be an object");else if(this._calculateConditionBlock(a))return!1}else if(!this._calculateConditionField(t,a))return!1}return!0}refreshFieldDependencies(){for(const e of this.blocks)e.refreshFieldDependencies()}refreshDependantFields(e,t){const a=[];if(this.condition)for(let t of this.conditionFieldNames){const i=t.endsWith("?");i&&(t=t.substring(0,t.length-1));const n=e.get(t);n?a.push(n):i||console.warn("Condition field not found: "+t)}this.conditionFields=a,this.dependantFields=t||[],this.dependenciesInitialized=!0}setCondition(e){e?"object"==typeof e?this.condition=e:(console.error("Condition must be an object if set",e),this.condition=null):this.condition=null,this.conditionFieldNames=[],this.condition&&this._scanConditions(this.condition)}_scanConditions(e){for(let t in e)if(e.hasOwnProperty(t)){const a=e[t];if(Array.isArray(a))for(const e of a)this._scanConditions(e);else t.startsWith("$")||(t.includes(".")&&(t=t.split(".")[0]),this.conditionFieldNames.includes(t)||this.conditionFieldNames.push(t))}}forEachField(e){if(e(this),this.blocks)for(const t of this.blocks)t.forEachField(e)}setInfo(e){this.info=e}setPreload(e){this.preload=e}setLoadingManagerRule(e){this.loadingManagerRule=e}setLinkableTypes(e){this.linkableTypes=e}setDefaultValue(e){this.defaultValue=e,void 0!==this._internalValue&&null!==this._internalValue||(this._internalValue=e)}setMinValue(e){this.minValue=e}setMaxValue(e){this.maxValue=e}setOptions(e){this.options=e}setDatatype(e){this.datatype=e}setLanguage(e){this.language=e}setLength(e){this.length=e}setWidget(e){this.widget=e}setBlocks(e){this.blocks=e}setConnections(e){this.connections=e}setCollapsed(e){this.collapsed=!!e}setPresets(e){this.presets=e||[]}setLabelType(e){this.labelType=e||"info"}createSnapshot(e=!1){_.assert(this.id,"Field has no ID. Cannot create snapshot");const t=[];for(const a of this.blocks)t.push(a.createSnapshot(e));const a=[];for(const e of this.connections)a.push(e.createSnapshot());return new G(this.id,"field",{name:this.name,displayName:this.displayName,type:this.type,value:this._internalValue,preload:this.preload,info:this.info,loadingManagerRule:this.loadingManagerRule,item:this.item,itemRepo:this.itemRepo,condition:this.condition,conditionFields:this.conditionFields,conditionFieldNames:this.conditionFieldNames,dependantFields:this.dependantFields,linkableTypes:this.linkableTypes,collapsed:this.collapsed,presets:this.presets,datatype:this.datatype,defaultValue:this.defaultValue,minValue:this.minValue,maxValue:this.maxValue,options:this.options,language:this.language,widget:this.widget,length:this.length,labelType:this.labelType,blocks:t,connections:a})}restoreFromSnapshot(e){e.id===this.id?(this.name=e.data.name,this.displayName=e.data.displayName,this.type=e.data.type,this._internalValue=e.data.value,this.info=e.data.info,this.preload=e.data.preload,this.loadingManagerRule=e.data.loadingManagerRule,this.item=e.data.item,this.ownerItem=e.data.item,this.itemRepo=e.data.itemRepo,this.condition=e.data.condition,this.conditionFields=e.data.conditionFields,this.conditionFieldNames=e.data.conditionFieldNames,this.dependantFields=e.data.dependantFields,this.linkableTypes=e.data.linkableTypes,this.collapsed=e.data.collapsed,this.presets=e.data.presets,this.datatype=e.data.datatype,this.defaultValue=e.data.defaultValue,this.minValue=e.data.minValue,this.maxValue=e.data.maxValue,this.options=e.data.options,this.language=e.data.language,this.widget=e.data.widget,this.length=e.data.length,this.labelType=e.data.labelType,this.blocks=[],this.connections=[],this._rollbackArray(this.blocks,e.data.blocks,((e,t)=>S.instance.proxyBlock(new ce(e,t),this.ownerItem))),this._rollbackArray(this.connections,e.data.connections,((e,t)=>S.instance.proxyConnection(new Z(e.data,t),this.ownerItem)))):console.error("Snapshot ID does not match! Cannot rollback!",this,e)}rollbackFromSnapshot(e){this.value=e.data.value,this._rollbackArray(this.blocks,e.data.blocks,((e,t)=>S.instance.proxyBlock(new ce(e,t),this.ownerItem))),this._rollbackArray(this.connections,e.data.connections,((e,t)=>S.instance.proxyConnection(new Z(e.data,t),this.ownerItem)))}}class ne extends q{id;name=void 0;displayName=void 0;value;type=void 0;datatype=void 0;linkableTypes=[];order=0;constructor(e=void 0,t=void 0,a=void 0){super(a),this.value=t,this.id=_.createItemOrBlockID(),this.name=e,this.displayName=e,this._updateDisplayName()}getId(){return this.id}setName(e){this.name=e,this._updateDisplayName()}setType(e){this.type=e}setOrder(e){this.order=e}clone(e=new Map){const t=new ne;return t.ownerItem=this.ownerItem,t.value=e.get(this.value)??this.value,t.type=this.type,t.order=this.order,t.setName(this.name),t}clearDefinition(){this.type=void 0}setDefinition(e){const t=e.type.toLowerCase();switch(t){case"boolean":case"bool":this.type="Attribute",this.datatype="Boolean",this.value=void 0!==this.value?this._toBoolean(this.value):this._toBoolean(e.defaultValue);break;case"float":this.type="Attribute",this.datatype="Float",this.value=void 0!==this.value?Number(this.value):Number(e.defaultValue);break;case"int":this.type="Attribute",this.datatype="Integer",this.value=void 0!==this.value?parseInt(this.value):parseInt(e.defaultValue);break;case"string":this.type="Attribute",this.datatype="String",this.value=void 0!==this.value&&null!==this.value?this.value.toString():e.defaultValue?e.defaultValue.toString():"";break;case"vec2":this.type="Attribute",this.datatype="Vector2d";break;case"vec3":this.type="Attribute",this.datatype="Vector3d";break;case"vec4":this.type="Attribute",this.datatype="Vector4d";break;case"mat3":this.type="Attribute",this.datatype="Mat3";break;case"mat4":this.type="Attribute",this.datatype="Mat4";break;case"color":this.type="Attribute",this.datatype="Color";break;case"image":this.type="Link",this.linkableTypes=["Image"];break;default:console.error("Unknown script field type: "+t),this.type="Attribute",this.datatype="String",this.value=this.value?this.value.toString():e.defaultValue?e.defaultValue.toString():""}}_toBoolean(e){return null!=e&&(!0===e||!1===e?e:"false"!==e.toString().toLowerCase())}_updateDisplayName(){this.name?this.displayName=_.toUserFriendlyName(this.name):this.displayName=""}createSnapshot(){return new G(this.id,"customfield",{id:this.id,value:this.value})}rollbackFromSnapshot(e){this.value=e.data.value}}class re extends D{links;instanceId;isDirty=!1;fieldInstances;userFieldInstances;customFieldInstances;packageContent;packageType;public=!1;readOnly=!1;isPackaged=!1;isGenerated=!1;packageItem;isPreparedItem=!0;resultingAcl;constructor(e){if(super(e),this.instanceId=_.createItemOrBlockID(),this.links=[],Array.isArray(e.links))for(const t of e.links)this.links.push({to:t.to,usage:t.usage,stopRecursion:t.stopRecursion,item:t.item});this.fieldInstances=[],this.userFieldInstances=[],this.customFieldInstances=S.instance.proxyCustomFieldsArray([],this),this.public=!!e.public,this.packageContent=e.packageContent,this.packageType=e.packageType,this.packageItem=e.packageItem,this.readOnly=!!e.readOnly,this.isPackaged=!!e.isPackaged,this.isGenerated=!!e.isGenerated,this.resultingAcl=JSON.parse(JSON.stringify(e.resultingAcl||[]))}createCustomFieldInstances(e){function t(e,t){for(const a of e)if(a.name===t)return a;return null}for(const a of this.customFieldInstances)t(e,a.name)||a.clearDefinition();let a=0;for(const i of e){let e=t(this.customFieldInstances,i.name);e||(e=new ne(i.name,i.defaultValue,this),this.addCustomField(e)),e.setOrder(a++),e.setDefinition(i)}this.customFieldInstances.sort((function(e,t){return e.order-t.order}))}addCustomField(e){this.customFieldInstances.push(S.instance.proxyCustomField(e,this))}markDirty(){this.isDirty||(this.isDirty=!0,y.$emit("itemRepo:itemBecameDirty",this._id))}makeIdsUnique(){const e=new Map;for(const t of this.fieldInstances)t.makeIdsUnique(e,!0);this.packageContent&&this.packageContent.makeIdsUnique()}clone(e=!1){let t=new re(this);const a=new Map;for(const i of this.fieldInstances){const n=i.clone(this,!0);e&&n.makeIdsUnique(a,!0),t.fieldInstances.push(n)}if(e)for(const e of t.fieldInstances)e.transformNodeIds(a);return t}findBlock(e){for(const t of this.fieldInstances){const a=t.findBlock(e);if(a)return a}return null}refreshFieldDependencies(){ue.refreshFieldDependencies(this.fieldInstances);for(const e of this.fieldInstances)e.refreshFieldDependencies()}forEachItem(e){if(e(this),this.links)for(const t of this.links)t.item&&t.item.forEachItem(e)}forEachFieldInstance(e){if(this.fieldInstances)for(const t of this.fieldInstances)t.forEachField(e)}toString(){return`PreparedItem(${JSON.stringify({_id:this._id,name:this.name,type:this.type})})`}}function se(e,t,a){if(e.admin||e.superadmin)return!0;if(!Array.isArray(t))return!0;for(const i of t)if(i.can.includes(a)){if(!i.user&&!i.group)return!0;if(i.user&&i.user===e._id)return!0;if(i.group)for(const t of e.groups){if("object"==typeof t&&t._id===i.group)return!0;if(t===i.group)return!0}}}class oe{fields;constructor(e){if(!Array.isArray(e))throw"Template fields need to be an array!";this.fields=e}clone(){const e=[];for(const t of this.fields)e.push(t.clone());return new oe(e)}specialize(e){for(const t of this.fields)void 0!==e[t.name]&&(t.defaultValue=e[t.name]);return this}instantiate(e){if(e)return this.fields;{const e=[];for(const t of this.fields)e.push(t.clone());return e}}}class le{templates=new Map;templatesByField=new Map;static _instance;static get instance(){return this._instance||(this._instance=new this)}_existsTemplate(e,t){for(const a of e)if(a.typeName===t)return!0;return!1}addTemplates(e,t,a){const i=`${e}_${t}`,n=this.templatesByField.get(i)||[];for(const e of a){const t=`${i}_${e.typeName}`;this.templates.set(t,e),this._existsTemplate(n,e.typeName)||n.push(e)}this.templatesByField.set(i,n)}getTemplate(e,t,a){const i=`${e}_${t}_${a}`;return this.templates.get(i)}getTemplates(e,t){const a=`${e}_${t}`;return this.templatesByField.get(a)||[]}}class ue{itemRepo;itemFetcher;constructor(e){this.itemRepo=e,this.itemFetcher=function(e){return e}}setItemFetcher(e){this.itemFetcher=e}setFieldsFromDatatypes(e){const t=R(e.type,!0);e.fields=t.fields||[],e.fieldSets=t.fieldSets||[]}async prepare(e){return e instanceof re?(console.warn("Trying to prepare an already prepared item: ",e),e):this.itemRepo.undoManager.ignore((async()=>{const t=new re(e);return this.setFieldsFromDatatypes(t),t.fieldInstances=await this.createFieldInstances(t,t.fields,t.attributes,"","attributes",!1),t.userFieldInstances=await this.createFieldInstances(t,t.userFields,t.userAttributes,"","userAttributes",!1),t.customFieldInstances=await this.createCustomFieldInstances(t,t.userAttributes,"_"),t.allowConversation=!!t.allowConversation,t.packageContent&&(t.packageContent.name=t.name,await this.itemRepo.traverseItems((e=>{e.readOnly=!0,e.isPackaged=!0,e.packageItem=t}),t.packageContent)),t.packageItem?(t.readOnly=!0,t.isPackaged=!0):(t.isPackaged=!1,t.resultingAcl&&t.resultingAcl.length>0?t.readOnly=!se(await this.itemRepo.apiClient.me(!0),t.resultingAcl,"write"):t.readOnly=!0),t}))}async createCustomFieldInstances(e,t,a=""){if(!e)throw new M("createCustomFieldInstances(): Item cannot be null!");if(!t)throw new M("createCustomFieldInstances(): attributes cannot be null!");const i=[];for(const n in t)if(!a.length||n.startsWith(a)){const r=n.substring(a.length);let s=new ne(r,t[n],e);s.setType("Attribute"),i.push(S.instance.proxyCustomField(s,e))}if(e.links)for(const t of e.links)if(!a.length||t.usage.startsWith(a)){const n=t.usage.substring(a.length);let r,{id:s,linkItem:o,stopRecursion:l}=await this.fetchLinkValue(e,t.usage);o?r=o:l&&(r=s);let u=new ne(n,r,e);u.setType("Link"),i.push(S.instance.proxyCustomField(u,e))}return i}async createFieldInstances(e,t,a,i,n,r=!1){if(!e)throw new M("createFieldInstances(): Item cannot be null!");if(!t)throw new M("createFieldInstances(): Fields cannot be null!");const s=[],o=i.length?`${i}->`:i;for(let a=0;a<t.length;a++){const i=t[a];if("FieldSet"===i.type){const n=this.getFieldSet(e,i.name);n?(t.splice(a,1,...structuredClone(n.fields)),a+=n.fields.length-1):console.error("Fieldset not found: "+i.name)}}for(const i of t)switch(i.type){case"Separator":{const t=new ie("Separator",i.label,"Separator",null,e,this.itemRepo);t.setInfo(i.info),t.setCondition(i.if),t.setCollapsed(i.collapsed),t.setPresets(i.presets),s.push(t);break}case"Label":{const t=new ie("Label","","Label",i.text,e,this.itemRepo);t.setLabelType(i.labelType),t.setCondition(i.if),s.push(t);break}case"Link":{let t;if(!r){let{id:a,linkItem:n,stopRecursion:r}=await this.fetchLinkValue(e,i.usageAs);n?t=n:r&&(t=a)}let a=new ie(i.usageAs,i.displayName,i.type,t,e,this.itemRepo);a.setInfo(i.info),a.setCondition(i.if),a.setLinkableTypes(i.linkableTypes),void 0!==i.preload&&a.setPreload(i.preload),void 0!==i.loadingManager&&a.setLoadingManagerRule(i.loadingManager),s.push(S.instance.proxyItemField(a,e));break}case"Tree":{const t=`${o}${i.name}`,r=[];for(const s of i.childTypes){const i=new oe(await this.createFieldInstances(e,s.fields,a,t,n,!0));r.push({typeName:s.typeName,displayName:s.displayName||s.typeName,template:i,inputs:[],outputs:[]})}r.sort((function(e,t){return e.displayName.localeCompare(t.displayName)})),le.instance.addTemplates(e.type,i.name,r);const l=new ce(void 0,void 0,"","Root",void 0,e),u=await this.readBlocks(e,l,i.name,t,a,!0,!0,"Tree");l.blocks=S.instance.proxyBlockArray(u,l,e);let c=new ie(i.name,i.displayName,i.type,null,e,this.itemRepo);c.setInfo(i.info),c.setCondition(i.if),c.setBlocks([l]),s.push(c);break}case"List":{const t=`${o}${i.name}`,r=new oe(await this.createFieldInstances(e,i.fields,a,t,n,!0)),l=[{typeName:"Entry",displayName:i.elementName,template:r,inputs:[],outputs:[]}];le.instance.addTemplates(e.type,i.name,l);let u=new ie(i.name,i.displayName,i.type,null,e,this.itemRepo);const c=await this.readBlocks(e,void 0,i.name,t,a,!0,!0,"List"),d=S.instance.proxyListArray(c,u,e);u.setInfo(i.info),u.setCondition(i.if),u.setBlocks(d),s.push(u);break}case"NodeGraph":{const t=`${o}${i.name}`,r=[];for(const s of i.childTypes){const i=new oe(await this.createFieldInstances(e,s.fields,a,t,n,!0));r.push({typeName:s.typeName,displayName:s.displayName||s.typeName,template:i,inputs:s.inputs||[],outputs:s.outputs||[]})}r.sort((function(e,t){return e.displayName.localeCompare(t.displayName)})),le.instance.addTemplates(e.type,i.name,r);let l=await this.readBlocks(e,void 0,i.name,t,a,!1,!1,"NodeGraph"),u=this.readConnections(e,t,a),c=new ie(i.name,i.displayName,i.type,null,e,this.itemRepo);c.setInfo(i.info),c.setCondition(i.if),c.setBlocks(S.instance.proxyGraphBlockArray(l,e)),c.setConnections(S.instance.proxyConnectionArray(u,e)),s.push(c);break}case"Attribute":{let t;r||(t=e[n]?e[n][i.name]:void 0,void 0===t&&(t=i.defaultValue));let a=new ie(i.name,i.displayName,i.type,t,e,this.itemRepo);a.setInfo(i.info),a.setCondition(i.if),a.setDefaultValue(i.defaultValue),a.setMinValue(i.minValue),a.setMaxValue(i.maxValue),a.setOptions(i.options),a.setDatatype(i.datatype),a.setLanguage(i.language),a.setWidget(i.widget),a.setLength(i.length),s.push(S.instance.proxyItemField(a,e));break}}return s}getFieldSet(e,t){if(Array.isArray(e.fieldSets))for(const a of e.fieldSets)if(a.name===t)return a;return null}async fetchLinkValue(e,t){if(!e)throw new M("fetchLinkValue(): Item cannot be null!");for(const a of e.links)if(a.usage===t)return{id:a.to,linkItem:a.item?await this.itemFetcher(a.item):null,stopRecursion:a.stopRecursion};return{id:null,linkItem:null}}async readBlocks(e,t,a,i,n,r,s,o){if(!e)throw new M("readBlocks(): Item cannot be null!");const l=[];let u=0;for(;;){const c=`${i}[${u}]`;if(!this.existsBlockNamespace(e,n,c))break;{const i=`${c}#id`,u=e.attributes[i],d=`${c}#type`;let p,h,f=e.attributes[d];switch(o){case"NodeGraph":{const t=`${c}#posx`,a=`${c}#posy`;p=e.attributes[t]||0,h=e.attributes[a]||0;break}case"List":r=!1,f="Entry"}const m=le.instance.getTemplate(e.packageType||e.type,a,f);if(m){const i=m.typeName,d=m.displayName,f=new ce(u,t,i,i,d,e),y=await this.createFields(f,e,m.template,c,"NodeGraph"===o,n);if(f.setFields(y),"NodeGraph"===o&&(f.setPosition(p,h),f.setInputs(m.inputs),f.setOutputs(m.outputs)),r){const t=await this.readBlocks(e,f,a,c,n,r,s,o);f.blocks=S.instance.proxyBlockArray(t,f,e)}if(s){const t=await this.readScripts(e,f,c,n);f.scripts=S.instance.proxyScriptArray(t,f,e)}"NodeGraph"===o?l.push(S.instance.proxyGraphBlock(f,e)):l.push(S.instance.proxyBlock(f,e))}else console.error(`Block template not found: ${a}_${f}`)}u++}return l}async readScripts(e,t,a,i){if(!e)throw new M("readScripts(): Item cannot be null!");const n=[];let r=0;for(;;){const s=`${a}#scripts[${r}]`;if(!this.existsScriptNamespace(e,i,s))break;{const a=i[`${s}#id`],r=`${s}#item`,o=`${s}->`,l=o.length;let{linkItem:u}=await this.fetchLinkValue(e,r);const c=new X(a,t,e,u);n.push(c);for(const t in i)if(i.hasOwnProperty(t)&&t.startsWith(o)){const a=i[t],n=t.substring(l),r=new J(c,n,a,e);c.addField(r)}}r++}return n}existsScriptNamespace(e,t,a){if(!e)throw new M("existsScriptNamespace(): Item cannot be null!");return"Script"===t[`${a}#usage`]}readConnections(e,t,a){const i=[];let n=0;for(;;){const r=a[`${t}#connection[${n++}]`];if(!r)break;i.push(new Z(r,e))}return i}existsBlockNamespace(e,t,a){if(!e)throw new M("existsBlockNamespace(): Item cannot be null!");const i=t[`${a}#usage`];if(i)return"Block"===i;for(const e in t)if(t.hasOwnProperty(e)&&e.startsWith(a))return!0;for(const t of e.links)if(t.usage.startsWith(a))return!0;return!1}async createFields(e,t,a,i,n,r,s=!1){let o=a.instantiate(s),l=[];for(const a of o)if(a.name){const s=`${i}->${a.name}`;switch(a.type){case"Link":if(i){let{id:e,linkItem:i,stopRecursion:n}=await this.fetchLinkValue(t,s);a.value=i||(n?e:null)}else a.value=a.defaultValue;break;case"List":{const e=await this.readBlocks(t,void 0,a.name,s,r,!0,!0,"List"),i=S.instance.proxyListArray(e,a,t);a.setBlocks(i);break}case"Attribute":i?(a.value=t.attributes[s],void 0===a.value&&(a.value=a.defaultValue)):a.value=a.defaultValue}n?l.push(S.instance.proxyGraphBlockField(a,e,t)):l.push(S.instance.proxyBlockField(a,e,t))}return l}static refreshFieldDependencies(e){const t=new Map,a=new Map;for(const a of e)t.set(a.name,a);for(const i of e)if(Array.isArray(i.conditionFieldNames))for(const e of i.conditionFieldNames){const n=t.get(e);if(n){const e=a.get(n);e?e.push(i):a.set(n,[i])}}for(const i of e)i.refreshDependantFields(t,a.get(i))}}class ce extends q{id="";parent=void 0;type=void 0;name="";displayName="";fields=[];blocks=[];isSelected=!1;isExpanded=!0;scripts=[];inputs=[];outputs=[];posX=0;posY=0;constructor(e=void 0,t=void 0,a=void 0,i=void 0,n=void 0,r=void 0){super(r),e instanceof G?this.restoreFromSnapshot(e,t):(this.id=e||_.createItemOrBlockID(),this.parent=t,this.type=a,this.name=i||this.type||"",this.displayName=n||this.name)}getId(){return this.id}getPositionInParent(){if(this.parent){let e=0;for(const t of this.parent.blocks){if(t.id===this.id)return e;e++}}return-1}refreshFieldDependencies(){ue.refreshFieldDependencies(this.fields);for(const e of this.fields)e.refreshFieldDependencies();for(const e of this.blocks)e.refreshFieldDependencies()}resetFieldValues(e=!1){for(const e of this.fields)e.resetValue();if(e)for(const t of this.blocks)t.resetFieldValues(e)}makeIdsUnique(e=new Map,t=!1){if(e.has(this.id)||t){const t=_.createItemOrBlockID();e.set(this.id,t),this.id=t}else e.set(this.id,this.id);for(const a of this.fields)a.makeIdsUnique(e,t);for(const a of this.blocks)a.makeIdsUnique(e,t);for(const a of this.scripts)a.makeIdsUnique(e,t);return e}transformNodeIds(e){for(const t of this.fields)t.transformNodeIds(e);for(const t of this.blocks)t.transformNodeIds(e);for(const t of this.scripts)t.transformNodeIds(e)}clone(e,t=!0,a={},i=!1){const n=new ce;i&&(n.id=this.id),n.ownerItem=this.ownerItem,n.parent=this.parent,n.type=this.type,n.name=this.name,n.displayName=this.displayName,n.isSelected=!1,n.isExpanded=!0,n.inputs=this.inputs,n.outputs=this.outputs,n.posX=0,n.posY=0;for(const t of this.fields){let r=t.clone(e,i);void 0!==a[t.name]&&(r.value=a[t.name]),e&&(r=S.instance.proxyBlockField(r,n,e)),n.fields.push(r)}if(e&&(n.scripts=S.instance.proxyScriptArray(n.scripts,n,e)),t)for(const e of this.scripts){const t=e.clone();n.scripts.push(t)}const r=n.blocks;e&&(n.blocks=S.instance.proxyBlockArray(r,n,e));for(const a of this.blocks){let s=a.clone(e,t,{},i);s.parent=n,e&&(s=S.instance.proxyBlock(s,e)),r.push(s)}return n}getDescendantBlocks(e=[]){const t=this.blocks;return e.push(...t),t.forEach((t=>t.getDescendantBlocks(e))),e}setFields(e){this.fields=e}setInputs(e){this.inputs=e}setOutputs(e){this.outputs=e}setPosition(e,t){this.posX=e,this.posY=t}setSelected(e){this.isSelected=e}setExpanded(e){this.isExpanded=e}getRoot(){return this.parent?this.parent.getRoot():this}forEachField(e){if(this.fields)for(const t of this.fields)t.forEachField(e);if(this.blocks)for(const t of this.blocks)t.forEachField(e)}findField(e){for(const t of this.fields)if(t.name===e)return t;return null}findBlock(e){if(this.id===e)return this;for(const t of this.blocks){const a=t.findBlock(e);if(a)return a}return null}removeBlock(e){this.blocks.removeObject(e)}addBlock(e,t){this.blocks.includes(e)||(void 0===t?this.blocks.push(e):this.blocks.splice(t,0,e))}moveBlock(e,t){e.parent.blocks.moveObjectToArray(e,e.parent.blocks,t)}moveToPosition(e){this.parent.moveBlock(this,e)}moveBlockToParent(e,t){this.parent.blocks.moveObjectToArray(this,e.blocks,t),this.parent=e}moveToParent(e,t){if(this.findBlock(e))return void console.error("Cannot move block to a parent that is a child.");const a=this.getRoot();if(!a)return void console.error("Cannot find root block!");const i=a.findBlock(e);i?this.parent!==i?this.moveBlockToParent(i,t):console.warn(`Node is already in parent ${e}`):console.error(`Cannot find the new parent block: ${e}`)}getField(e){for(const t of this.fields)if(t.name===e)return t;return null}hasTag(e){const t=this.getField("Tags");return!(!t||!Array.isArray(t.value))&&t.value.includes(e)}hasOneTag(e){const t=this.getField("Tags");if(t&&Array.isArray(t.value))for(const a of e)if(t.value.includes(a))return!0;return!1}getNameFieldValue(){const e=this.getField("Name");return e?e.value:null}getActiveFieldValue(){const e=this.getField("Active");return!e||e.value}createSnapshot(e=!1){const t=[];for(const a of this.fields)a.createSnapshot&&t.push(a.createSnapshot(e));const a=[];if(!e)for(const t of this.blocks)a.push(t.createSnapshot(e));const i=[];for(const e of this.scripts)i.push(e.createSnapshot());return new G(this.id,"block",{id:this.id,ownerItem:this.ownerItem,type:this.type,name:this.name,displayName:this.displayName,fields:t,blocks:a,isExpanded:this.isExpanded,scripts:i,inputs:this.inputs,outputs:this.outputs,posX:this.posX,posY:this.posY})}restoreFromSnapshot(e,t){this.id=e.data.id,this.parent=t,this.type=e.data.type,this.ownerItem=e.data.ownerItem,this.name=e.data.name,this.displayName=e.data.displayName,this.isSelected=!1,this.isExpanded=e.data.isExpanded,this.inputs=e.data.inputs,this.outputs=e.data.outputs,this.posX=e.data.posX,this.posY=e.data.posY;const a=[];this._rollbackArray(a,e.data.fields,(e=>S.instance.proxyBlockField(new ie(e),this,this.ownerItem))),this.fields=a;const i=[];this._rollbackArray(i,e.data.blocks,((e,t)=>S.instance.proxyBlock(new ce(e,t),this.ownerItem))),this.blocks=S.instance.proxyBlockArray(i,this,this.ownerItem);const n=[];this._rollbackArray(n,e.data.scripts,((e,t)=>new X(e,t,this.ownerItem))),this.scripts=S.instance.proxyScriptArray(n,this,this.ownerItem)}rollbackFromSnapshot(e,t=!1){this._rollbackArray(this.fields,e.data.fields,(e=>S.instance.proxyBlockField(new ie(e),this,this.ownerItem))),this._rollbackArray(this.scripts,e.data.scripts,(e=>new X(e,this,this.ownerItem))),t||this._rollbackArray(this.blocks,e.data.blocks,((e,t)=>S.instance.proxyBlock(new ce(e,t),this.ownerItem)))}_getFieldByName(e,t){for(const a of t)if(a.id===e)return a;return null}}
12
+ /*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) */function de(e){let t=e.length;for(;--t>=0;)e[t]=0}const pe=256,he=286,fe=30,me=15,ye=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),ge=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),be=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),ve=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),_e=new Array(576);de(_e);const we=new Array(60);de(we);const Ae=new Array(512);de(Ae);const ke=new Array(256);de(ke);const Se=new Array(29);de(Se);const Ne=new Array(fe);function xe(e,t,a,i,n){this.static_tree=e,this.extra_bits=t,this.extra_base=a,this.elems=i,this.max_length=n,this.has_stree=e&&e.length}let Te,Me,Ve;function Ce(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}de(Ne);const Ie=e=>e<256?Ae[e]:Ae[256+(e>>>7)],Fe=(e,t)=>{e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255},Ee=(e,t,a)=>{e.bi_valid>16-a?(e.bi_buf|=t<<e.bi_valid&65535,Fe(e,e.bi_buf),e.bi_buf=t>>16-e.bi_valid,e.bi_valid+=a-16):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=a)},De=(e,t,a)=>{Ee(e,a[2*t],a[2*t+1])},Le=(e,t)=>{let a=0;do{a|=1&e,e>>>=1,a<<=1}while(--t>0);return a>>>1},Re=(e,t,a)=>{const i=new Array(16);let n,r,s=0;for(n=1;n<=me;n++)s=s+a[n-1]<<1,i[n]=s;for(r=0;r<=t;r++){let t=e[2*r+1];0!==t&&(e[2*r]=Le(i[t]++,t))}},Pe=e=>{let t;for(t=0;t<he;t++)e.dyn_ltree[2*t]=0;for(t=0;t<fe;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.sym_next=e.matches=0},Oe=e=>{e.bi_valid>8?Fe(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0},Be=(e,t,a,i)=>{const n=2*t,r=2*a;return e[n]<e[r]||e[n]===e[r]&&i[t]<=i[a]},$e=(e,t,a)=>{const i=e.heap[a];let n=a<<1;for(;n<=e.heap_len&&(n<e.heap_len&&Be(t,e.heap[n+1],e.heap[n],e.depth)&&n++,!Be(t,i,e.heap[n],e.depth));)e.heap[a]=e.heap[n],a=n,n<<=1;e.heap[a]=i},je=(e,t,a)=>{let i,n,r,s,o=0;if(0!==e.sym_next)do{i=255&e.pending_buf[e.sym_buf+o++],i+=(255&e.pending_buf[e.sym_buf+o++])<<8,n=e.pending_buf[e.sym_buf+o++],0===i?De(e,n,t):(r=ke[n],De(e,r+pe+1,t),s=ye[r],0!==s&&(n-=Se[r],Ee(e,n,s)),i--,r=Ie(i),De(e,r,a),s=ge[r],0!==s&&(i-=Ne[r],Ee(e,i,s)))}while(o<e.sym_next);De(e,256,t)},Ue=(e,t)=>{const a=t.dyn_tree,i=t.stat_desc.static_tree,n=t.stat_desc.has_stree,r=t.stat_desc.elems;let s,o,l,u=-1;for(e.heap_len=0,e.heap_max=573,s=0;s<r;s++)0!==a[2*s]?(e.heap[++e.heap_len]=u=s,e.depth[s]=0):a[2*s+1]=0;for(;e.heap_len<2;)l=e.heap[++e.heap_len]=u<2?++u:0,a[2*l]=1,e.depth[l]=0,e.opt_len--,n&&(e.static_len-=i[2*l+1]);for(t.max_code=u,s=e.heap_len>>1;s>=1;s--)$e(e,a,s);l=r;do{s=e.heap[1],e.heap[1]=e.heap[e.heap_len--],$e(e,a,1),o=e.heap[1],e.heap[--e.heap_max]=s,e.heap[--e.heap_max]=o,a[2*l]=a[2*s]+a[2*o],e.depth[l]=(e.depth[s]>=e.depth[o]?e.depth[s]:e.depth[o])+1,a[2*s+1]=a[2*o+1]=l,e.heap[1]=l++,$e(e,a,1)}while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],((e,t)=>{const a=t.dyn_tree,i=t.max_code,n=t.stat_desc.static_tree,r=t.stat_desc.has_stree,s=t.stat_desc.extra_bits,o=t.stat_desc.extra_base,l=t.stat_desc.max_length;let u,c,d,p,h,f,m=0;for(p=0;p<=me;p++)e.bl_count[p]=0;for(a[2*e.heap[e.heap_max]+1]=0,u=e.heap_max+1;u<573;u++)c=e.heap[u],p=a[2*a[2*c+1]+1]+1,p>l&&(p=l,m++),a[2*c+1]=p,c>i||(e.bl_count[p]++,h=0,c>=o&&(h=s[c-o]),f=a[2*c],e.opt_len+=f*(p+h),r&&(e.static_len+=f*(n[2*c+1]+h)));if(0!==m){do{for(p=l-1;0===e.bl_count[p];)p--;e.bl_count[p]--,e.bl_count[p+1]+=2,e.bl_count[l]--,m-=2}while(m>0);for(p=l;0!==p;p--)for(c=e.bl_count[p];0!==c;)d=e.heap[--u],d>i||(a[2*d+1]!==p&&(e.opt_len+=(p-a[2*d+1])*a[2*d],a[2*d+1]=p),c--)}})(e,t),Re(a,u,e.bl_count)},ze=(e,t,a)=>{let i,n,r=-1,s=t[1],o=0,l=7,u=4;for(0===s&&(l=138,u=3),t[2*(a+1)+1]=65535,i=0;i<=a;i++)n=s,s=t[2*(i+1)+1],++o<l&&n===s||(o<u?e.bl_tree[2*n]+=o:0!==n?(n!==r&&e.bl_tree[2*n]++,e.bl_tree[32]++):o<=10?e.bl_tree[34]++:e.bl_tree[36]++,o=0,r=n,0===s?(l=138,u=3):n===s?(l=6,u=3):(l=7,u=4))},We=(e,t,a)=>{let i,n,r=-1,s=t[1],o=0,l=7,u=4;for(0===s&&(l=138,u=3),i=0;i<=a;i++)if(n=s,s=t[2*(i+1)+1],!(++o<l&&n===s)){if(o<u)do{De(e,n,e.bl_tree)}while(0!=--o);else 0!==n?(n!==r&&(De(e,n,e.bl_tree),o--),De(e,16,e.bl_tree),Ee(e,o-3,2)):o<=10?(De(e,17,e.bl_tree),Ee(e,o-3,3)):(De(e,18,e.bl_tree),Ee(e,o-11,7));o=0,r=n,0===s?(l=138,u=3):n===s?(l=6,u=3):(l=7,u=4)}};let He=!1;const Ye=(e,t,a,i)=>{Ee(e,0+(i?1:0),3),Oe(e),Fe(e,a),Fe(e,~a),a&&e.pending_buf.set(e.window.subarray(t,t+a),e.pending),e.pending+=a};var Ge=e=>{He||((()=>{let e,t,a,i,n;const r=new Array(16);for(a=0,i=0;i<28;i++)for(Se[i]=a,e=0;e<1<<ye[i];e++)ke[a++]=i;for(ke[a-1]=i,n=0,i=0;i<16;i++)for(Ne[i]=n,e=0;e<1<<ge[i];e++)Ae[n++]=i;for(n>>=7;i<fe;i++)for(Ne[i]=n<<7,e=0;e<1<<ge[i]-7;e++)Ae[256+n++]=i;for(t=0;t<=me;t++)r[t]=0;for(e=0;e<=143;)_e[2*e+1]=8,e++,r[8]++;for(;e<=255;)_e[2*e+1]=9,e++,r[9]++;for(;e<=279;)_e[2*e+1]=7,e++,r[7]++;for(;e<=287;)_e[2*e+1]=8,e++,r[8]++;for(Re(_e,287,r),e=0;e<fe;e++)we[2*e+1]=5,we[2*e]=Le(e,5);Te=new xe(_e,ye,257,he,me),Me=new xe(we,ge,0,fe,me),Ve=new xe(new Array(0),be,0,19,7)})(),He=!0),e.l_desc=new Ce(e.dyn_ltree,Te),e.d_desc=new Ce(e.dyn_dtree,Me),e.bl_desc=new Ce(e.bl_tree,Ve),e.bi_buf=0,e.bi_valid=0,Pe(e)},qe=(e,t,a,i)=>{let n,r,s=0;e.level>0?(2===e.strm.data_type&&(e.strm.data_type=(e=>{let t,a=4093624447;for(t=0;t<=31;t++,a>>>=1)if(1&a&&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<pe;t++)if(0!==e.dyn_ltree[2*t])return 1;return 0})(e)),Ue(e,e.l_desc),Ue(e,e.d_desc),s=(e=>{let t;for(ze(e,e.dyn_ltree,e.l_desc.max_code),ze(e,e.dyn_dtree,e.d_desc.max_code),Ue(e,e.bl_desc),t=18;t>=3&&0===e.bl_tree[2*ve[t]+1];t--);return e.opt_len+=3*(t+1)+5+5+4,t})(e),n=e.opt_len+3+7>>>3,r=e.static_len+3+7>>>3,r<=n&&(n=r)):n=r=a+5,a+4<=n&&-1!==t?Ye(e,t,a,i):4===e.strategy||r===n?(Ee(e,2+(i?1:0),3),je(e,_e,we)):(Ee(e,4+(i?1:0),3),((e,t,a,i)=>{let n;for(Ee(e,t-257,5),Ee(e,a-1,5),Ee(e,i-4,4),n=0;n<i;n++)Ee(e,e.bl_tree[2*ve[n]+1],3);We(e,e.dyn_ltree,t-1),We(e,e.dyn_dtree,a-1)})(e,e.l_desc.max_code+1,e.d_desc.max_code+1,s+1),je(e,e.dyn_ltree,e.dyn_dtree)),Pe(e),i&&Oe(e)},Ze={_tr_init:Ge,_tr_stored_block:Ye,_tr_flush_block:qe,_tr_tally:(e,t,a)=>(e.pending_buf[e.sym_buf+e.sym_next++]=t,e.pending_buf[e.sym_buf+e.sym_next++]=t>>8,e.pending_buf[e.sym_buf+e.sym_next++]=a,0===t?e.dyn_ltree[2*a]++:(e.matches++,t--,e.dyn_ltree[2*(ke[a]+pe+1)]++,e.dyn_dtree[2*Ie(t)]++),e.sym_next===e.sym_end),_tr_align:e=>{Ee(e,2,3),De(e,256,_e),(e=>{16===e.bi_valid?(Fe(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=255&e.bi_buf,e.bi_buf>>=8,e.bi_valid-=8)})(e)}};var Je=(e,t,a,i)=>{let n=65535&e,r=e>>>16&65535,s=0;for(;0!==a;){s=a>2e3?2e3:a,a-=s;do{n=n+t[i++]|0,r=r+n|0}while(--s);n%=65521,r%=65521}return n|r<<16};const Ke=new Uint32Array((()=>{let e,t=[];for(var a=0;a<256;a++){e=a;for(var i=0;i<8;i++)e=1&e?3988292384^e>>>1:e>>>1;t[a]=e}return t})());var Xe=(e,t,a,i)=>{const n=Ke,r=i+a;e^=-1;for(let a=i;a<r;a++)e=e>>>8^n[255&(e^t[a])];return~e},Qe={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"},et={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_MEM_ERROR:-4,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};const{_tr_init:tt,_tr_stored_block:at,_tr_flush_block:it,_tr_tally:nt,_tr_align:rt}=Ze,{Z_NO_FLUSH:st,Z_PARTIAL_FLUSH:ot,Z_FULL_FLUSH:lt,Z_FINISH:ut,Z_BLOCK:ct,Z_OK:dt,Z_STREAM_END:pt,Z_STREAM_ERROR:ht,Z_DATA_ERROR:ft,Z_BUF_ERROR:mt,Z_DEFAULT_COMPRESSION:yt,Z_FILTERED:gt,Z_HUFFMAN_ONLY:bt,Z_RLE:vt,Z_FIXED:_t,Z_DEFAULT_STRATEGY:wt,Z_UNKNOWN:At,Z_DEFLATED:kt}=et,St=258,Nt=262,xt=42,Tt=113,Mt=666,Vt=(e,t)=>(e.msg=Qe[t],t),Ct=e=>2*e-(e>4?9:0),It=e=>{let t=e.length;for(;--t>=0;)e[t]=0},Ft=e=>{let t,a,i,n=e.w_size;t=e.hash_size,i=t;do{a=e.head[--i],e.head[i]=a>=n?a-n:0}while(--t);t=n,i=t;do{a=e.prev[--i],e.prev[i]=a>=n?a-n:0}while(--t)};let Et=(e,t,a)=>(t<<e.hash_shift^a)&e.hash_mask;const Dt=e=>{const t=e.state;let a=t.pending;a>e.avail_out&&(a=e.avail_out),0!==a&&(e.output.set(t.pending_buf.subarray(t.pending_out,t.pending_out+a),e.next_out),e.next_out+=a,t.pending_out+=a,e.total_out+=a,e.avail_out-=a,t.pending-=a,0===t.pending&&(t.pending_out=0))},Lt=(e,t)=>{it(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,Dt(e.strm)},Rt=(e,t)=>{e.pending_buf[e.pending++]=t},Pt=(e,t)=>{e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t},Ot=(e,t,a,i)=>{let n=e.avail_in;return n>i&&(n=i),0===n?0:(e.avail_in-=n,t.set(e.input.subarray(e.next_in,e.next_in+n),a),1===e.state.wrap?e.adler=Je(e.adler,t,n,a):2===e.state.wrap&&(e.adler=Xe(e.adler,t,n,a)),e.next_in+=n,e.total_in+=n,n)},Bt=(e,t)=>{let a,i,n=e.max_chain_length,r=e.strstart,s=e.prev_length,o=e.nice_match;const l=e.strstart>e.w_size-Nt?e.strstart-(e.w_size-Nt):0,u=e.window,c=e.w_mask,d=e.prev,p=e.strstart+St;let h=u[r+s-1],f=u[r+s];e.prev_length>=e.good_match&&(n>>=2),o>e.lookahead&&(o=e.lookahead);do{if(a=t,u[a+s]===f&&u[a+s-1]===h&&u[a]===u[r]&&u[++a]===u[r+1]){r+=2,a++;do{}while(u[++r]===u[++a]&&u[++r]===u[++a]&&u[++r]===u[++a]&&u[++r]===u[++a]&&u[++r]===u[++a]&&u[++r]===u[++a]&&u[++r]===u[++a]&&u[++r]===u[++a]&&r<p);if(i=St-(p-r),r=p-St,i>s){if(e.match_start=t,s=i,i>=o)break;h=u[r+s-1],f=u[r+s]}}}while((t=d[t&c])>l&&0!=--n);return s<=e.lookahead?s:e.lookahead},$t=e=>{const t=e.w_size;let a,i,n;do{if(i=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-Nt)&&(e.window.set(e.window.subarray(t,t+t-i),0),e.match_start-=t,e.strstart-=t,e.block_start-=t,e.insert>e.strstart&&(e.insert=e.strstart),Ft(e),i+=t),0===e.strm.avail_in)break;if(a=Ot(e.strm,e.window,e.strstart+e.lookahead,i),e.lookahead+=a,e.lookahead+e.insert>=3)for(n=e.strstart-e.insert,e.ins_h=e.window[n],e.ins_h=Et(e,e.ins_h,e.window[n+1]);e.insert&&(e.ins_h=Et(e,e.ins_h,e.window[n+3-1]),e.prev[n&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=n,n++,e.insert--,!(e.lookahead+e.insert<3)););}while(e.lookahead<Nt&&0!==e.strm.avail_in)},jt=(e,t)=>{let a,i,n,r=e.pending_buf_size-5>e.w_size?e.w_size:e.pending_buf_size-5,s=0,o=e.strm.avail_in;do{if(a=65535,n=e.bi_valid+42>>3,e.strm.avail_out<n)break;if(n=e.strm.avail_out-n,i=e.strstart-e.block_start,a>i+e.strm.avail_in&&(a=i+e.strm.avail_in),a>n&&(a=n),a<r&&(0===a&&t!==ut||t===st||a!==i+e.strm.avail_in))break;s=t===ut&&a===i+e.strm.avail_in?1:0,at(e,0,0,s),e.pending_buf[e.pending-4]=a,e.pending_buf[e.pending-3]=a>>8,e.pending_buf[e.pending-2]=~a,e.pending_buf[e.pending-1]=~a>>8,Dt(e.strm),i&&(i>a&&(i=a),e.strm.output.set(e.window.subarray(e.block_start,e.block_start+i),e.strm.next_out),e.strm.next_out+=i,e.strm.avail_out-=i,e.strm.total_out+=i,e.block_start+=i,a-=i),a&&(Ot(e.strm,e.strm.output,e.strm.next_out,a),e.strm.next_out+=a,e.strm.avail_out-=a,e.strm.total_out+=a)}while(0===s);return o-=e.strm.avail_in,o&&(o>=e.w_size?(e.matches=2,e.window.set(e.strm.input.subarray(e.strm.next_in-e.w_size,e.strm.next_in),0),e.strstart=e.w_size,e.insert=e.strstart):(e.window_size-e.strstart<=o&&(e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,e.insert>e.strstart&&(e.insert=e.strstart)),e.window.set(e.strm.input.subarray(e.strm.next_in-o,e.strm.next_in),e.strstart),e.strstart+=o,e.insert+=o>e.w_size-e.insert?e.w_size-e.insert:o),e.block_start=e.strstart),e.high_water<e.strstart&&(e.high_water=e.strstart),s?4:t!==st&&t!==ut&&0===e.strm.avail_in&&e.strstart===e.block_start?2:(n=e.window_size-e.strstart,e.strm.avail_in>n&&e.block_start>=e.w_size&&(e.block_start-=e.w_size,e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,n+=e.w_size,e.insert>e.strstart&&(e.insert=e.strstart)),n>e.strm.avail_in&&(n=e.strm.avail_in),n&&(Ot(e.strm,e.window,e.strstart,n),e.strstart+=n,e.insert+=n>e.w_size-e.insert?e.w_size-e.insert:n),e.high_water<e.strstart&&(e.high_water=e.strstart),n=e.bi_valid+42>>3,n=e.pending_buf_size-n>65535?65535:e.pending_buf_size-n,r=n>e.w_size?e.w_size:n,i=e.strstart-e.block_start,(i>=r||(i||t===ut)&&t!==st&&0===e.strm.avail_in&&i<=n)&&(a=i>n?n:i,s=t===ut&&0===e.strm.avail_in&&a===i?1:0,at(e,e.block_start,a,s),e.block_start+=a,Dt(e.strm)),s?3:1)},Ut=(e,t)=>{let a,i;for(;;){if(e.lookahead<Nt){if($t(e),e.lookahead<Nt&&t===st)return 1;if(0===e.lookahead)break}if(a=0,e.lookahead>=3&&(e.ins_h=Et(e,e.ins_h,e.window[e.strstart+3-1]),a=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),0!==a&&e.strstart-a<=e.w_size-Nt&&(e.match_length=Bt(e,a)),e.match_length>=3)if(i=nt(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){e.match_length--;do{e.strstart++,e.ins_h=Et(e,e.ins_h,e.window[e.strstart+3-1]),a=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart}while(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=Et(e,e.ins_h,e.window[e.strstart+1]);else i=nt(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(i&&(Lt(e,!1),0===e.strm.avail_out))return 1}return e.insert=e.strstart<2?e.strstart:2,t===ut?(Lt(e,!0),0===e.strm.avail_out?3:4):e.sym_next&&(Lt(e,!1),0===e.strm.avail_out)?1:2},zt=(e,t)=>{let a,i,n;for(;;){if(e.lookahead<Nt){if($t(e),e.lookahead<Nt&&t===st)return 1;if(0===e.lookahead)break}if(a=0,e.lookahead>=3&&(e.ins_h=Et(e,e.ins_h,e.window[e.strstart+3-1]),a=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!==a&&e.prev_length<e.max_lazy_match&&e.strstart-a<=e.w_size-Nt&&(e.match_length=Bt(e,a),e.match_length<=5&&(e.strategy===gt||3===e.match_length&&e.strstart-e.match_start>4096)&&(e.match_length=2)),e.prev_length>=3&&e.match_length<=e.prev_length){n=e.strstart+e.lookahead-3,i=nt(e,e.strstart-1-e.prev_match,e.prev_length-3),e.lookahead-=e.prev_length-1,e.prev_length-=2;do{++e.strstart<=n&&(e.ins_h=Et(e,e.ins_h,e.window[e.strstart+3-1]),a=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart)}while(0!=--e.prev_length);if(e.match_available=0,e.match_length=2,e.strstart++,i&&(Lt(e,!1),0===e.strm.avail_out))return 1}else if(e.match_available){if(i=nt(e,0,e.window[e.strstart-1]),i&&Lt(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&&(i=nt(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<2?e.strstart:2,t===ut?(Lt(e,!0),0===e.strm.avail_out?3:4):e.sym_next&&(Lt(e,!1),0===e.strm.avail_out)?1:2};function Wt(e,t,a,i,n){this.good_length=e,this.max_lazy=t,this.nice_length=a,this.max_chain=i,this.func=n}const Ht=[new Wt(0,0,0,0,jt),new Wt(4,4,8,4,Ut),new Wt(4,5,16,8,Ut),new Wt(4,6,32,32,Ut),new Wt(4,4,16,16,zt),new Wt(8,16,32,32,zt),new Wt(8,16,128,128,zt),new Wt(8,32,128,256,zt),new Wt(32,128,258,1024,zt),new Wt(32,258,258,4096,zt)];function Yt(){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=kt,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 Uint16Array(1146),this.dyn_dtree=new Uint16Array(122),this.bl_tree=new Uint16Array(78),It(this.dyn_ltree),It(this.dyn_dtree),It(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(16),this.heap=new Uint16Array(573),It(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(573),It(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}const Gt=e=>{if(!e)return 1;const t=e.state;return!t||t.strm!==e||t.status!==xt&&57!==t.status&&69!==t.status&&73!==t.status&&91!==t.status&&103!==t.status&&t.status!==Tt&&t.status!==Mt?1:0},qt=e=>{if(Gt(e))return Vt(e,ht);e.total_in=e.total_out=0,e.data_type=At;const t=e.state;return t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=2===t.wrap?57:t.wrap?xt:Tt,e.adler=2===t.wrap?0:1,t.last_flush=-2,tt(t),dt},Zt=e=>{const t=qt(e);var a;return t===dt&&((a=e.state).window_size=2*a.w_size,It(a.head),a.max_lazy_match=Ht[a.level].max_lazy,a.good_match=Ht[a.level].good_length,a.nice_match=Ht[a.level].nice_length,a.max_chain_length=Ht[a.level].max_chain,a.strstart=0,a.block_start=0,a.lookahead=0,a.insert=0,a.match_length=a.prev_length=2,a.match_available=0,a.ins_h=0),t},Jt=(e,t,a,i,n,r)=>{if(!e)return ht;let s=1;if(t===yt&&(t=6),i<0?(s=0,i=-i):i>15&&(s=2,i-=16),n<1||n>9||a!==kt||i<8||i>15||t<0||t>9||r<0||r>_t||8===i&&1!==s)return Vt(e,ht);8===i&&(i=9);const o=new Yt;return e.state=o,o.strm=e,o.status=xt,o.wrap=s,o.gzhead=null,o.w_bits=i,o.w_size=1<<o.w_bits,o.w_mask=o.w_size-1,o.hash_bits=n+7,o.hash_size=1<<o.hash_bits,o.hash_mask=o.hash_size-1,o.hash_shift=~~((o.hash_bits+3-1)/3),o.window=new Uint8Array(2*o.w_size),o.head=new Uint16Array(o.hash_size),o.prev=new Uint16Array(o.w_size),o.lit_bufsize=1<<n+6,o.pending_buf_size=4*o.lit_bufsize,o.pending_buf=new Uint8Array(o.pending_buf_size),o.sym_buf=o.lit_bufsize,o.sym_end=3*(o.lit_bufsize-1),o.level=t,o.strategy=r,o.method=a,Zt(e)};var Kt=(e,t)=>{if(Gt(e)||t>ct||t<0)return e?Vt(e,ht):ht;const a=e.state;if(!e.output||0!==e.avail_in&&!e.input||a.status===Mt&&t!==ut)return Vt(e,0===e.avail_out?mt:ht);const i=a.last_flush;if(a.last_flush=t,0!==a.pending){if(Dt(e),0===e.avail_out)return a.last_flush=-1,dt}else if(0===e.avail_in&&Ct(t)<=Ct(i)&&t!==ut)return Vt(e,mt);if(a.status===Mt&&0!==e.avail_in)return Vt(e,mt);if(a.status===xt&&0===a.wrap&&(a.status=Tt),a.status===xt){let t=kt+(a.w_bits-8<<4)<<8,i=-1;if(i=a.strategy>=bt||a.level<2?0:a.level<6?1:6===a.level?2:3,t|=i<<6,0!==a.strstart&&(t|=32),t+=31-t%31,Pt(a,t),0!==a.strstart&&(Pt(a,e.adler>>>16),Pt(a,65535&e.adler)),e.adler=1,a.status=Tt,Dt(e),0!==a.pending)return a.last_flush=-1,dt}if(57===a.status)if(e.adler=0,Rt(a,31),Rt(a,139),Rt(a,8),a.gzhead)Rt(a,(a.gzhead.text?1:0)+(a.gzhead.hcrc?2:0)+(a.gzhead.extra?4:0)+(a.gzhead.name?8:0)+(a.gzhead.comment?16:0)),Rt(a,255&a.gzhead.time),Rt(a,a.gzhead.time>>8&255),Rt(a,a.gzhead.time>>16&255),Rt(a,a.gzhead.time>>24&255),Rt(a,9===a.level?2:a.strategy>=bt||a.level<2?4:0),Rt(a,255&a.gzhead.os),a.gzhead.extra&&a.gzhead.extra.length&&(Rt(a,255&a.gzhead.extra.length),Rt(a,a.gzhead.extra.length>>8&255)),a.gzhead.hcrc&&(e.adler=Xe(e.adler,a.pending_buf,a.pending,0)),a.gzindex=0,a.status=69;else if(Rt(a,0),Rt(a,0),Rt(a,0),Rt(a,0),Rt(a,0),Rt(a,9===a.level?2:a.strategy>=bt||a.level<2?4:0),Rt(a,3),a.status=Tt,Dt(e),0!==a.pending)return a.last_flush=-1,dt;if(69===a.status){if(a.gzhead.extra){let t=a.pending,i=(65535&a.gzhead.extra.length)-a.gzindex;for(;a.pending+i>a.pending_buf_size;){let n=a.pending_buf_size-a.pending;if(a.pending_buf.set(a.gzhead.extra.subarray(a.gzindex,a.gzindex+n),a.pending),a.pending=a.pending_buf_size,a.gzhead.hcrc&&a.pending>t&&(e.adler=Xe(e.adler,a.pending_buf,a.pending-t,t)),a.gzindex+=n,Dt(e),0!==a.pending)return a.last_flush=-1,dt;t=0,i-=n}let n=new Uint8Array(a.gzhead.extra);a.pending_buf.set(n.subarray(a.gzindex,a.gzindex+i),a.pending),a.pending+=i,a.gzhead.hcrc&&a.pending>t&&(e.adler=Xe(e.adler,a.pending_buf,a.pending-t,t)),a.gzindex=0}a.status=73}if(73===a.status){if(a.gzhead.name){let t,i=a.pending;do{if(a.pending===a.pending_buf_size){if(a.gzhead.hcrc&&a.pending>i&&(e.adler=Xe(e.adler,a.pending_buf,a.pending-i,i)),Dt(e),0!==a.pending)return a.last_flush=-1,dt;i=0}t=a.gzindex<a.gzhead.name.length?255&a.gzhead.name.charCodeAt(a.gzindex++):0,Rt(a,t)}while(0!==t);a.gzhead.hcrc&&a.pending>i&&(e.adler=Xe(e.adler,a.pending_buf,a.pending-i,i)),a.gzindex=0}a.status=91}if(91===a.status){if(a.gzhead.comment){let t,i=a.pending;do{if(a.pending===a.pending_buf_size){if(a.gzhead.hcrc&&a.pending>i&&(e.adler=Xe(e.adler,a.pending_buf,a.pending-i,i)),Dt(e),0!==a.pending)return a.last_flush=-1,dt;i=0}t=a.gzindex<a.gzhead.comment.length?255&a.gzhead.comment.charCodeAt(a.gzindex++):0,Rt(a,t)}while(0!==t);a.gzhead.hcrc&&a.pending>i&&(e.adler=Xe(e.adler,a.pending_buf,a.pending-i,i))}a.status=103}if(103===a.status){if(a.gzhead.hcrc){if(a.pending+2>a.pending_buf_size&&(Dt(e),0!==a.pending))return a.last_flush=-1,dt;Rt(a,255&e.adler),Rt(a,e.adler>>8&255),e.adler=0}if(a.status=Tt,Dt(e),0!==a.pending)return a.last_flush=-1,dt}if(0!==e.avail_in||0!==a.lookahead||t!==st&&a.status!==Mt){let i=0===a.level?jt(a,t):a.strategy===bt?((e,t)=>{let a;for(;;){if(0===e.lookahead&&($t(e),0===e.lookahead)){if(t===st)return 1;break}if(e.match_length=0,a=nt(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,a&&(Lt(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,t===ut?(Lt(e,!0),0===e.strm.avail_out?3:4):e.sym_next&&(Lt(e,!1),0===e.strm.avail_out)?1:2})(a,t):a.strategy===vt?((e,t)=>{let a,i,n,r;const s=e.window;for(;;){if(e.lookahead<=St){if($t(e),e.lookahead<=St&&t===st)return 1;if(0===e.lookahead)break}if(e.match_length=0,e.lookahead>=3&&e.strstart>0&&(n=e.strstart-1,i=s[n],i===s[++n]&&i===s[++n]&&i===s[++n])){r=e.strstart+St;do{}while(i===s[++n]&&i===s[++n]&&i===s[++n]&&i===s[++n]&&i===s[++n]&&i===s[++n]&&i===s[++n]&&i===s[++n]&&n<r);e.match_length=St-(r-n),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=3?(a=nt(e,1,e.match_length-3),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(a=nt(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),a&&(Lt(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,t===ut?(Lt(e,!0),0===e.strm.avail_out?3:4):e.sym_next&&(Lt(e,!1),0===e.strm.avail_out)?1:2})(a,t):Ht[a.level].func(a,t);if(3!==i&&4!==i||(a.status=Mt),1===i||3===i)return 0===e.avail_out&&(a.last_flush=-1),dt;if(2===i&&(t===ot?rt(a):t!==ct&&(at(a,0,0,!1),t===lt&&(It(a.head),0===a.lookahead&&(a.strstart=0,a.block_start=0,a.insert=0))),Dt(e),0===e.avail_out))return a.last_flush=-1,dt}return t!==ut?dt:a.wrap<=0?pt:(2===a.wrap?(Rt(a,255&e.adler),Rt(a,e.adler>>8&255),Rt(a,e.adler>>16&255),Rt(a,e.adler>>24&255),Rt(a,255&e.total_in),Rt(a,e.total_in>>8&255),Rt(a,e.total_in>>16&255),Rt(a,e.total_in>>24&255)):(Pt(a,e.adler>>>16),Pt(a,65535&e.adler)),Dt(e),a.wrap>0&&(a.wrap=-a.wrap),0!==a.pending?dt:pt)},Xt={deflateInit:(e,t)=>Jt(e,t,kt,15,8,wt),deflateInit2:Jt,deflateReset:Zt,deflateResetKeep:qt,deflateSetHeader:(e,t)=>Gt(e)||2!==e.state.wrap?ht:(e.state.gzhead=t,dt),deflate:Kt,deflateEnd:e=>{if(Gt(e))return ht;const t=e.state.status;return e.state=null,t===Tt?Vt(e,ft):dt},deflateSetDictionary:(e,t)=>{let a=t.length;if(Gt(e))return ht;const i=e.state,n=i.wrap;if(2===n||1===n&&i.status!==xt||i.lookahead)return ht;if(1===n&&(e.adler=Je(e.adler,t,a,0)),i.wrap=0,a>=i.w_size){0===n&&(It(i.head),i.strstart=0,i.block_start=0,i.insert=0);let e=new Uint8Array(i.w_size);e.set(t.subarray(a-i.w_size,a),0),t=e,a=i.w_size}const r=e.avail_in,s=e.next_in,o=e.input;for(e.avail_in=a,e.next_in=0,e.input=t,$t(i);i.lookahead>=3;){let e=i.strstart,t=i.lookahead-2;do{i.ins_h=Et(i,i.ins_h,i.window[e+3-1]),i.prev[e&i.w_mask]=i.head[i.ins_h],i.head[i.ins_h]=e,e++}while(--t);i.strstart=e,i.lookahead=2,$t(i)}return i.strstart+=i.lookahead,i.block_start=i.strstart,i.insert=i.lookahead,i.lookahead=0,i.match_length=i.prev_length=2,i.match_available=0,e.next_in=s,e.input=o,e.avail_in=r,i.wrap=n,dt},deflateInfo:"pako deflate (from Nodeca project)"};const Qt=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var ea=function(e){const t=Array.prototype.slice.call(arguments,1);for(;t.length;){const a=t.shift();if(a){if("object"!=typeof a)throw new TypeError(a+"must be non-object");for(const t in a)Qt(a,t)&&(e[t]=a[t])}}return e},ta=e=>{let t=0;for(let a=0,i=e.length;a<i;a++)t+=e[a].length;const a=new Uint8Array(t);for(let t=0,i=0,n=e.length;t<n;t++){let n=e[t];a.set(n,i),i+=n.length}return a};let aa=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(e){aa=!1}const ia=new Uint8Array(256);for(let e=0;e<256;e++)ia[e]=e>=252?6:e>=248?5:e>=240?4:e>=224?3:e>=192?2:1;ia[254]=ia[254]=1;var na=e=>{if("function"==typeof TextEncoder&&TextEncoder.prototype.encode)return(new TextEncoder).encode(e);let t,a,i,n,r,s=e.length,o=0;for(n=0;n<s;n++)a=e.charCodeAt(n),55296==(64512&a)&&n+1<s&&(i=e.charCodeAt(n+1),56320==(64512&i)&&(a=65536+(a-55296<<10)+(i-56320),n++)),o+=a<128?1:a<2048?2:a<65536?3:4;for(t=new Uint8Array(o),r=0,n=0;r<o;n++)a=e.charCodeAt(n),55296==(64512&a)&&n+1<s&&(i=e.charCodeAt(n+1),56320==(64512&i)&&(a=65536+(a-55296<<10)+(i-56320),n++)),a<128?t[r++]=a:a<2048?(t[r++]=192|a>>>6,t[r++]=128|63&a):a<65536?(t[r++]=224|a>>>12,t[r++]=128|a>>>6&63,t[r++]=128|63&a):(t[r++]=240|a>>>18,t[r++]=128|a>>>12&63,t[r++]=128|a>>>6&63,t[r++]=128|63&a);return t},ra=(e,t)=>{const a=t||e.length;if("function"==typeof TextDecoder&&TextDecoder.prototype.decode)return(new TextDecoder).decode(e.subarray(0,t));let i,n;const r=new Array(2*a);for(n=0,i=0;i<a;){let t=e[i++];if(t<128){r[n++]=t;continue}let s=ia[t];if(s>4)r[n++]=65533,i+=s-1;else{for(t&=2===s?31:3===s?15:7;s>1&&i<a;)t=t<<6|63&e[i++],s--;s>1?r[n++]=65533:t<65536?r[n++]=t:(t-=65536,r[n++]=55296|t>>10&1023,r[n++]=56320|1023&t)}}return((e,t)=>{if(t<65534&&e.subarray&&aa)return String.fromCharCode.apply(null,e.length===t?e:e.subarray(0,t));let a="";for(let i=0;i<t;i++)a+=String.fromCharCode(e[i]);return a})(r,n)},sa=(e,t)=>{(t=t||e.length)>e.length&&(t=e.length);let a=t-1;for(;a>=0&&128==(192&e[a]);)a--;return a<0||0===a?t:a+ia[e[a]]>t?a:t};var oa=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};const la=Object.prototype.toString,{Z_NO_FLUSH:ua,Z_SYNC_FLUSH:ca,Z_FULL_FLUSH:da,Z_FINISH:pa,Z_OK:ha,Z_STREAM_END:fa,Z_DEFAULT_COMPRESSION:ma,Z_DEFAULT_STRATEGY:ya,Z_DEFLATED:ga}=et;function ba(e){this.options=ea({level:ma,method:ga,chunkSize:16384,windowBits:15,memLevel:8,strategy:ya},e||{});let t=this.options;t.raw&&t.windowBits>0?t.windowBits=-t.windowBits:t.gzip&&t.windowBits>0&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new oa,this.strm.avail_out=0;let a=Xt.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(a!==ha)throw new Error(Qe[a]);if(t.header&&Xt.deflateSetHeader(this.strm,t.header),t.dictionary){let e;if(e="string"==typeof t.dictionary?na(t.dictionary):"[object ArrayBuffer]"===la.call(t.dictionary)?new Uint8Array(t.dictionary):t.dictionary,a=Xt.deflateSetDictionary(this.strm,e),a!==ha)throw new Error(Qe[a]);this._dict_set=!0}}function va(e,t){const a=new ba(t);if(a.push(e,!0),a.err)throw a.msg||Qe[a.err];return a.result}ba.prototype.push=function(e,t){const a=this.strm,i=this.options.chunkSize;let n,r;if(this.ended)return!1;for(r=t===~~t?t:!0===t?pa:ua,"string"==typeof e?a.input=na(e):"[object ArrayBuffer]"===la.call(e)?a.input=new Uint8Array(e):a.input=e,a.next_in=0,a.avail_in=a.input.length;;)if(0===a.avail_out&&(a.output=new Uint8Array(i),a.next_out=0,a.avail_out=i),(r===ca||r===da)&&a.avail_out<=6)this.onData(a.output.subarray(0,a.next_out)),a.avail_out=0;else{if(n=Xt.deflate(a,r),n===fa)return a.next_out>0&&this.onData(a.output.subarray(0,a.next_out)),n=Xt.deflateEnd(this.strm),this.onEnd(n),this.ended=!0,n===ha;if(0!==a.avail_out){if(r>0&&a.next_out>0)this.onData(a.output.subarray(0,a.next_out)),a.avail_out=0;else if(0===a.avail_in)break}else this.onData(a.output)}return!0},ba.prototype.onData=function(e){this.chunks.push(e)},ba.prototype.onEnd=function(e){e===ha&&(this.result=ta(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};var _a=function(e,t){return(t=t||{}).raw=!0,va(e,t)},wa=function(e,t){return(t=t||{}).gzip=!0,va(e,t)},Aa={Deflate:ba,deflate:va,deflateRaw:_a,gzip:wa};const ka=16209;var Sa=function(e,t){let a,i,n,r,s,o,l,u,c,d,p,h,f,m,y,g,b,v,_,w,A,k,S,N;const x=e.state;a=e.next_in,S=e.input,i=a+(e.avail_in-5),n=e.next_out,N=e.output,r=n-(t-e.avail_out),s=n+(e.avail_out-257),o=x.dmax,l=x.wsize,u=x.whave,c=x.wnext,d=x.window,p=x.hold,h=x.bits,f=x.lencode,m=x.distcode,y=(1<<x.lenbits)-1,g=(1<<x.distbits)-1;e:do{h<15&&(p+=S[a++]<<h,h+=8,p+=S[a++]<<h,h+=8),b=f[p&y];t:for(;;){if(v=b>>>24,p>>>=v,h-=v,v=b>>>16&255,0===v)N[n++]=65535&b;else{if(!(16&v)){if(64&v){if(32&v){x.mode=16191;break e}e.msg="invalid literal/length code",x.mode=ka;break e}b=f[(65535&b)+(p&(1<<v)-1)];continue t}for(_=65535&b,v&=15,v&&(h<v&&(p+=S[a++]<<h,h+=8),_+=p&(1<<v)-1,p>>>=v,h-=v),h<15&&(p+=S[a++]<<h,h+=8,p+=S[a++]<<h,h+=8),b=m[p&g];;){if(v=b>>>24,p>>>=v,h-=v,v=b>>>16&255,16&v){if(w=65535&b,v&=15,h<v&&(p+=S[a++]<<h,h+=8,h<v&&(p+=S[a++]<<h,h+=8)),w+=p&(1<<v)-1,w>o){e.msg="invalid distance too far back",x.mode=ka;break e}if(p>>>=v,h-=v,v=n-r,w>v){if(v=w-v,v>u&&x.sane){e.msg="invalid distance too far back",x.mode=ka;break e}if(A=0,k=d,0===c){if(A+=l-v,v<_){_-=v;do{N[n++]=d[A++]}while(--v);A=n-w,k=N}}else if(c<v){if(A+=l+c-v,v-=c,v<_){_-=v;do{N[n++]=d[A++]}while(--v);if(A=0,c<_){v=c,_-=v;do{N[n++]=d[A++]}while(--v);A=n-w,k=N}}}else if(A+=c-v,v<_){_-=v;do{N[n++]=d[A++]}while(--v);A=n-w,k=N}for(;_>2;)N[n++]=k[A++],N[n++]=k[A++],N[n++]=k[A++],_-=3;_&&(N[n++]=k[A++],_>1&&(N[n++]=k[A++]))}else{A=n-w;do{N[n++]=N[A++],N[n++]=N[A++],N[n++]=N[A++],_-=3}while(_>2);_&&(N[n++]=N[A++],_>1&&(N[n++]=N[A++]))}break}if(64&v){e.msg="invalid distance code",x.mode=ka;break e}b=m[(65535&b)+(p&(1<<v)-1)]}}break}}while(a<i&&n<s);_=h>>3,a-=_,h-=_<<3,p&=(1<<h)-1,e.next_in=a,e.next_out=n,e.avail_in=a<i?i-a+5:5-(a-i),e.avail_out=n<s?s-n+257:257-(n-s),x.hold=p,x.bits=h};const Na=15,xa=new Uint16Array([3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0]),Ta=new Uint8Array([16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78]),Ma=new Uint16Array([1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0]),Va=new Uint8Array([16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64]);var Ca=(e,t,a,i,n,r,s,o)=>{const l=o.bits;let u,c,d,p,h,f,m=0,y=0,g=0,b=0,v=0,_=0,w=0,A=0,k=0,S=0,N=null;const x=new Uint16Array(16),T=new Uint16Array(16);let M,V,C,I=null;for(m=0;m<=Na;m++)x[m]=0;for(y=0;y<i;y++)x[t[a+y]]++;for(v=l,b=Na;b>=1&&0===x[b];b--);if(v>b&&(v=b),0===b)return n[r++]=20971520,n[r++]=20971520,o.bits=1,0;for(g=1;g<b&&0===x[g];g++);for(v<g&&(v=g),A=1,m=1;m<=Na;m++)if(A<<=1,A-=x[m],A<0)return-1;if(A>0&&(0===e||1!==b))return-1;for(T[1]=0,m=1;m<Na;m++)T[m+1]=T[m]+x[m];for(y=0;y<i;y++)0!==t[a+y]&&(s[T[t[a+y]]++]=y);if(0===e?(N=I=s,f=20):1===e?(N=xa,I=Ta,f=257):(N=Ma,I=Va,f=0),S=0,y=0,m=g,h=r,_=v,w=0,d=-1,k=1<<v,p=k-1,1===e&&k>852||2===e&&k>592)return 1;for(;;){M=m-w,s[y]+1<f?(V=0,C=s[y]):s[y]>=f?(V=I[s[y]-f],C=N[s[y]-f]):(V=96,C=0),u=1<<m-w,c=1<<_,g=c;do{c-=u,n[h+(S>>w)+c]=M<<24|V<<16|C}while(0!==c);for(u=1<<m-1;S&u;)u>>=1;if(0!==u?(S&=u-1,S+=u):S=0,y++,0==--x[m]){if(m===b)break;m=t[a+s[y]]}if(m>v&&(S&p)!==d){for(0===w&&(w=v),h+=g,_=m-w,A=1<<_;_+w<b&&(A-=x[_+w],!(A<=0));)_++,A<<=1;if(k+=1<<_,1===e&&k>852||2===e&&k>592)return 1;d=S&p,n[d]=v<<24|_<<16|h-r}}return 0!==S&&(n[h+S]=m-w<<24|64<<16),o.bits=v,0};const{Z_FINISH:Ia,Z_BLOCK:Fa,Z_TREES:Ea,Z_OK:Da,Z_STREAM_END:La,Z_NEED_DICT:Ra,Z_STREAM_ERROR:Pa,Z_DATA_ERROR:Oa,Z_MEM_ERROR:Ba,Z_BUF_ERROR:$a,Z_DEFLATED:ja}=et,Ua=16180,za=16190,Wa=16191,Ha=16192,Ya=16194,Ga=16199,qa=16200,Za=16206,Ja=16209,Ka=e=>(e>>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24);function Xa(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}const Qa=e=>{if(!e)return 1;const t=e.state;return!t||t.strm!==e||t.mode<Ua||t.mode>16211?1:0},ei=e=>{if(Qa(e))return Pa;const t=e.state;return e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=1&t.wrap),t.mode=Ua,t.last=0,t.havedict=0,t.flags=-1,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Int32Array(852),t.distcode=t.distdyn=new Int32Array(592),t.sane=1,t.back=-1,Da},ti=e=>{if(Qa(e))return Pa;const t=e.state;return t.wsize=0,t.whave=0,t.wnext=0,ei(e)},ai=(e,t)=>{let a;if(Qa(e))return Pa;const i=e.state;return t<0?(a=0,t=-t):(a=5+(t>>4),t<48&&(t&=15)),t&&(t<8||t>15)?Pa:(null!==i.window&&i.wbits!==t&&(i.window=null),i.wrap=a,i.wbits=t,ti(e))},ii=(e,t)=>{if(!e)return Pa;const a=new Xa;e.state=a,a.strm=e,a.window=null,a.mode=Ua;const i=ai(e,t);return i!==Da&&(e.state=null),i};let ni,ri,si=!0;const oi=e=>{if(si){ni=new Int32Array(512),ri=new Int32Array(32);let t=0;for(;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(Ca(1,e.lens,0,288,ni,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;Ca(2,e.lens,0,32,ri,0,e.work,{bits:5}),si=!1}e.lencode=ni,e.lenbits=9,e.distcode=ri,e.distbits=5},li=(e,t,a,i)=>{let n;const r=e.state;return null===r.window&&(r.wsize=1<<r.wbits,r.wnext=0,r.whave=0,r.window=new Uint8Array(r.wsize)),i>=r.wsize?(r.window.set(t.subarray(a-r.wsize,a),0),r.wnext=0,r.whave=r.wsize):(n=r.wsize-r.wnext,n>i&&(n=i),r.window.set(t.subarray(a-i,a-i+n),r.wnext),(i-=n)?(r.window.set(t.subarray(a-i,a),0),r.wnext=i,r.whave=r.wsize):(r.wnext+=n,r.wnext===r.wsize&&(r.wnext=0),r.whave<r.wsize&&(r.whave+=n))),0};var ui=(e,t)=>{let a,i,n,r,s,o,l,u,c,d,p,h,f,m,y,g,b,v,_,w,A,k,S=0;const N=new Uint8Array(4);let x,T;const M=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(Qa(e)||!e.output||!e.input&&0!==e.avail_in)return Pa;a=e.state,a.mode===Wa&&(a.mode=Ha),s=e.next_out,n=e.output,l=e.avail_out,r=e.next_in,i=e.input,o=e.avail_in,u=a.hold,c=a.bits,d=o,p=l,k=Da;e:for(;;)switch(a.mode){case Ua:if(0===a.wrap){a.mode=Ha;break}for(;c<16;){if(0===o)break e;o--,u+=i[r++]<<c,c+=8}if(2&a.wrap&&35615===u){0===a.wbits&&(a.wbits=15),a.check=0,N[0]=255&u,N[1]=u>>>8&255,a.check=Xe(a.check,N,2,0),u=0,c=0,a.mode=16181;break}if(a.head&&(a.head.done=!1),!(1&a.wrap)||(((255&u)<<8)+(u>>8))%31){e.msg="incorrect header check",a.mode=Ja;break}if((15&u)!==ja){e.msg="unknown compression method",a.mode=Ja;break}if(u>>>=4,c-=4,A=8+(15&u),0===a.wbits&&(a.wbits=A),A>15||A>a.wbits){e.msg="invalid window size",a.mode=Ja;break}a.dmax=1<<a.wbits,a.flags=0,e.adler=a.check=1,a.mode=512&u?16189:Wa,u=0,c=0;break;case 16181:for(;c<16;){if(0===o)break e;o--,u+=i[r++]<<c,c+=8}if(a.flags=u,(255&a.flags)!==ja){e.msg="unknown compression method",a.mode=Ja;break}if(57344&a.flags){e.msg="unknown header flags set",a.mode=Ja;break}a.head&&(a.head.text=u>>8&1),512&a.flags&&4&a.wrap&&(N[0]=255&u,N[1]=u>>>8&255,a.check=Xe(a.check,N,2,0)),u=0,c=0,a.mode=16182;case 16182:for(;c<32;){if(0===o)break e;o--,u+=i[r++]<<c,c+=8}a.head&&(a.head.time=u),512&a.flags&&4&a.wrap&&(N[0]=255&u,N[1]=u>>>8&255,N[2]=u>>>16&255,N[3]=u>>>24&255,a.check=Xe(a.check,N,4,0)),u=0,c=0,a.mode=16183;case 16183:for(;c<16;){if(0===o)break e;o--,u+=i[r++]<<c,c+=8}a.head&&(a.head.xflags=255&u,a.head.os=u>>8),512&a.flags&&4&a.wrap&&(N[0]=255&u,N[1]=u>>>8&255,a.check=Xe(a.check,N,2,0)),u=0,c=0,a.mode=16184;case 16184:if(1024&a.flags){for(;c<16;){if(0===o)break e;o--,u+=i[r++]<<c,c+=8}a.length=u,a.head&&(a.head.extra_len=u),512&a.flags&&4&a.wrap&&(N[0]=255&u,N[1]=u>>>8&255,a.check=Xe(a.check,N,2,0)),u=0,c=0}else a.head&&(a.head.extra=null);a.mode=16185;case 16185:if(1024&a.flags&&(h=a.length,h>o&&(h=o),h&&(a.head&&(A=a.head.extra_len-a.length,a.head.extra||(a.head.extra=new Uint8Array(a.head.extra_len)),a.head.extra.set(i.subarray(r,r+h),A)),512&a.flags&&4&a.wrap&&(a.check=Xe(a.check,i,h,r)),o-=h,r+=h,a.length-=h),a.length))break e;a.length=0,a.mode=16186;case 16186:if(2048&a.flags){if(0===o)break e;h=0;do{A=i[r+h++],a.head&&A&&a.length<65536&&(a.head.name+=String.fromCharCode(A))}while(A&&h<o);if(512&a.flags&&4&a.wrap&&(a.check=Xe(a.check,i,h,r)),o-=h,r+=h,A)break e}else a.head&&(a.head.name=null);a.length=0,a.mode=16187;case 16187:if(4096&a.flags){if(0===o)break e;h=0;do{A=i[r+h++],a.head&&A&&a.length<65536&&(a.head.comment+=String.fromCharCode(A))}while(A&&h<o);if(512&a.flags&&4&a.wrap&&(a.check=Xe(a.check,i,h,r)),o-=h,r+=h,A)break e}else a.head&&(a.head.comment=null);a.mode=16188;case 16188:if(512&a.flags){for(;c<16;){if(0===o)break e;o--,u+=i[r++]<<c,c+=8}if(4&a.wrap&&u!==(65535&a.check)){e.msg="header crc mismatch",a.mode=Ja;break}u=0,c=0}a.head&&(a.head.hcrc=a.flags>>9&1,a.head.done=!0),e.adler=a.check=0,a.mode=Wa;break;case 16189:for(;c<32;){if(0===o)break e;o--,u+=i[r++]<<c,c+=8}e.adler=a.check=Ka(u),u=0,c=0,a.mode=za;case za:if(0===a.havedict)return e.next_out=s,e.avail_out=l,e.next_in=r,e.avail_in=o,a.hold=u,a.bits=c,Ra;e.adler=a.check=1,a.mode=Wa;case Wa:if(t===Fa||t===Ea)break e;case Ha:if(a.last){u>>>=7&c,c-=7&c,a.mode=Za;break}for(;c<3;){if(0===o)break e;o--,u+=i[r++]<<c,c+=8}switch(a.last=1&u,u>>>=1,c-=1,3&u){case 0:a.mode=16193;break;case 1:if(oi(a),a.mode=Ga,t===Ea){u>>>=2,c-=2;break e}break;case 2:a.mode=16196;break;case 3:e.msg="invalid block type",a.mode=Ja}u>>>=2,c-=2;break;case 16193:for(u>>>=7&c,c-=7&c;c<32;){if(0===o)break e;o--,u+=i[r++]<<c,c+=8}if((65535&u)!=(u>>>16^65535)){e.msg="invalid stored block lengths",a.mode=Ja;break}if(a.length=65535&u,u=0,c=0,a.mode=Ya,t===Ea)break e;case Ya:a.mode=16195;case 16195:if(h=a.length,h){if(h>o&&(h=o),h>l&&(h=l),0===h)break e;n.set(i.subarray(r,r+h),s),o-=h,r+=h,l-=h,s+=h,a.length-=h;break}a.mode=Wa;break;case 16196:for(;c<14;){if(0===o)break e;o--,u+=i[r++]<<c,c+=8}if(a.nlen=257+(31&u),u>>>=5,c-=5,a.ndist=1+(31&u),u>>>=5,c-=5,a.ncode=4+(15&u),u>>>=4,c-=4,a.nlen>286||a.ndist>30){e.msg="too many length or distance symbols",a.mode=Ja;break}a.have=0,a.mode=16197;case 16197:for(;a.have<a.ncode;){for(;c<3;){if(0===o)break e;o--,u+=i[r++]<<c,c+=8}a.lens[M[a.have++]]=7&u,u>>>=3,c-=3}for(;a.have<19;)a.lens[M[a.have++]]=0;if(a.lencode=a.lendyn,a.lenbits=7,x={bits:a.lenbits},k=Ca(0,a.lens,0,19,a.lencode,0,a.work,x),a.lenbits=x.bits,k){e.msg="invalid code lengths set",a.mode=Ja;break}a.have=0,a.mode=16198;case 16198:for(;a.have<a.nlen+a.ndist;){for(;S=a.lencode[u&(1<<a.lenbits)-1],y=S>>>24,g=S>>>16&255,b=65535&S,!(y<=c);){if(0===o)break e;o--,u+=i[r++]<<c,c+=8}if(b<16)u>>>=y,c-=y,a.lens[a.have++]=b;else{if(16===b){for(T=y+2;c<T;){if(0===o)break e;o--,u+=i[r++]<<c,c+=8}if(u>>>=y,c-=y,0===a.have){e.msg="invalid bit length repeat",a.mode=Ja;break}A=a.lens[a.have-1],h=3+(3&u),u>>>=2,c-=2}else if(17===b){for(T=y+3;c<T;){if(0===o)break e;o--,u+=i[r++]<<c,c+=8}u>>>=y,c-=y,A=0,h=3+(7&u),u>>>=3,c-=3}else{for(T=y+7;c<T;){if(0===o)break e;o--,u+=i[r++]<<c,c+=8}u>>>=y,c-=y,A=0,h=11+(127&u),u>>>=7,c-=7}if(a.have+h>a.nlen+a.ndist){e.msg="invalid bit length repeat",a.mode=Ja;break}for(;h--;)a.lens[a.have++]=A}}if(a.mode===Ja)break;if(0===a.lens[256]){e.msg="invalid code -- missing end-of-block",a.mode=Ja;break}if(a.lenbits=9,x={bits:a.lenbits},k=Ca(1,a.lens,0,a.nlen,a.lencode,0,a.work,x),a.lenbits=x.bits,k){e.msg="invalid literal/lengths set",a.mode=Ja;break}if(a.distbits=6,a.distcode=a.distdyn,x={bits:a.distbits},k=Ca(2,a.lens,a.nlen,a.ndist,a.distcode,0,a.work,x),a.distbits=x.bits,k){e.msg="invalid distances set",a.mode=Ja;break}if(a.mode=Ga,t===Ea)break e;case Ga:a.mode=qa;case qa:if(o>=6&&l>=258){e.next_out=s,e.avail_out=l,e.next_in=r,e.avail_in=o,a.hold=u,a.bits=c,Sa(e,p),s=e.next_out,n=e.output,l=e.avail_out,r=e.next_in,i=e.input,o=e.avail_in,u=a.hold,c=a.bits,a.mode===Wa&&(a.back=-1);break}for(a.back=0;S=a.lencode[u&(1<<a.lenbits)-1],y=S>>>24,g=S>>>16&255,b=65535&S,!(y<=c);){if(0===o)break e;o--,u+=i[r++]<<c,c+=8}if(g&&!(240&g)){for(v=y,_=g,w=b;S=a.lencode[w+((u&(1<<v+_)-1)>>v)],y=S>>>24,g=S>>>16&255,b=65535&S,!(v+y<=c);){if(0===o)break e;o--,u+=i[r++]<<c,c+=8}u>>>=v,c-=v,a.back+=v}if(u>>>=y,c-=y,a.back+=y,a.length=b,0===g){a.mode=16205;break}if(32&g){a.back=-1,a.mode=Wa;break}if(64&g){e.msg="invalid literal/length code",a.mode=Ja;break}a.extra=15&g,a.mode=16201;case 16201:if(a.extra){for(T=a.extra;c<T;){if(0===o)break e;o--,u+=i[r++]<<c,c+=8}a.length+=u&(1<<a.extra)-1,u>>>=a.extra,c-=a.extra,a.back+=a.extra}a.was=a.length,a.mode=16202;case 16202:for(;S=a.distcode[u&(1<<a.distbits)-1],y=S>>>24,g=S>>>16&255,b=65535&S,!(y<=c);){if(0===o)break e;o--,u+=i[r++]<<c,c+=8}if(!(240&g)){for(v=y,_=g,w=b;S=a.distcode[w+((u&(1<<v+_)-1)>>v)],y=S>>>24,g=S>>>16&255,b=65535&S,!(v+y<=c);){if(0===o)break e;o--,u+=i[r++]<<c,c+=8}u>>>=v,c-=v,a.back+=v}if(u>>>=y,c-=y,a.back+=y,64&g){e.msg="invalid distance code",a.mode=Ja;break}a.offset=b,a.extra=15&g,a.mode=16203;case 16203:if(a.extra){for(T=a.extra;c<T;){if(0===o)break e;o--,u+=i[r++]<<c,c+=8}a.offset+=u&(1<<a.extra)-1,u>>>=a.extra,c-=a.extra,a.back+=a.extra}if(a.offset>a.dmax){e.msg="invalid distance too far back",a.mode=Ja;break}a.mode=16204;case 16204:if(0===l)break e;if(h=p-l,a.offset>h){if(h=a.offset-h,h>a.whave&&a.sane){e.msg="invalid distance too far back",a.mode=Ja;break}h>a.wnext?(h-=a.wnext,f=a.wsize-h):f=a.wnext-h,h>a.length&&(h=a.length),m=a.window}else m=n,f=s-a.offset,h=a.length;h>l&&(h=l),l-=h,a.length-=h;do{n[s++]=m[f++]}while(--h);0===a.length&&(a.mode=qa);break;case 16205:if(0===l)break e;n[s++]=a.length,l--,a.mode=qa;break;case Za:if(a.wrap){for(;c<32;){if(0===o)break e;o--,u|=i[r++]<<c,c+=8}if(p-=l,e.total_out+=p,a.total+=p,4&a.wrap&&p&&(e.adler=a.check=a.flags?Xe(a.check,n,p,s-p):Je(a.check,n,p,s-p)),p=l,4&a.wrap&&(a.flags?u:Ka(u))!==a.check){e.msg="incorrect data check",a.mode=Ja;break}u=0,c=0}a.mode=16207;case 16207:if(a.wrap&&a.flags){for(;c<32;){if(0===o)break e;o--,u+=i[r++]<<c,c+=8}if(4&a.wrap&&u!==(4294967295&a.total)){e.msg="incorrect length check",a.mode=Ja;break}u=0,c=0}a.mode=16208;case 16208:k=La;break e;case Ja:k=Oa;break e;case 16210:return Ba;default:return Pa}return e.next_out=s,e.avail_out=l,e.next_in=r,e.avail_in=o,a.hold=u,a.bits=c,(a.wsize||p!==e.avail_out&&a.mode<Ja&&(a.mode<Za||t!==Ia))&&li(e,e.output,e.next_out,p-e.avail_out),d-=e.avail_in,p-=e.avail_out,e.total_in+=d,e.total_out+=p,a.total+=p,4&a.wrap&&p&&(e.adler=a.check=a.flags?Xe(a.check,n,p,e.next_out-p):Je(a.check,n,p,e.next_out-p)),e.data_type=a.bits+(a.last?64:0)+(a.mode===Wa?128:0)+(a.mode===Ga||a.mode===Ya?256:0),(0===d&&0===p||t===Ia)&&k===Da&&(k=$a),k},ci={inflateReset:ti,inflateReset2:ai,inflateResetKeep:ei,inflateInit:e=>ii(e,15),inflateInit2:ii,inflate:ui,inflateEnd:e=>{if(Qa(e))return Pa;let t=e.state;return t.window&&(t.window=null),e.state=null,Da},inflateGetHeader:(e,t)=>{if(Qa(e))return Pa;const a=e.state;return 2&a.wrap?(a.head=t,t.done=!1,Da):Pa},inflateSetDictionary:(e,t)=>{const a=t.length;let i,n,r;return Qa(e)?Pa:(i=e.state,0!==i.wrap&&i.mode!==za?Pa:i.mode===za&&(n=1,n=Je(n,t,a,0),n!==i.check)?Oa:(r=li(e,t,a,a),r?(i.mode=16210,Ba):(i.havedict=1,Da)))},inflateInfo:"pako inflate (from Nodeca project)"};var di=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};const pi=Object.prototype.toString,{Z_NO_FLUSH:hi,Z_FINISH:fi,Z_OK:mi,Z_STREAM_END:yi,Z_NEED_DICT:gi,Z_STREAM_ERROR:bi,Z_DATA_ERROR:vi,Z_MEM_ERROR:_i}=et;function wi(e){this.options=ea({chunkSize:65536,windowBits:15,to:""},e||{});const t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,0===t.windowBits&&(t.windowBits=-15)),!(t.windowBits>=0&&t.windowBits<16)||e&&e.windowBits||(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&(15&t.windowBits||(t.windowBits|=15)),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new oa,this.strm.avail_out=0;let a=ci.inflateInit2(this.strm,t.windowBits);if(a!==mi)throw new Error(Qe[a]);if(this.header=new di,ci.inflateGetHeader(this.strm,this.header),t.dictionary&&("string"==typeof t.dictionary?t.dictionary=na(t.dictionary):"[object ArrayBuffer]"===pi.call(t.dictionary)&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(a=ci.inflateSetDictionary(this.strm,t.dictionary),a!==mi)))throw new Error(Qe[a])}function Ai(e,t){const a=new wi(t);if(a.push(e),a.err)throw a.msg||Qe[a.err];return a.result}wi.prototype.push=function(e,t){const a=this.strm,i=this.options.chunkSize,n=this.options.dictionary;let r,s,o;if(this.ended)return!1;for(s=t===~~t?t:!0===t?fi:hi,"[object ArrayBuffer]"===pi.call(e)?a.input=new Uint8Array(e):a.input=e,a.next_in=0,a.avail_in=a.input.length;;){for(0===a.avail_out&&(a.output=new Uint8Array(i),a.next_out=0,a.avail_out=i),r=ci.inflate(a,s),r===gi&&n&&(r=ci.inflateSetDictionary(a,n),r===mi?r=ci.inflate(a,s):r===vi&&(r=gi));a.avail_in>0&&r===yi&&a.state.wrap>0&&0!==e[a.next_in];)ci.inflateReset(a),r=ci.inflate(a,s);switch(r){case bi:case vi:case gi:case _i:return this.onEnd(r),this.ended=!0,!1}if(o=a.avail_out,a.next_out&&(0===a.avail_out||r===yi))if("string"===this.options.to){let e=sa(a.output,a.next_out),t=a.next_out-e,n=ra(a.output,e);a.next_out=t,a.avail_out=i-t,t&&a.output.set(a.output.subarray(e,e+t),0),this.onData(n)}else this.onData(a.output.length===a.next_out?a.output:a.output.subarray(0,a.next_out));if(r!==mi||0!==o){if(r===yi)return r=ci.inflateEnd(this.strm),this.onEnd(r),this.ended=!0,!0;if(0===a.avail_in)break}}return!0},wi.prototype.onData=function(e){this.chunks.push(e)},wi.prototype.onEnd=function(e){e===mi&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=ta(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};var ki=function(e,t){return(t=t||{}).raw=!0,Ai(e,t)},Si={Inflate:wi,inflate:Ai,inflateRaw:ki,ungzip:Ai};const{Deflate:Ni,deflate:xi,deflateRaw:Ti,gzip:Mi}=Aa,{Inflate:Vi,inflate:Ci,inflateRaw:Ii,ungzip:Fi}=Si;var Ei={Deflate:Ni,deflate:xi,deflateRaw:Ti,gzip:Mi,Inflate:Vi,inflate:Ci,inflateRaw:Ii,ungzip:Fi,constants:et};const Di={files:{},items:{},folders:{}};function Li(e){return Di.files[e]}function Ri(){return Di.folders}function Pi(e){return Di.folders[e]}function Oi(e,t){for(const a of Object.values(Di.folders))if(a.name===e&&a.parent===t)return a}function Bi(e,t){for(const a of Object.values(Di.items))if(a.name===e&&a.folder._id===t)return a}function $i(){return Di.items}function ji(e){return Di.items[e]}function Ui(e,t){Di.items[e]=t.rootItem;for(const[e,a]of Object.entries(t.metadata)){if(t.files[e]&&(Di.files[e]={blob:new Blob([t.files[e]],{type:a.mimeType}),hash:a.hash,itemName:a.name,itemType:a.type,mimeType:a.mimeType}),a.attachments)for(const i of a.attachments){const a=Wi(e,i.name,i.queryParam,i.index);Di.files[a]={blob:new Blob([t.files[a]],{type:i.mimeType}),hash:i.hash,itemName:i.name,itemType:i.type,mimeType:i.mimeType}}Di.items[e]=a}for(const a of Object.values(t.folders))a._id=e+":"+a._id,a.parent=e+":"+a.parent,Di.folders[a._id]=a}async function zi(e,t){const a=r.Buffer.from(await e.arrayBuffer());let i=0;i+=8;const n=a.readInt32LE(8);i+=4;const s=new TextDecoder,o=a.subarray(i,i+n);i+=n;const l=JSON.parse(s.decode(o));l.root=t+"/"+l.root;let u=0;const c=Ei.ungzip(a.subarray(i)),d=r.Buffer.from(c),p=d.subarray(u,u+l.metadataSize);u+=l.metadataSize;const h=JSON.parse(s.decode(p)),f={};Object.entries(h).forEach((([e,a])=>{const i=t+"/"+e;a._id=i,f[i]=a,a.folder._id=t+":"+a.folder._id;for(const e of a.links)e.to=t+"/"+e.to}));const m=d.subarray(u,u+l.foldersSize);u+=l.foldersSize;const y=JSON.parse(s.decode(m)),g={};for(const[,e]of Object.entries(f))if(e.filesize&&(g[e._id]={start:u+(e.packageFileOffset||0),end:u+(e.packageFileOffset||0)+e.filesize}),e.attachments)for(const t of e.attachments)g[Wi(e._id,t.name,t.queryParam,t.index)]={start:u+(t.packageFileOffset||0),end:u+(t.packageFileOffset||0)+t.filesize};const b={};for(const[e,t]of Object.entries(g)){const a=d.subarray(t.start,t.end);b[e]=a}const v=f[l.root],_=[],w=e=>{_.push(e._id);for(const t of e.links)t.item=structuredClone(f[t.to]),w(t.item)};return w(v),{rootItem:v,metadata:f,folders:y,files:b}}function Wi(e,t,a,i){return`${e}_${t}`+(null!=a?`_${a}`:"")+(null!=i?`_${i}`:"")}function Hi(e,t,a,i){return Array.isArray(e.attachments)?e.attachments.filter((e=>e.name===t&&(void 0===i||e.index===i))).reduce(((e,t)=>Math.abs(t.queryParam-(a??0))<Math.abs(e.queryParam-(a??0))?t:e),{queryParam:1/0}):null}function Yi(e,t,a,i){const n=ji(e);if(n){const r=Hi(n,t,a,i);if(!r)return null;return Li(Wi(e,r.name,r.queryParam,r.index))}}var Gi=Object.freeze({__proto__:null,addPackageToCache:Ui,createAttachmentID:Wi,findFolder:Oi,findItem:Bi,getAttachmentFromPackageCache:Yi,getFileFromCache:Li,getFolder:Pi,getFolders:Ri,getItemFromCache:ji,getItems:$i,parsePackage:zi,queryAttachments:Hi});class qi{id=_.createGUID();items=[]}class Zi{itemRepo;undoEvents=[];redoEvents=[];maxUndoCount=100;enabled=!0;snapshots=new Map;_undoRedoPromise=Promise.resolve();constructor(e,t=100){this.itemRepo=e,this.maxUndoCount=t,S.instance.setUndoManager(this),y.$on("undoManager:undo",(e=>this.undo(e))),y.$on("undoManager:redo",(e=>this.redo(e)))}clear(){this.undoEvents=[],this.redoEvents=[],this.snapshots.clear(),y.$emit("undoManager:undoStepsChanged",0),y.$emit("undoManager:redoStepsChanged",0)}createSnapshot(){const e=new qi;for(const t of this.itemRepo.itemInstances.values())for(const a of t.values())e.items.push({_id:a._id,instanceId:a.instanceId,data:this._grabSnapshot(a)});return this.snapshots.set(e.id,e),e.id}rollbackFromSnapshot(e){const t=this.snapshots.get(e);if(!t)throw new M("Snapshot not found");for(const e of t.items){const t=this.itemRepo.itemInstances.get(e._id);if(t){const a=t.get(e.instanceId);a?this._rollbackFromSnapshot(a,e.data):console.error(`[SNAPSHOT] - Trying to rollback snapshot for item but did not find the instance: ${e._id} -> ${e.instanceId}`)}else console.error(`[SNAPSHOT] - Trying to rollback snapshot for item but did not find the item map: ${e._id}`)}this.snapshots.delete(e)}_grabSnapshot(e){const t=[];for(const a of e.fieldInstances)try{t.push(a.createSnapshot())}catch(e){const t=`[SNAPSHOT] - Could not grab snapshot of field ${a.name}`;throw console.error(t,e),new Error(e.toString())}const a=[];for(const t of e.customFieldInstances)try{a.push(t.createSnapshot())}catch(e){const a=`[SNAPSHOT] - Could not grab snapshot of custom field ${t.name}`;throw console.error(a,e),new Error(e.toString())}return new G(e._id,"item",{fieldInstances:t,customFieldInstances:a})}_getFieldInstance(e,t){for(const a of e.fieldInstances)if(a.getId()===t)return a;return null}_getCustomFieldInstance(e,t){for(const a of e.customFieldInstances)if(a.getId()===t)return a;return null}_rollbackFromSnapshot(e,t){for(const a of t.data.fieldInstances){const t=this._getFieldInstance(e,a.id);t?t.rollbackFromSnapshot(a):console.warn("[SNAPSHOT] - Could not find field instance in snapshot: "+a.id)}for(const a of t.data.customFieldInstances){const t=this._getCustomFieldInstance(e,a.id);t?t.rollbackFromSnapshot(a):console.warn("[SNAPSHOT] - Could not find custom field instance in snapshot: "+a.id)}}getEnabled(){return this.enabled}setEnabled(e){this.enabled=!!e}ignore(e){const t=this.enabled;let a=!1;try{t&&this.setEnabled(!1);const i=e();if(i&&i.then)return a=!0,i.finally((()=>{t&&this.setEnabled(!0)}))}finally{t&&!a&&this.setEnabled(!0)}}undo(e){return this._undoRedoPromise=this._undoRedoPromise.then((()=>this._performUndo(e))),this._undoRedoPromise}redo(e){return this._undoRedoPromise=this._undoRedoPromise.then((()=>this._performRedo(e))),this._undoRedoPromise}async _performUndo(e){if(this.enabled&&this.undoEvents.length){for(e=e||1;this.undoEvents.length>0&&e>0;){const t=this.spliceLastEventBundle(this.undoEvents).reverse();for(const e of t)await e.undo(),this.redoEvents.push(e);e--}y.$emit("undoManager:undoStepsChanged",this.getNumberOfUndoBundles()),y.$emit("undoManager:redoStepsChanged",this.getNumberOfRedoBundles())}}async _performRedo(e){if(this.enabled&&this.redoEvents.length){for(e=e||1;this.redoEvents.length>0&&e>0;){const t=this.spliceLastEventBundle(this.redoEvents).reverse();for(const e of t)await e.redo(),this.undoEvents.push(e);e--}y.$emit("undoManager:undoStepsChanged",this.getNumberOfUndoBundles()),y.$emit("undoManager:redoStepsChanged",this.getNumberOfRedoBundles())}}getUndoSteps(){return this.undoEvents.map((function(e){return{type:e.type,itemId:e.itemId,prop:e.prop}}))}getRedoSteps(){return this.redoEvents.map((e=>({type:e.type,itemId:e.itemId,prop:e.prop})))}event(e){if(this.enabled){if(this.redoEvents=[],y.$emit("undoManager:redoStepsChanged",0),this.assignBundleIndexToEvent(e),0!==this.undoEvents.length){let t=!1;for(let a=this.undoEvents.length-1;a>=0;a--){const i=this.undoEvents[a];if(!e.isWithinMergeDeltaOf(i,300))break;const n=i.merge(e,300);if(n){t=!0,this.undoEvents.splice(a,1),this.undoEvents.push(n);break}}t||(this.undoEvents.push(e),y.$emit("undoManager:undoStepsChanged",this.getNumberOfUndoBundles()))}else this.undoEvents.push(e),y.$emit("undoManager:undoStepsChanged",this.getNumberOfUndoBundles());if(this.getNumberOfUndoBundles()>this.maxUndoCount){this.spliceFirstEventBundle(this.undoEvents);for(const e of this.undoEvents)e.bundleIndex-=1;y.$emit("undoManager:undoStepsChanged",this.getNumberOfUndoBundles())}}}getNumberOfUndoBundles(){return 0===this.undoEvents.length?0:this.undoEvents.at(-1).bundleIndex+1}getNumberOfRedoBundles(){if(0===this.redoEvents.length)return 0;const e=this.getNumberOfUndoBundles()-1;return this.redoEvents.at(0).bundleIndex-e}spliceLastEventBundle(e){if(0===e.length)return[];const t=e.at(-1).bundleIndex;let a=e.length-1;for(let i=e.length-1;i>=0&&e[i].bundleIndex===t;i--)a=i;return e.splice(a)}spliceFirstEventBundle(e){if(0===e.length)return[];const t=e.at(0).bundleIndex;for(let a=1;a<e.length;a++)if(e[a].bundleIndex!==t)return e.splice(0,a);return e.splice(0)}assignBundleIndexToEvent(e){if(0===this.undoEvents.length)return void(e.bundleIndex=0);const t=this.undoEvents.at(-1),a=Math.abs(e.createdAt-t.createdAt);e.bundleIndex=a>300?t.bundleIndex+1:t.bundleIndex}}class Ji{updateItemLinksAndAttributes(e,t,a){try{const i=[],n={},r={};this.getLinksAndAttributes(e,i,n,r,t,a),e.attributes=n,e.userAttributes=r,e.links=i}catch(e){throw console.error(e),new C(e)}}getLinksAndAttributes(e,t,a,i,n,r){e.fieldInstances.length&&this.retrieveLinksAndAttributesFromFieldInstances(e.fieldInstances,t,a,n,r),e.userFieldInstances.length&&this.retrieveLinksAndAttributesFromFieldInstances(e.userFieldInstances,t,i,n,r),e.customFieldInstances.length&&(console.log(e.customFieldInstances),this.retrieveLinksAndAttributesFromFieldInstances(e.customFieldInstances,t,i,n,r,"_"))}retrieveLinksAndAttributesFromFieldInstances(e,t,a,i,n,r=""){for(const s of e)switch(s.type){case"Link":if(s.value&&t){if(n&&s.hidden)continue;i?t.push({usage:r+s.name,to:s.value._id,item:s.value}):t.push({usage:r+s.name,to:s.value._id})}break;case"Attribute":a&&(a[r+s.name]=s.value);break;case"List":s.blocks&&this.traverseListFieldInstances(s.blocks,t,a,r+s.name,i);break;case"Tree":if(s.blocks){const e=s.blocks[0];e.blocks&&this.traverseTreeFieldInstance(e.blocks,t,a,r+s.name,i)}break;case"NodeGraph":if(s.blocks&&this.traverseTreeFieldInstance(s.blocks,t,a,r+s.name,i),a&&Array.isArray(s.connections)){let e=0;for(const t of s.connections){a[`${r}${s.name}#connection[${e++}]`]={srcNode:t.srcNode,srcSlot:t.srcSlot,destNode:t.destNode,destSlot:t.destSlot}}}}}traverseTreeFieldInstance(e,t,a,i,n){let r=0;for(const s of e){const e=`${i}[${r}]`,o=e+"#type",l=e+"#id",u=e+"#posx",c=e+"#posy";a&&(a[e+"#usage"]="Block",a[o]=s.type,a[l]=s.id,void 0!==s.posX&&(a[u]=s.posX||0),void 0!==s.posY&&(a[c]=s.posY||0));for(const i of s.fields){const r=`${e}->${i.name}`;switch(i.type){case"Link":i.value&&t&&(n?t.push({usage:r,to:i.value._id,item:i.value}):t.push({usage:r,to:i.value._id}));break;case"List":i.blocks&&this.traverseListFieldInstances(i.blocks,t,a,r,n);break;case"Attribute":a&&(a[r]=i.value)}}s.scripts&&this.processScripts(s.scripts,t,a,e,n),s.blocks&&this.traverseTreeFieldInstance(s.blocks,t,a,e,n),r++}}traverseListFieldInstances(e,t,a,i,n){let r=0;for(const s of e){const e=`${i}[${r}]`;for(const i of s.fields){const r=`${e}->${i.name}`;switch(i.type){case"Link":if(i.value&&t){const e={usage:r,to:"object"==typeof i.value?i.value._id:i.value,item:null};n&&"object"===i.value&&(e.item=i.value),t.push(e)}break;case"Attribute":a&&(a[r]=i.value)}}r++}}processScripts(e,t,a,i,n){let r=0;for(const s of e){const e=`${i}#scripts[${r}]`,o=e+"#id",l=e+"#item";a&&(a[e+"#usage"]="Script",a[o]=s.id),t&&s.item.value&&(n?t.push({usage:l,to:s.item.value._id,item:s.item.value}):t.push({usage:l,to:s.item.value._id}));for(const i of s.fields){const r=`${e}->${i.name}`;if("Link"===i.type)i.value&&t&&(n?t.push({usage:r,to:i.value._id,item:i.value}):t.push({usage:r,to:i.value._id}));else a&&(a[r]=i.value)}r++}}}class Ki{apiClient;activeItem=void 0;rootItemId=void 0;loadingItems=new Map;loadedItems=new Map;itemInstances=new Map;resolvedPaths=new Map;jail;apiGateway;itemCache;undoManager=new Zi(this);itemPreparator=new ue(this);itemChangeProcessor=new Ji;usePublicApi;constructor(e,t){this.apiClient=t,this.apiGateway=new H(t),this.itemCache=new Y(this.apiGateway),this.usePublicApi=!!e,this.jail={active:!1,mountedFolders:[]},y.$on("item:rename",(e=>this.handleRename(e)))}_logGroup(e){}_logGroupEnd(){}_log(e){}getLoadedItems(){return Array.from(this.loadedItems.values())}getItemInstances(){return this.itemInstances}findLoadedItem(e){return this.loadedItems.get(e)}_handleError(e,t){throw console.error(e),new C("ItemRepo: "+t)}getUndoManager(){return this.undoManager}async createFieldsForItem(e,t,a,i=!1){return this.itemPreparator.createFields(e,a,t,"",!1,a.attributes,i)}async createScriptsForItem(e,t=[],a,i=!0){const n=[];for(const i of t){if(!i.item)continue;const t=await this.loadItem(i.item);if(!t)continue;const r=new X(void 0,e,a,t);n.push(r);for(const e of i.fields){const t=new J(r,e.name,e.value,a);r.addField(t)}}e.scripts=i?S.instance.proxyScriptArray(n,e,a):n}clear(){this.rootItemId=void 0,this.activeItem=void 0,this.loadedItems.clear(),this.resolvedPaths.clear(),this.itemInstances.clear(),this.loadingItems.clear();this.apiClient.getCollab().endCollaboration()}removeBlock(e,t){t.blocks.removeObject(e),e.parent=void 0}traverseBlockPairs(e,t,a){a(e,t);for(let i=0;i<e.blocks.length&&i<t.blocks.length;i++)this.traverseBlockPairs(e.blocks[i],t.blocks[i],a)}copyScripts(e,t,a=!1){const i=new Map;this.traverseBlockPairs(e,t,((e,t)=>i.set(e.getId(),t.getId())));const n=[];return this.traverseBlockPairs(e,t,((e,t)=>{for(const r of e.scripts){const e=r.clone(i);a&&(e.deferInitCall=!0),t.scripts.push(e),n.push(e)}})),n}updateScriptFieldReferences(e,t){const a=new Map;this.traverseBlockPairs(e,t,((e,t)=>{a.set(e.id,t.id)})),this.updateScriptFieldReferencesFromMap(a,t)}updateScriptFieldReferencesFromMap(e,t){this.traverseBlocks((t=>{for(const a of t.scripts)for(const t of a.fields)e.has(t.value)&&(t.value=e.get(t.value))}),[t])}async createNewBlock(e,t,a){const i=new ce(void 0,t,e.typeName,void 0,void 0,a),n=await this.createFieldsForItem(i,e.template,a);return i.setFields(n),i.blocks=S.instance.proxyBlockArray(i.blocks,i,a),await this.createScriptsForItem(i,void 0,a),this.addBlockToParent(i,t,a)}addBlockToParent(e,t,a){e.parent=t;const i=S.instance.proxyBlock(e,a);return t.blocks.push(i),i}async createNewListEntry(e,t,a){const i=new ce(void 0,void 0,e.typeName,void 0,void 0,a),n=await this.createFieldsForItem(i,e.template,a);return i.setFields(n),i.blocks=S.instance.proxyListArray(i.blocks,t,a),S.instance.proxyBlock(i,a)}async createNewGraphNode(e,t,a,i,n){const r=new ce(void 0,void 0,e.typeName,void 0,e.displayName,n),s=await this.itemPreparator.createFields(r,n,e.template,"",!0,n.attributes);return r.setFields(s),r.setInputs(e.inputs),r.setOutputs(e.outputs),r.setPosition(a,i),r.blocks=S.instance.proxyGraphBlockArray(r.blocks,t),this.addNodeToGraph(r,t,n),r}addNodeToGraph(e,t,a){const i=S.instance.proxyGraphBlock(e,a);t.blocks.push(i)}removeGraphNode(e,t){const a=[];for(const i of e.connections)i.srcNode!==t.id&&i.destNode!==t.id||a.push(i);for(const t of a)e.connections.removeObject(t);e.blocks.removeObject(t)}addGraphLink(e,t,a,i,n,r){e.connections.push(new Z({srcNode:t,srcSlot:a,destNode:i,destSlot:n},r))}removeGraphLink(e,t,a,i,n){for(const r of e.connections)if(r.srcNode===t&&r.srcSlot===a&&r.destNode===i&&r.destSlot===n)return void e.connections.removeObject(r)}createNewScript(e,t=-1,a){t=t>=0?t:e.scripts.length;const i=new X(void 0,e,a);return e.scripts.splice(t,0,i),i}removeScript(e,t){t.scripts.removeObject(e)}findBlock(e){for(const t of this.itemInstances.values())for(const a of t.values()){const t=a.findBlock(e);if(t)return t}return null}async loadPackage(e,t){const a=await _.downloadFile(e,((e,a,i)=>{t&&t({phase:"Loading",percent:e,bytesTotal:a,bytesLoaded:i})})),i=await a.data;this.apiClient.getCollab().endCollaboration();const n=new re({_id:"root",name:"Root package",type:"Package",links:[],attributes:{},fields:[],readOnly:!0,isPackaged:!1}),r=await zi(i,n._id);Ui(n._id,structuredClone(r));const s=Object.values(r.metadata).reverse();for(const e of s)e._id===r.rootItem._id&&(n.packageContent=e,n.packageType=e.type);return await this._linkAndPrepareItems(s),n.packageContent=this.loadedItems.get(r.rootItem._id),this.activeItem=n,n}createPackageItemUrl(e){const t=Li(e);return t?URL.createObjectURL(t.blob):null}revokePackageItemUrl(e){URL.revokeObjectURL(e)}async _loadPackageContentRecursively(e,t){t("Loading from cache",0);const a=await this.apiClient.itemCache.addItemToCache(e._id,void 0,e.hash,(function(e,a,i){t("Loading from cloud",.9*e,i,a)})),i=await(await fetch(a.objectUrl)).blob();t("Unpacking",90);const n=await zi(i,e._id);Ui(e._id,structuredClone(n));const r=Object.values(n.metadata).reverse();for(const t of r)t._id===n.rootItem._id&&(e.packageContent=t,e.packageType=t.type);return r}createNewItemInstance(e){const t=this.loadedItems.get(e);if(!t)return console.error(`Tried creating new instance of item, but it was not found: ${e}`),null;const a=t.clone(!0);return this._addItemInstance(a),a}_addLoadedItem(e){this.loadedItems.set(e._id,e),this._addItemInstance(e)}_addItemInstance(e){let t=this.itemInstances.get(e._id);t||(t=new Map,this.itemInstances.set(e._id,t)),t.set(e.instanceId,e)}async loadItemByRelativePath(e,t,a={}){try{const i=ji(e);let n;if(i){const e=t.split("/"),a=e.pop();let r=Pi(i.folder._id);for(const t of e)if(r=".."===t?Pi(r.parent):Oi(t,r._id),!r)return;const s=Bi(a,r._id);n=s?._id}else n=await this.resolveRelativePath(t,e);return this.loadItem(n,a)}catch(e){this._handleError(e,`Unable to load item by relative path: ${t}: ${e}`)}}async _loadItemFromApi(e,t={}){let a;if(this.apiGateway.start(),t.recursive)if(this.usePublicApi)a=await this.apiGateway.call("_loadItemFromApi","getItemPublicRecursive",e,!0),a.forEach((e=>e.public=!0));else try{a=await this.apiGateway.call("_loadItemFromApi","getItemAggregatedRecursive",e,{withAttachmentInfo:!0,noFields:!0})}catch{a=await this.apiGateway.call("_loadItemFromApi","getItemPublicRecursive",e,!0),a.forEach((e=>e.public=!0))}else{let t;if(this.usePublicApi)t=await this.apiGateway.call("_loadItemFromApi","getItemPublicRecursive",e),t.public=!0;else try{t=await this.apiGateway.call("_loadItemFromApi","getItemAggregated",e,{noFields:!0})}catch{t=await this.apiGateway.call("_loadItemFromApi","getItemPublicRecursive",e),t.public=!0}a=[t]}return this.apiGateway.end(),a}_relinkItems(e,t){for(const a of e){if(Array.isArray(a.links))for(const e of a.links)e.item=t.get(e.to),e.item||e.stopRecursion||console.warn(`Missing link in item '${a.name}' (${a._id}) to: ${e.to} with usage ${e.usage}`);a.packageContent&&(a.packageContent=t.get(a.packageContent._id))}}createItem(e,t){const a={_id:_.createGeneratedItemId(),name:`Generated ${e}`,type:e,attributes:t||{},links:[],fields:[],fieldInstances:[],userFieldInstances:[],isGenerated:!0};return this.itemPreparator.prepare(a)}getLoadedItem(e){return this.loadedItems.get(e)}async loadItem(e,t={}){let a,i,n;if(n=this.loadedItems.get(e),n)return n;if(n=this.loadingItems.get(e),n)return n;try{const r=new Promise(((e,t)=>{a=e,i=t}));return this.loadingItems.set(e,r),n=await this._loadItemInternal(e,t),a(n),!this.activeItem&&n&&(this.rootItemId=e,this.activeItem=n,t.withCollaboration,await y.$emit("itemRepo:itemLoaded",n)),n}catch(t){return this._handleError(t,`Unable to load item ${e}: ${t}`),void i(void 0)}finally{this.loadingItems.delete(e)}}async _loadItemInternal(e,t={}){const a=(e,a,i=0,n=0)=>{"function"==typeof t.progressCallback&&t.progressCallback({phase:e,percent:a,bytesTotal:i,bytesLoaded:n})};a("Fetching metadata",1);let i=await this._loadItemFromApi(e,t);if(i=i.filter((e=>!this.loadedItems.has(e._id))),0===i.length)return console.log("After loading the item, it turns out we have them all already loaded! This should not happen!"),this.loadedItems.get(e);const n=i[0]._id;for(const e of i)if("Package"===e.type){const t=await this._loadPackageContentRecursively(e,a);for(const e of t)i.push(e)}a("Preparing data",100),await this._linkAndPrepareItems(i);return this.loadedItems.get(n)}async _linkAndPrepareItems(e){const t=new Map;for(const a of e)t.set(a._id,a);const a=new Map([...this.loadedItems,...t]);this._relinkItems(e,a);const i=[],n=()=>{const e=t.values().next().value;return t.delete(e._id),this._log(`- Fetched next item ${e.name} (${e._id})`),e},r=async e=>{this._logGroup(`- Preparing item ${e.name} (${e._id})`);const t=await this.itemPreparator.prepare(e);return i.push(t),this._addLoadedItem(t),this._logGroupEnd(),t};for(this.itemPreparator.setItemFetcher((async e=>{this._logGroup(`- Requesting item ${e.name} (${e._id})`);let a=this.loadedItems.get(e._id);if(a)return this._log("- Already prepared. Returning."),this._logGroupEnd(),a;const i=t.get(e._id);return i?(t.delete(e._id),this._log("- Don't have it yet. Preparing..."),a=await r(i),this._log("- Now prepared. Returning."),this._logGroupEnd(),a):(console.error("ItemFetcher: Could not find requested item: "+e._id,t,this.loadedItems),null)}));t.size>0;){let e=n();await r(e)}return this._relinkItems(i,this.loadedItems),i}async resolveRelativePath(e,t=null){if(!(t=t||this.activeItem?._id||null))return null;const a=`${t}#${e}`;let i;return i=this.resolvedPaths.has(a)?this.resolvedPaths.get(a):this.usePublicApi?await this.apiClient.publicResolveRelativeItem(t,e):await this.apiClient.resolveRelativeItem(t,e),this.resolvedPaths.set(a,i),i}async traverseItems(e,t=void 0){if("function"!=typeof e)return;const a=this,i=new Map;await async function t(n){if(!n)return;if(i.has(n._id))return;i.set(n._id,!0);const r=e(n);if(r&&r.then&&await r,Array.isArray(n.links))for(const e of n.links)if(e.item)await t(e.item);else if(e.to)try{const i=await a.loadItem(e.to);await t(i)}catch{console.warn(`Could not load additional item ${e.to} so cannot traverse it. Probably dead link!`)}}(t||this.activeItem)}async traverseBlocks(e,t){for(const a of t){const t=e(a);t&&t.then&&await t,Array.isArray(a.blocks)&&a.blocks?.length&&await this.traverseBlocks(e,a.blocks)}}async traverseFieldInstances(e,t){const a=this;t=t||this.activeItem?.fieldInstances||[];for(const i of t){const t=e(i);t&&t.then&&await t,Array.isArray(i.blocks)&&await this.traverseBlocks((async function(t){Array.isArray(t.fields)&&t.fields?.length&&await a.traverseFieldInstances(e,t.fields)}),i.blocks)}}async _updateLinkReferences(e,t,a,i){t?await this.traverseItems((async n=>{if(Array.isArray(n.fieldInstances)&&n.fieldInstances.length){await this.traverseFieldInstances((async a=>{"Link"===a.type&&a.value&&a.value._id===e&&(i&&(a.value=null),a.value=t)}),n.fieldInstances);for(const a of n.fieldInstances)Array.isArray(a.blocks)&&await this.traverseBlocks((async a=>{if(Array.isArray(a.scripts))for(const n of a.scripts)n.item?.value?._id===e&&(i&&(n.item.value=void 0),n.item.value=t)}),a.blocks)}if(n.links)for(const r of n.links)r.to===e&&(i&&(r.to=null,r.item=null),r.to=a,r.item=t)})):console.warn(`Aborting link update: Could not load item ${a}`)}async replaceLink(e,t){if(this.getLoadedItem(e)){const a=await this.loadItem(t,{recursive:!0});await this._updateLinkReferences(e,a,t,!1)}}async forceUpdateLink(e){const t=await this.loadItem(e,{recursive:!0});await this._updateLinkReferences(e,t,e,!0)}saveItem(e){return e._id&&e.isDirty?(this.itemChangeProcessor.updateItemLinksAndAttributes(e,!1,!0),e.version||(e.version={major:0,minor:0,revision:1}),this.apiClient.updateItem({_id:e._id,name:e.name,attributes:e.attributes,userAttributes:e.userAttributes,links:e.links,tags:e.tags,contributors:e.contributors,description:e.description,shortDescription:e.shortDescription,categories:e.categories,license:e.license,version:e.version,allowConversation:e.allowConversation,visibility:e.visibility}).then((t=>(JSON.stringify(e.version)===JSON.stringify(t.version)?console.log(`Saved item ${e.name}. New version: ${e.version.major}.${e.version.minor}.${e.version.revision}`):console.log(`Saved item ${e.name}. Version ${e.version.major}.${e.version.minor}.${e.version.revision} -> ${t.version.major}.${t.version.minor}.${t.version.revision}`),t&&t.version&&(e.version=t.version),e.isDirty=!1,this.itemChangeProcessor.updateItemLinksAndAttributes(e,!0,!1),e))).catch((function(t){throw console.error(`Error saving item ${e.name}`,t,e),t}))):null}async save(){console.log("Saving changes in loaded items...");const e=[];for(const t of this.loadedItems.values()){const a=this.saveItem(t);a&&e.push(a)}if(0!==e.length){let t=0;for(const a of e)a.then((function(a){y.$emit("itemRepo:itemSaved",{item:a,progress:++t,total:e.length})}));return Promise.all(e).then((function(){console.log("Saved successfully"),y.$emit("itemRepo:itemsSaved")})).catch((function(e){console.error("Error saving:",e)}))}console.log("No changes detected.")}async existsUnsavedChanges(){if(!this.activeItem)return!1;for(const e of this.loadedItems.values())if(e._id&&e.isDirty)return!0;return!1}handleRename({id:e,newName:t}){for(const a of this.itemInstances.values())for(const i of a.values())i._id===e&&(i.name=t)}isItemKnown(e){return this.loadedItems.has(e)||this.itemInstances.has(e)||this.loadingItems.has(e)}invalidateId(e){this.loadedItems.delete(e),this.itemInstances.delete(e),this.loadingItems.delete(e)}}var Xi,Qi={exports:{}};
13
13
  /*!
14
14
  localForage -- Offline Storage, Improved
15
15
  Version 1.10.0
16
16
  https://localforage.github.io/localForage
17
17
  (c) 2013-2017 Mozilla, Apache License 2.0
18
- */var en=(Xi||(Xi=1,Qi.exports=function e(t,a,i){function n(s,o){if(!a[s]){if(!t[s]){if(!o&&B)return B(s);if(r)return r(s,!0);var l=new Error("Cannot find module '"+s+"'");throw l.code="MODULE_NOT_FOUND",l}var u=a[s]={exports:{}};t[s][0].call(u.exports,(function(e){var a=t[s][1][e];return n(a||e)}),u,u.exports,e,t,a,i)}return a[s].exports}for(var r=B,s=0;s<i.length;s++)n(i[s]);return n}({1:[function(e,t,a){(function(e){var a,i,n=e.MutationObserver||e.WebKitMutationObserver;if(n){var r=0,s=new n(c),o=e.document.createTextNode("");s.observe(o,{characterData:!0}),a=function(){o.data=r=++r%2}}else if(e.setImmediate||void 0===e.MessageChannel)a="document"in e&&"onreadystatechange"in e.document.createElement("script")?function(){var t=e.document.createElement("script");t.onreadystatechange=function(){c(),t.onreadystatechange=null,t.parentNode.removeChild(t),t=null},e.document.documentElement.appendChild(t)}:function(){setTimeout(c,0)};else{var l=new e.MessageChannel;l.port1.onmessage=c,a=function(){l.port2.postMessage(0)}}var u=[];function c(){var e,t;i=!0;for(var a=u.length;a;){for(t=u,u=[],e=-1;++e<a;)t[e]();a=u.length}i=!1}function d(e){1!==u.push(e)||i||a()}t.exports=d}).call(this,void 0!==P?P:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],2:[function(e,t,a){var i=e(1);function n(){}var r={},s=["REJECTED"],o=["FULFILLED"],l=["PENDING"];function u(e){if("function"!=typeof e)throw new TypeError("resolver must be a function");this.state=l,this.queue=[],this.outcome=void 0,e!==n&&h(this,e)}function c(e,t,a){this.promise=e,"function"==typeof t&&(this.onFulfilled=t,this.callFulfilled=this.otherCallFulfilled),"function"==typeof a&&(this.onRejected=a,this.callRejected=this.otherCallRejected)}function d(e,t,a){i((function(){var i;try{i=t(a)}catch(t){return r.reject(e,t)}i===e?r.reject(e,new TypeError("Cannot resolve promise with itself")):r.resolve(e,i)}))}function p(e){var t=e&&e.then;if(e&&("object"==typeof e||"function"==typeof e)&&"function"==typeof t)return function(){t.apply(e,arguments)}}function h(e,t){var a=!1;function i(t){a||(a=!0,r.reject(e,t))}function n(t){a||(a=!0,r.resolve(e,t))}function s(){t(n,i)}var o=f(s);"error"===o.status&&i(o.value)}function f(e,t){var a={};try{a.value=e(t),a.status="success"}catch(e){a.status="error",a.value=e}return a}function m(e){return e instanceof this?e:r.resolve(new this(n),e)}function y(e){var t=new this(n);return r.reject(t,e)}function g(e){var t=this;if("[object Array]"!==Object.prototype.toString.call(e))return this.reject(new TypeError("must be an array"));var a=e.length,i=!1;if(!a)return this.resolve([]);for(var s=new Array(a),o=0,l=-1,u=new this(n);++l<a;)c(e[l],l);return u;function c(e,n){function l(e){s[n]=e,++o!==a||i||(i=!0,r.resolve(u,s))}t.resolve(e).then(l,(function(e){i||(i=!0,r.reject(u,e))}))}}function b(e){var t=this;if("[object Array]"!==Object.prototype.toString.call(e))return this.reject(new TypeError("must be an array"));var a=e.length,i=!1;if(!a)return this.resolve([]);for(var s=-1,o=new this(n);++s<a;)l(e[s]);return o;function l(e){t.resolve(e).then((function(e){i||(i=!0,r.resolve(o,e))}),(function(e){i||(i=!0,r.reject(o,e))}))}}t.exports=u,u.prototype.catch=function(e){return this.then(null,e)},u.prototype.then=function(e,t){if("function"!=typeof e&&this.state===o||"function"!=typeof t&&this.state===s)return this;var a=new this.constructor(n);return this.state!==l?d(a,this.state===o?e:t,this.outcome):this.queue.push(new c(a,e,t)),a},c.prototype.callFulfilled=function(e){r.resolve(this.promise,e)},c.prototype.otherCallFulfilled=function(e){d(this.promise,this.onFulfilled,e)},c.prototype.callRejected=function(e){r.reject(this.promise,e)},c.prototype.otherCallRejected=function(e){d(this.promise,this.onRejected,e)},r.resolve=function(e,t){var a=f(p,t);if("error"===a.status)return r.reject(e,a.value);var i=a.value;if(i)h(e,i);else{e.state=o,e.outcome=t;for(var n=-1,s=e.queue.length;++n<s;)e.queue[n].callFulfilled(t)}return e},r.reject=function(e,t){e.state=s,e.outcome=t;for(var a=-1,i=e.queue.length;++a<i;)e.queue[a].callRejected(t);return e},u.resolve=m,u.reject=y,u.all=g,u.race=b},{1:1}],3:[function(e,t,a){(function(t){"function"!=typeof t.Promise&&(t.Promise=e(2))}).call(this,void 0!==P?P:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{2:2}],4:[function(e,t,a){var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function r(){try{if("undefined"!=typeof indexedDB)return indexedDB;if("undefined"!=typeof webkitIndexedDB)return webkitIndexedDB;if("undefined"!=typeof mozIndexedDB)return mozIndexedDB;if("undefined"!=typeof OIndexedDB)return OIndexedDB;if("undefined"!=typeof msIndexedDB)return msIndexedDB}catch(e){return}}var s=r();function o(){try{if(!s||!s.open)return!1;var e="undefined"!=typeof openDatabase&&/(Safari|iPhone|iPad|iPod)/.test(navigator.userAgent)&&!/Chrome/.test(navigator.userAgent)&&!/BlackBerry/.test(navigator.platform),t="function"==typeof fetch&&-1!==fetch.toString().indexOf("[native code");return(!e||t)&&"undefined"!=typeof indexedDB&&"undefined"!=typeof IDBKeyRange}catch(e){return!1}}function l(e,t){e=e||[],t=t||{};try{return new Blob(e,t)}catch(n){if("TypeError"!==n.name)throw n;for(var a=new("undefined"!=typeof BlobBuilder?BlobBuilder:"undefined"!=typeof MSBlobBuilder?MSBlobBuilder:"undefined"!=typeof MozBlobBuilder?MozBlobBuilder:WebKitBlobBuilder),i=0;i<e.length;i+=1)a.append(e[i]);return a.getBlob(t.type)}}"undefined"==typeof Promise&&e(3);var u=Promise;function c(e,t){t&&e.then((function(e){t(null,e)}),(function(e){t(e)}))}function d(e,t,a){"function"==typeof t&&e.then(t),"function"==typeof a&&e.catch(a)}function p(e){return"string"!=typeof e&&(console.warn(e+" used as a key, but it is not a string."),e=String(e)),e}function h(){if(arguments.length&&"function"==typeof arguments[arguments.length-1])return arguments[arguments.length-1]}var f="local-forage-detect-blob-support",m=void 0,y={},g=Object.prototype.toString,b="readonly",v="readwrite";function _(e){for(var t=e.length,a=new ArrayBuffer(t),i=new Uint8Array(a),n=0;n<t;n++)i[n]=e.charCodeAt(n);return a}function w(e){return new u((function(t){var a=e.transaction(f,v),i=l([""]);a.objectStore(f).put(i,"key"),a.onabort=function(e){e.preventDefault(),e.stopPropagation(),t(!1)},a.oncomplete=function(){var e=navigator.userAgent.match(/Chrome\/(\d+)/),a=navigator.userAgent.match(/Edge\//);t(a||!e||parseInt(e[1],10)>=43)}})).catch((function(){return!1}))}function A(e){return"boolean"==typeof m?u.resolve(m):w(e).then((function(e){return m=e}))}function k(e){var t=y[e.name],a={};a.promise=new u((function(e,t){a.resolve=e,a.reject=t})),t.deferredOperations.push(a),t.dbReady?t.dbReady=t.dbReady.then((function(){return a.promise})):t.dbReady=a.promise}function S(e){var t=y[e.name].deferredOperations.pop();if(t)return t.resolve(),t.promise}function N(e,t){var a=y[e.name].deferredOperations.pop();if(a)return a.reject(t),a.promise}function x(e,t){return new u((function(a,i){if(y[e.name]=y[e.name]||R(),e.db){if(!t)return a(e.db);k(e),e.db.close()}var n=[e.name];t&&n.push(e.version);var r=s.open.apply(s,n);t&&(r.onupgradeneeded=function(t){var a=r.result;try{a.createObjectStore(e.storeName),t.oldVersion<=1&&a.createObjectStore(f)}catch(a){if("ConstraintError"!==a.name)throw a;console.warn('The database "'+e.name+'" has been upgraded from version '+t.oldVersion+" to version "+t.newVersion+', but the storage "'+e.storeName+'" already exists.')}}),r.onerror=function(e){e.preventDefault(),i(r.error)},r.onsuccess=function(){var t=r.result;t.onversionchange=function(e){e.target.close()},a(t),S(e)}}))}function T(e){return x(e,!1)}function M(e){return x(e,!0)}function V(e,t){if(!e.db)return!0;var a=!e.db.objectStoreNames.contains(e.storeName),i=e.version<e.db.version,n=e.version>e.db.version;if(i&&(e.version!==t&&console.warn('The database "'+e.name+"\" can't be downgraded from version "+e.db.version+" to version "+e.version+"."),e.version=e.db.version),n||a){if(a){var r=e.db.version+1;r>e.version&&(e.version=r)}return!0}return!1}function C(e){return new u((function(t,a){var i=new FileReader;i.onerror=a,i.onloadend=function(a){var i=btoa(a.target.result||"");t({__local_forage_encoded_blob:!0,data:i,type:e.type})},i.readAsBinaryString(e)}))}function I(e){return l([_(atob(e.data))],{type:e.type})}function F(e){return e&&e.__local_forage_encoded_blob}function E(e){var t=this,a=t._initReady().then((function(){var e=y[t._dbInfo.name];if(e&&e.dbReady)return e.dbReady}));return d(a,e,e),a}function D(e){k(e);for(var t=y[e.name],a=t.forages,i=0;i<a.length;i++){var n=a[i];n._dbInfo.db&&(n._dbInfo.db.close(),n._dbInfo.db=null)}return e.db=null,T(e).then((function(t){return e.db=t,V(e)?M(e):t})).then((function(i){e.db=t.db=i;for(var n=0;n<a.length;n++)a[n]._dbInfo.db=i})).catch((function(t){throw N(e,t),t}))}function L(e,t,a,i){void 0===i&&(i=1);try{var n=e.db.transaction(e.storeName,t);a(null,n)}catch(n){if(i>0&&(!e.db||"InvalidStateError"===n.name||"NotFoundError"===n.name))return u.resolve().then((function(){if(!e.db||"NotFoundError"===n.name&&!e.db.objectStoreNames.contains(e.storeName)&&e.version<=e.db.version)return e.db&&(e.version=e.db.version+1),M(e)})).then((function(){return D(e).then((function(){L(e,t,a,i-1)}))})).catch(a);a(n)}}function R(){return{forages:[],db:null,dbReady:null,deferredOperations:[]}}function P(e){var t=this,a={db:null};if(e)for(var i in e)a[i]=e[i];var n=y[a.name];n||(n=R(),y[a.name]=n),n.forages.push(t),t._initReady||(t._initReady=t.ready,t.ready=E);var r=[];function s(){return u.resolve()}for(var o=0;o<n.forages.length;o++){var l=n.forages[o];l!==t&&r.push(l._initReady().catch(s))}var c=n.forages.slice(0);return u.all(r).then((function(){return a.db=n.db,T(a)})).then((function(e){return a.db=e,V(a,t._defaultConfig.version)?M(a):e})).then((function(e){a.db=n.db=e,t._dbInfo=a;for(var i=0;i<c.length;i++){var r=c[i];r!==t&&(r._dbInfo.db=a.db,r._dbInfo.version=a.version)}}))}function O(e,t){var a=this;e=p(e);var i=new u((function(t,i){a.ready().then((function(){L(a._dbInfo,b,(function(n,r){if(n)return i(n);try{var s=r.objectStore(a._dbInfo.storeName).get(e);s.onsuccess=function(){var e=s.result;void 0===e&&(e=null),F(e)&&(e=I(e)),t(e)},s.onerror=function(){i(s.error)}}catch(e){i(e)}}))})).catch(i)}));return c(i,t),i}function B(e,t){var a=this,i=new u((function(t,i){a.ready().then((function(){L(a._dbInfo,b,(function(n,r){if(n)return i(n);try{var s=r.objectStore(a._dbInfo.storeName).openCursor(),o=1;s.onsuccess=function(){var a=s.result;if(a){var i=a.value;F(i)&&(i=I(i));var n=e(i,a.key,o++);void 0!==n?t(n):a.continue()}else t()},s.onerror=function(){i(s.error)}}catch(e){i(e)}}))})).catch(i)}));return c(i,t),i}function $(e,t,a){var i=this;e=p(e);var n=new u((function(a,n){var r;i.ready().then((function(){return r=i._dbInfo,"[object Blob]"===g.call(t)?A(r.db).then((function(e){return e?t:C(t)})):t})).then((function(t){L(i._dbInfo,v,(function(r,s){if(r)return n(r);try{var o=s.objectStore(i._dbInfo.storeName);null===t&&(t=void 0);var l=o.put(t,e);s.oncomplete=function(){void 0===t&&(t=null),a(t)},s.onabort=s.onerror=function(){var e=l.error?l.error:l.transaction.error;n(e)}}catch(e){n(e)}}))})).catch(n)}));return c(n,a),n}function j(e,t){var a=this;e=p(e);var i=new u((function(t,i){a.ready().then((function(){L(a._dbInfo,v,(function(n,r){if(n)return i(n);try{var s=r.objectStore(a._dbInfo.storeName).delete(e);r.oncomplete=function(){t()},r.onerror=function(){i(s.error)},r.onabort=function(){var e=s.error?s.error:s.transaction.error;i(e)}}catch(e){i(e)}}))})).catch(i)}));return c(i,t),i}function U(e){var t=this,a=new u((function(e,a){t.ready().then((function(){L(t._dbInfo,v,(function(i,n){if(i)return a(i);try{var r=n.objectStore(t._dbInfo.storeName).clear();n.oncomplete=function(){e()},n.onabort=n.onerror=function(){var e=r.error?r.error:r.transaction.error;a(e)}}catch(e){a(e)}}))})).catch(a)}));return c(a,e),a}function z(e){var t=this,a=new u((function(e,a){t.ready().then((function(){L(t._dbInfo,b,(function(i,n){if(i)return a(i);try{var r=n.objectStore(t._dbInfo.storeName).count();r.onsuccess=function(){e(r.result)},r.onerror=function(){a(r.error)}}catch(e){a(e)}}))})).catch(a)}));return c(a,e),a}function W(e,t){var a=this,i=new u((function(t,i){e<0?t(null):a.ready().then((function(){L(a._dbInfo,b,(function(n,r){if(n)return i(n);try{var s=r.objectStore(a._dbInfo.storeName),o=!1,l=s.openKeyCursor();l.onsuccess=function(){var a=l.result;a?0===e||o?t(a.key):(o=!0,a.advance(e)):t(null)},l.onerror=function(){i(l.error)}}catch(e){i(e)}}))})).catch(i)}));return c(i,t),i}function H(e){var t=this,a=new u((function(e,a){t.ready().then((function(){L(t._dbInfo,b,(function(i,n){if(i)return a(i);try{var r=n.objectStore(t._dbInfo.storeName).openKeyCursor(),s=[];r.onsuccess=function(){var t=r.result;t?(s.push(t.key),t.continue()):e(s)},r.onerror=function(){a(r.error)}}catch(e){a(e)}}))})).catch(a)}));return c(a,e),a}function Y(e,t){t=h.apply(this,arguments);var a=this.config();(e="function"!=typeof e&&e||{}).name||(e.name=e.name||a.name,e.storeName=e.storeName||a.storeName);var i,n=this;if(e.name){var r=e.name===a.name&&n._dbInfo.db?u.resolve(n._dbInfo.db):T(e).then((function(t){var a=y[e.name],i=a.forages;a.db=t;for(var n=0;n<i.length;n++)i[n]._dbInfo.db=t;return t}));i=e.storeName?r.then((function(t){if(t.objectStoreNames.contains(e.storeName)){var a=t.version+1;k(e);var i=y[e.name],n=i.forages;t.close();for(var r=0;r<n.length;r++){var o=n[r];o._dbInfo.db=null,o._dbInfo.version=a}var l=new u((function(t,i){var n=s.open(e.name,a);n.onerror=function(e){n.result.close(),i(e)},n.onupgradeneeded=function(){n.result.deleteObjectStore(e.storeName)},n.onsuccess=function(){var e=n.result;e.close(),t(e)}}));return l.then((function(e){i.db=e;for(var t=0;t<n.length;t++){var a=n[t];a._dbInfo.db=e,S(a._dbInfo)}})).catch((function(t){throw(N(e,t)||u.resolve()).catch((function(){})),t}))}})):r.then((function(t){k(e);var a=y[e.name],i=a.forages;t.close();for(var n=0;n<i.length;n++)i[n]._dbInfo.db=null;var r=new u((function(t,a){var i=s.deleteDatabase(e.name);i.onerror=function(){var e=i.result;e&&e.close(),a(i.error)},i.onblocked=function(){console.warn('dropInstance blocked for database "'+e.name+'" until all open connections are closed')},i.onsuccess=function(){var e=i.result;e&&e.close(),t(e)}}));return r.then((function(e){a.db=e;for(var t=0;t<i.length;t++)S(i[t]._dbInfo)})).catch((function(t){throw(N(e,t)||u.resolve()).catch((function(){})),t}))}))}else i=u.reject("Invalid arguments");return c(i,t),i}var G={_driver:"asyncStorage",_initStorage:P,_support:o(),iterate:B,getItem:O,setItem:$,removeItem:j,clear:U,length:z,key:W,keys:H,dropInstance:Y};function q(){return"function"==typeof openDatabase}var Z="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",J="~~local_forage_type~",K=/^~~local_forage_type~([^~]+)~/,X="__lfsc__:",Q=X.length,ee="arbf",te="blob",ae="si08",ie="ui08",ne="uic8",re="si16",se="si32",oe="ur16",le="ui32",ue="fl32",ce="fl64",de=Q+ee.length,pe=Object.prototype.toString;function he(e){var t,a,i,n,r,s=.75*e.length,o=e.length,l=0;"="===e[e.length-1]&&(s--,"="===e[e.length-2]&&s--);var u=new ArrayBuffer(s),c=new Uint8Array(u);for(t=0;t<o;t+=4)a=Z.indexOf(e[t]),i=Z.indexOf(e[t+1]),n=Z.indexOf(e[t+2]),r=Z.indexOf(e[t+3]),c[l++]=a<<2|i>>4,c[l++]=(15&i)<<4|n>>2,c[l++]=(3&n)<<6|63&r;return u}function fe(e){var t,a=new Uint8Array(e),i="";for(t=0;t<a.length;t+=3)i+=Z[a[t]>>2],i+=Z[(3&a[t])<<4|a[t+1]>>4],i+=Z[(15&a[t+1])<<2|a[t+2]>>6],i+=Z[63&a[t+2]];return a.length%3==2?i=i.substring(0,i.length-1)+"=":a.length%3==1&&(i=i.substring(0,i.length-2)+"=="),i}function me(e,t){var a="";if(e&&(a=pe.call(e)),e&&("[object ArrayBuffer]"===a||e.buffer&&"[object ArrayBuffer]"===pe.call(e.buffer))){var i,n=X;e instanceof ArrayBuffer?(i=e,n+=ee):(i=e.buffer,"[object Int8Array]"===a?n+=ae:"[object Uint8Array]"===a?n+=ie:"[object Uint8ClampedArray]"===a?n+=ne:"[object Int16Array]"===a?n+=re:"[object Uint16Array]"===a?n+=oe:"[object Int32Array]"===a?n+=se:"[object Uint32Array]"===a?n+=le:"[object Float32Array]"===a?n+=ue:"[object Float64Array]"===a?n+=ce:t(new Error("Failed to get type for BinaryArray"))),t(n+fe(i))}else if("[object Blob]"===a){var r=new FileReader;r.onload=function(){var a=J+e.type+"~"+fe(this.result);t(X+te+a)},r.readAsArrayBuffer(e)}else try{t(JSON.stringify(e))}catch(a){console.error("Couldn't convert value into a JSON string: ",e),t(null,a)}}function ye(e){if(e.substring(0,Q)!==X)return JSON.parse(e);var t,a=e.substring(de),i=e.substring(Q,de);if(i===te&&K.test(a)){var n=a.match(K);t=n[1],a=a.substring(n[0].length)}var r=he(a);switch(i){case ee:return r;case te:return l([r],{type:t});case ae:return new Int8Array(r);case ie:return new Uint8Array(r);case ne:return new Uint8ClampedArray(r);case re:return new Int16Array(r);case oe:return new Uint16Array(r);case se:return new Int32Array(r);case le:return new Uint32Array(r);case ue:return new Float32Array(r);case ce:return new Float64Array(r);default:throw new Error("Unkown type: "+i)}}var ge={serialize:me,deserialize:ye,stringToBuffer:he,bufferToString:fe};function be(e,t,a,i){e.executeSql("CREATE TABLE IF NOT EXISTS "+t.storeName+" (id INTEGER PRIMARY KEY, key unique, value)",[],a,i)}function ve(e){var t=this,a={db:null};if(e)for(var i in e)a[i]="string"!=typeof e[i]?e[i].toString():e[i];var n=new u((function(e,i){try{a.db=openDatabase(a.name,String(a.version),a.description,a.size)}catch(e){return i(e)}a.db.transaction((function(n){be(n,a,(function(){t._dbInfo=a,e()}),(function(e,t){i(t)}))}),i)}));return a.serializer=ge,n}function _e(e,t,a,i,n,r){e.executeSql(a,i,n,(function(e,s){s.code===s.SYNTAX_ERR?e.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name = ?",[t.storeName],(function(e,o){o.rows.length?r(e,s):be(e,t,(function(){e.executeSql(a,i,n,r)}),r)}),r):r(e,s)}),r)}function we(e,t){var a=this;e=p(e);var i=new u((function(t,i){a.ready().then((function(){var n=a._dbInfo;n.db.transaction((function(a){_e(a,n,"SELECT * FROM "+n.storeName+" WHERE key = ? LIMIT 1",[e],(function(e,a){var i=a.rows.length?a.rows.item(0).value:null;i&&(i=n.serializer.deserialize(i)),t(i)}),(function(e,t){i(t)}))}))})).catch(i)}));return c(i,t),i}function Ae(e,t){var a=this,i=new u((function(t,i){a.ready().then((function(){var n=a._dbInfo;n.db.transaction((function(a){_e(a,n,"SELECT * FROM "+n.storeName,[],(function(a,i){for(var r=i.rows,s=r.length,o=0;o<s;o++){var l=r.item(o),u=l.value;if(u&&(u=n.serializer.deserialize(u)),void 0!==(u=e(u,l.key,o+1)))return void t(u)}t()}),(function(e,t){i(t)}))}))})).catch(i)}));return c(i,t),i}function ke(e,t,a,i){var n=this;e=p(e);var r=new u((function(r,s){n.ready().then((function(){void 0===t&&(t=null);var o=t,l=n._dbInfo;l.serializer.serialize(t,(function(t,u){u?s(u):l.db.transaction((function(a){_e(a,l,"INSERT OR REPLACE INTO "+l.storeName+" (key, value) VALUES (?, ?)",[e,t],(function(){r(o)}),(function(e,t){s(t)}))}),(function(t){if(t.code===t.QUOTA_ERR){if(i>0)return void r(ke.apply(n,[e,o,a,i-1]));s(t)}}))}))})).catch(s)}));return c(r,a),r}function Se(e,t,a){return ke.apply(this,[e,t,a,1])}function Ne(e,t){var a=this;e=p(e);var i=new u((function(t,i){a.ready().then((function(){var n=a._dbInfo;n.db.transaction((function(a){_e(a,n,"DELETE FROM "+n.storeName+" WHERE key = ?",[e],(function(){t()}),(function(e,t){i(t)}))}))})).catch(i)}));return c(i,t),i}function xe(e){var t=this,a=new u((function(e,a){t.ready().then((function(){var i=t._dbInfo;i.db.transaction((function(t){_e(t,i,"DELETE FROM "+i.storeName,[],(function(){e()}),(function(e,t){a(t)}))}))})).catch(a)}));return c(a,e),a}function Te(e){var t=this,a=new u((function(e,a){t.ready().then((function(){var i=t._dbInfo;i.db.transaction((function(t){_e(t,i,"SELECT COUNT(key) as c FROM "+i.storeName,[],(function(t,a){var i=a.rows.item(0).c;e(i)}),(function(e,t){a(t)}))}))})).catch(a)}));return c(a,e),a}function Me(e,t){var a=this,i=new u((function(t,i){a.ready().then((function(){var n=a._dbInfo;n.db.transaction((function(a){_e(a,n,"SELECT key FROM "+n.storeName+" WHERE id = ? LIMIT 1",[e+1],(function(e,a){var i=a.rows.length?a.rows.item(0).key:null;t(i)}),(function(e,t){i(t)}))}))})).catch(i)}));return c(i,t),i}function Ve(e){var t=this,a=new u((function(e,a){t.ready().then((function(){var i=t._dbInfo;i.db.transaction((function(t){_e(t,i,"SELECT key FROM "+i.storeName,[],(function(t,a){for(var i=[],n=0;n<a.rows.length;n++)i.push(a.rows.item(n).key);e(i)}),(function(e,t){a(t)}))}))})).catch(a)}));return c(a,e),a}function Ce(e){return new u((function(t,a){e.transaction((function(i){i.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name <> '__WebKitDatabaseInfoTable__'",[],(function(a,i){for(var n=[],r=0;r<i.rows.length;r++)n.push(i.rows.item(r).name);t({db:e,storeNames:n})}),(function(e,t){a(t)}))}),(function(e){a(e)}))}))}function Ie(e,t){t=h.apply(this,arguments);var a=this.config();(e="function"!=typeof e&&e||{}).name||(e.name=e.name||a.name,e.storeName=e.storeName||a.storeName);var i,n=this;return c(i=e.name?new u((function(t){var i;i=e.name===a.name?n._dbInfo.db:openDatabase(e.name,"","",0),e.storeName?t({db:i,storeNames:[e.storeName]}):t(Ce(i))})).then((function(e){return new u((function(t,a){e.db.transaction((function(i){function n(e){return new u((function(t,a){i.executeSql("DROP TABLE IF EXISTS "+e,[],(function(){t()}),(function(e,t){a(t)}))}))}for(var r=[],s=0,o=e.storeNames.length;s<o;s++)r.push(n(e.storeNames[s]));u.all(r).then((function(){t()})).catch((function(e){a(e)}))}),(function(e){a(e)}))}))})):u.reject("Invalid arguments"),t),i}var Fe={_driver:"webSQLStorage",_initStorage:ve,_support:q(),iterate:Ae,getItem:we,setItem:Se,removeItem:Ne,clear:xe,length:Te,key:Me,keys:Ve,dropInstance:Ie};function Ee(){try{return"undefined"!=typeof localStorage&&"setItem"in localStorage&&!!localStorage.setItem}catch(e){return!1}}function De(e,t){var a=e.name+"/";return e.storeName!==t.storeName&&(a+=e.storeName+"/"),a}function Le(){var e="_localforage_support_test";try{return localStorage.setItem(e,!0),localStorage.removeItem(e),!1}catch(e){return!0}}function Re(){return!Le()||localStorage.length>0}function Pe(e){var t=this,a={};if(e)for(var i in e)a[i]=e[i];return a.keyPrefix=De(e,t._defaultConfig),Re()?(t._dbInfo=a,a.serializer=ge,u.resolve()):u.reject()}function Oe(e){var t=this,a=t.ready().then((function(){for(var e=t._dbInfo.keyPrefix,a=localStorage.length-1;a>=0;a--){var i=localStorage.key(a);0===i.indexOf(e)&&localStorage.removeItem(i)}}));return c(a,e),a}function Be(e,t){var a=this;e=p(e);var i=a.ready().then((function(){var t=a._dbInfo,i=localStorage.getItem(t.keyPrefix+e);return i&&(i=t.serializer.deserialize(i)),i}));return c(i,t),i}function $e(e,t){var a=this,i=a.ready().then((function(){for(var t=a._dbInfo,i=t.keyPrefix,n=i.length,r=localStorage.length,s=1,o=0;o<r;o++){var l=localStorage.key(o);if(0===l.indexOf(i)){var u=localStorage.getItem(l);if(u&&(u=t.serializer.deserialize(u)),void 0!==(u=e(u,l.substring(n),s++)))return u}}}));return c(i,t),i}function je(e,t){var a=this,i=a.ready().then((function(){var t,i=a._dbInfo;try{t=localStorage.key(e)}catch(e){t=null}return t&&(t=t.substring(i.keyPrefix.length)),t}));return c(i,t),i}function Ue(e){var t=this,a=t.ready().then((function(){for(var e=t._dbInfo,a=localStorage.length,i=[],n=0;n<a;n++){var r=localStorage.key(n);0===r.indexOf(e.keyPrefix)&&i.push(r.substring(e.keyPrefix.length))}return i}));return c(a,e),a}function ze(e){var t=this.keys().then((function(e){return e.length}));return c(t,e),t}function We(e,t){var a=this;e=p(e);var i=a.ready().then((function(){var t=a._dbInfo;localStorage.removeItem(t.keyPrefix+e)}));return c(i,t),i}function He(e,t,a){var i=this;e=p(e);var n=i.ready().then((function(){void 0===t&&(t=null);var a=t;return new u((function(n,r){var s=i._dbInfo;s.serializer.serialize(t,(function(t,i){if(i)r(i);else try{localStorage.setItem(s.keyPrefix+e,t),n(a)}catch(e){"QuotaExceededError"!==e.name&&"NS_ERROR_DOM_QUOTA_REACHED"!==e.name||r(e),r(e)}}))}))}));return c(n,a),n}function Ye(e,t){if(t=h.apply(this,arguments),!(e="function"!=typeof e&&e||{}).name){var a=this.config();e.name=e.name||a.name,e.storeName=e.storeName||a.storeName}var i,n=this;return i=e.name?new u((function(t){e.storeName?t(De(e,n._defaultConfig)):t(e.name+"/")})).then((function(e){for(var t=localStorage.length-1;t>=0;t--){var a=localStorage.key(t);0===a.indexOf(e)&&localStorage.removeItem(a)}})):u.reject("Invalid arguments"),c(i,t),i}var Ge={_driver:"localStorageWrapper",_initStorage:Pe,_support:Ee(),iterate:$e,getItem:Be,setItem:He,removeItem:We,clear:Oe,length:ze,key:je,keys:Ue,dropInstance:Ye},qe=function(e,t){return e===t||"number"==typeof e&&"number"==typeof t&&isNaN(e)&&isNaN(t)},Ze=function(e,t){for(var a=e.length,i=0;i<a;){if(qe(e[i],t))return!0;i++}return!1},Je=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)},Ke={},Xe={},Qe={INDEXEDDB:G,WEBSQL:Fe,LOCALSTORAGE:Ge},et=[Qe.INDEXEDDB._driver,Qe.WEBSQL._driver,Qe.LOCALSTORAGE._driver],tt=["dropInstance"],at=["clear","getItem","iterate","key","keys","length","removeItem","setItem"].concat(tt),it={description:"",driver:et.slice(),name:"localforage",size:4980736,storeName:"keyvaluepairs",version:1};function nt(e,t){e[t]=function(){var a=arguments;return e.ready().then((function(){return e[t].apply(e,a)}))}}function rt(){for(var e=1;e<arguments.length;e++){var t=arguments[e];if(t)for(var a in t)t.hasOwnProperty(a)&&(Je(t[a])?arguments[0][a]=t[a].slice():arguments[0][a]=t[a])}return arguments[0]}var st=function(){function e(t){for(var a in n(this,e),Qe)if(Qe.hasOwnProperty(a)){var i=Qe[a],r=i._driver;this[a]=r,Ke[r]||this.defineDriver(i)}this._defaultConfig=rt({},it),this._config=rt({},this._defaultConfig,t),this._driverSet=null,this._initDriver=null,this._ready=!1,this._dbInfo=null,this._wrapLibraryMethodsWithReady(),this.setDriver(this._config.driver).catch((function(){}))}return e.prototype.config=function(e){if("object"===(void 0===e?"undefined":i(e))){if(this._ready)return new Error("Can't call config() after localforage has been used.");for(var t in e){if("storeName"===t&&(e[t]=e[t].replace(/\W/g,"_")),"version"===t&&"number"!=typeof e[t])return new Error("Database version must be a number.");this._config[t]=e[t]}return!("driver"in e)||!e.driver||this.setDriver(this._config.driver)}return"string"==typeof e?this._config[e]:this._config},e.prototype.defineDriver=function(e,t,a){var i=new u((function(t,a){try{var i=e._driver,n=new Error("Custom driver not compliant; see https://mozilla.github.io/localForage/#definedriver");if(!e._driver)return void a(n);for(var r=at.concat("_initStorage"),s=0,o=r.length;s<o;s++){var l=r[s];if((!Ze(tt,l)||e[l])&&"function"!=typeof e[l])return void a(n)}var d=function(){for(var t=function(e){return function(){var t=new Error("Method "+e+" is not implemented by the current driver"),a=u.reject(t);return c(a,arguments[arguments.length-1]),a}},a=0,i=tt.length;a<i;a++){var n=tt[a];e[n]||(e[n]=t(n))}};d();var p=function(a){Ke[i]&&console.info("Redefining LocalForage driver: "+i),Ke[i]=e,Xe[i]=a,t()};"_support"in e?e._support&&"function"==typeof e._support?e._support().then(p,a):p(!!e._support):p(!0)}catch(e){a(e)}}));return d(i,t,a),i},e.prototype.driver=function(){return this._driver||null},e.prototype.getDriver=function(e,t,a){var i=Ke[e]?u.resolve(Ke[e]):u.reject(new Error("Driver not found."));return d(i,t,a),i},e.prototype.getSerializer=function(e){var t=u.resolve(ge);return d(t,e),t},e.prototype.ready=function(e){var t=this,a=t._driverSet.then((function(){return null===t._ready&&(t._ready=t._initDriver()),t._ready}));return d(a,e,e),a},e.prototype.setDriver=function(e,t,a){var i=this;Je(e)||(e=[e]);var n=this._getSupportedDrivers(e);function r(){i._config.driver=i.driver()}function s(e){return i._extend(e),r(),i._ready=i._initStorage(i._config),i._ready}function o(e){return function(){var t=0;function a(){for(;t<e.length;){var n=e[t];return t++,i._dbInfo=null,i._ready=null,i.getDriver(n).then(s).catch(a)}r();var o=new Error("No available storage method found.");return i._driverSet=u.reject(o),i._driverSet}return a()}}var l=null!==this._driverSet?this._driverSet.catch((function(){return u.resolve()})):u.resolve();return this._driverSet=l.then((function(){var e=n[0];return i._dbInfo=null,i._ready=null,i.getDriver(e).then((function(e){i._driver=e._driver,r(),i._wrapLibraryMethodsWithReady(),i._initDriver=o(n)}))})).catch((function(){r();var e=new Error("No available storage method found.");return i._driverSet=u.reject(e),i._driverSet})),d(this._driverSet,t,a),this._driverSet},e.prototype.supports=function(e){return!!Xe[e]},e.prototype._extend=function(e){rt(this,e)},e.prototype._getSupportedDrivers=function(e){for(var t=[],a=0,i=e.length;a<i;a++){var n=e[a];this.supports(n)&&t.push(n)}return t},e.prototype._wrapLibraryMethodsWithReady=function(){for(var e=0,t=at.length;e<t;e++)nt(this,at[e])},e.prototype.createInstance=function(t){return new e(t)},e}(),ot=new st;t.exports=ot},{3:3}]},{},[4])(4)),Qi.exports),tn=O(en);class an{databaseName;collectionName;size;_store;constructor(e,t,a){tn.config({driver:tn.INDEXEDDB}),this.databaseName=e||"lumino-cache",this.collectionName=t||"data",this.size=a,this._store=tn.createInstance({name:this.databaseName,storeName:this.collectionName})}async init(){}async _keys(){return this._store.keys()}async _set(e,t){return this._store.setItem(e,t)}async _clear(){return this._store.clear()}async _get(e){return this._store.getItem(e)}async _remove(e){return this._store.removeItem(e)}}function nn(e){let t,a,i,n;e.onmessage=async r=>{const s=r.data;try{switch(s.type){case"init":{i=s.databaseName,n=s.collectionName,t=await navigator.storage.getDirectory();const r=await t.getDirectoryHandle(i,{create:!0});a=await r.getDirectoryHandle(n,{create:!0}),e.postMessage({type:s.type,database:i,collection:n,success:!0});break}case"write":{if(!a)throw new Error("OPFS Worker: not initialized yet!");const t=await a.getFileHandle(s.filename,{create:!0}),r=await t.createSyncAccessHandle();let o;if("string"==typeof s.content){o=(new TextEncoder).encode(s.content).buffer}else if(s.content instanceof ArrayBuffer)o=s.content;else{if(!(s.content instanceof Blob))throw new Error("OPFS Worker: Unsupported content type: "+typeof s.content);o=await s.content.arrayBuffer()}r.truncate(o.byteLength),r.write(o,{at:0}),await r.flush(),r.close(),e.postMessage({type:s.type,database:i,collection:n,success:!0});break}}}catch(t){e.postMessage({type:s.type,success:!1,database:i,collection:n,error:t.message})}}}class rn{databaseName;collectionName;size;_worker;_storage;_root;constructor(e,t,a){this.databaseName=e||"lumino-cache",this.collectionName=t||"data",this.size=a}async init(){if("object"==typeof globalThis.navigator&&"storage"in globalThis.navigator&&"function"==typeof globalThis.navigator.storage.getDirectory){this._storage=await navigator.storage.getDirectory();const e=await this._storage.getDirectoryHandle(this.databaseName,{create:!0});let t,a;this._root=await e.getDirectoryHandle(this.collectionName,{create:!0}),this._worker=new Worker(URL.createObjectURL(new Blob(["(",nn.toString(),")(self)"],{type:"application/javascript"})),{type:"module"});let i=new Promise(((e,i)=>{t=e,a=i}));return this._worker.onmessage=e=>{const i=e.data;i.success||console.error("OPFS Worker failed:",i),"init"===i.type&&(i.success?t():a(i.error))},this._worker.postMessage({type:"init",databaseName:this.databaseName,collectionName:this.collectionName}),i}}async _keys(){if(!this._root)return[];const e=[];for await(const t of this._root.values())e.push(t.name);return e}async _set(e,t){if(!this._root)return;let a;if(t instanceof Blob)a=t;else if("object"==typeof t){const e=JSON.stringify(t,null,2);a=new Blob([e],{type:"application/json"})}else a=new Blob([t],{type:"text/plain"});const i=await this._root.getFileHandle(e,{create:!0});if("function"==typeof i.createWritable){const e=await i.createWritable();await e.write(a),await e.close()}else this._worker.postMessage({type:"write",filename:e,content:a})}async _clear(){if(!this._root)return;const e=[];for await(const t of this._root.values())e.push(this._root.removeEntry(t.name));return Promise.all(e)}async _get(e,t){if(!this._root)return null;let a;try{const t=await this._root.getFileHandle(e);a=await t.getFile()}catch(e){return null}switch(t=t||a.type){case"text/plain":return a.text();case"application/json":{const e=await a.text();try{return JSON.parse(e)}catch(t){return console.error("Content was loaded from cache but could not be json parsed: ",e),null}}default:return a}}async _remove(e){if(this._root)return this._root.removeEntry(e)}}class sn{databaseName;collectionName;size;type;_impl;constructor(e,t,a=0,i=1){switch(this.databaseName=e||"lumino",this.collectionName=t||"data",this.size=1048576*(i||1),this.type=a,this.type){case 0:this._impl=new an(this.databaseName,this.collectionName,this.size);break;case 1:this._impl=new rn(this.databaseName,this.collectionName,this.size);break;default:throw"Invalid storage type: "+a}}async init(){return this._impl.init()}async _keys(){return this._impl._keys()}fixKey(e){return e.replaceAll("/","_")}async _set(e,t){return this._impl._set(this.fixKey(e),t)}async _clear(){return this._impl._clear()}async _get(e,t){return this._impl._get(this.fixKey(e),t)}async _remove(e){return this._impl._remove(this.fixKey(e))}}var on,ln,un,cn,dn,pn,hn,fn,mn,yn,gn,bn,vn,_n,wn,An,kn,Sn,Nn,xn,Tn,Mn,Vn,Cn,In,Fn,En,Dn;function Ln(){if(ln)return on;return ln=1,on=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}}function Rn(){if(pn)return dn;pn=1;var e=function(){if(cn)return un;cn=1;var e="object"==typeof P&&P&&P.Object===Object&&P;return un=e}(),t="object"==typeof self&&self&&self.Object===Object&&self,a=e||t||Function("return this")();return dn=a}function Pn(){if(bn)return gn;bn=1;var e=function(){if(yn)return mn;yn=1;var e=/\s/;return mn=function(t){for(var a=t.length;a--&&e.test(t.charAt(a)););return a}}(),t=/^\s+/;return gn=function(a){return a?a.slice(0,e(a)+1).replace(t,""):a}}function On(){if(_n)return vn;_n=1;var e=Rn().Symbol;return vn=e}function Bn(){if(xn)return Nn;xn=1;var e=On(),t=function(){if(An)return wn;An=1;var e=On(),t=Object.prototype,a=t.hasOwnProperty,i=t.toString,n=e?e.toStringTag:void 0;return wn=function(e){var t=a.call(e,n),r=e[n];try{e[n]=void 0;var s=!0}catch(e){}var o=i.call(e);return s&&(t?e[n]=r:delete e[n]),o}}(),a=function(){if(Sn)return kn;Sn=1;var e=Object.prototype.toString;return kn=function(t){return e.call(t)}}(),i=e?e.toStringTag:void 0;return Nn=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":i&&i in Object(e)?t(e):a(e)}}function $n(){if(Cn)return Vn;Cn=1;var e=Bn(),t=Mn?Tn:(Mn=1,Tn=function(e){return null!=e&&"object"==typeof e});return Vn=function(a){return"symbol"==typeof a||t(a)&&"[object Symbol]"==e(a)}}var jn=function(){if(Dn)return En;Dn=1;var e=Ln(),t=function(){if(fn)return hn;fn=1;var e=Rn();return hn=function(){return e.Date.now()}}(),a=function(){if(Fn)return In;Fn=1;var e=Pn(),t=Ln(),a=$n(),i=/^[-+]0x[0-9a-f]+$/i,n=/^0b[01]+$/i,r=/^0o[0-7]+$/i,s=parseInt;return In=function(o){if("number"==typeof o)return o;if(a(o))return NaN;if(t(o)){var l="function"==typeof o.valueOf?o.valueOf():o;o=t(l)?l+"":l}if("string"!=typeof o)return 0===o?o:+o;o=e(o);var u=n.test(o);return u||r.test(o)?s(o.slice(2),u?2:8):i.test(o)?NaN:+o}}(),i=Math.max,n=Math.min;return En=function(r,s,o){var l,u,c,d,p,h,f=0,m=!1,y=!1,g=!0;if("function"!=typeof r)throw new TypeError("Expected a function");function b(e){var t=l,a=u;return l=u=void 0,f=e,d=r.apply(a,t)}function v(e){var t=e-h;return void 0===h||t>=s||t<0||y&&e-f>=c}function _(){var e=t();if(v(e))return w(e);p=setTimeout(_,function(e){var t=s-(e-h);return y?n(t,c-(e-f)):t}(e))}function w(e){return p=void 0,g&&l?b(e):(l=u=void 0,d)}function A(){var e=t(),a=v(e);if(l=arguments,u=this,h=e,a){if(void 0===p)return function(e){return f=e,p=setTimeout(_,s),m?b(e):d}(h);if(y)return clearTimeout(p),p=setTimeout(_,s),b(h)}return void 0===p&&(p=setTimeout(_,s)),d}return s=a(s)||0,e(o)&&(m=!!o.leading,c=(y="maxWait"in o)?i(a(o.maxWait)||0,s):c,g="trailing"in o?!!o.trailing:g),A.cancel=function(){void 0!==p&&clearTimeout(p),f=0,l=h=u=p=void 0},A.flush=function(){return void 0===p?d:w(t())},A}}(),Un=O(jn);class zn extends sn{apiClient;cache=new Map;urlToIdMap=new Map;logging=!1;ready=!1;usePublicApi=!1;quota=0;size=0;usePersistentStorage=!1;saveIndex;constructor(e,t,a,i){if(super("lumino","items",1),!a)throw"A lumino client needs to be passed.";this.apiClient=a,this.usePublicApi=e,this.quota=1048576*(i||1024),this.usePersistentStorage=t;this.saveIndex=Un((()=>{const e=[];for(const t of this.cache.values())e.push({id:t.id,time:t.time.valueOf(),size:t.size,hash:t.hash,itemType:t.itemType,mimeType:t.mimeType,itemName:t.itemName});this._set("index",e).then((function(){})).catch((function(e){console.error("Error saving cache index: "+e)}))}),1e3)}async init(){return await super.init(),this.initFromStorage()}getQuota(){return this.quota}setQuota(e){this.quota=e,this.checkQuota()}getCount(){return this.cache.size}getSize(){return this.size}async initFromStorage(){if(this.usePersistentStorage){const e=await this._get("index","application/json");if(e&&Array.isArray(e))for(const t of e)t.time=W(t.time),this.cache.set(t.id,t),this.size+=t.size;else await this._clear(),this.saveIndex()}this.ready=!0,y.$emit("itemCache:cacheReady"),y.$emit("itemCache:cacheChange"),y.$on("item:rename",(e=>this.handleRename(e)))}async addToStorage(e,t){if(this.usePersistentStorage){const a={id:e.id,time:W(e.time.toDate()),size:e.size,hash:e.hash,itemType:e.itemType,mimeType:e.mimeType,itemName:e.itemName};await this._set(`blob_${e.id}`,t),this.cache.set(e.id,a),this.saveIndex()}this.size+=e.size}waitUntilReady(){const e=this;return new Promise(((t,a)=>{try{e.ready?t():y.$on("itemCache:cacheReady",(()=>{t()}))}catch(e){a(e)}}))}findObject(e){return this.cache.get(e)}getEntries(){return this.cache.values()}clear(){for(const e of this.cache.values())e.objectUrl&&URL.revokeObjectURL(e.objectUrl);this.cache.clear(),y.$emit("itemCache:cacheChange"),this.usePersistentStorage&&this._clear().then((function(){console.log("Cache storage cleared.")})).catch((function(e){console.error(e)}))}clearMemory(){for(let e of this.cache.values())e.objectUrl&&(URL.revokeObjectURL(e.objectUrl),delete e.objectUrl);y.$emit("itemCache:cacheChange")}checkQuota(e=0){let t=this.size+e;if(t>this.quota){const e=[...this.cache.entries()].sort((function(e,t){return e[1].time.valueOf()-t[1].time.valueOf()}));let a=0;for(;t>this.quota&&a<e.length;){const i=e[a][1];i.objectUrl||(t-=i.size,this.removeObjectFromCache(i.id)),a++}}}removeObjectFromCache(e){const t=this.cache.get(e);t&&(t.objectUrl&&URL.revokeObjectURL(t.objectUrl),this.cache.delete(e),this.size-=t.size,this.usePersistentStorage&&(this._remove(`blob_${t.id}`).then((function(){console.log(`Removed blob for ${e} from cache`)})).catch((function(t){console.error(`Error removing blob for ${e} from cache: ${t}`)})),this.saveIndex()))}getIdFromUrl(e){return this.urlToIdMap.has(e)?this.urlToIdMap.get(e):null}getById(e){const t=this.findObject(e);return t?(this.logging&&console.log("Retrieving from cache: "+e),t.time=W(),t):(this.logging&&console.error("Object not in cache: "+e),null)}getObjectUrl(e){const t=this.getIdFromUrl(e);if(!t)return console.error("Could not find URL in cache: "+e),"";const a=this.getById(t);return a?a.objectUrl:(console.error("Could not find Id in cache: "+t),"")}async getBufferById(e){const t=await this.getBlobById(e);return t?await new Response(t).arrayBuffer():null}async getBlobById(e){const t=this.getById(e);return t?await fetch(t.objectUrl).then((e=>e.blob())):null}async loadFromStorage(e){if(e.objectUrl)return!0;let t=null;return!!this.usePersistentStorage&&(t=await this._get(`blob_${e.id}`),!!t&&(e.objectUrl=URL.createObjectURL(t),e.time=W(),this.saveIndex(),y.$emit("itemCache:cacheChange"),!0))}getCacheKey(e,t){return t&&"item"!==t.type?e+"_lod"+t.index:e}_getLodLevelUrl(e,t){let a;return a=t&&"item"!==t.type?this.apiClient.getAttachmentDownloadUrl(e,"lod",t.index):this.apiClient.getDownloadUrl(e),a}async loadItem(e,t,a){let i=0;for(;;)try{let i;if(this.usePublicApi)i=t&&"item"!==t.type?await this.apiClient.downloadPublicAttachment(e,"lod",t.index,void 0,a):await this.apiClient.publicDownloadItem(e,a);else try{i=t&&"item"!==t.type?await this.apiClient.downloadAttachment(e,"lod",t.index,void 0,a):await this.apiClient.downloadItem(e,a)}catch{i=t&&"item"!==t.type?await this.apiClient.downloadPublicAttachment(e,"lod",t.index,void 0,a):await this.apiClient.publicDownloadItem(e,a)}return i}catch(t){if(console.log(t),i++,!(i<3))return y.$emit("client:fatalError",`Failed to download item ${e}`),null;console.debug(`Failed attempts to download item ${e}: ${i}. Trying again...`)}}async addItemToCache(e,t,a,i){try{const n=this.getCacheKey(e,t),r=this.findObject(n);if(r&&(a||!this.apiClient.getItemHash||this.usePublicApi||(a=await this.apiClient.getItemHash(e)),a&&r.hash===a&&(this.logging&&console.log("Item already in cache: "+e),await this.loadFromStorage(r))))return r.url||(r.url=this._getLodLevelUrl(e,t)),this.urlToIdMap.set(r.url,n),this.cache.set(n,r),r;i&&i(0);let s=await this.loadItem(e,t,i);if(!s)return console.error("Was not able to load object into cache: "+n),null;i&&i(100);const o=this._getLodLevelUrl(e,t),l=URL.createObjectURL(s.blob),u={id:n,url:o,time:W(),objectUrl:l,size:s.blob.size,hash:s.hash,itemType:s.itemType,mimeType:s.mimeType,itemName:s.itemName};return this.checkQuota(u.size),await this.addToStorage(u,s.blob),this.cache.set(n,u),this.urlToIdMap.set(o,n),this.saveIndex(),y.$emit("itemCache:cacheChange"),this.logging&&console.log("Added item to cache: ",u),u}catch(e){return console.error(e),null}}getObjectCount(){return this.cache.size}getObjectSize(){let e=0;for(const t of this.cache.values())e+=t.size;return e}handleRename({id:e,newName:t}){const a=this.cache.get(e);a&&(a.itemName=t,this.saveIndex(),y.$emit("itemCache:cacheChange"))}}class Wn extends sn{apiClient;ready=!1;maxNumItems=1e4;constructor(e){if(super("lumino","folders",1),!e)throw"A lumino client needs to be passed.";this.apiClient=e}async init(){await super.init(),await this.checkStorage(),this.ready=!0}clear(){return this._clear()}async checkStorage(){const e=await this._keys();let t=e.length-this.maxNumItems;if(t>0){t=Math.floor(this.maxNumItems/2);const a=[];for(let i=0;i<t;i++)a.push(this._remove(e[i]));await Promise.all(a)}}async getFolderListing(e){return this.ready?this._get(e,"application/json"):null}async getItemListing(e){if(!this.ready)return null;const t=await this._get("items_"+e,"application/json");if(!t)return null;const a=await this.getFolderListing(e);return a&&a.parent&&new Date(t.cachedAt).getTime()>new Date(a.parent.updatedAt).getTime()?t.data:null}async getFolderACLs(e,t){if(!this.ready)return null;const a=await this._get("acl_"+e,"application/json");return a&&Date.now()-a.cachedAt<t?(delete a.cachedAt,a):null}async refreshCacheForFolder(e){const t=await this.getFolderListing(e);await this.addFolderListing(e,t)}async addFolderListing(e,t){this.ready&&(await this._set(e,{...t,cachedAt:new Date}),await this.checkStorage())}async addItemListing(e,t){this.ready&&(await this._set("items_"+e,{data:t,cachedAt:new Date}),await this.checkStorage())}async addACL(e,t){this.ready&&(await this._set("acl_"+e,{...t,cachedAt:new Date}),await this.checkStorage())}}class Hn extends sn{apiClient;constructor(e){if(super("lumino","thumbs",1),!e)throw"A lumino client needs to be passed.";this.apiClient=e}clear(){this._clear()}async _loadThumbnail(e,t){try{return await this.apiClient.getThumbnail(e,t)}catch{try{return await this.apiClient.getPublicThumbnail(e,t)}catch{return null}}}async get(e,t,a,i){if(!t)throw"Cannot retrieve item thumbnail from cache without knowing size!";let n=await this._get(e,"application/json");if(n&&n.hash===a&&n.timestamp===i){for(const e of n.thumbnails)if(e.size===t){if(e.data)return e.data;n.thumbnails.removeObject(e);break}let a=await this._loadThumbnail(t,e);return a&&(n.thumbnails.push({size:t,data:a}),await this._set(e,n)),a}let r=await this._loadThumbnail(t,e);if(a||i){let s=[];r&&s.push({size:t,data:r}),n={id:e,hash:a,timestamp:i,thumbnails:s},await this._set(e,n)}return r}}class Yn{apiClient;cache=new Map;constructor(e){this.apiClient=e,this.cache=new Map}async resolve(e){let t=this.cache.get(e);if(!t)try{t=this.apiClient.getUserPublicInfo(e,this.apiClient.requestClientId,32),this.cache.set(e,t)}catch(e){console.error(e)}return t}}class Gn{apiClient;cache=new Map;constructor(e){this.apiClient=e}async resolve(e){let t=this.cache.get(e);if(!t)try{t=this.apiClient.getGroupPublicInfo(e,this.apiClient.requestClientId,32),this.cache.set(e,t)}catch(e){console.error(e)}return t}}class qn{apiClient;cache=new Map;constructor(e){this.apiClient=e}async get(e,t,a,i,n=!1){const r=`${e}_${t}_${a}${void 0===i?"":`_${i}`}`,s=this.cache.get(r);if(s)return s;try{const s=new Promise((async r=>{try{let s;s=n?await this.apiClient.downloadPublicAttachment(e,t,a,i,void 0):await this.apiClient.downloadAttachmentPOP(e,t,a,i,void 0);r(URL.createObjectURL(s.blob))}catch(e){r(null)}}));return this.cache.set(r,s),s}catch(e){return console.warn(`Attachment ${r} not available.`),null}}invalidateAttachment(e,t,a,i){let n=`${e}_${t}`;null!=a&&(n+=`_${a}`);for(const e of this.cache.keys()){const t=null==i||e.endsWith(`_${i}`);e.startsWith(n)&&t&&this.cache.delete(e)}}}class Zn{apiClient;itemRepo;jobManager;items=[];hasExternalResources=!1;totalSize=0;affectedFolderIds=new Set;constructor(e){this.apiClient=e,this.itemRepo=e.getItemRepo(),this.jobManager=e.getJobManager()}_updateQuota(){this.apiClient.eventBus.$emit("quota:update")}async getPreviousVersions(e,t){const a=[];t=t||"published";const i=await this.apiClient.createFolder({name:t,parent:e,returnIfExists:!0}),n=await this.apiClient.getFoldersInFolderList(i,{folderAsItemType:"Package"});for(const e of n.children)e.item&&a.push({itemId:e.item._id,folderId:e._id,version:e.name,name:e.item.name,filesize:0|e.item.filesize,visibility:e.item.visibility});return a}async verify(e){const t=this,a=new Map,i=new Map;e=e?await this.itemRepo.loadItem(e._id,{recursive:!0}):this.itemRepo.activeItem;const n=await r(e.folder);async function r(e){try{if(e){const a=e._id?e._id:e;if(i.has(a))return i.get(a);{const e=(await t.apiClient.getFolderPath(a)).path;return i.set(a,e),e}}return"/"}catch{return""}}await this.itemRepo.traverseItems((async function(e){const t={_id:e._id,name:e.name,type:e.type,size:e.totalSize,path:await r(e.folder),item:e,external:!1};t.path.startsWith(n)?t.path=t.path.slice(n.length):t.external=!0,a.set(e._id,t)})),this.items=Array.from(a.values()),this.hasExternalResources=!1,this.totalSize=0;for(const e of this.items)e.external&&(this.hasExternalResources=!0),this.totalSize+=e.size;return!this.hasExternalResources}getItems(){return this.items}async unpackToProject(e,t,a,i){a&&(t=await this.apiClient.createFolder({name:a,parent:t,returnIfExists:!0}));const n=await this.apiClient.getItem(e);n.folder===t&&await this.apiClient.renameItem(e,n.name+" (Unpackaged)");const r=await this.apiClient.createFolder({name:n.name,parent:t,fixNameCollisions:!0}),s=await this.jobManager.execute("JS:Unpackage",[{_id:e,isFolder:!1}],[{name:"Destination Folder",value:r},{name:"Make Destination Visible",value:!1}],i);if(this._updateQuota(),3===s.state){const t=s.log.trim().split(";");if(2!==t.length||"UNPACKAGED"!==t[0])throw new V("Unpacking failed. Did not get unpackaged item id!");const a=t[1].trim();return await this.apiClient.renameItem(a,n.name),await this.itemRepo.replaceLink(e,a),a}if(2===s.state)throw new V("Unpacking failed: "+s.error)}async copyItemToProject(e,t,a,i){return(await this.copyItemsToProject([{_id:e,isFolder:!1}],t,a,i))[0].newId}async copyItemsToProject(e,t,a,i){a=a||"packages",t=await this.apiClient.createFolder({name:a,parent:t,returnIfExists:!0}),this.affectedFolderIds.add(t);const n=[];if(e.length){const a=await this.jobManager.execute("JS:CloneItem",e,[{name:"Deep Clone",value:!1},{name:"Destination Folder",value:t},{name:"Exclude Types",value:""},{name:"Make Private",value:!0}],i);if(this._updateQuota(),3===a.state){if(!a.log.trim().length)throw new V("Copy job returned no results.");{const e=a.log.split("\n").reverse();for(const t of e){const e=t.trim().split(";");if(3===e.length){const t=e[1],a=e[2];await this.itemRepo.replaceLink(t,a),n.push({oldId:t,newId:a})}}}}else if(2===a.state)throw new V("Copying of items failed: "+a.error)}return n}async copyToProject(e,t,a){const i=[];for(const e of this.items)e.external&&i.push({_id:e._id,isFolder:!1});return this.copyItemsToProject(i,e,t,a)}async unpublish(e){await this.apiClient.makeItemPrivate(e,!1,!1)}async publish(e,t,a,i,n,r,s,o){const l=e.version;i=i||`published/${l.major}.${l.minor}.${l.revision}`,n=void 0===n||n,r=void 0===r||r,this.affectedFolderIds.add(a);let u,c=a;if(i){const e=i.split("/");for(const t of e)c=await this.apiClient.createFolder({name:t,parent:c,returnIfExists:!0}),this.affectedFolderIds.add(c),u||(u=c)}const d=(await this.apiClient.getFoldersInFolderList(a)).children.map((e=>e._id)).filter((e=>e!==u)).join(","),p=await this.jobManager.execute("JS:CreatePackage",[{_id:e._id,isFolder:!1}],[{name:"Folders To Include",value:d},{name:"Destination Folder",value:c},{name:"Item Name",value:t},{name:"Make Public",value:!!n},{name:"Copy External",value:!!r},{name:"Always Create New Package",value:!!s},{name:"Make Cloneable",value:!!o}]);if(this._updateQuota(),2===p.state)throw new V("Packaging failed: "+p.error);this.apiClient.eventBus.$emit("folder:changed",Array.from(this.affectedFolderIds.values()))}}class Jn{id;job;nextCheckMs;constructor(e,t,a){this.id=e,this.job=a,this.nextCheckMs=t}}class Kn{apiClient;jobs=new Map;constructor(e){this.apiClient=e}getJobs(){return Array.from(this.jobs.values())}async execute(e,t,a,i=void 0,n){const r=this;return new Promise((async(s,o)=>{try{const o=async()=>{try{u.job=await r.apiClient.getJobState(l);let e=!1;switch(u.job.state){case 0:case 1:try{i&&i(u.job)}catch(e){console.error("Error calling progress callback: ",e)}break;case 2:case 3:console.log("Job is done."),e=!0,s(u.job)}e?r.jobs.delete(l):(u.nextCheckMs=Math.min(2*u.nextCheckMs,8e3),setTimeout(o,u.nextCheckMs))}catch(e){console.error("Error fetching job state: "+e)}},l=await r.apiClient.createJob({type:e,elements:t,parameters:a,requiredParameters:n}),u=new Jn(l,1e3);r.jobs.set(l,u),setTimeout(o,u.nextCheckMs)}catch(e){o(e)}}))}}const Xn={mp3:{name:"Mpeg Audio Layer 3",itemType:"Audio",itemTypeCollection:"Audio Collection",collectionEntryName:"AudioItems",folderName:"audio",defaultAction:"Use",actions:["Skip","Use"]},hdr:{name:"HDR Image",itemType:"HDR Image",folderName:"envmaps",defaultAction:"Use",actions:["Skip","Use"]},glb:{name:"Gltf Binary",itemType:"Mesh",itemTypeCollection:"Mesh Collection",collectionEntryName:"MeshItems",folderName:"meshes",defaultAction:"Use",actions:["Skip","Use"]},png:{name:"Portable Network Graphics",itemType:"Image",folderName:"textures",defaultAction:"Use",actions:["Skip","Use"]},jpg:{name:"JPEG",itemType:"Image",folderName:"textures",defaultAction:"Use",actions:["Skip","Use"]},jpeg:{name:"JPEG",itemType:"Image",folderName:"textures",defaultAction:"Use",actions:["Skip","Use"]},lua:{name:"Lua",itemType:"Script",folderName:"scripts",defaultAction:"Use",actions:["Skip","Use"]},ttf:{name:"True Type Font",itemType:"Font",folderName:"fonts",defaultAction:"Use",actions:["Skip","Use"]},otf:{name:"Open Type Font",itemType:"Font",folderName:"fonts",defaultAction:"Use",actions:["Skip","Use"]},unknown:{name:"Unsupported",itemType:"Unknown",defaultAction:"Skip",actions:["Skip"],invisible:!0}},Qn={Audio:"audio","Audio Collection":"audio","HDR Image":"envmaps",Mesh:"meshes","Mesh Collection":"",Script:"scripts",Material:"materials","Background Shader":"background shaders","Pixel Shader":"pixel shaders","Vertex Shader":"vertex shaders",Image:"textures",Scene:"prefabs",Font:"fonts"};function er(e,t){let a=Xn[t];a||(a=Xn.unknown),e.size=e.blob?e.blob.size:0,e.type=a.name,e.collectionType=a.itemTypeCollection,e.collectionEntryName=a.collectionEntryName,e.action=a.defaultAction,e.actions=a.actions,e.folderName=a.folderName,e.itemType=a.itemType,e.name=function(e,t){let a=e.lastIndexOf(".");return e.substring(0,a<0?e.length:a)+"."+t}(e.name,t)}class tr{name;blob;processing=!1;progress=0;size=0;type;collectionType;collectionEntryName;action;actions;folderName;itemType;constructor(e,t,a){this.name=e,this.blob=t,er(this,a)}}class ar{apiClient;itemRepo;jobManager;items=[];mainItem;totalSize=0;oldMainItemId;originalItemIds=[];affectedFolderIds=new Set;packageId;converter;supportedExtensions;hasExternalResources=!1;constructor(e){this.apiClient=e,this.itemRepo=e.getItemRepo(),this.jobManager=e.getJobManager();const t=[];for(const e in Xn)Xn[e].invisible||t.push(`.${e.toUpperCase()}`);this.supportedExtensions=t.sort(((e,t)=>e.localeCompare(t)))}_updateQuota(){this.apiClient.eventBus.$emit("quota:update")}_addAffectedFolder(e){"object"==typeof e&&e._id?this.affectedFolderIds.add(e._id):"string"==typeof e?this.affectedFolderIds.add(e):console.error("Invalid affected folder to add: ",e)}getAffectedFolderIds(){return Array.from(this.affectedFolderIds.values())}getSupportedExtensions(){return this.supportedExtensions}setConverter(e){this.converter=e}setItems(e){this.items=e}async scan(e){const t=this,a=new Map,i=new Map;this.mainItem=await this.itemRepo.loadItem(e,{recursive:!0}),this.oldMainItemId=this.mainItem._id;const n=await r(this.mainItem.folder);async function r(e){try{if(e){const a=e._id?e._id:e;if(i.has(a))return i.get(a);{const e=(await t.apiClient.getFolderPath(a)).path;return i.set(a,e),e}}return"/"}catch(e){return console.error(e),""}}await this.itemRepo.traverseItems((async function(e){const i={_id:e._id,name:e.name,type:e.type,size:e.totalSize,path:await r(e.folder),item:e,external:!1};i.path.startsWith(n)?i.path=i.path.slice(n.length):i.external=!0,t._addAffectedFolder(e.folder),a.set(e._id,i)}),this.mainItem),this.items=Array.from(a.values()),this.originalItemIds=this.items.map((e=>e._id)),this.hasExternalResources=!1,this.totalSize=0;for(const e of this.items)e.external&&(this.hasExternalResources=!0),this.totalSize+=e.size;return this.items}getItems(){return this.items}async saveMainItemChanges(){const e=this.mainItem;await this.apiClient.updateItem({_id:e._id,name:e.name,shortDescription:e.shortDescription,description:e.description,tags:e.tags,categories:e.categories,visibility:e.visibility,contributors:e.contributors,version:e.version})}async createAssetFolder(e,t){let a=e;const i=t.split("/");this._addAffectedFolder(e);for(const e of i)a=await this.apiClient.createFolder({name:e,parent:a,returnIfExists:!0}),this._addAffectedFolder(a);const n=await this.apiClient.getItemsInFolderList(a,!0);if(n&&n.length)throw new Error("Asset folder already exists and is not empty!");return a}createStandardAssetFolderPath(e){let t=Qn[e.type];return t||(t=e.type.toLowerCase()+"s"),`assets/${t}/${e.name}`}async executeActions(){if(!this.converter)throw new Error("No converter is configured. Cannot execute actions on items.");return this.converter(this.items,er)}async createAsset(e,t=!1,a){const i=[];for(const e of this.items)i.push(e._id);if(this._addAffectedFolder(e),i.length)if(t){await this.apiClient.moveItems({items:i,dest:e})!==i.length&&console.warn("Not all items could be moved. Most likely due to permissions."),this.mainItem.folder=e}else{const t=await this.jobManager.execute("JS:CloneItem",[{_id:this.mainItem._id,isFolder:!1}],[{name:"Deep Clone",value:!0},{name:"Destination Folder",value:e},{name:"Exclude Types",value:""}],a);if(3===t.state){const a=t.log.split("\n").reverse()[0].split(";");this.mainItem._id=a[2],this.mainItem.folder=e}else if(2===t.state)throw new V("Copying of items failed: "+t.error)}"Main"!==this.mainItem.name&&(this.mainItem.originalName=this.mainItem.name,this.mainItem.name="Main",await this.apiClient.renameItem(this.mainItem._id,this.mainItem.name));const n=await this.apiClient.getItem(this.mainItem._id);return n.flags||(n.flags=[]),n.flags.includes("original")||n.flags.push("original"),await this.apiClient.updateItem(n),this._updateQuota(),this.mainItem._id}async createPackage(e,t=!1,a=!1){let i,n=this.mainItem.folder;if(this._addAffectedFolder(n),void 0===e){const t=this.mainItem.version||{major:1,minor:0,revision:0};e=`published/${t.major}.${t.minor}.${t.revision}`}if(void 0===t&&(t=!0),e){const t=e.split("/");for(const e of t)n=await this.apiClient.createFolder({name:e,parent:n,returnIfExists:!0}),this._addAffectedFolder(n),i||(i=n)}const r=(await this.apiClient.getFoldersInFolderList(this.mainItem.folder)).children.map((e=>e._id)).filter((e=>e!==i)).join(","),s=await this.jobManager.execute("JS:CreatePackage",[{_id:this.mainItem._id,isFolder:!1}],[{name:"Folders To Include",value:r},{name:"Destination Folder",value:n},{name:"Item Name",value:this.mainItem.originalName||this.mainItem.name},{name:"Make Public",value:!!t},{name:"Copy External",value:!!a}]);if(this._updateQuota(),2===s.state)throw new V("Packaging failed: "+s.error);const o=s.log.split("\n").reverse()[0].split(";");this.packageId=o[2]}async replaceReferences(){await this.itemRepo.replaceLink(this.oldMainItemId,this.packageId)}async deleteOriginalItems(){await this.apiClient.deleteItem(this.originalItemIds)}sendFolderRefreshEvent(){this.apiClient.eventBus.$emit("folder:changed",this.getAffectedFolderIds())}async processUploads(e){const t=[];for(const a of e)if("application/zip"===a.type||"application/x-zip-compressed"===a.type){const e=new h.default;try{const i=[];(await e.loadAsync(a)).forEach(((e,a)=>{const n=a.name.split("/").pop();if(!n.startsWith(".")){const e=n.split(".").pop(),r=a.async("blob");i.push(r),r.then((function(i){const n=new tr(a.name,i,e);t.push(n)}))}})),await Promise.all(i)}catch(e){console.error("Error reading the ZIP file:",e)}}else{const e=a.name.split(".").pop(),i=new tr(a.name,a,e);t.push(i)}return t}detectAssets(e){let t,a,i,n=0;for(const r of e)if("Use"===r.action)if(void 0===t)t=r.itemType,a=r.collectionType,i=r.folderName,n++;else{if(t!==r.itemType)return{valid:!1,reason:"Mixed item types found. To create an asset, upload a single type of file for example only meshes."};n++}return 0===n?{valid:!1,reason:"There are no files we can use to create an asset."}:n>1&&!a?{valid:!1,reason:"Cannot create collections of this type."}:{valid:!0,assetType:n>1?a:t,itemCount:n,folderName:i}}_filterUploadFiles(e){let t=[];for(const a of e)"Use"===a.action&&t.push(a);return t}createNewItem(){return{name:"New asset",type:"",description:"",shortDescription:"",tags:[],flags:["original"],categories:[],license:"CC0",allowConversation:!0,version:{major:1,minor:0,revision:0}}}async createAssetFromFiles(e,t,a,i=!1,n=!1){const r=this.detectAssets(e);if(r.assetType!==a.type)throw new Error("Asset type not valid for these items.");if(!r.valid)throw new Error(r.reason||"No valid asset detected.");let s=await this.apiClient.createFolder({name:r.folderName,parent:t,returnIfExists:!0}),o=await this.apiClient.createFolder({name:a.name,parent:s,returnIfExists:!0}),l=!1;if(0===(await this.apiClient.getItemsInFolderList(o)).length){(await this.apiClient.getFoldersInFolderList(o)).children.length&&(l=!0)}else l=!0;if(l){if(!i)throw new Error("Cannot create asset, target folder is not empty!");await this.apiClient.deleteFolder(o),o=await this.apiClient.createFolder({name:a.name,parent:s})}let u,c=this._filterUploadFiles(e);if(1===c.length){const e=c[0];e.processing=!0,e.progress=0,u=await this.apiClient.uploadAndCreate(o,e.blob,e.name,{nameOverride:"Main",flags:"original"},(function(t){e.progress=t})),this._updateQuota(),e.action="Skip"}else{let e=await this.apiClient.createFolder({name:"resources",parent:o}),t={},a=[],i=0;for(const n of c){n.processing=!0,n.progress=0;const r=await this.apiClient.uploadAndCreate(e,n.blob,n.name,void 0,(function(e){n.progress=e}));this._updateQuota(),n.action="Skip",t[`${n.collectionEntryName}[${i}]->Name`]="",a.push({usage:`MeshItems[${i}]->Mesh`,to:r}),i++}u=await this.apiClient.createItem({type:r.assetType,name:"Main",flags:["original"],folder:o,fixNameCollisions:!0,attributes:t,links:a})}return a._id=u,a.folder=o,this.mainItem=a,n?{assetItemId:u,assetTypeFolderId:s,assetFolderId:o}:u}}class ir{apiClient;itemRepo;constructor(e){this.apiClient=e,this.itemRepo=e.getItemRepo()}grab(e,t,a,i){i=i||{};const n=[];for(const r of a){const a=this._serializeBlockFields(r),s=this._serializeScripts(r),o={type:"block",item:e._id,field:t.name,path:"",block:{id:r.id,type:r.type||"Group",fields:a,scripts:s,children:[]}};i.omitPath||(o.path=this._getBlockPath(r)),i.withChildren&&(o.block.children=this.grab(e,t,r.blocks||[],{withChildren:!0,returnArray:!0})),n.push(o)}if(i.returnArray)return n;const r={type:"serializedBlocks",data:n};return i.noStringify?r:JSON.stringify(r,null,2)}async put(e,t,a,i={}){e=this.validateMessage(e);const n=[];for(const r of e.data){const e=await this._putBlock(r,t,a,i);e&&n.push(e)}return n}validateMessage(e){if("string"==typeof e&&(e=JSON.parse(e)),"serializedBlocks"!==e.type)throw new Error("Data must be a serialized block message. Format is wrong.");if(!Array.isArray(e.data))throw new Error("The contained data is not an array.");return e}async clone(e,t,a,i,n={}){const r=this.grab(i,t,[e],{withChildren:!0,noStringify:!0});return this.put(r,t,a,n)}_updateScriptFieldReferences(e,t){const a=new Map,i=(e,t)=>{a.set(e.block.id,t.id);const n=e.block.children||[],r=t.blocks||[];for(let e=0;e<n.length;e++)i(n[e],r[e])};i(e,t),this.itemRepo.updateScriptFieldReferencesFromMap(a,t)}async _putBlock(e,t,a,i={},n=!1){if(!e.block||!e.block.type||!e.block.fields)return null;const r=e.block,s=this._findItemById(e.item)??this.itemRepo.activeItem;let o=a;o||(o=this._findParentBlock(s,e.field,e.path));const l={};if(Array.isArray(r.fields))for(const e of r.fields){const{name:t,type:a,value:n,linkto:r}=e;if("Separator"!==a)if(i.fieldOverrides&&t in i.fieldOverrides)l[t]=i.fieldOverrides[t];else if(r){const e=this.itemRepo.getLoadedItem(r);l[t]=e||await this.itemRepo.loadItem(r)}else l[t]=n}const u=i.dontCopyScripts?[]:[...r.scripts],c=await this._createUnproxifiedBlock(r.type,l,u,t,s),d={...i,parentPosition:void 0,fieldOverrides:void 0};if(!c)return console.warn(`Could not create block of type ${r.type}. Skipping.`),null;if(Array.isArray(r.children))for(const e of r.children)await this._putBlock(e,t,c,d,!0);if(n&&o)return"number"==typeof i.parentPosition?o.blocks.splice(i.parentPosition,0,c):o.blocks.push(c),c.parent=o,c;i.dontCopyScripts||this._updateScriptFieldReferences(e,c);return this._proxifyAndAttachTree(c,o,s,i.parentPosition)}async _createUnproxifiedBlock(e,t,a,i,n){let r=le.instance.getTemplate(n.packageType||n.type,i.name,e);if(!r)return null;if(t){const e=r.template.clone().specialize(t);r={displayName:r.displayName,typeName:r.typeName,template:e,inputs:r.inputs,outputs:r.outputs}}const s=new ce(void 0,void 0,r.typeName,void 0,r.displayName,n),o=await this.itemRepo.createFieldsForItem(s,r.template,n,!0);return s.setFields(o),s.blocks=[],await this.itemRepo.createScriptsForItem(s,a,n,!1),s}_proxifyAndAttachTree(e,t,a,i){const n=e=>{if(Array.isArray(e.blocks)&&e.blocks.length)for(const t of e.blocks)n(t);const t=e.blocks.map((e=>S.instance.proxyBlock(e,a)));e.blocks=S.instance.proxyBlockArray(t,e,a),e.scripts=S.instance.proxyScriptArray(e.scripts,e,a)};n(e),e.parent=t;const r=S.instance.proxyBlock(e,a);return"number"==typeof i?t.blocks.splice(i,0,r):t.blocks.push(r),r}_findItemById(e){return this.itemRepo.findLoadedItem(e)}_findItemField(e,t){if(!e.fieldInstances)return null;for(const a of e.fieldInstances)if(a.name===t)return a;return null}_findParentBlock(e,t,a){const i=this._findItemField(e,t);if(!i)return null;const n=a.split("/");let r=i.blocks,s=null;for(const e of n)s=r[e],r=s.blocks;return s}_getBlockIndex(e){if(!e.parent)return 0;let t=0;for(const a of e.parent.blocks){if(e.id===a.id)return t;t++}throw new Error("Could not find block in parent block array!")}_getBlockPath(e){const t=[];let a=e;for(;a;)t.push(this._getBlockIndex(a)),a=a.parent;return"/"+t.reverse().join("/")}_serializeBlockFields(e){const t=[];if(!Array.isArray(e.fields))return t;for(const a of e.fields)switch(a.type){case"Link":t.push({name:a.name,linkto:a.value?._id});break;case"Attribute":t.push({name:a.name,value:a.value});break;case"Separator":t.push({name:a.name,type:"Separator"})}return t}_serializeScripts(e){const t=[];if(!Array.isArray(e.scripts))return t;for(const a of e.scripts){const e=[],i={item:a.item?.value?._id,fields:e};for(const t of a.fields)e.push({name:t.name,value:t.value});t.push(i)}return t}}Array.prototype.pushAll||(Array.prototype.pushAll=function(e){for(const t of e)this.push(t)}),Array.prototype.removeObject||(Array.prototype.removeObject=function(e){const t=this.indexOf(e);return t>-1&&(this.splice(t,1),!0)}),Array.prototype.moveObjectToArray||(Array.prototype.moveObjectToArray=function(e,t,a){const i=this.indexOf(e);if(i>-1){return(0,this.moveToArray)(i,t,a)}return!1}),Array.prototype.removeByFilterFunc||(Array.prototype.removeByFilterFunc=function(e){let t=0;for(let a=0;a<this.length;a++)e(this[a])&&(this.splice(a,1),a--,t++);return t}),Array.prototype.clone||(Array.prototype.clone=function(){const e=[];for(const t of this)e.push(t);return e});const nr=()=>new Map,rr=e=>{const t=nr();return e.forEach(((e,a)=>{t.set(a,e)})),t},sr=(e,t,a)=>{let i=e.get(t);return void 0===i&&e.set(t,i=a()),i},or=()=>new Set,lr=e=>e[e.length-1],ur=(e,t)=>{for(let a=0;a<t.length;a++)e.push(t[a])},cr=Array.from,dr=Array.isArray;class pr{constructor(){this._observers=nr()}on(e,t){return sr(this._observers,e,or).add(t),t}once(e,t){const a=(...i)=>{this.off(e,a),t(...i)};this.on(e,a)}off(e,t){const a=this._observers.get(e);void 0!==a&&(a.delete(t),0===a.size&&this._observers.delete(e))}emit(e,t){return cr((this._observers.get(e)||nr()).values()).forEach((e=>e(...t)))}destroy(){this._observers=nr()}}class hr{constructor(){this._observers=nr()}on(e,t){sr(this._observers,e,or).add(t)}once(e,t){const a=(...i)=>{this.off(e,a),t(...i)};this.on(e,a)}off(e,t){const a=this._observers.get(e);void 0!==a&&(a.delete(t),0===a.size&&this._observers.delete(e))}emit(e,t){return cr((this._observers.get(e)||nr()).values()).forEach((e=>e(...t)))}destroy(){this._observers=nr()}}const fr=Math.floor,mr=Math.abs,yr=(e,t)=>e<t?e:t,gr=(e,t)=>e>t?e:t,br=Math.pow,vr=e=>0!==e?e<0:1/e<0,_r=64,wr=128,Ar=127,kr=Number.MAX_SAFE_INTEGER,Sr=Number.isInteger||(e=>"number"==typeof e&&isFinite(e)&&fr(e)===e),Nr=String.fromCharCode,xr=/^\s*/g,Tr=/([A-Z])/g,Mr=(e,t)=>(e=>e.replace(xr,""))(e.replace(Tr,(e=>`${t}${(e=>e.toLowerCase())(e)}`))),Vr="undefined"!=typeof TextEncoder?new TextEncoder:null,Cr=Vr?e=>Vr.encode(e):e=>{const t=unescape(encodeURIComponent(e)),a=t.length,i=new Uint8Array(a);for(let e=0;e<a;e++)i[e]=t.codePointAt(e);return i};let Ir="undefined"==typeof TextDecoder?null:new TextDecoder("utf-8",{fatal:!0,ignoreBOM:!0});Ir&&1===Ir.decode(new Uint8Array).length&&(Ir=null);class Fr{constructor(){this.cpos=0,this.cbuf=new Uint8Array(100),this.bufs=[]}}const Er=()=>new Fr,Dr=e=>{let t=e.cpos;for(let a=0;a<e.bufs.length;a++)t+=e.bufs[a].length;return t},Lr=e=>{const t=new Uint8Array(Dr(e));let a=0;for(let i=0;i<e.bufs.length;i++){const n=e.bufs[i];t.set(n,a),a+=n.length}return t.set(new Uint8Array(e.cbuf.buffer,0,e.cpos),a),t},Rr=(e,t)=>{const a=e.cbuf.length;e.cpos===a&&(e.bufs.push(e.cbuf),e.cbuf=new Uint8Array(2*a),e.cpos=0),e.cbuf[e.cpos++]=t},Pr=Rr,Or=(e,t)=>{for(;t>Ar;)Rr(e,wr|Ar&t),t=fr(t/128);Rr(e,Ar&t)},Br=(e,t)=>{const a=vr(t);for(a&&(t=-t),Rr(e,(t>63?wr:0)|(a?_r:0)|63&t),t=fr(t/64);t>0;)Rr(e,(t>Ar?wr:0)|Ar&t),t=fr(t/128)},$r=new Uint8Array(3e4),jr=$r.length/3,Ur=Vr&&Vr.encodeInto?(e,t)=>{if(t.length<jr){const a=Vr.encodeInto(t,$r).written||0;Or(e,a);for(let t=0;t<a;t++)Rr(e,$r[t])}else Wr(e,Cr(t))}:(e,t)=>{const a=unescape(encodeURIComponent(t)),i=a.length;Or(e,i);for(let t=0;t<i;t++)Rr(e,a.codePointAt(t))},zr=(e,t)=>{const a=e.cbuf.length,i=e.cpos,n=yr(a-i,t.length),r=t.length-n;e.cbuf.set(t.subarray(0,n),i),e.cpos+=n,r>0&&(e.bufs.push(e.cbuf),e.cbuf=new Uint8Array(gr(2*a,r)),e.cbuf.set(t.subarray(n)),e.cpos=r)},Wr=(e,t)=>{Or(e,t.byteLength),zr(e,t)},Hr=(e,t)=>{((e,t)=>{const a=e.cbuf.length;a-e.cpos<t&&(e.bufs.push(new Uint8Array(e.cbuf.buffer,0,e.cpos)),e.cbuf=new Uint8Array(2*gr(a,t)),e.cpos=0)})(e,t);const a=new DataView(e.cbuf.buffer,e.cpos,t);return e.cpos+=t,a},Yr=new DataView(new ArrayBuffer(4)),Gr=(e,t)=>{switch(typeof t){case"string":Rr(e,119),Ur(e,t);break;case"number":Sr(t)&&mr(t)<=2147483647?(Rr(e,125),Br(e,t)):(a=t,Yr.setFloat32(0,a),Yr.getFloat32(0)===a?(Rr(e,124),((e,t)=>{Hr(e,4).setFloat32(0,t,!1)})(e,t)):(Rr(e,123),((e,t)=>{Hr(e,8).setFloat64(0,t,!1)})(e,t)));break;case"bigint":Rr(e,122),((e,t)=>{Hr(e,8).setBigInt64(0,t,!1)})(e,t);break;case"object":if(null===t)Rr(e,126);else if(dr(t)){Rr(e,117),Or(e,t.length);for(let a=0;a<t.length;a++)Gr(e,t[a])}else if(t instanceof Uint8Array)Rr(e,116),Wr(e,t);else{Rr(e,118);const a=Object.keys(t);Or(e,a.length);for(let i=0;i<a.length;i++){const n=a[i];Ur(e,n),Gr(e,t[n])}}break;case"boolean":Rr(e,t?120:121);break;default:Rr(e,127)}var a};class qr extends Fr{constructor(e){super(),this.w=e,this.s=null,this.count=0}write(e){this.s===e?this.count++:(this.count>0&&Or(this,this.count-1),this.count=1,this.w(this,e),this.s=e)}}const Zr=e=>{e.count>0&&(Br(e.encoder,1===e.count?e.s:-e.s),e.count>1&&Or(e.encoder,e.count-2))};class Jr{constructor(){this.encoder=new Fr,this.s=0,this.count=0}write(e){this.s===e?this.count++:(Zr(this),this.count=1,this.s=e)}toUint8Array(){return Zr(this),Lr(this.encoder)}}const Kr=e=>{if(e.count>0){const t=2*e.diff+(1===e.count?0:1);Br(e.encoder,t),e.count>1&&Or(e.encoder,e.count-2)}};class Xr{constructor(){this.encoder=new Fr,this.s=0,this.count=0,this.diff=0}write(e){this.diff===e-this.s?(this.s=e,this.count++):(Kr(this),this.count=1,this.diff=e-this.s,this.s=e)}toUint8Array(){return Kr(this),Lr(this.encoder)}}class Qr{constructor(){this.sarr=[],this.s="",this.lensE=new Jr}write(e){this.s+=e,this.s.length>19&&(this.sarr.push(this.s),this.s=""),this.lensE.write(e.length)}toUint8Array(){const e=new Fr;return this.sarr.push(this.s),this.s="",Ur(e,this.sarr.join("")),zr(e,this.lensE.toUint8Array()),Lr(e)}}const es=e=>new Error(e),ts=()=>{throw es("Method unimplemented")},as=()=>{throw es("Unexpected case")},is=es("Unexpected end of array"),ns=es("Integer out of Range");class rs{constructor(e){this.arr=e,this.pos=0}}const ss=e=>new rs(e),os=e=>((e,t)=>{const a=new Uint8Array(e.arr.buffer,e.pos+e.arr.byteOffset,t);return e.pos+=t,a})(e,us(e)),ls=e=>e.arr[e.pos++],us=e=>{let t=0,a=1;const i=e.arr.length;for(;e.pos<i;){const i=e.arr[e.pos++];if(t+=(i&Ar)*a,a*=128,i<wr)return t;if(t>kr)throw ns}throw is},cs=e=>{let t=e.arr[e.pos++],a=63&t,i=64;const n=(t&_r)>0?-1:1;if(!(t&wr))return n*a;const r=e.arr.length;for(;e.pos<r;){if(t=e.arr[e.pos++],a+=(t&Ar)*i,i*=128,t<wr)return n*a;if(a>kr)throw ns}throw is},ds=Ir?e=>Ir.decode(os(e)):e=>{let t=us(e);if(0===t)return"";{let a=String.fromCodePoint(ls(e));if(--t<100)for(;t--;)a+=String.fromCodePoint(ls(e));else for(;t>0;){const i=t<1e4?t:1e4,n=e.arr.subarray(e.pos,e.pos+i);e.pos+=i,a+=String.fromCodePoint.apply(null,n),t-=i}return decodeURIComponent(escape(a))}},ps=(e,t)=>{const a=new DataView(e.arr.buffer,e.arr.byteOffset+e.pos,t);return e.pos+=t,a},hs=[e=>{},e=>null,cs,e=>ps(e,4).getFloat32(0,!1),e=>ps(e,8).getFloat64(0,!1),e=>ps(e,8).getBigInt64(0,!1),e=>!1,e=>!0,ds,e=>{const t=us(e),a={};for(let i=0;i<t;i++){a[ds(e)]=fs(e)}return a},e=>{const t=us(e),a=[];for(let i=0;i<t;i++)a.push(fs(e));return a},os],fs=e=>hs[127-ls(e)](e);class ms extends rs{constructor(e,t){super(e),this.reader=t,this.s=null,this.count=0}read(){var e;return 0===this.count&&(this.s=this.reader(this),(e=this).pos!==e.arr.length?this.count=us(this)+1:this.count=-1),this.count--,this.s}}class ys extends rs{constructor(e){super(e),this.s=0,this.count=0}read(){if(0===this.count){this.s=cs(this);const e=vr(this.s);this.count=1,e&&(this.s=-this.s,this.count=us(this)+2)}return this.count--,this.s}}class gs extends rs{constructor(e){super(e),this.s=0,this.count=0,this.diff=0}read(){if(0===this.count){const e=cs(this),t=1&e;this.diff=fr(e/2),this.count=1,t&&(this.count=us(this)+2)}return this.s+=this.diff,this.count--,this.s}}class bs{constructor(e){this.decoder=new ys(e),this.str=ds(this.decoder),this.spos=0}read(){const e=this.spos+this.decoder.read(),t=this.str.slice(this.spos,e);return this.spos=e,t}}const vs=crypto.getRandomValues.bind(crypto),_s=()=>vs(new Uint32Array(1))[0],ws=[1e7]+-1e3+-4e3+-8e3+-1e11,As=()=>ws.replace(/[018]/g,(e=>(e^_s()&15>>e/4).toString(16))),ks=Date.now,Ss=e=>new Promise(e);Promise.all.bind(Promise);const Ns=e=>void 0===e?null:e;let xs=new class{constructor(){this.map=new Map}setItem(e,t){this.map.set(e,t)}getItem(e){return this.map.get(e)}},Ts=!0;try{"undefined"!=typeof localStorage&&localStorage&&(xs=localStorage,Ts=!1)}catch(e){}const Ms=xs,Vs=Object.assign,Cs=Object.keys,Is=e=>Cs(e).length,Fs=e=>Cs(e).length,Es=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),Ds=Object.freeze,Ls=e=>{for(const t in e){const a=e[t];"object"!=typeof a&&"function"!=typeof a||Ls(e[t])}return Ds(e)},Rs=Symbol("Equality"),Ps=(e,t,a=0)=>{try{for(;a<e.length;a++)e[a](...t)}finally{a<e.length&&Ps(e,t,a+1)}},Os=e=>e,Bs=(e,t)=>{if(e===t)return!0;if(null==e||null==t||e.constructor!==t.constructor)return!1;if(null!=e[Rs])return e[Rs](t);switch(e.constructor){case ArrayBuffer:e=new Uint8Array(e),t=new Uint8Array(t);case Uint8Array:if(e.byteLength!==t.byteLength)return!1;for(let a=0;a<e.length;a++)if(e[a]!==t[a])return!1;break;case Set:if(e.size!==t.size)return!1;for(const a of e)if(!t.has(a))return!1;break;case Map:if(e.size!==t.size)return!1;for(const a of e.keys())if(!t.has(a)||!Bs(e.get(a),t.get(a)))return!1;break;case Object:if(Is(e)!==Is(t))return!1;for(const a in e)if(!Es(e,a)||!Bs(e[a],t[a]))return!1;break;case Array:if(e.length!==t.length)return!1;for(let a=0;a<e.length;a++)if(!Bs(e[a],t[a]))return!1;break;default:return!1}return!0},$s="undefined"!=typeof process&&process.release&&/node|io\.js/.test(process.release.name)&&"[object process]"===Object.prototype.toString.call("undefined"!=typeof process?process:0),js="undefined"!=typeof window&&"undefined"!=typeof document&&!$s;let Us;const zs=e=>(()=>{if(void 0===Us)if($s){Us=nr();const e=process.argv;let t=null;for(let a=0;a<e.length;a++){const i=e[a];"-"===i[0]?(null!==t&&Us.set(t,""),t=i):null!==t&&(Us.set(t,i),t=null)}null!==t&&Us.set(t,"")}else"object"==typeof location?(Us=nr(),(location.search||"?").slice(1).split("&").forEach((e=>{if(0!==e.length){const[t,a]=e.split("=");Us.set(`--${Mr(t,"-")}`,a),Us.set(`-${Mr(t,"-")}`,a)}}))):Us=nr();return Us})().has(e),Ws=e=>Ns($s?process.env[e.toUpperCase().replaceAll("-","_")]:Ms.getItem(e)),Hs=e=>zs("--"+e)||null!==Ws(e);Hs("production");var Ys;const Gs=$s&&(Ys=process.env.FORCE_COLOR,["true","1","2"].includes(Ys))||!zs("--no-colors")&&!Hs("no-color")&&(!$s||process.stdout.isTTY)&&(!$s||zs("--color")||null!==Ws("COLORTERM")||(Ws("TERM")||"").includes("color")),qs=e=>new Uint8Array(e),Zs=js?e=>{let t="";for(let a=0;a<e.byteLength;a++)t+=Nr(e[a]);return btoa(t)}:e=>Buffer.from(e.buffer,e.byteOffset,e.byteLength).toString("base64"),Js=js?e=>{const t=atob(e),a=qs(t.length);for(let e=0;e<t.length;e++)a[e]=t.charCodeAt(e);return a}:e=>{const t=Buffer.from(e,"base64");return((e,t,a)=>new Uint8Array(e,t,a))(t.buffer,t.byteOffset,t.byteLength)};class Ks{constructor(e,t){this.left=e,this.right=t}}const Xs=(e,t)=>new Ks(e,t);"undefined"!=typeof DOMParser&&new DOMParser;const Qs=Symbol,eo=Qs(),to=Qs(),ao=Qs(),io=Qs(),no=Qs(),ro=Qs(),so=Qs(),oo=Qs(),lo=Qs(),uo={[eo]:Xs("font-weight","bold"),[to]:Xs("font-weight","normal"),[ao]:Xs("color","blue"),[no]:Xs("color","green"),[io]:Xs("color","grey"),[ro]:Xs("color","red"),[so]:Xs("color","purple"),[oo]:Xs("color","orange"),[lo]:Xs("color","black")},co=Gs?e=>{1===e.length&&e[0]?.constructor===Function&&(e=e[0]());const t=[],a=[],i=nr();let n=[],r=0;for(;r<e.length;r++){const n=e[r],s=uo[n];if(void 0!==s)i.set(s.left,s.right);else{if(void 0===n)break;if(n.constructor!==String&&n.constructor!==Number)break;{const e=((e,t)=>{const a=[];for(const[i,n]of e)a.push(t(n,i));return a})(i,((e,t)=>`${t}:${e};`)).join("");r>0||e.length>0?(t.push("%c"+n),a.push(e)):t.push(n)}}}for(r>0&&(n=a,n.unshift(t.join("")));r<e.length;r++){const t=e[r];t instanceof Symbol||n.push(t)}return n}:e=>{1===e.length&&e[0]?.constructor===Function&&(e=e[0]());const t=[],a=[];let i=0;for(;i<e.length;i++){const a=e[i];if(void 0===a)break;if(a.constructor===String||a.constructor===Number)t.push(a);else if(a.constructor===Object)break}for(i>0&&a.push(t.join(""));i<e.length;i++){const t=e[i];t instanceof Symbol||a.push(t)}return a},po=or(),ho=e=>({[Symbol.iterator](){return this},next:e}),fo=(e,t)=>ho((()=>{const{done:a,value:i}=e.next();return{done:a,value:a?void 0:t(i)}}));class mo{constructor(e,t){this.clock=e,this.len=t}}class yo{constructor(){this.clients=new Map}}const go=(e,t,a)=>t.clients.forEach(((t,i)=>{const n=e.doc.store.clients.get(i);if(null!=n){const i=n[n.length-1],r=i.id.clock+i.length;for(let i=0,s=t[i];i<t.length&&s.clock<r;s=t[++i])ol(e,n,s.clock,s.len,a)}})),bo=(e,t)=>{const a=e.clients.get(t.client);return void 0!==a&&null!==((e,t)=>{let a=0,i=e.length-1;for(;a<=i;){const n=fr((a+i)/2),r=e[n],s=r.clock;if(s<=t){if(t<s+r.len)return n;a=n+1}else i=n-1}return null})(a,t.clock)},vo=e=>{e.clients.forEach((e=>{let t,a;for(e.sort(((e,t)=>e.clock-t.clock)),t=1,a=1;t<e.length;t++){const i=e[a-1],n=e[t];i.clock+i.len>=n.clock?i.len=gr(i.len,n.clock+n.len-i.clock):(a<t&&(e[a]=n),a++)}e.length=a}))},_o=(e,t,a,i)=>{sr(e.clients,t,(()=>[])).push(new mo(a,i))},wo=e=>{const t=new yo;return e.clients.forEach(((e,a)=>{const i=[];for(let t=0;t<e.length;t++){const a=e[t];if(a.deleted){const n=a.id.clock;let r=a.length;if(t+1<e.length)for(let a=e[t+1];t+1<e.length&&a.deleted;a=e[1+ ++t])r+=a.length;i.push(new mo(n,r))}}i.length>0&&t.clients.set(a,i)})),t},Ao=(e,t)=>{Or(e.restEncoder,t.clients.size),cr(t.clients.entries()).sort(((e,t)=>t[0]-e[0])).forEach((([t,a])=>{e.resetDsCurVal(),Or(e.restEncoder,t);const i=a.length;Or(e.restEncoder,i);for(let t=0;t<i;t++){const i=a[t];e.writeDsClock(i.clock),e.writeDsLen(i.len)}}))},ko=e=>{const t=new yo,a=us(e.restDecoder);for(let i=0;i<a;i++){e.resetDsCurVal();const a=us(e.restDecoder),i=us(e.restDecoder);if(i>0){const n=sr(t.clients,a,(()=>[]));for(let t=0;t<i;t++)n.push(new mo(e.readDsClock(),e.readDsLen()))}}return t},So=(e,t,a)=>{const i=new yo,n=us(e.restDecoder);for(let r=0;r<n;r++){e.resetDsCurVal();const n=us(e.restDecoder),r=us(e.restDecoder),s=a.clients.get(n)||[],o=el(a,n);for(let a=0;a<r;a++){const a=e.readDsClock(),r=a+e.readDsLen();if(a<o){o<r&&_o(i,n,o,r-o);let e=al(s,a),l=s[e];for(!l.deleted&&l.id.clock<a&&(s.splice(e+1,0,Wu(t,l,a-l.id.clock)),e++);e<s.length&&(l=s[e++],l.id.clock<r);)l.deleted||(r<l.id.clock+l.length&&s.splice(e,0,Wu(t,l,r-l.id.clock)),l.delete(t))}else _o(i,n,a,r-a)}}if(i.clients.size>0){const e=new Do;return Or(e.restEncoder,0),Ao(e,i),e.toUint8Array()}return null},No=_s;class xo extends pr{constructor({guid:e=As(),collectionid:t=null,gc:a=!0,gcFilter:i=()=>!0,meta:n=null,autoLoad:r=!1,shouldLoad:s=!0}={}){super(),this.gc=a,this.gcFilter=i,this.clientID=No(),this.guid=e,this.collectionid=t,this.share=new Map,this.store=new Xo,this._transaction=null,this._transactionCleanups=[],this.subdocs=new Set,this._item=null,this.shouldLoad=s,this.autoLoad=r,this.meta=n,this.isLoaded=!1,this.isSynced=!1,this.isDestroyed=!1,this.whenLoaded=Ss((e=>{this.on("load",(()=>{this.isLoaded=!0,e(this)}))}));const o=()=>Ss((e=>{const t=a=>{void 0!==a&&!0!==a||(this.off("sync",t),e())};this.on("sync",t)}));this.on("sync",(e=>{!1===e&&this.isSynced&&(this.whenSynced=o()),this.isSynced=void 0===e||!0===e,this.isSynced&&!this.isLoaded&&this.emit("load",[this])})),this.whenSynced=o()}load(){const e=this._item;null===e||this.shouldLoad||hl(e.parent.doc,(e=>{e.subdocsLoaded.add(this)}),null,!0),this.shouldLoad=!0}getSubdocs(){return this.subdocs}getSubdocGuids(){return new Set(cr(this.subdocs).map((e=>e.guid)))}transact(e,t=null){return hl(this,e,t)}get(e,t=Dl){const a=sr(this.share,e,(()=>{const e=new t;return e._integrate(this,null),e})),i=a.constructor;if(t!==Dl&&i!==t){if(i===Dl){const i=new t;i._map=a._map,a._map.forEach((e=>{for(;null!==e;e=e.left)e.parent=i})),i._start=a._start;for(let e=i._start;null!==e;e=e.right)e.parent=i;return i._length=a._length,this.share.set(e,i),i._integrate(this,null),i}throw new Error(`Type with the name ${e} has already been defined with a different constructor`)}return a}getArray(e=""){return this.get(e,Xl)}getText(e=""){return this.get(e,yu)}getMap(e=""){return this.get(e,eu)}getXmlElement(e=""){return this.get(e,vu)}getXmlFragment(e=""){return this.get(e,bu)}toJSON(){const e={};return this.share.forEach(((t,a)=>{e[a]=t.toJSON()})),e}destroy(){this.isDestroyed=!0,cr(this.subdocs).forEach((e=>e.destroy()));const e=this._item;if(null!==e){this._item=null;const t=e.content;t.doc=new xo({guid:this.guid,...t.opts,shouldLoad:!1}),t.doc._item=e,hl(e.parent.doc,(a=>{const i=t.doc;e.deleted||a.subdocsAdded.add(i),a.subdocsRemoved.add(this)}),null,!0)}this.emit("destroyed",[!0]),this.emit("destroy",[this]),super.destroy()}}class To{constructor(e){this.restDecoder=e}resetDsCurVal(){}readDsClock(){return us(this.restDecoder)}readDsLen(){return us(this.restDecoder)}}class Mo extends To{readLeftID(){return Zo(us(this.restDecoder),us(this.restDecoder))}readRightID(){return Zo(us(this.restDecoder),us(this.restDecoder))}readClient(){return us(this.restDecoder)}readInfo(){return ls(this.restDecoder)}readString(){return ds(this.restDecoder)}readParentInfo(){return 1===us(this.restDecoder)}readTypeRef(){return us(this.restDecoder)}readLen(){return us(this.restDecoder)}readAny(){return fs(this.restDecoder)}readBuf(){return(e=>{const t=qs(e.byteLength);return t.set(e),t})(os(this.restDecoder))}readJSON(){return JSON.parse(ds(this.restDecoder))}readKey(){return ds(this.restDecoder)}}class Vo{constructor(e){this.dsCurrVal=0,this.restDecoder=e}resetDsCurVal(){this.dsCurrVal=0}readDsClock(){return this.dsCurrVal+=us(this.restDecoder),this.dsCurrVal}readDsLen(){const e=us(this.restDecoder)+1;return this.dsCurrVal+=e,e}}class Co extends Vo{constructor(e){super(e),this.keys=[],us(e),this.keyClockDecoder=new gs(os(e)),this.clientDecoder=new ys(os(e)),this.leftClockDecoder=new gs(os(e)),this.rightClockDecoder=new gs(os(e)),this.infoDecoder=new ms(os(e),ls),this.stringDecoder=new bs(os(e)),this.parentInfoDecoder=new ms(os(e),ls),this.typeRefDecoder=new ys(os(e)),this.lenDecoder=new ys(os(e))}readLeftID(){return new Go(this.clientDecoder.read(),this.leftClockDecoder.read())}readRightID(){return new Go(this.clientDecoder.read(),this.rightClockDecoder.read())}readClient(){return this.clientDecoder.read()}readInfo(){return this.infoDecoder.read()}readString(){return this.stringDecoder.read()}readParentInfo(){return 1===this.parentInfoDecoder.read()}readTypeRef(){return this.typeRefDecoder.read()}readLen(){return this.lenDecoder.read()}readAny(){return fs(this.restDecoder)}readBuf(){return os(this.restDecoder)}readJSON(){return fs(this.restDecoder)}readKey(){const e=this.keyClockDecoder.read();if(e<this.keys.length)return this.keys[e];{const e=this.stringDecoder.read();return this.keys.push(e),e}}}class Io{constructor(){this.restEncoder=Er()}toUint8Array(){return Lr(this.restEncoder)}resetDsCurVal(){}writeDsClock(e){Or(this.restEncoder,e)}writeDsLen(e){Or(this.restEncoder,e)}}class Fo extends Io{writeLeftID(e){Or(this.restEncoder,e.client),Or(this.restEncoder,e.clock)}writeRightID(e){Or(this.restEncoder,e.client),Or(this.restEncoder,e.clock)}writeClient(e){Or(this.restEncoder,e)}writeInfo(e){Pr(this.restEncoder,e)}writeString(e){Ur(this.restEncoder,e)}writeParentInfo(e){Or(this.restEncoder,e?1:0)}writeTypeRef(e){Or(this.restEncoder,e)}writeLen(e){Or(this.restEncoder,e)}writeAny(e){Gr(this.restEncoder,e)}writeBuf(e){Wr(this.restEncoder,e)}writeJSON(e){Ur(this.restEncoder,JSON.stringify(e))}writeKey(e){Ur(this.restEncoder,e)}}class Eo{constructor(){this.restEncoder=Er(),this.dsCurrVal=0}toUint8Array(){return Lr(this.restEncoder)}resetDsCurVal(){this.dsCurrVal=0}writeDsClock(e){const t=e-this.dsCurrVal;this.dsCurrVal=e,Or(this.restEncoder,t)}writeDsLen(e){0===e&&as(),Or(this.restEncoder,e-1),this.dsCurrVal+=e}}class Do extends Eo{constructor(){super(),this.keyMap=new Map,this.keyClock=0,this.keyClockEncoder=new Xr,this.clientEncoder=new Jr,this.leftClockEncoder=new Xr,this.rightClockEncoder=new Xr,this.infoEncoder=new qr(Pr),this.stringEncoder=new Qr,this.parentInfoEncoder=new qr(Pr),this.typeRefEncoder=new Jr,this.lenEncoder=new Jr}toUint8Array(){const e=Er();return Or(e,0),Wr(e,this.keyClockEncoder.toUint8Array()),Wr(e,this.clientEncoder.toUint8Array()),Wr(e,this.leftClockEncoder.toUint8Array()),Wr(e,this.rightClockEncoder.toUint8Array()),Wr(e,Lr(this.infoEncoder)),Wr(e,this.stringEncoder.toUint8Array()),Wr(e,Lr(this.parentInfoEncoder)),Wr(e,this.typeRefEncoder.toUint8Array()),Wr(e,this.lenEncoder.toUint8Array()),zr(e,Lr(this.restEncoder)),Lr(e)}writeLeftID(e){this.clientEncoder.write(e.client),this.leftClockEncoder.write(e.clock)}writeRightID(e){this.clientEncoder.write(e.client),this.rightClockEncoder.write(e.clock)}writeClient(e){this.clientEncoder.write(e)}writeInfo(e){this.infoEncoder.write(e)}writeString(e){this.stringEncoder.write(e)}writeParentInfo(e){this.parentInfoEncoder.write(e?1:0)}writeTypeRef(e){this.typeRefEncoder.write(e)}writeLen(e){this.lenEncoder.write(e)}writeAny(e){Gr(this.restEncoder,e)}writeBuf(e){Wr(this.restEncoder,e)}writeJSON(e){Gr(this.restEncoder,e)}writeKey(e){const t=this.keyMap.get(e);void 0===t?(this.keyClockEncoder.write(this.keyClock++),this.stringEncoder.write(e)):this.keyClockEncoder.write(t)}}const Lo=(e,t,a)=>{const i=new Map;a.forEach(((e,a)=>{el(t,a)>e&&i.set(a,e)})),Qo(t).forEach(((e,t)=>{a.has(t)||i.set(t,0)})),Or(e.restEncoder,i.size),cr(i.entries()).sort(((e,t)=>t[0]-e[0])).forEach((([a,i])=>{((e,t,a,i)=>{i=gr(i,t[0].id.clock);const n=al(t,i);Or(e.restEncoder,t.length-n),e.writeClient(a),Or(e.restEncoder,i);const r=t[n];r.write(e,i-r.id.clock);for(let a=n+1;a<t.length;a++)t[a].write(e,0)})(e,t.clients.get(a),a,i)}))},Ro=(e,t,a,i=new Co(e))=>hl(t,(e=>{e.local=!1;let t=!1;const a=e.doc,n=a.store,r=((e,t)=>{const a=nr(),i=us(e.restDecoder);for(let n=0;n<i;n++){const i=us(e.restDecoder),n=new Array(i),r=e.readClient();let s=us(e.restDecoder);a.set(r,{i:0,refs:n});for(let a=0;a<i;a++){const i=e.readInfo();switch(31&i){case 0:{const t=e.readLen();n[a]=new Su(Zo(r,s),t),s+=t;break}case 10:{const t=us(e.restDecoder);n[a]=new qu(Zo(r,s),t),s+=t;break}default:{const o=!(192&i),l=new Hu(Zo(r,s),null,(i&wr)===wr?e.readLeftID():null,null,(i&_r)===_r?e.readRightID():null,o?e.readParentInfo()?t.get(e.readString()):e.readLeftID():null,!o||32&~i?null:e.readString(),Yu(e,i));n[a]=l,s+=l.length}}}}return a})(i,a),s=((e,t,a)=>{const i=[];let n=cr(a.keys()).sort(((e,t)=>e-t));if(0===n.length)return null;const r=()=>{if(0===n.length)return null;let e=a.get(n[n.length-1]);for(;e.refs.length===e.i;){if(n.pop(),!(n.length>0))return null;e=a.get(n[n.length-1])}return e};let s=r();if(null===s)return null;const o=new Xo,l=new Map,u=(e,t)=>{const a=l.get(e);(null==a||a>t)&&l.set(e,t)};let c=s.refs[s.i++];const d=new Map,p=()=>{for(const e of i){const t=e.id.client,i=a.get(t);i?(i.i--,o.clients.set(t,i.refs.slice(i.i)),a.delete(t),i.i=0,i.refs=[]):o.clients.set(t,[e]),n=n.filter((e=>e!==t))}i.length=0};for(;;){if(c.constructor!==qu){const n=sr(d,c.id.client,(()=>el(t,c.id.client)))-c.id.clock;if(n<0)i.push(c),u(c.id.client,c.id.clock-1),p();else{const r=c.getMissing(e,t);if(null!==r){i.push(c);const e=a.get(r)||{refs:[],i:0};if(e.refs.length!==e.i){c=e.refs[e.i++];continue}u(r,el(t,r)),p()}else(0===n||n<c.length)&&(c.integrate(e,n),d.set(c.id.client,c.id.clock+c.length))}}if(i.length>0)c=i.pop();else if(null!==s&&s.i<s.refs.length)c=s.refs[s.i++];else{if(s=r(),null===s)break;c=s.refs[s.i++]}}if(o.clients.size>0){const e=new Do;return Lo(e,o,new Map),Or(e.restEncoder,0),{missing:l,update:e.toUint8Array()}}return null})(e,n,r),o=n.pendingStructs;if(o){for(const[e,a]of o.missing)if(a<el(n,e)){t=!0;break}if(s){for(const[e,t]of s.missing){const a=o.missing.get(e);(null==a||a>t)&&o.missing.set(e,t)}o.update=bl([o.update,s.update])}}else n.pendingStructs=s;const l=So(i,e,n);if(n.pendingDs){const t=new Co(ss(n.pendingDs));us(t.restDecoder);const a=So(t,e,n);n.pendingDs=l&&a?bl([l,a]):l||a}else n.pendingDs=l;if(t){const t=n.pendingStructs.update;n.pendingStructs=null,Po(e.doc,t)}}),a,!1),Po=(e,t,a,i=Co)=>{const n=ss(t);Ro(n,e,a,new i(n))},Oo=(e,t=new Uint8Array([0]),a=new Do)=>{((e,t,a=new Map)=>{Lo(e,t.store,a),Ao(e,wo(t.store))})(a,e,Bo(t));const i=[a.toUint8Array()];if(e.store.pendingDs&&i.push(e.store.pendingDs),e.store.pendingStructs&&i.push(vl(e.store.pendingStructs.update,t)),i.length>1){if(a.constructor===Fo)return yl(i.map(((e,t)=>0===t?e:kl(e))));if(a.constructor===Do)return bl(i)}return i[0]},Bo=e=>(e=>{const t=new Map,a=us(e.restDecoder);for(let i=0;i<a;i++){const a=us(e.restDecoder),i=us(e.restDecoder);t.set(a,i)}return t})(new To(ss(e))),$o=(e,t)=>(Or(e.restEncoder,t.size),cr(t.entries()).sort(((e,t)=>t[0]-e[0])).forEach((([t,a])=>{Or(e.restEncoder,t),Or(e.restEncoder,a)})),e),jo=(e,t=new Eo)=>(e instanceof Map?$o(t,e):((e,t)=>{$o(e,Qo(t.store))})(t,e),t.toUint8Array());class Uo{constructor(){this.l=[]}}const zo=()=>new Uo,Wo=(e,t)=>e.l.push(t),Ho=(e,t)=>{const a=e.l,i=a.length;e.l=a.filter((e=>t!==e)),i===e.l.length&&console.error("[yjs] Tried to remove event handler that doesn't exist.")},Yo=(e,t,a)=>Ps(e.l,[t,a]);class Go{constructor(e,t){this.client=e,this.clock=t}}const qo=(e,t)=>e===t||null!==e&&null!==t&&e.client===t.client&&e.clock===t.clock,Zo=(e,t)=>new Go(e,t),Jo=(e,t)=>void 0===t?!e.deleted:t.sv.has(e.id.client)&&(t.sv.get(e.id.client)||0)>e.id.clock&&!bo(t.ds,e.id),Ko=(e,t)=>{const a=sr(e.meta,Ko,or),i=e.doc.store;a.has(t)||(t.sv.forEach(((t,a)=>{t<el(i,a)&&rl(e,Zo(a,t))})),go(e,t.ds,(e=>{})),a.add(t))};class Xo{constructor(){this.clients=new Map,this.pendingStructs=null,this.pendingDs=null}}const Qo=e=>{const t=new Map;return e.clients.forEach(((e,a)=>{const i=e[e.length-1];t.set(a,i.id.clock+i.length)})),t},el=(e,t)=>{const a=e.clients.get(t);if(void 0===a)return 0;const i=a[a.length-1];return i.id.clock+i.length},tl=(e,t)=>{let a=e.clients.get(t.id.client);if(void 0===a)a=[],e.clients.set(t.id.client,a);else{const e=a[a.length-1];if(e.id.clock+e.length!==t.id.clock)throw as()}a.push(t)},al=(e,t)=>{let a=0,i=e.length-1,n=e[i],r=n.id.clock;if(r===t)return i;let s=fr(t/(r+n.length-1)*i);for(;a<=i;){if(n=e[s],r=n.id.clock,r<=t){if(t<r+n.length)return s;a=s+1}else i=s-1;s=fr((a+i)/2)}throw as()},il=(e,t)=>{const a=e.clients.get(t.client);return a[al(a,t.clock)]},nl=(e,t,a)=>{const i=al(t,a),n=t[i];return n.id.clock<a&&n instanceof Hu?(t.splice(i+1,0,Wu(e,n,a-n.id.clock)),i+1):i},rl=(e,t)=>{const a=e.doc.store.clients.get(t.client);return a[nl(e,a,t.clock)]},sl=(e,t,a)=>{const i=t.clients.get(a.client),n=al(i,a.clock),r=i[n];return a.clock!==r.id.clock+r.length-1&&r.constructor!==Su&&i.splice(n+1,0,Wu(e,r,a.clock-r.id.clock+1)),r},ol=(e,t,a,i,n)=>{if(0===i)return;const r=a+i;let s,o=nl(e,t,a);do{s=t[o++],r<s.id.clock+s.length&&nl(e,t,r),n(s)}while(o<t.length&&t[o].id.clock<r)};class ll{constructor(e,t,a){this.doc=e,this.deleteSet=new yo,this.beforeState=Qo(e.store),this.afterState=new Map,this.changed=new Map,this.changedParentTypes=new Map,this._mergeStructs=[],this.origin=t,this.meta=new Map,this.local=a,this.subdocsAdded=new Set,this.subdocsRemoved=new Set,this.subdocsLoaded=new Set,this._needFormattingCleanup=!1}}const ul=(e,t)=>!(0===t.deleteSet.clients.size&&!((e,t)=>{for(const[a,i]of e)if(t(i,a))return!0;return!1})(t.afterState,((e,a)=>t.beforeState.get(a)!==e)))&&(vo(t.deleteSet),((e,t)=>{Lo(e,t.doc.store,t.beforeState)})(e,t),Ao(e,t.deleteSet),!0),cl=(e,t,a)=>{const i=t._item;(null===i||i.id.clock<(e.beforeState.get(i.id.client)||0)&&!i.deleted)&&sr(e.changed,t,or).add(a)},dl=(e,t)=>{let a=e[t],i=e[t-1],n=t;for(;n>0&&(i.deleted===a.deleted&&i.constructor===a.constructor&&i.mergeWith(a));a=i,i=e[--n-1])a instanceof Hu&&null!==a.parentSub&&a.parent._map.get(a.parentSub)===a&&a.parent._map.set(a.parentSub,i);const r=t-n;return r&&e.splice(t+1-r,r),r},pl=(e,t)=>{if(t<e.length){const a=e[t],i=a.doc,n=i.store,r=a.deleteSet,s=a._mergeStructs;try{vo(r),a.afterState=Qo(a.doc.store),i.emit("beforeObserverCalls",[a,i]);const e=[];a.changed.forEach(((t,i)=>e.push((()=>{null!==i._item&&i._item.deleted||i._callObserver(a,t)})))),e.push((()=>{a.changedParentTypes.forEach(((e,t)=>{t._dEH.l.length>0&&(null===t._item||!t._item.deleted)&&((e=e.filter((e=>null===e.target._item||!e.target._item.deleted))).forEach((e=>{e.currentTarget=t,e._path=null})),e.sort(((e,t)=>e.path.length-t.path.length)),Yo(t._dEH,e,a))}))})),e.push((()=>i.emit("afterTransaction",[a,i]))),Ps(e,[]),a._needFormattingCleanup&&hu(a)}finally{i.gc&&((e,t,a)=>{for(const[i,n]of e.clients.entries()){const e=t.clients.get(i);for(let i=n.length-1;i>=0;i--){const r=n[i],s=r.clock+r.len;for(let i=al(e,r.clock),n=e[i];i<e.length&&n.id.clock<s;n=e[++i]){const n=e[i];if(r.clock+r.len<=n.id.clock)break;n instanceof Hu&&n.deleted&&!n.keep&&a(n)&&n.gc(t,!1)}}}})(r,n,i.gcFilter),((e,t)=>{e.clients.forEach(((e,a)=>{const i=t.clients.get(a);for(let t=e.length-1;t>=0;t--){const a=e[t];for(let e=yr(i.length-1,1+al(i,a.clock+a.len-1)),t=i[e];e>0&&t.id.clock>=a.clock;t=i[e])e-=1+dl(i,e)}}))})(r,n),a.afterState.forEach(((e,t)=>{const i=a.beforeState.get(t)||0;if(i!==e){const e=n.clients.get(t),a=gr(al(e,i),1);for(let t=e.length-1;t>=a;)t-=1+dl(e,t)}}));for(let e=s.length-1;e>=0;e--){const{client:t,clock:a}=s[e].id,i=n.clients.get(t),r=al(i,a);r+1<i.length&&dl(i,r+1)>1||r>0&&dl(i,r)}if(a.local||a.afterState.get(i.clientID)===a.beforeState.get(i.clientID)||(((...e)=>{console.log(...co(e)),po.forEach((t=>t.print(e)))})(oo,eo,"[yjs] ",to,ro,"Changed the client-id because another client seems to be using it."),i.clientID=No()),i.emit("afterTransactionCleanup",[a,i]),i._observers.has("update")){const e=new Fo;ul(e,a)&&i.emit("update",[e.toUint8Array(),a.origin,i,a])}if(i._observers.has("updateV2")){const e=new Do;ul(e,a)&&i.emit("updateV2",[e.toUint8Array(),a.origin,i,a])}const{subdocsAdded:o,subdocsLoaded:l,subdocsRemoved:u}=a;(o.size>0||u.size>0||l.size>0)&&(o.forEach((e=>{e.clientID=i.clientID,null==e.collectionid&&(e.collectionid=i.collectionid),i.subdocs.add(e)})),u.forEach((e=>i.subdocs.delete(e))),i.emit("subdocs",[{loaded:l,added:o,removed:u},i,a]),u.forEach((e=>e.destroy()))),e.length<=t+1?(i._transactionCleanups=[],i.emit("afterAllTransactions",[i,e])):pl(e,t+1)}}},hl=(e,t,a=null,i=!0)=>{const n=e._transactionCleanups;let r=!1,s=null;null===e._transaction&&(r=!0,e._transaction=new ll(e,a,i),n.push(e._transaction),1===n.length&&e.emit("beforeAllTransactions",[e]),e.emit("beforeTransaction",[e._transaction,e]));try{s=t(e._transaction)}finally{if(r){const t=e._transaction===n[0];e._transaction=null,t&&pl(n,0)}}return s};class fl{constructor(e,t){this.gen=function*(e){const t=us(e.restDecoder);for(let a=0;a<t;a++){const t=us(e.restDecoder),a=e.readClient();let i=us(e.restDecoder);for(let n=0;n<t;n++){const t=e.readInfo();if(10===t){const t=us(e.restDecoder);yield new qu(Zo(a,i),t),i+=t}else if(31&t){const n=!(192&t),r=new Hu(Zo(a,i),null,(t&wr)===wr?e.readLeftID():null,null,(t&_r)===_r?e.readRightID():null,n?e.readParentInfo()?e.readString():e.readLeftID():null,!n||32&~t?null:e.readString(),Yu(e,t));yield r,i+=r.length}else{const t=e.readLen();yield new Su(Zo(a,i),t),i+=t}}}}(e),this.curr=null,this.done=!1,this.filterSkips=t,this.next()}next(){do{this.curr=this.gen.next().value||null}while(this.filterSkips&&null!==this.curr&&this.curr.constructor===qu);return this.curr}}class ml{constructor(e){this.currClient=0,this.startClock=0,this.written=0,this.encoder=e,this.clientStructs=[]}}const yl=e=>bl(e,Mo,Fo),gl=(e,t)=>{if(e.constructor===Su){const{client:a,clock:i}=e.id;return new Su(Zo(a,i+t),e.length-t)}if(e.constructor===qu){const{client:a,clock:i}=e.id;return new qu(Zo(a,i+t),e.length-t)}{const a=e,{client:i,clock:n}=a.id;return new Hu(Zo(i,n+t),null,Zo(i,n+t-1),null,a.rightOrigin,a.parent,a.parentSub,a.content.splice(t))}},bl=(e,t=Co,a=Do)=>{if(1===e.length)return e[0];const i=e.map((e=>new t(ss(e))));let n=i.map((e=>new fl(e,!0))),r=null;const s=new a,o=new ml(s);for(;n=n.filter((e=>null!==e.curr)),n.sort(((e,t)=>{if(e.curr.id.client===t.curr.id.client){const a=e.curr.id.clock-t.curr.id.clock;return 0===a?e.curr.constructor===t.curr.constructor?0:e.curr.constructor===qu?1:-1:a}return t.curr.id.client-e.curr.id.client})),0!==n.length;){const e=n[0],t=e.curr.id.client;if(null!==r){let a=e.curr,i=!1;for(;null!==a&&a.id.clock+a.length<=r.struct.id.clock+r.struct.length&&a.id.client>=r.struct.id.client;)a=e.next(),i=!0;if(null===a||a.id.client!==t||i&&a.id.clock>r.struct.id.clock+r.struct.length)continue;if(t!==r.struct.id.client)wl(o,r.struct,r.offset),r={struct:a,offset:0},e.next();else if(r.struct.id.clock+r.struct.length<a.id.clock)if(r.struct.constructor===qu)r.struct.length=a.id.clock+a.length-r.struct.id.clock;else{wl(o,r.struct,r.offset);const e=a.id.clock-r.struct.id.clock-r.struct.length;r={struct:new qu(Zo(t,r.struct.id.clock+r.struct.length),e),offset:0}}else{const t=r.struct.id.clock+r.struct.length-a.id.clock;t>0&&(r.struct.constructor===qu?r.struct.length-=t:a=gl(a,t)),r.struct.mergeWith(a)||(wl(o,r.struct,r.offset),r={struct:a,offset:0},e.next())}}else r={struct:e.curr,offset:0},e.next();for(let a=e.curr;null!==a&&a.id.client===t&&a.id.clock===r.struct.id.clock+r.struct.length&&a.constructor!==qu;a=e.next())wl(o,r.struct,r.offset),r={struct:a,offset:0}}null!==r&&(wl(o,r.struct,r.offset),r=null),Al(o);const l=(e=>{const t=new yo;for(let a=0;a<e.length;a++)e[a].clients.forEach(((i,n)=>{if(!t.clients.has(n)){const r=i.slice();for(let t=a+1;t<e.length;t++)ur(r,e[t].clients.get(n)||[]);t.clients.set(n,r)}}));return vo(t),t})(i.map((e=>ko(e))));return Ao(s,l),s.toUint8Array()},vl=(e,t,a=Co,i=Do)=>{const n=Bo(t),r=new i,s=new ml(r),o=new a(ss(e)),l=new fl(o,!1);for(;l.curr;){const e=l.curr,t=e.id.client,a=n.get(t)||0;if(l.curr.constructor!==qu)if(e.id.clock+e.length>a)for(wl(s,e,gr(a-e.id.clock,0)),l.next();l.curr&&l.curr.id.client===t;)wl(s,l.curr,0),l.next();else for(;l.curr&&l.curr.id.client===t&&l.curr.id.clock+l.curr.length<=a;)l.next();else l.next()}Al(s);const u=ko(o);return Ao(r,u),r.toUint8Array()},_l=e=>{e.written>0&&(e.clientStructs.push({written:e.written,restEncoder:Lr(e.encoder.restEncoder)}),e.encoder.restEncoder=Er(),e.written=0)},wl=(e,t,a)=>{e.written>0&&e.currClient!==t.id.client&&_l(e),0===e.written&&(e.currClient=t.id.client,e.encoder.writeClient(t.id.client),Or(e.encoder.restEncoder,t.id.clock+a)),t.write(e.encoder,a),e.written++},Al=e=>{_l(e);const t=e.encoder.restEncoder;Or(t,e.clientStructs.length);for(let a=0;a<e.clientStructs.length;a++){const i=e.clientStructs[a];Or(t,i.written),zr(t,i.restEncoder)}},kl=e=>((e,t,a,i)=>{const n=new a(ss(e)),r=new fl(n,!1),s=new i,o=new ml(s);for(let e=r.curr;null!==e;e=r.next())wl(o,t(e),0);Al(o);const l=ko(n);return Ao(s,l),s.toUint8Array()})(e,Os,Co,Fo),Sl="You must not compute changes after the event-handler fired.";class Nl{constructor(e,t){this.target=e,this.currentTarget=e,this.transaction=t,this._changes=null,this._keys=null,this._delta=null,this._path=null}get path(){return this._path||(this._path=xl(this.currentTarget,this.target))}deletes(e){return bo(this.transaction.deleteSet,e.id)}get keys(){if(null===this._keys){if(0===this.transaction.doc._transactionCleanups.length)throw es(Sl);const e=new Map,t=this.target;this.transaction.changed.get(t).forEach((a=>{if(null!==a){const i=t._map.get(a);let n,r;if(this.adds(i)){let e=i.left;for(;null!==e&&this.adds(e);)e=e.left;if(this.deletes(i)){if(null===e||!this.deletes(e))return;n="delete",r=lr(e.content.getContent())}else null!==e&&this.deletes(e)?(n="update",r=lr(e.content.getContent())):(n="add",r=void 0)}else{if(!this.deletes(i))return;n="delete",r=lr(i.content.getContent())}e.set(a,{action:n,oldValue:r})}})),this._keys=e}return this._keys}get delta(){return this.changes.delta}adds(e){return e.id.clock>=(this.transaction.beforeState.get(e.id.client)||0)}get changes(){let e=this._changes;if(null===e){if(0===this.transaction.doc._transactionCleanups.length)throw es(Sl);const t=this.target,a=or(),i=or(),n=[];e={added:a,deleted:i,delta:n,keys:this.keys};if(this.transaction.changed.get(t).has(null)){let e=null;const r=()=>{e&&n.push(e)};for(let n=t._start;null!==n;n=n.right)n.deleted?this.deletes(n)&&!this.adds(n)&&(null!==e&&void 0!==e.delete||(r(),e={delete:0}),e.delete+=n.length,i.add(n)):this.adds(n)?(null!==e&&void 0!==e.insert||(r(),e={insert:[]}),e.insert=e.insert.concat(n.content.getContent()),a.add(n)):(null!==e&&void 0!==e.retain||(r(),e={retain:0}),e.retain+=n.length);null!==e&&void 0===e.retain&&r()}this._changes=e}return e}}const xl=(e,t)=>{const a=[];for(;null!==t._item&&t!==e;){if(null!==t._item.parentSub)a.unshift(t._item.parentSub);else{let e=0,i=t._item.parent._start;for(;i!==t._item&&null!==i;)!i.deleted&&i.countable&&(e+=i.length),i=i.right;a.unshift(e)}t=t._item.parent}return a},Tl=()=>{((...e)=>{console.warn(...co(e)),e.unshift(oo),po.forEach((t=>t.print(e)))})("Invalid access: Add Yjs type to a document before reading data.")};let Ml=0;class Vl{constructor(e,t){e.marker=!0,this.p=e,this.index=t,this.timestamp=Ml++}}const Cl=(e,t,a)=>{e.p.marker=!1,e.p=t,t.marker=!0,e.index=a,e.timestamp=Ml++},Il=(e,t)=>{if(null===e._start||0===t||null===e._searchMarker)return null;const a=0===e._searchMarker.length?null:e._searchMarker.reduce(((e,a)=>mr(t-e.index)<mr(t-a.index)?e:a));let i=e._start,n=0;for(null!==a&&(i=a.p,n=a.index,(e=>{e.timestamp=Ml++})(a));null!==i.right&&n<t;){if(!i.deleted&&i.countable){if(t<n+i.length)break;n+=i.length}i=i.right}for(;null!==i.left&&n>t;)i=i.left,!i.deleted&&i.countable&&(n-=i.length);for(;null!==i.left&&i.left.id.client===i.id.client&&i.left.id.clock+i.left.length===i.id.clock;)i=i.left,!i.deleted&&i.countable&&(n-=i.length);return null!==a&&mr(a.index-n)<i.parent.length/80?(Cl(a,i,n),a):((e,t,a)=>{if(e.length>=80){const i=e.reduce(((e,t)=>e.timestamp<t.timestamp?e:t));return Cl(i,t,a),i}{const i=new Vl(t,a);return e.push(i),i}})(e._searchMarker,i,n)},Fl=(e,t,a)=>{for(let i=e.length-1;i>=0;i--){const n=e[i];if(a>0){let t=n.p;for(t.marker=!1;t&&(t.deleted||!t.countable);)t=t.left,t&&!t.deleted&&t.countable&&(n.index-=t.length);if(null===t||!0===t.marker){e.splice(i,1);continue}n.p=t,t.marker=!0}(t<n.index||a>0&&t===n.index)&&(n.index=gr(t,n.index+a))}},El=(e,t,a)=>{const i=e,n=t.changedParentTypes;for(;sr(n,e,(()=>[])).push(a),null!==e._item;)e=e._item.parent;Yo(i._eH,a,t)};class Dl{constructor(){this._item=null,this._map=new Map,this._start=null,this.doc=null,this._length=0,this._eH=zo(),this._dEH=zo(),this._searchMarker=null}get parent(){return this._item?this._item.parent:null}_integrate(e,t){this.doc=e,this._item=t}_copy(){throw ts()}clone(){throw ts()}_write(e){}get _first(){let e=this._start;for(;null!==e&&e.deleted;)e=e.right;return e}_callObserver(e,t){!e.local&&this._searchMarker&&(this._searchMarker.length=0)}observe(e){Wo(this._eH,e)}observeDeep(e){Wo(this._dEH,e)}unobserve(e){Ho(this._eH,e)}unobserveDeep(e){Ho(this._dEH,e)}toJSON(){}}const Ll=(e,t,a)=>{e.doc??Tl(),t<0&&(t=e._length+t),a<0&&(a=e._length+a);let i=a-t;const n=[];let r=e._start;for(;null!==r&&i>0;){if(r.countable&&!r.deleted){const e=r.content.getContent();if(e.length<=t)t-=e.length;else{for(let a=t;a<e.length&&i>0;a++)n.push(e[a]),i--;t=0}}r=r.right}return n},Rl=e=>{e.doc??Tl();const t=[];let a=e._start;for(;null!==a;){if(a.countable&&!a.deleted){const e=a.content.getContent();for(let a=0;a<e.length;a++)t.push(e[a])}a=a.right}return t},Pl=(e,t)=>{let a=0,i=e._start;for(e.doc??Tl();null!==i;){if(i.countable&&!i.deleted){const n=i.content.getContent();for(let i=0;i<n.length;i++)t(n[i],a++,e)}i=i.right}},Ol=(e,t)=>{const a=[];return Pl(e,((i,n)=>{a.push(t(i,n,e))})),a},Bl=e=>{let t=e._start,a=null,i=0;return{[Symbol.iterator](){return this},next:()=>{if(null===a){for(;null!==t&&t.deleted;)t=t.right;if(null===t)return{done:!0,value:void 0};a=t.content.getContent(),i=0,t=t.right}const e=a[i++];return a.length<=i&&(a=null),{done:!1,value:e}}}},$l=(e,t)=>{e.doc??Tl();const a=Il(e,t);let i=e._start;for(null!==a&&(i=a.p,t-=a.index);null!==i;i=i.right)if(!i.deleted&&i.countable){if(t<i.length)return i.content.getContent()[t];t-=i.length}},jl=(e,t,a,i)=>{let n=a;const r=e.doc,s=r.clientID,o=r.store,l=null===a?t._start:a.right;let u=[];const c=()=>{u.length>0&&(n=new Hu(Zo(s,el(o,s)),n,n&&n.lastId,l,l&&l.id,t,null,new Eu(u)),n.integrate(e,0),u=[])};i.forEach((a=>{if(null===a)u.push(a);else switch(a.constructor){case Number:case Object:case Boolean:case Array:case String:u.push(a);break;default:switch(c(),a.constructor){case Uint8Array:case ArrayBuffer:n=new Hu(Zo(s,el(o,s)),n,n&&n.lastId,l,l&&l.id,t,null,new Nu(new Uint8Array(a))),n.integrate(e,0);break;case xo:n=new Hu(Zo(s,el(o,s)),n,n&&n.lastId,l,l&&l.id,t,null,new Mu(a)),n.integrate(e,0);break;default:if(!(a instanceof Dl))throw new Error("Unexpected content type in insert operation");n=new Hu(Zo(s,el(o,s)),n,n&&n.lastId,l,l&&l.id,t,null,new zu(a)),n.integrate(e,0)}}})),c()},Ul=()=>es("Length exceeded!"),zl=(e,t,a,i)=>{if(a>t._length)throw Ul();if(0===a)return t._searchMarker&&Fl(t._searchMarker,a,i.length),jl(e,t,null,i);const n=a,r=Il(t,a);let s=t._start;for(null!==r&&(s=r.p,0===(a-=r.index)&&(s=s.prev,a+=s&&s.countable&&!s.deleted?s.length:0));null!==s;s=s.right)if(!s.deleted&&s.countable){if(a<=s.length){a<s.length&&rl(e,Zo(s.id.client,s.id.clock+a));break}a-=s.length}return t._searchMarker&&Fl(t._searchMarker,n,i.length),jl(e,t,s,i)},Wl=(e,t,a,i)=>{if(0===i)return;const n=a,r=i,s=Il(t,a);let o=t._start;for(null!==s&&(o=s.p,a-=s.index);null!==o&&a>0;o=o.right)!o.deleted&&o.countable&&(a<o.length&&rl(e,Zo(o.id.client,o.id.clock+a)),a-=o.length);for(;i>0&&null!==o;)o.deleted||(i<o.length&&rl(e,Zo(o.id.client,o.id.clock+i)),o.delete(e),i-=o.length),o=o.right;if(i>0)throw Ul();t._searchMarker&&Fl(t._searchMarker,n,-r+i)},Hl=(e,t,a)=>{const i=t._map.get(a);void 0!==i&&i.delete(e)},Yl=(e,t,a,i)=>{const n=t._map.get(a)||null,r=e.doc,s=r.clientID;let o;if(null==i)o=new Eu([i]);else switch(i.constructor){case Number:case Object:case Boolean:case Array:case String:case Date:case BigInt:o=new Eu([i]);break;case Uint8Array:o=new Nu(i);break;case xo:o=new Mu(i);break;default:if(!(i instanceof Dl))throw new Error("Unexpected content type");o=new zu(i)}new Hu(Zo(s,el(r.store,s)),n,n&&n.lastId,null,null,t,a,o).integrate(e,0)},Gl=(e,t)=>{e.doc??Tl();const a=e._map.get(t);return void 0===a||a.deleted?void 0:a.content.getContent()[a.length-1]},ql=e=>{const t={};return e.doc??Tl(),e._map.forEach(((e,a)=>{e.deleted||(t[a]=e.content.getContent()[e.length-1])})),t},Zl=(e,t)=>{e.doc??Tl();const a=e._map.get(t);return void 0!==a&&!a.deleted},Jl=e=>{return e.doc??Tl(),t=e._map.entries(),a=e=>!e[1].deleted,ho((()=>{let e;do{e=t.next()}while(!e.done&&!a(e.value));return e}));var t,a};class Kl extends Nl{}class Xl extends Dl{constructor(){super(),this._prelimContent=[],this._searchMarker=[]}static from(e){const t=new Xl;return t.push(e),t}_integrate(e,t){super._integrate(e,t),this.insert(0,this._prelimContent),this._prelimContent=null}_copy(){return new Xl}clone(){const e=new Xl;return e.insert(0,this.toArray().map((e=>e instanceof Dl?e.clone():e))),e}get length(){return this.doc??Tl(),this._length}_callObserver(e,t){super._callObserver(e,t),El(this,e,new Kl(this,e))}insert(e,t){null!==this.doc?hl(this.doc,(a=>{zl(a,this,e,t)})):this._prelimContent.splice(e,0,...t)}push(e){null!==this.doc?hl(this.doc,(t=>{((e,t,a)=>{let i=(t._searchMarker||[]).reduce(((e,t)=>t.index>e.index?t:e),{index:0,p:t._start}).p;if(i)for(;i.right;)i=i.right;jl(e,t,i,a)})(t,this,e)})):this._prelimContent.push(...e)}unshift(e){this.insert(0,e)}delete(e,t=1){null!==this.doc?hl(this.doc,(a=>{Wl(a,this,e,t)})):this._prelimContent.splice(e,t)}get(e){return $l(this,e)}toArray(){return Rl(this)}slice(e=0,t=this.length){return Ll(this,e,t)}toJSON(){return this.map((e=>e instanceof Dl?e.toJSON():e))}map(e){return Ol(this,e)}forEach(e){Pl(this,e)}[Symbol.iterator](){return Bl(this)}_write(e){e.writeTypeRef(Ru)}}class Ql extends Nl{constructor(e,t,a){super(e,t),this.keysChanged=a}}class eu extends Dl{constructor(e){super(),this._prelimContent=null,this._prelimContent=void 0===e?new Map:new Map(e)}_integrate(e,t){super._integrate(e,t),this._prelimContent.forEach(((e,t)=>{this.set(t,e)})),this._prelimContent=null}_copy(){return new eu}clone(){const e=new eu;return this.forEach(((t,a)=>{e.set(a,t instanceof Dl?t.clone():t)})),e}_callObserver(e,t){El(this,e,new Ql(this,e,t))}toJSON(){this.doc??Tl();const e={};return this._map.forEach(((t,a)=>{if(!t.deleted){const i=t.content.getContent()[t.length-1];e[a]=i instanceof Dl?i.toJSON():i}})),e}get size(){return[...Jl(this)].length}keys(){return fo(Jl(this),(e=>e[0]))}values(){return fo(Jl(this),(e=>e[1].content.getContent()[e[1].length-1]))}entries(){return fo(Jl(this),(e=>[e[0],e[1].content.getContent()[e[1].length-1]]))}forEach(e){this.doc??Tl(),this._map.forEach(((t,a)=>{t.deleted||e(t.content.getContent()[t.length-1],a,this)}))}[Symbol.iterator](){return this.entries()}delete(e){null!==this.doc?hl(this.doc,(t=>{Hl(t,this,e)})):this._prelimContent.delete(e)}set(e,t){return null!==this.doc?hl(this.doc,(a=>{Yl(a,this,e,t)})):this._prelimContent.set(e,t),t}get(e){return Gl(this,e)}has(e){return Zl(this,e)}clear(){null!==this.doc?hl(this.doc,(e=>{this.forEach((function(t,a,i){Hl(e,i,a)}))})):this._prelimContent.clear()}_write(e){e.writeTypeRef(Pu)}}const tu=(e,t)=>e===t||"object"==typeof e&&"object"==typeof t&&e&&t&&((e,t)=>e===t||Fs(e)===Fs(t)&&((e,t)=>{for(const a in e)if(!t(e[a],a))return!1;return!0})(e,((e,a)=>(void 0!==e||Es(t,a))&&t[a]===e)))(e,t);class au{constructor(e,t,a,i){this.left=e,this.right=t,this.index=a,this.currentAttributes=i}forward(){if(null===this.right&&as(),this.right.content.constructor===Cu)this.right.deleted||su(this.currentAttributes,this.right.content);else this.right.deleted||(this.index+=this.right.length);this.left=this.right,this.right=this.right.right}}const iu=(e,t,a)=>{for(;null!==t.right&&a>0;){if(t.right.content.constructor===Cu)t.right.deleted||su(t.currentAttributes,t.right.content);else t.right.deleted||(a<t.right.length&&rl(e,Zo(t.right.id.client,t.right.id.clock+a)),t.index+=t.right.length,a-=t.right.length);t.left=t.right,t.right=t.right.right}return t},nu=(e,t,a,i)=>{const n=new Map,r=i?Il(t,a):null;if(r){const t=new au(r.p.left,r.p,r.index,n);return iu(e,t,a-r.index)}{const i=new au(null,t._start,0,n);return iu(e,i,a)}},ru=(e,t,a,i)=>{for(;null!==a.right&&(!0===a.right.deleted||a.right.content.constructor===Cu&&tu(i.get(a.right.content.key),a.right.content.value));)a.right.deleted||i.delete(a.right.content.key),a.forward();const n=e.doc,r=n.clientID;i.forEach(((i,s)=>{const o=a.left,l=a.right,u=new Hu(Zo(r,el(n.store,r)),o,o&&o.lastId,l,l&&l.id,t,null,new Cu(s,i));u.integrate(e,0),a.right=u,a.forward()}))},su=(e,t)=>{const{key:a,value:i}=t;null===i?e.delete(a):e.set(a,i)},ou=(e,t)=>{for(;null!==e.right&&(e.right.deleted||e.right.content.constructor===Cu&&tu(t[e.right.content.key]??null,e.right.content.value));)e.forward()},lu=(e,t,a,i)=>{const n=e.doc,r=n.clientID,s=new Map;for(const o in i){const l=i[o],u=a.currentAttributes.get(o)??null;if(!tu(u,l)){s.set(o,u);const{left:i,right:c}=a;a.right=new Hu(Zo(r,el(n.store,r)),i,i&&i.lastId,c,c&&c.id,t,null,new Cu(o,l)),a.right.integrate(e,0),a.forward()}}return s},uu=(e,t,a,i,n)=>{a.currentAttributes.forEach(((e,t)=>{void 0===n[t]&&(n[t]=null)}));const r=e.doc,s=r.clientID;ou(a,n);const o=lu(e,t,a,n),l=i.constructor===String?new Du(i):i instanceof Dl?new zu(i):new Vu(i);let{left:u,right:c,index:d}=a;t._searchMarker&&Fl(t._searchMarker,a.index,l.getLength()),c=new Hu(Zo(s,el(r.store,s)),u,u&&u.lastId,c,c&&c.id,t,null,l),c.integrate(e,0),a.right=c,a.index=d,a.forward(),ru(e,t,a,o)},cu=(e,t,a,i,n)=>{const r=e.doc,s=r.clientID;ou(a,n);const o=lu(e,t,a,n);e:for(;null!==a.right&&(i>0||o.size>0&&(a.right.deleted||a.right.content.constructor===Cu));){if(!a.right.deleted)switch(a.right.content.constructor){case Cu:{const{key:t,value:r}=a.right.content,s=n[t];if(void 0!==s){if(tu(s,r))o.delete(t);else{if(0===i)break e;o.set(t,r)}a.right.delete(e)}else a.currentAttributes.set(t,r);break}default:i<a.right.length&&rl(e,Zo(a.right.id.client,a.right.id.clock+i)),i-=a.right.length}a.forward()}if(i>0){let n="";for(;i>0;i--)n+="\n";a.right=new Hu(Zo(s,el(r.store,s)),a.left,a.left&&a.left.lastId,a.right,a.right&&a.right.id,t,null,new Du(n)),a.right.integrate(e,0),a.forward()}ru(e,t,a,o)},du=(e,t,a,i,n)=>{let r=t;const s=nr();for(;r&&(!r.countable||r.deleted);){if(!r.deleted&&r.content.constructor===Cu){const e=r.content;s.set(e.key,e)}r=r.right}let o=0,l=!1;for(;t!==r;){if(a===t&&(l=!0),!t.deleted){const a=t.content;switch(a.constructor){case Cu:{const{key:r,value:u}=a,c=i.get(r)??null;s.get(r)===a&&c!==u||(t.delete(e),o++,l||(n.get(r)??null)!==u||c===u||(null===c?n.delete(r):n.set(r,c))),l||t.deleted||su(n,a);break}}}t=t.right}return o},pu=e=>{let t=0;return hl(e.doc,(a=>{let i=e._start,n=e._start,r=nr();const s=rr(r);for(;n;){if(!1===n.deleted)if(n.content.constructor===Cu)su(s,n.content);else t+=du(a,i,n,r,s),r=rr(s),i=n;n=n.right}})),t},hu=e=>{const t=new Set,a=e.doc;for(const[i,n]of e.afterState.entries()){const r=e.beforeState.get(i)||0;n!==r&&ol(e,a.store.clients.get(i),r,n,(e=>{e.deleted||e.content.constructor!==Cu||e.constructor===Su||t.add(e.parent)}))}hl(a,(a=>{go(e,e.deleteSet,(e=>{if(e instanceof Su||!e.parent._hasFormatting||t.has(e.parent))return;const i=e.parent;e.content.constructor===Cu?t.add(i):((e,t)=>{for(;t&&t.right&&(t.right.deleted||!t.right.countable);)t=t.right;const a=new Set;for(;t&&(t.deleted||!t.countable);){if(!t.deleted&&t.content.constructor===Cu){const i=t.content.key;a.has(i)?t.delete(e):a.add(i)}t=t.left}})(a,e)}));for(const e of t)pu(e)}))},fu=(e,t,a)=>{const i=a,n=rr(t.currentAttributes),r=t.right;for(;a>0&&null!==t.right;){if(!1===t.right.deleted)switch(t.right.content.constructor){case zu:case Vu:case Du:a<t.right.length&&rl(e,Zo(t.right.id.client,t.right.id.clock+a)),a-=t.right.length,t.right.delete(e)}t.forward()}r&&du(e,r,t.right,n,t.currentAttributes);const s=(t.left||t.right).parent;return s._searchMarker&&Fl(s._searchMarker,t.index,-i+a),t};class mu extends Nl{constructor(e,t,a){super(e,t),this.childListChanged=!1,this.keysChanged=new Set,a.forEach((e=>{null===e?this.childListChanged=!0:this.keysChanged.add(e)}))}get changes(){if(null===this._changes){const e={keys:this.keys,delta:this.delta,added:new Set,deleted:new Set};this._changes=e}return this._changes}get delta(){if(null===this._delta){const e=this.target.doc,t=[];hl(e,(e=>{const a=new Map,i=new Map;let n=this.target._start,r=null;const s={};let o="",l=0,u=0;const c=()=>{if(null!==r){let e=null;switch(r){case"delete":u>0&&(e={delete:u}),u=0;break;case"insert":("object"==typeof o||o.length>0)&&(e={insert:o},a.size>0&&(e.attributes={},a.forEach(((t,a)=>{null!==t&&(e.attributes[a]=t)})))),o="";break;case"retain":l>0&&(e={retain:l},(e=>{for(const t in e)return!1;return!0})(s)||(e.attributes=Vs({},s))),l=0}e&&t.push(e),r=null}};for(;null!==n;){switch(n.content.constructor){case zu:case Vu:this.adds(n)?this.deletes(n)||(c(),r="insert",o=n.content.getContent()[0],c()):this.deletes(n)?("delete"!==r&&(c(),r="delete"),u+=1):n.deleted||("retain"!==r&&(c(),r="retain"),l+=1);break;case Du:this.adds(n)?this.deletes(n)||("insert"!==r&&(c(),r="insert"),o+=n.content.str):this.deletes(n)?("delete"!==r&&(c(),r="delete"),u+=n.length):n.deleted||("retain"!==r&&(c(),r="retain"),l+=n.length);break;case Cu:{const{key:t,value:o}=n.content;if(this.adds(n)){if(!this.deletes(n)){const l=a.get(t)??null;tu(l,o)?null!==o&&n.delete(e):("retain"===r&&c(),tu(o,i.get(t)??null)?delete s[t]:s[t]=o)}}else if(this.deletes(n)){i.set(t,o);const e=a.get(t)??null;tu(e,o)||("retain"===r&&c(),s[t]=e)}else if(!n.deleted){i.set(t,o);const a=s[t];void 0!==a&&(tu(a,o)?null!==a&&n.delete(e):("retain"===r&&c(),null===o?delete s[t]:s[t]=o))}n.deleted||("insert"===r&&c(),su(a,n.content));break}}n=n.right}for(c();t.length>0;){const e=t[t.length-1];if(void 0===e.retain||void 0!==e.attributes)break;t.pop()}})),this._delta=t}return this._delta}}class yu extends Dl{constructor(e){super(),this._pending=void 0!==e?[()=>this.insert(0,e)]:[],this._searchMarker=[],this._hasFormatting=!1}get length(){return this.doc??Tl(),this._length}_integrate(e,t){super._integrate(e,t);try{this._pending.forEach((e=>e()))}catch(e){console.error(e)}this._pending=null}_copy(){return new yu}clone(){const e=new yu;return e.applyDelta(this.toDelta()),e}_callObserver(e,t){super._callObserver(e,t);const a=new mu(this,e,t);El(this,e,a),!e.local&&this._hasFormatting&&(e._needFormattingCleanup=!0)}toString(){this.doc??Tl();let e="",t=this._start;for(;null!==t;)!t.deleted&&t.countable&&t.content.constructor===Du&&(e+=t.content.str),t=t.right;return e}toJSON(){return this.toString()}applyDelta(e,{sanitize:t=!0}={}){null!==this.doc?hl(this.doc,(a=>{const i=new au(null,this._start,0,new Map);for(let n=0;n<e.length;n++){const r=e[n];if(void 0!==r.insert){const s=t||"string"!=typeof r.insert||n!==e.length-1||null!==i.right||"\n"!==r.insert.slice(-1)?r.insert:r.insert.slice(0,-1);("string"!=typeof s||s.length>0)&&uu(a,this,i,s,r.attributes||{})}else void 0!==r.retain?cu(a,this,i,r.retain,r.attributes||{}):void 0!==r.delete&&fu(a,i,r.delete)}})):this._pending.push((()=>this.applyDelta(e)))}toDelta(e,t,a){this.doc??Tl();const i=[],n=new Map,r=this.doc;let s="",o=this._start;function l(){if(s.length>0){const e={};let t=!1;n.forEach(((a,i)=>{t=!0,e[i]=a}));const a={insert:s};t&&(a.attributes=e),i.push(a),s=""}}const u=()=>{for(;null!==o;){if(Jo(o,e)||void 0!==t&&Jo(o,t))switch(o.content.constructor){case Du:{const i=n.get("ychange");void 0===e||Jo(o,e)?void 0===t||Jo(o,t)?void 0!==i&&(l(),n.delete("ychange")):void 0!==i&&i.user===o.id.client&&"added"===i.type||(l(),n.set("ychange",a?a("added",o.id):{type:"added"})):void 0!==i&&i.user===o.id.client&&"removed"===i.type||(l(),n.set("ychange",a?a("removed",o.id):{type:"removed"})),s+=o.content.str;break}case zu:case Vu:{l();const e={insert:o.content.getContent()[0]};if(n.size>0){const t={};e.attributes=t,n.forEach(((e,a)=>{t[a]=e}))}i.push(e);break}case Cu:Jo(o,e)&&(l(),su(n,o.content))}o=o.right}l()};return e||t?hl(r,(a=>{e&&Ko(a,e),t&&Ko(a,t),u()}),"cleanup"):u(),i}insert(e,t,a){if(t.length<=0)return;const i=this.doc;null!==i?hl(i,(i=>{const n=nu(i,this,e,!a);a||(a={},n.currentAttributes.forEach(((e,t)=>{a[t]=e}))),uu(i,this,n,t,a)})):this._pending.push((()=>this.insert(e,t,a)))}insertEmbed(e,t,a){const i=this.doc;null!==i?hl(i,(i=>{const n=nu(i,this,e,!a);uu(i,this,n,t,a||{})})):this._pending.push((()=>this.insertEmbed(e,t,a||{})))}delete(e,t){if(0===t)return;const a=this.doc;null!==a?hl(a,(a=>{fu(a,nu(a,this,e,!0),t)})):this._pending.push((()=>this.delete(e,t)))}format(e,t,a){if(0===t)return;const i=this.doc;null!==i?hl(i,(i=>{const n=nu(i,this,e,!1);null!==n.right&&cu(i,this,n,t,a)})):this._pending.push((()=>this.format(e,t,a)))}removeAttribute(e){null!==this.doc?hl(this.doc,(t=>{Hl(t,this,e)})):this._pending.push((()=>this.removeAttribute(e)))}setAttribute(e,t){null!==this.doc?hl(this.doc,(a=>{Yl(a,this,e,t)})):this._pending.push((()=>this.setAttribute(e,t)))}getAttribute(e){return Gl(this,e)}getAttributes(){return ql(this)}_write(e){e.writeTypeRef(Ou)}}class gu{constructor(e,t=()=>!0){this._filter=t,this._root=e,this._currentNode=e._start,this._firstCall=!0,e.doc??Tl()}[Symbol.iterator](){return this}next(){let e=this._currentNode,t=e&&e.content&&e.content.type;if(null!==e&&(!this._firstCall||e.deleted||!this._filter(t)))do{if(t=e.content.type,e.deleted||t.constructor!==vu&&t.constructor!==bu||null===t._start)for(;null!==e;){const t=e.next;if(null!==t){e=t;break}e=e.parent===this._root?null:e.parent._item}else e=t._start}while(null!==e&&(e.deleted||!this._filter(e.content.type)));return this._firstCall=!1,null===e?{value:void 0,done:!0}:(this._currentNode=e,{value:e.content.type,done:!1})}}class bu extends Dl{constructor(){super(),this._prelimContent=[]}get firstChild(){const e=this._first;return e?e.content.getContent()[0]:null}_integrate(e,t){super._integrate(e,t),this.insert(0,this._prelimContent),this._prelimContent=null}_copy(){return new bu}clone(){const e=new bu;return e.insert(0,this.toArray().map((e=>e instanceof Dl?e.clone():e))),e}get length(){return this.doc??Tl(),null===this._prelimContent?this._length:this._prelimContent.length}createTreeWalker(e){return new gu(this,e)}querySelector(e){e=e.toUpperCase();const t=new gu(this,(t=>t.nodeName&&t.nodeName.toUpperCase()===e)).next();return t.done?null:t.value}querySelectorAll(e){return e=e.toUpperCase(),cr(new gu(this,(t=>t.nodeName&&t.nodeName.toUpperCase()===e)))}_callObserver(e,t){El(this,e,new _u(this,t,e))}toString(){return Ol(this,(e=>e.toString())).join("")}toJSON(){return this.toString()}toDOM(e=document,t={},a){const i=e.createDocumentFragment();return void 0!==a&&a._createAssociation(i,this),Pl(this,(n=>{i.insertBefore(n.toDOM(e,t,a),null)})),i}insert(e,t){null!==this.doc?hl(this.doc,(a=>{zl(a,this,e,t)})):this._prelimContent.splice(e,0,...t)}insertAfter(e,t){if(null!==this.doc)hl(this.doc,(a=>{const i=e&&e instanceof Dl?e._item:e;jl(a,this,i,t)}));else{const a=this._prelimContent,i=null===e?0:a.findIndex((t=>t===e))+1;if(0===i&&null!==e)throw es("Reference item not found");a.splice(i,0,...t)}}delete(e,t=1){null!==this.doc?hl(this.doc,(a=>{Wl(a,this,e,t)})):this._prelimContent.splice(e,t)}toArray(){return Rl(this)}push(e){this.insert(this.length,e)}unshift(e){this.insert(0,e)}get(e){return $l(this,e)}slice(e=0,t=this.length){return Ll(this,e,t)}forEach(e){Pl(this,e)}_write(e){e.writeTypeRef($u)}}class vu extends bu{constructor(e="UNDEFINED"){super(),this.nodeName=e,this._prelimAttrs=new Map}get nextSibling(){const e=this._item?this._item.next:null;return e?e.content.type:null}get prevSibling(){const e=this._item?this._item.prev:null;return e?e.content.type:null}_integrate(e,t){super._integrate(e,t),this._prelimAttrs.forEach(((e,t)=>{this.setAttribute(t,e)})),this._prelimAttrs=null}_copy(){return new vu(this.nodeName)}clone(){const e=new vu(this.nodeName);return((e,t)=>{for(const a in e)t(e[a],a)})(this.getAttributes(),((t,a)=>{"string"==typeof t&&e.setAttribute(a,t)})),e.insert(0,this.toArray().map((e=>e instanceof Dl?e.clone():e))),e}toString(){const e=this.getAttributes(),t=[],a=[];for(const t in e)a.push(t);a.sort();const i=a.length;for(let n=0;n<i;n++){const i=a[n];t.push(i+'="'+e[i]+'"')}const n=this.nodeName.toLocaleLowerCase();return`<${n}${t.length>0?" "+t.join(" "):""}>${super.toString()}</${n}>`}removeAttribute(e){null!==this.doc?hl(this.doc,(t=>{Hl(t,this,e)})):this._prelimAttrs.delete(e)}setAttribute(e,t){null!==this.doc?hl(this.doc,(a=>{Yl(a,this,e,t)})):this._prelimAttrs.set(e,t)}getAttribute(e){return Gl(this,e)}hasAttribute(e){return Zl(this,e)}getAttributes(e){return e?((e,t)=>{const a={};return e._map.forEach(((e,i)=>{let n=e;for(;null!==n&&(!t.sv.has(n.id.client)||n.id.clock>=(t.sv.get(n.id.client)||0));)n=n.left;null!==n&&Jo(n,t)&&(a[i]=n.content.getContent()[n.length-1])})),a})(this,e):ql(this)}toDOM(e=document,t={},a){const i=e.createElement(this.nodeName),n=this.getAttributes();for(const e in n){const t=n[e];"string"==typeof t&&i.setAttribute(e,t)}return Pl(this,(n=>{i.appendChild(n.toDOM(e,t,a))})),void 0!==a&&a._createAssociation(i,this),i}_write(e){e.writeTypeRef(Bu),e.writeKey(this.nodeName)}}class _u extends Nl{constructor(e,t,a){super(e,a),this.childListChanged=!1,this.attributesChanged=new Set,t.forEach((e=>{null===e?this.childListChanged=!0:this.attributesChanged.add(e)}))}}class wu extends eu{constructor(e){super(),this.hookName=e}_copy(){return new wu(this.hookName)}clone(){const e=new wu(this.hookName);return this.forEach(((t,a)=>{e.set(a,t)})),e}toDOM(e=document,t={},a){const i=t[this.hookName];let n;return n=void 0!==i?i.createDom(this):document.createElement(this.hookName),n.setAttribute("data-yjs-hook",this.hookName),void 0!==a&&a._createAssociation(n,this),n}_write(e){e.writeTypeRef(ju),e.writeKey(this.hookName)}}class Au extends yu{get nextSibling(){const e=this._item?this._item.next:null;return e?e.content.type:null}get prevSibling(){const e=this._item?this._item.prev:null;return e?e.content.type:null}_copy(){return new Au}clone(){const e=new Au;return e.applyDelta(this.toDelta()),e}toDOM(e=document,t,a){const i=e.createTextNode(this.toString());return void 0!==a&&a._createAssociation(i,this),i}toString(){return this.toDelta().map((e=>{const t=[];for(const a in e.attributes){const i=[];for(const t in e.attributes[a])i.push({key:t,value:e.attributes[a][t]});i.sort(((e,t)=>e.key<t.key?-1:1)),t.push({nodeName:a,attrs:i})}t.sort(((e,t)=>e.nodeName<t.nodeName?-1:1));let a="";for(let e=0;e<t.length;e++){const i=t[e];a+=`<${i.nodeName}`;for(let e=0;e<i.attrs.length;e++){const t=i.attrs[e];a+=` ${t.key}="${t.value}"`}a+=">"}a+=e.insert;for(let e=t.length-1;e>=0;e--)a+=`</${t[e].nodeName}>`;return a})).join("")}toJSON(){return this.toString()}_write(e){e.writeTypeRef(Uu)}}class ku{constructor(e,t){this.id=e,this.length=t}get deleted(){throw ts()}mergeWith(e){return!1}write(e,t,a){throw ts()}integrate(e,t){throw ts()}}class Su extends ku{get deleted(){return!0}delete(){}mergeWith(e){return this.constructor===e.constructor&&(this.length+=e.length,!0)}integrate(e,t){t>0&&(this.id.clock+=t,this.length-=t),tl(e.doc.store,this)}write(e,t){e.writeInfo(0),e.writeLen(this.length-t)}getMissing(e,t){return null}}class Nu{constructor(e){this.content=e}getLength(){return 1}getContent(){return[this.content]}isCountable(){return!0}copy(){return new Nu(this.content)}splice(e){throw ts()}mergeWith(e){return!1}integrate(e,t){}delete(e){}gc(e){}write(e,t){e.writeBuf(this.content)}getRef(){return 3}}class xu{constructor(e){this.len=e}getLength(){return this.len}getContent(){return[]}isCountable(){return!1}copy(){return new xu(this.len)}splice(e){const t=new xu(this.len-e);return this.len=e,t}mergeWith(e){return this.len+=e.len,!0}integrate(e,t){_o(e.deleteSet,t.id.client,t.id.clock,this.len),t.markDeleted()}delete(e){}gc(e){}write(e,t){e.writeLen(this.len-t)}getRef(){return 1}}const Tu=(e,t)=>new xo({guid:e,...t,shouldLoad:t.shouldLoad||t.autoLoad||!1});class Mu{constructor(e){e._item&&console.error("This document was already integrated as a sub-document. You should create a second instance instead with the same guid."),this.doc=e;const t={};this.opts=t,e.gc||(t.gc=!1),e.autoLoad&&(t.autoLoad=!0),null!==e.meta&&(t.meta=e.meta)}getLength(){return 1}getContent(){return[this.doc]}isCountable(){return!0}copy(){return new Mu(Tu(this.doc.guid,this.opts))}splice(e){throw ts()}mergeWith(e){return!1}integrate(e,t){this.doc._item=t,e.subdocsAdded.add(this.doc),this.doc.shouldLoad&&e.subdocsLoaded.add(this.doc)}delete(e){e.subdocsAdded.has(this.doc)?e.subdocsAdded.delete(this.doc):e.subdocsRemoved.add(this.doc)}gc(e){}write(e,t){e.writeString(this.doc.guid),e.writeAny(this.opts)}getRef(){return 9}}class Vu{constructor(e){this.embed=e}getLength(){return 1}getContent(){return[this.embed]}isCountable(){return!0}copy(){return new Vu(this.embed)}splice(e){throw ts()}mergeWith(e){return!1}integrate(e,t){}delete(e){}gc(e){}write(e,t){e.writeJSON(this.embed)}getRef(){return 5}}class Cu{constructor(e,t){this.key=e,this.value=t}getLength(){return 1}getContent(){return[]}isCountable(){return!1}copy(){return new Cu(this.key,this.value)}splice(e){throw ts()}mergeWith(e){return!1}integrate(e,t){const a=t.parent;a._searchMarker=null,a._hasFormatting=!0}delete(e){}gc(e){}write(e,t){e.writeKey(this.key),e.writeJSON(this.value)}getRef(){return 6}}class Iu{constructor(e){this.arr=e}getLength(){return this.arr.length}getContent(){return this.arr}isCountable(){return!0}copy(){return new Iu(this.arr)}splice(e){const t=new Iu(this.arr.slice(e));return this.arr=this.arr.slice(0,e),t}mergeWith(e){return this.arr=this.arr.concat(e.arr),!0}integrate(e,t){}delete(e){}gc(e){}write(e,t){const a=this.arr.length;e.writeLen(a-t);for(let i=t;i<a;i++){const t=this.arr[i];e.writeString(void 0===t?"undefined":JSON.stringify(t))}}getRef(){return 2}}const Fu="development"===Ws("node_env");class Eu{constructor(e){this.arr=e,Fu&&Ls(e)}getLength(){return this.arr.length}getContent(){return this.arr}isCountable(){return!0}copy(){return new Eu(this.arr)}splice(e){const t=new Eu(this.arr.slice(e));return this.arr=this.arr.slice(0,e),t}mergeWith(e){return this.arr=this.arr.concat(e.arr),!0}integrate(e,t){}delete(e){}gc(e){}write(e,t){const a=this.arr.length;e.writeLen(a-t);for(let i=t;i<a;i++){const t=this.arr[i];e.writeAny(t)}}getRef(){return 8}}class Du{constructor(e){this.str=e}getLength(){return this.str.length}getContent(){return this.str.split("")}isCountable(){return!0}copy(){return new Du(this.str)}splice(e){const t=new Du(this.str.slice(e));this.str=this.str.slice(0,e);const a=this.str.charCodeAt(e-1);return a>=55296&&a<=56319&&(this.str=this.str.slice(0,e-1)+"�",t.str="�"+t.str.slice(1)),t}mergeWith(e){return this.str+=e.str,!0}integrate(e,t){}delete(e){}gc(e){}write(e,t){e.writeString(0===t?this.str:this.str.slice(t))}getRef(){return 4}}const Lu=[e=>new Xl,e=>new eu,e=>new yu,e=>new vu(e.readKey()),e=>new bu,e=>new wu(e.readKey()),e=>new Au],Ru=0,Pu=1,Ou=2,Bu=3,$u=4,ju=5,Uu=6;class zu{constructor(e){this.type=e}getLength(){return 1}getContent(){return[this.type]}isCountable(){return!0}copy(){return new zu(this.type._copy())}splice(e){throw ts()}mergeWith(e){return!1}integrate(e,t){this.type._integrate(e.doc,t)}delete(e){let t=this.type._start;for(;null!==t;)t.deleted?t.id.clock<(e.beforeState.get(t.id.client)||0)&&e._mergeStructs.push(t):t.delete(e),t=t.right;this.type._map.forEach((t=>{t.deleted?t.id.clock<(e.beforeState.get(t.id.client)||0)&&e._mergeStructs.push(t):t.delete(e)})),e.changed.delete(this.type)}gc(e){let t=this.type._start;for(;null!==t;)t.gc(e,!0),t=t.right;this.type._start=null,this.type._map.forEach((t=>{for(;null!==t;)t.gc(e,!0),t=t.left})),this.type._map=new Map}write(e,t){this.type._write(e)}getRef(){return 7}}const Wu=(e,t,a)=>{const{client:i,clock:n}=t.id,r=new Hu(Zo(i,n+a),t,Zo(i,n+a-1),t.right,t.rightOrigin,t.parent,t.parentSub,t.content.splice(a));return t.deleted&&r.markDeleted(),t.keep&&(r.keep=!0),null!==t.redone&&(r.redone=Zo(t.redone.client,t.redone.clock+a)),t.right=r,null!==r.right&&(r.right.left=r),e._mergeStructs.push(r),null!==r.parentSub&&null===r.right&&r.parent._map.set(r.parentSub,r),t.length=a,r};class Hu extends ku{constructor(e,t,a,i,n,r,s,o){super(e,o.getLength()),this.origin=a,this.left=t,this.right=i,this.rightOrigin=n,this.parent=r,this.parentSub=s,this.redone=null,this.content=o,this.info=this.content.isCountable()?2:0}set marker(e){(8&this.info)>0!==e&&(this.info^=8)}get marker(){return(8&this.info)>0}get keep(){return(1&this.info)>0}set keep(e){this.keep!==e&&(this.info^=1)}get countable(){return(2&this.info)>0}get deleted(){return(4&this.info)>0}set deleted(e){this.deleted!==e&&(this.info^=4)}markDeleted(){this.info|=4}getMissing(e,t){if(this.origin&&this.origin.client!==this.id.client&&this.origin.clock>=el(t,this.origin.client))return this.origin.client;if(this.rightOrigin&&this.rightOrigin.client!==this.id.client&&this.rightOrigin.clock>=el(t,this.rightOrigin.client))return this.rightOrigin.client;if(this.parent&&this.parent.constructor===Go&&this.id.client!==this.parent.client&&this.parent.clock>=el(t,this.parent.client))return this.parent.client;if(this.origin&&(this.left=sl(e,t,this.origin),this.origin=this.left.lastId),this.rightOrigin&&(this.right=rl(e,this.rightOrigin),this.rightOrigin=this.right.id),this.left&&this.left.constructor===Su||this.right&&this.right.constructor===Su)this.parent=null;else if(this.parent){if(this.parent.constructor===Go){const e=il(t,this.parent);e.constructor===Su?this.parent=null:this.parent=e.content.type}}else this.left&&this.left.constructor===Hu?(this.parent=this.left.parent,this.parentSub=this.left.parentSub):this.right&&this.right.constructor===Hu&&(this.parent=this.right.parent,this.parentSub=this.right.parentSub);return null}integrate(e,t){if(t>0&&(this.id.clock+=t,this.left=sl(e,e.doc.store,Zo(this.id.client,this.id.clock-1)),this.origin=this.left.lastId,this.content=this.content.splice(t),this.length-=t),this.parent){if(!this.left&&(!this.right||null!==this.right.left)||this.left&&this.left.right!==this.right){let t,a=this.left;if(null!==a)t=a.right;else if(null!==this.parentSub)for(t=this.parent._map.get(this.parentSub)||null;null!==t&&null!==t.left;)t=t.left;else t=this.parent._start;const i=new Set,n=new Set;for(;null!==t&&t!==this.right;){if(n.add(t),i.add(t),qo(this.origin,t.origin)){if(t.id.client<this.id.client)a=t,i.clear();else if(qo(this.rightOrigin,t.rightOrigin))break}else{if(null===t.origin||!n.has(il(e.doc.store,t.origin)))break;i.has(il(e.doc.store,t.origin))||(a=t,i.clear())}t=t.right}this.left=a}if(null!==this.left){const e=this.left.right;this.right=e,this.left.right=this}else{let e;if(null!==this.parentSub)for(e=this.parent._map.get(this.parentSub)||null;null!==e&&null!==e.left;)e=e.left;else e=this.parent._start,this.parent._start=this;this.right=e}null!==this.right?this.right.left=this:null!==this.parentSub&&(this.parent._map.set(this.parentSub,this),null!==this.left&&this.left.delete(e)),null===this.parentSub&&this.countable&&!this.deleted&&(this.parent._length+=this.length),tl(e.doc.store,this),this.content.integrate(e,this),cl(e,this.parent,this.parentSub),(null!==this.parent._item&&this.parent._item.deleted||null!==this.parentSub&&null!==this.right)&&this.delete(e)}else new Su(this.id,this.length).integrate(e,0)}get next(){let e=this.right;for(;null!==e&&e.deleted;)e=e.right;return e}get prev(){let e=this.left;for(;null!==e&&e.deleted;)e=e.left;return e}get lastId(){return 1===this.length?this.id:Zo(this.id.client,this.id.clock+this.length-1)}mergeWith(e){if(this.constructor===e.constructor&&qo(e.origin,this.lastId)&&this.right===e&&qo(this.rightOrigin,e.rightOrigin)&&this.id.client===e.id.client&&this.id.clock+this.length===e.id.clock&&this.deleted===e.deleted&&null===this.redone&&null===e.redone&&this.content.constructor===e.content.constructor&&this.content.mergeWith(e.content)){const t=this.parent._searchMarker;return t&&t.forEach((t=>{t.p===e&&(t.p=this,!this.deleted&&this.countable&&(t.index-=this.length))})),e.keep&&(this.keep=!0),this.right=e.right,null!==this.right&&(this.right.left=this),this.length+=e.length,!0}return!1}delete(e){if(!this.deleted){const t=this.parent;this.countable&&null===this.parentSub&&(t._length-=this.length),this.markDeleted(),_o(e.deleteSet,this.id.client,this.id.clock,this.length),cl(e,t,this.parentSub),this.content.delete(e)}}gc(e,t){if(!this.deleted)throw as();this.content.gc(e),t?((e,t,a)=>{const i=e.clients.get(t.id.client);i[al(i,t.id.clock)]=a})(e,this,new Su(this.id,this.length)):this.content=new xu(this.length)}write(e,t){const a=t>0?Zo(this.id.client,this.id.clock+t-1):this.origin,i=this.rightOrigin,n=this.parentSub,r=31&this.content.getRef()|(null===a?0:wr)|(null===i?0:_r)|(null===n?0:32);if(e.writeInfo(r),null!==a&&e.writeLeftID(a),null!==i&&e.writeRightID(i),null===a&&null===i){const t=this.parent;if(void 0!==t._item){const a=t._item;if(null===a){const a=(e=>{for(const[t,a]of e.doc.share.entries())if(a===e)return t;throw as()})(t);e.writeParentInfo(!0),e.writeString(a)}else e.writeParentInfo(!1),e.writeLeftID(a.id)}else t.constructor===String?(e.writeParentInfo(!0),e.writeString(t)):t.constructor===Go?(e.writeParentInfo(!1),e.writeLeftID(t)):as();null!==n&&e.writeString(n)}this.content.write(e,t)}}const Yu=(e,t)=>Gu[31&t](e),Gu=[()=>{as()},e=>new xu(e.readLen()),e=>{const t=e.readLen(),a=[];for(let i=0;i<t;i++){const t=e.readString();"undefined"===t?a.push(void 0):a.push(JSON.parse(t))}return new Iu(a)},e=>new Nu(e.readBuf()),e=>new Du(e.readString()),e=>new Vu(e.readJSON()),e=>new Cu(e.readKey(),e.readJSON()),e=>new zu(Lu[e.readTypeRef()](e)),e=>{const t=e.readLen(),a=[];for(let i=0;i<t;i++)a.push(e.readAny());return new Eu(a)},e=>new Mu(Tu(e.readString(),e.readAny())),()=>{as()}];class qu extends ku{get deleted(){return!0}delete(){}mergeWith(e){return this.constructor===e.constructor&&(this.length+=e.length,!0)}integrate(e,t){as()}write(e,t){e.writeInfo(10),Or(e.restEncoder,this.length-t)}getMissing(e,t){return null}}const Zu="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},Ju="__ $YJS$ __";!0===Zu[Ju]&&console.error("Yjs was already imported. This breaks constructor checks and will lead to issues! - https://github.com/yjs/yjs/issues/438"),Zu[Ju]=!0;const Ku=new Map;const Xu="undefined"==typeof BroadcastChannel?class{constructor(e){var t;this.room=e,this.onmessage=null,this._onChange=t=>t.key===e&&null!==this.onmessage&&this.onmessage({data:Js(t.newValue||"")}),t=this._onChange,Ts||addEventListener("storage",t)}postMessage(e){Ms.setItem(this.room,Zs((e=>new Uint8Array(e))(e)))}close(){var e;e=this._onChange,Ts||removeEventListener("storage",e)}}:BroadcastChannel,Qu=e=>sr(Ku,e,(()=>{const t=or(),a=new Xu(e);return a.onmessage=e=>t.forEach((t=>t(e.data,"broadcastchannel"))),{bc:a,subs:t}})),ec=(e,t,a=null)=>{const i=Qu(e);i.bc.postMessage(t),i.subs.forEach((e=>e(t,a)))},tc=(e,t)=>{Or(e,0);const a=(e=>jo(e,new Io))(t);Wr(e,a)},ac=(e,t,a)=>{Or(e,1),Wr(e,((e,t)=>Oo(e,t,new Fo))(t,a))},ic=(e,t,a)=>{try{((e,t,a)=>{Po(e,t,a,Mo)})(t,os(e),a)}catch(e){console.error("Caught error while handling a Yjs update",e)}},nc=ic,rc=(e,t,a,i)=>{const n=us(e);switch(n){case 0:((e,t,a)=>{ac(t,a,os(e))})(e,t,a);break;case 1:ic(e,a,i);break;case 2:nc(e,a,i);break;default:throw new Error("Unknown message type")}return n},sc=3e4;class oc extends hr{constructor(e){super(),this.doc=e,this.clientID=e.clientID,this.states=new Map,this.meta=new Map,this._checkInterval=setInterval((()=>{const e=ks();null!==this.getLocalState()&&15e3<=e-this.meta.get(this.clientID).lastUpdated&&this.setLocalState(this.getLocalState());const t=[];this.meta.forEach(((a,i)=>{i!==this.clientID&&sc<=e-a.lastUpdated&&this.states.has(i)&&t.push(i)})),t.length>0&&lc(this,t,"timeout")}),fr(3e3)),e.on("destroy",(()=>{this.destroy()})),this.setLocalState({})}destroy(){this.emit("destroy",[this]),this.setLocalState(null),super.destroy(),clearInterval(this._checkInterval)}getLocalState(){return this.states.get(this.clientID)||null}setLocalState(e){const t=this.clientID,a=this.meta.get(t),i=void 0===a?0:a.clock+1,n=this.states.get(t);null===e?this.states.delete(t):this.states.set(t,e),this.meta.set(t,{clock:i,lastUpdated:ks()});const r=[],s=[],o=[],l=[];null===e?l.push(t):null==n?null!=e&&r.push(t):(s.push(t),Bs(n,e)||o.push(t)),(r.length>0||o.length>0||l.length>0)&&this.emit("change",[{added:r,updated:o,removed:l},"local"]),this.emit("update",[{added:r,updated:s,removed:l},"local"])}setLocalStateField(e,t){const a=this.getLocalState();null!==a&&this.setLocalState({...a,[e]:t})}getStates(){return this.states}}const lc=(e,t,a)=>{const i=[];for(let a=0;a<t.length;a++){const n=t[a];if(e.states.has(n)){if(e.states.delete(n),n===e.clientID){const t=e.meta.get(n);e.meta.set(n,{clock:t.clock+1,lastUpdated:ks()})}i.push(n)}}i.length>0&&(e.emit("change",[{added:[],updated:[],removed:i},a]),e.emit("update",[{added:[],updated:[],removed:i},a]))},uc=(e,t,a=e.states)=>{const i=t.length,n=Er();Or(n,i);for(let r=0;r<i;r++){const i=t[r],s=a.get(i)||null,o=e.meta.get(i).clock;Or(n,i),Or(n,o),Ur(n,JSON.stringify(s))}return Lr(n)},cc=[];cc[0]=(e,t,a,i,n)=>{Or(e,0);const r=rc(t,e,a.doc,a);i&&1===r&&!a.synced&&(a.synced=!0)},cc[3]=(e,t,a,i,n)=>{Or(e,1),Wr(e,uc(a.awareness,Array.from(a.awareness.getStates().keys())))},cc[1]=(e,t,a,i,n)=>{((e,t,a)=>{const i=ss(t),n=ks(),r=[],s=[],o=[],l=[],u=us(i);for(let t=0;t<u;t++){const t=us(i);let a=us(i);const u=JSON.parse(ds(i)),c=e.meta.get(t),d=e.states.get(t),p=void 0===c?0:c.clock;(p<a||p===a&&null===u&&e.states.has(t))&&(null===u?t===e.clientID&&null!=e.getLocalState()?a++:e.states.delete(t):e.states.set(t,u),e.meta.set(t,{clock:a,lastUpdated:n}),void 0===c&&null!==u?r.push(t):void 0!==c&&null===u?l.push(t):null!==u&&(Bs(u,d)||o.push(t),s.push(t)))}(r.length>0||o.length>0||l.length>0)&&e.emit("change",[{added:r,updated:o,removed:l},a]),(r.length>0||s.length>0||l.length>0)&&e.emit("update",[{added:r,updated:s,removed:l},a])})(a.awareness,os(t),a)},cc[2]=(e,t,a,i,n)=>{((e,t,a)=>{0===us(e)&&a(t,ds(e))})(t,a.doc,((e,t)=>dc(a,t)))};const dc=(e,t)=>console.warn(`Permission denied to access ${e.url}.\n${t}`),pc=(e,t,a)=>{const i=ss(t),n=Er(),r=us(i),s=e.messageHandlers[r];return s?s(n,i,e,a,r):console.error("Unable to compute message"),n},hc=(e,t,a)=>{t===e.ws&&(e.emit("connection-close",[a,e]),e.ws=null,t.close(),e.wsconnecting=!1,e.wsconnected?(e.wsconnected=!1,e.synced=!1,lc(e.awareness,Array.from(e.awareness.getStates().keys()).filter((t=>t!==e.doc.clientID)),e),e.emit("status",[{status:"disconnected"}])):e.wsUnsuccessfulReconnects++,setTimeout(fc,yr(100*br(2,e.wsUnsuccessfulReconnects),e.maxBackoffTime),e))},fc=e=>{if(e.shouldConnect&&null===e.ws){const t=new e._WS(e.url,e.protocols);t.binaryType="arraybuffer",e.ws=t,e.wsconnecting=!0,e.wsconnected=!1,e.synced=!1,t.onmessage=a=>{e.wsLastMessageReceived=ks();const i=pc(e,new Uint8Array(a.data),!0);Dr(i)>1&&t.send(Lr(i))},t.onerror=t=>{e.emit("connection-error",[t,e])},t.onclose=a=>{hc(e,t,a)},t.onopen=()=>{e.wsLastMessageReceived=ks(),e.wsconnecting=!1,e.wsconnected=!0,e.wsUnsuccessfulReconnects=0,e.emit("status",[{status:"connected"}]);const a=Er();if(Or(a,0),tc(a,e.doc),t.send(Lr(a)),null!==e.awareness.getLocalState()){const a=Er();Or(a,1),Wr(a,uc(e.awareness,[e.doc.clientID])),t.send(Lr(a))}},e.emit("status",[{status:"connecting"}])}},mc=(e,t)=>{const a=e.ws;e.wsconnected&&a&&a.readyState===a.OPEN&&a.send(t),e.bcconnected&&ec(e.bcChannel,t,e)};class yc extends pr{constructor(e,t,a,{connect:i=!0,awareness:n=new oc(a),params:r={},protocols:s=[],WebSocketPolyfill:o=WebSocket,resyncInterval:l=-1,maxBackoffTime:u=2500,disableBc:c=!1}={}){for(super();"/"===e[e.length-1];)e=e.slice(0,e.length-1);this.serverUrl=e,this.bcChannel=e+"/"+t,this.maxBackoffTime=u,this.params=r,this.protocols=s,this.roomname=t,this.doc=a,this._WS=o,this.awareness=n,this.wsconnected=!1,this.wsconnecting=!1,this.bcconnected=!1,this.disableBc=c,this.wsUnsuccessfulReconnects=0,this.messageHandlers=cc.slice(),this._synced=!1,this.ws=null,this.wsLastMessageReceived=0,this.shouldConnect=i,this._resyncInterval=0,l>0&&(this._resyncInterval=setInterval((()=>{if(this.ws&&this.ws.readyState===WebSocket.OPEN){const e=Er();Or(e,0),tc(e,a),this.ws.send(Lr(e))}}),l)),this._bcSubscriber=(e,t)=>{if(t!==this){const t=pc(this,new Uint8Array(e),!1);Dr(t)>1&&ec(this.bcChannel,Lr(t),this)}},this._updateHandler=(e,t)=>{if(t!==this){const t=Er();Or(t,0),((e,t)=>{Or(e,2),Wr(e,t)})(t,e),mc(this,Lr(t))}},this.doc.on("update",this._updateHandler),this._awarenessUpdateHandler=({added:e,updated:t,removed:a},i)=>{const r=e.concat(t).concat(a),s=Er();Or(s,1),Wr(s,uc(n,r)),mc(this,Lr(s))},this._exitHandler=()=>{lc(this.awareness,[a.clientID],"app closed")},$s&&"undefined"!=typeof process&&process.on("exit",this._exitHandler),n.on("update",this._awarenessUpdateHandler),this._checkInterval=setInterval((()=>{this.wsconnected&&3e4<ks()-this.wsLastMessageReceived&&hc(this,this.ws,null)}),3e3),i&&this.connect()}get url(){const e=(e=>((e,t)=>{const a=[];for(const i in e)a.push(t(e[i],i));return a})(e,((e,t)=>`${encodeURIComponent(t)}=${encodeURIComponent(e)}`)).join("&"))(this.params);return this.serverUrl+"/"+this.roomname+(0===e.length?"":"?"+e)}get synced(){return this._synced}set synced(e){this._synced!==e&&(this._synced=e,this.emit("synced",[e]),this.emit("sync",[e]))}destroy(){0!==this._resyncInterval&&clearInterval(this._resyncInterval),clearInterval(this._checkInterval),this.disconnect(),$s&&"undefined"!=typeof process&&process.off("exit",this._exitHandler),this.awareness.off("update",this._awarenessUpdateHandler),this.doc.off("update",this._updateHandler),super.destroy()}connectBc(){if(this.disableBc)return;var e,t;this.bcconnected||(e=this.bcChannel,t=this._bcSubscriber,Qu(e).subs.add(t),this.bcconnected=!0);const a=Er();Or(a,0),tc(a,this.doc),ec(this.bcChannel,Lr(a),this);const i=Er();Or(i,0),ac(i,this.doc),ec(this.bcChannel,Lr(i),this);const n=Er();Or(n,3),ec(this.bcChannel,Lr(n),this);const r=Er();Or(r,1),Wr(r,uc(this.awareness,[this.doc.clientID])),ec(this.bcChannel,Lr(r),this)}disconnectBc(){const e=Er();Or(e,1),Wr(e,uc(this.awareness,[this.doc.clientID],new Map)),mc(this,Lr(e)),this.bcconnected&&(((e,t)=>{const a=Qu(e),i=a.subs.delete(t);i&&0===a.subs.size&&(a.bc.close(),Ku.delete(e))})(this.bcChannel,this._bcSubscriber),this.bcconnected=!1)}disconnect(){this.shouldConnect=!1,this.disconnectBc(),null!==this.ws&&hc(this,this.ws,null)}connect(){this.shouldConnect=!0,this.wsconnected||null!==this.ws||(fc(this),this.connectBc())}}class gc extends xo{}class bc{apiClient;collabDocument;yWebsocketProvider;item;awareness;users=[];avatars=new Map;constructor(e){this.apiClient=e,this.collabDocument=new gc}isActive(){return void 0!==this.yWebsocketProvider}getAwarenessStates(){return this.awareness?this.awareness.getStates():new Map}getUsersList(){return this.users}_getUser(e){for(const t of this.users)if(e===t.key)return t;return null}getLocalState(){if(!this.awareness)throw new Error("No awareness available. Cannot get state field.");return this.awareness.getLocalState()}setLocalStateField(e,t){if(!this.awareness)throw new Error("No awareness available. Cannot set state field.");this.awareness.setLocalStateField(e,t)}async _updateUsersList(){const e=this.getAwarenessStates(),t=await this.apiClient.me(!0);for(const[a,i]of e.entries()){if(!this._getUser(a)){let e=this.avatars.get(i.user.id);if(!e){e=(await this.apiClient.getAvatar(i.user.id,32)).avatar,this.avatars.set(i.user.id,e)}this.users.push({key:a,id:i.user.id,name:i.user.name,color:i.user.color,avatar:e,itsMe:i.user.id===t._id})}}const a=[];for(const t of this.users)e.has(t.key)&&a.push(t);this.users=a}async startCollaboration(e){try{if(!this.apiClient.isDevOrLocalhost())return!1;this.endCollaboration(),this.item=e;const t=this.apiClient.getCollabUrl(),a=`${this.item.type}.${this.item._id}`;let i=1e3;this.yWebsocketProvider=new yc(t,a,this.collabDocument,{connect:!1}),this.yWebsocketProvider.on("status",(e=>{console.log(`[Collab] ${e.status}`),"disconnected"===e.status&&this.yWebsocketProvider&&(this.yWebsocketProvider.disconnect(),setTimeout(r,i))})),this.yWebsocketProvider.on("sync",(e=>{console.log(`[Collab] synced: ${e}`)})),this.awareness=this.yWebsocketProvider.awareness,this.awareness.on("change",(async e=>{await this._updateUsersList(),y.$emit("collab:awareness:changed",{users:this.users,states:this.getAwarenessStates(),changes:e})}));const n=await this.apiClient.me(!0);this.awareness.setLocalStateField("user",{id:n._id,name:n.name,color:_.colorFromString(n.name)});const r=async()=>{if(!this.yWebsocketProvider)return void console.warn("[Collab] Cannot connect without websocket provider!");console.log("[Collab] reconnecting...");const e=await this.apiClient.getCollabToken();this.yWebsocketProvider.params.token=e,this.yWebsocketProvider.connect()};return await r(),y.$emit("collab:started"),!0}catch(e){return console.error("Error starting collaboration: ",e),!1}}endCollaboration(){this.yWebsocketProvider&&(console.log("Ending collaboration."),y.$emit("collab:ended"),this.yWebsocketProvider.destroy(),this.yWebsocketProvider=void 0,this.awareness=void 0),this.collabDocument=new gc,this.item=void 0}}class vc{apiClient;constructor(e){this.apiClient=e}async testCopyItems(e,t){const a=await this.apiClient.getItemsInFolderList(t,!0),i=await this.apiClient.getFoldersInFolderList(t),n=new Map;for(const e of i.children)n.set(e.name,null);for(const e of a)n.set(e.name,e._id);const r=this.apiClient.getItemRepo(),s=[];for(const t of e){let e,a,i=!1;t.isFolder?a=await this.apiClient.getFolder(t._id):(a=r.getLoadedItem(t._id),a||(a=await this.apiClient.getItem(t._id))),e=a?.name,i=n.has(e),s.push({_id:t._id,isFolder:t.isFolder,data:a,name:e,conflicted:i,conflictedItemId:n.get(e)})}return s}async copyItems(e,t,a=!1,i=!1){const n=e.filter((e=>!e.isFolder)).map((e=>e._id)),r=await this.apiClient.copyItems(n,t,a,i),s=this.apiClient.getItemRepo();for(let t of r){const a=e.filter((e=>e._id===t.original));a.length>0&&(t.replaced=a[0].conflictedItemId),await s.replaceLink(t.original,t.clone)}return await this.apiClient.eventBus.$emit("folder:changed",t),await this.apiClient.eventBus.$emit("items:copied",r),r}}class _c{apiClient;jobManager;constructor(e){this.apiClient=e,this.jobManager=e.getJobManager()}async executeExport(e,t,a,i){const n=await this.jobManager.execute("EXPORT:ExportGame",[{_id:e,isFolder:!1}],[{name:"Destination Folder",value:a},{name:"EngineVersion",value:i}],void 0,{os:t});if(await this.apiClient.eventBus.$emit("quota:update"),2===n.state)throw new V("Export failed: "+n.error);await this.apiClient.eventBus.$emit("folder:changed",[a])}}(c.default.default?c.default.default:c.default)(u.default,{retries:3,retryCondition:e=>e.message.includes("net::ERR_NETWORK_CHANGED")});const wc={Draft:0,Private:1,NotListed:2,Public:3};exports.AccessDeniedException=F,exports.AggregatedItem=D,exports.ApiClient=class extends m{accessToken;apiToken;options;forcePublicApi;usePublicApi;usePersistentStorage;storageSizeMib;requestClientId;webProtocol;wsProtocol;viewerProtocol;collabProtocol;restUrl;wsUrl;viewerUrl;collabUrl;itemRepo;itemCache;folderCache;thumbCache;userCache;groupCache;attachmentCache;jobManager;serializer;collab;itemCopier;executableExporter;eventBus;api;ws;cachedMe;profiler;wsLastPing;last2faCode="";constructor(e={}){super(),e=e||{},this.options=Object.assign({host:"auto",viewerHost:"auto",collabHost:"auto",https:!0,path:"",websocketPath:"/api/ws",wsAutoReconnect:!0,wsAutoConnect:!1,forcePublicApi:!1,debug:!1,accessToken:null,apiToken:null,viewerHttps:!1,collabHttps:!1,usePersistentStorage:!0,storageSizeMib:10240,requestClientId:null},e);const t=this.isOnLocalhost(),a=this.isDevPlatform();"auto"===this.options.host&&(this.options.host="api.lumino.cloud",this.options.https=!0,"object"==typeof window&&"location"in window&&(a?(this.options.host="api-dev.lumino.cloud",this.options.https=!0):t&&(this.options.host="localhost:8081",this.options.https=!1))),"auto"===this.options.viewerHost&&(this.options.viewerHost="viewer.lumino.cloud",this.options.viewerHttps=!0,"object"==typeof window&&"location"in window&&(a?(this.options.viewerHost="viewer-dev.lumino.cloud",this.options.viewerHttps=!0):t&&(this.options.viewerHost="localhost:8090",this.options.viewerHttps=!1))),"auto"===this.options.collabHost&&(this.options.collabHost="collab.lumino.cloud",this.options.collabHttps=!0,"object"==typeof window&&"location"in window&&(a?(this.options.collabHost="collab-dev.lumino.cloud",this.options.collabHttps=!0):t&&(this.options.collabHost="localhost:8200",this.options.collabHttps=!1))),this.accessToken=this.options.accessToken,this.apiToken=this.options.apiToken,this.forcePublicApi=this.options.forcePublicApi,this.usePublicApi=!this.accessToken&&!this.apiToken,this.usePersistentStorage=this.options.usePersistentStorage,this.storageSizeMib=this.options.storageSizeMib,this.requestClientId=this.options.requestClientId,this.cachedMe=null,this.itemRepo=new Ki(this.usePublicApi,this),this.itemCache=new zn(this.usePublicApi,this.usePersistentStorage,this,this.storageSizeMib),this.folderCache=new Wn(this),this.thumbCache=new Hn(this),this.userCache=new Yn(this),this.groupCache=new Gn(this),this.attachmentCache=new qn(this),this.jobManager=new Kn(this),this.serializer=new ir(this),this.collab=new bc(this),this.itemCopier=new vc(this),this.executableExporter=new _c(this),this.eventBus=y,this.profiler=null,this.webProtocol=this.options.https?"https":"http",this.restUrl=`${this.webProtocol}://${this.options.host}${this.options.path}`,this.wsProtocol=this.options.https?"wss":"ws",this.wsUrl=`${this.wsProtocol}://${this.options.host}${this.options.websocketPath}`,this.viewerProtocol=this.options.viewerHttps?"https":"http",this.viewerUrl=`${this.viewerProtocol}://${this.options.viewerHost}`,this.collabProtocol=this.options.collabHttps?"wss":"ws",this.collabUrl=`${this.collabProtocol}://${this.options.collabHost}`,this.api=u.default.create({baseURL:this.restUrl}),this.ws=null,this.wsLastPing=null,this.setDebugMode(this.options.debug)}async initCaches(){return Promise.all([this.itemCache.init(),this.folderCache.init(),this.thumbCache.init()])}clearCaches(){this.itemCache.clear(),this.folderCache.clear(),this.thumbCache.clear()}isDevPlatform(){return"object"==typeof window&&"location"in window&&window.location.href.includes("dev.lumino.cloud")}isOnLocalhost(){return"object"==typeof window&&"location"in window&&window.location.href.includes("localhost")}isDevOrLocalhost(){return this.isOnLocalhost()||this.isDevPlatform()}async clearIndexedDb(e){return new Promise(((t,a)=>{const i=indexedDB.deleteDatabase(e);i.onsuccess=()=>{t()},i.onerror=e=>{a("An error occured while deleting a IndexedDB database.")},i.onblocked=()=>{a(`Database deletion is blocked. Please close all connections to "${e}".`)}}))}async logout(){return this.clearCaches(),this.clearIndexedDb("lumino")}setDebugMode(e){this.options.debug=!!e,this.eventBus.setDebugMode(this.options.debug)}websocketConnect(e){const t=this;if(this.ws){if(!e)return void console.warn("Websocket is already connected!");this.websocketDisconnect()}this.ws=new d.default(this.wsUrl),this.ws.onerror=function(e){console.error("Websocket error",e),t.$emit("client:websocketError",e)},this.ws.onopen=function(){t.$emit("client:websocketOpen"),t.accessToken&&t.websocketSend(JSON.stringify({type:"auth",subscriptions:["item","folder","job","user","notification"],token:t.accessToken}))},this.ws.onclose=function(){t.$emit("client:websocketClosed"),t.options.wsAutoReconnect&&t.websocketConnect(!0)},this.ws.onmessage=function(e){try{const a=JSON.parse(e.data);switch(a.type){case"ping":t.wsLastPing=new Date,t.ws&&t.ws.send(JSON.stringify({type:"ping"}));break;case"authenticated":t.$emit("client:websocketAuthenticated");break;case"Item":case"Folder":case"Notification":case"Job":case"User":y.$emit("client:elementUpdate",a);break;default:console.warn("Unknown websocket message: ",a)}}catch(e){console.error("Websocket error:",e)}}}websocketDisconnect(){this.ws&&(this.ws.close(),this.ws=null)}websocketSend(e){this.ws?1===this.ws.readyState?this.ws.send(e):console.error("Websocket is not in READY state. Currently in state "+this.ws.readyState):console.error("Websocket is not created")}getItemCopier(){return this.itemCopier}getExecutableExporter(){return this.executableExporter}getCollab(){return this.collab}getCollabUrl(){return this.collabUrl}getPublisher(){return new Zn(this)}getAssetCreator(){return new ar(this)}getJobManager(){return this.jobManager}getThumbCache(){return this.thumbCache}getItemCache(){return this.itemCache}getItemRepo(){return this.itemRepo}getRootVisibility(){return this.itemRepo.activeItem?this.itemRepo.activeItem.visibility:wc.Private}getEventBus(){return this.eventBus}getSerializer(){return this.serializer}setForcePublicApi(e){this.forcePublicApi=e,this._updateUsePublicApi()}_updateUsePublicApi(){this.usePublicApi=this.forcePublicApi||!this.apiToken&&!this.accessToken,this.itemRepo.usePublicApi=this.usePublicApi,this.itemCache.usePublicApi=this.usePublicApi}setApiToken(e){this.apiToken=e,this._updateUsePublicApi()}setAccessToken(e){this.accessToken=e,this._updateUsePublicApi(),this.accessToken&&this.options.wsAutoConnect&&this.websocketConnect()}getApiToken(){return this.apiToken}getAccessToken(){return this.accessToken}updateBaseUrl(e){this.options.host=e,this.webProtocol=this.options.https?"https":"http";const t=`${this.webProtocol}://${this.options.host}${this.options.path}`;this.setApiBaseUrl(t),this.wsProtocol=this.options.https?"wss":"ws";const a=`${this.wsProtocol}://${this.options.host}${this.options.websocketPath}`;this.setWsBaseUrl(a)}setApiBaseUrl(e){this.restUrl=e,this.api=u.default.create({baseURL:this.restUrl})}setWsBaseUrl(e){this.wsUrl=e,this.accessToken&&this.options.wsAutoConnect&&(this.websocketDisconnect(),this.websocketConnect())}setRequestClientId(e){this.requestClientId=e}getApiBaseUrl(){return this.restUrl}getWsBaseUrl(){return this.wsUrl}getViewerBaseUrl(){return this.viewerUrl}setProfiler(e){if(!e||"function"!=typeof e.start)throw new Error("Profiler needs to be an object providing a start function.");this.profiler=e}async login2FA(e,t,a){return console.log("Running Login..."),this.execute("post","/api/auth/login2fa",{account:e,password:t,client:a}).then((e=>{this.last2faCode=e,this.eventBus.$emit("login.2facode",e)}))}async confirm2FA(e,t){return this.execute("post","/api/auth/confirm2fa",{account:e,code:t})}isAuthenticated(){return!!this.accessToken||!!this.apiToken}isFeatureEnabled(e){return!!this.cachedMe&&this.cachedMe.features.includes(e)}async resolveUserOrGroupInfoForItem(e){return e.quotaUser?this.userCache.resolve(e.quotaUser):e.quotaGroup?this.groupCache.resolve(e.quotaGroup):e.createdBy?this.userCache.resolve(e.createdBy):{name:"?",initials:"?",avatar:null}}_startOp(e){const t=this,a={id:_.createGUID(),name:e,startTimeMs:performance.now(),runningMs:0,percent:0,reportProgress:function(e){a.percent=e},interval:null,finish:function(){if(a.interval&&clearInterval(a.interval),a.runningMs>1e3)try{t.$emit("client:longRunningOpFinished",a.id)}catch(e){console.error(e)}}};return a.interval=setInterval((function(){if(a.runningMs=performance.now()-a.startTimeMs,a.runningMs>1e3)try{t.$emit("client:longRunningOp",a.id,a.name,a.percent)}catch(e){console.error(e)}}),100),a}_createOpName(e,t){try{const a=t.split("/");switch(e.toLowerCase()){case"get":e="Fetching";break;case"post":e="Creating";break;case"put":e="Updating";break;case"delete":e="Deleting"}a.shift(),a.shift();const i=a.shift();let n=a.join("/");return n.length&&(n=` [${n}]`),`${e} ${i} data ${n}`}catch{return`${e} ${t}`}}addAuthenticationHeaders(e){this.accessToken&&(e["x-access-token"]=this.accessToken),this.apiToken&&(e["x-api-token"]=this.apiToken),this.requestClientId&&(e["x-request-client"]=this.requestClientId)}async execute(e,t,a,i){let n=this,r={};(i=i||{}).headers?r=i.headers:a&&"object"==typeof a&&"getHeaders"in a&&"function"==typeof a.getHeaders&&(r=a.getHeaders()),this.addAuthenticationHeaders(r);const s=this.profiler?this.profiler.start("ApiClient",`${e} ${t}`):null,o=this._startOp(i.opName||n._createOpName(e,t));return this.api({method:e,url:t,data:a,responseType:i.responseType,headers:r,signal:i.controller?i.controller.signal:void 0,onUploadProgress:function(e){if(e.total){const t=Math.min(100,Math.round(100*e.loaded/e.total));o.reportProgress(t),n.$emit("client:progress",{type:"upload",percent:t}),"function"==typeof i.progressCallback&&i.progressCallback(t,e.loaded,e.total)}},onDownloadProgress:function(e){if(e.total){const t=Math.min(100,Math.round(100*e.loaded/e.total));o.reportProgress(t),n.$emit("client:progress",{type:"download",percent:t}),"function"==typeof i.progressCallback&&i.progressCallback(t,e.loaded,e.total)}}}).then((e=>{if(s&&s.done(),o.finish(),n.$emit("client:progress",{type:"done"}),e.headers["content-type"].startsWith("application/json")){if("success"===e.data.result){let t;return t=i.withNext?{data:e.data.data,next:e.data.next}:e.data.data,i.emitOnSuccess&&this.eventBus.$emit(i.emitOnSuccess,t),t}throw e.data.redirect&&this.$emit("client:redirect",e.data.redirect),e.data.error?e.data.error:"API response seems to be json but does not contain result type!"}return i.emitOnSuccess&&this.eventBus.$emit(i.emitOnSuccess),{blob:new Blob([e.data],{type:e.headers["content-type"]}),hash:e.headers["sha256-hash"],itemName:e.headers["lumino-itemname"],itemType:e.headers["lumino-itemtype"],mimeType:e.headers["content-type"]}})).catch((e=>{if(s&&s.done(),o.finish(),n.$emit("client:progress",{type:"done"}),e.response){if(401===e.response.status)throw this.$emit("client:unauthorized"),new F("Access denied. Please login again.");if(413===e.response.status)throw new I;if(e.response.data&&e.response.data.error)throw new Error(e.response.data.error)}throw e}))}_createFormData(e,t){let a=new p.default;if("function"==typeof File&&e instanceof Blob)a.append("file",e,t);else{const i=new Blob([e]);try{a.append("file",i,t)}catch{a=new p.default,a.append("file",e,t)}}return a}async me(e){return e&&this.cachedMe||(this.cachedMe=await this.execute("get","/api/auth/me")),this.cachedMe}async getHomeFolder(){return this.execute("get","/api/auth/homefolder")}async myClients(){return this.execute("get","/api/auth/myclients")}async getCollabToken(){return this.execute("get","/api/auth/collabtoken")}async checkCollabToken(e){return this.execute("post","/api/auth/collabtoken",{token:e})}async register(e){return this.execute("post","/api/auth/register",e)}async deleteMyAccount(e){return this.execute("post","/api/auth/deletemyaccount",{password:e})}async confirmEmail(e){return this.execute("get","/api/auth/confirmemail/"+e)}async confirmEmailChange(e){return this.execute("get","/api/auth/confirmchangedemail/"+e)}async forgotPassword(e,t){return this.execute("post","/api/auth/forgotpassword",{account:e,client:t})}async setNewPassword(e,t){return this.execute("post","/api/auth/setnewpassword",{token:e,password:t})}async accountExists(e){return this.execute("post","/api/auth/accountExists",e)}async getItemsInFolderList(e,t=!1){if(e&&!t){const t=await this.folderCache.getItemListing(e);if(t)return t}const a=await this.execute("get","/api/item/infolder/"+(e||"0"));return await this.folderCache.addItemListing(e,a),a}async getItem(e,t){const a=[];t&&(t.returnClonedFrom&&a.push("returnClonedFrom=true"),t.withThumbnails&&a.push("withThumbnails=true"));let i="";return a.length&&(i=`?${a.join("&")}`),this.execute("get",`/api/item/${e}${i}`)}getItemAggregatedPOP(e,t){return this.usePublicApi?this.getItemPublicAggregated(e,t):this.getItemAggregated(e,t)}async getItemPublicAggregated(e,t){const a=ji(e);if(a)return a;const i=[];t&&(t.withFieldInstances&&i.push("withFieldInstances"),t.withAttachmentInfo&&i.push("withAttachmentInfo"),t.noAttributes&&i.push("noAttributes"),t.noUserAttributes&&i.push("noUserAttributes"),t.noFields&&i.push("noFields"),t.noThumbnails&&i.push("noThumbnails"),t.noLinks&&i.push("noLinks"));let n="";return i.length&&(n=`?${i.join("&")}`),ji(e)?ji(e):this.execute("get","/api/item/publicaggregate/"+e+n)}async getItemAggregated(e,t){const a=ji(e);if(a)return a;const i=[];t&&(t.withFieldInstances&&i.push("withFieldInstances"),t.withAttachmentInfo&&i.push("withAttachmentInfo"),t.noAttributes&&i.push("noAttributes"),t.noUserAttributes&&i.push("noUserAttributes"),t.noFields&&i.push("noFields"),t.noThumbnails&&i.push("noThumbnails"),t.noLinks&&i.push("noLinks"));let n="";return i.length&&(n=`?${i.join("&")}`),ji(e)?ji(e):this.execute("get",`/api/item/aggregate/${e}${n}`)}async getItemAggregatedRecursive(e,t){const a=[];t&&(t.withFieldInstances&&a.push("withFieldInstances"),t.withAttachmentInfo&&a.push("withAttachmentInfo"),t.noAttributes&&a.push("noAttributes"),t.noUserAttributes&&a.push("noUserAttributes"),t.noFields&&a.push("noFields"),t.noThumbnails&&a.push("noThumbnails"));let i="";return a.length&&(i=`?${a.join("&")}`),this.execute("get",`/api/item/aggregaterecursive/${e}${i}`)}async getItemPublicRecursive(e,t){return this.execute("get","/api/item/publicrecursive/"+e+(t?"?withFeatures":""))}async getItemPublic(e,t){return this.execute("get","/api/item/public/"+e+(t?"?returnClonedFrom=true":""))}async getItemHistory(e){return this.execute("get","/api/item/history/"+e)}async copyItems(e,t,a,i){return this.execute("post","/api/item/copy",{sourceItemIds:e,destFolderId:t,deepCopy:a,overwrite:i})}async createItem(e){return this.execute("post","/api/item",e)}async updateItem(e){return this.execute("put","/api/item",e)}async deleteItem(e){return this.execute("delete","/api/item",{id:e})}async renameItem(e,t){return this.updateItem({_id:e,name:t})}async queryPublicItemsList(e){return this.execute("post","/api/item/publicquery",e)}async queryItemsListPOP(e){return this.usePublicApi?this.queryPublicItemsList(e):this.queryItemsList(e)}async queryItemsList(e){return this.execute("post","/api/item/query",e)}async queryItemsListAsExcel(e){e.exportAsExcel=!0;const t=await this.execute("post","/api/item/query",e,{responseType:"arraybuffer"}),a=window.URL.createObjectURL(t.blob),i=document.createElement("a");i.href=a,i.setAttribute("download","export.xlsx"),i.click()}async moveItems(e){return this.execute("post","/api/item/move",e)}async downloadItem(e,t){const a=Li(e);return a||this.execute("get",`/api/item/download/${e}`,null,{responseType:"arraybuffer",progressCallback:t,opName:`Downloading item ${e}`})}async publicDownloadItem(e,t){const a=Li(e);return a||this.execute("get",`/api/item/publicdownload/${e}`,null,{responseType:"arraybuffer",progressCallback:t})}async getItemHash(e){const t=ji(e);return t?t.hash:this.execute("get",`/api/item/hash/${e}`)}async requestSecureDownload(e){return this.execute("get","/api/item/requestsecuredownload/"+e)}async getThumbnail(e,t){return this.execute("get",`/api/item/thumbnail/${e}/${t}`)}async uploadThumbnail(e,t,a,i,n,r){const s=this._createFormData(a,i);return this.execute("post",`/api/item/thumbnail/${t}/${e}`,s,{progressCallback:n,controller:r})}async getPublicThumbnail(e,t){return this.execute("get",`/api/item/publicthumbnail/${e}/${t}`)}async makeItemPublic(e,t,a){return this.execute("put","/api/item/makepublic",{id:e,recursive:t,inSubfolders:a})}async setVisibility(e,t,a,i){return this.execute("put","/api/item/setvisibility",{id:e,visibility:t,recursive:a,inSubfolders:i})}async makeItemPrivate(e,t,a){return this.execute("put","/api/item/makeprivate",{id:e,recursive:t,inSubfolders:a})}async setOmitLodGeneration(e,t){return this.execute("get",`/api/item/setOmitLodGeneration/${e}/${t}`)}async setOmitThumbnailGeneration(e,t){return this.execute("get",`/api/item/setOmitThumbnailGeneration/${e}/${t}`)}async setOmitPreviewGeneration(e,t){return this.execute("get",`/api/item/setOmitPreviewGeneration/${e}/${t}`)}async uploadAndCreate(e,t,a,i,n,r){const s=this._createFormData(t,a);let o=`/api/item/uploadAndCreate/${e}`,l={};return i&&("object"==typeof i?(i.autoDestructIn&&(o+="?autoDestructIn="+i.autoDestructIn),i.visibility&&(o+="?visibility="+i.visibility),i.flags&&(o+="?flags="+i.flags),i.overwrite&&(o+="?overwrite="+(i.overwrite?"true":"false")),i.nameOverride&&(l["x-override-name"]=i.nameOverride)):o+="?autoDestructIn="+i),this.execute("post",o,s,{progressCallback:n,controller:r,headers:l})}async upload(e,t,a,i,n,r){const s=[];r&&(r.omitHandleDependencyChange&&s.push("omitHandleDependencyChange=true"),r.keepThumbnails&&s.push("keepThumbnails=true"));let o="";s.length&&(o=`?${s.join("&")}`);const l=this._createFormData(t,a);return this.execute("post",`/api/item/upload/${e}${o}`,l,{progressCallback:i,controller:n})}resetPreview(e){const t=this.execute("delete",`/api/item/attachment/${e}/preview`),a=this.execute("get",`/api/item/setOmitPreviewGeneration/${e}/false`);return Promise.all([t,a])}clearPreview(e){const t=this.execute("delete",`/api/item/attachment/${e}/preview`),a=this.execute("get",`/api/item/setOmitPreviewGeneration/${e}/true`);return Promise.all([t,a])}async clearThumbnail(e){return this.execute("get",`/api/item/clearThumbnail/${e}`)}async resetThumbnail(e){return this.execute("get",`/api/item/resetThumbnail/${e}`)}async downloadAttachmentPOP(e,t,a,i,n){return this.usePublicApi?this.downloadPublicAttachment(e,t,a,i,n):this.downloadAttachment(e,t,a,i,n)}_getAttachmentUrlPath(e,t,a,i,n){return`/api/item/${n?"public":""}attachment/${e}/${t}${null!=a?`/${a}`:"/undefined"}${null!=i?`/${i}`:""}`}async downloadAttachment(e,t,a,i=0,n){const r=Yi(e,t,a,i);return r||this.execute("get",this._getAttachmentUrlPath(e,t,a,i),null,{responseType:"arraybuffer",progressCallback:n})}async downloadPublicAttachment(e,t,a,i,n){const r=Yi(e,t,a,i);return r||this.execute("get",this._getAttachmentUrlPath(e,t,a,i,!0),null,{responseType:"arraybuffer",progressCallback:n})}async uploadAttachment(e,t,a,i,n,r,s,o){const l=this._createFormData(n,r);return this.execute("post",this._getAttachmentUrlPath(e,t,a,i),l,{progressCallback:s,controller:o})}async deleteAttachment(e,t,a,i){return this.attachmentCache.invalidateAttachment(e,t,a,i),this.execute("delete",this._getAttachmentUrlPath(e,t,a,i))}setPerceptiveHashOnAttachment(e,t,a){return this.execute("get",`/api/item/setPerceptiveHashAttachment/${e}/${t}/${a}`)}setPerceptiveHash(e,t){return this.execute("get",`/api/item/setPerceptiveHash/${e}/${t}`)}async getItemClient(e){return this.execute("get",`/api/item/getClient/${e}`)}async getItemAcl(e){return this.execute("get",`/api/item/acl/${e}`)}async getItemsLinking(e){return this.execute("get",`/api/item/linking/${e}`)}async setAttributes(e,t){return this.execute("put","/api/item/setAttributes",{id:e,attributes:t})}async getItemSyncList(e){const t=W(e).format("YYYYMMDDHHmmss");return this.execute("get",`/api/item/synclist/${t}`)}async increaseViews(e){return this.execute("get",`/api/item/increaseViews/${e}`)}async getViews(e){return this.execute("get",`/api/item/views/${e}`)}async getPublicItemCounts(e){return this.execute("get",`/api/item/publiccounts/${e}`)}async getItemCounts(e){return this.execute("get",`/api/item/counts/${e}`)}async likeItem(e){return this.execute("get",`/api/item/like/${e}`)}async unlikeItem(e){return this.execute("get",`/api/item/unlike/${e}`)}async doILike(e){return this.execute("get",`/api/item/doILike/${e}`)}async setItemAutoDestruct(e,t){const a=W(t).format("YYYYMMDDHHmmss");return this.execute("get",`/api/item/setAutoDestruct/${e}/${a}`)}async clearItemAutoDestruct(e){return this.execute("get",`/api/item/clearAutoDestruct/${e}`)}async resolveRelativeItem(e,t){const a=ji(e);if(!a)return this.execute("post","/api/item/resolve/"+e,{path:t});t.startsWith("/")&&(t=t.substring(1));const i=t.split("/"),n=i.pop();let r=a.folder._id;for(const e of i){let t=!1;for(const[a,i]of Object.entries(Ri()))if(i.parent===r&&i.name===e){r=a,t=!0;break}if(!t)break}for(const e of Object.values($i()))if(e.folder._id===r&&e.name===n)return e._id;return console.error(`Could not resolve path ${t} for item ${e}`),null}async publicResolveRelativeItem(e,t){const a=ji(e);if(!a)return this.execute("post","/api/item/publicResolve/"+e,{path:t});t.startsWith("/")&&(t=t.substring(1));const i=t.split("/"),n=i.pop();let r=Pi(a.folder._id);for(const e of i)if(".."===e)r=Pi(r.parent);else{const t=Oi(e,r._id);if(!t)throw new Error("Can't find folder while loading folder from package");r=t}const s=Bi(n,r._id);if(s)return s._id;throw new Error("Can't load item from package.")}async rewireItems(e){return this.execute("post","/api/item/rewire",{items:e})}async getFolder(e){return this.execute("get","/api/folder/"+e)}async getFullFolderTree(e){return this.execute("get",`/api/folder/fulltree/${e||"0"}`)}async getFoldersInFolderList(e,t){e=e||"0";const a=[];let i="";if(t){if(t.resolveNames&&!t.folderAsItemType&&"0"!==e){if(i=await this.folderCache.getFolderListing(e),i&&Date.now()-new Date(i.cachedAt).getTime()<1e4)return i;i&&i.parent&&a.push(`lastUpdatedAt=${i.parent.updatedAt}`)}t.resolveNames&&a.push("resolve"),t.folderAsItemType&&a.push(`folderAsItemType=${t.folderAsItemType}`),t.folderAsItemName&&a.push(`folderAsItemName=${t.folderAsItemName}`),t.folderAsItemFlag&&a.push(`folderAsItemFlag=${t.folderAsItemFlag}`),t.withStats&&a.push("withStats=true"),t.returnLatestPackage&&a.push("returnLatestPackage=true")}let n="";a.length&&(n="?"+a.join("&"));const r=await this.execute("get",`/api/folder/infolder/${e}${n}`);if(!0===r.notModified)return i;if(!t||t.resolveNames&&!t.folderAsItemType){const t=await this.getFolderAclList([e,...r.children.map((e=>e._id))]);for(const e of t)await this.folderCache.addACL(e.id,e.acl);return await this.folderCache.addFolderListing(e,r),r}return r}async updateFolderCache(e){const t=[];for(const a of e){if(!a)continue;const e=await this.folderCache.getFolderListing(a);e&&e.parent?t.push({id:a,lastUpdatedAt:e.parent.updatedAt}):t.push({id:a})}const a=await this.execute("post","/api/folder/infolderquery",{folders:t});for(const e of a)!0===e.data.notModified?await this.folderCache.refreshCacheForFolder(e.id):await this.folderCache.addFolderListing(e.id,e.data)}async createFolder(e){return this.execute("post","/api/folder",e)}async updateFolder(e){return this.execute("put","/api/folder",e)}async deleteFolder(e){return this.execute("delete","/api/folder",{id:e})}async renameFolder(e,t){return this.updateFolder({_id:e,name:t})}async moveFolders(e){return this.execute("post","/api/folder/move",e)}async getFolderPath(e){return e?("object"==typeof e&&(e=e._id),this.execute("get","/api/folder/path/"+e)):{path:"/",elements:[]}}async resolveFolderPath(e){return"/"===(e=e.trim())?null:this.execute("post","/api/folder/resolve",{path:e})}async getFolderClient(e){return this.execute("get",`/api/folder/getClient/${e}`)}async getFolderAcl(e){const t=await this.folderCache.getFolderACLs(e||"0",1e4);if(t&&e)return t;{const t=await this.execute("get",`/api/folder/acl/${e||"0"}`);return await this.folderCache.addACL(e||"0",t),t}}async getFolderAclList(e){return this.execute("post","/api/folder/aclquery",{ids:e})}async getUser(e){return this.execute("get","/api/user/"+e)}async getUsersList(){return this.execute("get","/api/user")}async createUser(e){return this.execute("post","/api/user",e)}async queryUser(e,t,a){return this.execute("post","/api/user/query",{searchQuery:e,groupID:t,cursor:a},{withNext:!0})}async updateUser(e){return this.execute("put","/api/user",e)}async deleteUser(e){return this.execute("delete","/api/user",{id:e})}async updateMyProfile(e){return this.execute("put","/api/user/myprofile",e)}async switchClient(e){return this.execute("get",`/api/user/switchclient/${e}`)}async activateUser(e,t){return this.execute("post","/api/user/activate",{token:t,password:e})}async getUsersToApprove(){return this.execute("get","/api/user/approvals")}async approveUserRegistration(e){return this.execute("get",`/api/user/approveuserregistration/${e}`)}async rejectUserRegistration(e){return this.execute("get",`/api/user/rejectuserregistration/${e}`)}async uploadAvatar(e){const t=new p.default;if(e instanceof Blob)t.append("file",e);else{const a=new Blob([new Uint8Array(e)]);t.append("file",a,"avatar.jpg")}return this.execute("post","/api/user/uploadAvatar",t)}async clearAvatar(){return this.execute("get","/api/user/clearAvatar")}async getAvatar(e,t){return this.execute("get",`/api/user/avatar/${t}/${e}`)}async getUserPublicInfo(e,t,a){return this.execute("get",`/api/user/publicinfo/${e}/${t}/${a}`)}async getUserAttribute(e){return this.execute("get",`/api/user/attribute/${e}`)}async clearUserAttribute(e){return this.execute("delete",`/api/user/attribute/${e}`)}async setUserAttribute(e,t){return this.execute("post",`/api/user/attribute/${e}`,t)}async getGroup(e){return this.execute("get","/api/group/"+e)}async getGroupFolder(e){return this.execute("get","/api/group/folder/"+e)}async getGroupsList(){return this.execute("get","/api/group")}async createGroup(e){return this.execute("post","/api/group",e)}async queryGroup(e,t){return this.execute("post","/api/group/query",{searchQuery:e,cursor:t},{withNext:!0})}async updateGroup(e){return this.execute("put","/api/group",e)}async deleteGroup(e){return this.execute("delete","/api/group",{id:e})}async getGroupQuotaInfo(e){return this.execute("get","/api/group/quota/"+e)}async getGroupPublicInfo(e,t,a){return this.execute("get",`/api/group/publicinfo/${e}/${t}/${a}`)}async getGroupUsers(e){return this.execute("get","/api/group/users/"+e)}async uploadGroupAvatar(e,t){const a=new p.default;if(t instanceof Blob)a.append("file",t);else{const e=new Blob([new Uint8Array(t)]);a.append("file",e,"avatar.jpg")}return this.execute("post","/api/group/"+e+"/uploadAvatar",a)}async getClientsList(){return this.execute("get","/api/client")}async getClient(e){return this.execute("get",`/api/client/${e}`)}async createClient(e){return this.execute("post","/api/client",e)}async queryClient(e,t){return this.execute("post","/api/client/query",{searchQuery:e,cursor:t},{withNext:!0})}async updateClient(e){return this.execute("put","/api/client",e)}async deleteClient(e){return this.execute("delete","/api/client",{id:e})}async getClientMetrics(e,t,a){return this.execute("get",`/api/client/metrics/${t}/${a}/${e}`)}async joinClient(e){return this.execute("get",`/api/client/join/${e}`)}async leaveClient(e){return this.execute("get",`/api/client/leave/${e}`)}async myClient(){return this.execute("get","/api/client/my")}async saveMyClient(e){return this.execute("put","/api/client/my",e)}async getPublicCategories(e){return this.execute("get",`/api/client/publiccategories/${e}`)}async getCategories(){return this.execute("get","/api/client/categories")}async getCategoriesInClient(e){return this.execute("get",`/api/client/categories/${e}`)}async updateCategoriesInClient(e,t){return this.execute("post",`/api/client/categories/${e}`,t)}async getLicenses(){return this.execute("get","/api/license")}async getLicensesInClient(e){return this.execute("get",`/api/license/inclient/${e}`)}async getLicense(e){return this.execute("get",`/api/license/${e}`)}async createLicense(e){return this.execute("post","/api/license",e)}async updateLicense(e){return this.execute("put","/api/license",e)}async deleteLicense(e,t){return this.execute("delete","/api/license",{_id:e,client:t})}async getPublicLicenses(e){return this.execute("get",`/api/license/publiclist/${e}`)}async getPublicLicense(e){return this.execute("get",`/api/license/public/${e}`)}async getDatatypesList(){return this.execute("get","/api/datatype")}async getPublicDatatypesList(e){return this.execute("get",`/api/datatype/public/${e}`)}async getDatatypesListOnClient(){return this.execute("get","/api/datatype/onclient")}async getDatatypesListOnClientForAll(){return this.execute("get","/api/datatype/onclientforall")}async getAllDatatypesList(){return this.execute("get","/api/datatype/all")}async getDatatype(e){return this.execute("get",`/api/datatype/${e}`)}async createDatatype(e){return this.execute("post","/api/datatype",e)}async updateDatatype(e){return this.execute("put","/api/datatype",e)}async deleteDatatype(e){return this.execute("delete","/api/datatype",{id:e})}async getMyNotifications(e){return this.execute("get","/api/notification"+(e?`?maxCount=${e}`:""))}async markNotificationAsRead(e){return this.execute("get",`/api/notification/markasread/${e}`)}async markAllNotificationsAsRead(){return this.execute("get","/api/notification/markallasread")}async createJob(e){return this.execute("post","/api/job",e,{emitOnSuccess:"job:created"})}async getManualJobTypes(){return this.execute("get","/api/job/manualtypes")}async getManualJobTypesOnClient(){return this.execute("get","/api/job/manualtypes/onclient")}async getManualJobTypesOnClientForAll(){return this.execute("get","/api/job/manualtypes/onclientforall")}async getAllManualJobTypes(){return this.execute("get","/api/job/manualtypes/all")}async getAllManualJobTypesForClient(e){return this.execute("get",`/api/job/manualtypes/all/${e}`)}async getClientJobTypes(){return this.execute("get","/api/job/clientTypes")}async getMyJobs(){return this.execute("get","/api/job/mine")}async getJobs(){return this.execute("get","/api/job")}async getJobsAggregated(){return this.execute("get","/api/job/aggregated")}async getJobsTimeframe(e,t){return this.execute("get",`/api/job/all/${e}/${t}`)}async getJob(e){return this.execute("get",`/api/job/${e}`)}async getJobState(e){return this.execute("get",`/api/job/state/${e}`)}async getAgents(){return this.execute("get","/api/jobagent")}async getAgentsAggregated(){return this.execute("get","/api/jobagent/aggregated")}async enableJobAgent(e){return this.execute("get",`/api/jobagent/enable/${e}`)}async disableJobAgent(e){return this.execute("get",`/api/jobagent/disable/${e}`)}async restartJobAgent(e){return this.execute("get",`/api/jobagent/restart/${e}`)}async getPermissionsList(){return this.execute("get","/api/permission")}async getPlugins(){return this.execute("get","/api/plugin")}async getPlans(){return this.execute("get","/api/plan")}async getPlan(e){return this.execute("get",`/api/plan/${e}`)}async createPlan(e){return this.execute("post","/api/plan",e)}async updatePlan(e){return this.execute("put","/api/plan",e)}async deletePlan(e){return this.execute("delete","/api/plan",{id:e})}async getWorkflows(){return this.execute("get","/api/workflow")}async getWorkflow(e){return this.execute("get",`/api/workflow/${e}`)}async createWorkflow(e){return this.execute("post","/api/workflow",e)}async updateWorkflow(e){return this.execute("put","/api/workflow",e)}async deleteWorkflow(e){return this.execute("delete","/api/workflow",{id:e})}async startWorkflow(e){return this.execute("post","/api/workflow/start",e)}async getAccessTokens(){return this.execute("get","/api/accesstoken")}async getClientAccessTokens(){return this.execute("get","/api/accesstoken/client")}async createAccessToken(e){return this.execute("post","/api/accesstoken",e)}async createClientAccessToken(e){return this.execute("post","/api/accesstoken/client",e)}async deleteAccessToken(e){return this.execute("delete","/api/accesstoken",{id:e})}async deleteClientAccessToken(e){return this.execute("delete","/api/accesstoken/client",{id:e})}async enableAccessToken(e){return this.execute("get",`/api/accesstoken/enable/${e}`)}async disableAccessToken(e){return this.execute("get",`/api/accesstoken/disable/${e}`)}async getApiTokens(){return this.execute("get","/api/apitoken")}async createApiToken(e){return this.execute("post","/api/apitoken",e)}async deleteApiToken(e){return this.execute("delete","/api/apitoken",{id:e})}async getMyClientInvoices(){return this.execute("get","/api/invoice")}async getMyUserInvoices(){return this.execute("get","/api/invoice/my")}async getClientInvoices(e){return this.execute("get",`/api/invoice/client/${e}`)}async downloadInvoice(e,t){const a=await this.execute("get",`/api/invoice/download/${e}`,null,{responseType:"arraybuffer"}),i=window.URL.createObjectURL(a.blob),n=document.createElement("a");n.href=i,n.setAttribute("download",t||"invoice.pdf"),document.body.appendChild(n),n.click()}async regenerateInvoice(e){return this.execute("get",`/api/invoice/regenerate/${e}`)}async getInvoicesForMonth(e,t){return this.execute("get",`/api/invoice/month/${t}/${e}`)}async refundInvoice(e,t,a){return this.execute("post","/api/invoice/refund",{invoice:e,amount:t,reason:a})}async paymentStartCheckout(e,t){return this.execute("post","/api/payment/checkout",{successUrl:e,cancelUrl:t})}async paymentStartUserCheckout(e,t){return this.execute("post","/api/payment/usercheckout",{successUrl:e,cancelUrl:t})}async getSupportedCurrencies(){return this.execute("get","/api/payment/supportedCurrencies")}async getPurchasables(){return this.execute("get","/api/purchasable")}async getPurchasable(e){return this.execute("get",`/api/purchasable/${e}`)}async createPurchasable(e){return this.execute("post","/api/purchasable",e)}async updatePurchasable(e){return this.execute("put","/api/purchasable",e)}async deletePurchasable(e){return this.execute("delete","/api/purchasable",{id:e})}async getPublicPurchasables(e){return this.execute("get",`/api/purchasable/public/${e}`)}async getPurchases(){return this.execute("get","/api/purchase")}async getMyActivePurchases(){return this.execute("get","/api/purchase/active")}async purchase(e){return this.execute("post","/api/purchase",e)}async changePurchaseProduct(e,t,a){return this.execute("post","/api/purchase/change",{purchaseID:e,purchasableID:t,optionID:a})}async cancelPurchase(e){return this.execute("delete","/api/purchase",{id:e})}async uncancelPurchase(e){return this.execute("post","/api/purchase/uncancel",{id:e})}async getSecureSessionPayload(e,t){return this.execute("get","/api/payment/secureSessionPayload?purchasableID="+e+"&optionID="+t)}async queryPurchases(e,t,a,i,n,r){return this.execute("post","/api/purchase/query",{startDate:e,endDate:t,email:a,invoice:i,cursor:n,limit:r})}async getAttributeTemplates(){return this.execute("get","/api/attributetemplate")}async getAttributeTemplate(e){return this.execute("get",`/api/attributetemplate/${e}`)}async createAttributeTemplate(e){return this.execute("post","/api/attributetemplate",e)}async updateAttributeTemplate(e){return this.execute("put","/api/attributetemplate",e)}async deleteAttributeTemplate(e){return this.execute("delete","/api/attributetemplate",{id:e})}async getStorages(){return this.execute("get","/api/storage")}async getConversation(e){return this.execute("get",`/api/conversation/${e}`)}async getPublicConversation(e){return this.execute("get",`/api/conversation/public/${e}`)}async createConversation(e,t){return this.execute("post","/api/conversation",{parentId:e,parentType:t})}async postConversationMessage(e,t,a){return this.execute("post","/api/conversation/post",{id:e,text:t,replyTo:a})}async editConversationMessage(e,t){return this.execute("put","/api/conversation/post",{id:e,text:t})}async deleteConversationMessage(e){return this.execute("delete","/api/conversation/post",{id:e})}async subscribeToConversation(e){return this.execute("post","/api/conversation/subscribe",{id:e})}async unsubscribeFromConversation(e){return this.execute("post","/api/conversation/unsubscribe",{id:e})}async likeConversationEntry(e){return this.execute("post","/api/conversation/like",{id:e})}async unlikeConversationEntry(e){return this.execute("post","/api/conversation/unlike",{id:e})}async command(e){return this.execute("post","/api/command",e)}async getMailTemplates(){return this.execute("get","/api/mailtemplate")}async getMailTemplate(e){return this.execute("get",`/api/mailtemplate/${e}`)}async createMailTemplate(e){return this.execute("post","/api/mailtemplate",e)}async updateMailTemplate(e){return this.execute("put","/api/mailtemplate",e)}async deleteMailTemplate(e){return this.execute("delete","/api/mailtemplate",{id:e})}async addMailTemplateImage(e,t,a){const i=this._createFormData(a,"image.jpg");return this.execute("post",`/api/mailtemplate/image/${e}/${t}`,i)}async deleteMailTemplateImage(e,t){return this.execute("delete",`/api/mailtemplate/image/${e}/${t}`)}async getMailTemplateNames(){return this.execute("get","/api/mailtemplate/names")}async getMailQuery(e,t,a,i){return this.execute("post","/api/email/query",{templateName:e,dateStart:t,dateEnd:a,success:i},{withNext:!0})}async getMail(e){return this.execute("get","/api/email/get?token="+e)}async getInvoiceTemplates(){return this.execute("get","/api/invoicetemplate")}async getInvoiceTemplate(e){return this.execute("get",`/api/invoicetemplate/${e}`)}async createInvoiceTemplate(e){return this.execute("post","/api/invoicetemplate",e)}async updateInvoiceTemplate(e){return this.execute("put","/api/invoicetemplate",e)}async deleteInvoiceTemplate(e){return this.execute("delete","/api/invoicetemplate",{id:e})}async addInvoiceTemplateImage(e,t,a){const i=this._createFormData(a,"image.jpg");return this.execute("post",`/api/invoicetemplate/image/${e}/${t}`,i)}async deleteInvoiceTemplateImage(e,t){return this.execute("delete",`/api/invoicetemplate/image/${e}/${t}`)}async getItemTemplatesList(){return this.execute("get","/api/itemtemplate/list")}async getItemTemplates(){return this.execute("get","/api/itemtemplate")}async createItemTemplate(e){return this.execute("post","/api/itemtemplate",e)}async updateItemTemplate(e){return this.execute("put","/api/itemtemplate",e)}async deleteItemTemplate(e){return this.execute("delete","/api/itemtemplate",{id:e})}async getFeatures(){return this.execute("get","/api/feature")}async getFeaturesOnClient(){return this.execute("get","/api/feature/onclient")}async getFeaturesOnClientForAll(){return this.execute("get","/api/feature/onclientforall")}async getAllFeatures(){return this.execute("get","/api/feature/all")}async getBlogs(){return this.execute("get","/api/blog")}async getBlog(e){return this.execute("get","/api/blog/"+e)}async getPublicBlog(e){return this.execute("get","/api/blog/"+e+"/public")}async createBlog(e,t,a,i){return this.execute("post","/api/blog",{name:e,public:t,commentsEnabled:a,editors:i})}async saveBlog(e,t,a,i,n){return this.execute("put","/api/blog",{_id:e,name:t,public:a,commentsEnabled:i,editors:n})}async deleteBlog(e){return this.execute("delete","/api/blog",{_id:e})}async getBlogOverview(e){return this.execute("get","/api/blog/"+e+"/overview")}async queryBlog(e,t,a,i,n,r,s){return this.execute("post","/api/blog/"+e+"/query",{tag:t,text:a,limit:i,previousArticle:n,searchTag:r,sortBy:s})}async getArticles(e){return this.execute("get","/api/blog/"+e+"/article")}async getArticle(e,t){return this.execute("get","/api/blog/"+e+"/article/"+t)}async getArticleBySlug(e,t){return this.execute("get","/api/blog/article/"+e+"/"+t)}async createArticle(e,t,a){return this.execute("post","/api/blog/"+e+"/article",{title:t,slug:a})}async saveArticle(e,t,a,i,n,r,s,o){return this.execute("put","/api/blog/"+e+"/article",{_id:t,title:a,slug:i,content:o,tags:r,public:n,author:s})}async deleteArticle(e,t){return this.execute("delete","/api/blog/"+e+"/article",{_id:t})}async getNewsletters(){return this.execute("get","/api/newsletter")}async createNewsletter(e,t){return this.execute("post","/api/newsletter",{name:e,editors:t})}async getNewsletter(e){return this.execute("get","/api/newsletter/"+e)}async updateNewsletter(e,t,a,i){return this.execute("put","/api/newsletter/"+e,{name:t,sender:a,editors:i})}async deleteNewsletter(e){return this.execute("delete","/api/newsletter/"+e)}async joinNewsletter(e,t){return this.execute("post","/api/newsletter/join",{id:e,email:t})}async confirmNewsletter(e){return this.execute("post","/api/newsletter/confirm",{token:e})}async unsubscribeFromNewsletter(e){return this.execute("post","/api/newsletter/unsubscribe",{token:e})}async getNewsletterBlocks(){return this.execute("get","/api/newsletterblock")}async getNewsletterBlock(e){return this.execute("get","/api/newsletterblock/"+e)}async createNewsletterBlock(e){return this.execute("post","/api/newsletterblock",{name:e})}async updateNewsletterBlock(e,t,a,i,n,r){return this.execute("put","/api/newsletterblock/"+e,{name:t,inputs:a,html:i,css:n,acceptsChildren:r})}async deleteNewsletterBlock(e){return this.execute("delete","/api/newsletterblock/"+e)}async getNewsletterMails(e){return this.execute("get","/api/newslettermail/"+e)}async getNewsletterMail(e,t){return this.execute("get","/api/newslettermail/"+e+"/"+t)}async createNewsletterMail(e,t){return this.execute("post","/api/newslettermail/"+e,{title:t})}async updateNewsletterMail(e,t,a,i,n){return this.execute("put","/api/newslettermail/"+e+"/"+t,{title:a,blocks:i,parentBlock:n})}async generatePreviewNewsletterMail(e,t){return this.execute("post","/api/newslettermail/render",{blocks:e,parentBlock:t})}async sendTestNewsletter(e,t,a){return this.execute("post","/api/newslettermail/"+e+"/"+t+"/sendTest",{email:a})}async sendOutNewsletter(e,t){return this.execute("post","/api/newslettermail/"+e+"/"+t+"/send",{})}async getPages(){return this.execute("get","/api/page")}async createPage(e,t){return this.execute("post","/api/page",{title:e,slug:t})}async getPage(e){return this.execute("get","/api/page/"+e)}async updatePage(e,t,a,i,n){return this.execute("put","/api/page",{_id:e,title:t,slug:a,public:i,content:n})}async deletePage(e){return this.execute("delete","/api/page",{_id:e})}async getPublicPage(e,t){return this.execute("get","/api/page/public/"+e+"/"+t)}async setItemFlag(e,t,a,i,n,r){return this.execute("post","/api/itemflag",{item:e,isStaffPick:t,featureWeight:a,isGame:i,replaceIndex:n,internalRating:r})}getDownloadUrl(e){return`${this.getApiBaseUrl()}/api/item/download/${e}`}getAttachmentDownloadUrl(e,t,a,i){return`${this.getApiBaseUrl()}${this._getAttachmentUrlPath(e,t,a,i)}`}getPublicAttachmentDownloadUrl(e,t,a,i){return`${this.getApiBaseUrl()}${this._getAttachmentUrlPath(e,t,a,i,!0)}`}getPublicDownloadUrl(e){return`${this.getApiBaseUrl()}/api/item/publicdownload/${e}`}async postFeedback(e){return this.execute("post","/api/feedback",{text:e})}},exports.ApiGateway=H,exports.Block=ce,exports.CustomField=ne,exports.EventEmitter=m,exports.Field=ie,exports.InvalidArgumentException=M,exports.InvalidStateException=class extends T{constructor(e){super(e,"InvalidStateException")}},exports.Item=E,exports.ItemCache=zn,exports.ItemRepo=Ki,exports.ItemVisibility=wc,exports.LinkableItemsCache=class{linkableItemsCache;apiGateway;itemCache;usePublicApi;constructor(e,t,a=!1){this.linkableItemsCache=new Map,this.apiGateway=e,this.itemCache=t,this.usePublicApi=a}clear(){this.linkableItemsCache.clear()}resolveItem(e,t){for(const a of t)if(a._id===e)return a;return null}async loadLinkableItems(e,t){if(!e)throw"loadLinkableItems(): Item cannot be null!";let a=[];if(t.linkableTypes&&t.linkableTypes.length){if(!this.usePublicApi){const i=t.linkableTypes.join("#")+(e.folder?e.folder._id:"");if(this.linkableItemsCache.has(i))return this.linkableItemsCache.get(i);const n=[...t.linkableTypes];n.includes("Package")||n.push("Package");const r={types:n,folder:e.folder?e.folder._id:null};a=(await this.apiGateway.call("LinkableItemsCache::loadLinkableItems","queryItemsList",r)).filter((e=>"Package"!==e.type||t.linkableTypes.includes(e.packageType)));for(const i of e.links)if(null==this.resolveItem(i.to,a))try{const e=await this.itemCache.getItem(i.to);t.linkableTypes.includes(e.type)&&a.push(e)}catch(e){console.error(`Link item ${i.to} not found. Dead link? (${e})`)}this.linkableItemsCache.set(i,a)}}else{for(const t of e.links){const e=await this.itemCache.getItem(t.to);a.push(e)}const i=t.name+"#CurrentLinks";this.linkableItemsCache.set(i,a)}return a}},exports.LoaderException=C,exports.PackageTools=Gi,exports.PreparedItem=re,exports.Profiler=x,exports.Proxifier=S,exports.ProxyEvent=g,exports.QuotaExceededException=I,exports.Script=X,exports.ScriptField=J,exports.Snapshot=G,exports.Storage=sn,exports.Template=oe,exports.TemplateFactory=le,exports.ThumbCache=Hn,exports.UndoManager=Zi,exports.eventBus=y,exports.getDatatypeByName=R,exports.getDatatypes=function(){return structuredClone(L)},exports.hasPermission=function(e,t,a){if(e.admin&&!a)return!0;if(e.superadmin)return!0;if(Array.isArray(e.permissions))if(Array.isArray(t)){for(const a of e.permissions)for(const e of t)if(a===e)return!0}else for(const a of e.permissions)if(a===t)return!0;return!1},exports.profileAsyncBlock=async function(e,t){return x.instance.asyncBlock(e,t)},exports.profileBlock=function(e,t){return x.instance.block(e,t)},exports.tools=_,exports.verifyAcl=se;
18
+ */var en=(Xi||(Xi=1,Qi.exports=function e(t,a,i){function n(s,o){if(!a[s]){if(!t[s]){if(!o&&B)return B(s);if(r)return r(s,!0);var l=new Error("Cannot find module '"+s+"'");throw l.code="MODULE_NOT_FOUND",l}var u=a[s]={exports:{}};t[s][0].call(u.exports,(function(e){var a=t[s][1][e];return n(a||e)}),u,u.exports,e,t,a,i)}return a[s].exports}for(var r=B,s=0;s<i.length;s++)n(i[s]);return n}({1:[function(e,t,a){(function(e){var a,i,n=e.MutationObserver||e.WebKitMutationObserver;if(n){var r=0,s=new n(c),o=e.document.createTextNode("");s.observe(o,{characterData:!0}),a=function(){o.data=r=++r%2}}else if(e.setImmediate||void 0===e.MessageChannel)a="document"in e&&"onreadystatechange"in e.document.createElement("script")?function(){var t=e.document.createElement("script");t.onreadystatechange=function(){c(),t.onreadystatechange=null,t.parentNode.removeChild(t),t=null},e.document.documentElement.appendChild(t)}:function(){setTimeout(c,0)};else{var l=new e.MessageChannel;l.port1.onmessage=c,a=function(){l.port2.postMessage(0)}}var u=[];function c(){var e,t;i=!0;for(var a=u.length;a;){for(t=u,u=[],e=-1;++e<a;)t[e]();a=u.length}i=!1}function d(e){1!==u.push(e)||i||a()}t.exports=d}).call(this,void 0!==P?P:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],2:[function(e,t,a){var i=e(1);function n(){}var r={},s=["REJECTED"],o=["FULFILLED"],l=["PENDING"];function u(e){if("function"!=typeof e)throw new TypeError("resolver must be a function");this.state=l,this.queue=[],this.outcome=void 0,e!==n&&h(this,e)}function c(e,t,a){this.promise=e,"function"==typeof t&&(this.onFulfilled=t,this.callFulfilled=this.otherCallFulfilled),"function"==typeof a&&(this.onRejected=a,this.callRejected=this.otherCallRejected)}function d(e,t,a){i((function(){var i;try{i=t(a)}catch(t){return r.reject(e,t)}i===e?r.reject(e,new TypeError("Cannot resolve promise with itself")):r.resolve(e,i)}))}function p(e){var t=e&&e.then;if(e&&("object"==typeof e||"function"==typeof e)&&"function"==typeof t)return function(){t.apply(e,arguments)}}function h(e,t){var a=!1;function i(t){a||(a=!0,r.reject(e,t))}function n(t){a||(a=!0,r.resolve(e,t))}function s(){t(n,i)}var o=f(s);"error"===o.status&&i(o.value)}function f(e,t){var a={};try{a.value=e(t),a.status="success"}catch(e){a.status="error",a.value=e}return a}function m(e){return e instanceof this?e:r.resolve(new this(n),e)}function y(e){var t=new this(n);return r.reject(t,e)}function g(e){var t=this;if("[object Array]"!==Object.prototype.toString.call(e))return this.reject(new TypeError("must be an array"));var a=e.length,i=!1;if(!a)return this.resolve([]);for(var s=new Array(a),o=0,l=-1,u=new this(n);++l<a;)c(e[l],l);return u;function c(e,n){function l(e){s[n]=e,++o!==a||i||(i=!0,r.resolve(u,s))}t.resolve(e).then(l,(function(e){i||(i=!0,r.reject(u,e))}))}}function b(e){var t=this;if("[object Array]"!==Object.prototype.toString.call(e))return this.reject(new TypeError("must be an array"));var a=e.length,i=!1;if(!a)return this.resolve([]);for(var s=-1,o=new this(n);++s<a;)l(e[s]);return o;function l(e){t.resolve(e).then((function(e){i||(i=!0,r.resolve(o,e))}),(function(e){i||(i=!0,r.reject(o,e))}))}}t.exports=u,u.prototype.catch=function(e){return this.then(null,e)},u.prototype.then=function(e,t){if("function"!=typeof e&&this.state===o||"function"!=typeof t&&this.state===s)return this;var a=new this.constructor(n);return this.state!==l?d(a,this.state===o?e:t,this.outcome):this.queue.push(new c(a,e,t)),a},c.prototype.callFulfilled=function(e){r.resolve(this.promise,e)},c.prototype.otherCallFulfilled=function(e){d(this.promise,this.onFulfilled,e)},c.prototype.callRejected=function(e){r.reject(this.promise,e)},c.prototype.otherCallRejected=function(e){d(this.promise,this.onRejected,e)},r.resolve=function(e,t){var a=f(p,t);if("error"===a.status)return r.reject(e,a.value);var i=a.value;if(i)h(e,i);else{e.state=o,e.outcome=t;for(var n=-1,s=e.queue.length;++n<s;)e.queue[n].callFulfilled(t)}return e},r.reject=function(e,t){e.state=s,e.outcome=t;for(var a=-1,i=e.queue.length;++a<i;)e.queue[a].callRejected(t);return e},u.resolve=m,u.reject=y,u.all=g,u.race=b},{1:1}],3:[function(e,t,a){(function(t){"function"!=typeof t.Promise&&(t.Promise=e(2))}).call(this,void 0!==P?P:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{2:2}],4:[function(e,t,a){var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function r(){try{if("undefined"!=typeof indexedDB)return indexedDB;if("undefined"!=typeof webkitIndexedDB)return webkitIndexedDB;if("undefined"!=typeof mozIndexedDB)return mozIndexedDB;if("undefined"!=typeof OIndexedDB)return OIndexedDB;if("undefined"!=typeof msIndexedDB)return msIndexedDB}catch(e){return}}var s=r();function o(){try{if(!s||!s.open)return!1;var e="undefined"!=typeof openDatabase&&/(Safari|iPhone|iPad|iPod)/.test(navigator.userAgent)&&!/Chrome/.test(navigator.userAgent)&&!/BlackBerry/.test(navigator.platform),t="function"==typeof fetch&&-1!==fetch.toString().indexOf("[native code");return(!e||t)&&"undefined"!=typeof indexedDB&&"undefined"!=typeof IDBKeyRange}catch(e){return!1}}function l(e,t){e=e||[],t=t||{};try{return new Blob(e,t)}catch(n){if("TypeError"!==n.name)throw n;for(var a=new("undefined"!=typeof BlobBuilder?BlobBuilder:"undefined"!=typeof MSBlobBuilder?MSBlobBuilder:"undefined"!=typeof MozBlobBuilder?MozBlobBuilder:WebKitBlobBuilder),i=0;i<e.length;i+=1)a.append(e[i]);return a.getBlob(t.type)}}"undefined"==typeof Promise&&e(3);var u=Promise;function c(e,t){t&&e.then((function(e){t(null,e)}),(function(e){t(e)}))}function d(e,t,a){"function"==typeof t&&e.then(t),"function"==typeof a&&e.catch(a)}function p(e){return"string"!=typeof e&&(console.warn(e+" used as a key, but it is not a string."),e=String(e)),e}function h(){if(arguments.length&&"function"==typeof arguments[arguments.length-1])return arguments[arguments.length-1]}var f="local-forage-detect-blob-support",m=void 0,y={},g=Object.prototype.toString,b="readonly",v="readwrite";function _(e){for(var t=e.length,a=new ArrayBuffer(t),i=new Uint8Array(a),n=0;n<t;n++)i[n]=e.charCodeAt(n);return a}function w(e){return new u((function(t){var a=e.transaction(f,v),i=l([""]);a.objectStore(f).put(i,"key"),a.onabort=function(e){e.preventDefault(),e.stopPropagation(),t(!1)},a.oncomplete=function(){var e=navigator.userAgent.match(/Chrome\/(\d+)/),a=navigator.userAgent.match(/Edge\//);t(a||!e||parseInt(e[1],10)>=43)}})).catch((function(){return!1}))}function A(e){return"boolean"==typeof m?u.resolve(m):w(e).then((function(e){return m=e}))}function k(e){var t=y[e.name],a={};a.promise=new u((function(e,t){a.resolve=e,a.reject=t})),t.deferredOperations.push(a),t.dbReady?t.dbReady=t.dbReady.then((function(){return a.promise})):t.dbReady=a.promise}function S(e){var t=y[e.name].deferredOperations.pop();if(t)return t.resolve(),t.promise}function N(e,t){var a=y[e.name].deferredOperations.pop();if(a)return a.reject(t),a.promise}function x(e,t){return new u((function(a,i){if(y[e.name]=y[e.name]||R(),e.db){if(!t)return a(e.db);k(e),e.db.close()}var n=[e.name];t&&n.push(e.version);var r=s.open.apply(s,n);t&&(r.onupgradeneeded=function(t){var a=r.result;try{a.createObjectStore(e.storeName),t.oldVersion<=1&&a.createObjectStore(f)}catch(a){if("ConstraintError"!==a.name)throw a;console.warn('The database "'+e.name+'" has been upgraded from version '+t.oldVersion+" to version "+t.newVersion+', but the storage "'+e.storeName+'" already exists.')}}),r.onerror=function(e){e.preventDefault(),i(r.error)},r.onsuccess=function(){var t=r.result;t.onversionchange=function(e){e.target.close()},a(t),S(e)}}))}function T(e){return x(e,!1)}function M(e){return x(e,!0)}function V(e,t){if(!e.db)return!0;var a=!e.db.objectStoreNames.contains(e.storeName),i=e.version<e.db.version,n=e.version>e.db.version;if(i&&(e.version!==t&&console.warn('The database "'+e.name+"\" can't be downgraded from version "+e.db.version+" to version "+e.version+"."),e.version=e.db.version),n||a){if(a){var r=e.db.version+1;r>e.version&&(e.version=r)}return!0}return!1}function C(e){return new u((function(t,a){var i=new FileReader;i.onerror=a,i.onloadend=function(a){var i=btoa(a.target.result||"");t({__local_forage_encoded_blob:!0,data:i,type:e.type})},i.readAsBinaryString(e)}))}function I(e){return l([_(atob(e.data))],{type:e.type})}function F(e){return e&&e.__local_forage_encoded_blob}function E(e){var t=this,a=t._initReady().then((function(){var e=y[t._dbInfo.name];if(e&&e.dbReady)return e.dbReady}));return d(a,e,e),a}function D(e){k(e);for(var t=y[e.name],a=t.forages,i=0;i<a.length;i++){var n=a[i];n._dbInfo.db&&(n._dbInfo.db.close(),n._dbInfo.db=null)}return e.db=null,T(e).then((function(t){return e.db=t,V(e)?M(e):t})).then((function(i){e.db=t.db=i;for(var n=0;n<a.length;n++)a[n]._dbInfo.db=i})).catch((function(t){throw N(e,t),t}))}function L(e,t,a,i){void 0===i&&(i=1);try{var n=e.db.transaction(e.storeName,t);a(null,n)}catch(n){if(i>0&&(!e.db||"InvalidStateError"===n.name||"NotFoundError"===n.name))return u.resolve().then((function(){if(!e.db||"NotFoundError"===n.name&&!e.db.objectStoreNames.contains(e.storeName)&&e.version<=e.db.version)return e.db&&(e.version=e.db.version+1),M(e)})).then((function(){return D(e).then((function(){L(e,t,a,i-1)}))})).catch(a);a(n)}}function R(){return{forages:[],db:null,dbReady:null,deferredOperations:[]}}function P(e){var t=this,a={db:null};if(e)for(var i in e)a[i]=e[i];var n=y[a.name];n||(n=R(),y[a.name]=n),n.forages.push(t),t._initReady||(t._initReady=t.ready,t.ready=E);var r=[];function s(){return u.resolve()}for(var o=0;o<n.forages.length;o++){var l=n.forages[o];l!==t&&r.push(l._initReady().catch(s))}var c=n.forages.slice(0);return u.all(r).then((function(){return a.db=n.db,T(a)})).then((function(e){return a.db=e,V(a,t._defaultConfig.version)?M(a):e})).then((function(e){a.db=n.db=e,t._dbInfo=a;for(var i=0;i<c.length;i++){var r=c[i];r!==t&&(r._dbInfo.db=a.db,r._dbInfo.version=a.version)}}))}function O(e,t){var a=this;e=p(e);var i=new u((function(t,i){a.ready().then((function(){L(a._dbInfo,b,(function(n,r){if(n)return i(n);try{var s=r.objectStore(a._dbInfo.storeName).get(e);s.onsuccess=function(){var e=s.result;void 0===e&&(e=null),F(e)&&(e=I(e)),t(e)},s.onerror=function(){i(s.error)}}catch(e){i(e)}}))})).catch(i)}));return c(i,t),i}function B(e,t){var a=this,i=new u((function(t,i){a.ready().then((function(){L(a._dbInfo,b,(function(n,r){if(n)return i(n);try{var s=r.objectStore(a._dbInfo.storeName).openCursor(),o=1;s.onsuccess=function(){var a=s.result;if(a){var i=a.value;F(i)&&(i=I(i));var n=e(i,a.key,o++);void 0!==n?t(n):a.continue()}else t()},s.onerror=function(){i(s.error)}}catch(e){i(e)}}))})).catch(i)}));return c(i,t),i}function $(e,t,a){var i=this;e=p(e);var n=new u((function(a,n){var r;i.ready().then((function(){return r=i._dbInfo,"[object Blob]"===g.call(t)?A(r.db).then((function(e){return e?t:C(t)})):t})).then((function(t){L(i._dbInfo,v,(function(r,s){if(r)return n(r);try{var o=s.objectStore(i._dbInfo.storeName);null===t&&(t=void 0);var l=o.put(t,e);s.oncomplete=function(){void 0===t&&(t=null),a(t)},s.onabort=s.onerror=function(){var e=l.error?l.error:l.transaction.error;n(e)}}catch(e){n(e)}}))})).catch(n)}));return c(n,a),n}function j(e,t){var a=this;e=p(e);var i=new u((function(t,i){a.ready().then((function(){L(a._dbInfo,v,(function(n,r){if(n)return i(n);try{var s=r.objectStore(a._dbInfo.storeName).delete(e);r.oncomplete=function(){t()},r.onerror=function(){i(s.error)},r.onabort=function(){var e=s.error?s.error:s.transaction.error;i(e)}}catch(e){i(e)}}))})).catch(i)}));return c(i,t),i}function U(e){var t=this,a=new u((function(e,a){t.ready().then((function(){L(t._dbInfo,v,(function(i,n){if(i)return a(i);try{var r=n.objectStore(t._dbInfo.storeName).clear();n.oncomplete=function(){e()},n.onabort=n.onerror=function(){var e=r.error?r.error:r.transaction.error;a(e)}}catch(e){a(e)}}))})).catch(a)}));return c(a,e),a}function z(e){var t=this,a=new u((function(e,a){t.ready().then((function(){L(t._dbInfo,b,(function(i,n){if(i)return a(i);try{var r=n.objectStore(t._dbInfo.storeName).count();r.onsuccess=function(){e(r.result)},r.onerror=function(){a(r.error)}}catch(e){a(e)}}))})).catch(a)}));return c(a,e),a}function W(e,t){var a=this,i=new u((function(t,i){e<0?t(null):a.ready().then((function(){L(a._dbInfo,b,(function(n,r){if(n)return i(n);try{var s=r.objectStore(a._dbInfo.storeName),o=!1,l=s.openKeyCursor();l.onsuccess=function(){var a=l.result;a?0===e||o?t(a.key):(o=!0,a.advance(e)):t(null)},l.onerror=function(){i(l.error)}}catch(e){i(e)}}))})).catch(i)}));return c(i,t),i}function H(e){var t=this,a=new u((function(e,a){t.ready().then((function(){L(t._dbInfo,b,(function(i,n){if(i)return a(i);try{var r=n.objectStore(t._dbInfo.storeName).openKeyCursor(),s=[];r.onsuccess=function(){var t=r.result;t?(s.push(t.key),t.continue()):e(s)},r.onerror=function(){a(r.error)}}catch(e){a(e)}}))})).catch(a)}));return c(a,e),a}function Y(e,t){t=h.apply(this,arguments);var a=this.config();(e="function"!=typeof e&&e||{}).name||(e.name=e.name||a.name,e.storeName=e.storeName||a.storeName);var i,n=this;if(e.name){var r=e.name===a.name&&n._dbInfo.db?u.resolve(n._dbInfo.db):T(e).then((function(t){var a=y[e.name],i=a.forages;a.db=t;for(var n=0;n<i.length;n++)i[n]._dbInfo.db=t;return t}));i=e.storeName?r.then((function(t){if(t.objectStoreNames.contains(e.storeName)){var a=t.version+1;k(e);var i=y[e.name],n=i.forages;t.close();for(var r=0;r<n.length;r++){var o=n[r];o._dbInfo.db=null,o._dbInfo.version=a}var l=new u((function(t,i){var n=s.open(e.name,a);n.onerror=function(e){n.result.close(),i(e)},n.onupgradeneeded=function(){n.result.deleteObjectStore(e.storeName)},n.onsuccess=function(){var e=n.result;e.close(),t(e)}}));return l.then((function(e){i.db=e;for(var t=0;t<n.length;t++){var a=n[t];a._dbInfo.db=e,S(a._dbInfo)}})).catch((function(t){throw(N(e,t)||u.resolve()).catch((function(){})),t}))}})):r.then((function(t){k(e);var a=y[e.name],i=a.forages;t.close();for(var n=0;n<i.length;n++)i[n]._dbInfo.db=null;var r=new u((function(t,a){var i=s.deleteDatabase(e.name);i.onerror=function(){var e=i.result;e&&e.close(),a(i.error)},i.onblocked=function(){console.warn('dropInstance blocked for database "'+e.name+'" until all open connections are closed')},i.onsuccess=function(){var e=i.result;e&&e.close(),t(e)}}));return r.then((function(e){a.db=e;for(var t=0;t<i.length;t++)S(i[t]._dbInfo)})).catch((function(t){throw(N(e,t)||u.resolve()).catch((function(){})),t}))}))}else i=u.reject("Invalid arguments");return c(i,t),i}var G={_driver:"asyncStorage",_initStorage:P,_support:o(),iterate:B,getItem:O,setItem:$,removeItem:j,clear:U,length:z,key:W,keys:H,dropInstance:Y};function q(){return"function"==typeof openDatabase}var Z="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",J="~~local_forage_type~",K=/^~~local_forage_type~([^~]+)~/,X="__lfsc__:",Q=X.length,ee="arbf",te="blob",ae="si08",ie="ui08",ne="uic8",re="si16",se="si32",oe="ur16",le="ui32",ue="fl32",ce="fl64",de=Q+ee.length,pe=Object.prototype.toString;function he(e){var t,a,i,n,r,s=.75*e.length,o=e.length,l=0;"="===e[e.length-1]&&(s--,"="===e[e.length-2]&&s--);var u=new ArrayBuffer(s),c=new Uint8Array(u);for(t=0;t<o;t+=4)a=Z.indexOf(e[t]),i=Z.indexOf(e[t+1]),n=Z.indexOf(e[t+2]),r=Z.indexOf(e[t+3]),c[l++]=a<<2|i>>4,c[l++]=(15&i)<<4|n>>2,c[l++]=(3&n)<<6|63&r;return u}function fe(e){var t,a=new Uint8Array(e),i="";for(t=0;t<a.length;t+=3)i+=Z[a[t]>>2],i+=Z[(3&a[t])<<4|a[t+1]>>4],i+=Z[(15&a[t+1])<<2|a[t+2]>>6],i+=Z[63&a[t+2]];return a.length%3==2?i=i.substring(0,i.length-1)+"=":a.length%3==1&&(i=i.substring(0,i.length-2)+"=="),i}function me(e,t){var a="";if(e&&(a=pe.call(e)),e&&("[object ArrayBuffer]"===a||e.buffer&&"[object ArrayBuffer]"===pe.call(e.buffer))){var i,n=X;e instanceof ArrayBuffer?(i=e,n+=ee):(i=e.buffer,"[object Int8Array]"===a?n+=ae:"[object Uint8Array]"===a?n+=ie:"[object Uint8ClampedArray]"===a?n+=ne:"[object Int16Array]"===a?n+=re:"[object Uint16Array]"===a?n+=oe:"[object Int32Array]"===a?n+=se:"[object Uint32Array]"===a?n+=le:"[object Float32Array]"===a?n+=ue:"[object Float64Array]"===a?n+=ce:t(new Error("Failed to get type for BinaryArray"))),t(n+fe(i))}else if("[object Blob]"===a){var r=new FileReader;r.onload=function(){var a=J+e.type+"~"+fe(this.result);t(X+te+a)},r.readAsArrayBuffer(e)}else try{t(JSON.stringify(e))}catch(a){console.error("Couldn't convert value into a JSON string: ",e),t(null,a)}}function ye(e){if(e.substring(0,Q)!==X)return JSON.parse(e);var t,a=e.substring(de),i=e.substring(Q,de);if(i===te&&K.test(a)){var n=a.match(K);t=n[1],a=a.substring(n[0].length)}var r=he(a);switch(i){case ee:return r;case te:return l([r],{type:t});case ae:return new Int8Array(r);case ie:return new Uint8Array(r);case ne:return new Uint8ClampedArray(r);case re:return new Int16Array(r);case oe:return new Uint16Array(r);case se:return new Int32Array(r);case le:return new Uint32Array(r);case ue:return new Float32Array(r);case ce:return new Float64Array(r);default:throw new Error("Unkown type: "+i)}}var ge={serialize:me,deserialize:ye,stringToBuffer:he,bufferToString:fe};function be(e,t,a,i){e.executeSql("CREATE TABLE IF NOT EXISTS "+t.storeName+" (id INTEGER PRIMARY KEY, key unique, value)",[],a,i)}function ve(e){var t=this,a={db:null};if(e)for(var i in e)a[i]="string"!=typeof e[i]?e[i].toString():e[i];var n=new u((function(e,i){try{a.db=openDatabase(a.name,String(a.version),a.description,a.size)}catch(e){return i(e)}a.db.transaction((function(n){be(n,a,(function(){t._dbInfo=a,e()}),(function(e,t){i(t)}))}),i)}));return a.serializer=ge,n}function _e(e,t,a,i,n,r){e.executeSql(a,i,n,(function(e,s){s.code===s.SYNTAX_ERR?e.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name = ?",[t.storeName],(function(e,o){o.rows.length?r(e,s):be(e,t,(function(){e.executeSql(a,i,n,r)}),r)}),r):r(e,s)}),r)}function we(e,t){var a=this;e=p(e);var i=new u((function(t,i){a.ready().then((function(){var n=a._dbInfo;n.db.transaction((function(a){_e(a,n,"SELECT * FROM "+n.storeName+" WHERE key = ? LIMIT 1",[e],(function(e,a){var i=a.rows.length?a.rows.item(0).value:null;i&&(i=n.serializer.deserialize(i)),t(i)}),(function(e,t){i(t)}))}))})).catch(i)}));return c(i,t),i}function Ae(e,t){var a=this,i=new u((function(t,i){a.ready().then((function(){var n=a._dbInfo;n.db.transaction((function(a){_e(a,n,"SELECT * FROM "+n.storeName,[],(function(a,i){for(var r=i.rows,s=r.length,o=0;o<s;o++){var l=r.item(o),u=l.value;if(u&&(u=n.serializer.deserialize(u)),void 0!==(u=e(u,l.key,o+1)))return void t(u)}t()}),(function(e,t){i(t)}))}))})).catch(i)}));return c(i,t),i}function ke(e,t,a,i){var n=this;e=p(e);var r=new u((function(r,s){n.ready().then((function(){void 0===t&&(t=null);var o=t,l=n._dbInfo;l.serializer.serialize(t,(function(t,u){u?s(u):l.db.transaction((function(a){_e(a,l,"INSERT OR REPLACE INTO "+l.storeName+" (key, value) VALUES (?, ?)",[e,t],(function(){r(o)}),(function(e,t){s(t)}))}),(function(t){if(t.code===t.QUOTA_ERR){if(i>0)return void r(ke.apply(n,[e,o,a,i-1]));s(t)}}))}))})).catch(s)}));return c(r,a),r}function Se(e,t,a){return ke.apply(this,[e,t,a,1])}function Ne(e,t){var a=this;e=p(e);var i=new u((function(t,i){a.ready().then((function(){var n=a._dbInfo;n.db.transaction((function(a){_e(a,n,"DELETE FROM "+n.storeName+" WHERE key = ?",[e],(function(){t()}),(function(e,t){i(t)}))}))})).catch(i)}));return c(i,t),i}function xe(e){var t=this,a=new u((function(e,a){t.ready().then((function(){var i=t._dbInfo;i.db.transaction((function(t){_e(t,i,"DELETE FROM "+i.storeName,[],(function(){e()}),(function(e,t){a(t)}))}))})).catch(a)}));return c(a,e),a}function Te(e){var t=this,a=new u((function(e,a){t.ready().then((function(){var i=t._dbInfo;i.db.transaction((function(t){_e(t,i,"SELECT COUNT(key) as c FROM "+i.storeName,[],(function(t,a){var i=a.rows.item(0).c;e(i)}),(function(e,t){a(t)}))}))})).catch(a)}));return c(a,e),a}function Me(e,t){var a=this,i=new u((function(t,i){a.ready().then((function(){var n=a._dbInfo;n.db.transaction((function(a){_e(a,n,"SELECT key FROM "+n.storeName+" WHERE id = ? LIMIT 1",[e+1],(function(e,a){var i=a.rows.length?a.rows.item(0).key:null;t(i)}),(function(e,t){i(t)}))}))})).catch(i)}));return c(i,t),i}function Ve(e){var t=this,a=new u((function(e,a){t.ready().then((function(){var i=t._dbInfo;i.db.transaction((function(t){_e(t,i,"SELECT key FROM "+i.storeName,[],(function(t,a){for(var i=[],n=0;n<a.rows.length;n++)i.push(a.rows.item(n).key);e(i)}),(function(e,t){a(t)}))}))})).catch(a)}));return c(a,e),a}function Ce(e){return new u((function(t,a){e.transaction((function(i){i.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name <> '__WebKitDatabaseInfoTable__'",[],(function(a,i){for(var n=[],r=0;r<i.rows.length;r++)n.push(i.rows.item(r).name);t({db:e,storeNames:n})}),(function(e,t){a(t)}))}),(function(e){a(e)}))}))}function Ie(e,t){t=h.apply(this,arguments);var a=this.config();(e="function"!=typeof e&&e||{}).name||(e.name=e.name||a.name,e.storeName=e.storeName||a.storeName);var i,n=this;return c(i=e.name?new u((function(t){var i;i=e.name===a.name?n._dbInfo.db:openDatabase(e.name,"","",0),e.storeName?t({db:i,storeNames:[e.storeName]}):t(Ce(i))})).then((function(e){return new u((function(t,a){e.db.transaction((function(i){function n(e){return new u((function(t,a){i.executeSql("DROP TABLE IF EXISTS "+e,[],(function(){t()}),(function(e,t){a(t)}))}))}for(var r=[],s=0,o=e.storeNames.length;s<o;s++)r.push(n(e.storeNames[s]));u.all(r).then((function(){t()})).catch((function(e){a(e)}))}),(function(e){a(e)}))}))})):u.reject("Invalid arguments"),t),i}var Fe={_driver:"webSQLStorage",_initStorage:ve,_support:q(),iterate:Ae,getItem:we,setItem:Se,removeItem:Ne,clear:xe,length:Te,key:Me,keys:Ve,dropInstance:Ie};function Ee(){try{return"undefined"!=typeof localStorage&&"setItem"in localStorage&&!!localStorage.setItem}catch(e){return!1}}function De(e,t){var a=e.name+"/";return e.storeName!==t.storeName&&(a+=e.storeName+"/"),a}function Le(){var e="_localforage_support_test";try{return localStorage.setItem(e,!0),localStorage.removeItem(e),!1}catch(e){return!0}}function Re(){return!Le()||localStorage.length>0}function Pe(e){var t=this,a={};if(e)for(var i in e)a[i]=e[i];return a.keyPrefix=De(e,t._defaultConfig),Re()?(t._dbInfo=a,a.serializer=ge,u.resolve()):u.reject()}function Oe(e){var t=this,a=t.ready().then((function(){for(var e=t._dbInfo.keyPrefix,a=localStorage.length-1;a>=0;a--){var i=localStorage.key(a);0===i.indexOf(e)&&localStorage.removeItem(i)}}));return c(a,e),a}function Be(e,t){var a=this;e=p(e);var i=a.ready().then((function(){var t=a._dbInfo,i=localStorage.getItem(t.keyPrefix+e);return i&&(i=t.serializer.deserialize(i)),i}));return c(i,t),i}function $e(e,t){var a=this,i=a.ready().then((function(){for(var t=a._dbInfo,i=t.keyPrefix,n=i.length,r=localStorage.length,s=1,o=0;o<r;o++){var l=localStorage.key(o);if(0===l.indexOf(i)){var u=localStorage.getItem(l);if(u&&(u=t.serializer.deserialize(u)),void 0!==(u=e(u,l.substring(n),s++)))return u}}}));return c(i,t),i}function je(e,t){var a=this,i=a.ready().then((function(){var t,i=a._dbInfo;try{t=localStorage.key(e)}catch(e){t=null}return t&&(t=t.substring(i.keyPrefix.length)),t}));return c(i,t),i}function Ue(e){var t=this,a=t.ready().then((function(){for(var e=t._dbInfo,a=localStorage.length,i=[],n=0;n<a;n++){var r=localStorage.key(n);0===r.indexOf(e.keyPrefix)&&i.push(r.substring(e.keyPrefix.length))}return i}));return c(a,e),a}function ze(e){var t=this.keys().then((function(e){return e.length}));return c(t,e),t}function We(e,t){var a=this;e=p(e);var i=a.ready().then((function(){var t=a._dbInfo;localStorage.removeItem(t.keyPrefix+e)}));return c(i,t),i}function He(e,t,a){var i=this;e=p(e);var n=i.ready().then((function(){void 0===t&&(t=null);var a=t;return new u((function(n,r){var s=i._dbInfo;s.serializer.serialize(t,(function(t,i){if(i)r(i);else try{localStorage.setItem(s.keyPrefix+e,t),n(a)}catch(e){"QuotaExceededError"!==e.name&&"NS_ERROR_DOM_QUOTA_REACHED"!==e.name||r(e),r(e)}}))}))}));return c(n,a),n}function Ye(e,t){if(t=h.apply(this,arguments),!(e="function"!=typeof e&&e||{}).name){var a=this.config();e.name=e.name||a.name,e.storeName=e.storeName||a.storeName}var i,n=this;return i=e.name?new u((function(t){e.storeName?t(De(e,n._defaultConfig)):t(e.name+"/")})).then((function(e){for(var t=localStorage.length-1;t>=0;t--){var a=localStorage.key(t);0===a.indexOf(e)&&localStorage.removeItem(a)}})):u.reject("Invalid arguments"),c(i,t),i}var Ge={_driver:"localStorageWrapper",_initStorage:Pe,_support:Ee(),iterate:$e,getItem:Be,setItem:He,removeItem:We,clear:Oe,length:ze,key:je,keys:Ue,dropInstance:Ye},qe=function(e,t){return e===t||"number"==typeof e&&"number"==typeof t&&isNaN(e)&&isNaN(t)},Ze=function(e,t){for(var a=e.length,i=0;i<a;){if(qe(e[i],t))return!0;i++}return!1},Je=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)},Ke={},Xe={},Qe={INDEXEDDB:G,WEBSQL:Fe,LOCALSTORAGE:Ge},et=[Qe.INDEXEDDB._driver,Qe.WEBSQL._driver,Qe.LOCALSTORAGE._driver],tt=["dropInstance"],at=["clear","getItem","iterate","key","keys","length","removeItem","setItem"].concat(tt),it={description:"",driver:et.slice(),name:"localforage",size:4980736,storeName:"keyvaluepairs",version:1};function nt(e,t){e[t]=function(){var a=arguments;return e.ready().then((function(){return e[t].apply(e,a)}))}}function rt(){for(var e=1;e<arguments.length;e++){var t=arguments[e];if(t)for(var a in t)t.hasOwnProperty(a)&&(Je(t[a])?arguments[0][a]=t[a].slice():arguments[0][a]=t[a])}return arguments[0]}var st=function(){function e(t){for(var a in n(this,e),Qe)if(Qe.hasOwnProperty(a)){var i=Qe[a],r=i._driver;this[a]=r,Ke[r]||this.defineDriver(i)}this._defaultConfig=rt({},it),this._config=rt({},this._defaultConfig,t),this._driverSet=null,this._initDriver=null,this._ready=!1,this._dbInfo=null,this._wrapLibraryMethodsWithReady(),this.setDriver(this._config.driver).catch((function(){}))}return e.prototype.config=function(e){if("object"===(void 0===e?"undefined":i(e))){if(this._ready)return new Error("Can't call config() after localforage has been used.");for(var t in e){if("storeName"===t&&(e[t]=e[t].replace(/\W/g,"_")),"version"===t&&"number"!=typeof e[t])return new Error("Database version must be a number.");this._config[t]=e[t]}return!("driver"in e)||!e.driver||this.setDriver(this._config.driver)}return"string"==typeof e?this._config[e]:this._config},e.prototype.defineDriver=function(e,t,a){var i=new u((function(t,a){try{var i=e._driver,n=new Error("Custom driver not compliant; see https://mozilla.github.io/localForage/#definedriver");if(!e._driver)return void a(n);for(var r=at.concat("_initStorage"),s=0,o=r.length;s<o;s++){var l=r[s];if((!Ze(tt,l)||e[l])&&"function"!=typeof e[l])return void a(n)}var d=function(){for(var t=function(e){return function(){var t=new Error("Method "+e+" is not implemented by the current driver"),a=u.reject(t);return c(a,arguments[arguments.length-1]),a}},a=0,i=tt.length;a<i;a++){var n=tt[a];e[n]||(e[n]=t(n))}};d();var p=function(a){Ke[i]&&console.info("Redefining LocalForage driver: "+i),Ke[i]=e,Xe[i]=a,t()};"_support"in e?e._support&&"function"==typeof e._support?e._support().then(p,a):p(!!e._support):p(!0)}catch(e){a(e)}}));return d(i,t,a),i},e.prototype.driver=function(){return this._driver||null},e.prototype.getDriver=function(e,t,a){var i=Ke[e]?u.resolve(Ke[e]):u.reject(new Error("Driver not found."));return d(i,t,a),i},e.prototype.getSerializer=function(e){var t=u.resolve(ge);return d(t,e),t},e.prototype.ready=function(e){var t=this,a=t._driverSet.then((function(){return null===t._ready&&(t._ready=t._initDriver()),t._ready}));return d(a,e,e),a},e.prototype.setDriver=function(e,t,a){var i=this;Je(e)||(e=[e]);var n=this._getSupportedDrivers(e);function r(){i._config.driver=i.driver()}function s(e){return i._extend(e),r(),i._ready=i._initStorage(i._config),i._ready}function o(e){return function(){var t=0;function a(){for(;t<e.length;){var n=e[t];return t++,i._dbInfo=null,i._ready=null,i.getDriver(n).then(s).catch(a)}r();var o=new Error("No available storage method found.");return i._driverSet=u.reject(o),i._driverSet}return a()}}var l=null!==this._driverSet?this._driverSet.catch((function(){return u.resolve()})):u.resolve();return this._driverSet=l.then((function(){var e=n[0];return i._dbInfo=null,i._ready=null,i.getDriver(e).then((function(e){i._driver=e._driver,r(),i._wrapLibraryMethodsWithReady(),i._initDriver=o(n)}))})).catch((function(){r();var e=new Error("No available storage method found.");return i._driverSet=u.reject(e),i._driverSet})),d(this._driverSet,t,a),this._driverSet},e.prototype.supports=function(e){return!!Xe[e]},e.prototype._extend=function(e){rt(this,e)},e.prototype._getSupportedDrivers=function(e){for(var t=[],a=0,i=e.length;a<i;a++){var n=e[a];this.supports(n)&&t.push(n)}return t},e.prototype._wrapLibraryMethodsWithReady=function(){for(var e=0,t=at.length;e<t;e++)nt(this,at[e])},e.prototype.createInstance=function(t){return new e(t)},e}(),ot=new st;t.exports=ot},{3:3}]},{},[4])(4)),Qi.exports),tn=O(en);class an{databaseName;collectionName;size;_store;constructor(e,t,a){tn.config({driver:tn.INDEXEDDB}),this.databaseName=e||"lumino-cache",this.collectionName=t||"data",this.size=a,this._store=tn.createInstance({name:this.databaseName,storeName:this.collectionName})}async init(){}async _keys(){return this._store.keys()}async _set(e,t){return this._store.setItem(e,t)}async _clear(){return this._store.clear()}async _get(e){return this._store.getItem(e)}async _remove(e){return this._store.removeItem(e)}}function nn(e){let t,a,i,n;e.onmessage=async r=>{const s=r.data;try{switch(s.type){case"init":{i=s.databaseName,n=s.collectionName,t=await navigator.storage.getDirectory();const r=await t.getDirectoryHandle(i,{create:!0});a=await r.getDirectoryHandle(n,{create:!0}),e.postMessage({type:s.type,database:i,collection:n,success:!0});break}case"write":{if(!a)throw new Error("OPFS Worker: not initialized yet!");const t=await a.getFileHandle(s.filename,{create:!0}),r=await t.createSyncAccessHandle();let o;if("string"==typeof s.content){o=(new TextEncoder).encode(s.content).buffer}else if(s.content instanceof ArrayBuffer)o=s.content;else{if(!(s.content instanceof Blob))throw new Error("OPFS Worker: Unsupported content type: "+typeof s.content);o=await s.content.arrayBuffer()}r.truncate(o.byteLength),r.write(o,{at:0}),await r.flush(),r.close(),e.postMessage({type:s.type,database:i,collection:n,success:!0});break}}}catch(t){e.postMessage({type:s.type,success:!1,database:i,collection:n,error:t.message})}}}class rn{databaseName;collectionName;size;_worker;_storage;_root;constructor(e,t,a){this.databaseName=e||"lumino-cache",this.collectionName=t||"data",this.size=a}async init(){if("object"==typeof globalThis.navigator&&"storage"in globalThis.navigator&&"function"==typeof globalThis.navigator.storage.getDirectory){this._storage=await navigator.storage.getDirectory();const e=await this._storage.getDirectoryHandle(this.databaseName,{create:!0});let t,a;this._root=await e.getDirectoryHandle(this.collectionName,{create:!0}),this._worker=new Worker(URL.createObjectURL(new Blob(["(",nn.toString(),")(self)"],{type:"application/javascript"})),{type:"module"});let i=new Promise(((e,i)=>{t=e,a=i}));return this._worker.onmessage=e=>{const i=e.data;i.success||console.error("OPFS Worker failed:",i),"init"===i.type&&(i.success?t():a(i.error))},this._worker.postMessage({type:"init",databaseName:this.databaseName,collectionName:this.collectionName}),i}}async _keys(){if(!this._root)return[];const e=[];for await(const t of this._root.values())e.push(t.name);return e}async _set(e,t){if(!this._root)return;let a;if(t instanceof Blob)a=t;else if("object"==typeof t){const e=JSON.stringify(t,null,2);a=new Blob([e],{type:"application/json"})}else a=new Blob([t],{type:"text/plain"});const i=await this._root.getFileHandle(e,{create:!0});if("function"==typeof i.createWritable){const e=await i.createWritable();await e.write(a),await e.close()}else this._worker.postMessage({type:"write",filename:e,content:a})}async _clear(){if(!this._root)return;const e=[];for await(const t of this._root.values())e.push(this._root.removeEntry(t.name));return Promise.all(e)}async _get(e,t){if(!this._root)return null;let a;try{const t=await this._root.getFileHandle(e);a=await t.getFile()}catch(e){return null}switch(t=t||a.type){case"text/plain":return a.text();case"application/json":{const e=await a.text();try{return JSON.parse(e)}catch(t){return console.error("Content was loaded from cache but could not be json parsed: ",e),null}}default:return a}}async _remove(e){if(this._root)return this._root.removeEntry(e)}}class sn{databaseName;collectionName;size;type;_impl;constructor(e,t,a=0,i=1){switch(this.databaseName=e||"lumino",this.collectionName=t||"data",this.size=1048576*(i||1),this.type=a,this.type){case 0:this._impl=new an(this.databaseName,this.collectionName,this.size);break;case 1:this._impl=new rn(this.databaseName,this.collectionName,this.size);break;default:throw"Invalid storage type: "+a}}async init(){return this._impl.init()}async _keys(){return this._impl._keys()}fixKey(e){return e.replaceAll("/","_")}async _set(e,t){return this._impl._set(this.fixKey(e),t)}async _clear(){return this._impl._clear()}async _get(e,t){return this._impl._get(this.fixKey(e),t)}async _remove(e){return this._impl._remove(this.fixKey(e))}}var on,ln,un,cn,dn,pn,hn,fn,mn,yn,gn,bn,vn,_n,wn,An,kn,Sn,Nn,xn,Tn,Mn,Vn,Cn,In,Fn,En,Dn;function Ln(){if(ln)return on;return ln=1,on=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}}function Rn(){if(pn)return dn;pn=1;var e=function(){if(cn)return un;cn=1;var e="object"==typeof P&&P&&P.Object===Object&&P;return un=e}(),t="object"==typeof self&&self&&self.Object===Object&&self,a=e||t||Function("return this")();return dn=a}function Pn(){if(bn)return gn;bn=1;var e=function(){if(yn)return mn;yn=1;var e=/\s/;return mn=function(t){for(var a=t.length;a--&&e.test(t.charAt(a)););return a}}(),t=/^\s+/;return gn=function(a){return a?a.slice(0,e(a)+1).replace(t,""):a}}function On(){if(_n)return vn;_n=1;var e=Rn().Symbol;return vn=e}function Bn(){if(xn)return Nn;xn=1;var e=On(),t=function(){if(An)return wn;An=1;var e=On(),t=Object.prototype,a=t.hasOwnProperty,i=t.toString,n=e?e.toStringTag:void 0;return wn=function(e){var t=a.call(e,n),r=e[n];try{e[n]=void 0;var s=!0}catch(e){}var o=i.call(e);return s&&(t?e[n]=r:delete e[n]),o}}(),a=function(){if(Sn)return kn;Sn=1;var e=Object.prototype.toString;return kn=function(t){return e.call(t)}}(),i=e?e.toStringTag:void 0;return Nn=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":i&&i in Object(e)?t(e):a(e)}}function $n(){if(Cn)return Vn;Cn=1;var e=Bn(),t=Mn?Tn:(Mn=1,Tn=function(e){return null!=e&&"object"==typeof e});return Vn=function(a){return"symbol"==typeof a||t(a)&&"[object Symbol]"==e(a)}}var jn=function(){if(Dn)return En;Dn=1;var e=Ln(),t=function(){if(fn)return hn;fn=1;var e=Rn();return hn=function(){return e.Date.now()}}(),a=function(){if(Fn)return In;Fn=1;var e=Pn(),t=Ln(),a=$n(),i=/^[-+]0x[0-9a-f]+$/i,n=/^0b[01]+$/i,r=/^0o[0-7]+$/i,s=parseInt;return In=function(o){if("number"==typeof o)return o;if(a(o))return NaN;if(t(o)){var l="function"==typeof o.valueOf?o.valueOf():o;o=t(l)?l+"":l}if("string"!=typeof o)return 0===o?o:+o;o=e(o);var u=n.test(o);return u||r.test(o)?s(o.slice(2),u?2:8):i.test(o)?NaN:+o}}(),i=Math.max,n=Math.min;return En=function(r,s,o){var l,u,c,d,p,h,f=0,m=!1,y=!1,g=!0;if("function"!=typeof r)throw new TypeError("Expected a function");function b(e){var t=l,a=u;return l=u=void 0,f=e,d=r.apply(a,t)}function v(e){var t=e-h;return void 0===h||t>=s||t<0||y&&e-f>=c}function _(){var e=t();if(v(e))return w(e);p=setTimeout(_,function(e){var t=s-(e-h);return y?n(t,c-(e-f)):t}(e))}function w(e){return p=void 0,g&&l?b(e):(l=u=void 0,d)}function A(){var e=t(),a=v(e);if(l=arguments,u=this,h=e,a){if(void 0===p)return function(e){return f=e,p=setTimeout(_,s),m?b(e):d}(h);if(y)return clearTimeout(p),p=setTimeout(_,s),b(h)}return void 0===p&&(p=setTimeout(_,s)),d}return s=a(s)||0,e(o)&&(m=!!o.leading,c=(y="maxWait"in o)?i(a(o.maxWait)||0,s):c,g="trailing"in o?!!o.trailing:g),A.cancel=function(){void 0!==p&&clearTimeout(p),f=0,l=h=u=p=void 0},A.flush=function(){return void 0===p?d:w(t())},A}}(),Un=O(jn);class zn extends sn{apiClient;cache=new Map;urlToIdMap=new Map;logging=!1;ready=!1;usePublicApi=!1;quota=0;size=0;usePersistentStorage=!1;saveIndex;constructor(e,t,a,i){if(super("lumino","items",1),!a)throw"A lumino client needs to be passed.";this.apiClient=a,this.usePublicApi=e,this.quota=1048576*(i||1024),this.usePersistentStorage=t;this.saveIndex=Un((()=>{const e=[];for(const t of this.cache.values())e.push({id:t.id,time:t.time.valueOf(),size:t.size,hash:t.hash,itemType:t.itemType,mimeType:t.mimeType,itemName:t.itemName});this._set("index",e).then((function(){})).catch((function(e){console.error("Error saving cache index: "+e)}))}),1e3)}async init(){return await super.init(),this.initFromStorage()}getQuota(){return this.quota}setQuota(e){this.quota=e,this.checkQuota()}getCount(){return this.cache.size}getSize(){return this.size}async initFromStorage(){if(this.usePersistentStorage){const e=await this._get("index","application/json");if(e&&Array.isArray(e))for(const t of e)t.time=W(t.time),this.cache.set(t.id,t),this.size+=t.size;else await this._clear(),this.saveIndex()}this.ready=!0,y.$emit("itemCache:cacheReady"),y.$emit("itemCache:cacheChange"),y.$on("item:rename",(e=>this.handleRename(e)))}async addToStorage(e,t){if(this.usePersistentStorage){const a={id:e.id,time:W(e.time.toDate()),size:e.size,hash:e.hash,itemType:e.itemType,mimeType:e.mimeType,itemName:e.itemName};await this._set(`blob_${e.id}`,t),this.cache.set(e.id,a),this.saveIndex()}this.size+=e.size}waitUntilReady(){const e=this;return new Promise(((t,a)=>{try{e.ready?t():y.$on("itemCache:cacheReady",(()=>{t()}))}catch(e){a(e)}}))}findObject(e){return this.cache.get(e)}getEntries(){return this.cache.values()}clear(){for(const e of this.cache.values())e.objectUrl&&URL.revokeObjectURL(e.objectUrl);this.cache.clear(),y.$emit("itemCache:cacheChange"),this.usePersistentStorage&&this._clear().then((function(){console.log("Cache storage cleared.")})).catch((function(e){console.error(e)}))}clearMemory(){for(let e of this.cache.values())e.objectUrl&&(URL.revokeObjectURL(e.objectUrl),delete e.objectUrl);y.$emit("itemCache:cacheChange")}checkQuota(e=0){let t=this.size+e;if(t>this.quota){const e=[...this.cache.entries()].sort((function(e,t){return e[1].time.valueOf()-t[1].time.valueOf()}));let a=0;for(;t>this.quota&&a<e.length;){const i=e[a][1];i.objectUrl||(t-=i.size,this.removeObjectFromCache(i.id)),a++}}}removeObjectFromCache(e){const t=this.cache.get(e);t&&(t.objectUrl&&URL.revokeObjectURL(t.objectUrl),this.cache.delete(e),this.size-=t.size,this.usePersistentStorage&&(this._remove(`blob_${t.id}`).then((function(){console.log(`Removed blob for ${e} from cache`)})).catch((function(t){console.error(`Error removing blob for ${e} from cache: ${t}`)})),this.saveIndex()))}getIdFromUrl(e){return this.urlToIdMap.has(e)?this.urlToIdMap.get(e):null}getById(e){const t=this.findObject(e);return t?(this.logging&&console.log("Retrieving from cache: "+e),t.time=W(),t):(this.logging&&console.error("Object not in cache: "+e),null)}getObjectUrl(e){const t=this.getIdFromUrl(e);if(!t)return console.error("Could not find URL in cache: "+e),"";const a=this.getById(t);return a?a.objectUrl:(console.error("Could not find Id in cache: "+t),"")}async getBufferById(e){const t=await this.getBlobById(e);return t?await new Response(t).arrayBuffer():null}async getBlobById(e){const t=this.getById(e);return t?await fetch(t.objectUrl).then((e=>e.blob())):null}async loadFromStorage(e){if(e.objectUrl)return!0;let t=null;return!!this.usePersistentStorage&&(t=await this._get(`blob_${e.id}`),!!t&&(e.objectUrl=URL.createObjectURL(t),e.time=W(),this.saveIndex(),y.$emit("itemCache:cacheChange"),!0))}getCacheKey(e,t){return t&&"item"!==t.type?e+"_lod"+t.index:e}_getLodLevelUrl(e,t){let a;return a=t&&"item"!==t.type?this.apiClient.getAttachmentDownloadUrl(e,"lod",t.index):this.apiClient.getDownloadUrl(e),a}async loadItem(e,t,a){let i=0;for(;;)try{let i;if(this.usePublicApi)i=t&&"item"!==t.type?await this.apiClient.downloadPublicAttachment(e,"lod",t.index,void 0,a):await this.apiClient.publicDownloadItem(e,a);else try{i=t&&"item"!==t.type?await this.apiClient.downloadAttachment(e,"lod",t.index,void 0,a):await this.apiClient.downloadItem(e,a)}catch{i=t&&"item"!==t.type?await this.apiClient.downloadPublicAttachment(e,"lod",t.index,void 0,a):await this.apiClient.publicDownloadItem(e,a)}return i}catch(t){if(console.log(t),i++,!(i<3))return y.$emit("client:fatalError",`Failed to download item ${e}`),null;console.debug(`Failed attempts to download item ${e}: ${i}. Trying again...`)}}async addItemToCache(e,t,a,i){try{const n=this.getCacheKey(e,t),r=this.findObject(n);if(r&&(a||!this.apiClient.getItemHash||this.usePublicApi||(a=await this.apiClient.getItemHash(e)),a&&r.hash===a&&(this.logging&&console.log("Item already in cache: "+e),await this.loadFromStorage(r))))return r.url||(r.url=this._getLodLevelUrl(e,t)),this.urlToIdMap.set(r.url,n),this.cache.set(n,r),r;i&&i(0);let s=await this.loadItem(e,t,i);if(!s)return console.error("Was not able to load object into cache: "+n),null;i&&i(100);const o=this._getLodLevelUrl(e,t),l=URL.createObjectURL(s.blob),u={id:n,url:o,time:W(),objectUrl:l,size:s.blob.size,hash:s.hash,itemType:s.itemType,mimeType:s.mimeType,itemName:s.itemName};return this.checkQuota(u.size),await this.addToStorage(u,s.blob),this.cache.set(n,u),this.urlToIdMap.set(o,n),this.saveIndex(),y.$emit("itemCache:cacheChange"),this.logging&&console.log("Added item to cache: ",u),u}catch(e){return console.error(e),null}}getObjectCount(){return this.cache.size}getObjectSize(){let e=0;for(const t of this.cache.values())e+=t.size;return e}handleRename({id:e,newName:t}){const a=this.cache.get(e);a&&(a.itemName=t,this.saveIndex(),y.$emit("itemCache:cacheChange"))}}class Wn extends sn{apiClient;ready=!1;maxNumItems=1e4;constructor(e){if(super("lumino","folders",1),!e)throw"A lumino client needs to be passed.";this.apiClient=e}async init(){await super.init(),await this.checkStorage(),this.ready=!0}clear(){return this._clear()}async checkStorage(){const e=await this._keys();let t=e.length-this.maxNumItems;if(t>0){t=Math.floor(this.maxNumItems/2);const a=[];for(let i=0;i<t;i++)a.push(this._remove(e[i]));await Promise.all(a)}}async getFolderListing(e){return this.ready?this._get(e,"application/json"):null}async getItemListing(e){if(!this.ready)return null;const t=await this._get("items_"+e,"application/json");if(!t)return null;const a=await this.getFolderListing(e);return a&&a.parent&&new Date(t.cachedAt).getTime()>new Date(a.parent.updatedAt).getTime()?t.data:null}async getFolderACLs(e,t){if(!this.ready)return null;const a=await this._get("acl_"+e,"application/json");return a&&Date.now()-a.cachedAt<t?(delete a.cachedAt,a):null}async refreshCacheForFolder(e){const t=await this.getFolderListing(e);await this.addFolderListing(e,t)}async addFolderListing(e,t){this.ready&&(await this._set(e,{...t,cachedAt:new Date}),await this.checkStorage())}async addItemListing(e,t){this.ready&&(await this._set("items_"+e,{data:t,cachedAt:new Date}),await this.checkStorage())}async addACL(e,t){this.ready&&(await this._set("acl_"+e,{...t,cachedAt:new Date}),await this.checkStorage())}}class Hn extends sn{apiClient;constructor(e){if(super("lumino","thumbs",1),!e)throw"A lumino client needs to be passed.";this.apiClient=e}clear(){this._clear()}async _loadThumbnail(e,t){try{return await this.apiClient.getThumbnail(e,t)}catch{try{return await this.apiClient.getPublicThumbnail(e,t)}catch{return null}}}async get(e,t,a,i){if(!t)throw"Cannot retrieve item thumbnail from cache without knowing size!";let n=await this._get(e,"application/json");if(n&&n.hash===a&&n.timestamp===i){for(const e of n.thumbnails)if(e.size===t){if(e.data)return e.data;n.thumbnails.removeObject(e);break}let a=await this._loadThumbnail(t,e);return a&&(n.thumbnails.push({size:t,data:a}),await this._set(e,n)),a}let r=await this._loadThumbnail(t,e);if(a||i){let s=[];r&&s.push({size:t,data:r}),n={id:e,hash:a,timestamp:i,thumbnails:s},await this._set(e,n)}return r}}class Yn{apiClient;cache=new Map;constructor(e){this.apiClient=e,this.cache=new Map}async resolve(e){let t=this.cache.get(e);if(!t)try{t=this.apiClient.getUserPublicInfo(e,this.apiClient.requestClientId,32),this.cache.set(e,t)}catch(e){console.error(e)}return t}}class Gn{apiClient;cache=new Map;constructor(e){this.apiClient=e}async resolve(e){let t=this.cache.get(e);if(!t)try{t=this.apiClient.getGroupPublicInfo(e,this.apiClient.requestClientId,32),this.cache.set(e,t)}catch(e){console.error(e)}return t}}class qn{apiClient;cache=new Map;constructor(e){this.apiClient=e}async get(e,t,a,i,n=!1){const r=`${e}_${t}_${a}${void 0===i?"":`_${i}`}`,s=this.cache.get(r);if(s)return s;try{const s=new Promise((async r=>{try{let s;s=n?await this.apiClient.downloadPublicAttachment(e,t,a,i,void 0):await this.apiClient.downloadAttachmentPOP(e,t,a,i,void 0);r(URL.createObjectURL(s.blob))}catch(e){r(null)}}));return this.cache.set(r,s),s}catch(e){return console.warn(`Attachment ${r} not available.`),null}}invalidateAttachment(e,t,a,i){let n=`${e}_${t}`;null!=a&&(n+=`_${a}`);for(const e of this.cache.keys()){const t=null==i||e.endsWith(`_${i}`);e.startsWith(n)&&t&&this.cache.delete(e)}}}class Zn{apiClient;itemRepo;jobManager;items=[];hasExternalResources=!1;totalSize=0;affectedFolderIds=new Set;constructor(e){this.apiClient=e,this.itemRepo=e.getItemRepo(),this.jobManager=e.getJobManager()}_updateQuota(){this.apiClient.eventBus.$emit("quota:update")}async getPreviousVersions(e,t){const a=[];t=t||"published";const i=await this.apiClient.createFolder({name:t,parent:e,returnIfExists:!0}),n=await this.apiClient.getFoldersInFolderList(i,{folderAsItemType:"Package"});for(const e of n.children)e.item&&a.push({itemId:e.item._id,folderId:e._id,version:e.name,name:e.item.name,filesize:0|e.item.filesize,visibility:e.item.visibility});return a}async verify(e){const t=this,a=new Map,i=new Map;e=e?await this.itemRepo.loadItem(e._id,{recursive:!0}):this.itemRepo.activeItem;const n=await r(e.folder);async function r(e){try{if(e){const a=e._id?e._id:e;if(i.has(a))return i.get(a);{const e=(await t.apiClient.getFolderPath(a)).path;return i.set(a,e),e}}return"/"}catch{return""}}await this.itemRepo.traverseItems((async function(e){const t={_id:e._id,name:e.name,type:e.type,size:e.totalSize,path:await r(e.folder),item:e,external:!1};t.path.startsWith(n)?t.path=t.path.slice(n.length):t.external=!0,a.set(e._id,t)})),this.items=Array.from(a.values()),this.hasExternalResources=!1,this.totalSize=0;for(const e of this.items)e.external&&(this.hasExternalResources=!0),this.totalSize+=e.size;return!this.hasExternalResources}getItems(){return this.items}async unpackToProject(e,t,a,i){a&&(t=await this.apiClient.createFolder({name:a,parent:t,returnIfExists:!0}));const n=await this.apiClient.getItem(e);n.folder===t&&await this.apiClient.renameItem(e,n.name+" (Unpackaged)");const r=await this.apiClient.createFolder({name:n.name,parent:t,fixNameCollisions:!0}),s=await this.jobManager.execute("JS:Unpackage",[{_id:e,isFolder:!1}],[{name:"Destination Folder",value:r},{name:"Make Destination Visible",value:!1}],i);if(this._updateQuota(),3===s.state){const t=s.log.trim().split(";");if(2!==t.length||"UNPACKAGED"!==t[0])throw new V("Unpacking failed. Did not get unpackaged item id!");const a=t[1].trim();return await this.apiClient.renameItem(a,n.name),await this.itemRepo.replaceLink(e,a),a}if(2===s.state)throw new V("Unpacking failed: "+s.error)}async copyItemToProject(e,t,a,i){return(await this.copyItemsToProject([{_id:e,isFolder:!1}],t,a,i))[0].newId}async copyItemsToProject(e,t,a,i){a=a||"packages",t=await this.apiClient.createFolder({name:a,parent:t,returnIfExists:!0}),this.affectedFolderIds.add(t);const n=[];if(e.length){const a=await this.jobManager.execute("JS:CloneItem",e,[{name:"Deep Clone",value:!1},{name:"Destination Folder",value:t},{name:"Exclude Types",value:""},{name:"Make Private",value:!0}],i);if(this._updateQuota(),3===a.state){if(!a.log.trim().length)throw new V("Copy job returned no results.");{const e=a.log.split("\n").reverse();for(const t of e){const e=t.trim().split(";");if(3===e.length){const t=e[1],a=e[2];await this.itemRepo.replaceLink(t,a),n.push({oldId:t,newId:a})}}}}else if(2===a.state)throw new V("Copying of items failed: "+a.error)}return n}async copyToProject(e,t,a){const i=[];for(const e of this.items)e.external&&i.push({_id:e._id,isFolder:!1});return this.copyItemsToProject(i,e,t,a)}async unpublish(e){await this.apiClient.makeItemPrivate(e,!1,!1)}async publish(e,t,a,i,n,r,s,o){const l=e.version;i=i||`published/${l.major}.${l.minor}.${l.revision}`,n=void 0===n||n,r=void 0===r||r,this.affectedFolderIds.add(a);let u,c=a;if(i){const e=i.split("/");for(const t of e)c=await this.apiClient.createFolder({name:t,parent:c,returnIfExists:!0}),this.affectedFolderIds.add(c),u||(u=c)}const d=(await this.apiClient.getFoldersInFolderList(a)).children.map((e=>e._id)).filter((e=>e!==u)).join(","),p=await this.jobManager.execute("JS:CreatePackage",[{_id:e._id,isFolder:!1}],[{name:"Folders To Include",value:d},{name:"Destination Folder",value:c},{name:"Item Name",value:t},{name:"Make Public",value:!!n},{name:"Copy External",value:!!r},{name:"Always Create New Package",value:!!s},{name:"Make Cloneable",value:!!o}]);if(this._updateQuota(),2===p.state)throw new V("Packaging failed: "+p.error);this.apiClient.eventBus.$emit("folder:changed",Array.from(this.affectedFolderIds.values()))}}class Jn{id;job;nextCheckMs;constructor(e,t,a){this.id=e,this.job=a,this.nextCheckMs=t}}class Kn{apiClient;jobs=new Map;constructor(e){this.apiClient=e}getJobs(){return Array.from(this.jobs.values())}async execute(e,t,a,i=void 0,n){const r=this;return new Promise((async(s,o)=>{try{const o=async()=>{try{u.job=await r.apiClient.getJobState(l);let e=!1;switch(u.job.state){case 0:case 1:try{i&&i(u.job)}catch(e){console.error("Error calling progress callback: ",e)}break;case 2:case 3:console.log("Job is done."),e=!0,s(u.job)}e?r.jobs.delete(l):(u.nextCheckMs=Math.min(2*u.nextCheckMs,8e3),setTimeout(o,u.nextCheckMs))}catch(e){console.error("Error fetching job state: "+e)}},l=await r.apiClient.createJob({type:e,elements:t,parameters:a,requiredParameters:n}),u=new Jn(l,1e3);r.jobs.set(l,u),setTimeout(o,u.nextCheckMs)}catch(e){o(e)}}))}}const Xn={mp3:{name:"Mpeg Audio Layer 3",itemType:"Audio",itemTypeCollection:"Audio Collection",collectionEntryName:"AudioItems",folderName:"audio",defaultAction:"Use",actions:["Skip","Use"]},hdr:{name:"HDR Image",itemType:"HDR Image",folderName:"envmaps",defaultAction:"Use",actions:["Skip","Use"]},glb:{name:"Gltf Binary",itemType:"Mesh",itemTypeCollection:"Mesh Collection",collectionEntryName:"MeshItems",folderName:"meshes",defaultAction:"Use",actions:["Skip","Use"]},png:{name:"Portable Network Graphics",itemType:"Image",folderName:"textures",defaultAction:"Use",actions:["Skip","Use"]},jpg:{name:"JPEG",itemType:"Image",folderName:"textures",defaultAction:"Use",actions:["Skip","Use"]},jpeg:{name:"JPEG",itemType:"Image",folderName:"textures",defaultAction:"Use",actions:["Skip","Use"]},lua:{name:"Lua",itemType:"Script",folderName:"scripts",defaultAction:"Use",actions:["Skip","Use"]},ttf:{name:"True Type Font",itemType:"Font",folderName:"fonts",defaultAction:"Use",actions:["Skip","Use"]},otf:{name:"Open Type Font",itemType:"Font",folderName:"fonts",defaultAction:"Use",actions:["Skip","Use"]},unknown:{name:"Unsupported",itemType:"Unknown",defaultAction:"Skip",actions:["Skip"],invisible:!0}},Qn={Audio:"audio","Audio Collection":"audio","HDR Image":"envmaps",Mesh:"meshes","Mesh Collection":"",Script:"scripts",Material:"materials","Background Shader":"background shaders","Pixel Shader":"pixel shaders","Vertex Shader":"vertex shaders",Image:"textures",Scene:"prefabs",Font:"fonts"};function er(e,t){let a=Xn[t];a||(a=Xn.unknown),e.size=e.blob?e.blob.size:0,e.type=a.name,e.collectionType=a.itemTypeCollection,e.collectionEntryName=a.collectionEntryName,e.action=a.defaultAction,e.actions=a.actions,e.folderName=a.folderName,e.itemType=a.itemType,e.name=function(e,t){let a=e.lastIndexOf(".");return e.substring(0,a<0?e.length:a)+"."+t}(e.name,t)}class tr{name;blob;processing=!1;progress=0;size=0;type;collectionType;collectionEntryName;action;actions;folderName;itemType;constructor(e,t,a){this.name=e,this.blob=t,er(this,a)}}class ar{apiClient;itemRepo;jobManager;items=[];mainItem;totalSize=0;oldMainItemId;originalItemIds=[];affectedFolderIds=new Set;packageId;converter;supportedExtensions;hasExternalResources=!1;constructor(e){this.apiClient=e,this.itemRepo=e.getItemRepo(),this.jobManager=e.getJobManager();const t=[];for(const e in Xn)Xn[e].invisible||t.push(`.${e.toUpperCase()}`);this.supportedExtensions=t.sort(((e,t)=>e.localeCompare(t)))}_updateQuota(){this.apiClient.eventBus.$emit("quota:update")}_addAffectedFolder(e){"object"==typeof e&&e._id?this.affectedFolderIds.add(e._id):"string"==typeof e?this.affectedFolderIds.add(e):console.error("Invalid affected folder to add: ",e)}getAffectedFolderIds(){return Array.from(this.affectedFolderIds.values())}getSupportedExtensions(){return this.supportedExtensions}setConverter(e){this.converter=e}setItems(e){this.items=e}async scan(e){const t=this,a=new Map,i=new Map;this.mainItem=await this.itemRepo.loadItem(e,{recursive:!0}),this.oldMainItemId=this.mainItem._id;const n=await r(this.mainItem.folder);async function r(e){try{if(e){const a=e._id?e._id:e;if(i.has(a))return i.get(a);{const e=(await t.apiClient.getFolderPath(a)).path;return i.set(a,e),e}}return"/"}catch(e){return console.error(e),""}}await this.itemRepo.traverseItems((async function(e){const i={_id:e._id,name:e.name,type:e.type,size:e.totalSize,path:await r(e.folder),item:e,external:!1};i.path.startsWith(n)?i.path=i.path.slice(n.length):i.external=!0,t._addAffectedFolder(e.folder),a.set(e._id,i)}),this.mainItem),this.items=Array.from(a.values()),this.originalItemIds=this.items.map((e=>e._id)),this.hasExternalResources=!1,this.totalSize=0;for(const e of this.items)e.external&&(this.hasExternalResources=!0),this.totalSize+=e.size;return this.items}getItems(){return this.items}async saveMainItemChanges(){const e=this.mainItem;await this.apiClient.updateItem({_id:e._id,name:e.name,shortDescription:e.shortDescription,description:e.description,tags:e.tags,categories:e.categories,visibility:e.visibility,contributors:e.contributors,version:e.version})}async createAssetFolder(e,t){let a=e;const i=t.split("/");this._addAffectedFolder(e);for(const e of i)a=await this.apiClient.createFolder({name:e,parent:a,returnIfExists:!0}),this._addAffectedFolder(a);const n=await this.apiClient.getItemsInFolderList(a,!0);if(n&&n.length)throw new Error("Asset folder already exists and is not empty!");return a}createStandardAssetFolderPath(e){let t=Qn[e.type];return t||(t=e.type.toLowerCase()+"s"),`assets/${t}/${e.name}`}async executeActions(){if(!this.converter)throw new Error("No converter is configured. Cannot execute actions on items.");return this.converter(this.items,er)}async createAsset(e,t=!1,a){const i=[];for(const e of this.items)i.push(e._id);if(this._addAffectedFolder(e),i.length)if(t){await this.apiClient.moveItems({items:i,dest:e})!==i.length&&console.warn("Not all items could be moved. Most likely due to permissions."),this.mainItem.folder=e}else{const t=await this.jobManager.execute("JS:CloneItem",[{_id:this.mainItem._id,isFolder:!1}],[{name:"Deep Clone",value:!0},{name:"Destination Folder",value:e},{name:"Exclude Types",value:""}],a);if(3===t.state){const a=t.log.split("\n").reverse()[0].split(";");this.mainItem={...this.mainItem,_id:a[2],folder:e}}else if(2===t.state)throw new V("Copying of items failed: "+t.error)}"Main"!==this.mainItem.name&&(this.mainItem.originalName=this.mainItem.name,this.mainItem.name="Main",await this.apiClient.renameItem(this.mainItem._id,this.mainItem.name));const n=await this.apiClient.getItem(this.mainItem._id);return n.flags||(n.flags=[]),n.flags.includes("original")||n.flags.push("original"),await this.apiClient.updateItem(n),this._updateQuota(),this.mainItem._id}async createPackage(e,t=!1,a=!1){let i,n=this.mainItem.folder;if(this._addAffectedFolder(n),void 0===e){const t=this.mainItem.version||{major:1,minor:0,revision:0};e=`published/${t.major}.${t.minor}.${t.revision}`}if(void 0===t&&(t=!0),e){const t=e.split("/");for(const e of t)n=await this.apiClient.createFolder({name:e,parent:n,returnIfExists:!0}),this._addAffectedFolder(n),i||(i=n)}const r=(await this.apiClient.getFoldersInFolderList(this.mainItem.folder)).children.map((e=>e._id)).filter((e=>e!==i)).join(","),s=await this.jobManager.execute("JS:CreatePackage",[{_id:this.mainItem._id,isFolder:!1}],[{name:"Folders To Include",value:r},{name:"Destination Folder",value:n},{name:"Item Name",value:this.mainItem.originalName||this.mainItem.name},{name:"Make Public",value:!!t},{name:"Copy External",value:!!a}]);if(this._updateQuota(),2===s.state)throw new V("Packaging failed: "+s.error);const o=s.log.split("\n").reverse()[0].split(";");this.packageId=o[2]}async replaceReferences(){await this.itemRepo.replaceLink(this.oldMainItemId,this.packageId)}async deleteOriginalItems(){await this.apiClient.deleteItem(this.originalItemIds)}sendFolderRefreshEvent(){this.apiClient.eventBus.$emit("folder:changed",this.getAffectedFolderIds())}async processUploads(e){const t=[];for(const a of e)if("application/zip"===a.type||"application/x-zip-compressed"===a.type){const e=new h.default;try{const i=[];(await e.loadAsync(a)).forEach(((e,a)=>{const n=a.name.split("/").pop();if(!n.startsWith(".")){const e=n.split(".").pop(),r=a.async("blob");i.push(r),r.then((function(i){const n=new tr(a.name,i,e);t.push(n)}))}})),await Promise.all(i)}catch(e){console.error("Error reading the ZIP file:",e)}}else{const e=a.name.split(".").pop(),i=new tr(a.name,a,e);t.push(i)}return t}detectAssets(e){let t,a,i,n=0;for(const r of e)if("Use"===r.action)if(void 0===t)t=r.itemType,a=r.collectionType,i=r.folderName,n++;else{if(t!==r.itemType)return{valid:!1,reason:"Mixed item types found. To create an asset, upload a single type of file for example only meshes."};n++}return 0===n?{valid:!1,reason:"There are no files we can use to create an asset."}:n>1&&!a?{valid:!1,reason:"Cannot create collections of this type."}:{valid:!0,assetType:n>1?a:t,itemCount:n,folderName:i}}_filterUploadFiles(e){let t=[];for(const a of e)"Use"===a.action&&t.push(a);return t}createNewItem(){return{name:"New asset",type:"",description:"",shortDescription:"",tags:[],flags:["original"],categories:[],license:"CC0",allowConversation:!0,version:{major:1,minor:0,revision:0}}}async createAssetFromFiles(e,t,a,i=!1,n=!1){const r=this.detectAssets(e);if(r.assetType!==a.type)throw new Error("Asset type not valid for these items.");if(!r.valid)throw new Error(r.reason||"No valid asset detected.");let s=await this.apiClient.createFolder({name:r.folderName,parent:t,returnIfExists:!0}),o=await this.apiClient.createFolder({name:a.name,parent:s,returnIfExists:!0}),l=!1;if(0===(await this.apiClient.getItemsInFolderList(o)).length){(await this.apiClient.getFoldersInFolderList(o)).children.length&&(l=!0)}else l=!0;if(l){if(!i)throw new Error("Cannot create asset, target folder is not empty!");await this.apiClient.deleteFolder(o),o=await this.apiClient.createFolder({name:a.name,parent:s})}let u,c=this._filterUploadFiles(e);if(1===c.length){const e=c[0];e.processing=!0,e.progress=0,u=await this.apiClient.uploadAndCreate(o,e.blob,e.name,{nameOverride:"Main",flags:"original"},(function(t){e.progress=t})),this._updateQuota(),e.action="Skip"}else{let e=await this.apiClient.createFolder({name:"resources",parent:o}),t={},a=[],i=0;for(const n of c){n.processing=!0,n.progress=0;const r=await this.apiClient.uploadAndCreate(e,n.blob,n.name,void 0,(function(e){n.progress=e}));this._updateQuota(),n.action="Skip",t[`${n.collectionEntryName}[${i}]->Name`]="",a.push({usage:`MeshItems[${i}]->Mesh`,to:r}),i++}u=await this.apiClient.createItem({type:r.assetType,name:"Main",flags:["original"],folder:o,fixNameCollisions:!0,attributes:t,links:a})}return a._id=u,a.folder=o,this.mainItem=a,n?{assetItemId:u,assetTypeFolderId:s,assetFolderId:o}:u}}class ir{apiClient;itemRepo;constructor(e){this.apiClient=e,this.itemRepo=e.getItemRepo()}grab(e,t,a,i){i=i||{};const n=[];for(const r of a){const a=this._serializeBlockFields(r),s=this._serializeScripts(r),o={type:"block",item:e._id,field:t.name,path:"",block:{id:r.id,type:r.type||"Group",fields:a,scripts:s,children:[]}};i.omitPath||(o.path=this._getBlockPath(r)),i.withChildren&&(o.block.children=this.grab(e,t,r.blocks||[],{withChildren:!0,returnArray:!0})),n.push(o)}if(i.returnArray)return n;const r={type:"serializedBlocks",data:n};return i.noStringify?r:JSON.stringify(r,null,2)}async put(e,t,a,i={}){e=this.validateMessage(e);const n=[];for(const r of e.data){const e=await this._putBlock(r,t,a,i);e&&n.push(e)}return n}validateMessage(e){if("string"==typeof e&&(e=JSON.parse(e)),"serializedBlocks"!==e.type)throw new Error("Data must be a serialized block message. Format is wrong.");if(!Array.isArray(e.data))throw new Error("The contained data is not an array.");return e}async clone(e,t,a,i,n={}){const r=this.grab(i,t,[e],{withChildren:!0,noStringify:!0});return this.put(r,t,a,n)}_updateScriptFieldReferences(e,t){const a=new Map,i=(e,t)=>{a.set(e.block.id,t.id);const n=e.block.children||[],r=t.blocks||[];for(let e=0;e<n.length;e++)i(n[e],r[e])};i(e,t),this.itemRepo.updateScriptFieldReferencesFromMap(a,t)}async _putBlock(e,t,a,i={},n=!1){if(!e.block||!e.block.type||!e.block.fields)return null;const r=e.block,s=this._findItemById(e.item)??this.itemRepo.activeItem;let o=a;o||(o=this._findParentBlock(s,e.field,e.path));const l={};if(Array.isArray(r.fields))for(const e of r.fields){const{name:t,type:a,value:n,linkto:r}=e;if("Separator"!==a)if(i.fieldOverrides&&t in i.fieldOverrides)l[t]=i.fieldOverrides[t];else if(r){const e=this.itemRepo.getLoadedItem(r);l[t]=e||await this.itemRepo.loadItem(r)}else l[t]=n}const u=i.dontCopyScripts?[]:[...r.scripts],c=await this._createUnproxifiedBlock(r.type,l,u,t,s),d={...i,parentPosition:void 0,fieldOverrides:void 0};if(!c)return console.warn(`Could not create block of type ${r.type}. Skipping.`),null;if(Array.isArray(r.children))for(const e of r.children)await this._putBlock(e,t,c,d,!0);if(n&&o)return"number"==typeof i.parentPosition?o.blocks.splice(i.parentPosition,0,c):o.blocks.push(c),c.parent=o,c;i.dontCopyScripts||this._updateScriptFieldReferences(e,c);return this._proxifyAndAttachTree(c,o,s,i.parentPosition)}async _createUnproxifiedBlock(e,t,a,i,n){let r=le.instance.getTemplate(n.packageType||n.type,i.name,e);if(!r)return null;if(t){const e=r.template.clone().specialize(t);r={displayName:r.displayName,typeName:r.typeName,template:e,inputs:r.inputs,outputs:r.outputs}}const s=new ce(void 0,void 0,r.typeName,void 0,r.displayName,n),o=await this.itemRepo.createFieldsForItem(s,r.template,n,!0);return s.setFields(o),s.blocks=[],await this.itemRepo.createScriptsForItem(s,a,n,!1),s}_proxifyAndAttachTree(e,t,a,i){const n=e=>{if(Array.isArray(e.blocks)&&e.blocks.length)for(const t of e.blocks)n(t);const t=e.blocks.map((e=>S.instance.proxyBlock(e,a)));e.blocks=S.instance.proxyBlockArray(t,e,a),e.scripts=S.instance.proxyScriptArray(e.scripts,e,a)};n(e),e.parent=t;const r=S.instance.proxyBlock(e,a);return"number"==typeof i?t.blocks.splice(i,0,r):t.blocks.push(r),r}_findItemById(e){return this.itemRepo.findLoadedItem(e)}_findItemField(e,t){if(!e.fieldInstances)return null;for(const a of e.fieldInstances)if(a.name===t)return a;return null}_findParentBlock(e,t,a){const i=this._findItemField(e,t);if(!i)return null;const n=a.split("/");let r=i.blocks,s=null;for(const e of n)s=r[e],r=s.blocks;return s}_getBlockIndex(e){if(!e.parent)return 0;let t=0;for(const a of e.parent.blocks){if(e.id===a.id)return t;t++}throw new Error("Could not find block in parent block array!")}_getBlockPath(e){const t=[];let a=e;for(;a;)t.push(this._getBlockIndex(a)),a=a.parent;return"/"+t.reverse().join("/")}_serializeBlockFields(e){const t=[];if(!Array.isArray(e.fields))return t;for(const a of e.fields)switch(a.type){case"Link":t.push({name:a.name,linkto:a.value?._id});break;case"Attribute":t.push({name:a.name,value:a.value});break;case"Separator":t.push({name:a.name,type:"Separator"})}return t}_serializeScripts(e){const t=[];if(!Array.isArray(e.scripts))return t;for(const a of e.scripts){const e=[],i={item:a.item?.value?._id,fields:e};for(const t of a.fields)e.push({name:t.name,value:t.value});t.push(i)}return t}}Array.prototype.pushAll||(Array.prototype.pushAll=function(e){for(const t of e)this.push(t)}),Array.prototype.removeObject||(Array.prototype.removeObject=function(e){const t=this.indexOf(e);return t>-1&&(this.splice(t,1),!0)}),Array.prototype.moveObjectToArray||(Array.prototype.moveObjectToArray=function(e,t,a){const i=this.indexOf(e);if(i>-1){return(0,this.moveToArray)(i,t,a)}return!1}),Array.prototype.removeByFilterFunc||(Array.prototype.removeByFilterFunc=function(e){let t=0;for(let a=0;a<this.length;a++)e(this[a])&&(this.splice(a,1),a--,t++);return t}),Array.prototype.clone||(Array.prototype.clone=function(){const e=[];for(const t of this)e.push(t);return e});const nr=()=>new Map,rr=e=>{const t=nr();return e.forEach(((e,a)=>{t.set(a,e)})),t},sr=(e,t,a)=>{let i=e.get(t);return void 0===i&&e.set(t,i=a()),i},or=()=>new Set,lr=e=>e[e.length-1],ur=(e,t)=>{for(let a=0;a<t.length;a++)e.push(t[a])},cr=Array.from,dr=Array.isArray;class pr{constructor(){this._observers=nr()}on(e,t){return sr(this._observers,e,or).add(t),t}once(e,t){const a=(...i)=>{this.off(e,a),t(...i)};this.on(e,a)}off(e,t){const a=this._observers.get(e);void 0!==a&&(a.delete(t),0===a.size&&this._observers.delete(e))}emit(e,t){return cr((this._observers.get(e)||nr()).values()).forEach((e=>e(...t)))}destroy(){this._observers=nr()}}class hr{constructor(){this._observers=nr()}on(e,t){sr(this._observers,e,or).add(t)}once(e,t){const a=(...i)=>{this.off(e,a),t(...i)};this.on(e,a)}off(e,t){const a=this._observers.get(e);void 0!==a&&(a.delete(t),0===a.size&&this._observers.delete(e))}emit(e,t){return cr((this._observers.get(e)||nr()).values()).forEach((e=>e(...t)))}destroy(){this._observers=nr()}}const fr=Math.floor,mr=Math.abs,yr=(e,t)=>e<t?e:t,gr=(e,t)=>e>t?e:t,br=Math.pow,vr=e=>0!==e?e<0:1/e<0,_r=64,wr=128,Ar=127,kr=Number.MAX_SAFE_INTEGER,Sr=Number.isInteger||(e=>"number"==typeof e&&isFinite(e)&&fr(e)===e),Nr=String.fromCharCode,xr=/^\s*/g,Tr=/([A-Z])/g,Mr=(e,t)=>(e=>e.replace(xr,""))(e.replace(Tr,(e=>`${t}${(e=>e.toLowerCase())(e)}`))),Vr="undefined"!=typeof TextEncoder?new TextEncoder:null,Cr=Vr?e=>Vr.encode(e):e=>{const t=unescape(encodeURIComponent(e)),a=t.length,i=new Uint8Array(a);for(let e=0;e<a;e++)i[e]=t.codePointAt(e);return i};let Ir="undefined"==typeof TextDecoder?null:new TextDecoder("utf-8",{fatal:!0,ignoreBOM:!0});Ir&&1===Ir.decode(new Uint8Array).length&&(Ir=null);class Fr{constructor(){this.cpos=0,this.cbuf=new Uint8Array(100),this.bufs=[]}}const Er=()=>new Fr,Dr=e=>{let t=e.cpos;for(let a=0;a<e.bufs.length;a++)t+=e.bufs[a].length;return t},Lr=e=>{const t=new Uint8Array(Dr(e));let a=0;for(let i=0;i<e.bufs.length;i++){const n=e.bufs[i];t.set(n,a),a+=n.length}return t.set(new Uint8Array(e.cbuf.buffer,0,e.cpos),a),t},Rr=(e,t)=>{const a=e.cbuf.length;e.cpos===a&&(e.bufs.push(e.cbuf),e.cbuf=new Uint8Array(2*a),e.cpos=0),e.cbuf[e.cpos++]=t},Pr=Rr,Or=(e,t)=>{for(;t>Ar;)Rr(e,wr|Ar&t),t=fr(t/128);Rr(e,Ar&t)},Br=(e,t)=>{const a=vr(t);for(a&&(t=-t),Rr(e,(t>63?wr:0)|(a?_r:0)|63&t),t=fr(t/64);t>0;)Rr(e,(t>Ar?wr:0)|Ar&t),t=fr(t/128)},$r=new Uint8Array(3e4),jr=$r.length/3,Ur=Vr&&Vr.encodeInto?(e,t)=>{if(t.length<jr){const a=Vr.encodeInto(t,$r).written||0;Or(e,a);for(let t=0;t<a;t++)Rr(e,$r[t])}else Wr(e,Cr(t))}:(e,t)=>{const a=unescape(encodeURIComponent(t)),i=a.length;Or(e,i);for(let t=0;t<i;t++)Rr(e,a.codePointAt(t))},zr=(e,t)=>{const a=e.cbuf.length,i=e.cpos,n=yr(a-i,t.length),r=t.length-n;e.cbuf.set(t.subarray(0,n),i),e.cpos+=n,r>0&&(e.bufs.push(e.cbuf),e.cbuf=new Uint8Array(gr(2*a,r)),e.cbuf.set(t.subarray(n)),e.cpos=r)},Wr=(e,t)=>{Or(e,t.byteLength),zr(e,t)},Hr=(e,t)=>{((e,t)=>{const a=e.cbuf.length;a-e.cpos<t&&(e.bufs.push(new Uint8Array(e.cbuf.buffer,0,e.cpos)),e.cbuf=new Uint8Array(2*gr(a,t)),e.cpos=0)})(e,t);const a=new DataView(e.cbuf.buffer,e.cpos,t);return e.cpos+=t,a},Yr=new DataView(new ArrayBuffer(4)),Gr=(e,t)=>{switch(typeof t){case"string":Rr(e,119),Ur(e,t);break;case"number":Sr(t)&&mr(t)<=2147483647?(Rr(e,125),Br(e,t)):(a=t,Yr.setFloat32(0,a),Yr.getFloat32(0)===a?(Rr(e,124),((e,t)=>{Hr(e,4).setFloat32(0,t,!1)})(e,t)):(Rr(e,123),((e,t)=>{Hr(e,8).setFloat64(0,t,!1)})(e,t)));break;case"bigint":Rr(e,122),((e,t)=>{Hr(e,8).setBigInt64(0,t,!1)})(e,t);break;case"object":if(null===t)Rr(e,126);else if(dr(t)){Rr(e,117),Or(e,t.length);for(let a=0;a<t.length;a++)Gr(e,t[a])}else if(t instanceof Uint8Array)Rr(e,116),Wr(e,t);else{Rr(e,118);const a=Object.keys(t);Or(e,a.length);for(let i=0;i<a.length;i++){const n=a[i];Ur(e,n),Gr(e,t[n])}}break;case"boolean":Rr(e,t?120:121);break;default:Rr(e,127)}var a};class qr extends Fr{constructor(e){super(),this.w=e,this.s=null,this.count=0}write(e){this.s===e?this.count++:(this.count>0&&Or(this,this.count-1),this.count=1,this.w(this,e),this.s=e)}}const Zr=e=>{e.count>0&&(Br(e.encoder,1===e.count?e.s:-e.s),e.count>1&&Or(e.encoder,e.count-2))};class Jr{constructor(){this.encoder=new Fr,this.s=0,this.count=0}write(e){this.s===e?this.count++:(Zr(this),this.count=1,this.s=e)}toUint8Array(){return Zr(this),Lr(this.encoder)}}const Kr=e=>{if(e.count>0){const t=2*e.diff+(1===e.count?0:1);Br(e.encoder,t),e.count>1&&Or(e.encoder,e.count-2)}};class Xr{constructor(){this.encoder=new Fr,this.s=0,this.count=0,this.diff=0}write(e){this.diff===e-this.s?(this.s=e,this.count++):(Kr(this),this.count=1,this.diff=e-this.s,this.s=e)}toUint8Array(){return Kr(this),Lr(this.encoder)}}class Qr{constructor(){this.sarr=[],this.s="",this.lensE=new Jr}write(e){this.s+=e,this.s.length>19&&(this.sarr.push(this.s),this.s=""),this.lensE.write(e.length)}toUint8Array(){const e=new Fr;return this.sarr.push(this.s),this.s="",Ur(e,this.sarr.join("")),zr(e,this.lensE.toUint8Array()),Lr(e)}}const es=e=>new Error(e),ts=()=>{throw es("Method unimplemented")},as=()=>{throw es("Unexpected case")},is=es("Unexpected end of array"),ns=es("Integer out of Range");class rs{constructor(e){this.arr=e,this.pos=0}}const ss=e=>new rs(e),os=e=>((e,t)=>{const a=new Uint8Array(e.arr.buffer,e.pos+e.arr.byteOffset,t);return e.pos+=t,a})(e,us(e)),ls=e=>e.arr[e.pos++],us=e=>{let t=0,a=1;const i=e.arr.length;for(;e.pos<i;){const i=e.arr[e.pos++];if(t+=(i&Ar)*a,a*=128,i<wr)return t;if(t>kr)throw ns}throw is},cs=e=>{let t=e.arr[e.pos++],a=63&t,i=64;const n=(t&_r)>0?-1:1;if(!(t&wr))return n*a;const r=e.arr.length;for(;e.pos<r;){if(t=e.arr[e.pos++],a+=(t&Ar)*i,i*=128,t<wr)return n*a;if(a>kr)throw ns}throw is},ds=Ir?e=>Ir.decode(os(e)):e=>{let t=us(e);if(0===t)return"";{let a=String.fromCodePoint(ls(e));if(--t<100)for(;t--;)a+=String.fromCodePoint(ls(e));else for(;t>0;){const i=t<1e4?t:1e4,n=e.arr.subarray(e.pos,e.pos+i);e.pos+=i,a+=String.fromCodePoint.apply(null,n),t-=i}return decodeURIComponent(escape(a))}},ps=(e,t)=>{const a=new DataView(e.arr.buffer,e.arr.byteOffset+e.pos,t);return e.pos+=t,a},hs=[e=>{},e=>null,cs,e=>ps(e,4).getFloat32(0,!1),e=>ps(e,8).getFloat64(0,!1),e=>ps(e,8).getBigInt64(0,!1),e=>!1,e=>!0,ds,e=>{const t=us(e),a={};for(let i=0;i<t;i++){a[ds(e)]=fs(e)}return a},e=>{const t=us(e),a=[];for(let i=0;i<t;i++)a.push(fs(e));return a},os],fs=e=>hs[127-ls(e)](e);class ms extends rs{constructor(e,t){super(e),this.reader=t,this.s=null,this.count=0}read(){var e;return 0===this.count&&(this.s=this.reader(this),(e=this).pos!==e.arr.length?this.count=us(this)+1:this.count=-1),this.count--,this.s}}class ys extends rs{constructor(e){super(e),this.s=0,this.count=0}read(){if(0===this.count){this.s=cs(this);const e=vr(this.s);this.count=1,e&&(this.s=-this.s,this.count=us(this)+2)}return this.count--,this.s}}class gs extends rs{constructor(e){super(e),this.s=0,this.count=0,this.diff=0}read(){if(0===this.count){const e=cs(this),t=1&e;this.diff=fr(e/2),this.count=1,t&&(this.count=us(this)+2)}return this.s+=this.diff,this.count--,this.s}}class bs{constructor(e){this.decoder=new ys(e),this.str=ds(this.decoder),this.spos=0}read(){const e=this.spos+this.decoder.read(),t=this.str.slice(this.spos,e);return this.spos=e,t}}const vs=crypto.getRandomValues.bind(crypto),_s=()=>vs(new Uint32Array(1))[0],ws=[1e7]+-1e3+-4e3+-8e3+-1e11,As=()=>ws.replace(/[018]/g,(e=>(e^_s()&15>>e/4).toString(16))),ks=Date.now,Ss=e=>new Promise(e);Promise.all.bind(Promise);const Ns=e=>void 0===e?null:e;let xs=new class{constructor(){this.map=new Map}setItem(e,t){this.map.set(e,t)}getItem(e){return this.map.get(e)}},Ts=!0;try{"undefined"!=typeof localStorage&&localStorage&&(xs=localStorage,Ts=!1)}catch(e){}const Ms=xs,Vs=Object.assign,Cs=Object.keys,Is=e=>Cs(e).length,Fs=e=>Cs(e).length,Es=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),Ds=Object.freeze,Ls=e=>{for(const t in e){const a=e[t];"object"!=typeof a&&"function"!=typeof a||Ls(e[t])}return Ds(e)},Rs=Symbol("Equality"),Ps=(e,t,a=0)=>{try{for(;a<e.length;a++)e[a](...t)}finally{a<e.length&&Ps(e,t,a+1)}},Os=e=>e,Bs=(e,t)=>{if(e===t)return!0;if(null==e||null==t||e.constructor!==t.constructor)return!1;if(null!=e[Rs])return e[Rs](t);switch(e.constructor){case ArrayBuffer:e=new Uint8Array(e),t=new Uint8Array(t);case Uint8Array:if(e.byteLength!==t.byteLength)return!1;for(let a=0;a<e.length;a++)if(e[a]!==t[a])return!1;break;case Set:if(e.size!==t.size)return!1;for(const a of e)if(!t.has(a))return!1;break;case Map:if(e.size!==t.size)return!1;for(const a of e.keys())if(!t.has(a)||!Bs(e.get(a),t.get(a)))return!1;break;case Object:if(Is(e)!==Is(t))return!1;for(const a in e)if(!Es(e,a)||!Bs(e[a],t[a]))return!1;break;case Array:if(e.length!==t.length)return!1;for(let a=0;a<e.length;a++)if(!Bs(e[a],t[a]))return!1;break;default:return!1}return!0},$s="undefined"!=typeof process&&process.release&&/node|io\.js/.test(process.release.name)&&"[object process]"===Object.prototype.toString.call("undefined"!=typeof process?process:0),js="undefined"!=typeof window&&"undefined"!=typeof document&&!$s;let Us;const zs=e=>(()=>{if(void 0===Us)if($s){Us=nr();const e=process.argv;let t=null;for(let a=0;a<e.length;a++){const i=e[a];"-"===i[0]?(null!==t&&Us.set(t,""),t=i):null!==t&&(Us.set(t,i),t=null)}null!==t&&Us.set(t,"")}else"object"==typeof location?(Us=nr(),(location.search||"?").slice(1).split("&").forEach((e=>{if(0!==e.length){const[t,a]=e.split("=");Us.set(`--${Mr(t,"-")}`,a),Us.set(`-${Mr(t,"-")}`,a)}}))):Us=nr();return Us})().has(e),Ws=e=>Ns($s?process.env[e.toUpperCase().replaceAll("-","_")]:Ms.getItem(e)),Hs=e=>zs("--"+e)||null!==Ws(e);Hs("production");var Ys;const Gs=$s&&(Ys=process.env.FORCE_COLOR,["true","1","2"].includes(Ys))||!zs("--no-colors")&&!Hs("no-color")&&(!$s||process.stdout.isTTY)&&(!$s||zs("--color")||null!==Ws("COLORTERM")||(Ws("TERM")||"").includes("color")),qs=e=>new Uint8Array(e),Zs=js?e=>{let t="";for(let a=0;a<e.byteLength;a++)t+=Nr(e[a]);return btoa(t)}:e=>Buffer.from(e.buffer,e.byteOffset,e.byteLength).toString("base64"),Js=js?e=>{const t=atob(e),a=qs(t.length);for(let e=0;e<t.length;e++)a[e]=t.charCodeAt(e);return a}:e=>{const t=Buffer.from(e,"base64");return((e,t,a)=>new Uint8Array(e,t,a))(t.buffer,t.byteOffset,t.byteLength)};class Ks{constructor(e,t){this.left=e,this.right=t}}const Xs=(e,t)=>new Ks(e,t);"undefined"!=typeof DOMParser&&new DOMParser;const Qs=Symbol,eo=Qs(),to=Qs(),ao=Qs(),io=Qs(),no=Qs(),ro=Qs(),so=Qs(),oo=Qs(),lo=Qs(),uo={[eo]:Xs("font-weight","bold"),[to]:Xs("font-weight","normal"),[ao]:Xs("color","blue"),[no]:Xs("color","green"),[io]:Xs("color","grey"),[ro]:Xs("color","red"),[so]:Xs("color","purple"),[oo]:Xs("color","orange"),[lo]:Xs("color","black")},co=Gs?e=>{1===e.length&&e[0]?.constructor===Function&&(e=e[0]());const t=[],a=[],i=nr();let n=[],r=0;for(;r<e.length;r++){const n=e[r],s=uo[n];if(void 0!==s)i.set(s.left,s.right);else{if(void 0===n)break;if(n.constructor!==String&&n.constructor!==Number)break;{const e=((e,t)=>{const a=[];for(const[i,n]of e)a.push(t(n,i));return a})(i,((e,t)=>`${t}:${e};`)).join("");r>0||e.length>0?(t.push("%c"+n),a.push(e)):t.push(n)}}}for(r>0&&(n=a,n.unshift(t.join("")));r<e.length;r++){const t=e[r];t instanceof Symbol||n.push(t)}return n}:e=>{1===e.length&&e[0]?.constructor===Function&&(e=e[0]());const t=[],a=[];let i=0;for(;i<e.length;i++){const a=e[i];if(void 0===a)break;if(a.constructor===String||a.constructor===Number)t.push(a);else if(a.constructor===Object)break}for(i>0&&a.push(t.join(""));i<e.length;i++){const t=e[i];t instanceof Symbol||a.push(t)}return a},po=or(),ho=e=>({[Symbol.iterator](){return this},next:e}),fo=(e,t)=>ho((()=>{const{done:a,value:i}=e.next();return{done:a,value:a?void 0:t(i)}}));class mo{constructor(e,t){this.clock=e,this.len=t}}class yo{constructor(){this.clients=new Map}}const go=(e,t,a)=>t.clients.forEach(((t,i)=>{const n=e.doc.store.clients.get(i);if(null!=n){const i=n[n.length-1],r=i.id.clock+i.length;for(let i=0,s=t[i];i<t.length&&s.clock<r;s=t[++i])ol(e,n,s.clock,s.len,a)}})),bo=(e,t)=>{const a=e.clients.get(t.client);return void 0!==a&&null!==((e,t)=>{let a=0,i=e.length-1;for(;a<=i;){const n=fr((a+i)/2),r=e[n],s=r.clock;if(s<=t){if(t<s+r.len)return n;a=n+1}else i=n-1}return null})(a,t.clock)},vo=e=>{e.clients.forEach((e=>{let t,a;for(e.sort(((e,t)=>e.clock-t.clock)),t=1,a=1;t<e.length;t++){const i=e[a-1],n=e[t];i.clock+i.len>=n.clock?i.len=gr(i.len,n.clock+n.len-i.clock):(a<t&&(e[a]=n),a++)}e.length=a}))},_o=(e,t,a,i)=>{sr(e.clients,t,(()=>[])).push(new mo(a,i))},wo=e=>{const t=new yo;return e.clients.forEach(((e,a)=>{const i=[];for(let t=0;t<e.length;t++){const a=e[t];if(a.deleted){const n=a.id.clock;let r=a.length;if(t+1<e.length)for(let a=e[t+1];t+1<e.length&&a.deleted;a=e[1+ ++t])r+=a.length;i.push(new mo(n,r))}}i.length>0&&t.clients.set(a,i)})),t},Ao=(e,t)=>{Or(e.restEncoder,t.clients.size),cr(t.clients.entries()).sort(((e,t)=>t[0]-e[0])).forEach((([t,a])=>{e.resetDsCurVal(),Or(e.restEncoder,t);const i=a.length;Or(e.restEncoder,i);for(let t=0;t<i;t++){const i=a[t];e.writeDsClock(i.clock),e.writeDsLen(i.len)}}))},ko=e=>{const t=new yo,a=us(e.restDecoder);for(let i=0;i<a;i++){e.resetDsCurVal();const a=us(e.restDecoder),i=us(e.restDecoder);if(i>0){const n=sr(t.clients,a,(()=>[]));for(let t=0;t<i;t++)n.push(new mo(e.readDsClock(),e.readDsLen()))}}return t},So=(e,t,a)=>{const i=new yo,n=us(e.restDecoder);for(let r=0;r<n;r++){e.resetDsCurVal();const n=us(e.restDecoder),r=us(e.restDecoder),s=a.clients.get(n)||[],o=el(a,n);for(let a=0;a<r;a++){const a=e.readDsClock(),r=a+e.readDsLen();if(a<o){o<r&&_o(i,n,o,r-o);let e=al(s,a),l=s[e];for(!l.deleted&&l.id.clock<a&&(s.splice(e+1,0,Wu(t,l,a-l.id.clock)),e++);e<s.length&&(l=s[e++],l.id.clock<r);)l.deleted||(r<l.id.clock+l.length&&s.splice(e,0,Wu(t,l,r-l.id.clock)),l.delete(t))}else _o(i,n,a,r-a)}}if(i.clients.size>0){const e=new Do;return Or(e.restEncoder,0),Ao(e,i),e.toUint8Array()}return null},No=_s;class xo extends pr{constructor({guid:e=As(),collectionid:t=null,gc:a=!0,gcFilter:i=()=>!0,meta:n=null,autoLoad:r=!1,shouldLoad:s=!0}={}){super(),this.gc=a,this.gcFilter=i,this.clientID=No(),this.guid=e,this.collectionid=t,this.share=new Map,this.store=new Xo,this._transaction=null,this._transactionCleanups=[],this.subdocs=new Set,this._item=null,this.shouldLoad=s,this.autoLoad=r,this.meta=n,this.isLoaded=!1,this.isSynced=!1,this.isDestroyed=!1,this.whenLoaded=Ss((e=>{this.on("load",(()=>{this.isLoaded=!0,e(this)}))}));const o=()=>Ss((e=>{const t=a=>{void 0!==a&&!0!==a||(this.off("sync",t),e())};this.on("sync",t)}));this.on("sync",(e=>{!1===e&&this.isSynced&&(this.whenSynced=o()),this.isSynced=void 0===e||!0===e,this.isSynced&&!this.isLoaded&&this.emit("load",[this])})),this.whenSynced=o()}load(){const e=this._item;null===e||this.shouldLoad||hl(e.parent.doc,(e=>{e.subdocsLoaded.add(this)}),null,!0),this.shouldLoad=!0}getSubdocs(){return this.subdocs}getSubdocGuids(){return new Set(cr(this.subdocs).map((e=>e.guid)))}transact(e,t=null){return hl(this,e,t)}get(e,t=Dl){const a=sr(this.share,e,(()=>{const e=new t;return e._integrate(this,null),e})),i=a.constructor;if(t!==Dl&&i!==t){if(i===Dl){const i=new t;i._map=a._map,a._map.forEach((e=>{for(;null!==e;e=e.left)e.parent=i})),i._start=a._start;for(let e=i._start;null!==e;e=e.right)e.parent=i;return i._length=a._length,this.share.set(e,i),i._integrate(this,null),i}throw new Error(`Type with the name ${e} has already been defined with a different constructor`)}return a}getArray(e=""){return this.get(e,Xl)}getText(e=""){return this.get(e,yu)}getMap(e=""){return this.get(e,eu)}getXmlElement(e=""){return this.get(e,vu)}getXmlFragment(e=""){return this.get(e,bu)}toJSON(){const e={};return this.share.forEach(((t,a)=>{e[a]=t.toJSON()})),e}destroy(){this.isDestroyed=!0,cr(this.subdocs).forEach((e=>e.destroy()));const e=this._item;if(null!==e){this._item=null;const t=e.content;t.doc=new xo({guid:this.guid,...t.opts,shouldLoad:!1}),t.doc._item=e,hl(e.parent.doc,(a=>{const i=t.doc;e.deleted||a.subdocsAdded.add(i),a.subdocsRemoved.add(this)}),null,!0)}this.emit("destroyed",[!0]),this.emit("destroy",[this]),super.destroy()}}class To{constructor(e){this.restDecoder=e}resetDsCurVal(){}readDsClock(){return us(this.restDecoder)}readDsLen(){return us(this.restDecoder)}}class Mo extends To{readLeftID(){return Zo(us(this.restDecoder),us(this.restDecoder))}readRightID(){return Zo(us(this.restDecoder),us(this.restDecoder))}readClient(){return us(this.restDecoder)}readInfo(){return ls(this.restDecoder)}readString(){return ds(this.restDecoder)}readParentInfo(){return 1===us(this.restDecoder)}readTypeRef(){return us(this.restDecoder)}readLen(){return us(this.restDecoder)}readAny(){return fs(this.restDecoder)}readBuf(){return(e=>{const t=qs(e.byteLength);return t.set(e),t})(os(this.restDecoder))}readJSON(){return JSON.parse(ds(this.restDecoder))}readKey(){return ds(this.restDecoder)}}class Vo{constructor(e){this.dsCurrVal=0,this.restDecoder=e}resetDsCurVal(){this.dsCurrVal=0}readDsClock(){return this.dsCurrVal+=us(this.restDecoder),this.dsCurrVal}readDsLen(){const e=us(this.restDecoder)+1;return this.dsCurrVal+=e,e}}class Co extends Vo{constructor(e){super(e),this.keys=[],us(e),this.keyClockDecoder=new gs(os(e)),this.clientDecoder=new ys(os(e)),this.leftClockDecoder=new gs(os(e)),this.rightClockDecoder=new gs(os(e)),this.infoDecoder=new ms(os(e),ls),this.stringDecoder=new bs(os(e)),this.parentInfoDecoder=new ms(os(e),ls),this.typeRefDecoder=new ys(os(e)),this.lenDecoder=new ys(os(e))}readLeftID(){return new Go(this.clientDecoder.read(),this.leftClockDecoder.read())}readRightID(){return new Go(this.clientDecoder.read(),this.rightClockDecoder.read())}readClient(){return this.clientDecoder.read()}readInfo(){return this.infoDecoder.read()}readString(){return this.stringDecoder.read()}readParentInfo(){return 1===this.parentInfoDecoder.read()}readTypeRef(){return this.typeRefDecoder.read()}readLen(){return this.lenDecoder.read()}readAny(){return fs(this.restDecoder)}readBuf(){return os(this.restDecoder)}readJSON(){return fs(this.restDecoder)}readKey(){const e=this.keyClockDecoder.read();if(e<this.keys.length)return this.keys[e];{const e=this.stringDecoder.read();return this.keys.push(e),e}}}class Io{constructor(){this.restEncoder=Er()}toUint8Array(){return Lr(this.restEncoder)}resetDsCurVal(){}writeDsClock(e){Or(this.restEncoder,e)}writeDsLen(e){Or(this.restEncoder,e)}}class Fo extends Io{writeLeftID(e){Or(this.restEncoder,e.client),Or(this.restEncoder,e.clock)}writeRightID(e){Or(this.restEncoder,e.client),Or(this.restEncoder,e.clock)}writeClient(e){Or(this.restEncoder,e)}writeInfo(e){Pr(this.restEncoder,e)}writeString(e){Ur(this.restEncoder,e)}writeParentInfo(e){Or(this.restEncoder,e?1:0)}writeTypeRef(e){Or(this.restEncoder,e)}writeLen(e){Or(this.restEncoder,e)}writeAny(e){Gr(this.restEncoder,e)}writeBuf(e){Wr(this.restEncoder,e)}writeJSON(e){Ur(this.restEncoder,JSON.stringify(e))}writeKey(e){Ur(this.restEncoder,e)}}class Eo{constructor(){this.restEncoder=Er(),this.dsCurrVal=0}toUint8Array(){return Lr(this.restEncoder)}resetDsCurVal(){this.dsCurrVal=0}writeDsClock(e){const t=e-this.dsCurrVal;this.dsCurrVal=e,Or(this.restEncoder,t)}writeDsLen(e){0===e&&as(),Or(this.restEncoder,e-1),this.dsCurrVal+=e}}class Do extends Eo{constructor(){super(),this.keyMap=new Map,this.keyClock=0,this.keyClockEncoder=new Xr,this.clientEncoder=new Jr,this.leftClockEncoder=new Xr,this.rightClockEncoder=new Xr,this.infoEncoder=new qr(Pr),this.stringEncoder=new Qr,this.parentInfoEncoder=new qr(Pr),this.typeRefEncoder=new Jr,this.lenEncoder=new Jr}toUint8Array(){const e=Er();return Or(e,0),Wr(e,this.keyClockEncoder.toUint8Array()),Wr(e,this.clientEncoder.toUint8Array()),Wr(e,this.leftClockEncoder.toUint8Array()),Wr(e,this.rightClockEncoder.toUint8Array()),Wr(e,Lr(this.infoEncoder)),Wr(e,this.stringEncoder.toUint8Array()),Wr(e,Lr(this.parentInfoEncoder)),Wr(e,this.typeRefEncoder.toUint8Array()),Wr(e,this.lenEncoder.toUint8Array()),zr(e,Lr(this.restEncoder)),Lr(e)}writeLeftID(e){this.clientEncoder.write(e.client),this.leftClockEncoder.write(e.clock)}writeRightID(e){this.clientEncoder.write(e.client),this.rightClockEncoder.write(e.clock)}writeClient(e){this.clientEncoder.write(e)}writeInfo(e){this.infoEncoder.write(e)}writeString(e){this.stringEncoder.write(e)}writeParentInfo(e){this.parentInfoEncoder.write(e?1:0)}writeTypeRef(e){this.typeRefEncoder.write(e)}writeLen(e){this.lenEncoder.write(e)}writeAny(e){Gr(this.restEncoder,e)}writeBuf(e){Wr(this.restEncoder,e)}writeJSON(e){Gr(this.restEncoder,e)}writeKey(e){const t=this.keyMap.get(e);void 0===t?(this.keyClockEncoder.write(this.keyClock++),this.stringEncoder.write(e)):this.keyClockEncoder.write(t)}}const Lo=(e,t,a)=>{const i=new Map;a.forEach(((e,a)=>{el(t,a)>e&&i.set(a,e)})),Qo(t).forEach(((e,t)=>{a.has(t)||i.set(t,0)})),Or(e.restEncoder,i.size),cr(i.entries()).sort(((e,t)=>t[0]-e[0])).forEach((([a,i])=>{((e,t,a,i)=>{i=gr(i,t[0].id.clock);const n=al(t,i);Or(e.restEncoder,t.length-n),e.writeClient(a),Or(e.restEncoder,i);const r=t[n];r.write(e,i-r.id.clock);for(let a=n+1;a<t.length;a++)t[a].write(e,0)})(e,t.clients.get(a),a,i)}))},Ro=(e,t,a,i=new Co(e))=>hl(t,(e=>{e.local=!1;let t=!1;const a=e.doc,n=a.store,r=((e,t)=>{const a=nr(),i=us(e.restDecoder);for(let n=0;n<i;n++){const i=us(e.restDecoder),n=new Array(i),r=e.readClient();let s=us(e.restDecoder);a.set(r,{i:0,refs:n});for(let a=0;a<i;a++){const i=e.readInfo();switch(31&i){case 0:{const t=e.readLen();n[a]=new Su(Zo(r,s),t),s+=t;break}case 10:{const t=us(e.restDecoder);n[a]=new qu(Zo(r,s),t),s+=t;break}default:{const o=!(192&i),l=new Hu(Zo(r,s),null,(i&wr)===wr?e.readLeftID():null,null,(i&_r)===_r?e.readRightID():null,o?e.readParentInfo()?t.get(e.readString()):e.readLeftID():null,!o||32&~i?null:e.readString(),Yu(e,i));n[a]=l,s+=l.length}}}}return a})(i,a),s=((e,t,a)=>{const i=[];let n=cr(a.keys()).sort(((e,t)=>e-t));if(0===n.length)return null;const r=()=>{if(0===n.length)return null;let e=a.get(n[n.length-1]);for(;e.refs.length===e.i;){if(n.pop(),!(n.length>0))return null;e=a.get(n[n.length-1])}return e};let s=r();if(null===s)return null;const o=new Xo,l=new Map,u=(e,t)=>{const a=l.get(e);(null==a||a>t)&&l.set(e,t)};let c=s.refs[s.i++];const d=new Map,p=()=>{for(const e of i){const t=e.id.client,i=a.get(t);i?(i.i--,o.clients.set(t,i.refs.slice(i.i)),a.delete(t),i.i=0,i.refs=[]):o.clients.set(t,[e]),n=n.filter((e=>e!==t))}i.length=0};for(;;){if(c.constructor!==qu){const n=sr(d,c.id.client,(()=>el(t,c.id.client)))-c.id.clock;if(n<0)i.push(c),u(c.id.client,c.id.clock-1),p();else{const r=c.getMissing(e,t);if(null!==r){i.push(c);const e=a.get(r)||{refs:[],i:0};if(e.refs.length!==e.i){c=e.refs[e.i++];continue}u(r,el(t,r)),p()}else(0===n||n<c.length)&&(c.integrate(e,n),d.set(c.id.client,c.id.clock+c.length))}}if(i.length>0)c=i.pop();else if(null!==s&&s.i<s.refs.length)c=s.refs[s.i++];else{if(s=r(),null===s)break;c=s.refs[s.i++]}}if(o.clients.size>0){const e=new Do;return Lo(e,o,new Map),Or(e.restEncoder,0),{missing:l,update:e.toUint8Array()}}return null})(e,n,r),o=n.pendingStructs;if(o){for(const[e,a]of o.missing)if(a<el(n,e)){t=!0;break}if(s){for(const[e,t]of s.missing){const a=o.missing.get(e);(null==a||a>t)&&o.missing.set(e,t)}o.update=bl([o.update,s.update])}}else n.pendingStructs=s;const l=So(i,e,n);if(n.pendingDs){const t=new Co(ss(n.pendingDs));us(t.restDecoder);const a=So(t,e,n);n.pendingDs=l&&a?bl([l,a]):l||a}else n.pendingDs=l;if(t){const t=n.pendingStructs.update;n.pendingStructs=null,Po(e.doc,t)}}),a,!1),Po=(e,t,a,i=Co)=>{const n=ss(t);Ro(n,e,a,new i(n))},Oo=(e,t=new Uint8Array([0]),a=new Do)=>{((e,t,a=new Map)=>{Lo(e,t.store,a),Ao(e,wo(t.store))})(a,e,Bo(t));const i=[a.toUint8Array()];if(e.store.pendingDs&&i.push(e.store.pendingDs),e.store.pendingStructs&&i.push(vl(e.store.pendingStructs.update,t)),i.length>1){if(a.constructor===Fo)return yl(i.map(((e,t)=>0===t?e:kl(e))));if(a.constructor===Do)return bl(i)}return i[0]},Bo=e=>(e=>{const t=new Map,a=us(e.restDecoder);for(let i=0;i<a;i++){const a=us(e.restDecoder),i=us(e.restDecoder);t.set(a,i)}return t})(new To(ss(e))),$o=(e,t)=>(Or(e.restEncoder,t.size),cr(t.entries()).sort(((e,t)=>t[0]-e[0])).forEach((([t,a])=>{Or(e.restEncoder,t),Or(e.restEncoder,a)})),e),jo=(e,t=new Eo)=>(e instanceof Map?$o(t,e):((e,t)=>{$o(e,Qo(t.store))})(t,e),t.toUint8Array());class Uo{constructor(){this.l=[]}}const zo=()=>new Uo,Wo=(e,t)=>e.l.push(t),Ho=(e,t)=>{const a=e.l,i=a.length;e.l=a.filter((e=>t!==e)),i===e.l.length&&console.error("[yjs] Tried to remove event handler that doesn't exist.")},Yo=(e,t,a)=>Ps(e.l,[t,a]);class Go{constructor(e,t){this.client=e,this.clock=t}}const qo=(e,t)=>e===t||null!==e&&null!==t&&e.client===t.client&&e.clock===t.clock,Zo=(e,t)=>new Go(e,t),Jo=(e,t)=>void 0===t?!e.deleted:t.sv.has(e.id.client)&&(t.sv.get(e.id.client)||0)>e.id.clock&&!bo(t.ds,e.id),Ko=(e,t)=>{const a=sr(e.meta,Ko,or),i=e.doc.store;a.has(t)||(t.sv.forEach(((t,a)=>{t<el(i,a)&&rl(e,Zo(a,t))})),go(e,t.ds,(e=>{})),a.add(t))};class Xo{constructor(){this.clients=new Map,this.pendingStructs=null,this.pendingDs=null}}const Qo=e=>{const t=new Map;return e.clients.forEach(((e,a)=>{const i=e[e.length-1];t.set(a,i.id.clock+i.length)})),t},el=(e,t)=>{const a=e.clients.get(t);if(void 0===a)return 0;const i=a[a.length-1];return i.id.clock+i.length},tl=(e,t)=>{let a=e.clients.get(t.id.client);if(void 0===a)a=[],e.clients.set(t.id.client,a);else{const e=a[a.length-1];if(e.id.clock+e.length!==t.id.clock)throw as()}a.push(t)},al=(e,t)=>{let a=0,i=e.length-1,n=e[i],r=n.id.clock;if(r===t)return i;let s=fr(t/(r+n.length-1)*i);for(;a<=i;){if(n=e[s],r=n.id.clock,r<=t){if(t<r+n.length)return s;a=s+1}else i=s-1;s=fr((a+i)/2)}throw as()},il=(e,t)=>{const a=e.clients.get(t.client);return a[al(a,t.clock)]},nl=(e,t,a)=>{const i=al(t,a),n=t[i];return n.id.clock<a&&n instanceof Hu?(t.splice(i+1,0,Wu(e,n,a-n.id.clock)),i+1):i},rl=(e,t)=>{const a=e.doc.store.clients.get(t.client);return a[nl(e,a,t.clock)]},sl=(e,t,a)=>{const i=t.clients.get(a.client),n=al(i,a.clock),r=i[n];return a.clock!==r.id.clock+r.length-1&&r.constructor!==Su&&i.splice(n+1,0,Wu(e,r,a.clock-r.id.clock+1)),r},ol=(e,t,a,i,n)=>{if(0===i)return;const r=a+i;let s,o=nl(e,t,a);do{s=t[o++],r<s.id.clock+s.length&&nl(e,t,r),n(s)}while(o<t.length&&t[o].id.clock<r)};class ll{constructor(e,t,a){this.doc=e,this.deleteSet=new yo,this.beforeState=Qo(e.store),this.afterState=new Map,this.changed=new Map,this.changedParentTypes=new Map,this._mergeStructs=[],this.origin=t,this.meta=new Map,this.local=a,this.subdocsAdded=new Set,this.subdocsRemoved=new Set,this.subdocsLoaded=new Set,this._needFormattingCleanup=!1}}const ul=(e,t)=>!(0===t.deleteSet.clients.size&&!((e,t)=>{for(const[a,i]of e)if(t(i,a))return!0;return!1})(t.afterState,((e,a)=>t.beforeState.get(a)!==e)))&&(vo(t.deleteSet),((e,t)=>{Lo(e,t.doc.store,t.beforeState)})(e,t),Ao(e,t.deleteSet),!0),cl=(e,t,a)=>{const i=t._item;(null===i||i.id.clock<(e.beforeState.get(i.id.client)||0)&&!i.deleted)&&sr(e.changed,t,or).add(a)},dl=(e,t)=>{let a=e[t],i=e[t-1],n=t;for(;n>0&&(i.deleted===a.deleted&&i.constructor===a.constructor&&i.mergeWith(a));a=i,i=e[--n-1])a instanceof Hu&&null!==a.parentSub&&a.parent._map.get(a.parentSub)===a&&a.parent._map.set(a.parentSub,i);const r=t-n;return r&&e.splice(t+1-r,r),r},pl=(e,t)=>{if(t<e.length){const a=e[t],i=a.doc,n=i.store,r=a.deleteSet,s=a._mergeStructs;try{vo(r),a.afterState=Qo(a.doc.store),i.emit("beforeObserverCalls",[a,i]);const e=[];a.changed.forEach(((t,i)=>e.push((()=>{null!==i._item&&i._item.deleted||i._callObserver(a,t)})))),e.push((()=>{a.changedParentTypes.forEach(((e,t)=>{t._dEH.l.length>0&&(null===t._item||!t._item.deleted)&&((e=e.filter((e=>null===e.target._item||!e.target._item.deleted))).forEach((e=>{e.currentTarget=t,e._path=null})),e.sort(((e,t)=>e.path.length-t.path.length)),Yo(t._dEH,e,a))}))})),e.push((()=>i.emit("afterTransaction",[a,i]))),Ps(e,[]),a._needFormattingCleanup&&hu(a)}finally{i.gc&&((e,t,a)=>{for(const[i,n]of e.clients.entries()){const e=t.clients.get(i);for(let i=n.length-1;i>=0;i--){const r=n[i],s=r.clock+r.len;for(let i=al(e,r.clock),n=e[i];i<e.length&&n.id.clock<s;n=e[++i]){const n=e[i];if(r.clock+r.len<=n.id.clock)break;n instanceof Hu&&n.deleted&&!n.keep&&a(n)&&n.gc(t,!1)}}}})(r,n,i.gcFilter),((e,t)=>{e.clients.forEach(((e,a)=>{const i=t.clients.get(a);for(let t=e.length-1;t>=0;t--){const a=e[t];for(let e=yr(i.length-1,1+al(i,a.clock+a.len-1)),t=i[e];e>0&&t.id.clock>=a.clock;t=i[e])e-=1+dl(i,e)}}))})(r,n),a.afterState.forEach(((e,t)=>{const i=a.beforeState.get(t)||0;if(i!==e){const e=n.clients.get(t),a=gr(al(e,i),1);for(let t=e.length-1;t>=a;)t-=1+dl(e,t)}}));for(let e=s.length-1;e>=0;e--){const{client:t,clock:a}=s[e].id,i=n.clients.get(t),r=al(i,a);r+1<i.length&&dl(i,r+1)>1||r>0&&dl(i,r)}if(a.local||a.afterState.get(i.clientID)===a.beforeState.get(i.clientID)||(((...e)=>{console.log(...co(e)),po.forEach((t=>t.print(e)))})(oo,eo,"[yjs] ",to,ro,"Changed the client-id because another client seems to be using it."),i.clientID=No()),i.emit("afterTransactionCleanup",[a,i]),i._observers.has("update")){const e=new Fo;ul(e,a)&&i.emit("update",[e.toUint8Array(),a.origin,i,a])}if(i._observers.has("updateV2")){const e=new Do;ul(e,a)&&i.emit("updateV2",[e.toUint8Array(),a.origin,i,a])}const{subdocsAdded:o,subdocsLoaded:l,subdocsRemoved:u}=a;(o.size>0||u.size>0||l.size>0)&&(o.forEach((e=>{e.clientID=i.clientID,null==e.collectionid&&(e.collectionid=i.collectionid),i.subdocs.add(e)})),u.forEach((e=>i.subdocs.delete(e))),i.emit("subdocs",[{loaded:l,added:o,removed:u},i,a]),u.forEach((e=>e.destroy()))),e.length<=t+1?(i._transactionCleanups=[],i.emit("afterAllTransactions",[i,e])):pl(e,t+1)}}},hl=(e,t,a=null,i=!0)=>{const n=e._transactionCleanups;let r=!1,s=null;null===e._transaction&&(r=!0,e._transaction=new ll(e,a,i),n.push(e._transaction),1===n.length&&e.emit("beforeAllTransactions",[e]),e.emit("beforeTransaction",[e._transaction,e]));try{s=t(e._transaction)}finally{if(r){const t=e._transaction===n[0];e._transaction=null,t&&pl(n,0)}}return s};class fl{constructor(e,t){this.gen=function*(e){const t=us(e.restDecoder);for(let a=0;a<t;a++){const t=us(e.restDecoder),a=e.readClient();let i=us(e.restDecoder);for(let n=0;n<t;n++){const t=e.readInfo();if(10===t){const t=us(e.restDecoder);yield new qu(Zo(a,i),t),i+=t}else if(31&t){const n=!(192&t),r=new Hu(Zo(a,i),null,(t&wr)===wr?e.readLeftID():null,null,(t&_r)===_r?e.readRightID():null,n?e.readParentInfo()?e.readString():e.readLeftID():null,!n||32&~t?null:e.readString(),Yu(e,t));yield r,i+=r.length}else{const t=e.readLen();yield new Su(Zo(a,i),t),i+=t}}}}(e),this.curr=null,this.done=!1,this.filterSkips=t,this.next()}next(){do{this.curr=this.gen.next().value||null}while(this.filterSkips&&null!==this.curr&&this.curr.constructor===qu);return this.curr}}class ml{constructor(e){this.currClient=0,this.startClock=0,this.written=0,this.encoder=e,this.clientStructs=[]}}const yl=e=>bl(e,Mo,Fo),gl=(e,t)=>{if(e.constructor===Su){const{client:a,clock:i}=e.id;return new Su(Zo(a,i+t),e.length-t)}if(e.constructor===qu){const{client:a,clock:i}=e.id;return new qu(Zo(a,i+t),e.length-t)}{const a=e,{client:i,clock:n}=a.id;return new Hu(Zo(i,n+t),null,Zo(i,n+t-1),null,a.rightOrigin,a.parent,a.parentSub,a.content.splice(t))}},bl=(e,t=Co,a=Do)=>{if(1===e.length)return e[0];const i=e.map((e=>new t(ss(e))));let n=i.map((e=>new fl(e,!0))),r=null;const s=new a,o=new ml(s);for(;n=n.filter((e=>null!==e.curr)),n.sort(((e,t)=>{if(e.curr.id.client===t.curr.id.client){const a=e.curr.id.clock-t.curr.id.clock;return 0===a?e.curr.constructor===t.curr.constructor?0:e.curr.constructor===qu?1:-1:a}return t.curr.id.client-e.curr.id.client})),0!==n.length;){const e=n[0],t=e.curr.id.client;if(null!==r){let a=e.curr,i=!1;for(;null!==a&&a.id.clock+a.length<=r.struct.id.clock+r.struct.length&&a.id.client>=r.struct.id.client;)a=e.next(),i=!0;if(null===a||a.id.client!==t||i&&a.id.clock>r.struct.id.clock+r.struct.length)continue;if(t!==r.struct.id.client)wl(o,r.struct,r.offset),r={struct:a,offset:0},e.next();else if(r.struct.id.clock+r.struct.length<a.id.clock)if(r.struct.constructor===qu)r.struct.length=a.id.clock+a.length-r.struct.id.clock;else{wl(o,r.struct,r.offset);const e=a.id.clock-r.struct.id.clock-r.struct.length;r={struct:new qu(Zo(t,r.struct.id.clock+r.struct.length),e),offset:0}}else{const t=r.struct.id.clock+r.struct.length-a.id.clock;t>0&&(r.struct.constructor===qu?r.struct.length-=t:a=gl(a,t)),r.struct.mergeWith(a)||(wl(o,r.struct,r.offset),r={struct:a,offset:0},e.next())}}else r={struct:e.curr,offset:0},e.next();for(let a=e.curr;null!==a&&a.id.client===t&&a.id.clock===r.struct.id.clock+r.struct.length&&a.constructor!==qu;a=e.next())wl(o,r.struct,r.offset),r={struct:a,offset:0}}null!==r&&(wl(o,r.struct,r.offset),r=null),Al(o);const l=(e=>{const t=new yo;for(let a=0;a<e.length;a++)e[a].clients.forEach(((i,n)=>{if(!t.clients.has(n)){const r=i.slice();for(let t=a+1;t<e.length;t++)ur(r,e[t].clients.get(n)||[]);t.clients.set(n,r)}}));return vo(t),t})(i.map((e=>ko(e))));return Ao(s,l),s.toUint8Array()},vl=(e,t,a=Co,i=Do)=>{const n=Bo(t),r=new i,s=new ml(r),o=new a(ss(e)),l=new fl(o,!1);for(;l.curr;){const e=l.curr,t=e.id.client,a=n.get(t)||0;if(l.curr.constructor!==qu)if(e.id.clock+e.length>a)for(wl(s,e,gr(a-e.id.clock,0)),l.next();l.curr&&l.curr.id.client===t;)wl(s,l.curr,0),l.next();else for(;l.curr&&l.curr.id.client===t&&l.curr.id.clock+l.curr.length<=a;)l.next();else l.next()}Al(s);const u=ko(o);return Ao(r,u),r.toUint8Array()},_l=e=>{e.written>0&&(e.clientStructs.push({written:e.written,restEncoder:Lr(e.encoder.restEncoder)}),e.encoder.restEncoder=Er(),e.written=0)},wl=(e,t,a)=>{e.written>0&&e.currClient!==t.id.client&&_l(e),0===e.written&&(e.currClient=t.id.client,e.encoder.writeClient(t.id.client),Or(e.encoder.restEncoder,t.id.clock+a)),t.write(e.encoder,a),e.written++},Al=e=>{_l(e);const t=e.encoder.restEncoder;Or(t,e.clientStructs.length);for(let a=0;a<e.clientStructs.length;a++){const i=e.clientStructs[a];Or(t,i.written),zr(t,i.restEncoder)}},kl=e=>((e,t,a,i)=>{const n=new a(ss(e)),r=new fl(n,!1),s=new i,o=new ml(s);for(let e=r.curr;null!==e;e=r.next())wl(o,t(e),0);Al(o);const l=ko(n);return Ao(s,l),s.toUint8Array()})(e,Os,Co,Fo),Sl="You must not compute changes after the event-handler fired.";class Nl{constructor(e,t){this.target=e,this.currentTarget=e,this.transaction=t,this._changes=null,this._keys=null,this._delta=null,this._path=null}get path(){return this._path||(this._path=xl(this.currentTarget,this.target))}deletes(e){return bo(this.transaction.deleteSet,e.id)}get keys(){if(null===this._keys){if(0===this.transaction.doc._transactionCleanups.length)throw es(Sl);const e=new Map,t=this.target;this.transaction.changed.get(t).forEach((a=>{if(null!==a){const i=t._map.get(a);let n,r;if(this.adds(i)){let e=i.left;for(;null!==e&&this.adds(e);)e=e.left;if(this.deletes(i)){if(null===e||!this.deletes(e))return;n="delete",r=lr(e.content.getContent())}else null!==e&&this.deletes(e)?(n="update",r=lr(e.content.getContent())):(n="add",r=void 0)}else{if(!this.deletes(i))return;n="delete",r=lr(i.content.getContent())}e.set(a,{action:n,oldValue:r})}})),this._keys=e}return this._keys}get delta(){return this.changes.delta}adds(e){return e.id.clock>=(this.transaction.beforeState.get(e.id.client)||0)}get changes(){let e=this._changes;if(null===e){if(0===this.transaction.doc._transactionCleanups.length)throw es(Sl);const t=this.target,a=or(),i=or(),n=[];e={added:a,deleted:i,delta:n,keys:this.keys};if(this.transaction.changed.get(t).has(null)){let e=null;const r=()=>{e&&n.push(e)};for(let n=t._start;null!==n;n=n.right)n.deleted?this.deletes(n)&&!this.adds(n)&&(null!==e&&void 0!==e.delete||(r(),e={delete:0}),e.delete+=n.length,i.add(n)):this.adds(n)?(null!==e&&void 0!==e.insert||(r(),e={insert:[]}),e.insert=e.insert.concat(n.content.getContent()),a.add(n)):(null!==e&&void 0!==e.retain||(r(),e={retain:0}),e.retain+=n.length);null!==e&&void 0===e.retain&&r()}this._changes=e}return e}}const xl=(e,t)=>{const a=[];for(;null!==t._item&&t!==e;){if(null!==t._item.parentSub)a.unshift(t._item.parentSub);else{let e=0,i=t._item.parent._start;for(;i!==t._item&&null!==i;)!i.deleted&&i.countable&&(e+=i.length),i=i.right;a.unshift(e)}t=t._item.parent}return a},Tl=()=>{((...e)=>{console.warn(...co(e)),e.unshift(oo),po.forEach((t=>t.print(e)))})("Invalid access: Add Yjs type to a document before reading data.")};let Ml=0;class Vl{constructor(e,t){e.marker=!0,this.p=e,this.index=t,this.timestamp=Ml++}}const Cl=(e,t,a)=>{e.p.marker=!1,e.p=t,t.marker=!0,e.index=a,e.timestamp=Ml++},Il=(e,t)=>{if(null===e._start||0===t||null===e._searchMarker)return null;const a=0===e._searchMarker.length?null:e._searchMarker.reduce(((e,a)=>mr(t-e.index)<mr(t-a.index)?e:a));let i=e._start,n=0;for(null!==a&&(i=a.p,n=a.index,(e=>{e.timestamp=Ml++})(a));null!==i.right&&n<t;){if(!i.deleted&&i.countable){if(t<n+i.length)break;n+=i.length}i=i.right}for(;null!==i.left&&n>t;)i=i.left,!i.deleted&&i.countable&&(n-=i.length);for(;null!==i.left&&i.left.id.client===i.id.client&&i.left.id.clock+i.left.length===i.id.clock;)i=i.left,!i.deleted&&i.countable&&(n-=i.length);return null!==a&&mr(a.index-n)<i.parent.length/80?(Cl(a,i,n),a):((e,t,a)=>{if(e.length>=80){const i=e.reduce(((e,t)=>e.timestamp<t.timestamp?e:t));return Cl(i,t,a),i}{const i=new Vl(t,a);return e.push(i),i}})(e._searchMarker,i,n)},Fl=(e,t,a)=>{for(let i=e.length-1;i>=0;i--){const n=e[i];if(a>0){let t=n.p;for(t.marker=!1;t&&(t.deleted||!t.countable);)t=t.left,t&&!t.deleted&&t.countable&&(n.index-=t.length);if(null===t||!0===t.marker){e.splice(i,1);continue}n.p=t,t.marker=!0}(t<n.index||a>0&&t===n.index)&&(n.index=gr(t,n.index+a))}},El=(e,t,a)=>{const i=e,n=t.changedParentTypes;for(;sr(n,e,(()=>[])).push(a),null!==e._item;)e=e._item.parent;Yo(i._eH,a,t)};class Dl{constructor(){this._item=null,this._map=new Map,this._start=null,this.doc=null,this._length=0,this._eH=zo(),this._dEH=zo(),this._searchMarker=null}get parent(){return this._item?this._item.parent:null}_integrate(e,t){this.doc=e,this._item=t}_copy(){throw ts()}clone(){throw ts()}_write(e){}get _first(){let e=this._start;for(;null!==e&&e.deleted;)e=e.right;return e}_callObserver(e,t){!e.local&&this._searchMarker&&(this._searchMarker.length=0)}observe(e){Wo(this._eH,e)}observeDeep(e){Wo(this._dEH,e)}unobserve(e){Ho(this._eH,e)}unobserveDeep(e){Ho(this._dEH,e)}toJSON(){}}const Ll=(e,t,a)=>{e.doc??Tl(),t<0&&(t=e._length+t),a<0&&(a=e._length+a);let i=a-t;const n=[];let r=e._start;for(;null!==r&&i>0;){if(r.countable&&!r.deleted){const e=r.content.getContent();if(e.length<=t)t-=e.length;else{for(let a=t;a<e.length&&i>0;a++)n.push(e[a]),i--;t=0}}r=r.right}return n},Rl=e=>{e.doc??Tl();const t=[];let a=e._start;for(;null!==a;){if(a.countable&&!a.deleted){const e=a.content.getContent();for(let a=0;a<e.length;a++)t.push(e[a])}a=a.right}return t},Pl=(e,t)=>{let a=0,i=e._start;for(e.doc??Tl();null!==i;){if(i.countable&&!i.deleted){const n=i.content.getContent();for(let i=0;i<n.length;i++)t(n[i],a++,e)}i=i.right}},Ol=(e,t)=>{const a=[];return Pl(e,((i,n)=>{a.push(t(i,n,e))})),a},Bl=e=>{let t=e._start,a=null,i=0;return{[Symbol.iterator](){return this},next:()=>{if(null===a){for(;null!==t&&t.deleted;)t=t.right;if(null===t)return{done:!0,value:void 0};a=t.content.getContent(),i=0,t=t.right}const e=a[i++];return a.length<=i&&(a=null),{done:!1,value:e}}}},$l=(e,t)=>{e.doc??Tl();const a=Il(e,t);let i=e._start;for(null!==a&&(i=a.p,t-=a.index);null!==i;i=i.right)if(!i.deleted&&i.countable){if(t<i.length)return i.content.getContent()[t];t-=i.length}},jl=(e,t,a,i)=>{let n=a;const r=e.doc,s=r.clientID,o=r.store,l=null===a?t._start:a.right;let u=[];const c=()=>{u.length>0&&(n=new Hu(Zo(s,el(o,s)),n,n&&n.lastId,l,l&&l.id,t,null,new Eu(u)),n.integrate(e,0),u=[])};i.forEach((a=>{if(null===a)u.push(a);else switch(a.constructor){case Number:case Object:case Boolean:case Array:case String:u.push(a);break;default:switch(c(),a.constructor){case Uint8Array:case ArrayBuffer:n=new Hu(Zo(s,el(o,s)),n,n&&n.lastId,l,l&&l.id,t,null,new Nu(new Uint8Array(a))),n.integrate(e,0);break;case xo:n=new Hu(Zo(s,el(o,s)),n,n&&n.lastId,l,l&&l.id,t,null,new Mu(a)),n.integrate(e,0);break;default:if(!(a instanceof Dl))throw new Error("Unexpected content type in insert operation");n=new Hu(Zo(s,el(o,s)),n,n&&n.lastId,l,l&&l.id,t,null,new zu(a)),n.integrate(e,0)}}})),c()},Ul=()=>es("Length exceeded!"),zl=(e,t,a,i)=>{if(a>t._length)throw Ul();if(0===a)return t._searchMarker&&Fl(t._searchMarker,a,i.length),jl(e,t,null,i);const n=a,r=Il(t,a);let s=t._start;for(null!==r&&(s=r.p,0===(a-=r.index)&&(s=s.prev,a+=s&&s.countable&&!s.deleted?s.length:0));null!==s;s=s.right)if(!s.deleted&&s.countable){if(a<=s.length){a<s.length&&rl(e,Zo(s.id.client,s.id.clock+a));break}a-=s.length}return t._searchMarker&&Fl(t._searchMarker,n,i.length),jl(e,t,s,i)},Wl=(e,t,a,i)=>{if(0===i)return;const n=a,r=i,s=Il(t,a);let o=t._start;for(null!==s&&(o=s.p,a-=s.index);null!==o&&a>0;o=o.right)!o.deleted&&o.countable&&(a<o.length&&rl(e,Zo(o.id.client,o.id.clock+a)),a-=o.length);for(;i>0&&null!==o;)o.deleted||(i<o.length&&rl(e,Zo(o.id.client,o.id.clock+i)),o.delete(e),i-=o.length),o=o.right;if(i>0)throw Ul();t._searchMarker&&Fl(t._searchMarker,n,-r+i)},Hl=(e,t,a)=>{const i=t._map.get(a);void 0!==i&&i.delete(e)},Yl=(e,t,a,i)=>{const n=t._map.get(a)||null,r=e.doc,s=r.clientID;let o;if(null==i)o=new Eu([i]);else switch(i.constructor){case Number:case Object:case Boolean:case Array:case String:case Date:case BigInt:o=new Eu([i]);break;case Uint8Array:o=new Nu(i);break;case xo:o=new Mu(i);break;default:if(!(i instanceof Dl))throw new Error("Unexpected content type");o=new zu(i)}new Hu(Zo(s,el(r.store,s)),n,n&&n.lastId,null,null,t,a,o).integrate(e,0)},Gl=(e,t)=>{e.doc??Tl();const a=e._map.get(t);return void 0===a||a.deleted?void 0:a.content.getContent()[a.length-1]},ql=e=>{const t={};return e.doc??Tl(),e._map.forEach(((e,a)=>{e.deleted||(t[a]=e.content.getContent()[e.length-1])})),t},Zl=(e,t)=>{e.doc??Tl();const a=e._map.get(t);return void 0!==a&&!a.deleted},Jl=e=>{return e.doc??Tl(),t=e._map.entries(),a=e=>!e[1].deleted,ho((()=>{let e;do{e=t.next()}while(!e.done&&!a(e.value));return e}));var t,a};class Kl extends Nl{}class Xl extends Dl{constructor(){super(),this._prelimContent=[],this._searchMarker=[]}static from(e){const t=new Xl;return t.push(e),t}_integrate(e,t){super._integrate(e,t),this.insert(0,this._prelimContent),this._prelimContent=null}_copy(){return new Xl}clone(){const e=new Xl;return e.insert(0,this.toArray().map((e=>e instanceof Dl?e.clone():e))),e}get length(){return this.doc??Tl(),this._length}_callObserver(e,t){super._callObserver(e,t),El(this,e,new Kl(this,e))}insert(e,t){null!==this.doc?hl(this.doc,(a=>{zl(a,this,e,t)})):this._prelimContent.splice(e,0,...t)}push(e){null!==this.doc?hl(this.doc,(t=>{((e,t,a)=>{let i=(t._searchMarker||[]).reduce(((e,t)=>t.index>e.index?t:e),{index:0,p:t._start}).p;if(i)for(;i.right;)i=i.right;jl(e,t,i,a)})(t,this,e)})):this._prelimContent.push(...e)}unshift(e){this.insert(0,e)}delete(e,t=1){null!==this.doc?hl(this.doc,(a=>{Wl(a,this,e,t)})):this._prelimContent.splice(e,t)}get(e){return $l(this,e)}toArray(){return Rl(this)}slice(e=0,t=this.length){return Ll(this,e,t)}toJSON(){return this.map((e=>e instanceof Dl?e.toJSON():e))}map(e){return Ol(this,e)}forEach(e){Pl(this,e)}[Symbol.iterator](){return Bl(this)}_write(e){e.writeTypeRef(Ru)}}class Ql extends Nl{constructor(e,t,a){super(e,t),this.keysChanged=a}}class eu extends Dl{constructor(e){super(),this._prelimContent=null,this._prelimContent=void 0===e?new Map:new Map(e)}_integrate(e,t){super._integrate(e,t),this._prelimContent.forEach(((e,t)=>{this.set(t,e)})),this._prelimContent=null}_copy(){return new eu}clone(){const e=new eu;return this.forEach(((t,a)=>{e.set(a,t instanceof Dl?t.clone():t)})),e}_callObserver(e,t){El(this,e,new Ql(this,e,t))}toJSON(){this.doc??Tl();const e={};return this._map.forEach(((t,a)=>{if(!t.deleted){const i=t.content.getContent()[t.length-1];e[a]=i instanceof Dl?i.toJSON():i}})),e}get size(){return[...Jl(this)].length}keys(){return fo(Jl(this),(e=>e[0]))}values(){return fo(Jl(this),(e=>e[1].content.getContent()[e[1].length-1]))}entries(){return fo(Jl(this),(e=>[e[0],e[1].content.getContent()[e[1].length-1]]))}forEach(e){this.doc??Tl(),this._map.forEach(((t,a)=>{t.deleted||e(t.content.getContent()[t.length-1],a,this)}))}[Symbol.iterator](){return this.entries()}delete(e){null!==this.doc?hl(this.doc,(t=>{Hl(t,this,e)})):this._prelimContent.delete(e)}set(e,t){return null!==this.doc?hl(this.doc,(a=>{Yl(a,this,e,t)})):this._prelimContent.set(e,t),t}get(e){return Gl(this,e)}has(e){return Zl(this,e)}clear(){null!==this.doc?hl(this.doc,(e=>{this.forEach((function(t,a,i){Hl(e,i,a)}))})):this._prelimContent.clear()}_write(e){e.writeTypeRef(Pu)}}const tu=(e,t)=>e===t||"object"==typeof e&&"object"==typeof t&&e&&t&&((e,t)=>e===t||Fs(e)===Fs(t)&&((e,t)=>{for(const a in e)if(!t(e[a],a))return!1;return!0})(e,((e,a)=>(void 0!==e||Es(t,a))&&t[a]===e)))(e,t);class au{constructor(e,t,a,i){this.left=e,this.right=t,this.index=a,this.currentAttributes=i}forward(){if(null===this.right&&as(),this.right.content.constructor===Cu)this.right.deleted||su(this.currentAttributes,this.right.content);else this.right.deleted||(this.index+=this.right.length);this.left=this.right,this.right=this.right.right}}const iu=(e,t,a)=>{for(;null!==t.right&&a>0;){if(t.right.content.constructor===Cu)t.right.deleted||su(t.currentAttributes,t.right.content);else t.right.deleted||(a<t.right.length&&rl(e,Zo(t.right.id.client,t.right.id.clock+a)),t.index+=t.right.length,a-=t.right.length);t.left=t.right,t.right=t.right.right}return t},nu=(e,t,a,i)=>{const n=new Map,r=i?Il(t,a):null;if(r){const t=new au(r.p.left,r.p,r.index,n);return iu(e,t,a-r.index)}{const i=new au(null,t._start,0,n);return iu(e,i,a)}},ru=(e,t,a,i)=>{for(;null!==a.right&&(!0===a.right.deleted||a.right.content.constructor===Cu&&tu(i.get(a.right.content.key),a.right.content.value));)a.right.deleted||i.delete(a.right.content.key),a.forward();const n=e.doc,r=n.clientID;i.forEach(((i,s)=>{const o=a.left,l=a.right,u=new Hu(Zo(r,el(n.store,r)),o,o&&o.lastId,l,l&&l.id,t,null,new Cu(s,i));u.integrate(e,0),a.right=u,a.forward()}))},su=(e,t)=>{const{key:a,value:i}=t;null===i?e.delete(a):e.set(a,i)},ou=(e,t)=>{for(;null!==e.right&&(e.right.deleted||e.right.content.constructor===Cu&&tu(t[e.right.content.key]??null,e.right.content.value));)e.forward()},lu=(e,t,a,i)=>{const n=e.doc,r=n.clientID,s=new Map;for(const o in i){const l=i[o],u=a.currentAttributes.get(o)??null;if(!tu(u,l)){s.set(o,u);const{left:i,right:c}=a;a.right=new Hu(Zo(r,el(n.store,r)),i,i&&i.lastId,c,c&&c.id,t,null,new Cu(o,l)),a.right.integrate(e,0),a.forward()}}return s},uu=(e,t,a,i,n)=>{a.currentAttributes.forEach(((e,t)=>{void 0===n[t]&&(n[t]=null)}));const r=e.doc,s=r.clientID;ou(a,n);const o=lu(e,t,a,n),l=i.constructor===String?new Du(i):i instanceof Dl?new zu(i):new Vu(i);let{left:u,right:c,index:d}=a;t._searchMarker&&Fl(t._searchMarker,a.index,l.getLength()),c=new Hu(Zo(s,el(r.store,s)),u,u&&u.lastId,c,c&&c.id,t,null,l),c.integrate(e,0),a.right=c,a.index=d,a.forward(),ru(e,t,a,o)},cu=(e,t,a,i,n)=>{const r=e.doc,s=r.clientID;ou(a,n);const o=lu(e,t,a,n);e:for(;null!==a.right&&(i>0||o.size>0&&(a.right.deleted||a.right.content.constructor===Cu));){if(!a.right.deleted)switch(a.right.content.constructor){case Cu:{const{key:t,value:r}=a.right.content,s=n[t];if(void 0!==s){if(tu(s,r))o.delete(t);else{if(0===i)break e;o.set(t,r)}a.right.delete(e)}else a.currentAttributes.set(t,r);break}default:i<a.right.length&&rl(e,Zo(a.right.id.client,a.right.id.clock+i)),i-=a.right.length}a.forward()}if(i>0){let n="";for(;i>0;i--)n+="\n";a.right=new Hu(Zo(s,el(r.store,s)),a.left,a.left&&a.left.lastId,a.right,a.right&&a.right.id,t,null,new Du(n)),a.right.integrate(e,0),a.forward()}ru(e,t,a,o)},du=(e,t,a,i,n)=>{let r=t;const s=nr();for(;r&&(!r.countable||r.deleted);){if(!r.deleted&&r.content.constructor===Cu){const e=r.content;s.set(e.key,e)}r=r.right}let o=0,l=!1;for(;t!==r;){if(a===t&&(l=!0),!t.deleted){const a=t.content;switch(a.constructor){case Cu:{const{key:r,value:u}=a,c=i.get(r)??null;s.get(r)===a&&c!==u||(t.delete(e),o++,l||(n.get(r)??null)!==u||c===u||(null===c?n.delete(r):n.set(r,c))),l||t.deleted||su(n,a);break}}}t=t.right}return o},pu=e=>{let t=0;return hl(e.doc,(a=>{let i=e._start,n=e._start,r=nr();const s=rr(r);for(;n;){if(!1===n.deleted)if(n.content.constructor===Cu)su(s,n.content);else t+=du(a,i,n,r,s),r=rr(s),i=n;n=n.right}})),t},hu=e=>{const t=new Set,a=e.doc;for(const[i,n]of e.afterState.entries()){const r=e.beforeState.get(i)||0;n!==r&&ol(e,a.store.clients.get(i),r,n,(e=>{e.deleted||e.content.constructor!==Cu||e.constructor===Su||t.add(e.parent)}))}hl(a,(a=>{go(e,e.deleteSet,(e=>{if(e instanceof Su||!e.parent._hasFormatting||t.has(e.parent))return;const i=e.parent;e.content.constructor===Cu?t.add(i):((e,t)=>{for(;t&&t.right&&(t.right.deleted||!t.right.countable);)t=t.right;const a=new Set;for(;t&&(t.deleted||!t.countable);){if(!t.deleted&&t.content.constructor===Cu){const i=t.content.key;a.has(i)?t.delete(e):a.add(i)}t=t.left}})(a,e)}));for(const e of t)pu(e)}))},fu=(e,t,a)=>{const i=a,n=rr(t.currentAttributes),r=t.right;for(;a>0&&null!==t.right;){if(!1===t.right.deleted)switch(t.right.content.constructor){case zu:case Vu:case Du:a<t.right.length&&rl(e,Zo(t.right.id.client,t.right.id.clock+a)),a-=t.right.length,t.right.delete(e)}t.forward()}r&&du(e,r,t.right,n,t.currentAttributes);const s=(t.left||t.right).parent;return s._searchMarker&&Fl(s._searchMarker,t.index,-i+a),t};class mu extends Nl{constructor(e,t,a){super(e,t),this.childListChanged=!1,this.keysChanged=new Set,a.forEach((e=>{null===e?this.childListChanged=!0:this.keysChanged.add(e)}))}get changes(){if(null===this._changes){const e={keys:this.keys,delta:this.delta,added:new Set,deleted:new Set};this._changes=e}return this._changes}get delta(){if(null===this._delta){const e=this.target.doc,t=[];hl(e,(e=>{const a=new Map,i=new Map;let n=this.target._start,r=null;const s={};let o="",l=0,u=0;const c=()=>{if(null!==r){let e=null;switch(r){case"delete":u>0&&(e={delete:u}),u=0;break;case"insert":("object"==typeof o||o.length>0)&&(e={insert:o},a.size>0&&(e.attributes={},a.forEach(((t,a)=>{null!==t&&(e.attributes[a]=t)})))),o="";break;case"retain":l>0&&(e={retain:l},(e=>{for(const t in e)return!1;return!0})(s)||(e.attributes=Vs({},s))),l=0}e&&t.push(e),r=null}};for(;null!==n;){switch(n.content.constructor){case zu:case Vu:this.adds(n)?this.deletes(n)||(c(),r="insert",o=n.content.getContent()[0],c()):this.deletes(n)?("delete"!==r&&(c(),r="delete"),u+=1):n.deleted||("retain"!==r&&(c(),r="retain"),l+=1);break;case Du:this.adds(n)?this.deletes(n)||("insert"!==r&&(c(),r="insert"),o+=n.content.str):this.deletes(n)?("delete"!==r&&(c(),r="delete"),u+=n.length):n.deleted||("retain"!==r&&(c(),r="retain"),l+=n.length);break;case Cu:{const{key:t,value:o}=n.content;if(this.adds(n)){if(!this.deletes(n)){const l=a.get(t)??null;tu(l,o)?null!==o&&n.delete(e):("retain"===r&&c(),tu(o,i.get(t)??null)?delete s[t]:s[t]=o)}}else if(this.deletes(n)){i.set(t,o);const e=a.get(t)??null;tu(e,o)||("retain"===r&&c(),s[t]=e)}else if(!n.deleted){i.set(t,o);const a=s[t];void 0!==a&&(tu(a,o)?null!==a&&n.delete(e):("retain"===r&&c(),null===o?delete s[t]:s[t]=o))}n.deleted||("insert"===r&&c(),su(a,n.content));break}}n=n.right}for(c();t.length>0;){const e=t[t.length-1];if(void 0===e.retain||void 0!==e.attributes)break;t.pop()}})),this._delta=t}return this._delta}}class yu extends Dl{constructor(e){super(),this._pending=void 0!==e?[()=>this.insert(0,e)]:[],this._searchMarker=[],this._hasFormatting=!1}get length(){return this.doc??Tl(),this._length}_integrate(e,t){super._integrate(e,t);try{this._pending.forEach((e=>e()))}catch(e){console.error(e)}this._pending=null}_copy(){return new yu}clone(){const e=new yu;return e.applyDelta(this.toDelta()),e}_callObserver(e,t){super._callObserver(e,t);const a=new mu(this,e,t);El(this,e,a),!e.local&&this._hasFormatting&&(e._needFormattingCleanup=!0)}toString(){this.doc??Tl();let e="",t=this._start;for(;null!==t;)!t.deleted&&t.countable&&t.content.constructor===Du&&(e+=t.content.str),t=t.right;return e}toJSON(){return this.toString()}applyDelta(e,{sanitize:t=!0}={}){null!==this.doc?hl(this.doc,(a=>{const i=new au(null,this._start,0,new Map);for(let n=0;n<e.length;n++){const r=e[n];if(void 0!==r.insert){const s=t||"string"!=typeof r.insert||n!==e.length-1||null!==i.right||"\n"!==r.insert.slice(-1)?r.insert:r.insert.slice(0,-1);("string"!=typeof s||s.length>0)&&uu(a,this,i,s,r.attributes||{})}else void 0!==r.retain?cu(a,this,i,r.retain,r.attributes||{}):void 0!==r.delete&&fu(a,i,r.delete)}})):this._pending.push((()=>this.applyDelta(e)))}toDelta(e,t,a){this.doc??Tl();const i=[],n=new Map,r=this.doc;let s="",o=this._start;function l(){if(s.length>0){const e={};let t=!1;n.forEach(((a,i)=>{t=!0,e[i]=a}));const a={insert:s};t&&(a.attributes=e),i.push(a),s=""}}const u=()=>{for(;null!==o;){if(Jo(o,e)||void 0!==t&&Jo(o,t))switch(o.content.constructor){case Du:{const i=n.get("ychange");void 0===e||Jo(o,e)?void 0===t||Jo(o,t)?void 0!==i&&(l(),n.delete("ychange")):void 0!==i&&i.user===o.id.client&&"added"===i.type||(l(),n.set("ychange",a?a("added",o.id):{type:"added"})):void 0!==i&&i.user===o.id.client&&"removed"===i.type||(l(),n.set("ychange",a?a("removed",o.id):{type:"removed"})),s+=o.content.str;break}case zu:case Vu:{l();const e={insert:o.content.getContent()[0]};if(n.size>0){const t={};e.attributes=t,n.forEach(((e,a)=>{t[a]=e}))}i.push(e);break}case Cu:Jo(o,e)&&(l(),su(n,o.content))}o=o.right}l()};return e||t?hl(r,(a=>{e&&Ko(a,e),t&&Ko(a,t),u()}),"cleanup"):u(),i}insert(e,t,a){if(t.length<=0)return;const i=this.doc;null!==i?hl(i,(i=>{const n=nu(i,this,e,!a);a||(a={},n.currentAttributes.forEach(((e,t)=>{a[t]=e}))),uu(i,this,n,t,a)})):this._pending.push((()=>this.insert(e,t,a)))}insertEmbed(e,t,a){const i=this.doc;null!==i?hl(i,(i=>{const n=nu(i,this,e,!a);uu(i,this,n,t,a||{})})):this._pending.push((()=>this.insertEmbed(e,t,a||{})))}delete(e,t){if(0===t)return;const a=this.doc;null!==a?hl(a,(a=>{fu(a,nu(a,this,e,!0),t)})):this._pending.push((()=>this.delete(e,t)))}format(e,t,a){if(0===t)return;const i=this.doc;null!==i?hl(i,(i=>{const n=nu(i,this,e,!1);null!==n.right&&cu(i,this,n,t,a)})):this._pending.push((()=>this.format(e,t,a)))}removeAttribute(e){null!==this.doc?hl(this.doc,(t=>{Hl(t,this,e)})):this._pending.push((()=>this.removeAttribute(e)))}setAttribute(e,t){null!==this.doc?hl(this.doc,(a=>{Yl(a,this,e,t)})):this._pending.push((()=>this.setAttribute(e,t)))}getAttribute(e){return Gl(this,e)}getAttributes(){return ql(this)}_write(e){e.writeTypeRef(Ou)}}class gu{constructor(e,t=()=>!0){this._filter=t,this._root=e,this._currentNode=e._start,this._firstCall=!0,e.doc??Tl()}[Symbol.iterator](){return this}next(){let e=this._currentNode,t=e&&e.content&&e.content.type;if(null!==e&&(!this._firstCall||e.deleted||!this._filter(t)))do{if(t=e.content.type,e.deleted||t.constructor!==vu&&t.constructor!==bu||null===t._start)for(;null!==e;){const t=e.next;if(null!==t){e=t;break}e=e.parent===this._root?null:e.parent._item}else e=t._start}while(null!==e&&(e.deleted||!this._filter(e.content.type)));return this._firstCall=!1,null===e?{value:void 0,done:!0}:(this._currentNode=e,{value:e.content.type,done:!1})}}class bu extends Dl{constructor(){super(),this._prelimContent=[]}get firstChild(){const e=this._first;return e?e.content.getContent()[0]:null}_integrate(e,t){super._integrate(e,t),this.insert(0,this._prelimContent),this._prelimContent=null}_copy(){return new bu}clone(){const e=new bu;return e.insert(0,this.toArray().map((e=>e instanceof Dl?e.clone():e))),e}get length(){return this.doc??Tl(),null===this._prelimContent?this._length:this._prelimContent.length}createTreeWalker(e){return new gu(this,e)}querySelector(e){e=e.toUpperCase();const t=new gu(this,(t=>t.nodeName&&t.nodeName.toUpperCase()===e)).next();return t.done?null:t.value}querySelectorAll(e){return e=e.toUpperCase(),cr(new gu(this,(t=>t.nodeName&&t.nodeName.toUpperCase()===e)))}_callObserver(e,t){El(this,e,new _u(this,t,e))}toString(){return Ol(this,(e=>e.toString())).join("")}toJSON(){return this.toString()}toDOM(e=document,t={},a){const i=e.createDocumentFragment();return void 0!==a&&a._createAssociation(i,this),Pl(this,(n=>{i.insertBefore(n.toDOM(e,t,a),null)})),i}insert(e,t){null!==this.doc?hl(this.doc,(a=>{zl(a,this,e,t)})):this._prelimContent.splice(e,0,...t)}insertAfter(e,t){if(null!==this.doc)hl(this.doc,(a=>{const i=e&&e instanceof Dl?e._item:e;jl(a,this,i,t)}));else{const a=this._prelimContent,i=null===e?0:a.findIndex((t=>t===e))+1;if(0===i&&null!==e)throw es("Reference item not found");a.splice(i,0,...t)}}delete(e,t=1){null!==this.doc?hl(this.doc,(a=>{Wl(a,this,e,t)})):this._prelimContent.splice(e,t)}toArray(){return Rl(this)}push(e){this.insert(this.length,e)}unshift(e){this.insert(0,e)}get(e){return $l(this,e)}slice(e=0,t=this.length){return Ll(this,e,t)}forEach(e){Pl(this,e)}_write(e){e.writeTypeRef($u)}}class vu extends bu{constructor(e="UNDEFINED"){super(),this.nodeName=e,this._prelimAttrs=new Map}get nextSibling(){const e=this._item?this._item.next:null;return e?e.content.type:null}get prevSibling(){const e=this._item?this._item.prev:null;return e?e.content.type:null}_integrate(e,t){super._integrate(e,t),this._prelimAttrs.forEach(((e,t)=>{this.setAttribute(t,e)})),this._prelimAttrs=null}_copy(){return new vu(this.nodeName)}clone(){const e=new vu(this.nodeName);return((e,t)=>{for(const a in e)t(e[a],a)})(this.getAttributes(),((t,a)=>{"string"==typeof t&&e.setAttribute(a,t)})),e.insert(0,this.toArray().map((e=>e instanceof Dl?e.clone():e))),e}toString(){const e=this.getAttributes(),t=[],a=[];for(const t in e)a.push(t);a.sort();const i=a.length;for(let n=0;n<i;n++){const i=a[n];t.push(i+'="'+e[i]+'"')}const n=this.nodeName.toLocaleLowerCase();return`<${n}${t.length>0?" "+t.join(" "):""}>${super.toString()}</${n}>`}removeAttribute(e){null!==this.doc?hl(this.doc,(t=>{Hl(t,this,e)})):this._prelimAttrs.delete(e)}setAttribute(e,t){null!==this.doc?hl(this.doc,(a=>{Yl(a,this,e,t)})):this._prelimAttrs.set(e,t)}getAttribute(e){return Gl(this,e)}hasAttribute(e){return Zl(this,e)}getAttributes(e){return e?((e,t)=>{const a={};return e._map.forEach(((e,i)=>{let n=e;for(;null!==n&&(!t.sv.has(n.id.client)||n.id.clock>=(t.sv.get(n.id.client)||0));)n=n.left;null!==n&&Jo(n,t)&&(a[i]=n.content.getContent()[n.length-1])})),a})(this,e):ql(this)}toDOM(e=document,t={},a){const i=e.createElement(this.nodeName),n=this.getAttributes();for(const e in n){const t=n[e];"string"==typeof t&&i.setAttribute(e,t)}return Pl(this,(n=>{i.appendChild(n.toDOM(e,t,a))})),void 0!==a&&a._createAssociation(i,this),i}_write(e){e.writeTypeRef(Bu),e.writeKey(this.nodeName)}}class _u extends Nl{constructor(e,t,a){super(e,a),this.childListChanged=!1,this.attributesChanged=new Set,t.forEach((e=>{null===e?this.childListChanged=!0:this.attributesChanged.add(e)}))}}class wu extends eu{constructor(e){super(),this.hookName=e}_copy(){return new wu(this.hookName)}clone(){const e=new wu(this.hookName);return this.forEach(((t,a)=>{e.set(a,t)})),e}toDOM(e=document,t={},a){const i=t[this.hookName];let n;return n=void 0!==i?i.createDom(this):document.createElement(this.hookName),n.setAttribute("data-yjs-hook",this.hookName),void 0!==a&&a._createAssociation(n,this),n}_write(e){e.writeTypeRef(ju),e.writeKey(this.hookName)}}class Au extends yu{get nextSibling(){const e=this._item?this._item.next:null;return e?e.content.type:null}get prevSibling(){const e=this._item?this._item.prev:null;return e?e.content.type:null}_copy(){return new Au}clone(){const e=new Au;return e.applyDelta(this.toDelta()),e}toDOM(e=document,t,a){const i=e.createTextNode(this.toString());return void 0!==a&&a._createAssociation(i,this),i}toString(){return this.toDelta().map((e=>{const t=[];for(const a in e.attributes){const i=[];for(const t in e.attributes[a])i.push({key:t,value:e.attributes[a][t]});i.sort(((e,t)=>e.key<t.key?-1:1)),t.push({nodeName:a,attrs:i})}t.sort(((e,t)=>e.nodeName<t.nodeName?-1:1));let a="";for(let e=0;e<t.length;e++){const i=t[e];a+=`<${i.nodeName}`;for(let e=0;e<i.attrs.length;e++){const t=i.attrs[e];a+=` ${t.key}="${t.value}"`}a+=">"}a+=e.insert;for(let e=t.length-1;e>=0;e--)a+=`</${t[e].nodeName}>`;return a})).join("")}toJSON(){return this.toString()}_write(e){e.writeTypeRef(Uu)}}class ku{constructor(e,t){this.id=e,this.length=t}get deleted(){throw ts()}mergeWith(e){return!1}write(e,t,a){throw ts()}integrate(e,t){throw ts()}}class Su extends ku{get deleted(){return!0}delete(){}mergeWith(e){return this.constructor===e.constructor&&(this.length+=e.length,!0)}integrate(e,t){t>0&&(this.id.clock+=t,this.length-=t),tl(e.doc.store,this)}write(e,t){e.writeInfo(0),e.writeLen(this.length-t)}getMissing(e,t){return null}}class Nu{constructor(e){this.content=e}getLength(){return 1}getContent(){return[this.content]}isCountable(){return!0}copy(){return new Nu(this.content)}splice(e){throw ts()}mergeWith(e){return!1}integrate(e,t){}delete(e){}gc(e){}write(e,t){e.writeBuf(this.content)}getRef(){return 3}}class xu{constructor(e){this.len=e}getLength(){return this.len}getContent(){return[]}isCountable(){return!1}copy(){return new xu(this.len)}splice(e){const t=new xu(this.len-e);return this.len=e,t}mergeWith(e){return this.len+=e.len,!0}integrate(e,t){_o(e.deleteSet,t.id.client,t.id.clock,this.len),t.markDeleted()}delete(e){}gc(e){}write(e,t){e.writeLen(this.len-t)}getRef(){return 1}}const Tu=(e,t)=>new xo({guid:e,...t,shouldLoad:t.shouldLoad||t.autoLoad||!1});class Mu{constructor(e){e._item&&console.error("This document was already integrated as a sub-document. You should create a second instance instead with the same guid."),this.doc=e;const t={};this.opts=t,e.gc||(t.gc=!1),e.autoLoad&&(t.autoLoad=!0),null!==e.meta&&(t.meta=e.meta)}getLength(){return 1}getContent(){return[this.doc]}isCountable(){return!0}copy(){return new Mu(Tu(this.doc.guid,this.opts))}splice(e){throw ts()}mergeWith(e){return!1}integrate(e,t){this.doc._item=t,e.subdocsAdded.add(this.doc),this.doc.shouldLoad&&e.subdocsLoaded.add(this.doc)}delete(e){e.subdocsAdded.has(this.doc)?e.subdocsAdded.delete(this.doc):e.subdocsRemoved.add(this.doc)}gc(e){}write(e,t){e.writeString(this.doc.guid),e.writeAny(this.opts)}getRef(){return 9}}class Vu{constructor(e){this.embed=e}getLength(){return 1}getContent(){return[this.embed]}isCountable(){return!0}copy(){return new Vu(this.embed)}splice(e){throw ts()}mergeWith(e){return!1}integrate(e,t){}delete(e){}gc(e){}write(e,t){e.writeJSON(this.embed)}getRef(){return 5}}class Cu{constructor(e,t){this.key=e,this.value=t}getLength(){return 1}getContent(){return[]}isCountable(){return!1}copy(){return new Cu(this.key,this.value)}splice(e){throw ts()}mergeWith(e){return!1}integrate(e,t){const a=t.parent;a._searchMarker=null,a._hasFormatting=!0}delete(e){}gc(e){}write(e,t){e.writeKey(this.key),e.writeJSON(this.value)}getRef(){return 6}}class Iu{constructor(e){this.arr=e}getLength(){return this.arr.length}getContent(){return this.arr}isCountable(){return!0}copy(){return new Iu(this.arr)}splice(e){const t=new Iu(this.arr.slice(e));return this.arr=this.arr.slice(0,e),t}mergeWith(e){return this.arr=this.arr.concat(e.arr),!0}integrate(e,t){}delete(e){}gc(e){}write(e,t){const a=this.arr.length;e.writeLen(a-t);for(let i=t;i<a;i++){const t=this.arr[i];e.writeString(void 0===t?"undefined":JSON.stringify(t))}}getRef(){return 2}}const Fu="development"===Ws("node_env");class Eu{constructor(e){this.arr=e,Fu&&Ls(e)}getLength(){return this.arr.length}getContent(){return this.arr}isCountable(){return!0}copy(){return new Eu(this.arr)}splice(e){const t=new Eu(this.arr.slice(e));return this.arr=this.arr.slice(0,e),t}mergeWith(e){return this.arr=this.arr.concat(e.arr),!0}integrate(e,t){}delete(e){}gc(e){}write(e,t){const a=this.arr.length;e.writeLen(a-t);for(let i=t;i<a;i++){const t=this.arr[i];e.writeAny(t)}}getRef(){return 8}}class Du{constructor(e){this.str=e}getLength(){return this.str.length}getContent(){return this.str.split("")}isCountable(){return!0}copy(){return new Du(this.str)}splice(e){const t=new Du(this.str.slice(e));this.str=this.str.slice(0,e);const a=this.str.charCodeAt(e-1);return a>=55296&&a<=56319&&(this.str=this.str.slice(0,e-1)+"�",t.str="�"+t.str.slice(1)),t}mergeWith(e){return this.str+=e.str,!0}integrate(e,t){}delete(e){}gc(e){}write(e,t){e.writeString(0===t?this.str:this.str.slice(t))}getRef(){return 4}}const Lu=[e=>new Xl,e=>new eu,e=>new yu,e=>new vu(e.readKey()),e=>new bu,e=>new wu(e.readKey()),e=>new Au],Ru=0,Pu=1,Ou=2,Bu=3,$u=4,ju=5,Uu=6;class zu{constructor(e){this.type=e}getLength(){return 1}getContent(){return[this.type]}isCountable(){return!0}copy(){return new zu(this.type._copy())}splice(e){throw ts()}mergeWith(e){return!1}integrate(e,t){this.type._integrate(e.doc,t)}delete(e){let t=this.type._start;for(;null!==t;)t.deleted?t.id.clock<(e.beforeState.get(t.id.client)||0)&&e._mergeStructs.push(t):t.delete(e),t=t.right;this.type._map.forEach((t=>{t.deleted?t.id.clock<(e.beforeState.get(t.id.client)||0)&&e._mergeStructs.push(t):t.delete(e)})),e.changed.delete(this.type)}gc(e){let t=this.type._start;for(;null!==t;)t.gc(e,!0),t=t.right;this.type._start=null,this.type._map.forEach((t=>{for(;null!==t;)t.gc(e,!0),t=t.left})),this.type._map=new Map}write(e,t){this.type._write(e)}getRef(){return 7}}const Wu=(e,t,a)=>{const{client:i,clock:n}=t.id,r=new Hu(Zo(i,n+a),t,Zo(i,n+a-1),t.right,t.rightOrigin,t.parent,t.parentSub,t.content.splice(a));return t.deleted&&r.markDeleted(),t.keep&&(r.keep=!0),null!==t.redone&&(r.redone=Zo(t.redone.client,t.redone.clock+a)),t.right=r,null!==r.right&&(r.right.left=r),e._mergeStructs.push(r),null!==r.parentSub&&null===r.right&&r.parent._map.set(r.parentSub,r),t.length=a,r};class Hu extends ku{constructor(e,t,a,i,n,r,s,o){super(e,o.getLength()),this.origin=a,this.left=t,this.right=i,this.rightOrigin=n,this.parent=r,this.parentSub=s,this.redone=null,this.content=o,this.info=this.content.isCountable()?2:0}set marker(e){(8&this.info)>0!==e&&(this.info^=8)}get marker(){return(8&this.info)>0}get keep(){return(1&this.info)>0}set keep(e){this.keep!==e&&(this.info^=1)}get countable(){return(2&this.info)>0}get deleted(){return(4&this.info)>0}set deleted(e){this.deleted!==e&&(this.info^=4)}markDeleted(){this.info|=4}getMissing(e,t){if(this.origin&&this.origin.client!==this.id.client&&this.origin.clock>=el(t,this.origin.client))return this.origin.client;if(this.rightOrigin&&this.rightOrigin.client!==this.id.client&&this.rightOrigin.clock>=el(t,this.rightOrigin.client))return this.rightOrigin.client;if(this.parent&&this.parent.constructor===Go&&this.id.client!==this.parent.client&&this.parent.clock>=el(t,this.parent.client))return this.parent.client;if(this.origin&&(this.left=sl(e,t,this.origin),this.origin=this.left.lastId),this.rightOrigin&&(this.right=rl(e,this.rightOrigin),this.rightOrigin=this.right.id),this.left&&this.left.constructor===Su||this.right&&this.right.constructor===Su)this.parent=null;else if(this.parent){if(this.parent.constructor===Go){const e=il(t,this.parent);e.constructor===Su?this.parent=null:this.parent=e.content.type}}else this.left&&this.left.constructor===Hu?(this.parent=this.left.parent,this.parentSub=this.left.parentSub):this.right&&this.right.constructor===Hu&&(this.parent=this.right.parent,this.parentSub=this.right.parentSub);return null}integrate(e,t){if(t>0&&(this.id.clock+=t,this.left=sl(e,e.doc.store,Zo(this.id.client,this.id.clock-1)),this.origin=this.left.lastId,this.content=this.content.splice(t),this.length-=t),this.parent){if(!this.left&&(!this.right||null!==this.right.left)||this.left&&this.left.right!==this.right){let t,a=this.left;if(null!==a)t=a.right;else if(null!==this.parentSub)for(t=this.parent._map.get(this.parentSub)||null;null!==t&&null!==t.left;)t=t.left;else t=this.parent._start;const i=new Set,n=new Set;for(;null!==t&&t!==this.right;){if(n.add(t),i.add(t),qo(this.origin,t.origin)){if(t.id.client<this.id.client)a=t,i.clear();else if(qo(this.rightOrigin,t.rightOrigin))break}else{if(null===t.origin||!n.has(il(e.doc.store,t.origin)))break;i.has(il(e.doc.store,t.origin))||(a=t,i.clear())}t=t.right}this.left=a}if(null!==this.left){const e=this.left.right;this.right=e,this.left.right=this}else{let e;if(null!==this.parentSub)for(e=this.parent._map.get(this.parentSub)||null;null!==e&&null!==e.left;)e=e.left;else e=this.parent._start,this.parent._start=this;this.right=e}null!==this.right?this.right.left=this:null!==this.parentSub&&(this.parent._map.set(this.parentSub,this),null!==this.left&&this.left.delete(e)),null===this.parentSub&&this.countable&&!this.deleted&&(this.parent._length+=this.length),tl(e.doc.store,this),this.content.integrate(e,this),cl(e,this.parent,this.parentSub),(null!==this.parent._item&&this.parent._item.deleted||null!==this.parentSub&&null!==this.right)&&this.delete(e)}else new Su(this.id,this.length).integrate(e,0)}get next(){let e=this.right;for(;null!==e&&e.deleted;)e=e.right;return e}get prev(){let e=this.left;for(;null!==e&&e.deleted;)e=e.left;return e}get lastId(){return 1===this.length?this.id:Zo(this.id.client,this.id.clock+this.length-1)}mergeWith(e){if(this.constructor===e.constructor&&qo(e.origin,this.lastId)&&this.right===e&&qo(this.rightOrigin,e.rightOrigin)&&this.id.client===e.id.client&&this.id.clock+this.length===e.id.clock&&this.deleted===e.deleted&&null===this.redone&&null===e.redone&&this.content.constructor===e.content.constructor&&this.content.mergeWith(e.content)){const t=this.parent._searchMarker;return t&&t.forEach((t=>{t.p===e&&(t.p=this,!this.deleted&&this.countable&&(t.index-=this.length))})),e.keep&&(this.keep=!0),this.right=e.right,null!==this.right&&(this.right.left=this),this.length+=e.length,!0}return!1}delete(e){if(!this.deleted){const t=this.parent;this.countable&&null===this.parentSub&&(t._length-=this.length),this.markDeleted(),_o(e.deleteSet,this.id.client,this.id.clock,this.length),cl(e,t,this.parentSub),this.content.delete(e)}}gc(e,t){if(!this.deleted)throw as();this.content.gc(e),t?((e,t,a)=>{const i=e.clients.get(t.id.client);i[al(i,t.id.clock)]=a})(e,this,new Su(this.id,this.length)):this.content=new xu(this.length)}write(e,t){const a=t>0?Zo(this.id.client,this.id.clock+t-1):this.origin,i=this.rightOrigin,n=this.parentSub,r=31&this.content.getRef()|(null===a?0:wr)|(null===i?0:_r)|(null===n?0:32);if(e.writeInfo(r),null!==a&&e.writeLeftID(a),null!==i&&e.writeRightID(i),null===a&&null===i){const t=this.parent;if(void 0!==t._item){const a=t._item;if(null===a){const a=(e=>{for(const[t,a]of e.doc.share.entries())if(a===e)return t;throw as()})(t);e.writeParentInfo(!0),e.writeString(a)}else e.writeParentInfo(!1),e.writeLeftID(a.id)}else t.constructor===String?(e.writeParentInfo(!0),e.writeString(t)):t.constructor===Go?(e.writeParentInfo(!1),e.writeLeftID(t)):as();null!==n&&e.writeString(n)}this.content.write(e,t)}}const Yu=(e,t)=>Gu[31&t](e),Gu=[()=>{as()},e=>new xu(e.readLen()),e=>{const t=e.readLen(),a=[];for(let i=0;i<t;i++){const t=e.readString();"undefined"===t?a.push(void 0):a.push(JSON.parse(t))}return new Iu(a)},e=>new Nu(e.readBuf()),e=>new Du(e.readString()),e=>new Vu(e.readJSON()),e=>new Cu(e.readKey(),e.readJSON()),e=>new zu(Lu[e.readTypeRef()](e)),e=>{const t=e.readLen(),a=[];for(let i=0;i<t;i++)a.push(e.readAny());return new Eu(a)},e=>new Mu(Tu(e.readString(),e.readAny())),()=>{as()}];class qu extends ku{get deleted(){return!0}delete(){}mergeWith(e){return this.constructor===e.constructor&&(this.length+=e.length,!0)}integrate(e,t){as()}write(e,t){e.writeInfo(10),Or(e.restEncoder,this.length-t)}getMissing(e,t){return null}}const Zu="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},Ju="__ $YJS$ __";!0===Zu[Ju]&&console.error("Yjs was already imported. This breaks constructor checks and will lead to issues! - https://github.com/yjs/yjs/issues/438"),Zu[Ju]=!0;const Ku=new Map;const Xu="undefined"==typeof BroadcastChannel?class{constructor(e){var t;this.room=e,this.onmessage=null,this._onChange=t=>t.key===e&&null!==this.onmessage&&this.onmessage({data:Js(t.newValue||"")}),t=this._onChange,Ts||addEventListener("storage",t)}postMessage(e){Ms.setItem(this.room,Zs((e=>new Uint8Array(e))(e)))}close(){var e;e=this._onChange,Ts||removeEventListener("storage",e)}}:BroadcastChannel,Qu=e=>sr(Ku,e,(()=>{const t=or(),a=new Xu(e);return a.onmessage=e=>t.forEach((t=>t(e.data,"broadcastchannel"))),{bc:a,subs:t}})),ec=(e,t,a=null)=>{const i=Qu(e);i.bc.postMessage(t),i.subs.forEach((e=>e(t,a)))},tc=(e,t)=>{Or(e,0);const a=(e=>jo(e,new Io))(t);Wr(e,a)},ac=(e,t,a)=>{Or(e,1),Wr(e,((e,t)=>Oo(e,t,new Fo))(t,a))},ic=(e,t,a)=>{try{((e,t,a)=>{Po(e,t,a,Mo)})(t,os(e),a)}catch(e){console.error("Caught error while handling a Yjs update",e)}},nc=ic,rc=(e,t,a,i)=>{const n=us(e);switch(n){case 0:((e,t,a)=>{ac(t,a,os(e))})(e,t,a);break;case 1:ic(e,a,i);break;case 2:nc(e,a,i);break;default:throw new Error("Unknown message type")}return n},sc=3e4;class oc extends hr{constructor(e){super(),this.doc=e,this.clientID=e.clientID,this.states=new Map,this.meta=new Map,this._checkInterval=setInterval((()=>{const e=ks();null!==this.getLocalState()&&15e3<=e-this.meta.get(this.clientID).lastUpdated&&this.setLocalState(this.getLocalState());const t=[];this.meta.forEach(((a,i)=>{i!==this.clientID&&sc<=e-a.lastUpdated&&this.states.has(i)&&t.push(i)})),t.length>0&&lc(this,t,"timeout")}),fr(3e3)),e.on("destroy",(()=>{this.destroy()})),this.setLocalState({})}destroy(){this.emit("destroy",[this]),this.setLocalState(null),super.destroy(),clearInterval(this._checkInterval)}getLocalState(){return this.states.get(this.clientID)||null}setLocalState(e){const t=this.clientID,a=this.meta.get(t),i=void 0===a?0:a.clock+1,n=this.states.get(t);null===e?this.states.delete(t):this.states.set(t,e),this.meta.set(t,{clock:i,lastUpdated:ks()});const r=[],s=[],o=[],l=[];null===e?l.push(t):null==n?null!=e&&r.push(t):(s.push(t),Bs(n,e)||o.push(t)),(r.length>0||o.length>0||l.length>0)&&this.emit("change",[{added:r,updated:o,removed:l},"local"]),this.emit("update",[{added:r,updated:s,removed:l},"local"])}setLocalStateField(e,t){const a=this.getLocalState();null!==a&&this.setLocalState({...a,[e]:t})}getStates(){return this.states}}const lc=(e,t,a)=>{const i=[];for(let a=0;a<t.length;a++){const n=t[a];if(e.states.has(n)){if(e.states.delete(n),n===e.clientID){const t=e.meta.get(n);e.meta.set(n,{clock:t.clock+1,lastUpdated:ks()})}i.push(n)}}i.length>0&&(e.emit("change",[{added:[],updated:[],removed:i},a]),e.emit("update",[{added:[],updated:[],removed:i},a]))},uc=(e,t,a=e.states)=>{const i=t.length,n=Er();Or(n,i);for(let r=0;r<i;r++){const i=t[r],s=a.get(i)||null,o=e.meta.get(i).clock;Or(n,i),Or(n,o),Ur(n,JSON.stringify(s))}return Lr(n)},cc=[];cc[0]=(e,t,a,i,n)=>{Or(e,0);const r=rc(t,e,a.doc,a);i&&1===r&&!a.synced&&(a.synced=!0)},cc[3]=(e,t,a,i,n)=>{Or(e,1),Wr(e,uc(a.awareness,Array.from(a.awareness.getStates().keys())))},cc[1]=(e,t,a,i,n)=>{((e,t,a)=>{const i=ss(t),n=ks(),r=[],s=[],o=[],l=[],u=us(i);for(let t=0;t<u;t++){const t=us(i);let a=us(i);const u=JSON.parse(ds(i)),c=e.meta.get(t),d=e.states.get(t),p=void 0===c?0:c.clock;(p<a||p===a&&null===u&&e.states.has(t))&&(null===u?t===e.clientID&&null!=e.getLocalState()?a++:e.states.delete(t):e.states.set(t,u),e.meta.set(t,{clock:a,lastUpdated:n}),void 0===c&&null!==u?r.push(t):void 0!==c&&null===u?l.push(t):null!==u&&(Bs(u,d)||o.push(t),s.push(t)))}(r.length>0||o.length>0||l.length>0)&&e.emit("change",[{added:r,updated:o,removed:l},a]),(r.length>0||s.length>0||l.length>0)&&e.emit("update",[{added:r,updated:s,removed:l},a])})(a.awareness,os(t),a)},cc[2]=(e,t,a,i,n)=>{((e,t,a)=>{0===us(e)&&a(t,ds(e))})(t,a.doc,((e,t)=>dc(a,t)))};const dc=(e,t)=>console.warn(`Permission denied to access ${e.url}.\n${t}`),pc=(e,t,a)=>{const i=ss(t),n=Er(),r=us(i),s=e.messageHandlers[r];return s?s(n,i,e,a,r):console.error("Unable to compute message"),n},hc=(e,t,a)=>{t===e.ws&&(e.emit("connection-close",[a,e]),e.ws=null,t.close(),e.wsconnecting=!1,e.wsconnected?(e.wsconnected=!1,e.synced=!1,lc(e.awareness,Array.from(e.awareness.getStates().keys()).filter((t=>t!==e.doc.clientID)),e),e.emit("status",[{status:"disconnected"}])):e.wsUnsuccessfulReconnects++,setTimeout(fc,yr(100*br(2,e.wsUnsuccessfulReconnects),e.maxBackoffTime),e))},fc=e=>{if(e.shouldConnect&&null===e.ws){const t=new e._WS(e.url,e.protocols);t.binaryType="arraybuffer",e.ws=t,e.wsconnecting=!0,e.wsconnected=!1,e.synced=!1,t.onmessage=a=>{e.wsLastMessageReceived=ks();const i=pc(e,new Uint8Array(a.data),!0);Dr(i)>1&&t.send(Lr(i))},t.onerror=t=>{e.emit("connection-error",[t,e])},t.onclose=a=>{hc(e,t,a)},t.onopen=()=>{e.wsLastMessageReceived=ks(),e.wsconnecting=!1,e.wsconnected=!0,e.wsUnsuccessfulReconnects=0,e.emit("status",[{status:"connected"}]);const a=Er();if(Or(a,0),tc(a,e.doc),t.send(Lr(a)),null!==e.awareness.getLocalState()){const a=Er();Or(a,1),Wr(a,uc(e.awareness,[e.doc.clientID])),t.send(Lr(a))}},e.emit("status",[{status:"connecting"}])}},mc=(e,t)=>{const a=e.ws;e.wsconnected&&a&&a.readyState===a.OPEN&&a.send(t),e.bcconnected&&ec(e.bcChannel,t,e)};class yc extends pr{constructor(e,t,a,{connect:i=!0,awareness:n=new oc(a),params:r={},protocols:s=[],WebSocketPolyfill:o=WebSocket,resyncInterval:l=-1,maxBackoffTime:u=2500,disableBc:c=!1}={}){for(super();"/"===e[e.length-1];)e=e.slice(0,e.length-1);this.serverUrl=e,this.bcChannel=e+"/"+t,this.maxBackoffTime=u,this.params=r,this.protocols=s,this.roomname=t,this.doc=a,this._WS=o,this.awareness=n,this.wsconnected=!1,this.wsconnecting=!1,this.bcconnected=!1,this.disableBc=c,this.wsUnsuccessfulReconnects=0,this.messageHandlers=cc.slice(),this._synced=!1,this.ws=null,this.wsLastMessageReceived=0,this.shouldConnect=i,this._resyncInterval=0,l>0&&(this._resyncInterval=setInterval((()=>{if(this.ws&&this.ws.readyState===WebSocket.OPEN){const e=Er();Or(e,0),tc(e,a),this.ws.send(Lr(e))}}),l)),this._bcSubscriber=(e,t)=>{if(t!==this){const t=pc(this,new Uint8Array(e),!1);Dr(t)>1&&ec(this.bcChannel,Lr(t),this)}},this._updateHandler=(e,t)=>{if(t!==this){const t=Er();Or(t,0),((e,t)=>{Or(e,2),Wr(e,t)})(t,e),mc(this,Lr(t))}},this.doc.on("update",this._updateHandler),this._awarenessUpdateHandler=({added:e,updated:t,removed:a},i)=>{const r=e.concat(t).concat(a),s=Er();Or(s,1),Wr(s,uc(n,r)),mc(this,Lr(s))},this._exitHandler=()=>{lc(this.awareness,[a.clientID],"app closed")},$s&&"undefined"!=typeof process&&process.on("exit",this._exitHandler),n.on("update",this._awarenessUpdateHandler),this._checkInterval=setInterval((()=>{this.wsconnected&&3e4<ks()-this.wsLastMessageReceived&&hc(this,this.ws,null)}),3e3),i&&this.connect()}get url(){const e=(e=>((e,t)=>{const a=[];for(const i in e)a.push(t(e[i],i));return a})(e,((e,t)=>`${encodeURIComponent(t)}=${encodeURIComponent(e)}`)).join("&"))(this.params);return this.serverUrl+"/"+this.roomname+(0===e.length?"":"?"+e)}get synced(){return this._synced}set synced(e){this._synced!==e&&(this._synced=e,this.emit("synced",[e]),this.emit("sync",[e]))}destroy(){0!==this._resyncInterval&&clearInterval(this._resyncInterval),clearInterval(this._checkInterval),this.disconnect(),$s&&"undefined"!=typeof process&&process.off("exit",this._exitHandler),this.awareness.off("update",this._awarenessUpdateHandler),this.doc.off("update",this._updateHandler),super.destroy()}connectBc(){if(this.disableBc)return;var e,t;this.bcconnected||(e=this.bcChannel,t=this._bcSubscriber,Qu(e).subs.add(t),this.bcconnected=!0);const a=Er();Or(a,0),tc(a,this.doc),ec(this.bcChannel,Lr(a),this);const i=Er();Or(i,0),ac(i,this.doc),ec(this.bcChannel,Lr(i),this);const n=Er();Or(n,3),ec(this.bcChannel,Lr(n),this);const r=Er();Or(r,1),Wr(r,uc(this.awareness,[this.doc.clientID])),ec(this.bcChannel,Lr(r),this)}disconnectBc(){const e=Er();Or(e,1),Wr(e,uc(this.awareness,[this.doc.clientID],new Map)),mc(this,Lr(e)),this.bcconnected&&(((e,t)=>{const a=Qu(e),i=a.subs.delete(t);i&&0===a.subs.size&&(a.bc.close(),Ku.delete(e))})(this.bcChannel,this._bcSubscriber),this.bcconnected=!1)}disconnect(){this.shouldConnect=!1,this.disconnectBc(),null!==this.ws&&hc(this,this.ws,null)}connect(){this.shouldConnect=!0,this.wsconnected||null!==this.ws||(fc(this),this.connectBc())}}class gc extends xo{}class bc{apiClient;collabDocument;yWebsocketProvider;item;awareness;users=[];avatars=new Map;constructor(e){this.apiClient=e,this.collabDocument=new gc}isActive(){return void 0!==this.yWebsocketProvider}getAwarenessStates(){return this.awareness?this.awareness.getStates():new Map}getUsersList(){return this.users}_getUser(e){for(const t of this.users)if(e===t.key)return t;return null}getLocalState(){if(!this.awareness)throw new Error("No awareness available. Cannot get state field.");return this.awareness.getLocalState()}setLocalStateField(e,t){if(!this.awareness)throw new Error("No awareness available. Cannot set state field.");this.awareness.setLocalStateField(e,t)}async _updateUsersList(){const e=this.getAwarenessStates(),t=await this.apiClient.me(!0);for(const[a,i]of e.entries()){if(!this._getUser(a)){let e=this.avatars.get(i.user.id);if(!e){e=(await this.apiClient.getAvatar(i.user.id,32)).avatar,this.avatars.set(i.user.id,e)}this.users.push({key:a,id:i.user.id,name:i.user.name,color:i.user.color,avatar:e,itsMe:i.user.id===t._id})}}const a=[];for(const t of this.users)e.has(t.key)&&a.push(t);this.users=a}async startCollaboration(e){try{if(!this.apiClient.isDevOrLocalhost())return!1;this.endCollaboration(),this.item=e;const t=this.apiClient.getCollabUrl(),a=`${this.item.type}.${this.item._id}`;let i=1e3;this.yWebsocketProvider=new yc(t,a,this.collabDocument,{connect:!1}),this.yWebsocketProvider.on("status",(e=>{console.log(`[Collab] ${e.status}`),"disconnected"===e.status&&this.yWebsocketProvider&&(this.yWebsocketProvider.disconnect(),setTimeout(r,i))})),this.yWebsocketProvider.on("sync",(e=>{console.log(`[Collab] synced: ${e}`)})),this.awareness=this.yWebsocketProvider.awareness,this.awareness.on("change",(async e=>{await this._updateUsersList(),y.$emit("collab:awareness:changed",{users:this.users,states:this.getAwarenessStates(),changes:e})}));const n=await this.apiClient.me(!0);this.awareness.setLocalStateField("user",{id:n._id,name:n.name,color:_.colorFromString(n.name)});const r=async()=>{if(!this.yWebsocketProvider)return void console.warn("[Collab] Cannot connect without websocket provider!");console.log("[Collab] reconnecting...");const e=await this.apiClient.getCollabToken();this.yWebsocketProvider.params.token=e,this.yWebsocketProvider.connect()};return await r(),y.$emit("collab:started"),!0}catch(e){return console.error("Error starting collaboration: ",e),!1}}endCollaboration(){this.yWebsocketProvider&&(console.log("Ending collaboration."),y.$emit("collab:ended"),this.yWebsocketProvider.destroy(),this.yWebsocketProvider=void 0,this.awareness=void 0),this.collabDocument=new gc,this.item=void 0}}class vc{apiClient;constructor(e){this.apiClient=e}async testCopyItems(e,t){const a=await this.apiClient.getItemsInFolderList(t,!0),i=await this.apiClient.getFoldersInFolderList(t),n=new Map;for(const e of i.children)n.set(e.name,null);for(const e of a)n.set(e.name,e._id);const r=this.apiClient.getItemRepo(),s=[];for(const t of e){let e,a,i=!1;t.isFolder?a=await this.apiClient.getFolder(t._id):(a=r.getLoadedItem(t._id),a||(a=await this.apiClient.getItem(t._id))),e=a?.name,i=n.has(e),s.push({_id:t._id,isFolder:t.isFolder,data:a,name:e,conflicted:i,conflictedItemId:n.get(e)})}return s}async copyItems(e,t,a=!1,i=!1){const n=e.filter((e=>!e.isFolder)).map((e=>e._id)),r=await this.apiClient.copyItems(n,t,a,i),s=this.apiClient.getItemRepo();for(let t of r){const a=e.filter((e=>e._id===t.original));a.length>0&&(t.replaced=a[0].conflictedItemId),await s.replaceLink(t.original,t.clone)}return await this.apiClient.eventBus.$emit("folder:changed",t),await this.apiClient.eventBus.$emit("items:copied",r),r}}class _c{apiClient;jobManager;constructor(e){this.apiClient=e,this.jobManager=e.getJobManager()}async executeExport(e,t,a,i){const n=await this.jobManager.execute("EXPORT:ExportGame",[{_id:e,isFolder:!1}],[{name:"Destination Folder",value:a},{name:"EngineVersion",value:i}],void 0,{os:t});if(await this.apiClient.eventBus.$emit("quota:update"),2===n.state)throw new V("Export failed: "+n.error);await this.apiClient.eventBus.$emit("folder:changed",[a])}}(c.default.default?c.default.default:c.default)(u.default,{retries:3,retryCondition:e=>e.message.includes("net::ERR_NETWORK_CHANGED")});const wc={Draft:0,Private:1,NotListed:2,Public:3};exports.AccessDeniedException=F,exports.AggregatedItem=D,exports.ApiClient=class extends m{accessToken;apiToken;options;forcePublicApi;usePublicApi;usePersistentStorage;storageSizeMib;requestClientId;webProtocol;wsProtocol;viewerProtocol;collabProtocol;restUrl;wsUrl;viewerUrl;collabUrl;itemRepo;itemCache;folderCache;thumbCache;userCache;groupCache;attachmentCache;jobManager;serializer;collab;itemCopier;executableExporter;eventBus;api;ws;cachedMe;profiler;wsLastPing;last2faCode="";constructor(e={}){super(),e=e||{},this.options=Object.assign({host:"auto",viewerHost:"auto",collabHost:"auto",https:!0,path:"",websocketPath:"/api/ws",wsAutoReconnect:!0,wsAutoConnect:!1,forcePublicApi:!1,debug:!1,accessToken:null,apiToken:null,viewerHttps:!1,collabHttps:!1,usePersistentStorage:!0,storageSizeMib:10240,requestClientId:null},e);const t=this.isOnLocalhost(),a=this.isDevPlatform();"auto"===this.options.host&&(this.options.host="api.lumino.cloud",this.options.https=!0,"object"==typeof window&&"location"in window&&(a?(this.options.host="api-dev.lumino.cloud",this.options.https=!0):t&&(this.options.host="localhost:8081",this.options.https=!1))),"auto"===this.options.viewerHost&&(this.options.viewerHost="viewer.lumino.cloud",this.options.viewerHttps=!0,"object"==typeof window&&"location"in window&&(a?(this.options.viewerHost="viewer-dev.lumino.cloud",this.options.viewerHttps=!0):t&&(this.options.viewerHost="localhost:8090",this.options.viewerHttps=!1))),"auto"===this.options.collabHost&&(this.options.collabHost="collab.lumino.cloud",this.options.collabHttps=!0,"object"==typeof window&&"location"in window&&(a?(this.options.collabHost="collab-dev.lumino.cloud",this.options.collabHttps=!0):t&&(this.options.collabHost="localhost:8200",this.options.collabHttps=!1))),this.accessToken=this.options.accessToken,this.apiToken=this.options.apiToken,this.forcePublicApi=this.options.forcePublicApi,this.usePublicApi=!this.accessToken&&!this.apiToken,this.usePersistentStorage=this.options.usePersistentStorage,this.storageSizeMib=this.options.storageSizeMib,this.requestClientId=this.options.requestClientId,this.cachedMe=null,this.itemRepo=new Ki(this.usePublicApi,this),this.itemCache=new zn(this.usePublicApi,this.usePersistentStorage,this,this.storageSizeMib),this.folderCache=new Wn(this),this.thumbCache=new Hn(this),this.userCache=new Yn(this),this.groupCache=new Gn(this),this.attachmentCache=new qn(this),this.jobManager=new Kn(this),this.serializer=new ir(this),this.collab=new bc(this),this.itemCopier=new vc(this),this.executableExporter=new _c(this),this.eventBus=y,this.profiler=null,this.webProtocol=this.options.https?"https":"http",this.restUrl=`${this.webProtocol}://${this.options.host}${this.options.path}`,this.wsProtocol=this.options.https?"wss":"ws",this.wsUrl=`${this.wsProtocol}://${this.options.host}${this.options.websocketPath}`,this.viewerProtocol=this.options.viewerHttps?"https":"http",this.viewerUrl=`${this.viewerProtocol}://${this.options.viewerHost}`,this.collabProtocol=this.options.collabHttps?"wss":"ws",this.collabUrl=`${this.collabProtocol}://${this.options.collabHost}`,this.api=u.default.create({baseURL:this.restUrl}),this.ws=null,this.wsLastPing=null,this.setDebugMode(this.options.debug)}async initCaches(){return Promise.all([this.itemCache.init(),this.folderCache.init(),this.thumbCache.init()])}clearCaches(){this.itemCache.clear(),this.folderCache.clear(),this.thumbCache.clear()}isDevPlatform(){return"object"==typeof window&&"location"in window&&window.location.href.includes("dev.lumino.cloud")}isOnLocalhost(){return"object"==typeof window&&"location"in window&&window.location.href.includes("localhost")}isDevOrLocalhost(){return this.isOnLocalhost()||this.isDevPlatform()}async clearIndexedDb(e){return new Promise(((t,a)=>{const i=indexedDB.deleteDatabase(e);i.onsuccess=()=>{t()},i.onerror=e=>{a("An error occured while deleting a IndexedDB database.")},i.onblocked=()=>{a(`Database deletion is blocked. Please close all connections to "${e}".`)}}))}async logout(){return this.clearCaches(),this.clearIndexedDb("lumino")}setDebugMode(e){this.options.debug=!!e,this.eventBus.setDebugMode(this.options.debug)}websocketConnect(e){const t=this;if(this.ws){if(!e)return void console.warn("Websocket is already connected!");this.websocketDisconnect()}this.ws=new d.default(this.wsUrl),this.ws.onerror=function(e){console.error("Websocket error",e),t.$emit("client:websocketError",e)},this.ws.onopen=function(){t.$emit("client:websocketOpen"),t.accessToken&&t.websocketSend(JSON.stringify({type:"auth",subscriptions:["item","folder","job","user","notification"],token:t.accessToken}))},this.ws.onclose=function(){t.$emit("client:websocketClosed"),t.options.wsAutoReconnect&&t.websocketConnect(!0)},this.ws.onmessage=function(e){try{const a=JSON.parse(e.data);switch(a.type){case"ping":t.wsLastPing=new Date,t.ws&&t.ws.send(JSON.stringify({type:"ping"}));break;case"authenticated":t.$emit("client:websocketAuthenticated");break;case"Item":case"Folder":case"Notification":case"Job":case"User":y.$emit("client:elementUpdate",a);break;default:console.warn("Unknown websocket message: ",a)}}catch(e){console.error("Websocket error:",e)}}}websocketDisconnect(){this.ws&&(this.ws.close(),this.ws=null)}websocketSend(e){this.ws?1===this.ws.readyState?this.ws.send(e):console.error("Websocket is not in READY state. Currently in state "+this.ws.readyState):console.error("Websocket is not created")}getItemCopier(){return this.itemCopier}getExecutableExporter(){return this.executableExporter}getCollab(){return this.collab}getCollabUrl(){return this.collabUrl}getPublisher(){return new Zn(this)}getAssetCreator(){return new ar(this)}getJobManager(){return this.jobManager}getThumbCache(){return this.thumbCache}getItemCache(){return this.itemCache}getItemRepo(){return this.itemRepo}getRootVisibility(){return this.itemRepo.activeItem?this.itemRepo.activeItem.visibility:wc.Private}getEventBus(){return this.eventBus}getSerializer(){return this.serializer}setForcePublicApi(e){this.forcePublicApi=e,this._updateUsePublicApi()}_updateUsePublicApi(){this.usePublicApi=this.forcePublicApi||!this.apiToken&&!this.accessToken,this.itemRepo.usePublicApi=this.usePublicApi,this.itemCache.usePublicApi=this.usePublicApi}setApiToken(e){this.apiToken=e,this._updateUsePublicApi()}setAccessToken(e){this.accessToken=e,this._updateUsePublicApi(),this.accessToken&&this.options.wsAutoConnect&&this.websocketConnect()}getApiToken(){return this.apiToken}getAccessToken(){return this.accessToken}updateBaseUrl(e){this.options.host=e,this.webProtocol=this.options.https?"https":"http";const t=`${this.webProtocol}://${this.options.host}${this.options.path}`;this.setApiBaseUrl(t),this.wsProtocol=this.options.https?"wss":"ws";const a=`${this.wsProtocol}://${this.options.host}${this.options.websocketPath}`;this.setWsBaseUrl(a)}setApiBaseUrl(e){this.restUrl=e,this.api=u.default.create({baseURL:this.restUrl})}setWsBaseUrl(e){this.wsUrl=e,this.accessToken&&this.options.wsAutoConnect&&(this.websocketDisconnect(),this.websocketConnect())}setRequestClientId(e){this.requestClientId=e}getApiBaseUrl(){return this.restUrl}getWsBaseUrl(){return this.wsUrl}getViewerBaseUrl(){return this.viewerUrl}setProfiler(e){if(!e||"function"!=typeof e.start)throw new Error("Profiler needs to be an object providing a start function.");this.profiler=e}async login2FA(e,t,a){return console.log("Running Login..."),this.execute("post","/api/auth/login2fa",{account:e,password:t,client:a}).then((e=>{this.last2faCode=e,this.eventBus.$emit("login.2facode",e)}))}async confirm2FA(e,t){return this.execute("post","/api/auth/confirm2fa",{account:e,code:t})}isAuthenticated(){return!!this.accessToken||!!this.apiToken}isFeatureEnabled(e){return!!this.cachedMe&&this.cachedMe.features.includes(e)}async resolveUserOrGroupInfoForItem(e){return e.quotaUser?this.userCache.resolve(e.quotaUser):e.quotaGroup?this.groupCache.resolve(e.quotaGroup):e.createdBy?this.userCache.resolve(e.createdBy):{name:"?",initials:"?",avatar:null}}_startOp(e){const t=this,a={id:_.createGUID(),name:e,startTimeMs:performance.now(),runningMs:0,percent:0,reportProgress:function(e){a.percent=e},interval:null,finish:function(){if(a.interval&&clearInterval(a.interval),a.runningMs>1e3)try{t.$emit("client:longRunningOpFinished",a.id)}catch(e){console.error(e)}}};return a.interval=setInterval((function(){if(a.runningMs=performance.now()-a.startTimeMs,a.runningMs>1e3)try{t.$emit("client:longRunningOp",a.id,a.name,a.percent)}catch(e){console.error(e)}}),100),a}_createOpName(e,t){try{const a=t.split("/");switch(e.toLowerCase()){case"get":e="Fetching";break;case"post":e="Creating";break;case"put":e="Updating";break;case"delete":e="Deleting"}a.shift(),a.shift();const i=a.shift();let n=a.join("/");return n.length&&(n=` [${n}]`),`${e} ${i} data ${n}`}catch{return`${e} ${t}`}}addAuthenticationHeaders(e){this.accessToken&&(e["x-access-token"]=this.accessToken),this.apiToken&&(e["x-api-token"]=this.apiToken),this.requestClientId&&(e["x-request-client"]=this.requestClientId)}async execute(e,t,a,i){let n=this,r={};(i=i||{}).headers?r=i.headers:a&&"object"==typeof a&&"getHeaders"in a&&"function"==typeof a.getHeaders&&(r=a.getHeaders()),this.addAuthenticationHeaders(r);const s=this.profiler?this.profiler.start("ApiClient",`${e} ${t}`):null,o=this._startOp(i.opName||n._createOpName(e,t));return this.api({method:e,url:t,data:a,responseType:i.responseType,headers:r,signal:i.controller?i.controller.signal:void 0,onUploadProgress:function(e){if(e.total){const t=Math.min(100,Math.round(100*e.loaded/e.total));o.reportProgress(t),n.$emit("client:progress",{type:"upload",percent:t}),"function"==typeof i.progressCallback&&i.progressCallback(t,e.loaded,e.total)}},onDownloadProgress:function(e){if(e.total){const t=Math.min(100,Math.round(100*e.loaded/e.total));o.reportProgress(t),n.$emit("client:progress",{type:"download",percent:t}),"function"==typeof i.progressCallback&&i.progressCallback(t,e.loaded,e.total)}}}).then((e=>{if(s&&s.done(),o.finish(),n.$emit("client:progress",{type:"done"}),e.headers["content-type"].startsWith("application/json")){if("success"===e.data.result){let t;return t=i.withNext?{data:e.data.data,next:e.data.next}:e.data.data,i.emitOnSuccess&&this.eventBus.$emit(i.emitOnSuccess,t),t}throw e.data.redirect&&this.$emit("client:redirect",e.data.redirect),e.data.error?e.data.error:"API response seems to be json but does not contain result type!"}return i.emitOnSuccess&&this.eventBus.$emit(i.emitOnSuccess),{blob:new Blob([e.data],{type:e.headers["content-type"]}),hash:e.headers["sha256-hash"],itemName:e.headers["lumino-itemname"],itemType:e.headers["lumino-itemtype"],mimeType:e.headers["content-type"]}})).catch((e=>{if(s&&s.done(),o.finish(),n.$emit("client:progress",{type:"done"}),e.response){if(401===e.response.status)throw this.$emit("client:unauthorized"),new F("Access denied. Please login again.");if(413===e.response.status)throw new I;if(e.response.data&&e.response.data.error)throw new Error(e.response.data.error)}throw e}))}_createFormData(e,t){let a=new p.default;if("function"==typeof File&&e instanceof Blob)a.append("file",e,t);else{const i=new Blob([e]);try{a.append("file",i,t)}catch{a=new p.default,a.append("file",e,t)}}return a}async me(e){return e&&this.cachedMe||(this.cachedMe=await this.execute("get","/api/auth/me")),this.cachedMe}async getHomeFolder(){return this.execute("get","/api/auth/homefolder")}async myClients(){return this.execute("get","/api/auth/myclients")}async getCollabToken(){return this.execute("get","/api/auth/collabtoken")}async checkCollabToken(e){return this.execute("post","/api/auth/collabtoken",{token:e})}async register(e){return this.execute("post","/api/auth/register",e)}async deleteMyAccount(e){return this.execute("post","/api/auth/deletemyaccount",{password:e})}async confirmEmail(e){return this.execute("get","/api/auth/confirmemail/"+e)}async confirmEmailChange(e){return this.execute("get","/api/auth/confirmchangedemail/"+e)}async forgotPassword(e,t){return this.execute("post","/api/auth/forgotpassword",{account:e,client:t})}async setNewPassword(e,t){return this.execute("post","/api/auth/setnewpassword",{token:e,password:t})}async accountExists(e){return this.execute("post","/api/auth/accountExists",e)}async getItemsInFolderList(e,t=!1){if(e&&!t){const t=await this.folderCache.getItemListing(e);if(t)return t}const a=await this.execute("get","/api/item/infolder/"+(e||"0"));return await this.folderCache.addItemListing(e,a),a}async getItem(e,t){const a=[];t&&(t.returnClonedFrom&&a.push("returnClonedFrom=true"),t.withThumbnails&&a.push("withThumbnails=true"));let i="";return a.length&&(i=`?${a.join("&")}`),this.execute("get",`/api/item/${e}${i}`)}getItemAggregatedPOP(e,t){return this.usePublicApi?this.getItemPublicAggregated(e,t):this.getItemAggregated(e,t)}async getItemPublicAggregated(e,t){const a=ji(e);if(a)return a;const i=[];t&&(t.withFieldInstances&&i.push("withFieldInstances"),t.withAttachmentInfo&&i.push("withAttachmentInfo"),t.noAttributes&&i.push("noAttributes"),t.noUserAttributes&&i.push("noUserAttributes"),t.noFields&&i.push("noFields"),t.noThumbnails&&i.push("noThumbnails"),t.noLinks&&i.push("noLinks"));let n="";return i.length&&(n=`?${i.join("&")}`),ji(e)?ji(e):this.execute("get","/api/item/publicaggregate/"+e+n)}async getItemAggregated(e,t){const a=ji(e);if(a)return a;const i=[];t&&(t.withFieldInstances&&i.push("withFieldInstances"),t.withAttachmentInfo&&i.push("withAttachmentInfo"),t.noAttributes&&i.push("noAttributes"),t.noUserAttributes&&i.push("noUserAttributes"),t.noFields&&i.push("noFields"),t.noThumbnails&&i.push("noThumbnails"),t.noLinks&&i.push("noLinks"));let n="";return i.length&&(n=`?${i.join("&")}`),ji(e)?ji(e):this.execute("get",`/api/item/aggregate/${e}${n}`)}async getItemAggregatedRecursive(e,t){const a=[];t&&(t.withFieldInstances&&a.push("withFieldInstances"),t.withAttachmentInfo&&a.push("withAttachmentInfo"),t.noAttributes&&a.push("noAttributes"),t.noUserAttributes&&a.push("noUserAttributes"),t.noFields&&a.push("noFields"),t.noThumbnails&&a.push("noThumbnails"));let i="";return a.length&&(i=`?${a.join("&")}`),this.execute("get",`/api/item/aggregaterecursive/${e}${i}`)}async getItemPublicRecursive(e,t){return this.execute("get","/api/item/publicrecursive/"+e+(t?"?withFeatures":""))}async getItemPublic(e,t){return this.execute("get","/api/item/public/"+e+(t?"?returnClonedFrom=true":""))}async getItemHistory(e){return this.execute("get","/api/item/history/"+e)}async copyItems(e,t,a,i){return this.execute("post","/api/item/copy",{sourceItemIds:e,destFolderId:t,deepCopy:a,overwrite:i})}async createItem(e){return this.execute("post","/api/item",e)}async updateItem(e){return this.execute("put","/api/item",e)}async deleteItem(e){return this.execute("delete","/api/item",{id:e})}async renameItem(e,t){return this.updateItem({_id:e,name:t})}async queryPublicItemsList(e){return this.execute("post","/api/item/publicquery",e)}async queryItemsListPOP(e){return this.usePublicApi?this.queryPublicItemsList(e):this.queryItemsList(e)}async queryItemsList(e){return this.execute("post","/api/item/query",e)}async queryItemsListAsExcel(e){e.exportAsExcel=!0;const t=await this.execute("post","/api/item/query",e,{responseType:"arraybuffer"}),a=window.URL.createObjectURL(t.blob),i=document.createElement("a");i.href=a,i.setAttribute("download","export.xlsx"),i.click()}async moveItems(e){return this.execute("post","/api/item/move",e)}async downloadItem(e,t){const a=Li(e);return a||this.execute("get",`/api/item/download/${e}`,null,{responseType:"arraybuffer",progressCallback:t,opName:`Downloading item ${e}`})}async publicDownloadItem(e,t){const a=Li(e);return a||this.execute("get",`/api/item/publicdownload/${e}`,null,{responseType:"arraybuffer",progressCallback:t})}async getItemHash(e){const t=ji(e);return t?t.hash:this.execute("get",`/api/item/hash/${e}`)}async requestSecureDownload(e){return this.execute("get","/api/item/requestsecuredownload/"+e)}async getThumbnail(e,t){return this.execute("get",`/api/item/thumbnail/${e}/${t}`)}async uploadThumbnail(e,t,a,i,n,r){const s=this._createFormData(a,i);return this.execute("post",`/api/item/thumbnail/${t}/${e}`,s,{progressCallback:n,controller:r})}async getPublicThumbnail(e,t){return this.execute("get",`/api/item/publicthumbnail/${e}/${t}`)}async makeItemPublic(e,t,a){return this.execute("put","/api/item/makepublic",{id:e,recursive:t,inSubfolders:a})}async setVisibility(e,t,a,i){return this.execute("put","/api/item/setvisibility",{id:e,visibility:t,recursive:a,inSubfolders:i})}async makeItemPrivate(e,t,a){return this.execute("put","/api/item/makeprivate",{id:e,recursive:t,inSubfolders:a})}async setOmitLodGeneration(e,t){return this.execute("get",`/api/item/setOmitLodGeneration/${e}/${t}`)}async setOmitThumbnailGeneration(e,t){return this.execute("get",`/api/item/setOmitThumbnailGeneration/${e}/${t}`)}async setOmitPreviewGeneration(e,t){return this.execute("get",`/api/item/setOmitPreviewGeneration/${e}/${t}`)}async uploadAndCreate(e,t,a,i,n,r){const s=this._createFormData(t,a);let o=`/api/item/uploadAndCreate/${e}`,l={};return i&&("object"==typeof i?(i.autoDestructIn&&(o+="?autoDestructIn="+i.autoDestructIn),i.visibility&&(o+="?visibility="+i.visibility),i.flags&&(o+="?flags="+i.flags),i.overwrite&&(o+="?overwrite="+(i.overwrite?"true":"false")),i.nameOverride&&(l["x-override-name"]=i.nameOverride)):o+="?autoDestructIn="+i),this.execute("post",o,s,{progressCallback:n,controller:r,headers:l})}async upload(e,t,a,i,n,r){const s=[];r&&(r.omitHandleDependencyChange&&s.push("omitHandleDependencyChange=true"),r.keepThumbnails&&s.push("keepThumbnails=true"));let o="";s.length&&(o=`?${s.join("&")}`);const l=this._createFormData(t,a);return this.execute("post",`/api/item/upload/${e}${o}`,l,{progressCallback:i,controller:n})}resetPreview(e){const t=this.execute("delete",`/api/item/attachment/${e}/preview`),a=this.execute("get",`/api/item/setOmitPreviewGeneration/${e}/false`);return Promise.all([t,a])}clearPreview(e){const t=this.execute("delete",`/api/item/attachment/${e}/preview`),a=this.execute("get",`/api/item/setOmitPreviewGeneration/${e}/true`);return Promise.all([t,a])}async clearThumbnail(e){return this.execute("get",`/api/item/clearThumbnail/${e}`)}async resetThumbnail(e){return this.execute("get",`/api/item/resetThumbnail/${e}`)}async downloadAttachmentPOP(e,t,a,i,n){return this.usePublicApi?this.downloadPublicAttachment(e,t,a,i,n):this.downloadAttachment(e,t,a,i,n)}_getAttachmentUrlPath(e,t,a,i,n){return`/api/item/${n?"public":""}attachment/${e}/${t}${null!=a?`/${a}`:"/undefined"}${null!=i?`/${i}`:""}`}async downloadAttachment(e,t,a,i=0,n){const r=Yi(e,t,a,i);return r||this.execute("get",this._getAttachmentUrlPath(e,t,a,i),null,{responseType:"arraybuffer",progressCallback:n})}async downloadPublicAttachment(e,t,a,i,n){const r=Yi(e,t,a,i);return r||this.execute("get",this._getAttachmentUrlPath(e,t,a,i,!0),null,{responseType:"arraybuffer",progressCallback:n})}async uploadAttachment(e,t,a,i,n,r,s,o){const l=this._createFormData(n,r);return this.execute("post",this._getAttachmentUrlPath(e,t,a,i),l,{progressCallback:s,controller:o})}async deleteAttachment(e,t,a,i){return this.attachmentCache.invalidateAttachment(e,t,a,i),this.execute("delete",this._getAttachmentUrlPath(e,t,a,i))}setPerceptiveHashOnAttachment(e,t,a){return this.execute("get",`/api/item/setPerceptiveHashAttachment/${e}/${t}/${a}`)}setPerceptiveHash(e,t){return this.execute("get",`/api/item/setPerceptiveHash/${e}/${t}`)}async getItemClient(e){return this.execute("get",`/api/item/getClient/${e}`)}async getItemAcl(e){return this.execute("get",`/api/item/acl/${e}`)}async getItemsLinking(e){return this.execute("get",`/api/item/linking/${e}`)}async setAttributes(e,t){return this.execute("put","/api/item/setAttributes",{id:e,attributes:t})}async getItemSyncList(e){const t=W(e).format("YYYYMMDDHHmmss");return this.execute("get",`/api/item/synclist/${t}`)}async increaseViews(e){return this.execute("get",`/api/item/increaseViews/${e}`)}async getViews(e){return this.execute("get",`/api/item/views/${e}`)}async getPublicItemCounts(e){return this.execute("get",`/api/item/publiccounts/${e}`)}async getItemCounts(e){return this.execute("get",`/api/item/counts/${e}`)}async likeItem(e){return this.execute("get",`/api/item/like/${e}`)}async unlikeItem(e){return this.execute("get",`/api/item/unlike/${e}`)}async doILike(e){return this.execute("get",`/api/item/doILike/${e}`)}async setItemAutoDestruct(e,t){const a=W(t).format("YYYYMMDDHHmmss");return this.execute("get",`/api/item/setAutoDestruct/${e}/${a}`)}async clearItemAutoDestruct(e){return this.execute("get",`/api/item/clearAutoDestruct/${e}`)}async resolveRelativeItem(e,t){const a=ji(e);if(!a)return this.execute("post","/api/item/resolve/"+e,{path:t});t.startsWith("/")&&(t=t.substring(1));const i=t.split("/"),n=i.pop();let r=a.folder._id;for(const e of i){let t=!1;for(const[a,i]of Object.entries(Ri()))if(i.parent===r&&i.name===e){r=a,t=!0;break}if(!t)break}for(const e of Object.values($i()))if(e.folder._id===r&&e.name===n)return e._id;return console.error(`Could not resolve path ${t} for item ${e}`),null}async publicResolveRelativeItem(e,t){const a=ji(e);if(!a)return this.execute("post","/api/item/publicResolve/"+e,{path:t});t.startsWith("/")&&(t=t.substring(1));const i=t.split("/"),n=i.pop();let r=Pi(a.folder._id);for(const e of i)if(".."===e)r=Pi(r.parent);else{const t=Oi(e,r._id);if(!t)throw new Error("Can't find folder while loading folder from package");r=t}const s=Bi(n,r._id);if(s)return s._id;throw new Error("Can't load item from package.")}async rewireItems(e){return this.execute("post","/api/item/rewire",{items:e})}async getFolder(e){return this.execute("get","/api/folder/"+e)}async getFullFolderTree(e){return this.execute("get",`/api/folder/fulltree/${e||"0"}`)}async getFoldersInFolderList(e,t){e=e||"0";const a=[];let i="";if(t){if(t.resolveNames&&!t.folderAsItemType&&"0"!==e){if(i=await this.folderCache.getFolderListing(e),i&&Date.now()-new Date(i.cachedAt).getTime()<1e4)return i;i&&i.parent&&a.push(`lastUpdatedAt=${i.parent.updatedAt}`)}t.resolveNames&&a.push("resolve"),t.folderAsItemType&&a.push(`folderAsItemType=${t.folderAsItemType}`),t.folderAsItemName&&a.push(`folderAsItemName=${t.folderAsItemName}`),t.folderAsItemFlag&&a.push(`folderAsItemFlag=${t.folderAsItemFlag}`),t.withStats&&a.push("withStats=true"),t.returnLatestPackage&&a.push("returnLatestPackage=true")}let n="";a.length&&(n="?"+a.join("&"));const r=await this.execute("get",`/api/folder/infolder/${e}${n}`);if(!0===r.notModified)return i;if(!t||t.resolveNames&&!t.folderAsItemType){const t=await this.getFolderAclList([e,...r.children.map((e=>e._id))]);for(const e of t)await this.folderCache.addACL(e.id,e.acl);return await this.folderCache.addFolderListing(e,r),r}return r}async updateFolderCache(e){const t=[];for(const a of e){if(!a)continue;const e=await this.folderCache.getFolderListing(a);e&&e.parent?t.push({id:a,lastUpdatedAt:e.parent.updatedAt}):t.push({id:a})}const a=await this.execute("post","/api/folder/infolderquery",{folders:t});for(const e of a)!0===e.data.notModified?await this.folderCache.refreshCacheForFolder(e.id):await this.folderCache.addFolderListing(e.id,e.data)}async createFolder(e){return this.execute("post","/api/folder",e)}async updateFolder(e){return this.execute("put","/api/folder",e)}async deleteFolder(e){return this.execute("delete","/api/folder",{id:e})}async renameFolder(e,t){return this.updateFolder({_id:e,name:t})}async moveFolders(e){return this.execute("post","/api/folder/move",e)}async getFolderPath(e){return e?("object"==typeof e&&(e=e._id),this.execute("get","/api/folder/path/"+e)):{path:"/",elements:[]}}async resolveFolderPath(e){return"/"===(e=e.trim())?null:this.execute("post","/api/folder/resolve",{path:e})}async getFolderClient(e){return this.execute("get",`/api/folder/getClient/${e}`)}async getFolderAcl(e){const t=await this.folderCache.getFolderACLs(e||"0",1e4);if(t&&e)return t;{const t=await this.execute("get",`/api/folder/acl/${e||"0"}`);return await this.folderCache.addACL(e||"0",t),t}}async getFolderAclList(e){return this.execute("post","/api/folder/aclquery",{ids:e})}async getUser(e){return this.execute("get","/api/user/"+e)}async getUsersList(){return this.execute("get","/api/user")}async createUser(e){return this.execute("post","/api/user",e)}async queryUser(e,t,a){return this.execute("post","/api/user/query",{searchQuery:e,groupID:t,cursor:a},{withNext:!0})}async updateUser(e){return this.execute("put","/api/user",e)}async deleteUser(e){return this.execute("delete","/api/user",{id:e})}async updateMyProfile(e){return this.execute("put","/api/user/myprofile",e)}async switchClient(e){return this.execute("get",`/api/user/switchclient/${e}`)}async activateUser(e,t){return this.execute("post","/api/user/activate",{token:t,password:e})}async getUsersToApprove(){return this.execute("get","/api/user/approvals")}async approveUserRegistration(e){return this.execute("get",`/api/user/approveuserregistration/${e}`)}async rejectUserRegistration(e){return this.execute("get",`/api/user/rejectuserregistration/${e}`)}async uploadAvatar(e){const t=new p.default;if(e instanceof Blob)t.append("file",e);else{const a=new Blob([new Uint8Array(e)]);t.append("file",a,"avatar.jpg")}return this.execute("post","/api/user/uploadAvatar",t)}async clearAvatar(){return this.execute("get","/api/user/clearAvatar")}async getAvatar(e,t){return this.execute("get",`/api/user/avatar/${t}/${e}`)}async getUserPublicInfo(e,t,a){return this.execute("get",`/api/user/publicinfo/${e}/${t}/${a}`)}async getUserAttribute(e){return this.execute("get",`/api/user/attribute/${e}`)}async clearUserAttribute(e){return this.execute("delete",`/api/user/attribute/${e}`)}async setUserAttribute(e,t){return this.execute("post",`/api/user/attribute/${e}`,t)}async getGroup(e){return this.execute("get","/api/group/"+e)}async getGroupFolder(e){return this.execute("get","/api/group/folder/"+e)}async getGroupsList(){return this.execute("get","/api/group")}async createGroup(e){return this.execute("post","/api/group",e)}async queryGroup(e,t){return this.execute("post","/api/group/query",{searchQuery:e,cursor:t},{withNext:!0})}async updateGroup(e){return this.execute("put","/api/group",e)}async deleteGroup(e){return this.execute("delete","/api/group",{id:e})}async getGroupQuotaInfo(e){return this.execute("get","/api/group/quota/"+e)}async getGroupPublicInfo(e,t,a){return this.execute("get",`/api/group/publicinfo/${e}/${t}/${a}`)}async getGroupUsers(e){return this.execute("get","/api/group/users/"+e)}async uploadGroupAvatar(e,t){const a=new p.default;if(t instanceof Blob)a.append("file",t);else{const e=new Blob([new Uint8Array(t)]);a.append("file",e,"avatar.jpg")}return this.execute("post","/api/group/"+e+"/uploadAvatar",a)}async getClientsList(){return this.execute("get","/api/client")}async getClient(e){return this.execute("get",`/api/client/${e}`)}async createClient(e){return this.execute("post","/api/client",e)}async queryClient(e,t){return this.execute("post","/api/client/query",{searchQuery:e,cursor:t},{withNext:!0})}async updateClient(e){return this.execute("put","/api/client",e)}async deleteClient(e){return this.execute("delete","/api/client",{id:e})}async getClientMetrics(e,t,a){return this.execute("get",`/api/client/metrics/${t}/${a}/${e}`)}async joinClient(e){return this.execute("get",`/api/client/join/${e}`)}async leaveClient(e){return this.execute("get",`/api/client/leave/${e}`)}async myClient(){return this.execute("get","/api/client/my")}async saveMyClient(e){return this.execute("put","/api/client/my",e)}async getPublicCategories(e){return this.execute("get",`/api/client/publiccategories/${e}`)}async getCategories(){return this.execute("get","/api/client/categories")}async getCategoriesInClient(e){return this.execute("get",`/api/client/categories/${e}`)}async updateCategoriesInClient(e,t){return this.execute("post",`/api/client/categories/${e}`,t)}async getLicenses(){return this.execute("get","/api/license")}async getLicensesInClient(e){return this.execute("get",`/api/license/inclient/${e}`)}async getLicense(e){return this.execute("get",`/api/license/${e}`)}async createLicense(e){return this.execute("post","/api/license",e)}async updateLicense(e){return this.execute("put","/api/license",e)}async deleteLicense(e,t){return this.execute("delete","/api/license",{_id:e,client:t})}async getPublicLicenses(e){return this.execute("get",`/api/license/publiclist/${e}`)}async getPublicLicense(e){return this.execute("get",`/api/license/public/${e}`)}async getDatatypesList(){return this.execute("get","/api/datatype")}async getPublicDatatypesList(e){return this.execute("get",`/api/datatype/public/${e}`)}async getDatatypesListOnClient(){return this.execute("get","/api/datatype/onclient")}async getDatatypesListOnClientForAll(){return this.execute("get","/api/datatype/onclientforall")}async getAllDatatypesList(){return this.execute("get","/api/datatype/all")}async getDatatype(e){return this.execute("get",`/api/datatype/${e}`)}async createDatatype(e){return this.execute("post","/api/datatype",e)}async updateDatatype(e){return this.execute("put","/api/datatype",e)}async deleteDatatype(e){return this.execute("delete","/api/datatype",{id:e})}async getMyNotifications(e){return this.execute("get","/api/notification"+(e?`?maxCount=${e}`:""))}async markNotificationAsRead(e){return this.execute("get",`/api/notification/markasread/${e}`)}async markAllNotificationsAsRead(){return this.execute("get","/api/notification/markallasread")}async createJob(e){return this.execute("post","/api/job",e,{emitOnSuccess:"job:created"})}async getManualJobTypes(){return this.execute("get","/api/job/manualtypes")}async getManualJobTypesOnClient(){return this.execute("get","/api/job/manualtypes/onclient")}async getManualJobTypesOnClientForAll(){return this.execute("get","/api/job/manualtypes/onclientforall")}async getAllManualJobTypes(){return this.execute("get","/api/job/manualtypes/all")}async getAllManualJobTypesForClient(e){return this.execute("get",`/api/job/manualtypes/all/${e}`)}async getClientJobTypes(){return this.execute("get","/api/job/clientTypes")}async getMyJobs(){return this.execute("get","/api/job/mine")}async getJobs(){return this.execute("get","/api/job")}async getJobsAggregated(){return this.execute("get","/api/job/aggregated")}async getJobsTimeframe(e,t){return this.execute("get",`/api/job/all/${e}/${t}`)}async getJob(e){return this.execute("get",`/api/job/${e}`)}async getJobState(e){return this.execute("get",`/api/job/state/${e}`)}async getAgents(){return this.execute("get","/api/jobagent")}async getAgentsAggregated(){return this.execute("get","/api/jobagent/aggregated")}async enableJobAgent(e){return this.execute("get",`/api/jobagent/enable/${e}`)}async disableJobAgent(e){return this.execute("get",`/api/jobagent/disable/${e}`)}async restartJobAgent(e){return this.execute("get",`/api/jobagent/restart/${e}`)}async getPermissionsList(){return this.execute("get","/api/permission")}async getPlugins(){return this.execute("get","/api/plugin")}async getPlans(){return this.execute("get","/api/plan")}async getPlan(e){return this.execute("get",`/api/plan/${e}`)}async createPlan(e){return this.execute("post","/api/plan",e)}async updatePlan(e){return this.execute("put","/api/plan",e)}async deletePlan(e){return this.execute("delete","/api/plan",{id:e})}async getWorkflows(){return this.execute("get","/api/workflow")}async getWorkflow(e){return this.execute("get",`/api/workflow/${e}`)}async createWorkflow(e){return this.execute("post","/api/workflow",e)}async updateWorkflow(e){return this.execute("put","/api/workflow",e)}async deleteWorkflow(e){return this.execute("delete","/api/workflow",{id:e})}async startWorkflow(e){return this.execute("post","/api/workflow/start",e)}async getAccessTokens(){return this.execute("get","/api/accesstoken")}async getClientAccessTokens(){return this.execute("get","/api/accesstoken/client")}async createAccessToken(e){return this.execute("post","/api/accesstoken",e)}async createClientAccessToken(e){return this.execute("post","/api/accesstoken/client",e)}async deleteAccessToken(e){return this.execute("delete","/api/accesstoken",{id:e})}async deleteClientAccessToken(e){return this.execute("delete","/api/accesstoken/client",{id:e})}async enableAccessToken(e){return this.execute("get",`/api/accesstoken/enable/${e}`)}async disableAccessToken(e){return this.execute("get",`/api/accesstoken/disable/${e}`)}async getApiTokens(){return this.execute("get","/api/apitoken")}async createApiToken(e){return this.execute("post","/api/apitoken",e)}async deleteApiToken(e){return this.execute("delete","/api/apitoken",{id:e})}async getMyClientInvoices(){return this.execute("get","/api/invoice")}async getMyUserInvoices(){return this.execute("get","/api/invoice/my")}async getClientInvoices(e){return this.execute("get",`/api/invoice/client/${e}`)}async downloadInvoice(e,t){const a=await this.execute("get",`/api/invoice/download/${e}`,null,{responseType:"arraybuffer"}),i=window.URL.createObjectURL(a.blob),n=document.createElement("a");n.href=i,n.setAttribute("download",t||"invoice.pdf"),document.body.appendChild(n),n.click()}async regenerateInvoice(e){return this.execute("get",`/api/invoice/regenerate/${e}`)}async getInvoicesForMonth(e,t){return this.execute("get",`/api/invoice/month/${t}/${e}`)}async refundInvoice(e,t,a){return this.execute("post","/api/invoice/refund",{invoice:e,amount:t,reason:a})}async paymentStartCheckout(e,t){return this.execute("post","/api/payment/checkout",{successUrl:e,cancelUrl:t})}async paymentStartUserCheckout(e,t){return this.execute("post","/api/payment/usercheckout",{successUrl:e,cancelUrl:t})}async getSupportedCurrencies(){return this.execute("get","/api/payment/supportedCurrencies")}async getPurchasables(){return this.execute("get","/api/purchasable")}async getPurchasable(e){return this.execute("get",`/api/purchasable/${e}`)}async createPurchasable(e){return this.execute("post","/api/purchasable",e)}async updatePurchasable(e){return this.execute("put","/api/purchasable",e)}async deletePurchasable(e){return this.execute("delete","/api/purchasable",{id:e})}async getPublicPurchasables(e){return this.execute("get",`/api/purchasable/public/${e}`)}async getPurchases(){return this.execute("get","/api/purchase")}async getMyActivePurchases(){return this.execute("get","/api/purchase/active")}async purchase(e){return this.execute("post","/api/purchase",e)}async changePurchaseProduct(e,t,a){return this.execute("post","/api/purchase/change",{purchaseID:e,purchasableID:t,optionID:a})}async cancelPurchase(e){return this.execute("delete","/api/purchase",{id:e})}async uncancelPurchase(e){return this.execute("post","/api/purchase/uncancel",{id:e})}async getSecureSessionPayload(e,t){return this.execute("get","/api/payment/secureSessionPayload?purchasableID="+e+"&optionID="+t)}async queryPurchases(e,t,a,i,n,r){return this.execute("post","/api/purchase/query",{startDate:e,endDate:t,email:a,invoice:i,cursor:n,limit:r})}async getAttributeTemplates(){return this.execute("get","/api/attributetemplate")}async getAttributeTemplate(e){return this.execute("get",`/api/attributetemplate/${e}`)}async createAttributeTemplate(e){return this.execute("post","/api/attributetemplate",e)}async updateAttributeTemplate(e){return this.execute("put","/api/attributetemplate",e)}async deleteAttributeTemplate(e){return this.execute("delete","/api/attributetemplate",{id:e})}async getStorages(){return this.execute("get","/api/storage")}async getConversation(e){return this.execute("get",`/api/conversation/${e}`)}async getPublicConversation(e){return this.execute("get",`/api/conversation/public/${e}`)}async createConversation(e,t){return this.execute("post","/api/conversation",{parentId:e,parentType:t})}async postConversationMessage(e,t,a){return this.execute("post","/api/conversation/post",{id:e,text:t,replyTo:a})}async editConversationMessage(e,t){return this.execute("put","/api/conversation/post",{id:e,text:t})}async deleteConversationMessage(e){return this.execute("delete","/api/conversation/post",{id:e})}async subscribeToConversation(e){return this.execute("post","/api/conversation/subscribe",{id:e})}async unsubscribeFromConversation(e){return this.execute("post","/api/conversation/unsubscribe",{id:e})}async likeConversationEntry(e){return this.execute("post","/api/conversation/like",{id:e})}async unlikeConversationEntry(e){return this.execute("post","/api/conversation/unlike",{id:e})}async command(e){return this.execute("post","/api/command",e)}async getMailTemplates(){return this.execute("get","/api/mailtemplate")}async getMailTemplate(e){return this.execute("get",`/api/mailtemplate/${e}`)}async createMailTemplate(e){return this.execute("post","/api/mailtemplate",e)}async updateMailTemplate(e){return this.execute("put","/api/mailtemplate",e)}async deleteMailTemplate(e){return this.execute("delete","/api/mailtemplate",{id:e})}async addMailTemplateImage(e,t,a){const i=this._createFormData(a,"image.jpg");return this.execute("post",`/api/mailtemplate/image/${e}/${t}`,i)}async deleteMailTemplateImage(e,t){return this.execute("delete",`/api/mailtemplate/image/${e}/${t}`)}async getMailTemplateNames(){return this.execute("get","/api/mailtemplate/names")}async getMailQuery(e,t,a,i){return this.execute("post","/api/email/query",{templateName:e,dateStart:t,dateEnd:a,success:i},{withNext:!0})}async getMail(e){return this.execute("get","/api/email/get?token="+e)}async getInvoiceTemplates(){return this.execute("get","/api/invoicetemplate")}async getInvoiceTemplate(e){return this.execute("get",`/api/invoicetemplate/${e}`)}async createInvoiceTemplate(e){return this.execute("post","/api/invoicetemplate",e)}async updateInvoiceTemplate(e){return this.execute("put","/api/invoicetemplate",e)}async deleteInvoiceTemplate(e){return this.execute("delete","/api/invoicetemplate",{id:e})}async addInvoiceTemplateImage(e,t,a){const i=this._createFormData(a,"image.jpg");return this.execute("post",`/api/invoicetemplate/image/${e}/${t}`,i)}async deleteInvoiceTemplateImage(e,t){return this.execute("delete",`/api/invoicetemplate/image/${e}/${t}`)}async getItemTemplatesList(){return this.execute("get","/api/itemtemplate/list")}async getItemTemplates(){return this.execute("get","/api/itemtemplate")}async createItemTemplate(e){return this.execute("post","/api/itemtemplate",e)}async updateItemTemplate(e){return this.execute("put","/api/itemtemplate",e)}async deleteItemTemplate(e){return this.execute("delete","/api/itemtemplate",{id:e})}async getFeatures(){return this.execute("get","/api/feature")}async getFeaturesOnClient(){return this.execute("get","/api/feature/onclient")}async getFeaturesOnClientForAll(){return this.execute("get","/api/feature/onclientforall")}async getAllFeatures(){return this.execute("get","/api/feature/all")}async getBlogs(){return this.execute("get","/api/blog")}async getBlog(e){return this.execute("get","/api/blog/"+e)}async getPublicBlog(e){return this.execute("get","/api/blog/"+e+"/public")}async createBlog(e,t,a,i){return this.execute("post","/api/blog",{name:e,public:t,commentsEnabled:a,editors:i})}async saveBlog(e,t,a,i,n){return this.execute("put","/api/blog",{_id:e,name:t,public:a,commentsEnabled:i,editors:n})}async deleteBlog(e){return this.execute("delete","/api/blog",{_id:e})}async getBlogOverview(e){return this.execute("get","/api/blog/"+e+"/overview")}async queryBlog(e,t,a,i,n,r,s){return this.execute("post","/api/blog/"+e+"/query",{tag:t,text:a,limit:i,previousArticle:n,searchTag:r,sortBy:s})}async getArticles(e){return this.execute("get","/api/blog/"+e+"/article")}async getArticle(e,t){return this.execute("get","/api/blog/"+e+"/article/"+t)}async getArticleBySlug(e,t){return this.execute("get","/api/blog/article/"+e+"/"+t)}async createArticle(e,t,a){return this.execute("post","/api/blog/"+e+"/article",{title:t,slug:a})}async saveArticle(e,t,a,i,n,r,s,o){return this.execute("put","/api/blog/"+e+"/article",{_id:t,title:a,slug:i,content:o,tags:r,public:n,author:s})}async deleteArticle(e,t){return this.execute("delete","/api/blog/"+e+"/article",{_id:t})}async getNewsletters(){return this.execute("get","/api/newsletter")}async createNewsletter(e,t){return this.execute("post","/api/newsletter",{name:e,editors:t})}async getNewsletter(e){return this.execute("get","/api/newsletter/"+e)}async updateNewsletter(e,t,a,i){return this.execute("put","/api/newsletter/"+e,{name:t,sender:a,editors:i})}async deleteNewsletter(e){return this.execute("delete","/api/newsletter/"+e)}async joinNewsletter(e,t){return this.execute("post","/api/newsletter/join",{id:e,email:t})}async confirmNewsletter(e){return this.execute("post","/api/newsletter/confirm",{token:e})}async unsubscribeFromNewsletter(e){return this.execute("post","/api/newsletter/unsubscribe",{token:e})}async getNewsletterBlocks(){return this.execute("get","/api/newsletterblock")}async getNewsletterBlock(e){return this.execute("get","/api/newsletterblock/"+e)}async createNewsletterBlock(e){return this.execute("post","/api/newsletterblock",{name:e})}async updateNewsletterBlock(e,t,a,i,n,r){return this.execute("put","/api/newsletterblock/"+e,{name:t,inputs:a,html:i,css:n,acceptsChildren:r})}async deleteNewsletterBlock(e){return this.execute("delete","/api/newsletterblock/"+e)}async getNewsletterMails(e){return this.execute("get","/api/newslettermail/"+e)}async getNewsletterMail(e,t){return this.execute("get","/api/newslettermail/"+e+"/"+t)}async createNewsletterMail(e,t){return this.execute("post","/api/newslettermail/"+e,{title:t})}async updateNewsletterMail(e,t,a,i,n){return this.execute("put","/api/newslettermail/"+e+"/"+t,{title:a,blocks:i,parentBlock:n})}async generatePreviewNewsletterMail(e,t){return this.execute("post","/api/newslettermail/render",{blocks:e,parentBlock:t})}async sendTestNewsletter(e,t,a){return this.execute("post","/api/newslettermail/"+e+"/"+t+"/sendTest",{email:a})}async sendOutNewsletter(e,t){return this.execute("post","/api/newslettermail/"+e+"/"+t+"/send",{})}async getPages(){return this.execute("get","/api/page")}async createPage(e,t){return this.execute("post","/api/page",{title:e,slug:t})}async getPage(e){return this.execute("get","/api/page/"+e)}async updatePage(e,t,a,i,n){return this.execute("put","/api/page",{_id:e,title:t,slug:a,public:i,content:n})}async deletePage(e){return this.execute("delete","/api/page",{_id:e})}async getPublicPage(e,t){return this.execute("get","/api/page/public/"+e+"/"+t)}async setItemFlag(e,t,a,i,n,r){return this.execute("post","/api/itemflag",{item:e,isStaffPick:t,featureWeight:a,isGame:i,replaceIndex:n,internalRating:r})}getDownloadUrl(e){return`${this.getApiBaseUrl()}/api/item/download/${e}`}getAttachmentDownloadUrl(e,t,a,i){return`${this.getApiBaseUrl()}${this._getAttachmentUrlPath(e,t,a,i)}`}getPublicAttachmentDownloadUrl(e,t,a,i){return`${this.getApiBaseUrl()}${this._getAttachmentUrlPath(e,t,a,i,!0)}`}getPublicDownloadUrl(e){return`${this.getApiBaseUrl()}/api/item/publicdownload/${e}`}async postFeedback(e){return this.execute("post","/api/feedback",{text:e})}},exports.ApiGateway=H,exports.Block=ce,exports.CustomField=ne,exports.EventEmitter=m,exports.Field=ie,exports.InvalidArgumentException=M,exports.InvalidStateException=class extends T{constructor(e){super(e,"InvalidStateException")}},exports.Item=E,exports.ItemCache=zn,exports.ItemRepo=Ki,exports.ItemVisibility=wc,exports.LinkableItemsCache=class{linkableItemsCache;apiGateway;itemCache;usePublicApi;constructor(e,t,a=!1){this.linkableItemsCache=new Map,this.apiGateway=e,this.itemCache=t,this.usePublicApi=a}clear(){this.linkableItemsCache.clear()}resolveItem(e,t){for(const a of t)if(a._id===e)return a;return null}async loadLinkableItems(e,t){if(!e)throw"loadLinkableItems(): Item cannot be null!";let a=[];if(t.linkableTypes&&t.linkableTypes.length){if(!this.usePublicApi){const i=t.linkableTypes.join("#")+(e.folder?e.folder._id:"");if(this.linkableItemsCache.has(i))return this.linkableItemsCache.get(i);const n=[...t.linkableTypes];n.includes("Package")||n.push("Package");const r={types:n,folder:e.folder?e.folder._id:null};a=(await this.apiGateway.call("LinkableItemsCache::loadLinkableItems","queryItemsList",r)).filter((e=>"Package"!==e.type||t.linkableTypes.includes(e.packageType)));for(const i of e.links)if(null==this.resolveItem(i.to,a))try{const e=await this.itemCache.getItem(i.to);t.linkableTypes.includes(e.type)&&a.push(e)}catch(e){console.error(`Link item ${i.to} not found. Dead link? (${e})`)}this.linkableItemsCache.set(i,a)}}else{for(const t of e.links){const e=await this.itemCache.getItem(t.to);a.push(e)}const i=t.name+"#CurrentLinks";this.linkableItemsCache.set(i,a)}return a}},exports.LoaderException=C,exports.PackageTools=Gi,exports.PreparedItem=re,exports.Profiler=x,exports.Proxifier=S,exports.ProxyEvent=g,exports.QuotaExceededException=I,exports.Script=X,exports.ScriptField=J,exports.Snapshot=G,exports.Storage=sn,exports.Template=oe,exports.TemplateFactory=le,exports.ThumbCache=Hn,exports.UndoManager=Zi,exports.eventBus=y,exports.getDatatypeByName=R,exports.getDatatypes=function(){return structuredClone(L)},exports.hasPermission=function(e,t,a){if(e.admin&&!a)return!0;if(e.superadmin)return!0;if(Array.isArray(e.permissions))if(Array.isArray(t)){for(const a of e.permissions)for(const e of t)if(a===e)return!0}else for(const a of e.permissions)if(a===t)return!0;return!1},exports.profileAsyncBlock=async function(e,t){return x.instance.asyncBlock(e,t)},exports.profileBlock=function(e,t){return x.instance.block(e,t)},exports.tools=_,exports.verifyAcl=se;
19
19
  //# sourceMappingURL=lemonate-gateway.cjs.js.map