function decycle(a,b=[]){if(!a||"object"!==typeof a)return a;if(b.includes(a))return null;let c=b.concat([a]);return Array.isArray(a)?a.map(a=>decycle(a,c)):Object.assign(new a.constructor,Object.fromEntries(Object.entries(a).map(([a,b])=>[a,decycle(b,c)])))}function vueLoader(a){return httpVueLoader("assets/js/"+a+".vue")}Array.prototype.remove=function(a){a=this.indexOf(a);return-1!==a?(this.splice(a,1),!0):!1}; Array.prototype.compare=function(a){if(this===a)return 0;let b=Math.max(this.length,a.length);for(let c=0;ca[c])return 1}return 0};Array.prototype.includes||(Array.prototype.includes=function(a){return-1!==this.indexOf(a)});String.prototype.includes||(String.prototype.includes=function(a){return-1!==this.indexOf(a)}); Node.prototype.getChildPathTo=function(a){if(a===this)return"";let b=-1,c=a.parentNode.childNodes.length,d;for(;ba[d]?b=b.childNodes[a[d]]:console.warn("Warning : impossible to find child number "+a[d]+". The return child may be wrong.",this,b);return b}; Node.prototype.forEachNode=function(a,b=this,c=!1,d=[]){if(c&&this===b)return null;!c&&a&&a(this,[...d],b);c||null===this.firstChild?null!==this.nextSibling?(d[d.length-1]++,this.nextSibling.forEachNode(a,b,!1,d)):(d.pop(),this.parentNode.forEachNode(a,b,!0,d)):(d.push(0),this.firstChild.forEachNode(a,b,!1,d))}; function compareRange(a,b,c){switch(a){case Range.START_TO_START:a=(b.startContainer+"/"+b.startOffset).split("/").map(a=>1*a);c=(c.startContainer+"/"+c.startOffset).split("/").map(a=>1*a);break;case Range.START_TO_END:a=(b.startContainer+"/"+b.startOffset).split("/").map(a=>1*a);c=(c.endContainer+"/"+c.endOffset).split("/").map(a=>1*a);break;case Range.END_TO_START:a=(b.endContainer+"/"+b.endOffset).split("/").map(a=>1*a);c=(c.startContainer+"/"+c.startOffset).split("/").map(a=>1*a);break;case Range.END_TO_END:a= (b.endContainer+"/"+b.endOffset).split("/").map(a=>1*a);c=(c.endContainer+"/"+c.endOffset).split("/").map(a=>1*a);break;default:throw"Invalid first parameter. Use Range.START_TO_START, Range.START_TO_END, Range.END_TO_START or Range.END_TO_END.";}return a.compare(c)}Range.prototype.setPathStart=function(a,b,c){this.setStart(b?a.childPathSelector(b):a.firstChild,c)};Range.prototype.setPathEnd=function(a,b,c){this.setEnd(b?a.childPathSelector(b):a.firstChild,c)}; Range.prototype.getHtml=function(){let a=document.createElement("div");a.appendChild(this.cloneContents());return a.innerHTML}; Range.prototype.affineToWord=function(){let a=/[A-Za-z\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u00ff'.\n\t]/;for(;0b.container===a);if(-1!==b){let a=scrollProcess[b].intervals.length;for(var c=0;cb.container===a);-1===g&&(scrollProcess.push({container:a,intervals:[]}),g=scrollProcess.length-1);scrollProcess[g].intervals.push(setInterval(()=>{f===d||1===e&&(a.scrollTop===a.scrollTopMax||a.scrollTop>=b-1)||-1===e&&(0===a.scrollTop||a.scrollTop<=b+1)?(clearAllSmoothScroll(a),c&&c()):(a.scrollTop=Math.easeOutExpo(f,h,k,d),f++)},5))} function scrollCenter(a,b,c,d=.5){b=b.getBoundingClientRect();let e=a.getBoundingClientRect();smoothScroll(a,b.top+(a.scrollTop-e.top)-e.height/4,c,d)}function inScrollView(a,b){b=b.getBoundingClientRect();let c=a.getBoundingClientRect(),d=b.top+(a.scrollTop-c.top-c.height)+b.height;return a.scrollTopd} const HSL={fromString(a){a=/hsl\((\d+),\s*([\d.]+)%,\s*([\d.]+)%\)/g.exec(a);return{h:a[1],s:a[2],l:a[3]/100}},toString(a){return"hsl("+a.h+", "+100*a.s+"%, "+100*a.l+"%)"}};