ziko 1.6.0 → 1.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/ziko.min.js CHANGED
@@ -1,9 +1,9 @@
1
1
  /*
2
2
  Project: ziko.js
3
3
  Author: Zakaria Elalaoui
4
- Date : Fri Jul 31 2026 17:26:32 GMT+0100 (UTC+01:00)
4
+ Date : Fri Aug 07 2026 20:07:58 GMT+0100 (UTC+01:00)
5
5
  Git-Repo : https://github.com/zakarialaoui10/ziko.js
6
6
  Git-Wiki : https://github.com/zakarialaoui10/ziko.js/wiki
7
7
  Released under MIT License
8
8
  */
9
- !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).Ziko={})}(this,function(t){"use strict";const{PI:e,E:r}=Math,s=Number.EPSILON,n=(t,...e)=>{const r=e.map(e=>{return"object"!=typeof(r=e)&&"function"!=typeof r||null===r||e?.__mapfun__?t(e):e instanceof Array?e.map(e=>n(t,e)):ArrayBuffer.isView(e)?e.map(e=>t(e)):e instanceof Set?new Set(n(t,...e)):e instanceof Map?new Map([...e].map(e=>[e[0],n(t,e[1])])):e.isMatrix?.()?new e.constructor(e.rows,e.cols,n(e.arr.flat(1))):e instanceof Object?Object.fromEntries(Object.entries(e).map(e=>[e[0],n(t,e[1])])):void 0;var r});return 1==r.length?r[0]:r},i=(t,e)=>t.isComplex?.()?new t.constructor(e(t.a),e(t.b)):t.isMatrix?.()?new t.constructor(t.rows,t.cols,t.arr.flat(1).map(e)):(t instanceof Array&&n(e,...t),e(t)),o=(t,e)=>{if(0===t.length)return NaN;let r=t.sort((t,e)=>t-e),s=e/100*(r.length-1),n=Math.floor(s),i=s-n;return n===r.length-1?r[n]:r[n]*(1-i)+r[n+1]*i},h=t=>o(t,25),c=t=>o(t,75),l=(...t)=>t.reduce((t,e)=>t+e)/t.length,u=(...t)=>{const e=t.length;if(0===e)return NaN;const r=l(...t);return t.reduce((t,e)=>t+(e-r)**2,0)/e},m=(...t)=>{const e=t.length;if(e<2)return NaN;const r=l(...t);return t.reduce((t,e)=>t+(e-r)**2,0)/(e-1)},p=(t,e)=>{const r=t.length;if(0===r||e.length!==r)return NaN;const s=e.reduce((t,e)=>t+e,0),n=t.reduce((t,r,s)=>t+r*e[s],0)/s;return t.reduce((t,r,s)=>t+e[s]*(r-n)**2,0)/s},f=(t,e)=>{if(e<1||t.length<e)return[];let r=[];for(let s=0;s<=t.length-e;s++){const n=t.slice(s,s+e);r.push(m(n))}return r},d=t=>{let e=[],r=0;for(let s of t)r+=s,e.push(r);return e};class g{static int(t,e){return Math.floor(this.float(t,e))}static float(t,e){return void 0!==e?Math.random()*(e-t)+t:Math.random()*t}static bin(){return this.int(2)}static oct(){return this.int(8)}static dec(){return this.int(10)}static hex(){return((t,e,r)=>{const s=parseInt(t,e);if(Number.isNaN(s))throw new TypeError("Invalid value for the given base");return s.toString(r)})(this.int(16),10,16)}static char(t=!1){const e=t?this.int(65,91):this.int(97,123);return String.fromCharCode(e)}static bool(){return Boolean(this.int(2))}static get color(){return{hex:()=>`#${this.int(16777215).toString(16).padStart(6,"0")}`,hexa:()=>{const[t,e,r,s]=Array.from({length:4},()=>this.int(255).toString(16).padStart(2,"0"));return`#${t}${e}${r}${s}`},rgb:()=>{const[t,e,r]=Array.from({length:3},()=>this.int(255));return`rgb(${t}, ${e}, ${r})`},rgba:()=>{const[t,e,r]=Array.from({length:3},()=>this.int(255));return`rgba(${t}, ${e}, ${r}, ${Math.random().toFixed(2)})`},hsl:()=>`hsl(${this.int(360)}, ${this.int(100)}%, ${this.int(100)}%)`,hsla:()=>`hsla(${this.int(360)}, ${this.int(100)}%, ${this.int(100)}%, ${Math.random().toFixed(2)})`,gray:()=>{const t=this.int(255);return`rgb(${t}, ${t}, ${t})`}}}static get sample(){const t=this;return{int:(e,r,s)=>Array.from({length:e},()=>t.int(r,s)),float:(e,r,s)=>Array.from({length:e},()=>t.float(r,s)),char:(e,r=!1)=>Array.from({length:e},()=>t.char(r)),bool:e=>Array.from({length:e},()=>t.bool()),bin:e=>Array.from({length:e},()=>t.bin()),oct:e=>Array.from({length:e},()=>t.oct()),dec:e=>Array.from({length:e},()=>t.dec()),hex:e=>Array.from({length:e},()=>t.hex()),get color(){return{hex:e=>Array.from({length:e},()=>t.color.hex()),hexa:e=>Array.from({length:e},()=>t.color.hexa()),rgb:e=>Array.from({length:e},()=>t.color.rgb()),rgba:e=>Array.from({length:e},()=>t.color.rgba()),hsl:e=>Array.from({length:e},()=>t.color.hsl()),hsla:e=>Array.from({length:e},()=>t.color.hsla()),gray:e=>Array.from({length:e},()=>t.color.gray())}},choice:(e,r,s)=>Array.from({length:e},()=>t.choice(r,s))}}static shuffle(t){return[...t].sort(()=>.5-Math.random())}static choice(t=[1,2,3],e=new Array(t.length).fill(1/t.length)){const r=d(...e).map(t=>100*t),s=new Array(100);s.fill(t[0],0,r[0]);for(let e=1;e<t.length;e++)s.fill(t[e],r[e-1],r[e]);return s[this.int(s.length)]}}globalThis.Random=g;class w{constructor(t=0,e=0){[this.a,this.b]=((t,e,r)=>{let s,n;return e instanceof t?(s=e.a,n=e.b):"object"==typeof e?"a"in e&&"b"in e?(s=e.a,n=e.b):"a"in e&&"z"in e?(s=e.a,n=Math.sqrt(e.z**2-e.a**2)):"a"in e&&"phi"in e?(s=e.a,n=e.a*Math.tan(e.phi)):"b"in e&&"z"in e?(n=e.b,s=Math.sqrt(e.z**2-e.b**2)):"b"in e&&"phi"in e?(n=r,s=e.b/Math.tan(e.phi)):"z"in e&&"phi"in e&&(s=+e.z*Math.cos(e.phi).toFixed(15),n=+e.z*Math.sin(e.phi).toFixed(15)):"number"==typeof e&&"number"==typeof r&&(s=+e.toFixed(32),n=+r.toFixed(32)),[s,n]})(w,t,e)}get __mapfun__(){return!0}isComplex(){return!0}toString(){let t="";return t=0!==this.a?this.b>=0?`${this.a}+${this.b}*i`:`${this.a}-${Math.abs(this.b)}*i`:this.b>=0?`${this.b}*i`:`-${Math.abs(this.b)}*i`,t}serialize(){return JSON.stringify({type:"complex",data:this})}static deserialize(t){"string"==typeof t&&(t=JSON.parse(t));let{data:e,type:r}=t;return"complex"===r&&"a"in e&&"b"in e?new w(e.a,e.b):TypeError("Not a valid complex")}toFixed(t){return this.a=+this.a.toFixed(t),this.b=+this.b.toFixed(t),this}toPrecision(t){return this.a=+this.a.toPrecision(t),this.b=+this.b.toPrecision(t),this}clone(){return new w(this.a,this.b)}get z(){return Math.hypot(this.a,this.b)}get phi(){return Math.atan2(this.b,this.a)}static zero(){return new w(0,0)}static fromPolar(t,e){return new w(+(t*cos(e)).toFixed(13),+(t*sin(e)).toFixed(13))}static get random(){return{int:(t,e)=>new w(...g.sample.int(2,t,e)),float:(t,e)=>new w(...g.sample.float(2,t,e))}}static twiddle(t,e){const r=-2*Math.PI*t/e;return new w(Math.cos(r),Math.sin(r))}get conj(){return new w(this.a,-this.b)}get inv(){return new w(this.a/Math.hypot(this.a,this.b),-this.b/Math.hypot(this.a,this.b))}add(...t){for(let e=0;e<t.length;e++)"number"==typeof t[e]&&(t[e]=new w(t[e],0)),this.a+=t[e].a,this.b+=t[e].b;return this}sub(...t){for(let e=0;e<t.length;e++)"number"==typeof t[e]&&(t[e]=new w(t[e],0)),this.a-=t[e].a,this.b-=t[e].b;return this}mul(...t){let{z:e,phi:r}=this;for(let s=0;s<t.length;s++)"number"==typeof t[s]&&(t[s]=new w(t[s],0)),e*=t[s].z,r+=t[s].phi;return this.a=e*Math.cos(r),this.b=e*Math.sin(r),this.toFixed(8)}div(...t){let{z:e,phi:r}=this;for(let s=0;s<t.length;s++)"number"==typeof t[s]&&(t[s]=new w(t[s],0)),e/=t[s].z,r-=t[s].phi;return this.a=e*Math.cos(r),this.b=e*Math.sin(r),this.toFixed(8)}modulo(...t){for(let e=0;e<t.length;e++)"number"==typeof t[e]&&(t[e]=new w(t[e],0)),this.a%=t[e].a,this.b%=t[e].b;return this}pow(...t){let{z:e,phi:r}=this;for(let s=0;s<t.length;s++)"number"==typeof t[s]&&(t[s]=new w(t[s],0)),e*=Math.exp(t[s].a*Math.log(e)-t[s].b*r),r+=t[s].b*Math.log(e)+t[s].a*r;return this.a=e*Math.cos(r),this.b=e*Math.sin(r),this}get expo(){return[this.z,this.phi]}nthr(t=2){return y({z:this.z**(1/t),phi:this.phi/t})}get sqrt(){return this.nthr(2)}get cbrt(){return this.nthr(3)}get log(){return y(this.z,this.phi)}get cos(){return y(Math.cos(this.a)*Math.cosh(this.b),Math.sin(this.a)*Math.sinh(this.b))}get sin(){return y(Math.sin(this.a)*Math.cosh(this.b),Math.cos(this.a)*Math.sinh(this.b))}get tan(){const t=cos(2*this.a)+cosh(2*this.b);return y(Math.sin(2*this.a)/t,Math.sinh(2*this.b)/t)}}const y=(t,e)=>{if((t instanceof Array||ArrayBuffer.isView(t))&&(e instanceof Array||ArrayBuffer.isView(t)))return t.map((r,s)=>y(t[s],e[s]));if(t.isMatrix?.()&&e.isMatrix?.()){if(t.shape[0]!==e.shape[0]||t.shape[1]!==e.shape[1])return Error(0);const r=t.arr.map((r,s)=>y(t.arr[s],e.arr[s]));return new t.constructor(t.rows,t.cols,...r)}return new w(t,e)},v=(...t)=>{const e=t.pop();return n(t=>t.isComplex?.()?e.isComplex?.()?new t.constructor({z:Math.exp(e.a*Math.log(t.z)-e.b*t.phi),phi:e.b*Math.log(t.z)+e.a*t.phi}):new t.constructor({z:t.z**e,phi:t.phi*e}):e.isComplex?.()?new t.constructor({z:Math.exp(e.a*Math.log(t)),phi:e.b*Math.log(t)}):Math.pow(t,e),...t)},x=(...t)=>n(t=>t.isComplex?.()?new t.constructor({z:t.z**.5,phi:t.phi/2}):t<0?y(0,Math.sqrt(-t)).toFixed(8):+Math.sqrt(t).toFixed(8),...t),_=(...t)=>n(t=>t.isComplex?.()?new t.constructor(Math.log(t.z),t.phi).toFixed(8):+Math.log(t).toFixed(8),...t),M=(t,e,r)=>{if("number"==typeof e){if("number"==typeof r)switch(t){case"add":return e+r;case"sub":return e-r;case"mul":return e*r;case"div":return e/r;case"modulo":return e%r}return r?.isComplex?.()&&(e=new r.constructor(e,0)),r?.isMatrix?.()&&(e=r.constructor.nums(r.rows,r.cols,e)),e[t](r)}if(e?.isComplex?.()){if("number"==typeof r||r?.isComplex?.())return e.clone()[t](r);if(r?.isMatrix?.())return(e=r.constructor.nums(r.rows,r.cols,e)).clone()[t](r)}if(e?.isMatrix?.())return e.clone()[t](r)},E=(t,...e)=>{let r=t;for(let t=0;t<e.length;t++)r=M("add",r,e[t]);return r},k=(t,...e)=>{let r=t;for(let t=0;t<e.length;t++)r=M("sub",r,e[t]);return r},T=(t,...e)=>{let r=t;for(let t=0;t<e.length;t++)r=M("mul",r,e[t]);return r},C=(t,...e)=>{let r=t;for(let t=0;t<e.length;t++)r=M("div",r,e[t]);return r},S=(t,...e)=>{let r=t;for(let t=0;t<e.length;t++)r=M("modulo",r,e[t]);return r},j=(t,e,r)=>i(t,t=>e!==r?(t-e)/(r-e):0),O=(t,e,r)=>i(t,t=>(r-e)*t+e),A=(t,e,r)=>i(t,t=>Math.min(Math.max(t,e),r)),I=(t,e,r,s,n)=>i(t,t=>O(j(t,e,r),s,n)),R=(t,e,r=!0)=>{if(t instanceof Array&&!(e instanceof Array))return n(t=>R(t,e,r),...t);if(e instanceof Array&&!(t instanceof Array))return n(e=>R(t,e,r),...e);if(t instanceof Array&&e instanceof Array)return t.map((t,s)=>R(t,e[s],r));const s=Math.atan2(t,e);return r?s:180*s/Math.PI},F=t=>t.isComplex?.()?new t.constructor(F(t.a),F(t.b)):t.isMatrix?.()?new t.constructor(t.rows,t.cols,t.arr.flat(1).map(F)):+!t,P=(t,e)=>{if(t.every(t=>t.isComplex?.())){const r=t.map(t=>t.a),s=t.map(t=>t.b);return new t[0].constructor(e(...r),e(...s))}if(t.every(t=>t.isMatrix?.())){if(!t.every(e=>e.rows===t[0].rows&&e.cols===t[0].cols))return TypeError("All matrices must have the same shape");const{rows:r,cols:s}=t[0],n=Array.from({length:r},(r,n)=>Array.from({length:s},(r,s)=>e(...t.map(t=>t.arr[n][s]))));return new t[0].constructor(n)}return null},z=(...t)=>{const e=P(t,z);return null!==e?e:t.reduce((t,e)=>t&e,1)},$=(...t)=>{const e=P(t,$);return null!==e?e:t.reduce((t,e)=>t|e,0)},D=(...t)=>{const e=P(t,D);return null!==e?e:t.reduce((t,e)=>t^e,0)},L=(t,e)=>{for(let e=0;e<t.arr.length;e++)Object.defineProperty(t,e,{value:t.arr[e],writable:!0,configurable:!0,enumerable:!1});for(let r=t.arr.length;r<e;r++)delete t[r]};function U(t,e){var r=[];for(let e=0;e<t.length;e++)r.push(t[e].slice(0));r.splice(0,1);for(let t=0;t<r.length;t++)r[t].splice(e,1);return r}function q(t,e){if(t=t.clone(),e=e.clone(),t.rows!==e.rows)return;let r=t.arr;for(let s=0;s<t.rows;s++)for(let n=t.cols;n<t.cols+e.cols;n++)r[s][n]=e.arr[s][n-t.cols];return t.cols+=e.cols,new t.constructor(t.rows,t.cols,r.flat(1))}function N(t,e){if(t=t.clone(),e=e.clone(),t.cols!==e.cols)return;let r=t.arr;for(let s=t.rows;s<t.rows+e.rows;s++){r[s]=[];for(let n=0;n<t.cols;n++)r[s][n]=e.arr[s-t.rows][n]}return t.rows+=e.rows,new t.constructor(t.rows,t.cols,r.flat(1))}class B{constructor(t,e,r=[]){[this.rows,this.cols,this.arr]=((t,e,r,s)=>{if(!(e instanceof t)){let t,n,i=[];if(e instanceof Array)i=e,e=i.length,r=i[0].length;else for(t=0;t<e;t++)for(i.push([]),i[t].push(new Array(r)),n=0;n<r;n++)i[t][n]=s[t*r+n],null==s[t*r+n]&&(i[t][n]=0);return[e,r,i]}arr=e.arr,r=(e=e.rows).cols})(B,t,e,r),L(this)}isMatrix(){return!0}clone(){return new B(this.rows,this.cols,this.arr.flat(1))}toComplex(){return this.arr=n(t=>t?.isComplex?.()?t:new w(t,0),...this.arr),L(this),this}[Symbol.iterator](){return this.arr[Symbol.iterator]()}get size(){return this.rows*this.cols}get shape(){return[this.rows,this.cols]}at(t=0,e=void 0){if(t<0&&(t+=this.rows),t<0||t>=this.rows)throw new Error("Row index out of bounds");if(void 0===e)return this.arr[t];if(e<0&&(e+=this.cols),e<0||e>=this.cols)throw new Error("Column index out of bounds");return this.arr[t][e]}slice(t=0,e=0,r=this.rows-1,s=this.cols-1){r<0&&(r=this.rows+r),s<0&&(s=this.cols+s);let n=r-t,i=s-e,a=new Array(i);for(let r=0;r<n;r++){a[r]=[];for(let s=0;s<i;s++)a[r][s]=this.arr[r+t][s+e]}return this.arr=a,L(this.rows),this.rows=n,this.cols=i,this}reshape(t,e){if(t*e!==this.rows*this.cols)throw Error("size not matched");const r=this.rows;return Object.assign(this,new B(t,e,this.arr.flat(1))),L(r),this}get T(){let t=[];for(let e=0;e<this.arr[0].length;e++){t[e]=[];for(let r=0;r<this.arr.length;r++)t[e][r]=this.arr[r][e]}return new B(this.cols,this.rows,t.flat(1))}get det(){return(t=this).isSquare?1==t.rows?t.arr[0][0]:function t(e){if(2==e.length)return e.flat(1).some(t=>t?.isMatrix?.())?void console.warn("Tensors are not completely supported yet ..."):k(T(e[0][0],e[1][1]),T(e[0][1],e[1][0]));for(var r=0,s=0;s<e.length;s++){const n=E(T(v(-1,s),T(e[0][s],t(U(e,s)))));r=E(r,n)}return r}(t.arr):new Error("is not square matrix");var t}get inv(){return function(t){if(t.row!==t.cols)throw Error('is not a square matrix"');if(0===t.det)throw Error("determinant should not equal 0");const{arr:e}=t;if(e.length===e[0].length){var r=0,s=0,n=0,i=e.length,a=0,o=[],h=[];for(r=0;r<i;r+=1)for(o[o.length]=[],h[h.length]=[],n=0;n<i;n+=1)o[r][n]=r==n?1:0,h[r][n]=e[r][n];for(r=0;r<i;r+=1){if(0==(a=h[r][r])){for(s=r+1;s<i;s+=1)if(0!=h[s][r]){for(n=0;n<i;n++)a=h[r][n],h[r][n]=h[s][n],h[s][n]=a,a=o[r][n],o[r][n]=o[s][n],o[s][n]=a;break}if(0==(a=h[r][r]))return}for(n=0;n<i;n++)h[r][n]=h[r][n]/a,o[r][n]=o[r][n]/a;for(s=0;s<i;s++)if(s!=r)for(a=h[s][r],n=0;n<i;n++)h[s][n]-=a*h[r][n],o[s][n]-=a*o[r][n]}return new t.constructor(o)}}(this)}static eye(t){let e=new B(t,t);for(let r=0;r<t;r++)for(let s=0;s<t;s++)e.arr[r][s]=r===s?1:0;return e}static zeros(t,e){let r=new B(t,e);for(let n=0;n<t;n++)for(var s=0;s<e;s++)r.arr[n][s]=0;return r}static ones(t,e){let r=new B(t,e);for(let s=0;s<t;s++)for(let t=0;t<e;t++)r.arr[s][t]=1;return r}static nums(t,e,r){let s=new B(t,e);for(let n=0;n<t;n++)for(let t=0;t<e;t++)s.arr[n][t]=r;return s}static get random(){return{int:(t,e,r,s)=>new B(t,e,g.sample.int(t*e,r,s)),float:(t,e,r)=>new B(t,e,g.sample.float(t*e,r,b))}}get range(){return{map:(t,e,r,s)=>(this.arr=I(this.arr,t,e,r,s),this),norm:(t,e)=>(this.arr=j(this.arr,t,e),this),lerp:(t,e)=>(this.arr=O(this.arr,t,e),this),clamp:(t,e)=>(this.arr=A(this.arr,t,e),this)}}hstack(...t){const e=[this,...t].reduce((t,e)=>q(t,e));return Object.assign(this,e),L(this),this}vstack(...t){const e=[this,...t].reduce((t,e)=>N(t,e));return Object.assign(this,e),L(this),this}hqueue(...t){const e=[this,...t].reverse().reduce((t,e)=>q(t,e));return Object.assign(this,e),L(this),this}vqueue(...t){const e=[this,...t].reverse().reduce((t,e)=>N(t,e));return Object.assign(this,e),L(this),this}forEach(t){return this.arr.flat(1).forEach(t),this}forEachRow(t){return this.arr.forEach(t),this}forEachCol(t){return this.clone().T.forEachRow(t),this}map(t){const e=this.arr.flat(1).map(t);return new B(this.rows,this.cols,e)}mapRows(t=()=>{}){return this.arr=this.arr.map(t),this}mapCols(t){return this.clone().T.mapRows(t).T}sort(t=()=>{}){const e=this.arr.flat(1).sort(t);return new B(this.rows,this.cols,e)}shuffle(){return this.sort(()=>.5-Math.random())}sortRows(t=()=>{}){return this.arr=this.arr.map(e=>e.sort(t)),this}shuffleRows(){return this.sortRows(()=>.5-Math.random())}sortCols(t){return this.clone().T.sortRows(t).T}shuffleCols(){return this.sortCols(()=>.5-Math.random())}reduce(t,e){const r=e?this.arr.flat(1).reduce(t,e):this.arr.flat(1).reduce(t);return new B([[r]])}reduceRows(t,e){const r=e?this.arr.map(r=>r.reduce(t,e)):this.arr.map(e=>e.reduce(t));return new B(1,this.cols,r)}reduceCols(t,e){return this.T.reduceRows(t,e).T}filterRows(t){const e=this.arr.map(e=>e.some(e=>t(e))),r=[];let s;for(s=0;s<e.length;s++)e[s]&&r.push(this.arr[s]);return new B(r)}filterCols(t){const e=this.T.filterRows(t);return new B(e).T}every(t){return this.arr.flat(1).every(t)}everyRow(t){return this.arr.map(e=>e.every(t))}everyCol(t){return this.T.arr.map(e=>e.every(t))}some(t){return this.arr.flat(1).some(t)}someRow(t){return this.arr.map(e=>e.some(t))}someCol(t){return this.T.arr.map(e=>e.some(t))}get isSquare(){return this.rows===this.cols}get isSym(){if(!this.isSquare)return!1;for(let t=0;t<this.rows;t++)for(let e=t+1;e<this.cols;e++)if(this.arr[t][e]!==this.arr[e][t])return!1;return!0}get isAntiSym(){if(!this.isSquare)return!1;const t=this.rows;for(let e=0;e<t;e++){if(0!==this.arr[e][e])return!1;for(let r=e+1;r<t;r++)if(this.arr[e][r]!==-this.arr[r][e])return!1}return!0}get isDiag(){if(!this.isSquare)return!1;const t=this.rows;for(let e=0;e<t;e++)for(let r=e+1;r<t;r++)if(0!==this.arr[e][r]||0!==this.arr[r][e])return!1;return!0}get isOrtho(){return!!this.isSquare&&(this.isDiag&&(1==this.det||-1==this.det))}get isIdemp(){if(!this.isSquare)return!1;const t=this.rows,e=this.arr,r=[];for(let s=0;s<t;s++){r[s]=[];for(let n=0;n<t;n++){let i=0;for(let r=0;r<t;r++)i+=e[s][r]*e[r][n];r[s][n]=i}}for(let s=0;s<t;s++)for(let n=0;n<t;n++)if(r[s][n]!==e[s][n])return!1;return!0}get isUpperTri(){if(!this.isSquare)return!1;const t=this.rows;for(let e=1;e<t;e++)for(let t=0;t<e;t++)if(0!==this.arr[e][t])return!1;return!0}get isLowerTri(){if(!this.isSquare)return!1;const t=this.rows;for(let e=0;e<t-1;e++)for(let r=e+1;r<t;r++)if(0!==this.arr[e][r])return!1;return!0}toPrecision(t){for(let e=0;e<this.cols;e++)for(let r=0;r<this.rows;r++)this.arr[e][r]=+this.arr[e][r].toPrecision(t);return this}toFixed(t){for(let e=0;e<this.cols;e++)for(let r=0;r<this.rows;r++)this.arr[e][r]=+this.arr[e][r].toFixed(t);return this}splice(t,e,r,...s){}getRows(t,e=t+1){return this.slice(t,0,e,this.cols)}getCols(t,e=t+1){return this.slice(0,t,this.rows,e)}#t(t,...e){for(let s=0;s<e.length;s++){("number"==typeof e[s]||e[s]?.isComplex?.())&&(e[s]=B.nums(this.rows,this.cols,e[s]));for(let n=0;n<this.rows;n++)for(var r=0;r<this.cols;r++)this.arr[n][r]=t(this.arr[n][r],e[s].arr[n][r])}return new B(this.rows,this.cols,this.arr.flat(1))}add(...t){return this.#t(E,...t)}sub(...t){return this.#t(k,...t)}mul(...t){return this.#t(T,...t)}div(...t){return this.#t(C,...t)}modulo(...t){return this.#t(S,...t)}dot(t){for(var e=[],r=0;r<this.arr.length;r++){e[r]=[];for(var s=0;s<t.arr[0].length;s++){e[r][s]=0;for(var n=0;n<this.arr[0].length;n++)e[r][s]=E(e[r][s],T(this.arr[r][n],t.arr[n][s]))}}return new B(this.arr.length,t.arr[0].length,e.flat(1))}pow(t){let e=this.clone(),r=this.clone();for(let s=0;s<t-1;s++)r=r.dot(e);return r}sum(){let t=0;for(let e=0;e<this.rows;e++)for(let r=0;r<this.cols;r++)t=E(t,this.arr[e][r]);return t}prod(){let t=1;for(let e=0;e<this.rows;e++)for(let r=0;r<this.cols;r++)t=T(t,this.arr[e][r]);return t}hasComplex(){return this.arr.flat(1/0).some(t=>t instanceof w)}get min(){this.hasComplex()&&console.error("Complex numbers are not comparable");let t=[];for(let e=0;e<this.rows;e++)t.push(Math.min(...this.arr[e]));return Math.min(...t)}get max(){this.hasComplex()&&console.error("Complex numbers are not comparable");let t=[];for(let e=0;e<this.rows;e++)t.push(Math.max(...this.arr[e]));return Math.max(...t)}get minRows(){this.hasComplex()&&console.error("Complex numbers are not comparable");let t=[];for(let e=0;e<this.rows;e++)t.push(Math.min(...this.arr[e]));return t}get maxRows(){this.hasComplex()&&console.error("Complex numbers are not comparable");let t=[];for(let e=0;e<this.rows;e++)t.push(Math.max(...this.arr[e]));return t}get minCols(){return this.hasComplex()&&console.error("Complex numbers are not comparable"),this.T.minRows}get maxCols(){return this.hasComplex()&&console.error("Complex numbers are not comparable"),this.T.maxRows}static fromVector(t){return new B(t.length,1,t)}serialize(){const t=n(t=>t.serialize?.()||t,...this.arr);return JSON.stringify({type:"matrix",data:{rows:this.rows,cols:this.cols,arr:t}})}static deserialize(t){"string"==typeof t&&(t=JSON.parse(t));const{type:e,data:r}=t;if("matrix"!==e)return TypeError("Not a valid Matrix");let{arr:s}=r;return s=n(t=>{if("string"==typeof t){const e=JSON.parse(t),{type:r}=e;if("complex"===r)return w.deserialize(e)}return t},...s),new B(s)}flip(){return this.flipeH().flipeV()}flipeH(){return this.arr=this.arr.map(t=>[...t].reverse()),L(this),this}flipeV(){return this.arr=this.arr.reverse(),L(this),this}}class V{constructor(t){this.cache={node:t}}isUINode(){return!0}get node(){return this.cache.node}}class Z extends Array{constructor(...t){super(...t)}clear(){return this.length=0,this}getItemById(t){return this.find(e=>e.element.id===t)}getItemsByTagName(t){return this.filter(e=>e.element.tagName.toLowerCase()===t.toLowerCase())}getElementsByClassName(t){return this.filter(e=>e.element.classList?.contains(t))}querySelector(t){const e=globalThis?.document?.querySelector(t);return e&&this.find(t=>t.element===e)||null}querySelectorAll(t){const e=globalThis?.document?.querySelectorAll(t);return Array.from(e).map(t=>this.find(e=>e.element===t)).filter(Boolean)}}const G=new Z,H={default:{target:null,render:!0,math:{mode:"deg"}},setDefault:function(t){const e=Object.keys(t),r=Object.values(t);for(let t=0;t<e.length;t++)this.default[e[t]]=r[t]},init:()=>{},renderingMode:"spa",isSSC:!1},W={store:new Map,index:0,register:function(t){this.store.set(this.index++,t)},reset(){this.index=0,this.store.clear()}},K={ui_index:0,get_ui_index:function(){return this.ui_index++},register_ui:function(t){}};class J{#e;#r;#s;#n;#i;#a;constructor(t=""){this.#e=new BroadcastChannel(t),this.#r=new Map,this.#s=new Map,this.#n="ziko-channel:"+1e17*Math.random(),this.#i=new Set([this.#n]),this.#a=new Set,this.#e.addEventListener("message",t=>{const{last_sent_event:e,userId:r,eventData:s,rooms:n}=t.data;if(r===this.#n)return;if(n&&n.length&&!n.some(t=>this.#a.has(t)))return;this.#i.add(r),this.#r=new Map(s);const i=this.#s.get(e);i&&i.forEach(({fn:t,rooms:r})=>{r&&0!==r.length&&n&&!n.some(t=>r.includes(t))||t(this.#r.get(e))})})}emit(t,e,r){return this.#r.set(t,e),"string"==typeof r&&(r=[r]),this.#e.postMessage({eventData:Array.from(this.#r.entries()),last_sent_event:t,userId:this.#n,rooms:r&&r.length?r:void 0}),this}on(t,e=console.log,r){return this.#s.has(t)||this.#s.set(t,[]),"string"==typeof r&&(r=[r]),this.#s.get(t).push({fn:e,rooms:r}),this}off(t,e){return this.#s.has(t)?(this.#s.set(t,this.#s.get(t).filter(t=>t.fn!==e)),this):this}once(t,e,r){const s=r=>{e(r),this.off(t,s)};return this.on(t,s,r),this}join(...t){return t.forEach(t=>this.#a.add(t)),this}leave(...t){return t.length?t.forEach(t=>this.#a.delete(t)):this.#a.clear(),this}close(){return this.#e.close(),this}}const Y=t=>new J(t);class Q{static RESERVED_KEYS=new Set(["cache","items","set","add","remove","get","clear","onStorageUpdated"]);constructor(t,e,r,s=!0){this.cache={storage:t,globalKey:e,channel:s?Y(`Ziko:useStorage-${e}`):null,oldItemKeys:new Set},this.#o(r,s)}get items(){const t=this.cache.storage.getItem(this.cache.globalKey);if(!t)return{};try{return JSON.parse(t)}catch{return{}}}#h(){const t=this.items,e=new Set(Object.keys(t));this.cache.oldItemKeys.forEach(t=>{e.has(t)||(delete this[t],this.cache.oldItemKeys.delete(t))});for(const e in t)Q.RESERVED_KEYS.has(e)||(this[e]=t[e],this.cache.oldItemKeys.add(e))}#o(t,e){e&&this.cache.channel&&this.cache.channel.on("Ziko-Storage-Updated",()=>this.#h());null!==this.cache.storage.getItem(this.cache.globalKey)?this.#h():void 0!==t?this.set(t):this.#h()}set(t){return this.cache.storage.setItem(this.cache.globalKey,JSON.stringify(t)),this.cache.channel&&this.cache.channel.emit("Ziko-Storage-Updated",t),this.#h(),this}add(t){return this.set({...this.items,...t})}remove(...t){const e={...this.items};return t.forEach(t=>delete e[t]),this.set(e)}get(t){return this.items[t]}clear(){return this.cache.storage.removeItem(this.cache.globalKey),this.#h(),this}onStorageUpdated(t){return this.cache.channel&&this.cache.channel.on("Ziko-Storage-Updated",t),this}}var X,tt={store:new Map,index:0,session_storage:null,register:function(t){},update:function(t,e){}};globalThis?.__Ziko__||(globalThis.__Ziko__={__UI__:G,__HYDRATION__:W,__State__:tt,__Config__:H,__CACHE__:K,__PROVIDERS__:{}},X=__Ziko__,Object.defineProperties(X,{QueryParams:{get:function(){return function(t){const e={};return t.replace(/[A-Z0-9]+?=([\w|:|\/\.]*)/gi,t=>{const[r,s]=t.split("=");e[r]=s}),e}(globalThis.location.search.substring(1))},configurable:!1,enumerable:!0},HashParams:{get:function(){return globalThis.location.hash.substring(1).split("#")},configurable:!1,enumerable:!0}}));class et extends V{constructor(){super()}init(t,e,r,s){if(this.target=globalThis.__Ziko__.__Config__.default.target||globalThis?.document?.body,"string"==typeof t)switch(r){case"html":t=globalThis?.document?.createElement(t);break;case"svg":t=globalThis?.document?.createElementNS("http://www.w3.org/2000/svg",t);break;default:throw Error("Not supported")}else this.target=t?.parentElement;Object.assign(this.cache,{name:e,itemsTarget:this,isInteractive:!1,parent:null,isBody:!1,isRoot:!1,isHidden:!1,isFrozzen:!1,attributes:{},filters:{},temp:{}}),this.events={ptr:null,mouse:null,wheel:null,key:null,drag:null,drop:null,click:null,clipboard:null,focus:null,swipe:null,custom:null},this.observer={resize:null,intersection:null},t&&Object.assign(this.cache,{element:t}),this.items=new Z,globalThis.__Ziko__.__UI__[this.cache.name]?globalThis.__Ziko__.__UI__[this.cache.name]?.push(this):globalThis.__Ziko__.__UI__[this.cache.name]=[this],t&&s&&this?.render?.(),globalThis.__Ziko__.__UI__.push(this)}get element(){return this.cache.element}[Symbol.iterator](){return this.items[Symbol.iterator]()}maintain(){for(let t=0;t<this.items.length;t++)Object.defineProperty(this,t,{value:this.items[t],writable:!0,configurable:!0,enumerable:!1})}isInteractive(){return this.cache.isInteractive}isUIElement(){return!0}}function rt(t,...e){e.forEach(e=>function(t,e){const r=Object.getOwnPropertyDescriptors(e);for(const e of Reflect.ownKeys(r)){const s=r[e];"get"in s||"set"in s||"function"!=typeof s.value?Object.defineProperty(Object.getPrototypeOf(t),e,s):"function"==typeof s.value&&(Object.getPrototypeOf(t).hasOwnProperty(e)||Object.defineProperty(Object.getPrototypeOf(t),e,s))}}(t,e))}var st=Object.freeze({__proto__:null,mount:function(t=this.target,e=0){return e>0?(setTimeout(()=>this.mount(t,0),e),this):(this.isBody||(t?.isUIElement&&(t=t.element),this.target=t,this.target?.appendChild(this.element)),this)},unmount:function(t=0){return t>0?(setTimeout(()=>this.unmount(0),t),this):(this.cache.parent?this.cache.parent.remove(this):this.target?.children?.length&&[...this.target.children].includes(this.element)&&this.target.removeChild(this.element),this)}});function nt(t){const e={value:t,subscribers:new Set,paused:!1};return[function(){return{value:e.value,isStateGetter:()=>!0,_subscribe:t=>(e.subscribers.add(t),()=>e.subscribers.delete(t))}},function(t){e.paused||("function"==typeof t&&(t=t(e.value)),Object.is(t,e.value)||(e.value=t,e.subscribers.forEach(t=>t(e.value))))},{pause:()=>{e.paused=!0},resume:()=>{e.paused=!1},clear:()=>{e.subscribers.clear()},force:t=>{"function"==typeof t&&(t=t(e.value)),e.value=t,e.subscribers.forEach(t=>t(e.value))},getSubscribers:()=>new Set(e.subscribers)}]}const it=t=>"function"==typeof t&&!0===t?.()?.isStateGetter?.(),at=(t="")=>t.replace(/[A-Z]/g,t=>"-"+t.toLowerCase()),ot=(t="")=>{if(0===t.length)return!1;return/^[a-z][a-zA-Z0-9]*$/.test(t)};function ht(t,e){if(globalThis.SVGAElement&&this.element instanceof globalThis.SVGAElement&&(t=ot(t)?at(t):t),!this?.attr[t]||this?.attr[t]!==e){if(it(e)){e()._subscribe(e=>this.element?.setAttribute(t,e),this)}else this.element?.setAttribute(t,e);Object.assign(this.cache.attributes,{[t]:e})}}var ct=Object.freeze({__proto__:null,_set_attrs_:ht,getAttr:function(t){return t=ot(t)?at(t):t,this.element.attributes[t].value},removeAttr:function(...t){for(let e=0;e<t.length;e++)this.element?.removeAttribute(t[e]);return this},setAttr:function(t,e){if(t instanceof Object){const[r,s]=[Object.keys(t),Object.values(t)];for(let t=0;t<r.length;t++)s[t]instanceof Array&&(e[t]=s[t].join(" ")),ht.call(this,r[t],s[t])}else e instanceof Array&&(e=e.join(" ")),ht.call(this,t,e);return this},setContentEditable:function(t=!0){return this.setAttr("contenteditable",t),this}});class lt extends V{constructor(...t){super("span","text",!1,...t),this.element=globalThis?.document?.createTextNode(...t)}isText(){return!0}}const ut=(...t)=>new lt(...t);async function mt(t,e,...r){const s=this.itemsTarget.element,n=this.itemsTarget;if(this.cache.isFrozzen)return console.warn("You can't append new item to frozzen element"),this;for(let i=0;i<r.length;i++){if(["number","string"].includes(typeof r[i])&&(r[i]=ut(r[i])),r[i]instanceof Function){const t=r[i]();t.isStateGetter&&(r[i]=ut(t.value),t._subscribe(t=>r[i].element.textContent=t,r[i]))}if("function"==typeof globalThis?.Node&&r[i]instanceof globalThis?.Node&&(r[i]=new this.constructor(r[i])),r[i]?.isUINode)r[i].cache.parent=this,s?.[t](r[i].element),r[i].target=this.itemsTarget.element,n.items[e](r[i]);else if(r[i]instanceof Promise){const a=await r[i];a.cache.parent=this,s?.[t](a.element),a.target=this.itemsTarget.element,n.items[e](a)}else r[i]instanceof Object&&(r[i]?.style&&this.style(r[i]?.style),r[i]?.attr&&Object.entries(r[i].attr).forEach(t=>this.setAttr(""+t[0],t[1])))}return this.maintain(),this}var pt=Object.freeze({__proto__:null,__addItem__:mt,after:function(t){return t?.isUIElement&&(t=t.element),this.itemsTarget.element?.after(t),this},append:function(...t){return mt.call(this,"append","push",...t),this},before:function(t){return t?.isUIElement&&(t=t.element),this.itemsTarget.element?.before(t),this},clear:function(){return this?.items?.forEach(t=>t.unmount()),this.itemsTarget.element.innerHTML="",this},insertAt:function(t,...e){const r=this.itemsTarget;if(t>=r.items.length)return this.append(...e);for(let s=0;s<e.length;s++)["number","string"].includes(typeof e[s])&&(e[s]=ut(e[s])),r.element?.insertBefore(e[s].element,r.items[t].element),r.items.splice(t,0,e[s]);return r.maintain(),this},prepend:function(...t){return this.__addItem__.call(this,"prepend","unshift",...t),this},remove:function(...t){const e=t=>{"number"==typeof t&&(t=this.items[t]),t?.isUIElement&&this.itemsTarget.element?.removeChild(t.element),this.items=this.items.filter(e=>e!==t)};for(let r=0;r<t.length;r++)e(t[r]);for(let t=0;t<this.items.length;t++)Object.assign(this,{[[t]]:this.items[t]});return this},replaceElementWith:function(t){return this.cache.element.replaceWith(t),this.cache.element=t,this}});var ft=Object.freeze({__proto__:null,at:function(t){return this.items.at(t)},find:function(t){return this.items.filter(t)},forEach:function(t){return this.items.forEach(t),this},map:function(t){return this.items.map(t)}});var dt=Object.freeze({__proto__:null,animate:function(t,{duration:e=1e3,iterations:r=1,easing:s="ease"}={}){return this.element?.animate(t,{duration:e,iterations:r,easing:s}),this},hide:function(){},show:function(){},size:function(t,e){return this.style({width:t,height:e})},style:function(t){if(!this.element?.style)return this;for(let e in t){const r=t[e];if(it(r)){const t=r();Object.assign(this.element.style,{[e]:t.value}),t._subscribe(t=>{console.log({newValue:t}),Object.assign(this.element.style,{[e]:t})})}else Object.assign(this.element.style,{[e]:r})}return this}});class gt{constructor(t,e){this.cache={category:e,target:t,listeners:{},currentEvent:null,event:null,customEvents:new Set}}get event(){return this.cache.event}get target(){return this.cache.target}get element(){return this.cache.target.element}get currentEvent(){return this.cache.currentEvent}addListener(t,e,{preventDefault:r=!1,paused:s=!1}={}){return this.cache.listeners[t]={callback:r=>{this.cache.event=r,this.cache.listeners[t].preventDefault&&r.preventDefault(),this.cache.listeners[t].paused||(this.cache.currentEvent=t,e.call(this,this))},preventDefault:r,paused:s},this.element.addEventListener(t,this.cache.listeners[t].callback),this}removeListener(t){return this.element.removeEventListener(t,this.cache.listeners[t].callback),this}pause(t){return this.cache.listeners[t].paused=!0,this}resume(t){return this.cache.listeners[t].paused=!1,this}preventDefault(t){return this.cache.listeners[t].preventDefault=!0,this}useDefault(t){return this.cache.listeners[t].preventDefault=!1,this}}class bt extends Event{constructor(t,e){super("clickaway",{bubbles:!0,cancelable:!0}),this.originalEvent=t,this.targetElement=e}}function wt(t){function e(e){if(!t.contains(e.target)){const r=new bt(e,t);t.dispatchEvent(r)}}return globalThis?.document?.addEventListener("click",e),()=>globalThis?.document?.removeEventListener("click",e)}const yt=(t,e=!1)=>{const r=t.element.getBoundingClientRect(),s=t.event;let n=s?.clientX-r.left|0,i=s?.clientY-r.top|0;if(e){const e=t.element.clientWidth,r=t.element.clientHeight;n=+(n/e*2-1).toFixed(8),i=+(i/r*-2+1).toFixed(8)}return{x:n,y:i}},vt="click",xt={onClick(t){return this.on("click",t,{category:vt})},onDblClick(t){return this.on("dblclick",t,{category:vt})},onClickAway(t){var e,r,s;return e=this,r=vt,s="clickaway",e.exp.events?.[r]?.cache?.customEvents?.has(s)||wt(this.element),this.on("clickaway",t,{category:vt,isCustom:!0})}},_t="ptr",Mt={onPtrDown(t,e=!1){return this.on("pointerdown",t,{category:_t,details_setter:t=>{const{x:r,y:s}=yt(t,e);t.dx=r,t.dy=s,t.isDown=!0,t.isDragging=t.isMoving??!1}})},onPtrMove(t,e=!1){return this.on("pointermove",t,{category:_t,details_setter:t=>{const{x:r,y:s}=yt(t,e);t.mx=r,t.my=s,t.isMoving=!0,t.isDragging=t.isDown??!1}})},onPtrUp(t,e=!1){return this.on("pointerup",t,{category:_t,details_setter:t=>{const{x:r,y:s}=yt(t,e);t.ux=r,t.uy=s,t.isDown=!1,t.isMoving=!1,t.isDragging=!1}})}},Et="key",kt={onKeyDown(t){return this.on("keydown",t,{category:Et,details_setter:t=>{t.kd=t.event.key}})},onKeyPress(t){return this.on("keypress",t,{category:Et,details_setter:t=>{t.kp=t.event.key}})},onKeyUp(t){return this.on("keydown",t,{category:Et,details_setter:t=>{t.ku=t.event.key}})}},Tt=(t,e)=>{let r=0;return(...s)=>{const n=(new Date).getTime();n-r<e||(r=n,t(...s))}};class Ct extends CustomEvent{constructor(t,e,{bubbles:r=!0,cancelable:s=!0}={}){super(t,{detail:e,bubbles:r,cancelable:s})}}function St(t,{intersection:e=!0,resize:r=!0,threshold:s=0,throttleResize:n=100,throttleEnterExit:i=0}={}){let a,o;const h=e=>{for(let r of e){const{width:e,height:s}=r.contentRect;t.dispatchEvent(new Ct("resizeview",{width:e,height:s,entry:r}))}},c=n>0?Tt(h,n):h,l=e=>{for(let r of e){const e=r.isIntersecting?"enterview":"exitview";t.dispatchEvent(new Ct(e,r))}},u=i>0?Tt(l,i):l;return e&&(a=new IntersectionObserver(u,{threshold:s}),a.observe(t)),r&&(o=new ResizeObserver(c),o.observe(t)),()=>{a&&(a.unobserve(t),a.disconnect()),o&&(o.unobserve(t),o.disconnect())}}const jt="view",Ot={onEnterView(t){return this.exp.events?.[jt]||St(this.element),this.on("enterview",t,{category:jt,isCustom:!0})},onExitView(t){return this.exp.events?.[jt]||St(this.element),this.on("exitview",t,{category:jt,isCustom:!0})},onResizeView(t){return this.exp.events?.[jt]||St(this.element),this.on("resizeview",t,{category:jt,isCustom:!0})}};class At extends CustomEvent{constructor(t,e){super(t,{detail:e,bubbles:!0,cancelable:!0})}}let It=class extends et{constructor({element:t,name:e="",type:r="html",render:s=__Ziko__.__Config__.default.render}={}){super(),this.exp={events:{}},rt(this,st,ct,pt,dt,ft,Mt,xt,kt,Ot),t&&this.init(t,e,r,s)}on(t,e,{details_setter:r,category:s="global",isCustom:n=!1,preventDefault:i=!1}={}){t instanceof Array&&t.forEach(t=>this.on(t,e,{details_setter:r,category:s,isCustom:n,preventDefault:i})),s&&!this.exp.events.hasOwnProperty(s)&&(this.exp.events[s]=new gt(this,s)),n&&this.exp.events[s].cache.customEvents.add(t);const a=this.exp.events[s];return a.addListener(t,t=>{r&&r(a),e(t)},{preventDefault:i}),this}_off(t,e="global"){return this.exp.events[e].removeListener(t),this}get element(){return this.cache.element}get itemsTarget(){return this.cache.itemsTarget}get itemsTargetElement(){return this.itemsTarget.element}setItemsTarget(t){return this.cache.itemsTarget=t,this.items=t.items,this}isInteractive(){return this.cache.isInteractive}useClient(t){return this.cache.isInteractive||(this.element.setAttribute("data-hydration-index",globalThis.__Ziko__.__HYDRATION__.index),globalThis.__Ziko__.__HYDRATION__.register(()=>this),this.cache.isInteractive=!0),t&&this.element.setAttribute("data-hydration-directive",t),this}get st(){return this.cache.style}get attr(){return this.cache.attributes}get evt(){return this.events}get html(){return this.element.innerHTML}get text(){return this.element.textContent}get isBody(){return this.element===globalThis?.document.body}get parent(){return this.cache.parent}get width(){return this.element.getBoundingClientRect().width}get height(){return this.element.getBoundingClientRect().height}get top(){return this.element.getBoundingClientRect().top}get right(){return this.element.getBoundingClientRect().right}get bottom(){return this.element.getBoundingClientRect().bottom}get left(){return this.element.getBoundingClientRect().left}};const Rt=t=>(...e)=>{const r=e[0];return r?.isUIElement?.()||Ft(r)?new t({},...e):new t(r,...e.slice(1))};function Ft(t){return"object"!=typeof t&&"function"!=typeof t||null===t}class Pt extends It{constructor(...t){super({element:"div",name:"view"}),this.append(...t)}}const zt=["a","abb","address","area","article","aside","audio","b","base","bdi","bdo","blockquote","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","hr","i","iframe","img","ipnut","ins","kbd","label","legend","li","main","map","mark","menu","meter","nav","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","search","section","select","small","source","span","strong","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr"],$t=["svg","g","defs","symbol","use","image","switch","rect","circle","ellipse","line","polyline","polygon","path","text","tspan","textPath","altGlyph","altGlyphDef","altGlyphItem","glyph","glyphRef","linearGradient","radialGradient","pattern","solidColor","filter","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDropShadow","feFlood","feFuncA","feFuncR","feFuncG","feFuncB","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","animate","animateMotion","animateTransform","set","script","desc","title","metadata","foreignObject"],Dt=["math","annotation","merror","mfrac","mi","mprescripts","mn","mo","mover","mpadded","mphantom","mprescripts","mroot","mrow","ms","semantics","mspace","msqrt","mstyle","msub","msup","msubsup","mtable","mtd","mtext","mtr","munder","munderover"],Lt=new Proxy({},{get(t,e){if("string"!=typeof e)return;let r,s=e.replaceAll("_","-").toLowerCase();return zt.includes(s)&&(r="html"),$t.includes(s)&&(r="svg"),Dt.includes(s)&&(r="mathml"),(...t)=>0===t.length?new It({element:s,name:s,type:r}):["string","number"].includes(typeof t[0])||t[0]instanceof It||"function"==typeof t[0]&&t[0]().isStateGetter()?new It({element:s,name:s,type:r}).append(...t):new It({element:s,type:r}).setAttr(t.shift()).append(...t)}});function Ut(t){return 1==t?this.style({flexDirection:"column"}):-1==t&&this.style({flexDirection:"column-reverse"}),this}function qt(t){return 1==t?this.style({flexDirection:"row"}):-1==t&&this.style({flexDirection:"row-reverse"}),this}function Nt(t){return"number"==typeof t&&(t=["flex-start","center","flex-end"][t+1]),t}function Bt(t){return Nt(-t)}class Vt extends It{constructor({tag:t="div",orientation:e="h",order:r,w:s="100%",h:n="100%"}={}){super({element:t,name:"Flex"}),this.direction="cols",this.style({display:"flex"})}isFlex(){return!0}responsify(t,e=!0){return this.wrap(e),this.element.clientWidth<t?this.vertical():this.horizontal(),this}setSpaceAround(){return this.style({justifyContent:"space-around"}),this}setSpaceBetween(){return this.style({justifyContent:"space-between"}),this}setBaseline(){return this.style({alignItems:"baseline"}),this}gap(t){return"row"===this.direction?this.style({columnGap:t}):"column"===this.direction&&this.style({rowGap:t}),this}wrap(t="wrap"){return this.style({flexWrap:"string"==typeof t?t:["no-wrap","wrap","wrap-reverse"][+t]}),this}_justifyContent(t="center"){return this.style({justifyContent:t}),this}vertical(t,e,r=1){return Ut.call(this,r),this.style({alignItems:"number"==typeof t?Nt.call(this,t):t,justifyContent:"number"==typeof e?Bt.call(this,e):e}),this}horizontal(t,e,r=1){return qt.call(this,r),this.style({alignItems:"number"==typeof e?Bt.call(this,e):e,justifyContent:"number"==typeof t?Nt.call(this,t):t}),this}show(){return this.isHidden=!1,this.style({display:"flex"}),this}}class Zt extends et{constructor({element:t,name:e,type:r,render:s}){super({element:t,name:e,type:r,render:s})}}class Gt extends Zt{constructor(t,e){super({element:"div",name:"suspense"}),this.setAttr({dataTemp:"suspense"}),this.fallback_ui=t,this.append(t),(async()=>{try{const r=await e();t.unmount(),this.append(r)}catch(t){console.log({error:t})}})()}}class Ht extends It{constructor(t){super({element:"div",name:"html_wrappper"}),this.element.append(function(t){if(globalThis?.DOMParser){const e=(new DOMParser).parseFromString(`<div>${t}</div>`,"text/html");return e.body.firstChild.style.display="contents",e.body.firstChild}}(t)),this.style({display:"contents"})}}class Wt extends It{constructor(t){super({element:"div",name:"html_wrappper"}),this.element.append(function(t){if("undefined"!=typeof DOMParser){const e=(new DOMParser).parseFromString(t.trim(),"image/svg+xml").documentElement;if("parsererror"===e.nodeName)throw new Error("Invalid SVG string");if(e.hasAttribute("xmlns"))return e;const{children:r,attributes:s}=e,n=document.createElementNS("http://www.w3.org/2000/svg","svg");for(let{name:t,value:e}of s)n.setAttribute(t,e);return n.append(...r),globalThis.svg=e,globalThis.children=r,globalThis.attributes=s,globalThis.element=n,n}throw new Error("DOMParser is not available in this environment")}(t)),this.style({display:"contents"})}}class Kt extends It{constructor(t,e){super(),this.key=t,this.cases=e,this.init()}init(){Object.values(this.cases).filter(t=>t!=this.current).forEach(t=>t.unmount()),super.init(this.current.element)}get current(){const t=Object.keys(this.cases).find(t=>t==this.key)??"default";return this.cases[t]}updateKey(t){return this.key=t,this.replaceElementWith(this.current.element),this}}class Jt extends It{#c=new WeakMap;constructor({activeIndex:t=0}={},...e){super({element:"div"}),this.style({display:"contents"}),this.states={activeIndex:t},this.append(...e),this.render()}get activeItem(){return this.items[this.states.activeIndex]}render(){this.items.forEach((t,e)=>{const r=t.element?.style?.display||"";this.#c.set(t,r),e!==this.states.activeIndex&&t.style({display:"none"})})}next(t=1){return this.activate(this.states.activeIndex+t)}previous(t=1){return this.activate(this.states.activeIndex-t)}activate(t){if(!this.items.length)return this;const e=this.items.at(this.states.activeIndex);e&&e.style({display:"none"});const r=this.items.length;this.states.activeIndex=(t%r+r)%r;const s=this.items.at(this.states.activeIndex);if(s){const t=this.#c.get(s)||"block";s.style({display:"none"===t?"block":t})}return this}}const Yt=Rt(Jt);class Qt extends It{constructor(...t){super({element:document.createDocumentFragment()}),this.append(...t)}isFragment(){return!0}}class Xt extends Qt{constructor({each:t,fallback:e,mapFn:r=()=>{}}={}){super(),this.config={each:t,fallback:e,mapFn:r},this.append(...this.config.each.map((t,e)=>this.config.mapFn(t,e)))}}const{PI:te,sqrt:ee,cos:re,sin:se,acos:ne,pow:ie}=Math,ae=t=>t,oe=(t,e=7.5625,r=2.75)=>t<1/r?e*t*t:t<2/r?e*(t-=1.5/r)*t+.75:t<2.5/r?e*(t-=2.25/r)*t+.9375:e*(t-=2.625/r)*t+.984375;class he{constructor(t,{ease:e=ae,step:r=50,t0:s=0,start:n=!0,duration:i=3e3}={}){this.callback=t,this.state={isRunning:!1,animationId:null,startTime:null,ease:e,step:r,autoStart:n,duration:i},this.t=0,this.tx=0,this.ty=0,this.i=0,this.state.autoStart&&this.start()}#l=()=>{this.t+=this.state.step,this.i++,this.tx=I(this.t,0,this.state.duration,0,1),this.ty=this.state.ease(this.tx),this.callback(this),this.t>=this.state.duration&&(clearInterval(this.state.animationId),this.state.isRunning=!1)};#u(t=!0){return this.state.isRunning||(t&&this.reset(!1),this.state.isRunning=!0,this.state.startTime=Date.now(),this.state.animationId=setInterval(this.#l,this.state.step)),this}start(){return this.#u(!0)}pause(){return this.state.isRunning&&(clearInterval(this.state.animationId),this.state.isRunning=!1),this}resume(){return this.#u(!1)}stop(){return this.pause(),this.reset(!1),this}reset(t=!0){return this.t=0,this.tx=0,this.ty=0,this.i=0,t&&this.start(),this}}class ce{constructor(t,e,r=1/0,s){this.ms=e,this.fn=t,this.count=r,this.frame=1,this.id=null,this.running=!1,s&&this.start()}start(){return this.running||(this.running=!0,this.frame=1,this.id=setInterval(()=>{this.frame>this.count?this.stop():(this.fn.call(null,this),this.frame++)},this.ms)),this}stop(){return this.running&&(this.running=!1,clearInterval(this.id),this.id=null),this}isRunning(){return this.running}}class le extends ce{constructor(t=1e3/60){super(t,()=>this._tick()),this.elapsed=0,this._lastTime=performance.now(),this._callbacks=new Set}_tick(){const t=performance.now(),e=t-this._lastTime;this.elapsed+=e,this._lastTime=t;for(const t of this._callbacks)t({elapsed:this.elapsed,delta:e})}onTick(t){return this._callbacks.add(t),()=>this._callbacks.delete(t)}reset(){this.elapsed=0,this._lastTime=performance.now()}pause(){super.stop()}resume(){this._lastTime=performance.now(),super.start()}}class ue{constructor(t=[],{repeat:e=1,loop:r=!1}={}){this.tasks=t,this.repeat=e,this.loop=r,this.stopped=!1,this.running=!1,this.onStart=null,this.onTask=null,this.onEnd=null}async run(){if(this.running)return;this.running=!0,this.stopped=!1,this.onStart&&this.onStart();let t=this.repeat;do{for(const t of this.tasks){if(this.stopped)return;if(Array.isArray(t))await Promise.all(t.map(({fn:t,delay:e=0})=>new Promise(async r=>{e>0&&await new Promise(t=>setTimeout(t,e)),this.onTask&&this.onTask(t),await t(),r()})));else{const{fn:e,delay:r=0}=t;r>0&&await new Promise(t=>setTimeout(t,r)),this.onTask&&this.onTask(e),await e()}}}while(this.loop&&!this.stopped&&(t===1/0||t-- >1));!this.stopped&&this.onEnd&&this.onEnd(),this.running=!1}stop(){this.stopped=!0,this.running=!1}addTask(t){this.tasks.push(t)}clearTasks(){this.tasks=[]}}class me{constructor(t,{step:e=1e3,t0:r=0,t1:s=1/0,autoplay:n=!0}={}){this.callback=t,this.cache={isRunning:!1,id:null,last_tick:null,step:e,t0:r,t1:s,autoplay:n,pauseTime:null,frame:0},n&&(r?this.startAfter(r):this.start(),s!==1/0&&this.stopAfter(s))}get frame(){return this.cache.frame}get elapsed(){return this.cache.elapsed}start(){return this.cache.isRunning||(this.cache.frame=0,this.cache.isRunning=!0,this.cache.last_tick=Date.now(),this.animate()),this}pause(){return this.cache.isRunning&&(clearTimeout(this.cache.id),this.cache.isRunning=!1,this.cache.pauseTime=Date.now()),this}resume(){if(!this.cache.isRunning){if(this.cache.isRunning=!0,this.cache.pauseTime){const t=Date.now()-this.cache.pauseTime;this.cache.last_tick+=t}this.animate()}return this}stop(){return this.pause(),this.cache.frame=0,this}startAfter(t=1e3){return setTimeout(()=>this.start(),t),this}stopAfter(t=1e3){return setTimeout(()=>this.stop(),t),this}animate=()=>{if(this.cache.isRunning){const t=Date.now(),e=t-this.cache.last_tick;e>=this.cache.step&&(this.cache.elapsed=t-(this.cache.t0||0),this.callback(this),this.cache.frame++,this.cache.last_tick=t-e%this.cache.step),this.cache.id=setTimeout(this.animate,0)}}}const pe=(t,e=",")=>t.trim().trimEnd().split("\n").map(t=>t.split(e)),fe=(t,e=",")=>{const[r,...s]=pe(t,e);return s.map(t=>{const e={};return r.forEach((r,s)=>{e[r]=t[s]}),e})},de=t=>t instanceof Array?[Object.keys(t[0]),...t.map(t=>Object.values(t))]:[Object.keys(t)],ge=(t,e)=>de(t).map(t=>t.join(e)).join("\n"),be=(t,e=",")=>ge(t instanceof Object?t:JSON.parse(t),e),we=(t,e)=>{const r=[];if(Array.isArray(t))t.forEach(t=>{if("object"==typeof t&&null!==t){r.push(`${e}-`);const s=we(t,`${e} `);r.push(...s)}else r.push(`${e}- ${t}`)});else for(const s in t)if(t.hasOwnProperty(s)){const n=t[s];if("object"==typeof n&&null!==n){r.push(`${e}${s}:`);const t=we(n,`${e} `);r.push(...t)}else r.push(`${e}${s}: ${n}`)}return r},ye=(t,e="")=>we(t,e).join("\n"),ve=(t,e)=>ye(t instanceof Object?t:JSON.parse(t),e),xe=(t,e=1)=>{let r="";for(const s in t)if(t.hasOwnProperty(s)){const n=t[s];r+="\n"+" ".repeat(e)+`<${s}>`,r+="object"==typeof n?xe(n,e+2):`${n}`,r+=`</${s}>`}return r.trim()},_e=t=>(new XMLSerializer).serializeToString(t),Me=t=>btoa(_e(t)),Ee=t=>"data:image/svg+xml;base64,"+Me(t),ke=(t,e=0)=>{t=Te(t);let r="";const s=" ".repeat(e);for(let n in t)if("object"==typeof t[n]){r+=`${s}${n} {\n`;const i=t[n];for(let t in i)"object"==typeof i[t]?r+=ke({[t]:i[t]},e+1):r+=`${s} ${t.replace(/[A-Z]/g,t=>"-"+t.toLowerCase())}: ${i[t]};\n`;r+=`${s}}\n`}return r};function Te(t){return"object"!=typeof t||null===t?t:Object.keys(t).reduce((e,r)=>(e[r.trim()]=Te(t[r]),e),Array.isArray(t)?[]:{})}class Ce{constructor({head:t=null,wrapper:e=null,target:r=null}){this.head=t,this.wrapper=e,this.target=r,this.init()}get isZikoApp(){return!0}init(){this.head&&this.setHead(this.head),this.wrapper&&this.setWrapper(this.wrapper),this.target&&this.setTarget(this.target),this.wrapper&&this.target&&this.wrapper.mount(this.target)}setTarget(t){return t instanceof HTMLElement?this.target=t:"string"==typeof t&&(this.target=globalThis?.document?.querySelector(t)),this}setWrapper(t){return t?.isUIElement?this.wrapper=t:"function"==typeof t&&(this.wrapper=t()),this}}function Se(t){return/:\w+/.test(t)}class je extends Ce{constructor({head:t,wrapper:e,target:r,routes:s}){super({head:t,wrapper:e,target:r}),this.routes=new Map([["404",ut("Error 404")],...Object.entries(s)]),this.clear(),globalThis.onpopstate=this.mount(location.pathname)}clear(){return[...this.routes].forEach(t=>{!Se(t[0])&&t[1]?.isUIElement&&t[1].unmount()}),this}mount(t){const[e,r]=[...this.routes].find(e=>function(t,e){const r=t.split("/"),s=e.split("/");if(r.length!==s.length)return!1;for(let t=0;t<r.length;t++){const e=r[t],n=s[t];if(!e.startsWith(":")&&e!==n)return!1}return!0}(e[0],t));let s;if(Se(e)){const n=function(t,e){const r=t.split("/"),s=e.split("/"),n={};if(r.length!==s.length)return n;for(let t=0;t<r.length;t++){const e=r[t],i=s[t];if(e.startsWith(":"))n[e.slice(1)]=i;else if(e!==i)return{}}return n}(e,t);s=r.call(this,n)}else r?.isUIElement&&r.mount(this.wrapper),"function"==typeof r&&(s=r());return s?.isUIElement&&s.mount(this.wrapper),s instanceof Promise&&s.then(t=>t.mount(this.wrapper)),globalThis.history.pushState({},"",t),this}}const Oe=({head:t,wrapper:e,target:r,routes:s})=>new je({head:t,wrapper:e,target:r,routes:s});function Ae(t,e="./src/pages",r=["js","ts"]){"/"===e.at(-1)&&(e=e.slice(0,-1));const s=t.replace(/\\/g,"/").replace(/\[(\w+)\]/g,"$1/:$1").split("/"),n=e.split("/"),i=s.indexOf(n.at(-1));if(-1!==i){const t=s.slice(i+1),e=s.at(-1),n="index.js"===e||"index.ts"===e,a=r.some(t=>e===`.${t}`||e.endsWith(`.${t}`));if(n)return"/"+(t.length>1?t.slice(0,-1).join("/"):"");if(a)return"/"+t.join("/").replace(/\.(js|ts)$/,"")}return""}const Ie=(t,...e)=>{const r=e.map(e=>null===e||["number","string","boolean","bigint","undefined"].includes(typeof e)||e?.__mapfun__?t(e):e instanceof Array?e.map(e=>Ie(t,e)):ArrayBuffer.isView(e)?e.map(e=>t(e)):e instanceof Set?new Set(Ie(t,...e)):e instanceof Map?new Map([...e].map(e=>[e[0],Ie(t,e[1])])):e.isMatrix?.()?new e.constructor(e.rows,e.cols,Ie(e.arr.flat(1))):e instanceof Object?Object.fromEntries(Object.entries(e).map(e=>[e[0],Ie(t,e[1])])):void 0);return 1==r.length?r[0]:r};class Re{#m;#p=new Map;#f=0;constructor(){const t=new Blob(['\n this.onmessage = function(e) {\n const { id, funStr, args, close } = e.data;\n try {\n const func = new Function("return " + funStr)();\n const result = func(...args);\n postMessage({ id, result });\n } catch (error) {\n postMessage({ id, error: error.message });\n } finally {\n if (close) self.close();\n }\n }\n '],{type:"text/javascript"});this.#m=new Worker(URL.createObjectURL(t)),this.#m.addEventListener("message",t=>{const{id:e,result:r,error:s}=t.data,n=this.#p.get(e);n&&(n(r,s),this.#p.delete(e))})}call(t,e,r=[],s=!0){if("function"!=typeof t)throw new TypeError("func must be a function");const n=++this.#f;return this.#p.set(n,e),this.#m.postMessage({id:n,funStr:t.toString(),args:r,close:s}),this}terminate(){this.#m.terminate()}}class Fe{constructor(t=10){this.events={},this.maxListeners=t}on(t,e){return this.events[t]||(this.events[t]=[]),this.events[t].push(e),this.events[t].length>this.maxListeners&&console.warn(`Warning: Possible memory leak. Event '${t}' has more than ${this.maxListeners} listeners.`),this}once(t,e){const r=(...s)=>{this.off(t,r),e(...s)};return this.on(t,r)}off(t,e){const r=this.events[t];if(!r)return this;const s=r.indexOf(e);return-1!==s&&r.splice(s,1),this}emit(t,e){const r=this.events[t];return!!r&&([...r].forEach(r=>{try{r(e)}catch(e){console.error(`Error in listener for '${t}':`,e)}}),!0)}remove(t){return delete this.events[t],this}clear(){return this.events={},this}setMaxListeners(t){return this.maxListeners=t,this}}const Pe=t=>new Fe(t);class ze{#d;#g;#b=null;constructor(t=[],e=()=>{}){this.#d=t,this.#g=e,this.#o()}#w(){return this.#d.some(({query:t})=>globalThis.matchMedia(t).matches)}#o(){this.#d.forEach(({query:t,callback:e})=>{const r=globalThis.matchMedia(t),s=()=>{const t=this.#w();r.matches?(e(),this.#b=e):t||this.#b===this.#g||(this.#g(),this.#b=this.#g)};s(),r.addEventListener("change",s)})}}class $e{constructor(t=document.title,e=!0){this.cache={emitter:null},e&&this.useEventEmitter(),this.set(t)}useEventEmitter(){return this.cache.emitter=Pe(),this}setTitle(t){return t!==document.title&&(document.title=t,this.cache.emitter&&this.cache.emitter.emit("ziko:title-changed",t)),this}get current(){return document.title}onChange(t){return this.cache.emitter&&this.cache.emitter.on("ziko:title-changed",t),this}}class De{constructor(t,{namespace:e="Ziko",ValidateCssProps:r=!1}={}){this.currentPropsMap=t,this.namespace=e,this.ValidateCssProps=r,this.use(t)}use(t){return this.ValidateCssProps&&function(t){const e=new Set(Object.keys(document.documentElement.style));for(const r in t)if(!e.has(r))throw new Error(`Invalid CSS property: "${r}"`)}(t),this.currentPropsMap=t,this.#h(),this}#h(){const t=globalThis?.document?.documentElement?.style;for(const e in this.currentPropsMap){const r=this.namespace?`--${this.namespace}-${e}`:`--${e}`;t.setProperty(r,this.currentPropsMap[e]),Object.defineProperty(this,e,{value:`var(${r})`,writable:!0,configurable:!0,enumerable:!1})}}}const Le=t=>Object.fromEntries(new URLSearchParams(globalThis?.location?.search));let{sqrt:Ue,cos:qe,sin:Ne,exp:Be,log:Ve,cosh:Ze,sinh:Ge}=Math;for(const t of Object.getOwnPropertyNames(Math)){const e=Math[t];"function"==typeof e&&(Math[t]=new Proxy(e,{apply(e,r,s){const n=s[0];if("number"==typeof n||0===s.length)return e.apply(r,s);if(n?.isComplex?.()){const{a:t,b:i,z:a,phi:o}=n,h=(t,e)=>new n.constructor(t,e);switch(e.name){case"abs":return n.z;case"sqrt":return h(Ue(a)*qe(o/2),Ue(a)*Ne(o/2));case"log":return h(Ve(a),o);case"exp":return h(Be(t)*qe(i),Be(t)*Ne(i));case"cos":return h(qe(t)*Ze(i),-Ne(t)*Ge(i));case"sin":return h(Ne(t)*Ze(i),qe(t)*Ge(i));case"tan":{const e=qe(2*t)+Ze(2*i);return h(Ne(2*t)/e,Ge(2*i)/e)}case"cosh":return h(Ze(t)*qe(i),Ge(t)*Ne(i));case"sinh":return h(Ge(t)*qe(i),Ze(t)*Ne(i));case"tanh":{const e=Ze(2*t)+qe(2*i);return h(Ge(2*t)/e,Ne(2*i)/e)}default:return e.apply(r,s)}}throw new TypeError(`Math.${t} expects only numbers`)}}))}globalThis?.document&&document?.addEventListener("DOMContentLoaded",__Ziko__.__Config__.init()),t.App=({head:t,wrapper:e,target:r})=>new Ce({head:t,wrapper:e,target:r}),t.ClickAwayEvent=bt,t.ClickListeners=xt,t.Clock=le,t.CloneElement=t=>new t.__proto__.constructor,t.Complex=w,t.E=r,t.EPSILON=s,t.EventController=gt,t.FileBasedRouting=async function(t){const e=Object.keys(t),r=function(t){if(0===t.length)return"";const e=t.map(t=>t.split("/")),r=Math.min(...e.map(t=>t.length));let s=[];for(let t=0;t<r;t++){const r=e[0][t];if(!e.every(e=>e[t]===r||e[t].startsWith("[")))break;s.push(r)}return s.join("/")+(s.length?"/":"")}(e),s={};for(let n=0;n<e.length;n++){const i=await t[e[n]](),a=await i.default;Object.assign(s,{[Ae(e[n],r)]:a})}return Oe({target:document.body,routes:{"/":()=>{},...s},wrapper:Lt.section()})},t.Flex=(...t)=>{let e="div";return"string"==typeof t[0]&&(e=t[0],t.pop()),new Vt(e).append(...t)},t.For=({each:t,fallback:e,mapFn:r}={})=>new Xt({each:t,fallback:e,mapFn:r}),t.Fragment=(...t)=>new Qt(...t),t.HTMLWrapper=t=>new Ht(t),t.KeyListeners=kt,t.Matrix=B,t.PI=e,t.PtrListeners=Mt,t.Random=g,t.SPA=Oe,t.SVGWrapper=t=>new Wt(t),t.Scheduler=(t,{repeat:e=null}={})=>new ue(t,{repeat:e}),t.Suspense=(t,e)=>new Gt(t,e),t.Swap=Yt,t.SwipeEvent=At,t.Switch=({key:t,cases:e})=>new Kt(t,e),t.Tick=ce,t.TimeAnimation=he,t.TimeLoop=me,t.TimeScheduler=ue,t.UIElement=It,t.UIFlex=Vt,t.UIFragment=Qt,t.UIHTMLWrapper=Ht,t.UINode=V,t.UISVGWrapper=Wt,t.UISwap=Jt,t.UISwitch=Kt,t.UIView=Pt,t.UseRoot=De,t.UseThread=Re,t.View=(...t)=>new Pt(...t),t.ViewEvent=Ct,t.ViewListeners=Ot,t.ZikoApp=Ce,t.ZikoSPA=je,t.ZikoUISuspense=Gt,t.ZikoUIText=lt,t.abs=(...t)=>n(t=>t.isComplex?.()?t.z:Math.abs(t),...t),t.accum_max=t=>{let e=[],r=-1/0;for(let s of t)r=Math.max(r,s),e.push(r);return e},t.accum_min=t=>{let e=[],r=1/0;for(let s of t)r=Math.min(r,s),e.push(r);return e},t.accum_prod=(...t)=>{let e,r=[],s=1,n=t.length;for(e=0;e<n;e++)s=T(s,t[e]),r.push(s);return r},t.accum_product=t=>{let e=[],r=1;for(let s of t)r*=s,e.push(r);return e},t.accum_sum=d,t.acos=(...t)=>n(t=>{if(t?.isComplex){const{a:e,b:r}=t,s=Math.hypot(e+1,r),n=Math.hypot(e-1,r);return globalThis.Rp=s,globalThis.Rm=n,new t.constructor(Math.acos((s-n)/2),-Math.acosh((s+n)/2)).toFixed(8)}return+Math.acos(t).toFixed(8)},...t),t.acosh=(...t)=>n(t=>t?.isComplex?_(t.clone().add(x(t.clone().mul(t.clone()).sub(1)))):+Math.acosh(t).toFixed(8),...t),t.acot=(...t)=>n(t=>{if(t?.isComplex){const{a:e,b:r}=t;return new t.constructor(Math.atan(2*e/(e**2+(r-1)*(r+1)))/2,Math.log((e**2+(r-1)**2)/(e**2+(r+1)**2))/4).toFixed(8)}return+(Math.PI/2-Math.atan(t)).toFixed(8)},...t),t.add=E,t.add_class=(t,e)=>t.element.className=t.element.className.replace(/\s+$/gi,"")+" "+e,t.add_vendor_prefix=function(t){const e=t.slice(0,1).toUpperCase()+t.slice(1),r=["Webkit","Moz","O","ms"];for(let t=0,s=r.length;t<s;t++){const s=r[t];if(void 0!==(globalThis?.document?.body).style[s+e])return s+e}return t},t.and=z,t.animation=(t,{ease:e,t0:r,t1:s,start:n,duration:i}={})=>new he(t,{ease:e,t0:r,t1:s,start:n,duration:i}),t.apply_fun=i,t.arc=t=>1-se(ne(t)),t.asin=(...t)=>n(t=>{if(t?.isComplex){const{a:e,b:r}=t,s=Math.hypot(e+1,r),n=Math.hypot(e-1,r);return new t.constructor(Math.asin((s-n)/2),Math.acosh((s+n)/2)).toFixed(8)}return+Math.asin(t).toFixed(8)},...t),t.asinh=(...t)=>n(t=>t?.isComplex?_(t.clone().add(x(t.clone().mul(t.clone()).add(1)))):+Math.asinh(t).toFixed(8),...t),t.atan=(...t)=>n(t=>{if(t?.isComplex){const{a:e,b:r}=t;return new t.constructor(Math.atan(2*e/(1-e**2-r**2))/2,Math.log((e**2+(1+r)**2)/(e**2+(1-r)**2))/4).toFixed(8)}return+Math.atan(t).toFixed(8)},...t),t.atan2=R,t.atanh=(...t)=>n(t=>+Math.atanh(t).toFixed(8),...t),t.back=(t,e=1)=>t**2*((e+1)*t-e),t.binomial=(t,e)=>{if(t!==Math.floor(t))return TypeError("n must be an integer");if(e!==Math.floor(e))return TypeError("k must be an integer");if(t<0)return TypeError("n must be non-negative");if(e<0||t<0||e>t)return 0;e>t-e&&(e=t-e);let r,s=1;for(r=0;r<e;r++)s=s*(t-r)/(r+1);return s},t.call_with_optional_props=Rt,t.cbrt=(...t)=>n(t=>t.isComplex?.()?new t.constructor({z:t.z**(1/3),phi:t.phi/3}).toFixed(8):+Math.cbrt(t).toFixed(8),...t),t.ceil=(...t)=>n(t=>t.isComplex?.()?new t.constructor(Math.ceil(t.a),Math.ceil(t.b)):Math.ceil(t),...t),t.clamp=A,t.clock=t=>new le(t),t.cloneUI=t=>Object.assign(Object.create(Object.getPrototypeOf(t)),t),t.complex=y,t.contraharmonic_mean=(...t)=>{let e,r=0,s=0,n=t.length;for(e=0;e<n;e++)r+=t[e]**2,s+=t[e];return r/s},t.cos=(...t)=>n(t=>t.isComplex?.()?new t.constructor(Math.cos(t.a)*Math.cosh(t.b),-Math.sin(t.a)*Math.sinh(t.b)).toFixed(8):+Math.cos(t).toFixed(8),...t),t.cosh=(...t)=>n(t=>t?.isComplex?new t.constructor(Math.cosh(t.a)*Math.cos(t.b),Math.sinh(t.a)*Math.sin(t.b)).toFixed(8):+Math.cosh(t).toFixed(8),...t),t.coth=(...t)=>n(t=>{if(t?.isComplex){const{a:e,b:r}=t,s=Math.sinh(e)**2*Math.cos(r)**2+Math.cosh(e)**2*Math.sin(r)**2;return new t.constructor(Math.cosh(e)*Math.sinh(e)/s,-Math.sin(r)*Math.cos(r)/s).toFixed(8)}return+(1/Math.tanh(t)).toFixed(8)},...t),t.croot=(...t)=>{const e=t.pop();if(!e.isComplex?.())throw Error("croot expect Complex number as root");return n(t=>{"number"==typeof t&&(t=new e.constructor(t,0));const{a:r,b:s}=e,{z:n,phi:i}=t,a=Math.hypot(r,s),o=Math.exp((Math.log(n)*r+i*s)/a),h=(i*r-Math.log(n)*s)/a;return new e.constructor(o*Math.cos(h),o*Math.sin(h)).toFixed(8)},...t)},t.csv2arr=pe,t.csv2json=(t,e=",")=>JSON.stringify(fe(t,e)),t.csv2matrix=(t,e=",")=>new B(pe(t,e)),t.csv2object=fe,t.csv2sql=(t,e)=>{const r=t.trim().trimEnd().split("\n").filter(t=>t);let s=`INSERT INTO ${e} (${r[0].split(",").join(", ")}) Values `,n=[];for(let t=1;t<r.length;t++){const e=r[t].split(",");n.push(`(${e})`)}return s+n.join(",\n")},t.debounce=(t,e=1e3)=>(...r)=>setTimeout(()=>t(...r),e),t.defineParamsGetter=function(t){Object.defineProperties(t,{QueryParams:{get:function(){return globalThis.location.search.substring(1),Object.fromEntries(new URLSearchParams(location.search))},configurable:!1,enumerable:!0},HashParams:{get:function(){return globalThis.location.hash.substring(1).split("#")},configurable:!1,enumerable:!0}})},t.define_wc=function(t,e,r={},{mode:s="open"}={}){globalThis.customElements?.get(t)?console.warn(`Custom element "${t}" is already defined`):-1!==t.search("-")?globalThis.customElements?.define(t,class extends HTMLElement{static get observedAttributes(){return["style",...Object.keys(r)]}constructor(){super(),this.attachShadow({mode:s}),this.props={},this.mask={...r}}connectedCallback(){this.render()}render(){this.shadowRoot.innerHTML="";const t=e(this.props);t instanceof Array?t.forEach(t=>t.mount(this.shadowRoot)):t.mount(this.shadowRoot)}attributeChangedCallback(t,e,r){Object.assign(this.props,{[t]:this.mask[t].type(r)}),this.render()}}):console.warn(`"${t}" is not a valid custom element name`)},t.deg2rad=(...t)=>n(t=>t*Math.PI/180,...t),t.discret=(t,e=5)=>Math.ceil(t*e)/e,t.div=C,t.elastic=t=>-2*ie(2,10*(t-1))*re(20*te*t/3*t),t.ema=(t,e)=>{let r=[],s=t[0];r.push(s);for(let n=1;n<t.length;n++)s=e*t[n]+(1-e)*s,r.push(s);return r},t.exp=(...t)=>n(t=>t.isComplex?.()?new t.constructor(Math.exp(t.a)*Math.cos(t.b),Math.exp(t.a)*Math.sin(t.b)).toFixed(8):+Math.exp(t).toFixed(8),...t),t.floor=(...t)=>n(t=>t.isComplex?.()?new t.constructor(Math.floor(t.a),Math.floor(t.b)):Math.floor(t),...t),t.fract=(...t)=>n(t=>t.isComplex?.()?new t.constructor(t.a-Math.trunc(t.a),t.b-Math.trunc(t.b)):t-Math.trunc(t),...t),t.geo_mean=(...t)=>t.reduce((t,e)=>t*e)**(1/t.length),t.harmonic_mean=(...t)=>{let e=0,r=0;for(r=0;r<t.length;r++)e+=1/t[r];return t.length/e},t.hypot=(...t)=>{const e=t.find(t=>t.isComplex?.());if(e){const r=t.map(t=>t.isComplex?.()?t:new e.constructor(t,0));return Math.hypot(...r.map(t=>t.z))}return Math.hypot(...t)},t.in_back=(t,e=1.70158,r=e+1)=>r*ie(t,3)-e*t**2,t.in_bounce=(t,e=7.5625,r=2.75)=>1-oe(1-t,e,r),t.in_circ=t=>1-ee(1-t**2),t.in_cubic=t=>t**3,t.in_elastic=(t,e=2*te/3)=>0===t?0:1===t?1:-ie(2,10*t-10)*se((10*t-10.75)*e),t.in_expo=t=>0===t?0:2**(10*t-10),t.in_out_back=(t,e=1.70158,r=1.525*e)=>t<.5?ie(2*t,2)*(2*(r+1)*t-r)/2:(ie(2*t-2,2)*((r+1)*(2*t-2)+r)+2)/2,t.in_out_bounce=(t,e=7.5625,r=2.75)=>t<.5?oe(1-2*t,e,r)/2:oe(2*t-1,e,r)/2,t.in_out_circ=t=>t<.5?(1-ee(1-(2*t)**2))/2:(ee(1-(-2*t+2)**2)+1)/2,t.in_out_cubic=t=>t<.5?4*t**3:1-(-2*t+2)**3/2,t.in_out_elastic=(t,e=2*te/4.5)=>0===t?0:1===t?1:t<.5?-ie(2,20*t-10)*se((20*t-11.125)*e)/2:ie(2,-20*t+10)*se((20*t-11.125)*e)/2+1,t.in_out_expo=t=>0===t?0:1===t?1:t<.5?2**(20*t-10)/2:(2-2**(-20*t+10))/2,t.in_out_quad=t=>t<.5?2*t**2:1-(-2*t+2)**2/2,t.in_out_quart=t=>t<.5?8*t**4:1-(-2*t+2)**4/2,t.in_out_quint=t=>t<.5?16*t**5:1-(-2*t+2)**5/2,t.in_out_sin=t=>-(re(te*t)-1)/2,t.in_quad=t=>t**2,t.in_quart=t=>t**4,t.in_quint=t=>t**5,t.in_sin=t=>1-re(t*te/2),t.interquartile_mean=(...t)=>{let e=t.sort((t,e)=>t-e),r=e[Math.floor(.25*(e.length-1))],s=e[Math.floor(.75*(e.length-1))],n=e.filter(t=>t>=r&&t<=s);return l(n)},t.iqr=t=>c(t)-h(t),t.isPrimitive=Ft,t.isStateGetter=it,t.json2arr=t=>de(t instanceof Object?t:JSON.parse(t)),t.json2css=ke,t.json2csv=be,t.json2csvFile=(t,e)=>{const r=be(t,e),s=new Blob([r],{type:"text/csv;charset=utf-8;"});return{str:r,blob:s,url:URL.createObjectURL(s)}},t.json2xml=xe,t.json2xmlFile=(t,e)=>{const r=xe(t,e),s=new Blob([r],{type:"text/xml;charset=utf-8;"});return{str:r,blob:s,url:URL.createObjectURL(s)}},t.json2yml=ve,t.json2ymlFile=(t,e)=>{const r=ve(t,e),s=new Blob([r],{type:"text/yml;charset=utf-8;"});return{str:r,blob:s,url:URL.createObjectURL(s)}},t.lerp=O,t.linear=ae,t.linkStyle=function(t){const e=document?.createElement("link");e.setAttribute("rel","stylesheet"),e.setAttribute("href",t),document.head.appendChild(e)},t.ln=_,t.loop=(t,e={})=>new me(t,e),t.map=I,t.mapfun=n,t.matrix=(t,e,r)=>new B(t,e,r),t.matrix2=(...t)=>new B(2,2,t),t.matrix3=(...t)=>new B(3,3,t),t.matrix4=(...t)=>new B(4,4,t),t.max=(...t)=>Math.max(...t),t.mean=l,t.median=t=>o(t,50),t.midhinge=(...t)=>{let e=t.sort((t,e)=>t-e);return(e[Math.floor(.25*(e.length-1))]+e[Math.floor(.75*(e.length-1))])/2},t.midrange=t=>(Math.min(...t)+Math.max(...t))/2,t.min=(...t)=>Math.min(...t),t.modulo=S,t.mul=T,t.nand=(...t)=>F(z(...t)),t.nor=(...t)=>F($(...t)),t.norm=j,t.normalize_css_value=t=>"number"==typeof t?t+"px":t,t.not=F,t.nthr=(...t)=>{const e=t.pop();if("number"!=typeof e)throw Error("nthr expects a real number n");return n(t=>t.isComplex?.()?new t.constructor({z:t.z**(1/e),phi:t.phi/e}):t<0?e%2==2?y(0,(-t)**(1/e)).toFixed(8):+(-1*(-t)**(1/e)).toFixed(8):+(t**(1/e)).toFixed(8),...t)},t.or=$,t.out_back=(t,e=1.70158,r=e+1)=>1+r*ie(t-1,3)+e*ie(t-1,2),t.out_bounce=oe,t.out_circ=t=>ee(1-(t-1)**2),t.out_cubic=t=>1-(1-t)**3,t.out_elastic=(t,e=2*te/3)=>0===t?0:1===t?1:ie(2,-10*t)*se((10*t-.75)*e)+1,t.out_expo=t=>1===t?1:1-2**(-10*t),t.out_quad=t=>1-(1-t)**2,t.out_quart=t=>1-(1-t)**4,t.out_quint=t=>1-(1-t)**5,t.out_sin=t=>se(t*te/2),t.percentile=o,t.pow=v,t.power_mean=(t,e)=>{let r=0,s=0,n=t.length;for(s=0;s<n;s++)r+=t[s]**e;return(r/n)**(1/e)},t.q1=h,t.q3=c,t.rad2deg=(...t)=>n(t=>t/Math.PI*180,...t),t.register_click_away_event=wt,t.register_swipe_event=function(t,e=5,r=100,s=500){let n=0,i=0,a=0,o=!1;function h(t){n=t.clientX,i=t.clientY,a=performance.now(),o=!0}function c(h){if(!o)return;o=!1;const c=h.clientX-n,l=h.clientY-i;let u=null,m=null;performance.now()-a<=s&&(Math.abs(c)>=e&&Math.abs(l)<=r?(u=c<0?"left":"right",m="swipe"+u):Math.abs(l)>=e&&Math.abs(c)<=r&&(u=l<0?"up":"down",m="swipe"+u)),m&&t.dispatchEvent(new At(m,{direction:u,distX:c,distY:l,originalEvent:h}))}return t.addEventListener("pointerdown",h,{passive:!0}),t.addEventListener("pointerup",c,{passive:!0}),()=>{t.removeEventListener("pointerdown",h),t.removeEventListener("pointerup",c)}},t.register_view_event=St,t.remove_class=(t,e)=>t.element.className=t.element.className.replace(e,""),t.rms=(...t)=>{const e=t.length;return(Math.hypot(...t)/e)**(1/e)},t.rolling_std=(t,e)=>Math.sqrt(f(t,e)),t.rolling_variance=f,t.round=(...t)=>n(t=>t.isComplex?.()?new t.constructor(Math.round(t.a),Math.round(t.b)):Math.round(t),...t),t.sample_std=(...t)=>Math.sqrt(m(...t)),t.sample_variance=m,t.script=function(t){const e=document?.createElement("script");e.setAttribute("src",t),document.head.appendChild(e)},t.sec=(...t)=>n(t=>(t.isComplex?.(),+(1/Math.cos(t)).toFixed(8)),...t),t.sig=(...t)=>n(t=>1/(1+Math.exp(-t)).toFixed(8),...t),t.sign=(...t)=>n(t=>{if(t.isComplex?.()){const{z:e,phi:r}=t;return 0===e?new t.constructor(0,0):new t.constructor({z:1,phi:r})}return Math.sign(t)},...t),t.sin=(...t)=>n(t=>t?.isComplex?new t.constructor(Math.sin(t.a)*Math.cosh(t.b),Math.cos(t.a)*Math.sinh(t.b)).toFixed(8):+Math.sin(t).toFixed(8),...t),t.sinh=(...t)=>n(t=>t?.isComplex?new t.constructor(Math.sinh(t.a)*Math.cos(t.b),Math.cosh(t.a)*Math.sin(t.b)).toFixed(8):+Math.sinh(t).toFixed(8),...t),t.sleep=t=>new Promise(e=>setTimeout(e,t)),t.sma=(t,e)=>{let r=[];for(let s=0;s<=t.length-e;s++){let n=0;for(let r=0;r<e;r++)n+=t[s+r];r.push(n/e)}return r},t.sqrt=x,t.std=(...t)=>Math.sqrt(u(...t)),t.step=(t,e=5)=>Math.floor(t*e)/e,t.step_fps=t=>1e3/t,t.style=(t,e)=>{t&&Object.assign(t.style,e)},t.sub=k,t.svg2ascii=Me,t.svg2img=(t,e=!0)=>Lt.img(Ee(t)).mount(e),t.svg2imgUrl=Ee,t.svg2str=_e,t.tags=Lt,t.tan=(...t)=>n(t=>{if(t?.isComplex){const e=Math.cos(2*t.a)+Math.cosh(2*t.b);return new t.constructor(Math.sin(2*t.a)/e,Math.sinh(2*t.b)/e).toFixed(8)}return+Math.tan(t).toFixed(8)},...t),t.tanh=(...t)=>n(t=>{if(t?.isComplex){const e=Math.cosh(2*a)+Math.cos(2*b);return new t.constructor(Math.sinh(2*a)/e,Math.sin(2*b)/e).toFixed(8)}return+Math.tanh(t).toFixed(8)},...t),t.text=ut,t.throttle=Tt,t.tick=(t,e,r=1/0,s=!0)=>new ce(t,e,r,s),t.timeTaken=t=>{console.time("timeTaken");const e=t();return console.timeEnd("timeTaken"),e},t.time_memory_Taken=t=>{const e=Date.now(),r=performance.memory.usedJSHeapSize,s=t();return{elapsedTime:Date.now()-e,usedMemory:performance.memory.usedJSHeapSize-r,result:s}},t.timeout=function(t,e){let r;const s=new Promise(s=>{r=setTimeout(()=>{e&&e(),s()},t)});return{id:r,clear:()=>clearTimeout(r),promise:s}},t.trimmed_mean=(t,e)=>{let r=[...t].sort((t,e)=>t-e).slice(e,t.length-e);return l(...r)},t.trunc=(...t)=>n(t=>t.isComplex?.()?new t.constructor(Math.trunc(t.a),Math.trunc(t.b)):Math.trunc(t),...t),t.useDerived=function(t,e){let r=t(...e.map(t=>t().value));const s=new Set;return e.forEach(n=>{n()._subscribe(()=>{{const n=t(...e.map(t=>t().value));n!==r&&(r=n,s.forEach(t=>t(r)))}})}),()=>({value:r,isStateGetter:()=>!0,_subscribe:t=>s.add(t)})},t.useEventEmitter=Pe,t.useIPC=Y,t.useLocalStorage=(t,e,r=!0)=>new Q(localStorage,t,e,r),t.useMediaQuery=(t,e)=>new ze(t,e),t.useQueryParams=function(){const t=()=>Le();return[t,(e,r=!0)=>{const s=t(),n="function"==typeof e?e(s):e,i=r?{...s,...n}:n,a=new URLSearchParams(i).toString();window.history.pushState({},"",`${window.location.pathname}${a?`?${a}`:""}`),window.dispatchEvent(new CustomEvent("queryparamschange",{detail:i}))}]},t.useReactive=t=>Ie(t=>{const e=nt(t);return{get:e[0],set:e[1]}},t),t.useRoot=(t,e={})=>new De(t,e),t.useSessionStorage=(t,e,r=!0)=>new Q(sessionStorage,t,e,r),t.useState=nt,t.useThread=(t,e,r=[],s=!0)=>(new Re).call(t,e,r,s),t.useTitle=(t,e=!0)=>new $e(t,e),t.variance=u,t.wait=t=>new Promise(e=>setTimeout(e,t)),t.waitElm=t=>new Promise(e=>{if(t)return e(t);const r=new MutationObserver(()=>{t&&(e(t),r.disconnect())});r.observe(document?.body,{childList:!0,subtree:!0})}),t.waitForUIElm=t=>new Promise(e=>{if(t.element)return e(t.element);const r=new MutationObserver(()=>{t.element&&(e(t.element),r.disconnect())});r.observe(document?.body,{childList:!0,subtree:!0})}),t.waitForUIElmSync=(t,e=2e3)=>{const r=Date.now();for(;Date.now()-r<e;)if(t.element)return t.element},t.watchQueryParams=function(t){let e=location.search;const r=()=>{const r=location.search;r!==e&&(e=r,t(Le()))};window.addEventListener("popstate",r);const s=history.pushState;history.pushState=function(...t){s.apply(this,t),r()};const n=history.replaceState;return history.replaceState=function(...t){n.apply(this,t),r()},t(Le()),()=>{window.removeEventListener("popstate",r)}},t.weighted_mean=(t,e)=>{let r=0,s=0;for(let n=0;n<t.length;n++)r+=t[n]*e[n],s+=e[n];return r/s},t.weighted_std=(t,e)=>Math.sqrt(p(t,e)),t.weighted_variance=p,t.winsorized_mean=(t,e)=>{let r=[...t].sort((t,e)=>t-e),s=r[e],n=r[r.length-e-1];return r=r.map(t=>Math.max(s,Math.min(n,t))),l(r)},t.wma=(t,e)=>{let r=e.length,s=e.reduce((t,e)=>t+e,0),n=[];for(let i=0;i<=t.length-r;i++){let a=0;for(let s=0;s<r;s++)a+=t[i+s]*e[s];n.push(a/s)}return n},t.xnor=(...t)=>F(D(...t)),t.xor=D});
9
+ !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).Ziko={})}(this,function(t){"use strict";const{PI:e,E:r}=Math,s=Number.EPSILON,n=(t,...e)=>{const r=e.map(e=>{return"object"!=typeof(r=e)&&"function"!=typeof r||null===r||e?.__mapfun__?t(e):e instanceof Array?e.map(e=>n(t,e)):ArrayBuffer.isView(e)?e.map(e=>t(e)):e instanceof Set?new Set(n(t,...e)):e instanceof Map?new Map([...e].map(e=>[e[0],n(t,e[1])])):e.isMatrix?.()?new e.constructor(e.rows,e.cols,n(e.arr.flat(1))):e instanceof Object?Object.fromEntries(Object.entries(e).map(e=>[e[0],n(t,e[1])])):void 0;var r});return 1==r.length?r[0]:r},i=(t,e)=>t.isComplex?.()?new t.constructor(e(t.a),e(t.b)):t.isMatrix?.()?new t.constructor(t.rows,t.cols,t.arr.flat(1).map(e)):(t instanceof Array&&n(e,...t),e(t)),o=(t,e)=>{if(0===t.length)return NaN;let r=t.sort((t,e)=>t-e),s=e/100*(r.length-1),n=Math.floor(s),i=s-n;return n===r.length-1?r[n]:r[n]*(1-i)+r[n+1]*i},h=t=>o(t,25),c=t=>o(t,75),l=(...t)=>t.reduce((t,e)=>t+e)/t.length,u=(...t)=>{const e=t.length;if(0===e)return NaN;const r=l(...t);return t.reduce((t,e)=>t+(e-r)**2,0)/e},m=(...t)=>{const e=t.length;if(e<2)return NaN;const r=l(...t);return t.reduce((t,e)=>t+(e-r)**2,0)/(e-1)},p=(t,e)=>{const r=t.length;if(0===r||e.length!==r)return NaN;const s=e.reduce((t,e)=>t+e,0),n=t.reduce((t,r,s)=>t+r*e[s],0)/s;return t.reduce((t,r,s)=>t+e[s]*(r-n)**2,0)/s},f=(t,e)=>{if(e<1||t.length<e)return[];let r=[];for(let s=0;s<=t.length-e;s++){const n=t.slice(s,s+e);r.push(m(n))}return r},d=t=>{let e=[],r=0;for(let s of t)r+=s,e.push(r);return e};class g{static int(t,e){return Math.floor(this.float(t,e))}static float(t,e){return void 0!==e?Math.random()*(e-t)+t:Math.random()*t}static bin(){return this.int(2)}static oct(){return this.int(8)}static dec(){return this.int(10)}static hex(){return((t,e,r)=>{const s=parseInt(t,e);if(Number.isNaN(s))throw new TypeError("Invalid value for the given base");return s.toString(r)})(this.int(16),10,16)}static char(t=!1){const e=t?this.int(65,91):this.int(97,123);return String.fromCharCode(e)}static bool(){return Boolean(this.int(2))}static get color(){return{hex:()=>`#${this.int(16777215).toString(16).padStart(6,"0")}`,hexa:()=>{const[t,e,r,s]=Array.from({length:4},()=>this.int(255).toString(16).padStart(2,"0"));return`#${t}${e}${r}${s}`},rgb:()=>{const[t,e,r]=Array.from({length:3},()=>this.int(255));return`rgb(${t}, ${e}, ${r})`},rgba:()=>{const[t,e,r]=Array.from({length:3},()=>this.int(255));return`rgba(${t}, ${e}, ${r}, ${Math.random().toFixed(2)})`},hsl:()=>`hsl(${this.int(360)}, ${this.int(100)}%, ${this.int(100)}%)`,hsla:()=>`hsla(${this.int(360)}, ${this.int(100)}%, ${this.int(100)}%, ${Math.random().toFixed(2)})`,gray:()=>{const t=this.int(255);return`rgb(${t}, ${t}, ${t})`}}}static get sample(){const t=this;return{int:(e,r,s)=>Array.from({length:e},()=>t.int(r,s)),float:(e,r,s)=>Array.from({length:e},()=>t.float(r,s)),char:(e,r=!1)=>Array.from({length:e},()=>t.char(r)),bool:e=>Array.from({length:e},()=>t.bool()),bin:e=>Array.from({length:e},()=>t.bin()),oct:e=>Array.from({length:e},()=>t.oct()),dec:e=>Array.from({length:e},()=>t.dec()),hex:e=>Array.from({length:e},()=>t.hex()),get color(){return{hex:e=>Array.from({length:e},()=>t.color.hex()),hexa:e=>Array.from({length:e},()=>t.color.hexa()),rgb:e=>Array.from({length:e},()=>t.color.rgb()),rgba:e=>Array.from({length:e},()=>t.color.rgba()),hsl:e=>Array.from({length:e},()=>t.color.hsl()),hsla:e=>Array.from({length:e},()=>t.color.hsla()),gray:e=>Array.from({length:e},()=>t.color.gray())}},choice:(e,r,s)=>Array.from({length:e},()=>t.choice(r,s))}}static shuffle(t){return[...t].sort(()=>.5-Math.random())}static choice(t=[1,2,3],e=new Array(t.length).fill(1/t.length)){const r=d(...e).map(t=>100*t),s=new Array(100);s.fill(t[0],0,r[0]);for(let e=1;e<t.length;e++)s.fill(t[e],r[e-1],r[e]);return s[this.int(s.length)]}}globalThis.Random=g;class w{constructor(t=0,e=0){[this.a,this.b]=((t,e,r)=>{let s,n;return e instanceof t?(s=e.a,n=e.b):"object"==typeof e?"a"in e&&"b"in e?(s=e.a,n=e.b):"a"in e&&"z"in e?(s=e.a,n=Math.sqrt(e.z**2-e.a**2)):"a"in e&&"phi"in e?(s=e.a,n=e.a*Math.tan(e.phi)):"b"in e&&"z"in e?(n=e.b,s=Math.sqrt(e.z**2-e.b**2)):"b"in e&&"phi"in e?(n=r,s=e.b/Math.tan(e.phi)):"z"in e&&"phi"in e&&(s=+e.z*Math.cos(e.phi).toFixed(15),n=+e.z*Math.sin(e.phi).toFixed(15)):"number"==typeof e&&"number"==typeof r&&(s=+e.toFixed(32),n=+r.toFixed(32)),[s,n]})(w,t,e)}get __mapfun__(){return!0}isComplex(){return!0}toString(){let t="";return t=0!==this.a?this.b>=0?`${this.a}+${this.b}*i`:`${this.a}-${Math.abs(this.b)}*i`:this.b>=0?`${this.b}*i`:`-${Math.abs(this.b)}*i`,t}serialize(){return JSON.stringify({type:"complex",data:this})}static deserialize(t){"string"==typeof t&&(t=JSON.parse(t));let{data:e,type:r}=t;return"complex"===r&&"a"in e&&"b"in e?new w(e.a,e.b):TypeError("Not a valid complex")}toFixed(t){return this.a=+this.a.toFixed(t),this.b=+this.b.toFixed(t),this}toPrecision(t){return this.a=+this.a.toPrecision(t),this.b=+this.b.toPrecision(t),this}clone(){return new w(this.a,this.b)}get z(){return Math.hypot(this.a,this.b)}get phi(){return Math.atan2(this.b,this.a)}static zero(){return new w(0,0)}static fromPolar(t,e){return new w(+(t*cos(e)).toFixed(13),+(t*sin(e)).toFixed(13))}static get random(){return{int:(t,e)=>new w(...g.sample.int(2,t,e)),float:(t,e)=>new w(...g.sample.float(2,t,e))}}static twiddle(t,e){const r=-2*Math.PI*t/e;return new w(Math.cos(r),Math.sin(r))}get conj(){return new w(this.a,-this.b)}get inv(){return new w(this.a/Math.hypot(this.a,this.b),-this.b/Math.hypot(this.a,this.b))}add(...t){for(let e=0;e<t.length;e++)"number"==typeof t[e]&&(t[e]=new w(t[e],0)),this.a+=t[e].a,this.b+=t[e].b;return this}sub(...t){for(let e=0;e<t.length;e++)"number"==typeof t[e]&&(t[e]=new w(t[e],0)),this.a-=t[e].a,this.b-=t[e].b;return this}mul(...t){let{z:e,phi:r}=this;for(let s=0;s<t.length;s++)"number"==typeof t[s]&&(t[s]=new w(t[s],0)),e*=t[s].z,r+=t[s].phi;return this.a=e*Math.cos(r),this.b=e*Math.sin(r),this.toFixed(8)}div(...t){let{z:e,phi:r}=this;for(let s=0;s<t.length;s++)"number"==typeof t[s]&&(t[s]=new w(t[s],0)),e/=t[s].z,r-=t[s].phi;return this.a=e*Math.cos(r),this.b=e*Math.sin(r),this.toFixed(8)}modulo(...t){for(let e=0;e<t.length;e++)"number"==typeof t[e]&&(t[e]=new w(t[e],0)),this.a%=t[e].a,this.b%=t[e].b;return this}pow(...t){let{z:e,phi:r}=this;for(let s=0;s<t.length;s++)"number"==typeof t[s]&&(t[s]=new w(t[s],0)),e*=Math.exp(t[s].a*Math.log(e)-t[s].b*r),r+=t[s].b*Math.log(e)+t[s].a*r;return this.a=e*Math.cos(r),this.b=e*Math.sin(r),this}get expo(){return[this.z,this.phi]}nthr(t=2){return y({z:this.z**(1/t),phi:this.phi/t})}get sqrt(){return this.nthr(2)}get cbrt(){return this.nthr(3)}get log(){return y(this.z,this.phi)}get cos(){return y(Math.cos(this.a)*Math.cosh(this.b),Math.sin(this.a)*Math.sinh(this.b))}get sin(){return y(Math.sin(this.a)*Math.cosh(this.b),Math.cos(this.a)*Math.sinh(this.b))}get tan(){const t=cos(2*this.a)+cosh(2*this.b);return y(Math.sin(2*this.a)/t,Math.sinh(2*this.b)/t)}}const y=(t,e)=>{if((t instanceof Array||ArrayBuffer.isView(t))&&(e instanceof Array||ArrayBuffer.isView(t)))return t.map((r,s)=>y(t[s],e[s]));if(t.isMatrix?.()&&e.isMatrix?.()){if(t.shape[0]!==e.shape[0]||t.shape[1]!==e.shape[1])return Error(0);const r=t.arr.map((r,s)=>y(t.arr[s],e.arr[s]));return new t.constructor(t.rows,t.cols,...r)}return new w(t,e)},v=(...t)=>{const e=t.pop();return n(t=>t.isComplex?.()?e.isComplex?.()?new t.constructor({z:Math.exp(e.a*Math.log(t.z)-e.b*t.phi),phi:e.b*Math.log(t.z)+e.a*t.phi}):new t.constructor({z:t.z**e,phi:t.phi*e}):e.isComplex?.()?new t.constructor({z:Math.exp(e.a*Math.log(t)),phi:e.b*Math.log(t)}):Math.pow(t,e),...t)},x=(...t)=>n(t=>t.isComplex?.()?new t.constructor({z:t.z**.5,phi:t.phi/2}):t<0?y(0,Math.sqrt(-t)).toFixed(8):+Math.sqrt(t).toFixed(8),...t),_=(...t)=>n(t=>t.isComplex?.()?new t.constructor(Math.log(t.z),t.phi).toFixed(8):+Math.log(t).toFixed(8),...t),M=(t,e,r)=>{if("number"==typeof e){if("number"==typeof r)switch(t){case"add":return e+r;case"sub":return e-r;case"mul":return e*r;case"div":return e/r;case"modulo":return e%r}return r?.isComplex?.()&&(e=new r.constructor(e,0)),r?.isMatrix?.()&&(e=r.constructor.nums(r.rows,r.cols,e)),e[t](r)}if(e?.isComplex?.()){if("number"==typeof r||r?.isComplex?.())return e.clone()[t](r);if(r?.isMatrix?.())return(e=r.constructor.nums(r.rows,r.cols,e)).clone()[t](r)}if(e?.isMatrix?.())return e.clone()[t](r)},E=(t,...e)=>{let r=t;for(let t=0;t<e.length;t++)r=M("add",r,e[t]);return r},T=(t,...e)=>{let r=t;for(let t=0;t<e.length;t++)r=M("sub",r,e[t]);return r},k=(t,...e)=>{let r=t;for(let t=0;t<e.length;t++)r=M("mul",r,e[t]);return r},C=(t,...e)=>{let r=t;for(let t=0;t<e.length;t++)r=M("div",r,e[t]);return r},S=(t,...e)=>{let r=t;for(let t=0;t<e.length;t++)r=M("modulo",r,e[t]);return r},O=(t,e,r)=>i(t,t=>e!==r?(t-e)/(r-e):0),A=(t,e,r)=>i(t,t=>(r-e)*t+e),j=(t,e,r)=>i(t,t=>Math.min(Math.max(t,e),r)),I=(t,e,r,s,n)=>i(t,t=>A(O(t,e,r),s,n)),R=(t,e,r=!0)=>{if(t instanceof Array&&!(e instanceof Array))return n(t=>R(t,e,r),...t);if(e instanceof Array&&!(t instanceof Array))return n(e=>R(t,e,r),...e);if(t instanceof Array&&e instanceof Array)return t.map((t,s)=>R(t,e[s],r));const s=Math.atan2(t,e);return r?s:180*s/Math.PI},F=t=>t.isComplex?.()?new t.constructor(F(t.a),F(t.b)):t.isMatrix?.()?new t.constructor(t.rows,t.cols,t.arr.flat(1).map(F)):+!t,P=(t,e)=>{if(t.every(t=>t.isComplex?.())){const r=t.map(t=>t.a),s=t.map(t=>t.b);return new t[0].constructor(e(...r),e(...s))}if(t.every(t=>t.isMatrix?.())){if(!t.every(e=>e.rows===t[0].rows&&e.cols===t[0].cols))return TypeError("All matrices must have the same shape");const{rows:r,cols:s}=t[0],n=Array.from({length:r},(r,n)=>Array.from({length:s},(r,s)=>e(...t.map(t=>t.arr[n][s]))));return new t[0].constructor(n)}return null},z=(...t)=>{const e=P(t,z);return null!==e?e:t.reduce((t,e)=>t&e,1)},D=(...t)=>{const e=P(t,D);return null!==e?e:t.reduce((t,e)=>t|e,0)},$=(...t)=>{const e=P(t,$);return null!==e?e:t.reduce((t,e)=>t^e,0)},L=(t,e)=>{for(let e=0;e<t.arr.length;e++)Object.defineProperty(t,e,{value:t.arr[e],writable:!0,configurable:!0,enumerable:!1});for(let r=t.arr.length;r<e;r++)delete t[r]};function N(t,e){var r=[];for(let e=0;e<t.length;e++)r.push(t[e].slice(0));r.splice(0,1);for(let t=0;t<r.length;t++)r[t].splice(e,1);return r}function U(t,e){if(t=t.clone(),e=e.clone(),t.rows!==e.rows)return;let r=t.arr;for(let s=0;s<t.rows;s++)for(let n=t.cols;n<t.cols+e.cols;n++)r[s][n]=e.arr[s][n-t.cols];return t.cols+=e.cols,new t.constructor(t.rows,t.cols,r.flat(1))}function q(t,e){if(t=t.clone(),e=e.clone(),t.cols!==e.cols)return;let r=t.arr;for(let s=t.rows;s<t.rows+e.rows;s++){r[s]=[];for(let n=0;n<t.cols;n++)r[s][n]=e.arr[s-t.rows][n]}return t.rows+=e.rows,new t.constructor(t.rows,t.cols,r.flat(1))}class B{constructor(t,e,r=[]){[this.rows,this.cols,this.arr]=((t,e,r,s)=>{if(!(e instanceof t)){let t,n,i=[];if(e instanceof Array)i=e,e=i.length,r=i[0].length;else for(t=0;t<e;t++)for(i.push([]),i[t].push(new Array(r)),n=0;n<r;n++)i[t][n]=s[t*r+n],null==s[t*r+n]&&(i[t][n]=0);return[e,r,i]}arr=e.arr,r=(e=e.rows).cols})(B,t,e,r),L(this)}isMatrix(){return!0}clone(){return new B(this.rows,this.cols,this.arr.flat(1))}toComplex(){return this.arr=n(t=>t?.isComplex?.()?t:new w(t,0),...this.arr),L(this),this}[Symbol.iterator](){return this.arr[Symbol.iterator]()}get size(){return this.rows*this.cols}get shape(){return[this.rows,this.cols]}at(t=0,e=void 0){if(t<0&&(t+=this.rows),t<0||t>=this.rows)throw new Error("Row index out of bounds");if(void 0===e)return this.arr[t];if(e<0&&(e+=this.cols),e<0||e>=this.cols)throw new Error("Column index out of bounds");return this.arr[t][e]}slice(t=0,e=0,r=this.rows-1,s=this.cols-1){r<0&&(r=this.rows+r),s<0&&(s=this.cols+s);let n=r-t,i=s-e,a=new Array(i);for(let r=0;r<n;r++){a[r]=[];for(let s=0;s<i;s++)a[r][s]=this.arr[r+t][s+e]}return this.arr=a,L(this.rows),this.rows=n,this.cols=i,this}reshape(t,e){if(t*e!==this.rows*this.cols)throw Error("size not matched");const r=this.rows;return Object.assign(this,new B(t,e,this.arr.flat(1))),L(r),this}get T(){let t=[];for(let e=0;e<this.arr[0].length;e++){t[e]=[];for(let r=0;r<this.arr.length;r++)t[e][r]=this.arr[r][e]}return new B(this.cols,this.rows,t.flat(1))}get det(){return(t=this).isSquare?1==t.rows?t.arr[0][0]:function t(e){if(2==e.length)return e.flat(1).some(t=>t?.isMatrix?.())?void console.warn("Tensors are not completely supported yet ..."):T(k(e[0][0],e[1][1]),k(e[0][1],e[1][0]));for(var r=0,s=0;s<e.length;s++){const n=E(k(v(-1,s),k(e[0][s],t(N(e,s)))));r=E(r,n)}return r}(t.arr):new Error("is not square matrix");var t}get inv(){return function(t){if(t.row!==t.cols)throw Error('is not a square matrix"');if(0===t.det)throw Error("determinant should not equal 0");const{arr:e}=t;if(e.length===e[0].length){var r=0,s=0,n=0,i=e.length,a=0,o=[],h=[];for(r=0;r<i;r+=1)for(o[o.length]=[],h[h.length]=[],n=0;n<i;n+=1)o[r][n]=r==n?1:0,h[r][n]=e[r][n];for(r=0;r<i;r+=1){if(0==(a=h[r][r])){for(s=r+1;s<i;s+=1)if(0!=h[s][r]){for(n=0;n<i;n++)a=h[r][n],h[r][n]=h[s][n],h[s][n]=a,a=o[r][n],o[r][n]=o[s][n],o[s][n]=a;break}if(0==(a=h[r][r]))return}for(n=0;n<i;n++)h[r][n]=h[r][n]/a,o[r][n]=o[r][n]/a;for(s=0;s<i;s++)if(s!=r)for(a=h[s][r],n=0;n<i;n++)h[s][n]-=a*h[r][n],o[s][n]-=a*o[r][n]}return new t.constructor(o)}}(this)}static eye(t){let e=new B(t,t);for(let r=0;r<t;r++)for(let s=0;s<t;s++)e.arr[r][s]=r===s?1:0;return e}static zeros(t,e){let r=new B(t,e);for(let n=0;n<t;n++)for(var s=0;s<e;s++)r.arr[n][s]=0;return r}static ones(t,e){let r=new B(t,e);for(let s=0;s<t;s++)for(let t=0;t<e;t++)r.arr[s][t]=1;return r}static nums(t,e,r){let s=new B(t,e);for(let n=0;n<t;n++)for(let t=0;t<e;t++)s.arr[n][t]=r;return s}static get random(){return{int:(t,e,r,s)=>new B(t,e,g.sample.int(t*e,r,s)),float:(t,e,r)=>new B(t,e,g.sample.float(t*e,r,b))}}get range(){return{map:(t,e,r,s)=>(this.arr=I(this.arr,t,e,r,s),this),norm:(t,e)=>(this.arr=O(this.arr,t,e),this),lerp:(t,e)=>(this.arr=A(this.arr,t,e),this),clamp:(t,e)=>(this.arr=j(this.arr,t,e),this)}}hstack(...t){const e=[this,...t].reduce((t,e)=>U(t,e));return Object.assign(this,e),L(this),this}vstack(...t){const e=[this,...t].reduce((t,e)=>q(t,e));return Object.assign(this,e),L(this),this}hqueue(...t){const e=[this,...t].reverse().reduce((t,e)=>U(t,e));return Object.assign(this,e),L(this),this}vqueue(...t){const e=[this,...t].reverse().reduce((t,e)=>q(t,e));return Object.assign(this,e),L(this),this}forEach(t){return this.arr.flat(1).forEach(t),this}forEachRow(t){return this.arr.forEach(t),this}forEachCol(t){return this.clone().T.forEachRow(t),this}map(t){const e=this.arr.flat(1).map(t);return new B(this.rows,this.cols,e)}mapRows(t=()=>{}){return this.arr=this.arr.map(t),this}mapCols(t){return this.clone().T.mapRows(t).T}sort(t=()=>{}){const e=this.arr.flat(1).sort(t);return new B(this.rows,this.cols,e)}shuffle(){return this.sort(()=>.5-Math.random())}sortRows(t=()=>{}){return this.arr=this.arr.map(e=>e.sort(t)),this}shuffleRows(){return this.sortRows(()=>.5-Math.random())}sortCols(t){return this.clone().T.sortRows(t).T}shuffleCols(){return this.sortCols(()=>.5-Math.random())}reduce(t,e){const r=e?this.arr.flat(1).reduce(t,e):this.arr.flat(1).reduce(t);return new B([[r]])}reduceRows(t,e){const r=e?this.arr.map(r=>r.reduce(t,e)):this.arr.map(e=>e.reduce(t));return new B(1,this.cols,r)}reduceCols(t,e){return this.T.reduceRows(t,e).T}filterRows(t){const e=this.arr.map(e=>e.some(e=>t(e))),r=[];let s;for(s=0;s<e.length;s++)e[s]&&r.push(this.arr[s]);return new B(r)}filterCols(t){const e=this.T.filterRows(t);return new B(e).T}every(t){return this.arr.flat(1).every(t)}everyRow(t){return this.arr.map(e=>e.every(t))}everyCol(t){return this.T.arr.map(e=>e.every(t))}some(t){return this.arr.flat(1).some(t)}someRow(t){return this.arr.map(e=>e.some(t))}someCol(t){return this.T.arr.map(e=>e.some(t))}get isSquare(){return this.rows===this.cols}get isSym(){if(!this.isSquare)return!1;for(let t=0;t<this.rows;t++)for(let e=t+1;e<this.cols;e++)if(this.arr[t][e]!==this.arr[e][t])return!1;return!0}get isAntiSym(){if(!this.isSquare)return!1;const t=this.rows;for(let e=0;e<t;e++){if(0!==this.arr[e][e])return!1;for(let r=e+1;r<t;r++)if(this.arr[e][r]!==-this.arr[r][e])return!1}return!0}get isDiag(){if(!this.isSquare)return!1;const t=this.rows;for(let e=0;e<t;e++)for(let r=e+1;r<t;r++)if(0!==this.arr[e][r]||0!==this.arr[r][e])return!1;return!0}get isOrtho(){return!!this.isSquare&&(this.isDiag&&(1==this.det||-1==this.det))}get isIdemp(){if(!this.isSquare)return!1;const t=this.rows,e=this.arr,r=[];for(let s=0;s<t;s++){r[s]=[];for(let n=0;n<t;n++){let i=0;for(let r=0;r<t;r++)i+=e[s][r]*e[r][n];r[s][n]=i}}for(let s=0;s<t;s++)for(let n=0;n<t;n++)if(r[s][n]!==e[s][n])return!1;return!0}get isUpperTri(){if(!this.isSquare)return!1;const t=this.rows;for(let e=1;e<t;e++)for(let t=0;t<e;t++)if(0!==this.arr[e][t])return!1;return!0}get isLowerTri(){if(!this.isSquare)return!1;const t=this.rows;for(let e=0;e<t-1;e++)for(let r=e+1;r<t;r++)if(0!==this.arr[e][r])return!1;return!0}toPrecision(t){for(let e=0;e<this.cols;e++)for(let r=0;r<this.rows;r++)this.arr[e][r]=+this.arr[e][r].toPrecision(t);return this}toFixed(t){for(let e=0;e<this.cols;e++)for(let r=0;r<this.rows;r++)this.arr[e][r]=+this.arr[e][r].toFixed(t);return this}splice(t,e,r,...s){}getRows(t,e=t+1){return this.slice(t,0,e,this.cols)}getCols(t,e=t+1){return this.slice(0,t,this.rows,e)}#t(t,...e){for(let s=0;s<e.length;s++){("number"==typeof e[s]||e[s]?.isComplex?.())&&(e[s]=B.nums(this.rows,this.cols,e[s]));for(let n=0;n<this.rows;n++)for(var r=0;r<this.cols;r++)this.arr[n][r]=t(this.arr[n][r],e[s].arr[n][r])}return new B(this.rows,this.cols,this.arr.flat(1))}add(...t){return this.#t(E,...t)}sub(...t){return this.#t(T,...t)}mul(...t){return this.#t(k,...t)}div(...t){return this.#t(C,...t)}modulo(...t){return this.#t(S,...t)}dot(t){for(var e=[],r=0;r<this.arr.length;r++){e[r]=[];for(var s=0;s<t.arr[0].length;s++){e[r][s]=0;for(var n=0;n<this.arr[0].length;n++)e[r][s]=E(e[r][s],k(this.arr[r][n],t.arr[n][s]))}}return new B(this.arr.length,t.arr[0].length,e.flat(1))}pow(t){let e=this.clone(),r=this.clone();for(let s=0;s<t-1;s++)r=r.dot(e);return r}sum(){let t=0;for(let e=0;e<this.rows;e++)for(let r=0;r<this.cols;r++)t=E(t,this.arr[e][r]);return t}prod(){let t=1;for(let e=0;e<this.rows;e++)for(let r=0;r<this.cols;r++)t=k(t,this.arr[e][r]);return t}hasComplex(){return this.arr.flat(1/0).some(t=>t instanceof w)}get min(){this.hasComplex()&&console.error("Complex numbers are not comparable");let t=[];for(let e=0;e<this.rows;e++)t.push(Math.min(...this.arr[e]));return Math.min(...t)}get max(){this.hasComplex()&&console.error("Complex numbers are not comparable");let t=[];for(let e=0;e<this.rows;e++)t.push(Math.max(...this.arr[e]));return Math.max(...t)}get minRows(){this.hasComplex()&&console.error("Complex numbers are not comparable");let t=[];for(let e=0;e<this.rows;e++)t.push(Math.min(...this.arr[e]));return t}get maxRows(){this.hasComplex()&&console.error("Complex numbers are not comparable");let t=[];for(let e=0;e<this.rows;e++)t.push(Math.max(...this.arr[e]));return t}get minCols(){return this.hasComplex()&&console.error("Complex numbers are not comparable"),this.T.minRows}get maxCols(){return this.hasComplex()&&console.error("Complex numbers are not comparable"),this.T.maxRows}static fromVector(t){return new B(t.length,1,t)}serialize(){const t=n(t=>t.serialize?.()||t,...this.arr);return JSON.stringify({type:"matrix",data:{rows:this.rows,cols:this.cols,arr:t}})}static deserialize(t){"string"==typeof t&&(t=JSON.parse(t));const{type:e,data:r}=t;if("matrix"!==e)return TypeError("Not a valid Matrix");let{arr:s}=r;return s=n(t=>{if("string"==typeof t){const e=JSON.parse(t),{type:r}=e;if("complex"===r)return w.deserialize(e)}return t},...s),new B(s)}flip(){return this.flipeH().flipeV()}flipeH(){return this.arr=this.arr.map(t=>[...t].reverse()),L(this),this}flipeV(){return this.arr=this.arr.reverse(),L(this),this}}class Z{constructor(t){this.cache={node:t}}isUINode(){return!0}get node(){return this.cache.node}}class V extends Array{constructor(...t){super(...t)}clear(){return this.length=0,this}getItemById(t){return this.find(e=>e.element.id===t)}getItemsByTagName(t){return this.filter(e=>e.element.tagName.toLowerCase()===t.toLowerCase())}getElementsByClassName(t){return this.filter(e=>e.element.classList?.contains(t))}querySelector(t){const e=globalThis?.document?.querySelector(t);return e&&this.find(t=>t.element===e)||null}querySelectorAll(t){const e=globalThis?.document?.querySelectorAll(t);return Array.from(e).map(t=>this.find(e=>e.element===t)).filter(Boolean)}}const H=new V,W={default:{target:null,render:!0,math:{mode:"deg"}},setDefault:function(t){const e=Object.keys(t),r=Object.values(t);for(let t=0;t<e.length;t++)this.default[e[t]]=r[t]},init:()=>{},renderingMode:"spa",isSSC:!1},G={store:new Map,index:0,register:function(t){this.store.set(this.index++,t)},reset(){this.index=0,this.store.clear()}},K={ui_index:0,get_ui_index:function(){return this.ui_index++},register_ui:function(t){}};class Y{#e;#r;#s;#n;#i;#a;constructor(t=""){this.#e=new BroadcastChannel(t),this.#r=new Map,this.#s=new Map,this.#n="ziko-channel:"+1e17*Math.random(),this.#i=new Set([this.#n]),this.#a=new Set,this.#e.addEventListener("message",t=>{const{last_sent_event:e,userId:r,eventData:s,rooms:n}=t.data;if(r===this.#n)return;if(n&&n.length&&!n.some(t=>this.#a.has(t)))return;this.#i.add(r),this.#r=new Map(s);const i=this.#s.get(e);i&&i.forEach(({fn:t,rooms:r})=>{r&&0!==r.length&&n&&!n.some(t=>r.includes(t))||t(this.#r.get(e))})})}emit(t,e,r){return this.#r.set(t,e),"string"==typeof r&&(r=[r]),this.#e.postMessage({eventData:Array.from(this.#r.entries()),last_sent_event:t,userId:this.#n,rooms:r&&r.length?r:void 0}),this}on(t,e=console.log,r){return this.#s.has(t)||this.#s.set(t,[]),"string"==typeof r&&(r=[r]),this.#s.get(t).push({fn:e,rooms:r}),this}off(t,e){return this.#s.has(t)?(this.#s.set(t,this.#s.get(t).filter(t=>t.fn!==e)),this):this}once(t,e,r){const s=r=>{e(r),this.off(t,s)};return this.on(t,s,r),this}join(...t){return t.forEach(t=>this.#a.add(t)),this}leave(...t){return t.length?t.forEach(t=>this.#a.delete(t)):this.#a.clear(),this}close(){return this.#e.close(),this}}const J=t=>new Y(t);class Q{static RESERVED_KEYS=new Set(["cache","items","set","add","remove","get","clear","onStorageUpdated"]);constructor(t,e,r,s=!0){this.cache={storage:t,globalKey:e,channel:s?J(`Ziko:useStorage-${e}`):null,oldItemKeys:new Set},this.#o(r,s)}get items(){const t=this.cache.storage.getItem(this.cache.globalKey);if(!t)return{};try{return JSON.parse(t)}catch{return{}}}#h(){const t=this.items,e=new Set(Object.keys(t));this.cache.oldItemKeys.forEach(t=>{e.has(t)||(delete this[t],this.cache.oldItemKeys.delete(t))});for(const e in t)Q.RESERVED_KEYS.has(e)||(this[e]=t[e],this.cache.oldItemKeys.add(e))}#o(t,e){e&&this.cache.channel&&this.cache.channel.on("Ziko-Storage-Updated",()=>this.#h());null!==this.cache.storage.getItem(this.cache.globalKey)?this.#h():void 0!==t?this.set(t):this.#h()}set(t){return this.cache.storage.setItem(this.cache.globalKey,JSON.stringify(t)),this.cache.channel&&this.cache.channel.emit("Ziko-Storage-Updated",t),this.#h(),this}add(t){return this.set({...this.items,...t})}remove(...t){const e={...this.items};return t.forEach(t=>delete e[t]),this.set(e)}get(t){return this.items[t]}clear(){return this.cache.storage.removeItem(this.cache.globalKey),this.#h(),this}onStorageUpdated(t){return this.cache.channel&&this.cache.channel.on("Ziko-Storage-Updated",t),this}}var X={store:new Map,index:0,session_storage:null,register:function(t){},update:function(t,e){}};const tt=(t={})=>{const e={methods:{},events:{},style:{},attrs:{}};for(const[r,s]of Object.entries(t))"style"===r?e.style=s:r.startsWith("$")?e.methods[r.slice(1)]=s:/^on[A-Z]/.test(r)?e.events[r]=s:e.attrs[r]=s;return e};var et;globalThis?.__Ziko__||(globalThis.__Ziko__={__UI__:H,__HYDRATION__:G,__State__:X,__Config__:W,__CACHE__:K,__PROVIDERS__:{}},et=__Ziko__,Object.defineProperties(et,{QueryParams:{get:function(){return function(t){const e={};return t.replace(/[A-Z0-9]+?=([\w|:|\/\.]*)/gi,t=>{const[r,s]=t.split("=");e[r]=s}),e}(globalThis.location.search.substring(1))},configurable:!1,enumerable:!0},HashParams:{get:function(){return globalThis.location.hash.substring(1).split("#")},configurable:!1,enumerable:!0}}));class rt extends Z{constructor(){super()}init({element:t,name:e,type:r,render:s,props:n={},items:i=[]}={}){if(this.target=globalThis.__Ziko__.__Config__.default.target||globalThis?.document?.body,"string"==typeof t)switch(r){case"html":t=globalThis?.document?.createElement(t);break;case"svg":t=globalThis?.document?.createElementNS("http://www.w3.org/2000/svg",t);break;default:throw Error("Not supported")}else this.target=t?.parentElement;Object.assign(this.cache,{name:e,itemsTarget:this,isInteractive:!1,parent:null,isBody:!1,isRoot:!1,isHidden:!1,isFrozzen:!1,attributes:{},filters:{},temp:{}}),this.events={ptr:null,mouse:null,wheel:null,key:null,drag:null,drop:null,click:null,clipboard:null,focus:null,swipe:null,custom:null},this.observer={resize:null,intersection:null},t&&Object.assign(this.cache,{element:t}),this.items=new V,globalThis.__Ziko__.__UI__[this.cache.name]?globalThis.__Ziko__.__UI__[this.cache.name]?.push(this):globalThis.__Ziko__.__UI__[this.cache.name]=[this],t&&s&&this?.render?.(),globalThis.__Ziko__.__UI__.push(this);const a=tt(n);this.parsed_props=a,this.style(a.style),this.setAttr(a.attrs);Object.entries(a.events).forEach(([t,e])=>this[t](e.bind(this))),i.length>0&&this.append(...i)}get element(){return this.cache.element}[Symbol.iterator](){return this.items[Symbol.iterator]()}maintain(){for(let t=0;t<this.items.length;t++)Object.defineProperty(this,t,{value:this.items[t],writable:!0,configurable:!0,enumerable:!1})}isInteractive(){return this.cache.isInteractive}isUIElement(){return!0}}function st(t,...e){e.forEach(e=>function(t,e){const r=Object.getOwnPropertyDescriptors(e);for(const e of Reflect.ownKeys(r)){const s=r[e];"get"in s||"set"in s||"function"!=typeof s.value?Object.defineProperty(Object.getPrototypeOf(t),e,s):"function"==typeof s.value&&(Object.getPrototypeOf(t).hasOwnProperty(e)||Object.defineProperty(Object.getPrototypeOf(t),e,s))}}(t,e))}var nt=Object.freeze({__proto__:null,mount:function(t=this.target,e=0){return e>0?(setTimeout(()=>this.mount(t,0),e),this):(this.isBody||(t?.isUIElement&&(t=t.element),this.target=t,this.target?.appendChild(this.element)),this)},unmount:function(t=0){return t>0?(setTimeout(()=>this.unmount(0),t),this):(this.cache.parent?this.cache.parent.remove(this):this.target?.children?.length&&[...this.target.children].includes(this.element)&&this.target.removeChild(this.element),this)}});const it=Symbol.for("ziko.stateGetter");function at(t){const e={value:t,subscribers:new Set,paused:!1};function r(){return{value:e.value,_subscribe:t=>(e.subscribers.add(t),()=>e.subscribers.delete(t))}}r[it]=!0;return[r,function(t){e.paused||("function"==typeof t&&(t=t(e.value)),Object.is(t,e.value)||(e.value=t,e.subscribers.forEach(t=>t(e.value))))},{pause:()=>{e.paused=!0},resume:()=>{e.paused=!1},clear:()=>{e.subscribers.clear()},force:t=>{"function"==typeof t&&(t=t(e.value)),e.value=t,e.subscribers.forEach(t=>t(e.value))},getSubscribers:()=>new Set(e.subscribers)}]}const ot=t=>"function"==typeof t&&!0===t[it],ht=(t="")=>t.replace(/[A-Z]/g,t=>"-"+t.toLowerCase()),ct=(t="")=>{if(0===t.length)return!1;return/^[a-z][a-zA-Z0-9]*$/.test(t)};function lt(t,e){if(globalThis.SVGAElement&&this.element instanceof globalThis.SVGAElement&&(t=ct(t)?ht(t):t),!this?.attr[t]||this?.attr[t]!==e){if(ot(e)){e()._subscribe(e=>this.element?.setAttribute(t,e),this)}else this.element?.setAttribute(t,e);Object.assign(this.cache.attributes,{[t]:e})}}var ut=Object.freeze({__proto__:null,_set_attrs_:lt,getAttr:function(t){return t=ct(t)?ht(t):t,this.element.attributes[t].value},removeAttr:function(...t){for(let e=0;e<t.length;e++)this.element?.removeAttribute(t[e]);return this},setAttr:function(t,e){if(t instanceof Object){const[r,s]=[Object.keys(t),Object.values(t)];for(let t=0;t<r.length;t++)s[t]instanceof Array&&(e[t]=s[t].join(" ")),lt.call(this,r[t],s[t])}else e instanceof Array&&(e=e.join(" ")),lt.call(this,t,e);return this},setContentEditable:function(t=!0){return this.setAttr("contenteditable",t),this}});class mt extends Z{constructor(...t){super("span","text",!1,...t),this.element=globalThis?.document?.createTextNode(...t)}isText(){return!0}}const pt=(...t)=>new mt(...t);async function ft(t,e,...r){const s=this.itemsTarget.element,n=this.itemsTarget;if(this.cache.isFrozzen)return console.warn("You can't append new item to frozzen element"),this;for(let i=0;i<r.length;i++){if(["number","string"].includes(typeof r[i])&&(r[i]=pt(r[i])),r[i]instanceof Function&&ot(r[i])){const t=r[i]();r[i]=pt(t.value),t._subscribe(t=>r[i].element.textContent=t,r[i])}if("function"==typeof globalThis?.Node&&r[i]instanceof globalThis?.Node&&(r[i]=new this.constructor(r[i])),r[i]?.isUINode)r[i].cache.parent=this,s?.[t](r[i].element),r[i].target=this.itemsTarget.element,n.items[e](r[i]);else if(r[i]instanceof Promise){const a=await r[i];a.cache.parent=this,s?.[t](a.element),a.target=this.itemsTarget.element,n.items[e](a)}else r[i]instanceof Object&&(r[i]?.style&&this.style(r[i]?.style),r[i]?.attr&&Object.entries(r[i].attr).forEach(t=>this.setAttr(""+t[0],t[1])))}return this.maintain(),this}var dt=Object.freeze({__proto__:null,__addItem__:ft,after:function(t){return t?.isUIElement&&(t=t.element),this.itemsTarget.element?.after(t),this},append:function(...t){return ft.call(this,"append","push",...t),this},before:function(t){return t?.isUIElement&&(t=t.element),this.itemsTarget.element?.before(t),this},clear:function(){return this?.items?.forEach(t=>t.unmount()),this.itemsTarget.element.innerHTML="",this},insertAt:function(t,...e){const r=this.itemsTarget;if(t>=r.items.length)return this.append(...e);for(let s=0;s<e.length;s++)["number","string"].includes(typeof e[s])&&(e[s]=pt(e[s])),r.element?.insertBefore(e[s].element,r.items[t].element),r.items.splice(t,0,e[s]);return r.maintain(),this},prepend:function(...t){return this.__addItem__.call(this,"prepend","unshift",...t),this},remove:function(...t){const e=t=>{"number"==typeof t&&(t=this.items[t]),t?.isUIElement&&this.itemsTarget.element?.removeChild(t.element),this.items=this.items.filter(e=>e!==t)};for(let r=0;r<t.length;r++)e(t[r]);for(let t=0;t<this.items.length;t++)Object.assign(this,{[[t]]:this.items[t]});return this},replaceElementWith:function(t){return this.cache.element.replaceWith(t),this.cache.element=t,this}});var gt=Object.freeze({__proto__:null,at:function(t){return this.items.at(t)},find:function(t){return this.items.filter(t)},forEach:function(t){return this.items.forEach(t),this},map:function(t){return this.items.map(t)}});var bt=Object.freeze({__proto__:null,animate:function(t,{duration:e=1e3,iterations:r=1,easing:s="ease"}={}){return this.element?.animate(t,{duration:e,iterations:r,easing:s}),this},hide:function(){},show:function(){},size:function(t,e){return this.style({width:t,height:e})},style:function(t){if(!this.element?.style)return this;for(let e in t){const r=t[e];if(ot(r)){const t=r();Object.assign(this.element.style,{[e]:t.value}),t._subscribe(t=>{console.log({newValue:t}),Object.assign(this.element.style,{[e]:t})})}else Object.assign(this.element.style,{[e]:r})}return this}});class wt{constructor(t,e){this.cache={category:e,target:t,listeners:{},currentEvent:null,event:null,customEvents:new Set}}get event(){return this.cache.event}get target(){return this.cache.target}get element(){return this.cache.target.element}get currentEvent(){return this.cache.currentEvent}addListener(t,e,{preventDefault:r=!1,paused:s=!1}={}){return this.cache.listeners[t]={callback:r=>{this.cache.event=r,this.cache.listeners[t].preventDefault&&r.preventDefault(),this.cache.listeners[t].paused||(this.cache.currentEvent=t,e.call(this,this))},preventDefault:r,paused:s},this.element.addEventListener(t,this.cache.listeners[t].callback),this}removeListener(t){return this.element.removeEventListener(t,this.cache.listeners[t].callback),this}pause(t){return this.cache.listeners[t].paused=!0,this}resume(t){return this.cache.listeners[t].paused=!1,this}preventDefault(t){return this.cache.listeners[t].preventDefault=!0,this}useDefault(t){return this.cache.listeners[t].preventDefault=!1,this}}class yt extends Event{constructor(t,e){super("clickaway",{bubbles:!0,cancelable:!0}),this.originalEvent=t,this.targetElement=e}}function vt(t){function e(e){if(!t.contains(e.target)){const r=new yt(e,t);t.dispatchEvent(r)}}return globalThis?.document?.addEventListener("click",e),()=>globalThis?.document?.removeEventListener("click",e)}const xt=(t,e=!1)=>{const r=t.element.getBoundingClientRect(),s=t.event;let n=s?.clientX-r.left|0,i=s?.clientY-r.top|0;if(e){const e=t.element.clientWidth,r=t.element.clientHeight;n=+(n/e*2-1).toFixed(8),i=+(i/r*-2+1).toFixed(8)}return{x:n,y:i}},_t="click",Mt={onClick(t){return this.on("click",t,{category:_t})},onDblClick(t){return this.on("dblclick",t,{category:_t})},onClickAway(t){var e,r,s;return e=this,r=_t,s="clickaway",e.exp.events?.[r]?.cache?.customEvents?.has(s)||vt(this.element),this.on("clickaway",t,{category:_t,isCustom:!0})}},Et="ptr",Tt={onPtrDown(t,e=!1){return this.on("pointerdown",t,{category:Et,details_setter:t=>{const{x:r,y:s}=xt(t,e);t.dx=r,t.dy=s,t.isDown=!0,t.isDragging=t.isMoving??!1}})},onPtrMove(t,e=!1){return this.on("pointermove",t,{category:Et,details_setter:t=>{const{x:r,y:s}=xt(t,e);t.mx=r,t.my=s,t.isMoving=!0,t.isDragging=t.isDown??!1}})},onPtrUp(t,e=!1){return this.on("pointerup",t,{category:Et,details_setter:t=>{const{x:r,y:s}=xt(t,e);t.ux=r,t.uy=s,t.isDown=!1,t.isMoving=!1,t.isDragging=!1}})}},kt="key",Ct={onKeyDown(t){return this.on("keydown",t,{category:kt,details_setter:t=>{t.kd=t.event.key}})},onKeyPress(t){return this.on("keypress",t,{category:kt,details_setter:t=>{t.kp=t.event.key}})},onKeyUp(t){return this.on("keydown",t,{category:kt,details_setter:t=>{t.ku=t.event.key}})}},St=(t,e)=>{let r=0;return(...s)=>{const n=(new Date).getTime();n-r<e||(r=n,t(...s))}};class Ot extends CustomEvent{constructor(t,e,{bubbles:r=!0,cancelable:s=!0}={}){super(t,{detail:e,bubbles:r,cancelable:s})}}function At(t,{intersection:e=!0,resize:r=!0,threshold:s=0,throttleResize:n=100,throttleEnterExit:i=0}={}){let a,o;const h=e=>{for(let r of e){const{width:e,height:s}=r.contentRect;t.dispatchEvent(new Ot("resizeview",{width:e,height:s,entry:r}))}},c=n>0?St(h,n):h,l=e=>{for(let r of e){const e=r.isIntersecting?"enterview":"exitview";t.dispatchEvent(new Ot(e,r))}},u=i>0?St(l,i):l;return e&&(a=new IntersectionObserver(u,{threshold:s}),a.observe(t)),r&&(o=new ResizeObserver(c),o.observe(t)),()=>{a&&(a.unobserve(t),a.disconnect()),o&&(o.unobserve(t),o.disconnect())}}const jt="view",It={onEnterView(t){return this.exp.events?.[jt]||At(this.element),this.on("enterview",t,{category:jt,isCustom:!0})},onExitView(t){return this.exp.events?.[jt]||At(this.element),this.on("exitview",t,{category:jt,isCustom:!0})},onResizeView(t){return this.exp.events?.[jt]||At(this.element),this.on("resizeview",t,{category:jt,isCustom:!0})}};class Rt extends CustomEvent{constructor(t,e){super(t,{detail:e,bubbles:!0,cancelable:!0})}}let Ft=class extends rt{constructor({element:t,name:e="",type:r="html",render:s=__Ziko__.__Config__.default.render,props:n}={}){super(),this.exp={events:{}},st(this,nt,ut,dt,bt,gt,Tt,Mt,Ct,It),t&&this.init({element:t,name:e,type:r,render:s,props:n})}on(t,e,{details_setter:r,category:s="global",isCustom:n=!1,preventDefault:i=!1}={}){t instanceof Array&&t.forEach(t=>this.on(t,e,{details_setter:r,category:s,isCustom:n,preventDefault:i})),s&&!this.exp.events.hasOwnProperty(s)&&(this.exp.events[s]=new wt(this,s)),n&&this.exp.events[s].cache.customEvents.add(t);const a=this.exp.events[s];return a.addListener(t,t=>{r&&r(a),e(t)},{preventDefault:i}),this}_off(t,e="global"){return this.exp.events[e].removeListener(t),this}get element(){return this.cache.element}get itemsTarget(){return this.cache.itemsTarget}get itemsTargetElement(){return this.itemsTarget.element}setItemsTarget(t){return this.cache.itemsTarget=t,this.items=t.items,this}isInteractive(){return this.cache.isInteractive}useClient(t){return this.cache.isInteractive||(this.element.setAttribute("data-hydration-index",globalThis.__Ziko__.__HYDRATION__.index),globalThis.__Ziko__.__HYDRATION__.register(()=>this),this.cache.isInteractive=!0),t&&this.element.setAttribute("data-hydration-directive",t),this}get st(){return this.cache.style}get attr(){return this.cache.attributes}get evt(){return this.events}get html(){return this.element.innerHTML}get text(){return this.element.textContent}get isBody(){return this.element===globalThis?.document.body}get parent(){return this.cache.parent}get width(){return this.element.getBoundingClientRect().width}get height(){return this.element.getBoundingClientRect().height}get top(){return this.element.getBoundingClientRect().top}get right(){return this.element.getBoundingClientRect().right}get bottom(){return this.element.getBoundingClientRect().bottom}get left(){return this.element.getBoundingClientRect().left}};const Pt=t=>"object"!=typeof t&&"function"!=typeof t||null===t,zt=t=>(...e)=>{const r=e[0];return r?.isUIElement?.()||Pt(r)?new t({},...e):new t(r,...e.slice(1))};class Dt extends Ft{constructor(...t){super({element:"div",name:"view"}),this.append(...t)}}const $t=["a","abb","address","area","article","aside","audio","b","base","bdi","bdo","blockquote","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","hr","i","iframe","img","ipnut","ins","kbd","label","legend","li","main","map","mark","menu","meter","nav","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","search","section","select","small","source","span","strong","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr"],Lt=["svg","g","defs","symbol","use","image","switch","rect","circle","ellipse","line","polyline","polygon","path","text","tspan","textPath","altGlyph","altGlyphDef","altGlyphItem","glyph","glyphRef","linearGradient","radialGradient","pattern","solidColor","filter","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDropShadow","feFlood","feFuncA","feFuncR","feFuncG","feFuncB","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","animate","animateMotion","animateTransform","set","script","desc","title","metadata","foreignObject"],Nt=["math","annotation","merror","mfrac","mi","mprescripts","mn","mo","mover","mpadded","mphantom","mprescripts","mroot","mrow","ms","semantics","mspace","msqrt","mstyle","msub","msup","msubsup","mtable","mtd","mtext","mtr","munder","munderover"],Ut=new Proxy({},{get(t,e){if("string"!=typeof e)return;let r,s=e.replaceAll("_","-").toLowerCase();return $t.includes(s)&&(r="html"),Lt.includes(s)&&(r="svg"),Nt.includes(s)&&(r="mathml"),(...t)=>0===t.length?new Ft({element:s,name:s,type:r}):["string","number"].includes(typeof t[0])||t[0]instanceof Ft||ot(t[0])||t[0]instanceof HTMLElement?new Ft({element:s,name:s,type:r}).append(...t):new Ft({element:s,type:r,props:t.shift()}).append(...t)}});function qt(t){return 1==t?this.style({flexDirection:"column"}):-1==t&&this.style({flexDirection:"column-reverse"}),this}function Bt(t){return 1==t?this.style({flexDirection:"row"}):-1==t&&this.style({flexDirection:"row-reverse"}),this}function Zt(t){return"number"==typeof t&&(t=["flex-start","center","flex-end"][t+1]),t}function Vt(t){return Zt(-t)}class Ht extends Ft{constructor({tag:t="div",orientation:e="h",order:r,w:s="100%",h:n="100%"}={}){super({element:t,name:"Flex"}),this.direction="cols",this.style({display:"flex"})}isFlex(){return!0}responsify(t,e=!0){return this.wrap(e),this.element.clientWidth<t?this.vertical():this.horizontal(),this}setSpaceAround(){return this.style({justifyContent:"space-around"}),this}setSpaceBetween(){return this.style({justifyContent:"space-between"}),this}setBaseline(){return this.style({alignItems:"baseline"}),this}gap(t){return"row"===this.direction?this.style({columnGap:t}):"column"===this.direction&&this.style({rowGap:t}),this}wrap(t="wrap"){return this.style({flexWrap:"string"==typeof t?t:["no-wrap","wrap","wrap-reverse"][+t]}),this}_justifyContent(t="center"){return this.style({justifyContent:t}),this}vertical(t,e,r=1){return qt.call(this,r),this.style({alignItems:"number"==typeof t?Zt.call(this,t):t,justifyContent:"number"==typeof e?Vt.call(this,e):e}),this}horizontal(t,e,r=1){return Bt.call(this,r),this.style({alignItems:"number"==typeof e?Vt.call(this,e):e,justifyContent:"number"==typeof t?Zt.call(this,t):t}),this}show(){return this.isHidden=!1,this.style({display:"flex"}),this}}class Wt extends rt{constructor({element:t,name:e,type:r,render:s}){super({element:t,name:e,type:r,render:s})}}class Gt extends Wt{constructor(t,e){super({element:"div",name:"suspense"}),this.setAttr({dataTemp:"suspense"}),this.fallback_ui=t,this.append(t),(async()=>{try{const r=await e();t.unmount(),this.append(r)}catch(t){console.log({error:t})}})()}}class Kt extends Ft{constructor(t){super({element:"div",name:"html_wrappper"}),this.element.append(function(t){if(globalThis?.DOMParser){const e=(new DOMParser).parseFromString(`<div>${t}</div>`,"text/html");return e.body.firstChild.style.display="contents",e.body.firstChild}}(t)),this.style({display:"contents"})}}class Yt extends Ft{constructor(t){super({element:"div",name:"html_wrappper"}),this.element.append(function(t){if("undefined"!=typeof DOMParser){const e=(new DOMParser).parseFromString(t.trim(),"image/svg+xml").documentElement;if("parsererror"===e.nodeName)throw new Error("Invalid SVG string");if(e.hasAttribute("xmlns"))return e;const{children:r,attributes:s}=e,n=document.createElementNS("http://www.w3.org/2000/svg","svg");for(let{name:t,value:e}of s)n.setAttribute(t,e);return n.append(...r),globalThis.svg=e,globalThis.children=r,globalThis.attributes=s,globalThis.element=n,n}throw new Error("DOMParser is not available in this environment")}(t)),this.style({display:"contents"})}}class Jt extends Ft{constructor(t,e){super(),this.key=t,this.cases=e,this.init()}init(){Object.values(this.cases).filter(t=>t!=this.current).forEach(t=>t.unmount()),super.init(this.current.element)}get current(){const t=Object.keys(this.cases).find(t=>t==this.key)??"default";return this.cases[t]}updateKey(t){return this.key=t,this.replaceElementWith(this.current.element),this}}class Qt extends Ft{#c=new WeakMap;constructor({activeIndex:t=0}={},...e){super({element:"div"}),this.style({display:"contents"}),this.states={activeIndex:t},this.append(...e),requestAnimationFrame(()=>{this.render()})}get activeItem(){return this.items[this.states.activeIndex]}render(){this.items.forEach((t,e)=>{const r=getComputedStyle(t.element).display;this.#c.set(t,r),e!==this.states.activeIndex&&t.style({display:"none"})})}get DS(){return this.#c}next(t=1){return this.activate(this.states.activeIndex+t)}previous(t=1){return this.activate(this.states.activeIndex-t)}activate(t){if(!this.items.length)return this;const e=this.items.at(this.states.activeIndex);e&&e.style({display:"none"});const r=this.items.length;this.states.activeIndex=(t%r+r)%r;const s=this.items.at(this.states.activeIndex);if(s){const t=this.#c.get(s)||"block";s.style({display:"none"===t?"block":t})}return this}}const Xt=zt(Qt);class te extends Ft{constructor(...t){super({element:document.createDocumentFragment()}),this.append(...t)}isFragment(){return!0}}class ee extends te{constructor({each:t,fallback:e,mapFn:r=()=>{}}={}){super(),this.config={each:t,fallback:e,mapFn:r},this.append(...this.config.each.map((t,e)=>this.config.mapFn(t,e)))}}const{PI:re,sqrt:se,cos:ne,sin:ie,acos:ae,pow:oe}=Math,he=t=>t,ce=(t,e=7.5625,r=2.75)=>t<1/r?e*t*t:t<2/r?e*(t-=1.5/r)*t+.75:t<2.5/r?e*(t-=2.25/r)*t+.9375:e*(t-=2.625/r)*t+.984375;class le{constructor(t,{ease:e=he,step:r=50,t0:s=0,start:n=!0,duration:i=3e3}={}){this.callback=t,this.state={isRunning:!1,animationId:null,startTime:null,ease:e,step:r,autoStart:n,duration:i},this.t=0,this.tx=0,this.ty=0,this.i=0,this.state.autoStart&&this.start()}#l=()=>{this.t+=this.state.step,this.i++,this.tx=I(this.t,0,this.state.duration,0,1),this.ty=this.state.ease(this.tx),this.callback(this),this.t>=this.state.duration&&(clearInterval(this.state.animationId),this.state.isRunning=!1)};#u(t=!0){return this.state.isRunning||(t&&this.reset(!1),this.state.isRunning=!0,this.state.startTime=Date.now(),this.state.animationId=setInterval(this.#l,this.state.step)),this}start(){return this.#u(!0)}pause(){return this.state.isRunning&&(clearInterval(this.state.animationId),this.state.isRunning=!1),this}resume(){return this.#u(!1)}stop(){return this.pause(),this.reset(!1),this}reset(t=!0){return this.t=0,this.tx=0,this.ty=0,this.i=0,t&&this.start(),this}}class ue{constructor(t,e,r=1/0,s){this.ms=e,this.fn=t,this.count=r,this.frame=1,this.id=null,this.running=!1,s&&this.start()}start(){return this.running||(this.running=!0,this.frame=1,this.id=setInterval(()=>{this.frame>this.count?this.stop():(this.fn.call(null,this),this.frame++)},this.ms)),this}stop(){return this.running&&(this.running=!1,clearInterval(this.id),this.id=null),this}isRunning(){return this.running}}class me extends ue{constructor(t=1e3/60){super(t,()=>this._tick()),this.elapsed=0,this._lastTime=performance.now(),this._callbacks=new Set}_tick(){const t=performance.now(),e=t-this._lastTime;this.elapsed+=e,this._lastTime=t;for(const t of this._callbacks)t({elapsed:this.elapsed,delta:e})}onTick(t){return this._callbacks.add(t),()=>this._callbacks.delete(t)}reset(){this.elapsed=0,this._lastTime=performance.now()}pause(){super.stop()}resume(){this._lastTime=performance.now(),super.start()}}class pe{constructor(t=[],{repeat:e=1,loop:r=!1}={}){this.tasks=t,this.repeat=e,this.loop=r,this.stopped=!1,this.running=!1,this.onStart=null,this.onTask=null,this.onEnd=null}async run(){if(this.running)return;this.running=!0,this.stopped=!1,this.onStart&&this.onStart();let t=this.repeat;do{for(const t of this.tasks){if(this.stopped)return;if(Array.isArray(t))await Promise.all(t.map(({fn:t,delay:e=0})=>new Promise(async r=>{e>0&&await new Promise(t=>setTimeout(t,e)),this.onTask&&this.onTask(t),await t(),r()})));else{const{fn:e,delay:r=0}=t;r>0&&await new Promise(t=>setTimeout(t,r)),this.onTask&&this.onTask(e),await e()}}}while(this.loop&&!this.stopped&&(t===1/0||t-- >1));!this.stopped&&this.onEnd&&this.onEnd(),this.running=!1}stop(){this.stopped=!0,this.running=!1}addTask(t){this.tasks.push(t)}clearTasks(){this.tasks=[]}}class fe{constructor(t,{step:e=1e3,t0:r=0,t1:s=1/0,autoplay:n=!0}={}){this.callback=t,this.cache={isRunning:!1,id:null,last_tick:null,step:e,t0:r,t1:s,autoplay:n,pauseTime:null,frame:0},n&&(r?this.startAfter(r):this.start(),s!==1/0&&this.stopAfter(s))}get frame(){return this.cache.frame}get elapsed(){return this.cache.elapsed}start(){return this.cache.isRunning||(this.cache.frame=0,this.cache.isRunning=!0,this.cache.last_tick=Date.now(),this.animate()),this}pause(){return this.cache.isRunning&&(clearTimeout(this.cache.id),this.cache.isRunning=!1,this.cache.pauseTime=Date.now()),this}resume(){if(!this.cache.isRunning){if(this.cache.isRunning=!0,this.cache.pauseTime){const t=Date.now()-this.cache.pauseTime;this.cache.last_tick+=t}this.animate()}return this}stop(){return this.pause(),this.cache.frame=0,this}startAfter(t=1e3){return setTimeout(()=>this.start(),t),this}stopAfter(t=1e3){return setTimeout(()=>this.stop(),t),this}animate=()=>{if(this.cache.isRunning){const t=Date.now(),e=t-this.cache.last_tick;e>=this.cache.step&&(this.cache.elapsed=t-(this.cache.t0||0),this.callback(this),this.cache.frame++,this.cache.last_tick=t-e%this.cache.step),this.cache.id=setTimeout(this.animate,0)}}}const de=(t,e=",")=>t.trim().trimEnd().split("\n").map(t=>t.split(e)),ge=(t,e=",")=>{const[r,...s]=de(t,e);return s.map(t=>{const e={};return r.forEach((r,s)=>{e[r]=t[s]}),e})},be=t=>t instanceof Array?[Object.keys(t[0]),...t.map(t=>Object.values(t))]:[Object.keys(t)],we=(t,e)=>be(t).map(t=>t.join(e)).join("\n"),ye=(t,e=",")=>we(t instanceof Object?t:JSON.parse(t),e),ve=(t,e)=>{const r=[];if(Array.isArray(t))t.forEach(t=>{if("object"==typeof t&&null!==t){r.push(`${e}-`);const s=ve(t,`${e} `);r.push(...s)}else r.push(`${e}- ${t}`)});else for(const s in t)if(t.hasOwnProperty(s)){const n=t[s];if("object"==typeof n&&null!==n){r.push(`${e}${s}:`);const t=ve(n,`${e} `);r.push(...t)}else r.push(`${e}${s}: ${n}`)}return r},xe=(t,e="")=>ve(t,e).join("\n"),_e=(t,e)=>xe(t instanceof Object?t:JSON.parse(t),e),Me=(t,e=1)=>{let r="";for(const s in t)if(t.hasOwnProperty(s)){const n=t[s];r+="\n"+" ".repeat(e)+`<${s}>`,r+="object"==typeof n?Me(n,e+2):`${n}`,r+=`</${s}>`}return r.trim()},Ee=t=>(new XMLSerializer).serializeToString(t),Te=t=>btoa(Ee(t)),ke=t=>"data:image/svg+xml;base64,"+Te(t),Ce=(t,e=0)=>{t=Se(t);let r="";const s=" ".repeat(e);for(let n in t)if("object"==typeof t[n]){r+=`${s}${n} {\n`;const i=t[n];for(let t in i)"object"==typeof i[t]?r+=Ce({[t]:i[t]},e+1):r+=`${s} ${t.replace(/[A-Z]/g,t=>"-"+t.toLowerCase())}: ${i[t]};\n`;r+=`${s}}\n`}return r};function Se(t){return"object"!=typeof t||null===t?t:Object.keys(t).reduce((e,r)=>(e[r.trim()]=Se(t[r]),e),Array.isArray(t)?[]:{})}function Oe(t){const e={type:t.nodeName,attributes:{},children:[]};for(let r=0;r<t.attributes.length;r++){const s=t.attributes[r];e.attributes[s.name]=s.value}for(let r=0;r<t.childNodes.length;r++){const s=t.childNodes[r];s.nodeType===Node.ELEMENT_NODE?e.children.push(Oe(s)):s.nodeType===Node.TEXT_NODE&&(e.text=s.textContent.trim())}return e}class Ae{constructor({head:t=null,wrapper:e=null,target:r=null}){this.head=t,this.wrapper=e,this.target=r,this.init()}get isZikoApp(){return!0}init(){this.head&&this.setHead(this.head),this.wrapper&&this.setWrapper(this.wrapper),this.target&&this.setTarget(this.target),this.wrapper&&this.target&&this.wrapper.mount(this.target)}setTarget(t){return t instanceof HTMLElement?this.target=t:"string"==typeof t&&(this.target=globalThis?.document?.querySelector(t)),this}setWrapper(t){return t?.isUIElement?this.wrapper=t:"function"==typeof t&&(this.wrapper=t()),this}}function je(t){return/:\w+/.test(t)}class Ie extends Ae{constructor({head:t,wrapper:e,target:r,routes:s}){super({head:t,wrapper:e,target:r}),this.routes=new Map([["404",pt("Error 404")],...Object.entries(s)]),this.clear(),globalThis.onpopstate=this.mount(location.pathname)}clear(){return[...this.routes].forEach(t=>{!je(t[0])&&t[1]?.isUIElement&&t[1].unmount()}),this}mount(t){const[e,r]=[...this.routes].find(e=>function(t,e){const r=t.split("/"),s=e.split("/");if(r.length!==s.length)return!1;for(let t=0;t<r.length;t++){const e=r[t],n=s[t];if(!e.startsWith(":")&&e!==n)return!1}return!0}(e[0],t));let s;if(je(e)){const n=function(t,e){const r=t.split("/"),s=e.split("/"),n={};if(r.length!==s.length)return n;for(let t=0;t<r.length;t++){const e=r[t],i=s[t];if(e.startsWith(":"))n[e.slice(1)]=i;else if(e!==i)return{}}return n}(e,t);s=r.call(this,n)}else r?.isUIElement&&r.mount(this.wrapper),"function"==typeof r&&(s=r());return s?.isUIElement&&s.mount(this.wrapper),s instanceof Promise&&s.then(t=>t.mount(this.wrapper)),globalThis.history.pushState({},"",t),this}}const Re=({head:t,wrapper:e,target:r,routes:s})=>new Ie({head:t,wrapper:e,target:r,routes:s});function Fe(t,e="./src/pages",r=["js","ts"]){"/"===e.at(-1)&&(e=e.slice(0,-1));const s=t.replace(/\\/g,"/").replace(/\[(\w+)\]/g,"$1/:$1").split("/"),n=e.split("/"),i=s.indexOf(n.at(-1));if(-1!==i){const t=s.slice(i+1),e=s.at(-1),n="index.js"===e||"index.ts"===e,a=r.some(t=>e===`.${t}`||e.endsWith(`.${t}`));if(n)return"/"+(t.length>1?t.slice(0,-1).join("/"):"");if(a)return"/"+t.join("/").replace(/\.(js|ts)$/,"")}return""}const Pe=(t,...e)=>{const r=e.map(e=>null===e||["number","string","boolean","bigint","undefined"].includes(typeof e)||e?.__mapfun__?t(e):e instanceof Array?e.map(e=>Pe(t,e)):ArrayBuffer.isView(e)?e.map(e=>t(e)):e instanceof Set?new Set(Pe(t,...e)):e instanceof Map?new Map([...e].map(e=>[e[0],Pe(t,e[1])])):e.isMatrix?.()?new e.constructor(e.rows,e.cols,Pe(e.arr.flat(1))):e instanceof Object?Object.fromEntries(Object.entries(e).map(e=>[e[0],Pe(t,e[1])])):void 0);return 1==r.length?r[0]:r};class ze{#m;#p=new Map;#f=0;constructor(){const t=new Blob(['\n this.onmessage = function(e) {\n const { id, funStr, args, close } = e.data;\n try {\n const func = new Function("return " + funStr)();\n const result = func(...args);\n postMessage({ id, result });\n } catch (error) {\n postMessage({ id, error: error.message });\n } finally {\n if (close) self.close();\n }\n }\n '],{type:"text/javascript"});this.#m=new Worker(URL.createObjectURL(t)),this.#m.addEventListener("message",t=>{const{id:e,result:r,error:s}=t.data,n=this.#p.get(e);n&&(n(r,s),this.#p.delete(e))})}call(t,e,r=[],s=!0){if("function"!=typeof t)throw new TypeError("func must be a function");const n=++this.#f;return this.#p.set(n,e),this.#m.postMessage({id:n,funStr:t.toString(),args:r,close:s}),this}terminate(){this.#m.terminate()}}class De{constructor(t=10){this.events={},this.maxListeners=t}on(t,e){return this.events[t]||(this.events[t]=[]),this.events[t].push(e),this.events[t].length>this.maxListeners&&console.warn(`Warning: Possible memory leak. Event '${t}' has more than ${this.maxListeners} listeners.`),this}once(t,e){const r=(...s)=>{this.off(t,r),e(...s)};return this.on(t,r)}off(t,e){const r=this.events[t];if(!r)return this;const s=r.indexOf(e);return-1!==s&&r.splice(s,1),this}emit(t,e){const r=this.events[t];return!!r&&([...r].forEach(r=>{try{r(e)}catch(e){console.error(`Error in listener for '${t}':`,e)}}),!0)}remove(t){return delete this.events[t],this}clear(){return this.events={},this}setMaxListeners(t){return this.maxListeners=t,this}}const $e=t=>new De(t);class Le{#d;#g;#b=null;constructor(t=[],e=()=>{}){this.#d=t,this.#g=e,this.#o()}#w(){return this.#d.some(({query:t})=>globalThis.matchMedia(t).matches)}#o(){this.#d.forEach(({query:t,callback:e})=>{const r=globalThis.matchMedia(t),s=()=>{const t=this.#w();r.matches?(e(),this.#b=e):t||this.#b===this.#g||(this.#g(),this.#b=this.#g)};s(),r.addEventListener("change",s)})}}class Ne{constructor(t=document.title,e=!0){this.cache={emitter:null},e&&this.useEventEmitter(),this.set(t)}useEventEmitter(){return this.cache.emitter=$e(),this}setTitle(t){return t!==document.title&&(document.title=t,this.cache.emitter&&this.cache.emitter.emit("ziko:title-changed",t)),this}get current(){return document.title}onChange(t){return this.cache.emitter&&this.cache.emitter.on("ziko:title-changed",t),this}}class Ue{constructor(t,{namespace:e="Ziko",ValidateCssProps:r=!1}={}){this.currentPropsMap=t,this.namespace=e,this.ValidateCssProps=r,this.use(t)}use(t){return this.ValidateCssProps&&function(t){const e=new Set(Object.keys(document.documentElement.style));for(const r in t)if(!e.has(r))throw new Error(`Invalid CSS property: "${r}"`)}(t),this.currentPropsMap=t,this.#h(),this}#h(){const t=globalThis?.document?.documentElement?.style;for(const e in this.currentPropsMap){const r=this.namespace?`--${this.namespace}-${e}`:`--${e}`;t.setProperty(r,this.currentPropsMap[e]),Object.defineProperty(this,e,{value:`var(${r})`,writable:!0,configurable:!0,enumerable:!1})}}}const qe=t=>Object.fromEntries(new URLSearchParams(globalThis?.location?.search));let{sqrt:Be,cos:Ze,sin:Ve,exp:He,log:We,cosh:Ge,sinh:Ke}=Math;for(const t of Object.getOwnPropertyNames(Math)){const e=Math[t];"function"==typeof e&&(Math[t]=new Proxy(e,{apply(e,r,s){const n=s[0];if("number"==typeof n||0===s.length)return e.apply(r,s);if(n?.isComplex?.()){const{a:t,b:i,z:a,phi:o}=n,h=(t,e)=>new n.constructor(t,e);switch(e.name){case"abs":return n.z;case"sqrt":return h(Be(a)*Ze(o/2),Be(a)*Ve(o/2));case"log":return h(We(a),o);case"exp":return h(He(t)*Ze(i),He(t)*Ve(i));case"cos":return h(Ze(t)*Ge(i),-Ve(t)*Ke(i));case"sin":return h(Ve(t)*Ge(i),Ze(t)*Ke(i));case"tan":{const e=Ze(2*t)+Ge(2*i);return h(Ve(2*t)/e,Ke(2*i)/e)}case"cosh":return h(Ge(t)*Ze(i),Ke(t)*Ve(i));case"sinh":return h(Ke(t)*Ze(i),Ge(t)*Ve(i));case"tanh":{const e=Ge(2*t)+Ze(2*i);return h(Ke(2*t)/e,Ve(2*i)/e)}default:return e.apply(r,s)}}throw new TypeError(`Math.${t} expects only numbers`)}}))}globalThis?.document&&document?.addEventListener("DOMContentLoaded",__Ziko__.__Config__.init()),t.App=({head:t,wrapper:e,target:r})=>new Ae({head:t,wrapper:e,target:r}),t.ClickAwayEvent=yt,t.ClickListeners=Mt,t.Clock=me,t.CloneElement=t=>new t.__proto__.constructor,t.Complex=w,t.E=r,t.EPSILON=s,t.EventController=wt,t.FileBasedRouting=async function(t){const e=Object.keys(t),r=function(t){if(0===t.length)return"";const e=t.map(t=>t.split("/")),r=Math.min(...e.map(t=>t.length));let s=[];for(let t=0;t<r;t++){const r=e[0][t];if(!e.every(e=>e[t]===r||e[t].startsWith("[")))break;s.push(r)}return s.join("/")+(s.length?"/":"")}(e),s={};for(let n=0;n<e.length;n++){const i=await t[e[n]](),a=await i.default;Object.assign(s,{[Fe(e[n],r)]:a})}return Re({target:document.body,routes:{"/":()=>{},...s},wrapper:Ut.section()})},t.Flex=(...t)=>{let e="div";return"string"==typeof t[0]&&(e=t[0],t.pop()),new Ht(e).append(...t)},t.For=({each:t,fallback:e,mapFn:r}={})=>new ee({each:t,fallback:e,mapFn:r}),t.Fragment=(...t)=>new te(...t),t.HTMLWrapper=t=>new Kt(t),t.KeyListeners=Ct,t.Matrix=B,t.PI=e,t.PtrListeners=Tt,t.Random=g,t.SPA=Re,t.STATE_GETTER=it,t.SVGWrapper=t=>new Yt(t),t.Scheduler=(t,{repeat:e=null}={})=>new pe(t,{repeat:e}),t.Suspense=(t,e)=>new Gt(t,e),t.Swap=Xt,t.SwipeEvent=Rt,t.Switch=({key:t,cases:e})=>new Jt(t,e),t.Tick=ue,t.TimeAnimation=le,t.TimeLoop=fe,t.TimeScheduler=pe,t.UIElement=Ft,t.UIFlex=Ht,t.UIFragment=te,t.UIHTMLWrapper=Kt,t.UINode=Z,t.UISVGWrapper=Yt,t.UISwap=Qt,t.UISwitch=Jt,t.UIView=Dt,t.UseRoot=Ue,t.UseThread=ze,t.View=(...t)=>new Dt(...t),t.ViewEvent=Ot,t.ViewListeners=It,t.ZikoApp=Ae,t.ZikoSPA=Ie,t.ZikoUISuspense=Gt,t.ZikoUIText=mt,t.abs=(...t)=>n(t=>t.isComplex?.()?t.z:Math.abs(t),...t),t.accum_max=t=>{let e=[],r=-1/0;for(let s of t)r=Math.max(r,s),e.push(r);return e},t.accum_min=t=>{let e=[],r=1/0;for(let s of t)r=Math.min(r,s),e.push(r);return e},t.accum_prod=(...t)=>{let e,r=[],s=1,n=t.length;for(e=0;e<n;e++)s=k(s,t[e]),r.push(s);return r},t.accum_product=t=>{let e=[],r=1;for(let s of t)r*=s,e.push(r);return e},t.accum_sum=d,t.acos=(...t)=>n(t=>{if(t?.isComplex){const{a:e,b:r}=t,s=Math.hypot(e+1,r),n=Math.hypot(e-1,r);return globalThis.Rp=s,globalThis.Rm=n,new t.constructor(Math.acos((s-n)/2),-Math.acosh((s+n)/2)).toFixed(8)}return+Math.acos(t).toFixed(8)},...t),t.acosh=(...t)=>n(t=>t?.isComplex?_(t.clone().add(x(t.clone().mul(t.clone()).sub(1)))):+Math.acosh(t).toFixed(8),...t),t.acot=(...t)=>n(t=>{if(t?.isComplex){const{a:e,b:r}=t;return new t.constructor(Math.atan(2*e/(e**2+(r-1)*(r+1)))/2,Math.log((e**2+(r-1)**2)/(e**2+(r+1)**2))/4).toFixed(8)}return+(Math.PI/2-Math.atan(t)).toFixed(8)},...t),t.add=E,t.add_class=(t,e)=>t.element.className=t.element.className.replace(/\s+$/gi,"")+" "+e,t.add_vendor_prefix=function(t){const e=t.slice(0,1).toUpperCase()+t.slice(1),r=["Webkit","Moz","O","ms"];for(let t=0,s=r.length;t<s;t++){const s=r[t];if(void 0!==(globalThis?.document?.body).style[s+e])return s+e}return t},t.and=z,t.animation=(t,{ease:e,t0:r,t1:s,start:n,duration:i}={})=>new le(t,{ease:e,t0:r,t1:s,start:n,duration:i}),t.apply_fun=i,t.arc=t=>1-ie(ae(t)),t.asin=(...t)=>n(t=>{if(t?.isComplex){const{a:e,b:r}=t,s=Math.hypot(e+1,r),n=Math.hypot(e-1,r);return new t.constructor(Math.asin((s-n)/2),Math.acosh((s+n)/2)).toFixed(8)}return+Math.asin(t).toFixed(8)},...t),t.asinh=(...t)=>n(t=>t?.isComplex?_(t.clone().add(x(t.clone().mul(t.clone()).add(1)))):+Math.asinh(t).toFixed(8),...t),t.atan=(...t)=>n(t=>{if(t?.isComplex){const{a:e,b:r}=t;return new t.constructor(Math.atan(2*e/(1-e**2-r**2))/2,Math.log((e**2+(1+r)**2)/(e**2+(1-r)**2))/4).toFixed(8)}return+Math.atan(t).toFixed(8)},...t),t.atan2=R,t.atanh=(...t)=>n(t=>+Math.atanh(t).toFixed(8),...t),t.back=(t,e=1)=>t**2*((e+1)*t-e),t.binomial=(t,e)=>{if(t!==Math.floor(t))return TypeError("n must be an integer");if(e!==Math.floor(e))return TypeError("k must be an integer");if(t<0)return TypeError("n must be non-negative");if(e<0||t<0||e>t)return 0;e>t-e&&(e=t-e);let r,s=1;for(r=0;r<e;r++)s=s*(t-r)/(r+1);return s},t.call_with_optional_props=zt,t.cbrt=(...t)=>n(t=>t.isComplex?.()?new t.constructor({z:t.z**(1/3),phi:t.phi/3}).toFixed(8):+Math.cbrt(t).toFixed(8),...t),t.ceil=(...t)=>n(t=>t.isComplex?.()?new t.constructor(Math.ceil(t.a),Math.ceil(t.b)):Math.ceil(t),...t),t.clamp=j,t.clock=t=>new me(t),t.cloneUI=t=>Object.assign(Object.create(Object.getPrototypeOf(t)),t),t.complex=y,t.contraharmonic_mean=(...t)=>{let e,r=0,s=0,n=t.length;for(e=0;e<n;e++)r+=t[e]**2,s+=t[e];return r/s},t.cos=(...t)=>n(t=>t.isComplex?.()?new t.constructor(Math.cos(t.a)*Math.cosh(t.b),-Math.sin(t.a)*Math.sinh(t.b)).toFixed(8):+Math.cos(t).toFixed(8),...t),t.cosh=(...t)=>n(t=>t?.isComplex?new t.constructor(Math.cosh(t.a)*Math.cos(t.b),Math.sinh(t.a)*Math.sin(t.b)).toFixed(8):+Math.cosh(t).toFixed(8),...t),t.coth=(...t)=>n(t=>{if(t?.isComplex){const{a:e,b:r}=t,s=Math.sinh(e)**2*Math.cos(r)**2+Math.cosh(e)**2*Math.sin(r)**2;return new t.constructor(Math.cosh(e)*Math.sinh(e)/s,-Math.sin(r)*Math.cos(r)/s).toFixed(8)}return+(1/Math.tanh(t)).toFixed(8)},...t),t.croot=(...t)=>{const e=t.pop();if(!e.isComplex?.())throw Error("croot expect Complex number as root");return n(t=>{"number"==typeof t&&(t=new e.constructor(t,0));const{a:r,b:s}=e,{z:n,phi:i}=t,a=Math.hypot(r,s),o=Math.exp((Math.log(n)*r+i*s)/a),h=(i*r-Math.log(n)*s)/a;return new e.constructor(o*Math.cos(h),o*Math.sin(h)).toFixed(8)},...t)},t.csv2arr=de,t.csv2json=(t,e=",")=>JSON.stringify(ge(t,e)),t.csv2matrix=(t,e=",")=>new B(de(t,e)),t.csv2object=ge,t.csv2sql=(t,e)=>{const r=t=>t.trim().replace(/[^a-zA-Z0-9_]/g,""),s=t=>"'"+t.trim().replace(/'/g,"''")+"'",n=t.trim().trimEnd().split("\n").filter(t=>t),i=n[0].split(",").map(r);let a="INSERT INTO "+r(e)+" ("+i.join(", ")+") Values ",o=[];for(let t=1;t<n.length;t++){const e=n[t].split(",").map(s);o.push("("+e.join(", ")+")")}return a+o.join(",\n")},t.debounce=(t,e=1e3)=>(...r)=>setTimeout(()=>t(...r),e),t.defineParamsGetter=function(t){Object.defineProperties(t,{QueryParams:{get:function(){return globalThis.location.search.substring(1),Object.fromEntries(new URLSearchParams(location.search))},configurable:!1,enumerable:!0},HashParams:{get:function(){return globalThis.location.hash.substring(1).split("#")},configurable:!1,enumerable:!0}})},t.define_wc=function(t,e,r={},{mode:s="open"}={}){globalThis.customElements?.get(t)?console.warn(`Custom element "${t}" is already defined`):-1!==t.search("-")?globalThis.customElements?.define(t,class extends HTMLElement{static get observedAttributes(){return["style",...Object.keys(r)]}constructor(){super(),this.attachShadow({mode:s}),this.props={},this.mask={...r}}connectedCallback(){this.render()}render(){this.shadowRoot.innerHTML="";const t=e(this.props);t instanceof Array?t.forEach(t=>t.mount(this.shadowRoot)):t.mount(this.shadowRoot)}attributeChangedCallback(t,e,r){Object.assign(this.props,{[t]:this.mask[t].type(r)}),this.render()}}):console.warn(`"${t}" is not a valid custom element name`)},t.deg2rad=(...t)=>n(t=>t*Math.PI/180,...t),t.discret=(t,e=5)=>Math.ceil(t*e)/e,t.div=C,t.elastic=t=>-2*oe(2,10*(t-1))*ne(20*re*t/3*t),t.ema=(t,e)=>{let r=[],s=t[0];r.push(s);for(let n=1;n<t.length;n++)s=e*t[n]+(1-e)*s,r.push(s);return r},t.exp=(...t)=>n(t=>t.isComplex?.()?new t.constructor(Math.exp(t.a)*Math.cos(t.b),Math.exp(t.a)*Math.sin(t.b)).toFixed(8):+Math.exp(t).toFixed(8),...t),t.floor=(...t)=>n(t=>t.isComplex?.()?new t.constructor(Math.floor(t.a),Math.floor(t.b)):Math.floor(t),...t),t.fract=(...t)=>n(t=>t.isComplex?.()?new t.constructor(t.a-Math.trunc(t.a),t.b-Math.trunc(t.b)):t-Math.trunc(t),...t),t.geo_mean=(...t)=>t.reduce((t,e)=>t*e)**(1/t.length),t.harmonic_mean=(...t)=>{let e=0,r=0;for(r=0;r<t.length;r++)e+=1/t[r];return t.length/e},t.hypot=(...t)=>{const e=t.find(t=>t.isComplex?.());if(e){const r=t.map(t=>t.isComplex?.()?t:new e.constructor(t,0));return Math.hypot(...r.map(t=>t.z))}return Math.hypot(...t)},t.in_back=(t,e=1.70158,r=e+1)=>r*oe(t,3)-e*t**2,t.in_bounce=(t,e=7.5625,r=2.75)=>1-ce(1-t,e,r),t.in_circ=t=>1-se(1-t**2),t.in_cubic=t=>t**3,t.in_elastic=(t,e=2*re/3)=>0===t?0:1===t?1:-oe(2,10*t-10)*ie((10*t-10.75)*e),t.in_expo=t=>0===t?0:2**(10*t-10),t.in_out_back=(t,e=1.70158,r=1.525*e)=>t<.5?oe(2*t,2)*(2*(r+1)*t-r)/2:(oe(2*t-2,2)*((r+1)*(2*t-2)+r)+2)/2,t.in_out_bounce=(t,e=7.5625,r=2.75)=>t<.5?ce(1-2*t,e,r)/2:ce(2*t-1,e,r)/2,t.in_out_circ=t=>t<.5?(1-se(1-(2*t)**2))/2:(se(1-(-2*t+2)**2)+1)/2,t.in_out_cubic=t=>t<.5?4*t**3:1-(-2*t+2)**3/2,t.in_out_elastic=(t,e=2*re/4.5)=>0===t?0:1===t?1:t<.5?-oe(2,20*t-10)*ie((20*t-11.125)*e)/2:oe(2,-20*t+10)*ie((20*t-11.125)*e)/2+1,t.in_out_expo=t=>0===t?0:1===t?1:t<.5?2**(20*t-10)/2:(2-2**(-20*t+10))/2,t.in_out_quad=t=>t<.5?2*t**2:1-(-2*t+2)**2/2,t.in_out_quart=t=>t<.5?8*t**4:1-(-2*t+2)**4/2,t.in_out_quint=t=>t<.5?16*t**5:1-(-2*t+2)**5/2,t.in_out_sin=t=>-(ne(re*t)-1)/2,t.in_quad=t=>t**2,t.in_quart=t=>t**4,t.in_quint=t=>t**5,t.in_sin=t=>1-ne(t*re/2),t.interquartile_mean=(...t)=>{let e=t.sort((t,e)=>t-e),r=e[Math.floor(.25*(e.length-1))],s=e[Math.floor(.75*(e.length-1))],n=e.filter(t=>t>=r&&t<=s);return l(n)},t.iqr=t=>c(t)-h(t),t.isStateGetter=ot,t.is_primitive=Pt,t.json2arr=t=>be(t instanceof Object?t:JSON.parse(t)),t.json2css=Ce,t.json2csv=ye,t.json2csvFile=(t,e)=>{const r=ye(t,e),s=new Blob([r],{type:"text/csv;charset=utf-8;"});return{str:r,blob:s,url:URL.createObjectURL(s)}},t.json2xml=Me,t.json2xmlFile=(t,e)=>{const r=Me(t,e),s=new Blob([r],{type:"text/xml;charset=utf-8;"});return{str:r,blob:s,url:URL.createObjectURL(s)}},t.json2yml=_e,t.json2ymlFile=(t,e)=>{const r=_e(t,e),s=new Blob([r],{type:"text/yml;charset=utf-8;"});return{str:r,blob:s,url:URL.createObjectURL(s)}},t.lerp=A,t.linear=he,t.linkStyle=function(t){const e=document?.createElement("link");e.setAttribute("rel","stylesheet"),e.setAttribute("href",t),document.head.appendChild(e)},t.ln=_,t.loop=(t,e={})=>new fe(t,e),t.map=I,t.mapfun=n,t.matrix=(t,e,r)=>new B(t,e,r),t.matrix2=(...t)=>new B(2,2,t),t.matrix3=(...t)=>new B(3,3,t),t.matrix4=(...t)=>new B(4,4,t),t.max=(...t)=>Math.max(...t),t.mean=l,t.median=t=>o(t,50),t.midhinge=(...t)=>{let e=t.sort((t,e)=>t-e);return(e[Math.floor(.25*(e.length-1))]+e[Math.floor(.75*(e.length-1))])/2},t.midrange=t=>(Math.min(...t)+Math.max(...t))/2,t.min=(...t)=>Math.min(...t),t.modulo=S,t.mul=k,t.nand=(...t)=>F(z(...t)),t.nor=(...t)=>F(D(...t)),t.norm=O,t.normalize_css_value=t=>"number"==typeof t?t+"px":t,t.not=F,t.nthr=(...t)=>{const e=t.pop();if("number"!=typeof e)throw Error("nthr expects a real number n");return n(t=>t.isComplex?.()?new t.constructor({z:t.z**(1/e),phi:t.phi/e}):t<0?e%2==2?y(0,(-t)**(1/e)).toFixed(8):+(-1*(-t)**(1/e)).toFixed(8):+(t**(1/e)).toFixed(8),...t)},t.or=D,t.out_back=(t,e=1.70158,r=e+1)=>1+r*oe(t-1,3)+e*oe(t-1,2),t.out_bounce=ce,t.out_circ=t=>se(1-(t-1)**2),t.out_cubic=t=>1-(1-t)**3,t.out_elastic=(t,e=2*re/3)=>0===t?0:1===t?1:oe(2,-10*t)*ie((10*t-.75)*e)+1,t.out_expo=t=>1===t?1:1-2**(-10*t),t.out_quad=t=>1-(1-t)**2,t.out_quart=t=>1-(1-t)**4,t.out_quint=t=>1-(1-t)**5,t.out_sin=t=>ie(t*re/2),t.parseXML=function(t){return Oe((new DOMParser).parseFromString(t,"text/xml").documentElement)},t.parse_props=tt,t.percentile=o,t.pow=v,t.power_mean=(t,e)=>{let r=0,s=0,n=t.length;for(s=0;s<n;s++)r+=t[s]**e;return(r/n)**(1/e)},t.q1=h,t.q3=c,t.rad2deg=(...t)=>n(t=>t/Math.PI*180,...t),t.register_click_away_event=vt,t.register_swipe_event=function(t,e=5,r=100,s=500){let n=0,i=0,a=0,o=!1;function h(t){n=t.clientX,i=t.clientY,a=performance.now(),o=!0}function c(h){if(!o)return;o=!1;const c=h.clientX-n,l=h.clientY-i;let u=null,m=null;performance.now()-a<=s&&(Math.abs(c)>=e&&Math.abs(l)<=r?(u=c<0?"left":"right",m="swipe"+u):Math.abs(l)>=e&&Math.abs(c)<=r&&(u=l<0?"up":"down",m="swipe"+u)),m&&t.dispatchEvent(new Rt(m,{direction:u,distX:c,distY:l,originalEvent:h}))}return t.addEventListener("pointerdown",h,{passive:!0}),t.addEventListener("pointerup",c,{passive:!0}),()=>{t.removeEventListener("pointerdown",h),t.removeEventListener("pointerup",c)}},t.register_view_event=At,t.remove_class=(t,e)=>t.element.className=t.element.className.replace(e,""),t.rms=(...t)=>{const e=t.length;return(Math.hypot(...t)/e)**(1/e)},t.rolling_std=(t,e)=>Math.sqrt(f(t,e)),t.rolling_variance=f,t.round=(...t)=>n(t=>t.isComplex?.()?new t.constructor(Math.round(t.a),Math.round(t.b)):Math.round(t),...t),t.sample_std=(...t)=>Math.sqrt(m(...t)),t.sample_variance=m,t.script=function(t){const e=document?.createElement("script");e.setAttribute("src",t),document.head.appendChild(e)},t.sec=(...t)=>n(t=>(t.isComplex?.(),+(1/Math.cos(t)).toFixed(8)),...t),t.sig=(...t)=>n(t=>1/(1+Math.exp(-t)).toFixed(8),...t),t.sign=(...t)=>n(t=>{if(t.isComplex?.()){const{z:e,phi:r}=t;return 0===e?new t.constructor(0,0):new t.constructor({z:1,phi:r})}return Math.sign(t)},...t),t.sin=(...t)=>n(t=>t?.isComplex?new t.constructor(Math.sin(t.a)*Math.cosh(t.b),Math.cos(t.a)*Math.sinh(t.b)).toFixed(8):+Math.sin(t).toFixed(8),...t),t.sinh=(...t)=>n(t=>t?.isComplex?new t.constructor(Math.sinh(t.a)*Math.cos(t.b),Math.cosh(t.a)*Math.sin(t.b)).toFixed(8):+Math.sinh(t).toFixed(8),...t),t.sleep=t=>new Promise(e=>setTimeout(e,t)),t.sma=(t,e)=>{let r=[];for(let s=0;s<=t.length-e;s++){let n=0;for(let r=0;r<e;r++)n+=t[s+r];r.push(n/e)}return r},t.sqrt=x,t.std=(...t)=>Math.sqrt(u(...t)),t.step=(t,e=5)=>Math.floor(t*e)/e,t.step_fps=t=>1e3/t,t.style=(t,e)=>{t&&Object.assign(t.style,e)},t.sub=T,t.svg2ascii=Te,t.svg2img=(t,e=!0)=>Ut.img(ke(t)).mount(e),t.svg2imgUrl=ke,t.svg2str=Ee,t.tags=Ut,t.tan=(...t)=>n(t=>{if(t?.isComplex){const e=Math.cos(2*t.a)+Math.cosh(2*t.b);return new t.constructor(Math.sin(2*t.a)/e,Math.sinh(2*t.b)/e).toFixed(8)}return+Math.tan(t).toFixed(8)},...t),t.tanh=(...t)=>n(t=>{if(t?.isComplex){const e=Math.cosh(2*a)+Math.cos(2*b);return new t.constructor(Math.sinh(2*a)/e,Math.sin(2*b)/e).toFixed(8)}return+Math.tanh(t).toFixed(8)},...t),t.text=pt,t.throttle=St,t.tick=(t,e,r=1/0,s=!0)=>new ue(t,e,r,s),t.timeTaken=t=>{console.time("timeTaken");const e=t();return console.timeEnd("timeTaken"),e},t.time_memory_Taken=t=>{const e=Date.now(),r=performance.memory.usedJSHeapSize,s=t();return{elapsedTime:Date.now()-e,usedMemory:performance.memory.usedJSHeapSize-r,result:s}},t.timeout=function(t,e){let r;const s=new Promise(s=>{r=setTimeout(()=>{e&&e(),s()},t)});return{id:r,clear:()=>clearTimeout(r),promise:s}},t.trimmed_mean=(t,e)=>{let r=[...t].sort((t,e)=>t-e).slice(e,t.length-e);return l(...r)},t.trunc=(...t)=>n(t=>t.isComplex?.()?new t.constructor(Math.trunc(t.a),Math.trunc(t.b)):Math.trunc(t),...t),t.useDerived=function(t,e){let r=t(...e.map(t=>t().value));const s=new Set;return e.forEach(n=>{n()._subscribe(()=>{{const n=t(...e.map(t=>t().value));n!==r&&(r=n,s.forEach(t=>t(r)))}})}),()=>({value:r,isStateGetter:()=>!0,_subscribe:t=>s.add(t)})},t.useEventEmitter=$e,t.useIPC=J,t.useLocalStorage=(t,e,r=!0)=>new Q(localStorage,t,e,r),t.useMediaQuery=(t,e)=>new Le(t,e),t.useQueryParams=function(){const t=()=>qe();return[t,(e,r=!0)=>{const s=t(),n="function"==typeof e?e(s):e,i=r?{...s,...n}:n,a=new URLSearchParams(i).toString();window.history.pushState({},"",`${window.location.pathname}${a?`?${a}`:""}`),window.dispatchEvent(new CustomEvent("queryparamschange",{detail:i}))}]},t.useReactive=t=>Pe(t=>{const e=at(t);return{get:e[0],set:e[1]}},t),t.useRoot=(t,e={})=>new Ue(t,e),t.useSessionStorage=(t,e,r=!0)=>new Q(sessionStorage,t,e,r),t.useState=at,t.useThread=(t,e,r=[],s=!0)=>(new ze).call(t,e,r,s),t.useTitle=(t,e=!0)=>new Ne(t,e),t.variance=u,t.wait=t=>new Promise(e=>setTimeout(e,t)),t.waitElm=t=>new Promise(e=>{if(t)return e(t);const r=new MutationObserver(()=>{t&&(e(t),r.disconnect())});r.observe(document?.body,{childList:!0,subtree:!0})}),t.waitForUIElm=t=>new Promise(e=>{if(t.element)return e(t.element);const r=new MutationObserver(()=>{t.element&&(e(t.element),r.disconnect())});r.observe(document?.body,{childList:!0,subtree:!0})}),t.waitForUIElmSync=(t,e=2e3)=>{const r=Date.now();for(;Date.now()-r<e;)if(t.element)return t.element},t.watchQueryParams=function(t){let e=location.search;const r=()=>{const r=location.search;r!==e&&(e=r,t(qe()))};window.addEventListener("popstate",r);const s=history.pushState;history.pushState=function(...t){s.apply(this,t),r()};const n=history.replaceState;return history.replaceState=function(...t){n.apply(this,t),r()},t(qe()),()=>{window.removeEventListener("popstate",r)}},t.weighted_mean=(t,e)=>{let r=0,s=0;for(let n=0;n<t.length;n++)r+=t[n]*e[n],s+=e[n];return r/s},t.weighted_std=(t,e)=>Math.sqrt(p(t,e)),t.weighted_variance=p,t.winsorized_mean=(t,e)=>{let r=[...t].sort((t,e)=>t-e),s=r[e],n=r[r.length-e-1];return r=r.map(t=>Math.max(s,Math.min(n,t))),l(r)},t.wma=(t,e)=>{let r=e.length,s=e.reduce((t,e)=>t+e,0),n=[];for(let i=0;i<=t.length-r;i++){let a=0;for(let s=0;s<r;s++)a+=t[i+s]*e[s];n.push(a/s)}return n},t.xnor=(...t)=>F($(...t)),t.xor=$});