@genome-spy/app 0.30.3 → 0.32.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.
Files changed (3) hide show
  1. package/dist/index.js +270 -83
  2. package/package.json +3 -3
  3. package/LICENSE +0 -21
package/dist/index.js CHANGED
@@ -1,21 +1,21 @@
1
- (function(U,R){typeof exports=="object"&&typeof module<"u"?R(exports):typeof define=="function"&&define.amd?define(["exports"],R):(U=typeof globalThis<"u"?globalThis:U||self,R(U.genomeSpyApp={}))})(this,function(U){var Ho,Fd,si,ci,$e,ui,Go,Pd,Et,Cn,oc,Zb,ac,qb,br,Jo,Qo,zd,Vo,Rd,Yo,jd,sc,Kb,_o,li,Yt,An,Wo,cc,Jb,uc,$b,Xo,Ud,lc,e2,fc,t2,Zo,Hd;"use strict";var zN=Object.defineProperty;var RN=(U,R,ce)=>R in U?zN(U,R,{enumerable:!0,configurable:!0,writable:!0,value:ce}):U[R]=ce;var hc=(U,R,ce)=>(RN(U,typeof R!="symbol"?R+"":R,ce),ce),Od=(U,R,ce)=>{if(!R.has(U))throw TypeError("Cannot "+ce)};var j=(U,R,ce)=>(Od(U,R,"read from private field"),ce?ce.call(U):R.get(U)),$=(U,R,ce)=>{if(R.has(U))throw TypeError("Cannot add the same private member more than once");R instanceof WeakSet?R.add(U):R.set(U,ce)},et=(U,R,ce,Sn)=>(Od(U,R,"write to private field"),Sn?Sn.call(U,ce):R.set(U,ce),ce),_b=(U,R,ce,Sn)=>({set _(pc){et(U,R,pc,ce)},get _(){return j(U,R,Sn)}}),se=(U,R,ce)=>(Od(U,R,"access private method"),ce);function R(t,e,n){return t.fields=e||[],t.fname=n,t}function ce(t){return t==null?null:t.fname}function Sn(t){return t==null?null:t.fields}function pc(t){return t.length===1?n2(t[0]):r2(t)}const n2=t=>function(e){return e[t]},r2=t=>{const e=t.length;return function(n){for(let r=0;r<e;++r)n=n[t[r]];return n}};function ae(t){throw Error(t)}function i2(t){const e=[],n=t.length;let r=null,i=0,o="",a,s,c;t=t+"";function u(){e.push(o+t.substring(a,s)),o="",a=s+1}for(a=s=0;s<n;++s)if(c=t[s],c==="\\")o+=t.substring(a,s),o+=t.substring(++s,++s),a=s;else if(c===r)u(),r=null,i=-1;else{if(r)continue;a===i&&c==='"'||a===i&&c==="'"?(a=s+1,r=c):c==="."&&!i?s>a?u():a=s+1:c==="["?(s>a&&u(),i=a=s+1):c==="]"&&(i||ae("Access path missing open bracket: "+t),i>0&&u(),i=0,a=s+1)}return i&&ae("Access path missing closing bracket: "+t),r&&ae("Access path missing closing quote: "+t),s>a&&(s++,u()),e}function $o(t,e,n){const r=i2(t);return t=r.length===1?r[0]:t,R((n&&n.get||pc)(r),[t],e||t)}$o("id");const ea=R(t=>t,[],"identity");R(()=>0,[],"zero"),R(()=>1,[],"one"),R(()=>!0,[],"true"),R(()=>!1,[],"false");var _e=Array.isArray;function ze(t){return t===Object(t)}function tt(t){return t[t.length-1]}function fi(t){return t==null||t===""?null:+t}const Gd=t=>e=>t*Math.exp(e),Qd=t=>e=>Math.log(t*e),o2=t=>e=>Math.sign(e)*Math.log1p(Math.abs(e/t)),a2=t=>e=>Math.sign(e)*Math.expm1(Math.abs(e))*t,ta=t=>e=>e<0?-Math.pow(-e,t):Math.pow(e,t);function mc(t,e,n,r){const i=n(t[0]),o=n(tt(t)),a=(o-i)*e;return[r(i-a),r(o-a)]}function s2(t,e){return mc(t,e,fi,ea)}function c2(t,e){var n=Math.sign(t[0]);return mc(t,e,Qd(n),Gd(n))}function u2(t,e,n){return mc(t,e,ta(n),ta(1/n))}function na(t,e,n,r,i){const o=r(t[0]),a=r(tt(t)),s=e!=null?r(e):(o+a)/2;return[i(s+(o-s)*n),i(s+(a-s)*n)]}function gc(t,e,n){return na(t,e,n,fi,ea)}function Vd(t,e,n){const r=Math.sign(t[0]);return na(t,e,n,Qd(r),Gd(r))}function yc(t,e,n,r){return na(t,e,n,ta(r),ta(1/r))}function l2(t,e,n,r){return na(t,e,n,o2(r),a2(r))}function vc(t){return t!=null?_e(t)?t:[t]:[]}function f2(t,e,n){let r=t[0],i=t[1],o;return i<r&&(o=i,i=r,r=o),o=i-r,o>=n-e?[e,n]:[r=Math.min(Math.max(r,e),n-o),r+o]}function Ie(t){return typeof t=="function"}const d2="descending";function Yd(t,e,n){n=n||{},e=vc(e)||[];const r=[],i=[],o={},a=n.comparator||h2;return vc(t).forEach((s,c)=>{s!=null&&(r.push(e[c]===d2?-1:1),i.push(s=Ie(s)?s:$o(s,null,n)),(Sn(s)||[]).forEach(u=>o[u]=1))}),i.length===0?null:R(a(i,r),Object.keys(o))}const _d=(t,e)=>(t<e||t==null)&&e!=null?-1:(t>e||e==null)&&t!=null?1:(e=e instanceof Date?+e:e,(t=t instanceof Date?+t:t)!==t&&e===e?-1:e!==e&&t===t?1:0),h2=(t,e)=>t.length===1?p2(t[0],e[0]):m2(t,e,t.length),p2=(t,e)=>function(n,r){return _d(t(n),t(r))*e},m2=(t,e,n)=>(e.push(0),function(r,i){let o,a=0,s=-1;for(;a===0&&++s<n;)o=t[s],a=_d(o(r),o(i));return a*e[s]});function g2(t){return Ie(t)?t:()=>t}function bc(t){for(let e,n,r=1,i=arguments.length;r<i;++r){e=arguments[r];for(n in e)t[n]=e[n]}return t}const y2=Object.prototype.hasOwnProperty;function En(t,e){return y2.call(t,e)}function ra(t){return typeof t=="boolean"}function v2(t){return Object.prototype.toString.call(t)==="[object Date]"}function b2(t){return t&&Ie(t[Symbol.iterator])}function le(t){return typeof t=="number"}function ne(t){return typeof t=="string"}function A2(t,e){const n=t[0],r=tt(t),i=+e;return i?i===1?r:n+i*(r-n):n}function ia(t){return t&&tt(t)-t[0]||0}function oa(t){return _e(t)?"["+t.map(oa)+"]":ze(t)||ne(t)?JSON.stringify(t).replace("\u2028","\\u2028").replace("\u2029","\\u2029"):t}function x2(t){return t==null||t===""?null:!t||t==="false"||t==="0"?!1:!!t}const w2=t=>le(t)||v2(t)?t:Date.parse(t);function C2(t,e){return e=e||w2,t==null||t===""?null:e(t)}function S2(t){return t==null||t===""?null:t+""}function aa(t){const e={},n=t.length;for(let r=0;r<n;++r)e[t[r]]=!0;return e}var Wd={},Ac={},xc=34,di=10,wc=13;function Xd(t){return new Function("d","return {"+t.map(function(e,n){return JSON.stringify(e)+": d["+n+'] || ""'}).join(",")+"}")}function E2(t,e){var n=Xd(t);return function(r,i){return e(n(r),i,t)}}function Zd(t){var e=Object.create(null),n=[];return t.forEach(function(r){for(var i in r)i in e||n.push(e[i]=i)}),n}function ke(t,e){var n=t+"",r=n.length;return r<e?new Array(e-r+1).join(0)+n:n}function D2(t){return t<0?"-"+ke(-t,6):t>9999?"+"+ke(t,6):ke(t,4)}function M2(t){var e=t.getUTCHours(),n=t.getUTCMinutes(),r=t.getUTCSeconds(),i=t.getUTCMilliseconds();return isNaN(t)?"Invalid Date":D2(t.getUTCFullYear())+"-"+ke(t.getUTCMonth()+1,2)+"-"+ke(t.getUTCDate(),2)+(i?"T"+ke(e,2)+":"+ke(n,2)+":"+ke(r,2)+"."+ke(i,3)+"Z":r?"T"+ke(e,2)+":"+ke(n,2)+":"+ke(r,2)+"Z":n||e?"T"+ke(e,2)+":"+ke(n,2)+"Z":"")}function qd(t){var e=new RegExp('["'+t+`
2
- \r]`),n=t.charCodeAt(0);function r(l,d){var p,h,m=i(l,function(g,y){if(p)return p(g,y-1);h=g,p=d?E2(g,d):Xd(g)});return m.columns=h||[],m}function i(l,d){var p=[],h=l.length,m=0,g=0,y,b=h<=0,w=!1;l.charCodeAt(h-1)===di&&--h,l.charCodeAt(h-1)===wc&&--h;function C(){if(b)return Ac;if(w)return w=!1,Wd;var v,A=m,D;if(l.charCodeAt(A)===xc){for(;m++<h&&l.charCodeAt(m)!==xc||l.charCodeAt(++m)===xc;);return(v=m)>=h?b=!0:(D=l.charCodeAt(m++))===di?w=!0:D===wc&&(w=!0,l.charCodeAt(m)===di&&++m),l.slice(A+1,v-1).replace(/""/g,'"')}for(;m<h;){if((D=l.charCodeAt(v=m++))===di)w=!0;else if(D===wc)w=!0,l.charCodeAt(m)===di&&++m;else if(D!==n)continue;return l.slice(A,v)}return b=!0,l.slice(A,h)}for(;(y=C())!==Ac;){for(var x=[];y!==Wd&&y!==Ac;)x.push(y),y=C();d&&(x=d(x,g++))==null||p.push(x)}return p}function o(l,d){return l.map(function(p){return d.map(function(h){return f(p[h])}).join(t)})}function a(l,d){return d==null&&(d=Zd(l)),[d.map(f).join(t)].concat(o(l,d)).join(`
3
- `)}function s(l,d){return d==null&&(d=Zd(l)),o(l,d).join(`
4
- `)}function c(l){return l.map(u).join(`
5
- `)}function u(l){return l.map(f).join(t)}function f(l){return l==null?"":l instanceof Date?M2(l):e.test(l+="")?'"'+l.replace(/"/g,'""')+'"':l}return{parse:r,parseRows:i,format:a,formatBody:s,formatRows:c,formatRow:u,formatValue:f}}var T2=qd(" "),I2=T2.parseRows;function k2(t){return t}function N2(t){if(t==null)return k2;var e,n,r=t.scale[0],i=t.scale[1],o=t.translate[0],a=t.translate[1];return function(s,c){c||(e=n=0);var u=2,f=s.length,l=new Array(f);for(l[0]=(e+=s[0])*r+o,l[1]=(n+=s[1])*i+a;u<f;)l[u]=s[u],++u;return l}}function L2(t,e){for(var n,r=t.length,i=r-e;i<--r;)n=t[i],t[i++]=t[r],t[r]=n}function B2(t,e){return typeof e=="string"&&(e=t.objects[e]),e.type==="GeometryCollection"?{type:"FeatureCollection",features:e.geometries.map(function(n){return Kd(t,n)})}:Kd(t,e)}function Kd(t,e){var n=e.id,r=e.bbox,i=e.properties==null?{}:e.properties,o=Jd(t,e);return n==null&&r==null?{type:"Feature",properties:i,geometry:o}:r==null?{type:"Feature",id:n,properties:i,geometry:o}:{type:"Feature",id:n,bbox:r,properties:i,geometry:o}}function Jd(t,e){var n=N2(t.transform),r=t.arcs;function i(f,l){l.length&&l.pop();for(var d=r[f<0?~f:f],p=0,h=d.length;p<h;++p)l.push(n(d[p],p));f<0&&L2(l,h)}function o(f){return n(f)}function a(f){for(var l=[],d=0,p=f.length;d<p;++d)i(f[d],l);return l.length<2&&l.push(l[0]),l}function s(f){for(var l=a(f);l.length<4;)l.push(l[0]);return l}function c(f){return f.map(s)}function u(f){var l=f.type,d;switch(l){case"GeometryCollection":return{type:l,geometries:f.geometries.map(u)};case"Point":d=o(f.coordinates);break;case"MultiPoint":d=f.coordinates.map(o);break;case"LineString":d=a(f.arcs);break;case"MultiLineString":d=f.arcs.map(a);break;case"Polygon":d=c(f.arcs);break;case"MultiPolygon":d=f.arcs.map(c);break;default:return null}return{type:l,coordinates:d}}return u(e)}function O2(t,e){var n={},r={},i={},o=[],a=-1;e.forEach(function(u,f){var l=t.arcs[u<0?~u:u],d;l.length<3&&!l[1][0]&&!l[1][1]&&(d=e[++a],e[a]=u,e[f]=d)}),e.forEach(function(u){var f=s(u),l=f[0],d=f[1],p,h;if(p=i[l])if(delete i[p.end],p.push(u),p.end=d,h=r[d]){delete r[h.start];var m=h===p?p:p.concat(h);r[m.start=p.start]=i[m.end=h.end]=m}else r[p.start]=i[p.end]=p;else if(p=r[d])if(delete r[p.start],p.unshift(u),p.start=l,h=i[l]){delete i[h.end];var g=h===p?p:h.concat(p);r[g.start=h.start]=i[g.end=p.end]=g}else r[p.start]=i[p.end]=p;else p=[u],r[p.start=l]=i[p.end=d]=p});function s(u){var f=t.arcs[u<0?~u:u],l=f[0],d;return t.transform?(d=[0,0],f.forEach(function(p){d[0]+=p[0],d[1]+=p[1]})):d=f[f.length-1],u<0?[d,l]:[l,d]}function c(u,f){for(var l in u){var d=u[l];delete f[d.start],delete d.start,delete d.end,d.forEach(function(p){n[p<0?~p:p]=1}),o.push(d)}}return c(i,r),c(r,i),e.forEach(function(u){n[u<0?~u:u]||o.push([u])}),o}function F2(t){return Jd(t,P2.apply(this,arguments))}function P2(t,e,n){var r,i,o;if(arguments.length>1)r=z2(t,e,n);else for(i=0,r=new Array(o=t.arcs.length);i<o;++i)r[i]=i;return{type:"MultiLineString",arcs:O2(t,r)}}function z2(t,e,n){var r=[],i=[],o;function a(l){var d=l<0?~l:l;(i[d]||(i[d]=[])).push({i:l,g:o})}function s(l){l.forEach(a)}function c(l){l.forEach(s)}function u(l){l.forEach(c)}function f(l){switch(o=l,l.type){case"GeometryCollection":l.geometries.forEach(f);break;case"LineString":s(l.arcs);break;case"MultiLineString":case"Polygon":c(l.arcs);break;case"MultiPolygon":u(l.arcs);break}}return f(e),i.forEach(n==null?function(l){r.push(l[0].i)}:function(l){n(l[0].g,l[l.length-1].g)&&r.push(l[0].i)}),r}function Dn(t,e){return t==null||e==null?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function R2(t,e){return t==null||e==null?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function sa(t){let e,n,r;t.length!==2?(e=Dn,n=(s,c)=>Dn(t(s),c),r=(s,c)=>t(s)-c):(e=t===Dn||t===R2?t:j2,n=t,r=t);function i(s,c,u=0,f=s.length){if(u<f){if(e(c,c)!==0)return f;do{const l=u+f>>>1;n(s[l],c)<0?u=l+1:f=l}while(u<f)}return u}function o(s,c,u=0,f=s.length){if(u<f){if(e(c,c)!==0)return f;do{const l=u+f>>>1;n(s[l],c)<=0?u=l+1:f=l}while(u<f)}return u}function a(s,c,u=0,f=s.length){const l=i(s,c,u,f-1);return l>u&&r(s[l-1],c)>-r(s[l],c)?l-1:l}return{left:i,center:a,right:o}}function j2(){return 0}function $d(t){return t===null?NaN:+t}const eh=sa(Dn),Cc=eh.right;eh.left,sa($d).center;const Mn=Cc;function U2(t,e){let n=0;if(e===void 0)for(let r of t)r!=null&&(r=+r)>=r&&++n;else{let r=-1;for(let i of t)(i=e(i,++r,t))!=null&&(i=+i)>=i&&++n}return n}function ca(t,e){let n,r;if(e===void 0)for(const i of t)i!=null&&(n===void 0?i>=i&&(n=r=i):(n>i&&(n=i),r<i&&(r=i)));else{let i=-1;for(let o of t)(o=e(o,++i,t))!=null&&(n===void 0?o>=o&&(n=r=o):(n>o&&(n=o),r<o&&(r=o)))}return[n,r]}class Tn extends Map{constructor(e,n=Q2){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:n}}),e!=null)for(const[r,i]of e)this.set(r,i)}get(e){return super.get(th(this,e))}has(e){return super.has(th(this,e))}set(e,n){return super.set(H2(this,e),n)}delete(e){return super.delete(G2(this,e))}}function th({_intern:t,_key:e},n){const r=e(n);return t.has(r)?t.get(r):n}function H2({_intern:t,_key:e},n){const r=e(n);return t.has(r)?t.get(r):(t.set(r,n),n)}function G2({_intern:t,_key:e},n){const r=e(n);return t.has(r)&&(n=t.get(r),t.delete(r)),n}function Q2(t){return t!==null&&typeof t=="object"?t.valueOf():t}function hi(t){return t}function pi(t,...e){return Sc(t,hi,hi,e)}function V2(t,...e){return Sc(t,Array.from,hi,e)}function Y2(t,e,...n){return Sc(t,hi,e,n)}function Sc(t,e,n,r){return function i(o,a){if(a>=r.length)return n(o);const s=new Tn,c=r[a++];let u=-1;for(const f of o){const l=c(f,++u,o),d=s.get(l);d?d.push(f):s.set(l,[f])}for(const[f,l]of s)s.set(f,i(l,a));return e(s)}(t,0)}function _2(t,e){return Array.from(e,n=>t[n])}function W2(t,...e){if(typeof t[Symbol.iterator]!="function")throw new TypeError("values is not iterable");t=Array.from(t);let[n]=e;if(n&&n.length!==2||e.length>1){const r=Uint32Array.from(t,(i,o)=>o);return e.length>1?(e=e.map(i=>t.map(i)),r.sort((i,o)=>{for(const a of e){const s=Ec(a[i],a[o]);if(s)return s}})):(n=t.map(n),r.sort((i,o)=>Ec(n[i],n[o]))),_2(t,r)}return t.sort(X2(n))}function X2(t=Dn){if(t===Dn)return Ec;if(typeof t!="function")throw new TypeError("compare is not a function");return(e,n)=>{const r=t(e,n);return r||r===0?r:(t(n,n)===0)-(t(e,e)===0)}}function Ec(t,e){return(t==null||!(t>=t))-(e==null||!(e>=e))||(t<e?-1:t>e?1:0)}var Z2=Array.prototype,q2=Z2.slice;function ua(t){return()=>t}var Dc=Math.sqrt(50),Mc=Math.sqrt(10),Tc=Math.sqrt(2);function mi(t,e,n){var r,i=-1,o,a,s;if(e=+e,t=+t,n=+n,t===e&&n>0)return[t];if((r=e<t)&&(o=t,t=e,e=o),(s=gi(t,e,n))===0||!isFinite(s))return[];if(s>0){let c=Math.round(t/s),u=Math.round(e/s);for(c*s<t&&++c,u*s>e&&--u,a=new Array(o=u-c+1);++i<o;)a[i]=(c+i)*s}else{s=-s;let c=Math.round(t*s),u=Math.round(e*s);for(c/s<t&&++c,u/s>e&&--u,a=new Array(o=u-c+1);++i<o;)a[i]=(c+i)/s}return r&&a.reverse(),a}function gi(t,e,n){var r=(e-t)/Math.max(0,n),i=Math.floor(Math.log(r)/Math.LN10),o=r/Math.pow(10,i);return i>=0?(o>=Dc?10:o>=Mc?5:o>=Tc?2:1)*Math.pow(10,i):-Math.pow(10,-i)/(o>=Dc?10:o>=Mc?5:o>=Tc?2:1)}function In(t,e,n){var r=Math.abs(e-t)/Math.max(0,n),i=Math.pow(10,Math.floor(Math.log(r)/Math.LN10)),o=r/i;return o>=Dc?i*=10:o>=Mc?i*=5:o>=Tc&&(i*=2),e<t?-i:i}function K2(t,e,n){let r;for(;;){const i=gi(t,e,n);if(i===r||i===0||!isFinite(i))return[t,e];i>0?(t=Math.floor(t/i)*i,e=Math.ceil(e/i)*i):i<0&&(t=Math.ceil(t*i)/i,e=Math.floor(e*i)/i),r=i}}function J2(t){return Math.ceil(Math.log(U2(t))/Math.LN2)+1}function $2(){var t=hi,e=ca,n=J2;function r(i){Array.isArray(i)||(i=Array.from(i));var o,a=i.length,s,c,u=new Array(a);for(o=0;o<a;++o)u[o]=t(i[o],o,i);var f=e(u),l=f[0],d=f[1],p=n(u,l,d);if(!Array.isArray(p)){const y=d,b=+p;if(e===ca&&([l,d]=K2(l,d,b)),p=mi(l,d,b),p[0]<=l&&(c=gi(l,d,b)),p[p.length-1]>=d)if(y>=d&&e===ca){const w=gi(l,d,b);isFinite(w)&&(w>0?d=(Math.floor(d/w)+1)*w:w<0&&(d=(Math.ceil(d*-w)+1)/-w))}else p.pop()}for(var h=p.length;p[0]<=l;)p.shift(),--h;for(;p[h-1]>d;)p.pop(),--h;var m=new Array(h+1),g;for(o=0;o<=h;++o)g=m[o]=[],g.x0=o>0?p[o-1]:l,g.x1=o<h?p[o]:d;if(isFinite(c)){if(c>0)for(o=0;o<a;++o)(s=u[o])!=null&&l<=s&&s<=d&&m[Math.min(h,Math.floor((s-l)/c))].push(i[o]);else if(c<0){for(o=0;o<a;++o)if((s=u[o])!=null&&l<=s&&s<=d){const y=Math.floor((l-s)*c);m[Math.min(h,y+(p[y]<=s))].push(i[o])}}}else for(o=0;o<a;++o)(s=u[o])!=null&&l<=s&&s<=d&&m[Mn(p,s,0,h)].push(i[o]);return m}return r.value=function(i){return arguments.length?(t=typeof i=="function"?i:ua(i),r):t},r.domain=function(i){return arguments.length?(e=typeof i=="function"?i:ua([i[0],i[1]]),r):e},r.thresholds=function(i){return arguments.length?(n=typeof i=="function"?i:Array.isArray(i)?ua(q2.call(i)):ua(i),r):n},r}function Ic(t,e,n=$d){if(r=t.length){if((e=+e)<=0||r<2)return+n(t[0],0,t);if(e>=1)return+n(t[r-1],r-1,t);var r,i=(r-1)*e,o=Math.floor(i),a=+n(t[o],o,t),s=+n(t[o+1],o+1,t);return a+(s-a)*(i-o)}}function _t(t,e,n){t=+t,e=+e,n=(i=arguments.length)<2?(e=t,t=0,1):i<3?1:+n;for(var r=-1,i=Math.max(0,Math.ceil((e-t)/n))|0,o=new Array(i);++r<i;)o[r]=t+r*n;return o}function la(t,e){let n=0;if(e===void 0)for(let r of t)(r=+r)&&(n+=r);else{let r=-1;for(let i of t)(i=+e(i,++r,t))&&(n+=i)}return n}function eA(t){return Math.abs(t=Math.round(t))>=1e21?t.toLocaleString("en").replace(/,/g,""):t.toString(10)}function fa(t,e){if((n=(t=e?t.toExponential(e-1):t.toExponential()).indexOf("e"))<0)return null;var n,r=t.slice(0,n);return[r.length>1?r[0]+r.slice(2):r,+t.slice(n+1)]}function xr(t){return t=fa(Math.abs(t)),t?t[1]:NaN}function tA(t,e){return function(n,r){for(var i=n.length,o=[],a=0,s=t[0],c=0;i>0&&s>0&&(c+s+1>r&&(s=Math.max(1,r-c)),o.push(n.substring(i-=s,i+s)),!((c+=s+1)>r));)s=t[a=(a+1)%t.length];return o.reverse().join(e)}}function nA(t){return function(e){return e.replace(/[0-9]/g,function(n){return t[+n]})}}var rA=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Wt(t){if(!(e=rA.exec(t)))throw new Error("invalid format: "+t);var e;return new kc({fill:e[1],align:e[2],sign:e[3],symbol:e[4],zero:e[5],width:e[6],comma:e[7],precision:e[8]&&e[8].slice(1),trim:e[9],type:e[10]})}Wt.prototype=kc.prototype;function kc(t){this.fill=t.fill===void 0?" ":t.fill+"",this.align=t.align===void 0?">":t.align+"",this.sign=t.sign===void 0?"-":t.sign+"",this.symbol=t.symbol===void 0?"":t.symbol+"",this.zero=!!t.zero,this.width=t.width===void 0?void 0:+t.width,this.comma=!!t.comma,this.precision=t.precision===void 0?void 0:+t.precision,this.trim=!!t.trim,this.type=t.type===void 0?"":t.type+""}kc.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function iA(t){e:for(var e=t.length,n=1,r=-1,i;n<e;++n)switch(t[n]){case".":r=i=n;break;case"0":r===0&&(r=n),i=n;break;default:if(!+t[n])break e;r>0&&(r=0);break}return r>0?t.slice(0,r)+t.slice(i+1):t}var nh;function oA(t,e){var n=fa(t,e);if(!n)return t+"";var r=n[0],i=n[1],o=i-(nh=Math.max(-8,Math.min(8,Math.floor(i/3)))*3)+1,a=r.length;return o===a?r:o>a?r+new Array(o-a+1).join("0"):o>0?r.slice(0,o)+"."+r.slice(o):"0."+new Array(1-o).join("0")+fa(t,Math.max(0,e+o-1))[0]}function rh(t,e){var n=fa(t,e);if(!n)return t+"";var r=n[0],i=n[1];return i<0?"0."+new Array(-i).join("0")+r:r.length>i+1?r.slice(0,i+1)+"."+r.slice(i+1):r+new Array(i-r.length+2).join("0")}const ih={"%":(t,e)=>(t*100).toFixed(e),b:t=>Math.round(t).toString(2),c:t=>t+"",d:eA,e:(t,e)=>t.toExponential(e),f:(t,e)=>t.toFixed(e),g:(t,e)=>t.toPrecision(e),o:t=>Math.round(t).toString(8),p:(t,e)=>rh(t*100,e),r:rh,s:oA,X:t=>Math.round(t).toString(16).toUpperCase(),x:t=>Math.round(t).toString(16)};function oh(t){return t}var ah=Array.prototype.map,sh=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function aA(t){var e=t.grouping===void 0||t.thousands===void 0?oh:tA(ah.call(t.grouping,Number),t.thousands+""),n=t.currency===void 0?"":t.currency[0]+"",r=t.currency===void 0?"":t.currency[1]+"",i=t.decimal===void 0?".":t.decimal+"",o=t.numerals===void 0?oh:nA(ah.call(t.numerals,String)),a=t.percent===void 0?"%":t.percent+"",s=t.minus===void 0?"−":t.minus+"",c=t.nan===void 0?"NaN":t.nan+"";function u(l){l=Wt(l);var d=l.fill,p=l.align,h=l.sign,m=l.symbol,g=l.zero,y=l.width,b=l.comma,w=l.precision,C=l.trim,x=l.type;x==="n"?(b=!0,x="g"):ih[x]||(w===void 0&&(w=12),C=!0,x="g"),(g||d==="0"&&p==="=")&&(g=!0,d="0",p="=");var v=m==="$"?n:m==="#"&&/[boxX]/.test(x)?"0"+x.toLowerCase():"",A=m==="$"?r:/[%p]/.test(x)?a:"",D=ih[x],k=/[defgprs%]/.test(x);w=w===void 0?6:/[gprs]/.test(x)?Math.max(1,Math.min(21,w)):Math.max(0,Math.min(20,w));function O(T){var B=v,G=A,Q,De,xn;if(x==="c")G=D(T)+G,T="";else{T=+T;var wn=T<0||1/T<0;if(T=isNaN(T)?c:D(Math.abs(T),w),C&&(T=iA(T)),wn&&+T==0&&h!=="+"&&(wn=!1),B=(wn?h==="("?h:s:h==="-"||h==="("?"":h)+B,G=(x==="s"?sh[8+nh/3]:"")+G+(wn&&h==="("?")":""),k){for(Q=-1,De=T.length;++Q<De;)if(xn=T.charCodeAt(Q),48>xn||xn>57){G=(xn===46?i+T.slice(Q+1):T.slice(Q))+G,T=T.slice(0,Q);break}}}b&&!g&&(T=e(T,1/0));var _=B.length+T.length+G.length,Qe=_<y?new Array(y-_+1).join(d):"";switch(b&&g&&(T=e(Qe+T,Qe.length?y-G.length:1/0),Qe=""),p){case"<":T=B+T+G+Qe;break;case"=":T=B+Qe+T+G;break;case"^":T=Qe.slice(0,_=Qe.length>>1)+B+T+G+Qe.slice(_);break;default:T=Qe+B+T+G;break}return o(T)}return O.toString=function(){return l+""},O}function f(l,d){var p=u((l=Wt(l),l.type="f",l)),h=Math.max(-8,Math.min(8,Math.floor(xr(d)/3)))*3,m=Math.pow(10,-h),g=sh[8+h/3];return function(y){return p(m*y)+g}}return{format:u,formatPrefix:f}}var da,de,Nc;sA({thousands:",",grouping:[3],currency:["$",""]});function sA(t){return da=aA(t),de=da.format,Nc=da.formatPrefix,da}function ch(t){return Math.max(0,-xr(Math.abs(t)))}function uh(t,e){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(xr(e)/3)))*3-xr(Math.abs(t)))}function lh(t,e){return t=Math.abs(t),e=Math.abs(e)-t,Math.max(0,xr(e)-xr(t))+1}var Lc=new Date,Bc=new Date;function me(t,e,n,r){function i(o){return t(o=arguments.length===0?new Date:new Date(+o)),o}return i.floor=function(o){return t(o=new Date(+o)),o},i.ceil=function(o){return t(o=new Date(o-1)),e(o,1),t(o),o},i.round=function(o){var a=i(o),s=i.ceil(o);return o-a<s-o?a:s},i.offset=function(o,a){return e(o=new Date(+o),a==null?1:Math.floor(a)),o},i.range=function(o,a,s){var c=[],u;if(o=i.ceil(o),s=s==null?1:Math.floor(s),!(o<a)||!(s>0))return c;do c.push(u=new Date(+o)),e(o,s),t(o);while(u<o&&o<a);return c},i.filter=function(o){return me(function(a){if(a>=a)for(;t(a),!o(a);)a.setTime(a-1)},function(a,s){if(a>=a)if(s<0)for(;++s<=0;)for(;e(a,-1),!o(a););else for(;--s>=0;)for(;e(a,1),!o(a););})},n&&(i.count=function(o,a){return Lc.setTime(+o),Bc.setTime(+a),t(Lc),t(Bc),Math.floor(n(Lc,Bc))},i.every=function(o){return o=Math.floor(o),!isFinite(o)||!(o>0)?null:o>1?i.filter(r?function(a){return r(a)%o===0}:function(a){return i.count(0,a)%o===0}):i}),i}var ha=me(function(){},function(t,e){t.setTime(+t+e)},function(t,e){return e-t});ha.every=function(t){return t=Math.floor(t),!isFinite(t)||!(t>0)?null:t>1?me(function(e){e.setTime(Math.floor(e/t)*t)},function(e,n){e.setTime(+e+n*t)},function(e,n){return(n-e)/t}):ha};const Oc=ha;ha.range;const Dt=1e3,We=Dt*60,Mt=We*60,kn=Mt*24,Fc=kn*7,fh=kn*30,Pc=kn*365;var dh=me(function(t){t.setTime(t-t.getMilliseconds())},function(t,e){t.setTime(+t+e*Dt)},function(t,e){return(e-t)/Dt},function(t){return t.getUTCSeconds()});const Xt=dh;dh.range;var hh=me(function(t){t.setTime(t-t.getMilliseconds()-t.getSeconds()*Dt)},function(t,e){t.setTime(+t+e*We)},function(t,e){return(e-t)/We},function(t){return t.getMinutes()});const zc=hh;hh.range;var ph=me(function(t){t.setTime(t-t.getMilliseconds()-t.getSeconds()*Dt-t.getMinutes()*We)},function(t,e){t.setTime(+t+e*Mt)},function(t,e){return(e-t)/Mt},function(t){return t.getHours()});const Rc=ph;ph.range;var mh=me(t=>t.setHours(0,0,0,0),(t,e)=>t.setDate(t.getDate()+e),(t,e)=>(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*We)/kn,t=>t.getDate()-1);const Nn=mh;mh.range;function Ln(t){return me(function(e){e.setDate(e.getDate()-(e.getDay()+7-t)%7),e.setHours(0,0,0,0)},function(e,n){e.setDate(e.getDate()+n*7)},function(e,n){return(n-e-(n.getTimezoneOffset()-e.getTimezoneOffset())*We)/Fc})}var yi=Ln(0),pa=Ln(1),cA=Ln(2),uA=Ln(3),wr=Ln(4),lA=Ln(5),fA=Ln(6);yi.range,pa.range,cA.range,uA.range,wr.range,lA.range,fA.range;var gh=me(function(t){t.setDate(1),t.setHours(0,0,0,0)},function(t,e){t.setMonth(t.getMonth()+e)},function(t,e){return e.getMonth()-t.getMonth()+(e.getFullYear()-t.getFullYear())*12},function(t){return t.getMonth()});const ma=gh;gh.range;var jc=me(function(t){t.setMonth(0,1),t.setHours(0,0,0,0)},function(t,e){t.setFullYear(t.getFullYear()+e)},function(t,e){return e.getFullYear()-t.getFullYear()},function(t){return t.getFullYear()});jc.every=function(t){return!isFinite(t=Math.floor(t))||!(t>0)?null:me(function(e){e.setFullYear(Math.floor(e.getFullYear()/t)*t),e.setMonth(0,1),e.setHours(0,0,0,0)},function(e,n){e.setFullYear(e.getFullYear()+n*t)})};const Zt=jc;jc.range;var yh=me(function(t){t.setUTCSeconds(0,0)},function(t,e){t.setTime(+t+e*We)},function(t,e){return(e-t)/We},function(t){return t.getUTCMinutes()});const Uc=yh;yh.range;var vh=me(function(t){t.setUTCMinutes(0,0,0)},function(t,e){t.setTime(+t+e*Mt)},function(t,e){return(e-t)/Mt},function(t){return t.getUTCHours()});const Hc=vh;vh.range;var bh=me(function(t){t.setUTCHours(0,0,0,0)},function(t,e){t.setUTCDate(t.getUTCDate()+e)},function(t,e){return(e-t)/kn},function(t){return t.getUTCDate()-1});const Bn=bh;bh.range;function On(t){return me(function(e){e.setUTCDate(e.getUTCDate()-(e.getUTCDay()+7-t)%7),e.setUTCHours(0,0,0,0)},function(e,n){e.setUTCDate(e.getUTCDate()+n*7)},function(e,n){return(n-e)/Fc})}var vi=On(0),ga=On(1),dA=On(2),hA=On(3),Cr=On(4),pA=On(5),mA=On(6);vi.range,ga.range,dA.range,hA.range,Cr.range,pA.range,mA.range;var Ah=me(function(t){t.setUTCDate(1),t.setUTCHours(0,0,0,0)},function(t,e){t.setUTCMonth(t.getUTCMonth()+e)},function(t,e){return e.getUTCMonth()-t.getUTCMonth()+(e.getUTCFullYear()-t.getUTCFullYear())*12},function(t){return t.getUTCMonth()});const ya=Ah;Ah.range;var Gc=me(function(t){t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},function(t,e){t.setUTCFullYear(t.getUTCFullYear()+e)},function(t,e){return e.getUTCFullYear()-t.getUTCFullYear()},function(t){return t.getUTCFullYear()});Gc.every=function(t){return!isFinite(t=Math.floor(t))||!(t>0)?null:me(function(e){e.setUTCFullYear(Math.floor(e.getUTCFullYear()/t)*t),e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},function(e,n){e.setUTCFullYear(e.getUTCFullYear()+n*t)})};const qt=Gc;Gc.range;function xh(t,e,n,r,i,o){const a=[[Xt,1,Dt],[Xt,5,5*Dt],[Xt,15,15*Dt],[Xt,30,30*Dt],[o,1,We],[o,5,5*We],[o,15,15*We],[o,30,30*We],[i,1,Mt],[i,3,3*Mt],[i,6,6*Mt],[i,12,12*Mt],[r,1,kn],[r,2,2*kn],[n,1,Fc],[e,1,fh],[e,3,3*fh],[t,1,Pc]];function s(u,f,l){const d=f<u;d&&([u,f]=[f,u]);const p=l&&typeof l.range=="function"?l:c(u,f,l),h=p?p.range(u,+f+1):[];return d?h.reverse():h}function c(u,f,l){const d=Math.abs(f-u)/l,p=sa(([,,g])=>g).right(a,d);if(p===a.length)return t.every(In(u/Pc,f/Pc,l));if(p===0)return Oc.every(Math.max(In(u,f,l),1));const[h,m]=a[d/a[p-1][2]<a[p][2]/d?p-1:p];return h.every(m)}return[s,c]}const[gA,yA]=xh(qt,ya,vi,Bn,Hc,Uc),[vA,bA]=xh(Zt,ma,yi,Nn,Rc,zc),bi="year",Ai="quarter",xi="month",wi="week",Ci="date",va="day",Qc="dayofyear",Si="hours",Ei="minutes",Di="seconds",ba="milliseconds";[bi,Ai,xi,wi,Ci,va,Qc,Si,Ei,Di,ba].reduce((t,e,n)=>(t[e]=1+n,t),{});const AA={[bi]:Zt,[Ai]:ma.every(3),[xi]:ma,[wi]:yi,[Ci]:Nn,[va]:Nn,[Qc]:Nn,[Si]:Rc,[Ei]:zc,[Di]:Xt,[ba]:Oc},xA={[bi]:qt,[Ai]:ya.every(3),[xi]:ya,[wi]:vi,[Ci]:Bn,[va]:Bn,[Qc]:Bn,[Si]:Hc,[Ei]:Uc,[Di]:Xt,[ba]:Oc};function wA(t){return AA[t]}function CA(t){return xA[t]}function Vc(t){if(0<=t.y&&t.y<100){var e=new Date(-1,t.m,t.d,t.H,t.M,t.S,t.L);return e.setFullYear(t.y),e}return new Date(t.y,t.m,t.d,t.H,t.M,t.S,t.L)}function Yc(t){if(0<=t.y&&t.y<100){var e=new Date(Date.UTC(-1,t.m,t.d,t.H,t.M,t.S,t.L));return e.setUTCFullYear(t.y),e}return new Date(Date.UTC(t.y,t.m,t.d,t.H,t.M,t.S,t.L))}function Mi(t,e,n){return{y:t,m:e,d:n,H:0,M:0,S:0,L:0}}function wh(t){var e=t.dateTime,n=t.date,r=t.time,i=t.periods,o=t.days,a=t.shortDays,s=t.months,c=t.shortMonths,u=Ti(i),f=Ii(i),l=Ti(o),d=Ii(o),p=Ti(a),h=Ii(a),m=Ti(s),g=Ii(s),y=Ti(c),b=Ii(c),w={a:wn,A:_,b:Qe,B:qo,c:null,d:Th,e:Th,f:_A,g:nx,G:ix,H:QA,I:VA,j:YA,L:Ih,m:WA,M:XA,p:Ko,q:dc,Q:Fh,s:Ph,S:ZA,u:qA,U:KA,V:JA,w:$A,W:ex,x:null,X:null,y:tx,Y:rx,Z:ox,"%":Oh},C={a:Bd,A:LN,b:BN,B:ON,c:null,d:Nh,e:Nh,f:ux,g:bx,G:xx,H:ax,I:sx,j:cx,L:Lh,m:lx,M:fx,p:FN,q:PN,Q:Fh,s:Ph,S:dx,u:hx,U:px,V:mx,w:gx,W:yx,x:null,X:null,y:vx,Y:Ax,Z:wx,"%":Oh},x={a:O,A:T,b:B,B:G,c:Q,d:Dh,e:Dh,f:jA,g:Eh,G:Sh,H:Mh,I:Mh,j:FA,L:RA,m:OA,M:PA,p:k,q:BA,Q:HA,s:GA,S:zA,u:TA,U:IA,V:kA,w:MA,W:NA,x:De,X:xn,y:Eh,Y:Sh,Z:LA,"%":UA};w.x=v(n,w),w.X=v(r,w),w.c=v(e,w),C.x=v(n,C),C.X=v(r,C),C.c=v(e,C);function v(L,H){return function(W){var M=[],Pe=-1,J=0,Ve=L.length,Ye,Ar,Yb;for(W instanceof Date||(W=new Date(+W));++Pe<Ve;)L.charCodeAt(Pe)===37&&(M.push(L.slice(J,Pe)),(Ar=Ch[Ye=L.charAt(++Pe)])!=null?Ye=L.charAt(++Pe):Ar=Ye==="e"?" ":"0",(Yb=H[Ye])&&(Ye=Yb(W,Ar)),M.push(Ye),J=Pe+1);return M.push(L.slice(J,Pe)),M.join("")}}function A(L,H){return function(W){var M=Mi(1900,void 0,1),Pe=D(M,L,W+="",0),J,Ve;if(Pe!=W.length)return null;if("Q"in M)return new Date(M.Q);if("s"in M)return new Date(M.s*1e3+("L"in M?M.L:0));if(H&&!("Z"in M)&&(M.Z=0),"p"in M&&(M.H=M.H%12+M.p*12),M.m===void 0&&(M.m="q"in M?M.q:0),"V"in M){if(M.V<1||M.V>53)return null;"w"in M||(M.w=1),"Z"in M?(J=Yc(Mi(M.y,0,1)),Ve=J.getUTCDay(),J=Ve>4||Ve===0?ga.ceil(J):ga(J),J=Bn.offset(J,(M.V-1)*7),M.y=J.getUTCFullYear(),M.m=J.getUTCMonth(),M.d=J.getUTCDate()+(M.w+6)%7):(J=Vc(Mi(M.y,0,1)),Ve=J.getDay(),J=Ve>4||Ve===0?pa.ceil(J):pa(J),J=Nn.offset(J,(M.V-1)*7),M.y=J.getFullYear(),M.m=J.getMonth(),M.d=J.getDate()+(M.w+6)%7)}else("W"in M||"U"in M)&&("w"in M||(M.w="u"in M?M.u%7:"W"in M?1:0),Ve="Z"in M?Yc(Mi(M.y,0,1)).getUTCDay():Vc(Mi(M.y,0,1)).getDay(),M.m=0,M.d="W"in M?(M.w+6)%7+M.W*7-(Ve+5)%7:M.w+M.U*7-(Ve+6)%7);return"Z"in M?(M.H+=M.Z/100|0,M.M+=M.Z%100,Yc(M)):Vc(M)}}function D(L,H,W,M){for(var Pe=0,J=H.length,Ve=W.length,Ye,Ar;Pe<J;){if(M>=Ve)return-1;if(Ye=H.charCodeAt(Pe++),Ye===37){if(Ye=H.charAt(Pe++),Ar=x[Ye in Ch?H.charAt(Pe++):Ye],!Ar||(M=Ar(L,W,M))<0)return-1}else if(Ye!=W.charCodeAt(M++))return-1}return M}function k(L,H,W){var M=u.exec(H.slice(W));return M?(L.p=f.get(M[0].toLowerCase()),W+M[0].length):-1}function O(L,H,W){var M=p.exec(H.slice(W));return M?(L.w=h.get(M[0].toLowerCase()),W+M[0].length):-1}function T(L,H,W){var M=l.exec(H.slice(W));return M?(L.w=d.get(M[0].toLowerCase()),W+M[0].length):-1}function B(L,H,W){var M=y.exec(H.slice(W));return M?(L.m=b.get(M[0].toLowerCase()),W+M[0].length):-1}function G(L,H,W){var M=m.exec(H.slice(W));return M?(L.m=g.get(M[0].toLowerCase()),W+M[0].length):-1}function Q(L,H,W){return D(L,e,H,W)}function De(L,H,W){return D(L,n,H,W)}function xn(L,H,W){return D(L,r,H,W)}function wn(L){return a[L.getDay()]}function _(L){return o[L.getDay()]}function Qe(L){return c[L.getMonth()]}function qo(L){return s[L.getMonth()]}function Ko(L){return i[+(L.getHours()>=12)]}function dc(L){return 1+~~(L.getMonth()/3)}function Bd(L){return a[L.getUTCDay()]}function LN(L){return o[L.getUTCDay()]}function BN(L){return c[L.getUTCMonth()]}function ON(L){return s[L.getUTCMonth()]}function FN(L){return i[+(L.getUTCHours()>=12)]}function PN(L){return 1+~~(L.getUTCMonth()/3)}return{format:function(L){var H=v(L+="",w);return H.toString=function(){return L},H},parse:function(L){var H=A(L+="",!1);return H.toString=function(){return L},H},utcFormat:function(L){var H=v(L+="",C);return H.toString=function(){return L},H},utcParse:function(L){var H=A(L+="",!0);return H.toString=function(){return L},H}}}var Ch={"-":"",_:" ",0:"0"},ge=/^\s*\d+/,SA=/^%/,EA=/[\\^$*+?|[\]().{}]/g;function V(t,e,n){var r=t<0?"-":"",i=(r?-t:t)+"",o=i.length;return r+(o<n?new Array(n-o+1).join(e)+i:i)}function DA(t){return t.replace(EA,"\\$&")}function Ti(t){return new RegExp("^(?:"+t.map(DA).join("|")+")","i")}function Ii(t){return new Map(t.map((e,n)=>[e.toLowerCase(),n]))}function MA(t,e,n){var r=ge.exec(e.slice(n,n+1));return r?(t.w=+r[0],n+r[0].length):-1}function TA(t,e,n){var r=ge.exec(e.slice(n,n+1));return r?(t.u=+r[0],n+r[0].length):-1}function IA(t,e,n){var r=ge.exec(e.slice(n,n+2));return r?(t.U=+r[0],n+r[0].length):-1}function kA(t,e,n){var r=ge.exec(e.slice(n,n+2));return r?(t.V=+r[0],n+r[0].length):-1}function NA(t,e,n){var r=ge.exec(e.slice(n,n+2));return r?(t.W=+r[0],n+r[0].length):-1}function Sh(t,e,n){var r=ge.exec(e.slice(n,n+4));return r?(t.y=+r[0],n+r[0].length):-1}function Eh(t,e,n){var r=ge.exec(e.slice(n,n+2));return r?(t.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function LA(t,e,n){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(e.slice(n,n+6));return r?(t.Z=r[1]?0:-(r[2]+(r[3]||"00")),n+r[0].length):-1}function BA(t,e,n){var r=ge.exec(e.slice(n,n+1));return r?(t.q=r[0]*3-3,n+r[0].length):-1}function OA(t,e,n){var r=ge.exec(e.slice(n,n+2));return r?(t.m=r[0]-1,n+r[0].length):-1}function Dh(t,e,n){var r=ge.exec(e.slice(n,n+2));return r?(t.d=+r[0],n+r[0].length):-1}function FA(t,e,n){var r=ge.exec(e.slice(n,n+3));return r?(t.m=0,t.d=+r[0],n+r[0].length):-1}function Mh(t,e,n){var r=ge.exec(e.slice(n,n+2));return r?(t.H=+r[0],n+r[0].length):-1}function PA(t,e,n){var r=ge.exec(e.slice(n,n+2));return r?(t.M=+r[0],n+r[0].length):-1}function zA(t,e,n){var r=ge.exec(e.slice(n,n+2));return r?(t.S=+r[0],n+r[0].length):-1}function RA(t,e,n){var r=ge.exec(e.slice(n,n+3));return r?(t.L=+r[0],n+r[0].length):-1}function jA(t,e,n){var r=ge.exec(e.slice(n,n+6));return r?(t.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function UA(t,e,n){var r=SA.exec(e.slice(n,n+1));return r?n+r[0].length:-1}function HA(t,e,n){var r=ge.exec(e.slice(n));return r?(t.Q=+r[0],n+r[0].length):-1}function GA(t,e,n){var r=ge.exec(e.slice(n));return r?(t.s=+r[0],n+r[0].length):-1}function Th(t,e){return V(t.getDate(),e,2)}function QA(t,e){return V(t.getHours(),e,2)}function VA(t,e){return V(t.getHours()%12||12,e,2)}function YA(t,e){return V(1+Nn.count(Zt(t),t),e,3)}function Ih(t,e){return V(t.getMilliseconds(),e,3)}function _A(t,e){return Ih(t,e)+"000"}function WA(t,e){return V(t.getMonth()+1,e,2)}function XA(t,e){return V(t.getMinutes(),e,2)}function ZA(t,e){return V(t.getSeconds(),e,2)}function qA(t){var e=t.getDay();return e===0?7:e}function KA(t,e){return V(yi.count(Zt(t)-1,t),e,2)}function kh(t){var e=t.getDay();return e>=4||e===0?wr(t):wr.ceil(t)}function JA(t,e){return t=kh(t),V(wr.count(Zt(t),t)+(Zt(t).getDay()===4),e,2)}function $A(t){return t.getDay()}function ex(t,e){return V(pa.count(Zt(t)-1,t),e,2)}function tx(t,e){return V(t.getFullYear()%100,e,2)}function nx(t,e){return t=kh(t),V(t.getFullYear()%100,e,2)}function rx(t,e){return V(t.getFullYear()%1e4,e,4)}function ix(t,e){var n=t.getDay();return t=n>=4||n===0?wr(t):wr.ceil(t),V(t.getFullYear()%1e4,e,4)}function ox(t){var e=t.getTimezoneOffset();return(e>0?"-":(e*=-1,"+"))+V(e/60|0,"0",2)+V(e%60,"0",2)}function Nh(t,e){return V(t.getUTCDate(),e,2)}function ax(t,e){return V(t.getUTCHours(),e,2)}function sx(t,e){return V(t.getUTCHours()%12||12,e,2)}function cx(t,e){return V(1+Bn.count(qt(t),t),e,3)}function Lh(t,e){return V(t.getUTCMilliseconds(),e,3)}function ux(t,e){return Lh(t,e)+"000"}function lx(t,e){return V(t.getUTCMonth()+1,e,2)}function fx(t,e){return V(t.getUTCMinutes(),e,2)}function dx(t,e){return V(t.getUTCSeconds(),e,2)}function hx(t){var e=t.getUTCDay();return e===0?7:e}function px(t,e){return V(vi.count(qt(t)-1,t),e,2)}function Bh(t){var e=t.getUTCDay();return e>=4||e===0?Cr(t):Cr.ceil(t)}function mx(t,e){return t=Bh(t),V(Cr.count(qt(t),t)+(qt(t).getUTCDay()===4),e,2)}function gx(t){return t.getUTCDay()}function yx(t,e){return V(ga.count(qt(t)-1,t),e,2)}function vx(t,e){return V(t.getUTCFullYear()%100,e,2)}function bx(t,e){return t=Bh(t),V(t.getUTCFullYear()%100,e,2)}function Ax(t,e){return V(t.getUTCFullYear()%1e4,e,4)}function xx(t,e){var n=t.getUTCDay();return t=n>=4||n===0?Cr(t):Cr.ceil(t),V(t.getUTCFullYear()%1e4,e,4)}function wx(){return"+0000"}function Oh(){return"%"}function Fh(t){return+t}function Ph(t){return Math.floor(+t/1e3)}var Sr,_c,zh,Wc,Rh;Cx({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function Cx(t){return Sr=wh(t),_c=Sr.format,zh=Sr.parse,Wc=Sr.utcFormat,Rh=Sr.utcParse,Sr}function ki(t){const e={};return n=>e[n]||(e[n]=t(n))}function Sx(t,e){return n=>{const r=t(n),i=r.indexOf(e);if(i<0)return r;let o=Ex(r,i);const a=o<r.length?r.slice(o):"";for(;--o>i;)if(r[o]!=="0"){++o;break}return r.slice(0,o)+a}}function Ex(t,e){let n=t.lastIndexOf("e"),r;if(n>0)return n;for(n=t.length;--n>e;)if(r=t.charCodeAt(n),r>=48&&r<=57)return n+1}function Dx(t){const e=ki(t.format),n=t.formatPrefix;return{format:e,formatPrefix:n,formatFloat(r){const i=Wt(r||",");if(i.precision==null){switch(i.precision=12,i.type){case"%":i.precision-=2;break;case"e":i.precision-=1;break}return Sx(e(i),e(".1f")(1)[1])}else return e(i)},formatSpan(r,i,o,a){a=Wt(a??",f");const s=In(r,i,o),c=Math.max(Math.abs(r),Math.abs(i));let u;if(a.precision==null)switch(a.type){case"s":return isNaN(u=uh(s,c))||(a.precision=u),n(a,c);case"":case"e":case"g":case"p":case"r":{isNaN(u=lh(s,c))||(a.precision=u-(a.type==="e"));break}case"f":case"%":{isNaN(u=ch(s))||(a.precision=u-(a.type==="%")*2);break}}return e(a)}}}Mx();function Mx(){return Dx({format:de,formatPrefix:Nc})}function jh(t,e,n){n=n||{},ze(n)||ae("Invalid time multi-format specifier: ".concat(n));const r=e(Di),i=e(Ei),o=e(Si),a=e(Ci),s=e(wi),c=e(xi),u=e(Ai),f=e(bi),l=t(n[ba]||".%L"),d=t(n[Di]||":%S"),p=t(n[Ei]||"%I:%M"),h=t(n[Si]||"%I %p"),m=t(n[Ci]||n[va]||"%a %d"),g=t(n[wi]||"%b %d"),y=t(n[xi]||"%B"),b=t(n[Ai]||"%B"),w=t(n[bi]||"%Y");return C=>(r(C)<C?l:i(C)<C?d:o(C)<C?p:a(C)<C?h:c(C)<C?s(C)<C?m:g:f(C)<C?u(C)<C?y:b:w)(C)}function Uh(t){const e=ki(t.format),n=ki(t.utcFormat);return{timeFormat:r=>ne(r)?e(r):jh(e,wA,r),utcFormat:r=>ne(r)?n(r):jh(n,CA,r),timeParse:ki(t.parse),utcParse:ki(t.utcParse)}}let Xc;Tx();function Tx(){return Xc=Uh({format:_c,parse:zh,utcFormat:Wc,utcParse:Rh})}function Ix(t){return Uh(wh(t))}function kx(t){return arguments.length?Xc=Ix(t):Xc}const Nx=/^(data:|([A-Za-z]+:)?\/\/)/,Lx=/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp|file|data):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i,Bx=/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205f\u3000]/g,Hh="file://";function Ox(t,e){return n=>({options:n||{},sanitize:Px,load:Fx,fileAccess:!!e,file:zx(e),http:jx(t)})}async function Fx(t,e){const n=await this.sanitize(t,e),r=n.href;return n.localFile?this.file(r):this.http(r,e)}async function Px(t,e){e=bc({},this.options,e);const n=this.fileAccess,r={href:null};let i,o,a;const s=Lx.test(t.replace(Bx,""));(t==null||typeof t!="string"||!s)&&ae("Sanitize failure, invalid URI: "+oa(t));const c=Nx.test(t);return(a=e.baseURL)&&!c&&(!t.startsWith("/")&&!a.endsWith("/")&&(t="/"+t),t=a+t),o=(i=t.startsWith(Hh))||e.mode==="file"||e.mode!=="http"&&!c&&n,i?t=t.slice(Hh.length):t.startsWith("//")&&(e.defaultProtocol==="file"?(t=t.slice(2),o=!0):t=(e.defaultProtocol||"http")+":"+t),Object.defineProperty(r,"localFile",{value:!!o}),r.href=t,e.target&&(r.target=e.target+""),e.rel&&(r.rel=e.rel+""),e.context==="image"&&e.crossOrigin&&(r.crossOrigin=e.crossOrigin+""),r}function zx(t){return t?e=>new Promise((n,r)=>{t.readFile(e,(i,o)=>{i?r(i):n(o)})}):Rx}async function Rx(){ae("No file system access.")}function jx(t){return t?async function(e,n){const r=bc({},this.options.http,n),i=n&&n.response,o=await t(e,r);return o.ok?Ie(o[i])?o[i]():o.text():ae(o.status+""+o.statusText)}:Ux}async function Ux(){ae("No HTTP fetch method available.")}const Hx=t=>t!=null&&t===t,Gx=t=>t==="true"||t==="false"||t===!0||t===!1,Qx=t=>!Number.isNaN(Date.parse(t)),Gh=t=>!Number.isNaN(+t)&&!(t instanceof Date),Vx=t=>Gh(t)&&Number.isInteger(+t),Qh={boolean:x2,integer:fi,number:fi,date:C2,string:S2,unknown:ea},Aa=[Gx,Vx,Gh,Qx],Yx=["boolean","integer","number","date"];function Vh(t,e){if(!t||!t.length)return"unknown";const n=t.length,r=Aa.length,i=Aa.map((o,a)=>a+1);for(let o=0,a=0,s,c;o<n;++o)for(c=e?t[o][e]:t[o],s=0;s<r;++s)if(i[s]&&Hx(c)&&!Aa[s](c)&&(i[s]=0,++a,a===Aa.length))return"string";return Yx[i.reduce((o,a)=>o===0?a:o,0)-1]}function _x(t,e){return e.reduce((n,r)=>(n[r]=Vh(t,r),n),{})}function Yh(t){const e=function(n,r){const i={delimiter:t};return Zc(n,r?bc(r,i):i)};return e.responseType="text",e}function Zc(t,e){return e.header&&(t=e.header.map(oa).join(e.delimiter)+`
6
- `+t),qd(e.delimiter).parse(t+"")}Zc.responseType="text";function Wx(t){return typeof Buffer=="function"&&Ie(Buffer.isBuffer)?Buffer.isBuffer(t):!1}function qc(t,e){const n=e&&e.property?$o(e.property):ea;return ze(t)&&!Wx(t)?Xx(n(t),e):n(JSON.parse(t))}qc.responseType="json";function Xx(t,e){return!_e(t)&&b2(t)&&(t=[...t]),e&&e.copy?JSON.parse(JSON.stringify(t)):t}const Zx={interior:(t,e)=>t!==e,exterior:(t,e)=>t===e};function _h(t,e){let n,r,i,o;return t=qc(t,e),e&&e.feature?(n=B2,i=e.feature):e&&e.mesh?(n=F2,i=e.mesh,o=Zx[e.filter]):ae("Missing TopoJSON feature or mesh parameter."),r=(r=t.objects[i])?n(t,r,o):ae("Invalid TopoJSON object: "+i),r&&r.features||[r]}_h.responseType="json";const Kc={dsv:Zc,csv:Yh(","),tsv:Yh(" "),json:qc,topojson:_h};function Wh(t,e){return arguments.length>1?(Kc[t]=e,this):En(Kc,t)?Kc[t]:null}function Xh(t,e,n,r){e=e||{};const i=Wh(e.type||"json");return i||ae("Unknown data format type: "+e.type),t=i(t,e),e.parse&&qx(t,e.parse,n,r),En(t,"columns")&&delete t.columns,t}function qx(t,e,n,r){if(!t.length)return;const i=kx();n=n||i.timeParse,r=r||i.utcParse;let o=t.columns||Object.keys(t[0]),a,s,c,u,f,l;e==="auto"&&(e=_x(t,o)),o=Object.keys(e);const d=o.map(p=>{const h=e[p];let m,g;if(h&&(h.startsWith("date:")||h.startsWith("utc:")))return m=h.split(/:(.+)?/,2),g=m[1],(g[0]==="'"&&g[g.length-1]==="'"||g[0]==='"'&&g[g.length-1]==='"')&&(g=g.slice(1,-1)),(m[0]==="utc"?r:n)(g);if(!Qh[h])throw Error("Illegal format pattern: "+p+":"+h);return Qh[h]});for(c=0,f=t.length,l=o.length;c<f;++c)for(a=t[c],u=0;u<l;++u)s=o[u],a[s]=d[u](a[s])}const Ni=Ox(typeof fetch<"u"&&fetch,null),Zh=1;function Jc(){let t=[0,1],e=[0,1],n=1,r=1,i=0,o=0,a=.5,s=0;const u=f=>(f+a-t[0])/n*r+e[0];return u.invert=f=>(f-e[0])/r*n+t[0]-a,u.domain=function(f){if(arguments.length){if(t=ca(f),n=t[1]-t[0],n<Zh){n=Zh;const l=(t[0]+t[1])/2;t[0]=l-n/2,t[1]=l+n/2}return u}else return t},u.range=function(f){return arguments.length?(e=[...f],r=e[1]-e[0],u):e},u.numberingOffset=function(f){return arguments.length?(s=f,u):s},u.padding=function(f){return arguments.length?(o=f,i=Math.min(1,f),u):i},u.paddingInner=function(f){return arguments.length?(i=Math.min(1,f),u):i},u.paddingOuter=function(f){return arguments.length?(o=f,u):o},u.align=function(f){return arguments.length?(a=Math.max(0,Math.min(1,f)),u):a},u.step=()=>r/n,u.bandwidth=()=>u.step(),u.ticks=f=>{const l=u.align(),d=u.numberingOffset();return mi(t[0]-l+d,t[1]-l+d,Math.min(f,Math.ceil(n))).filter(Number.isInteger).map(p=>p-s)},u.tickFormat=(f,l)=>{if(l)throw new Error("Index scale's tickFormat does not support a specifier!");const p=In(t[0],t[1],Math.min(f,Math.ceil(n)))<1e5?de(","):de(".3s");return h=>p(h+s)},u.copy=()=>Jc().domain(t).range(e).paddingInner(i).paddingOuter(o).numberingOffset(s),u}function Kx(){const t=Jc().numberingOffset(1);let e;t.genome=function(r){return arguments.length?(e=r,t):e},t.ticks=r=>{if(!e)return[];const i=t.domain(),o=t.numberingOffset(),[a,s]=[Math.max(i[0],0),Math.min(i[1],e.totalSize-1)].map(f=>e.toChromosome(f)),c=Math.max(1,In(i[0],i[1],r)),u=[];for(let f=a.index;f<=s.index;f++){const l=e.chromosomes[f],d=Math.max(l.continuousStart+c,i[0]-(i[0]-l.continuousStart)%c),p=Math.min(l.continuousEnd-c/4,i[1]+1);for(let h=d;h<=p;h+=c){const m=h-o;m>=i[0]&&m<i[1]&&u.push(m)}}return u},t.tickFormat=(r,i)=>{if(!e)return;if(i)throw new Error("Locus scale's tickFormat does not support a specifier!");const o=t.domain(),a=o[1]-o[0],s=t.numberingOffset(),u=In(o[0],o[1],Math.min(r,Math.ceil(a)))<1e6?de(","):de(".3s"),f=l=>l-e.toChromosome(l).continuousStart;return l=>u(f(l)+s)};const n=t.copy;return t.copy=()=>n().genome(e),t}function Jx(t){return t.type=="locus"}function lt(t,e){switch(arguments.length){case 0:break;case 1:this.range(t);break;default:this.range(e).domain(t);break}return this}function Kt(t,e){switch(arguments.length){case 0:break;case 1:{typeof t=="function"?this.interpolator(t):this.range(t);break}default:{this.domain(t),typeof e=="function"?this.interpolator(e):this.range(e);break}}return this}const $c=Symbol("implicit");function eu(){var t=new Tn,e=[],n=[],r=$c;function i(o){let a=t.get(o);if(a===void 0){if(r!==$c)return r;t.set(o,a=e.push(o)-1)}return n[a%n.length]}return i.domain=function(o){if(!arguments.length)return e.slice();e=[],t=new Tn;for(const a of o)t.has(a)||t.set(a,e.push(a)-1);return i},i.range=function(o){return arguments.length?(n=Array.from(o),i):n.slice()},i.unknown=function(o){return arguments.length?(r=o,i):r},i.copy=function(){return eu(e,n).unknown(r)},lt.apply(i,arguments),i}function Er(t,e,n){t.prototype=e.prototype=n,n.constructor=t}function Li(t,e){var n=Object.create(t.prototype);for(var r in e)n[r]=e[r];return n}function Jt(){}var Fn=.7,Dr=1/Fn,Mr="\\s*([+-]?\\d+)\\s*",Bi="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",ft="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",$x=/^#([0-9a-f]{3,8})$/,ew=new RegExp(`^rgb\\(${Mr},${Mr},${Mr}\\)$`),tw=new RegExp(`^rgb\\(${ft},${ft},${ft}\\)$`),nw=new RegExp(`^rgba\\(${Mr},${Mr},${Mr},${Bi}\\)$`),rw=new RegExp(`^rgba\\(${ft},${ft},${ft},${Bi}\\)$`),iw=new RegExp(`^hsl\\(${Bi},${ft},${ft}\\)$`),ow=new RegExp(`^hsla\\(${Bi},${ft},${ft},${Bi}\\)$`),qh={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};Er(Jt,Pn,{copy(t){return Object.assign(new this.constructor,this,t)},displayable(){return this.rgb().displayable()},hex:Kh,formatHex:Kh,formatHex8:aw,formatHsl:sw,formatRgb:Jh,toString:Jh});function Kh(){return this.rgb().formatHex()}function aw(){return this.rgb().formatHex8()}function sw(){return r0(this).formatHsl()}function Jh(){return this.rgb().formatRgb()}function Pn(t){var e,n;return t=(t+"").trim().toLowerCase(),(e=$x.exec(t))?(n=e[1].length,e=parseInt(e[1],16),n===6?$h(e):n===3?new ye(e>>8&15|e>>4&240,e>>4&15|e&240,(e&15)<<4|e&15,1):n===8?xa(e>>24&255,e>>16&255,e>>8&255,(e&255)/255):n===4?xa(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|e&240,((e&15)<<4|e&15)/255):null):(e=ew.exec(t))?new ye(e[1],e[2],e[3],1):(e=tw.exec(t))?new ye(e[1]*255/100,e[2]*255/100,e[3]*255/100,1):(e=nw.exec(t))?xa(e[1],e[2],e[3],e[4]):(e=rw.exec(t))?xa(e[1]*255/100,e[2]*255/100,e[3]*255/100,e[4]):(e=iw.exec(t))?n0(e[1],e[2]/100,e[3]/100,1):(e=ow.exec(t))?n0(e[1],e[2]/100,e[3]/100,e[4]):qh.hasOwnProperty(t)?$h(qh[t]):t==="transparent"?new ye(NaN,NaN,NaN,0):null}function $h(t){return new ye(t>>16&255,t>>8&255,t&255,1)}function xa(t,e,n,r){return r<=0&&(t=e=n=NaN),new ye(t,e,n,r)}function tu(t){return t instanceof Jt||(t=Pn(t)),t?(t=t.rgb(),new ye(t.r,t.g,t.b,t.opacity)):new ye}function wa(t,e,n,r){return arguments.length===1?tu(t):new ye(t,e,n,r??1)}function ye(t,e,n,r){this.r=+t,this.g=+e,this.b=+n,this.opacity=+r}Er(ye,wa,Li(Jt,{brighter(t){return t=t==null?Dr:Math.pow(Dr,t),new ye(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=t==null?Fn:Math.pow(Fn,t),new ye(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new ye(zn(this.r),zn(this.g),zn(this.b),Ca(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:e0,formatHex:e0,formatHex8:cw,formatRgb:t0,toString:t0}));function e0(){return`#${Rn(this.r)}${Rn(this.g)}${Rn(this.b)}`}function cw(){return`#${Rn(this.r)}${Rn(this.g)}${Rn(this.b)}${Rn((isNaN(this.opacity)?1:this.opacity)*255)}`}function t0(){const t=Ca(this.opacity);return`${t===1?"rgb(":"rgba("}${zn(this.r)}, ${zn(this.g)}, ${zn(this.b)}${t===1?")":`, ${t})`}`}function Ca(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function zn(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function Rn(t){return t=zn(t),(t<16?"0":"")+t.toString(16)}function n0(t,e,n,r){return r<=0?t=e=n=NaN:n<=0||n>=1?t=e=NaN:e<=0&&(t=NaN),new nt(t,e,n,r)}function r0(t){if(t instanceof nt)return new nt(t.h,t.s,t.l,t.opacity);if(t instanceof Jt||(t=Pn(t)),!t)return new nt;if(t instanceof nt)return t;t=t.rgb();var e=t.r/255,n=t.g/255,r=t.b/255,i=Math.min(e,n,r),o=Math.max(e,n,r),a=NaN,s=o-i,c=(o+i)/2;return s?(e===o?a=(n-r)/s+(n<r)*6:n===o?a=(r-e)/s+2:a=(e-n)/s+4,s/=c<.5?o+i:2-o-i,a*=60):s=c>0&&c<1?0:a,new nt(a,s,c,t.opacity)}function nu(t,e,n,r){return arguments.length===1?r0(t):new nt(t,e,n,r??1)}function nt(t,e,n,r){this.h=+t,this.s=+e,this.l=+n,this.opacity=+r}Er(nt,nu,Li(Jt,{brighter(t){return t=t==null?Dr:Math.pow(Dr,t),new nt(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=t==null?Fn:Math.pow(Fn,t),new nt(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+(this.h<0)*360,e=isNaN(t)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*e,i=2*n-r;return new ye(ru(t>=240?t-240:t+120,i,r),ru(t,i,r),ru(t<120?t+240:t-120,i,r),this.opacity)},clamp(){return new nt(i0(this.h),Sa(this.s),Sa(this.l),Ca(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const t=Ca(this.opacity);return`${t===1?"hsl(":"hsla("}${i0(this.h)}, ${Sa(this.s)*100}%, ${Sa(this.l)*100}%${t===1?")":`, ${t})`}`}}));function i0(t){return t=(t||0)%360,t<0?t+360:t}function Sa(t){return Math.max(0,Math.min(1,t||0))}function ru(t,e,n){return(t<60?e+(n-e)*t/60:t<180?n:t<240?e+(n-e)*(240-t)/60:e)*255}const o0=Math.PI/180,a0=180/Math.PI,Ea=18,s0=.96422,c0=1,u0=.82521,l0=4/29,Tr=6/29,f0=3*Tr*Tr,uw=Tr*Tr*Tr;function d0(t){if(t instanceof dt)return new dt(t.l,t.a,t.b,t.opacity);if(t instanceof Tt)return h0(t);t instanceof ye||(t=tu(t));var e=cu(t.r),n=cu(t.g),r=cu(t.b),i=ou((.2225045*e+.7168786*n+.0606169*r)/c0),o,a;return e===n&&n===r?o=a=i:(o=ou((.4360747*e+.3850649*n+.1430804*r)/s0),a=ou((.0139322*e+.0971045*n+.7141733*r)/u0)),new dt(116*i-16,500*(o-i),200*(i-a),t.opacity)}function iu(t,e,n,r){return arguments.length===1?d0(t):new dt(t,e,n,r??1)}function dt(t,e,n,r){this.l=+t,this.a=+e,this.b=+n,this.opacity=+r}Er(dt,iu,Li(Jt,{brighter(t){return new dt(this.l+Ea*(t??1),this.a,this.b,this.opacity)},darker(t){return new dt(this.l-Ea*(t??1),this.a,this.b,this.opacity)},rgb(){var t=(this.l+16)/116,e=isNaN(this.a)?t:t+this.a/500,n=isNaN(this.b)?t:t-this.b/200;return e=s0*au(e),t=c0*au(t),n=u0*au(n),new ye(su(3.1338561*e-1.6168667*t-.4906146*n),su(-.9787684*e+1.9161415*t+.033454*n),su(.0719453*e-.2289914*t+1.4052427*n),this.opacity)}}));function ou(t){return t>uw?Math.pow(t,1/3):t/f0+l0}function au(t){return t>Tr?t*t*t:f0*(t-l0)}function su(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function cu(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function lw(t){if(t instanceof Tt)return new Tt(t.h,t.c,t.l,t.opacity);if(t instanceof dt||(t=d0(t)),t.a===0&&t.b===0)return new Tt(NaN,0<t.l&&t.l<100?0:NaN,t.l,t.opacity);var e=Math.atan2(t.b,t.a)*a0;return new Tt(e<0?e+360:e,Math.sqrt(t.a*t.a+t.b*t.b),t.l,t.opacity)}function uu(t,e,n,r){return arguments.length===1?lw(t):new Tt(t,e,n,r??1)}function Tt(t,e,n,r){this.h=+t,this.c=+e,this.l=+n,this.opacity=+r}function h0(t){if(isNaN(t.h))return new dt(t.l,0,0,t.opacity);var e=t.h*o0;return new dt(t.l,Math.cos(e)*t.c,Math.sin(e)*t.c,t.opacity)}Er(Tt,uu,Li(Jt,{brighter(t){return new Tt(this.h,this.c,this.l+Ea*(t??1),this.opacity)},darker(t){return new Tt(this.h,this.c,this.l-Ea*(t??1),this.opacity)},rgb(){return h0(this).rgb()}}));var p0=-.14861,lu=1.78277,fu=-.29227,Da=-.90649,Oi=1.97294,m0=Oi*Da,g0=Oi*lu,y0=lu*fu-Da*p0;function fw(t){if(t instanceof jn)return new jn(t.h,t.s,t.l,t.opacity);t instanceof ye||(t=tu(t));var e=t.r/255,n=t.g/255,r=t.b/255,i=(y0*r+m0*e-g0*n)/(y0+m0-g0),o=r-i,a=(Oi*(n-i)-fu*o)/Da,s=Math.sqrt(a*a+o*o)/(Oi*i*(1-i)),c=s?Math.atan2(a,o)*a0-120:NaN;return new jn(c<0?c+360:c,s,i,t.opacity)}function du(t,e,n,r){return arguments.length===1?fw(t):new jn(t,e,n,r??1)}function jn(t,e,n,r){this.h=+t,this.s=+e,this.l=+n,this.opacity=+r}Er(jn,du,Li(Jt,{brighter(t){return t=t==null?Dr:Math.pow(Dr,t),new jn(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=t==null?Fn:Math.pow(Fn,t),new jn(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=isNaN(this.h)?0:(this.h+120)*o0,e=+this.l,n=isNaN(this.s)?0:this.s*e*(1-e),r=Math.cos(t),i=Math.sin(t);return new ye(255*(e+n*(p0*r+lu*i)),255*(e+n*(fu*r+Da*i)),255*(e+n*(Oi*r)),this.opacity)}}));function v0(t,e,n,r,i){var o=t*t,a=o*t;return((1-3*t+3*o-a)*e+(4-6*o+3*a)*n+(1+3*t+3*o-3*a)*r+a*i)/6}function b0(t){var e=t.length-1;return function(n){var r=n<=0?n=0:n>=1?(n=1,e-1):Math.floor(n*e),i=t[r],o=t[r+1],a=r>0?t[r-1]:2*i-o,s=r<e-1?t[r+2]:2*o-i;return v0((n-r/e)*e,a,i,o,s)}}function A0(t){var e=t.length;return function(n){var r=Math.floor(((n%=1)<0?++n:n)*e),i=t[(r+e-1)%e],o=t[r%e],a=t[(r+1)%e],s=t[(r+2)%e];return v0((n-r/e)*e,i,o,a,s)}}const Ma=t=>()=>t;function x0(t,e){return function(n){return t+n*e}}function dw(t,e,n){return t=Math.pow(t,n),e=Math.pow(e,n)-t,n=1/n,function(r){return Math.pow(t+r*e,n)}}function Ta(t,e){var n=e-t;return n?x0(t,n>180||n<-180?n-360*Math.round(n/360):n):Ma(isNaN(t)?e:t)}function hw(t){return(t=+t)==1?ve:function(e,n){return n-e?dw(e,n,t):Ma(isNaN(e)?n:e)}}function ve(t,e){var n=e-t;return n?x0(t,n):Ma(isNaN(t)?e:t)}const hu=function t(e){var n=hw(e);function r(i,o){var a=n((i=wa(i)).r,(o=wa(o)).r),s=n(i.g,o.g),c=n(i.b,o.b),u=ve(i.opacity,o.opacity);return function(f){return i.r=a(f),i.g=s(f),i.b=c(f),i.opacity=u(f),i+""}}return r.gamma=t,r}(1);function w0(t){return function(e){var n=e.length,r=new Array(n),i=new Array(n),o=new Array(n),a,s;for(a=0;a<n;++a)s=wa(e[a]),r[a]=s.r||0,i[a]=s.g||0,o[a]=s.b||0;return r=t(r),i=t(i),o=t(o),s.opacity=1,function(c){return s.r=r(c),s.g=i(c),s.b=o(c),s+""}}}var pw=w0(b0),mw=w0(A0);function pu(t,e){e||(e=[]);var n=t?Math.min(e.length,t.length):0,r=e.slice(),i;return function(o){for(i=0;i<n;++i)r[i]=t[i]*(1-o)+e[i]*o;return r}}function C0(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)}function gw(t,e){return(C0(e)?pu:S0)(t,e)}function S0(t,e){var n=e?e.length:0,r=t?Math.min(n,t.length):0,i=new Array(r),o=new Array(n),a;for(a=0;a<r;++a)i[a]=$t(t[a],e[a]);for(;a<n;++a)o[a]=e[a];return function(s){for(a=0;a<r;++a)o[a]=i[a](s);return o}}function E0(t,e){var n=new Date;return t=+t,e=+e,function(r){return n.setTime(t*(1-r)+e*r),n}}function rt(t,e){return t=+t,e=+e,function(n){return t*(1-n)+e*n}}function D0(t,e){var n={},r={},i;(t===null||typeof t!="object")&&(t={}),(e===null||typeof e!="object")&&(e={});for(i in e)i in t?n[i]=$t(t[i],e[i]):r[i]=e[i];return function(o){for(i in n)r[i]=n[i](o);return r}}var mu=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,gu=new RegExp(mu.source,"g");function yw(t){return function(){return t}}function vw(t){return function(e){return t(e)+""}}function M0(t,e){var n=mu.lastIndex=gu.lastIndex=0,r,i,o,a=-1,s=[],c=[];for(t=t+"",e=e+"";(r=mu.exec(t))&&(i=gu.exec(e));)(o=i.index)>n&&(o=e.slice(n,o),s[a]?s[a]+=o:s[++a]=o),(r=r[0])===(i=i[0])?s[a]?s[a]+=i:s[++a]=i:(s[++a]=null,c.push({i:a,x:rt(r,i)})),n=gu.lastIndex;return n<e.length&&(o=e.slice(n),s[a]?s[a]+=o:s[++a]=o),s.length<2?c[0]?vw(c[0].x):yw(e):(e=c.length,function(u){for(var f=0,l;f<e;++f)s[(l=c[f]).i]=l.x(u);return s.join("")})}function $t(t,e){var n=typeof e,r;return e==null||n==="boolean"?Ma(e):(n==="number"?rt:n==="string"?(r=Pn(e))?(e=r,hu):M0:e instanceof Pn?hu:e instanceof Date?E0:C0(e)?pu:Array.isArray(e)?S0:typeof e.valueOf!="function"&&typeof e.toString!="function"||isNaN(e)?D0:rt)(t,e)}function bw(t){var e=t.length;return function(n){return t[Math.max(0,Math.min(e-1,Math.floor(n*e)))]}}function Aw(t,e){var n=Ta(+t,+e);return function(r){var i=n(r);return i-360*Math.floor(i/360)}}function Fi(t,e){return t=+t,e=+e,function(n){return Math.round(t*(1-n)+e*n)}}var T0=180/Math.PI,yu={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function I0(t,e,n,r,i,o){var a,s,c;return(a=Math.sqrt(t*t+e*e))&&(t/=a,e/=a),(c=t*n+e*r)&&(n-=t*c,r-=e*c),(s=Math.sqrt(n*n+r*r))&&(n/=s,r/=s,c/=s),t*r<e*n&&(t=-t,e=-e,c=-c,a=-a),{translateX:i,translateY:o,rotate:Math.atan2(e,t)*T0,skewX:Math.atan(c)*T0,scaleX:a,scaleY:s}}var Ia;function xw(t){const e=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(t+"");return e.isIdentity?yu:I0(e.a,e.b,e.c,e.d,e.e,e.f)}function ww(t){return t==null||(Ia||(Ia=document.createElementNS("http://www.w3.org/2000/svg","g")),Ia.setAttribute("transform",t),!(t=Ia.transform.baseVal.consolidate()))?yu:(t=t.matrix,I0(t.a,t.b,t.c,t.d,t.e,t.f))}function k0(t,e,n,r){function i(u){return u.length?u.pop()+" ":""}function o(u,f,l,d,p,h){if(u!==l||f!==d){var m=p.push("translate(",null,e,null,n);h.push({i:m-4,x:rt(u,l)},{i:m-2,x:rt(f,d)})}else(l||d)&&p.push("translate("+l+e+d+n)}function a(u,f,l,d){u!==f?(u-f>180?f+=360:f-u>180&&(u+=360),d.push({i:l.push(i(l)+"rotate(",null,r)-2,x:rt(u,f)})):f&&l.push(i(l)+"rotate("+f+r)}function s(u,f,l,d){u!==f?d.push({i:l.push(i(l)+"skewX(",null,r)-2,x:rt(u,f)}):f&&l.push(i(l)+"skewX("+f+r)}function c(u,f,l,d,p,h){if(u!==l||f!==d){var m=p.push(i(p)+"scale(",null,",",null,")");h.push({i:m-4,x:rt(u,l)},{i:m-2,x:rt(f,d)})}else(l!==1||d!==1)&&p.push(i(p)+"scale("+l+","+d+")")}return function(u,f){var l=[],d=[];return u=t(u),f=t(f),o(u.translateX,u.translateY,f.translateX,f.translateY,l,d),a(u.rotate,f.rotate,l,d),s(u.skewX,f.skewX,l,d),c(u.scaleX,u.scaleY,f.scaleX,f.scaleY,l,d),u=f=null,function(p){for(var h=-1,m=d.length,g;++h<m;)l[(g=d[h]).i]=g.x(p);return l.join("")}}}var Cw=k0(xw,"px, ","px)","deg)"),Sw=k0(ww,", ",")",")"),Ew=1e-12;function N0(t){return((t=Math.exp(t))+1/t)/2}function Dw(t){return((t=Math.exp(t))-1/t)/2}function Mw(t){return((t=Math.exp(2*t))-1)/(t+1)}const L0=function t(e,n,r){function i(o,a){var s=o[0],c=o[1],u=o[2],f=a[0],l=a[1],d=a[2],p=f-s,h=l-c,m=p*p+h*h,g,y;if(m<Ew)y=Math.log(d/u)/e,g=function(A){return[s+A*p,c+A*h,u*Math.exp(e*A*y)]};else{var b=Math.sqrt(m),w=(d*d-u*u+r*m)/(2*u*n*b),C=(d*d-u*u-r*m)/(2*d*n*b),x=Math.log(Math.sqrt(w*w+1)-w),v=Math.log(Math.sqrt(C*C+1)-C);y=(v-x)/e,g=function(A){var D=A*y,k=N0(x),O=u/(n*b)*(k*Mw(e*D+x)-Dw(x));return[s+O*p,c+O*h,u*k/N0(e*D+x)]}}return g.duration=y*1e3*e/Math.SQRT2,g}return i.rho=function(o){var a=Math.max(.001,+o),s=a*a,c=s*s;return t(a,s,c)},i}(Math.SQRT2,2,4);function B0(t){return function(e,n){var r=t((e=nu(e)).h,(n=nu(n)).h),i=ve(e.s,n.s),o=ve(e.l,n.l),a=ve(e.opacity,n.opacity);return function(s){return e.h=r(s),e.s=i(s),e.l=o(s),e.opacity=a(s),e+""}}}const Tw=B0(Ta);var Iw=B0(ve);function kw(t,e){var n=ve((t=iu(t)).l,(e=iu(e)).l),r=ve(t.a,e.a),i=ve(t.b,e.b),o=ve(t.opacity,e.opacity);return function(a){return t.l=n(a),t.a=r(a),t.b=i(a),t.opacity=o(a),t+""}}function O0(t){return function(e,n){var r=t((e=uu(e)).h,(n=uu(n)).h),i=ve(e.c,n.c),o=ve(e.l,n.l),a=ve(e.opacity,n.opacity);return function(s){return e.h=r(s),e.c=i(s),e.l=o(s),e.opacity=a(s),e+""}}}const Nw=O0(Ta);var Lw=O0(ve);function F0(t){return function e(n){n=+n;function r(i,o){var a=t((i=du(i)).h,(o=du(o)).h),s=ve(i.s,o.s),c=ve(i.l,o.l),u=ve(i.opacity,o.opacity);return function(f){return i.h=a(f),i.s=s(f),i.l=c(Math.pow(f,n)),i.opacity=u(f),i+""}}return r.gamma=e,r}(1)}const Bw=F0(Ta);var Ow=F0(ve);function vu(t,e){e===void 0&&(e=t,t=$t);for(var n=0,r=e.length-1,i=e[0],o=new Array(r<0?0:r);n<r;)o[n]=t(i,i=e[++n]);return function(a){var s=Math.max(0,Math.min(r-1,Math.floor(a*=r)));return o[s](a-s)}}function Fw(t,e){for(var n=new Array(e),r=0;r<e;++r)n[r]=t(r/(e-1));return n}const Pw=Object.freeze(Object.defineProperty({__proto__:null,interpolate:$t,interpolateArray:gw,interpolateBasis:b0,interpolateBasisClosed:A0,interpolateCubehelix:Bw,interpolateCubehelixLong:Ow,interpolateDate:E0,interpolateDiscrete:bw,interpolateHcl:Nw,interpolateHclLong:Lw,interpolateHsl:Tw,interpolateHslLong:Iw,interpolateHue:Aw,interpolateLab:kw,interpolateNumber:rt,interpolateNumberArray:pu,interpolateObject:D0,interpolateRgb:hu,interpolateRgbBasis:pw,interpolateRgbBasisClosed:mw,interpolateRound:Fi,interpolateString:M0,interpolateTransformCss:Cw,interpolateTransformSvg:Sw,interpolateZoom:L0,piecewise:vu,quantize:Fw},Symbol.toStringTag,{value:"Module"}));function zw(t){return function(){return t}}function bu(t){return+t}var P0=[0,1];function Ne(t){return t}function Au(t,e){return(e-=t=+t)?function(n){return(n-t)/e}:zw(isNaN(e)?NaN:.5)}function Rw(t,e){var n;return t>e&&(n=t,t=e,e=n),function(r){return Math.max(t,Math.min(e,r))}}function jw(t,e,n){var r=t[0],i=t[1],o=e[0],a=e[1];return i<r?(r=Au(i,r),o=n(a,o)):(r=Au(r,i),o=n(o,a)),function(s){return o(r(s))}}function Uw(t,e,n){var r=Math.min(t.length,e.length)-1,i=new Array(r),o=new Array(r),a=-1;for(t[r]<t[0]&&(t=t.slice().reverse(),e=e.slice().reverse());++a<r;)i[a]=Au(t[a],t[a+1]),o[a]=n(e[a],e[a+1]);return function(s){var c=Mn(t,s,1,r)-1;return o[c](i[c](s))}}function Pi(t,e){return e.domain(t.domain()).range(t.range()).interpolate(t.interpolate()).clamp(t.clamp()).unknown(t.unknown())}function ka(){var t=P0,e=P0,n=$t,r,i,o,a=Ne,s,c,u;function f(){var d=Math.min(t.length,e.length);return a!==Ne&&(a=Rw(t[0],t[d-1])),s=d>2?Uw:jw,c=u=null,l}function l(d){return d==null||isNaN(d=+d)?o:(c||(c=s(t.map(r),e,n)))(r(a(d)))}return l.invert=function(d){return a(i((u||(u=s(e,t.map(r),rt)))(d)))},l.domain=function(d){return arguments.length?(t=Array.from(d,bu),f()):t.slice()},l.range=function(d){return arguments.length?(e=Array.from(d),f()):e.slice()},l.rangeRound=function(d){return e=Array.from(d),n=Fi,f()},l.clamp=function(d){return arguments.length?(a=d?!0:Ne,f()):a!==Ne},l.interpolate=function(d){return arguments.length?(n=d,f()):n},l.unknown=function(d){return arguments.length?(o=d,l):o},function(d,p){return r=d,i=p,f()}}function z0(){return ka()(Ne,Ne)}function R0(t,e,n,r){var i=In(t,e,n),o;switch(r=Wt(r??",f"),r.type){case"s":{var a=Math.max(Math.abs(t),Math.abs(e));return r.precision==null&&!isNaN(o=uh(i,a))&&(r.precision=o),Nc(r,a)}case"":case"e":case"g":case"p":case"r":{r.precision==null&&!isNaN(o=lh(i,Math.max(Math.abs(t),Math.abs(e))))&&(r.precision=o-(r.type==="e"));break}case"f":case"%":{r.precision==null&&!isNaN(o=ch(i))&&(r.precision=o-(r.type==="%")*2);break}}return de(r)}function Un(t){var e=t.domain;return t.ticks=function(n){var r=e();return mi(r[0],r[r.length-1],n??10)},t.tickFormat=function(n,r){var i=e();return R0(i[0],i[i.length-1],n??10,r)},t.nice=function(n){n==null&&(n=10);var r=e(),i=0,o=r.length-1,a=r[i],s=r[o],c,u,f=10;for(s<a&&(u=a,a=s,s=u,u=i,i=o,o=u);f-- >0;){if(u=gi(a,s,n),u===c)return r[i]=a,r[o]=s,e(r);if(u>0)a=Math.floor(a/u)*u,s=Math.ceil(s/u)*u;else if(u<0)a=Math.ceil(a*u)/u,s=Math.floor(s*u)/u;else break;c=u}return t},t}function Na(){var t=z0();return t.copy=function(){return Pi(t,Na())},lt.apply(t,arguments),Un(t)}function j0(t){var e;function n(r){return r==null||isNaN(r=+r)?e:r}return n.invert=n,n.domain=n.range=function(r){return arguments.length?(t=Array.from(r,bu),n):t.slice()},n.unknown=function(r){return arguments.length?(e=r,n):e},n.copy=function(){return j0(t).unknown(e)},t=arguments.length?Array.from(t,bu):[0,1],Un(n)}function U0(t,e){t=t.slice();var n=0,r=t.length-1,i=t[n],o=t[r],a;return o<i&&(a=n,n=r,r=a,a=i,i=o,o=a),t[n]=e.floor(i),t[r]=e.ceil(o),t}function H0(t){return Math.log(t)}function G0(t){return Math.exp(t)}function Hw(t){return-Math.log(-t)}function Gw(t){return-Math.exp(-t)}function Qw(t){return isFinite(t)?+("1e"+t):t<0?0:t}function Vw(t){return t===10?Qw:t===Math.E?Math.exp:e=>Math.pow(t,e)}function Yw(t){return t===Math.E?Math.log:t===10&&Math.log10||t===2&&Math.log2||(t=Math.log(t),e=>Math.log(e)/t)}function Q0(t){return(e,n)=>-t(-e,n)}function xu(t){const e=t(H0,G0),n=e.domain;let r=10,i,o;function a(){return i=Yw(r),o=Vw(r),n()[0]<0?(i=Q0(i),o=Q0(o),t(Hw,Gw)):t(H0,G0),e}return e.base=function(s){return arguments.length?(r=+s,a()):r},e.domain=function(s){return arguments.length?(n(s),a()):n()},e.ticks=s=>{const c=n();let u=c[0],f=c[c.length-1];const l=f<u;l&&([u,f]=[f,u]);let d=i(u),p=i(f),h,m;const g=s==null?10:+s;let y=[];if(!(r%1)&&p-d<g){if(d=Math.floor(d),p=Math.ceil(p),u>0){for(;d<=p;++d)for(h=1;h<r;++h)if(m=d<0?h/o(-d):h*o(d),!(m<u)){if(m>f)break;y.push(m)}}else for(;d<=p;++d)for(h=r-1;h>=1;--h)if(m=d>0?h/o(-d):h*o(d),!(m<u)){if(m>f)break;y.push(m)}y.length*2<g&&(y=mi(u,f,g))}else y=mi(d,p,Math.min(p-d,g)).map(o);return l?y.reverse():y},e.tickFormat=(s,c)=>{if(s==null&&(s=10),c==null&&(c=r===10?"s":","),typeof c!="function"&&(!(r%1)&&(c=Wt(c)).precision==null&&(c.trim=!0),c=de(c)),s===1/0)return c;const u=Math.max(1,r*s/e.ticks().length);return f=>{let l=f/o(Math.round(i(f)));return l*r<r-.5&&(l*=r),l<=u?c(f):""}},e.nice=()=>n(U0(n(),{floor:s=>o(Math.floor(i(s))),ceil:s=>o(Math.ceil(i(s)))})),e}function wu(){const t=xu(ka()).domain([1,10]);return t.copy=()=>Pi(t,wu()).base(t.base()),lt.apply(t,arguments),t}function V0(t){return function(e){return Math.sign(e)*Math.log1p(Math.abs(e/t))}}function Y0(t){return function(e){return Math.sign(e)*Math.expm1(Math.abs(e))*t}}function Cu(t){var e=1,n=t(V0(e),Y0(e));return n.constant=function(r){return arguments.length?t(V0(e=+r),Y0(e)):e},Un(n)}function _0(){var t=Cu(ka());return t.copy=function(){return Pi(t,_0()).constant(t.constant())},lt.apply(t,arguments)}function W0(t){return function(e){return e<0?-Math.pow(-e,t):Math.pow(e,t)}}function _w(t){return t<0?-Math.sqrt(-t):Math.sqrt(t)}function Ww(t){return t<0?-t*t:t*t}function Su(t){var e=t(Ne,Ne),n=1;function r(){return n===1?t(Ne,Ne):n===.5?t(_w,Ww):t(W0(n),W0(1/n))}return e.exponent=function(i){return arguments.length?(n=+i,r()):n},Un(e)}function Eu(){var t=Su(ka());return t.copy=function(){return Pi(t,Eu()).exponent(t.exponent())},lt.apply(t,arguments),t}function Xw(){return Eu.apply(null,arguments).exponent(.5)}function X0(){var t=[],e=[],n=[],r;function i(){var a=0,s=Math.max(1,e.length);for(n=new Array(s-1);++a<s;)n[a-1]=Ic(t,a/s);return o}function o(a){return a==null||isNaN(a=+a)?r:e[Mn(n,a)]}return o.invertExtent=function(a){var s=e.indexOf(a);return s<0?[NaN,NaN]:[s>0?n[s-1]:t[0],s<n.length?n[s]:t[t.length-1]]},o.domain=function(a){if(!arguments.length)return t.slice();t=[];for(let s of a)s!=null&&!isNaN(s=+s)&&t.push(s);return t.sort(Dn),i()},o.range=function(a){return arguments.length?(e=Array.from(a),i()):e.slice()},o.unknown=function(a){return arguments.length?(r=a,o):r},o.quantiles=function(){return n.slice()},o.copy=function(){return X0().domain(t).range(e).unknown(r)},lt.apply(o,arguments)}function Z0(){var t=0,e=1,n=1,r=[.5],i=[0,1],o;function a(c){return c!=null&&c<=c?i[Mn(r,c,0,n)]:o}function s(){var c=-1;for(r=new Array(n);++c<n;)r[c]=((c+1)*e-(c-n)*t)/(n+1);return a}return a.domain=function(c){return arguments.length?([t,e]=c,t=+t,e=+e,s()):[t,e]},a.range=function(c){return arguments.length?(n=(i=Array.from(c)).length-1,s()):i.slice()},a.invertExtent=function(c){var u=i.indexOf(c);return u<0?[NaN,NaN]:u<1?[t,r[0]]:u>=n?[r[n-1],e]:[r[u-1],r[u]]},a.unknown=function(c){return arguments.length&&(o=c),a},a.thresholds=function(){return r.slice()},a.copy=function(){return Z0().domain([t,e]).range(i).unknown(o)},lt.apply(Un(a),arguments)}function q0(){var t=[.5],e=[0,1],n,r=1;function i(o){return o!=null&&o<=o?e[Mn(t,o,0,r)]:n}return i.domain=function(o){return arguments.length?(t=Array.from(o),r=Math.min(t.length,e.length-1),i):t.slice()},i.range=function(o){return arguments.length?(e=Array.from(o),r=Math.min(t.length,e.length-1),i):e.slice()},i.invertExtent=function(o){var a=e.indexOf(o);return[t[a-1],t[a]]},i.unknown=function(o){return arguments.length?(n=o,i):n},i.copy=function(){return q0().domain(t).range(e).unknown(n)},lt.apply(i,arguments)}function Zw(t){return new Date(t)}function qw(t){return t instanceof Date?+t:+new Date(+t)}function Du(t,e,n,r,i,o,a,s,c,u){var f=z0(),l=f.invert,d=f.domain,p=u(".%L"),h=u(":%S"),m=u("%I:%M"),g=u("%I %p"),y=u("%a %d"),b=u("%b %d"),w=u("%B"),C=u("%Y");function x(v){return(c(v)<v?p:s(v)<v?h:a(v)<v?m:o(v)<v?g:r(v)<v?i(v)<v?y:b:n(v)<v?w:C)(v)}return f.invert=function(v){return new Date(l(v))},f.domain=function(v){return arguments.length?d(Array.from(v,qw)):d().map(Zw)},f.ticks=function(v){var A=d();return t(A[0],A[A.length-1],v??10)},f.tickFormat=function(v,A){return A==null?x:u(A)},f.nice=function(v){var A=d();return(!v||typeof v.range!="function")&&(v=e(A[0],A[A.length-1],v??10)),v?d(U0(A,v)):f},f.copy=function(){return Pi(f,Du(t,e,n,r,i,o,a,s,c,u))},f}function Kw(){return lt.apply(Du(vA,bA,Zt,ma,yi,Nn,Rc,zc,Xt,_c).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}function Jw(){return lt.apply(Du(gA,yA,qt,ya,vi,Bn,Hc,Uc,Xt,Wc).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)}function La(){var t=0,e=1,n,r,i,o,a=Ne,s=!1,c;function u(l){return l==null||isNaN(l=+l)?c:a(i===0?.5:(l=(o(l)-n)*i,s?Math.max(0,Math.min(1,l)):l))}u.domain=function(l){return arguments.length?([t,e]=l,n=o(t=+t),r=o(e=+e),i=n===r?0:1/(r-n),u):[t,e]},u.clamp=function(l){return arguments.length?(s=!!l,u):s},u.interpolator=function(l){return arguments.length?(a=l,u):a};function f(l){return function(d){var p,h;return arguments.length?([p,h]=d,a=l(p,h),u):[a(0),a(1)]}}return u.range=f($t),u.rangeRound=f(Fi),u.unknown=function(l){return arguments.length?(c=l,u):c},function(l){return o=l,n=l(t),r=l(e),i=n===r?0:1/(r-n),u}}function en(t,e){return e.domain(t.domain()).interpolator(t.interpolator()).clamp(t.clamp()).unknown(t.unknown())}function Mu(){var t=Un(La()(Ne));return t.copy=function(){return en(t,Mu())},Kt.apply(t,arguments)}function K0(){var t=xu(La()).domain([1,10]);return t.copy=function(){return en(t,K0()).base(t.base())},Kt.apply(t,arguments)}function J0(){var t=Cu(La());return t.copy=function(){return en(t,J0()).constant(t.constant())},Kt.apply(t,arguments)}function Tu(){var t=Su(La());return t.copy=function(){return en(t,Tu()).exponent(t.exponent())},Kt.apply(t,arguments)}function $w(){return Tu.apply(null,arguments).exponent(.5)}function Ba(){var t=0,e=.5,n=1,r=1,i,o,a,s,c,u=Ne,f,l=!1,d;function p(m){return isNaN(m=+m)?d:(m=.5+((m=+f(m))-o)*(r*m<r*o?s:c),u(l?Math.max(0,Math.min(1,m)):m))}p.domain=function(m){return arguments.length?([t,e,n]=m,i=f(t=+t),o=f(e=+e),a=f(n=+n),s=i===o?0:.5/(o-i),c=o===a?0:.5/(a-o),r=o<i?-1:1,p):[t,e,n]},p.clamp=function(m){return arguments.length?(l=!!m,p):l},p.interpolator=function(m){return arguments.length?(u=m,p):u};function h(m){return function(g){var y,b,w;return arguments.length?([y,b,w]=g,u=vu(m,[y,b,w]),p):[u(0),u(.5),u(1)]}}return p.range=h($t),p.rangeRound=h(Fi),p.unknown=function(m){return arguments.length?(d=m,p):d},function(m){return f=m,i=m(t),o=m(e),a=m(n),s=i===o?0:.5/(o-i),c=o===a?0:.5/(a-o),r=o<i?-1:1,p}}function $0(){var t=Un(Ba()(Ne));return t.copy=function(){return en(t,$0())},Kt.apply(t,arguments)}function ep(){var t=xu(Ba()).domain([.1,1,10]);return t.copy=function(){return en(t,ep()).base(t.base())},Kt.apply(t,arguments)}function tp(){var t=Cu(Ba());return t.copy=function(){return en(t,tp()).constant(t.constant())},Kt.apply(t,arguments)}function Iu(){var t=Su(Ba());return t.copy=function(){return en(t,Iu()).exponent(t.exponent())},Kt.apply(t,arguments)}function e4(){return Iu.apply(null,arguments).exponent(.5)}function ku(t,e,n){const r=t-e+n*2;return t?r>0?r:1:0}const t4="identity",Ir="linear",tn="log",zi="pow",Ri="sqrt",Oa="symlog",np="time",rp="utc",ht="sequential",kr="diverging",Nu="quantile",ip="quantize",op="threshold",Lu="ordinal",Bu="point",ap="band",Ou="bin-ordinal",he="continuous",ji="discrete",Ui="discretizing",Xe="interpolating",sp="temporal";function n4(t){return function(e){let n=e[0],r=e[1],i;return r<n&&(i=n,n=r,r=i),[t.invert(n),t.invert(r)]}}function r4(t){return function(e){const n=t.range();let r=e[0],i=e[1],o=-1,a,s,c,u;for(i<r&&(s=r,r=i,i=s),c=0,u=n.length;c<u;++c)n[c]>=r&&n[c]<=i&&(o<0&&(o=c),a=c);if(!(o<0))return r=t.invertExtent(n[o]),i=t.invertExtent(n[a]),[r[0]===void 0?r[1]:r[0],i[1]===void 0?i[0]:i[1]]}}function Fu(){const t=eu().unknown(void 0),e=t.domain,n=t.range;let r=[0,1],i,o,a=!1,s=0,c=0,u=.5;delete t.unknown;function f(){const l=e().length,d=r[1]<r[0],p=r[1-d],h=ku(l,s,c);let m=r[d-0];i=(p-m)/(h||1),a&&(i=Math.floor(i)),m+=(p-m-i*(l-s))*u,o=i*(1-s),a&&(m=Math.round(m),o=Math.round(o));const g=_t(l).map(y=>m+i*y);return n(d?g.reverse():g)}return t.domain=function(l){return arguments.length?(e(l),f()):e()},t.range=function(l){return arguments.length?(r=[+l[0],+l[1]],f()):r.slice()},t.rangeRound=function(l){return r=[+l[0],+l[1]],a=!0,f()},t.bandwidth=function(){return o},t.step=function(){return i},t.round=function(l){return arguments.length?(a=!!l,f()):a},t.padding=function(l){return arguments.length?(c=Math.max(0,Math.min(1,l)),s=c,f()):s},t.paddingInner=function(l){return arguments.length?(s=Math.max(0,Math.min(1,l)),f()):s},t.paddingOuter=function(l){return arguments.length?(c=Math.max(0,Math.min(1,l)),f()):c},t.align=function(l){return arguments.length?(u=Math.max(0,Math.min(1,l)),f()):u},t.invertRange=function(l){if(l[0]==null||l[1]==null)return;const d=r[1]<r[0],p=d?n().reverse():n(),h=p.length-1;let m=+l[0],g=+l[1],y,b,w;if(!(m!==m||g!==g)&&(g<m&&(w=m,m=g,g=w),!(g<p[0]||m>r[1-d])))return y=Math.max(0,Cc(p,m)-1),b=m===g?y:Cc(p,g)-1,m-p[y]>o+1e-10&&++y,d&&(w=y,y=h-b,b=h-w),y>b?void 0:e().slice(y,b+1)},t.invert=function(l){const d=t.invertRange([l,l]);return d&&d[0]},t.copy=function(){return Fu().domain(e()).range(r).round(a).paddingInner(s).paddingOuter(c).align(u)},f()}function cp(t){const e=t.copy;return t.padding=t.paddingOuter,delete t.paddingInner,t.copy=function(){return cp(e())},t}function i4(){return cp(Fu().paddingInner(1))}var o4=Array.prototype.map;function a4(t){return o4.call(t,fi)}const s4=Array.prototype.slice;function up(){let t=[],e=[];function n(r){return r==null||r!==r?void 0:e[(Mn(t,r)-1)%e.length]}return n.domain=function(r){return arguments.length?(t=a4(r),n):t.slice()},n.range=function(r){return arguments.length?(e=s4.call(r),n):e.slice()},n.tickFormat=function(r,i){return R0(t[0],tt(t),r??10,i)},n.copy=function(){return up().domain(n.domain()).range(n.range())},n}const Fa={};function c4(t,e,n){const r=function(){const o=e();return o.invertRange||(o.invertRange=o.invert?n4(o):o.invertExtent?r4(o):void 0),o.type=t,o};return r.metadata=aa(vc(n)),r}function X(t,e,n){return arguments.length>1?(Fa[t]=c4(t,e,n),this):u4(t)?Fa[t]:void 0}X(t4,j0),X(Ir,Na,he),X(tn,wu,[he,tn]),X(zi,Eu,he),X(Ri,Xw,he),X(Oa,_0,he),X(np,Kw,[he,sp]),X(rp,Jw,[he,sp]),X(ht,Mu,[he,Xe]),X("".concat(ht,"-").concat(Ir),Mu,[he,Xe]),X("".concat(ht,"-").concat(tn),K0,[he,Xe,tn]),X("".concat(ht,"-").concat(zi),Tu,[he,Xe]),X("".concat(ht,"-").concat(Ri),$w,[he,Xe]),X("".concat(ht,"-").concat(Oa),J0,[he,Xe]),X("".concat(kr,"-").concat(Ir),$0,[he,Xe]),X("".concat(kr,"-").concat(tn),ep,[he,Xe,tn]),X("".concat(kr,"-").concat(zi),Iu,[he,Xe]),X("".concat(kr,"-").concat(Ri),e4,[he,Xe]),X("".concat(kr,"-").concat(Oa),tp,[he,Xe]),X(Nu,X0,[Ui,Nu]),X(ip,Z0,Ui),X(op,q0,Ui),X(Ou,up,[ji,Ui]),X(Lu,eu,ji),X(ap,Fu,ji),X(Bu,i4,ji);function u4(t){return En(Fa,t)}function Hi(t,e){const n=Fa[t];return n&&n.metadata[e]}function Le(t){return Hi(t,he)}function nn(t){return Hi(t,ji)}function Hn(t){return Hi(t,Ui)}function lp(t){return Hi(t,tn)}function Pa(t){return Hi(t,Xe)}function l4(t,e){const n=e[0],r=tt(e)-n;return function(i){return t(n+i*r)}}function za(t,e,n){return vu(fp(e||"rgb",n),t)}function f4(t,e){const n=new Array(e),r=e+1;for(let i=0;i<e;)n[i]=t(++i/r);return n}function fp(t,e){const n=Pw[d4(t)];return e!=null&&n&&n.gamma?n.gamma(e):n}function d4(t){return"interpolate"+t.toLowerCase().split("-").map(e=>e[0].toUpperCase()+e.slice(1)).join("")}const h4={blues:"cfe1f2bed8eca8cee58fc1de74b2d75ba3cf4592c63181bd206fb2125ca40a4a90",greens:"d3eecdc0e6baabdda594d3917bc77d60ba6c46ab5e329a512089430e7735036429",greys:"e2e2e2d4d4d4c4c4c4b1b1b19d9d9d8888887575756262624d4d4d3535351e1e1e",oranges:"fdd8b3fdc998fdb87bfda55efc9244f87f2cf06b18e4580bd14904b93d029f3303",purples:"e2e1efd4d4e8c4c5e0b4b3d6a3a0cc928ec3827cb97566ae684ea25c3696501f8c",reds:"fdc9b4fcb49afc9e80fc8767fa7051f6573fec3f2fdc2a25c81b1db21218970b13",blueGreen:"d5efedc1e8e0a7ddd18bd2be70c6a958ba9144ad77319c5d2089460e7736036429",bluePurple:"ccddecbad0e4a8c2dd9ab0d4919cc98d85be8b6db28a55a6873c99822287730f71",greenBlue:"d3eecec5e8c3b1e1bb9bd8bb82cec269c2ca51b2cd3c9fc7288abd1675b10b60a1",orangeRed:"fddcaffdcf9bfdc18afdad77fb9562f67d53ee6545e24932d32d1ebf130da70403",purpleBlue:"dbdaebc8cee4b1c3de97b7d87bacd15b9fc93a90c01e7fb70b70ab056199045281",purpleBlueGreen:"dbd8eac8cee4b0c3de93b7d872acd1549fc83892bb1c88a3097f8702736b016353",purpleRed:"dcc9e2d3b3d7ce9eccd186c0da6bb2e14da0e23189d91e6fc61159ab07498f023a",redPurple:"fccfccfcbec0faa9b8f98faff571a5ec539ddb3695c41b8aa908808d0179700174",yellowGreen:"e4f4acd1eca0b9e2949ed68880c97c62bb6e47aa5e3297502083440e723b036034",yellowOrangeBrown:"feeaa1fedd84fecc63feb746fca031f68921eb7215db5e0bc54c05ab3d038f3204",yellowOrangeRed:"fee087fed16ffebd59fea849fd903efc7335f9522bee3423de1b20ca0b22af0225",blueOrange:"134b852f78b35da2cb9dcae1d2e5eff2f0ebfce0bafbbf74e8932fc5690d994a07",brownBlueGreen:"704108a0651ac79548e3c78af3e6c6eef1eac9e9e48ed1c74da79e187a72025147",purpleGreen:"5b1667834792a67fb6c9aed3e6d6e8eff0efd9efd5aedda971bb75368e490e5e29",purpleOrange:"4114696647968f83b7b9b4d6dadbebf3eeeafce0bafbbf74e8932fc5690d994a07",redBlue:"8c0d25bf363adf745ef4ae91fbdbc9f2efeed2e5ef9dcae15da2cb2f78b3134b85",redGrey:"8c0d25bf363adf745ef4ae91fcdccbfaf4f1e2e2e2c0c0c0969696646464343434",yellowGreenBlue:"eff9bddbf1b4bde5b594d5b969c5be45b4c22c9ec02182b82163aa23479c1c3185",redYellowBlue:"a50026d4322cf16e43fcac64fedd90faf8c1dcf1ecabd6e875abd04a74b4313695",redYellowGreen:"a50026d4322cf16e43fcac63fedd8df9f7aed7ee8ea4d86e64bc6122964f006837",pinkYellowGreen:"8e0152c0267edd72adf0b3d6faddedf5f3efe1f2cab6de8780bb474f9125276419",spectral:"9e0142d13c4bf0704afcac63fedd8dfbf8b0e0f3a1a9dda269bda94288b55e4fa2",viridis:"440154470e61481a6c482575472f7d443a834144873d4e8a39568c35608d31688e2d708e2a788e27818e23888e21918d1f988b1fa08822a8842ab07f35b77943bf7154c56866cc5d7ad1518fd744a5db36bcdf27d2e21be9e51afde725",magma:"0000040404130b0924150e3720114b2c11603b0f704a107957157e651a80721f817f24828c29819a2e80a8327db6377ac43c75d1426fde4968e95462f1605df76f5cfa7f5efc8f65fe9f6dfeaf78febf84fece91fddea0fcedaffcfdbf",inferno:"0000040403130c0826170c3b240c4f330a5f420a68500d6c5d126e6b176e781c6d86216b932667a12b62ae305cbb3755c73e4cd24644dd513ae65c30ed6925f3771af8850ffb9506fca50afcb519fac62df6d645f2e661f3f484fcffa4",plasma:"0d088723069033059742039d5002a25d01a66a00a87801a88405a7900da49c179ea72198b12a90ba3488c33d80cb4779d35171da5a69e16462e76e5bed7953f2834cf68f44fa9a3dfca636fdb32ffec029fcce25f9dc24f5ea27f0f921",cividis:"00205100235800265d002961012b65042e670831690d346b11366c16396d1c3c6e213f6e26426e2c456e31476e374a6e3c4d6e42506e47536d4c566d51586e555b6e5a5e6e5e616e62646f66676f6a6a706e6d717270717573727976737c79747f7c75827f758682768985778c8877908b78938e789691789a94789e9778a19b78a59e77a9a177aea575b2a874b6ab73bbaf71c0b26fc5b66dc9b96acebd68d3c065d8c462ddc85fe2cb5ce7cf58ebd355f0d652f3da4ff7de4cfae249fce647",rainbow:"6e40aa883eb1a43db3bf3cafd83fa4ee4395fe4b83ff576eff6659ff7847ff8c38f3a130e2b72fcfcc36bee044aff05b8ff4576ff65b52f6673af27828ea8d1ddfa319d0b81cbecb23abd82f96e03d82e14c6edb5a5dd0664dbf6e40aa",sinebow:"ff4040fc582af47218e78d0bd5a703bfbf00a7d5038de70b72f41858fc2a40ff402afc5818f4720be78d03d5a700bfbf03a7d50b8de71872f42a58fc4040ff582afc7218f48d0be7a703d5bf00bfd503a7e70b8df41872fc2a58ff4040",turbo:"23171b32204a3e2a71453493493eae4b49c54a53d7485ee44569ee4074f53c7ff8378af93295f72e9ff42ba9ef28b3e926bce125c5d925cdcf27d5c629dcbc2de3b232e9a738ee9d3ff39347f68950f9805afc7765fd6e70fe667cfd5e88fc5795fb51a1f84badf545b9f140c5ec3cd0e637dae034e4d931ecd12ef4c92bfac029ffb626ffad24ffa223ff9821ff8d1fff821dff771cfd6c1af76118f05616e84b14df4111d5380fcb2f0dc0260ab61f07ac1805a313029b0f00950c00910b00",browns:"eedbbdecca96e9b97ae4a865dc9856d18954c7784cc0673fb85536ad44339f3632",tealBlues:"bce4d89dd3d181c3cb65b3c245a2b9368fae347da0306a932c5985",teals:"bbdfdfa2d4d58ac9c975bcbb61b0af4da5a43799982b8b8c1e7f7f127273006667",warmGreys:"dcd4d0cec5c1c0b8b4b3aaa7a59c9998908c8b827f7e7673726866665c5a59504e",goldGreen:"f4d166d5ca60b6c35c98bb597cb25760a6564b9c533f8f4f33834a257740146c36",goldOrange:"f4d166f8be5cf8aa4cf5983bf3852aef701be2621fd65322c54923b142239e3a26",goldRed:"f4d166f6be59f9aa51fc964ef6834bee734ae56249db5247cf4244c43141b71d3e",lightGreyRed:"efe9e6e1dad7d5cbc8c8bdb9bbaea9cd967ddc7b43e15f19df4011dc000b",lightGreyTeal:"e4eaead6dcddc8ced2b7c2c7a6b4bc64b0bf22a6c32295c11f85be1876bc",lightMulti:"e0f1f2c4e9d0b0de9fd0e181f6e072f6c053f3993ef77440ef4a3c",lightOrange:"f2e7daf7d5baf9c499fab184fa9c73f68967ef7860e8645bde515bd43d5b",lightTealBlue:"e3e9e0c0dccf9aceca7abfc859afc0389fb9328dad2f7ca0276b95255988",darkBlue:"3232322d46681a5c930074af008cbf05a7ce25c0dd38daed50f3faffffff",darkGold:"3c3c3c584b37725e348c7631ae8b2bcfa424ecc31ef9de30fff184ffffff",darkGreen:"3a3a3a215748006f4d048942489e4276b340a6c63dd2d836ffeb2cffffaa",darkMulti:"3737371f5287197d8c29a86995ce3fffe800ffffff",darkRed:"3434347036339e3c38cc4037e75d1eec8620eeab29f0ce32ffeb2c"},p4={category10:"1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf",category20:"1f77b4aec7e8ff7f0effbb782ca02c98df8ad62728ff98969467bdc5b0d58c564bc49c94e377c2f7b6d27f7f7fc7c7c7bcbd22dbdb8d17becf9edae5",category20b:"393b795254a36b6ecf9c9ede6379398ca252b5cf6bcedb9c8c6d31bd9e39e7ba52e7cb94843c39ad494ad6616be7969c7b4173a55194ce6dbdde9ed6",category20c:"3182bd6baed69ecae1c6dbefe6550dfd8d3cfdae6bfdd0a231a35474c476a1d99bc7e9c0756bb19e9ac8bcbddcdadaeb636363969696bdbdbdd9d9d9",tableau10:"4c78a8f58518e4575672b7b254a24beeca3bb279a2ff9da69d755dbab0ac",tableau20:"4c78a89ecae9f58518ffbf7954a24b88d27ab79a20f2cf5b43989483bcb6e45756ff9d9879706ebab0acd67195fcbfd2b279a2d6a5c99e765fd8b5a5",accent:"7fc97fbeaed4fdc086ffff99386cb0f0027fbf5b17666666",dark2:"1b9e77d95f027570b3e7298a66a61ee6ab02a6761d666666",paired:"a6cee31f78b4b2df8a33a02cfb9a99e31a1cfdbf6fff7f00cab2d66a3d9affff99b15928",pastel1:"fbb4aeb3cde3ccebc5decbe4fed9a6ffffcce5d8bdfddaecf2f2f2",pastel2:"b3e2cdfdcdaccbd5e8f4cae4e6f5c9fff2aef1e2cccccccc",set1:"e41a1c377eb84daf4a984ea3ff7f00ffff33a65628f781bf999999",set2:"66c2a5fc8d628da0cbe78ac3a6d854ffd92fe5c494b3b3b3",set3:"8dd3c7ffffb3bebadafb807280b1d3fdb462b3de69fccde5d9d9d9bc80bdccebc5ffed6f"};function dp(t){const e=t.length/6|0,n=new Array(e);for(let r=0;r<e;)n[r]="#"+t.slice(r*6,++r*6);return n}function hp(t,e){for(const n in t)Pu(n,e(t[n]))}const pp={};hp(p4,dp),hp(h4,t=>za(dp(t)));function Pu(t,e){return t=t&&t.toLowerCase(),arguments.length>1?(pp[t]=e,this):pp[t]}const UN="";function mp(t,e){var n=t.getBoundingClientRect();return[e.clientX-n.left-t.clientLeft,e.clientY-n.top-t.clientTop]}/**
1
+ (function(le,se){typeof exports=="object"&&typeof module<"u"?se(exports):typeof define=="function"&&define.amd?define(["exports"],se):(le=typeof globalThis<"u"?globalThis:le||self,se(le.genomeSpyApp={}))})(this,function(le){var Kl,kb,Ts,Ms,xn,Ns,Jl,Db,gr,Gi,od,f_,sd,h_,oo,uu,eu,Ib,tu,Tb,nu,Mb,cd,d_,ru,Fs,$r,zi,iu,ld,p_,ud,g_,au,Nb,fd,m_,hd,b_,ou,Fb;"use strict";var $Z=Object.defineProperty;var VZ=(le,se,qe)=>se in le?$Z(le,se,{enumerable:!0,configurable:!0,writable:!0,value:qe}):le[se]=qe;var En=(le,se,qe)=>(VZ(le,typeof se!="symbol"?se+"":se,qe),qe),_b=(le,se,qe)=>{if(!se.has(le))throw TypeError("Cannot "+qe)};var ce=(le,se,qe)=>(_b(le,se,"read from private field"),qe?qe.call(le):se.get(le)),Fe=(le,se,qe)=>{if(se.has(le))throw TypeError("Cannot add the same private member more than once");se instanceof WeakSet?se.add(le):se.set(le,qe)},Sn=(le,se,qe,$i)=>(_b(le,se,"write to private field"),$i?$i.call(le,qe):se.set(le,qe),qe),c_=(le,se,qe,$i)=>({set _(yd){Sn(le,se,yd,qe)},get _(){return ce(le,se,$i)}}),Ze=(le,se,qe)=>(_b(le,se,"access private method"),qe);function se(e,t,n){return e.fields=t||[],e.fname=n,e}function qe(e){return e==null?null:e.fname}function $i(e){return e==null?null:e.fields}function yd(e){return e.length===1?y_(e[0]):v_(e)}const y_=e=>function(t){return t[e]},v_=e=>{const t=e.length;return function(n){for(let r=0;r<t;++r)n=n[e[r]];return n}};function Ye(e){throw Error(e)}function w_(e){const t=[],n=e.length;let r=null,i=0,a="",o,s,l;e=e+"";function c(){t.push(a+e.substring(o,s)),a="",o=s+1}for(o=s=0;s<n;++s)if(l=e[s],l==="\\")a+=e.substring(o,s),a+=e.substring(++s,++s),o=s;else if(l===r)c(),r=null,i=-1;else{if(r)continue;o===i&&l==='"'||o===i&&l==="'"?(o=s+1,r=l):l==="."&&!i?s>o?c():o=s+1:l==="["?(s>o&&c(),i=o=s+1):l==="]"&&(i||Ye("Access path missing open bracket: "+e),i>0&&c(),i=0,o=s+1)}return i&&Ye("Access path missing closing bracket: "+e),r&&Ye("Access path missing closing quote: "+e),s>o&&(s++,c()),t}function fu(e,t,n){const r=w_(e);return e=r.length===1?r[0]:e,se((n&&n.get||yd)(r),[e],t||e)}fu("id");const hu=se(e=>e,[],"identity");se(()=>0,[],"zero"),se(()=>1,[],"one"),se(()=>!0,[],"true"),se(()=>!1,[],"false");var en=Array.isArray;function Ht(e){return e===Object(e)}function Cn(e){return e[e.length-1]}function Rs(e){return e==null||e===""?null:+e}const Bb=e=>t=>e*Math.exp(t),Lb=e=>t=>Math.log(e*t),x_=e=>t=>Math.sign(t)*Math.log1p(Math.abs(t/e)),A_=e=>t=>Math.sign(t)*Math.expm1(Math.abs(t))*e,du=e=>t=>t<0?-Math.pow(-t,e):Math.pow(t,e);function vd(e,t,n,r){const i=n(e[0]),a=n(Cn(e)),o=(a-i)*t;return[r(i-o),r(a-o)]}function E_(e,t){return vd(e,t,Rs,hu)}function S_(e,t){var n=Math.sign(e[0]);return vd(e,t,Lb(n),Bb(n))}function C_(e,t,n){return vd(e,t,du(n),du(1/n))}function pu(e,t,n,r,i){const a=r(e[0]),o=r(Cn(e)),s=t!=null?r(t):(a+o)/2;return[i(s+(a-s)*n),i(s+(o-s)*n)]}function wd(e,t,n){return pu(e,t,n,Rs,hu)}function Ob(e,t,n){const r=Math.sign(e[0]);return pu(e,t,n,Lb(r),Bb(r))}function xd(e,t,n,r){return pu(e,t,n,du(r),du(1/r))}function __(e,t,n,r){return pu(e,t,n,x_(r),A_(r))}function Ad(e){return e!=null?en(e)?e:[e]:[]}function k_(e,t,n){let r=e[0],i=e[1],a;return i<r&&(a=i,i=r,r=a),a=i-r,a>=n-t?[t,n]:[r=Math.min(Math.max(r,t),n-a),r+a]}function Tt(e){return typeof e=="function"}const D_="descending";function Rb(e,t,n){n=n||{},t=Ad(t)||[];const r=[],i=[],a={},o=n.comparator||I_;return Ad(e).forEach((s,l)=>{s!=null&&(r.push(t[l]===D_?-1:1),i.push(s=Tt(s)?s:fu(s,null,n)),($i(s)||[]).forEach(c=>a[c]=1))}),i.length===0?null:se(o(i,r),Object.keys(a))}const zb=(e,t)=>(e<t||e==null)&&t!=null?-1:(e>t||t==null)&&e!=null?1:(t=t instanceof Date?+t:t,(e=e instanceof Date?+e:e)!==e&&t===t?-1:t!==t&&e===e?1:0),I_=(e,t)=>e.length===1?T_(e[0],t[0]):M_(e,t,e.length),T_=(e,t)=>function(n,r){return zb(e(n),e(r))*t},M_=(e,t,n)=>(t.push(0),function(r,i){let a,o=0,s=-1;for(;o===0&&++s<n;)a=e[s],o=zb(a(r),a(i));return o*t[s]});function N_(e){return Tt(e)?e:()=>e}function Ed(e){for(let t,n,r=1,i=arguments.length;r<i;++r){t=arguments[r];for(n in t)e[n]=t[n]}return e}const F_=Object.prototype.hasOwnProperty;function Vi(e,t){return F_.call(e,t)}function gu(e){return typeof e=="boolean"}function B_(e){return Object.prototype.toString.call(e)==="[object Date]"}function L_(e){return e&&Tt(e[Symbol.iterator])}function Ke(e){return typeof e=="number"}function ze(e){return typeof e=="string"}function O_(e,t){const n=e[0],r=Cn(e),i=+t;return i?i===1?r:n+i*(r-n):n}function mu(e){return e&&Cn(e)-e[0]||0}function bu(e){return en(e)?"["+e.map(bu)+"]":Ht(e)||ze(e)?JSON.stringify(e).replace("\u2028","\\u2028").replace("\u2029","\\u2029"):e}function R_(e){return e==null||e===""?null:!e||e==="false"||e==="0"?!1:!!e}const z_=e=>Ke(e)||B_(e)?e:Date.parse(e);function P_(e,t){return t=t||z_,e==null||e===""?null:t(e)}function U_(e){return e==null||e===""?null:e+""}function yu(e){const t={},n=e.length;for(let r=0;r<n;++r)t[e[r]]=!0;return t}var Pb={},Sd={},Cd=34,zs=10,_d=13;function Ub(e){return new Function("d","return {"+e.map(function(t,n){return JSON.stringify(t)+": d["+n+'] || ""'}).join(",")+"}")}function j_(e,t){var n=Ub(e);return function(r,i){return t(n(r),i,e)}}function jb(e){var t=Object.create(null),n=[];return e.forEach(function(r){for(var i in r)i in t||n.push(t[i]=i)}),n}function Mt(e,t){var n=e+"",r=n.length;return r<t?new Array(t-r+1).join(0)+n:n}function H_(e){return e<0?"-"+Mt(-e,6):e>9999?"+"+Mt(e,6):Mt(e,4)}function G_(e){var t=e.getUTCHours(),n=e.getUTCMinutes(),r=e.getUTCSeconds(),i=e.getUTCMilliseconds();return isNaN(e)?"Invalid Date":H_(e.getUTCFullYear())+"-"+Mt(e.getUTCMonth()+1,2)+"-"+Mt(e.getUTCDate(),2)+(i?"T"+Mt(t,2)+":"+Mt(n,2)+":"+Mt(r,2)+"."+Mt(i,3)+"Z":r?"T"+Mt(t,2)+":"+Mt(n,2)+":"+Mt(r,2)+"Z":n||t?"T"+Mt(t,2)+":"+Mt(n,2)+"Z":"")}function Hb(e){var t=new RegExp('["'+e+`
2
+ \r]`),n=e.charCodeAt(0);function r(f,h){var d,p,g=i(f,function(y,v){if(d)return d(y,v-1);p=y,d=h?j_(y,h):Ub(y)});return g.columns=p||[],g}function i(f,h){var d=[],p=f.length,g=0,y=0,v,S=p<=0,k=!1;f.charCodeAt(p-1)===zs&&--p,f.charCodeAt(p-1)===_d&&--p;function C(){if(S)return Sd;if(k)return k=!1,Pb;var w,A=g,T;if(f.charCodeAt(A)===Cd){for(;g++<p&&f.charCodeAt(g)!==Cd||f.charCodeAt(++g)===Cd;);return(w=g)>=p?S=!0:(T=f.charCodeAt(g++))===zs?k=!0:T===_d&&(k=!0,f.charCodeAt(g)===zs&&++g),f.slice(A+1,w-1).replace(/""/g,'"')}for(;g<p;){if((T=f.charCodeAt(w=g++))===zs)k=!0;else if(T===_d)k=!0,f.charCodeAt(g)===zs&&++g;else if(T!==n)continue;return f.slice(A,w)}return S=!0,f.slice(A,p)}for(;(v=C())!==Sd;){for(var E=[];v!==Pb&&v!==Sd;)E.push(v),v=C();h&&(E=h(E,y++))==null||d.push(E)}return d}function a(f,h){return f.map(function(d){return h.map(function(p){return u(d[p])}).join(e)})}function o(f,h){return h==null&&(h=jb(f)),[h.map(u).join(e)].concat(a(f,h)).join(`
3
+ `)}function s(f,h){return h==null&&(h=jb(f)),a(f,h).join(`
4
+ `)}function l(f){return f.map(c).join(`
5
+ `)}function c(f){return f.map(u).join(e)}function u(f){return f==null?"":f instanceof Date?G_(f):t.test(f+="")?'"'+f.replace(/"/g,'""')+'"':f}return{parse:r,parseRows:i,format:o,formatBody:s,formatRows:l,formatRow:c,formatValue:u}}var $_=Hb(" "),V_=$_.parseRows;function Y_(e){return e}function Q_(e){if(e==null)return Y_;var t,n,r=e.scale[0],i=e.scale[1],a=e.translate[0],o=e.translate[1];return function(s,l){l||(t=n=0);var c=2,u=s.length,f=new Array(u);for(f[0]=(t+=s[0])*r+a,f[1]=(n+=s[1])*i+o;c<u;)f[c]=s[c],++c;return f}}function Z_(e,t){for(var n,r=e.length,i=r-t;i<--r;)n=e[i],e[i++]=e[r],e[r]=n}function q_(e,t){return typeof t=="string"&&(t=e.objects[t]),t.type==="GeometryCollection"?{type:"FeatureCollection",features:t.geometries.map(function(n){return Gb(e,n)})}:Gb(e,t)}function Gb(e,t){var n=t.id,r=t.bbox,i=t.properties==null?{}:t.properties,a=$b(e,t);return n==null&&r==null?{type:"Feature",properties:i,geometry:a}:r==null?{type:"Feature",id:n,properties:i,geometry:a}:{type:"Feature",id:n,bbox:r,properties:i,geometry:a}}function $b(e,t){var n=Q_(e.transform),r=e.arcs;function i(u,f){f.length&&f.pop();for(var h=r[u<0?~u:u],d=0,p=h.length;d<p;++d)f.push(n(h[d],d));u<0&&Z_(f,p)}function a(u){return n(u)}function o(u){for(var f=[],h=0,d=u.length;h<d;++h)i(u[h],f);return f.length<2&&f.push(f[0]),f}function s(u){for(var f=o(u);f.length<4;)f.push(f[0]);return f}function l(u){return u.map(s)}function c(u){var f=u.type,h;switch(f){case"GeometryCollection":return{type:f,geometries:u.geometries.map(c)};case"Point":h=a(u.coordinates);break;case"MultiPoint":h=u.coordinates.map(a);break;case"LineString":h=o(u.arcs);break;case"MultiLineString":h=u.arcs.map(o);break;case"Polygon":h=l(u.arcs);break;case"MultiPolygon":h=u.arcs.map(l);break;default:return null}return{type:f,coordinates:h}}return c(t)}function W_(e,t){var n={},r={},i={},a=[],o=-1;t.forEach(function(c,u){var f=e.arcs[c<0?~c:c],h;f.length<3&&!f[1][0]&&!f[1][1]&&(h=t[++o],t[o]=c,t[u]=h)}),t.forEach(function(c){var u=s(c),f=u[0],h=u[1],d,p;if(d=i[f])if(delete i[d.end],d.push(c),d.end=h,p=r[h]){delete r[p.start];var g=p===d?d:d.concat(p);r[g.start=d.start]=i[g.end=p.end]=g}else r[d.start]=i[d.end]=d;else if(d=r[h])if(delete r[d.start],d.unshift(c),d.start=f,p=i[f]){delete i[p.end];var y=p===d?d:p.concat(d);r[y.start=p.start]=i[y.end=d.end]=y}else r[d.start]=i[d.end]=d;else d=[c],r[d.start=f]=i[d.end=h]=d});function s(c){var u=e.arcs[c<0?~c:c],f=u[0],h;return e.transform?(h=[0,0],u.forEach(function(d){h[0]+=d[0],h[1]+=d[1]})):h=u[u.length-1],c<0?[h,f]:[f,h]}function l(c,u){for(var f in c){var h=c[f];delete u[h.start],delete h.start,delete h.end,h.forEach(function(d){n[d<0?~d:d]=1}),a.push(h)}}return l(i,r),l(r,i),t.forEach(function(c){n[c<0?~c:c]||a.push([c])}),a}function X_(e){return $b(e,K_.apply(this,arguments))}function K_(e,t,n){var r,i,a;if(arguments.length>1)r=J_(e,t,n);else for(i=0,r=new Array(a=e.arcs.length);i<a;++i)r[i]=i;return{type:"MultiLineString",arcs:W_(e,r)}}function J_(e,t,n){var r=[],i=[],a;function o(f){var h=f<0?~f:f;(i[h]||(i[h]=[])).push({i:f,g:a})}function s(f){f.forEach(o)}function l(f){f.forEach(s)}function c(f){f.forEach(l)}function u(f){switch(a=f,f.type){case"GeometryCollection":f.geometries.forEach(u);break;case"LineString":s(f.arcs);break;case"MultiLineString":case"Polygon":l(f.arcs);break;case"MultiPolygon":c(f.arcs);break}}return u(t),i.forEach(n==null?function(f){r.push(f[0].i)}:function(f){n(f[0].g,f[f.length-1].g)&&r.push(f[0].i)}),r}function Yi(e,t){return e==null||t==null?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function ek(e,t){return e==null||t==null?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function vu(e){let t,n,r;e.length!==2?(t=Yi,n=(s,l)=>Yi(e(s),l),r=(s,l)=>e(s)-l):(t=e===Yi||e===ek?e:tk,n=e,r=e);function i(s,l,c=0,u=s.length){if(c<u){if(t(l,l)!==0)return u;do{const f=c+u>>>1;n(s[f],l)<0?c=f+1:u=f}while(c<u)}return c}function a(s,l,c=0,u=s.length){if(c<u){if(t(l,l)!==0)return u;do{const f=c+u>>>1;n(s[f],l)<=0?c=f+1:u=f}while(c<u)}return c}function o(s,l,c=0,u=s.length){const f=i(s,l,c,u-1);return f>c&&r(s[f-1],l)>-r(s[f],l)?f-1:f}return{left:i,center:o,right:a}}function tk(){return 0}function Vb(e){return e===null?NaN:+e}const Yb=vu(Yi),kd=Yb.right;Yb.left,vu(Vb).center;const Qi=kd;function nk(e,t){let n=0;if(t===void 0)for(let r of e)r!=null&&(r=+r)>=r&&++n;else{let r=-1;for(let i of e)(i=t(i,++r,e))!=null&&(i=+i)>=i&&++n}return n}function wu(e,t){let n,r;if(t===void 0)for(const i of e)i!=null&&(n===void 0?i>=i&&(n=r=i):(n>i&&(n=i),r<i&&(r=i)));else{let i=-1;for(let a of e)(a=t(a,++i,e))!=null&&(n===void 0?a>=a&&(n=r=a):(n>a&&(n=a),r<a&&(r=a)))}return[n,r]}class Zi extends Map{constructor(t,n=ak){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:n}}),t!=null)for(const[r,i]of t)this.set(r,i)}get(t){return super.get(Qb(this,t))}has(t){return super.has(Qb(this,t))}set(t,n){return super.set(rk(this,t),n)}delete(t){return super.delete(ik(this,t))}}function Qb({_intern:e,_key:t},n){const r=t(n);return e.has(r)?e.get(r):n}function rk({_intern:e,_key:t},n){const r=t(n);return e.has(r)?e.get(r):(e.set(r,n),n)}function ik({_intern:e,_key:t},n){const r=t(n);return e.has(r)&&(n=e.get(r),e.delete(r)),n}function ak(e){return e!==null&&typeof e=="object"?e.valueOf():e}function Ps(e){return e}function Us(e,...t){return Dd(e,Ps,Ps,t)}function ok(e,...t){return Dd(e,Array.from,Ps,t)}function sk(e,t,...n){return Dd(e,Ps,t,n)}function Dd(e,t,n,r){return function i(a,o){if(o>=r.length)return n(a);const s=new Zi,l=r[o++];let c=-1;for(const u of a){const f=l(u,++c,a),h=s.get(f);h?h.push(u):s.set(f,[u])}for(const[u,f]of s)s.set(u,i(f,o));return t(s)}(e,0)}function ck(e,t){return Array.from(t,n=>e[n])}function lk(e,...t){if(typeof e[Symbol.iterator]!="function")throw new TypeError("values is not iterable");e=Array.from(e);let[n]=t;if(n&&n.length!==2||t.length>1){const r=Uint32Array.from(e,(i,a)=>a);return t.length>1?(t=t.map(i=>e.map(i)),r.sort((i,a)=>{for(const o of t){const s=Id(o[i],o[a]);if(s)return s}})):(n=e.map(n),r.sort((i,a)=>Id(n[i],n[a]))),ck(e,r)}return e.sort(uk(n))}function uk(e=Yi){if(e===Yi)return Id;if(typeof e!="function")throw new TypeError("compare is not a function");return(t,n)=>{const r=e(t,n);return r||r===0?r:(e(n,n)===0)-(e(t,t)===0)}}function Id(e,t){return(e==null||!(e>=e))-(t==null||!(t>=t))||(e<t?-1:e>t?1:0)}var fk=Array.prototype,hk=fk.slice;function xu(e){return()=>e}var Td=Math.sqrt(50),Md=Math.sqrt(10),Nd=Math.sqrt(2);function js(e,t,n){var r,i=-1,a,o,s;if(t=+t,e=+e,n=+n,e===t&&n>0)return[e];if((r=t<e)&&(a=e,e=t,t=a),(s=Hs(e,t,n))===0||!isFinite(s))return[];if(s>0){let l=Math.round(e/s),c=Math.round(t/s);for(l*s<e&&++l,c*s>t&&--c,o=new Array(a=c-l+1);++i<a;)o[i]=(l+i)*s}else{s=-s;let l=Math.round(e*s),c=Math.round(t*s);for(l/s<e&&++l,c/s>t&&--c,o=new Array(a=c-l+1);++i<a;)o[i]=(l+i)/s}return r&&o.reverse(),o}function Hs(e,t,n){var r=(t-e)/Math.max(0,n),i=Math.floor(Math.log(r)/Math.LN10),a=r/Math.pow(10,i);return i>=0?(a>=Td?10:a>=Md?5:a>=Nd?2:1)*Math.pow(10,i):-Math.pow(10,-i)/(a>=Td?10:a>=Md?5:a>=Nd?2:1)}function qi(e,t,n){var r=Math.abs(t-e)/Math.max(0,n),i=Math.pow(10,Math.floor(Math.log(r)/Math.LN10)),a=r/i;return a>=Td?i*=10:a>=Md?i*=5:a>=Nd&&(i*=2),t<e?-i:i}function dk(e,t,n){let r;for(;;){const i=Hs(e,t,n);if(i===r||i===0||!isFinite(i))return[e,t];i>0?(e=Math.floor(e/i)*i,t=Math.ceil(t/i)*i):i<0&&(e=Math.ceil(e*i)/i,t=Math.floor(t*i)/i),r=i}}function pk(e){return Math.ceil(Math.log(nk(e))/Math.LN2)+1}function gk(){var e=Ps,t=wu,n=pk;function r(i){Array.isArray(i)||(i=Array.from(i));var a,o=i.length,s,l,c=new Array(o);for(a=0;a<o;++a)c[a]=e(i[a],a,i);var u=t(c),f=u[0],h=u[1],d=n(c,f,h);if(!Array.isArray(d)){const v=h,S=+d;if(t===wu&&([f,h]=dk(f,h,S)),d=js(f,h,S),d[0]<=f&&(l=Hs(f,h,S)),d[d.length-1]>=h)if(v>=h&&t===wu){const k=Hs(f,h,S);isFinite(k)&&(k>0?h=(Math.floor(h/k)+1)*k:k<0&&(h=(Math.ceil(h*-k)+1)/-k))}else d.pop()}for(var p=d.length;d[0]<=f;)d.shift(),--p;for(;d[p-1]>h;)d.pop(),--p;var g=new Array(p+1),y;for(a=0;a<=p;++a)y=g[a]=[],y.x0=a>0?d[a-1]:f,y.x1=a<p?d[a]:h;if(isFinite(l)){if(l>0)for(a=0;a<o;++a)(s=c[a])!=null&&f<=s&&s<=h&&g[Math.min(p,Math.floor((s-f)/l))].push(i[a]);else if(l<0){for(a=0;a<o;++a)if((s=c[a])!=null&&f<=s&&s<=h){const v=Math.floor((f-s)*l);g[Math.min(p,v+(d[v]<=s))].push(i[a])}}}else for(a=0;a<o;++a)(s=c[a])!=null&&f<=s&&s<=h&&g[Qi(d,s,0,p)].push(i[a]);return g}return r.value=function(i){return arguments.length?(e=typeof i=="function"?i:xu(i),r):e},r.domain=function(i){return arguments.length?(t=typeof i=="function"?i:xu([i[0],i[1]]),r):t},r.thresholds=function(i){return arguments.length?(n=typeof i=="function"?i:Array.isArray(i)?xu(hk.call(i)):xu(i),r):n},r}function Fd(e,t,n=Vb){if(r=e.length){if((t=+t)<=0||r<2)return+n(e[0],0,e);if(t>=1)return+n(e[r-1],r-1,e);var r,i=(r-1)*t,a=Math.floor(i),o=+n(e[a],a,e),s=+n(e[a+1],a+1,e);return o+(s-o)*(i-a)}}function qr(e,t,n){e=+e,t=+t,n=(i=arguments.length)<2?(t=e,e=0,1):i<3?1:+n;for(var r=-1,i=Math.max(0,Math.ceil((t-e)/n))|0,a=new Array(i);++r<i;)a[r]=e+r*n;return a}function Au(e,t){let n=0;if(t===void 0)for(let r of e)(r=+r)&&(n+=r);else{let r=-1;for(let i of e)(i=+t(i,++r,e))&&(n+=i)}return n}function mk(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)}function Eu(e,t){if((n=(e=t?e.toExponential(t-1):e.toExponential()).indexOf("e"))<0)return null;var n,r=e.slice(0,n);return[r.length>1?r[0]+r.slice(2):r,+e.slice(n+1)]}function uo(e){return e=Eu(Math.abs(e)),e?e[1]:NaN}function bk(e,t){return function(n,r){for(var i=n.length,a=[],o=0,s=e[0],l=0;i>0&&s>0&&(l+s+1>r&&(s=Math.max(1,r-l)),a.push(n.substring(i-=s,i+s)),!((l+=s+1)>r));)s=e[o=(o+1)%e.length];return a.reverse().join(t)}}function yk(e){return function(t){return t.replace(/[0-9]/g,function(n){return e[+n]})}}var vk=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Wr(e){if(!(t=vk.exec(e)))throw new Error("invalid format: "+e);var t;return new Bd({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}Wr.prototype=Bd.prototype;function Bd(e){this.fill=e.fill===void 0?" ":e.fill+"",this.align=e.align===void 0?">":e.align+"",this.sign=e.sign===void 0?"-":e.sign+"",this.symbol=e.symbol===void 0?"":e.symbol+"",this.zero=!!e.zero,this.width=e.width===void 0?void 0:+e.width,this.comma=!!e.comma,this.precision=e.precision===void 0?void 0:+e.precision,this.trim=!!e.trim,this.type=e.type===void 0?"":e.type+""}Bd.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function wk(e){e:for(var t=e.length,n=1,r=-1,i;n<t;++n)switch(e[n]){case".":r=i=n;break;case"0":r===0&&(r=n),i=n;break;default:if(!+e[n])break e;r>0&&(r=0);break}return r>0?e.slice(0,r)+e.slice(i+1):e}var Zb;function xk(e,t){var n=Eu(e,t);if(!n)return e+"";var r=n[0],i=n[1],a=i-(Zb=Math.max(-8,Math.min(8,Math.floor(i/3)))*3)+1,o=r.length;return a===o?r:a>o?r+new Array(a-o+1).join("0"):a>0?r.slice(0,a)+"."+r.slice(a):"0."+new Array(1-a).join("0")+Eu(e,Math.max(0,t+a-1))[0]}function qb(e,t){var n=Eu(e,t);if(!n)return e+"";var r=n[0],i=n[1];return i<0?"0."+new Array(-i).join("0")+r:r.length>i+1?r.slice(0,i+1)+"."+r.slice(i+1):r+new Array(i-r.length+2).join("0")}const Wb={"%":(e,t)=>(e*100).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+"",d:mk,e:(e,t)=>e.toExponential(t),f:(e,t)=>e.toFixed(t),g:(e,t)=>e.toPrecision(t),o:e=>Math.round(e).toString(8),p:(e,t)=>qb(e*100,t),r:qb,s:xk,X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function Xb(e){return e}var Kb=Array.prototype.map,Jb=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function Ak(e){var t=e.grouping===void 0||e.thousands===void 0?Xb:bk(Kb.call(e.grouping,Number),e.thousands+""),n=e.currency===void 0?"":e.currency[0]+"",r=e.currency===void 0?"":e.currency[1]+"",i=e.decimal===void 0?".":e.decimal+"",a=e.numerals===void 0?Xb:yk(Kb.call(e.numerals,String)),o=e.percent===void 0?"%":e.percent+"",s=e.minus===void 0?"−":e.minus+"",l=e.nan===void 0?"NaN":e.nan+"";function c(f){f=Wr(f);var h=f.fill,d=f.align,p=f.sign,g=f.symbol,y=f.zero,v=f.width,S=f.comma,k=f.precision,C=f.trim,E=f.type;E==="n"?(S=!0,E="g"):Wb[E]||(k===void 0&&(k=12),C=!0,E="g"),(y||h==="0"&&d==="=")&&(y=!0,h="0",d="=");var w=g==="$"?n:g==="#"&&/[boxX]/.test(E)?"0"+E.toLowerCase():"",A=g==="$"?r:/[%p]/.test(E)?o:"",T=Wb[E],D=/[defgprs%]/.test(E);k=k===void 0?6:/[gprs]/.test(E)?Math.max(1,Math.min(21,k)):Math.max(0,Math.min(20,k));function M(F){var U=w,q=A,V,pe,Se;if(E==="c")q=T(F)+q,F="";else{F=+F;var tt=F<0||1/F<0;if(F=isNaN(F)?l:T(Math.abs(F),k),C&&(F=wk(F)),tt&&+F==0&&p!=="+"&&(tt=!1),U=(tt?p==="("?p:s:p==="-"||p==="("?"":p)+U,q=(E==="s"?Jb[8+Zb/3]:"")+q+(tt&&p==="("?")":""),D){for(V=-1,pe=F.length;++V<pe;)if(Se=F.charCodeAt(V),48>Se||Se>57){q=(Se===46?i+F.slice(V+1):F.slice(V))+q,F=F.slice(0,V);break}}}S&&!y&&(F=t(F,1/0));var ie=U.length+F.length+q.length,yt=ie<v?new Array(v-ie+1).join(h):"";switch(S&&y&&(F=t(yt+F,yt.length?v-q.length:1/0),yt=""),d){case"<":F=U+F+q+yt;break;case"=":F=U+yt+F+q;break;case"^":F=yt.slice(0,ie=yt.length>>1)+U+F+q+yt.slice(ie);break;default:F=yt+U+F+q;break}return a(F)}return M.toString=function(){return f+""},M}function u(f,h){var d=c((f=Wr(f),f.type="f",f)),p=Math.max(-8,Math.min(8,Math.floor(uo(h)/3)))*3,g=Math.pow(10,-p),y=Jb[8+p/3];return function(v){return d(g*v)+y}}return{format:c,formatPrefix:u}}var Su,rt,Ld;Ek({thousands:",",grouping:[3],currency:["$",""]});function Ek(e){return Su=Ak(e),rt=Su.format,Ld=Su.formatPrefix,Su}function ey(e){return Math.max(0,-uo(Math.abs(e)))}function ty(e,t){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(uo(t)/3)))*3-uo(Math.abs(e)))}function ny(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,uo(t)-uo(e))+1}var Od=new Date,Rd=new Date;function st(e,t,n,r){function i(a){return e(a=arguments.length===0?new Date:new Date(+a)),a}return i.floor=function(a){return e(a=new Date(+a)),a},i.ceil=function(a){return e(a=new Date(a-1)),t(a,1),e(a),a},i.round=function(a){var o=i(a),s=i.ceil(a);return a-o<s-a?o:s},i.offset=function(a,o){return t(a=new Date(+a),o==null?1:Math.floor(o)),a},i.range=function(a,o,s){var l=[],c;if(a=i.ceil(a),s=s==null?1:Math.floor(s),!(a<o)||!(s>0))return l;do l.push(c=new Date(+a)),t(a,s),e(a);while(c<a&&a<o);return l},i.filter=function(a){return st(function(o){if(o>=o)for(;e(o),!a(o);)o.setTime(o-1)},function(o,s){if(o>=o)if(s<0)for(;++s<=0;)for(;t(o,-1),!a(o););else for(;--s>=0;)for(;t(o,1),!a(o););})},n&&(i.count=function(a,o){return Od.setTime(+a),Rd.setTime(+o),e(Od),e(Rd),Math.floor(n(Od,Rd))},i.every=function(a){return a=Math.floor(a),!isFinite(a)||!(a>0)?null:a>1?i.filter(r?function(o){return r(o)%a===0}:function(o){return i.count(0,o)%a===0}):i}),i}var Cu=st(function(){},function(e,t){e.setTime(+e+t)},function(e,t){return t-e});Cu.every=function(e){return e=Math.floor(e),!isFinite(e)||!(e>0)?null:e>1?st(function(t){t.setTime(Math.floor(t/e)*e)},function(t,n){t.setTime(+t+n*e)},function(t,n){return(n-t)/e}):Cu};const zd=Cu;Cu.range;const yr=1e3,tn=yr*60,vr=tn*60,Wi=vr*24,Pd=Wi*7,ry=Wi*30,Ud=Wi*365;var iy=st(function(e){e.setTime(e-e.getMilliseconds())},function(e,t){e.setTime(+e+t*yr)},function(e,t){return(t-e)/yr},function(e){return e.getUTCSeconds()});const Xr=iy;iy.range;var ay=st(function(e){e.setTime(e-e.getMilliseconds()-e.getSeconds()*yr)},function(e,t){e.setTime(+e+t*tn)},function(e,t){return(t-e)/tn},function(e){return e.getMinutes()});const jd=ay;ay.range;var oy=st(function(e){e.setTime(e-e.getMilliseconds()-e.getSeconds()*yr-e.getMinutes()*tn)},function(e,t){e.setTime(+e+t*vr)},function(e,t){return(t-e)/vr},function(e){return e.getHours()});const Hd=oy;oy.range;var sy=st(e=>e.setHours(0,0,0,0),(e,t)=>e.setDate(e.getDate()+t),(e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*tn)/Wi,e=>e.getDate()-1);const Xi=sy;sy.range;function Ki(e){return st(function(t){t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)},function(t,n){t.setDate(t.getDate()+n*7)},function(t,n){return(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*tn)/Pd})}var Gs=Ki(0),_u=Ki(1),Sk=Ki(2),Ck=Ki(3),fo=Ki(4),_k=Ki(5),kk=Ki(6);Gs.range,_u.range,Sk.range,Ck.range,fo.range,_k.range,kk.range;var cy=st(function(e){e.setDate(1),e.setHours(0,0,0,0)},function(e,t){e.setMonth(e.getMonth()+t)},function(e,t){return t.getMonth()-e.getMonth()+(t.getFullYear()-e.getFullYear())*12},function(e){return e.getMonth()});const ku=cy;cy.range;var Gd=st(function(e){e.setMonth(0,1),e.setHours(0,0,0,0)},function(e,t){e.setFullYear(e.getFullYear()+t)},function(e,t){return t.getFullYear()-e.getFullYear()},function(e){return e.getFullYear()});Gd.every=function(e){return!isFinite(e=Math.floor(e))||!(e>0)?null:st(function(t){t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)},function(t,n){t.setFullYear(t.getFullYear()+n*e)})};const Kr=Gd;Gd.range;var ly=st(function(e){e.setUTCSeconds(0,0)},function(e,t){e.setTime(+e+t*tn)},function(e,t){return(t-e)/tn},function(e){return e.getUTCMinutes()});const $d=ly;ly.range;var uy=st(function(e){e.setUTCMinutes(0,0,0)},function(e,t){e.setTime(+e+t*vr)},function(e,t){return(t-e)/vr},function(e){return e.getUTCHours()});const Vd=uy;uy.range;var fy=st(function(e){e.setUTCHours(0,0,0,0)},function(e,t){e.setUTCDate(e.getUTCDate()+t)},function(e,t){return(t-e)/Wi},function(e){return e.getUTCDate()-1});const Ji=fy;fy.range;function ea(e){return st(function(t){t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)},function(t,n){t.setUTCDate(t.getUTCDate()+n*7)},function(t,n){return(n-t)/Pd})}var $s=ea(0),Du=ea(1),Dk=ea(2),Ik=ea(3),ho=ea(4),Tk=ea(5),Mk=ea(6);$s.range,Du.range,Dk.range,Ik.range,ho.range,Tk.range,Mk.range;var hy=st(function(e){e.setUTCDate(1),e.setUTCHours(0,0,0,0)},function(e,t){e.setUTCMonth(e.getUTCMonth()+t)},function(e,t){return t.getUTCMonth()-e.getUTCMonth()+(t.getUTCFullYear()-e.getUTCFullYear())*12},function(e){return e.getUTCMonth()});const Iu=hy;hy.range;var Yd=st(function(e){e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},function(e,t){e.setUTCFullYear(e.getUTCFullYear()+t)},function(e,t){return t.getUTCFullYear()-e.getUTCFullYear()},function(e){return e.getUTCFullYear()});Yd.every=function(e){return!isFinite(e=Math.floor(e))||!(e>0)?null:st(function(t){t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},function(t,n){t.setUTCFullYear(t.getUTCFullYear()+n*e)})};const Jr=Yd;Yd.range;function dy(e,t,n,r,i,a){const o=[[Xr,1,yr],[Xr,5,5*yr],[Xr,15,15*yr],[Xr,30,30*yr],[a,1,tn],[a,5,5*tn],[a,15,15*tn],[a,30,30*tn],[i,1,vr],[i,3,3*vr],[i,6,6*vr],[i,12,12*vr],[r,1,Wi],[r,2,2*Wi],[n,1,Pd],[t,1,ry],[t,3,3*ry],[e,1,Ud]];function s(c,u,f){const h=u<c;h&&([c,u]=[u,c]);const d=f&&typeof f.range=="function"?f:l(c,u,f),p=d?d.range(c,+u+1):[];return h?p.reverse():p}function l(c,u,f){const h=Math.abs(u-c)/f,d=vu(([,,y])=>y).right(o,h);if(d===o.length)return e.every(qi(c/Ud,u/Ud,f));if(d===0)return zd.every(Math.max(qi(c,u,f),1));const[p,g]=o[h/o[d-1][2]<o[d][2]/h?d-1:d];return p.every(g)}return[s,l]}const[Nk,Fk]=dy(Jr,Iu,$s,Ji,Vd,$d),[Bk,Lk]=dy(Kr,ku,Gs,Xi,Hd,jd),Vs="year",Ys="quarter",Qs="month",Zs="week",qs="date",Tu="day",Qd="dayofyear",Ws="hours",Xs="minutes",Ks="seconds",Mu="milliseconds";[Vs,Ys,Qs,Zs,qs,Tu,Qd,Ws,Xs,Ks,Mu].reduce((e,t,n)=>(e[t]=1+n,e),{});const Ok={[Vs]:Kr,[Ys]:ku.every(3),[Qs]:ku,[Zs]:Gs,[qs]:Xi,[Tu]:Xi,[Qd]:Xi,[Ws]:Hd,[Xs]:jd,[Ks]:Xr,[Mu]:zd},Rk={[Vs]:Jr,[Ys]:Iu.every(3),[Qs]:Iu,[Zs]:$s,[qs]:Ji,[Tu]:Ji,[Qd]:Ji,[Ws]:Vd,[Xs]:$d,[Ks]:Xr,[Mu]:zd};function zk(e){return Ok[e]}function Pk(e){return Rk[e]}function Zd(e){if(0<=e.y&&e.y<100){var t=new Date(-1,e.m,e.d,e.H,e.M,e.S,e.L);return t.setFullYear(e.y),t}return new Date(e.y,e.m,e.d,e.H,e.M,e.S,e.L)}function qd(e){if(0<=e.y&&e.y<100){var t=new Date(Date.UTC(-1,e.m,e.d,e.H,e.M,e.S,e.L));return t.setUTCFullYear(e.y),t}return new Date(Date.UTC(e.y,e.m,e.d,e.H,e.M,e.S,e.L))}function Js(e,t,n){return{y:e,m:t,d:n,H:0,M:0,S:0,L:0}}function py(e){var t=e.dateTime,n=e.date,r=e.time,i=e.periods,a=e.days,o=e.shortDays,s=e.months,l=e.shortMonths,c=ec(i),u=tc(i),f=ec(a),h=tc(a),d=ec(o),p=tc(o),g=ec(s),y=tc(s),v=ec(l),S=tc(l),k={a:tt,A:ie,b:yt,B:Vr,c:null,d:wy,e:wy,f:cD,g:yD,G:wD,H:aD,I:oD,j:sD,L:xy,m:lD,M:uD,p:De,q:Xe,Q:ky,s:Dy,S:fD,u:hD,U:dD,V:pD,w:gD,W:mD,x:null,X:null,y:bD,Y:vD,Z:xD,"%":_y},C={a:Pi,A:so,b:Bs,B:co,c:null,d:Ey,e:Ey,f:CD,g:LD,G:RD,H:AD,I:ED,j:SD,L:Sy,m:_D,M:kD,p:Ls,q:jn,Q:ky,s:Dy,S:DD,u:ID,U:TD,V:MD,w:ND,W:FD,x:null,X:null,y:BD,Y:OD,Z:zD,"%":_y},E={a:M,A:F,b:U,B:q,c:V,d:yy,e:yy,f:tD,g:by,G:my,H:vy,I:vy,j:Xk,L:eD,m:Wk,M:Kk,p:D,q:qk,Q:rD,s:iD,S:Jk,u:$k,U:Vk,V:Yk,w:Gk,W:Qk,x:pe,X:Se,y:by,Y:my,Z:Zk,"%":nD};k.x=w(n,k),k.X=w(r,k),k.c=w(t,k),C.x=w(n,C),C.X=w(r,C),C.c=w(t,C);function w(Q,re){return function(ue){var j=[],Qe=-1,de=0,vt=Q.length,dt,Kt,lo;for(ue instanceof Date||(ue=new Date(+ue));++Qe<vt;)Q.charCodeAt(Qe)===37&&(j.push(Q.slice(de,Qe)),(Kt=gy[dt=Q.charAt(++Qe)])!=null?dt=Q.charAt(++Qe):Kt=dt==="e"?" ":"0",(lo=re[dt])&&(dt=lo(ue,Kt)),j.push(dt),de=Qe+1);return j.push(Q.slice(de,Qe)),j.join("")}}function A(Q,re){return function(ue){var j=Js(1900,void 0,1),Qe=T(j,Q,ue+="",0),de,vt;if(Qe!=ue.length)return null;if("Q"in j)return new Date(j.Q);if("s"in j)return new Date(j.s*1e3+("L"in j?j.L:0));if(re&&!("Z"in j)&&(j.Z=0),"p"in j&&(j.H=j.H%12+j.p*12),j.m===void 0&&(j.m="q"in j?j.q:0),"V"in j){if(j.V<1||j.V>53)return null;"w"in j||(j.w=1),"Z"in j?(de=qd(Js(j.y,0,1)),vt=de.getUTCDay(),de=vt>4||vt===0?Du.ceil(de):Du(de),de=Ji.offset(de,(j.V-1)*7),j.y=de.getUTCFullYear(),j.m=de.getUTCMonth(),j.d=de.getUTCDate()+(j.w+6)%7):(de=Zd(Js(j.y,0,1)),vt=de.getDay(),de=vt>4||vt===0?_u.ceil(de):_u(de),de=Xi.offset(de,(j.V-1)*7),j.y=de.getFullYear(),j.m=de.getMonth(),j.d=de.getDate()+(j.w+6)%7)}else("W"in j||"U"in j)&&("w"in j||(j.w="u"in j?j.u%7:"W"in j?1:0),vt="Z"in j?qd(Js(j.y,0,1)).getUTCDay():Zd(Js(j.y,0,1)).getDay(),j.m=0,j.d="W"in j?(j.w+6)%7+j.W*7-(vt+5)%7:j.w+j.U*7-(vt+6)%7);return"Z"in j?(j.H+=j.Z/100|0,j.M+=j.Z%100,qd(j)):Zd(j)}}function T(Q,re,ue,j){for(var Qe=0,de=re.length,vt=ue.length,dt,Kt;Qe<de;){if(j>=vt)return-1;if(dt=re.charCodeAt(Qe++),dt===37){if(dt=re.charAt(Qe++),Kt=E[dt in gy?re.charAt(Qe++):dt],!Kt||(j=Kt(Q,ue,j))<0)return-1}else if(dt!=ue.charCodeAt(j++))return-1}return j}function D(Q,re,ue){var j=c.exec(re.slice(ue));return j?(Q.p=u.get(j[0].toLowerCase()),ue+j[0].length):-1}function M(Q,re,ue){var j=d.exec(re.slice(ue));return j?(Q.w=p.get(j[0].toLowerCase()),ue+j[0].length):-1}function F(Q,re,ue){var j=f.exec(re.slice(ue));return j?(Q.w=h.get(j[0].toLowerCase()),ue+j[0].length):-1}function U(Q,re,ue){var j=v.exec(re.slice(ue));return j?(Q.m=S.get(j[0].toLowerCase()),ue+j[0].length):-1}function q(Q,re,ue){var j=g.exec(re.slice(ue));return j?(Q.m=y.get(j[0].toLowerCase()),ue+j[0].length):-1}function V(Q,re,ue){return T(Q,t,re,ue)}function pe(Q,re,ue){return T(Q,n,re,ue)}function Se(Q,re,ue){return T(Q,r,re,ue)}function tt(Q){return o[Q.getDay()]}function ie(Q){return a[Q.getDay()]}function yt(Q){return l[Q.getMonth()]}function Vr(Q){return s[Q.getMonth()]}function De(Q){return i[+(Q.getHours()>=12)]}function Xe(Q){return 1+~~(Q.getMonth()/3)}function Pi(Q){return o[Q.getUTCDay()]}function so(Q){return a[Q.getUTCDay()]}function Bs(Q){return l[Q.getUTCMonth()]}function co(Q){return s[Q.getUTCMonth()]}function Ls(Q){return i[+(Q.getUTCHours()>=12)]}function jn(Q){return 1+~~(Q.getUTCMonth()/3)}return{format:function(Q){var re=w(Q+="",k);return re.toString=function(){return Q},re},parse:function(Q){var re=A(Q+="",!1);return re.toString=function(){return Q},re},utcFormat:function(Q){var re=w(Q+="",C);return re.toString=function(){return Q},re},utcParse:function(Q){var re=A(Q+="",!0);return re.toString=function(){return Q},re}}}var gy={"-":"",_:" ",0:"0"},ct=/^\s*\d+/,Uk=/^%/,jk=/[\\^$*+?|[\]().{}]/g;function me(e,t,n){var r=e<0?"-":"",i=(r?-e:e)+"",a=i.length;return r+(a<n?new Array(n-a+1).join(t)+i:i)}function Hk(e){return e.replace(jk,"\\$&")}function ec(e){return new RegExp("^(?:"+e.map(Hk).join("|")+")","i")}function tc(e){return new Map(e.map((t,n)=>[t.toLowerCase(),n]))}function Gk(e,t,n){var r=ct.exec(t.slice(n,n+1));return r?(e.w=+r[0],n+r[0].length):-1}function $k(e,t,n){var r=ct.exec(t.slice(n,n+1));return r?(e.u=+r[0],n+r[0].length):-1}function Vk(e,t,n){var r=ct.exec(t.slice(n,n+2));return r?(e.U=+r[0],n+r[0].length):-1}function Yk(e,t,n){var r=ct.exec(t.slice(n,n+2));return r?(e.V=+r[0],n+r[0].length):-1}function Qk(e,t,n){var r=ct.exec(t.slice(n,n+2));return r?(e.W=+r[0],n+r[0].length):-1}function my(e,t,n){var r=ct.exec(t.slice(n,n+4));return r?(e.y=+r[0],n+r[0].length):-1}function by(e,t,n){var r=ct.exec(t.slice(n,n+2));return r?(e.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function Zk(e,t,n){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(t.slice(n,n+6));return r?(e.Z=r[1]?0:-(r[2]+(r[3]||"00")),n+r[0].length):-1}function qk(e,t,n){var r=ct.exec(t.slice(n,n+1));return r?(e.q=r[0]*3-3,n+r[0].length):-1}function Wk(e,t,n){var r=ct.exec(t.slice(n,n+2));return r?(e.m=r[0]-1,n+r[0].length):-1}function yy(e,t,n){var r=ct.exec(t.slice(n,n+2));return r?(e.d=+r[0],n+r[0].length):-1}function Xk(e,t,n){var r=ct.exec(t.slice(n,n+3));return r?(e.m=0,e.d=+r[0],n+r[0].length):-1}function vy(e,t,n){var r=ct.exec(t.slice(n,n+2));return r?(e.H=+r[0],n+r[0].length):-1}function Kk(e,t,n){var r=ct.exec(t.slice(n,n+2));return r?(e.M=+r[0],n+r[0].length):-1}function Jk(e,t,n){var r=ct.exec(t.slice(n,n+2));return r?(e.S=+r[0],n+r[0].length):-1}function eD(e,t,n){var r=ct.exec(t.slice(n,n+3));return r?(e.L=+r[0],n+r[0].length):-1}function tD(e,t,n){var r=ct.exec(t.slice(n,n+6));return r?(e.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function nD(e,t,n){var r=Uk.exec(t.slice(n,n+1));return r?n+r[0].length:-1}function rD(e,t,n){var r=ct.exec(t.slice(n));return r?(e.Q=+r[0],n+r[0].length):-1}function iD(e,t,n){var r=ct.exec(t.slice(n));return r?(e.s=+r[0],n+r[0].length):-1}function wy(e,t){return me(e.getDate(),t,2)}function aD(e,t){return me(e.getHours(),t,2)}function oD(e,t){return me(e.getHours()%12||12,t,2)}function sD(e,t){return me(1+Xi.count(Kr(e),e),t,3)}function xy(e,t){return me(e.getMilliseconds(),t,3)}function cD(e,t){return xy(e,t)+"000"}function lD(e,t){return me(e.getMonth()+1,t,2)}function uD(e,t){return me(e.getMinutes(),t,2)}function fD(e,t){return me(e.getSeconds(),t,2)}function hD(e){var t=e.getDay();return t===0?7:t}function dD(e,t){return me(Gs.count(Kr(e)-1,e),t,2)}function Ay(e){var t=e.getDay();return t>=4||t===0?fo(e):fo.ceil(e)}function pD(e,t){return e=Ay(e),me(fo.count(Kr(e),e)+(Kr(e).getDay()===4),t,2)}function gD(e){return e.getDay()}function mD(e,t){return me(_u.count(Kr(e)-1,e),t,2)}function bD(e,t){return me(e.getFullYear()%100,t,2)}function yD(e,t){return e=Ay(e),me(e.getFullYear()%100,t,2)}function vD(e,t){return me(e.getFullYear()%1e4,t,4)}function wD(e,t){var n=e.getDay();return e=n>=4||n===0?fo(e):fo.ceil(e),me(e.getFullYear()%1e4,t,4)}function xD(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+me(t/60|0,"0",2)+me(t%60,"0",2)}function Ey(e,t){return me(e.getUTCDate(),t,2)}function AD(e,t){return me(e.getUTCHours(),t,2)}function ED(e,t){return me(e.getUTCHours()%12||12,t,2)}function SD(e,t){return me(1+Ji.count(Jr(e),e),t,3)}function Sy(e,t){return me(e.getUTCMilliseconds(),t,3)}function CD(e,t){return Sy(e,t)+"000"}function _D(e,t){return me(e.getUTCMonth()+1,t,2)}function kD(e,t){return me(e.getUTCMinutes(),t,2)}function DD(e,t){return me(e.getUTCSeconds(),t,2)}function ID(e){var t=e.getUTCDay();return t===0?7:t}function TD(e,t){return me($s.count(Jr(e)-1,e),t,2)}function Cy(e){var t=e.getUTCDay();return t>=4||t===0?ho(e):ho.ceil(e)}function MD(e,t){return e=Cy(e),me(ho.count(Jr(e),e)+(Jr(e).getUTCDay()===4),t,2)}function ND(e){return e.getUTCDay()}function FD(e,t){return me(Du.count(Jr(e)-1,e),t,2)}function BD(e,t){return me(e.getUTCFullYear()%100,t,2)}function LD(e,t){return e=Cy(e),me(e.getUTCFullYear()%100,t,2)}function OD(e,t){return me(e.getUTCFullYear()%1e4,t,4)}function RD(e,t){var n=e.getUTCDay();return e=n>=4||n===0?ho(e):ho.ceil(e),me(e.getUTCFullYear()%1e4,t,4)}function zD(){return"+0000"}function _y(){return"%"}function ky(e){return+e}function Dy(e){return Math.floor(+e/1e3)}var po,Wd,Iy,Xd,Ty;PD({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function PD(e){return po=py(e),Wd=po.format,Iy=po.parse,Xd=po.utcFormat,Ty=po.utcParse,po}function nc(e){const t={};return n=>t[n]||(t[n]=e(n))}function UD(e,t){return n=>{const r=e(n),i=r.indexOf(t);if(i<0)return r;let a=jD(r,i);const o=a<r.length?r.slice(a):"";for(;--a>i;)if(r[a]!=="0"){++a;break}return r.slice(0,a)+o}}function jD(e,t){let n=e.lastIndexOf("e"),r;if(n>0)return n;for(n=e.length;--n>t;)if(r=e.charCodeAt(n),r>=48&&r<=57)return n+1}function HD(e){const t=nc(e.format),n=e.formatPrefix;return{format:t,formatPrefix:n,formatFloat(r){const i=Wr(r||",");if(i.precision==null){switch(i.precision=12,i.type){case"%":i.precision-=2;break;case"e":i.precision-=1;break}return UD(t(i),t(".1f")(1)[1])}else return t(i)},formatSpan(r,i,a,o){o=Wr(o??",f");const s=qi(r,i,a),l=Math.max(Math.abs(r),Math.abs(i));let c;if(o.precision==null)switch(o.type){case"s":return isNaN(c=ty(s,l))||(o.precision=c),n(o,l);case"":case"e":case"g":case"p":case"r":{isNaN(c=ny(s,l))||(o.precision=c-(o.type==="e"));break}case"f":case"%":{isNaN(c=ey(s))||(o.precision=c-(o.type==="%")*2);break}}return t(o)}}}GD();function GD(){return HD({format:rt,formatPrefix:Ld})}function My(e,t,n){n=n||{},Ht(n)||Ye("Invalid time multi-format specifier: ".concat(n));const r=t(Ks),i=t(Xs),a=t(Ws),o=t(qs),s=t(Zs),l=t(Qs),c=t(Ys),u=t(Vs),f=e(n[Mu]||".%L"),h=e(n[Ks]||":%S"),d=e(n[Xs]||"%I:%M"),p=e(n[Ws]||"%I %p"),g=e(n[qs]||n[Tu]||"%a %d"),y=e(n[Zs]||"%b %d"),v=e(n[Qs]||"%B"),S=e(n[Ys]||"%B"),k=e(n[Vs]||"%Y");return C=>(r(C)<C?f:i(C)<C?h:a(C)<C?d:o(C)<C?p:l(C)<C?s(C)<C?g:y:u(C)<C?c(C)<C?v:S:k)(C)}function Ny(e){const t=nc(e.format),n=nc(e.utcFormat);return{timeFormat:r=>ze(r)?t(r):My(t,zk,r),utcFormat:r=>ze(r)?n(r):My(n,Pk,r),timeParse:nc(e.parse),utcParse:nc(e.utcParse)}}let Kd;$D();function $D(){return Kd=Ny({format:Wd,parse:Iy,utcFormat:Xd,utcParse:Ty})}function VD(e){return Ny(py(e))}function YD(e){return arguments.length?Kd=VD(e):Kd}const QD=/^(data:|([A-Za-z]+:)?\/\/)/,ZD=/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp|file|data):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i,qD=/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205f\u3000]/g,Fy="file://";function WD(e,t){return n=>({options:n||{},sanitize:KD,load:XD,fileAccess:!!t,file:JD(t),http:t5(e)})}async function XD(e,t){const n=await this.sanitize(e,t),r=n.href;return n.localFile?this.file(r):this.http(r,t)}async function KD(e,t){t=Ed({},this.options,t);const n=this.fileAccess,r={href:null};let i,a,o;const s=ZD.test(e.replace(qD,""));(e==null||typeof e!="string"||!s)&&Ye("Sanitize failure, invalid URI: "+bu(e));const l=QD.test(e);return(o=t.baseURL)&&!l&&(!e.startsWith("/")&&!o.endsWith("/")&&(e="/"+e),e=o+e),a=(i=e.startsWith(Fy))||t.mode==="file"||t.mode!=="http"&&!l&&n,i?e=e.slice(Fy.length):e.startsWith("//")&&(t.defaultProtocol==="file"?(e=e.slice(2),a=!0):e=(t.defaultProtocol||"http")+":"+e),Object.defineProperty(r,"localFile",{value:!!a}),r.href=e,t.target&&(r.target=t.target+""),t.rel&&(r.rel=t.rel+""),t.context==="image"&&t.crossOrigin&&(r.crossOrigin=t.crossOrigin+""),r}function JD(e){return e?t=>new Promise((n,r)=>{e.readFile(t,(i,a)=>{i?r(i):n(a)})}):e5}async function e5(){Ye("No file system access.")}function t5(e){return e?async function(t,n){const r=Ed({},this.options.http,n),i=n&&n.response,a=await e(t,r);return a.ok?Tt(a[i])?a[i]():a.text():Ye(a.status+""+a.statusText)}:n5}async function n5(){Ye("No HTTP fetch method available.")}const r5=e=>e!=null&&e===e,i5=e=>e==="true"||e==="false"||e===!0||e===!1,a5=e=>!Number.isNaN(Date.parse(e)),By=e=>!Number.isNaN(+e)&&!(e instanceof Date),o5=e=>By(e)&&Number.isInteger(+e),Ly={boolean:R_,integer:Rs,number:Rs,date:P_,string:U_,unknown:hu},Nu=[i5,o5,By,a5],s5=["boolean","integer","number","date"];function Oy(e,t){if(!e||!e.length)return"unknown";const n=e.length,r=Nu.length,i=Nu.map((a,o)=>o+1);for(let a=0,o=0,s,l;a<n;++a)for(l=t?e[a][t]:e[a],s=0;s<r;++s)if(i[s]&&r5(l)&&!Nu[s](l)&&(i[s]=0,++o,o===Nu.length))return"string";return s5[i.reduce((a,o)=>a===0?o:a,0)-1]}function c5(e,t){return t.reduce((n,r)=>(n[r]=Oy(e,r),n),{})}function Ry(e){const t=function(n,r){const i={delimiter:e};return Jd(n,r?Ed(r,i):i)};return t.responseType="text",t}function Jd(e,t){return t.header&&(e=t.header.map(bu).join(t.delimiter)+`
6
+ `+e),Hb(t.delimiter).parse(e+"")}Jd.responseType="text";function l5(e){return typeof Buffer=="function"&&Tt(Buffer.isBuffer)?Buffer.isBuffer(e):!1}function e0(e,t){const n=t&&t.property?fu(t.property):hu;return Ht(e)&&!l5(e)?u5(n(e),t):n(JSON.parse(e))}e0.responseType="json";function u5(e,t){return!en(e)&&L_(e)&&(e=[...e]),t&&t.copy?JSON.parse(JSON.stringify(e)):e}const f5={interior:(e,t)=>e!==t,exterior:(e,t)=>e===t};function zy(e,t){let n,r,i,a;return e=e0(e,t),t&&t.feature?(n=q_,i=t.feature):t&&t.mesh?(n=X_,i=t.mesh,a=f5[t.filter]):Ye("Missing TopoJSON feature or mesh parameter."),r=(r=e.objects[i])?n(e,r,a):Ye("Invalid TopoJSON object: "+i),r&&r.features||[r]}zy.responseType="json";const t0={dsv:Jd,csv:Ry(","),tsv:Ry(" "),json:e0,topojson:zy};function Py(e,t){return arguments.length>1?(t0[e]=t,this):Vi(t0,e)?t0[e]:null}function Uy(e,t,n,r){t=t||{};const i=Py(t.type||"json");return i||Ye("Unknown data format type: "+t.type),e=i(e,t),t.parse&&h5(e,t.parse,n,r),Vi(e,"columns")&&delete e.columns,e}function h5(e,t,n,r){if(!e.length)return;const i=YD();n=n||i.timeParse,r=r||i.utcParse;let a=e.columns||Object.keys(e[0]),o,s,l,c,u,f;t==="auto"&&(t=c5(e,a)),a=Object.keys(t);const h=a.map(d=>{const p=t[d];let g,y;if(p&&(p.startsWith("date:")||p.startsWith("utc:")))return g=p.split(/:(.+)?/,2),y=g[1],(y[0]==="'"&&y[y.length-1]==="'"||y[0]==='"'&&y[y.length-1]==='"')&&(y=y.slice(1,-1)),(g[0]==="utc"?r:n)(y);if(!Ly[p])throw Error("Illegal format pattern: "+d+":"+p);return Ly[p]});for(l=0,u=e.length,f=a.length;l<u;++l)for(o=e[l],c=0;c<f;++c)s=a[c],o[s]=h[c](o[s])}const rc=WD(typeof fetch<"u"&&fetch,null),jy=1;function n0(){let e=[0,1],t=[0,1],n=1,r=1,i=0,a=0,o=.5,s=0;const c=u=>(u+o-e[0])/n*r+t[0];return c.invert=u=>(u-t[0])/r*n+e[0]-o,c.domain=function(u){if(arguments.length){if(e=wu(u),n=e[1]-e[0],n<jy){n=jy;const f=(e[0]+e[1])/2;e[0]=f-n/2,e[1]=f+n/2}return c}else return e},c.range=function(u){return arguments.length?(t=[...u],r=t[1]-t[0],c):t},c.numberingOffset=function(u){return arguments.length?(s=u,c):s},c.padding=function(u){return arguments.length?(a=u,i=Math.min(1,u),c):i},c.paddingInner=function(u){return arguments.length?(i=Math.min(1,u),c):i},c.paddingOuter=function(u){return arguments.length?(a=u,c):a},c.align=function(u){return arguments.length?(o=Math.max(0,Math.min(1,u)),c):o},c.step=()=>r/n,c.bandwidth=()=>c.step(),c.ticks=u=>{const f=c.align(),h=c.numberingOffset();return js(e[0]-f+h,e[1]-f+h,Math.min(u,Math.ceil(n))).filter(Number.isInteger).map(d=>d-s)},c.tickFormat=(u,f)=>{if(f)throw new Error("Index scale's tickFormat does not support a specifier!");const d=qi(e[0],e[1],Math.min(u,Math.ceil(n)))<1e5?rt(","):rt(".3s");return p=>d(p+s)},c.copy=()=>n0().domain(e).range(t).paddingInner(i).paddingOuter(a).numberingOffset(s),c}function d5(){const e=n0().numberingOffset(1);let t;e.genome=function(r){return arguments.length?(t=r,e):t},e.ticks=r=>{if(!t)return[];const i=e.domain(),a=e.numberingOffset(),[o,s]=[Math.max(i[0],0),Math.min(i[1],t.totalSize-1)].map(u=>t.toChromosome(u)),l=Math.max(1,qi(i[0],i[1],r)),c=[];for(let u=o.index;u<=s.index;u++){const f=t.chromosomes[u],h=Math.max(f.continuousStart+l,i[0]-(i[0]-f.continuousStart)%l),d=Math.min(f.continuousEnd-l/4,i[1]+1);for(let p=h;p<=d;p+=l){const g=p-a;g>=i[0]&&g<i[1]&&c.push(g)}}return c},e.tickFormat=(r,i)=>{if(!t)return;if(i)throw new Error("Locus scale's tickFormat does not support a specifier!");const a=e.domain(),o=a[1]-a[0],s=e.numberingOffset(),c=qi(a[0],a[1],Math.min(r,Math.ceil(o)))<1e6?rt(","):rt(".3s"),u=f=>f-t.toChromosome(f).continuousStart;return f=>c(u(f)+s)};const n=e.copy;return e.copy=()=>n().genome(t),e}function p5(e){return e.type=="locus"}function Gn(e,t){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(t).domain(e);break}return this}function ei(e,t){switch(arguments.length){case 0:break;case 1:{typeof e=="function"?this.interpolator(e):this.range(e);break}default:{this.domain(e),typeof t=="function"?this.interpolator(t):this.range(t);break}}return this}const r0=Symbol("implicit");function i0(){var e=new Zi,t=[],n=[],r=r0;function i(a){let o=e.get(a);if(o===void 0){if(r!==r0)return r;e.set(a,o=t.push(a)-1)}return n[o%n.length]}return i.domain=function(a){if(!arguments.length)return t.slice();t=[],e=new Zi;for(const o of a)e.has(o)||e.set(o,t.push(o)-1);return i},i.range=function(a){return arguments.length?(n=Array.from(a),i):n.slice()},i.unknown=function(a){return arguments.length?(r=a,i):r},i.copy=function(){return i0(t,n).unknown(r)},Gn.apply(i,arguments),i}function go(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function ic(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function ti(){}var ta=.7,mo=1/ta,bo="\\s*([+-]?\\d+)\\s*",ac="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",$n="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",g5=/^#([0-9a-f]{3,8})$/,m5=new RegExp(`^rgb\\(${bo},${bo},${bo}\\)$`),b5=new RegExp(`^rgb\\(${$n},${$n},${$n}\\)$`),y5=new RegExp(`^rgba\\(${bo},${bo},${bo},${ac}\\)$`),v5=new RegExp(`^rgba\\(${$n},${$n},${$n},${ac}\\)$`),w5=new RegExp(`^hsl\\(${ac},${$n},${$n}\\)$`),x5=new RegExp(`^hsla\\(${ac},${$n},${$n},${ac}\\)$`),Hy={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};go(ti,na,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:Gy,formatHex:Gy,formatHex8:A5,formatHsl:E5,formatRgb:$y,toString:$y});function Gy(){return this.rgb().formatHex()}function A5(){return this.rgb().formatHex8()}function E5(){return qy(this).formatHsl()}function $y(){return this.rgb().formatRgb()}function na(e){var t,n;return e=(e+"").trim().toLowerCase(),(t=g5.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?Vy(t):n===3?new lt(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?Fu(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?Fu(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=m5.exec(e))?new lt(t[1],t[2],t[3],1):(t=b5.exec(e))?new lt(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=y5.exec(e))?Fu(t[1],t[2],t[3],t[4]):(t=v5.exec(e))?Fu(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=w5.exec(e))?Zy(t[1],t[2]/100,t[3]/100,1):(t=x5.exec(e))?Zy(t[1],t[2]/100,t[3]/100,t[4]):Hy.hasOwnProperty(e)?Vy(Hy[e]):e==="transparent"?new lt(NaN,NaN,NaN,0):null}function Vy(e){return new lt(e>>16&255,e>>8&255,e&255,1)}function Fu(e,t,n,r){return r<=0&&(e=t=n=NaN),new lt(e,t,n,r)}function a0(e){return e instanceof ti||(e=na(e)),e?(e=e.rgb(),new lt(e.r,e.g,e.b,e.opacity)):new lt}function Bu(e,t,n,r){return arguments.length===1?a0(e):new lt(e,t,n,r??1)}function lt(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}go(lt,Bu,ic(ti,{brighter(e){return e=e==null?mo:Math.pow(mo,e),new lt(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?ta:Math.pow(ta,e),new lt(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new lt(ra(this.r),ra(this.g),ra(this.b),Lu(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:Yy,formatHex:Yy,formatHex8:S5,formatRgb:Qy,toString:Qy}));function Yy(){return`#${ia(this.r)}${ia(this.g)}${ia(this.b)}`}function S5(){return`#${ia(this.r)}${ia(this.g)}${ia(this.b)}${ia((isNaN(this.opacity)?1:this.opacity)*255)}`}function Qy(){const e=Lu(this.opacity);return`${e===1?"rgb(":"rgba("}${ra(this.r)}, ${ra(this.g)}, ${ra(this.b)}${e===1?")":`, ${e})`}`}function Lu(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function ra(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function ia(e){return e=ra(e),(e<16?"0":"")+e.toString(16)}function Zy(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new _n(e,t,n,r)}function qy(e){if(e instanceof _n)return new _n(e.h,e.s,e.l,e.opacity);if(e instanceof ti||(e=na(e)),!e)return new _n;if(e instanceof _n)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,i=Math.min(t,n,r),a=Math.max(t,n,r),o=NaN,s=a-i,l=(a+i)/2;return s?(t===a?o=(n-r)/s+(n<r)*6:n===a?o=(r-t)/s+2:o=(t-n)/s+4,s/=l<.5?a+i:2-a-i,o*=60):s=l>0&&l<1?0:o,new _n(o,s,l,e.opacity)}function o0(e,t,n,r){return arguments.length===1?qy(e):new _n(e,t,n,r??1)}function _n(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}go(_n,o0,ic(ti,{brighter(e){return e=e==null?mo:Math.pow(mo,e),new _n(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?ta:Math.pow(ta,e),new _n(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,i=2*n-r;return new lt(s0(e>=240?e-240:e+120,i,r),s0(e,i,r),s0(e<120?e+240:e-120,i,r),this.opacity)},clamp(){return new _n(Wy(this.h),Ou(this.s),Ou(this.l),Lu(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=Lu(this.opacity);return`${e===1?"hsl(":"hsla("}${Wy(this.h)}, ${Ou(this.s)*100}%, ${Ou(this.l)*100}%${e===1?")":`, ${e})`}`}}));function Wy(e){return e=(e||0)%360,e<0?e+360:e}function Ou(e){return Math.max(0,Math.min(1,e||0))}function s0(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}const Xy=Math.PI/180,Ky=180/Math.PI,Ru=18,Jy=.96422,e2=1,t2=.82521,n2=4/29,yo=6/29,r2=3*yo*yo,C5=yo*yo*yo;function i2(e){if(e instanceof Vn)return new Vn(e.l,e.a,e.b,e.opacity);if(e instanceof wr)return a2(e);e instanceof lt||(e=a0(e));var t=h0(e.r),n=h0(e.g),r=h0(e.b),i=l0((.2225045*t+.7168786*n+.0606169*r)/e2),a,o;return t===n&&n===r?a=o=i:(a=l0((.4360747*t+.3850649*n+.1430804*r)/Jy),o=l0((.0139322*t+.0971045*n+.7141733*r)/t2)),new Vn(116*i-16,500*(a-i),200*(i-o),e.opacity)}function c0(e,t,n,r){return arguments.length===1?i2(e):new Vn(e,t,n,r??1)}function Vn(e,t,n,r){this.l=+e,this.a=+t,this.b=+n,this.opacity=+r}go(Vn,c0,ic(ti,{brighter(e){return new Vn(this.l+Ru*(e??1),this.a,this.b,this.opacity)},darker(e){return new Vn(this.l-Ru*(e??1),this.a,this.b,this.opacity)},rgb(){var e=(this.l+16)/116,t=isNaN(this.a)?e:e+this.a/500,n=isNaN(this.b)?e:e-this.b/200;return t=Jy*u0(t),e=e2*u0(e),n=t2*u0(n),new lt(f0(3.1338561*t-1.6168667*e-.4906146*n),f0(-.9787684*t+1.9161415*e+.033454*n),f0(.0719453*t-.2289914*e+1.4052427*n),this.opacity)}}));function l0(e){return e>C5?Math.pow(e,1/3):e/r2+n2}function u0(e){return e>yo?e*e*e:r2*(e-n2)}function f0(e){return 255*(e<=.0031308?12.92*e:1.055*Math.pow(e,1/2.4)-.055)}function h0(e){return(e/=255)<=.04045?e/12.92:Math.pow((e+.055)/1.055,2.4)}function _5(e){if(e instanceof wr)return new wr(e.h,e.c,e.l,e.opacity);if(e instanceof Vn||(e=i2(e)),e.a===0&&e.b===0)return new wr(NaN,0<e.l&&e.l<100?0:NaN,e.l,e.opacity);var t=Math.atan2(e.b,e.a)*Ky;return new wr(t<0?t+360:t,Math.sqrt(e.a*e.a+e.b*e.b),e.l,e.opacity)}function d0(e,t,n,r){return arguments.length===1?_5(e):new wr(e,t,n,r??1)}function wr(e,t,n,r){this.h=+e,this.c=+t,this.l=+n,this.opacity=+r}function a2(e){if(isNaN(e.h))return new Vn(e.l,0,0,e.opacity);var t=e.h*Xy;return new Vn(e.l,Math.cos(t)*e.c,Math.sin(t)*e.c,e.opacity)}go(wr,d0,ic(ti,{brighter(e){return new wr(this.h,this.c,this.l+Ru*(e??1),this.opacity)},darker(e){return new wr(this.h,this.c,this.l-Ru*(e??1),this.opacity)},rgb(){return a2(this).rgb()}}));var o2=-.14861,p0=1.78277,g0=-.29227,zu=-.90649,oc=1.97294,s2=oc*zu,c2=oc*p0,l2=p0*g0-zu*o2;function k5(e){if(e instanceof aa)return new aa(e.h,e.s,e.l,e.opacity);e instanceof lt||(e=a0(e));var t=e.r/255,n=e.g/255,r=e.b/255,i=(l2*r+s2*t-c2*n)/(l2+s2-c2),a=r-i,o=(oc*(n-i)-g0*a)/zu,s=Math.sqrt(o*o+a*a)/(oc*i*(1-i)),l=s?Math.atan2(o,a)*Ky-120:NaN;return new aa(l<0?l+360:l,s,i,e.opacity)}function m0(e,t,n,r){return arguments.length===1?k5(e):new aa(e,t,n,r??1)}function aa(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}go(aa,m0,ic(ti,{brighter(e){return e=e==null?mo:Math.pow(mo,e),new aa(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?ta:Math.pow(ta,e),new aa(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=isNaN(this.h)?0:(this.h+120)*Xy,t=+this.l,n=isNaN(this.s)?0:this.s*t*(1-t),r=Math.cos(e),i=Math.sin(e);return new lt(255*(t+n*(o2*r+p0*i)),255*(t+n*(g0*r+zu*i)),255*(t+n*(oc*r)),this.opacity)}}));function u2(e,t,n,r,i){var a=e*e,o=a*e;return((1-3*e+3*a-o)*t+(4-6*a+3*o)*n+(1+3*e+3*a-3*o)*r+o*i)/6}function f2(e){var t=e.length-1;return function(n){var r=n<=0?n=0:n>=1?(n=1,t-1):Math.floor(n*t),i=e[r],a=e[r+1],o=r>0?e[r-1]:2*i-a,s=r<t-1?e[r+2]:2*a-i;return u2((n-r/t)*t,o,i,a,s)}}function h2(e){var t=e.length;return function(n){var r=Math.floor(((n%=1)<0?++n:n)*t),i=e[(r+t-1)%t],a=e[r%t],o=e[(r+1)%t],s=e[(r+2)%t];return u2((n-r/t)*t,i,a,o,s)}}const Pu=e=>()=>e;function d2(e,t){return function(n){return e+n*t}}function D5(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(r){return Math.pow(e+r*t,n)}}function Uu(e,t){var n=t-e;return n?d2(e,n>180||n<-180?n-360*Math.round(n/360):n):Pu(isNaN(e)?t:e)}function I5(e){return(e=+e)==1?ut:function(t,n){return n-t?D5(t,n,e):Pu(isNaN(t)?n:t)}}function ut(e,t){var n=t-e;return n?d2(e,n):Pu(isNaN(e)?t:e)}const b0=function e(t){var n=I5(t);function r(i,a){var o=n((i=Bu(i)).r,(a=Bu(a)).r),s=n(i.g,a.g),l=n(i.b,a.b),c=ut(i.opacity,a.opacity);return function(u){return i.r=o(u),i.g=s(u),i.b=l(u),i.opacity=c(u),i+""}}return r.gamma=e,r}(1);function p2(e){return function(t){var n=t.length,r=new Array(n),i=new Array(n),a=new Array(n),o,s;for(o=0;o<n;++o)s=Bu(t[o]),r[o]=s.r||0,i[o]=s.g||0,a[o]=s.b||0;return r=e(r),i=e(i),a=e(a),s.opacity=1,function(l){return s.r=r(l),s.g=i(l),s.b=a(l),s+""}}}var T5=p2(f2),M5=p2(h2);function y0(e,t){t||(t=[]);var n=e?Math.min(t.length,e.length):0,r=t.slice(),i;return function(a){for(i=0;i<n;++i)r[i]=e[i]*(1-a)+t[i]*a;return r}}function g2(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function N5(e,t){return(g2(t)?y0:m2)(e,t)}function m2(e,t){var n=t?t.length:0,r=e?Math.min(n,e.length):0,i=new Array(r),a=new Array(n),o;for(o=0;o<r;++o)i[o]=ni(e[o],t[o]);for(;o<n;++o)a[o]=t[o];return function(s){for(o=0;o<r;++o)a[o]=i[o](s);return a}}function b2(e,t){var n=new Date;return e=+e,t=+t,function(r){return n.setTime(e*(1-r)+t*r),n}}function kn(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}function y2(e,t){var n={},r={},i;(e===null||typeof e!="object")&&(e={}),(t===null||typeof t!="object")&&(t={});for(i in t)i in e?n[i]=ni(e[i],t[i]):r[i]=t[i];return function(a){for(i in n)r[i]=n[i](a);return r}}var v0=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,w0=new RegExp(v0.source,"g");function F5(e){return function(){return e}}function B5(e){return function(t){return e(t)+""}}function v2(e,t){var n=v0.lastIndex=w0.lastIndex=0,r,i,a,o=-1,s=[],l=[];for(e=e+"",t=t+"";(r=v0.exec(e))&&(i=w0.exec(t));)(a=i.index)>n&&(a=t.slice(n,a),s[o]?s[o]+=a:s[++o]=a),(r=r[0])===(i=i[0])?s[o]?s[o]+=i:s[++o]=i:(s[++o]=null,l.push({i:o,x:kn(r,i)})),n=w0.lastIndex;return n<t.length&&(a=t.slice(n),s[o]?s[o]+=a:s[++o]=a),s.length<2?l[0]?B5(l[0].x):F5(t):(t=l.length,function(c){for(var u=0,f;u<t;++u)s[(f=l[u]).i]=f.x(c);return s.join("")})}function ni(e,t){var n=typeof t,r;return t==null||n==="boolean"?Pu(t):(n==="number"?kn:n==="string"?(r=na(t))?(t=r,b0):v2:t instanceof na?b0:t instanceof Date?b2:g2(t)?y0:Array.isArray(t)?m2:typeof t.valueOf!="function"&&typeof t.toString!="function"||isNaN(t)?y2:kn)(e,t)}function L5(e){var t=e.length;return function(n){return e[Math.max(0,Math.min(t-1,Math.floor(n*t)))]}}function O5(e,t){var n=Uu(+e,+t);return function(r){var i=n(r);return i-360*Math.floor(i/360)}}function sc(e,t){return e=+e,t=+t,function(n){return Math.round(e*(1-n)+t*n)}}var w2=180/Math.PI,x0={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function x2(e,t,n,r,i,a){var o,s,l;return(o=Math.sqrt(e*e+t*t))&&(e/=o,t/=o),(l=e*n+t*r)&&(n-=e*l,r-=t*l),(s=Math.sqrt(n*n+r*r))&&(n/=s,r/=s,l/=s),e*r<t*n&&(e=-e,t=-t,l=-l,o=-o),{translateX:i,translateY:a,rotate:Math.atan2(t,e)*w2,skewX:Math.atan(l)*w2,scaleX:o,scaleY:s}}var ju;function R5(e){const t=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(e+"");return t.isIdentity?x0:x2(t.a,t.b,t.c,t.d,t.e,t.f)}function z5(e){return e==null||(ju||(ju=document.createElementNS("http://www.w3.org/2000/svg","g")),ju.setAttribute("transform",e),!(e=ju.transform.baseVal.consolidate()))?x0:(e=e.matrix,x2(e.a,e.b,e.c,e.d,e.e,e.f))}function A2(e,t,n,r){function i(c){return c.length?c.pop()+" ":""}function a(c,u,f,h,d,p){if(c!==f||u!==h){var g=d.push("translate(",null,t,null,n);p.push({i:g-4,x:kn(c,f)},{i:g-2,x:kn(u,h)})}else(f||h)&&d.push("translate("+f+t+h+n)}function o(c,u,f,h){c!==u?(c-u>180?u+=360:u-c>180&&(c+=360),h.push({i:f.push(i(f)+"rotate(",null,r)-2,x:kn(c,u)})):u&&f.push(i(f)+"rotate("+u+r)}function s(c,u,f,h){c!==u?h.push({i:f.push(i(f)+"skewX(",null,r)-2,x:kn(c,u)}):u&&f.push(i(f)+"skewX("+u+r)}function l(c,u,f,h,d,p){if(c!==f||u!==h){var g=d.push(i(d)+"scale(",null,",",null,")");p.push({i:g-4,x:kn(c,f)},{i:g-2,x:kn(u,h)})}else(f!==1||h!==1)&&d.push(i(d)+"scale("+f+","+h+")")}return function(c,u){var f=[],h=[];return c=e(c),u=e(u),a(c.translateX,c.translateY,u.translateX,u.translateY,f,h),o(c.rotate,u.rotate,f,h),s(c.skewX,u.skewX,f,h),l(c.scaleX,c.scaleY,u.scaleX,u.scaleY,f,h),c=u=null,function(d){for(var p=-1,g=h.length,y;++p<g;)f[(y=h[p]).i]=y.x(d);return f.join("")}}}var P5=A2(R5,"px, ","px)","deg)"),U5=A2(z5,", ",")",")"),j5=1e-12;function E2(e){return((e=Math.exp(e))+1/e)/2}function H5(e){return((e=Math.exp(e))-1/e)/2}function G5(e){return((e=Math.exp(2*e))-1)/(e+1)}const S2=function e(t,n,r){function i(a,o){var s=a[0],l=a[1],c=a[2],u=o[0],f=o[1],h=o[2],d=u-s,p=f-l,g=d*d+p*p,y,v;if(g<j5)v=Math.log(h/c)/t,y=function(A){return[s+A*d,l+A*p,c*Math.exp(t*A*v)]};else{var S=Math.sqrt(g),k=(h*h-c*c+r*g)/(2*c*n*S),C=(h*h-c*c-r*g)/(2*h*n*S),E=Math.log(Math.sqrt(k*k+1)-k),w=Math.log(Math.sqrt(C*C+1)-C);v=(w-E)/t,y=function(A){var T=A*v,D=E2(E),M=c/(n*S)*(D*G5(t*T+E)-H5(E));return[s+M*d,l+M*p,c*D/E2(t*T+E)]}}return y.duration=v*1e3*t/Math.SQRT2,y}return i.rho=function(a){var o=Math.max(.001,+a),s=o*o,l=s*s;return e(o,s,l)},i}(Math.SQRT2,2,4);function C2(e){return function(t,n){var r=e((t=o0(t)).h,(n=o0(n)).h),i=ut(t.s,n.s),a=ut(t.l,n.l),o=ut(t.opacity,n.opacity);return function(s){return t.h=r(s),t.s=i(s),t.l=a(s),t.opacity=o(s),t+""}}}const $5=C2(Uu);var V5=C2(ut);function Y5(e,t){var n=ut((e=c0(e)).l,(t=c0(t)).l),r=ut(e.a,t.a),i=ut(e.b,t.b),a=ut(e.opacity,t.opacity);return function(o){return e.l=n(o),e.a=r(o),e.b=i(o),e.opacity=a(o),e+""}}function _2(e){return function(t,n){var r=e((t=d0(t)).h,(n=d0(n)).h),i=ut(t.c,n.c),a=ut(t.l,n.l),o=ut(t.opacity,n.opacity);return function(s){return t.h=r(s),t.c=i(s),t.l=a(s),t.opacity=o(s),t+""}}}const Q5=_2(Uu);var Z5=_2(ut);function k2(e){return function t(n){n=+n;function r(i,a){var o=e((i=m0(i)).h,(a=m0(a)).h),s=ut(i.s,a.s),l=ut(i.l,a.l),c=ut(i.opacity,a.opacity);return function(u){return i.h=o(u),i.s=s(u),i.l=l(Math.pow(u,n)),i.opacity=c(u),i+""}}return r.gamma=t,r}(1)}const q5=k2(Uu);var W5=k2(ut);function A0(e,t){t===void 0&&(t=e,e=ni);for(var n=0,r=t.length-1,i=t[0],a=new Array(r<0?0:r);n<r;)a[n]=e(i,i=t[++n]);return function(o){var s=Math.max(0,Math.min(r-1,Math.floor(o*=r)));return a[s](o-s)}}function X5(e,t){for(var n=new Array(t),r=0;r<t;++r)n[r]=e(r/(t-1));return n}const K5=Object.freeze(Object.defineProperty({__proto__:null,interpolate:ni,interpolateArray:N5,interpolateBasis:f2,interpolateBasisClosed:h2,interpolateCubehelix:q5,interpolateCubehelixLong:W5,interpolateDate:b2,interpolateDiscrete:L5,interpolateHcl:Q5,interpolateHclLong:Z5,interpolateHsl:$5,interpolateHslLong:V5,interpolateHue:O5,interpolateLab:Y5,interpolateNumber:kn,interpolateNumberArray:y0,interpolateObject:y2,interpolateRgb:b0,interpolateRgbBasis:T5,interpolateRgbBasisClosed:M5,interpolateRound:sc,interpolateString:v2,interpolateTransformCss:P5,interpolateTransformSvg:U5,interpolateZoom:S2,piecewise:A0,quantize:X5},Symbol.toStringTag,{value:"Module"}));function J5(e){return function(){return e}}function E0(e){return+e}var D2=[0,1];function Nt(e){return e}function S0(e,t){return(t-=e=+e)?function(n){return(n-e)/t}:J5(isNaN(t)?NaN:.5)}function eI(e,t){var n;return e>t&&(n=e,e=t,t=n),function(r){return Math.max(e,Math.min(t,r))}}function tI(e,t,n){var r=e[0],i=e[1],a=t[0],o=t[1];return i<r?(r=S0(i,r),a=n(o,a)):(r=S0(r,i),a=n(a,o)),function(s){return a(r(s))}}function nI(e,t,n){var r=Math.min(e.length,t.length)-1,i=new Array(r),a=new Array(r),o=-1;for(e[r]<e[0]&&(e=e.slice().reverse(),t=t.slice().reverse());++o<r;)i[o]=S0(e[o],e[o+1]),a[o]=n(t[o],t[o+1]);return function(s){var l=Qi(e,s,1,r)-1;return a[l](i[l](s))}}function cc(e,t){return t.domain(e.domain()).range(e.range()).interpolate(e.interpolate()).clamp(e.clamp()).unknown(e.unknown())}function Hu(){var e=D2,t=D2,n=ni,r,i,a,o=Nt,s,l,c;function u(){var h=Math.min(e.length,t.length);return o!==Nt&&(o=eI(e[0],e[h-1])),s=h>2?nI:tI,l=c=null,f}function f(h){return h==null||isNaN(h=+h)?a:(l||(l=s(e.map(r),t,n)))(r(o(h)))}return f.invert=function(h){return o(i((c||(c=s(t,e.map(r),kn)))(h)))},f.domain=function(h){return arguments.length?(e=Array.from(h,E0),u()):e.slice()},f.range=function(h){return arguments.length?(t=Array.from(h),u()):t.slice()},f.rangeRound=function(h){return t=Array.from(h),n=sc,u()},f.clamp=function(h){return arguments.length?(o=h?!0:Nt,u()):o!==Nt},f.interpolate=function(h){return arguments.length?(n=h,u()):n},f.unknown=function(h){return arguments.length?(a=h,f):a},function(h,d){return r=h,i=d,u()}}function I2(){return Hu()(Nt,Nt)}function T2(e,t,n,r){var i=qi(e,t,n),a;switch(r=Wr(r??",f"),r.type){case"s":{var o=Math.max(Math.abs(e),Math.abs(t));return r.precision==null&&!isNaN(a=ty(i,o))&&(r.precision=a),Ld(r,o)}case"":case"e":case"g":case"p":case"r":{r.precision==null&&!isNaN(a=ny(i,Math.max(Math.abs(e),Math.abs(t))))&&(r.precision=a-(r.type==="e"));break}case"f":case"%":{r.precision==null&&!isNaN(a=ey(i))&&(r.precision=a-(r.type==="%")*2);break}}return rt(r)}function oa(e){var t=e.domain;return e.ticks=function(n){var r=t();return js(r[0],r[r.length-1],n??10)},e.tickFormat=function(n,r){var i=t();return T2(i[0],i[i.length-1],n??10,r)},e.nice=function(n){n==null&&(n=10);var r=t(),i=0,a=r.length-1,o=r[i],s=r[a],l,c,u=10;for(s<o&&(c=o,o=s,s=c,c=i,i=a,a=c);u-- >0;){if(c=Hs(o,s,n),c===l)return r[i]=o,r[a]=s,t(r);if(c>0)o=Math.floor(o/c)*c,s=Math.ceil(s/c)*c;else if(c<0)o=Math.ceil(o*c)/c,s=Math.floor(s*c)/c;else break;l=c}return e},e}function Gu(){var e=I2();return e.copy=function(){return cc(e,Gu())},Gn.apply(e,arguments),oa(e)}function M2(e){var t;function n(r){return r==null||isNaN(r=+r)?t:r}return n.invert=n,n.domain=n.range=function(r){return arguments.length?(e=Array.from(r,E0),n):e.slice()},n.unknown=function(r){return arguments.length?(t=r,n):t},n.copy=function(){return M2(e).unknown(t)},e=arguments.length?Array.from(e,E0):[0,1],oa(n)}function N2(e,t){e=e.slice();var n=0,r=e.length-1,i=e[n],a=e[r],o;return a<i&&(o=n,n=r,r=o,o=i,i=a,a=o),e[n]=t.floor(i),e[r]=t.ceil(a),e}function F2(e){return Math.log(e)}function B2(e){return Math.exp(e)}function rI(e){return-Math.log(-e)}function iI(e){return-Math.exp(-e)}function aI(e){return isFinite(e)?+("1e"+e):e<0?0:e}function oI(e){return e===10?aI:e===Math.E?Math.exp:t=>Math.pow(e,t)}function sI(e){return e===Math.E?Math.log:e===10&&Math.log10||e===2&&Math.log2||(e=Math.log(e),t=>Math.log(t)/e)}function L2(e){return(t,n)=>-e(-t,n)}function C0(e){const t=e(F2,B2),n=t.domain;let r=10,i,a;function o(){return i=sI(r),a=oI(r),n()[0]<0?(i=L2(i),a=L2(a),e(rI,iI)):e(F2,B2),t}return t.base=function(s){return arguments.length?(r=+s,o()):r},t.domain=function(s){return arguments.length?(n(s),o()):n()},t.ticks=s=>{const l=n();let c=l[0],u=l[l.length-1];const f=u<c;f&&([c,u]=[u,c]);let h=i(c),d=i(u),p,g;const y=s==null?10:+s;let v=[];if(!(r%1)&&d-h<y){if(h=Math.floor(h),d=Math.ceil(d),c>0){for(;h<=d;++h)for(p=1;p<r;++p)if(g=h<0?p/a(-h):p*a(h),!(g<c)){if(g>u)break;v.push(g)}}else for(;h<=d;++h)for(p=r-1;p>=1;--p)if(g=h>0?p/a(-h):p*a(h),!(g<c)){if(g>u)break;v.push(g)}v.length*2<y&&(v=js(c,u,y))}else v=js(h,d,Math.min(d-h,y)).map(a);return f?v.reverse():v},t.tickFormat=(s,l)=>{if(s==null&&(s=10),l==null&&(l=r===10?"s":","),typeof l!="function"&&(!(r%1)&&(l=Wr(l)).precision==null&&(l.trim=!0),l=rt(l)),s===1/0)return l;const c=Math.max(1,r*s/t.ticks().length);return u=>{let f=u/a(Math.round(i(u)));return f*r<r-.5&&(f*=r),f<=c?l(u):""}},t.nice=()=>n(N2(n(),{floor:s=>a(Math.floor(i(s))),ceil:s=>a(Math.ceil(i(s)))})),t}function _0(){const e=C0(Hu()).domain([1,10]);return e.copy=()=>cc(e,_0()).base(e.base()),Gn.apply(e,arguments),e}function O2(e){return function(t){return Math.sign(t)*Math.log1p(Math.abs(t/e))}}function R2(e){return function(t){return Math.sign(t)*Math.expm1(Math.abs(t))*e}}function k0(e){var t=1,n=e(O2(t),R2(t));return n.constant=function(r){return arguments.length?e(O2(t=+r),R2(t)):t},oa(n)}function z2(){var e=k0(Hu());return e.copy=function(){return cc(e,z2()).constant(e.constant())},Gn.apply(e,arguments)}function P2(e){return function(t){return t<0?-Math.pow(-t,e):Math.pow(t,e)}}function cI(e){return e<0?-Math.sqrt(-e):Math.sqrt(e)}function lI(e){return e<0?-e*e:e*e}function D0(e){var t=e(Nt,Nt),n=1;function r(){return n===1?e(Nt,Nt):n===.5?e(cI,lI):e(P2(n),P2(1/n))}return t.exponent=function(i){return arguments.length?(n=+i,r()):n},oa(t)}function I0(){var e=D0(Hu());return e.copy=function(){return cc(e,I0()).exponent(e.exponent())},Gn.apply(e,arguments),e}function uI(){return I0.apply(null,arguments).exponent(.5)}function U2(){var e=[],t=[],n=[],r;function i(){var o=0,s=Math.max(1,t.length);for(n=new Array(s-1);++o<s;)n[o-1]=Fd(e,o/s);return a}function a(o){return o==null||isNaN(o=+o)?r:t[Qi(n,o)]}return a.invertExtent=function(o){var s=t.indexOf(o);return s<0?[NaN,NaN]:[s>0?n[s-1]:e[0],s<n.length?n[s]:e[e.length-1]]},a.domain=function(o){if(!arguments.length)return e.slice();e=[];for(let s of o)s!=null&&!isNaN(s=+s)&&e.push(s);return e.sort(Yi),i()},a.range=function(o){return arguments.length?(t=Array.from(o),i()):t.slice()},a.unknown=function(o){return arguments.length?(r=o,a):r},a.quantiles=function(){return n.slice()},a.copy=function(){return U2().domain(e).range(t).unknown(r)},Gn.apply(a,arguments)}function j2(){var e=0,t=1,n=1,r=[.5],i=[0,1],a;function o(l){return l!=null&&l<=l?i[Qi(r,l,0,n)]:a}function s(){var l=-1;for(r=new Array(n);++l<n;)r[l]=((l+1)*t-(l-n)*e)/(n+1);return o}return o.domain=function(l){return arguments.length?([e,t]=l,e=+e,t=+t,s()):[e,t]},o.range=function(l){return arguments.length?(n=(i=Array.from(l)).length-1,s()):i.slice()},o.invertExtent=function(l){var c=i.indexOf(l);return c<0?[NaN,NaN]:c<1?[e,r[0]]:c>=n?[r[n-1],t]:[r[c-1],r[c]]},o.unknown=function(l){return arguments.length&&(a=l),o},o.thresholds=function(){return r.slice()},o.copy=function(){return j2().domain([e,t]).range(i).unknown(a)},Gn.apply(oa(o),arguments)}function H2(){var e=[.5],t=[0,1],n,r=1;function i(a){return a!=null&&a<=a?t[Qi(e,a,0,r)]:n}return i.domain=function(a){return arguments.length?(e=Array.from(a),r=Math.min(e.length,t.length-1),i):e.slice()},i.range=function(a){return arguments.length?(t=Array.from(a),r=Math.min(e.length,t.length-1),i):t.slice()},i.invertExtent=function(a){var o=t.indexOf(a);return[e[o-1],e[o]]},i.unknown=function(a){return arguments.length?(n=a,i):n},i.copy=function(){return H2().domain(e).range(t).unknown(n)},Gn.apply(i,arguments)}function fI(e){return new Date(e)}function hI(e){return e instanceof Date?+e:+new Date(+e)}function T0(e,t,n,r,i,a,o,s,l,c){var u=I2(),f=u.invert,h=u.domain,d=c(".%L"),p=c(":%S"),g=c("%I:%M"),y=c("%I %p"),v=c("%a %d"),S=c("%b %d"),k=c("%B"),C=c("%Y");function E(w){return(l(w)<w?d:s(w)<w?p:o(w)<w?g:a(w)<w?y:r(w)<w?i(w)<w?v:S:n(w)<w?k:C)(w)}return u.invert=function(w){return new Date(f(w))},u.domain=function(w){return arguments.length?h(Array.from(w,hI)):h().map(fI)},u.ticks=function(w){var A=h();return e(A[0],A[A.length-1],w??10)},u.tickFormat=function(w,A){return A==null?E:c(A)},u.nice=function(w){var A=h();return(!w||typeof w.range!="function")&&(w=t(A[0],A[A.length-1],w??10)),w?h(N2(A,w)):u},u.copy=function(){return cc(u,T0(e,t,n,r,i,a,o,s,l,c))},u}function dI(){return Gn.apply(T0(Bk,Lk,Kr,ku,Gs,Xi,Hd,jd,Xr,Wd).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}function pI(){return Gn.apply(T0(Nk,Fk,Jr,Iu,$s,Ji,Vd,$d,Xr,Xd).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)}function $u(){var e=0,t=1,n,r,i,a,o=Nt,s=!1,l;function c(f){return f==null||isNaN(f=+f)?l:o(i===0?.5:(f=(a(f)-n)*i,s?Math.max(0,Math.min(1,f)):f))}c.domain=function(f){return arguments.length?([e,t]=f,n=a(e=+e),r=a(t=+t),i=n===r?0:1/(r-n),c):[e,t]},c.clamp=function(f){return arguments.length?(s=!!f,c):s},c.interpolator=function(f){return arguments.length?(o=f,c):o};function u(f){return function(h){var d,p;return arguments.length?([d,p]=h,o=f(d,p),c):[o(0),o(1)]}}return c.range=u(ni),c.rangeRound=u(sc),c.unknown=function(f){return arguments.length?(l=f,c):l},function(f){return a=f,n=f(e),r=f(t),i=n===r?0:1/(r-n),c}}function ri(e,t){return t.domain(e.domain()).interpolator(e.interpolator()).clamp(e.clamp()).unknown(e.unknown())}function M0(){var e=oa($u()(Nt));return e.copy=function(){return ri(e,M0())},ei.apply(e,arguments)}function G2(){var e=C0($u()).domain([1,10]);return e.copy=function(){return ri(e,G2()).base(e.base())},ei.apply(e,arguments)}function $2(){var e=k0($u());return e.copy=function(){return ri(e,$2()).constant(e.constant())},ei.apply(e,arguments)}function N0(){var e=D0($u());return e.copy=function(){return ri(e,N0()).exponent(e.exponent())},ei.apply(e,arguments)}function gI(){return N0.apply(null,arguments).exponent(.5)}function Vu(){var e=0,t=.5,n=1,r=1,i,a,o,s,l,c=Nt,u,f=!1,h;function d(g){return isNaN(g=+g)?h:(g=.5+((g=+u(g))-a)*(r*g<r*a?s:l),c(f?Math.max(0,Math.min(1,g)):g))}d.domain=function(g){return arguments.length?([e,t,n]=g,i=u(e=+e),a=u(t=+t),o=u(n=+n),s=i===a?0:.5/(a-i),l=a===o?0:.5/(o-a),r=a<i?-1:1,d):[e,t,n]},d.clamp=function(g){return arguments.length?(f=!!g,d):f},d.interpolator=function(g){return arguments.length?(c=g,d):c};function p(g){return function(y){var v,S,k;return arguments.length?([v,S,k]=y,c=A0(g,[v,S,k]),d):[c(0),c(.5),c(1)]}}return d.range=p(ni),d.rangeRound=p(sc),d.unknown=function(g){return arguments.length?(h=g,d):h},function(g){return u=g,i=g(e),a=g(t),o=g(n),s=i===a?0:.5/(a-i),l=a===o?0:.5/(o-a),r=a<i?-1:1,d}}function V2(){var e=oa(Vu()(Nt));return e.copy=function(){return ri(e,V2())},ei.apply(e,arguments)}function Y2(){var e=C0(Vu()).domain([.1,1,10]);return e.copy=function(){return ri(e,Y2()).base(e.base())},ei.apply(e,arguments)}function Q2(){var e=k0(Vu());return e.copy=function(){return ri(e,Q2()).constant(e.constant())},ei.apply(e,arguments)}function F0(){var e=D0(Vu());return e.copy=function(){return ri(e,F0()).exponent(e.exponent())},ei.apply(e,arguments)}function mI(){return F0.apply(null,arguments).exponent(.5)}function B0(e,t,n){const r=e-t+n*2;return e?r>0?r:1:0}const bI="identity",vo="linear",ii="log",lc="pow",uc="sqrt",Yu="symlog",Z2="time",q2="utc",Yn="sequential",wo="diverging",L0="quantile",W2="quantize",X2="threshold",O0="ordinal",R0="point",K2="band",z0="bin-ordinal",it="continuous",fc="discrete",hc="discretizing",nn="interpolating",J2="temporal";function yI(e){return function(t){let n=t[0],r=t[1],i;return r<n&&(i=n,n=r,r=i),[e.invert(n),e.invert(r)]}}function vI(e){return function(t){const n=e.range();let r=t[0],i=t[1],a=-1,o,s,l,c;for(i<r&&(s=r,r=i,i=s),l=0,c=n.length;l<c;++l)n[l]>=r&&n[l]<=i&&(a<0&&(a=l),o=l);if(!(a<0))return r=e.invertExtent(n[a]),i=e.invertExtent(n[o]),[r[0]===void 0?r[1]:r[0],i[1]===void 0?i[0]:i[1]]}}function P0(){const e=i0().unknown(void 0),t=e.domain,n=e.range;let r=[0,1],i,a,o=!1,s=0,l=0,c=.5;delete e.unknown;function u(){const f=t().length,h=r[1]<r[0],d=r[1-h],p=B0(f,s,l);let g=r[h-0];i=(d-g)/(p||1),o&&(i=Math.floor(i)),g+=(d-g-i*(f-s))*c,a=i*(1-s),o&&(g=Math.round(g),a=Math.round(a));const y=qr(f).map(v=>g+i*v);return n(h?y.reverse():y)}return e.domain=function(f){return arguments.length?(t(f),u()):t()},e.range=function(f){return arguments.length?(r=[+f[0],+f[1]],u()):r.slice()},e.rangeRound=function(f){return r=[+f[0],+f[1]],o=!0,u()},e.bandwidth=function(){return a},e.step=function(){return i},e.round=function(f){return arguments.length?(o=!!f,u()):o},e.padding=function(f){return arguments.length?(l=Math.max(0,Math.min(1,f)),s=l,u()):s},e.paddingInner=function(f){return arguments.length?(s=Math.max(0,Math.min(1,f)),u()):s},e.paddingOuter=function(f){return arguments.length?(l=Math.max(0,Math.min(1,f)),u()):l},e.align=function(f){return arguments.length?(c=Math.max(0,Math.min(1,f)),u()):c},e.invertRange=function(f){if(f[0]==null||f[1]==null)return;const h=r[1]<r[0],d=h?n().reverse():n(),p=d.length-1;let g=+f[0],y=+f[1],v,S,k;if(!(g!==g||y!==y)&&(y<g&&(k=g,g=y,y=k),!(y<d[0]||g>r[1-h])))return v=Math.max(0,kd(d,g)-1),S=g===y?v:kd(d,y)-1,g-d[v]>a+1e-10&&++v,h&&(k=v,v=p-S,S=p-k),v>S?void 0:t().slice(v,S+1)},e.invert=function(f){const h=e.invertRange([f,f]);return h&&h[0]},e.copy=function(){return P0().domain(t()).range(r).round(o).paddingInner(s).paddingOuter(l).align(c)},u()}function ev(e){const t=e.copy;return e.padding=e.paddingOuter,delete e.paddingInner,e.copy=function(){return ev(t())},e}function wI(){return ev(P0().paddingInner(1))}var xI=Array.prototype.map;function AI(e){return xI.call(e,Rs)}const EI=Array.prototype.slice;function tv(){let e=[],t=[];function n(r){return r==null||r!==r?void 0:t[(Qi(e,r)-1)%t.length]}return n.domain=function(r){return arguments.length?(e=AI(r),n):e.slice()},n.range=function(r){return arguments.length?(t=EI.call(r),n):t.slice()},n.tickFormat=function(r,i){return T2(e[0],Cn(e),r??10,i)},n.copy=function(){return tv().domain(n.domain()).range(n.range())},n}const Qu={};function SI(e,t,n){const r=function(){const a=t();return a.invertRange||(a.invertRange=a.invert?yI(a):a.invertExtent?vI(a):void 0),a.type=e,a};return r.metadata=yu(Ad(n)),r}function xe(e,t,n){return arguments.length>1?(Qu[e]=SI(e,t,n),this):CI(e)?Qu[e]:void 0}xe(bI,M2),xe(vo,Gu,it),xe(ii,_0,[it,ii]),xe(lc,I0,it),xe(uc,uI,it),xe(Yu,z2,it),xe(Z2,dI,[it,J2]),xe(q2,pI,[it,J2]),xe(Yn,M0,[it,nn]),xe("".concat(Yn,"-").concat(vo),M0,[it,nn]),xe("".concat(Yn,"-").concat(ii),G2,[it,nn,ii]),xe("".concat(Yn,"-").concat(lc),N0,[it,nn]),xe("".concat(Yn,"-").concat(uc),gI,[it,nn]),xe("".concat(Yn,"-").concat(Yu),$2,[it,nn]),xe("".concat(wo,"-").concat(vo),V2,[it,nn]),xe("".concat(wo,"-").concat(ii),Y2,[it,nn,ii]),xe("".concat(wo,"-").concat(lc),F0,[it,nn]),xe("".concat(wo,"-").concat(uc),mI,[it,nn]),xe("".concat(wo,"-").concat(Yu),Q2,[it,nn]),xe(L0,U2,[hc,L0]),xe(W2,j2,hc),xe(X2,H2,hc),xe(z0,tv,[fc,hc]),xe(O0,i0,fc),xe(K2,P0,fc),xe(R0,wI,fc);function CI(e){return Vi(Qu,e)}function dc(e,t){const n=Qu[e];return n&&n.metadata[t]}function Ft(e){return dc(e,it)}function ai(e){return dc(e,fc)}function sa(e){return dc(e,hc)}function nv(e){return dc(e,ii)}function Zu(e){return dc(e,nn)}function _I(e,t){const n=t[0],r=Cn(t)-n;return function(i){return e(n+i*r)}}function qu(e,t,n){return A0(rv(t||"rgb",n),e)}function kI(e,t){const n=new Array(t),r=t+1;for(let i=0;i<t;)n[i]=e(++i/r);return n}function rv(e,t){const n=K5[DI(e)];return t!=null&&n&&n.gamma?n.gamma(t):n}function DI(e){return"interpolate"+e.toLowerCase().split("-").map(t=>t[0].toUpperCase()+t.slice(1)).join("")}const II={blues:"cfe1f2bed8eca8cee58fc1de74b2d75ba3cf4592c63181bd206fb2125ca40a4a90",greens:"d3eecdc0e6baabdda594d3917bc77d60ba6c46ab5e329a512089430e7735036429",greys:"e2e2e2d4d4d4c4c4c4b1b1b19d9d9d8888887575756262624d4d4d3535351e1e1e",oranges:"fdd8b3fdc998fdb87bfda55efc9244f87f2cf06b18e4580bd14904b93d029f3303",purples:"e2e1efd4d4e8c4c5e0b4b3d6a3a0cc928ec3827cb97566ae684ea25c3696501f8c",reds:"fdc9b4fcb49afc9e80fc8767fa7051f6573fec3f2fdc2a25c81b1db21218970b13",blueGreen:"d5efedc1e8e0a7ddd18bd2be70c6a958ba9144ad77319c5d2089460e7736036429",bluePurple:"ccddecbad0e4a8c2dd9ab0d4919cc98d85be8b6db28a55a6873c99822287730f71",greenBlue:"d3eecec5e8c3b1e1bb9bd8bb82cec269c2ca51b2cd3c9fc7288abd1675b10b60a1",orangeRed:"fddcaffdcf9bfdc18afdad77fb9562f67d53ee6545e24932d32d1ebf130da70403",purpleBlue:"dbdaebc8cee4b1c3de97b7d87bacd15b9fc93a90c01e7fb70b70ab056199045281",purpleBlueGreen:"dbd8eac8cee4b0c3de93b7d872acd1549fc83892bb1c88a3097f8702736b016353",purpleRed:"dcc9e2d3b3d7ce9eccd186c0da6bb2e14da0e23189d91e6fc61159ab07498f023a",redPurple:"fccfccfcbec0faa9b8f98faff571a5ec539ddb3695c41b8aa908808d0179700174",yellowGreen:"e4f4acd1eca0b9e2949ed68880c97c62bb6e47aa5e3297502083440e723b036034",yellowOrangeBrown:"feeaa1fedd84fecc63feb746fca031f68921eb7215db5e0bc54c05ab3d038f3204",yellowOrangeRed:"fee087fed16ffebd59fea849fd903efc7335f9522bee3423de1b20ca0b22af0225",blueOrange:"134b852f78b35da2cb9dcae1d2e5eff2f0ebfce0bafbbf74e8932fc5690d994a07",brownBlueGreen:"704108a0651ac79548e3c78af3e6c6eef1eac9e9e48ed1c74da79e187a72025147",purpleGreen:"5b1667834792a67fb6c9aed3e6d6e8eff0efd9efd5aedda971bb75368e490e5e29",purpleOrange:"4114696647968f83b7b9b4d6dadbebf3eeeafce0bafbbf74e8932fc5690d994a07",redBlue:"8c0d25bf363adf745ef4ae91fbdbc9f2efeed2e5ef9dcae15da2cb2f78b3134b85",redGrey:"8c0d25bf363adf745ef4ae91fcdccbfaf4f1e2e2e2c0c0c0969696646464343434",yellowGreenBlue:"eff9bddbf1b4bde5b594d5b969c5be45b4c22c9ec02182b82163aa23479c1c3185",redYellowBlue:"a50026d4322cf16e43fcac64fedd90faf8c1dcf1ecabd6e875abd04a74b4313695",redYellowGreen:"a50026d4322cf16e43fcac63fedd8df9f7aed7ee8ea4d86e64bc6122964f006837",pinkYellowGreen:"8e0152c0267edd72adf0b3d6faddedf5f3efe1f2cab6de8780bb474f9125276419",spectral:"9e0142d13c4bf0704afcac63fedd8dfbf8b0e0f3a1a9dda269bda94288b55e4fa2",viridis:"440154470e61481a6c482575472f7d443a834144873d4e8a39568c35608d31688e2d708e2a788e27818e23888e21918d1f988b1fa08822a8842ab07f35b77943bf7154c56866cc5d7ad1518fd744a5db36bcdf27d2e21be9e51afde725",magma:"0000040404130b0924150e3720114b2c11603b0f704a107957157e651a80721f817f24828c29819a2e80a8327db6377ac43c75d1426fde4968e95462f1605df76f5cfa7f5efc8f65fe9f6dfeaf78febf84fece91fddea0fcedaffcfdbf",inferno:"0000040403130c0826170c3b240c4f330a5f420a68500d6c5d126e6b176e781c6d86216b932667a12b62ae305cbb3755c73e4cd24644dd513ae65c30ed6925f3771af8850ffb9506fca50afcb519fac62df6d645f2e661f3f484fcffa4",plasma:"0d088723069033059742039d5002a25d01a66a00a87801a88405a7900da49c179ea72198b12a90ba3488c33d80cb4779d35171da5a69e16462e76e5bed7953f2834cf68f44fa9a3dfca636fdb32ffec029fcce25f9dc24f5ea27f0f921",cividis:"00205100235800265d002961012b65042e670831690d346b11366c16396d1c3c6e213f6e26426e2c456e31476e374a6e3c4d6e42506e47536d4c566d51586e555b6e5a5e6e5e616e62646f66676f6a6a706e6d717270717573727976737c79747f7c75827f758682768985778c8877908b78938e789691789a94789e9778a19b78a59e77a9a177aea575b2a874b6ab73bbaf71c0b26fc5b66dc9b96acebd68d3c065d8c462ddc85fe2cb5ce7cf58ebd355f0d652f3da4ff7de4cfae249fce647",rainbow:"6e40aa883eb1a43db3bf3cafd83fa4ee4395fe4b83ff576eff6659ff7847ff8c38f3a130e2b72fcfcc36bee044aff05b8ff4576ff65b52f6673af27828ea8d1ddfa319d0b81cbecb23abd82f96e03d82e14c6edb5a5dd0664dbf6e40aa",sinebow:"ff4040fc582af47218e78d0bd5a703bfbf00a7d5038de70b72f41858fc2a40ff402afc5818f4720be78d03d5a700bfbf03a7d50b8de71872f42a58fc4040ff582afc7218f48d0be7a703d5bf00bfd503a7e70b8df41872fc2a58ff4040",turbo:"23171b32204a3e2a71453493493eae4b49c54a53d7485ee44569ee4074f53c7ff8378af93295f72e9ff42ba9ef28b3e926bce125c5d925cdcf27d5c629dcbc2de3b232e9a738ee9d3ff39347f68950f9805afc7765fd6e70fe667cfd5e88fc5795fb51a1f84badf545b9f140c5ec3cd0e637dae034e4d931ecd12ef4c92bfac029ffb626ffad24ffa223ff9821ff8d1fff821dff771cfd6c1af76118f05616e84b14df4111d5380fcb2f0dc0260ab61f07ac1805a313029b0f00950c00910b00",browns:"eedbbdecca96e9b97ae4a865dc9856d18954c7784cc0673fb85536ad44339f3632",tealBlues:"bce4d89dd3d181c3cb65b3c245a2b9368fae347da0306a932c5985",teals:"bbdfdfa2d4d58ac9c975bcbb61b0af4da5a43799982b8b8c1e7f7f127273006667",warmGreys:"dcd4d0cec5c1c0b8b4b3aaa7a59c9998908c8b827f7e7673726866665c5a59504e",goldGreen:"f4d166d5ca60b6c35c98bb597cb25760a6564b9c533f8f4f33834a257740146c36",goldOrange:"f4d166f8be5cf8aa4cf5983bf3852aef701be2621fd65322c54923b142239e3a26",goldRed:"f4d166f6be59f9aa51fc964ef6834bee734ae56249db5247cf4244c43141b71d3e",lightGreyRed:"efe9e6e1dad7d5cbc8c8bdb9bbaea9cd967ddc7b43e15f19df4011dc000b",lightGreyTeal:"e4eaead6dcddc8ced2b7c2c7a6b4bc64b0bf22a6c32295c11f85be1876bc",lightMulti:"e0f1f2c4e9d0b0de9fd0e181f6e072f6c053f3993ef77440ef4a3c",lightOrange:"f2e7daf7d5baf9c499fab184fa9c73f68967ef7860e8645bde515bd43d5b",lightTealBlue:"e3e9e0c0dccf9aceca7abfc859afc0389fb9328dad2f7ca0276b95255988",darkBlue:"3232322d46681a5c930074af008cbf05a7ce25c0dd38daed50f3faffffff",darkGold:"3c3c3c584b37725e348c7631ae8b2bcfa424ecc31ef9de30fff184ffffff",darkGreen:"3a3a3a215748006f4d048942489e4276b340a6c63dd2d836ffeb2cffffaa",darkMulti:"3737371f5287197d8c29a86995ce3fffe800ffffff",darkRed:"3434347036339e3c38cc4037e75d1eec8620eeab29f0ce32ffeb2c"},TI={category10:"1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf",category20:"1f77b4aec7e8ff7f0effbb782ca02c98df8ad62728ff98969467bdc5b0d58c564bc49c94e377c2f7b6d27f7f7fc7c7c7bcbd22dbdb8d17becf9edae5",category20b:"393b795254a36b6ecf9c9ede6379398ca252b5cf6bcedb9c8c6d31bd9e39e7ba52e7cb94843c39ad494ad6616be7969c7b4173a55194ce6dbdde9ed6",category20c:"3182bd6baed69ecae1c6dbefe6550dfd8d3cfdae6bfdd0a231a35474c476a1d99bc7e9c0756bb19e9ac8bcbddcdadaeb636363969696bdbdbdd9d9d9",tableau10:"4c78a8f58518e4575672b7b254a24beeca3bb279a2ff9da69d755dbab0ac",tableau20:"4c78a89ecae9f58518ffbf7954a24b88d27ab79a20f2cf5b43989483bcb6e45756ff9d9879706ebab0acd67195fcbfd2b279a2d6a5c99e765fd8b5a5",accent:"7fc97fbeaed4fdc086ffff99386cb0f0027fbf5b17666666",dark2:"1b9e77d95f027570b3e7298a66a61ee6ab02a6761d666666",paired:"a6cee31f78b4b2df8a33a02cfb9a99e31a1cfdbf6fff7f00cab2d66a3d9affff99b15928",pastel1:"fbb4aeb3cde3ccebc5decbe4fed9a6ffffcce5d8bdfddaecf2f2f2",pastel2:"b3e2cdfdcdaccbd5e8f4cae4e6f5c9fff2aef1e2cccccccc",set1:"e41a1c377eb84daf4a984ea3ff7f00ffff33a65628f781bf999999",set2:"66c2a5fc8d628da0cbe78ac3a6d854ffd92fe5c494b3b3b3",set3:"8dd3c7ffffb3bebadafb807280b1d3fdb462b3de69fccde5d9d9d9bc80bdccebc5ffed6f"};function iv(e){const t=e.length/6|0,n=new Array(t);for(let r=0;r<t;)n[r]="#"+e.slice(r*6,++r*6);return n}function av(e,t){for(const n in e)U0(n,t(e[n]))}const ov={};av(TI,iv),av(II,e=>qu(iv(e)));function U0(e,t){return e=e&&e.toLowerCase(),arguments.length>1?(ov[e]=t,this):ov[e]}const QZ="";function sv(e,t){var n=e.getBoundingClientRect();return[t.clientX-n.left-e.clientLeft,t.clientY-n.top-e.clientTop]}/**
7
7
  * @license
8
8
  * Copyright 2017 Google LLC
9
9
  * SPDX-License-Identifier: BSD-3-Clause
10
- */var zu;const Ra=window,Nr=Ra.trustedTypes,gp=Nr?Nr.createPolicy("lit-html",{createHTML:t=>t}):void 0,It=`lit$${(Math.random()+"").slice(9)}$`,Ru="?"+It,m4=`<${Ru}>`,Lr=document,Gi=(t="")=>Lr.createComment(t),Qi=t=>t===null||typeof t!="object"&&typeof t!="function",yp=Array.isArray,vp=t=>yp(t)||typeof(t==null?void 0:t[Symbol.iterator])=="function",Vi=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,bp=/-->/g,Ap=/>/g,Gn=RegExp(`>|[
10
+ */var j0;const Wu=window,xo=Wu.trustedTypes,cv=xo?xo.createPolicy("lit-html",{createHTML:e=>e}):void 0,xr=`lit$${(Math.random()+"").slice(9)}$`,H0="?"+xr,MI=`<${H0}>`,Ao=document,pc=(e="")=>Ao.createComment(e),gc=e=>e===null||typeof e!="object"&&typeof e!="function",lv=Array.isArray,uv=e=>lv(e)||typeof(e==null?void 0:e[Symbol.iterator])=="function",mc=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,fv=/-->/g,hv=/>/g,ca=RegExp(`>|[
11
11
  \f\r](?:([^\\s"'>=/]+)([
12
12
  \f\r]*=[
13
13
  \f\r]*(?:[^
14
- \f\r"'\`<>=]|("|')|))|$)`,"g"),xp=/'/g,wp=/"/g,Cp=/^(?:script|style|textarea|title)$/i,g4=t=>(e,...n)=>({_$litType$:t,strings:e,values:n}),E=g4(1),Ae=Symbol.for("lit-noChange"),z=Symbol.for("lit-nothing"),Sp=new WeakMap,Br=Lr.createTreeWalker(Lr,129,null,!1),Ep=(t,e)=>{const n=t.length-1,r=[];let i,o=e===2?"<svg>":"",a=Vi;for(let c=0;c<n;c++){const u=t[c];let f,l,d=-1,p=0;for(;p<u.length&&(a.lastIndex=p,l=a.exec(u),l!==null);)p=a.lastIndex,a===Vi?l[1]==="!--"?a=bp:l[1]!==void 0?a=Ap:l[2]!==void 0?(Cp.test(l[2])&&(i=RegExp("</"+l[2],"g")),a=Gn):l[3]!==void 0&&(a=Gn):a===Gn?l[0]===">"?(a=i??Vi,d=-1):l[1]===void 0?d=-2:(d=a.lastIndex-l[2].length,f=l[1],a=l[3]===void 0?Gn:l[3]==='"'?wp:xp):a===wp||a===xp?a=Gn:a===bp||a===Ap?a=Vi:(a=Gn,i=void 0);const h=a===Gn&&t[c+1].startsWith("/>")?" ":"";o+=a===Vi?u+m4:d>=0?(r.push(f),u.slice(0,d)+"$lit$"+u.slice(d)+It+h):u+It+(d===-2?(r.push(void 0),c):h)}const s=o+(t[n]||"<?>")+(e===2?"</svg>":"");if(!Array.isArray(t)||!t.hasOwnProperty("raw"))throw Error("invalid template strings array");return[gp!==void 0?gp.createHTML(s):s,r]};let ju=class Wb{constructor({strings:e,_$litType$:n},r){let i;this.parts=[];let o=0,a=0;const s=e.length-1,c=this.parts,[u,f]=Ep(e,n);if(this.el=Wb.createElement(u,r),Br.currentNode=this.el.content,n===2){const l=this.el.content,d=l.firstChild;d.remove(),l.append(...d.childNodes)}for(;(i=Br.nextNode())!==null&&c.length<s;){if(i.nodeType===1){if(i.hasAttributes()){const l=[];for(const d of i.getAttributeNames())if(d.endsWith("$lit$")||d.startsWith(It)){const p=f[a++];if(l.push(d),p!==void 0){const h=i.getAttribute(p.toLowerCase()+"$lit$").split(It),m=/([.?@])?(.*)/.exec(p);c.push({type:1,index:o,name:m[2],strings:h,ctor:m[1]==="."?Mp:m[1]==="?"?Tp:m[1]==="@"?Ip:Yi})}else c.push({type:6,index:o})}for(const d of l)i.removeAttribute(d)}if(Cp.test(i.tagName)){const l=i.textContent.split(It),d=l.length-1;if(d>0){i.textContent=Nr?Nr.emptyScript:"";for(let p=0;p<d;p++)i.append(l[p],Gi()),Br.nextNode(),c.push({type:2,index:++o});i.append(l[d],Gi())}}}else if(i.nodeType===8)if(i.data===Ru)c.push({type:2,index:o});else{let l=-1;for(;(l=i.data.indexOf(It,l+1))!==-1;)c.push({type:7,index:o}),l+=It.length-1}o++}}static createElement(e,n){const r=Lr.createElement("template");return r.innerHTML=e,r}};function Qn(t,e,n=t,r){var i,o,a,s;if(e===Ae)return e;let c=r!==void 0?(i=n._$Co)===null||i===void 0?void 0:i[r]:n._$Cl;const u=Qi(e)?void 0:e._$litDirective$;return(c==null?void 0:c.constructor)!==u&&((o=c==null?void 0:c._$AO)===null||o===void 0||o.call(c,!1),u===void 0?c=void 0:(c=new u(t),c._$AT(t,n,r)),r!==void 0?((a=(s=n)._$Co)!==null&&a!==void 0?a:s._$Co=[])[r]=c:n._$Cl=c),c!==void 0&&(e=Qn(t,c._$AS(t,e.values),c,r)),e}class Dp{constructor(e,n){this.u=[],this._$AN=void 0,this._$AD=e,this._$AM=n}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}v(e){var n;const{el:{content:r},parts:i}=this._$AD,o=((n=e==null?void 0:e.creationScope)!==null&&n!==void 0?n:Lr).importNode(r,!0);Br.currentNode=o;let a=Br.nextNode(),s=0,c=0,u=i[0];for(;u!==void 0;){if(s===u.index){let f;u.type===2?f=new ja(a,a.nextSibling,this,e):u.type===1?f=new u.ctor(a,u.name,u.strings,this,e):u.type===6&&(f=new kp(a,this,e)),this.u.push(f),u=i[++c]}s!==(u==null?void 0:u.index)&&(a=Br.nextNode(),s++)}return o}p(e){let n=0;for(const r of this.u)r!==void 0&&(r.strings!==void 0?(r._$AI(e,r,n),n+=r.strings.length-2):r._$AI(e[n])),n++}}let ja=class Xb{constructor(e,n,r,i){var o;this.type=2,this._$AH=z,this._$AN=void 0,this._$AA=e,this._$AB=n,this._$AM=r,this.options=i,this._$Cm=(o=i==null?void 0:i.isConnected)===null||o===void 0||o}get _$AU(){var e,n;return(n=(e=this._$AM)===null||e===void 0?void 0:e._$AU)!==null&&n!==void 0?n:this._$Cm}get parentNode(){let e=this._$AA.parentNode;const n=this._$AM;return n!==void 0&&e.nodeType===11&&(e=n.parentNode),e}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(e,n=this){e=Qn(this,e,n),Qi(e)?e===z||e==null||e===""?(this._$AH!==z&&this._$AR(),this._$AH=z):e!==this._$AH&&e!==Ae&&this.g(e):e._$litType$!==void 0?this.$(e):e.nodeType!==void 0?this.T(e):vp(e)?this.k(e):this.g(e)}O(e,n=this._$AB){return this._$AA.parentNode.insertBefore(e,n)}T(e){this._$AH!==e&&(this._$AR(),this._$AH=this.O(e))}g(e){this._$AH!==z&&Qi(this._$AH)?this._$AA.nextSibling.data=e:this.T(Lr.createTextNode(e)),this._$AH=e}$(e){var n;const{values:r,_$litType$:i}=e,o=typeof i=="number"?this._$AC(e):(i.el===void 0&&(i.el=ju.createElement(i.h,this.options)),i);if(((n=this._$AH)===null||n===void 0?void 0:n._$AD)===o)this._$AH.p(r);else{const a=new Dp(o,this),s=a.v(this.options);a.p(r),this.T(s),this._$AH=a}}_$AC(e){let n=Sp.get(e.strings);return n===void 0&&Sp.set(e.strings,n=new ju(e)),n}k(e){yp(this._$AH)||(this._$AH=[],this._$AR());const n=this._$AH;let r,i=0;for(const o of e)i===n.length?n.push(r=new Xb(this.O(Gi()),this.O(Gi()),this,this.options)):r=n[i],r._$AI(o),i++;i<n.length&&(this._$AR(r&&r._$AB.nextSibling,i),n.length=i)}_$AR(e=this._$AA.nextSibling,n){var r;for((r=this._$AP)===null||r===void 0||r.call(this,!1,!0,n);e&&e!==this._$AB;){const i=e.nextSibling;e.remove(),e=i}}setConnected(e){var n;this._$AM===void 0&&(this._$Cm=e,(n=this._$AP)===null||n===void 0||n.call(this,e))}},Yi=class{constructor(e,n,r,i,o){this.type=1,this._$AH=z,this._$AN=void 0,this.element=e,this.name=n,this._$AM=i,this.options=o,r.length>2||r[0]!==""||r[1]!==""?(this._$AH=Array(r.length-1).fill(new String),this.strings=r):this._$AH=z}get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}_$AI(e,n=this,r,i){const o=this.strings;let a=!1;if(o===void 0)e=Qn(this,e,n,0),a=!Qi(e)||e!==this._$AH&&e!==Ae,a&&(this._$AH=e);else{const s=e;let c,u;for(e=o[0],c=0;c<o.length-1;c++)u=Qn(this,s[r+c],n,c),u===Ae&&(u=this._$AH[c]),a||(a=!Qi(u)||u!==this._$AH[c]),u===z?e=z:e!==z&&(e+=(u??"")+o[c+1]),this._$AH[c]=u}a&&!i&&this.j(e)}j(e){e===z?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,e??"")}},Mp=class extends Yi{constructor(){super(...arguments),this.type=3}j(e){this.element[this.name]=e===z?void 0:e}};const y4=Nr?Nr.emptyScript:"";let Tp=class extends Yi{constructor(){super(...arguments),this.type=4}j(e){e&&e!==z?this.element.setAttribute(this.name,y4):this.element.removeAttribute(this.name)}},Ip=class extends Yi{constructor(e,n,r,i,o){super(e,n,r,i,o),this.type=5}_$AI(e,n=this){var r;if((e=(r=Qn(this,e,n,0))!==null&&r!==void 0?r:z)===Ae)return;const i=this._$AH,o=e===z&&i!==z||e.capture!==i.capture||e.once!==i.once||e.passive!==i.passive,a=e!==z&&(i===z||o);o&&this.element.removeEventListener(this.name,this,i),a&&this.element.addEventListener(this.name,this,e),this._$AH=e}handleEvent(e){var n,r;typeof this._$AH=="function"?this._$AH.call((r=(n=this.options)===null||n===void 0?void 0:n.host)!==null&&r!==void 0?r:this.element,e):this._$AH.handleEvent(e)}},kp=class{constructor(e,n,r){this.element=e,this.type=6,this._$AN=void 0,this._$AM=n,this.options=r}get _$AU(){return this._$AM._$AU}_$AI(e){Qn(this,e)}};const v4={P:"$lit$",A:It,M:Ru,C:1,L:Ep,R:Dp,D:vp,V:Qn,I:ja,H:Yi,N:Tp,U:Ip,B:Mp,F:kp},Np=Ra.litHtmlPolyfillSupport;Np==null||Np(ju,ja),((zu=Ra.litHtmlVersions)!==null&&zu!==void 0?zu:Ra.litHtmlVersions=[]).push("2.4.0");const Be=(t,e,n)=>{var r,i;const o=(r=n==null?void 0:n.renderBefore)!==null&&r!==void 0?r:e;let a=o._$litPart$;if(a===void 0){const s=(i=n==null?void 0:n.renderBefore)!==null&&i!==void 0?i:null;o._$litPart$=a=new ja(e.insertBefore(Gi(),s),s,void 0,n??{})}return a._$AI(t),a};function Lp(t,e){return t.length==e.length&&t.every((n,r)=>t[r]===e[r])}function b4(t,e,n,r){return t.length==e.length&&t.every((i,o)=>n(t[o])===r(e[o]))}function Ze(t){return Array.isArray(t)?t:typeof t<"u"?[t]:[]}function Re(t){return t[t.length-1]}const Vn="gs-suppress-tooltip";class A4{constructor(e){this.container=e,this.element=document.createElement("div"),this.element.className="tooltip",this._visible=!0,this.container.appendChild(this.element),this._previousTooltipDatum=void 0,this.enabledStack=[!0],this._penaltyUntil=0,this._lastCoords=void 0,this._previousMove=0,this.clear()}set visible(e){e!=this._visible&&(this.element.style.display=e?null:"none",this._visible=e)}get visible(){return this._visible}get enabled(){return Re(this.enabledStack)??!0}pushEnabledState(e){this.enabledStack.push(e),e||(this.visible=!1)}popEnabledState(){this.enabledStack.pop()}handleMouseMove(e){this.mouseCoords=mp(this.container,e);const n=performance.now();!this.visible&&!this._isPenalty()&&n-this._previousMove>500&&(this._penaltyUntil=n+70),this._lastCoords&&x4(this.mouseCoords,this._lastCoords)>20&&(this._penaltyUntil=n+400),this._lastCoords=this.mouseCoords,this.visible&&this.updatePlacement(),this._previousMove=n}updatePlacement(){const[n,r]=this.mouseCoords;let i=n+20;i>this.container.clientWidth-this.element.offsetWidth&&(i=n-20-this.element.offsetWidth),this.element.style.left=i+"px",this.element.style.top=Math.min(r+20,this.container.clientHeight-this.element.offsetHeight)+"px"}setContent(e){if(!e||!this.enabled||this._isPenalty()){this.visible&&(Be("",this.element),this.visible=!1),this._previousTooltipDatum=void 0;return}Be(e,this.element),this.visible=!0,this.updatePlacement()}clear(){this._previousTooltipDatum=void 0,this.setContent(void 0)}updateWithDatum(e,n){e!==this._previousTooltipDatum&&(this._previousTooltipDatum=e,n||(n=r=>Promise.resolve(E`${JSON.stringify(r)}`)),n(e).then(r=>this.setContent(r)).catch(r=>{if(r!=="debounced")throw r}))}_isPenalty(){return this._penaltyUntil&&this._penaltyUntil>performance.now()}}function x4(t,e){let n=0;for(let r=0;r<t.length;r++)n+=(t[r]-e[r])**2;return Math.sqrt(n)}const w4="RawCode",C4="Literal",S4="Property",E4="Identifier",D4="ArrayExpression",M4="BinaryExpression",T4="CallExpression",I4="ConditionalExpression",k4="LogicalExpression",N4="MemberExpression",L4="ObjectExpression",B4="UnaryExpression";function it(t){this.type=t}it.prototype.visit=function(t){let e,n,r;if(t(this))return 1;for(e=O4(this),n=0,r=e.length;n<r;++n)if(e[n].visit(t))return 1};function O4(t){switch(t.type){case D4:return t.elements;case M4:case k4:return[t.left,t.right];case T4:return[t.callee].concat(t.arguments);case I4:return[t.test,t.consequent,t.alternate];case N4:return[t.object,t.property];case L4:return t.properties;case S4:return[t.key,t.value];case B4:return[t.argument];case E4:case C4:case w4:default:return[]}}var pt,N,S,we,Z,Ua=1,_i=2,Yn=3,rn=4,Ha=5,_n=6,Oe=7,Wi=8,F4=9;pt={},pt[Ua]="Boolean",pt[_i]="<end>",pt[Yn]="Identifier",pt[rn]="Keyword",pt[Ha]="Null",pt[_n]="Numeric",pt[Oe]="Punctuator",pt[Wi]="String",pt[F4]="RegularExpression";var P4="ArrayExpression",z4="BinaryExpression",R4="CallExpression",j4="ConditionalExpression",Bp="Identifier",U4="Literal",H4="LogicalExpression",G4="MemberExpression",Q4="ObjectExpression",V4="Property",Y4="UnaryExpression",be="Unexpected token %0",_4="Unexpected number",W4="Unexpected string",X4="Unexpected identifier",Z4="Unexpected reserved word",q4="Unexpected end of input",Uu="Invalid regular expression",Hu="Invalid regular expression: missing /",Op="Octal literals are not allowed in strict mode.",K4="Duplicate data property in object literal not allowed in strict mode",xe="ILLEGAL",Xi="Disabled.",J4=new RegExp("[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0-\\u08B2\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58\\u0C59\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D60\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19C1-\\u19C7\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA7AD\\uA7B0\\uA7B1\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB5F\\uAB64\\uAB65\\uABC0-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]"),$4=new RegExp("[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0300-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u0483-\\u0487\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0610-\\u061A\\u0620-\\u0669\\u066E-\\u06D3\\u06D5-\\u06DC\\u06DF-\\u06E8\\u06EA-\\u06FC\\u06FF\\u0710-\\u074A\\u074D-\\u07B1\\u07C0-\\u07F5\\u07FA\\u0800-\\u082D\\u0840-\\u085B\\u08A0-\\u08B2\\u08E4-\\u0963\\u0966-\\u096F\\u0971-\\u0983\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BC-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CE\\u09D7\\u09DC\\u09DD\\u09DF-\\u09E3\\u09E6-\\u09F1\\u0A01-\\u0A03\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A75\\u0A81-\\u0A83\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABC-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AD0\\u0AE0-\\u0AE3\\u0AE6-\\u0AEF\\u0B01-\\u0B03\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3C-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B5C\\u0B5D\\u0B5F-\\u0B63\\u0B66-\\u0B6F\\u0B71\\u0B82\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD0\\u0BD7\\u0BE6-\\u0BEF\\u0C00-\\u0C03\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C58\\u0C59\\u0C60-\\u0C63\\u0C66-\\u0C6F\\u0C81-\\u0C83\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBC-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CDE\\u0CE0-\\u0CE3\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D01-\\u0D03\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4E\\u0D57\\u0D60-\\u0D63\\u0D66-\\u0D6F\\u0D7A-\\u0D7F\\u0D82\\u0D83\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DE6-\\u0DEF\\u0DF2\\u0DF3\\u0E01-\\u0E3A\\u0E40-\\u0E4E\\u0E50-\\u0E59\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB9\\u0EBB-\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EC8-\\u0ECD\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00\\u0F18\\u0F19\\u0F20-\\u0F29\\u0F35\\u0F37\\u0F39\\u0F3E-\\u0F47\\u0F49-\\u0F6C\\u0F71-\\u0F84\\u0F86-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u1000-\\u1049\\u1050-\\u109D\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u135D-\\u135F\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176C\\u176E-\\u1770\\u1772\\u1773\\u1780-\\u17D3\\u17D7\\u17DC\\u17DD\\u17E0-\\u17E9\\u180B-\\u180D\\u1810-\\u1819\\u1820-\\u1877\\u1880-\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1920-\\u192B\\u1930-\\u193B\\u1946-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19D9\\u1A00-\\u1A1B\\u1A20-\\u1A5E\\u1A60-\\u1A7C\\u1A7F-\\u1A89\\u1A90-\\u1A99\\u1AA7\\u1AB0-\\u1ABD\\u1B00-\\u1B4B\\u1B50-\\u1B59\\u1B6B-\\u1B73\\u1B80-\\u1BF3\\u1C00-\\u1C37\\u1C40-\\u1C49\\u1C4D-\\u1C7D\\u1CD0-\\u1CD2\\u1CD4-\\u1CF6\\u1CF8\\u1CF9\\u1D00-\\u1DF5\\u1DFC-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u200C\\u200D\\u203F\\u2040\\u2054\\u2071\\u207F\\u2090-\\u209C\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D7F-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2DE0-\\u2DFF\\u2E2F\\u3005-\\u3007\\u3021-\\u302F\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u3099\\u309A\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA62B\\uA640-\\uA66F\\uA674-\\uA67D\\uA67F-\\uA69D\\uA69F-\\uA6F1\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA7AD\\uA7B0\\uA7B1\\uA7F7-\\uA827\\uA840-\\uA873\\uA880-\\uA8C4\\uA8D0-\\uA8D9\\uA8E0-\\uA8F7\\uA8FB\\uA900-\\uA92D\\uA930-\\uA953\\uA960-\\uA97C\\uA980-\\uA9C0\\uA9CF-\\uA9D9\\uA9E0-\\uA9FE\\uAA00-\\uAA36\\uAA40-\\uAA4D\\uAA50-\\uAA59\\uAA60-\\uAA76\\uAA7A-\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEF\\uAAF2-\\uAAF6\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB5F\\uAB64\\uAB65\\uABC0-\\uABEA\\uABEC\\uABED\\uABF0-\\uABF9\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE00-\\uFE0F\\uFE20-\\uFE2D\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF10-\\uFF19\\uFF21-\\uFF3A\\uFF3F\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]");function Ga(t,e){if(!t)throw new Error("ASSERT: "+e)}function kt(t){return t>=48&&t<=57}function Gu(t){return"0123456789abcdefABCDEF".indexOf(t)>=0}function Zi(t){return"01234567".indexOf(t)>=0}function e3(t){return t===32||t===9||t===11||t===12||t===160||t>=5760&&[5760,6158,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].indexOf(t)>=0}function qi(t){return t===10||t===13||t===8232||t===8233}function Ki(t){return t===36||t===95||t>=65&&t<=90||t>=97&&t<=122||t===92||t>=128&&J4.test(String.fromCharCode(t))}function Qa(t){return t===36||t===95||t>=65&&t<=90||t>=97&&t<=122||t>=48&&t<=57||t===92||t>=128&&$4.test(String.fromCharCode(t))}const t3={if:1,in:1,do:1,var:1,for:1,new:1,try:1,let:1,this:1,else:1,case:1,void:1,with:1,enum:1,while:1,break:1,catch:1,throw:1,const:1,yield:1,class:1,super:1,return:1,typeof:1,delete:1,switch:1,export:1,import:1,public:1,static:1,default:1,finally:1,extends:1,package:1,private:1,function:1,continue:1,debugger:1,interface:1,protected:1,instanceof:1,implements:1};function Fp(){for(;S<we;){const t=N.charCodeAt(S);if(e3(t)||qi(t))++S;else break}}function Qu(t){var e,n,r,i=0;for(n=t==="u"?4:2,e=0;e<n;++e)S<we&&Gu(N[S])?(r=N[S++],i=i*16+"0123456789abcdef".indexOf(r.toLowerCase())):Y({},be,xe);return String.fromCharCode(i)}function n3(){var t,e,n,r;for(t=N[S],e=0,t==="}"&&Y({},be,xe);S<we&&(t=N[S++],!!Gu(t));)e=e*16+"0123456789abcdef".indexOf(t.toLowerCase());return(e>1114111||t!=="}")&&Y({},be,xe),e<=65535?String.fromCharCode(e):(n=(e-65536>>10)+55296,r=(e-65536&1023)+56320,String.fromCharCode(n,r))}function Pp(){var t,e;for(t=N.charCodeAt(S++),e=String.fromCharCode(t),t===92&&(N.charCodeAt(S)!==117&&Y({},be,xe),++S,t=Qu("u"),(!t||t==="\\"||!Ki(t.charCodeAt(0)))&&Y({},be,xe),e=t);S<we&&(t=N.charCodeAt(S),!!Qa(t));)++S,e+=String.fromCharCode(t),t===92&&(e=e.substr(0,e.length-1),N.charCodeAt(S)!==117&&Y({},be,xe),++S,t=Qu("u"),(!t||t==="\\"||!Qa(t.charCodeAt(0)))&&Y({},be,xe),e+=t);return e}function r3(){var t,e;for(t=S++;S<we;){if(e=N.charCodeAt(S),e===92)return S=t,Pp();if(Qa(e))++S;else break}return N.slice(t,S)}function i3(){var t,e,n;return t=S,e=N.charCodeAt(S)===92?Pp():r3(),e.length===1?n=Yn:t3.hasOwnProperty(e)?n=rn:e==="null"?n=Ha:e==="true"||e==="false"?n=Ua:n=Yn,{type:n,value:e,start:t,end:S}}function Vu(){var t=S,e=N.charCodeAt(S),n,r=N[S],i,o,a;switch(e){case 46:case 40:case 41:case 59:case 44:case 123:case 125:case 91:case 93:case 58:case 63:case 126:return++S,{type:Oe,value:String.fromCharCode(e),start:t,end:S};default:if(n=N.charCodeAt(S+1),n===61)switch(e){case 43:case 45:case 47:case 60:case 62:case 94:case 124:case 37:case 38:case 42:return S+=2,{type:Oe,value:String.fromCharCode(e)+String.fromCharCode(n),start:t,end:S};case 33:case 61:return S+=2,N.charCodeAt(S)===61&&++S,{type:Oe,value:N.slice(t,S),start:t,end:S}}}if(a=N.substr(S,4),a===">>>=")return S+=4,{type:Oe,value:a,start:t,end:S};if(o=a.substr(0,3),o===">>>"||o==="<<="||o===">>=")return S+=3,{type:Oe,value:o,start:t,end:S};if(i=o.substr(0,2),r===i[1]&&"+-<>&|".indexOf(r)>=0||i==="=>")return S+=2,{type:Oe,value:i,start:t,end:S};if(i==="//"&&Y({},be,xe),"<>=!+-*%&|^/".indexOf(r)>=0)return++S,{type:Oe,value:r,start:t,end:S};Y({},be,xe)}function o3(t){let e="";for(;S<we&&Gu(N[S]);)e+=N[S++];return e.length===0&&Y({},be,xe),Ki(N.charCodeAt(S))&&Y({},be,xe),{type:_n,value:parseInt("0x"+e,16),start:t,end:S}}function a3(t){let e="0"+N[S++];for(;S<we&&Zi(N[S]);)e+=N[S++];return(Ki(N.charCodeAt(S))||kt(N.charCodeAt(S)))&&Y({},be,xe),{type:_n,value:parseInt(e,8),octal:!0,start:t,end:S}}function zp(){var t,e,n;if(n=N[S],Ga(kt(n.charCodeAt(0))||n===".","Numeric literal must start with a decimal digit or a decimal point"),e=S,t="",n!=="."){if(t=N[S++],n=N[S],t==="0"){if(n==="x"||n==="X")return++S,o3(e);if(Zi(n))return a3(e);n&&kt(n.charCodeAt(0))&&Y({},be,xe)}for(;kt(N.charCodeAt(S));)t+=N[S++];n=N[S]}if(n==="."){for(t+=N[S++];kt(N.charCodeAt(S));)t+=N[S++];n=N[S]}if(n==="e"||n==="E")if(t+=N[S++],n=N[S],(n==="+"||n==="-")&&(t+=N[S++]),kt(N.charCodeAt(S)))for(;kt(N.charCodeAt(S));)t+=N[S++];else Y({},be,xe);return Ki(N.charCodeAt(S))&&Y({},be,xe),{type:_n,value:parseFloat(t),start:e,end:S}}function s3(){var t="",e,n,r,i,o=!1;for(e=N[S],Ga(e==="'"||e==='"',"String literal must starts with a quote"),n=S,++S;S<we;)if(r=N[S++],r===e){e="";break}else if(r==="\\")if(r=N[S++],!r||!qi(r.charCodeAt(0)))switch(r){case"u":case"x":N[S]==="{"?(++S,t+=n3()):t+=Qu(r);break;case"n":t+=`
15
- `;break;case"r":t+="\r";break;case"t":t+=" ";break;case"b":t+="\b";break;case"f":t+="\f";break;case"v":t+="\v";break;default:Zi(r)?(i="01234567".indexOf(r),i!==0&&(o=!0),S<we&&Zi(N[S])&&(o=!0,i=i*8+"01234567".indexOf(N[S++]),"0123".indexOf(r)>=0&&S<we&&Zi(N[S])&&(i=i*8+"01234567".indexOf(N[S++]))),t+=String.fromCharCode(i)):t+=r;break}else r==="\r"&&N[S]===`
16
- `&&++S;else{if(qi(r.charCodeAt(0)))break;t+=r}return e!==""&&Y({},be,xe),{type:Wi,value:t,octal:o,start:n,end:S}}function c3(t,e){let n=t;e.indexOf("u")>=0&&(n=n.replace(/\\u\{([0-9a-fA-F]+)\}/g,(r,i)=>{if(parseInt(i,16)<=1114111)return"x";Y({},Uu)}).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"x"));try{new RegExp(n)}catch{Y({},Uu)}try{return new RegExp(t,e)}catch{return null}}function u3(){var t,e,n,r,i;for(t=N[S],Ga(t==="/","Regular expression literal must start with a slash"),e=N[S++],n=!1,r=!1;S<we;)if(t=N[S++],e+=t,t==="\\")t=N[S++],qi(t.charCodeAt(0))&&Y({},Hu),e+=t;else if(qi(t.charCodeAt(0)))Y({},Hu);else if(n)t==="]"&&(n=!1);else if(t==="/"){r=!0;break}else t==="["&&(n=!0);return r||Y({},Hu),i=e.substr(1,e.length-2),{value:i,literal:e}}function l3(){var t,e,n;for(e="",n="";S<we&&(t=N[S],!!Qa(t.charCodeAt(0)));)++S,t==="\\"&&S<we?Y({},be,xe):(n+=t,e+=t);return n.search(/[^gimuy]/g)>=0&&Y({},Uu,n),{value:n,literal:e}}function f3(){var t,e,n,r;return Z=null,Fp(),t=S,e=u3(),n=l3(),r=c3(e.value,n.value),{literal:e.literal+n.literal,value:r,regex:{pattern:e.value,flags:n.value},start:t,end:S}}function d3(t){return t.type===Yn||t.type===rn||t.type===Ua||t.type===Ha}function Rp(){if(Fp(),S>=we)return{type:_i,start:S,end:S};const t=N.charCodeAt(S);return Ki(t)?i3():t===40||t===41||t===59?Vu():t===39||t===34?s3():t===46?kt(N.charCodeAt(S+1))?zp():Vu():kt(t)?zp():Vu()}function Fe(){const t=Z;return S=t.end,Z=Rp(),S=t.end,t}function jp(){const t=S;Z=Rp(),S=t}function h3(t){const e=new it(P4);return e.elements=t,e}function Up(t,e,n){const r=new it(t==="||"||t==="&&"?H4:z4);return r.operator=t,r.left=e,r.right=n,r}function p3(t,e){const n=new it(R4);return n.callee=t,n.arguments=e,n}function m3(t,e,n){const r=new it(j4);return r.test=t,r.consequent=e,r.alternate=n,r}function Yu(t){const e=new it(Bp);return e.name=t,e}function Ji(t){const e=new it(U4);return e.value=t.value,e.raw=N.slice(t.start,t.end),t.regex&&(e.raw==="//"&&(e.raw="/(?:)/"),e.regex=t.regex),e}function Hp(t,e,n){const r=new it(G4);return r.computed=t==="[",r.object=e,r.property=n,r.computed||(n.member=!0),r}function g3(t){const e=new it(Q4);return e.properties=t,e}function Gp(t,e,n){const r=new it(V4);return r.key=e,r.value=n,r.kind=t,r}function y3(t,e){const n=new it(Y4);return n.operator=t,n.argument=e,n.prefix=!0,n}function Y(t,e){var n,r=Array.prototype.slice.call(arguments,2),i=e.replace(/%(\d)/g,(o,a)=>(Ga(a<r.length,"Message reference must be in range"),r[a]));throw n=new Error(i),n.index=S,n.description=i,n}function Va(t){t.type===_i&&Y(t,q4),t.type===_n&&Y(t,_4),t.type===Wi&&Y(t,W4),t.type===Yn&&Y(t,X4),t.type===rn&&Y(t,Z4),Y(t,be,t.value)}function Ce(t){const e=Fe();(e.type!==Oe||e.value!==t)&&Va(e)}function ee(t){return Z.type===Oe&&Z.value===t}function _u(t){return Z.type===rn&&Z.value===t}function v3(){const t=[];for(S=Z.start,Ce("[");!ee("]");)ee(",")?(Fe(),t.push(null)):(t.push(Wn()),ee("]")||Ce(","));return Fe(),h3(t)}function Qp(){S=Z.start;const t=Fe();return t.type===Wi||t.type===_n?(t.octal&&Y(t,Op),Ji(t)):Yu(t.value)}function b3(){var t,e,n,r;if(S=Z.start,t=Z,t.type===Yn)return n=Qp(),Ce(":"),r=Wn(),Gp("init",n,r);if(t.type===_i||t.type===Oe)Va(t);else return e=Qp(),Ce(":"),r=Wn(),Gp("init",e,r)}function A3(){var t=[],e,n,r,i={},o=String;for(S=Z.start,Ce("{");!ee("}");)e=b3(),e.key.type===Bp?n=e.key.name:n=o(e.key.value),r="$"+n,Object.prototype.hasOwnProperty.call(i,r)?Y({},K4):i[r]=!0,t.push(e),ee("}")||Ce(",");return Ce("}"),g3(t)}function x3(){Ce("(");const t=Wu();return Ce(")"),t}const w3={if:1};function C3(){var t,e,n;if(ee("("))return x3();if(ee("["))return v3();if(ee("{"))return A3();if(t=Z.type,S=Z.start,t===Yn||w3[Z.value])n=Yu(Fe().value);else if(t===Wi||t===_n)Z.octal&&Y(Z,Op),n=Ji(Fe());else{if(t===rn)throw new Error(Xi);t===Ua?(e=Fe(),e.value=e.value==="true",n=Ji(e)):t===Ha?(e=Fe(),e.value=null,n=Ji(e)):ee("/")||ee("/=")?(n=Ji(f3()),jp()):Va(Fe())}return n}function S3(){const t=[];if(Ce("("),!ee(")"))for(;S<we&&(t.push(Wn()),!ee(")"));)Ce(",");return Ce(")"),t}function E3(){S=Z.start;const t=Fe();return d3(t)||Va(t),Yu(t.value)}function D3(){return Ce("."),E3()}function M3(){Ce("[");const t=Wu();return Ce("]"),t}function T3(){var t,e,n;for(t=C3();;)if(ee("."))n=D3(),t=Hp(".",t,n);else if(ee("("))e=S3(),t=p3(t,e);else if(ee("["))n=M3(),t=Hp("[",t,n);else break;return t}function Vp(){const t=T3();if(Z.type===Oe&&(ee("++")||ee("--")))throw new Error(Xi);return t}function Ya(){var t,e;if(Z.type!==Oe&&Z.type!==rn)e=Vp();else{if(ee("++")||ee("--"))throw new Error(Xi);if(ee("+")||ee("-")||ee("~")||ee("!"))t=Fe(),e=Ya(),e=y3(t.value,e);else{if(_u("delete")||_u("void")||_u("typeof"))throw new Error(Xi);e=Vp()}}return e}function Yp(t){let e=0;if(t.type!==Oe&&t.type!==rn)return 0;switch(t.value){case"||":e=1;break;case"&&":e=2;break;case"|":e=3;break;case"^":e=4;break;case"&":e=5;break;case"==":case"!=":case"===":case"!==":e=6;break;case"<":case">":case"<=":case">=":case"instanceof":case"in":e=7;break;case"<<":case">>":case">>>":e=8;break;case"+":case"-":e=9;break;case"*":case"/":case"%":e=11;break}return e}function I3(){var t,e,n,r,i,o,a,s,c,u;if(t=Z,c=Ya(),r=Z,i=Yp(r),i===0)return c;for(r.prec=i,Fe(),e=[t,Z],a=Ya(),o=[c,r,a];(i=Yp(Z))>0;){for(;o.length>2&&i<=o[o.length-2].prec;)a=o.pop(),s=o.pop().value,c=o.pop(),e.pop(),n=Up(s,c,a),o.push(n);r=Fe(),r.prec=i,o.push(r),e.push(Z),n=Ya(),o.push(n)}for(u=o.length-1,n=o[u],e.pop();u>1;)e.pop(),n=Up(o[u-1].value,o[u-2],n),u-=2;return n}function Wn(){var t,e,n;return t=I3(),ee("?")&&(Fe(),e=Wn(),Ce(":"),n=Wn(),t=m3(t,e,n)),t}function Wu(){const t=Wn();if(ee(","))throw new Error(Xi);return t}function k3(t){N=t,S=0,we=N.length,Z=null,jp();const e=Wu();if(Z.type!==_i)throw new Error("Unexpect token after expression.");return e}var N3={NaN:"NaN",E:"Math.E",LN2:"Math.LN2",LN10:"Math.LN10",LOG2E:"Math.LOG2E",LOG10E:"Math.LOG10E",PI:"Math.PI",SQRT1_2:"Math.SQRT1_2",SQRT2:"Math.SQRT2",MIN_VALUE:"Number.MIN_VALUE",MAX_VALUE:"Number.MAX_VALUE"};function L3(t){function e(a,s,c,u){let f=t(s[0]);return c&&(f=c+"("+f+")",c.lastIndexOf("new ",0)===0&&(f="("+f+")")),f+"."+a+(u<0?"":u===0?"()":"("+s.slice(1).map(t).join(",")+")")}function n(a,s,c){return u=>e(a,u,s,c)}const r="new Date",i="String",o="RegExp";return{isNaN:"Number.isNaN",isFinite:"Number.isFinite",abs:"Math.abs",acos:"Math.acos",asin:"Math.asin",atan:"Math.atan",atan2:"Math.atan2",ceil:"Math.ceil",cos:"Math.cos",exp:"Math.exp",floor:"Math.floor",log:"Math.log",max:"Math.max",min:"Math.min",pow:"Math.pow",random:"Math.random",round:"Math.round",sin:"Math.sin",sqrt:"Math.sqrt",tan:"Math.tan",clamp:function(a){a.length<3&&ae("Missing arguments to clamp function."),a.length>3&&ae("Too many arguments to clamp function.");const s=a.map(t);return"Math.max("+s[1]+", Math.min("+s[2]+","+s[0]+"))"},now:"Date.now",utc:"Date.UTC",datetime:r,date:n("getDate",r,0),day:n("getDay",r,0),year:n("getFullYear",r,0),month:n("getMonth",r,0),hours:n("getHours",r,0),minutes:n("getMinutes",r,0),seconds:n("getSeconds",r,0),milliseconds:n("getMilliseconds",r,0),time:n("getTime",r,0),timezoneoffset:n("getTimezoneOffset",r,0),utcdate:n("getUTCDate",r,0),utcday:n("getUTCDay",r,0),utcyear:n("getUTCFullYear",r,0),utcmonth:n("getUTCMonth",r,0),utchours:n("getUTCHours",r,0),utcminutes:n("getUTCMinutes",r,0),utcseconds:n("getUTCSeconds",r,0),utcmilliseconds:n("getUTCMilliseconds",r,0),length:n("length",null,-1),parseFloat:"parseFloat",parseInt:"parseInt",upper:n("toUpperCase",i,0),lower:n("toLowerCase",i,0),substring:n("substring",i),split:n("split",i),trim:n("trim",i,0),regexp:o,test:n("test",o),if:function(a){a.length<3&&ae("Missing arguments to if function."),a.length>3&&ae("Too many arguments to if function.");const s=a.map(t);return"("+s[0]+"?"+s[1]+":"+s[2]+")"}}}function B3(t){const e=t&&t.length-1;return e&&(t[0]==='"'&&t[e]==='"'||t[0]==="'"&&t[e]==="'")?t.slice(1,-1):t}function O3(t){t=t||{};const e=t.allowed?aa(t.allowed):{},n=t.forbidden?aa(t.forbidden):{},r=t.constants||N3,i=(t.functions||L3)(l),o=t.globalvar,a=t.fieldvar,s=Ie(o)?o:h=>`${o}["${h}"]`;let c={},u={},f=0;function l(h){if(ne(h))return h;const m=d[h.type];return m==null&&ae("Unsupported type: "+h.type),m(h)}const d={Literal:h=>h.raw,Identifier:h=>{const m=h.name;return f>0?m:En(n,m)?ae("Illegal identifier: "+m):En(r,m)?r[m]:En(e,m)?m:(c[m]=1,s(m))},MemberExpression:h=>{const m=!h.computed,g=l(h.object);m&&(f+=1);const y=l(h.property);return g===a&&(u[B3(y)]=1),m&&(f-=1),g+(m?"."+y:"["+y+"]")},CallExpression:h=>{h.callee.type!=="Identifier"&&ae("Illegal callee type: "+h.callee.type);const m=h.callee.name,g=h.arguments,y=En(i,m)&&i[m];return y||ae("Unrecognized function: "+m),Ie(y)?y(g):y+"("+g.map(l).join(",")+")"},ArrayExpression:h=>"["+h.elements.map(l).join(",")+"]",BinaryExpression:h=>"("+l(h.left)+" "+h.operator+" "+l(h.right)+")",UnaryExpression:h=>"("+h.operator+l(h.argument)+")",ConditionalExpression:h=>"("+l(h.test)+"?"+l(h.consequent)+":"+l(h.alternate)+")",LogicalExpression:h=>"("+l(h.left)+h.operator+l(h.right)+")",ObjectExpression:h=>"{"+h.properties.map(l).join(",")+"}",Property:h=>{f+=1;const m=l(h.key);return f-=1,m+":"+l(h.value)}};function p(h){const m={code:l(h),globals:Object.keys(c),fields:Object.keys(u)};return c={},u={},m}return p.functions=i,p.constants=r,p}function Xu(t,e={}){const n=O3({forbidden:[],allowed:["datum"],globalvar:"global",fieldvar:"datum"});try{const r=k3(t),i=n(r),o=Function("datum","global",`"use strict"; return (${i.code});`),a=s=>o(s,e);return a.fields=i.fields,a}catch(r){throw new Error(`Invalid expression: ${t}, ${r.message}`)}}function F3(){let t=0;const e=new Map,n=r=>{let i=e.get(r);return i===void 0&&(i=t++,e.set(r,i)),i};return n.addAll=r=>{for(const i of r)n(i)},n.invert=r=>{for(const i of e.entries())if(i[1]==r)return i[0]},n.domain=()=>[...e.keys()],n}function P3(t,e){const n={};e||(e=t.encoding);for(const[r,i]of Object.entries(e)){if(!i)continue;const o=t.unitView.getScaleResolution(qe(i)&&i.resolutionChannel||r);n[r]=z3(e[r],o==null?void 0:o.getScale(),t.unitView.getAccessor(r),r)}return n}function z3(t,e,n,r){let i;if(ot(t)){const o=t.value;i=a=>o,i.constant=!0,i.constantValue=!0,i.accessor=void 0}else if(n)if(r=="text")i=o=>{},i.accessor=n,i.constant=n.constant;else{if(!e)throw new Error(`Missing scale! "${r}": ${JSON.stringify(t)}`);if(i=o=>e(n(o)),nn(e.type)){const o=F3();o.addAll(e.domain()),i.indexer=o}i.constant=n.constant,i.accessor=n,i.scale=e}else throw new Error(`Missing value or accessor (field, expr, datum) on channel "${r}": ${JSON.stringify(t)}`);return i.invert=e?o=>e.invert(o):o=>{throw new Error("No scale available, cannot invert: "+JSON.stringify(t))},i.channelDef=t,i.applyMetadata=o=>{for(const a in i)a in i&&(o[a]=i[a]);return o},i}function ot(t){return t&&"value"in t}function Xn(t){return t&&"field"in t}function $i(t){return t&&"datum"in t}function qe(t){return Xn(t)||$i(t)||qu(t)||_p(t)}function Zu(t,e){const n=t.mark.encoding[e];if(qe(n))return n;throw new Error("Not a channel def with scale!")}function _p(t){return t&&"chrom"in t}function qu(t){return t&&"expr"in t}const eo=["x","y"],R3=["x2","y2"],j3=[...eo,...R3];function Wp(t){return eo.includes(t)}function to(t){return j3.includes(t)}const Ku={x:"x2",y:"y2"},Xp=Object.fromEntries(Object.entries(Ku).map(t=>[t[1],t[0]]));function no(t){return t in Xp}function U3(t){const e=Ku[t];if(e)return e;throw new Error(`${t} has no secondary channel!`)}function Or(t){return Xp[t]??t}function Zn(t){return["color","fill","stroke"].includes(Or(t))}function _a(t){return["shape","squeeze"].includes(t)}function Zp(t){switch(t){case"shape":return["circle","square","triangle-up","cross","diamond","triangle-down","triangle-right","triangle-left"]}}function qp(t){if(!_a(t))throw new Error("Not a discrete channel: "+t);const e=new Map(Zp(t).map((n,r)=>[n,r]));return n=>{const r=e.get(n);if(r!==void 0)return r;throw new Error(`Invalid value for "${t}" channel: ${n}`)}}function q(t,e=t){if(/^[A-Za-z0-9_]+$/.test(t)){const n=new Function("datum",`return datum[${JSON.stringify(t)}]`);return R(n,[t],e)}else return $o(t)}class H3{constructor(){this.accessorCreators=[],this.register(e=>{if(Xn(e))try{const n=q(e.field);return n.constant=!1,n.fields=Sn(n),n}catch(n){throw new Error(`Invalid field definition: ${n.message}`)}}),this.register(e=>qu(e)?G3(e.expr):void 0),this.register(e=>{if($i(e)){const r=g2(e.datum);return r.constant=!0,r.fields=[],r}})}register(e){this.accessorCreators.push(e)}createAccessor(e){for(const n of this.accessorCreators){const r=n(e);if(r)return r}}}function G3(t){const e=Xu(t);return e.constant=e.fields.length==0,e}/* @license twgl.js 4.22.0 Copyright (c) 2015, Gregg Tavares All Rights Reserved.
14
+ \f\r"'\`<>=]|("|')|))|$)`,"g"),dv=/'/g,pv=/"/g,gv=/^(?:script|style|textarea|title)$/i,NI=e=>(t,...n)=>({_$litType$:e,strings:t,values:n}),z=NI(1),pt=Symbol.for("lit-noChange"),ne=Symbol.for("lit-nothing"),mv=new WeakMap,Eo=Ao.createTreeWalker(Ao,129,null,!1),bv=(e,t)=>{const n=e.length-1,r=[];let i,a=t===2?"<svg>":"",o=mc;for(let l=0;l<n;l++){const c=e[l];let u,f,h=-1,d=0;for(;d<c.length&&(o.lastIndex=d,f=o.exec(c),f!==null);)d=o.lastIndex,o===mc?f[1]==="!--"?o=fv:f[1]!==void 0?o=hv:f[2]!==void 0?(gv.test(f[2])&&(i=RegExp("</"+f[2],"g")),o=ca):f[3]!==void 0&&(o=ca):o===ca?f[0]===">"?(o=i??mc,h=-1):f[1]===void 0?h=-2:(h=o.lastIndex-f[2].length,u=f[1],o=f[3]===void 0?ca:f[3]==='"'?pv:dv):o===pv||o===dv?o=ca:o===fv||o===hv?o=mc:(o=ca,i=void 0);const p=o===ca&&e[l+1].startsWith("/>")?" ":"";a+=o===mc?c+MI:h>=0?(r.push(u),c.slice(0,h)+"$lit$"+c.slice(h)+xr+p):c+xr+(h===-2?(r.push(void 0),l):p)}const s=a+(e[n]||"<?>")+(t===2?"</svg>":"");if(!Array.isArray(e)||!e.hasOwnProperty("raw"))throw Error("invalid template strings array");return[cv!==void 0?cv.createHTML(s):s,r]};let G0=class l_{constructor({strings:t,_$litType$:n},r){let i;this.parts=[];let a=0,o=0;const s=t.length-1,l=this.parts,[c,u]=bv(t,n);if(this.el=l_.createElement(c,r),Eo.currentNode=this.el.content,n===2){const f=this.el.content,h=f.firstChild;h.remove(),f.append(...h.childNodes)}for(;(i=Eo.nextNode())!==null&&l.length<s;){if(i.nodeType===1){if(i.hasAttributes()){const f=[];for(const h of i.getAttributeNames())if(h.endsWith("$lit$")||h.startsWith(xr)){const d=u[o++];if(f.push(h),d!==void 0){const p=i.getAttribute(d.toLowerCase()+"$lit$").split(xr),g=/([.?@])?(.*)/.exec(d);l.push({type:1,index:a,name:g[2],strings:p,ctor:g[1]==="."?vv:g[1]==="?"?wv:g[1]==="@"?xv:bc})}else l.push({type:6,index:a})}for(const h of f)i.removeAttribute(h)}if(gv.test(i.tagName)){const f=i.textContent.split(xr),h=f.length-1;if(h>0){i.textContent=xo?xo.emptyScript:"";for(let d=0;d<h;d++)i.append(f[d],pc()),Eo.nextNode(),l.push({type:2,index:++a});i.append(f[h],pc())}}}else if(i.nodeType===8)if(i.data===H0)l.push({type:2,index:a});else{let f=-1;for(;(f=i.data.indexOf(xr,f+1))!==-1;)l.push({type:7,index:a}),f+=xr.length-1}a++}}static createElement(t,n){const r=Ao.createElement("template");return r.innerHTML=t,r}};function la(e,t,n=e,r){var i,a,o,s;if(t===pt)return t;let l=r!==void 0?(i=n._$Co)===null||i===void 0?void 0:i[r]:n._$Cl;const c=gc(t)?void 0:t._$litDirective$;return(l==null?void 0:l.constructor)!==c&&((a=l==null?void 0:l._$AO)===null||a===void 0||a.call(l,!1),c===void 0?l=void 0:(l=new c(e),l._$AT(e,n,r)),r!==void 0?((o=(s=n)._$Co)!==null&&o!==void 0?o:s._$Co=[])[r]=l:n._$Cl=l),l!==void 0&&(t=la(e,l._$AS(e,t.values),l,r)),t}class yv{constructor(t,n){this.u=[],this._$AN=void 0,this._$AD=t,this._$AM=n}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}v(t){var n;const{el:{content:r},parts:i}=this._$AD,a=((n=t==null?void 0:t.creationScope)!==null&&n!==void 0?n:Ao).importNode(r,!0);Eo.currentNode=a;let o=Eo.nextNode(),s=0,l=0,c=i[0];for(;c!==void 0;){if(s===c.index){let u;c.type===2?u=new Xu(o,o.nextSibling,this,t):c.type===1?u=new c.ctor(o,c.name,c.strings,this,t):c.type===6&&(u=new Av(o,this,t)),this.u.push(u),c=i[++l]}s!==(c==null?void 0:c.index)&&(o=Eo.nextNode(),s++)}return a}p(t){let n=0;for(const r of this.u)r!==void 0&&(r.strings!==void 0?(r._$AI(t,r,n),n+=r.strings.length-2):r._$AI(t[n])),n++}}let Xu=class u_{constructor(t,n,r,i){var a;this.type=2,this._$AH=ne,this._$AN=void 0,this._$AA=t,this._$AB=n,this._$AM=r,this.options=i,this._$Cm=(a=i==null?void 0:i.isConnected)===null||a===void 0||a}get _$AU(){var t,n;return(n=(t=this._$AM)===null||t===void 0?void 0:t._$AU)!==null&&n!==void 0?n:this._$Cm}get parentNode(){let t=this._$AA.parentNode;const n=this._$AM;return n!==void 0&&t.nodeType===11&&(t=n.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,n=this){t=la(this,t,n),gc(t)?t===ne||t==null||t===""?(this._$AH!==ne&&this._$AR(),this._$AH=ne):t!==this._$AH&&t!==pt&&this.g(t):t._$litType$!==void 0?this.$(t):t.nodeType!==void 0?this.T(t):uv(t)?this.k(t):this.g(t)}O(t,n=this._$AB){return this._$AA.parentNode.insertBefore(t,n)}T(t){this._$AH!==t&&(this._$AR(),this._$AH=this.O(t))}g(t){this._$AH!==ne&&gc(this._$AH)?this._$AA.nextSibling.data=t:this.T(Ao.createTextNode(t)),this._$AH=t}$(t){var n;const{values:r,_$litType$:i}=t,a=typeof i=="number"?this._$AC(t):(i.el===void 0&&(i.el=G0.createElement(i.h,this.options)),i);if(((n=this._$AH)===null||n===void 0?void 0:n._$AD)===a)this._$AH.p(r);else{const o=new yv(a,this),s=o.v(this.options);o.p(r),this.T(s),this._$AH=o}}_$AC(t){let n=mv.get(t.strings);return n===void 0&&mv.set(t.strings,n=new G0(t)),n}k(t){lv(this._$AH)||(this._$AH=[],this._$AR());const n=this._$AH;let r,i=0;for(const a of t)i===n.length?n.push(r=new u_(this.O(pc()),this.O(pc()),this,this.options)):r=n[i],r._$AI(a),i++;i<n.length&&(this._$AR(r&&r._$AB.nextSibling,i),n.length=i)}_$AR(t=this._$AA.nextSibling,n){var r;for((r=this._$AP)===null||r===void 0||r.call(this,!1,!0,n);t&&t!==this._$AB;){const i=t.nextSibling;t.remove(),t=i}}setConnected(t){var n;this._$AM===void 0&&(this._$Cm=t,(n=this._$AP)===null||n===void 0||n.call(this,t))}},bc=class{constructor(t,n,r,i,a){this.type=1,this._$AH=ne,this._$AN=void 0,this.element=t,this.name=n,this._$AM=i,this.options=a,r.length>2||r[0]!==""||r[1]!==""?(this._$AH=Array(r.length-1).fill(new String),this.strings=r):this._$AH=ne}get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}_$AI(t,n=this,r,i){const a=this.strings;let o=!1;if(a===void 0)t=la(this,t,n,0),o=!gc(t)||t!==this._$AH&&t!==pt,o&&(this._$AH=t);else{const s=t;let l,c;for(t=a[0],l=0;l<a.length-1;l++)c=la(this,s[r+l],n,l),c===pt&&(c=this._$AH[l]),o||(o=!gc(c)||c!==this._$AH[l]),c===ne?t=ne:t!==ne&&(t+=(c??"")+a[l+1]),this._$AH[l]=c}o&&!i&&this.j(t)}j(t){t===ne?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t??"")}},vv=class extends bc{constructor(){super(...arguments),this.type=3}j(t){this.element[this.name]=t===ne?void 0:t}};const FI=xo?xo.emptyScript:"";let wv=class extends bc{constructor(){super(...arguments),this.type=4}j(t){t&&t!==ne?this.element.setAttribute(this.name,FI):this.element.removeAttribute(this.name)}},xv=class extends bc{constructor(t,n,r,i,a){super(t,n,r,i,a),this.type=5}_$AI(t,n=this){var r;if((t=(r=la(this,t,n,0))!==null&&r!==void 0?r:ne)===pt)return;const i=this._$AH,a=t===ne&&i!==ne||t.capture!==i.capture||t.once!==i.once||t.passive!==i.passive,o=t!==ne&&(i===ne||a);a&&this.element.removeEventListener(this.name,this,i),o&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){var n,r;typeof this._$AH=="function"?this._$AH.call((r=(n=this.options)===null||n===void 0?void 0:n.host)!==null&&r!==void 0?r:this.element,t):this._$AH.handleEvent(t)}},Av=class{constructor(t,n,r){this.element=t,this.type=6,this._$AN=void 0,this._$AM=n,this.options=r}get _$AU(){return this._$AM._$AU}_$AI(t){la(this,t)}};const BI={P:"$lit$",A:xr,M:H0,C:1,L:bv,R:yv,D:uv,V:la,I:Xu,H:bc,N:wv,U:xv,B:vv,F:Av},Ev=Wu.litHtmlPolyfillSupport;Ev==null||Ev(G0,Xu),((j0=Wu.litHtmlVersions)!==null&&j0!==void 0?j0:Wu.litHtmlVersions=[]).push("2.4.0");const Bt=(e,t,n)=>{var r,i;const a=(r=n==null?void 0:n.renderBefore)!==null&&r!==void 0?r:t;let o=a._$litPart$;if(o===void 0){const s=(i=n==null?void 0:n.renderBefore)!==null&&i!==void 0?i:null;a._$litPart$=o=new Xu(t.insertBefore(pc(),s),s,void 0,n??{})}return o._$AI(e),o};function $0(e,t){return e.length==t.length&&e.every((n,r)=>e[r]===t[r])}function rn(e){return Array.isArray(e)?e:typeof e<"u"?[e]:[]}function Gt(e){return e[e.length-1]}const ua="gs-suppress-tooltip";class LI{constructor(t){this.container=t,this.element=document.createElement("div"),this.element.className="tooltip",this._visible=!0,this.container.appendChild(this.element),this._previousTooltipDatum=void 0,this.enabledStack=[!0],this._penaltyUntil=0,this._lastCoords=void 0,this._previousMove=0,this.clear()}set visible(t){t!=this._visible&&(this.element.style.display=t?null:"none",this._visible=t)}get visible(){return this._visible}get enabled(){return Gt(this.enabledStack)??!0}pushEnabledState(t){this.enabledStack.push(t),t||(this.visible=!1)}popEnabledState(){this.enabledStack.pop()}handleMouseMove(t){this.mouseCoords=sv(this.container,t);const n=performance.now();!this.visible&&!this._isPenalty()&&n-this._previousMove>500&&(this._penaltyUntil=n+70),this._lastCoords&&OI(this.mouseCoords,this._lastCoords)>20&&(this._penaltyUntil=n+400),this._lastCoords=this.mouseCoords,this.visible&&this.updatePlacement(),this._previousMove=n}updatePlacement(){const[n,r]=this.mouseCoords;let i=n+20;i>this.container.clientWidth-this.element.offsetWidth&&(i=n-20-this.element.offsetWidth),this.element.style.left=i+"px",this.element.style.top=Math.min(r+20,this.container.clientHeight-this.element.offsetHeight)+"px"}setContent(t){if(!t||!this.enabled||this._isPenalty()){this.visible&&(Bt("",this.element),this.visible=!1),this._previousTooltipDatum=void 0;return}Bt(t,this.element),this.visible=!0,this.updatePlacement()}clear(){this._previousTooltipDatum=void 0,this.setContent(void 0)}updateWithDatum(t,n){t!==this._previousTooltipDatum&&(this._previousTooltipDatum=t,n||(n=r=>Promise.resolve(z`${JSON.stringify(r)}`)),n(t).then(r=>this.setContent(r)).catch(r=>{if(r!=="debounced")throw r}))}_isPenalty(){return this._penaltyUntil&&this._penaltyUntil>performance.now()}}function OI(e,t){let n=0;for(let r=0;r<e.length;r++)n+=(e[r]-t[r])**2;return Math.sqrt(n)}const RI="RawCode",zI="Literal",PI="Property",UI="Identifier",jI="ArrayExpression",HI="BinaryExpression",GI="CallExpression",$I="ConditionalExpression",VI="LogicalExpression",YI="MemberExpression",QI="ObjectExpression",ZI="UnaryExpression";function Dn(e){this.type=e}Dn.prototype.visit=function(e){let t,n,r;if(e(this))return 1;for(t=qI(this),n=0,r=t.length;n<r;++n)if(t[n].visit(e))return 1};function qI(e){switch(e.type){case jI:return e.elements;case HI:case VI:return[e.left,e.right];case GI:return[e.callee].concat(e.arguments);case $I:return[e.test,e.consequent,e.alternate];case YI:return[e.object,e.property];case QI:return e.properties;case PI:return[e.key,e.value];case ZI:return[e.argument];case UI:case zI:case RI:default:return[]}}var Qn,W,R,wt,Ee,Ku=1,yc=2,fa=3,oi=4,Ju=5,ha=6,Lt=7,vc=8,WI=9;Qn={},Qn[Ku]="Boolean",Qn[yc]="<end>",Qn[fa]="Identifier",Qn[oi]="Keyword",Qn[Ju]="Null",Qn[ha]="Numeric",Qn[Lt]="Punctuator",Qn[vc]="String",Qn[WI]="RegularExpression";var XI="ArrayExpression",KI="BinaryExpression",JI="CallExpression",eT="ConditionalExpression",Sv="Identifier",tT="Literal",nT="LogicalExpression",rT="MemberExpression",iT="ObjectExpression",aT="Property",oT="UnaryExpression",ft="Unexpected token %0",sT="Unexpected number",cT="Unexpected string",lT="Unexpected identifier",uT="Unexpected reserved word",fT="Unexpected end of input",V0="Invalid regular expression",Y0="Invalid regular expression: missing /",Cv="Octal literals are not allowed in strict mode.",hT="Duplicate data property in object literal not allowed in strict mode",gt="ILLEGAL",wc="Disabled.",dT=new RegExp("[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0-\\u08B2\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58\\u0C59\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D60\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19C1-\\u19C7\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA7AD\\uA7B0\\uA7B1\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB5F\\uAB64\\uAB65\\uABC0-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]"),pT=new RegExp("[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0300-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u0483-\\u0487\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0610-\\u061A\\u0620-\\u0669\\u066E-\\u06D3\\u06D5-\\u06DC\\u06DF-\\u06E8\\u06EA-\\u06FC\\u06FF\\u0710-\\u074A\\u074D-\\u07B1\\u07C0-\\u07F5\\u07FA\\u0800-\\u082D\\u0840-\\u085B\\u08A0-\\u08B2\\u08E4-\\u0963\\u0966-\\u096F\\u0971-\\u0983\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BC-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CE\\u09D7\\u09DC\\u09DD\\u09DF-\\u09E3\\u09E6-\\u09F1\\u0A01-\\u0A03\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A75\\u0A81-\\u0A83\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABC-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AD0\\u0AE0-\\u0AE3\\u0AE6-\\u0AEF\\u0B01-\\u0B03\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3C-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B5C\\u0B5D\\u0B5F-\\u0B63\\u0B66-\\u0B6F\\u0B71\\u0B82\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD0\\u0BD7\\u0BE6-\\u0BEF\\u0C00-\\u0C03\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C58\\u0C59\\u0C60-\\u0C63\\u0C66-\\u0C6F\\u0C81-\\u0C83\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBC-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CDE\\u0CE0-\\u0CE3\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D01-\\u0D03\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4E\\u0D57\\u0D60-\\u0D63\\u0D66-\\u0D6F\\u0D7A-\\u0D7F\\u0D82\\u0D83\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DE6-\\u0DEF\\u0DF2\\u0DF3\\u0E01-\\u0E3A\\u0E40-\\u0E4E\\u0E50-\\u0E59\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB9\\u0EBB-\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EC8-\\u0ECD\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00\\u0F18\\u0F19\\u0F20-\\u0F29\\u0F35\\u0F37\\u0F39\\u0F3E-\\u0F47\\u0F49-\\u0F6C\\u0F71-\\u0F84\\u0F86-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u1000-\\u1049\\u1050-\\u109D\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u135D-\\u135F\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176C\\u176E-\\u1770\\u1772\\u1773\\u1780-\\u17D3\\u17D7\\u17DC\\u17DD\\u17E0-\\u17E9\\u180B-\\u180D\\u1810-\\u1819\\u1820-\\u1877\\u1880-\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1920-\\u192B\\u1930-\\u193B\\u1946-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19D9\\u1A00-\\u1A1B\\u1A20-\\u1A5E\\u1A60-\\u1A7C\\u1A7F-\\u1A89\\u1A90-\\u1A99\\u1AA7\\u1AB0-\\u1ABD\\u1B00-\\u1B4B\\u1B50-\\u1B59\\u1B6B-\\u1B73\\u1B80-\\u1BF3\\u1C00-\\u1C37\\u1C40-\\u1C49\\u1C4D-\\u1C7D\\u1CD0-\\u1CD2\\u1CD4-\\u1CF6\\u1CF8\\u1CF9\\u1D00-\\u1DF5\\u1DFC-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u200C\\u200D\\u203F\\u2040\\u2054\\u2071\\u207F\\u2090-\\u209C\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D7F-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2DE0-\\u2DFF\\u2E2F\\u3005-\\u3007\\u3021-\\u302F\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u3099\\u309A\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA62B\\uA640-\\uA66F\\uA674-\\uA67D\\uA67F-\\uA69D\\uA69F-\\uA6F1\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA7AD\\uA7B0\\uA7B1\\uA7F7-\\uA827\\uA840-\\uA873\\uA880-\\uA8C4\\uA8D0-\\uA8D9\\uA8E0-\\uA8F7\\uA8FB\\uA900-\\uA92D\\uA930-\\uA953\\uA960-\\uA97C\\uA980-\\uA9C0\\uA9CF-\\uA9D9\\uA9E0-\\uA9FE\\uAA00-\\uAA36\\uAA40-\\uAA4D\\uAA50-\\uAA59\\uAA60-\\uAA76\\uAA7A-\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEF\\uAAF2-\\uAAF6\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB5F\\uAB64\\uAB65\\uABC0-\\uABEA\\uABEC\\uABED\\uABF0-\\uABF9\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE00-\\uFE0F\\uFE20-\\uFE2D\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF10-\\uFF19\\uFF21-\\uFF3A\\uFF3F\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]");function ef(e,t){if(!e)throw new Error("ASSERT: "+t)}function Ar(e){return e>=48&&e<=57}function Q0(e){return"0123456789abcdefABCDEF".indexOf(e)>=0}function xc(e){return"01234567".indexOf(e)>=0}function gT(e){return e===32||e===9||e===11||e===12||e===160||e>=5760&&[5760,6158,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].indexOf(e)>=0}function Ac(e){return e===10||e===13||e===8232||e===8233}function Ec(e){return e===36||e===95||e>=65&&e<=90||e>=97&&e<=122||e===92||e>=128&&dT.test(String.fromCharCode(e))}function tf(e){return e===36||e===95||e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||e===92||e>=128&&pT.test(String.fromCharCode(e))}const mT={if:1,in:1,do:1,var:1,for:1,new:1,try:1,let:1,this:1,else:1,case:1,void:1,with:1,enum:1,while:1,break:1,catch:1,throw:1,const:1,yield:1,class:1,super:1,return:1,typeof:1,delete:1,switch:1,export:1,import:1,public:1,static:1,default:1,finally:1,extends:1,package:1,private:1,function:1,continue:1,debugger:1,interface:1,protected:1,instanceof:1,implements:1};function _v(){for(;R<wt;){const e=W.charCodeAt(R);if(gT(e)||Ac(e))++R;else break}}function Z0(e){var t,n,r,i=0;for(n=e==="u"?4:2,t=0;t<n;++t)R<wt&&Q0(W[R])?(r=W[R++],i=i*16+"0123456789abcdef".indexOf(r.toLowerCase())):be({},ft,gt);return String.fromCharCode(i)}function bT(){var e,t,n,r;for(e=W[R],t=0,e==="}"&&be({},ft,gt);R<wt&&(e=W[R++],!!Q0(e));)t=t*16+"0123456789abcdef".indexOf(e.toLowerCase());return(t>1114111||e!=="}")&&be({},ft,gt),t<=65535?String.fromCharCode(t):(n=(t-65536>>10)+55296,r=(t-65536&1023)+56320,String.fromCharCode(n,r))}function kv(){var e,t;for(e=W.charCodeAt(R++),t=String.fromCharCode(e),e===92&&(W.charCodeAt(R)!==117&&be({},ft,gt),++R,e=Z0("u"),(!e||e==="\\"||!Ec(e.charCodeAt(0)))&&be({},ft,gt),t=e);R<wt&&(e=W.charCodeAt(R),!!tf(e));)++R,t+=String.fromCharCode(e),e===92&&(t=t.substr(0,t.length-1),W.charCodeAt(R)!==117&&be({},ft,gt),++R,e=Z0("u"),(!e||e==="\\"||!tf(e.charCodeAt(0)))&&be({},ft,gt),t+=e);return t}function yT(){var e,t;for(e=R++;R<wt;){if(t=W.charCodeAt(R),t===92)return R=e,kv();if(tf(t))++R;else break}return W.slice(e,R)}function vT(){var e,t,n;return e=R,t=W.charCodeAt(R)===92?kv():yT(),t.length===1?n=fa:mT.hasOwnProperty(t)?n=oi:t==="null"?n=Ju:t==="true"||t==="false"?n=Ku:n=fa,{type:n,value:t,start:e,end:R}}function q0(){var e=R,t=W.charCodeAt(R),n,r=W[R],i,a,o;switch(t){case 46:case 40:case 41:case 59:case 44:case 123:case 125:case 91:case 93:case 58:case 63:case 126:return++R,{type:Lt,value:String.fromCharCode(t),start:e,end:R};default:if(n=W.charCodeAt(R+1),n===61)switch(t){case 43:case 45:case 47:case 60:case 62:case 94:case 124:case 37:case 38:case 42:return R+=2,{type:Lt,value:String.fromCharCode(t)+String.fromCharCode(n),start:e,end:R};case 33:case 61:return R+=2,W.charCodeAt(R)===61&&++R,{type:Lt,value:W.slice(e,R),start:e,end:R}}}if(o=W.substr(R,4),o===">>>=")return R+=4,{type:Lt,value:o,start:e,end:R};if(a=o.substr(0,3),a===">>>"||a==="<<="||a===">>=")return R+=3,{type:Lt,value:a,start:e,end:R};if(i=a.substr(0,2),r===i[1]&&"+-<>&|".indexOf(r)>=0||i==="=>")return R+=2,{type:Lt,value:i,start:e,end:R};if(i==="//"&&be({},ft,gt),"<>=!+-*%&|^/".indexOf(r)>=0)return++R,{type:Lt,value:r,start:e,end:R};be({},ft,gt)}function wT(e){let t="";for(;R<wt&&Q0(W[R]);)t+=W[R++];return t.length===0&&be({},ft,gt),Ec(W.charCodeAt(R))&&be({},ft,gt),{type:ha,value:parseInt("0x"+t,16),start:e,end:R}}function xT(e){let t="0"+W[R++];for(;R<wt&&xc(W[R]);)t+=W[R++];return(Ec(W.charCodeAt(R))||Ar(W.charCodeAt(R)))&&be({},ft,gt),{type:ha,value:parseInt(t,8),octal:!0,start:e,end:R}}function Dv(){var e,t,n;if(n=W[R],ef(Ar(n.charCodeAt(0))||n===".","Numeric literal must start with a decimal digit or a decimal point"),t=R,e="",n!=="."){if(e=W[R++],n=W[R],e==="0"){if(n==="x"||n==="X")return++R,wT(t);if(xc(n))return xT(t);n&&Ar(n.charCodeAt(0))&&be({},ft,gt)}for(;Ar(W.charCodeAt(R));)e+=W[R++];n=W[R]}if(n==="."){for(e+=W[R++];Ar(W.charCodeAt(R));)e+=W[R++];n=W[R]}if(n==="e"||n==="E")if(e+=W[R++],n=W[R],(n==="+"||n==="-")&&(e+=W[R++]),Ar(W.charCodeAt(R)))for(;Ar(W.charCodeAt(R));)e+=W[R++];else be({},ft,gt);return Ec(W.charCodeAt(R))&&be({},ft,gt),{type:ha,value:parseFloat(e),start:t,end:R}}function AT(){var e="",t,n,r,i,a=!1;for(t=W[R],ef(t==="'"||t==='"',"String literal must starts with a quote"),n=R,++R;R<wt;)if(r=W[R++],r===t){t="";break}else if(r==="\\")if(r=W[R++],!r||!Ac(r.charCodeAt(0)))switch(r){case"u":case"x":W[R]==="{"?(++R,e+=bT()):e+=Z0(r);break;case"n":e+=`
15
+ `;break;case"r":e+="\r";break;case"t":e+=" ";break;case"b":e+="\b";break;case"f":e+="\f";break;case"v":e+="\v";break;default:xc(r)?(i="01234567".indexOf(r),i!==0&&(a=!0),R<wt&&xc(W[R])&&(a=!0,i=i*8+"01234567".indexOf(W[R++]),"0123".indexOf(r)>=0&&R<wt&&xc(W[R])&&(i=i*8+"01234567".indexOf(W[R++]))),e+=String.fromCharCode(i)):e+=r;break}else r==="\r"&&W[R]===`
16
+ `&&++R;else{if(Ac(r.charCodeAt(0)))break;e+=r}return t!==""&&be({},ft,gt),{type:vc,value:e,octal:a,start:n,end:R}}function ET(e,t){let n=e;t.indexOf("u")>=0&&(n=n.replace(/\\u\{([0-9a-fA-F]+)\}/g,(r,i)=>{if(parseInt(i,16)<=1114111)return"x";be({},V0)}).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"x"));try{new RegExp(n)}catch{be({},V0)}try{return new RegExp(e,t)}catch{return null}}function ST(){var e,t,n,r,i;for(e=W[R],ef(e==="/","Regular expression literal must start with a slash"),t=W[R++],n=!1,r=!1;R<wt;)if(e=W[R++],t+=e,e==="\\")e=W[R++],Ac(e.charCodeAt(0))&&be({},Y0),t+=e;else if(Ac(e.charCodeAt(0)))be({},Y0);else if(n)e==="]"&&(n=!1);else if(e==="/"){r=!0;break}else e==="["&&(n=!0);return r||be({},Y0),i=t.substr(1,t.length-2),{value:i,literal:t}}function CT(){var e,t,n;for(t="",n="";R<wt&&(e=W[R],!!tf(e.charCodeAt(0)));)++R,e==="\\"&&R<wt?be({},ft,gt):(n+=e,t+=e);return n.search(/[^gimuy]/g)>=0&&be({},V0,n),{value:n,literal:t}}function _T(){var e,t,n,r;return Ee=null,_v(),e=R,t=ST(),n=CT(),r=ET(t.value,n.value),{literal:t.literal+n.literal,value:r,regex:{pattern:t.value,flags:n.value},start:e,end:R}}function kT(e){return e.type===fa||e.type===oi||e.type===Ku||e.type===Ju}function Iv(){if(_v(),R>=wt)return{type:yc,start:R,end:R};const e=W.charCodeAt(R);return Ec(e)?vT():e===40||e===41||e===59?q0():e===39||e===34?AT():e===46?Ar(W.charCodeAt(R+1))?Dv():q0():Ar(e)?Dv():q0()}function Ot(){const e=Ee;return R=e.end,Ee=Iv(),R=e.end,e}function Tv(){const e=R;Ee=Iv(),R=e}function DT(e){const t=new Dn(XI);return t.elements=e,t}function Mv(e,t,n){const r=new Dn(e==="||"||e==="&&"?nT:KI);return r.operator=e,r.left=t,r.right=n,r}function IT(e,t){const n=new Dn(JI);return n.callee=e,n.arguments=t,n}function TT(e,t,n){const r=new Dn(eT);return r.test=e,r.consequent=t,r.alternate=n,r}function W0(e){const t=new Dn(Sv);return t.name=e,t}function Sc(e){const t=new Dn(tT);return t.value=e.value,t.raw=W.slice(e.start,e.end),e.regex&&(t.raw==="//"&&(t.raw="/(?:)/"),t.regex=e.regex),t}function Nv(e,t,n){const r=new Dn(rT);return r.computed=e==="[",r.object=t,r.property=n,r.computed||(n.member=!0),r}function MT(e){const t=new Dn(iT);return t.properties=e,t}function Fv(e,t,n){const r=new Dn(aT);return r.key=t,r.value=n,r.kind=e,r}function NT(e,t){const n=new Dn(oT);return n.operator=e,n.argument=t,n.prefix=!0,n}function be(e,t){var n,r=Array.prototype.slice.call(arguments,2),i=t.replace(/%(\d)/g,(a,o)=>(ef(o<r.length,"Message reference must be in range"),r[o]));throw n=new Error(i),n.index=R,n.description=i,n}function nf(e){e.type===yc&&be(e,fT),e.type===ha&&be(e,sT),e.type===vc&&be(e,cT),e.type===fa&&be(e,lT),e.type===oi&&be(e,uT),be(e,ft,e.value)}function xt(e){const t=Ot();(t.type!==Lt||t.value!==e)&&nf(t)}function Be(e){return Ee.type===Lt&&Ee.value===e}function X0(e){return Ee.type===oi&&Ee.value===e}function FT(){const e=[];for(R=Ee.start,xt("[");!Be("]");)Be(",")?(Ot(),e.push(null)):(e.push(da()),Be("]")||xt(","));return Ot(),DT(e)}function Bv(){R=Ee.start;const e=Ot();return e.type===vc||e.type===ha?(e.octal&&be(e,Cv),Sc(e)):W0(e.value)}function BT(){var e,t,n,r;if(R=Ee.start,e=Ee,e.type===fa)return n=Bv(),xt(":"),r=da(),Fv("init",n,r);if(e.type===yc||e.type===Lt)nf(e);else return t=Bv(),xt(":"),r=da(),Fv("init",t,r)}function LT(){var e=[],t,n,r,i={},a=String;for(R=Ee.start,xt("{");!Be("}");)t=BT(),t.key.type===Sv?n=t.key.name:n=a(t.key.value),r="$"+n,Object.prototype.hasOwnProperty.call(i,r)?be({},hT):i[r]=!0,e.push(t),Be("}")||xt(",");return xt("}"),MT(e)}function OT(){xt("(");const e=K0();return xt(")"),e}const RT={if:1};function zT(){var e,t,n;if(Be("("))return OT();if(Be("["))return FT();if(Be("{"))return LT();if(e=Ee.type,R=Ee.start,e===fa||RT[Ee.value])n=W0(Ot().value);else if(e===vc||e===ha)Ee.octal&&be(Ee,Cv),n=Sc(Ot());else{if(e===oi)throw new Error(wc);e===Ku?(t=Ot(),t.value=t.value==="true",n=Sc(t)):e===Ju?(t=Ot(),t.value=null,n=Sc(t)):Be("/")||Be("/=")?(n=Sc(_T()),Tv()):nf(Ot())}return n}function PT(){const e=[];if(xt("("),!Be(")"))for(;R<wt&&(e.push(da()),!Be(")"));)xt(",");return xt(")"),e}function UT(){R=Ee.start;const e=Ot();return kT(e)||nf(e),W0(e.value)}function jT(){return xt("."),UT()}function HT(){xt("[");const e=K0();return xt("]"),e}function GT(){var e,t,n;for(e=zT();;)if(Be("."))n=jT(),e=Nv(".",e,n);else if(Be("("))t=PT(),e=IT(e,t);else if(Be("["))n=HT(),e=Nv("[",e,n);else break;return e}function Lv(){const e=GT();if(Ee.type===Lt&&(Be("++")||Be("--")))throw new Error(wc);return e}function rf(){var e,t;if(Ee.type!==Lt&&Ee.type!==oi)t=Lv();else{if(Be("++")||Be("--"))throw new Error(wc);if(Be("+")||Be("-")||Be("~")||Be("!"))e=Ot(),t=rf(),t=NT(e.value,t);else{if(X0("delete")||X0("void")||X0("typeof"))throw new Error(wc);t=Lv()}}return t}function Ov(e){let t=0;if(e.type!==Lt&&e.type!==oi)return 0;switch(e.value){case"||":t=1;break;case"&&":t=2;break;case"|":t=3;break;case"^":t=4;break;case"&":t=5;break;case"==":case"!=":case"===":case"!==":t=6;break;case"<":case">":case"<=":case">=":case"instanceof":case"in":t=7;break;case"<<":case">>":case">>>":t=8;break;case"+":case"-":t=9;break;case"*":case"/":case"%":t=11;break}return t}function $T(){var e,t,n,r,i,a,o,s,l,c;if(e=Ee,l=rf(),r=Ee,i=Ov(r),i===0)return l;for(r.prec=i,Ot(),t=[e,Ee],o=rf(),a=[l,r,o];(i=Ov(Ee))>0;){for(;a.length>2&&i<=a[a.length-2].prec;)o=a.pop(),s=a.pop().value,l=a.pop(),t.pop(),n=Mv(s,l,o),a.push(n);r=Ot(),r.prec=i,a.push(r),t.push(Ee),n=rf(),a.push(n)}for(c=a.length-1,n=a[c],t.pop();c>1;)t.pop(),n=Mv(a[c-1].value,a[c-2],n),c-=2;return n}function da(){var e,t,n;return e=$T(),Be("?")&&(Ot(),t=da(),xt(":"),n=da(),e=TT(e,t,n)),e}function K0(){const e=da();if(Be(","))throw new Error(wc);return e}function VT(e){W=e,R=0,wt=W.length,Ee=null,Tv();const t=K0();if(Ee.type!==yc)throw new Error("Unexpect token after expression.");return t}var YT={NaN:"NaN",E:"Math.E",LN2:"Math.LN2",LN10:"Math.LN10",LOG2E:"Math.LOG2E",LOG10E:"Math.LOG10E",PI:"Math.PI",SQRT1_2:"Math.SQRT1_2",SQRT2:"Math.SQRT2",MIN_VALUE:"Number.MIN_VALUE",MAX_VALUE:"Number.MAX_VALUE"};function QT(e){function t(o,s,l,c){let u=e(s[0]);return l&&(u=l+"("+u+")",l.lastIndexOf("new ",0)===0&&(u="("+u+")")),u+"."+o+(c<0?"":c===0?"()":"("+s.slice(1).map(e).join(",")+")")}function n(o,s,l){return c=>t(o,c,s,l)}const r="new Date",i="String",a="RegExp";return{isNaN:"Number.isNaN",isFinite:"Number.isFinite",abs:"Math.abs",acos:"Math.acos",asin:"Math.asin",atan:"Math.atan",atan2:"Math.atan2",ceil:"Math.ceil",cos:"Math.cos",exp:"Math.exp",floor:"Math.floor",log:"Math.log",max:"Math.max",min:"Math.min",pow:"Math.pow",random:"Math.random",round:"Math.round",sin:"Math.sin",sqrt:"Math.sqrt",tan:"Math.tan",clamp:function(o){o.length<3&&Ye("Missing arguments to clamp function."),o.length>3&&Ye("Too many arguments to clamp function.");const s=o.map(e);return"Math.max("+s[1]+", Math.min("+s[2]+","+s[0]+"))"},now:"Date.now",utc:"Date.UTC",datetime:r,date:n("getDate",r,0),day:n("getDay",r,0),year:n("getFullYear",r,0),month:n("getMonth",r,0),hours:n("getHours",r,0),minutes:n("getMinutes",r,0),seconds:n("getSeconds",r,0),milliseconds:n("getMilliseconds",r,0),time:n("getTime",r,0),timezoneoffset:n("getTimezoneOffset",r,0),utcdate:n("getUTCDate",r,0),utcday:n("getUTCDay",r,0),utcyear:n("getUTCFullYear",r,0),utcmonth:n("getUTCMonth",r,0),utchours:n("getUTCHours",r,0),utcminutes:n("getUTCMinutes",r,0),utcseconds:n("getUTCSeconds",r,0),utcmilliseconds:n("getUTCMilliseconds",r,0),length:n("length",null,-1),parseFloat:"parseFloat",parseInt:"parseInt",upper:n("toUpperCase",i,0),lower:n("toLowerCase",i,0),substring:n("substring",i),split:n("split",i),trim:n("trim",i,0),regexp:a,test:n("test",a),if:function(o){o.length<3&&Ye("Missing arguments to if function."),o.length>3&&Ye("Too many arguments to if function.");const s=o.map(e);return"("+s[0]+"?"+s[1]+":"+s[2]+")"}}}function ZT(e){const t=e&&e.length-1;return t&&(e[0]==='"'&&e[t]==='"'||e[0]==="'"&&e[t]==="'")?e.slice(1,-1):e}function qT(e){e=e||{};const t=e.allowed?yu(e.allowed):{},n=e.forbidden?yu(e.forbidden):{},r=e.constants||YT,i=(e.functions||QT)(f),a=e.globalvar,o=e.fieldvar,s=Tt(a)?a:p=>`${a}["${p}"]`;let l={},c={},u=0;function f(p){if(ze(p))return p;const g=h[p.type];return g==null&&Ye("Unsupported type: "+p.type),g(p)}const h={Literal:p=>p.raw,Identifier:p=>{const g=p.name;return u>0?g:Vi(n,g)?Ye("Illegal identifier: "+g):Vi(r,g)?r[g]:Vi(t,g)?g:(l[g]=1,s(g))},MemberExpression:p=>{const g=!p.computed,y=f(p.object);g&&(u+=1);const v=f(p.property);return y===o&&(c[ZT(v)]=1),g&&(u-=1),y+(g?"."+v:"["+v+"]")},CallExpression:p=>{p.callee.type!=="Identifier"&&Ye("Illegal callee type: "+p.callee.type);const g=p.callee.name,y=p.arguments,v=Vi(i,g)&&i[g];return v||Ye("Unrecognized function: "+g),Tt(v)?v(y):v+"("+y.map(f).join(",")+")"},ArrayExpression:p=>"["+p.elements.map(f).join(",")+"]",BinaryExpression:p=>"("+f(p.left)+" "+p.operator+" "+f(p.right)+")",UnaryExpression:p=>"("+p.operator+f(p.argument)+")",ConditionalExpression:p=>"("+f(p.test)+"?"+f(p.consequent)+":"+f(p.alternate)+")",LogicalExpression:p=>"("+f(p.left)+p.operator+f(p.right)+")",ObjectExpression:p=>"{"+p.properties.map(f).join(",")+"}",Property:p=>{u+=1;const g=f(p.key);return u-=1,g+":"+f(p.value)}};function d(p){const g={code:f(p),globals:Object.keys(l),fields:Object.keys(c)};return l={},c={},g}return d.functions=i,d.constants=r,d}function J0(e,t={}){const n=qT({forbidden:[],allowed:["datum"],globalvar:"global",fieldvar:"datum"});try{const r=VT(e),i=n(r),a=Function("datum","global",`"use strict"; return (${i.code});`),o=s=>a(s,t);return o.fields=i.fields,o}catch(r){throw new Error(`Invalid expression: ${e}, ${r.message}`)}}function WT(){let e=0;const t=new Map,n=r=>{let i=t.get(r);return i===void 0&&(i=e++,t.set(r,i)),i};return n.addAll=r=>{for(const i of r)n(i)},n.invert=r=>{for(const i of t.entries())if(i[1]==r)return i[0]},n.domain=()=>[...t.keys()],n}function XT(e,t){const n={};t||(t=e.encoding);for(const[r,i]of Object.entries(t)){if(!i)continue;const a=e.unitView.getScaleResolution(an(i)&&i.resolutionChannel||r);n[r]=KT(t[r],a==null?void 0:a.getScale(),e.unitView.getAccessor(r),r)}return n}function KT(e,t,n,r){let i;if(In(e)){const a=e.value;i=o=>a,i.constant=!0,i.constantValue=!0,i.accessor=void 0}else if(n)if(r=="text")i=a=>{},i.accessor=n,i.constant=n.constant;else{if(!t)throw new Error(`Missing scale! "${r}": ${JSON.stringify(e)}`);if(i=a=>t(n(a)),ai(t.type)){const a=WT();a.addAll(t.domain()),i.indexer=a}i.constant=n.constant,i.accessor=n,i.scale=t}else throw new Error(`Missing value or accessor (field, expr, datum) on channel "${r}": ${JSON.stringify(e)}`);return i.invert=t?a=>t.invert(a):a=>{throw new Error("No scale available, cannot invert: "+JSON.stringify(e))},i.channelDef=e,i.applyMetadata=a=>{for(const o in i)o in i&&(a[o]=i[o]);return a},i}function In(e){return e&&"value"in e}function pa(e){return e&&"field"in e}function Cc(e){return e&&"datum"in e}function an(e){return pa(e)||Cc(e)||tp(e)||Rv(e)}function ep(e,t){const n=e.mark.encoding[t];if(an(n))return n;throw new Error("Not a channel def with scale!")}function Rv(e){return e&&"chrom"in e}function tp(e){return e&&"expr"in e}const _c=["x","y"],JT=["x2","y2"],eM=[..._c,...JT];function zv(e){return _c.includes(e)}function kc(e){return eM.includes(e)}const np={x:"x2",y:"y2"},Pv=Object.fromEntries(Object.entries(np).map(e=>[e[1],e[0]]));function Dc(e){return e in Pv}function tM(e){const t=np[e];if(t)return t;throw new Error(`${e} has no secondary channel!`)}function So(e){return Pv[e]??e}function ga(e){return["color","fill","stroke"].includes(So(e))}function af(e){return["shape","squeeze"].includes(e)}function Uv(e){switch(e){case"shape":return["circle","square","triangle-up","cross","diamond","triangle-down","triangle-right","triangle-left"]}}function jv(e){if(!af(e))throw new Error("Not a discrete channel: "+e);const t=new Map(Uv(e).map((n,r)=>[n,r]));return n=>{const r=t.get(n);if(r!==void 0)return r;throw new Error(`Invalid value for "${e}" channel: ${n}`)}}function _e(e,t=e){if(/^[A-Za-z0-9_]+$/.test(e)){const n=new Function("datum",`return datum[${JSON.stringify(e)}]`);return se(n,[e],t)}else return fu(e)}class nM{constructor(){this.accessorCreators=[],this.register(t=>{if(pa(t))try{const n=_e(t.field);return n.constant=!1,n.fields=$i(n),n}catch(n){throw new Error(`Invalid field definition: ${n.message}`)}}),this.register(t=>tp(t)?rM(t.expr):void 0),this.register(t=>{if(Cc(t)){const r=N_(t.datum);return r.constant=!0,r.fields=[],r}})}register(t){this.accessorCreators.push(t)}createAccessor(t){for(const n of this.accessorCreators){const r=n(t);if(r)return r}}}function rM(e){const t=J0(e);return t.constant=t.fields.length==0,t}/* @license twgl.js 4.22.0 Copyright (c) 2015, Gregg Tavares All Rights Reserved.
17
17
  Available via the MIT license.
18
- see: http://github.com/greggman/twgl.js for details */const Ju=5120,ro=5121,$u=5122,el=5123,tl=5124,nl=5125,rl=5126,Q3=32819,V3=32820,Y3=33635,_3=5131,W3=33640,X3=35899,Z3=35902,q3=36269,K3=34042,Kp={};{const t=Kp;t[Ju]=Int8Array,t[ro]=Uint8Array,t[$u]=Int16Array,t[el]=Uint16Array,t[tl]=Int32Array,t[nl]=Uint32Array,t[rl]=Float32Array,t[Q3]=Uint16Array,t[V3]=Uint16Array,t[Y3]=Uint16Array,t[_3]=Uint16Array,t[W3]=Uint32Array,t[X3]=Uint32Array,t[Z3]=Uint32Array,t[q3]=Uint32Array,t[K3]=Uint32Array}function il(t){if(t instanceof Int8Array)return Ju;if(t instanceof Uint8Array||t instanceof Uint8ClampedArray)return ro;if(t instanceof Int16Array)return $u;if(t instanceof Uint16Array)return el;if(t instanceof Int32Array)return tl;if(t instanceof Uint32Array)return nl;if(t instanceof Float32Array)return rl;throw new Error("unsupported typed array type")}function J3(t){if(t===Int8Array)return Ju;if(t===Uint8Array||t===Uint8ClampedArray)return ro;if(t===Int16Array)return $u;if(t===Uint16Array)return el;if(t===Int32Array)return tl;if(t===Uint32Array)return nl;if(t===Float32Array)return rl;throw new Error("unsupported typed array type")}function $3(t){const e=Kp[t];if(!e)throw new Error("unknown gl type");return e}const Wa=typeof SharedArrayBuffer<"u"?function(e){return e&&e.buffer&&(e.buffer instanceof ArrayBuffer||e.buffer instanceof SharedArrayBuffer)}:function(e){return e&&e.buffer&&e.buffer instanceof ArrayBuffer};function eC(...t){console.error(...t)}function Jp(...t){console.warn(...t)}function tC(t,e){return typeof WebGLBuffer<"u"&&e instanceof WebGLBuffer}function $p(t,e){return typeof WebGLRenderbuffer<"u"&&e instanceof WebGLRenderbuffer}function Xa(t,e){return typeof WebGLTexture<"u"&&e instanceof WebGLTexture}function nC(t,e){return typeof WebGLSampler<"u"&&e instanceof WebGLSampler}const em=35044,mt=34962,rC=34963,iC=34660,oC=5120,aC=5121,sC=5122,cC=5123,uC=5124,lC=5125,fC=5126,tm={attribPrefix:""};function nm(t,e,n,r,i){t.bindBuffer(e,n),t.bufferData(e,r,i||em)}function rm(t,e,n,r){if(tC(t,e))return e;n=n||mt;const i=t.createBuffer();return nm(t,n,i,e,r),i}function im(t){return t==="indices"}function dC(t){return t instanceof Int8Array||t instanceof Uint8Array}function hC(t){return t===Int8Array||t===Uint8Array}function pC(t){return t.length?t:t.data}const mC=/coord|texture/i,gC=/color|colour/i;function om(t,e){let n;if(mC.test(t)?n=2:gC.test(t)?n=4:n=3,e%n>0)throw new Error(`Can not guess numComponents for attribute '${t}'. Tried ${n} but ${e} values is not evenly divisible by ${n}. You should specify it.`);return n}function yC(t,e){return t.numComponents||t.size||om(e,pC(t).length)}function ol(t,e){if(Wa(t))return t;if(Wa(t.data))return t.data;Array.isArray(t)&&(t={data:t});let n=t.type;return n||(im(e)?n=Uint16Array:n=Float32Array),new n(t.data)}function vC(t,e){const n={};return Object.keys(e).forEach(function(r){if(!im(r)){const i=e[r],o=i.attrib||i.name||i.attribName||tm.attribPrefix+r;if(i.value){if(!Array.isArray(i.value)&&!Wa(i.value))throw new Error("array.value is not array or typedarray");n[o]={value:i.value}}else{let a,s,c,u;if(i.buffer&&i.buffer instanceof WebGLBuffer)a=i.buffer,u=i.numComponents||i.size,s=i.type,c=i.normalize;else if(typeof i=="number"||typeof i.data=="number"){const f=i.data||i,l=i.type||Float32Array,d=f*l.BYTES_PER_ELEMENT;s=J3(l),c=i.normalize!==void 0?i.normalize:hC(l),u=i.numComponents||i.size||om(r,f),a=t.createBuffer(),t.bindBuffer(mt,a),t.bufferData(mt,d,i.drawType||em)}else{const f=ol(i,r);a=rm(t,f,void 0,i.drawType),s=il(f),c=i.normalize!==void 0?i.normalize:dC(f),u=yC(i,r)}n[o]={buffer:a,numComponents:u,type:s,normalize:c,stride:i.stride||0,offset:i.offset||0,divisor:i.divisor===void 0?void 0:i.divisor,drawType:i.drawType}}}}),t.bindBuffer(mt,null),n}function bC(t,e,n,r){n=ol(n),r!==void 0?(t.bindBuffer(mt,e.buffer),t.bufferSubData(mt,r,n)):nm(t,mt,e.buffer,n,e.drawType)}function AC(t,e){return e===oC||e===aC?1:e===sC||e===cC?2:e===uC||e===lC||e===fC?4:0}const al=["position","positions","a_position"];function xC(t,e){let n,r;for(r=0;r<al.length&&(n=al[r],!(n in e||(n=tm.attribPrefix+n,n in e)));++r);r===al.length&&(n=Object.keys(e)[0]);const i=e[n];t.bindBuffer(mt,i.buffer);const o=t.getBufferParameter(mt,iC);t.bindBuffer(mt,null);const a=AC(t,i.type),s=o/a,c=i.numComponents||i.size,u=s/c;if(u%1!==0)throw new Error(`numComponents ${c} not correct for length ${length}`);return u}function wC(t,e,n){const r=vC(t,e),i=Object.assign({},n||{});i.attribs=Object.assign({},n?n.attribs:{},r);const o=e.indices;if(o){const a=ol(o,"indices");i.indices=rm(t,a,rC),i.numElements=a.length,i.elementType=il(a)}else i.numElements||(i.numElements=xC(t,i.attribs));return i}function Fr(t){return!!t.texStorage2D}const sl=function(){const t={},e={};function n(r){const i=r.constructor.name;if(!t[i]){for(const o in r)if(typeof r[o]=="number"){const a=e[r[o]];e[r[o]]=a?`${a} | ${o}`:o}t[i]=!0}}return function(i,o){return n(i),e[o]||(typeof o=="number"?`0x${o.toString(16)}`:o)}}(),on={textureColor:new Uint8Array([128,192,255,255]),textureOptions:{},crossOrigin:void 0},Pr=Wa,am=function(){let t;return function(){return t=t||(typeof document<"u"&&document.createElement?document.createElement("canvas").getContext("2d"):null),t}}(),sm=6406,gt=6407,re=6408,cm=6409,um=6410,io=6402,lm=34041,Za=33071,CC=9728,SC=9729,Nt=3553,Lt=34067,an=32879,sn=35866,qa=34069,EC=34070,DC=34071,MC=34072,TC=34073,IC=34074,cl=10241,ul=10240,Ka=10242,Ja=10243,fm=32882,kC=33082,NC=33083,LC=33084,BC=33085,ll=3317,dm=3314,hm=32878,pm=3316,mm=3315,gm=32877,OC=37443,FC=37441,PC=37440,zC=33321,RC=36756,jC=33325,UC=33326,HC=33330,GC=33329,QC=33338,VC=33337,YC=33340,_C=33339,WC=33323,XC=36757,ZC=33327,qC=33328,KC=33336,JC=33335,$C=33332,eS=33331,tS=33334,nS=33333,rS=32849,iS=35905,oS=36194,aS=36758,sS=35898,cS=35901,uS=34843,lS=34837,fS=36221,dS=36239,hS=36215,pS=36233,mS=36209,gS=36227,yS=32856,vS=35907,bS=36759,AS=32855,xS=32854,wS=32857,CS=34842,SS=34836,ES=36220,DS=36238,MS=36975,TS=36214,IS=36232,kS=36226,NS=36208,LS=33189,BS=33190,OS=36012,FS=36013,PS=35056,cn=5120,ie=5121,$a=5122,zr=5123,es=5124,qn=5125,Se=5126,ym=32819,vm=32820,bm=33635,at=5131,oo=36193,fl=33640,zS=35899,RS=35902,jS=36269,US=34042,ts=33319,Rr=33320,ns=6403,jr=36244,Ur=36248,Kn=36249;let dl;function rs(t){if(!dl){const e={};e[sm]={textureFormat:sm,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[1,2,2,4],type:[ie,at,oo,Se]},e[cm]={textureFormat:cm,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[1,2,2,4],type:[ie,at,oo,Se]},e[um]={textureFormat:um,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[2,4,4,8],type:[ie,at,oo,Se]},e[gt]={textureFormat:gt,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[3,6,6,12,2],type:[ie,at,oo,Se,bm]},e[re]={textureFormat:re,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4,8,8,16,2,2],type:[ie,at,oo,Se,ym,vm]},e[io]={textureFormat:io,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2,4],type:[qn,zr]},e[zC]={textureFormat:ns,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[1],type:[ie]},e[RC]={textureFormat:ns,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[1],type:[cn]},e[jC]={textureFormat:ns,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[4,2],type:[Se,at]},e[UC]={textureFormat:ns,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[4],type:[Se]},e[HC]={textureFormat:jr,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[1],type:[ie]},e[GC]={textureFormat:jr,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[1],type:[cn]},e[$C]={textureFormat:jr,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[zr]},e[eS]={textureFormat:jr,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[$a]},e[tS]={textureFormat:jr,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[qn]},e[nS]={textureFormat:jr,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[es]},e[WC]={textureFormat:ts,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[2],type:[ie]},e[XC]={textureFormat:ts,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[2],type:[cn]},e[ZC]={textureFormat:ts,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[8,4],type:[Se,at]},e[qC]={textureFormat:ts,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[8],type:[Se]},e[KC]={textureFormat:Rr,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[ie]},e[JC]={textureFormat:Rr,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[cn]},e[QC]={textureFormat:Rr,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[zr]},e[VC]={textureFormat:Rr,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[$a]},e[YC]={textureFormat:Rr,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[qn]},e[_C]={textureFormat:Rr,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[es]},e[rS]={textureFormat:gt,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[3],type:[ie]},e[iS]={textureFormat:gt,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[3],type:[ie]},e[oS]={textureFormat:gt,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[3,2],type:[ie,bm]},e[aS]={textureFormat:gt,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[3],type:[cn]},e[sS]={textureFormat:gt,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[12,6,4],type:[Se,at,zS]},e[cS]={textureFormat:gt,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[12,6,4],type:[Se,at,RS]},e[uS]={textureFormat:gt,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[12,6],type:[Se,at]},e[lS]={textureFormat:gt,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[12],type:[Se]},e[fS]={textureFormat:Ur,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[3],type:[ie]},e[dS]={textureFormat:Ur,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[3],type:[cn]},e[hS]={textureFormat:Ur,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[6],type:[zr]},e[pS]={textureFormat:Ur,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[6],type:[$a]},e[mS]={textureFormat:Ur,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[12],type:[qn]},e[gS]={textureFormat:Ur,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[12],type:[es]},e[yS]={textureFormat:re,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4],type:[ie]},e[vS]={textureFormat:re,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4],type:[ie]},e[bS]={textureFormat:re,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[4],type:[cn]},e[AS]={textureFormat:re,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4,2,4],type:[ie,vm,fl]},e[xS]={textureFormat:re,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4,2],type:[ie,ym]},e[wS]={textureFormat:re,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4],type:[fl]},e[CS]={textureFormat:re,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[16,8],type:[Se,at]},e[SS]={textureFormat:re,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[16],type:[Se]},e[ES]={textureFormat:Kn,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[ie]},e[DS]={textureFormat:Kn,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[cn]},e[MS]={textureFormat:Kn,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[fl]},e[TS]={textureFormat:Kn,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[zr]},e[IS]={textureFormat:Kn,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[$a]},e[kS]={textureFormat:Kn,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[16],type:[es]},e[NS]={textureFormat:Kn,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[16],type:[qn]},e[LS]={textureFormat:io,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2,4],type:[zr,qn]},e[BS]={textureFormat:io,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[qn]},e[OS]={textureFormat:io,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Se]},e[PS]={textureFormat:lm,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[US]},e[FS]={textureFormat:lm,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[jS]},Object.keys(e).forEach(function(n){const r=e[n];r.bytesPerElementMap={},r.bytesPerElement.forEach(function(i,o){const a=r.type[o];r.bytesPerElementMap[a]=i})}),dl=e}return dl[t]}function HS(t,e){const n=rs(t);if(!n)throw"unknown internal format";const r=n.bytesPerElementMap[e];if(r===void 0)throw"unknown internal format";return r}function Hr(t){const e=rs(t);if(!e)throw"unknown internal format";return{format:e.textureFormat,type:e.type[0]}}function Am(t){return(t&t-1)===0}function GS(t,e,n,r){if(!Fr(t))return Am(e)&&Am(n);const i=rs(r);if(!i)throw"unknown internal format";return i.colorRenderable&&i.textureFilterable}function QS(t){const e=rs(t);if(!e)throw"unknown internal format";return e.textureFilterable}function xm(t,e,n){return Pr(e)?il(e):n||ie}function is(t,e,n,r,i){if(i%1!==0)throw"can't guess dimensions";if(!n&&!r){const o=Math.sqrt(i/(e===Lt?6:1));o%1===0?(n=o,r=o):(n=i,r=1)}else if(r){if(!n&&(n=i/r,n%1))throw"can't guess dimensions"}else if(r=i/n,r%1)throw"can't guess dimensions";return{width:n,height:r}}function Gr(t,e){e.colorspaceConversion!==void 0&&t.pixelStorei(OC,e.colorspaceConversion),e.premultiplyAlpha!==void 0&&t.pixelStorei(FC,e.premultiplyAlpha),e.flipY!==void 0&&t.pixelStorei(PC,e.flipY)}function wm(t){t.pixelStorei(ll,4),Fr(t)&&(t.pixelStorei(dm,0),t.pixelStorei(hm,0),t.pixelStorei(pm,0),t.pixelStorei(mm,0),t.pixelStorei(gm,0))}function VS(t,e,n,r){r.minMag&&(n.call(t,e,cl,r.minMag),n.call(t,e,ul,r.minMag)),r.min&&n.call(t,e,cl,r.min),r.mag&&n.call(t,e,ul,r.mag),r.wrap&&(n.call(t,e,Ka,r.wrap),n.call(t,e,Ja,r.wrap),(e===an||nC(t,e))&&n.call(t,e,fm,r.wrap)),r.wrapR&&n.call(t,e,fm,r.wrapR),r.wrapS&&n.call(t,e,Ka,r.wrapS),r.wrapT&&n.call(t,e,Ja,r.wrapT),r.minLod&&n.call(t,e,kC,r.minLod),r.maxLod&&n.call(t,e,NC,r.maxLod),r.baseLevel&&n.call(t,e,LC,r.baseLevel),r.maxLevel&&n.call(t,e,BC,r.maxLevel)}function Cm(t,e,n){const r=n.target||Nt;t.bindTexture(r,e),VS(t,r,t.texParameteri,n)}function YS(t){return t=t||on.textureColor,Pr(t)?t:new Uint8Array([t[0]*255,t[1]*255,t[2]*255,t[3]*255])}function hl(t,e,n,r,i,o){n=n||on.textureOptions,o=o||re;const a=n.target||Nt;if(r=r||n.width,i=i||n.height,t.bindTexture(a,e),GS(t,r,i,o))t.generateMipmap(a);else{const s=QS(o)?SC:CC;t.texParameteri(a,cl,s),t.texParameteri(a,ul,s),t.texParameteri(a,Ka,Za),t.texParameteri(a,Ja,Za)}}function ao(t){return t.auto===!0||t.auto===void 0&&t.level===void 0}function pl(t,e){return e=e||{},e.cubeFaceOrder||[qa,EC,DC,MC,TC,IC]}function ml(t,e){const r=pl(t,e).map(function(i,o){return{face:i,ndx:o}});return r.sort(function(i,o){return i.face-o.face}),r}function Sm(t,e,n,r){r=r||on.textureOptions;const i=r.target||Nt,o=r.level||0;let a=n.width,s=n.height;const c=r.internalFormat||r.format||re,u=Hr(c),f=r.format||u.format,l=r.type||u.type;if(Gr(t,r),t.bindTexture(i,e),i===Lt){const d=n.width,p=n.height;let h,m;if(d/6===p)h=p,m=[0,0,1,0,2,0,3,0,4,0,5,0];else if(p/6===d)h=d,m=[0,0,0,1,0,2,0,3,0,4,0,5];else if(d/3===p/2)h=d/3,m=[0,0,1,0,2,0,0,1,1,1,2,1];else if(d/2===p/3)h=d/2,m=[0,0,1,0,0,1,1,1,0,2,1,2];else throw"can't figure out cube map from element: "+(n.src?n.src:n.nodeName);const g=am();g?(g.canvas.width=h,g.canvas.height=h,a=h,s=h,ml(t,r).forEach(function(y){const b=m[y.ndx*2+0]*h,w=m[y.ndx*2+1]*h;g.drawImage(n,b,w,h,h,0,0,h,h),t.texImage2D(y.face,o,c,f,l,g.canvas)}),g.canvas.width=1,g.canvas.height=1):typeof createImageBitmap<"u"&&(a=h,s=h,ml(t,r).forEach(function(y){const b=m[y.ndx*2+0]*h,w=m[y.ndx*2+1]*h;t.texImage2D(y.face,o,c,h,h,0,f,l,null),createImageBitmap(n,b,w,h,h,{premultiplyAlpha:"none",colorSpaceConversion:"none"}).then(function(C){Gr(t,r),t.bindTexture(i,e),t.texImage2D(y.face,o,c,f,l,C),ao(r)&&hl(t,e,r,a,s,c)})}))}else if(i===an||i===sn){const d=Math.min(n.width,n.height),p=Math.max(n.width,n.height),h=p/d;if(h%1!==0)throw"can not compute 3D dimensions of element";const m=n.width===p?1:0,g=n.height===p?1:0;t.pixelStorei(ll,1),t.pixelStorei(dm,n.width),t.pixelStorei(hm,0),t.pixelStorei(gm,0),t.texImage3D(i,o,c,d,d,d,0,f,l,null);for(let y=0;y<h;++y){const b=y*d*m,w=y*d*g;t.pixelStorei(pm,b),t.pixelStorei(mm,w),t.texSubImage3D(i,o,0,0,y,d,d,1,f,l,n)}wm(t)}else t.texImage2D(i,o,c,f,l,n);ao(r)&&hl(t,e,r,a,s,c),Cm(t,e,r)}function so(){}function _S(t){if(typeof document<"u"){const e=document.createElement("a");return e.href=t,e.hostname===location.hostname&&e.port===location.port&&e.protocol===location.protocol}else{const e=new URL(location.href).origin;return new URL(t,location.href).origin===e}}function WS(t,e){return e===void 0&&!_S(t)?"anonymous":e}function XS(t,e,n){n=n||so;let r;if(e=e!==void 0?e:on.crossOrigin,e=WS(t,e),typeof Image<"u"){r=new Image,e!==void 0&&(r.crossOrigin=e);const i=function(){r.removeEventListener("error",o),r.removeEventListener("load",a),r=null},o=function(){const c="couldn't load image: "+t;eC(c),n(c,r),i()},a=function(){n(null,r),i()};return r.addEventListener("error",o),r.addEventListener("load",a),r.src=t,r}else if(typeof ImageBitmap<"u"){let i,o;const a=function(){n(i,o)},s={};e&&(s.mode="cors"),fetch(t,s).then(function(c){if(!c.ok)throw c;return c.blob()}).then(function(c){return createImageBitmap(c,{premultiplyAlpha:"none",colorSpaceConversion:"none"})}).then(function(c){o=c,setTimeout(a)}).catch(function(c){i=c,setTimeout(a)}),r=null}return r}function Em(t){return typeof ImageBitmap<"u"&&t instanceof ImageBitmap||typeof ImageData<"u"&&t instanceof ImageData||typeof HTMLElement<"u"&&t instanceof HTMLElement}function gl(t,e,n){return Em(t)?(setTimeout(function(){n(null,t)}),t):XS(t,e,n)}function yl(t,e,n){n=n||on.textureOptions;const r=n.target||Nt;if(t.bindTexture(r,e),n.color===!1)return;const i=YS(n.color);if(r===Lt)for(let o=0;o<6;++o)t.texImage2D(qa+o,0,re,1,1,0,re,ie,i);else r===an||r===sn?t.texImage3D(r,0,re,1,1,1,0,re,ie,i):t.texImage2D(r,0,re,1,1,0,re,ie,i)}function ZS(t,e,n,r){return r=r||so,n=n||on.textureOptions,yl(t,e,n),n=Object.assign({},n),gl(n.src,n.crossOrigin,function(o,a){o?r(o,e,a):(Sm(t,e,a,n),r(null,e,a))})}function qS(t,e,n,r){r=r||so;const i=n.src;if(i.length!==6)throw"there must be 6 urls for a cubemap";const o=n.level||0,a=n.internalFormat||n.format||re,s=Hr(a),c=n.format||s.format,u=n.type||ie,f=n.target||Nt;if(f!==Lt)throw"target must be TEXTURE_CUBE_MAP";yl(t,e,n),n=Object.assign({},n);let l=6;const d=[],p=pl(t,n);let h;function m(g){return function(y,b){--l,y?d.push(y):b.width!==b.height?d.push("cubemap face img is not a square: "+b.src):(Gr(t,n),t.bindTexture(f,e),l===5?pl().forEach(function(w){t.texImage2D(w,o,a,c,u,b)}):t.texImage2D(g,o,a,c,u,b),ao(n)&&t.generateMipmap(f)),l===0&&r(d.length?d:void 0,e,h)}}h=i.map(function(g,y){return gl(g,n.crossOrigin,m(p[y]))})}function KS(t,e,n,r){r=r||so;const i=n.src,o=n.internalFormat||n.format||re,a=Hr(o),s=n.format||a.format,c=n.type||ie,u=n.target||sn;if(u!==an&&u!==sn)throw"target must be TEXTURE_3D or TEXTURE_2D_ARRAY";yl(t,e,n),n=Object.assign({},n);let f=i.length;const l=[];let d;const p=n.level||0;let h=n.width,m=n.height;const g=i.length;let y=!0;function b(w){return function(C,x){if(--f,C)l.push(C);else{if(Gr(t,n),t.bindTexture(u,e),y){y=!1,h=n.width||x.width,m=n.height||x.height,t.texImage3D(u,p,o,h,m,g,0,s,c,null);for(let v=0;v<g;++v)t.texSubImage3D(u,p,0,0,v,h,m,1,s,c,x)}else{let v=x,A;(x.width!==h||x.height!==m)&&(A=am(),v=A.canvas,A.canvas.width=h,A.canvas.height=m,A.drawImage(x,0,0,h,m)),t.texSubImage3D(u,p,0,0,w,h,m,1,s,c,v),A&&v===A.canvas&&(A.canvas.width=0,A.canvas.height=0)}ao(n)&&t.generateMipmap(u)}f===0&&r(l.length?l:void 0,e,d)}}d=i.map(function(w,C){return gl(w,n.crossOrigin,b(C))})}function Dm(t,e,n,r){r=r||on.textureOptions;const i=r.target||Nt;t.bindTexture(i,e);let o=r.width,a=r.height,s=r.depth;const c=r.level||0,u=r.internalFormat||r.format||re,f=Hr(u),l=r.format||f.format,d=r.type||xm(t,n,f.type);if(Pr(n))n instanceof Uint8ClampedArray&&(n=new Uint8Array(n.buffer));else{const g=$3(d);n=new g(n)}const p=HS(u,d),h=n.byteLength/p;if(h%1)throw"length wrong size for format: "+sl(t,l);let m;if(i===an||i===sn)if(!o&&!a&&!s){const g=Math.cbrt(h);if(g%1!==0)throw"can't guess cube size of array of numElements: "+h;o=g,a=g,s=g}else o&&(!a||!s)?(m=is(t,i,a,s,h/o),a=m.width,s=m.height):a&&(!o||!s)?(m=is(t,i,o,s,h/a),o=m.width,s=m.height):(m=is(t,i,o,a,h/s),o=m.width,a=m.height);else m=is(t,i,o,a,h),o=m.width,a=m.height;if(wm(t),t.pixelStorei(ll,r.unpackAlignment||1),Gr(t,r),i===Lt){const g=p/n.BYTES_PER_ELEMENT,y=h/6*g;ml(t,r).forEach(b=>{const w=y*b.ndx,C=n.subarray(w,w+y);t.texImage2D(b.face,c,u,o,a,0,l,d,C)})}else i===an||i===sn?t.texImage3D(i,c,u,o,a,s,0,l,d,n):t.texImage2D(i,c,u,o,a,0,l,d,n);return{width:o,height:a,depth:s,type:d}}function JS(t,e,n){const r=n.target||Nt;t.bindTexture(r,e);const i=n.level||0,o=n.internalFormat||n.format||re,a=Hr(o),s=n.format||a.format,c=n.type||a.type;if(Gr(t,n),r===Lt)for(let u=0;u<6;++u)t.texImage2D(qa+u,i,o,n.width,n.height,0,s,c,null);else r===an||r===sn?t.texImage3D(r,i,o,n.width,n.height,n.depth,0,s,c,null):t.texImage2D(r,i,o,n.width,n.height,0,s,c,null)}function co(t,e,n){n=n||so,e=e||on.textureOptions;const r=t.createTexture(),i=e.target||Nt;let o=e.width||1,a=e.height||1;const s=e.internalFormat||re;t.bindTexture(i,r),i===Lt&&(t.texParameteri(i,Ka,Za),t.texParameteri(i,Ja,Za));let c=e.src;if(c)if(typeof c=="function"&&(c=c(t,e)),typeof c=="string")ZS(t,r,e,n);else if(Pr(c)||Array.isArray(c)&&(typeof c[0]=="number"||Array.isArray(c[0])||Pr(c[0]))){const u=Dm(t,r,c,e);o=u.width,a=u.height}else Array.isArray(c)&&(typeof c[0]=="string"||Em(c[0]))?i===Lt?qS(t,r,e,n):KS(t,r,e,n):(Sm(t,r,c,e),o=c.width,a=c.height);else JS(t,r,e);return ao(e)&&hl(t,r,e,o,a,s),Cm(t,r,e),r}function $S(t,e,n,r,i,o){r=r||n.width,i=i||n.height,o=o||n.depth;const a=n.target||Nt;t.bindTexture(a,e);const s=n.level||0,c=n.internalFormat||n.format||re,u=Hr(c),f=n.format||u.format;let l;const d=n.src;if(d&&(Pr(d)||Array.isArray(d)&&typeof d[0]=="number")?l=n.type||xm(t,d,u.type):l=n.type||u.type,a===Lt)for(let p=0;p<6;++p)t.texImage2D(qa+p,s,c,r,i,0,f,l,null);else a===an||a===sn?t.texImage3D(a,s,c,r,i,o,0,f,l,null):t.texImage2D(a,s,c,r,i,0,f,l,null)}const eE=Jp,os=33984,tE=35048,as=34962,nE=34963,vl=35345,Mm=35718,rE=35721,iE=35971,oE=35382,aE=35396,sE=35398,cE=35392,uE=35395,ss=5126,Tm=35664,Im=35665,km=35666,bl=5124,Nm=35667,Lm=35668,Bm=35669,Om=35670,Fm=35671,Pm=35672,zm=35673,Rm=35674,jm=35675,Um=35676,lE=35678,fE=35680,dE=35679,hE=35682,pE=35685,mE=35686,gE=35687,yE=35688,vE=35689,bE=35690,AE=36289,xE=36292,wE=36293,Al=5125,Hm=36294,Gm=36295,Qm=36296,CE=36298,SE=36299,EE=36300,DE=36303,ME=36306,TE=36307,IE=36308,kE=36311,cs=3553,us=34067,xl=32879,ls=35866,P={};function Vm(t,e){return P[e].bindPoint}function NE(t,e){return function(n){t.uniform1f(e,n)}}function LE(t,e){return function(n){t.uniform1fv(e,n)}}function BE(t,e){return function(n){t.uniform2fv(e,n)}}function OE(t,e){return function(n){t.uniform3fv(e,n)}}function FE(t,e){return function(n){t.uniform4fv(e,n)}}function Ym(t,e){return function(n){t.uniform1i(e,n)}}function _m(t,e){return function(n){t.uniform1iv(e,n)}}function Wm(t,e){return function(n){t.uniform2iv(e,n)}}function Xm(t,e){return function(n){t.uniform3iv(e,n)}}function Zm(t,e){return function(n){t.uniform4iv(e,n)}}function PE(t,e){return function(n){t.uniform1ui(e,n)}}function zE(t,e){return function(n){t.uniform1uiv(e,n)}}function RE(t,e){return function(n){t.uniform2uiv(e,n)}}function jE(t,e){return function(n){t.uniform3uiv(e,n)}}function UE(t,e){return function(n){t.uniform4uiv(e,n)}}function HE(t,e){return function(n){t.uniformMatrix2fv(e,!1,n)}}function GE(t,e){return function(n){t.uniformMatrix3fv(e,!1,n)}}function QE(t,e){return function(n){t.uniformMatrix4fv(e,!1,n)}}function VE(t,e){return function(n){t.uniformMatrix2x3fv(e,!1,n)}}function YE(t,e){return function(n){t.uniformMatrix3x2fv(e,!1,n)}}function _E(t,e){return function(n){t.uniformMatrix2x4fv(e,!1,n)}}function WE(t,e){return function(n){t.uniformMatrix4x2fv(e,!1,n)}}function XE(t,e){return function(n){t.uniformMatrix3x4fv(e,!1,n)}}function ZE(t,e){return function(n){t.uniformMatrix4x3fv(e,!1,n)}}function Me(t,e,n,r){const i=Vm(t,e);return Fr(t)?function(o){let a,s;Xa(t,o)?(a=o,s=null):(a=o.texture,s=o.sampler),t.uniform1i(r,n),t.activeTexture(os+n),t.bindTexture(i,a),t.bindSampler(n,s)}:function(o){t.uniform1i(r,n),t.activeTexture(os+n),t.bindTexture(i,o)}}function Te(t,e,n,r,i){const o=Vm(t,e),a=new Int32Array(i);for(let s=0;s<i;++s)a[s]=n+s;return Fr(t)?function(s){t.uniform1iv(r,a),s.forEach(function(c,u){t.activeTexture(os+a[u]);let f,l;Xa(t,c)?(f=c,l=null):(f=c.texture,l=c.sampler),t.bindSampler(n,l),t.bindTexture(o,f)})}:function(s){t.uniform1iv(r,a),s.forEach(function(c,u){t.activeTexture(os+a[u]),t.bindTexture(o,c)})}}P[ss]={Type:Float32Array,size:4,setter:NE,arraySetter:LE},P[Tm]={Type:Float32Array,size:8,setter:BE,cols:2},P[Im]={Type:Float32Array,size:12,setter:OE,cols:3},P[km]={Type:Float32Array,size:16,setter:FE,cols:4},P[bl]={Type:Int32Array,size:4,setter:Ym,arraySetter:_m},P[Nm]={Type:Int32Array,size:8,setter:Wm,cols:2},P[Lm]={Type:Int32Array,size:12,setter:Xm,cols:3},P[Bm]={Type:Int32Array,size:16,setter:Zm,cols:4},P[Al]={Type:Uint32Array,size:4,setter:PE,arraySetter:zE},P[Hm]={Type:Uint32Array,size:8,setter:RE,cols:2},P[Gm]={Type:Uint32Array,size:12,setter:jE,cols:3},P[Qm]={Type:Uint32Array,size:16,setter:UE,cols:4},P[Om]={Type:Uint32Array,size:4,setter:Ym,arraySetter:_m},P[Fm]={Type:Uint32Array,size:8,setter:Wm,cols:2},P[Pm]={Type:Uint32Array,size:12,setter:Xm,cols:3},P[zm]={Type:Uint32Array,size:16,setter:Zm,cols:4},P[Rm]={Type:Float32Array,size:32,setter:HE,rows:2,cols:2},P[jm]={Type:Float32Array,size:48,setter:GE,rows:3,cols:3},P[Um]={Type:Float32Array,size:64,setter:QE,rows:4,cols:4},P[pE]={Type:Float32Array,size:32,setter:VE,rows:2,cols:3},P[mE]={Type:Float32Array,size:32,setter:_E,rows:2,cols:4},P[gE]={Type:Float32Array,size:48,setter:YE,rows:3,cols:2},P[yE]={Type:Float32Array,size:48,setter:XE,rows:3,cols:4},P[vE]={Type:Float32Array,size:64,setter:WE,rows:4,cols:2},P[bE]={Type:Float32Array,size:64,setter:ZE,rows:4,cols:3},P[lE]={Type:null,size:0,setter:Me,arraySetter:Te,bindPoint:cs},P[fE]={Type:null,size:0,setter:Me,arraySetter:Te,bindPoint:us},P[dE]={Type:null,size:0,setter:Me,arraySetter:Te,bindPoint:xl},P[hE]={Type:null,size:0,setter:Me,arraySetter:Te,bindPoint:cs},P[AE]={Type:null,size:0,setter:Me,arraySetter:Te,bindPoint:ls},P[xE]={Type:null,size:0,setter:Me,arraySetter:Te,bindPoint:ls},P[wE]={Type:null,size:0,setter:Me,arraySetter:Te,bindPoint:us},P[CE]={Type:null,size:0,setter:Me,arraySetter:Te,bindPoint:cs},P[SE]={Type:null,size:0,setter:Me,arraySetter:Te,bindPoint:xl},P[EE]={Type:null,size:0,setter:Me,arraySetter:Te,bindPoint:us},P[DE]={Type:null,size:0,setter:Me,arraySetter:Te,bindPoint:ls},P[ME]={Type:null,size:0,setter:Me,arraySetter:Te,bindPoint:cs},P[TE]={Type:null,size:0,setter:Me,arraySetter:Te,bindPoint:xl},P[IE]={Type:null,size:0,setter:Me,arraySetter:Te,bindPoint:us},P[kE]={Type:null,size:0,setter:Me,arraySetter:Te,bindPoint:ls};function fs(t,e){return function(n){if(n.value)switch(t.disableVertexAttribArray(e),n.value.length){case 4:t.vertexAttrib4fv(e,n.value);break;case 3:t.vertexAttrib3fv(e,n.value);break;case 2:t.vertexAttrib2fv(e,n.value);break;case 1:t.vertexAttrib1fv(e,n.value);break;default:throw new Error("the length of a float constant value must be between 1 and 4!")}else t.bindBuffer(as,n.buffer),t.enableVertexAttribArray(e),t.vertexAttribPointer(e,n.numComponents||n.size,n.type||ss,n.normalize||!1,n.stride||0,n.offset||0),n.divisor!==void 0&&t.vertexAttribDivisor(e,n.divisor)}}function un(t,e){return function(n){if(n.value)if(t.disableVertexAttribArray(e),n.value.length===4)t.vertexAttrib4iv(e,n.value);else throw new Error("The length of an integer constant value must be 4!");else t.bindBuffer(as,n.buffer),t.enableVertexAttribArray(e),t.vertexAttribIPointer(e,n.numComponents||n.size,n.type||bl,n.stride||0,n.offset||0),n.divisor!==void 0&&t.vertexAttribDivisor(e,n.divisor)}}function ds(t,e){return function(n){if(n.value)if(t.disableVertexAttribArray(e),n.value.length===4)t.vertexAttrib4uiv(e,n.value);else throw new Error("The length of an unsigned integer constant value must be 4!");else t.bindBuffer(as,n.buffer),t.enableVertexAttribArray(e),t.vertexAttribIPointer(e,n.numComponents||n.size,n.type||Al,n.stride||0,n.offset||0),n.divisor!==void 0&&t.vertexAttribDivisor(e,n.divisor)}}function wl(t,e,n){const r=n.size,i=n.count;return function(o){t.bindBuffer(as,o.buffer);const a=o.size||o.numComponents||r,s=a/i,c=o.type||ss,f=P[c].size*a,l=o.normalize||!1,d=o.offset||0,p=f/i;for(let h=0;h<i;++h)t.enableVertexAttribArray(e+h),t.vertexAttribPointer(e+h,s,c,l,f,d+p*h),o.divisor!==void 0&&t.vertexAttribDivisor(e+h,o.divisor)}}const fe={};fe[ss]={size:4,setter:fs},fe[Tm]={size:8,setter:fs},fe[Im]={size:12,setter:fs},fe[km]={size:16,setter:fs},fe[bl]={size:4,setter:un},fe[Nm]={size:8,setter:un},fe[Lm]={size:12,setter:un},fe[Bm]={size:16,setter:un},fe[Al]={size:4,setter:ds},fe[Hm]={size:8,setter:ds},fe[Gm]={size:12,setter:ds},fe[Qm]={size:16,setter:ds},fe[Om]={size:4,setter:un},fe[Fm]={size:8,setter:un},fe[Pm]={size:12,setter:un},fe[zm]={size:16,setter:un},fe[Rm]={size:4,setter:wl,count:2},fe[jm]={size:9,setter:wl,count:3},fe[Um]={size:16,setter:wl,count:4};function qm(t){const e=t.name;return e.startsWith("gl_")||e.startsWith("webgl_")}const qE=/(\.|\[|]|\w+)/g,KE=t=>t>="0"&&t<="9";function Km(t,e,n,r){const i=t.split(qE).filter(s=>s!=="");let o=0,a="";for(;;){const s=i[o++];a+=s;const c=KE(s[0]),u=c?parseInt(s):s;if(c&&(a+=i[o++]),o===i.length){n[u]=e;break}else{const l=i[o++],d=l==="[",p=n[u]||(d?[]:{});n[u]=p,n=p,r[a]=r[a]||function(h){return function(m){ng(h,m)}}(p),a+=l}}}function JE(t,e){let n=0;function r(s,c,u){const f=c.name.endsWith("[0]"),l=c.type,d=P[l];if(!d)throw new Error(`unknown type: 0x${l.toString(16)}`);let p;if(d.bindPoint){const h=n;n+=c.size,f?p=d.arraySetter(t,l,h,u,c.size):p=d.setter(t,l,h,u,c.size)}else d.arraySetter&&f?p=d.arraySetter(t,u):p=d.setter(t,u);return p.location=u,p}const i={},o={},a=t.getProgramParameter(e,Mm);for(let s=0;s<a;++s){const c=t.getActiveUniform(e,s);if(qm(c))continue;let u=c.name;u.endsWith("[0]")&&(u=u.substr(0,u.length-3));const f=t.getUniformLocation(e,c.name);if(f){const l=r(e,c,f);i[u]=l,Km(u,l,o,i)}}return i}function $E(t,e){const n={},r=t.getProgramParameter(e,iE);for(let i=0;i<r;++i){const o=t.getTransformFeedbackVarying(e,i);n[o.name]={index:i,type:o.type,size:o.size}}return n}function eD(t,e){const n=t.getProgramParameter(e,Mm),r=[],i=[];for(let s=0;s<n;++s){i.push(s),r.push({});const c=t.getActiveUniform(e,s);r[s].name=c.name}[["UNIFORM_TYPE","type"],["UNIFORM_SIZE","size"],["UNIFORM_BLOCK_INDEX","blockNdx"],["UNIFORM_OFFSET","offset"]].forEach(function(s){const c=s[0],u=s[1];t.getActiveUniforms(e,i,t[c]).forEach(function(f,l){r[l][u]=f})});const o={},a=t.getProgramParameter(e,oE);for(let s=0;s<a;++s){const c=t.getActiveUniformBlockName(e,s),u={index:t.getUniformBlockIndex(e,c),usedByVertexShader:t.getActiveUniformBlockParameter(e,s,aE),usedByFragmentShader:t.getActiveUniformBlockParameter(e,s,sE),size:t.getActiveUniformBlockParameter(e,s,cE),uniformIndices:t.getActiveUniformBlockParameter(e,s,uE)};u.used=u.usedByVertexShader||u.usedByFragmentShader,o[c]=u}return{blockSpecs:o,uniformData:r}}const Jm=/\[\d+\]\.$/,tD=(t,e)=>((t+(e-1))/e|0)*e;function nD(t,e,n,r){if(e||n){r=r||1;const o=t.length/4;return function(a){let s=0,c=0;for(let u=0;u<o;++u){for(let f=0;f<r;++f)t[s++]=a[c++];s+=4-r}}}else return function(i){i.length?t.set(i):t[0]=i}}function rD(t,e,n,r){const i=n.blockSpecs,o=n.uniformData,a=i[r];if(!a)return eE("no uniform block object named:",r),{name:r,uniforms:{}};const s=new ArrayBuffer(a.size),c=t.createBuffer(),u=a.index;t.bindBuffer(vl,c),t.uniformBlockBinding(e,a.index,u);let f=r+".";Jm.test(f)&&(f=f.replace(Jm,"."));const l={},d={},p={};return a.uniformIndices.forEach(function(h){const m=o[h];let g=m.name;g.startsWith(f)&&(g=g.substr(f.length));const y=g.endsWith("[0]");y&&(g=g.substr(0,g.length-3));const b=P[m.type],w=b.Type,C=y?tD(b.size,16)*m.size:b.size*m.size,x=new w(s,m.offset,C/w.BYTES_PER_ELEMENT);l[g]=x;const v=nD(x,y,b.rows,b.cols);d[g]=v,Km(g,v,p,d)}),{name:r,array:s,asFloat:new Float32Array(s),buffer:c,uniforms:l,setters:d}}function $m(t,e,n){return rD(t,e.program,e.uniformBlockSpec,n)}function iD(t,e,n){const i=(e.uniformBlockSpec||e).blockSpecs[n.name];if(i){const o=i.index;return t.bindBufferRange(vl,o,n.buffer,n.offset||0,n.array.byteLength),!0}return!1}function eg(t,e,n){iD(t,e,n)&&t.bufferData(vl,n.array,tE)}function tg(t,e){const n=t.setters;for(const r in e){const i=n[r];if(i){const o=e[r];i(o)}}}function ng(t,e){for(const n in e){const r=t[n];typeof r=="function"?r(e[n]):ng(t[n],e[n])}}function je(t,...e){const n=t.uniformSetters||t,r=e.length;for(let i=0;i<r;++i){const o=e[i];if(Array.isArray(o)){const a=o.length;for(let s=0;s<a;++s)je(n,o[s])}else for(const a in o){const s=n[a];s&&s(o[a])}}}function oD(t,e){const n={},r=t.getProgramParameter(e,rE);for(let i=0;i<r;++i){const o=t.getActiveAttrib(e,i);if(qm(o))continue;const a=t.getAttribLocation(e,o.name),s=fe[o.type],c=s.setter(t,a,s);c.location=a,n[o.name]=c}return n}function aD(t,e){for(const n in e){const r=t[n];r&&r(e[n])}}function Qr(t,e,n){n.vertexArrayObject?t.bindVertexArray(n.vertexArrayObject):(aD(e.attribSetters||e,n.attribs),n.indices&&t.bindBuffer(nE,n.indices))}function sD(t,e){const n=JE(t,e),r=oD(t,e),i={program:e,uniformSetters:n,attribSetters:r};return Fr(t)&&(i.uniformBlockSpec=eD(t,e),i.transformFeedbackInfo=$E(t,e)),i}const cD=4,rg=5123;function uo(t,e,n,r,i,o){n=n===void 0?cD:n;const a=e.indices,s=e.elementType,c=r===void 0?e.numElements:r;i=i===void 0?0:i,s||a?o!==void 0?t.drawElementsInstanced(n,c,s===void 0?rg:e.elementType,i,o):t.drawElements(n,c,s===void 0?rg:e.elementType,i):o!==void 0?t.drawArraysInstanced(n,i,c,o):t.drawArrays(n,i,c)}const uD=36160,Jn=36161,lD=3553,fD=5121,dD=6402,hD=6408,pD=33190,mD=36012,gD=35056,yD=36013,vD=32854,bD=32855,AD=36194,ig=33189,og=6401,ag=36168,Cl=34041,xD=36064,hs=36096,sg=36128,Sl=33306,El=33071,Dl=9729,cg=[{format:hD,type:fD,min:Dl,wrap:El},{format:Cl}],st={};st[Cl]=Sl,st[og]=sg,st[ag]=sg,st[dD]=hs,st[ig]=hs,st[pD]=hs,st[mD]=hs,st[gD]=Sl,st[yD]=Sl;function wD(t,e){return st[t]||st[e]}const ln={};ln[vD]=!0,ln[bD]=!0,ln[AD]=!0,ln[Cl]=!0,ln[ig]=!0,ln[og]=!0,ln[ag]=!0;function CD(t){return ln[t]}function SD(t,e,n,r){const i=uD,o=t.createFramebuffer();t.bindFramebuffer(i,o),n=n||t.drawingBufferWidth,r=r||t.drawingBufferHeight,e=e||cg;let a=0;const s={framebuffer:o,attachments:[],width:n,height:r};return e.forEach(function(c){let u=c.attachment;const f=c.samples,l=c.format;let d=c.attachmentPoint||wD(l,c.internalFormat);if(d||(d=xD+a++),!u)if(f!==void 0||CD(l))u=t.createRenderbuffer(),t.bindRenderbuffer(Jn,u),f>1?t.renderbufferStorageMultisample(Jn,f,l,n,r):t.renderbufferStorage(Jn,l,n,r);else{const p=Object.assign({},c);p.width=n,p.height=r,p.auto===void 0&&(p.auto=!1,p.min=p.min||p.minMag||Dl,p.mag=p.mag||p.minMag||Dl,p.wrapS=p.wrapS||p.wrap||El,p.wrapT=p.wrapT||p.wrap||El),u=co(t,p)}if($p(t,u))t.framebufferRenderbuffer(i,d,Jn,u);else if(Xa(t,u))c.layer!==void 0?t.framebufferTextureLayer(i,d,u,c.level||0,c.layer):t.framebufferTexture2D(i,d,c.target||lD,u,c.level||0);else throw new Error("unknown attachment type");s.attachments.push(u)}),s}function ED(t,e,n,r,i){r=r||t.drawingBufferWidth,i=i||t.drawingBufferHeight,e.width=r,e.height=i,n=n||cg,n.forEach(function(o,a){const s=e.attachments[a],c=o.format,u=o.samples;if(u!==void 0||$p(t,s))t.bindRenderbuffer(Jn,s),u>1?t.renderbufferStorageMultisample(Jn,u,c,r,i):t.renderbufferStorage(Jn,c,r,i);else if(Xa(t,s))$S(t,s,o,r,i);else throw new Error("unknown attachment type")})}function DD(t,e,n){const r=t.createVertexArray();return t.bindVertexArray(r),e.length||(e=[e]),e.forEach(function(i){Qr(t,i,n)}),t.bindVertexArray(null),{numElements:n.numElements,elementType:n.elementType,vertexArrayObject:r}}const MD=/^(.*?)_/;function TD(t,e){sl(t,0);const n=t.getExtension(e);if(n){const r={},i=MD.exec(e)[1],o="_"+i;for(const a in n){const s=n[a],c=typeof s=="function",u=c?i:o;let f=a;a.endsWith(u)&&(f=a.substring(0,a.length-u.length)),t[f]!==void 0?!c&&t[f]!==s&&Jp(f,t[f],s,a):c?t[f]=function(l){return function(){return l.apply(n,arguments)}}(s):(t[f]=s,r[f]=s)}r.constructor={name:n.constructor.name},sl(r,0)}return n}const ug=["ANGLE_instanced_arrays","EXT_blend_minmax","EXT_color_buffer_float","EXT_color_buffer_half_float","EXT_disjoint_timer_query","EXT_disjoint_timer_query_webgl2","EXT_frag_depth","EXT_sRGB","EXT_shader_texture_lod","EXT_texture_filter_anisotropic","OES_element_index_uint","OES_standard_derivatives","OES_texture_float","OES_texture_float_linear","OES_texture_half_float","OES_texture_half_float_linear","OES_vertex_array_object","WEBGL_color_buffer_float","WEBGL_compressed_texture_atc","WEBGL_compressed_texture_etc1","WEBGL_compressed_texture_pvrtc","WEBGL_compressed_texture_s3tc","WEBGL_compressed_texture_s3tc_srgb","WEBGL_depth_texture","WEBGL_draw_buffers"];function lg(t){for(let e=0;e<ug.length;++e)TD(t,ug[e])}function ID(t,e){const n=["webgl2","webgl","experimental-webgl"];let r=null;for(let i=0;i<n.length;++i)if(r=t.getContext(n[i],e),r){lg(r);break}return r}function kD(t,e){return ID(t,e)}const ND=`/**
18
+ see: http://github.com/greggman/twgl.js for details */const rp=5120,Ic=5121,ip=5122,ap=5123,op=5124,sp=5125,cp=5126,iM=32819,aM=32820,oM=33635,sM=5131,cM=33640,lM=35899,uM=35902,fM=36269,hM=34042,Hv={};{const e=Hv;e[rp]=Int8Array,e[Ic]=Uint8Array,e[ip]=Int16Array,e[ap]=Uint16Array,e[op]=Int32Array,e[sp]=Uint32Array,e[cp]=Float32Array,e[iM]=Uint16Array,e[aM]=Uint16Array,e[oM]=Uint16Array,e[sM]=Uint16Array,e[cM]=Uint32Array,e[lM]=Uint32Array,e[uM]=Uint32Array,e[fM]=Uint32Array,e[hM]=Uint32Array}function lp(e){if(e instanceof Int8Array)return rp;if(e instanceof Uint8Array||e instanceof Uint8ClampedArray)return Ic;if(e instanceof Int16Array)return ip;if(e instanceof Uint16Array)return ap;if(e instanceof Int32Array)return op;if(e instanceof Uint32Array)return sp;if(e instanceof Float32Array)return cp;throw new Error("unsupported typed array type")}function dM(e){if(e===Int8Array)return rp;if(e===Uint8Array||e===Uint8ClampedArray)return Ic;if(e===Int16Array)return ip;if(e===Uint16Array)return ap;if(e===Int32Array)return op;if(e===Uint32Array)return sp;if(e===Float32Array)return cp;throw new Error("unsupported typed array type")}function pM(e){const t=Hv[e];if(!t)throw new Error("unknown gl type");return t}const of=typeof SharedArrayBuffer<"u"?function(t){return t&&t.buffer&&(t.buffer instanceof ArrayBuffer||t.buffer instanceof SharedArrayBuffer)}:function(t){return t&&t.buffer&&t.buffer instanceof ArrayBuffer};function gM(...e){console.error(...e)}function Gv(...e){console.warn(...e)}function mM(e,t){return typeof WebGLBuffer<"u"&&t instanceof WebGLBuffer}function $v(e,t){return typeof WebGLRenderbuffer<"u"&&t instanceof WebGLRenderbuffer}function sf(e,t){return typeof WebGLTexture<"u"&&t instanceof WebGLTexture}function bM(e,t){return typeof WebGLSampler<"u"&&t instanceof WebGLSampler}const Vv=35044,Zn=34962,yM=34963,vM=34660,wM=5120,xM=5121,AM=5122,EM=5123,SM=5124,CM=5125,_M=5126,Yv={attribPrefix:""};function Qv(e,t,n,r,i){e.bindBuffer(t,n),e.bufferData(t,r,i||Vv)}function Zv(e,t,n,r){if(mM(e,t))return t;n=n||Zn;const i=e.createBuffer();return Qv(e,n,i,t,r),i}function qv(e){return e==="indices"}function kM(e){return e instanceof Int8Array||e instanceof Uint8Array}function DM(e){return e===Int8Array||e===Uint8Array}function IM(e){return e.length?e:e.data}const TM=/coord|texture/i,MM=/color|colour/i;function Wv(e,t){let n;if(TM.test(e)?n=2:MM.test(e)?n=4:n=3,t%n>0)throw new Error(`Can not guess numComponents for attribute '${e}'. Tried ${n} but ${t} values is not evenly divisible by ${n}. You should specify it.`);return n}function NM(e,t){return e.numComponents||e.size||Wv(t,IM(e).length)}function up(e,t){if(of(e))return e;if(of(e.data))return e.data;Array.isArray(e)&&(e={data:e});let n=e.type;return n||(qv(t)?n=Uint16Array:n=Float32Array),new n(e.data)}function FM(e,t){const n={};return Object.keys(t).forEach(function(r){if(!qv(r)){const i=t[r],a=i.attrib||i.name||i.attribName||Yv.attribPrefix+r;if(i.value){if(!Array.isArray(i.value)&&!of(i.value))throw new Error("array.value is not array or typedarray");n[a]={value:i.value}}else{let o,s,l,c;if(i.buffer&&i.buffer instanceof WebGLBuffer)o=i.buffer,c=i.numComponents||i.size,s=i.type,l=i.normalize;else if(typeof i=="number"||typeof i.data=="number"){const u=i.data||i,f=i.type||Float32Array,h=u*f.BYTES_PER_ELEMENT;s=dM(f),l=i.normalize!==void 0?i.normalize:DM(f),c=i.numComponents||i.size||Wv(r,u),o=e.createBuffer(),e.bindBuffer(Zn,o),e.bufferData(Zn,h,i.drawType||Vv)}else{const u=up(i,r);o=Zv(e,u,void 0,i.drawType),s=lp(u),l=i.normalize!==void 0?i.normalize:kM(u),c=NM(i,r)}n[a]={buffer:o,numComponents:c,type:s,normalize:l,stride:i.stride||0,offset:i.offset||0,divisor:i.divisor===void 0?void 0:i.divisor,drawType:i.drawType}}}}),e.bindBuffer(Zn,null),n}function BM(e,t,n,r){n=up(n),r!==void 0?(e.bindBuffer(Zn,t.buffer),e.bufferSubData(Zn,r,n)):Qv(e,Zn,t.buffer,n,t.drawType)}function LM(e,t){return t===wM||t===xM?1:t===AM||t===EM?2:t===SM||t===CM||t===_M?4:0}const fp=["position","positions","a_position"];function OM(e,t){let n,r;for(r=0;r<fp.length&&(n=fp[r],!(n in t||(n=Yv.attribPrefix+n,n in t)));++r);r===fp.length&&(n=Object.keys(t)[0]);const i=t[n];e.bindBuffer(Zn,i.buffer);const a=e.getBufferParameter(Zn,vM);e.bindBuffer(Zn,null);const o=LM(e,i.type),s=a/o,l=i.numComponents||i.size,c=s/l;if(c%1!==0)throw new Error(`numComponents ${l} not correct for length ${length}`);return c}function RM(e,t,n){const r=FM(e,t),i=Object.assign({},n||{});i.attribs=Object.assign({},n?n.attribs:{},r);const a=t.indices;if(a){const o=up(a,"indices");i.indices=Zv(e,o,yM),i.numElements=o.length,i.elementType=lp(o)}else i.numElements||(i.numElements=OM(e,i.attribs));return i}function Co(e){return!!e.texStorage2D}const hp=function(){const e={},t={};function n(r){const i=r.constructor.name;if(!e[i]){for(const a in r)if(typeof r[a]=="number"){const o=t[r[a]];t[r[a]]=o?`${o} | ${a}`:a}e[i]=!0}}return function(i,a){return n(i),t[a]||(typeof a=="number"?`0x${a.toString(16)}`:a)}}(),si={textureColor:new Uint8Array([128,192,255,255]),textureOptions:{},crossOrigin:void 0},_o=of,Xv=function(){let e;return function(){return e=e||(typeof document<"u"&&document.createElement?document.createElement("canvas").getContext("2d"):null),e}}(),Kv=6406,qn=6407,Pe=6408,Jv=6409,ew=6410,Tc=6402,tw=34041,cf=33071,zM=9728,PM=9729,Er=3553,Sr=34067,ci=32879,li=35866,lf=34069,UM=34070,jM=34071,HM=34072,GM=34073,$M=34074,dp=10241,pp=10240,uf=10242,ff=10243,nw=32882,VM=33082,YM=33083,QM=33084,ZM=33085,gp=3317,rw=3314,iw=32878,aw=3316,ow=3315,sw=32877,qM=37443,WM=37441,XM=37440,KM=33321,JM=36756,eN=33325,tN=33326,nN=33330,rN=33329,iN=33338,aN=33337,oN=33340,sN=33339,cN=33323,lN=36757,uN=33327,fN=33328,hN=33336,dN=33335,pN=33332,gN=33331,mN=33334,bN=33333,yN=32849,vN=35905,wN=36194,xN=36758,AN=35898,EN=35901,SN=34843,CN=34837,_N=36221,kN=36239,DN=36215,IN=36233,TN=36209,MN=36227,NN=32856,FN=35907,BN=36759,LN=32855,ON=32854,RN=32857,zN=34842,PN=34836,UN=36220,jN=36238,HN=36975,GN=36214,$N=36232,VN=36226,YN=36208,QN=33189,ZN=33190,qN=36012,WN=36013,XN=35056,ui=5120,Ue=5121,hf=5122,ko=5123,df=5124,ma=5125,At=5126,cw=32819,lw=32820,uw=33635,Tn=5131,Mc=36193,mp=33640,KN=35899,JN=35902,e9=36269,t9=34042,pf=33319,Do=33320,gf=6403,Io=36244,To=36248,ba=36249;let bp;function mf(e){if(!bp){const t={};t[Kv]={textureFormat:Kv,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[1,2,2,4],type:[Ue,Tn,Mc,At]},t[Jv]={textureFormat:Jv,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[1,2,2,4],type:[Ue,Tn,Mc,At]},t[ew]={textureFormat:ew,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[2,4,4,8],type:[Ue,Tn,Mc,At]},t[qn]={textureFormat:qn,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[3,6,6,12,2],type:[Ue,Tn,Mc,At,uw]},t[Pe]={textureFormat:Pe,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4,8,8,16,2,2],type:[Ue,Tn,Mc,At,cw,lw]},t[Tc]={textureFormat:Tc,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2,4],type:[ma,ko]},t[KM]={textureFormat:gf,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[1],type:[Ue]},t[JM]={textureFormat:gf,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[1],type:[ui]},t[eN]={textureFormat:gf,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[4,2],type:[At,Tn]},t[tN]={textureFormat:gf,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[4],type:[At]},t[nN]={textureFormat:Io,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[1],type:[Ue]},t[rN]={textureFormat:Io,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[1],type:[ui]},t[pN]={textureFormat:Io,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[ko]},t[gN]={textureFormat:Io,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[hf]},t[mN]={textureFormat:Io,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[ma]},t[bN]={textureFormat:Io,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[df]},t[cN]={textureFormat:pf,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[2],type:[Ue]},t[lN]={textureFormat:pf,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[2],type:[ui]},t[uN]={textureFormat:pf,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[8,4],type:[At,Tn]},t[fN]={textureFormat:pf,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[8],type:[At]},t[hN]={textureFormat:Do,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[Ue]},t[dN]={textureFormat:Do,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[ui]},t[iN]={textureFormat:Do,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[ko]},t[aN]={textureFormat:Do,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[hf]},t[oN]={textureFormat:Do,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[ma]},t[sN]={textureFormat:Do,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[df]},t[yN]={textureFormat:qn,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[3],type:[Ue]},t[vN]={textureFormat:qn,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[3],type:[Ue]},t[wN]={textureFormat:qn,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[3,2],type:[Ue,uw]},t[xN]={textureFormat:qn,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[3],type:[ui]},t[AN]={textureFormat:qn,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[12,6,4],type:[At,Tn,KN]},t[EN]={textureFormat:qn,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[12,6,4],type:[At,Tn,JN]},t[SN]={textureFormat:qn,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[12,6],type:[At,Tn]},t[CN]={textureFormat:qn,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[12],type:[At]},t[_N]={textureFormat:To,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[3],type:[Ue]},t[kN]={textureFormat:To,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[3],type:[ui]},t[DN]={textureFormat:To,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[6],type:[ko]},t[IN]={textureFormat:To,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[6],type:[hf]},t[TN]={textureFormat:To,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[12],type:[ma]},t[MN]={textureFormat:To,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[12],type:[df]},t[NN]={textureFormat:Pe,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4],type:[Ue]},t[FN]={textureFormat:Pe,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4],type:[Ue]},t[BN]={textureFormat:Pe,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[4],type:[ui]},t[LN]={textureFormat:Pe,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4,2,4],type:[Ue,lw,mp]},t[ON]={textureFormat:Pe,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4,2],type:[Ue,cw]},t[RN]={textureFormat:Pe,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4],type:[mp]},t[zN]={textureFormat:Pe,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[16,8],type:[At,Tn]},t[PN]={textureFormat:Pe,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[16],type:[At]},t[UN]={textureFormat:ba,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Ue]},t[jN]={textureFormat:ba,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[ui]},t[HN]={textureFormat:ba,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[mp]},t[GN]={textureFormat:ba,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[ko]},t[$N]={textureFormat:ba,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[hf]},t[VN]={textureFormat:ba,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[16],type:[df]},t[YN]={textureFormat:ba,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[16],type:[ma]},t[QN]={textureFormat:Tc,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2,4],type:[ko,ma]},t[ZN]={textureFormat:Tc,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[ma]},t[qN]={textureFormat:Tc,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[At]},t[XN]={textureFormat:tw,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[t9]},t[WN]={textureFormat:tw,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[e9]},Object.keys(t).forEach(function(n){const r=t[n];r.bytesPerElementMap={},r.bytesPerElement.forEach(function(i,a){const o=r.type[a];r.bytesPerElementMap[o]=i})}),bp=t}return bp[e]}function n9(e,t){const n=mf(e);if(!n)throw"unknown internal format";const r=n.bytesPerElementMap[t];if(r===void 0)throw"unknown internal format";return r}function Mo(e){const t=mf(e);if(!t)throw"unknown internal format";return{format:t.textureFormat,type:t.type[0]}}function fw(e){return(e&e-1)===0}function r9(e,t,n,r){if(!Co(e))return fw(t)&&fw(n);const i=mf(r);if(!i)throw"unknown internal format";return i.colorRenderable&&i.textureFilterable}function i9(e){const t=mf(e);if(!t)throw"unknown internal format";return t.textureFilterable}function hw(e,t,n){return _o(t)?lp(t):n||Ue}function bf(e,t,n,r,i){if(i%1!==0)throw"can't guess dimensions";if(!n&&!r){const a=Math.sqrt(i/(t===Sr?6:1));a%1===0?(n=a,r=a):(n=i,r=1)}else if(r){if(!n&&(n=i/r,n%1))throw"can't guess dimensions"}else if(r=i/n,r%1)throw"can't guess dimensions";return{width:n,height:r}}function No(e,t){t.colorspaceConversion!==void 0&&e.pixelStorei(qM,t.colorspaceConversion),t.premultiplyAlpha!==void 0&&e.pixelStorei(WM,t.premultiplyAlpha),t.flipY!==void 0&&e.pixelStorei(XM,t.flipY)}function dw(e){e.pixelStorei(gp,4),Co(e)&&(e.pixelStorei(rw,0),e.pixelStorei(iw,0),e.pixelStorei(aw,0),e.pixelStorei(ow,0),e.pixelStorei(sw,0))}function a9(e,t,n,r){r.minMag&&(n.call(e,t,dp,r.minMag),n.call(e,t,pp,r.minMag)),r.min&&n.call(e,t,dp,r.min),r.mag&&n.call(e,t,pp,r.mag),r.wrap&&(n.call(e,t,uf,r.wrap),n.call(e,t,ff,r.wrap),(t===ci||bM(e,t))&&n.call(e,t,nw,r.wrap)),r.wrapR&&n.call(e,t,nw,r.wrapR),r.wrapS&&n.call(e,t,uf,r.wrapS),r.wrapT&&n.call(e,t,ff,r.wrapT),r.minLod&&n.call(e,t,VM,r.minLod),r.maxLod&&n.call(e,t,YM,r.maxLod),r.baseLevel&&n.call(e,t,QM,r.baseLevel),r.maxLevel&&n.call(e,t,ZM,r.maxLevel)}function pw(e,t,n){const r=n.target||Er;e.bindTexture(r,t),a9(e,r,e.texParameteri,n)}function o9(e){return e=e||si.textureColor,_o(e)?e:new Uint8Array([e[0]*255,e[1]*255,e[2]*255,e[3]*255])}function yp(e,t,n,r,i,a){n=n||si.textureOptions,a=a||Pe;const o=n.target||Er;if(r=r||n.width,i=i||n.height,e.bindTexture(o,t),r9(e,r,i,a))e.generateMipmap(o);else{const s=i9(a)?PM:zM;e.texParameteri(o,dp,s),e.texParameteri(o,pp,s),e.texParameteri(o,uf,cf),e.texParameteri(o,ff,cf)}}function Nc(e){return e.auto===!0||e.auto===void 0&&e.level===void 0}function vp(e,t){return t=t||{},t.cubeFaceOrder||[lf,UM,jM,HM,GM,$M]}function wp(e,t){const r=vp(e,t).map(function(i,a){return{face:i,ndx:a}});return r.sort(function(i,a){return i.face-a.face}),r}function gw(e,t,n,r){r=r||si.textureOptions;const i=r.target||Er,a=r.level||0;let o=n.width,s=n.height;const l=r.internalFormat||r.format||Pe,c=Mo(l),u=r.format||c.format,f=r.type||c.type;if(No(e,r),e.bindTexture(i,t),i===Sr){const h=n.width,d=n.height;let p,g;if(h/6===d)p=d,g=[0,0,1,0,2,0,3,0,4,0,5,0];else if(d/6===h)p=h,g=[0,0,0,1,0,2,0,3,0,4,0,5];else if(h/3===d/2)p=h/3,g=[0,0,1,0,2,0,0,1,1,1,2,1];else if(h/2===d/3)p=h/2,g=[0,0,1,0,0,1,1,1,0,2,1,2];else throw"can't figure out cube map from element: "+(n.src?n.src:n.nodeName);const y=Xv();y?(y.canvas.width=p,y.canvas.height=p,o=p,s=p,wp(e,r).forEach(function(v){const S=g[v.ndx*2+0]*p,k=g[v.ndx*2+1]*p;y.drawImage(n,S,k,p,p,0,0,p,p),e.texImage2D(v.face,a,l,u,f,y.canvas)}),y.canvas.width=1,y.canvas.height=1):typeof createImageBitmap<"u"&&(o=p,s=p,wp(e,r).forEach(function(v){const S=g[v.ndx*2+0]*p,k=g[v.ndx*2+1]*p;e.texImage2D(v.face,a,l,p,p,0,u,f,null),createImageBitmap(n,S,k,p,p,{premultiplyAlpha:"none",colorSpaceConversion:"none"}).then(function(C){No(e,r),e.bindTexture(i,t),e.texImage2D(v.face,a,l,u,f,C),Nc(r)&&yp(e,t,r,o,s,l)})}))}else if(i===ci||i===li){const h=Math.min(n.width,n.height),d=Math.max(n.width,n.height),p=d/h;if(p%1!==0)throw"can not compute 3D dimensions of element";const g=n.width===d?1:0,y=n.height===d?1:0;e.pixelStorei(gp,1),e.pixelStorei(rw,n.width),e.pixelStorei(iw,0),e.pixelStorei(sw,0),e.texImage3D(i,a,l,h,h,h,0,u,f,null);for(let v=0;v<p;++v){const S=v*h*g,k=v*h*y;e.pixelStorei(aw,S),e.pixelStorei(ow,k),e.texSubImage3D(i,a,0,0,v,h,h,1,u,f,n)}dw(e)}else e.texImage2D(i,a,l,u,f,n);Nc(r)&&yp(e,t,r,o,s,l),pw(e,t,r)}function Fc(){}function s9(e){if(typeof document<"u"){const t=document.createElement("a");return t.href=e,t.hostname===location.hostname&&t.port===location.port&&t.protocol===location.protocol}else{const t=new URL(location.href).origin;return new URL(e,location.href).origin===t}}function c9(e,t){return t===void 0&&!s9(e)?"anonymous":t}function l9(e,t,n){n=n||Fc;let r;if(t=t!==void 0?t:si.crossOrigin,t=c9(e,t),typeof Image<"u"){r=new Image,t!==void 0&&(r.crossOrigin=t);const i=function(){r.removeEventListener("error",a),r.removeEventListener("load",o),r=null},a=function(){const l="couldn't load image: "+e;gM(l),n(l,r),i()},o=function(){n(null,r),i()};return r.addEventListener("error",a),r.addEventListener("load",o),r.src=e,r}else if(typeof ImageBitmap<"u"){let i,a;const o=function(){n(i,a)},s={};t&&(s.mode="cors"),fetch(e,s).then(function(l){if(!l.ok)throw l;return l.blob()}).then(function(l){return createImageBitmap(l,{premultiplyAlpha:"none",colorSpaceConversion:"none"})}).then(function(l){a=l,setTimeout(o)}).catch(function(l){i=l,setTimeout(o)}),r=null}return r}function mw(e){return typeof ImageBitmap<"u"&&e instanceof ImageBitmap||typeof ImageData<"u"&&e instanceof ImageData||typeof HTMLElement<"u"&&e instanceof HTMLElement}function xp(e,t,n){return mw(e)?(setTimeout(function(){n(null,e)}),e):l9(e,t,n)}function Ap(e,t,n){n=n||si.textureOptions;const r=n.target||Er;if(e.bindTexture(r,t),n.color===!1)return;const i=o9(n.color);if(r===Sr)for(let a=0;a<6;++a)e.texImage2D(lf+a,0,Pe,1,1,0,Pe,Ue,i);else r===ci||r===li?e.texImage3D(r,0,Pe,1,1,1,0,Pe,Ue,i):e.texImage2D(r,0,Pe,1,1,0,Pe,Ue,i)}function u9(e,t,n,r){return r=r||Fc,n=n||si.textureOptions,Ap(e,t,n),n=Object.assign({},n),xp(n.src,n.crossOrigin,function(a,o){a?r(a,t,o):(gw(e,t,o,n),r(null,t,o))})}function f9(e,t,n,r){r=r||Fc;const i=n.src;if(i.length!==6)throw"there must be 6 urls for a cubemap";const a=n.level||0,o=n.internalFormat||n.format||Pe,s=Mo(o),l=n.format||s.format,c=n.type||Ue,u=n.target||Er;if(u!==Sr)throw"target must be TEXTURE_CUBE_MAP";Ap(e,t,n),n=Object.assign({},n);let f=6;const h=[],d=vp(e,n);let p;function g(y){return function(v,S){--f,v?h.push(v):S.width!==S.height?h.push("cubemap face img is not a square: "+S.src):(No(e,n),e.bindTexture(u,t),f===5?vp().forEach(function(k){e.texImage2D(k,a,o,l,c,S)}):e.texImage2D(y,a,o,l,c,S),Nc(n)&&e.generateMipmap(u)),f===0&&r(h.length?h:void 0,t,p)}}p=i.map(function(y,v){return xp(y,n.crossOrigin,g(d[v]))})}function h9(e,t,n,r){r=r||Fc;const i=n.src,a=n.internalFormat||n.format||Pe,o=Mo(a),s=n.format||o.format,l=n.type||Ue,c=n.target||li;if(c!==ci&&c!==li)throw"target must be TEXTURE_3D or TEXTURE_2D_ARRAY";Ap(e,t,n),n=Object.assign({},n);let u=i.length;const f=[];let h;const d=n.level||0;let p=n.width,g=n.height;const y=i.length;let v=!0;function S(k){return function(C,E){if(--u,C)f.push(C);else{if(No(e,n),e.bindTexture(c,t),v){v=!1,p=n.width||E.width,g=n.height||E.height,e.texImage3D(c,d,a,p,g,y,0,s,l,null);for(let w=0;w<y;++w)e.texSubImage3D(c,d,0,0,w,p,g,1,s,l,E)}else{let w=E,A;(E.width!==p||E.height!==g)&&(A=Xv(),w=A.canvas,A.canvas.width=p,A.canvas.height=g,A.drawImage(E,0,0,p,g)),e.texSubImage3D(c,d,0,0,k,p,g,1,s,l,w),A&&w===A.canvas&&(A.canvas.width=0,A.canvas.height=0)}Nc(n)&&e.generateMipmap(c)}u===0&&r(f.length?f:void 0,t,h)}}h=i.map(function(k,C){return xp(k,n.crossOrigin,S(C))})}function bw(e,t,n,r){r=r||si.textureOptions;const i=r.target||Er;e.bindTexture(i,t);let a=r.width,o=r.height,s=r.depth;const l=r.level||0,c=r.internalFormat||r.format||Pe,u=Mo(c),f=r.format||u.format,h=r.type||hw(e,n,u.type);if(_o(n))n instanceof Uint8ClampedArray&&(n=new Uint8Array(n.buffer));else{const y=pM(h);n=new y(n)}const d=n9(c,h),p=n.byteLength/d;if(p%1)throw"length wrong size for format: "+hp(e,f);let g;if(i===ci||i===li)if(!a&&!o&&!s){const y=Math.cbrt(p);if(y%1!==0)throw"can't guess cube size of array of numElements: "+p;a=y,o=y,s=y}else a&&(!o||!s)?(g=bf(e,i,o,s,p/a),o=g.width,s=g.height):o&&(!a||!s)?(g=bf(e,i,a,s,p/o),a=g.width,s=g.height):(g=bf(e,i,a,o,p/s),a=g.width,o=g.height);else g=bf(e,i,a,o,p),a=g.width,o=g.height;if(dw(e),e.pixelStorei(gp,r.unpackAlignment||1),No(e,r),i===Sr){const y=d/n.BYTES_PER_ELEMENT,v=p/6*y;wp(e,r).forEach(S=>{const k=v*S.ndx,C=n.subarray(k,k+v);e.texImage2D(S.face,l,c,a,o,0,f,h,C)})}else i===ci||i===li?e.texImage3D(i,l,c,a,o,s,0,f,h,n):e.texImage2D(i,l,c,a,o,0,f,h,n);return{width:a,height:o,depth:s,type:h}}function d9(e,t,n){const r=n.target||Er;e.bindTexture(r,t);const i=n.level||0,a=n.internalFormat||n.format||Pe,o=Mo(a),s=n.format||o.format,l=n.type||o.type;if(No(e,n),r===Sr)for(let c=0;c<6;++c)e.texImage2D(lf+c,i,a,n.width,n.height,0,s,l,null);else r===ci||r===li?e.texImage3D(r,i,a,n.width,n.height,n.depth,0,s,l,null):e.texImage2D(r,i,a,n.width,n.height,0,s,l,null)}function Bc(e,t,n){n=n||Fc,t=t||si.textureOptions;const r=e.createTexture(),i=t.target||Er;let a=t.width||1,o=t.height||1;const s=t.internalFormat||Pe;e.bindTexture(i,r),i===Sr&&(e.texParameteri(i,uf,cf),e.texParameteri(i,ff,cf));let l=t.src;if(l)if(typeof l=="function"&&(l=l(e,t)),typeof l=="string")u9(e,r,t,n);else if(_o(l)||Array.isArray(l)&&(typeof l[0]=="number"||Array.isArray(l[0])||_o(l[0]))){const c=bw(e,r,l,t);a=c.width,o=c.height}else Array.isArray(l)&&(typeof l[0]=="string"||mw(l[0]))?i===Sr?f9(e,r,t,n):h9(e,r,t,n):(gw(e,r,l,t),a=l.width,o=l.height);else d9(e,r,t);return Nc(t)&&yp(e,r,t,a,o,s),pw(e,r,t),r}function p9(e,t,n,r,i,a){r=r||n.width,i=i||n.height,a=a||n.depth;const o=n.target||Er;e.bindTexture(o,t);const s=n.level||0,l=n.internalFormat||n.format||Pe,c=Mo(l),u=n.format||c.format;let f;const h=n.src;if(h&&(_o(h)||Array.isArray(h)&&typeof h[0]=="number")?f=n.type||hw(e,h,c.type):f=n.type||c.type,o===Sr)for(let d=0;d<6;++d)e.texImage2D(lf+d,s,l,r,i,0,u,f,null);else o===ci||o===li?e.texImage3D(o,s,l,r,i,a,0,u,f,null):e.texImage2D(o,s,l,r,i,0,u,f,null)}const g9=Gv,yf=33984,m9=35048,vf=34962,b9=34963,Ep=35345,yw=35718,y9=35721,v9=35971,w9=35382,x9=35396,A9=35398,E9=35392,S9=35395,wf=5126,vw=35664,ww=35665,xw=35666,Sp=5124,Aw=35667,Ew=35668,Sw=35669,Cw=35670,_w=35671,kw=35672,Dw=35673,Iw=35674,Tw=35675,Mw=35676,C9=35678,_9=35680,k9=35679,D9=35682,I9=35685,T9=35686,M9=35687,N9=35688,F9=35689,B9=35690,L9=36289,O9=36292,R9=36293,Cp=5125,Nw=36294,Fw=36295,Bw=36296,z9=36298,P9=36299,U9=36300,j9=36303,H9=36306,G9=36307,$9=36308,V9=36311,xf=3553,Af=34067,_p=32879,Ef=35866,te={};function Lw(e,t){return te[t].bindPoint}function Y9(e,t){return function(n){e.uniform1f(t,n)}}function Q9(e,t){return function(n){e.uniform1fv(t,n)}}function Z9(e,t){return function(n){e.uniform2fv(t,n)}}function q9(e,t){return function(n){e.uniform3fv(t,n)}}function W9(e,t){return function(n){e.uniform4fv(t,n)}}function Ow(e,t){return function(n){e.uniform1i(t,n)}}function Rw(e,t){return function(n){e.uniform1iv(t,n)}}function zw(e,t){return function(n){e.uniform2iv(t,n)}}function Pw(e,t){return function(n){e.uniform3iv(t,n)}}function Uw(e,t){return function(n){e.uniform4iv(t,n)}}function X9(e,t){return function(n){e.uniform1ui(t,n)}}function K9(e,t){return function(n){e.uniform1uiv(t,n)}}function J9(e,t){return function(n){e.uniform2uiv(t,n)}}function eF(e,t){return function(n){e.uniform3uiv(t,n)}}function tF(e,t){return function(n){e.uniform4uiv(t,n)}}function nF(e,t){return function(n){e.uniformMatrix2fv(t,!1,n)}}function rF(e,t){return function(n){e.uniformMatrix3fv(t,!1,n)}}function iF(e,t){return function(n){e.uniformMatrix4fv(t,!1,n)}}function aF(e,t){return function(n){e.uniformMatrix2x3fv(t,!1,n)}}function oF(e,t){return function(n){e.uniformMatrix3x2fv(t,!1,n)}}function sF(e,t){return function(n){e.uniformMatrix2x4fv(t,!1,n)}}function cF(e,t){return function(n){e.uniformMatrix4x2fv(t,!1,n)}}function lF(e,t){return function(n){e.uniformMatrix3x4fv(t,!1,n)}}function uF(e,t){return function(n){e.uniformMatrix4x3fv(t,!1,n)}}function Ct(e,t,n,r){const i=Lw(e,t);return Co(e)?function(a){let o,s;sf(e,a)?(o=a,s=null):(o=a.texture,s=a.sampler),e.uniform1i(r,n),e.activeTexture(yf+n),e.bindTexture(i,o),e.bindSampler(n,s)}:function(a){e.uniform1i(r,n),e.activeTexture(yf+n),e.bindTexture(i,a)}}function _t(e,t,n,r,i){const a=Lw(e,t),o=new Int32Array(i);for(let s=0;s<i;++s)o[s]=n+s;return Co(e)?function(s){e.uniform1iv(r,o),s.forEach(function(l,c){e.activeTexture(yf+o[c]);let u,f;sf(e,l)?(u=l,f=null):(u=l.texture,f=l.sampler),e.bindSampler(n,f),e.bindTexture(a,u)})}:function(s){e.uniform1iv(r,o),s.forEach(function(l,c){e.activeTexture(yf+o[c]),e.bindTexture(a,l)})}}te[wf]={Type:Float32Array,size:4,setter:Y9,arraySetter:Q9},te[vw]={Type:Float32Array,size:8,setter:Z9,cols:2},te[ww]={Type:Float32Array,size:12,setter:q9,cols:3},te[xw]={Type:Float32Array,size:16,setter:W9,cols:4},te[Sp]={Type:Int32Array,size:4,setter:Ow,arraySetter:Rw},te[Aw]={Type:Int32Array,size:8,setter:zw,cols:2},te[Ew]={Type:Int32Array,size:12,setter:Pw,cols:3},te[Sw]={Type:Int32Array,size:16,setter:Uw,cols:4},te[Cp]={Type:Uint32Array,size:4,setter:X9,arraySetter:K9},te[Nw]={Type:Uint32Array,size:8,setter:J9,cols:2},te[Fw]={Type:Uint32Array,size:12,setter:eF,cols:3},te[Bw]={Type:Uint32Array,size:16,setter:tF,cols:4},te[Cw]={Type:Uint32Array,size:4,setter:Ow,arraySetter:Rw},te[_w]={Type:Uint32Array,size:8,setter:zw,cols:2},te[kw]={Type:Uint32Array,size:12,setter:Pw,cols:3},te[Dw]={Type:Uint32Array,size:16,setter:Uw,cols:4},te[Iw]={Type:Float32Array,size:32,setter:nF,rows:2,cols:2},te[Tw]={Type:Float32Array,size:48,setter:rF,rows:3,cols:3},te[Mw]={Type:Float32Array,size:64,setter:iF,rows:4,cols:4},te[I9]={Type:Float32Array,size:32,setter:aF,rows:2,cols:3},te[T9]={Type:Float32Array,size:32,setter:sF,rows:2,cols:4},te[M9]={Type:Float32Array,size:48,setter:oF,rows:3,cols:2},te[N9]={Type:Float32Array,size:48,setter:lF,rows:3,cols:4},te[F9]={Type:Float32Array,size:64,setter:cF,rows:4,cols:2},te[B9]={Type:Float32Array,size:64,setter:uF,rows:4,cols:3},te[C9]={Type:null,size:0,setter:Ct,arraySetter:_t,bindPoint:xf},te[_9]={Type:null,size:0,setter:Ct,arraySetter:_t,bindPoint:Af},te[k9]={Type:null,size:0,setter:Ct,arraySetter:_t,bindPoint:_p},te[D9]={Type:null,size:0,setter:Ct,arraySetter:_t,bindPoint:xf},te[L9]={Type:null,size:0,setter:Ct,arraySetter:_t,bindPoint:Ef},te[O9]={Type:null,size:0,setter:Ct,arraySetter:_t,bindPoint:Ef},te[R9]={Type:null,size:0,setter:Ct,arraySetter:_t,bindPoint:Af},te[z9]={Type:null,size:0,setter:Ct,arraySetter:_t,bindPoint:xf},te[P9]={Type:null,size:0,setter:Ct,arraySetter:_t,bindPoint:_p},te[U9]={Type:null,size:0,setter:Ct,arraySetter:_t,bindPoint:Af},te[j9]={Type:null,size:0,setter:Ct,arraySetter:_t,bindPoint:Ef},te[H9]={Type:null,size:0,setter:Ct,arraySetter:_t,bindPoint:xf},te[G9]={Type:null,size:0,setter:Ct,arraySetter:_t,bindPoint:_p},te[$9]={Type:null,size:0,setter:Ct,arraySetter:_t,bindPoint:Af},te[V9]={Type:null,size:0,setter:Ct,arraySetter:_t,bindPoint:Ef};function Sf(e,t){return function(n){if(n.value)switch(e.disableVertexAttribArray(t),n.value.length){case 4:e.vertexAttrib4fv(t,n.value);break;case 3:e.vertexAttrib3fv(t,n.value);break;case 2:e.vertexAttrib2fv(t,n.value);break;case 1:e.vertexAttrib1fv(t,n.value);break;default:throw new Error("the length of a float constant value must be between 1 and 4!")}else e.bindBuffer(vf,n.buffer),e.enableVertexAttribArray(t),e.vertexAttribPointer(t,n.numComponents||n.size,n.type||wf,n.normalize||!1,n.stride||0,n.offset||0),n.divisor!==void 0&&e.vertexAttribDivisor(t,n.divisor)}}function fi(e,t){return function(n){if(n.value)if(e.disableVertexAttribArray(t),n.value.length===4)e.vertexAttrib4iv(t,n.value);else throw new Error("The length of an integer constant value must be 4!");else e.bindBuffer(vf,n.buffer),e.enableVertexAttribArray(t),e.vertexAttribIPointer(t,n.numComponents||n.size,n.type||Sp,n.stride||0,n.offset||0),n.divisor!==void 0&&e.vertexAttribDivisor(t,n.divisor)}}function Cf(e,t){return function(n){if(n.value)if(e.disableVertexAttribArray(t),n.value.length===4)e.vertexAttrib4uiv(t,n.value);else throw new Error("The length of an unsigned integer constant value must be 4!");else e.bindBuffer(vf,n.buffer),e.enableVertexAttribArray(t),e.vertexAttribIPointer(t,n.numComponents||n.size,n.type||Cp,n.stride||0,n.offset||0),n.divisor!==void 0&&e.vertexAttribDivisor(t,n.divisor)}}function kp(e,t,n){const r=n.size,i=n.count;return function(a){e.bindBuffer(vf,a.buffer);const o=a.size||a.numComponents||r,s=o/i,l=a.type||wf,u=te[l].size*o,f=a.normalize||!1,h=a.offset||0,d=u/i;for(let p=0;p<i;++p)e.enableVertexAttribArray(t+p),e.vertexAttribPointer(t+p,s,l,f,u,h+d*p),a.divisor!==void 0&&e.vertexAttribDivisor(t+p,a.divisor)}}const nt={};nt[wf]={size:4,setter:Sf},nt[vw]={size:8,setter:Sf},nt[ww]={size:12,setter:Sf},nt[xw]={size:16,setter:Sf},nt[Sp]={size:4,setter:fi},nt[Aw]={size:8,setter:fi},nt[Ew]={size:12,setter:fi},nt[Sw]={size:16,setter:fi},nt[Cp]={size:4,setter:Cf},nt[Nw]={size:8,setter:Cf},nt[Fw]={size:12,setter:Cf},nt[Bw]={size:16,setter:Cf},nt[Cw]={size:4,setter:fi},nt[_w]={size:8,setter:fi},nt[kw]={size:12,setter:fi},nt[Dw]={size:16,setter:fi},nt[Iw]={size:4,setter:kp,count:2},nt[Tw]={size:9,setter:kp,count:3},nt[Mw]={size:16,setter:kp,count:4};function jw(e){const t=e.name;return t.startsWith("gl_")||t.startsWith("webgl_")}const fF=/(\.|\[|]|\w+)/g,hF=e=>e>="0"&&e<="9";function Hw(e,t,n,r){const i=e.split(fF).filter(s=>s!=="");let a=0,o="";for(;;){const s=i[a++];o+=s;const l=hF(s[0]),c=l?parseInt(s):s;if(l&&(o+=i[a++]),a===i.length){n[c]=t;break}else{const f=i[a++],h=f==="[",d=n[c]||(h?[]:{});n[c]=d,n=d,r[o]=r[o]||function(p){return function(g){Qw(p,g)}}(d),o+=f}}}function dF(e,t){let n=0;function r(s,l,c){const u=l.name.endsWith("[0]"),f=l.type,h=te[f];if(!h)throw new Error(`unknown type: 0x${f.toString(16)}`);let d;if(h.bindPoint){const p=n;n+=l.size,u?d=h.arraySetter(e,f,p,c,l.size):d=h.setter(e,f,p,c,l.size)}else h.arraySetter&&u?d=h.arraySetter(e,c):d=h.setter(e,c);return d.location=c,d}const i={},a={},o=e.getProgramParameter(t,yw);for(let s=0;s<o;++s){const l=e.getActiveUniform(t,s);if(jw(l))continue;let c=l.name;c.endsWith("[0]")&&(c=c.substr(0,c.length-3));const u=e.getUniformLocation(t,l.name);if(u){const f=r(t,l,u);i[c]=f,Hw(c,f,a,i)}}return i}function pF(e,t){const n={},r=e.getProgramParameter(t,v9);for(let i=0;i<r;++i){const a=e.getTransformFeedbackVarying(t,i);n[a.name]={index:i,type:a.type,size:a.size}}return n}function gF(e,t){const n=e.getProgramParameter(t,yw),r=[],i=[];for(let s=0;s<n;++s){i.push(s),r.push({});const l=e.getActiveUniform(t,s);r[s].name=l.name}[["UNIFORM_TYPE","type"],["UNIFORM_SIZE","size"],["UNIFORM_BLOCK_INDEX","blockNdx"],["UNIFORM_OFFSET","offset"]].forEach(function(s){const l=s[0],c=s[1];e.getActiveUniforms(t,i,e[l]).forEach(function(u,f){r[f][c]=u})});const a={},o=e.getProgramParameter(t,w9);for(let s=0;s<o;++s){const l=e.getActiveUniformBlockName(t,s),c={index:e.getUniformBlockIndex(t,l),usedByVertexShader:e.getActiveUniformBlockParameter(t,s,x9),usedByFragmentShader:e.getActiveUniformBlockParameter(t,s,A9),size:e.getActiveUniformBlockParameter(t,s,E9),uniformIndices:e.getActiveUniformBlockParameter(t,s,S9)};c.used=c.usedByVertexShader||c.usedByFragmentShader,a[l]=c}return{blockSpecs:a,uniformData:r}}const Gw=/\[\d+\]\.$/,mF=(e,t)=>((e+(t-1))/t|0)*t;function bF(e,t,n,r){if(t||n){r=r||1;const a=e.length/4;return function(o){let s=0,l=0;for(let c=0;c<a;++c){for(let u=0;u<r;++u)e[s++]=o[l++];s+=4-r}}}else return function(i){i.length?e.set(i):e[0]=i}}function yF(e,t,n,r){const i=n.blockSpecs,a=n.uniformData,o=i[r];if(!o)return g9("no uniform block object named:",r),{name:r,uniforms:{}};const s=new ArrayBuffer(o.size),l=e.createBuffer(),c=o.index;e.bindBuffer(Ep,l),e.uniformBlockBinding(t,o.index,c);let u=r+".";Gw.test(u)&&(u=u.replace(Gw,"."));const f={},h={},d={};return o.uniformIndices.forEach(function(p){const g=a[p];let y=g.name;y.startsWith(u)&&(y=y.substr(u.length));const v=y.endsWith("[0]");v&&(y=y.substr(0,y.length-3));const S=te[g.type],k=S.Type,C=v?mF(S.size,16)*g.size:S.size*g.size,E=new k(s,g.offset,C/k.BYTES_PER_ELEMENT);f[y]=E;const w=bF(E,v,S.rows,S.cols);h[y]=w,Hw(y,w,d,h)}),{name:r,array:s,asFloat:new Float32Array(s),buffer:l,uniforms:f,setters:h}}function $w(e,t,n){return yF(e,t.program,t.uniformBlockSpec,n)}function vF(e,t,n){const i=(t.uniformBlockSpec||t).blockSpecs[n.name];if(i){const a=i.index;return e.bindBufferRange(Ep,a,n.buffer,n.offset||0,n.array.byteLength),!0}return!1}function Vw(e,t,n){vF(e,t,n)&&e.bufferData(Ep,n.array,m9)}function Yw(e,t){const n=e.setters;for(const r in t){const i=n[r];if(i){const a=t[r];i(a)}}}function Qw(e,t){for(const n in t){const r=e[n];typeof r=="function"?r(t[n]):Qw(e[n],t[n])}}function $t(e,...t){const n=e.uniformSetters||e,r=t.length;for(let i=0;i<r;++i){const a=t[i];if(Array.isArray(a)){const o=a.length;for(let s=0;s<o;++s)$t(n,a[s])}else for(const o in a){const s=n[o];s&&s(a[o])}}}function wF(e,t){const n={},r=e.getProgramParameter(t,y9);for(let i=0;i<r;++i){const a=e.getActiveAttrib(t,i);if(jw(a))continue;const o=e.getAttribLocation(t,a.name),s=nt[a.type],l=s.setter(e,o,s);l.location=o,n[a.name]=l}return n}function xF(e,t){for(const n in t){const r=e[n];r&&r(t[n])}}function Fo(e,t,n){n.vertexArrayObject?e.bindVertexArray(n.vertexArrayObject):(xF(t.attribSetters||t,n.attribs),n.indices&&e.bindBuffer(b9,n.indices))}function AF(e,t){const n=dF(e,t),r=wF(e,t),i={program:t,uniformSetters:n,attribSetters:r};return Co(e)&&(i.uniformBlockSpec=gF(e,t),i.transformFeedbackInfo=pF(e,t)),i}const EF=4,Zw=5123;function Lc(e,t,n,r,i,a){n=n===void 0?EF:n;const o=t.indices,s=t.elementType,l=r===void 0?t.numElements:r;i=i===void 0?0:i,s||o?a!==void 0?e.drawElementsInstanced(n,l,s===void 0?Zw:t.elementType,i,a):e.drawElements(n,l,s===void 0?Zw:t.elementType,i):a!==void 0?e.drawArraysInstanced(n,i,l,a):e.drawArrays(n,i,l)}const SF=36160,ya=36161,CF=3553,_F=5121,kF=6402,DF=6408,IF=33190,TF=36012,MF=35056,NF=36013,FF=32854,BF=32855,LF=36194,qw=33189,Ww=6401,Xw=36168,Dp=34041,OF=36064,_f=36096,Kw=36128,Ip=33306,Tp=33071,Mp=9729,Jw=[{format:DF,type:_F,min:Mp,wrap:Tp},{format:Dp}],Mn={};Mn[Dp]=Ip,Mn[Ww]=Kw,Mn[Xw]=Kw,Mn[kF]=_f,Mn[qw]=_f,Mn[IF]=_f,Mn[TF]=_f,Mn[MF]=Ip,Mn[NF]=Ip;function RF(e,t){return Mn[e]||Mn[t]}const hi={};hi[FF]=!0,hi[BF]=!0,hi[LF]=!0,hi[Dp]=!0,hi[qw]=!0,hi[Ww]=!0,hi[Xw]=!0;function zF(e){return hi[e]}function PF(e,t,n,r){const i=SF,a=e.createFramebuffer();e.bindFramebuffer(i,a),n=n||e.drawingBufferWidth,r=r||e.drawingBufferHeight,t=t||Jw;let o=0;const s={framebuffer:a,attachments:[],width:n,height:r};return t.forEach(function(l){let c=l.attachment;const u=l.samples,f=l.format;let h=l.attachmentPoint||RF(f,l.internalFormat);if(h||(h=OF+o++),!c)if(u!==void 0||zF(f))c=e.createRenderbuffer(),e.bindRenderbuffer(ya,c),u>1?e.renderbufferStorageMultisample(ya,u,f,n,r):e.renderbufferStorage(ya,f,n,r);else{const d=Object.assign({},l);d.width=n,d.height=r,d.auto===void 0&&(d.auto=!1,d.min=d.min||d.minMag||Mp,d.mag=d.mag||d.minMag||Mp,d.wrapS=d.wrapS||d.wrap||Tp,d.wrapT=d.wrapT||d.wrap||Tp),c=Bc(e,d)}if($v(e,c))e.framebufferRenderbuffer(i,h,ya,c);else if(sf(e,c))l.layer!==void 0?e.framebufferTextureLayer(i,h,c,l.level||0,l.layer):e.framebufferTexture2D(i,h,l.target||CF,c,l.level||0);else throw new Error("unknown attachment type");s.attachments.push(c)}),s}function UF(e,t,n,r,i){r=r||e.drawingBufferWidth,i=i||e.drawingBufferHeight,t.width=r,t.height=i,n=n||Jw,n.forEach(function(a,o){const s=t.attachments[o],l=a.format,c=a.samples;if(c!==void 0||$v(e,s))e.bindRenderbuffer(ya,s),c>1?e.renderbufferStorageMultisample(ya,c,l,r,i):e.renderbufferStorage(ya,l,r,i);else if(sf(e,s))p9(e,s,a,r,i);else throw new Error("unknown attachment type")})}function jF(e,t,n){const r=e.createVertexArray();return e.bindVertexArray(r),t.length||(t=[t]),t.forEach(function(i){Fo(e,i,n)}),e.bindVertexArray(null),{numElements:n.numElements,elementType:n.elementType,vertexArrayObject:r}}const HF=/^(.*?)_/;function GF(e,t){hp(e,0);const n=e.getExtension(t);if(n){const r={},i=HF.exec(t)[1],a="_"+i;for(const o in n){const s=n[o],l=typeof s=="function",c=l?i:a;let u=o;o.endsWith(c)&&(u=o.substring(0,o.length-c.length)),e[u]!==void 0?!l&&e[u]!==s&&Gv(u,e[u],s,o):l?e[u]=function(f){return function(){return f.apply(n,arguments)}}(s):(e[u]=s,r[u]=s)}r.constructor={name:n.constructor.name},hp(r,0)}return n}const ex=["ANGLE_instanced_arrays","EXT_blend_minmax","EXT_color_buffer_float","EXT_color_buffer_half_float","EXT_disjoint_timer_query","EXT_disjoint_timer_query_webgl2","EXT_frag_depth","EXT_sRGB","EXT_shader_texture_lod","EXT_texture_filter_anisotropic","OES_element_index_uint","OES_standard_derivatives","OES_texture_float","OES_texture_float_linear","OES_texture_half_float","OES_texture_half_float_linear","OES_vertex_array_object","WEBGL_color_buffer_float","WEBGL_compressed_texture_atc","WEBGL_compressed_texture_etc1","WEBGL_compressed_texture_pvrtc","WEBGL_compressed_texture_s3tc","WEBGL_compressed_texture_s3tc_srgb","WEBGL_depth_texture","WEBGL_draw_buffers"];function tx(e){for(let t=0;t<ex.length;++t)GF(e,ex[t])}function $F(e,t){const n=["webgl2","webgl","experimental-webgl"];let r=null;for(let i=0;i<n.length;++i)if(r=e.getContext(n[i],t),r){tx(r);break}return r}function VF(e,t){return $F(e,t)}const YF=`/**
19
19
  * The vertex position wrt the rectangle specified by (x, x2, y, y2).
20
20
  * [0, 0] = [x, y], [1, 1] = [x2, y2].
21
21
  * The x or y component may contain fractional values if the rectangle
@@ -129,7 +129,7 @@ void main(void) {
129
129
 
130
130
  setupPicking();
131
131
  }
132
- `,LD=`#if defined(ROUNDED_CORNERS) || defined(STROKED)
132
+ `,QF=`#if defined(ROUNDED_CORNERS) || defined(STROKED)
133
133
  in vec2 vPosInPixels;
134
134
  #endif
135
135
 
@@ -180,28 +180,28 @@ void main(void) {
180
180
  fragColor = vPickingColor;
181
181
  }
182
182
  }
183
- `,Ml="attr_",fg="uDomain_",BD="range_",dg="scale_",hg="getScaled_",Tl="uRangeTexture_",pg=3402823466e29;function OD(t){const e=t.match(/^(?:(\w+)-)?(\w+)$/);if(!e)throw new Error("Not a scale type: "+t);return{family:e[1]||"continuous",transform:e[2]}}function FD(t,e){let n;if(_a(t))n=$n(qp(t)(e));else if(ne(e))if(Zn(t))n=zD(e);else throw new Error(`String values are not supported on the "${t}" channel: ${e}`);else if(ra(e))n=$n(e?1:0);else if(e===null)if(Zn(t))n=$n([0,0,0]);else throw new Error(`null value is not supported on the "${t}" chanel.`);else n=$n(e);return`
184
- #define ${t}_DEFINED
185
- ${n.type} ${hg}${t}() {
183
+ `,Np="attr_",nx="uDomain_",ZF="range_",rx="scale_",ix="getScaled_",Fp="uRangeTexture_",ax=3402823466e29;function qF(e){const t=e.match(/^(?:(\w+)-)?(\w+)$/);if(!t)throw new Error("Not a scale type: "+e);return{family:t[1]||"continuous",transform:t[2]}}function WF(e,t){let n;if(af(e))n=va(jv(e)(t));else if(ze(t))if(ga(e))n=KF(t);else throw new Error(`String values are not supported on the "${e}" channel: ${t}`);else if(gu(t))n=va(t?1:0);else if(t===null)if(ga(e))n=va([0,0,0]);else throw new Error(`null value is not supported on the "${e}" chanel.`);else n=va(t);return`
184
+ #define ${e}_DEFINED
185
+ ${n.type} ${ix}${e}() {
186
186
  // Constant value
187
187
  return ${n};
188
- }`}function PD(t,e,n){if(ot(n))throw new Error(`Cannot create scale for "value": ${JSON.stringify(n)}`);const r=Or(t),i=Ml+t,o=fg+r,a=BD+r,s=ps(e.type),c=s?"vec2":"float",u=e.domain?e.domain().length:void 0;let f;const l=[];l.push(""),l.push("/".repeat(70)),l.push(`// Channel: ${t}`),l.push(""),l.push(`#define ${t}_DEFINED`);const{transform:d}=OD(e.type),p=(A,...D)=>RD.apply(null,[A,"value",...D]);let h;switch(d){case"linear":h=p("scaleLinear","domain",a);break;case"log":h=p("scaleLog","domain",a,e.base());break;case"symlog":h=p("scaleSymlog","domain",a,e.constant());break;case"pow":case"sqrt":h=p("scalePow","domain",a,e.exponent());break;case"index":case"locus":h=p("scaleBandHp","domain",a,e.paddingInner(),e.paddingOuter(),e.align(),n.band??.5);break;case"point":case"band":h=p("scaleBand","domain",a,e.paddingInner(),e.paddingOuter(),e.align(),n.band??.5);break;case"ordinal":case"null":case"identity":h=p("scaleIdentity");break;case"threshold":break;default:throw new Error(`Unsupported scale type: ${e.type}! ${t}: ${JSON.stringify(n)}`)}const m=Pa(e.type)||Le(e.type)&&Zn(t)?[0,1]:e.range?e.range():void 0;if(m&&t==r&&m.length&&m.every(le)){const A=mg(m);l.push(`const ${A.type} ${a} = ${A};`)}const g=Zn(t)?"vec3":"float";let y;if(Zn(t)){const A=Tl+r;if(t==r&&l.push(`uniform sampler2D ${A};`),Le(e.type))y=`getInterpolatedColor(${A}, transformed)`;else if(nn(e.type)||Hn(e.type))y=`getDiscreteColor(${A}, int(transformed))`;else throw new Error("Problem with color scale!")}else if(e.type==="ordinal"||Hn(e.type)){const A=Tl+r;t==r&&l.push(`uniform sampler2D ${A};`),y=`getDiscreteColor(${A}, int(transformed)).r`}$i(n)?l.push(`uniform highp ${c} ${i};`):l.push(`in highp ${c} ${i};`);const b=[],w=Le(e.type)&&u>2,C=Hn(e.type)||w;if(b.push("int slot = 0;"),C){const A=o;b.push(w?`while (slot < ${A}.length() - 2 && value >= ${A}[slot + 1]) { slot++; }`:`while (slot < ${A}.length() && value >= ${A}[slot]) { slot++; }`)}const x=Le(e.type)||Hn(e.type)||["band","point"].includes(e.type);if(h){const A=o;x&&(s?b.push(`vec3 domain = ${A};`):b.push(`vec2 domain = vec2(${A}[slot], ${A}[slot + 1]);`)),b.push(`float transformed = ${h};`),w&&b.push(`transformed = (float(slot) + transformed) / (float(${A}.length() - 1));`)}else b.push("float transformed = float(slot);");"clamp"in e&&e.clamp()&&b.push(`transformed = clampToRange(transformed, ${mg(m)});`),b.push(`return ${y??"transformed"};`),l.push(`
189
- ${g} ${dg}${t}(${c} value) {
190
- ${b.map(A=>` ${A}
188
+ }`}function XF(e,t,n){if(In(n))throw new Error(`Cannot create scale for "value": ${JSON.stringify(n)}`);const r=So(e),i=Np+e,a=nx+r,o=ZF+r,s=kf(t.type),l=s?"vec2":"float",c=t.domain?t.domain().length:void 0;let u;const f=[];f.push(""),f.push("/".repeat(70)),f.push(`// Channel: ${e}`),f.push(""),f.push(`#define ${e}_DEFINED`);const{transform:h}=qF(t.type),d=(A,...T)=>JF.apply(null,[A,"value",...T]);let p;switch(h){case"linear":p=d("scaleLinear","domain",o);break;case"log":p=d("scaleLog","domain",o,t.base());break;case"symlog":p=d("scaleSymlog","domain",o,t.constant());break;case"pow":case"sqrt":p=d("scalePow","domain",o,t.exponent());break;case"index":case"locus":p=d("scaleBandHp","domain",o,t.paddingInner(),t.paddingOuter(),t.align(),n.band??.5);break;case"point":case"band":p=d("scaleBand","domain",o,t.paddingInner(),t.paddingOuter(),t.align(),n.band??.5);break;case"ordinal":case"null":case"identity":p=d("scaleIdentity");break;case"threshold":break;default:throw new Error(`Unsupported scale type: ${t.type}! ${e}: ${JSON.stringify(n)}`)}const g=Zu(t.type)||Ft(t.type)&&ga(e)?[0,1]:t.range?t.range():void 0;if(g&&e==r&&g.length&&g.every(Ke)){const A=ox(g);f.push(`const ${A.type} ${o} = ${A};`)}const y=ga(e)?"vec3":"float";let v;if(ga(e)){const A=Fp+r;if(e==r&&f.push(`uniform sampler2D ${A};`),Ft(t.type))v=`getInterpolatedColor(${A}, transformed)`;else if(ai(t.type)||sa(t.type))v=`getDiscreteColor(${A}, int(transformed))`;else throw new Error("Problem with color scale!")}else if(t.type==="ordinal"||sa(t.type)){const A=Fp+r;e==r&&f.push(`uniform sampler2D ${A};`),v=`getDiscreteColor(${A}, int(transformed)).r`}Cc(n)?f.push(`uniform highp ${l} ${i};`):f.push(`in highp ${l} ${i};`);const S=[],k=Ft(t.type)&&c>2,C=sa(t.type)||k;if(S.push("int slot = 0;"),C){const A=a;S.push(k?`while (slot < ${A}.length() - 2 && value >= ${A}[slot + 1]) { slot++; }`:`while (slot < ${A}.length() && value >= ${A}[slot]) { slot++; }`)}const E=Ft(t.type)||sa(t.type)||["band","point"].includes(t.type);if(p){const A=a;E&&(s?S.push(`vec3 domain = ${A};`):S.push(`vec2 domain = vec2(${A}[slot], ${A}[slot + 1]);`)),S.push(`float transformed = ${p};`),k&&S.push(`transformed = (float(slot) + transformed) / (float(${A}.length() - 1));`)}else S.push("float transformed = float(slot);");"clamp"in t&&t.clamp()&&S.push(`transformed = clampToRange(transformed, ${ox(g)});`),S.push(`return ${v??"transformed"};`),f.push(`
189
+ ${y} ${rx}${e}(${l} value) {
190
+ ${S.map(A=>` ${A}
191
191
  `).join("")}
192
- }`),l.push(`
193
- ${g} ${hg}${t}() {
194
- return ${dg}${t}(${i});
195
- }`);const v=l.join(`
196
- `);if(x&&t==r){const A=Le(e.type)||Hn(e.type)?u:2;f=s?`highp vec3 ${o};`:`mediump float ${o}[${A}];`}return{glsl:v,domainUniform:f}}function Il(t){if(!le(t))throw new Error(`Not a number: ${t}`);if(t==1/0)return""+pg;if(t==-1/0)return""+-pg;{let e=`${t}`;return/^(-)?\d+$/.test(e)&&(e+=".0"),e}}function $n(t){typeof t=="number"&&(t=[t]);const e=t.length;if(e<1||e>4)throw new Error("Invalid number of components: "+e);let n,r;return e>1?(n=`vec${e}`,r=`${n}(${t.map(Il).join(", ")})`):(n="float",r=Il(t[0])),Object.assign(r,{type:n,numComponents:e})}function zD(t){const e=Pn(t).rgb();return $n([e.r,e.g,e.b].map(n=>n/255))}function mg(t){return $n([t[0],Re(t)])}function RD(t,...e){const n=[];for(const r of e)le(r)?n.push(Il(r)):_e(r)?n.push($n(r)):n.push(r);return`${t}(${n.join(", ")})`}function ps(t){return t=="index"||t=="locus"}const gg=2**11,jD=gg-1;function yg(t,e=[]){const n=t&jD,r=t-n;return e[0]=r,e[1]=n,e}function UD(t){const e=t%gg;return[t-e,e]}function HD(t){return[...UD(t[0]),t[1]-t[0]]}class GD{constructor(e){this.size=e,this.arrays={},this.pushers=[],this.dataUpdaters=[],this.vertexCount=0}addConverter(e,n){const r=this.createUpdater(Ml+e,n.numComponents||1,n.arrayReference),i=n.f;this.dataUpdaters.push(n.arrayReference?o=>r(i(o)):o=>r(i(o)))}createUpdater(e,n,r){if(!le(this.size))throw new Error("The number of vertices must be defined!");let i,o,a=0;const s=new Float32Array(this.size*n);if(this.arrays[e]={data:s,numComponents:n},n==1){let c=0;const u=f=>{c=+f};i=()=>{s[a++]=c},o=u}else{let c=r??[0];const u=r?f=>{}:f=>{c=f};switch(n){case 1:break;case 2:i=()=>{s[a++]=c[0],s[a++]=c[1]},o=u;break;case 3:i=()=>{s[a++]=c[0],s[a++]=c[1],s[a++]=c[2]},o=u;break;case 4:i=()=>{s[a++]=c[0],s[a++]=c[1],s[a++]=c[2],s[a++]=c[3]},o=u;break;default:throw new Error("Invalid numComponents: "+n)}}return this.pushers.push(i),o}_unrollPushAll(){let e="",n="";for(let i=0;i<this.pushers.length;i++)e+=`const p${i} = that.pushers[${i}];
192
+ }`),f.push(`
193
+ ${y} ${ix}${e}() {
194
+ return ${rx}${e}(${i});
195
+ }`);const w=f.join(`
196
+ `);if(E&&e==r){const A=Ft(t.type)||sa(t.type)?c:2;u=s?`highp vec3 ${a};`:`mediump float ${a}[${A}];`}return{glsl:w,domainUniform:u}}function Bp(e){if(!Ke(e))throw new Error(`Not a number: ${e}`);if(e==1/0)return""+ax;if(e==-1/0)return""+-ax;{let t=`${e}`;return/^(-)?\d+$/.test(t)&&(t+=".0"),t}}function va(e){typeof e=="number"&&(e=[e]);const t=e.length;if(t<1||t>4)throw new Error("Invalid number of components: "+t);let n,r;return t>1?(n=`vec${t}`,r=`${n}(${e.map(Bp).join(", ")})`):(n="float",r=Bp(e[0])),Object.assign(r,{type:n,numComponents:t})}function KF(e){const t=na(e).rgb();return va([t.r,t.g,t.b].map(n=>n/255))}function ox(e){return va([e[0],Gt(e)])}function JF(e,...t){const n=[];for(const r of t)Ke(r)?n.push(Bp(r)):en(r)?n.push(va(r)):n.push(r);return`${e}(${n.join(", ")})`}function kf(e){return e=="index"||e=="locus"}const sx=2**11,eB=sx-1;function cx(e,t=[]){const n=e&eB,r=e-n;return t[0]=r,t[1]=n,t}function tB(e){const t=e%sx;return[e-t,t]}function nB(e){return[...tB(e[0]),e[1]-e[0]]}class rB{constructor(t){this.size=t,this.arrays={},this.pushers=[],this.dataUpdaters=[],this.vertexCount=0}addConverter(t,n){const r=this.createUpdater(Np+t,n.numComponents||1,n.arrayReference),i=n.f;this.dataUpdaters.push(n.arrayReference?a=>r(i(a)):a=>r(i(a)))}createUpdater(t,n,r){if(!Ke(this.size))throw new Error("The number of vertices must be defined!");let i,a,o=0;const s=new Float32Array(this.size*n);if(this.arrays[t]={data:s,numComponents:n},n==1){let l=0;const c=u=>{l=+u};i=()=>{s[o++]=l},a=c}else{let l=r??[0];const c=r?u=>{}:u=>{l=u};switch(n){case 1:break;case 2:i=()=>{s[o++]=l[0],s[o++]=l[1]},a=c;break;case 3:i=()=>{s[o++]=l[0],s[o++]=l[1],s[o++]=l[2]},a=c;break;case 4:i=()=>{s[o++]=l[0],s[o++]=l[1],s[o++]=l[2],s[o++]=l[3]},a=c;break;default:throw new Error("Invalid numComponents: "+n)}}return this.pushers.push(i),a}_unrollPushAll(){let t="",n="";for(let i=0;i<this.pushers.length;i++)t+=`const p${i} = that.pushers[${i}];
197
197
  `,n+=`p${i}();
198
- `;const r=new Function("that",`${e}
198
+ `;const r=new Function("that",`${t}
199
199
 
200
200
  return function unrolledPushAll() {
201
201
  ${n}
202
202
  that.vertexCount++;
203
203
  };
204
- `);this.pushAll=r(this)}pushAll(){this.size>1e5?this._unrollPushAll():this.pushAll=()=>{for(let n=0;n<this.pushers.length;n++)this.pushers[n]();this.vertexCount++},this.pushAll()}updateFromDatum(e){for(let n=0;n<this.dataUpdaters.length;n++)this.dataUpdaters[n](e)}pushFromDatum(e){this.updateFromDatum(e),this.pushAll()}}const Vr=5,kl=127;function Nl(t){const e=[];for(let h=0;h<=kl;h++)e.push(void 0);const n=new Map;for(const h of t.chars)h.id<=kl?e[h.id]=h:n.set(h.id,h);const r=8722;n.has(r)||n.set(r,e["-".charCodeAt(0)]);function i(h){return(h<=kl?e[h]:n.get(h))||e[63]}function o(h){return i(h.charCodeAt(0))}const a=t.common.base,s=o("x"),c=o("X"),u=o("q"),f=s.height-Vr*2,l=c.height-Vr*2,d=u.height-s.height+u.yoffset-s.yoffset;function p(h,m=1){let g=0;for(let y=0;y<h.length;y++)g+=i(h.charCodeAt(y)).xadvance;return g/a*m}return{measureWidth:p,getCharByCode:i,getChar:o,xHeight:f,capHeight:l,descent:d,common:t.common}}function ms(t,e=0,n=1){return Math.max(e,Math.min(n,t))}const vg=2**31-1,QD=-(2**31);function VD(t,e,n,r=n){const i=new Int32Array(t);i.fill(vg);let o=QD,a=!1;const s=new Int32Array(t),c=e[0],f=(e[1]-e[0])/t,l=(g,y)=>{const b=(g-c)/f,w=Math.floor(b);return ms(y&&w==b?w-1:w,0,t-1)};function d(g,y,b){y>o?o=y:a||(a=!0,console.debug("Items are not ordered properly. Disabling binned index."));const w=n(g),C=l(w,!1);i[C]>y&&(i[C]=y),s[C]<b&&(s[C]=b)}function p(g,y,b){y>o?o=y:a||(a=!0,console.debug("Items are not ordered properly. Disabling binned index."));const w=n(g),C=r(g),x=l(w,!1),v=l(C,!0);for(let A=x;A<=v;A++)i[A]>y&&(i[A]=y),s[A]<b&&(s[A]=b)}const h=(g,y,b=[0,0])=>{const w=l(g,!1),C=l(y,!0),x=i[w],v=Math.max(s[C],x);return b[0]=x,b[1]=v,b},m=()=>{for(let y=1;y<s.length;y++)s[y]<s[y-1]&&(s[y]=s[y-1]);let g=!0;for(let y=i.length-1;y>0;y--)g&&i[y]==vg?(i[y]=s[y],g=!1):i[y-1]>i[y]&&(i[y-1]=i[y]);return h};if(d.getIndex=m,p.getIndex=m,!a)return n==r?d:p}class lo{constructor({encoders:e,numVertices:n=void 0,attributes:r=[]}){this.encoders=e,this.variableEncoders=Object.fromEntries(Object.entries(e).filter(([i,o])=>r.includes(i)&&o&&o.scale&&!o.constant)),this.allocatedVertices=n,this.variableBuilder=new GD(n);for(const[i,o]of Object.entries(this.variableEncoders)){const a=o.accessor,s=[0,0],c=ps(o.scale.type),u=o.indexer,f=u?l=>u(a(l)):c?l=>yg(a(l),s):a;this.variableBuilder.addConverter(i,{f,numComponents:c?2:1,arrayReference:c?s:void 0})}this.lastOffset=0,this.rangeMap=new Tn([],JSON.stringify)}registerBatch(e){var o;const n=this.lastOffset,r=this.variableBuilder.vertexCount,i=r-n;i&&this.rangeMap.set(e,{offset:n,count:i,xIndex:(o=this.xIndexer)==null?void 0:o.getIndex()}),this.lastOffset=r}addBatches(e){for(const[n,r]of e)this.addBatch(n,r)}addBatch(e,n,r=0,i=n.length){this.prepareXIndexer(n,r,i);for(let o=r;o<i;o++){const a=n[o];this.variableBuilder.pushFromDatum(a),this.addToXIndex(a)}this.registerBatch(e)}prepareXIndexer(e,n=0,r=n+e.length){const i=()=>{this.addToXIndex=c=>{},this.xIndexer=void 0};if(!e.length||r-n<0){i();return}const o=c=>{var u;return c&&Le((u=c.scale)==null?void 0:u.type)&&c},a=o(this.variableEncoders.x),s=o(this.variableEncoders.x2);if(a){const c=a.accessor,u=s?s.accessor:c,f=[c(e[n]),u(e[r-1])];if(f[1]>f[0]){this.xIndexer=VD(50,f,c,u);let l=this.variableBuilder.vertexCount;this.addToXIndex=d=>{let p=this.variableBuilder.vertexCount;this.xIndexer(d,l,p),l=p}}else i()}else i()}addToXIndex(e){}toArrays(){return{arrays:this.variableBuilder.arrays,vertexCount:this.variableBuilder.vertexCount,allocatedVertices:this.allocatedVertices,rangeMap:this.rangeMap}}}class YD extends lo{constructor({encoders:e,attributes:n,tessellationThreshold:r=1/0,visibleRange:i=[-1/0,1/0],numItems:o}){super({encoders:e,attributes:n,numVertices:r==1/0?o*6:void 0}),this.visibleRange=i,this.tessellationThreshold=r||1/0,this.updateFrac=this.variableBuilder.createUpdater("frac",2)}addBatch(e,n,r=0,i=n.length){if(i<=r)return;const o=this.encoders,[a,s]=this.visibleRange,c=d=>d.accessor||(p=>0),u=c(o.x),f=c(o.x2);this.prepareXIndexer(n,r,i);const l=[0,0];this.updateFrac(l);for(let d=r;d<i;d++){const p=n[d];let h=u(p),m=f(p);if(h>m&&([h,m]=[m,h]),m<a||h>s)continue;h<a&&(h=a),m>s&&(m=s),this.variableBuilder.updateFromDatum(p),l[0]=0,l[1]=0;const g=1;this.variableBuilder.pushAll();for(let y=0;y<=g;y++)l[0]=y/g,l[1]=0,this.variableBuilder.pushAll(),l[1]=1,this.variableBuilder.pushAll();this.variableBuilder.pushAll(),this.addToXIndex(p)}this.registerBatch(e)}}class _D extends lo{constructor({encoders:e,attributes:n,tessellationThreshold:r=1/0,visibleRange:i=[-1/0,1/0],numItems:o}){super({encoders:e,attributes:n,numVertices:r==1/0?o*6:void 0}),this.visibleRange=i,this.tessellationThreshold=r||1/0,this.updateSide=this.variableBuilder.createUpdater("side",1),this.updatePos=this.variableBuilder.createUpdater("pos",1)}addBatch(e,n,r=0,i=n.length){this.prepareXIndexer(n,r,i);for(let o=r;o<i;o++){const a=n[o];this.variableBuilder.updateFromDatum(a),this.updateSide(-.5),this.updatePos(0),this.variableBuilder.pushAll();const s=1;for(let c=0;c<=s;c++)this.updatePos(c/s),this.updateSide(-.5),this.variableBuilder.pushAll(),this.updateSide(.5),this.variableBuilder.pushAll();this.variableBuilder.pushAll(),this.addToXIndex(a)}this.registerBatch(e)}}class WD extends lo{constructor({encoders:e,attributes:n,numItems:r=void 0}){super({encoders:e,attributes:n,numVertices:r})}}class XD extends lo{constructor({encoders:e,attributes:n,numItems:r=void 0}){super({encoders:e,attributes:n,numVertices:r})}toArrays(){const e=this.variableBuilder.arrays;for(let n of Object.values(e))n.divisor=1;return super.toArrays()}}class ZD extends lo{constructor({encoders:e,attributes:n,fontMetrics:r,properties:i,numCharacters:o=void 0}){super({encoders:e,attributes:n,numVertices:o*6}),this.metadata=r,this.metrics=r,this.properties=i;const s=e.text.channelDef;this.numberFormat=!ot(s)&&s.format?de(s.format):c=>c,this.updateVertexCoord=this.variableBuilder.createUpdater("vertexCoord",2),this.updateTextureCoord=this.variableBuilder.createUpdater("textureCoord",2),this.updateWidth=this.variableBuilder.createUpdater("width",1)}addBatch(e,n,r=0,i=n.length){const o=this.properties.align||"left",a=this.properties.logoLetters??!1,s=this.metadata.common.base,c=this.metadata.common.scaleH;let u=-Vr;switch(this.properties.baseline){case"top":u+=this.metrics.capHeight;break;case"middle":u+=this.metrics.capHeight/2;break;case"bottom":u-=this.metrics.descent;break}const f=this.encoders.text.accessor||this.encoders.text,l=[0,0];this.updateVertexCoord(l);const d=[0,0];this.updateTextureCoord(d),this.prepareXIndexer(n,r,i);for(let p=r;p<i;p++){const h=n[p],m=this.numberFormat(f(h)),g=ne(m)?m:m===null?"":""+m;if(g.length==0)continue;this.variableBuilder.updateFromDatum(h);const y=a?g.length:this.metrics.measureWidth(g);this.updateWidth(y);let b=o=="right"?-y:o=="center"?-y/2:0;if(!a){const v=this.metrics.getCharByCode(g.charCodeAt(0));b-=(v.width-v.xadvance)/s/2}let w=-.5,C=1,x=1;for(let v=0;v<g.length;v++){const A=this.metrics.getCharByCode(g.charCodeAt(v)),D=a?1:A.xadvance/s;if(A.id==32){b+=D;continue}a?(x=(A.width+Vr*2)/A.width,b=-x/2,C=(A.height+Vr*2)/A.height,w=-.5-Vr/A.height):(C=A.height/s,w=-(A.height+A.yoffset+u)/s,x=A.width/s);const k=A.x,O=A.y;l[0]=b,l[1]=w+C,d[0]=k/c,d[1]=O/c,this.variableBuilder.pushAll(),l[0]=b+x,l[1]=w+C,d[0]=(k+A.width)/c,d[1]=O/c,this.variableBuilder.pushAll(),l[0]=b,l[1]=w,d[0]=k/c,d[1]=(O+A.height)/c,this.variableBuilder.pushAll(),l[0]=b+x,l[1]=w+C,d[0]=(k+A.width)/c,d[1]=O/c,this.variableBuilder.pushAll(),l[0]=b,l[1]=w,d[0]=k/c,d[1]=(O+A.height)/c,this.variableBuilder.pushAll(),l[0]=b+x,l[1]=w,d[0]=(k+A.width)/c,d[1]=(O+A.height)/c,this.variableBuilder.pushAll(),b+=D}this.addToXIndex(h)}this.registerBatch(e)}}const bg=`#define PI 3.141593
204
+ `);this.pushAll=r(this)}pushAll(){this.size>1e5?this._unrollPushAll():this.pushAll=()=>{for(let n=0;n<this.pushers.length;n++)this.pushers[n]();this.vertexCount++},this.pushAll()}updateFromDatum(t){for(let n=0;n<this.dataUpdaters.length;n++)this.dataUpdaters[n](t)}pushFromDatum(t){this.updateFromDatum(t),this.pushAll()}}const Bo=5,Lp=127;function Op(e){const t=[];for(let p=0;p<=Lp;p++)t.push(void 0);const n=new Map;for(const p of e.chars)p.id<=Lp?t[p.id]=p:n.set(p.id,p);const r=8722;n.has(r)||n.set(r,t["-".charCodeAt(0)]);function i(p){return(p<=Lp?t[p]:n.get(p))||t[63]}function a(p){return i(p.charCodeAt(0))}const o=e.common.base,s=a("x"),l=a("X"),c=a("q"),u=s.height-Bo*2,f=l.height-Bo*2,h=c.height-s.height+c.yoffset-s.yoffset;function d(p,g=1){let y=0;for(let v=0;v<p.length;v++)y+=i(p.charCodeAt(v)).xadvance;return y/o*g}return{measureWidth:d,getCharByCode:i,getChar:a,xHeight:u,capHeight:f,descent:h,common:e.common}}function Df(e,t=0,n=1){return Math.max(t,Math.min(n,e))}const lx=2**31-1,iB=-(2**31);function aB(e,t,n,r=n){const i=new Int32Array(e);i.fill(lx);let a=iB,o=!1;const s=new Int32Array(e),l=t[0],u=(t[1]-t[0])/e,f=(y,v)=>{const S=(y-l)/u,k=Math.floor(S);return Df(v&&k==S?k-1:k,0,e-1)};function h(y,v,S){v>a?a=v:o||(o=!0,console.debug("Items are not ordered properly. Disabling binned index."));const k=n(y),C=f(k,!1);i[C]>v&&(i[C]=v),s[C]<S&&(s[C]=S)}function d(y,v,S){v>a?a=v:o||(o=!0,console.debug("Items are not ordered properly. Disabling binned index."));const k=n(y),C=r(y),E=f(k,!1),w=f(C,!0);for(let A=E;A<=w;A++)i[A]>v&&(i[A]=v),s[A]<S&&(s[A]=S)}const p=(y,v,S=[0,0])=>{const k=f(y,!1),C=f(v,!0),E=i[k],w=Math.max(s[C],E);return S[0]=E,S[1]=w,S},g=()=>{for(let v=1;v<s.length;v++)s[v]<s[v-1]&&(s[v]=s[v-1]);let y=!0;for(let v=i.length-1;v>0;v--)y&&i[v]==lx?(i[v]=s[v],y=!1):i[v-1]>i[v]&&(i[v-1]=i[v]);return p};if(h.getIndex=g,d.getIndex=g,!o)return n==r?h:d}class Oc{constructor({encoders:t,numVertices:n=void 0,attributes:r=[]}){this.encoders=t,this.variableEncoders=Object.fromEntries(Object.entries(t).filter(([i,a])=>r.includes(i)&&a&&a.scale&&!a.constant)),this.allocatedVertices=n,this.variableBuilder=new rB(n);for(const[i,a]of Object.entries(this.variableEncoders)){const o=a.accessor,s=[0,0],l=kf(a.scale.type),c=a.indexer,u=c?f=>c(o(f)):l?f=>cx(o(f),s):o;this.variableBuilder.addConverter(i,{f:u,numComponents:l?2:1,arrayReference:l?s:void 0})}this.lastOffset=0,this.rangeMap=new Zi([],JSON.stringify)}registerBatch(t){var a;const n=this.lastOffset,r=this.variableBuilder.vertexCount,i=r-n;i&&this.rangeMap.set(t,{offset:n,count:i,xIndex:(a=this.xIndexer)==null?void 0:a.getIndex()}),this.lastOffset=r}addBatches(t){for(const[n,r]of t)this.addBatch(n,r)}addBatch(t,n,r=0,i=n.length){this.prepareXIndexer(n,r,i);for(let a=r;a<i;a++){const o=n[a];this.variableBuilder.pushFromDatum(o),this.addToXIndex(o)}this.registerBatch(t)}prepareXIndexer(t,n=0,r=n+t.length){const i=()=>{this.addToXIndex=l=>{},this.xIndexer=void 0};if(!t.length||r-n<0){i();return}const a=l=>{var c;return l&&Ft((c=l.scale)==null?void 0:c.type)&&l},o=a(this.variableEncoders.x),s=a(this.variableEncoders.x2);if(o){const l=o.accessor,c=s?s.accessor:l,u=[l(t[n]),c(t[r-1])];if(u[1]>u[0]){this.xIndexer=aB(50,u,l,c);let f=this.variableBuilder.vertexCount;this.addToXIndex=h=>{let d=this.variableBuilder.vertexCount;this.xIndexer(h,f,d),f=d}}else i()}else i()}addToXIndex(t){}toArrays(){return{arrays:this.variableBuilder.arrays,vertexCount:this.variableBuilder.vertexCount,allocatedVertices:this.allocatedVertices,rangeMap:this.rangeMap}}}class oB extends Oc{constructor({encoders:t,attributes:n,tessellationThreshold:r=1/0,visibleRange:i=[-1/0,1/0],numItems:a}){super({encoders:t,attributes:n,numVertices:r==1/0?a*6:void 0}),this.visibleRange=i,this.tessellationThreshold=r||1/0,this.updateFrac=this.variableBuilder.createUpdater("frac",2)}addBatch(t,n,r=0,i=n.length){if(i<=r)return;const a=this.encoders,[o,s]=this.visibleRange,l=h=>h.accessor||(d=>0),c=l(a.x),u=l(a.x2);this.prepareXIndexer(n,r,i);const f=[0,0];this.updateFrac(f);for(let h=r;h<i;h++){const d=n[h];let p=c(d),g=u(d);if(p>g&&([p,g]=[g,p]),g<o||p>s)continue;p<o&&(p=o),g>s&&(g=s),this.variableBuilder.updateFromDatum(d),f[0]=0,f[1]=0;const y=1;this.variableBuilder.pushAll();for(let v=0;v<=y;v++)f[0]=v/y,f[1]=0,this.variableBuilder.pushAll(),f[1]=1,this.variableBuilder.pushAll();this.variableBuilder.pushAll(),this.addToXIndex(d)}this.registerBatch(t)}}class sB extends Oc{constructor({encoders:t,attributes:n,tessellationThreshold:r=1/0,visibleRange:i=[-1/0,1/0],numItems:a}){super({encoders:t,attributes:n,numVertices:r==1/0?a*6:void 0}),this.visibleRange=i,this.tessellationThreshold=r||1/0,this.updateSide=this.variableBuilder.createUpdater("side",1),this.updatePos=this.variableBuilder.createUpdater("pos",1)}addBatch(t,n,r=0,i=n.length){this.prepareXIndexer(n,r,i);for(let a=r;a<i;a++){const o=n[a];this.variableBuilder.updateFromDatum(o),this.updateSide(-.5),this.updatePos(0),this.variableBuilder.pushAll();const s=1;for(let l=0;l<=s;l++)this.updatePos(l/s),this.updateSide(-.5),this.variableBuilder.pushAll(),this.updateSide(.5),this.variableBuilder.pushAll();this.variableBuilder.pushAll(),this.addToXIndex(o)}this.registerBatch(t)}}class cB extends Oc{constructor({encoders:t,attributes:n,numItems:r=void 0}){super({encoders:t,attributes:n,numVertices:r})}}class lB extends Oc{constructor({encoders:t,attributes:n,numItems:r=void 0}){super({encoders:t,attributes:n,numVertices:r})}toArrays(){const t=this.variableBuilder.arrays;for(let n of Object.values(t))n.divisor=1;return super.toArrays()}}class uB extends Oc{constructor({encoders:t,attributes:n,fontMetrics:r,properties:i,numCharacters:a=void 0}){super({encoders:t,attributes:n,numVertices:a*6}),this.metadata=r,this.metrics=r,this.properties=i;const s=t.text.channelDef;this.numberFormat=!In(s)&&s.format?rt(s.format):l=>l,this.updateVertexCoord=this.variableBuilder.createUpdater("vertexCoord",2),this.updateTextureCoord=this.variableBuilder.createUpdater("textureCoord",2),this.updateWidth=this.variableBuilder.createUpdater("width",1)}addBatch(t,n,r=0,i=n.length){const a=this.properties.align||"left",o=this.properties.logoLetters??!1,s=this.metadata.common.base,l=this.metadata.common.scaleH;let c=-Bo;switch(this.properties.baseline){case"top":c+=this.metrics.capHeight;break;case"middle":c+=this.metrics.capHeight/2;break;case"bottom":c-=this.metrics.descent;break}const u=this.encoders.text.accessor||this.encoders.text,f=[0,0];this.updateVertexCoord(f);const h=[0,0];this.updateTextureCoord(h),this.prepareXIndexer(n,r,i);for(let d=r;d<i;d++){const p=n[d],g=this.numberFormat(u(p)),y=ze(g)?g:g===null?"":""+g;if(y.length==0)continue;this.variableBuilder.updateFromDatum(p);const v=o?y.length:this.metrics.measureWidth(y);this.updateWidth(v);let S=a=="right"?-v:a=="center"?-v/2:0;if(!o){const w=this.metrics.getCharByCode(y.charCodeAt(0));S-=(w.width-w.xadvance)/s/2}let k=-.5,C=1,E=1;for(let w=0;w<y.length;w++){const A=this.metrics.getCharByCode(y.charCodeAt(w)),T=o?1:A.xadvance/s;if(A.id==32){S+=T;continue}o?(E=(A.width+Bo*2)/A.width,S=-E/2,C=(A.height+Bo*2)/A.height,k=-.5-Bo/A.height):(C=A.height/s,k=-(A.height+A.yoffset+c)/s,E=A.width/s);const D=A.x,M=A.y;f[0]=S,f[1]=k+C,h[0]=D/l,h[1]=M/l,this.variableBuilder.pushAll(),f[0]=S+E,f[1]=k+C,h[0]=(D+A.width)/l,h[1]=M/l,this.variableBuilder.pushAll(),f[0]=S,f[1]=k,h[0]=D/l,h[1]=(M+A.height)/l,this.variableBuilder.pushAll(),f[0]=S+E,f[1]=k+C,h[0]=(D+A.width)/l,h[1]=M/l,this.variableBuilder.pushAll(),f[0]=S,f[1]=k,h[0]=D/l,h[1]=(M+A.height)/l,this.variableBuilder.pushAll(),f[0]=S+E,f[1]=k,h[0]=(D+A.width)/l,h[1]=(M+A.height)/l,this.variableBuilder.pushAll(),S+=T}this.addToXIndex(p)}this.registerBatch(t)}}const ux=`#define PI 3.141593
205
205
 
206
206
  uniform View {
207
207
  /** Offset in "unit" units */
@@ -264,7 +264,7 @@ vec4 distanceToColor(float d, vec4 fill, vec4 stroke, float halfStrokeWidth) {
264
264
  return fill * distanceToRatio(-d);
265
265
  }
266
266
  }
267
- `,qD=`const float inf = 1.0 / 0.0;
267
+ `,fB=`const float inf = 1.0 / 0.0;
268
268
 
269
269
  // Utils ------------
270
270
 
@@ -376,7 +376,7 @@ float scaleBandHp(vec2 value, vec3 domainExtent, vec2 range,
376
376
 
377
377
  return dot(vec4(start, hi, lo, bandwidth), vec4(1.0, step, step, band));
378
378
  }
379
- `,KD=`
379
+ `,hB=`
380
380
  /**
381
381
  * Describes where a sample facet should be shown. Interpolating between the
382
382
  * current and target positions/heights allows for transitioning between facet
@@ -483,7 +483,7 @@ float getSampleFacetHeight(vec2 pos) {
483
483
  return facetPos.height;
484
484
  }
485
485
  }
486
- `,JD=`/*
486
+ `,dB=`/*
487
487
  * Based on concepts presented at:
488
488
  * https://webglfundamentals.org/webgl/lessons/webgl-picking.html
489
489
  * https://deck.gl/docs/developer-guide/custom-layers/picking
@@ -510,22 +510,22 @@ bool setupPicking() {
510
510
  }
511
511
  return false;
512
512
  }
513
- `,$D=`in highp vec4 vPickingColor;
514
- `,gs=Symbol("cacheMap");function Yr(t,e,n){let r=ho(t).get(e);return r===void 0&&(r=n(e),ho(t).set(e,r)),r}function Ag(t,e){ho(t).delete(e)}function fo(t,e){const n=ho(t);for(const r of n.keys())r.startsWith(e)&&n.delete(r);ho(t).delete(e)}function xg(t){t[gs]=new Map}function ho(t){return t[gs]||xg(t),t[gs]}function eM(t,e,n,r){const i=ne(t)?t:t.name,o=!ne(t)&&t.extent||[0,1];if(n===void 0&&!ne(t)&&(n=t.count),i){const a=Pu(i);if(Ie(a)){const s=wg(a,{extent:o,count:n});return po(e,{minMag:e.LINEAR,format:e.RGB,height:1,wrap:e.CLAMP_TO_EDGE},s,r)}else{if(_e(a))return Ll(a,e);throw new Error("Unknown scheme: "+i)}}}function tM(t,e="rgb",n,r){const i=za(t,ne(e)?e:e.type,ne(e)?void 0:e.gamma),o=wg(i);return po(n,{minMag:n.LINEAR,format:n.RGB,height:1,wrap:n.CLAMP_TO_EDGE},o,r)}function nM(t,e,n,r){const i=Math.max(t.length,n||0),o=new Float32Array(i);for(let a=0;a<i;a++)o[a]=t[a%t.length];return po(e,{minMag:e.NEAREST,format:e.RED,internalFormat:e.R32F,height:1},o,r)}function Ll(t,e,n,r){const i=Cg(t,n);return po(e,{minMag:e.NEAREST,format:e.RGB,height:1},i,r)}function wg(t,{extent:e=[0,1],reverse:n=!1,count:r=256}={}){const i=e[0],o=Re(e)-i,a=_t(r).map(s=>s/(r-1)).map(s=>i+s/o).map(t);return n&&a.reverse(),Cg(a)}function Cg(t,e){const n=Math.max(t.length,e||0),r=new Uint8Array(n*3);for(let i=0;i<n;i++){const o=Pn(t[i%t.length]).rgb();r[i*3+0]=o.r,r[i*3+1]=o.g,r[i*3+2]=o.b}return r}class rM{constructor(e,n){this._container=e,this._sizeSource=n,this._shaderCache=new Map,this._listeners=[],this.rangeTextures=new WeakMap;const r=document.createElement("canvas");e.appendChild(r);const i=kD(r,{antialias:!0,depth:!1,premultipliedAlpha:!0});if(!i)throw new Error("Unable to initialize WebGL. Your browser or machine may not support it.");if(!Fr(i))throw new Error("Your web browser does not support WebGL 2.0. Chrome, Firefox, and Safari Tech Preview should work.");lg(i),i.blendFunc(i.ONE,i.ONE_MINUS_SRC_ALPHA),this.canvas=r,this.gl=i,this._pickingAttachmentOptions=[{format:i.RGBA,type:i.UNSIGNED_BYTE,minMag:i.LINEAR,wrap:i.CLAMP_TO_EDGE}],this._pickingBufferInfo=SD(i,this._pickingAttachmentOptions),i.bindFramebuffer(i.FRAMEBUFFER,null),this.adjustGl(),this._resizeObserver=new ResizeObserver(o=>{this.invalidateSize(),this._emit("resize")}),this._resizeObserver.observe(this._container),this._updateDpr()}invalidateSize(){this._logicalCanvasSize=void 0,this._updateDpr(),this.adjustGl()}_updateDpr(){this.dpr=window.devicePixelRatio}compileShader(e,n){const r="#version 300 es",i="precision mediump float;";_e(n)&&(n=n.join(`
513
+ `,pB=`in highp vec4 vPickingColor;
514
+ `,If=Symbol("cacheMap");function Lo(e,t,n){let r=zc(e).get(t);return r===void 0&&(r=n(t),zc(e).set(t,r)),r}function fx(e,t){zc(e).delete(t)}function Rc(e,t){const n=zc(e);for(const r of n.keys())r.startsWith(t)&&n.delete(r);zc(e).delete(t)}function hx(e){e[If]=new Map}function zc(e){return e[If]||hx(e),e[If]}function gB(e,t,n,r){const i=ze(e)?e:e.name,a=!ze(e)&&e.extent||[0,1];if(n===void 0&&!ze(e)&&(n=e.count),i){const o=U0(i);if(Tt(o)){const s=dx(o,{extent:a,count:n});return Pc(t,{minMag:t.LINEAR,format:t.RGB,height:1,wrap:t.CLAMP_TO_EDGE},s,r)}else{if(en(o))return Rp(o,t);throw new Error("Unknown scheme: "+i)}}}function mB(e,t="rgb",n,r){const i=qu(e,ze(t)?t:t.type,ze(t)?void 0:t.gamma),a=dx(i);return Pc(n,{minMag:n.LINEAR,format:n.RGB,height:1,wrap:n.CLAMP_TO_EDGE},a,r)}function bB(e,t,n,r){const i=Math.max(e.length,n||0),a=new Float32Array(i);for(let o=0;o<i;o++)a[o]=e[o%e.length];return Pc(t,{minMag:t.NEAREST,format:t.RED,internalFormat:t.R32F,height:1},a,r)}function Rp(e,t,n,r){const i=px(e,n);return Pc(t,{minMag:t.NEAREST,format:t.RGB,height:1},i,r)}function dx(e,{extent:t=[0,1],reverse:n=!1,count:r=256}={}){const i=t[0],a=Gt(t)-i,o=qr(r).map(s=>s/(r-1)).map(s=>i+s/a).map(e);return n&&o.reverse(),px(o)}function px(e,t){const n=Math.max(e.length,t||0),r=new Uint8Array(n*3);for(let i=0;i<n;i++){const a=na(e[i%e.length]).rgb();r[i*3+0]=a.r,r[i*3+1]=a.g,r[i*3+2]=a.b}return r}class yB{constructor(t,n){this._container=t,this._sizeSource=n,this._shaderCache=new Map,this._listeners=[],this.rangeTextures=new WeakMap;const r=document.createElement("canvas");t.appendChild(r);const i=VF(r,{antialias:!0,depth:!1,premultipliedAlpha:!0});if(!i)throw new Error("Unable to initialize WebGL. Your browser or machine may not support it.");if(!Co(i))throw new Error("Your web browser does not support WebGL 2.0. Chrome, Firefox, and Safari Tech Preview should work.");tx(i),i.blendFunc(i.ONE,i.ONE_MINUS_SRC_ALPHA),this.canvas=r,this.gl=i,this._pickingAttachmentOptions=[{format:i.RGBA,type:i.UNSIGNED_BYTE,minMag:i.LINEAR,wrap:i.CLAMP_TO_EDGE}],this._pickingBufferInfo=PF(i,this._pickingAttachmentOptions),i.bindFramebuffer(i.FRAMEBUFFER,null),this.adjustGl(),this._resizeObserver=new ResizeObserver(a=>{this.invalidateSize(),this._emit("resize")}),this._resizeObserver.observe(this._container),this._updateDpr()}invalidateSize(){this._logicalCanvasSize=void 0,this._updateDpr(),this.adjustGl()}_updateDpr(){this.dpr=window.devicePixelRatio}compileShader(t,n){const r="#version 300 es",i="precision mediump float;";en(n)&&(n=n.join(`
515
515
 
516
- `));const o=this.gl,a=n.replaceAll(/ {2,}|^\s*\/\/.*$/gm,"");let s=this._shaderCache.get(a);if(!s){const c=[r,i,n].join(`
516
+ `));const a=this.gl,o=n.replaceAll(/ {2,}|^\s*\/\/.*$/gm,"");let s=this._shaderCache.get(o);if(!s){const l=[r,i,n].join(`
517
517
 
518
- `);s=o.createShader(e),o.shaderSource(s,c),o.compileShader(s),this._shaderCache.set(a,s)}return s}adjustGl(){const e=this.getLogicalCanvasSize();this.canvas.style.width=`${e.width}px`,this.canvas.style.height=`${e.height}px`;const n=this.getPhysicalCanvasSize(e);this.canvas.width=n.width,this.canvas.height=n.height,ED(this.gl,this._pickingBufferInfo,this._pickingAttachmentOptions)}finalize(){this._resizeObserver.unobserve(this._container),this.canvas.remove()}getPhysicalCanvasSize(e){return e=e||this.getLogicalCanvasSize(),{width:e.width*this.dpr,height:e.height*this.dpr}}getLogicalCanvasSize(){var o;if(this._logicalCanvasSize)return this._logicalCanvasSize;const e=((o=this._sizeSource)==null?void 0:o.call(this))??{width:void 0,height:void 0},n=window.getComputedStyle(this._container,null),r=e.width??this._container.clientWidth-parseFloat(n.paddingLeft)-parseFloat(n.paddingRight),i=e.height??this._container.clientHeight-parseFloat(n.paddingTop)-parseFloat(n.paddingBottom);return this._logicalCanvasSize={width:r,height:i},this._logicalCanvasSize}addEventListener(e,n){this._listeners.push({type:e,listener:n})}_emit(e){for(const n of this._listeners)n.type===e&&n.listener()}readPickingPixel(e,n){const r=this.gl;e*=this.dpr,n*=this.dpr;const i=this.getPhysicalCanvasSize().height,o=new Uint8Array(4);return r.bindFramebuffer(r.FRAMEBUFFER,this._pickingBufferInfo.framebuffer),r.readPixels(e,i-n-1,1,1,r.RGBA,r.UNSIGNED_BYTE,o),r.bindFramebuffer(r.FRAMEBUFFER,null),o}clearAll(){const e=this.gl,{width:n,height:r}=this.getPhysicalCanvasSize();e.viewport(0,0,n,r),e.disable(e.SCISSOR_TEST),e.clearColor(0,0,0,0),e.clear(e.COLOR_BUFFER_BIT)}createRangeTexture(e,n=!1){const r=this.rangeTextures.get(e);if(!n&&r)return;function i(a,s){return nn(s.type)?s.domain().length:s.type=="threshold"?s.domain().length+1:s.type=="quantize"||s.type=="quantile"?a??4:a}const o=e.channel;if(Zn(o)){const a=e.getScaleProps(),s=e.getScale(),c=s.range();let u;if(a.scheme)if(s.type=="threshold"&&c)u=Ll(c,this.gl,s.domain().length,r);else{let f=ne(a.scheme)?void 0:a.scheme.count;f=i(f,s),u=eM(a.scheme,this.gl,f,r)}else Pa(s.type)||Le(s.type)&&c.length>2?u=tM(c,a.interpolate,this.gl,r):u=Ll(c,this.gl,s.domain().length,r);this.rangeTextures.set(e,u)}else{const a=e.getScale();if(a.type==="ordinal"||Hn(a.type)){const s=_a(o)?qp(o):u=>u,c=e.getScale().range();this.rangeTextures.set(e,nM(c.map(s),this.gl,a.domain().length,r))}}}}function iM(t,e="",n=0){const r=/ERROR:\s*\d+:(\d+)/gi,i=[...e.matchAll(r)],o=new Map(i.map((a,s)=>{const c=parseInt(a[1]),u=i[s+1],f=u?u.index:e.length,l=e.substring(a.index,f);return[c-1,l]}));return t.split(`
519
- `).map((a,s)=>{const c=o.get(s);return`${s+1+n}: ${a}${c?`
518
+ `);s=a.createShader(t),a.shaderSource(s,l),a.compileShader(s),this._shaderCache.set(o,s)}return s}adjustGl(){const t=this.getLogicalCanvasSize();this.canvas.style.width=`${t.width}px`,this.canvas.style.height=`${t.height}px`;const n=this.getPhysicalCanvasSize(t);this.canvas.width=n.width,this.canvas.height=n.height,UF(this.gl,this._pickingBufferInfo,this._pickingAttachmentOptions)}finalize(){this._resizeObserver.unobserve(this._container),this.canvas.remove()}getPhysicalCanvasSize(t){return t=t||this.getLogicalCanvasSize(),{width:t.width*this.dpr,height:t.height*this.dpr}}getLogicalCanvasSize(){var a;if(this._logicalCanvasSize)return this._logicalCanvasSize;const t=((a=this._sizeSource)==null?void 0:a.call(this))??{width:void 0,height:void 0},n=window.getComputedStyle(this._container,null),r=t.width??this._container.clientWidth-parseFloat(n.paddingLeft)-parseFloat(n.paddingRight),i=t.height??this._container.clientHeight-parseFloat(n.paddingTop)-parseFloat(n.paddingBottom);return this._logicalCanvasSize={width:r,height:i},this._logicalCanvasSize}addEventListener(t,n){this._listeners.push({type:t,listener:n})}_emit(t){for(const n of this._listeners)n.type===t&&n.listener()}readPickingPixel(t,n){const r=this.gl;t*=this.dpr,n*=this.dpr;const i=this.getPhysicalCanvasSize().height,a=new Uint8Array(4);return r.bindFramebuffer(r.FRAMEBUFFER,this._pickingBufferInfo.framebuffer),r.readPixels(t,i-n-1,1,1,r.RGBA,r.UNSIGNED_BYTE,a),r.bindFramebuffer(r.FRAMEBUFFER,null),a}clearAll(){const t=this.gl,{width:n,height:r}=this.getPhysicalCanvasSize();t.viewport(0,0,n,r),t.disable(t.SCISSOR_TEST),t.clearColor(0,0,0,0),t.clear(t.COLOR_BUFFER_BIT)}createRangeTexture(t,n=!1){const r=this.rangeTextures.get(t);if(!n&&r)return;function i(o,s){return ai(s.type)?s.domain().length:s.type=="threshold"?s.domain().length+1:s.type=="quantize"||s.type=="quantile"?o??4:o}const a=t.channel;if(ga(a)){const o=t.getScaleProps(),s=t.getScale(),l=s.range();let c;if(o.scheme)if(s.type=="threshold"&&l)c=Rp(l,this.gl,s.domain().length,r);else{let u=ze(o.scheme)?void 0:o.scheme.count;u=i(u,s),c=gB(o.scheme,this.gl,u,r)}else Zu(s.type)||Ft(s.type)&&l.length>2?c=mB(l,o.interpolate,this.gl,r):c=Rp(l,this.gl,s.domain().length,r);this.rangeTextures.set(t,c)}else{const o=t.getScale();if(o.type==="ordinal"||sa(o.type)){const s=af(a)?jv(a):c=>c,l=t.getScale().range();this.rangeTextures.set(t,bB(l.map(s),this.gl,o.domain().length,r))}}}}function vB(e,t="",n=0){const r=/ERROR:\s*\d+:(\d+)/gi,i=[...t.matchAll(r)],a=new Map(i.map((o,s)=>{const l=parseInt(o[1]),c=i[s+1],u=c?c.index:t.length,f=t.substring(o.index,u);return[l-1,f]}));return e.split(`
519
+ `).map((o,s)=>{const l=a.get(s);return`${s+1+n}: ${o}${l?`
520
520
 
521
- ^^^ ${c}`:""}`}).join(`
522
- `)}function oM(t,e,n){const r=t.createProgram();t.attachShader(r,e),t.attachShader(r,n),t.linkProgram(r);function i(){let o,a;if(!t.getProgramParameter(r,t.LINK_STATUS)){o=t.getProgramInfoLog(r);for(const c of[e,n])t.getShaderParameter(c,t.COMPILE_STATUS)||(o=t.getShaderInfoLog(c),a=iM(t.getShaderSource(c),o,0)+`
523
- Error compiling: ${o}`,t.deleteShader(c));t.deleteProgram(r)}if(o)return{message:o,detail:a}}return{program:r,getProgramErrors:i}}function po(t,e,n,r){return r?Dm(t,r,n,e):r=co(t,{...e,src:n}),r}function aM(...t){const e={get(n,r,i){for(const o of t){const s=o()[r];if(s!==void 0)return s}},has(n,r,i){for(const o of t){const a=o();if(r in a)return!0}return!1}};return new Proxy({},e)}function sM(t){return ne(t)||le(t)||ra(t)}const cM="SAMPLE_FACET_UNIFORM",Sg="SAMPLE_FACET_TEXTURE";class mo{constructor(e){this.unitView=e,this.encoders=void 0,this.bufferInfo=void 0,this.programInfo=void 0,this.vertexArrayInfo=void 0,this.domainUniformInfo=void 0,this.viewUniformInfo=void 0,this.rangeMap=new uM,this.defaultProperties={get clip(){return["x","y"].map(n=>e.getScaleResolution(n)).some(n=>(n==null?void 0:n.isZoomable())??!1)},xOffset:0,yOffset:0,minBufferSize:0},this.properties=aM(typeof this.unitView.spec.mark=="object"?()=>this.unitView.spec.mark:()=>({}),()=>this.defaultProperties)}get opaque(){return!1}getAttributes(){throw new Error("Not implemented!")}getSupportedChannels(){return["sample","facetIndex","x","y","color","opacity","search","uniqueId"]}getDefaultEncoding(){const e={sample:void 0,uniqueId:void 0};return this.isPickingParticipant()&&(e.uniqueId={field:"_uniqueId"}),e}fixEncoding(e){return e}get encoding(){return Yr(this,"encoding",()=>{const e=this.getDefaultEncoding(),n=this.unitView.getEncoding(),r=a=>{const s=this.properties[a];return sM(s)&&{value:s}},i=Object.fromEntries(this.getSupportedChannels().map(a=>[a,r(a)]).filter(a=>a[1].value!==void 0)),o=this.fixEncoding({...e,...i,...n});for(const a of Object.keys(o))this.getSupportedChannels().includes(a)||delete o[a];return o})}getContext(){return this.unitView.context}getType(){return this.unitView.getMarkType()}initializeData(){}initializeEncoders(){this.encoders=P3(this)}async initializeGraphics(){}updateGraphicsData(){}getSampleFacetMode(){if(this.encoders.facetIndex)return Sg;if([...this.unitView.getAncestors()].find(e=>"samples"in e.spec))return cM}createAndLinkShaders(e,n,r=[]){const i=this.getAttributes();r.push("// view: "+this.unitView.getPathString()),this.domainUniforms=[];let o=[];const a=this.getSampleFacetMode();a&&r.push(`#define ${a}`);for(const d of i){let p;if(d in this.encoding)p=d;else continue;const h=this.encoding[p];if(h)if(ot(h))o.push(FD(p,h.value));else{const m=qe(h)&&h.resolutionChannel||p,g=this.unitView.getScaleResolution(m).getScale(),y=PD(p,g,h);o.push(y.glsl),y.domainUniform&&this.domainUniforms.push(y.domainUniform)}}const s=this.domainUniforms.length?`layout(std140) uniform Domains {
524
- `+this.domainUniforms.map(d=>` ${d}
521
+ ^^^ ${l}`:""}`}).join(`
522
+ `)}function wB(e,t,n){const r=e.createProgram();e.attachShader(r,t),e.attachShader(r,n),e.linkProgram(r);function i(){let a,o;if(!e.getProgramParameter(r,e.LINK_STATUS)){a=e.getProgramInfoLog(r);for(const l of[t,n])e.getShaderParameter(l,e.COMPILE_STATUS)||(a=e.getShaderInfoLog(l),o=vB(e.getShaderSource(l),a,0)+`
523
+ Error compiling: ${a}`,e.deleteShader(l));e.deleteProgram(r)}if(a)return{message:a,detail:o}}return{program:r,getProgramErrors:i}}function Pc(e,t,n,r){return r?bw(e,r,n,t):r=Bc(e,{...t,src:n}),r}function xB(...e){const t={get(n,r,i){for(const a of e){const s=a()[r];if(s!==void 0)return s}},has(n,r,i){for(const a of e){const o=a();if(r in o)return!0}return!1}};return new Proxy({},t)}function AB(e){return ze(e)||Ke(e)||gu(e)}const EB="SAMPLE_FACET_UNIFORM",gx="SAMPLE_FACET_TEXTURE";class Uc{constructor(t){this.unitView=t,this.encoders=void 0,this.bufferInfo=void 0,this.programInfo=void 0,this.vertexArrayInfo=void 0,this.domainUniformInfo=void 0,this.viewUniformInfo=void 0,this.rangeMap=new SB,this.defaultProperties={get clip(){return["x","y"].map(n=>t.getScaleResolution(n)).some(n=>(n==null?void 0:n.isZoomable())??!1)},xOffset:0,yOffset:0,minBufferSize:0},this.properties=xB(typeof this.unitView.spec.mark=="object"?()=>this.unitView.spec.mark:()=>({}),()=>this.defaultProperties)}get opaque(){return!1}getAttributes(){throw new Error("Not implemented!")}getSupportedChannels(){return["sample","facetIndex","x","y","color","opacity","search","uniqueId"]}getDefaultEncoding(){const t={sample:void 0,uniqueId:void 0};return this.isPickingParticipant()&&(t.uniqueId={field:"_uniqueId"}),t}fixEncoding(t){return t}get encoding(){return Lo(this,"encoding",()=>{const t=this.getDefaultEncoding(),n=this.unitView.getEncoding(),r=o=>{const s=this.properties[o];return AB(s)&&{value:s}},i=Object.fromEntries(this.getSupportedChannels().map(o=>[o,r(o)]).filter(o=>o[1].value!==void 0)),a=this.fixEncoding({...t,...i,...n});for(const o of Object.keys(a))this.getSupportedChannels().includes(o)||delete a[o];return a})}getContext(){return this.unitView.context}getType(){return this.unitView.getMarkType()}initializeData(){}initializeEncoders(){this.encoders=XT(this)}async initializeGraphics(){}updateGraphicsData(){}getSampleFacetMode(){if(this.encoders.facetIndex)return gx;if([...this.unitView.getAncestors()].find(t=>"samples"in t.spec))return EB}createAndLinkShaders(t,n,r=[]){const i=this.getAttributes();r.push("// view: "+this.unitView.getPathString()),this.domainUniforms=[];let a=[];const o=this.getSampleFacetMode();o&&r.push(`#define ${o}`);for(const h of i){let d;if(h in this.encoding)d=h;else continue;const p=this.encoding[d];if(p)if(In(p))a.push(WF(d,p.value));else{const g=an(p)&&p.resolutionChannel||d,y=this.unitView.getScaleResolution(g).getScale(),v=XF(d,y,p);a.push(v.glsl),v.domainUniform&&this.domainUniforms.push(v.domainUniform)}}const s=this.domainUniforms.length?`layout(std140) uniform Domains {
524
+ `+this.domainUniforms.map(h=>` ${h}
525
525
  `).join("")+`};
526
526
 
527
- `:"",u=[`precision highp float;
528
- `,...r,bg,qD,s,...o,KD,JD,e],f=[...r,bg,$D,n],l=this.gl;this.programStatus=oM(l,this.glHelper.compileShader(l.VERTEX_SHADER,u),this.glHelper.compileShader(l.FRAGMENT_SHADER,f))}finalizeGraphicsInitialization(){const e=this.programStatus.getProgramErrors();if(e){e.detail&&console.warn(e.detail);const n=new Error("Cannot create shader program: "+e.message);throw n.view=this.unitView,n}this.programInfo=sD(this.gl,this.programStatus.program),delete this.programStatus,this.domainUniforms.length&&(this.domainUniformInfo=$m(this.gl,this.programInfo,"Domains")),this.viewUniformInfo=$m(this.gl,this.programInfo,"View"),this.gl.useProgram(this.programInfo.program),this._setDatums(),je(this.programInfo,{uSampleFacet:[0,1,0,1],uTransitionOffset:0})}_setDatums(){for(const[e,n]of Object.entries(this.encoding))if($i(n)){const r=this.encoders[e],i=r.indexer?r.indexer(n.datum):ps(r.scale.type)?yg(+n.datum):+n.datum;je(this.programInfo,{[Ml+e]:i})}}deleteGraphicsData(){if(this.bufferInfo){const e=this.gl;for(let n=0;n<8;n++)e.disableVertexAttribArray(n);Object.values(this.bufferInfo.attribs).forEach(n=>this.gl.deleteBuffer(n.buffer)),this.bufferInfo.indices&&this.gl.deleteBuffer(this.bufferInfo.indices),this.bufferInfo=void 0}}updateBufferInfo(e){if(this.gl.bindVertexArray(null),this.bufferInfo&&e.vertexCount<=this.bufferInfo.allocatedVertices)for(const[n,r]of Object.entries(e.arrays))r.data&&bC(this.gl,this.bufferInfo.attribs[n],r.data,0);else this.deleteGraphicsData(),this.bufferInfo=wC(this.gl,e.arrays,{numElements:e.vertexCount}),this.bufferInfo.allocatedVertices=e.allocatedVertices,this.vertexArrayInfo=void 0}get glHelper(){return this.getContext().glHelper}get gl(){return this.glHelper.gl}onBeforeSampleAnimation(){}onAfterSampleAnimation(){}isReady(){return this.bufferInfo&&this.programInfo}isPickingParticipant(){if(this.properties.tooltip===null)return!1;for(const e of this.unitView.getAncestors())if(!e.isPickingSupported())return!1;return!0}prepareRender(e){const n=this.glHelper,r=this.gl,i=[];if(i.push(()=>{this.vertexArrayInfo||(this.vertexArrayInfo=DD(this.gl,this.programInfo,this.bufferInfo)),r.useProgram(this.programInfo.program)}),this.domainUniformInfo){for(const[a,s]of Object.entries(this.domainUniformInfo.setters)){const c=a.substring(fg.length),u=this.encoding[c],f=qe(u)&&u.resolutionChannel||c,l=this.unitView.getScaleResolution(f);if(l){const d=l.getScale();i.push(()=>{const p=nn(d.type)?[0,d.domain().length]:d.domain();s(ps(d.type)?HD(p):p)})}}i.push(()=>eg(r,this.programInfo,this.domainUniformInfo))}for(const[a,s]of Object.entries(this.encoding))if(qe(s)){const c=qe(s)&&s.resolutionChannel||a,u=this.unitView.getScaleResolution(c),f=n.rangeTextures.get(u);f&&i.push(()=>je(this.programInfo,{[Tl+a]:f}))}this.getSampleFacetMode()==Sg&&i.push(()=>{let a;for(const s of this.unitView.getAncestors())if(a=s.getSampleFacetTexture(),a)break;if(!a)throw new Error("No facet texture available. This is bug.");je(this.programInfo,{uSampleFacetTexture:a})});const o=(e.picking??!1)&&this.isPickingParticipant();return i.push(()=>tg(this.viewUniformInfo,{uViewOpacity:this.unitView.getEffectiveOpacity(),uPickingEnabled:o})),this.opaque||e.picking?i.push(()=>r.disable(r.BLEND)):i.push(()=>r.enable(r.BLEND)),i}prepareSampleFacetRendering(e){const n=e.sampleFacetRenderingOptions,r=this.programInfo.uniformSetters.uSampleFacet;if(n&&r){const i=n.locSize?n.locSize.location:0,o=n.locSize?n.locSize.size:1;if(i>1||i+o<0)return!1;const a=n.targetLocSize?n.targetLocSize.location:i,s=n.targetLocSize?n.targetLocSize.size:o;this.gl.uniform4f(r.location,i,o,a,s)}return!0}render(e){}createRenderCallback(e,n){var l;const r=this;let i;const o=(l=this.unitView.getScaleResolution("x"))==null?void 0:l.getScale(),a=o&&Le(o.type),s=["index","locus"].includes(o==null?void 0:o.type)?-1:0,c=[0,0];i=d=>{if(a&&d.xIndex){const p=o.domain(),h=d.xIndex(p[0]+s,p[1],c),m=h[0],g=h[1]-m;g>0&&e(m,g)}else e(d.offset,d.count)};const u=this.rangeMap.get(void 0).count==0?n.facetId:void 0,f=this.rangeMap.get(u);return n.sampleFacetRenderingOptions?function(){f.count&&r.prepareSampleFacetRendering(n)&&i(f)}:function(){f.count&&i(f)}}setViewport(e,n){const r=this.glHelper.dpr,i=this.gl,o=this.properties,a=this.glHelper.getLogicalCanvasSize(),s=.5,c=(o.xOffset||0)+s,u=(o.yOffset||0)+s;let f,l=e;if(o.clip||n){let d=0,p=0,h;n?(l=o.clip?e.intersect(n):n,h=[e.width/l.width,e.height/l.height],p=Math.max(0,e.y2-n.y2),d=Math.max(0,e.x2-n.x2)):h=[1,1];const m=[e.x,a.height-l.y2,Math.max(0,l.width),Math.max(0,l.height)].map(w=>w*r),g=m.map(w=>Math.floor(w)),[y,b]=m.map((w,C)=>w-g[C]);i.viewport(...g),i.scissor(...g),i.enable(i.SCISSOR_TEST),f={uViewOffset:[(c+d+y)/l.width,-(u+p-b)/l.height],uViewScale:h}}else i.viewport(0,0,a.width*r,a.height*r),i.disable(i.SCISSOR_TEST),f={uViewOffset:[(e.x+c)/a.width,(a.height-e.y-u-e.height)/a.height],uViewScale:[e.width/a.width,e.height/a.height]};return tg(this.viewUniformInfo,{...f,uViewportSize:[e.width,e.height],uDevicePixelRatio:this.glHelper.dpr}),eg(this.gl,this.programInfo,this.viewUniformInfo),l.height>0&&l.width>0}findDatumAt(e,n){}}class uM extends Tn{constructor(){super([],JSON.stringify)}get(e){let n=super.get(e);return n===void 0&&(n={offset:0,count:0,xIndex:void 0},super.set(e,n)),n}migrateEntries(e){for(const[n,r]of e.entries())Object.assign(this.get(n),r)}}function Bl(t,e){const n=U3(e);let r=t[e]&&{...t[e]},i=t[n]&&{...t[n]};if(!(ot(r)||ot(i))){if(r){if(!qe(t[e]))return;if(i){if(r.type!="quantitative"){const o=(1-(r.band||1))/2;r.band=o,i.band=-o}}else if(r.type=="quantitative")i={datum:0};else{i={...r};const o=(1-(r.band??1))/2;r.band=0+o,i.band=1-o}}else r={value:0},i={value:1};t[e]=r,t[n]=i}}function Eg(t,e){t.stroke||(e?t.stroke={value:null}:t.stroke={resolutionChannel:"color",...t.color}),ot(t.stroke)&&t.stroke.value===null&&(t.strokeWidth={value:0}),t.strokeOpacity||(t.strokeOpacity={resolutionChannel:"opacity",...t.opacity})}function Dg(t,e){ot(t.fill)&&t.fill.value===null?t.fillOpacity={value:0}:t.fill||(t.fill={resolutionChannel:"color",...t.color},!e&&!t.fillOpacity&&(t.fillOpacity={value:0})),t.fillOpacity||(e?t.fillOpacity={resolutionChannel:"opacity",...t.opacity}:t.fillOpacity={value:0})}class lM extends mo{constructor(e){super(e),Object.defineProperties(this.defaultProperties,Object.getOwnPropertyDescriptors({x2:void 0,y2:void 0,filled:!0,color:"#4c78a8",opacity:1,strokeWidth:3,cornerRadius:0,minWidth:.5,minHeight:.5,minOpacity:1,tessellationZoomThreshold:10,tessellationTiles:35}))}getAttributes(){return["uniqueId","facetIndex","x","x2","y","y2","fill","stroke","fillOpacity","strokeOpacity","strokeWidth"]}getSupportedChannels(){return[...super.getSupportedChannels(),"x2","y2","fill","stroke","fillOpacity","strokeOpacity","strokeWidth"]}get opaque(){return Yr(this,"opaque",()=>!this._isRoundedCorners()&&!this._isStroked()&&ot(this.encoding.fillOpacity)&&this.encoding.fillOpacity.value==1&&this.properties.minOpacity==1)&&this.unitView.getEffectiveOpacity()==1}fixEncoding(e){return Bl(e,"x"),Bl(e,"y"),Eg(e,this.properties.filled),Dg(e,this.properties.filled),delete e.color,delete e.opacity,e}onBeforeSampleAnimation(){}onAfterSampleAnimation(){}_isRoundedCorners(){return["","TopLeft","TopRight","BottomLeft","BottomRight"].map(e=>"cornerRadius"+e).some(e=>this.properties[e]>0)}_isStroked(){const e=this.encoding.strokeWidth;return!(ot(e)&&!e.value)}async initializeGraphics(){await super.initializeGraphics();const e=[];this._isRoundedCorners()&&e.push("ROUNDED_CORNERS"),this._isStroked()&&e.push("STROKED"),this.createAndLinkShaders(ND,LD,e.map(n=>"#define "+n))}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const e=this.properties;je(this.programInfo,{uMinSize:[e.minWidth,e.minHeight],uMinOpacity:e.minOpacity,uCornerRadii:[e.cornerRadiusTopRight??e.cornerRadius,e.cornerRadiusBottomRight??e.cornerRadius,e.cornerRadiusTopLeft??e.cornerRadius,e.cornerRadiusBottomLeft??e.cornerRadius]})}updateGraphicsData(){const e=this.unitView.getCollector(),n=e.getItemCount(),r=new YD({encoders:this.encoders,attributes:this.getAttributes(),numItems:n});r.addBatches(e.facetBatches);const i=r.toArrays();this.rangeMap.migrateEntries(i.rangeMap),this.updateBufferInfo(i)}prepareRender(e){const n=super.prepareRender(e);return n.push(()=>Qr(this.gl,this.programInfo,this.vertexArrayInfo)),n}render(e){const n=this.gl;return this.createRenderCallback((r,i)=>{uo(n,this.vertexArrayInfo,n.TRIANGLE_STRIP,i,r)},e)}findDatumAt(e,n){e=Ze(e);const r=this.encoders,i=this.unitView.getCollector().facetBatches.get(e),o=r.x.accessor,a=r.x2.accessor;if(i)return i.find(s=>n>=o(s)&&n<a(s))}}const fM=`/**
527
+ `:"",c=[`precision highp float;
528
+ `,...r,ux,fB,s,...a,hB,dB,t],u=[...r,ux,pB,n],f=this.gl;this.programStatus=wB(f,this.glHelper.compileShader(f.VERTEX_SHADER,c),this.glHelper.compileShader(f.FRAGMENT_SHADER,u))}finalizeGraphicsInitialization(){const t=this.programStatus.getProgramErrors();if(t){t.detail&&console.warn(t.detail);const n=new Error("Cannot create shader program: "+t.message);throw n.view=this.unitView,n}this.programInfo=AF(this.gl,this.programStatus.program),delete this.programStatus,this.domainUniforms.length&&(this.domainUniformInfo=$w(this.gl,this.programInfo,"Domains")),this.viewUniformInfo=$w(this.gl,this.programInfo,"View"),this.gl.useProgram(this.programInfo.program),this._setDatums(),$t(this.programInfo,{uSampleFacet:[0,1,0,1],uTransitionOffset:0})}_setDatums(){for(const[t,n]of Object.entries(this.encoding))if(Cc(n)){const r=this.encoders[t],i=r.indexer?r.indexer(n.datum):kf(r.scale.type)?cx(+n.datum):+n.datum;$t(this.programInfo,{[Np+t]:i})}}deleteGraphicsData(){if(this.bufferInfo){const t=this.gl;for(let n=0;n<8;n++)t.disableVertexAttribArray(n);Object.values(this.bufferInfo.attribs).forEach(n=>this.gl.deleteBuffer(n.buffer)),this.bufferInfo.indices&&this.gl.deleteBuffer(this.bufferInfo.indices),this.bufferInfo=void 0}}updateBufferInfo(t){if(this.gl.bindVertexArray(null),this.bufferInfo&&t.vertexCount<=this.bufferInfo.allocatedVertices)for(const[n,r]of Object.entries(t.arrays))r.data&&BM(this.gl,this.bufferInfo.attribs[n],r.data,0);else this.deleteGraphicsData(),this.bufferInfo=RM(this.gl,t.arrays,{numElements:t.vertexCount}),this.bufferInfo.allocatedVertices=t.allocatedVertices,this.vertexArrayInfo=void 0}get glHelper(){return this.getContext().glHelper}get gl(){return this.glHelper.gl}onBeforeSampleAnimation(){}onAfterSampleAnimation(){}isReady(){return this.bufferInfo&&this.programInfo}isPickingParticipant(){if(this.properties.tooltip===null)return!1;for(const t of this.unitView.getAncestors())if(!t.isPickingSupported())return!1;return!0}prepareRender(t){const n=this.glHelper,r=this.gl,i=[];if(i.push(()=>{this.vertexArrayInfo||(this.vertexArrayInfo=jF(this.gl,this.programInfo,this.bufferInfo)),r.useProgram(this.programInfo.program)}),this.domainUniformInfo){for(const[o,s]of Object.entries(this.domainUniformInfo.setters)){const l=o.substring(nx.length),c=this.encoding[l],u=an(c)&&c.resolutionChannel||l,f=this.unitView.getScaleResolution(u);if(f){const h=f.getScale();i.push(()=>{const d=ai(h.type)?[0,h.domain().length]:h.domain();s(kf(h.type)?nB(d):d)})}}i.push(()=>Vw(r,this.programInfo,this.domainUniformInfo))}for(const[o,s]of Object.entries(this.encoding))if(an(s)){const l=an(s)&&s.resolutionChannel||o,c=this.unitView.getScaleResolution(l),u=n.rangeTextures.get(c);u&&i.push(()=>$t(this.programInfo,{[Fp+o]:u}))}this.getSampleFacetMode()==gx&&i.push(()=>{let o;for(const s of this.unitView.getAncestors())if(o=s.getSampleFacetTexture(),o)break;if(!o)throw new Error("No facet texture available. This is bug.");$t(this.programInfo,{uSampleFacetTexture:o})});const a=(t.picking??!1)&&this.isPickingParticipant();return i.push(()=>Yw(this.viewUniformInfo,{uViewOpacity:this.unitView.getEffectiveOpacity(),uPickingEnabled:a})),this.opaque||t.picking?i.push(()=>r.disable(r.BLEND)):i.push(()=>r.enable(r.BLEND)),i}prepareSampleFacetRendering(t){const n=t.sampleFacetRenderingOptions,r=this.programInfo.uniformSetters.uSampleFacet;if(n&&r){const i=n.locSize?n.locSize.location:0,a=n.locSize?n.locSize.size:1;if(i>1||i+a<0)return!1;const o=n.targetLocSize?n.targetLocSize.location:i,s=n.targetLocSize?n.targetLocSize.size:a;this.gl.uniform4f(r.location,i,a,o,s)}return!0}render(t){}createRenderCallback(t,n){var f;const r=this;let i;const a=(f=this.unitView.getScaleResolution("x"))==null?void 0:f.getScale(),o=a&&Ft(a.type),s=["index","locus"].includes(a==null?void 0:a.type)?-1:0,l=[0,0];i=h=>{if(o&&h.xIndex){const d=a.domain(),p=h.xIndex(d[0]+s,d[1],l),g=p[0],y=p[1]-g;y>0&&t(g,y)}else t(h.offset,h.count)};const c=this.rangeMap.get(void 0).count==0?n.facetId:void 0,u=this.rangeMap.get(c);return n.sampleFacetRenderingOptions?function(){u.count&&r.prepareSampleFacetRendering(n)&&i(u)}:function(){u.count&&i(u)}}setViewport(t,n){const r=this.glHelper.dpr,i=this.gl,a=this.properties,o=this.glHelper.getLogicalCanvasSize(),s=.5,l=(a.xOffset||0)+s,c=(a.yOffset||0)+s;let u,f=t;if(a.clip||n){let h=0,d=0,p;n?(f=a.clip?t.intersect(n):n,p=[t.width/f.width,t.height/f.height],d=Math.max(0,t.y2-n.y2),h=Math.max(0,t.x2-n.x2)):p=[1,1];const g=[t.x,o.height-f.y2,Math.max(0,f.width),Math.max(0,f.height)].map(k=>k*r),y=g.map(k=>Math.floor(k)),[v,S]=g.map((k,C)=>k-y[C]);i.viewport(...y),i.scissor(...y),i.enable(i.SCISSOR_TEST),u={uViewOffset:[(l+h+v)/f.width,-(c+d-S)/f.height],uViewScale:p}}else i.viewport(0,0,o.width*r,o.height*r),i.disable(i.SCISSOR_TEST),u={uViewOffset:[(t.x+l)/o.width,(o.height-t.y-c-t.height)/o.height],uViewScale:[t.width/o.width,t.height/o.height]};return Yw(this.viewUniformInfo,{...u,uViewportSize:[t.width,t.height],uDevicePixelRatio:this.glHelper.dpr}),Vw(this.gl,this.programInfo,this.viewUniformInfo),f.height>0&&f.width>0}findDatumAt(t,n){}}class SB extends Zi{constructor(){super([],JSON.stringify)}get(t){let n=super.get(t);return n===void 0&&(n={offset:0,count:0,xIndex:void 0},super.set(t,n)),n}migrateEntries(t){for(const[n,r]of t.entries())Object.assign(this.get(n),r)}}function zp(e,t){const n=tM(t);let r=e[t]&&{...e[t]},i=e[n]&&{...e[n]};if(!(In(r)||In(i))){if(r){if(!an(e[t]))return;if(i){if(r.type!="quantitative"){const a=(1-(r.band||1))/2;r.band=a,i.band=-a}}else if(r.type=="quantitative")i={datum:0};else{i={...r};const a=(1-(r.band??1))/2;r.band=0+a,i.band=1-a}}else r={value:0},i={value:1};e[t]=r,e[n]=i}}function mx(e,t){e.stroke||(t?e.stroke={value:null}:e.stroke={resolutionChannel:"color",...e.color}),In(e.stroke)&&e.stroke.value===null&&(e.strokeWidth={value:0}),e.strokeOpacity||(e.strokeOpacity={resolutionChannel:"opacity",...e.opacity})}function bx(e,t){In(e.fill)&&e.fill.value===null?e.fillOpacity={value:0}:e.fill||(e.fill={resolutionChannel:"color",...e.color},!t&&!e.fillOpacity&&(e.fillOpacity={value:0})),e.fillOpacity||(t?e.fillOpacity={resolutionChannel:"opacity",...e.opacity}:e.fillOpacity={value:0})}class CB extends Uc{constructor(t){super(t),Object.defineProperties(this.defaultProperties,Object.getOwnPropertyDescriptors({x2:void 0,y2:void 0,filled:!0,color:"#4c78a8",opacity:1,strokeWidth:3,cornerRadius:0,minWidth:.5,minHeight:.5,minOpacity:1,tessellationZoomThreshold:10,tessellationTiles:35}))}getAttributes(){return["uniqueId","facetIndex","x","x2","y","y2","fill","stroke","fillOpacity","strokeOpacity","strokeWidth"]}getSupportedChannels(){return[...super.getSupportedChannels(),"x2","y2","fill","stroke","fillOpacity","strokeOpacity","strokeWidth"]}get opaque(){return Lo(this,"opaque",()=>!this._isRoundedCorners()&&!this._isStroked()&&In(this.encoding.fillOpacity)&&this.encoding.fillOpacity.value==1&&this.properties.minOpacity==1)&&this.unitView.getEffectiveOpacity()==1}fixEncoding(t){return zp(t,"x"),zp(t,"y"),mx(t,this.properties.filled),bx(t,this.properties.filled),delete t.color,delete t.opacity,t}onBeforeSampleAnimation(){}onAfterSampleAnimation(){}_isRoundedCorners(){return["","TopLeft","TopRight","BottomLeft","BottomRight"].map(t=>"cornerRadius"+t).some(t=>this.properties[t]>0)}_isStroked(){const t=this.encoding.strokeWidth;return!(In(t)&&!t.value)}async initializeGraphics(){await super.initializeGraphics();const t=[];this._isRoundedCorners()&&t.push("ROUNDED_CORNERS"),this._isStroked()&&t.push("STROKED"),this.createAndLinkShaders(YF,QF,t.map(n=>"#define "+n))}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const t=this.properties;$t(this.programInfo,{uMinSize:[t.minWidth,t.minHeight],uMinOpacity:t.minOpacity,uCornerRadii:[t.cornerRadiusTopRight??t.cornerRadius,t.cornerRadiusBottomRight??t.cornerRadius,t.cornerRadiusTopLeft??t.cornerRadius,t.cornerRadiusBottomLeft??t.cornerRadius]})}updateGraphicsData(){const t=this.unitView.getCollector(),n=t.getItemCount(),r=new oB({encoders:this.encoders,attributes:this.getAttributes(),numItems:n});r.addBatches(t.facetBatches);const i=r.toArrays();this.rangeMap.migrateEntries(i.rangeMap),this.updateBufferInfo(i)}prepareRender(t){const n=super.prepareRender(t);return n.push(()=>Fo(this.gl,this.programInfo,this.vertexArrayInfo)),n}render(t){const n=this.gl;return this.createRenderCallback((r,i)=>{Lc(n,this.vertexArrayInfo,n.TRIANGLE_STRIP,i,r)},t)}findDatumAt(t,n){t=rn(t);const r=this.encoders,i=this.unitView.getCollector().facetBatches.get(t),a=r.x.accessor,o=r.x2.accessor;if(i)return i.find(s=>n>=a(s)&&n<o(s))}}const _B=`/**
529
529
  * The stroke should only grow inwards, e.g, the diameter/outline is not affected by the stroke width.
530
530
  * Thus, a point that has a zero size has no visible stroke. This allows strokes to be used with
531
531
  * geometric zoom, etc.
@@ -654,7 +654,7 @@ void main(void) {
654
654
 
655
655
  setupPicking();
656
656
  }
657
- `,dM=`const lowp vec4 white = vec4(1.0);
657
+ `,kB=`const lowp vec4 white = vec4(1.0);
658
658
  const lowp vec4 black = vec4(0.0, 0.0, 0.0, 1.0);
659
659
 
660
660
  uniform bool uInwardStroke;
@@ -777,10 +777,10 @@ void main() {
777
777
  }
778
778
  }
779
779
 
780
- `,Bt=1<<0,fn=1<<1,Ol=1<<2,hM={};class ue{get behavior(){return 0}constructor(){this.children=[],this.parent=void 0,this.completed=!1}reset(){this.completed=!1;for(const e of this.children)e.reset()}initialize(){}_updatePropagator(){this._propagate=Function("children",_t(this.children.length).map(e=>`const child${e} = children[${e}];`).join(`
781
- `)+`return function propagate(datum) {${_t(this.children.length).map(e=>`child${e}.handle(datum);`).join(`
782
- `)}}`)(this.children)}setParent(e){this.parent=e}addChild(e){if(e.parent)throw new Error("Cannot add the child! It already has a parent.");return this.children.push(e),e.setParent(this),this._updatePropagator(),this}adopt(e){e.parent&&e.parent.removeChild(e),this.addChild(e)}adoptChildrenOf(e){for(const n of e.children)this.adopt(n)}insertAsParent(e){if(this.isRoot())throw new Error("Cannot insert a new parent for a root node!");e.parent=this.parent,this.parent.children[this.parent.children.indexOf(this)]=e,this.parent._updatePropagator(),this.parent=void 0,e.addChild(this)}removeChild(e){const n=this.children.indexOf(e);if(n>-1)this.children.splice(n,1),e.parent=void 0,this._updatePropagator();else throw new Error("Trying to remove an unknown child node!")}excise(){if(this.isRoot())throw new Error("Cannot excise root node!");if(this.isTerminal())this.parent.removeChild(this);else if(this.children.length==1){const e=this.children[0];e.setParent(this.parent),this.parent.children[this.parent.children.indexOf(this)]=e,this.parent._updatePropagator(),this.setParent(void 0),this.children.length=0}else throw new Error("Cannot excise a node that has multiple children!")}isRoot(){return!this.parent}isBranching(){return this.children.length>1}isTerminal(){return this.children.length==0}visit(e){e(this);for(const n of this.children)n.visit(e);e.afterChildren&&e.afterChildren(this)}subtreeToString(e=0){var r;const n=this.children.map(i=>i.subtreeToString(e+1)).join("");return" ".repeat(e*2)+"* "+((r=/^class ([A-Za-z0-9_]+)/.exec(""+this.constructor))==null?void 0:r[1])+`
783
- `+n}getGlobalObject(){return this.parent?this.parent.getGlobalObject():hM}handle(e){this._propagate(e)}complete(){this.completed=!0;for(const e of this.children)e.complete()}beginBatch(e){for(const n of this.children)n.beginBatch(e)}_propagate(e){}}function Mg(t){return t.type=="file"}function pM(t){return t.type=="facet"}class Tg extends ue{constructor(e){super(),this.k=e.size||500,this.reset()}reset(){super.reset(),this.reservoir=[],this.W=void 0,this.ingester=this._initialIngester}_initialIngester(e){this.reservoir.push(e),this.reservoir.length==this.k&&(this.W=Math.exp(Math.log(Math.random())/this.k),this.i=this.k,this.next=this.i,this.ingester=this._finalIngester,this._setNextStop())}_finalIngester(e){++this.i==this.next&&(this.reservoir[Math.floor(Math.random()*this.k)]=e,this.W*=Math.exp(Math.log(Math.random())/this.k),this._setNextStop())}_setNextStop(){this.next+=Math.floor(Math.log(Math.random())/Math.log(1-this.W))+1}handle(e){this.ingester(e)}complete(){for(const e of this.reservoir)this._propagate(e);super.complete()}}function Ig(t,e,n){const r=new Tg({type:"sample",size:t});for(const i of e)r.handle(n(i));return r.complete(),r.reservoir}const mM={};class gM extends mo{constructor(e){super(e),Object.defineProperties(this.defaultProperties,Object.getOwnPropertyDescriptors({x:.5,y:.5,color:"#4c78a8",filled:!0,opacity:1,size:100,semanticScore:0,shape:"circle",strokeWidth:2,fillGradientStrength:0,dx:0,dy:0,angle:0,sampleFacetPadding:.1,semanticZoomFraction:.02}))}getAttributes(){return["inwardStroke","uniqueId","facetIndex","x","y","size","semanticScore","shape","strokeWidth","gradientStrength","dx","dy","fill","stroke","fillOpacity","strokeOpacity","angle"]}getSupportedChannels(){return[...super.getSupportedChannels(),"size","semanticScore","shape","strokeWidth","dx","dy","fill","stroke","fillOpacity","strokeOpacity","angle"]}getDefaultEncoding(){return{...super.getDefaultEncoding(),...mM}}fixEncoding(e){return Eg(e,this.properties.filled),Dg(e,this.properties.filled),delete e.color,delete e.opacity,e}initializeData(){super.initializeData();const e=this.unitView.getAccessor("semanticScore");e&&(this.sampledSemanticScores=Float32Array.from(Ig(1e4,this.unitView.getCollector().getData(),e)),this.sampledSemanticScores.sort((n,r)=>n-r))}async initializeGraphics(){await super.initializeGraphics(),this.createAndLinkShaders(fM,dM)}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const e=this.properties;je(this.programInfo,{uInwardStroke:e.inwardStroke,uGradientStrength:e.fillGradientStrength,uMaxRelativePointDiameter:1-2*e.sampleFacetPadding})}updateGraphicsData(){const e=this.unitView.getCollector(),n=e.getItemCount(),r=new WD({encoders:this.encoders,attributes:this.getAttributes(),numItems:Math.max(n,this.properties.minBufferSize||0)});r.addBatches(e.facetBatches);const i=r.toArrays();this.rangeMap.migrateEntries(i.rangeMap),this.updateBufferInfo(i)}_getGeometricScaleFactor(){const e=Math.pow(2,this.properties.geometricZoomBound||0);return Math.pow(Math.min(1,this.unitView.getZoomLevel()/e),1/3)}_getMaxPointSize(){const e=this.encoders.size;return e.constant?e(null):e.scale.range().reduce((n,r)=>Math.max(n,r))}getSemanticThreshold(){if(this.sampledSemanticScores){const e=Math.max(0,1-this.properties.semanticZoomFraction*this.unitView.getZoomLevel());if(e<=0)return-1/0;if(e>=1)return 1/0;{const n=this.sampledSemanticScores;return Ic(n,e)}}else return-1}prepareRender(e){const n=super.prepareRender(e);return n.push(()=>je(this.programInfo,{uMaxPointSize:this._getMaxPointSize(),uScaleFactor:this._getGeometricScaleFactor(),uSemanticThreshold:this.getSemanticThreshold()})),n.push(()=>Qr(this.gl,this.programInfo,this.vertexArrayInfo)),n}render(e){const n=this.gl;return this.createRenderCallback((r,i)=>{i&&uo(n,this.vertexArrayInfo,n.POINTS,i,r)},e)}}const yM=`// Line caps
780
+ `,Cr=1<<0,di=1<<1,Pp=1<<2,DB={};class We{get behavior(){return 0}constructor(){this.children=[],this.parent=void 0,this.completed=!1}reset(){this.completed=!1;for(const t of this.children)t.reset()}initialize(){}_updatePropagator(){this._propagate=Function("children",qr(this.children.length).map(t=>`const child${t} = children[${t}];`).join(`
781
+ `)+`return function propagate(datum) {${qr(this.children.length).map(t=>`child${t}.handle(datum);`).join(`
782
+ `)}}`)(this.children)}setParent(t){this.parent=t}addChild(t){if(t.parent)throw new Error("Cannot add the child! It already has a parent.");return this.children.push(t),t.setParent(this),this._updatePropagator(),this}adopt(t){t.parent&&t.parent.removeChild(t),this.addChild(t)}adoptChildrenOf(t){for(const n of t.children)this.adopt(n)}insertAsParent(t){if(this.isRoot())throw new Error("Cannot insert a new parent for a root node!");t.parent=this.parent,this.parent.children[this.parent.children.indexOf(this)]=t,this.parent._updatePropagator(),this.parent=void 0,t.addChild(this)}removeChild(t){const n=this.children.indexOf(t);if(n>-1)this.children.splice(n,1),t.parent=void 0,this._updatePropagator();else throw new Error("Trying to remove an unknown child node!")}excise(){if(this.isRoot())throw new Error("Cannot excise root node!");if(this.isTerminal())this.parent.removeChild(this);else if(this.children.length==1){const t=this.children[0];t.setParent(this.parent),this.parent.children[this.parent.children.indexOf(this)]=t,this.parent._updatePropagator(),this.setParent(void 0),this.children.length=0}else throw new Error("Cannot excise a node that has multiple children!")}isRoot(){return!this.parent}isBranching(){return this.children.length>1}isTerminal(){return this.children.length==0}visit(t){t(this);for(const n of this.children)n.visit(t);t.afterChildren&&t.afterChildren(this)}subtreeToString(t=0){var r;const n=this.children.map(i=>i.subtreeToString(t+1)).join("");return" ".repeat(t*2)+"* "+((r=/^class ([A-Za-z0-9_]+)/.exec(""+this.constructor))==null?void 0:r[1])+`
783
+ `+n}getGlobalObject(){return this.parent?this.parent.getGlobalObject():DB}handle(t){this._propagate(t)}complete(){this.completed=!0;for(const t of this.children)t.complete()}beginBatch(t){for(const n of this.children)n.beginBatch(t)}_propagate(t){}}function yx(e){return e.type=="file"}function IB(e){return e.type=="facet"}class vx extends We{constructor(t){super(),this.k=t.size||500,this.reset()}reset(){super.reset(),this.reservoir=[],this.W=void 0,this.ingester=this._initialIngester}_initialIngester(t){this.reservoir.push(t),this.reservoir.length==this.k&&(this.W=Math.exp(Math.log(Math.random())/this.k),this.i=this.k,this.next=this.i,this.ingester=this._finalIngester,this._setNextStop())}_finalIngester(t){++this.i==this.next&&(this.reservoir[Math.floor(Math.random()*this.k)]=t,this.W*=Math.exp(Math.log(Math.random())/this.k),this._setNextStop())}_setNextStop(){this.next+=Math.floor(Math.log(Math.random())/Math.log(1-this.W))+1}handle(t){this.ingester(t)}complete(){for(const t of this.reservoir)this._propagate(t);super.complete()}}function wx(e,t,n){const r=new vx({type:"sample",size:e});for(const i of t)r.handle(n(i));return r.complete(),r.reservoir}const TB={};class MB extends Uc{constructor(t){super(t),Object.defineProperties(this.defaultProperties,Object.getOwnPropertyDescriptors({x:.5,y:.5,color:"#4c78a8",filled:!0,opacity:1,size:100,semanticScore:0,shape:"circle",strokeWidth:2,fillGradientStrength:0,dx:0,dy:0,angle:0,sampleFacetPadding:.1,semanticZoomFraction:.02}))}getAttributes(){return["inwardStroke","uniqueId","facetIndex","x","y","size","semanticScore","shape","strokeWidth","gradientStrength","dx","dy","fill","stroke","fillOpacity","strokeOpacity","angle"]}getSupportedChannels(){return[...super.getSupportedChannels(),"size","semanticScore","shape","strokeWidth","dx","dy","fill","stroke","fillOpacity","strokeOpacity","angle"]}getDefaultEncoding(){return{...super.getDefaultEncoding(),...TB}}fixEncoding(t){return mx(t,this.properties.filled),bx(t,this.properties.filled),delete t.color,delete t.opacity,t}initializeData(){super.initializeData();const t=this.unitView.getAccessor("semanticScore");t&&(this.sampledSemanticScores=Float32Array.from(wx(1e4,this.unitView.getCollector().getData(),t)),this.sampledSemanticScores.sort((n,r)=>n-r))}async initializeGraphics(){await super.initializeGraphics(),this.createAndLinkShaders(_B,kB)}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const t=this.properties;$t(this.programInfo,{uInwardStroke:t.inwardStroke,uGradientStrength:t.fillGradientStrength,uMaxRelativePointDiameter:1-2*t.sampleFacetPadding})}updateGraphicsData(){const t=this.unitView.getCollector(),n=t.getItemCount(),r=new cB({encoders:this.encoders,attributes:this.getAttributes(),numItems:Math.max(n,this.properties.minBufferSize||0)});r.addBatches(t.facetBatches);const i=r.toArrays();this.rangeMap.migrateEntries(i.rangeMap),this.updateBufferInfo(i)}_getGeometricScaleFactor(){const t=Math.pow(2,this.properties.geometricZoomBound||0);return Math.pow(Math.min(1,this.unitView.getZoomLevel()/t),1/3)}_getMaxPointSize(){const t=this.encoders.size;return t.constant?t(null):t.scale.range().reduce((n,r)=>Math.max(n,r))}getSemanticThreshold(){if(this.sampledSemanticScores){const t=Math.max(0,1-this.properties.semanticZoomFraction*this.unitView.getZoomLevel());if(t<=0)return-1/0;if(t>=1)return 1/0;{const n=this.sampledSemanticScores;return Fd(n,t)}}else return-1}prepareRender(t){const n=super.prepareRender(t);return n.push(()=>$t(this.programInfo,{uMaxPointSize:this._getMaxPointSize(),uScaleFactor:this._getGeometricScaleFactor(),uSemanticThreshold:this.getSemanticThreshold()})),n.push(()=>Fo(this.gl,this.programInfo,this.vertexArrayInfo)),n}render(t){const n=this.gl;return this.createRenderCallback((r,i)=>{i&&Lc(n,this.vertexArrayInfo,n.POINTS,i,r)},t)}}const NB=`// Line caps
784
784
  const int BUTT = 0;
785
785
  const int SQUARE = 1;
786
786
  const int ROUND = 2;
@@ -869,7 +869,7 @@ void main(void) {
869
869
 
870
870
  setupPicking();
871
871
  }
872
- `,vM=`// Line ending
872
+ `,FB=`// Line ending
873
873
  const int BUTT = 0;
874
874
  const int SQUARE = 1;
875
875
  const int ROUND = 2;
@@ -921,7 +921,7 @@ void main(void) {
921
921
  fragColor = vPickingColor;
922
922
  }
923
923
  }
924
- `;class bM extends mo{constructor(e){super(e),this.dashTextureSize=0,Object.defineProperties(this.defaultProperties,Object.getOwnPropertyDescriptors({x2:void 0,y2:void 0,size:1,color:"black",opacity:1,minLength:0,strokeDash:null,strokeDashOffset:0,strokeCap:"butt"}))}getAttributes(){return["uniqueId","facetIndex","x","x2","y","y2","size","color","opacity"]}getSupportedChannels(){return[...super.getSupportedChannels(),"x2","y2","size"]}fixEncoding(e){if(!(e.x&&e.y&&e.x2&&e.y2))if(e.x&&e.x2&&!e.y)e.y={value:.5},e.y2=e.y;else if(e.y&&e.y2&&!e.x)e.x={value:.5},e.x2=e.x;else if(e.x&&!e.y)e.y={value:0},e.y2={value:1},e.x2=e.x;else if(e.y&&!e.x)e.x={value:0},e.x2={value:1},e.y2=e.y;else if(e.x&&e.y&&e.y2)e.x2=e.x;else if(e.y&&e.x&&e.x2)e.y2=e.y;else if(e.y&&e.x)if(!e.x2&&qe(e.y)&&e.y.type=="quantitative")e.x2=e.x,e.y2={datum:0};else if(!e.y2&&qe(e.x)&&e.x.type=="quantitative")e.y2=e.y,e.x2={datum:0};else throw new Error("A bug!");else throw new Error("Invalid x and y encodings for rule mark: "+JSON.stringify(e));return e}async initializeGraphics(){if(await super.initializeGraphics(),this.properties.strokeDash){const e=this.gl,n=AM(this.properties.strokeDash);this.dashTexture=co(e,{mag:e.NEAREST,min:e.NEAREST,internalFormat:e.R8,format:e.RED,src:n,height:1}),this.dashTextureSize=n.length}this.createAndLinkShaders(yM,vM)}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const e=this.properties;je(this.programInfo,{uMinLength:e.minLength,uDashTextureSize:this.dashTextureSize,uStrokeCap:["butt","square","round"].indexOf(e.strokeCap)})}updateGraphicsData(){const e=this.unitView.getCollector(),n=e.getItemCount(),r=new _D({encoders:this.encoders,attributes:this.getAttributes(),numItems:Math.max(n,this.properties.minBufferSize||0)});r.addBatches(e.facetBatches);const i=r.toArrays();this.rangeMap.migrateEntries(i.rangeMap),this.updateBufferInfo(i)}prepareRender(e){const n=super.prepareRender(e);return this.dashTexture&&n.push(()=>je(this.programInfo,{uDashTexture:this.dashTexture,uStrokeDashOffset:this.properties.strokeDashOffset})),n.push(()=>Qr(this.gl,this.programInfo,this.vertexArrayInfo)),n}render(e){const n=this.gl;return this.createRenderCallback((r,i)=>uo(n,this.vertexArrayInfo,n.TRIANGLE_STRIP,i,r),e)}}function AM(t){if(t.length==0||t.length%2||t.findIndex(o=>Math.round(o)!=o||o<1||o>1e3)>=0)throw new Error("Invalid stroke dash pattern: "+JSON.stringify(t));const e=t.reduce((o,a)=>o+a),n=new Uint8Array(e);let r=!0,i=0;for(let o of t){for(;o;)n[i++]=r&&255||0,o--;r=!r}return n}const xM=`uniform float uSagittaScaleFactor;
924
+ `;class BB extends Uc{constructor(t){super(t),this.dashTextureSize=0,Object.defineProperties(this.defaultProperties,Object.getOwnPropertyDescriptors({x2:void 0,y2:void 0,size:1,color:"black",opacity:1,minLength:0,strokeDash:null,strokeDashOffset:0,strokeCap:"butt"}))}getAttributes(){return["uniqueId","facetIndex","x","x2","y","y2","size","color","opacity"]}getSupportedChannels(){return[...super.getSupportedChannels(),"x2","y2","size"]}fixEncoding(t){if(!(t.x&&t.y&&t.x2&&t.y2))if(t.x&&t.x2&&!t.y)t.y={value:.5},t.y2=t.y;else if(t.y&&t.y2&&!t.x)t.x={value:.5},t.x2=t.x;else if(t.x&&!t.y)t.y={value:0},t.y2={value:1},t.x2=t.x;else if(t.y&&!t.x)t.x={value:0},t.x2={value:1},t.y2=t.y;else if(t.x&&t.y&&t.y2)t.x2=t.x;else if(t.y&&t.x&&t.x2)t.y2=t.y;else if(t.y&&t.x)if(!t.x2&&an(t.y)&&t.y.type=="quantitative")t.x2=t.x,t.y2={datum:0};else if(!t.y2&&an(t.x)&&t.x.type=="quantitative")t.y2=t.y,t.x2={datum:0};else throw new Error("A bug!");else throw new Error("Invalid x and y encodings for rule mark: "+JSON.stringify(t));return t}async initializeGraphics(){if(await super.initializeGraphics(),this.properties.strokeDash){const t=this.gl,n=LB(this.properties.strokeDash);this.dashTexture=Bc(t,{mag:t.NEAREST,min:t.NEAREST,internalFormat:t.R8,format:t.RED,src:n,height:1}),this.dashTextureSize=n.length}this.createAndLinkShaders(NB,FB)}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const t=this.properties;$t(this.programInfo,{uMinLength:t.minLength,uDashTextureSize:this.dashTextureSize,uStrokeCap:["butt","square","round"].indexOf(t.strokeCap)})}updateGraphicsData(){const t=this.unitView.getCollector(),n=t.getItemCount(),r=new sB({encoders:this.encoders,attributes:this.getAttributes(),numItems:Math.max(n,this.properties.minBufferSize||0)});r.addBatches(t.facetBatches);const i=r.toArrays();this.rangeMap.migrateEntries(i.rangeMap),this.updateBufferInfo(i)}prepareRender(t){const n=super.prepareRender(t);return this.dashTexture&&n.push(()=>$t(this.programInfo,{uDashTexture:this.dashTexture,uStrokeDashOffset:this.properties.strokeDashOffset})),n.push(()=>Fo(this.gl,this.programInfo,this.vertexArrayInfo)),n}render(t){const n=this.gl;return this.createRenderCallback((r,i)=>Lc(n,this.vertexArrayInfo,n.TRIANGLE_STRIP,i,r),t)}}function LB(e){if(e.length==0||e.length%2||e.findIndex(a=>Math.round(a)!=a||a<1||a>1e3)>=0)throw new Error("Invalid stroke dash pattern: "+JSON.stringify(e));const t=e.reduce((a,o)=>a+o),n=new Uint8Array(t);let r=!0,i=0;for(let a of e){for(;a;)n[i++]=r&&255||0,a--;r=!r}return n}const OB=`uniform float uSagittaScaleFactor;
925
925
 
926
926
  /** Make very small arcs visible */
927
927
  uniform float uMinSagittaLength;
@@ -1032,7 +1032,7 @@ void main(void) {
1032
1032
 
1033
1033
  setupPicking();
1034
1034
  }
1035
- `,wM=`in lowp vec4 vColor;
1035
+ `,RB=`in lowp vec4 vColor;
1036
1036
  in float vSize;
1037
1037
  in float vNormalLengthInPixels;
1038
1038
 
@@ -1050,7 +1050,7 @@ void main(void) {
1050
1050
  fragColor = vPickingColor;
1051
1051
  }
1052
1052
  }
1053
- `;class CM extends mo{constructor(e){super(e),Object.defineProperties(this.defaultProperties,Object.getOwnPropertyDescriptors({x:0,x2:void 0,y:0,y2:void 0,size:1,color:"black",opacity:1,segments:101,sagittaScaleFactor:1,minSagittaLength:1.5}))}getAttributes(){return["uniqueId","facetIndex","x","x2","y","y2","size","height","color","opacity"]}getSupportedChannels(){return[...super.getSupportedChannels(),"x2","y2","size"]}fixEncoding(e){return e.x||(e.x2=e.x),e.y2||(e.y2=e.y),e}async initializeGraphics(){await super.initializeGraphics(),this.createAndLinkShaders(xM,wM)}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const e=this.properties;je(this.programInfo,{uSagittaScaleFactor:e.sagittaScaleFactor,uMinSagittaLength:e.minSagittaLength})}updateGraphicsData(){const e=this.unitView.getCollector(),n=e.getItemCount(),r=new XD({encoders:this.encoders,attributes:this.getAttributes(),numItems:n});r.addBatches(e.facetBatches);const i=r.toArrays();i.arrays.strip={data:SM(this.properties.segments),numComponents:2},this.rangeMap.migrateEntries(i.rangeMap),this.arrays=Object.fromEntries(Object.entries(i.arrays).map(([o,a])=>[o,{...a,data:void 0}])),this.updateBufferInfo(i)}render(e){const n=this.gl;return this.createRenderCallback((r,i)=>{this.gl.bindVertexArray(this.vertexArrayInfo.vertexArrayObject);for(const o of Object.entries(this.bufferInfo.attribs)){const[a,s]=o;s.buffer&&s.numComponents&&s.divisor&&(s.offset=r*this.arrays[a].numComponents*4)}Qr(n,this.programInfo,this.bufferInfo),uo(n,this.bufferInfo,n.TRIANGLE_STRIP,(this.properties.segments+1)*2,0,i)},e)}}function SM(t){let e=0;const n=[];for(;e<=t;e++)n.push(e/t,.5),n.push(e/t,-.5);return n}const EM=`uniform float uSdfNumerator;
1053
+ `;class zB extends Uc{constructor(t){super(t),Object.defineProperties(this.defaultProperties,Object.getOwnPropertyDescriptors({x:0,x2:void 0,y:0,y2:void 0,size:1,color:"black",opacity:1,segments:101,sagittaScaleFactor:1,minSagittaLength:1.5}))}getAttributes(){return["uniqueId","facetIndex","x","x2","y","y2","size","height","color","opacity"]}getSupportedChannels(){return[...super.getSupportedChannels(),"x2","y2","size"]}fixEncoding(t){return t.x||(t.x2=t.x),t.y2||(t.y2=t.y),t}async initializeGraphics(){await super.initializeGraphics(),this.createAndLinkShaders(OB,RB)}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const t=this.properties;$t(this.programInfo,{uSagittaScaleFactor:t.sagittaScaleFactor,uMinSagittaLength:t.minSagittaLength})}updateGraphicsData(){const t=this.unitView.getCollector(),n=t.getItemCount(),r=new lB({encoders:this.encoders,attributes:this.getAttributes(),numItems:n});r.addBatches(t.facetBatches);const i=r.toArrays();i.arrays.strip={data:PB(this.properties.segments),numComponents:2},this.rangeMap.migrateEntries(i.rangeMap),this.arrays=Object.fromEntries(Object.entries(i.arrays).map(([a,o])=>[a,{...o,data:void 0}])),this.updateBufferInfo(i)}render(t){const n=this.gl;return this.createRenderCallback((r,i)=>{this.gl.bindVertexArray(this.vertexArrayInfo.vertexArrayObject);for(const a of Object.entries(this.bufferInfo.attribs)){const[o,s]=a;s.buffer&&s.numComponents&&s.divisor&&(s.offset=r*this.arrays[o].numComponents*4)}Fo(n,this.programInfo,this.bufferInfo),Lc(n,this.bufferInfo,n.TRIANGLE_STRIP,(this.properties.segments+1)*2,0,i)},t)}}function PB(e){let t=0;const n=[];for(;t<=e;t++)n.push(t/e,.5),n.push(t/e,-.5);return n}const UB=`uniform float uSdfNumerator;
1054
1054
 
1055
1055
  uniform vec2 uD; // dx & dy
1056
1056
 
@@ -1296,7 +1296,7 @@ void main(void) {
1296
1296
 
1297
1297
  setupPicking();
1298
1298
  }
1299
- `,DM=`uniform sampler2D uTexture;
1299
+ `,jB=`uniform sampler2D uTexture;
1300
1300
  uniform bool uLogoLetter;
1301
1301
 
1302
1302
  in vec2 vTexCoord;
@@ -1336,7 +1336,7 @@ void main() {
1336
1336
  fragColor = vPickingColor;
1337
1337
  }
1338
1338
  }
1339
- `,MM={left:-1,center:0,right:1},TM={top:-1,middle:0,bottom:1,alphabetic:1};class IM extends mo{constructor(e){super(e),Object.defineProperties(this.defaultProperties,Object.getOwnPropertyDescriptors({x:.5,y:.5,x2:void 0,y2:void 0,text:"",size:11,color:"black",opacity:1,font:void 0,fontStyle:void 0,fontWeight:void 0,align:"center",baseline:"middle",dx:0,dy:0,angle:0,fitToBand:!1,squeeze:!0,paddingX:0,paddingY:0,flushX:!0,flushY:!0,logoLetters:!1,viewportEdgeFadeWidthTop:0,viewportEdgeFadeWidthRight:0,viewportEdgeFadeWidthBottom:0,viewportEdgeFadeWidthLeft:0,viewportEdgeFadeDistanceTop:-1/0,viewportEdgeFadeDistanceRight:-1/0,viewportEdgeFadeDistanceBottom:-1/0,viewportEdgeFadeDistanceLeft:-1/0})),this.font=this.properties.font?e.context.fontManager.getFont(this.properties.font,this.properties.fontStyle,this.properties.fontWeight):e.context.fontManager.getDefaultFont()}getAttributes(){return["uniqueId","facetIndex","x","x2","y","y2","color","size","opacity","angle"]}getSupportedChannels(){return[...super.getSupportedChannels(),"x2","y2","size","text","angle"]}fixEncoding(e){for(const n of eo)this.properties.fitToBand&&Bl(e,n);return e}async initializeGraphics(){await super.initializeGraphics(),this.createAndLinkShaders(EM,DM)}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const e=this.properties;je(this.programInfo,{uPaddingX:e.paddingX,uPaddingY:e.paddingY,uFlushX:!!e.flushX,uFlushY:!!e.flushY,uAlign:[MM[e.align],TM[e.baseline]],uD:[e.dx,-e.dy],uLogoLetter:!!e.logoLetters,uSqueeze:!!e.squeeze,uViewportEdgeFadeWidth:[e.viewportEdgeFadeWidthTop,e.viewportEdgeFadeWidthRight,e.viewportEdgeFadeWidthBottom,e.viewportEdgeFadeWidthLeft],uViewportEdgeFadeDistance:[e.viewportEdgeFadeDistanceTop,e.viewportEdgeFadeDistanceRight,e.viewportEdgeFadeDistanceBottom,e.viewportEdgeFadeDistanceLeft]})}updateGraphicsData(){const e=this.unitView.getCollector(),n=e.getData(),r=this.encoding,i=this.encoders.text.accessor||this.encoders.text;let o=0;const a=r.text.format?de(r.text.format):u=>u;for(const u of n){const f=a(i(u)),l=ne(f)?f:f===null?"":""+f;o+=l&&l.length||0}const s=new ZD({encoders:this.encoders,attributes:this.getAttributes(),properties:this.properties,fontMetrics:this.font.metrics,numCharacters:Math.max(o,this.properties.minBufferSize||0)});s.addBatches(e.facetBatches);const c=s.toArrays();this.rangeMap.migrateEntries(c.rangeMap),this.updateBufferInfo(c)}prepareRender(e){const n=super.prepareRender(e);let r=.35;return this.properties.logoLetters&&(r/=2),n.push(()=>je(this.programInfo,{uTexture:this.font.texture,uSdfNumerator:this.font.metrics.common.base/(this.glHelper.dpr/r)})),n.push(()=>Qr(this.gl,this.programInfo,this.vertexArrayInfo)),n}render(e){const n=this.gl;return this.createRenderCallback((r,i)=>uo(n,this.vertexArrayInfo,n.TRIANGLES,i,r),e)}}function go(t,e,{spacing:n,devicePixelRatio:r,offset:i,reverse:o}={}){n=n||0,i=i||0;let a=0,s=0;for(const h of t)a+=ys(h.px)+(Fl(h)?0:n),s+=ys(h.grow);a-=n;const c=Math.max(0,e-a),u=r!==void 0?h=>Math.round(h*r)/r:h=>h,f=[],l=[],d=h=>{const m=f.length;if(!m)return;const g=(h?n:0)*(o?-1:1);p-=g;for(let y=0;y<m;y++)l.push({location:p+(y+1)/(m+1)*g,size:0});p+=g,f.length=0};let p=o?Math.max(e,a):0+i;if(t.length==1&&Fl(t[0]))return[{location:p,size:0}];for(let h=0;h<t.length;h++){const m=t[h];if(Fl(m))f.push(m);else{d(l.length>0);const g=ys(m.px)+(s?ys(m.grow)/s*c:0);o&&(p-=g),l.push({location:u(p),size:u(g)}),o?p-=n:p+=g+n}}return p+=o?n:-n,d(!1),l}function kM(t){let e=0,n=0;for(const r of t)e=Math.max(e,r.px??0),n=Math.max(n,r.grow??0);return{px:e,grow:n}}const Ld=class{constructor(e,n){$(this,Ho);this.width=e,this.height=n}addPadding(e){return se(this,Ho,Fd).call(this,e.width,e.height)}subtractPadding(e){return se(this,Ho,Fd).call(this,-e.width,-e.height)}};let er=Ld;Ho=new WeakSet,Fd=function(e,n){return new Ld({px:(this.width.px??0)+e,grow:this.width.grow},{px:(this.height.px??0)+n,grow:this.height.grow})};const yo=Object.freeze({px:0,grow:0}),NM=new er(yo,yo);function Fl(t){return!t.px&&!t.grow}function ys(t){return t||0}function LM(t){return t&&(le(t.px)||le(t.grow))}function kg(t){if(Og(t))throw new Error("parseSizeDef does not accept step-based sizes.");if(LM(t))return t;if(le(t))return{px:t,grow:0};if(t==="container")return{px:0,grow:1};if(!t)return{px:0,grow:1};throw new Error(`Invalid sizeDef: ${t}`)}function BM(t,e,n){return{get location(){const r=n();switch(r){case 0:return t.location;case 1:return e.location;default:return r*e.location+(1-r)*t.location}},get size(){const r=n();switch(r){case 0:return t.size;case 1:return e.size;default:return r*e.size+(1-r)*t.size}}}}function OM(t,e){const n=le(e)?()=>e:e;return{get location(){return t.location+n()},get size(){return t.size}}}function FM(t,e){const n=le(e)?()=>e:e;return{get location(){return t.location*n()},get size(){return t.size*n()}}}function Ng(t,e){return e>=t.location&&e<t.location+t.size}class Ke{constructor(e,n,r,i){this.top=e||0,this.right=n||0,this.bottom=r||0,this.left=i||0}get width(){return this.left+this.right}get height(){return this.top+this.bottom}expand(e){return e<=0?this:new Ke(this.top+e,this.right+e,this.bottom+e,this.left+e)}add(e){return new Ke(this.top+e.top,this.right+e.right,this.bottom+e.bottom,this.left+e.left)}subtract(e){return new Ke(this.top-e.top,this.right-e.right,this.bottom-e.bottom,this.left-e.left)}static createFromConfig(e){return typeof e=="number"?this.createUniformPadding(e):e?this.createFromRecord(e):Pl}static createFromRecord(e){return new Ke(e.top,e.right,e.bottom,e.left)}static zero(){return Pl}static createUniformPadding(e){return new Ke(e,e,e,e)}}const Pl=Ke.createUniformPadding(0);Object.freeze(Pl);const PM=/^([A-Za-z]+:)?\/\//;function zM(t,e){if(e&&PM.test(e))return e;const n=t();return n&&e?n.endsWith("/")?n+e:n+"/"+e:n??e}const vs="VISIT_SKIP",tr="VISIT_STOP",Lg=t=>t;class Bg{constructor(e,n,r,i){this.context=n,this.parent=r,this.name=e.name||i,this.spec=e,this.resolutions={scale:{},axis:{}},this._broadcastHandlers={},this._capturingInteractionEventListeners={},this._nonCapturingInteractionEventListeners={},xg(this),this.opacityFunction=Lg,this.blockEncodingInheritance=!1}getPadding(){return this._cache("size/padding",()=>Ke.createFromConfig(this.spec.padding))}getOverhang(){return Ke.zero()}getSize(){return this._cache("size/size",()=>this.isVisible()?this.getSizeFromSpec().addPadding(this.getPadding()):NM)}getSizeFromSpec(){const e=n=>{var i;let r=this.spec[n];if(Og(r)){const o=r.step,a=(i=this.getScaleResolution(n=="width"?"x":"y"))==null?void 0:i.getScale();if(a){let s=0;if(nn(a.type))s=a.domain().length;else if(["locus","index"].includes(a.type)){const u=a.domain();s=Re(u)-u[0]}else throw new Error(`Cannot use step-based size with "${a.type}" scale!`);const c=a;return s=ku(s,c.paddingInner(),c.paddingOuter()),{px:s*o,grow:0}}else throw new Error("Cannot use 'step' size with missing scale!")}else return(r&&kg(r))??{px:0,grow:1}};return this._cache("size/sizeFromSpec",()=>new er(e("width"),e("height")))}isVisible(){return this.context.isViewVisible(this)}isVisibleInSpec(){return this.spec.visible??!0}getEffectiveOpacity(){var e;return this.opacityFunction(((e=this.parent)==null?void 0:e.getEffectiveOpacity())??1)}getPathString(){return[...this.getAncestors()].map(e=>e.name).reverse().join("/")}*getAncestors(){let e=this;do yield e,e=e.parent;while(e)}handleBroadcast(e){for(const n of this._broadcastHandlers[e.type]||[])n(e)}_addBroadcastHandler(e,n){let r=this._broadcastHandlers[e];r||(r=[],this._broadcastHandlers[e]=r),r.push(n)}handleInteractionEvent(e,n,r){const i=r?this._capturingInteractionEventListeners:this._nonCapturingInteractionEventListeners;for(const o of i[n.type]||[])o(e,n)}addInteractionEventListener(e,n,r){const i=r?this._capturingInteractionEventListeners:this._nonCapturingInteractionEventListeners;let o=i[e];o||(o=[],i[e]=o),o.push(n)}visit(e){try{const n=e(this);if(e.postOrder&&e.postOrder(this),n!==tr)return n}catch(n){throw n.view=this,n}}onScalesResolved(){(!this.opacityFunction||this.opacityFunction===Lg)&&(this.opacityFunction=jM(this))}onBeforeRender(){}render(e,n,r={}){}getEncoding(){const e=this.parent&&!this.blockEncodingInheritance?this.parent.getEncoding():{},n=this.spec.encoding||{},r={...e,...n};for(const[i,o]of Object.entries(r))o===null&&delete r[i];return r}getFacetAccessor(e){if(this.parent)return this.parent.getFacetAccessor(this)}getFacetFields(e){var r;const n=this.getEncoding().sample;return Xn(n)?[n.field]:(r=this.parent)==null?void 0:r.getFacetFields(this)}getSampleFacetTexture(){}_getResolution(e,n){e=Or(e);let r=this;do{const i=r.resolutions[n][e];if(i)return i;r=r.parent}while(r)}getScaleResolution(e){return this._getResolution(e,"scale")}getAxisResolution(e){return this._getResolution(e,"axis")}getBaseUrl(){return zM(()=>{var e;return(e=this.parent)==null?void 0:e.getBaseUrl()},this.spec.baseUrl)}getDynamicDataSource(){throw new Error("The view does not provide dynamic data!")}isPickingSupported(){return!0}getTitleText(){const e=this.spec.title;if(e)return ne(e)?e:e.text}_cache(e,n){return Yr(this,e,n)}_invalidateCacheByPrefix(e,n="self"){switch(n){case"self":fo(this,e);break;case"ancestors":for(const r of this.getAncestors())fo(r,e);break;case"progeny":this.visit(r=>fo(r,e));break}}invalidateSizeCache(){this._invalidateCacheByPrefix("size/","ancestors")}propagateInteractionEvent(e){}}function RM(t){return"unitsPerPixel"in t}function jM(t){const e=t.spec.opacity;if(e!==void 0){if(le(e))return n=>n*e;if(RM(e)){const n=o=>{var s;const a=(s=t.getScaleResolution(o))==null?void 0:s.getScale();if(["linear","index","locus"].includes(a==null?void 0:a.type))return a},r=e.channel?n(e.channel):n("x")||n("y");if(!r)throw new Error("Cannot find a resolved quantitative scale for dynamic opacity!");const i=wu().domain(e.unitsPerPixel).range(e.values).clamp(!0);return o=>{const s=ia(r.domain())/1e3;return i(s)*o}}}return n=>n}const Og=t=>!!(t!=null&&t.step);class nr extends Bg{constructor(e,n,r,i){super(e,n,r,i),this.spec=e}*[Symbol.iterator](){}replaceChild(e,n){throw new Error("Not implemented")}visit(e){let n;try{n=e(this)}catch(r){throw r.view=this,r}if(n===tr)return n;if(n!==vs){e.beforeChildren&&e.beforeChildren(this);for(const r of this){const i=r.visit(e);if(i===tr)return i}e.afterChildren&&e.afterChildren(this),e.postOrder&&e.postOrder(this)}}findDescendantByPath(e){for(const n of this)if(n.name===e[0]){if(e.length==1)return n;if(n instanceof nr)return n.findDescendantByPath(e.slice(1))}}findChildByName(e){for(const n of this)if(n.name===e)return n}findDescendantByName(e){let n;return this.visit(r=>{if(r.name==e)return n=r,tr}),n}getConfiguredResolution(e,n){var r,i;return(i=(r=this.spec.resolve)==null?void 0:r[n])==null?void 0:i[e]}getDefaultResolution(e,n){return"shared"}getConfiguredOrDefaultResolution(e,n){return this.getConfiguredResolution(e,n)??this.getConfiguredResolution("default",n)??this.getDefaultResolution(e,n)}}function bs(t,e,n){if(n=n||[],t.some(a=>a===null)){if(t.every(a=>a===null))return null;throw console.warn(t),new Error("Cannot merge objects with nulls!")}const r={},i=(a,s)=>a===s||_r(a)&&_r(s)||_r(a)&&s===!0||a===!0&&ze(s),o=a=>{for(let s in a){const c=a[s];if(!n.includes(s)&&c!==void 0)if(r[s]!==void 0&&!i(r[s],c))console.warn(`Conflicting property ${s} of ${e}: (${JSON.stringify(r[s])} and ${JSON.stringify(a[s])}). Using ${JSON.stringify(r[s])}.`);else{const u=r[s];if(_r(u))_r(c)&&(r[s]=bs([u,c],s));else if(_r(c)){if(!(u===!0||u===void 0))throw new Error("Bug in merge! Target is: "+u);r[s]=bs([{},c],s)}else r[s]=c}}};for(const a of t)o(a);return r}function _r(t){return ze(t)&&!Array.isArray(t)}/*!
1339
+ `,HB={left:-1,center:0,right:1},GB={top:-1,middle:0,bottom:1,alphabetic:1};class $B extends Uc{constructor(t){super(t),Object.defineProperties(this.defaultProperties,Object.getOwnPropertyDescriptors({x:.5,y:.5,x2:void 0,y2:void 0,text:"",size:11,color:"black",opacity:1,font:void 0,fontStyle:void 0,fontWeight:void 0,align:"center",baseline:"middle",dx:0,dy:0,angle:0,fitToBand:!1,squeeze:!0,paddingX:0,paddingY:0,flushX:!0,flushY:!0,logoLetters:!1,viewportEdgeFadeWidthTop:0,viewportEdgeFadeWidthRight:0,viewportEdgeFadeWidthBottom:0,viewportEdgeFadeWidthLeft:0,viewportEdgeFadeDistanceTop:-1/0,viewportEdgeFadeDistanceRight:-1/0,viewportEdgeFadeDistanceBottom:-1/0,viewportEdgeFadeDistanceLeft:-1/0})),this.font=this.properties.font?t.context.fontManager.getFont(this.properties.font,this.properties.fontStyle,this.properties.fontWeight):t.context.fontManager.getDefaultFont()}getAttributes(){return["uniqueId","facetIndex","x","x2","y","y2","color","size","opacity","angle"]}getSupportedChannels(){return[...super.getSupportedChannels(),"x2","y2","size","text","angle"]}fixEncoding(t){for(const n of _c)this.properties.fitToBand&&zp(t,n);return t}async initializeGraphics(){await super.initializeGraphics(),this.createAndLinkShaders(UB,jB)}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const t=this.properties;$t(this.programInfo,{uPaddingX:t.paddingX,uPaddingY:t.paddingY,uFlushX:!!t.flushX,uFlushY:!!t.flushY,uAlign:[HB[t.align],GB[t.baseline]],uD:[t.dx,-t.dy],uLogoLetter:!!t.logoLetters,uSqueeze:!!t.squeeze,uViewportEdgeFadeWidth:[t.viewportEdgeFadeWidthTop,t.viewportEdgeFadeWidthRight,t.viewportEdgeFadeWidthBottom,t.viewportEdgeFadeWidthLeft],uViewportEdgeFadeDistance:[t.viewportEdgeFadeDistanceTop,t.viewportEdgeFadeDistanceRight,t.viewportEdgeFadeDistanceBottom,t.viewportEdgeFadeDistanceLeft]})}updateGraphicsData(){const t=this.unitView.getCollector(),n=t.getData(),r=this.encoding,i=this.encoders.text.accessor||this.encoders.text;let a=0;const o=r.text.format?rt(r.text.format):c=>c;for(const c of n){const u=o(i(c)),f=ze(u)?u:u===null?"":""+u;a+=f&&f.length||0}const s=new uB({encoders:this.encoders,attributes:this.getAttributes(),properties:this.properties,fontMetrics:this.font.metrics,numCharacters:Math.max(a,this.properties.minBufferSize||0)});s.addBatches(t.facetBatches);const l=s.toArrays();this.rangeMap.migrateEntries(l.rangeMap),this.updateBufferInfo(l)}prepareRender(t){const n=super.prepareRender(t);let r=.35;return this.properties.logoLetters&&(r/=2),n.push(()=>$t(this.programInfo,{uTexture:this.font.texture,uSdfNumerator:this.font.metrics.common.base/(this.glHelper.dpr/r)})),n.push(()=>Fo(this.gl,this.programInfo,this.vertexArrayInfo)),n}render(t){const n=this.gl;return this.createRenderCallback((r,i)=>Lc(n,this.vertexArrayInfo,n.TRIANGLES,i,r),t)}}function jc(e,t,{spacing:n,devicePixelRatio:r,offset:i,reverse:a}={}){n=n||0,i=i||0;let o=0,s=0;for(const p of e)o+=Tf(p.px)+(Up(p)?0:n),s+=Tf(p.grow);o-=n;const l=Math.max(0,t-o),c=r!==void 0?p=>Math.round(p*r)/r:p=>p,u=[],f=[],h=p=>{const g=u.length;if(!g)return;const y=(p?n:0)*(a?-1:1);d-=y;for(let v=0;v<g;v++)f.push({location:d+(v+1)/(g+1)*y,size:0});d+=y,u.length=0};let d=a?Math.max(t,o):0+i;if(e.length==1&&Up(e[0]))return[{location:d,size:0}];for(let p=0;p<e.length;p++){const g=e[p];if(Up(g))u.push(g);else{h(f.length>0);const y=Tf(g.px)+(s?Tf(g.grow)/s*l:0);a&&(d-=y),f.push({location:c(d),size:c(y)}),a?d-=n:d+=y+n}}return d+=a?n:-n,h(!1),f}function VB(e){let t=0,n=0;for(const r of e)t=Math.max(t,r.px??0),n=Math.max(n,r.grow??0);return{px:t,grow:n}}const xb=class{constructor(t,n){Fe(this,Kl);this.width=t,this.height=n}addPadding(t){return Ze(this,Kl,kb).call(this,t.width,t.height)}subtractPadding(t){return Ze(this,Kl,kb).call(this,-t.width,-t.height)}};let wa=xb;Kl=new WeakSet,kb=function(t,n){return new xb({px:(this.width.px??0)+t,grow:this.width.grow},{px:(this.height.px??0)+n,grow:this.height.grow})};const Hc=Object.freeze({px:0,grow:0}),YB=new wa(Hc,Hc);function Up(e){return!e.px&&!e.grow}function Tf(e){return e||0}function QB(e){return e&&(Ke(e.px)||Ke(e.grow))}function xx(e){if(Cx(e))throw new Error("parseSizeDef does not accept step-based sizes.");if(QB(e))return e;if(Ke(e))return{px:e,grow:0};if(e==="container")return{px:0,grow:1};if(!e)return{px:0,grow:1};throw new Error(`Invalid sizeDef: ${e}`)}function ZB(e,t,n){return{get location(){const r=n();switch(r){case 0:return e.location;case 1:return t.location;default:return r*t.location+(1-r)*e.location}},get size(){const r=n();switch(r){case 0:return e.size;case 1:return t.size;default:return r*t.size+(1-r)*e.size}}}}function qB(e,t){const n=Ke(t)?()=>t:t;return{get location(){return e.location+n()},get size(){return e.size}}}function WB(e,t){const n=Ke(t)?()=>t:t;return{get location(){return e.location*n()},get size(){return e.size*n()}}}function Ax(e,t){return t>=e.location&&t<e.location+e.size}class on{constructor(t,n,r,i){this.top=t||0,this.right=n||0,this.bottom=r||0,this.left=i||0}get width(){return this.left+this.right}get height(){return this.top+this.bottom}expand(t){return t<=0?this:new on(this.top+t,this.right+t,this.bottom+t,this.left+t)}add(t){return new on(this.top+t.top,this.right+t.right,this.bottom+t.bottom,this.left+t.left)}subtract(t){return new on(this.top-t.top,this.right-t.right,this.bottom-t.bottom,this.left-t.left)}static createFromConfig(t){return typeof t=="number"?this.createUniformPadding(t):t?this.createFromRecord(t):jp}static createFromRecord(t){return new on(t.top,t.right,t.bottom,t.left)}static zero(){return jp}static createUniformPadding(t){return new on(t,t,t,t)}}const jp=on.createUniformPadding(0);Object.freeze(jp);const XB=/^([A-Za-z]+:)?\/\//;function KB(e,t){if(t&&XB.test(t))return t;const n=e();return n&&t?n.endsWith("/")?n+t:n+"/"+t:n??t}const Mf="VISIT_SKIP",xa="VISIT_STOP",Ex=e=>e;class Sx{constructor(t,n,r,i){this.context=n,this.parent=r,this.name=t.name||i,this.spec=t,this.resolutions={scale:{},axis:{}},this._broadcastHandlers={},this._capturingInteractionEventListeners={},this._nonCapturingInteractionEventListeners={},hx(this),this.opacityFunction=Ex,this.blockEncodingInheritance=!1}getPadding(){return this._cache("size/padding",()=>on.createFromConfig(this.spec.padding))}getOverhang(){return on.zero()}getSize(){return this._cache("size/size",()=>this.isVisible()?this.getSizeFromSpec().addPadding(this.getPadding()):YB)}getSizeFromSpec(){const t=n=>{var i;let r=this.spec[n];if(Cx(r)){const a=r.step,o=(i=this.getScaleResolution(n=="width"?"x":"y"))==null?void 0:i.getScale();if(o){let s=0;if(ai(o.type))s=o.domain().length;else if(["locus","index"].includes(o.type)){const c=o.domain();s=Gt(c)-c[0]}else throw new Error(`Cannot use step-based size with "${o.type}" scale!`);const l=o;return s=B0(s,l.paddingInner(),l.paddingOuter()),{px:s*a,grow:0}}else throw new Error("Cannot use 'step' size with missing scale!")}else return(r&&xx(r))??{px:0,grow:1}};return this._cache("size/sizeFromSpec",()=>new wa(t("width"),t("height")))}isVisible(){return this.context.isViewVisible(this)}isVisibleInSpec(){return this.spec.visible??!0}getEffectiveOpacity(){var t;return this.opacityFunction(((t=this.parent)==null?void 0:t.getEffectiveOpacity())??1)}getPathString(){return[...this.getAncestors()].map(t=>t.name).reverse().join("/")}*getAncestors(){let t=this;do yield t,t=t.parent;while(t)}handleBroadcast(t){for(const n of this._broadcastHandlers[t.type]||[])n(t)}_addBroadcastHandler(t,n){let r=this._broadcastHandlers[t];r||(r=[],this._broadcastHandlers[t]=r),r.push(n)}handleInteractionEvent(t,n,r){const i=r?this._capturingInteractionEventListeners:this._nonCapturingInteractionEventListeners;for(const a of i[n.type]||[])a(t,n)}addInteractionEventListener(t,n,r){const i=r?this._capturingInteractionEventListeners:this._nonCapturingInteractionEventListeners;let a=i[t];a||(a=[],i[t]=a),a.push(n)}visit(t){try{const n=t(this);if(t.postOrder&&t.postOrder(this),n!==xa)return n}catch(n){throw n.view=this,n}}onScalesResolved(){(!this.opacityFunction||this.opacityFunction===Ex)&&(this.opacityFunction=eL(this))}onBeforeRender(){}render(t,n,r={}){}getEncoding(){const t=this.parent&&!this.blockEncodingInheritance?this.parent.getEncoding():{},n=this.spec.encoding||{},r={...t,...n};for(const[i,a]of Object.entries(r))a===null&&delete r[i];return r}getFacetAccessor(t){if(this.parent)return this.parent.getFacetAccessor(this)}getFacetFields(t){var r;const n=this.getEncoding().sample;return pa(n)?[n.field]:(r=this.parent)==null?void 0:r.getFacetFields(this)}getSampleFacetTexture(){}_getResolution(t,n){t=So(t);let r=this;do{const i=r.resolutions[n][t];if(i)return i;r=r.parent}while(r)}getScaleResolution(t){return this._getResolution(t,"scale")}getAxisResolution(t){return this._getResolution(t,"axis")}getBaseUrl(){return KB(()=>{var t;return(t=this.parent)==null?void 0:t.getBaseUrl()},this.spec.baseUrl)}getDynamicDataSource(){throw new Error("The view does not provide dynamic data!")}isPickingSupported(){return!0}getTitleText(){const t=this.spec.title;if(t)return ze(t)?t:t.text}_cache(t,n){return Lo(this,t,n)}_invalidateCacheByPrefix(t,n="self"){switch(n){case"self":Rc(this,t);break;case"ancestors":for(const r of this.getAncestors())Rc(r,t);break;case"progeny":this.visit(r=>Rc(r,t));break}}invalidateSizeCache(){this._invalidateCacheByPrefix("size/","ancestors")}propagateInteractionEvent(t){}}function JB(e){return"unitsPerPixel"in e}function eL(e){const t=e.spec.opacity;if(t!==void 0){if(Ke(t))return n=>n*t;if(JB(t)){const n=a=>{var s;const o=(s=e.getScaleResolution(a))==null?void 0:s.getScale();if(["linear","index","locus"].includes(o==null?void 0:o.type))return o},r=t.channel?n(t.channel):n("x")||n("y");if(!r)throw new Error("Cannot find a resolved quantitative scale for dynamic opacity!");const i=_0().domain(t.unitsPerPixel).range(t.values).clamp(!0);return a=>{const s=mu(r.domain())/1e3;return i(s)*a}}}return n=>n}const Cx=e=>!!(e!=null&&e.step);class Aa extends Sx{constructor(t,n,r,i){super(t,n,r,i),this.spec=t}*[Symbol.iterator](){}replaceChild(t,n){throw new Error("Not implemented")}visit(t){let n;try{n=t(this)}catch(r){throw r.view=this,r}if(n===xa)return n;if(n!==Mf){t.beforeChildren&&t.beforeChildren(this);for(const r of this){const i=r.visit(t);if(i===xa)return i}t.afterChildren&&t.afterChildren(this),t.postOrder&&t.postOrder(this)}}findDescendantByPath(t){for(const n of this)if(n.name===t[0]){if(t.length==1)return n;if(n instanceof Aa)return n.findDescendantByPath(t.slice(1))}}findChildByName(t){for(const n of this)if(n.name===t)return n}findDescendantByName(t){let n;return this.visit(r=>{if(r.name==t)return n=r,xa}),n}getConfiguredResolution(t,n){var r,i;return(i=(r=this.spec.resolve)==null?void 0:r[n])==null?void 0:i[t]}getDefaultResolution(t,n){return"shared"}getConfiguredOrDefaultResolution(t,n){return this.getConfiguredResolution(t,n)??this.getConfiguredResolution("default",n)??this.getDefaultResolution(t,n)}}function Nf(e,t,n){if(n=n||[],e.some(o=>o===null)){if(e.every(o=>o===null))return null;throw console.warn(e),new Error("Cannot merge objects with nulls!")}const r={},i=(o,s)=>o===s||Oo(o)&&Oo(s)||Oo(o)&&s===!0||o===!0&&Ht(s),a=o=>{for(let s in o){const l=o[s];if(!n.includes(s)&&l!==void 0)if(r[s]!==void 0&&!i(r[s],l))console.warn(`Conflicting property ${s} of ${t}: (${JSON.stringify(r[s])} and ${JSON.stringify(o[s])}). Using ${JSON.stringify(r[s])}.`);else{const c=r[s];if(Oo(c))Oo(l)&&(r[s]=Nf([c,l],s));else if(Oo(l)){if(!(c===!0||c===void 0))throw new Error("Bug in merge! Target is: "+c);r[s]=Nf([{},l],s)}else r[s]=l}}};for(const o of e)a(o);return r}function Oo(e){return Ht(e)&&!Array.isArray(e)}/*!
1340
1340
  * Adapted from vega-encode:
1341
1341
  * https://github.com/vega/vega/blob/master/packages/vega-encode/src/ticks.js
1342
1342
  *
@@ -1344,7 +1344,7 @@ void main() {
1344
1344
  * All rights reserved.
1345
1345
  *
1346
1346
  * BSD-3-Clause License: https://github.com/vega/vega-lite/blob/master/LICENSE
1347
- */function Fg(t,e,n){return le(e)&&n!=null&&(e=Math.min(e,~~(ia(t.domain())/n)||1)),ze(e)&&(e.step,e=e.interval),e}function Pg(t,e,n){var r=t.range(),i=Math.floor(r[0]),o=Math.ceil(tt(r));if(i>o&&(r=o,o=i,i=r),e=e.filter(function(s){return s=t(s),i<=s&&s<=o}),n>0&&e.length>1){for(var a=[e[0],tt(e)];e.length>n&&e.length>=3;)e=e.filter(function(s,c){return!(c%2)});e.length<3&&(e=a)}return e}function UM(t,e){return t.bins?Pg(t,HM(t.bins,e)):t.ticks?t.ticks(e):t.domain()}function HM(t,e){var n=t.length,r=~~(n/(e||n));return r<2?t.slice():t.filter(function(i,o){return!(o%r)})}function GM(t,e,n){var r=t.tickFormat?t.tickFormat(e,n):n?de(n):String;if(lp(t.type)){var i=VM(n);r=t.bins?i:QM(r,i)}return r}function QM(t,e){return function(n){return t(n)?e(n):""}}function VM(t){var e=Wt(t||",");if(e.precision==null){switch(e.precision=12,e.type){case"%":e.precision-=2;break;case"e":e.precision-=1;break}return YM(de(e),de(".1f")(1)[1])}else return de(e)}function YM(t,e){return function(n){var r=t(n),i=r.indexOf(e),o,a;if(i<0)return r;for(o=_M(r,i),a=o<r.length?r.slice(o):"";--o>i;)if(r[o]!=="0"){++o;break}return r.slice(0,o)+a}}function _M(t,e){var n=t.lastIndexOf("e"),r;if(n>0)return n;for(n=t.length;--n>e;)if(r=t.charCodeAt(n),r>=48&&r<=57)return n+1}/*!
1347
+ */function _x(e,t,n){return Ke(t)&&n!=null&&(t=Math.min(t,~~(mu(e.domain())/n)||1)),Ht(t)&&(t.step,t=t.interval),t}function kx(e,t,n){var r=e.range(),i=Math.floor(r[0]),a=Math.ceil(Cn(r));if(i>a&&(r=a,a=i,i=r),t=t.filter(function(s){return s=e(s),i<=s&&s<=a}),n>0&&t.length>1){for(var o=[t[0],Cn(t)];t.length>n&&t.length>=3;)t=t.filter(function(s,l){return!(l%2)});t.length<3&&(t=o)}return t}function tL(e,t){return e.bins?kx(e,nL(e.bins,t)):e.ticks?e.ticks(t):e.domain()}function nL(e,t){var n=e.length,r=~~(n/(t||n));return r<2?e.slice():e.filter(function(i,a){return!(a%r)})}function rL(e,t,n){var r=e.tickFormat?e.tickFormat(t,n):n?rt(n):String;if(nv(e.type)){var i=aL(n);r=e.bins?i:iL(r,i)}return r}function iL(e,t){return function(n){return e(n)?t(n):""}}function aL(e){var t=Wr(e||",");if(t.precision==null){switch(t.precision=12,t.type){case"%":t.precision-=2;break;case"e":t.precision-=1;break}return oL(rt(t),rt(".1f")(1)[1])}else return rt(t)}function oL(e,t){return function(n){var r=e(n),i=r.indexOf(t),a,o;if(i<0)return r;for(a=sL(r,i),o=a<r.length?r.slice(a):"";--a>i;)if(r[a]!=="0"){++a;break}return r.slice(0,a)+o}}function sL(e,t){var n=e.lastIndexOf("e"),r;if(n>0)return n;for(n=e.length;--n>t;)if(r=e.charCodeAt(n),r>=48&&r<=57)return n+1}/*!
1348
1348
  * Adapted from vega-encode:
1349
1349
  * https://github.com/vega/vega/blob/master/packages/vega-encode/src/Scale.js
1350
1350
  *
@@ -1352,45 +1352,232 @@ void main() {
1352
1352
  * All rights reserved.
1353
1353
  *
1354
1354
  * BSD-3-Clause License: https://github.com/vega/vega-lite/blob/master/LICENSE
1355
- */const WM="locus",XM="index";var ZM=5;function qM(t){const e=t.type;return!t.bins&&(e===Ir||e===zi||e===Ri)}function zg(t){return Le(t)&&![ht,XM,WM].includes(t)}function Rg(t){return t||{warn:(e,...n)=>console.warn(e,...n)}}var KM=aa(["set","modified","clear","type","scheme","schemeExtent","schemeCount","domain","domainMin","domainMid","domainMax","domainRaw","domainImplicit","nice","zero","bins","range","rangeStep","round","reverse","interpolate","interpolateGamma","zoom","fp64","name"]);function jg(t,e,n){n=Rg(n);for(const r in t)if(!KM[r]){if(r==="padding"&&zg(e.type))continue;Ie(e[r])?e[r](t[r]):n.warn("Unsupported scale property: "+r)}o8(e,t,i8(e,t,t8(e,t,n)))}function JM(t,e){const n=$M(t),r=X(n);if(!r)throw new Error("Unknown scale type: "+n);const i=r();return jg(t,i,e),i}function $M(t){var e=t.type,n="",r;return e===ht?ht+"-"+Ir:(e8(t)&&(r=t.rawDomain?t.rawDomain.length:t.domain?t.domain.length+ +(t.domainMid!=null):0,n=r===2?ht+"-":r===3?kr+"-":""),(n+e||Ir).toLowerCase())}function e8(t){const e=t.type;return Le(e)&&e!==np&&e!==rp&&(t.scheme||t.range&&t.range.length&&t.range.every(ne))}function t8(t,e,n){if(!t.domain)return 0;n=Rg(n);var r=n8(t,e.domainRaw,n);if(r>-1)return r;var i=e.domain,o=t.type,a=e.zero||e.zero===void 0&&qM(t),s,c;return i?(zg(o)&&e.padding&&i[0]!==tt(i)&&(i=r8(o,i,e.range,e.padding,e.exponent,e.constant)),(a||e.domainMin!=null||e.domainMax!=null||e.domainMid!=null)&&(s=(i=i.slice()).length-1||1,a&&(i[0]>0&&(i[0]=0),i[s]<0&&(i[s]=0)),e.domainMin!=null&&(i[0]=e.domainMin),e.domainMax!=null&&(i[s]=e.domainMax),e.domainMid!=null&&(c=e.domainMid,(c<i[0]||c>i[s])&&n.warn("Scale domainMid exceeds domain min or max.",c),i.splice(s,0,c))),t.domain(Ug(o,i,n)),o===Lu&&t.unknown(e.domainImplicit?$c:void 0),e.nice&&t.nice&&t.nice(e.nice!==!0&&Fg(t,e.nice)||null),i.length):0}function n8(t,e,n){return e?(t.domain(Ug(t.type,e,n)),e.length):-1}function r8(t,e,n,r,i,o){var a=Math.abs(tt(n)-n[0]),s=a/(a-2*r),c=t===tn?Vd(e,null,s):t===Ri?yc(e,null,s,.5):t===zi?yc(e,null,s,i||1):t===Oa?l2(e,null,s,o||1):gc(e,null,s);return e=e.slice(),e[0]=c[0],e[e.length-1]=c[1],e}function Ug(t,e,n){if(lp(t)){var r=Math.abs(e.reduce(function(i,o){return i+(o<0?-1:o>0?1:0)},0));r!==e.length&&n.warn("Log scale domain includes zero: "+oa(e))}return e}function i8(t,e,n){let r=e.bins;if(r&&!_e(r)){const i=(r.start==null||r.stop==null)&&t.domain(),o=r.start==null?i[0]:r.start,a=r.stop==null?tt(i):r.stop,s=r.step;s||ae("Scale bins parameter missing step property."),r=_t(o,a+s,s)}return r?t.bins=r:t.bins&&delete t.bins,t.type===Ou&&(r?!e.domain&&!e.domainRaw&&(t.domain(r),n=r.length):t.bins=t.domain()),n}function o8(t,e,n){var r=t.type,i=e.round||!1,o=e.range;if(e.rangeStep!=null)o=a8(r,e,n);else if(e.scheme&&(o=s8(r,e,n),Ie(o))){if(t.interpolator)return t.interpolator(o);ae(`Scale type ${r} does not support interpolating color schemes.`)}if(o&&Pa(r))return t.interpolator(za(zl(o,e.reverse),e.interpolate,e.interpolateGamma));o&&e.interpolate&&t.interpolate?t.interpolate(fp(e.interpolate,e.interpolateGamma)):Ie(t.round)?t.round(i):Ie(t.rangeRound)&&t.interpolate(i?Fi:$t),o&&t.range(zl(o,e.reverse))}function a8(t,e,n){t!==ap&&t!==Bu&&ae("Only band and point scales support rangeStep.");var r=(e.paddingOuter!=null?e.paddingOuter:e.padding)||0,i=t===Bu?1:(e.paddingInner!=null?e.paddingInner:e.padding)||0;return[0,e.rangeStep*ku(n,i,r)]}function s8(t,e,n){var r=e.schemeExtent,i,o;return _e(e.scheme)?o=za(e.scheme,e.interpolate,e.interpolateGamma):(i=e.scheme.toLowerCase(),o=Pu(i),o||ae(`Unrecognized scheme name: ${e.scheme}`)),n=t===op?n+1:t===Ou?n-1:t===Nu||t===ip?+e.schemeCount||ZM:n,Pa(t)?Hg(o,r,e.reverse):Ie(o)?f4(Hg(o,r),n):t===Lu?o:o.slice(0,n)}function Hg(t,e,n){return Ie(t)&&(e||n)?l4(t,zl(e||[0,1],n)):t}function zl(t,e){return e?t.slice().reverse():t}const Rl=de(",d");function c8(t){return t.chrom+":"+Rl(Math.floor(t.pos+1))}function u8(t,e){return t.chrom+":"+Rl(Math.floor(t.pos+1))+"-"+(t.chrom!=e.chrom?e.chrom+":":"")+Rl(Math.ceil(e.pos))}const l8="https://genomespy.app/data/genomes/";class f8{constructor(e){if(this.config=e,!this.config.contigs&&typeof this.config.name!="string")throw new Error("No name has been defined for the genome assembly!");this.chromosomes=[],this.cumulativeChromPositions=new Map,this.chromosomesByName=new Map,this.startByIndex=[],this.totalSize=0,this.config.contigs&&this.setChromSizes(this.config.contigs)}get name(){return this.config.name}async load(e){if(!this.config.contigs){this.config.baseUrl?this.baseUrl=/^http(s)?/.test(this.config.baseUrl)?this.config.baseUrl:e+"/"+this.config.baseUrl:this.baseUrl=l8;try{this.setChromSizes(d8(await Ni({baseURL:this.baseUrl}).load(`${this.config.name}/${this.name}.chrom.sizes`)))}catch(n){throw new Error(`Could not load chrom sizes: ${n.message}`)}}}setChromSizes(e){let n=0;this.startByIndex=[0];for(let r=0;r<e.length;r++){this.startByIndex.push(n);const i=e[r].size,o={...e[r],continuousStart:n,continuousEnd:n+i,continuousInterval:[n,n+i],index:r,number:r+1,odd:!(r&1)};this.chromosomes.push(o);const a=o.name.replace(/^chr/i,"");for(const s of["chr"+a,"CHR"+a,"Chr"+a,o.number,""+o.number,a,o.name])this.cumulativeChromPositions.set(s,n),this.chromosomesByName.set(s,o);n+=o.size}this.totalSize=n}getExtent(){return[0,this.totalSize]}toContinuous(e,n){let r=this.cumulativeChromPositions.get(e);if(r===void 0)throw new Error("Unknown chromosome/contig: "+e);return r+ +n}toChromosome(e){if(e>=this.totalSize)return;e=Math.floor(e);const n=Mn(this.startByIndex,e)-1;if(n>0&&n<=this.chromosomes.length)return this.chromosomes[n-1]}toChromosomal(e){const n=this.toChromosome(e);if(n)return{chrom:n.name,pos:Math.floor(e)-n.continuousStart}}getChromosome(e){return this.chromosomesByName.get(e)}formatInterval(e){return u8(...this.toChromosomalInterval(e))}toChromosomalInterval(e){const n=this.toChromosomal(e[0]+.5),r=this.toChromosomal(e[1]-.5);return r.pos+=1,[n,r]}toContinuousInterval(e){var i;let[n,r]=e;return r||(r=n),[this.toContinuous(n.chrom,n.pos??0),this.toContinuous(r.chrom,r.pos??((i=this.chromosomesByName.get(r.chrom))==null?void 0:i.size))]}parseInterval(e){const n=e.match(/^(chr[0-9A-Z]+)(?::([0-9,]+)(?:-(?:(chr[0-9A-Z]+):)?([0-9,]+))?)?$/);if(n){const r=n[1];if(n.slice(2).every(s=>s===void 0)){const s=this.getChromosome(r);return s?[s.continuousStart,s.continuousEnd]:void 0}const i=n[3]||r,o=parseInt(n[2].replace(/,/g,"")),a=n[4]!==void 0?parseInt(n[4].replace(/,/g,"")):o;return[this.toContinuous(r,o-1),this.toContinuous(i,a)]}}}function d8(t){return I2(t).filter(e=>/^chr[0-9A-Z]+$/.test(e[0])).map(([e,n])=>({name:e,size:parseInt(n)}))}function Gg(t){return ze(t)&&"chrom"in t}function h8(t){return t.every(Gg)}class vo extends Array{constructor(){super(),this.type=void 0}extend(e){return this}extendAll(e){if(e instanceof vo&&e.type!=this.type)throw new Error(`Cannot combine different types of domains: ${this.type} and ${e.type}`);for(const n of e)this.extend(n);return this}extendAllWithAccessor(e,n){for(const r of e)this.extend(n(r));return this}}class jl extends vo{constructor(){super(),this.type="quantitative"}extend(e){return e==null||Number.isNaN(e)?this:(e=+e,this.length?e<this[0]?this[0]=e:e>this[1]&&(this[1]=e):(this.push(e),this.push(e)),this)}}class Qg extends vo{constructor(){super(),this.type="ordinal",this.uniqueValues=new Set}extend(e){return e==null||Number.isNaN(e)?this:(this.uniqueValues.has(e)||(this.uniqueValues.add(e),this.push(e)),this)}}class Vg extends Qg{constructor(){super(),this.type="nominal"}}class p8 extends vo{constructor(e){super();let n=0;for(let r=1;r<e.length;r++)n+=Math.sign(e[r]-e[r-1]);if(Math.abs(n)!=e.length-1)throw new Error("Piecewise domain must be strictly increasing or decreasing: "+JSON.stringify(e));e.forEach(r=>this.push(r))}extend(e){if(this.includes(e))return this;throw new Error("Piecewise domains are immutable and cannot be unioned!")}}const Yg={quantitative:jl,index:jl,locus:jl,nominal:Vg,ordinal:Qg};function _g(t,e){if(t=="quantitative"&&m8(e)){const n=new p8(e);return n.type=t,n}else if(Yg[t]){const n=new Yg[t];return n.type=t,e&&n.extendAll(e),n}throw new Error("Unknown type: "+t)}function m8(t){return t&&t.length>0&&t.length!=2&&t.every(e=>typeof e=="number")}function Wg(t){return((t*=2)<=1?t*t:--t*(2-t)+1)/2}function g8(t){return--t*t*t+1}function y8(t){return(Math.pow(2,-10*t)-.0009765625)*1.0009775171065494}function v8(t){return 1-y8(t)}const Xg="quantitative",Ul="ordinal",Hl="nominal",Zg="locus",b8="index";class A8{constructor(e){this.channel=e,this.members=[],this.type=null,this._zoomExtent=void 0,this._domainListeners=new Set,this.name=void 0,this._scale=void 0}addEventListener(e,n){if(e!="domain")throw new Error("Unsupported event type: "+e);this._domainListeners.add(n)}removeEventListener(e,n){if(e!="domain")throw new Error("Unsupported event type: "+e);this._domainListeners.delete(n)}_notifyDomainListeners(){for(const e of this._domainListeners.values())e({type:"domain",scaleResolution:this})}pushUnitView(e,n){var a;const r=Zu(e,n),i=r.type,o=(a=r==null?void 0:r.scale)==null?void 0:a.name;if(o){if(this.name!==void 0&&o!=this.name)throw new Error(`Shared scales have conflicting names: "${o}" vs. "${this.name}"!`);this.name=o}if(!this.type)this.type=i;else if(i!==this.type&&!no(n))throw new Error(`Can not use shared scale for different data types: ${this.type} vs. ${i}. Use "resolve: independent" for channel ${this.channel}`);this.members.push({view:e,channel:n})}isExplicitDomain(){return!!this.getConfiguredDomain()}_getMergedScaleProps(){return Yr(this,"mergedScaleProps",()=>{const e=this.members.map(n=>Zu(n.view,n.channel).scale).filter(n=>n!==void 0);return bs(e,"scale",["domain"])})}getScaleProps(){return Yr(this,"scaleProps",()=>{const e=this._getMergedScaleProps();if(e===null||e.type=="null")return{type:"null"};const n={...this._getDefaultScaleProperties(this.type),...e};n.type||(n.type=x8(this.channel,this.type));const r=this.getInitialDomain();return r&&r.length>0?n.domain=r:nn(n.type)?n.domain=new Vg:n.scheme&&(n.domain=[0,1]),!n.domain&&n.domainMid!==void 0&&(n.domain=[n.domainMin??0,n.domainMax??1]),this.channel=="y"&&nn(n.type)&&n.reverse==null&&(n.reverse=!0),n.range&&n.scheme&&delete n.scheme,!("zoom"in n)&&["index","locus"].includes(n.type)&&(n.zoom=!0),w8(n,this.channel),n})}getInitialDomain(){return this.getConfiguredDomain()??(this.type==Zg?this.getGenome().getExtent():this.getDataDomain())}getConfiguredDomain(){return this._reduceDomains(e=>no(e.channel)?void 0:e.view.getConfiguredDomain(e.channel))}getDataDomain(){return this._reduceDomains(e=>no(e.channel)?void 0:e.view.extractDataDomain(e.channel))}reconfigure(){if(this._scale&&this._scale.type!="null"){Ag(this,"scaleProps");const e=this.getScaleProps();jg(e,this._scale),Le(this._scale.type)&&(this._zoomExtent=this._getZoomExtent())}}getScale(){if(this._scale)return this._scale;const e=this.getScaleProps(),n=JM(e);return this._scale=n,Jx(n)&&n.genome(this.getGenome()),Le(n.type)&&(this._zoomExtent=this._getZoomExtent()),n}getDomain(){return this.getScale().domain()}getComplexDomain(){var e;return((e=this.getGenome())==null?void 0:e.toChromosomalInterval(this.getDomain()))??this.getDomain()}isZoomed(){return this.isZoomable()&&Lp(this.getInitialDomain(),this.getDomain())}isZoomable(){if(!Wp(this.channel))return!1;const e=this.getScale().type;return["linear","locus","index","log","pow","sqrt"].includes(e)?!!this.getScaleProps().zoom:!1}zoom(e,n,r){if(!this.isZoomable())return!1;const i=this.getScale(),o=i.domain();let a=[...o],s=i.invert(n);switch(this.getScaleProps().reverse&&(r=-r),"align"in i&&(s+=i.align()),i.type){case"linear":case"index":case"locus":a=s2(a,r||0),a=gc(a,s,e);break;case"log":a=c2(a,r||0),a=Vd(a,s,e);break;case"pow":case"sqrt":{const c=i;a=u2(a,r||0,c.exponent()),a=yc(a,s,e,c.exponent());break}default:throw new Error("Zooming is not implemented for: "+i.type)}return this._zoomExtent&&(a=f2(a,this._zoomExtent[0],this._zoomExtent[1])),[0,1].some(c=>a[c]!=o[c])?(i.domain(a),this._notifyDomainListeners(),!0):!1}async zoomTo(e,n=!1){var s;if(ra(n)&&(n=n?700:0),!this.isZoomable())throw new Error("Not a zoomable scale!");const r=this.fromComplexInterval(e),i=(s=this.members[0])==null?void 0:s.view.context.animator,o=this.getScale(),a=o.domain();if(n>0&&a.length==2){const c=a[1]-a[0],u=a[0]+c/2,f=r[1]-r[0],l=r[0]+f/2,d=L0([u,0,c],[l,0,f]).rho(.7);await i.transition({duration:n/1e3*d.duration,easingFunction:Wg,onUpdate:p=>{const[h,,m]=d(p);o.domain([h-m/2,h+m/2]),this._notifyDomainListeners()}}),o.domain(r),this._notifyDomainListeners()}else o.domain(r),i==null||i.requestRender(),this._notifyDomainListeners()}resetZoom(){if(!this.isZoomable())throw new Error("Not a zoomable scale!");const e=this.getDomain(),n=this.getInitialDomain();return[0,1].some(r=>n[r]!=e[r])?(this._scale.domain(n),this._notifyDomainListeners(),!0):!1}getZoomLevel(){return this.isZoomable()?ia(this._zoomExtent)/ia(this.getScale().domain()):1}_getZoomExtent(){const e=this.getScaleProps(),n=e.zoom;if(C8(n)&&_e(n.extent))return this.fromComplexInterval(n.extent);if(n)return e.type=="locus"?this.getGenome().getExtent():this._scale.domain()}_getDefaultScaleProperties(e){const n=this.channel,r={};return this.isExplicitDomain()&&(r.zero=!1),to(n)?r.nice=!this.isExplicitDomain():Zn(n)?r.scheme=e==Hl?"tableau10":e==Ul?"blues":"viridis":_a(n)?r.range=Zp(n):n=="size"?r.range=[0,400]:n=="angle"&&(r.range=[0,360]),r}getGenome(){var n;if(this.type!=="locus")return;const e=(n=this.members[0].view.context.genomeStore)==null?void 0:n.getGenome();if(!e)throw new Error("No genome has been defined!");return e}invertToComplex(e){const n=this.getScale();if("invert"in n){const r=n.invert(e);return this.toComplex(r)}else throw new Error("The scale does not support inverting!")}toComplex(e){const n=this.getGenome();return n?n.toChromosomal(e):e}fromComplex(e){return Gg(e)?this.getGenome().toContinuous(e.chrom,e.pos):e}fromComplexInterval(e){return this.type==="locus"&&h8(e)?this.getGenome().toContinuousInterval(e):e}_getViewPaths(){return this.members.map(e=>e.view.getPathString()).join(", ")}_reduceDomains(e){const n=this.members.map(e).filter(r=>!!r);if(n.length)return n.reduce((r,i)=>r.extendAll(i))}}function x8(t,e){if(e==b8||e==Zg){if(Wp(t))return e;throw new Error(`${t} does not support ${e} data type. Only positional channels do.`)}const n={x:["band","band","linear"],y:["band","band","linear"],size:[void 0,"point","linear"],opacity:[void 0,"point","linear"],fillOpacity:[void 0,"point","linear"],strokeOpacity:[void 0,"point","linear"],color:["ordinal","ordinal","linear"],fill:["ordinal","ordinal","linear"],stroke:["ordinal","ordinal","linear"],strokeWidth:[void 0,void 0,"linear"],shape:["ordinal","ordinal",void 0],dx:[void 0,void 0,"null"],dy:[void 0,void 0,"null"],angle:[void 0,void 0,"linear"]},i=["uniqueId","facetIndex","semanticScore","search","text","sample"].includes(t)?"null":n[t]?n[t][[Hl,Ul,Xg].indexOf(e)]:e==Xg?"linear":"ordinal";if(i===void 0)throw new Error(`Channel "${t}" is not compatible with "${e}" data type. Use of a proper scale may be needed.`);return i}function w8(t,e){to(e)&&t.type!=="ordinal"&&(t.range=[0,1]),e=="opacity"&&Le(t.type)&&(t.clamp=!0)}function C8(t){return ze(t)}function Gl(...t){for(const e of t)if(e!==void 0)return e}class S8{constructor(e){this.channel=e,this.members=[]}get scaleResolution(){var e;return(e=Re(this.members))==null?void 0:e.view.getScaleResolution(this.channel)}pushUnitView(e,n){const r=e.getScaleResolution(this.channel);if(!r)throw new Error("Cannot find a scale resolution!");if(this.scaleResolution&&r!==this.scaleResolution)throw new Error("Shared axes must have a shared scale!");this.members.push({view:e,channel:n})}getAxisProps(){return Yr(this,"axisProps",()=>{const e=this.members.map(n=>{const r=n.view.mark.encoding[n.channel];return"axis"in r&&r.axis});return e.length>0&&e.some(n=>n===null)?null:bs(e.filter(n=>n!==void 0),"axis",["title"])})}getTitle(){const e=o=>{var s;const a=Zu(o.view,o.channel);if(!ot(a))return{member:o,explicitTitle:Gl((s=a.axis)==null?void 0:s.title,a.title),implicitTitle:Gl(Xn(a)?a.field:void 0,qu(a)?a.expr:void 0)}},n=this.members.map(e),r=n.filter(o=>{var a;if(no(o.member.channel)&&!o.explicitTitle){const s=Or(o.member.channel);return((a=n.find(c=>c.member.view==o.member.view&&c.member.channel==s))==null?void 0:a.explicitTitle)===void 0}return!0}),i=new Set(r.map(o=>Gl(o.explicitTitle,o.implicitTitle)).filter(ne));return i.size?[...i].join(", "):null}}class qg extends Bg{constructor(e,n,r,i){super(e,n,r,i),this.spec=e}}class Ot extends nr{constructor(e,n,r,i){super(e,n,r,i),this.spec=e,this.children=(e.layer||[]).map((o,a)=>{if(Wl(o)||_l(o))return n.createView(o,this,"layer"+a);throw new Error("LayerView accepts only unit or layer specs as children!")})}*[Symbol.iterator](){for(const e of this.children)yield e}render(e,n,r={}){if(this.isVisible()){e.pushView(this,n);for(const i of this.children)i.render(e,n,r);e.popView(this)}}propagateInteractionEvent(e){this.handleInteractionEvent(void 0,e,!0),this.children.length&&this.children.at(-1).propagateInteractionEvent(e),!e.stopped&&this.handleInteractionEvent(void 0,e,!1)}}class Kg{constructor(e,n){this.n=e,this.maxCols=n??1/0}get nRows(){return this.maxCols==1/0?1:Math.ceil(this.n/this.maxCols)}get nCols(){return Math.min(this.n,this.maxCols)}get rowIndices(){const e=[],n=this.nCols,r=this.nRows;for(let i=0;i<r;i++){const o=[];e.push(o);for(let a=0;a<n;a++){const s=i*n+a;s<this.n&&o.push(s)}}return e}get colIndices(){const e=[],n=this.nCols,r=this.nRows;for(let i=0;i<n;i++){const o=[];e.push(o);for(let a=0;a<r;a++){const s=a*n+i;s<this.n&&o.push(s)}}return e}getCellIndex(e,n){let r=0;if(this.maxCols==1/0)r=n==0?e:void 0;else{if(e>=this.maxCols)return;r=n*this.nCols+e}return r<this.n?r:void 0}getCellCoords(e){if(!(e<0||e>=this.n))return[e%this.nCols,Math.floor(e/this.nCols)]}}function Ft(t){return()=>t}const Vt=class{static create(e,n,r,i){return new Vt(Ft(e),Ft(n),Ft(r),Ft(i))}_offset(e,n){const r=this["_"+e];if(n===0)return r;switch(typeof n){case"number":return()=>r()+n;case"function":return()=>r()+n();default:throw new Error("Not a number of function")}}_passThrough(e){return this._offset(e,0)}constructor(e,n,r,i){this._x=e,this._y=n,this._width=r,this._height=i}get x(){return this._x()}get y(){return this._y()}get width(){return this._width()}get height(){return this._height()}get x2(){return this._x()+this._width()}get y2(){return this._y()+this._height()}equals(e){return e?this===e||this.x===e.x&&this.y===e.y&&this.width===e.width&&this.height===e.height:!1}modify(e){if(!Object.keys(e).length)return this;const n=r=>{const i=e[r];return typeof i=="number"?Ft(i):typeof i=="function"?i:this._passThrough(r)};return new Vt(n("x"),n("y"),n("width"),n("height"))}translate(e,n){return e===0&&n===0?this:new Vt(this._offset("x",e),this._offset("y",n),this._passThrough("width"),this._passThrough("height"))}translateBy(e){return this.translate(e.x,e.y)}expand(e,n=1){return e.left==0&&e.top==0&&e.right==0&&e.bottom==0?this:new Vt(e.left?this._offset("x",-e.left*n):this._passThrough("x"),e.top?this._offset("y",-e.top*n):this._passThrough("y"),e.width?this._offset("width",e.width*n):this._passThrough("width"),e.height?this._offset("height",e.height*n):this._passThrough("height"))}shrink(e){return this.expand(e,-1)}intersect(e){return this===e?this:new Vt(()=>Math.max(this.x,e.x),()=>Math.max(this.y,e.y),()=>Math.min(this.x2,e.x2)-Math.max(this.x,e.x),()=>Math.min(this.y2,e.y2)-Math.max(this.y,e.y))}isDefined(){return this.width>=0&&this.height>=0}flatten(){return new Vt(Ft(this.x),Ft(this.y),Ft(this.width),Ft(this.height))}containsPoint(e,n){return e>=this.x&&e<this.x2&&n>=this.y&&n<this.y2}normalizePoint(e,n){return{x:(e-this.x)/this.width,y:(n-this.y)/this.height}}toString(){return`Rectangle: x: ${this.x}, y: ${this.y}, width: ${this.width}, height: ${this.height}`}};let dn=Vt;hc(dn,"ZERO",Vt.create(0,0,0,0));function Jg(t,e,n){return n=(n-t)/(e-t),n=Math.max(0,Math.min(1,n)),n*n*(3-2*n)}class rr extends ue{get identifier(){}handle(e){throw new Error("Source does not handle incoming data!")}async load(){}}function $g(t){const e={...t.format};if(e.type??(e.type=T8(t)&&E8(t.url)),e.parse??(e.parse="auto"),!e.type)throw new Error("Format for the data source was not defined and it could not be inferred: "+JSON.stringify(t));return e}function E8(t){var e;if(Array.isArray(t)&&(t=t[0]),t)return(e=t.match(/\.(csv|tsv|json)/))==null?void 0:e[1]}const As=t=>typeof t!="object"?D8:M8,D8=t=>({data:t}),M8=t=>t;function T8(t){return"url"in t}function I8(t){return"dynamicCallbackSource"in t}class e1 extends rr{constructor(e){super(),this.callback=e}loadSynchronously(){if(!this.callback)return;const e=this.callback();if(!e||typeof e[Symbol.iterator]!="function")throw new Error("Dynamic data callback didn't return iterable data!");this.reset(),this.beginBatch({type:"file"});let n;for(const r of e)n||(n=As(r)),this._propagate(n(r));this.complete()}async load(){this.loadSynchronously()}}const t1="chromosome_ticks_and_labels",n1={x:"width",y:"height"};function Ql(t){return t=="x"?"y":"x"}const Vl={x:["bottom","top"],y:["left","right"]},r1=Object.fromEntries(Object.entries(Vl).map(([t,e])=>e.map(n=>[n,t])).flat(1));function ir(t){return r1[t]}class i1 extends Ot{constructor(e,n,r,i){const o=n=="locus",a={...o?L8:o1,...N8(n,e),...e};if(super(o?B8(a):a1(a),r,i,`axis_${e.orient}`),this.axisProps=a,this.axisUpdateRequested=!0,this._addBroadcastHandler("layout",()=>{this.axisUpdateRequested=!0}),this.previousScaleDomain=[],this.axisLength=void 0,this.ticks=[],this.tickSource=new e1(()=>this.ticks),o){const s=ir(this.axisProps.orient),c=this.getScaleResolution(s).getGenome();this.findChildByName(t1).getDynamicDataSource=()=>new e1(()=>c.chromosomes)}this.blockEncodingInheritance=!0}getOrient(){return this.axisProps.orient}getSize(){const e={px:this.getPerpendicularSize()},n={grow:1};return r1[this.axisProps.orient]=="x"?new er(n,e):new er(e,n)}getPerpendicularSize(){return Yl(this.axisProps)}getDynamicDataSource(){return this.tickSource}_updateAxisData(){const e=ir(this.axisProps.orient),n=this.getScaleResolution(e).getScale(),r=n.domain();if(Lp(r,this.previousScaleDomain)&&!this.axisUpdateRequested)return;this.previousScaleDomain=r;const i=this.ticks,o=k8(this.axisProps,n,this.axisLength,i);o!==i&&(this.ticks=o,this.tickSource.loadSynchronously()),this.axisUpdateRequested=!1}onBeforeRender(){super.onBeforeRender(),this._updateAxisData()}render(e,n,r={}){this.isVisible()&&(this.axisLength=n[n1[ir(this.getOrient())]],super.render(e,n,r))}isPickingSupported(){return!1}}function Yl(t){const e=ir(t.orient);let n=t.ticks&&t.tickSize||0;return t.labels&&(n+=t.labelPadding,e=="x"?n+=t.labelFontSize:n+=30),t.title&&(n+=t.titlePadding+t.titleFontSize),n=Math.min(t.maxExtent||1/0,Math.max(t.minExtent||0,n)),n}function k8(t,e,n,r=[]){const i=s=>25+60*Jg(100,700,s);let o=le(t.tickCount)?t.tickCount:Math.round(n/i(n));o=Fg(e,o,t.tickMinStep);const a=t.values?Pg(e,t.values,o):UM(e,o);if(b4(a,r,s=>s,s=>s.value))return r;{const s=GM(e,o,t.format);return a.map(c=>({value:c,label:s(c)}))}}const o1={values:null,minExtent:20,maxExtent:1/0,offset:0,domain:!0,domainWidth:1,domainColor:"gray",domainDash:null,domainDashOffset:0,domainCap:"square",ticks:!0,tickSize:5,tickWidth:1,tickColor:"gray",tickDash:null,tickDashOffset:0,tickCap:"square",tickCount:null,tickMinStep:null,labels:!0,labelAlign:"center",labelBaseline:"middle",labelPadding:4,labelFontSize:10,labelLimit:180,labelColor:"black",format:null,titleColor:"black",titleFont:"sans-serif",titleFontSize:10,titlePadding:3};function N8(t,e){const n=e.orient,r=t=="nominal"||t=="ordinal";let i="center",o="middle",a=e.labelAngle??((n=="top"||n=="bottom")&&r?-90:0);switch(n){case"left":i="right";break;case"right":i="left";break;case"top":case"bottom":Math.abs(a)>30?(i=a>0==(n=="bottom")?"left":"right",o="middle"):o=n=="top"?"alphabetic":"top";break}return{labelAlign:i,labelAngle:a,labelBaseline:o}}function a1(t){const e={...t,extent:Yl(t)},n=ir(e.orient),r=Ql(n),i=e.orient=="bottom"||e.orient=="right"?1:-1,o=e.orient=="bottom"||e.orient=="left"?1:0,a=()=>({name:"domain",data:{values:[0]},mark:{type:"rule",clip:!1,strokeDash:e.domainDash,strokeCap:e.domainCap,color:e.domainColor,[r]:o,size:e.domainWidth}}),s=()=>({name:"labels",mark:{type:"text",clip:!1,align:e.labelAlign,angle:e.labelAngle,baseline:e.labelBaseline,[r+"Offset"]:(e.tickSize+e.labelPadding)*i,[r]:o,size:e.labelFontSize,color:e.labelColor,minBufferSize:1500},encoding:{[n]:{field:"value",type:"quantitative"},text:{field:"label"}}}),c=()=>({name:"ticks",mark:{type:"rule",clip:!1,strokeDash:e.tickDash,strokeCap:e.tickCap,color:e.tickColor,size:e.tickWidth,minBufferSize:300},encoding:{[r]:{value:o},[r+"2"]:{value:o-e.tickSize/e.extent*(o?1:-1)}}}),u=()=>({name:"title",data:{values:[0]},mark:{type:"text",clip:!1,align:"center",baseline:e.orient=="bottom"?"bottom":"top",angle:[0,90,0,-90][["top","right","bottom","left"].indexOf(e.orient)],text:e.title,color:e.titleColor,[n]:.5,[r]:1-o}}),f=()=>{const d={name:"ticks_and_labels",encoding:{[n]:{field:"value",type:"quantitative"}},layer:[]};return e.ticks&&d.layer.push(c()),e.labels&&d.layer.push(s()),d},l={[n1[Ql(ir(e.orient))]]:e.extent,data:{dynamicCallbackSource:!0},layer:[]};return e.domain&&l.layer.push(a()),(e.ticks||e.labels)&&l.layer.push(f()),e.title&&l.layer.push(u()),l}const L8={...o1,chromTicks:!0,chromTickSize:18,chromTickWidth:1,chromTickColor:"#989898",chromTickDash:[4,2],chromTickDashOffset:1,chromLabels:!0,chromLabelFontSize:13,chromLabelFontWeight:"normal",chromLabelFontStyle:"normal",chromLabelColor:"black",chromLabelAlign:"left",chromLabelPadding:7};function B8(t){const e={...t,extent:Yl(t)},n=ir(e.orient),r=Ql(n),i=e.orient=="bottom"||e.orient=="left"?1:0,o=()=>({name:"chromosome_ticks",mark:{type:"rule",strokeDash:t.chromTickDash,strokeDashOffset:t.chromTickDashOffset,[r]:i,[r+"2"]:i-e.chromTickSize/e.extent*(i?1:-1),color:t.chromTickColor,size:e.chromTickWidth}}),a=()=>{let u;switch(e.orient){case"top":u={y:0,angle:0,paddingX:4,dy:-e.chromLabelPadding,viewportEdgeFadeWidthLeft:20,viewportEdgeFadeWidthRight:20,viewportEdgeFadeDistanceRight:-10,viewportEdgeFadeDistanceLeft:-20};break;case"bottom":u={y:1,angle:0,paddingX:4,dy:e.chromLabelPadding+e.chromLabelFontSize*.73,viewportEdgeFadeWidthLeft:20,viewportEdgeFadeWidthRight:20,viewportEdgeFadeDistanceRight:-10,viewportEdgeFadeDistanceLeft:-20};break;case"left":u={x:1,angle:-90,paddingY:4,dy:-e.chromLabelPadding,viewportEdgeFadeWidthBottom:20,viewportEdgeFadeWidthTop:20,viewportEdgeFadeDistanceBottom:-20,viewportEdgeFadeDistanceTop:-10};break;case"right":u={x:0,angle:90,align:"right",paddingY:4,dy:-e.chromLabelPadding};break;default:u={}}return{name:"chromosome_labels",mark:{type:"text",size:e.chromLabelFontSize,font:e.chromLabelFont,fontWeight:e.chromLabelFontWeight,fontStyle:e.chromLabelFontStyle,color:e.chromLabelColor,align:t.chromLabelAlign,baseline:"alphabetic",clip:!1,...u},encoding:{[n+"2"]:{field:"continuousEnd",type:"locus"},text:{field:"name"}}}};let s;switch(e.orient){case"bottom":case"top":s={};break;case"left":s={labelAngle:-90,labelAlign:"center",labelPadding:6};break;case"right":s={labelAngle:90,labelAlign:"center",labelPadding:6};break;default:s={}}const c=a1({...t,...s});if(t.chromTicks||t.chromLabels){const u={name:t1,data:{dynamicCallbackSource:!0},encoding:{[n]:{field:"continuousStart",type:"locus",band:0}},layer:[]};if(t.chromTicks&&u.layer.push(o()),t.chromLabels){u.layer.push(a());let f;c.layer.filter(l=>l.name=="ticks_and_labels").forEach(l=>l.layer.filter(d=>d.name=="labels").forEach(d=>{f=d.mark})),f&&(e.orient=="top"||e.orient=="bottom"?(f.viewportEdgeFadeWidthLeft=30,f.viewportEdgeFadeDistanceLeft=40):(f.viewportEdgeFadeWidthBottom=30,f.viewportEdgeFadeDistanceBottom=40))}c.layer.push(u)}return c}const s1={anchor:"middle",frame:"group",offset:10,orient:"top",align:void 0,angle:0,baseline:"alphabetic",dx:0,dy:0,color:void 0,font:void 0,fontSize:12,fontStyle:"normal",fontWeight:"normal"},O8={orient:"left",anchor:"middle",align:"right",baseline:"middle",angle:0,fontSize:12},F8={orient:"top",anchor:"start",align:"left",baseline:"top",offset:-10,dx:10,fontSize:12},P8={start:0,middle:.5,end:1},z8={start:"left",middle:"center",end:"right"};function R8(t){if(!t)return;const e=ne(t)?{text:t}:t;if(!e.text||e.orient=="none")return;const n={"track-title":O8,overlay:F8}[e.style]??{},r={...s1,...n,...e};let i={},o={x:0,y:0};const a=P8[r.anchor??"middle"];switch(r.orient){case"top":o={x:a,y:1},i={baseline:"alphabetic",angle:0};break;case"right":o={x:1,y:1-a},i={baseline:"alphabetic",angle:90};break;case"bottom":o={x:a,y:0},i={baseline:"top",angle:0};break;case"left":o={x:0,y:a},i={baseline:"alphabetic",angle:-90};break}const s={...s1,...i,...n,...e},c={xOffset:0,yOffset:0};switch(r.orient){case"top":c.yOffset=-s.offset;break;case"right":c.xOffset=s.offset;break;case"bottom":c.yOffset=s.offset;break;case"left":c.xOffset=-s.offset;break}return{configurableVisibility:!1,data:{values:[{}]},mark:{type:"text",tooltip:null,clip:!1,...o,...c,text:s.text,align:s.align??z8[s.anchor],angle:s.angle,baseline:s.baseline,dx:s.dx,dy:s.dy,color:s.color,font:s.font,size:s.fontSize,fontStyle:s.fontStyle,fontWeight:s.fontWeight}}}function c1(t,e,n,r){if(t.type=="wheel"){t.uiEvent.preventDefault();const i=t.uiEvent,o=i.deltaMode?120:1;let{x:a,y:s}=t.point;if(r){const c=r.mark.encoders;c.x&&!c.x2&&!c.x.constantValue&&(a=+c.x(r.datum)*e.width+e.x),c.y&&!c.y2&&!c.y.constantValue&&(s=(1-+c.y(r.datum))*e.height+e.y)}Math.abs(i.deltaX)<Math.abs(i.deltaY)?n({x:a,y:s,xDelta:0,yDelta:0,zDelta:i.deltaY*o/300}):n({x:a,y:s,xDelta:-i.deltaX*o,yDelta:0,zDelta:0})}else if(t.type=="mousedown"&&t.uiEvent.button===0){const i=t.uiEvent;i.preventDefault();let o=i;const a=c=>{n({x:o.clientX,y:o.clientY,xDelta:c.clientX-o.clientX,yDelta:c.clientY-o.clientY,zDelta:0}),o=c},s=c=>{document.removeEventListener("mousemove",a),document.removeEventListener("mouseup",s)};document.addEventListener("mouseup",s,!1),document.addEventListener("mousemove",a,!1)}}class u1 extends nr{constructor(n,r,i,o,a){super(n,r,i,o);$(this,Go);$(this,Et);$(this,oc);$(this,ac);$(this,br);$(this,Qo);$(this,Vo);$(this,Yo);$(this,sc);$(this,si,1/0);$(this,ci,10);$(this,$e,[]);$(this,ui,0);this.spec=n,et(this,ci,n.spacing??10),et(this,si,a),et(this,$e,[]),this.wrappingFacet=!1,this._createChildren()}_createChildren(){}appendChild(n){n.parent??(n.parent=this),j(this,$e).push(se(this,Go,Pd).call(this,n)),_b(this,ui)._++}setChildren(n){for(const r of n)this.appendChild(r)}replaceChild(n,r){const i=j(this,$e).findIndex(o=>o.view==n);if(i>=0)j(this,$e)[i]=se(this,Go,Pd).call(this,r);else throw new Error("Not my child view!")}get children(){return j(this,$e).map(n=>n.view)}get childCount(){return j(this,$e).length}onScalesResolved(){super.onScalesResolved(),se(this,ac,qb).call(this)}*[Symbol.iterator](){for(const n of j(this,$e)){n.background&&(yield n.background);for(const r of Object.values(n.axes))r&&(yield r);yield n.view,n.title&&(yield n.title)}}getOverhang(){const n=se(this,br,Jo).call(this,"column"),r=se(this,br,Jo).call(this,"row");return!n.length||!r.length?Ke.zero():new Ke(r.at(0).axisBefore,n.at(-1).axisAfter,r.at(-1).axisAfter,n.at(0).axisBefore)}getSize(){return this._cache("size",()=>new er(se(this,Vo,Rd).call(this,"column"),se(this,Vo,Rd).call(this,"row")).subtractPadding(this.getOverhang()).addPadding(this.getPadding()))}render(n,r,i={}){if(!this.isVisible())return;this.parent||(r=r.shrink(this.getPadding())),n.pushView(this,r);const o={devicePixelRatio:this.context.glHelper.dpr},a=go(se(this,Qo,zd).call(this,"column"),r.width,o),s=go(se(this,Qo,zd).call(this,"row"),r.height,o),c=new Kg(j(this,Et,Cn).length,j(this,si)??1/0);for(const[u,f]of j(this,Et,Cn).entries()){const{view:l,axes:d,background:p,title:h}=f,[m,g]=c.getCellCoords(u),y=a[se(this,Yo,jd).call(this,"column",m)],b=s[se(this,Yo,jd).call(this,"row",g)],w=l.getSize(),C=l.getPadding().subtract(l.getOverhang()),x=y.location+C.left,v=b.location+C.top,A=(w.width.grow?y.size:w.width.px)-C.width,D=(w.height.grow?b.size:w.height.px)-C.height,k=new dn(()=>r.x+x,()=>r.y+v,()=>A,()=>D);f.coords=k,p==null||p.render(n,k,i);const O=U8(l);O&&l.render(n,k,i);for(const[T,B]of Object.entries(d)){const G=B.axisProps;let Q;const De=B.getPerpendicularSize();T=="bottom"?Q=k.translate(0,k.height+G.offset).modify({height:De}):T=="top"?Q=k.translate(0,-De-G.offset).modify({height:De}):T=="left"?Q=k.translate(-De-G.offset,0).modify({width:De}):T=="right"&&(Q=k.translate(k.width+G.offset,0).modify({width:De})),B.render(n,Q)}O||l.render(n,k,i),h==null||h.render(n,k,{...i,clipRect:void 0})}n.popView(this)}propagateInteractionEvent(n){if(this.handleInteractionEvent(void 0,n,!0),n.stopped)return;const r=j(this,Et,Cn).find(o=>o.coords.containsPoint(n.point.x,n.point.y)),i=r==null?void 0:r.view;i&&(i.propagateInteractionEvent(n),(i instanceof pe||i instanceof Ot)&&c1(n,r.coords,o=>se(this,sc,Kb).call(this,r.coords,r.view,o),this.context.getCurrentHover())),!n.stopped&&this.handleInteractionEvent(void 0,n,!1)}getDefaultResolution(n,r){return"independent"}}si=new WeakMap,ci=new WeakMap,$e=new WeakMap,ui=new WeakMap,Go=new WeakSet,Pd=function(n){var i;const r={view:n,background:void 0,axes:{},coords:dn.ZERO};if(n instanceof pe||n instanceof Ot){const o=(i=n.spec)==null?void 0:i.view;if(o!=null&&o.fill||o!=null&&o.stroke){const s=new pe(l1(o),this.context,n,"background"+j(this,ui));s.blockEncodingInheritance=!0,r.background=s}const a=R8(n.spec.title);if(a){const s=new pe(a,this.context,n,"title"+j(this,ui));s.blockEncodingInheritance=!0,r.title=s}}return r},Et=new WeakSet,Cn=function(){return j(this,$e).filter(n=>n.view.isVisible())},oc=new WeakSet,Zb=function(){return new Kg(j(this,Et,Cn).length,j(this,si)??1/0)},ac=new WeakSet,qb=function(){if(Object.keys(this.resolutions.axis).length)throw new Error("ConcatView does not (currently) support shared axes!");for(const n of j(this,$e)){const{view:r,axes:i}=n,o=(a,s,c)=>{const u=a.getAxisProps();if(u!==null){if(!u.orient){for(const f of Vl[s])if(!i[f]){u.orient=f;break}if(!u.orient)throw new Error("No slots available for an axis! Perhaps a LayerView has more than two children?")}if(u.title??(u.title=a.getTitle()),!Vl[s].includes(u.orient))throw new Error(`Invalid axis orientation "${u.orient}" on channel "${s}"!`);if(i[u.orient])throw new Error(`An axis with the orient "${u.orient}" already exists!`);i[u.orient]=new i1(u,a.scaleResolution.type,this.context,c)}};if(r instanceof pe||r instanceof Ot)for(const a of["x","y"]){const s=r.resolutions.axis[a];s&&o(s,a,r)}if(r instanceof Ot){for(const a of r.children)for(const[s,c]of Object.entries(a.resolutions.axis)){const u=c.getAxisProps();u&&u.orient&&o(c,s,a)}for(const a of r.children)for(const[s,c]of Object.entries(a.resolutions.axis)){const u=c.getAxisProps();u&&!u.orient&&o(c,s,a)}}}},br=new WeakSet,Jo=function(n){const r=n=="column"?["left","right"]:["top","bottom"],i=n=="column"?"width":"height",o=(a,s)=>a.map(c=>{const u=j(this,Et,Cn)[c].axes[r[s]];if(u)return Math.max(u.getPerpendicularSize()+u.axisProps.offset,0);const f=j(this,Et,Cn)[c].view.getOverhang();return n=="column"?s?f.right:f.left:s?f.bottom:f.top}).reduce((c,u)=>Math.max(c,u),0);return j(this,oc,Zb)[n=="column"?"colIndices":"rowIndices"].map(a=>({axisBefore:o(a,0),axisAfter:o(a,1),view:kM(a.map(s=>j(this,Et,Cn)[s].view.getSize()[i]))}))},Qo=new WeakSet,zd=function(n){const r=se(this,br,Jo).call(this,n),i=[];i.push(yo);for(const[o,a]of r.entries())o>0&&i.push({px:j(this,ci),grow:0}),(o==0||this.wrappingFacet)&&i.push(yo),i.push({px:a.axisBefore,grow:0}),i.push(a.view),i.push({px:a.axisAfter,grow:0}),(o==r.length-1||this.wrappingFacet)&&i.push(yo);return i},Vo=new WeakSet,Rd=function(n){let r=0,i=0;const o=(n=="row"&&this.spec.height)??(n=="column"&&this.spec.width);if(o||o===0)return kg(o);const a=se(this,br,Jo).call(this,n);for(const[s,c]of a.entries())s>0&&(i+=j(this,ci)),(s==0||this.wrappingFacet)&&(i+=0),i+=c.axisBefore,i+=c.view.px??0,r+=c.view.grow??0,i+=c.axisAfter,(s==a.length-1||this.wrappingFacet)&&(i+=0);return{px:i,grow:r}},Yo=new WeakSet,jd=function(n,r){return n=="row"&&this.wrappingFacet?1+6*r+2:2+4*r+1},sc=new WeakSet,Kb=function(n,r,i){for(const[o,a]of Object.entries(j8(r))){if(a.size<=0)continue;const s=n.normalizePoint(i.x,i.y),c=n.normalizePoint(i.x+i.xDelta,i.y+i.yDelta),u={x:c.x-s.x,y:c.y-s.y};for(const f of a)f.zoom(2**i.zDelta,o=="y"?1-s[o]:s[o],o=="x"?u.x:-u.y)}this.context.animator.requestRender()};function l1(t){return{configurableVisibility:!1,data:{values:[{}]},mark:{fill:null,strokeWidth:1,fillOpacity:t.fill?1:0,...t,type:"rect",clip:!1,tooltip:null}}}function j8(t){const e={x:new Set,y:new Set};return t.visit(n=>{for(const[r,i]of Object.entries(e)){const o=n.getScaleResolution(r);o&&o.isZoomable()&&i.add(o)}}),e}function U8(t){let e=!0;return t.visit(n=>{n instanceof pe&&e&&(e=n.mark.properties.clip)}),e}class Wr extends u1{constructor(e,n,r,i){super(e,n,r,i,Zl(e)?e.columns:Xl(e)?1:1/0),this.spec=e}_createChildren(){const e=this.spec,n=Zl(e)?e.concat:Xl(e)?e.vconcat:e.hconcat;this.setChildren(n.map((r,i)=>this.context.createView(r,this,"grid"+i)))}}class H8{constructor(){this.types=[];const e=n=>(r,i,o,a)=>new n(r,i,o,r.name??a);this.addViewType(G8,e(qg)),this.addViewType(Wl,e(Ot)),this.addViewType(_l,e(pe)),this.addViewType(Xl,e(Wr)),this.addViewType(Q8,e(Wr)),this.addViewType(Zl,e(Wr))}addViewType(e,n){this.types.push({specGuard:e,factory:n})}createView(e,n,r,i){const o=this.types.find(a=>a.specGuard(e));if(o)return o.factory(e,n,r,i??"unnamed");throw new Error("Invalid spec, cannot figure out the view type from the properties: "+JSON.stringify([...Object.keys(e)]))}isViewSpec(e){const n=this.types.filter(r=>r.specGuard(e));if(n.length>1)throw new Error("Ambiguous spec. Cannot create a view!");return n.length==1}}function _l(t){return"mark"in t&&(ne(t.mark)||ze(t.mark))}function Wl(t){return"layer"in t&&ze(t.layer)}function f1(t){return t&&(_l(t)||Wl(t))&&"aggregateSamples"in t}function G8(t){return"import"in t}function Xl(t){return"vconcat"in t&&_e(t.vconcat)}function Q8(t){return"hconcat"in t&&_e(t.hconcat)}function Zl(t){return"concat"in t&&_e(t.concat)}const V8={point:gM,rect:lM,rule:bM,link:CM,text:IM};class pe extends nr{constructor(e,n,r,i){super(e,n,r,i),this.spec=e;const o=V8[this.getMarkType()];if(o)this.mark=new o(this);else throw new Error(`No such mark: ${this.getMarkType()}`);this.sampleAggregateViews=[],this._initializeAggregateViews(),this.coords=void 0}*[Symbol.iterator](){for(const e of this.sampleAggregateViews)yield e}replaceChild(e,n){const r=this.sampleAggregateViews.indexOf(e);if(r>=0)this.sampleAggregateViews[r]=n;else throw new Error("Not my child view!")}render(e,n,r={}){this.isVisible()&&(this.coords=n,e.pushView(this,n),e.renderMark(this.mark,r),e.popView(this))}getMarkType(){return typeof this.spec.mark=="object"?this.spec.mark.type:this.spec.mark}resolve(e){const n=this.mark.encoding;for(const[r,i]of Object.entries(n)){if(!qe(i))continue;let o=Or(i.resolutionChannel??r);if(e=="axis"&&!to(o))continue;let a=this;for(;a.parent instanceof nr&&["shared","excluded"].includes(a.parent.getConfiguredOrDefaultResolution(o,e))&&a.getConfiguredOrDefaultResolution(o,e)!="excluded";)a=a.parent;a.resolutions[e][o]||(a.resolutions[e][o]=e=="scale"?new A8(o):new S8(o)),to(r)?a.resolutions[e][o].pushUnitView(this,r):e=="scale"&&a.resolutions[e][o].pushUnitView(this,r)}}getAccessor(e){return this._cache("accessor/"+e,()=>{const n=this.mark.encoding;if(n&&n[e])return this.context.accessorFactory.createAccessor(n[e])})}getFacetAccessor(e){const n=this.getAccessor("sample");return n||super.getFacetAccessor(this)}getCollector(){return this.context.dataFlow.findCollectorByKey(this)}_validateDomainQuery(e){if(no(e))throw new Error(`getDomain(${e}), must only be called for primary channels!`);const n=this.mark.encoding[e];if(!qe(n))throw new Error("The channel has no scale, cannot get domain!");return n}getConfiguredDomain(e){const n=this._validateDomainQuery(e),r=n&&n.scale&&n.scale.domain;if(r){const i=this.getScaleResolution(n.resolutionChannel??e);return _g(n.type??"nominal",i.fromComplexInterval(r))}}extractDataDomain(e){const r=this._validateDomainQuery(e).type??"nominal",i=s=>{let c;const u=this.mark.encoding[s];if(u){const f=this.context.accessorFactory.createAccessor(u);if(f)if(c=_g(r),f.constant)c.extend(f({}));else{const l=this.getCollector();l!=null&&l.completed&&l.visitData(d=>c.extend(f(d)))}}return c};let o=i(e);const a=Ku[e];if(a){const s=i(a);s&&o.extendAll(s)}return o}getZoomLevel(){const e=n=>{var r;return((r=this.getScaleResolution(n))==null?void 0:r.getZoomLevel())??1};return eo.map(e).reduce((n,r)=>n*r,1)}_initializeAggregateViews(){if(f1(this.spec))for(const e of this.spec.aggregateSamples){const n=e.transform??[];n.length&&Re(n).type!="collect"&&n.push({type:"collect"}),n.push({type:"mergeFacets"}),e.transform=n,e.encoding={...e.encoding??{},sample:null};const r=this.context.createView(e,this,"summaryView");r.getFacetFields=i=>{},this.sampleAggregateViews.push(r)}}propagateInteractionEvent(e){e.target=this}getDefaultResolution(e,n){return e=="x"?"shared":"independent"}}function*ql(t,e=[]){for(const[n,r]of t.entries())if(r instanceof Map)for(const i of ql(r,[...e,n]))yield i;else yield[[...e,n],r]}class bo extends ue{get behavior(){return Ol}constructor(e){super(),this.params=e??{type:"collect"},this.observers=[],this.facetBatches=void 0,this._init()}_init(){this._data=[],this.facetBatches=new Tn([],JSON.stringify),this.facetBatches.set(void 0,this._data)}reset(){super.reset(),this._init()}handle(e){this._data.push(e)}beginBatch(e){pM(e)&&(this._data=[],this.facetBatches.set(Ze(e.facetId),this._data))}complete(){var i,o;const e=(i=this.params)==null?void 0:i.sort,n=e?Yd(e.field,e.order):void 0,r=a=>{n&&a.sort(n)};if((o=this.params.groupby)!=null&&o.length){if(this.facetBatches.size>1)throw new Error("TODO: Support faceted data!");const a=this.params.groupby.map(c=>q(c)),s=pi(this._data,...a);this.facetBatches.clear();for(const[c,u]of ql(s))this.facetBatches.set(c,u)}for(const a of this.facetBatches.values())r(a);if(this.children.length)for(const[a,s]of this.facetBatches.entries()){if(a){const c={type:"facet",facetId:a};for(const u of this.children)u.beginBatch(c)}for(const c of s)this._propagate(c)}super.complete();for(const a of this.observers)a(this)}getData(){switch(this._checkStatus(),this.facetBatches.size){case 0:return[];case 1:return[...this.facetBatches.values()][0];default:{const e=this.facetBatches;return{[Symbol.iterator]:function*(){for(const r of e.values())for(let i=0;i<r.length;i++)yield r[i]}}}}}visitData(e){this._checkStatus();for(const n of this.facetBatches.values())for(let r=0;r<n.length;r++)e(n[r])}getItemCount(){let e=0;for(const n of this.facetBatches.values())e+=n.length;return e}_checkStatus(){if(!this.completed)throw new Error("Data propagation is not completed! No data are available.")}}class Ao{constructor(){this.ids=[],this.values=[],this.length=0}clear(){this.length=0}push(e,n){let r=this.length++;for(;r>0;){const i=r-1>>1,o=this.values[i];if(n>=o)break;this.ids[r]=this.ids[i],this.values[r]=o,r=i}this.ids[r]=e,this.values[r]=n}pop(){if(this.length===0)return;const e=this.ids[0];if(this.length--,this.length>0){const n=this.ids[0]=this.ids[this.length],r=this.values[0]=this.values[this.length],i=this.length>>1;let o=0;for(;o<i;){let a=(o<<1)+1;const s=a+1;let c=this.ids[a],u=this.values[a];const f=this.values[s];if(s<this.length&&f<u&&(a=s,c=this.ids[s],u=f),u>=r)break;this.ids[o]=c,this.values[o]=u,o=a}this.ids[o]=n,this.values[o]=r}return e}peek(){if(this.length!==0)return this.ids[0]}peekValue(){if(this.length!==0)return this.values[0]}shrink(){this.ids.length=this.values.length=this.length}}class Y8 extends ue{get behavior(){return Bt}constructor(e){super(),this.params=e,this.startAccessor=q(e.start),this.endAccessor=q(e.end),this.chromAccessor=e.chrom?q(e.chrom):n=>{},this.weightAccessor=e.weight?q(e.weight):n=>1,this.as={coverage:e.as||"coverage",start:e.asStart||e.start,end:e.asEnd||e.end,chrom:e.asChrom||e.chrom},this.createSegment=new Function("start","end","coverage","chrom","return {"+Object.entries(this.as).filter(([n,r])=>r).map(([n,r])=>`${JSON.stringify(r)}: ${n}`).join(", ")+"};"),this.ends=new Ao}reset(){super.reset(),this.initialize()}initialize(){const e=this.as.coverage,n=this.as.end,r=this.as.chrom,i=this.startAccessor,o=this.endAccessor,a=this.chromAccessor,s=this.weightAccessor;let c,u,f,l=0,d;const p=this.ends;p.clear();const h=(g,y,b)=>{if(g==y)return;let w=!1;c&&(c[e]===b?(c[n]=y,w=!0):c[e]!=0&&this._propagate(c)),w||(c=this.createSegment(g,y,b,f))},m=()=>{let g;for(;(g=p.peekValue())!==void 0;)h(d,g,l),d=g,l-=p.pop();d=void 0,c&&(this._propagate(c),c=void 0)};this.handle=g=>{const y=i(g);let b;for(;(b=p.peekValue())!==void 0&&b<y;)h(d,b,l),d=b,l-=p.pop();if(r){let C=a(g);C!==u&&(m(),f=C,u=f)}d!==void 0&&h(d,y,l),d=y;const w=s(g);l+=w,p.push(w,o(g))},this.complete=()=>{m(),super.complete()}}}function _8(t,e,n=0,r=t.length){const i=new Ao,o=r-n;let a;for(a=0;a<e&&a<o;a++)i.push(a,t[n+a]);for(;a<o;a++){const u=t[n+a];u>=i.peekValue()&&(i.push(a,u),i.pop())}const s=[];let c;for(;(c=i.pop())!==void 0;)s.push(n+c);return s.reverse()}class W8{constructor(e,n=-1/0,r=1/0){this.maxSize=e,this.lowerLimit=n,this.upperLimit=r;const i=this.maxSize*2+1;this.lowerLimits=new Float64Array(i),this.upperLimits=new Float64Array(i),this.lowerChildren=new Int32Array(i),this.upperChildren=new Int32Array(i),this.reset()}reset(){this.lowerLimits.fill(0),this.upperLimits.fill(0),this.lowerChildren.fill(0),this.upperChildren.fill(0),this.n=1,this.lowerLimits[0]=this.lowerLimit,this.upperLimits[0]=this.upperLimit}_findSlot(e,n,r=0){if(e>=this.lowerLimits[r]&&n<=this.upperLimits[r]){const i=this.lowerChildren[r];if(i){const o=this._findSlot(e,n,i);return o>=0?o:this._findSlot(e,n,this.upperChildren[r])}else return r}else return-1}reserve(e,n){if(n-e<=0)throw new Error("Cannot reserve an empty or negative-size slot!");if(this.n+1>this.lowerLimits.length)return!1;const r=this._findSlot(e,n);if(r<0)return!1;const i=this.n++,o=this.n++;return this.lowerLimits[i]=this.lowerLimits[r],this.upperLimits[i]=e,this.lowerLimits[o]=n,this.upperLimits[o]=this.upperLimits[r],this.lowerChildren[r]=i,this.upperChildren[r]=o,!0}}class X8 extends ue{get behavior(){return Ol}constructor(e,n){if(super(),this.params=e,this._data=[],this.channel=e.channel??"x",!["x","y"].includes(this.channel))throw new Error("Invalid channel: "+this.channel);this.posAccessor=q(this.params.pos),this.posBisector=sa(this.posAccessor),this.scoreAccessor=q(this.params.score),this.widthAccessor=q(this.params.width),this.laneAccessor=this.params.lane?q(this.params.lane):i=>0,this.padding=this.params.padding??0,this.reservationMaps=new Map,this.resolution=n.getScaleResolution(this.channel);const r=()=>this._filterAndPropagate();this.schedule=()=>n.context.animator.requestTransition(r),this.resolution.addEventListener("domain",i=>this.schedule()),n._addBroadcastHandler("layoutComputed",()=>this.schedule())}complete(){const e=this.posAccessor;this._data.sort((n,r)=>e(n)-e(r)),this._scores=this._data.map(this.scoreAccessor);for(const n of new Set(this._data.map(this.laneAccessor)))this.reservationMaps.set(n,new W8(200));this.schedule(),super.complete()}_filterAndPropagate(){var a;super.reset();const e=this.resolution.getScale(),n=(a=this.resolution.members[0].view.coords)==null?void 0:a[this.channel=="x"?"width":"height"];if(!n)return;for(const s of this.reservationMaps.values())s.reset();const r=e.domain(),i=70,o=_8(this._scores,i,this.posBisector.left(this._data,r[0]),this.posBisector.right(this._data,r[1]));for(const s of o){const c=this._data[s],u=e(this.posAccessor(c))*n,f=this.widthAccessor(c)/2+this.padding;this.reservationMaps.get(this.laneAccessor(c)).reserve(u-f,u+f)&&this._propagate(c)}super.complete()}reset(){super.reset(),this._data=[],this.groups=new Map}handle(e){this._data.push(e)}}class Z8 extends ue{constructor(e){super(),this.params=e,this.predicate=void 0}initialize(){this.predicate=Xu(this.params.expr,this.getGlobalObject())}handle(e){this.predicate(e)&&this._propagate(e)}}const q8="0".charCodeAt(0);function*K8(t,e=","){const n=e.charCodeAt(0);let r=0;for(let i=0;i<t.length;i++){const o=t.charCodeAt(i);o==n?(yield r,r=0):r=r*10+o-q8}yield r}class J8 extends ue{get behavior(){return Bt}constructor(e){super();const n=q(e.exons??"exons"),r=q(e.start??"start"),[i,o]=e.as||["exonStart","exonEnd"];this.handle=a=>{let s=r(a),c=s,u=!0;const f=n(a);for(const l of K8(f)){if(u)c=s+l;else{s=c+l;const d=Object.assign({},a);d[i]=c,d[o]=s,this._propagate(d)}u=!u}}}}class $8 extends ue{get behavior(){return Bt}constructor(e){super();const n=Ze(e.field).map(o=>q(o)),r=Ze(e.separator),i=Ze(e.as||e.field);if(n.length!==r.length||n.length!==i.length)throw new Error(`Lengths of "separator" (${r.length}), "fields" (${n.length}), and "as" (${i.length}) do not match!`);this.handle=o=>{if(n.some(c=>!c(o)))return;const a=n.map((c,u)=>c(o).split(r[u]));e5(a,o);const s=a[0].length;for(let c=0;c<s;c++){const u=Object.assign({},o);for(let f=0;f<n.length;f++)u[i[f]]=a[f][c];this._propagate(u)}}}}function e5(t,e){const n=t.map(r=>r.length);if(!n.every(r=>r==n[0]))throw new Error("Mismatching number of elements in the fields to be split: "+JSON.stringify(e))}class t5 extends ue{get behavior(){return fn}constructor(e){super(),this.params=e,this.as=e.as,this.fn=void 0}initialize(){this.fn=Xu(this.params.expr,this.getGlobalObject())}handle(e){e[this.as]=this.fn(e),this._propagate(e)}}class d1 extends ue{get behavior(){return fn}constructor(e,n){super();const r=e.channel??"x";if(!["x","y"].includes(r))throw new Error("Invalid channel: "+r);const i=n.getScaleResolution(r).getGenome();if(!i)throw new Error("LinearizeGenomicCoordinate transform requires a locus scale!");const o=q(e.chrom),a=Ze(e.pos).map(h=>q(h)),s=Ze(e.as);if(a.length!=s.length)throw new Error('The number of "pos" and "as" elements must be equal!');const c=Ze(e.offset);let u;if(c.length==0)u=new Array(a.length).fill(0);else if(c.length==1)u=new Array(a.length).fill(c[0]);else if(c.length==a.length)u=c;else throw new Error(`Invalid "offset" parameter: ${JSON.stringify(e.offset)}!`);const f=new Function("datum","chromOffset","posAccessors",s.map((h,m)=>`datum[${JSON.stringify(h)}] = chromOffset + +posAccessors[${m}](datum) - ${u[m]};`).join(`
1356
- `));let l,d=0;const p=h=>{if(h!==l){if(d=i.cumulativeChromPositions.get(h),d===void 0)throw new Error("Unknown chromosome/contig: "+h);l=h}return d};this.handle=h=>{f(h,p(o(h)),a),this._propagate(h)}}}const h1={pages:["Lato-Regular.png"],chars:[{id:87,width:53,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:43.491,chnl:15,x:0,y:0,page:0},{id:124,width:17,height:50,xoffset:0,yoffset:-32.193000000000005,xadvance:10.521,chnl:15,x:0,y:42,page:0},{id:40,width:20,height:49,xoffset:0,yoffset:-32.571000000000005,xadvance:11.214,chnl:15,x:0,y:94,page:0},{id:41,width:19,height:49,xoffset:0,yoffset:-32.571000000000005,xadvance:11.214,chnl:15,x:0,y:145,page:0},{id:36,width:32,height:49,xoffset:0,yoffset:-34.419000000000004,xadvance:24.360000000000003,chnl:15,x:0,y:196,page:0},{id:125,width:21,height:48,xoffset:0,yoffset:-32.193000000000005,xadvance:12.642000000000001,chnl:15,x:0,y:247,page:0},{id:91,width:22,height:48,xoffset:0,yoffset:-32.193000000000005,xadvance:12.852,chnl:15,x:0,y:297,page:0},{id:93,width:19,height:48,xoffset:0,yoffset:-32.193000000000005,xadvance:12.852,chnl:15,x:0,y:347,page:0},{id:123,width:21,height:48,xoffset:0,yoffset:-32.193000000000005,xadvance:12.642000000000001,chnl:15,x:0,y:397,page:0},{id:106,width:19,height:48,xoffset:0,yoffset:-30.639000000000003,xadvance:10.08,chnl:15,x:0,y:447,page:0},{id:81,width:43,height:47,xoffset:0,yoffset:-30.429000000000002,xadvance:33.621,chnl:15,x:21,y:447,page:0},{id:77,width:45,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:38.997,chnl:15,x:66,y:447,page:0},{id:64,width:43,height:44,xoffset:0,yoffset:-28.539,xadvance:35.133,chnl:15,x:23,y:397,page:0},{id:92,width:28,height:43,xoffset:0,yoffset:-30.933000000000003,xadvance:18.984,chnl:15,x:68,y:397,page:0},{id:47,width:28,height:43,xoffset:0,yoffset:-30.933000000000003,xadvance:18.984,chnl:15,x:98,y:397,page:0},{id:109,width:42,height:32,xoffset:0,yoffset:-21.609,xadvance:34.545,chnl:15,x:113,y:447,page:0},{id:119,width:42,height:31,xoffset:0,yoffset:-21.315,xadvance:32.991,chnl:15,x:157,y:447,page:0},{id:42,width:25,height:42,xoffset:0,yoffset:-31.626,xadvance:17.85,chnl:15,x:128,y:397,page:0},{id:37,width:42,height:41,xoffset:0,yoffset:-30.387,xadvance:33.663000000000004,chnl:15,x:155,y:397,page:0},{id:79,width:42,height:41,xoffset:0,yoffset:-30.429000000000002,xadvance:33.621,chnl:15,x:199,y:397,page:0},{id:102,width:24,height:41,xoffset:0,yoffset:-30.534000000000002,xadvance:14.721,chnl:15,x:243,y:397,page:0},{id:100,width:31,height:41,xoffset:0,yoffset:-30.933000000000003,xadvance:23.520000000000003,chnl:15,x:269,y:397,page:0},{id:98,width:32,height:41,xoffset:0,yoffset:-30.933000000000003,xadvance:23.520000000000003,chnl:15,x:302,y:397,page:0},{id:56,width:32,height:41,xoffset:0,yoffset:-30.429000000000002,xadvance:24.360000000000003,chnl:15,x:336,y:397,page:0},{id:38,width:40,height:41,xoffset:0,yoffset:-30.429000000000002,xadvance:29.904000000000003,chnl:15,x:370,y:397,page:0},{id:108,width:17,height:41,xoffset:0,yoffset:-30.933000000000003,xadvance:9.912,chnl:15,x:412,y:397,page:0},{id:107,width:31,height:41,xoffset:0,yoffset:-30.933000000000003,xadvance:21.336000000000002,chnl:15,x:431,y:397,page:0},{id:48,width:33,height:41,xoffset:0,yoffset:-30.429000000000002,xadvance:24.360000000000003,chnl:15,x:464,y:397,page:0},{id:71,width:38,height:41,xoffset:0,yoffset:-30.429000000000002,xadvance:30.681,chnl:15,x:21,y:347,page:0},{id:83,width:31,height:41,xoffset:0,yoffset:-30.429000000000002,xadvance:22.785,chnl:15,x:61,y:347,page:0},{id:63,width:27,height:41,xoffset:0,yoffset:-30.429000000000002,xadvance:18.795,chnl:15,x:94,y:347,page:0},{id:105,width:18,height:41,xoffset:0,yoffset:-30.639000000000003,xadvance:10.08,chnl:15,x:123,y:347,page:0},{id:51,width:32,height:41,xoffset:0,yoffset:-30.429000000000002,xadvance:24.360000000000003,chnl:15,x:143,y:347,page:0},{id:104,width:31,height:41,xoffset:0,yoffset:-30.933000000000003,xadvance:23.436,chnl:15,x:177,y:347,page:0},{id:67,width:37,height:41,xoffset:0,yoffset:-30.429000000000002,xadvance:28.056,chnl:15,x:210,y:347,page:0},{id:88,width:37,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:27.258000000000003,chnl:15,x:249,y:347,page:0},{id:68,width:40,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:31.941000000000003,chnl:15,x:288,y:347,page:0},{id:70,width:32,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:23.751,chnl:15,x:330,y:347,page:0},{id:34,width:23,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:15.561000000000002,chnl:15,x:364,y:347,page:0},{id:72,width:38,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:32.067,chnl:15,x:389,y:347,page:0},{id:73,width:18,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:11.760000000000002,chnl:15,x:429,y:347,page:0},{id:74,width:24,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:17.745,chnl:15,x:449,y:347,page:0},{id:75,width:38,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:27.825000000000003,chnl:15,x:24,y:297,page:0},{id:76,width:31,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:21.567,chnl:15,x:475,y:347,page:0},{id:66,width:35,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:27.153000000000002,chnl:15,x:64,y:297,page:0},{id:78,width:38,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:32.067,chnl:15,x:101,y:297,page:0},{id:33,width:18,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:11.298,chnl:15,x:141,y:297,page:0},{id:80,width:34,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:25.221,chnl:15,x:161,y:297,page:0},{id:65,width:38,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:28.434,chnl:15,x:197,y:297,page:0},{id:82,width:36,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:26.313000000000002,chnl:15,x:237,y:297,page:0},{id:35,width:33,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:24.360000000000003,chnl:15,x:275,y:297,page:0},{id:84,width:34,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:24.801000000000002,chnl:15,x:310,y:297,page:0},{id:85,width:37,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:30.891000000000002,chnl:15,x:346,y:297,page:0},{id:86,width:38,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:28.434,chnl:15,x:385,y:297,page:0},{id:39,width:16,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:8.568000000000001,chnl:15,x:425,y:297,page:0},{id:69,width:32,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:24.255000000000003,chnl:15,x:443,y:297,page:0},{id:89,width:36,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:26.208000000000002,chnl:15,x:23,y:247,page:0},{id:90,width:34,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:25.284000000000002,chnl:15,x:477,y:297,page:0},{id:49,width:31,height:40,xoffset:0,yoffset:-30.156000000000002,xadvance:24.360000000000003,chnl:15,x:61,y:247,page:0},{id:50,width:32,height:40,xoffset:0,yoffset:-30.429000000000002,xadvance:24.360000000000003,chnl:15,x:94,y:247,page:0},{id:57,width:32,height:40,xoffset:0,yoffset:-30.429000000000002,xadvance:24.360000000000003,chnl:15,x:128,y:247,page:0},{id:94,width:32,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:24.360000000000003,chnl:15,x:162,y:247,page:0},{id:96,width:21,height:40,xoffset:0,yoffset:-30.429000000000002,xadvance:16.8,chnl:15,x:196,y:247,page:0},{id:55,width:33,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:24.360000000000003,chnl:15,x:219,y:247,page:0},{id:54,width:33,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:24.360000000000003,chnl:15,x:254,y:247,page:0},{id:53,width:32,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:24.360000000000003,chnl:15,x:289,y:247,page:0},{id:52,width:33,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:24.360000000000003,chnl:15,x:323,y:247,page:0},{id:103,width:31,height:39,xoffset:0,yoffset:-21.630000000000003,xadvance:21.84,chnl:15,x:358,y:247,page:0},{id:112,width:32,height:39,xoffset:0,yoffset:-21.651,xadvance:23.541,chnl:15,x:391,y:247,page:0},{id:113,width:31,height:39,xoffset:0,yoffset:-21.651,xadvance:23.520000000000003,chnl:15,x:425,y:247,page:0},{id:116,width:25,height:39,xoffset:0,yoffset:-28.182000000000002,xadvance:15.057,chnl:15,x:458,y:247,page:0},{id:121,width:31,height:38,xoffset:0,yoffset:-21.273,xadvance:21.651,chnl:15,x:34,y:196,page:0},{id:59,width:18,height:36,xoffset:0,yoffset:-20.706,xadvance:10.983,chnl:15,x:485,y:247,page:0},{id:43,width:32,height:34,xoffset:0,yoffset:-24.486,xadvance:24.360000000000003,chnl:15,x:67,y:196,page:0},{id:60,width:30,height:33,xoffset:0,yoffset:-23.331000000000003,xadvance:24.360000000000003,chnl:15,x:101,y:196,page:0},{id:62,width:31,height:33,xoffset:0,yoffset:-23.331000000000003,xadvance:24.360000000000003,chnl:15,x:133,y:196,page:0},{id:117,width:30,height:32,xoffset:0,yoffset:-21.273,xadvance:23.415000000000003,chnl:15,x:166,y:196,page:0},{id:99,width:29,height:32,xoffset:0,yoffset:-21.609,xadvance:20.055,chnl:15,x:198,y:196,page:0},{id:110,width:31,height:32,xoffset:0,yoffset:-21.609,xadvance:23.436,chnl:15,x:229,y:196,page:0},{id:111,width:32,height:32,xoffset:0,yoffset:-21.609,xadvance:23.814,chnl:15,x:262,y:196,page:0},{id:126,width:32,height:26,xoffset:0,yoffset:-16.128,xadvance:24.360000000000003,chnl:15,x:201,y:447,page:0},{id:101,width:31,height:32,xoffset:0,yoffset:-21.609,xadvance:22.176000000000002,chnl:15,x:296,y:196,page:0},{id:114,width:25,height:32,xoffset:0,yoffset:-21.651,xadvance:15.288,chnl:15,x:329,y:196,page:0},{id:115,width:27,height:32,xoffset:0,yoffset:-21.609,xadvance:18.186,chnl:15,x:356,y:196,page:0},{id:97,width:28,height:32,xoffset:0,yoffset:-21.651,xadvance:20.874000000000002,chnl:15,x:385,y:196,page:0},{id:118,width:31,height:31,xoffset:0,yoffset:-21.273,xadvance:21.672,chnl:15,x:415,y:196,page:0},{id:61,width:31,height:29,xoffset:0,yoffset:-19.089000000000002,xadvance:24.360000000000003,chnl:15,x:448,y:196,page:0},{id:120,width:30,height:31,xoffset:0,yoffset:-21.273,xadvance:20.916,chnl:15,x:21,y:145,page:0},{id:58,width:18,height:31,xoffset:0,yoffset:-20.706,xadvance:10.5,chnl:15,x:53,y:145,page:0},{id:122,width:28,height:31,xoffset:0,yoffset:-21.273,xadvance:18.984,chnl:15,x:73,y:145,page:0},{id:95,width:28,height:16,xoffset:0,yoffset:0,xadvance:19.278000000000002,chnl:15,x:235,y:447,page:0},{id:45,width:23,height:24,xoffset:0,yoffset:-14.175,xadvance:15.603000000000002,chnl:15,x:481,y:196,page:0},{id:44,width:17,height:21,xoffset:0,yoffset:-4.956,xadvance:9.534,chnl:15,x:103,y:145,page:0},{id:46,width:18,height:15,xoffset:0,yoffset:-4.956,xadvance:9.912,chnl:15,x:0,y:497,page:0},{id:32,width:0,height:0,xoffset:0,yoffset:0,xadvance:10.752,chnl:15,x:20,y:497,page:0}],info:{face:"Lato Regular",size:42,bold:0,italic:0,charset:[" ","!",'"',"#","$","%","&","'","(",")","*","+",",","-",".","/","0","1","2","3","4","5","6","7","8","9",":",";","<","=",">","?","@","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","[","\\","]","^","_","`","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","{","|","}","~"],unicode:1,stretchH:100,smooth:1,aa:1,padding:[0,0,0,0],spacing:[2,2]},common:{lineHeight:50.400000000000006,base:41.454,scaleW:512,scaleH:512,pages:1,packed:0,alphaChnl:0,redChnl:0,greenChnl:0,blueChnl:0},kernings:[]};class n5 extends ue{get behavior(){return fn}constructor(e){super();const n=Nl(h1),r=q(e.field),i=e.as,o=e.fontSize;this.handle=a=>{const s=r(a);s!==void 0?a[i]=n.measureWidth(s,o):a[i]=0,this._propagate(a)}}}const r5=65536;class i5 extends ue{get behavior(){return fn}constructor(e){super(),this.params=e}reset(){this.initialize()}initialize(){const e=this.params,n=e.as||"lane",r=le(e.spacing)?e.spacing:1,i=q(e.start),o=q(e.end);if(!e.preference!=!e.preferredOrder)throw new Error('Must specify both "preference" and "preferredOrder"');if(e.preference){const a=new Float64Array(r5),s=q(e.preference),c=e.preferredOrder;let u=1/0;this.handle=f=>{const l=i(f);l<u&&a.fill(-1/0),u=l;const d=c.indexOf(s(f));let p=-1;if(d>=0&&a[d]<l)p=d;else{const h=i(f);for(p=0;p<a.length&&!(a[p]<h);p++);if(p>=a.length)throw new Error("Out of lanes!")}a[p]=o(f)+r,f[n]=p,this._propagate(f)}}else{const a=new Ao,s=new Ao;let c=-1/0,u=0;this.handle=f=>{const l=i(f);for(;a.length&&(a.peekValue()<=l||l<c);){const p=a.pop();s.push(p,p)}c=l;let d=s.pop();d===void 0&&(d=u++),f[n]=d,this._propagate(f),a.push(d,o(f)+r)}}}}class o5 extends ue{get behavior(){return Bt}constructor(e){if(super(),e.as&&e.as.length!=e.fields.length)throw new Error('"fields" and "as" have unequal lengths!');const n=e.fields.map(i=>q(i)),r=e.as?e.as:n.map(ce);this.handle=i=>{const o={};for(let a=0;a<n.length;a++)o[r[a]]=n[a](i);this._propagate(o)}}}class a5 extends ue{get behavior(){return fn}constructor(e){super();const n=new RegExp(e.regex),r=typeof e.as=="string"?[e.as]:e.as,i=q(e.field);this.handle=o=>{const a=i(o);if(ne(a)){const s=a.match(n);if(s){if(s.length-1!=r.length)throw new Error('The number of RegEx groups and the length of "as" do not match!');for(let c=0;c<r.length;c++)o[r[c]]=s[c+1]}else if(e.skipInvalidInput)for(let c=0;c<r.length;c++)o[r[c]]=void 0;else throw new Error(`"${a}" does not match the given regex: ${n.toString()}`)}else if(!e.skipInvalidInput)throw new Error(`Trying to match a non-string field. Encountered type: ${typeof a}, field content: "${a}".`);this._propagate(o)}}}class s5 extends ue{get behavior(){return Bt}constructor(e){super();const n=Ze(e.columnRegex).map(d=>new RegExp(d)),r=Ze(e.asValue);if(n.length!=r.length)throw new Error('Lengths of "columnRegex" and "as" are not equal!');const i=e.skipRegex?new RegExp(e.skipRegex):void 0,o=e.asKey||"sample";let a,s,c;const u=d=>{var g;const p=Object.keys(d),h=new Map;for(const[y,b]of n.entries())for(const w of p){const C=(g=b.exec(w))==null?void 0:g[1];if(C!==void 0){let x=h.get(C);x||(x=[],h.set(C,x)),x[y]=w}}a=[...h.entries()],s=p.filter(y=>!n.some(b=>b.test(y))&&!(i&&i.test(y)));const m=[...s.map(y=>JSON.stringify(y)+": datum["+JSON.stringify(y)+"]"),JSON.stringify(o)+": sampleId",...r.map(y=>JSON.stringify(y)+": null")];c=new Function("datum","sampleId",`return {
1357
- `+m.join(`,
1355
+ */const cL="locus",lL="index";var uL=5;function fL(e){const t=e.type;return!e.bins&&(t===vo||t===lc||t===uc)}function Dx(e){return Ft(e)&&![Yn,lL,cL].includes(e)}function Ix(e){return e||{warn:(t,...n)=>console.warn(t,...n)}}var hL=yu(["set","modified","clear","type","scheme","schemeExtent","schemeCount","domain","domainMin","domainMid","domainMax","domainRaw","domainImplicit","nice","zero","bins","range","rangeStep","round","reverse","interpolate","interpolateGamma","zoom","fp64","name"]);function Tx(e,t,n){n=Ix(n);for(const r in e)if(!hL[r]){if(r==="padding"&&Dx(t.type))continue;Tt(t[r])?t[r](e[r]):n.warn("Unsupported scale property: "+r)}wL(t,e,vL(t,e,mL(t,e,n)))}function dL(e,t){const n=pL(e),r=xe(n);if(!r)throw new Error("Unknown scale type: "+n);const i=r();return Tx(e,i,t),i}function pL(e){var t=e.type,n="",r;return t===Yn?Yn+"-"+vo:(gL(e)&&(r=e.rawDomain?e.rawDomain.length:e.domain?e.domain.length+ +(e.domainMid!=null):0,n=r===2?Yn+"-":r===3?wo+"-":""),(n+t||vo).toLowerCase())}function gL(e){const t=e.type;return Ft(t)&&t!==Z2&&t!==q2&&(e.scheme||e.range&&e.range.length&&e.range.every(ze))}function mL(e,t,n){if(!e.domain)return 0;n=Ix(n);var r=bL(e,t.domainRaw,n);if(r>-1)return r;var i=t.domain,a=e.type,o=t.zero||t.zero===void 0&&fL(e),s,l;return i?(Dx(a)&&t.padding&&i[0]!==Cn(i)&&(i=yL(a,i,t.range,t.padding,t.exponent,t.constant)),(o||t.domainMin!=null||t.domainMax!=null||t.domainMid!=null)&&(s=(i=i.slice()).length-1||1,o&&(i[0]>0&&(i[0]=0),i[s]<0&&(i[s]=0)),t.domainMin!=null&&(i[0]=t.domainMin),t.domainMax!=null&&(i[s]=t.domainMax),t.domainMid!=null&&(l=t.domainMid,(l<i[0]||l>i[s])&&n.warn("Scale domainMid exceeds domain min or max.",l),i.splice(s,0,l))),e.domain(Mx(a,i,n)),a===O0&&e.unknown(t.domainImplicit?r0:void 0),t.nice&&e.nice&&e.nice(t.nice!==!0&&_x(e,t.nice)||null),i.length):0}function bL(e,t,n){return t?(e.domain(Mx(e.type,t,n)),t.length):-1}function yL(e,t,n,r,i,a){var o=Math.abs(Cn(n)-n[0]),s=o/(o-2*r),l=e===ii?Ob(t,null,s):e===uc?xd(t,null,s,.5):e===lc?xd(t,null,s,i||1):e===Yu?__(t,null,s,a||1):wd(t,null,s);return t=t.slice(),t[0]=l[0],t[t.length-1]=l[1],t}function Mx(e,t,n){if(nv(e)){var r=Math.abs(t.reduce(function(i,a){return i+(a<0?-1:a>0?1:0)},0));r!==t.length&&n.warn("Log scale domain includes zero: "+bu(t))}return t}function vL(e,t,n){let r=t.bins;if(r&&!en(r)){const i=(r.start==null||r.stop==null)&&e.domain(),a=r.start==null?i[0]:r.start,o=r.stop==null?Cn(i):r.stop,s=r.step;s||Ye("Scale bins parameter missing step property."),r=qr(a,o+s,s)}return r?e.bins=r:e.bins&&delete e.bins,e.type===z0&&(r?!t.domain&&!t.domainRaw&&(e.domain(r),n=r.length):e.bins=e.domain()),n}function wL(e,t,n){var r=e.type,i=t.round||!1,a=t.range;if(t.rangeStep!=null)a=xL(r,t,n);else if(t.scheme&&(a=AL(r,t,n),Tt(a))){if(e.interpolator)return e.interpolator(a);Ye(`Scale type ${r} does not support interpolating color schemes.`)}if(a&&Zu(r))return e.interpolator(qu(Hp(a,t.reverse),t.interpolate,t.interpolateGamma));a&&t.interpolate&&e.interpolate?e.interpolate(rv(t.interpolate,t.interpolateGamma)):Tt(e.round)?e.round(i):Tt(e.rangeRound)&&e.interpolate(i?sc:ni),a&&e.range(Hp(a,t.reverse))}function xL(e,t,n){e!==K2&&e!==R0&&Ye("Only band and point scales support rangeStep.");var r=(t.paddingOuter!=null?t.paddingOuter:t.padding)||0,i=e===R0?1:(t.paddingInner!=null?t.paddingInner:t.padding)||0;return[0,t.rangeStep*B0(n,i,r)]}function AL(e,t,n){var r=t.schemeExtent,i,a;return en(t.scheme)?a=qu(t.scheme,t.interpolate,t.interpolateGamma):(i=t.scheme.toLowerCase(),a=U0(i),a||Ye(`Unrecognized scheme name: ${t.scheme}`)),n=e===X2?n+1:e===z0?n-1:e===L0||e===W2?+t.schemeCount||uL:n,Zu(e)?Nx(a,r,t.reverse):Tt(a)?kI(Nx(a,r),n):e===O0?a:a.slice(0,n)}function Nx(e,t,n){return Tt(e)&&(t||n)?_I(e,Hp(t||[0,1],n)):e}function Hp(e,t){return t?e.slice().reverse():e}const Gp=rt(",d");function EL(e){return e.chrom+":"+Gp(Math.floor(e.pos+1))}function SL(e,t){return e.chrom+":"+Gp(Math.floor(e.pos+1))+"-"+(e.chrom!=t.chrom?t.chrom+":":"")+Gp(Math.ceil(t.pos))}const CL="https://genomespy.app/data/genomes/";class _L{constructor(t){if(this.config=t,!this.config.contigs&&typeof this.config.name!="string")throw new Error("No name has been defined for the genome assembly!");this.chromosomes=[],this.cumulativeChromPositions=new Map,this.chromosomesByName=new Map,this.startByIndex=[],this.totalSize=0,this.config.contigs&&this.setChromSizes(this.config.contigs)}get name(){return this.config.name}async load(t){if(!this.config.contigs){this.config.baseUrl?this.baseUrl=/^http(s)?/.test(this.config.baseUrl)?this.config.baseUrl:t+"/"+this.config.baseUrl:this.baseUrl=CL;try{this.setChromSizes(kL(await rc({baseURL:this.baseUrl}).load(`${this.config.name}/${this.name}.chrom.sizes`)))}catch(n){throw new Error(`Could not load chrom sizes: ${n.message}`)}}}hasChrPrefix(){return this.chromosomes.some(t=>t.name.startsWith("chr"))}setChromSizes(t){let n=0;this.startByIndex=[0];for(let r=0;r<t.length;r++){this.startByIndex.push(n);const i=t[r].size,a={...t[r],continuousStart:n,continuousEnd:n+i,continuousInterval:[n,n+i],index:r,number:r+1,odd:!(r&1)};this.chromosomes.push(a);const o=a.name.replace(/^chr/i,"");for(const s of["chr"+o,"CHR"+o,"Chr"+o,a.number,""+a.number,o,a.name])this.cumulativeChromPositions.set(s,n),this.chromosomesByName.set(s,a);n+=a.size}this.totalSize=n}getExtent(){return[0,this.totalSize]}toContinuous(t,n){let r=this.cumulativeChromPositions.get(t);if(r===void 0)throw new Error("Unknown chromosome/contig: "+t);return r+ +n}toChromosome(t){if(t>this.totalSize)return;t=Math.floor(t);const n=Qi(this.startByIndex,t)-1;if(n>0&&n<=this.chromosomes.length)return this.chromosomes[n-1]}toChromosomal(t){const n=this.toChromosome(t);if(n)return{chrom:n.name,pos:Math.floor(t)-n.continuousStart}}getChromosome(t){return this.chromosomesByName.get(t)}formatInterval(t){return SL(...this.toChromosomalInterval(t))}toChromosomalInterval(t){const n=this.toChromosomal(t[0]+.5),r=this.toChromosomal(t[1]-.5);return r.pos+=1,[n,r]}toContinuousInterval(t){var i;let[n,r]=t;return r||(r=n),[this.toContinuous(n.chrom,n.pos??0),this.toContinuous(r.chrom,r.pos??((i=this.chromosomesByName.get(r.chrom))==null?void 0:i.size))]}toDiscreteChromosomeIntervals(t){const n=t[0],r=t[1],i=[];if(n.chrom===r.chrom)i.push({chrom:n.chrom,startPos:n.pos,endPos:r.pos});else{const a=this.chromosomes.findIndex(s=>s.name===n.chrom),o=this.chromosomes.findIndex(s=>s.name===r.chrom);i.push({chrom:n.chrom,startPos:n.pos,endPos:this.chromosomes[a].size});for(let s=a+1;s<o;s++)i.push({chrom:this.chromosomes[s].name,startPos:0,endPos:this.chromosomes[s].size});i.push({chrom:r.chrom,startPos:0,endPos:r.pos})}return i}continuousToDiscreteChromosomeIntervals(t){return this.toDiscreteChromosomeIntervals([this.toChromosomal(t[0]),this.toChromosomal(t[1])])}parseInterval(t){const n=t.match(/^(chr[0-9A-Z]+)(?::([0-9,]+)(?:-(?:(chr[0-9A-Z]+):)?([0-9,]+))?)?$/);if(n){const r=n[1];if(n.slice(2).every(s=>s===void 0)){const s=this.getChromosome(r);return s?[s.continuousStart,s.continuousEnd]:void 0}const i=n[3]||r,a=parseInt(n[2].replace(/,/g,"")),o=n[4]!==void 0?parseInt(n[4].replace(/,/g,"")):a;return[this.toContinuous(r,a-1),this.toContinuous(i,o)]}}}function kL(e){return V_(e).filter(t=>/^chr[0-9A-Z]+$/.test(t[0])).map(([t,n])=>({name:t,size:parseInt(n)}))}function Fx(e){return Ht(e)&&"chrom"in e}function DL(e){return e.every(Fx)}class Gc extends Array{constructor(){super(),this.type=void 0}extend(t){return this}extendAll(t){if(t instanceof Gc&&t.type!=this.type)throw new Error(`Cannot combine different types of domains: ${this.type} and ${t.type}`);for(const n of t)this.extend(n);return this}extendAllWithAccessor(t,n){for(const r of t)this.extend(n(r));return this}}class $p extends Gc{constructor(){super(),this.type="quantitative"}extend(t){return t==null||Number.isNaN(t)?this:(t=+t,this.length?t<this[0]?this[0]=t:t>this[1]&&(this[1]=t):(this.push(t),this.push(t)),this)}}class Bx extends Gc{constructor(){super(),this.type="ordinal",this.uniqueValues=new Set}extend(t){return t==null||Number.isNaN(t)?this:(this.uniqueValues.has(t)||(this.uniqueValues.add(t),this.push(t)),this)}}class Lx extends Bx{constructor(){super(),this.type="nominal"}}class IL extends Gc{constructor(t){super();let n=0;for(let r=1;r<t.length;r++)n+=Math.sign(t[r]-t[r-1]);if(Math.abs(n)!=t.length-1)throw new Error("Piecewise domain must be strictly increasing or decreasing: "+JSON.stringify(t));t.forEach(r=>this.push(r))}extend(t){if(this.includes(t))return this;throw new Error("Piecewise domains are immutable and cannot be unioned!")}}const Ox={quantitative:$p,index:$p,locus:$p,nominal:Lx,ordinal:Bx};function Rx(e,t){if(e=="quantitative"&&TL(t)){const n=new IL(t);return n.type=e,n}else if(Ox[e]){const n=new Ox[e];return n.type=e,t&&n.extendAll(t),n}throw new Error("Unknown type: "+e)}function TL(e){return e&&e.length>0&&e.length!=2&&e.every(t=>typeof t=="number")}function zx(e){return((e*=2)<=1?e*e:--e*(2-e)+1)/2}function ML(e){return--e*e*e+1}function NL(e){return(Math.pow(2,-10*e)-.0009765625)*1.0009775171065494}function FL(e){return 1-NL(e)}const Px="quantitative",Vp="ordinal",Yp="nominal",Ux="locus",BL="index";class LL{constructor(t){this.channel=t,this.members=[],this.type=null,this._zoomExtent=void 0,this._domainListeners=new Set,this.name=void 0,this._scale=void 0}addEventListener(t,n){if(t!="domain")throw new Error("Unsupported event type: "+t);this._domainListeners.add(n)}removeEventListener(t,n){if(t!="domain")throw new Error("Unsupported event type: "+t);this._domainListeners.delete(n)}_notifyDomainListeners(){for(const t of this._domainListeners.values())t({type:"domain",scaleResolution:this})}pushUnitView(t,n){var o;const r=ep(t,n),i=r.type,a=(o=r==null?void 0:r.scale)==null?void 0:o.name;if(a){if(this.name!==void 0&&a!=this.name)throw new Error(`Shared scales have conflicting names: "${a}" vs. "${this.name}"!`);this.name=a}if(!this.type)this.type=i;else if(i!==this.type&&!Dc(n))throw new Error(`Can not use shared scale for different data types: ${this.type} vs. ${i}. Use "resolve: independent" for channel ${this.channel}`);this.members.push({view:t,channel:n})}isExplicitDomain(){return!!this.getConfiguredDomain()}_getMergedScaleProps(){return Lo(this,"mergedScaleProps",()=>{const t=this.members.map(n=>ep(n.view,n.channel).scale).filter(n=>n!==void 0);return Nf(t,"scale",["domain"])})}getScaleProps(){return Lo(this,"scaleProps",()=>{const t=this._getMergedScaleProps();if(t===null||t.type=="null")return{type:"null"};const n={...this._getDefaultScaleProperties(this.type),...t};n.type||(n.type=OL(this.channel,this.type));const r=this.getInitialDomain();return r&&r.length>0?n.domain=r:ai(n.type)?n.domain=new Lx:n.scheme&&(n.domain=[0,1]),!n.domain&&n.domainMid!==void 0&&(n.domain=[n.domainMin??0,n.domainMax??1]),this.channel=="y"&&ai(n.type)&&n.reverse==null&&(n.reverse=!0),n.range&&n.scheme&&delete n.scheme,!("zoom"in n)&&["index","locus"].includes(n.type)&&(n.zoom=!0),RL(n,this.channel),n})}getInitialDomain(){return this.getConfiguredDomain()??(this.type==Ux?this.getGenome().getExtent():this.getDataDomain())}getConfiguredDomain(){return this._reduceDomains(t=>Dc(t.channel)?void 0:t.view.getConfiguredDomain(t.channel))}getDataDomain(){return this._reduceDomains(t=>Dc(t.channel)?void 0:t.view.extractDataDomain(t.channel))}reconfigure(){if(this._scale&&this._scale.type!="null"){fx(this,"scaleProps");const t=this.getScaleProps();Tx(t,this._scale),Ft(this._scale.type)&&(this._zoomExtent=this._getZoomExtent())}}getScale(){if(this._scale)return this._scale;const t=this.getScaleProps(),n=dL(t);return this._scale=n,p5(n)&&n.genome(this.getGenome()),Ft(n.type)&&(this._zoomExtent=this._getZoomExtent()),n}getDomain(){return this.getScale().domain()}getComplexDomain(){var t;return((t=this.getGenome())==null?void 0:t.toChromosomalInterval(this.getDomain()))??this.getDomain()}isZoomed(){return this.isZoomable()&&$0(this.getInitialDomain(),this.getDomain())}isZoomable(){if(!zv(this.channel))return!1;const t=this.getScale().type;return["linear","locus","index","log","pow","sqrt"].includes(t)?!!this.getScaleProps().zoom:!1}zoom(t,n,r){if(!this.isZoomable())return!1;const i=this.getScale(),a=i.domain();let o=[...a],s=i.invert(n);switch(this.getScaleProps().reverse&&(r=-r),"align"in i&&(s+=i.align()),i.type){case"linear":case"index":case"locus":o=E_(o,r||0),o=wd(o,s,t);break;case"log":o=S_(o,r||0),o=Ob(o,s,t);break;case"pow":case"sqrt":{const l=i;o=C_(o,r||0,l.exponent()),o=xd(o,s,t,l.exponent());break}default:throw new Error("Zooming is not implemented for: "+i.type)}return this._zoomExtent&&(o=k_(o,this._zoomExtent[0],this._zoomExtent[1])),[0,1].some(l=>o[l]!=a[l])?(i.domain(o),this._notifyDomainListeners(),!0):!1}async zoomTo(t,n=!1){var s;if(gu(n)&&(n=n?700:0),!this.isZoomable())throw new Error("Not a zoomable scale!");const r=this.fromComplexInterval(t),i=(s=this.members[0])==null?void 0:s.view.context.animator,a=this.getScale(),o=a.domain();if(n>0&&o.length==2){const l=o[1]-o[0],c=o[0]+l/2,u=r[1]-r[0],f=r[0]+u/2,h=S2([c,0,l],[f,0,u]).rho(.7);await i.transition({duration:n/1e3*h.duration,easingFunction:zx,onUpdate:d=>{const[p,,g]=h(d);a.domain([p-g/2,p+g/2]),this._notifyDomainListeners()}}),a.domain(r),this._notifyDomainListeners()}else a.domain(r),i==null||i.requestRender(),this._notifyDomainListeners()}resetZoom(){if(!this.isZoomable())throw new Error("Not a zoomable scale!");const t=this.getDomain(),n=this.getInitialDomain();return[0,1].some(r=>n[r]!=t[r])?(this._scale.domain(n),this._notifyDomainListeners(),!0):!1}getZoomLevel(){return this.isZoomable()?mu(this._zoomExtent)/mu(this.getScale().domain()):1}_getZoomExtent(){const t=this.getScaleProps(),n=t.zoom;if(zL(n)&&en(n.extent))return this.fromComplexInterval(n.extent);if(n)return t.type=="locus"?this.getGenome().getExtent():this._scale.domain()}_getDefaultScaleProperties(t){const n=this.channel,r={};return this.isExplicitDomain()&&(r.zero=!1),kc(n)?r.nice=!this.isExplicitDomain():ga(n)?r.scheme=t==Yp?"tableau10":t==Vp?"blues":"viridis":af(n)?r.range=Uv(n):n=="size"?r.range=[0,400]:n=="angle"&&(r.range=[0,360]),r}getGenome(){var n;if(this.type!=="locus")return;const t=(n=this.members[0].view.context.genomeStore)==null?void 0:n.getGenome();if(!t)throw new Error("No genome has been defined!");return t}invertToComplex(t){const n=this.getScale();if("invert"in n){const r=n.invert(t);return this.toComplex(r)}else throw new Error("The scale does not support inverting!")}toComplex(t){const n=this.getGenome();return n?n.toChromosomal(t):t}fromComplex(t){return Fx(t)?this.getGenome().toContinuous(t.chrom,t.pos):t}fromComplexInterval(t){return this.type==="locus"&&DL(t)?this.getGenome().toContinuousInterval(t):t}_getViewPaths(){return this.members.map(t=>t.view.getPathString()).join(", ")}_reduceDomains(t){const n=this.members.map(t).filter(r=>!!r);if(n.length)return n.reduce((r,i)=>r.extendAll(i))}}function OL(e,t){if(t==BL||t==Ux){if(zv(e))return t;throw new Error(`${e} does not support ${t} data type. Only positional channels do.`)}const n={x:["band","band","linear"],y:["band","band","linear"],size:[void 0,"point","linear"],opacity:[void 0,"point","linear"],fillOpacity:[void 0,"point","linear"],strokeOpacity:[void 0,"point","linear"],color:["ordinal","ordinal","linear"],fill:["ordinal","ordinal","linear"],stroke:["ordinal","ordinal","linear"],strokeWidth:[void 0,void 0,"linear"],shape:["ordinal","ordinal",void 0],dx:[void 0,void 0,"null"],dy:[void 0,void 0,"null"],angle:[void 0,void 0,"linear"]},i=["uniqueId","facetIndex","semanticScore","search","text","sample"].includes(e)?"null":n[e]?n[e][[Yp,Vp,Px].indexOf(t)]:t==Px?"linear":"ordinal";if(i===void 0)throw new Error(`Channel "${e}" is not compatible with "${t}" data type. Use of a proper scale may be needed.`);return i}function RL(e,t){kc(t)&&e.type!=="ordinal"&&(e.range=[0,1]),t=="opacity"&&Ft(e.type)&&(e.clamp=!0)}function zL(e){return Ht(e)}function Qp(...e){for(const t of e)if(t!==void 0)return t}class PL{constructor(t){this.channel=t,this.members=[]}get scaleResolution(){var t;return(t=Gt(this.members))==null?void 0:t.view.getScaleResolution(this.channel)}pushUnitView(t,n){const r=t.getScaleResolution(this.channel);if(!r)throw new Error("Cannot find a scale resolution!");if(this.scaleResolution&&r!==this.scaleResolution)throw new Error("Shared axes must have a shared scale!");this.members.push({view:t,channel:n})}getAxisProps(){return Lo(this,"axisProps",()=>{const t=this.members.map(n=>{const r=n.view.mark.encoding[n.channel];return"axis"in r&&r.axis});return t.length>0&&t.some(n=>n===null)?null:Nf(t.filter(n=>n!==void 0),"axis",["title"])})}getTitle(){const t=a=>{var s;const o=ep(a.view,a.channel);if(!In(o))return{member:a,explicitTitle:Qp((s=o.axis)==null?void 0:s.title,o.title),implicitTitle:Qp(pa(o)?o.field:void 0,tp(o)?o.expr:void 0)}},n=this.members.map(t),r=n.filter(a=>{var o;if(Dc(a.member.channel)&&!a.explicitTitle){const s=So(a.member.channel);return((o=n.find(l=>l.member.view==a.member.view&&l.member.channel==s))==null?void 0:o.explicitTitle)===void 0}return!0}),i=new Set(r.map(a=>Qp(a.explicitTitle,a.implicitTitle)).filter(ze));return i.size?[...i].join(", "):null}}class jx extends Sx{constructor(t,n,r,i){super(t,n,r,i),this.spec=t}}class Wn extends Aa{constructor(t,n,r,i){super(t,n,r,i),this.spec=t,this.children=(t.layer||[]).map((a,o)=>{if(Kp(a)||Xp(a))return n.createView(a,this,"layer"+o);throw new Error("LayerView accepts only unit or layer specs as children!")})}*[Symbol.iterator](){for(const t of this.children)yield t}render(t,n,r={}){if(this.isVisible()){t.pushView(this,n);for(const i of this.children)i.render(t,n,r);t.popView(this)}}propagateInteractionEvent(t){this.handleInteractionEvent(void 0,t,!0),this.children.length&&this.children.at(-1).propagateInteractionEvent(t),!t.stopped&&this.handleInteractionEvent(void 0,t,!1)}}class Hx{constructor(t,n){this.n=t,this.maxCols=n??1/0}get nRows(){return this.maxCols==1/0?1:Math.ceil(this.n/this.maxCols)}get nCols(){return Math.min(this.n,this.maxCols)}get rowIndices(){const t=[],n=this.nCols,r=this.nRows;for(let i=0;i<r;i++){const a=[];t.push(a);for(let o=0;o<n;o++){const s=i*n+o;s<this.n&&a.push(s)}}return t}get colIndices(){const t=[],n=this.nCols,r=this.nRows;for(let i=0;i<n;i++){const a=[];t.push(a);for(let o=0;o<r;o++){const s=o*n+i;s<this.n&&a.push(s)}}return t}getCellIndex(t,n){let r=0;if(this.maxCols==1/0)r=n==0?t:void 0;else{if(t>=this.maxCols)return;r=n*this.nCols+t}return r<this.n?r:void 0}getCellCoords(t){if(!(t<0||t>=this.n))return[t%this.nCols,Math.floor(t/this.nCols)]}}function _r(e){return()=>e}const Gr=class{static create(t,n,r,i){return new Gr(_r(t),_r(n),_r(r),_r(i))}_offset(t,n){const r=this["_"+t];if(n===0)return r;switch(typeof n){case"number":return()=>r()+n;case"function":return()=>r()+n();default:throw new Error("Not a number of function")}}_passThrough(t){return this._offset(t,0)}constructor(t,n,r,i){this._x=t,this._y=n,this._width=r,this._height=i}get x(){return this._x()}get y(){return this._y()}get width(){return this._width()}get height(){return this._height()}get x2(){return this._x()+this._width()}get y2(){return this._y()+this._height()}equals(t){return t?this===t||this.x===t.x&&this.y===t.y&&this.width===t.width&&this.height===t.height:!1}modify(t){if(!Object.keys(t).length)return this;const n=r=>{const i=t[r];return typeof i=="number"?_r(i):typeof i=="function"?i:this._passThrough(r)};return new Gr(n("x"),n("y"),n("width"),n("height"))}translate(t,n){return t===0&&n===0?this:new Gr(this._offset("x",t),this._offset("y",n),this._passThrough("width"),this._passThrough("height"))}translateBy(t){return this.translate(t.x,t.y)}expand(t,n=1){return t.left==0&&t.top==0&&t.right==0&&t.bottom==0?this:new Gr(t.left?this._offset("x",-t.left*n):this._passThrough("x"),t.top?this._offset("y",-t.top*n):this._passThrough("y"),t.width?this._offset("width",t.width*n):this._passThrough("width"),t.height?this._offset("height",t.height*n):this._passThrough("height"))}shrink(t){return this.expand(t,-1)}intersect(t){return this===t?this:new Gr(()=>Math.max(this.x,t.x),()=>Math.max(this.y,t.y),()=>Math.min(this.x2,t.x2)-Math.max(this.x,t.x),()=>Math.min(this.y2,t.y2)-Math.max(this.y,t.y))}isDefined(){return this.width>=0&&this.height>=0}flatten(){return new Gr(_r(this.x),_r(this.y),_r(this.width),_r(this.height))}containsPoint(t,n){return t>=this.x&&t<this.x2&&n>=this.y&&n<this.y2}normalizePoint(t,n){return{x:(t-this.x)/this.width,y:(n-this.y)/this.height}}toString(){return`Rectangle: x: ${this.x}, y: ${this.y}, width: ${this.width}, height: ${this.height}`}};let pi=Gr;En(pi,"ZERO",Gr.create(0,0,0,0));const UL="chromosome_ticks_and_labels",jL={x:"width",y:"height"};function Zp(e){return e=="x"?"y":"x"}const qp={x:["bottom","top"],y:["left","right"]},Gx=Object.fromEntries(Object.entries(qp).map(([e,t])=>t.map(n=>[n,e])).flat(1));function Ea(e){return Gx[e]}class $x extends Wn{constructor(t,n,r,i){const a=n=="locus",o={...a?GL:Vx,...HL(n,t),...t};super(a?$L(o,n):Yx(o,n),r,i,`axis_${t.orient}`),this.axisProps=o,this.blockEncodingInheritance=!0}getOrient(){return this.axisProps.orient}getSize(){const t={px:this.getPerpendicularSize()},n={grow:1};return Gx[this.axisProps.orient]=="x"?new wa(n,t):new wa(t,n)}getPerpendicularSize(){return Wp(this.axisProps)}isPickingSupported(){return!1}}function Wp(e){const t=Ea(e.orient);let n=e.ticks&&e.tickSize||0;return e.labels&&(n+=e.labelPadding,t=="x"?n+=e.labelFontSize:n+=30),e.title&&(n+=e.titlePadding+e.titleFontSize),n=Math.min(e.maxExtent||1/0,Math.max(e.minExtent||0,n)),n}const Vx={values:null,minExtent:20,maxExtent:1/0,offset:0,domain:!0,domainWidth:1,domainColor:"gray",domainDash:null,domainDashOffset:0,domainCap:"square",ticks:!0,tickSize:5,tickWidth:1,tickColor:"gray",tickDash:null,tickDashOffset:0,tickCap:"square",tickCount:null,tickMinStep:null,labels:!0,labelAlign:"center",labelBaseline:"middle",labelPadding:4,labelFontSize:10,labelLimit:180,labelColor:"black",format:null,titleColor:"black",titleFont:"sans-serif",titleFontSize:10,titlePadding:3};function HL(e,t){const n=t.orient,r=e=="nominal"||e=="ordinal";let i="center",a="middle",o=t.labelAngle??((n=="top"||n=="bottom")&&r?-90:0);switch(n){case"left":i="right";break;case"right":i="left";break;case"top":case"bottom":Math.abs(o)>30?(i=o>0==(n=="bottom")?"left":"right",a="middle"):a=n=="top"?"alphabetic":"top";break}return{labelAlign:i,labelAngle:o,labelBaseline:a}}function Yx(e,t){const n={...e,extent:Wp(e)},r=Ea(n.orient),i=Zp(r),a=n.orient=="bottom"||n.orient=="right"?1:-1,o=n.orient=="bottom"||n.orient=="left"?1:0,s=()=>({name:"domain",data:{values:[0]},mark:{type:"rule",clip:!1,strokeDash:n.domainDash,strokeCap:n.domainCap,color:n.domainColor,[i]:o,size:n.domainWidth}}),l=()=>({name:"labels",mark:{type:"text",clip:!1,align:n.labelAlign,angle:n.labelAngle,baseline:n.labelBaseline,[i+"Offset"]:(n.tickSize+n.labelPadding)*a,[i]:o,size:n.labelFontSize,color:n.labelColor,minBufferSize:1500},encoding:{[r]:{field:"value",type:t},text:{field:"label"}}}),c=()=>({name:"ticks",mark:{type:"rule",clip:!1,strokeDash:n.tickDash,strokeCap:n.tickCap,color:n.tickColor,size:n.tickWidth,minBufferSize:300},encoding:{[i]:{value:o},[i+"2"]:{value:o-n.tickSize/n.extent*(o?1:-1)}}}),u=()=>({name:"title",data:{values:[0]},mark:{type:"text",clip:!1,align:"center",baseline:n.orient=="bottom"?"bottom":"top",angle:[0,90,0,-90][["top","right","bottom","left"].indexOf(n.orient)],text:n.title,color:n.titleColor,[r]:.5,[i]:1-o}}),f=()=>{const d={name:"ticks_and_labels",encoding:{[r]:{field:"value",type:t}},layer:[]};return n.ticks&&d.layer.push(c()),n.labels&&d.layer.push(l()),d},h={resolve:{scale:{[r]:"forced"}},[jL[Zp(r)]]:n.extent,data:{lazy:{type:"axisTicks",channel:r,axis:e}},layer:[]};return n.domain&&h.layer.push(s()),(n.ticks||n.labels)&&h.layer.push(f()),n.title&&h.layer.push(u()),h}const GL={...Vx,chromTicks:!0,chromTickSize:18,chromTickWidth:1,chromTickColor:"#989898",chromTickDash:[4,2],chromTickDashOffset:1,chromLabels:!0,chromLabelFontSize:13,chromLabelFontWeight:"normal",chromLabelFontStyle:"normal",chromLabelColor:"black",chromLabelAlign:"left",chromLabelPadding:7};function $L(e,t){const n={...e,extent:Wp(e)},r=Ea(n.orient),i=Zp(r),a=n.orient=="bottom"||n.orient=="left"?1:0,o=()=>({name:"chromosome_ticks",mark:{type:"rule",strokeDash:e.chromTickDash,strokeDashOffset:e.chromTickDashOffset,[i]:a,[i+"2"]:a-n.chromTickSize/n.extent*(a?1:-1),color:e.chromTickColor,size:n.chromTickWidth}}),s=()=>{let u;switch(n.orient){case"top":u={y:0,angle:0,paddingX:4,dy:-n.chromLabelPadding,viewportEdgeFadeWidthLeft:20,viewportEdgeFadeWidthRight:20,viewportEdgeFadeDistanceRight:-10,viewportEdgeFadeDistanceLeft:-20};break;case"bottom":u={y:1,angle:0,paddingX:4,dy:n.chromLabelPadding+n.chromLabelFontSize*.73,viewportEdgeFadeWidthLeft:20,viewportEdgeFadeWidthRight:20,viewportEdgeFadeDistanceRight:-10,viewportEdgeFadeDistanceLeft:-20};break;case"left":u={x:1,angle:-90,paddingY:4,dy:-n.chromLabelPadding,viewportEdgeFadeWidthBottom:20,viewportEdgeFadeWidthTop:20,viewportEdgeFadeDistanceBottom:-20,viewportEdgeFadeDistanceTop:-10};break;case"right":u={x:0,angle:90,align:"right",paddingY:4,dy:-n.chromLabelPadding};break;default:u={}}return{name:"chromosome_labels",mark:{type:"text",size:n.chromLabelFontSize,font:n.chromLabelFont,fontWeight:n.chromLabelFontWeight,fontStyle:n.chromLabelFontStyle,color:n.chromLabelColor,align:e.chromLabelAlign,baseline:"alphabetic",clip:!1,...u},encoding:{[r+"2"]:{field:"continuousEnd",type:t},text:{field:"name"}}}};let l;switch(n.orient){case"bottom":case"top":l={};break;case"left":l={labelAngle:-90,labelAlign:"center",labelPadding:6};break;case"right":l={labelAngle:90,labelAlign:"center",labelPadding:6};break;default:l={}}const c=Yx({...e,...l},t);if(e.chromTicks||e.chromLabels){const u={name:UL,data:{lazy:{type:"axisGenome",channel:Ea(n.orient)}},encoding:{[r]:{field:"continuousStart",type:t,band:0}},layer:[]};if(e.chromTicks&&u.layer.push(o()),e.chromLabels){u.layer.push(s());let f;c.layer.filter(h=>h.name=="ticks_and_labels").forEach(h=>h.layer.filter(d=>d.name=="labels").forEach(d=>{f=d.mark})),f&&(n.orient=="top"||n.orient=="bottom"?(f.viewportEdgeFadeWidthLeft=30,f.viewportEdgeFadeDistanceLeft=40):(f.viewportEdgeFadeWidthBottom=30,f.viewportEdgeFadeDistanceBottom=40))}c.layer.push(u)}return c}class VL extends Wn{constructor(t,n,r,i){const o={...n=="locus"?YL:Qx,...t};super(WL(o,n),r,i,`axisGrid_${t.orient}`),this.axisProps=o,this.blockEncodingInheritance=!0}getOrient(){return this.axisProps.orient}isPickingSupported(){return!1}}const Qx={values:null,grid:!1,gridCap:"butt",gridColor:"lightgray",gridDash:null,gridOpacity:1,gridWidth:1,tickCount:null,tickMinStep:null},YL={...Qx,chromGrid:!1,chromGridCap:"butt",chromGridColor:"gray",chromGridDash:[1,5],chromGridOpacity:1,chromGridWidth:1};function QL(e,t){const n=e,r=Ea(n.orient);return{name:"grid_lines",data:{lazy:{type:"axisTicks",channel:r,axis:e}},mark:{type:"rule",strokeDash:n.gridDash,strokeCap:n.gridCap,color:n.gridColor,size:n.gridWidth,opacity:n.gridOpacity,minBufferSize:300},encoding:{[r]:{field:"value",type:t}}}}function ZL(e,t){const n=e,r=Ea(n.orient);return{name:"chromosome_lines",data:{lazy:{type:"axisGenome",channel:r}},mark:{type:"rule",strokeDash:n.chromGridDash,strokeCap:n.chromGridCap,color:n.chromGridColor,size:n.chromGridWidth,opacity:n.chromGridOpacity},encoding:{[r]:{field:"continuousStart",type:t,band:0}}}}function qL(e,t){const n=e,r=Ea(n.orient);return{name:"chromosome_fill",data:{lazy:{type:"axisGenome",channel:r}},mark:{type:"rect"},encoding:{[r]:{field:"continuousStart",type:t,band:0},[r+"2"]:{field:"continuousEnd",band:0},fill:{field:"odd",type:"nominal",scale:{domain:[!1,!0],range:[n.chromGridFillEven??"white",n.chromGridFillOdd??"white"]}},opacity:{field:"odd",type:"nominal",scale:{type:"ordinal",domain:[!1,!0],range:[n.chromGridFillEven?1:0,n.chromGridFillOdd?1:0]}}}}}function WL(e,t){const n={...e},r=[];return n.chromGrid&&(n.chromGridFillOdd||n.chromGridFillEven)&&r.push(qL(n,t)),n.chromGrid&&n.chromGridOpacity>0&&r.push(ZL(n,t)),n.grid&&n.gridOpacity>0&&r.push(QL(n,t)),{name:"grid_layers",resolve:{scale:{fill:"independent",opacity:"independent"}},layer:r}}const Zx={anchor:"middle",frame:"group",offset:10,orient:"top",align:void 0,angle:0,baseline:"alphabetic",dx:0,dy:0,color:void 0,font:void 0,fontSize:12,fontStyle:"normal",fontWeight:"normal"},XL={orient:"left",anchor:"middle",align:"right",baseline:"middle",angle:0,fontSize:12},KL={orient:"top",anchor:"start",align:"left",baseline:"top",offset:-10,dx:10,fontSize:12},JL={start:0,middle:.5,end:1},e7={start:"left",middle:"center",end:"right"};function t7(e){if(!e)return;const t=ze(e)?{text:e}:e;if(!t.text||t.orient=="none")return;const n={"track-title":XL,overlay:KL}[t.style]??{},r={...Zx,...n,...t};let i={},a={x:0,y:0};const o=JL[r.anchor??"middle"];switch(r.orient){case"top":a={x:o,y:1},i={baseline:"alphabetic",angle:0};break;case"right":a={x:1,y:1-o},i={baseline:"alphabetic",angle:90};break;case"bottom":a={x:o,y:0},i={baseline:"top",angle:0};break;case"left":a={x:0,y:o},i={baseline:"alphabetic",angle:-90};break}const s={...Zx,...i,...n,...t},l={xOffset:0,yOffset:0};switch(r.orient){case"top":l.yOffset=-s.offset;break;case"right":l.xOffset=s.offset;break;case"bottom":l.yOffset=s.offset;break;case"left":l.xOffset=-s.offset;break}return{configurableVisibility:!1,data:{values:[{}]},mark:{type:"text",tooltip:null,clip:!1,...a,...l,text:s.text,align:s.align??e7[s.anchor],angle:s.angle,baseline:s.baseline,dx:s.dx,dy:s.dy,color:s.color,font:s.font,size:s.fontSize,fontStyle:s.fontStyle,fontWeight:s.fontWeight}}}function qx(e,t,n,r){if(e.type=="wheel"){e.uiEvent.preventDefault();const i=e.uiEvent,a=i.deltaMode?120:1;let{x:o,y:s}=e.point;if(r){const l=r.mark.encoders;l.x&&!l.x2&&!l.x.constantValue&&(o=+l.x(r.datum)*t.width+t.x),l.y&&!l.y2&&!l.y.constantValue&&(s=(1-+l.y(r.datum))*t.height+t.y)}Math.abs(i.deltaX)<Math.abs(i.deltaY)?n({x:o,y:s,xDelta:0,yDelta:0,zDelta:i.deltaY*a/300}):n({x:o,y:s,xDelta:-i.deltaX*a,yDelta:0,zDelta:0})}else if(e.type=="mousedown"&&e.uiEvent.button===0){const i=e.uiEvent;i.preventDefault();let a=i;const o=l=>{n({x:a.clientX,y:a.clientY,xDelta:l.clientX-a.clientX,yDelta:l.clientY-a.clientY,zDelta:0}),a=l},s=l=>{document.removeEventListener("mousemove",o),document.removeEventListener("mouseup",s)};document.addEventListener("mouseup",s,!1),document.addEventListener("mousemove",o,!1)}}class Wx extends Aa{constructor(n,r,i,a,o){super(n,r,i,a);Fe(this,Jl);Fe(this,gr);Fe(this,od);Fe(this,sd);Fe(this,oo);Fe(this,eu);Fe(this,tu);Fe(this,nu);Fe(this,cd);Fe(this,Ts,1/0);Fe(this,Ms,10);Fe(this,xn,[]);Fe(this,Ns,0);this.spec=n,Sn(this,Ms,n.spacing??10),Sn(this,Ts,o),Sn(this,xn,[]),this.wrappingFacet=!1,this._createChildren()}_createChildren(){}appendChild(n){n.parent??(n.parent=this),ce(this,xn).push(Ze(this,Jl,Db).call(this,n)),c_(this,Ns)._++}setChildren(n){for(const r of n)this.appendChild(r)}replaceChild(n,r){const i=ce(this,xn).findIndex(a=>a.view==n);if(i>=0)ce(this,xn)[i]=Ze(this,Jl,Db).call(this,r);else throw new Error("Not my child view!")}get children(){return ce(this,xn).map(n=>n.view)}get childCount(){return ce(this,xn).length}onScalesResolved(){super.onScalesResolved(),Ze(this,sd,h_).call(this)}*[Symbol.iterator](){for(const n of ce(this,xn)){n.background&&(yield n.background);for(const r of Object.values(n.gridLines))yield r;for(const r of Object.values(n.axes))yield r;yield n.view,n.title&&(yield n.title)}}getOverhang(){const n=Ze(this,oo,uu).call(this,"column"),r=Ze(this,oo,uu).call(this,"row");return!n.length||!r.length?on.zero():new on(r.at(0).axisBefore,n.at(-1).axisAfter,r.at(-1).axisAfter,n.at(0).axisBefore)}getSize(){return this._cache("size",()=>new wa(Ze(this,tu,Tb).call(this,"column"),Ze(this,tu,Tb).call(this,"row")).subtractPadding(this.getOverhang()).addPadding(this.getPadding()))}render(n,r,i={}){if(!this.isVisible())return;this.parent||(r=r.shrink(this.getPadding())),n.pushView(this,r);const a={devicePixelRatio:this.context.glHelper.dpr},o=jc(Ze(this,eu,Ib).call(this,"column"),r.width,a),s=jc(Ze(this,eu,Ib).call(this,"row"),r.height,a),l=new Hx(ce(this,gr,Gi).length,ce(this,Ts)??1/0);for(const[c,u]of ce(this,gr,Gi).entries()){const{view:f,axes:h,gridLines:d,background:p,title:g}=u,[y,v]=l.getCellCoords(c),S=o[Ze(this,nu,Mb).call(this,"column",y)],k=s[Ze(this,nu,Mb).call(this,"row",v)],C=f.getSize(),E=f.getPadding().subtract(f.getOverhang()),w=S.location+E.left,A=k.location+E.top,T=(C.width.grow?S.size:C.width.px)-E.width,D=(C.height.grow?k.size:C.height.px)-E.height,M=new pi(()=>r.x+w,()=>r.y+A,()=>T,()=>D);u.coords=M,p==null||p.render(n,M,i);for(const U of Object.values(d))U.render(n,M,i);const F=r7(f);F&&f.render(n,M,i);for(const[U,q]of Object.entries(h)){const V=q.axisProps;let pe;const Se=q.getPerpendicularSize();U=="bottom"?pe=M.translate(0,M.height+V.offset).modify({height:Se}):U=="top"?pe=M.translate(0,-Se-V.offset).modify({height:Se}):U=="left"?pe=M.translate(-Se-V.offset,0).modify({width:Se}):U=="right"&&(pe=M.translate(M.width+V.offset,0).modify({width:Se})),q.render(n,pe)}F||f.render(n,M,i),g==null||g.render(n,M,{...i,clipRect:void 0})}n.popView(this)}propagateInteractionEvent(n){if(this.handleInteractionEvent(void 0,n,!0),n.stopped)return;const r=ce(this,gr,Gi).find(a=>a.coords.containsPoint(n.point.x,n.point.y)),i=r==null?void 0:r.view;i&&(i.propagateInteractionEvent(n),(i instanceof Je||i instanceof Wn)&&qx(n,r.coords,a=>Ze(this,cd,d_).call(this,r.coords,r.view,a),this.context.getCurrentHover())),!n.stopped&&this.handleInteractionEvent(void 0,n,!1)}getDefaultResolution(n,r){return"independent"}}Ts=new WeakMap,Ms=new WeakMap,xn=new WeakMap,Ns=new WeakMap,Jl=new WeakSet,Db=function(n){var i;const r={view:n,background:void 0,axes:{},gridLines:{},coords:pi.ZERO};if(n instanceof Je||n instanceof Wn){const a=(i=n.spec)==null?void 0:i.view;if(a!=null&&a.fill||a!=null&&a.stroke){const s=new Je(Xx(a),this.context,n,"background"+ce(this,Ns));s.blockEncodingInheritance=!0,r.background=s}const o=t7(n.spec.title);if(o){const s=new Je(o,this.context,n,"title"+ce(this,Ns));s.blockEncodingInheritance=!0,r.title=s}}return r},gr=new WeakSet,Gi=function(){return ce(this,xn).filter(n=>n.view.isVisible())},od=new WeakSet,f_=function(){return new Hx(ce(this,gr,Gi).length,ce(this,Ts)??1/0)},sd=new WeakSet,h_=function(){if(Object.keys(this.resolutions.axis).length)throw new Error("GridView (concat, vconcat, hconcat) does not currently support shared axes!");for(const n of ce(this,xn)){const{view:r,axes:i,gridLines:a}=n,o=(s,l,c)=>{const u=s.getAxisProps();if(u!==null){if(!u.orient){for(const f of qp[l])if(!i[f]){u.orient=f;break}if(!u.orient)throw new Error("No slots available for an axis! Perhaps a LayerView has more than two children?")}if(u.title??(u.title=s.getTitle()),!qp[l].includes(u.orient))throw new Error(`Invalid axis orientation "${u.orient}" on channel "${l}"!`);if(i[u.orient])throw new Error(`An axis with the orient "${u.orient}" already exists!`);i[u.orient]=new $x(u,s.scaleResolution.type,this.context,c),(u.grid||u.chromGrid)&&(a[u.orient]=new VL(u,s.scaleResolution.type,this.context,c))}};if(r instanceof Je||r instanceof Wn)for(const s of["x","y"]){const l=r.resolutions.axis[s];l&&o(l,s,r)}if(r instanceof Wn){for(const s of r.children)for(const[l,c]of Object.entries(s.resolutions.axis)){const u=c.getAxisProps();u&&u.orient&&o(c,l,s)}for(const s of r.children)for(const[l,c]of Object.entries(s.resolutions.axis)){const u=c.getAxisProps();u&&!u.orient&&o(c,l,s)}}[...Object.values(i),...Object.values(a)].forEach(s=>s.visit(l=>{l instanceof Je&&l.resolve("scale")}))}},oo=new WeakSet,uu=function(n){const r=n=="column"?["left","right"]:["top","bottom"],i=n=="column"?"width":"height",a=(o,s)=>o.map(l=>{const c=ce(this,gr,Gi)[l].axes[r[s]];if(c)return Math.max(c.getPerpendicularSize()+c.axisProps.offset,0);const u=ce(this,gr,Gi)[l].view.getOverhang();return n=="column"?s?u.right:u.left:s?u.bottom:u.top}).reduce((l,c)=>Math.max(l,c),0);return ce(this,od,f_)[n=="column"?"colIndices":"rowIndices"].map(o=>({axisBefore:a(o,0),axisAfter:a(o,1),view:VB(o.map(s=>ce(this,gr,Gi)[s].view.getSize()[i]))}))},eu=new WeakSet,Ib=function(n){const r=Ze(this,oo,uu).call(this,n),i=[];i.push(Hc);for(const[a,o]of r.entries())a>0&&i.push({px:ce(this,Ms),grow:0}),(a==0||this.wrappingFacet)&&i.push(Hc),i.push({px:o.axisBefore,grow:0}),i.push(o.view),i.push({px:o.axisAfter,grow:0}),(a==r.length-1||this.wrappingFacet)&&i.push(Hc);return i},tu=new WeakSet,Tb=function(n){let r=0,i=0;const a=(n=="row"&&this.spec.height)??(n=="column"&&this.spec.width);if(a||a===0)return xx(a);const o=Ze(this,oo,uu).call(this,n);for(const[s,l]of o.entries())s>0&&(i+=ce(this,Ms)),(s==0||this.wrappingFacet)&&(i+=0),i+=l.axisBefore,i+=l.view.px??0,r+=l.view.grow??0,i+=l.axisAfter,(s==o.length-1||this.wrappingFacet)&&(i+=0);return{px:i,grow:r}},nu=new WeakSet,Mb=function(n,r){return n=="row"&&this.wrappingFacet?1+6*r+2:2+4*r+1},cd=new WeakSet,d_=function(n,r,i){for(const[a,o]of Object.entries(n7(r))){if(o.size<=0)continue;const s=n.normalizePoint(i.x,i.y),l=n.normalizePoint(i.x+i.xDelta,i.y+i.yDelta),c={x:l.x-s.x,y:l.y-s.y};for(const u of o)u.zoom(2**i.zDelta,a=="y"?1-s[a]:s[a],a=="x"?c.x:-c.y)}this.context.animator.requestRender()};function Xx(e){return{configurableVisibility:!1,data:{values:[{}]},mark:{fill:null,strokeWidth:1,fillOpacity:e.fill?1:0,...e,type:"rect",clip:!1,tooltip:null}}}function n7(e){const t={x:new Set,y:new Set};return e.visit(n=>{for(const[r,i]of Object.entries(t)){const a=n.getScaleResolution(r);a&&a.isZoomable()&&i.add(a)}}),t}function r7(e){let t=!0;return e.visit(n=>{n instanceof Je&&t&&(t=n.mark.properties.clip)}),t}class Ro extends Wx{constructor(t,n,r,i){super(t,n,r,i,eg(t)?t.columns:Jp(t)?1:1/0),this.spec=t}_createChildren(){const t=this.spec,n=eg(t)?t.concat:Jp(t)?t.vconcat:t.hconcat;this.setChildren(n.map((r,i)=>this.context.createView(r,this,"grid"+i)))}}class i7{constructor(){this.types=[];const t=n=>(r,i,a,o)=>new n(r,i,a,r.name??o);this.addViewType(a7,t(jx)),this.addViewType(Kp,t(Wn)),this.addViewType(Xp,t(Je)),this.addViewType(Jp,t(Ro)),this.addViewType(o7,t(Ro)),this.addViewType(eg,t(Ro))}addViewType(t,n){this.types.push({specGuard:t,factory:n})}createView(t,n,r,i){const a=this.types.find(o=>o.specGuard(t));if(a)return a.factory(t,n,r,i??"unnamed");throw new Error("Invalid spec, cannot figure out the view type from the properties: "+JSON.stringify([...Object.keys(t)]))}isViewSpec(t){const n=this.types.filter(r=>r.specGuard(t));if(n.length>1)throw new Error("Ambiguous spec. Cannot create a view!");return n.length==1}}function Xp(e){return"mark"in e&&(ze(e.mark)||Ht(e.mark))}function Kp(e){return"layer"in e&&Ht(e.layer)}function Kx(e){return e&&(Xp(e)||Kp(e))&&"aggregateSamples"in e}function a7(e){return"import"in e}function Jp(e){return"vconcat"in e&&en(e.vconcat)}function o7(e){return"hconcat"in e&&en(e.hconcat)}function eg(e){return"concat"in e&&en(e.concat)}const s7={point:MB,rect:CB,rule:BB,link:zB,text:$B};class Je extends Aa{constructor(t,n,r,i){super(t,n,r,i),this.spec=t;const a=s7[this.getMarkType()];if(a)this.mark=new a(this);else throw new Error(`No such mark: ${this.getMarkType()}`);this.sampleAggregateViews=[],this._initializeAggregateViews(),this.coords=void 0}*[Symbol.iterator](){for(const t of this.sampleAggregateViews)yield t}replaceChild(t,n){const r=this.sampleAggregateViews.indexOf(t);if(r>=0)this.sampleAggregateViews[r]=n;else throw new Error("Not my child view!")}render(t,n,r={}){this.isVisible()&&(this.coords=n,t.pushView(this,n),t.renderMark(this.mark,r),t.popView(this))}getMarkType(){return typeof this.spec.mark=="object"?this.spec.mark.type:this.spec.mark}resolve(t){const n=this.mark.encoding;for(const[r,i]of Object.entries(n)){if(!an(i))continue;let a=So(i.resolutionChannel??r);if(t=="axis"&&!kc(a))continue;let o=this;for(;(o.getConfiguredOrDefaultResolution(a,t)=="forced"||o.parent instanceof Aa&&["shared","excluded","forced"].includes(o.parent.getConfiguredOrDefaultResolution(a,t)))&&o.getConfiguredOrDefaultResolution(a,t)!="excluded";)o=o.parent;o.resolutions[t][a]||(o.resolutions[t][a]=t=="scale"?new LL(a):new PL(a)),kc(r)?o.resolutions[t][a].pushUnitView(this,r):t=="scale"&&o.resolutions[t][a].pushUnitView(this,r)}}getAccessor(t){return this._cache("accessor/"+t,()=>{const n=this.mark.encoding;if(n&&n[t])return this.context.accessorFactory.createAccessor(n[t])})}getFacetAccessor(t){const n=this.getAccessor("sample");return n||super.getFacetAccessor(this)}getCollector(){return this.context.dataFlow.findCollectorByKey(this)}_validateDomainQuery(t){if(Dc(t))throw new Error(`getDomain(${t}), must only be called for primary channels!`);const n=this.mark.encoding[t];if(!an(n))throw new Error("The channel has no scale, cannot get domain!");return n}getConfiguredDomain(t){const n=this._validateDomainQuery(t),r=n&&n.scale&&n.scale.domain;if(r){const i=this.getScaleResolution(n.resolutionChannel??t);return Rx(n.type??"nominal",i.fromComplexInterval(r))}}extractDataDomain(t){const r=this._validateDomainQuery(t).type??"nominal",i=s=>{let l;const c=this.mark.encoding[s];if(c){const u=this.context.accessorFactory.createAccessor(c);if(u)if(l=Rx(r),u.constant)l.extend(u({}));else{const f=this.getCollector();f!=null&&f.completed&&f.visitData(h=>l.extend(u(h)))}}return l};let a=i(t);const o=np[t];if(o){const s=i(o);s&&a.extendAll(s)}return a}getZoomLevel(){const t=n=>{var r;return((r=this.getScaleResolution(n))==null?void 0:r.getZoomLevel())??1};return _c.map(t).reduce((n,r)=>n*r,1)}_initializeAggregateViews(){if(Kx(this.spec))for(const t of this.spec.aggregateSamples){const n=t.transform??[];n.length&&Gt(n).type!="collect"&&n.push({type:"collect"}),n.push({type:"mergeFacets"}),t.transform=n,t.encoding={...t.encoding??{},sample:null};const r=this.context.createView(t,this,"summaryView");r.getFacetFields=i=>{},this.sampleAggregateViews.push(r)}}propagateInteractionEvent(t){t.target=this}getDefaultResolution(t,n){return t=="x"?"shared":"independent"}}function*tg(e,t=[]){for(const[n,r]of e.entries())if(r instanceof Map)for(const i of tg(r,[...t,n]))yield i;else yield[[...t,n],r]}class $c extends We{get behavior(){return Pp}constructor(t){super(),this.params=t??{type:"collect"},this.observers=[],this.facetBatches=void 0,this._init()}_init(){this._data=[],this.facetBatches=new Zi([],JSON.stringify),this.facetBatches.set(void 0,this._data)}reset(){super.reset(),this._init()}handle(t){this._data.push(t)}beginBatch(t){IB(t)&&(this._data=[],this.facetBatches.set(rn(t.facetId),this._data))}complete(){var i,a;const t=(i=this.params)==null?void 0:i.sort,n=t?Rb(t.field,t.order):void 0,r=o=>{n&&o.sort(n)};if((a=this.params.groupby)!=null&&a.length){if(this.facetBatches.size>1)throw new Error("TODO: Support faceted data!");const o=this.params.groupby.map(l=>_e(l)),s=Us(this._data,...o);this.facetBatches.clear();for(const[l,c]of tg(s))this.facetBatches.set(l,c)}for(const o of this.facetBatches.values())r(o);if(this.children.length)for(const[o,s]of this.facetBatches.entries()){if(o){const l={type:"facet",facetId:o};for(const c of this.children)c.beginBatch(l)}for(const l of s)this._propagate(l)}super.complete();for(const o of this.observers)o(this)}getData(){switch(this._checkStatus(),this.facetBatches.size){case 0:return[];case 1:return[...this.facetBatches.values()][0];default:{const t=this.facetBatches;return{[Symbol.iterator]:function*(){for(const r of t.values())for(let i=0;i<r.length;i++)yield r[i]}}}}}visitData(t){this._checkStatus();for(const n of this.facetBatches.values())for(let r=0;r<n.length;r++)t(n[r])}getItemCount(){let t=0;for(const n of this.facetBatches.values())t+=n.length;return t}_checkStatus(){if(!this.completed)throw new Error("Data propagation is not completed! No data are available.")}}class Vc{constructor(){this.ids=[],this.values=[],this.length=0}clear(){this.length=0}push(t,n){let r=this.length++;for(;r>0;){const i=r-1>>1,a=this.values[i];if(n>=a)break;this.ids[r]=this.ids[i],this.values[r]=a,r=i}this.ids[r]=t,this.values[r]=n}pop(){if(this.length===0)return;const t=this.ids[0];if(this.length--,this.length>0){const n=this.ids[0]=this.ids[this.length],r=this.values[0]=this.values[this.length],i=this.length>>1;let a=0;for(;a<i;){let o=(a<<1)+1;const s=o+1;let l=this.ids[o],c=this.values[o];const u=this.values[s];if(s<this.length&&u<c&&(o=s,l=this.ids[s],c=u),c>=r)break;this.ids[a]=l,this.values[a]=c,a=o}this.ids[a]=n,this.values[a]=r}return t}peek(){if(this.length!==0)return this.ids[0]}peekValue(){if(this.length!==0)return this.values[0]}shrink(){this.ids.length=this.values.length=this.length}}class c7 extends We{get behavior(){return Cr}constructor(t){super(),this.params=t,this.startAccessor=_e(t.start),this.endAccessor=_e(t.end),this.chromAccessor=t.chrom?_e(t.chrom):n=>{},this.weightAccessor=t.weight?_e(t.weight):n=>1,this.as={coverage:t.as||"coverage",start:t.asStart||t.start,end:t.asEnd||t.end,chrom:t.asChrom||t.chrom},this.createSegment=new Function("start","end","coverage","chrom","return {"+Object.entries(this.as).filter(([n,r])=>r).map(([n,r])=>`${JSON.stringify(r)}: ${n}`).join(", ")+"};"),this.ends=new Vc}reset(){super.reset(),this.initialize()}initialize(){const t=this.as.coverage,n=this.as.end,r=this.as.chrom,i=this.startAccessor,a=this.endAccessor,o=this.chromAccessor,s=this.weightAccessor;let l,c,u,f=0,h;const d=this.ends;d.clear();const p=(y,v,S)=>{if(y==v)return;let k=!1;l&&(l[t]===S?(l[n]=v,k=!0):l[t]!=0&&this._propagate(l)),k||(l=this.createSegment(y,v,S,u))},g=()=>{let y;for(;(y=d.peekValue())!==void 0;)p(h,y,f),h=y,f-=d.pop();h=void 0,l&&(this._propagate(l),l=void 0)};this.handle=y=>{const v=i(y);let S;for(;(S=d.peekValue())!==void 0&&S<v;)p(h,S,f),h=S,f-=d.pop();if(r){let C=o(y);C!==c&&(g(),u=C,c=u)}h!==void 0&&p(h,v,f),h=v;const k=s(y);f+=k,d.push(k,a(y))},this.complete=()=>{g(),super.complete()}}}function l7(e,t,n=0,r=e.length){const i=new Vc,a=r-n;let o;for(o=0;o<t&&o<a;o++)i.push(o,e[n+o]);for(;o<a;o++){const c=e[n+o];c>=i.peekValue()&&(i.push(o,c),i.pop())}const s=[];let l;for(;(l=i.pop())!==void 0;)s.push(n+l);return s.reverse()}class u7{constructor(t,n=-1/0,r=1/0){this.maxSize=t,this.lowerLimit=n,this.upperLimit=r;const i=this.maxSize*2+1;this.lowerLimits=new Float64Array(i),this.upperLimits=new Float64Array(i),this.lowerChildren=new Int32Array(i),this.upperChildren=new Int32Array(i),this.reset()}reset(){this.lowerLimits.fill(0),this.upperLimits.fill(0),this.lowerChildren.fill(0),this.upperChildren.fill(0),this.n=1,this.lowerLimits[0]=this.lowerLimit,this.upperLimits[0]=this.upperLimit}_findSlot(t,n,r=0){if(t>=this.lowerLimits[r]&&n<=this.upperLimits[r]){const i=this.lowerChildren[r];if(i){const a=this._findSlot(t,n,i);return a>=0?a:this._findSlot(t,n,this.upperChildren[r])}else return r}else return-1}reserve(t,n){if(n-t<=0)throw new Error("Cannot reserve an empty or negative-size slot!");if(this.n+1>this.lowerLimits.length)return!1;const r=this._findSlot(t,n);if(r<0)return!1;const i=this.n++,a=this.n++;return this.lowerLimits[i]=this.lowerLimits[r],this.upperLimits[i]=t,this.lowerLimits[a]=n,this.upperLimits[a]=this.upperLimits[r],this.lowerChildren[r]=i,this.upperChildren[r]=a,!0}}class f7 extends We{get behavior(){return Pp}constructor(t,n){if(super(),this.params=t,this._data=[],this.channel=t.channel??"x",!["x","y"].includes(this.channel))throw new Error("Invalid channel: "+this.channel);this.posAccessor=_e(this.params.pos),this.posBisector=vu(this.posAccessor),this.scoreAccessor=_e(this.params.score),this.widthAccessor=_e(this.params.width),this.laneAccessor=this.params.lane?_e(this.params.lane):i=>0,this.padding=this.params.padding??0,this.reservationMaps=new Map,this.resolution=n.getScaleResolution(this.channel);const r=()=>this._filterAndPropagate();this.schedule=()=>n.context.animator.requestTransition(r),this.resolution.addEventListener("domain",i=>this.schedule()),n._addBroadcastHandler("layoutComputed",()=>this.schedule())}complete(){const t=this.posAccessor;this._data.sort((n,r)=>t(n)-t(r)),this._scores=this._data.map(this.scoreAccessor);for(const n of new Set(this._data.map(this.laneAccessor)))this.reservationMaps.set(n,new u7(200));this.schedule(),super.complete()}_filterAndPropagate(){var o;super.reset();const t=this.resolution.getScale(),n=(o=this.resolution.members[0].view.coords)==null?void 0:o[this.channel=="x"?"width":"height"];if(!n)return;for(const s of this.reservationMaps.values())s.reset();const r=t.domain(),i=70,a=l7(this._scores,i,this.posBisector.left(this._data,r[0]),this.posBisector.right(this._data,r[1]));for(const s of a){const l=this._data[s],c=t(this.posAccessor(l))*n,u=this.widthAccessor(l)/2+this.padding;this.reservationMaps.get(this.laneAccessor(l)).reserve(c-u,c+u)&&this._propagate(l)}super.complete()}reset(){super.reset(),this._data=[],this.groups=new Map}handle(t){this._data.push(t)}}class h7 extends We{constructor(t){super(),this.params=t,this.predicate=void 0}initialize(){this.predicate=J0(this.params.expr,this.getGlobalObject())}handle(t){this.predicate(t)&&this._propagate(t)}}const d7="0".charCodeAt(0);function*p7(e,t=","){const n=t.charCodeAt(0);let r=0;for(let i=0;i<e.length;i++){const a=e.charCodeAt(i);a==n?(yield r,r=0):r=r*10+a-d7}yield r}class g7 extends We{get behavior(){return Cr}constructor(t){super();const n=_e(t.exons??"exons"),r=_e(t.start??"start"),[i,a]=t.as||["exonStart","exonEnd"];this.handle=o=>{let s=r(o),l=s,c=!0;const u=n(o);for(const f of p7(u)){if(c)l=s+f;else{s=l+f;const h=Object.assign({},o);h[i]=l,h[a]=s,this._propagate(h)}c=!c}}}}class m7 extends We{get behavior(){return Cr}constructor(t){super();const n=rn(t.field).map(a=>_e(a)),r=rn(t.separator),i=rn(t.as||t.field);if(n.length!==r.length||n.length!==i.length)throw new Error(`Lengths of "separator" (${r.length}), "fields" (${n.length}), and "as" (${i.length}) do not match!`);this.handle=a=>{if(n.some(l=>!l(a)))return;const o=n.map((l,c)=>l(a).split(r[c]));b7(o,a);const s=o[0].length;for(let l=0;l<s;l++){const c=Object.assign({},a);for(let u=0;u<n.length;u++)c[i[u]]=o[u][l];this._propagate(c)}}}}function b7(e,t){const n=e.map(r=>r.length);if(!n.every(r=>r==n[0]))throw new Error("Mismatching number of elements in the fields to be split: "+JSON.stringify(t))}class y7 extends We{get behavior(){return di}constructor(t){super(),this.params=t,this.as=t.as,this.fn=void 0}initialize(){this.fn=J0(this.params.expr,this.getGlobalObject())}handle(t){t[this.as]=this.fn(t),this._propagate(t)}}class Jx extends We{get behavior(){return di}constructor(t,n){super();const r=t.channel??"x";if(!["x","y"].includes(r))throw new Error("Invalid channel: "+r);const i=n.getScaleResolution(r).getGenome();if(!i)throw new Error("LinearizeGenomicCoordinate transform requires a locus scale!");const a=_e(t.chrom),o=rn(t.pos).map(p=>_e(p)),s=rn(t.as);if(o.length!=s.length)throw new Error('The number of "pos" and "as" elements must be equal!');const l=rn(t.offset);let c;if(l.length==0)c=new Array(o.length).fill(0);else if(l.length==1)c=new Array(o.length).fill(l[0]);else if(l.length==o.length)c=l;else throw new Error(`Invalid "offset" parameter: ${JSON.stringify(t.offset)}!`);const u=new Function("datum","chromOffset","posAccessors",s.map((p,g)=>`datum[${JSON.stringify(p)}] = chromOffset + +posAccessors[${g}](datum) - ${c[g]};`).join(`
1356
+ `));let f,h=0;const d=p=>{if(p!==f){if(h=i.cumulativeChromPositions.get(p),h===void 0)throw new Error("Unknown chromosome/contig: "+p);f=p}return h};this.handle=p=>{u(p,d(a(p)),o),this._propagate(p)}}}const eA={pages:["Lato-Regular.png"],chars:[{id:87,width:53,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:43.491,chnl:15,x:0,y:0,page:0},{id:124,width:17,height:50,xoffset:0,yoffset:-32.193000000000005,xadvance:10.521,chnl:15,x:0,y:42,page:0},{id:40,width:20,height:49,xoffset:0,yoffset:-32.571000000000005,xadvance:11.214,chnl:15,x:0,y:94,page:0},{id:41,width:19,height:49,xoffset:0,yoffset:-32.571000000000005,xadvance:11.214,chnl:15,x:0,y:145,page:0},{id:36,width:32,height:49,xoffset:0,yoffset:-34.419000000000004,xadvance:24.360000000000003,chnl:15,x:0,y:196,page:0},{id:125,width:21,height:48,xoffset:0,yoffset:-32.193000000000005,xadvance:12.642000000000001,chnl:15,x:0,y:247,page:0},{id:91,width:22,height:48,xoffset:0,yoffset:-32.193000000000005,xadvance:12.852,chnl:15,x:0,y:297,page:0},{id:93,width:19,height:48,xoffset:0,yoffset:-32.193000000000005,xadvance:12.852,chnl:15,x:0,y:347,page:0},{id:123,width:21,height:48,xoffset:0,yoffset:-32.193000000000005,xadvance:12.642000000000001,chnl:15,x:0,y:397,page:0},{id:106,width:19,height:48,xoffset:0,yoffset:-30.639000000000003,xadvance:10.08,chnl:15,x:0,y:447,page:0},{id:81,width:43,height:47,xoffset:0,yoffset:-30.429000000000002,xadvance:33.621,chnl:15,x:21,y:447,page:0},{id:77,width:45,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:38.997,chnl:15,x:66,y:447,page:0},{id:64,width:43,height:44,xoffset:0,yoffset:-28.539,xadvance:35.133,chnl:15,x:23,y:397,page:0},{id:92,width:28,height:43,xoffset:0,yoffset:-30.933000000000003,xadvance:18.984,chnl:15,x:68,y:397,page:0},{id:47,width:28,height:43,xoffset:0,yoffset:-30.933000000000003,xadvance:18.984,chnl:15,x:98,y:397,page:0},{id:109,width:42,height:32,xoffset:0,yoffset:-21.609,xadvance:34.545,chnl:15,x:113,y:447,page:0},{id:119,width:42,height:31,xoffset:0,yoffset:-21.315,xadvance:32.991,chnl:15,x:157,y:447,page:0},{id:42,width:25,height:42,xoffset:0,yoffset:-31.626,xadvance:17.85,chnl:15,x:128,y:397,page:0},{id:37,width:42,height:41,xoffset:0,yoffset:-30.387,xadvance:33.663000000000004,chnl:15,x:155,y:397,page:0},{id:79,width:42,height:41,xoffset:0,yoffset:-30.429000000000002,xadvance:33.621,chnl:15,x:199,y:397,page:0},{id:102,width:24,height:41,xoffset:0,yoffset:-30.534000000000002,xadvance:14.721,chnl:15,x:243,y:397,page:0},{id:100,width:31,height:41,xoffset:0,yoffset:-30.933000000000003,xadvance:23.520000000000003,chnl:15,x:269,y:397,page:0},{id:98,width:32,height:41,xoffset:0,yoffset:-30.933000000000003,xadvance:23.520000000000003,chnl:15,x:302,y:397,page:0},{id:56,width:32,height:41,xoffset:0,yoffset:-30.429000000000002,xadvance:24.360000000000003,chnl:15,x:336,y:397,page:0},{id:38,width:40,height:41,xoffset:0,yoffset:-30.429000000000002,xadvance:29.904000000000003,chnl:15,x:370,y:397,page:0},{id:108,width:17,height:41,xoffset:0,yoffset:-30.933000000000003,xadvance:9.912,chnl:15,x:412,y:397,page:0},{id:107,width:31,height:41,xoffset:0,yoffset:-30.933000000000003,xadvance:21.336000000000002,chnl:15,x:431,y:397,page:0},{id:48,width:33,height:41,xoffset:0,yoffset:-30.429000000000002,xadvance:24.360000000000003,chnl:15,x:464,y:397,page:0},{id:71,width:38,height:41,xoffset:0,yoffset:-30.429000000000002,xadvance:30.681,chnl:15,x:21,y:347,page:0},{id:83,width:31,height:41,xoffset:0,yoffset:-30.429000000000002,xadvance:22.785,chnl:15,x:61,y:347,page:0},{id:63,width:27,height:41,xoffset:0,yoffset:-30.429000000000002,xadvance:18.795,chnl:15,x:94,y:347,page:0},{id:105,width:18,height:41,xoffset:0,yoffset:-30.639000000000003,xadvance:10.08,chnl:15,x:123,y:347,page:0},{id:51,width:32,height:41,xoffset:0,yoffset:-30.429000000000002,xadvance:24.360000000000003,chnl:15,x:143,y:347,page:0},{id:104,width:31,height:41,xoffset:0,yoffset:-30.933000000000003,xadvance:23.436,chnl:15,x:177,y:347,page:0},{id:67,width:37,height:41,xoffset:0,yoffset:-30.429000000000002,xadvance:28.056,chnl:15,x:210,y:347,page:0},{id:88,width:37,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:27.258000000000003,chnl:15,x:249,y:347,page:0},{id:68,width:40,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:31.941000000000003,chnl:15,x:288,y:347,page:0},{id:70,width:32,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:23.751,chnl:15,x:330,y:347,page:0},{id:34,width:23,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:15.561000000000002,chnl:15,x:364,y:347,page:0},{id:72,width:38,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:32.067,chnl:15,x:389,y:347,page:0},{id:73,width:18,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:11.760000000000002,chnl:15,x:429,y:347,page:0},{id:74,width:24,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:17.745,chnl:15,x:449,y:347,page:0},{id:75,width:38,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:27.825000000000003,chnl:15,x:24,y:297,page:0},{id:76,width:31,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:21.567,chnl:15,x:475,y:347,page:0},{id:66,width:35,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:27.153000000000002,chnl:15,x:64,y:297,page:0},{id:78,width:38,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:32.067,chnl:15,x:101,y:297,page:0},{id:33,width:18,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:11.298,chnl:15,x:141,y:297,page:0},{id:80,width:34,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:25.221,chnl:15,x:161,y:297,page:0},{id:65,width:38,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:28.434,chnl:15,x:197,y:297,page:0},{id:82,width:36,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:26.313000000000002,chnl:15,x:237,y:297,page:0},{id:35,width:33,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:24.360000000000003,chnl:15,x:275,y:297,page:0},{id:84,width:34,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:24.801000000000002,chnl:15,x:310,y:297,page:0},{id:85,width:37,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:30.891000000000002,chnl:15,x:346,y:297,page:0},{id:86,width:38,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:28.434,chnl:15,x:385,y:297,page:0},{id:39,width:16,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:8.568000000000001,chnl:15,x:425,y:297,page:0},{id:69,width:32,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:24.255000000000003,chnl:15,x:443,y:297,page:0},{id:89,width:36,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:26.208000000000002,chnl:15,x:23,y:247,page:0},{id:90,width:34,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:25.284000000000002,chnl:15,x:477,y:297,page:0},{id:49,width:31,height:40,xoffset:0,yoffset:-30.156000000000002,xadvance:24.360000000000003,chnl:15,x:61,y:247,page:0},{id:50,width:32,height:40,xoffset:0,yoffset:-30.429000000000002,xadvance:24.360000000000003,chnl:15,x:94,y:247,page:0},{id:57,width:32,height:40,xoffset:0,yoffset:-30.429000000000002,xadvance:24.360000000000003,chnl:15,x:128,y:247,page:0},{id:94,width:32,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:24.360000000000003,chnl:15,x:162,y:247,page:0},{id:96,width:21,height:40,xoffset:0,yoffset:-30.429000000000002,xadvance:16.8,chnl:15,x:196,y:247,page:0},{id:55,width:33,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:24.360000000000003,chnl:15,x:219,y:247,page:0},{id:54,width:33,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:24.360000000000003,chnl:15,x:254,y:247,page:0},{id:53,width:32,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:24.360000000000003,chnl:15,x:289,y:247,page:0},{id:52,width:33,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:24.360000000000003,chnl:15,x:323,y:247,page:0},{id:103,width:31,height:39,xoffset:0,yoffset:-21.630000000000003,xadvance:21.84,chnl:15,x:358,y:247,page:0},{id:112,width:32,height:39,xoffset:0,yoffset:-21.651,xadvance:23.541,chnl:15,x:391,y:247,page:0},{id:113,width:31,height:39,xoffset:0,yoffset:-21.651,xadvance:23.520000000000003,chnl:15,x:425,y:247,page:0},{id:116,width:25,height:39,xoffset:0,yoffset:-28.182000000000002,xadvance:15.057,chnl:15,x:458,y:247,page:0},{id:121,width:31,height:38,xoffset:0,yoffset:-21.273,xadvance:21.651,chnl:15,x:34,y:196,page:0},{id:59,width:18,height:36,xoffset:0,yoffset:-20.706,xadvance:10.983,chnl:15,x:485,y:247,page:0},{id:43,width:32,height:34,xoffset:0,yoffset:-24.486,xadvance:24.360000000000003,chnl:15,x:67,y:196,page:0},{id:60,width:30,height:33,xoffset:0,yoffset:-23.331000000000003,xadvance:24.360000000000003,chnl:15,x:101,y:196,page:0},{id:62,width:31,height:33,xoffset:0,yoffset:-23.331000000000003,xadvance:24.360000000000003,chnl:15,x:133,y:196,page:0},{id:117,width:30,height:32,xoffset:0,yoffset:-21.273,xadvance:23.415000000000003,chnl:15,x:166,y:196,page:0},{id:99,width:29,height:32,xoffset:0,yoffset:-21.609,xadvance:20.055,chnl:15,x:198,y:196,page:0},{id:110,width:31,height:32,xoffset:0,yoffset:-21.609,xadvance:23.436,chnl:15,x:229,y:196,page:0},{id:111,width:32,height:32,xoffset:0,yoffset:-21.609,xadvance:23.814,chnl:15,x:262,y:196,page:0},{id:126,width:32,height:26,xoffset:0,yoffset:-16.128,xadvance:24.360000000000003,chnl:15,x:201,y:447,page:0},{id:101,width:31,height:32,xoffset:0,yoffset:-21.609,xadvance:22.176000000000002,chnl:15,x:296,y:196,page:0},{id:114,width:25,height:32,xoffset:0,yoffset:-21.651,xadvance:15.288,chnl:15,x:329,y:196,page:0},{id:115,width:27,height:32,xoffset:0,yoffset:-21.609,xadvance:18.186,chnl:15,x:356,y:196,page:0},{id:97,width:28,height:32,xoffset:0,yoffset:-21.651,xadvance:20.874000000000002,chnl:15,x:385,y:196,page:0},{id:118,width:31,height:31,xoffset:0,yoffset:-21.273,xadvance:21.672,chnl:15,x:415,y:196,page:0},{id:61,width:31,height:29,xoffset:0,yoffset:-19.089000000000002,xadvance:24.360000000000003,chnl:15,x:448,y:196,page:0},{id:120,width:30,height:31,xoffset:0,yoffset:-21.273,xadvance:20.916,chnl:15,x:21,y:145,page:0},{id:58,width:18,height:31,xoffset:0,yoffset:-20.706,xadvance:10.5,chnl:15,x:53,y:145,page:0},{id:122,width:28,height:31,xoffset:0,yoffset:-21.273,xadvance:18.984,chnl:15,x:73,y:145,page:0},{id:95,width:28,height:16,xoffset:0,yoffset:0,xadvance:19.278000000000002,chnl:15,x:235,y:447,page:0},{id:45,width:23,height:24,xoffset:0,yoffset:-14.175,xadvance:15.603000000000002,chnl:15,x:481,y:196,page:0},{id:44,width:17,height:21,xoffset:0,yoffset:-4.956,xadvance:9.534,chnl:15,x:103,y:145,page:0},{id:46,width:18,height:15,xoffset:0,yoffset:-4.956,xadvance:9.912,chnl:15,x:0,y:497,page:0},{id:32,width:0,height:0,xoffset:0,yoffset:0,xadvance:10.752,chnl:15,x:20,y:497,page:0}],info:{face:"Lato Regular",size:42,bold:0,italic:0,charset:[" ","!",'"',"#","$","%","&","'","(",")","*","+",",","-",".","/","0","1","2","3","4","5","6","7","8","9",":",";","<","=",">","?","@","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","[","\\","]","^","_","`","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","{","|","}","~"],unicode:1,stretchH:100,smooth:1,aa:1,padding:[0,0,0,0],spacing:[2,2]},common:{lineHeight:50.400000000000006,base:41.454,scaleW:512,scaleH:512,pages:1,packed:0,alphaChnl:0,redChnl:0,greenChnl:0,blueChnl:0},kernings:[]};class v7 extends We{get behavior(){return di}constructor(t){super();const n=Op(eA),r=_e(t.field),i=t.as,a=t.fontSize;this.handle=o=>{const s=r(o);s!==void 0?o[i]=n.measureWidth(s,a):o[i]=0,this._propagate(o)}}}const w7=65536;class x7 extends We{get behavior(){return di}constructor(t){super(),this.params=t}reset(){super.reset(),this.initialize()}initialize(){const t=this.params,n=t.as||"lane",r=Ke(t.spacing)?t.spacing:1,i=_e(t.start),a=_e(t.end);if(!t.preference!=!t.preferredOrder)throw new Error('Must specify both "preference" and "preferredOrder"');if(t.preference){const o=new Float64Array(w7),s=_e(t.preference),l=t.preferredOrder;let c=1/0;this.handle=u=>{const f=i(u);f<c&&o.fill(-1/0),c=f;const h=l.indexOf(s(u));let d=-1;if(h>=0&&o[h]<f)d=h;else{const p=i(u);for(d=0;d<o.length&&!(o[d]<p);d++);if(d>=o.length)throw new Error("Out of lanes!")}o[d]=a(u)+r,u[n]=d,this._propagate(u)}}else{const o=new Vc,s=new Vc;let l=-1/0,c=0;this.handle=u=>{const f=i(u);for(;o.length&&(o.peekValue()<=f||f<l);){const d=o.pop();s.push(d,d)}l=f;let h=s.pop();h===void 0&&(h=c++),u[n]=h,this._propagate(u),o.push(h,a(u)+r)}}}}class A7 extends We{get behavior(){return Cr}constructor(t){if(super(),t.as&&t.as.length!=t.fields.length)throw new Error('"fields" and "as" have unequal lengths!');const n=t.fields.map(i=>_e(i)),r=t.as?t.as:n.map(qe);this.handle=i=>{const a={};for(let o=0;o<n.length;o++)a[r[o]]=n[o](i);this._propagate(a)}}}class E7 extends We{get behavior(){return di}constructor(t){super();const n=new RegExp(t.regex),r=typeof t.as=="string"?[t.as]:t.as,i=_e(t.field);this.handle=a=>{const o=i(a);if(ze(o)){const s=o.match(n);if(s){if(s.length-1!=r.length)throw new Error('The number of RegEx groups and the length of "as" do not match!');for(let l=0;l<r.length;l++)a[r[l]]=s[l+1]}else if(t.skipInvalidInput)for(let l=0;l<r.length;l++)a[r[l]]=void 0;else throw new Error(`"${o}" does not match the given regex: ${n.toString()}`)}else if(!t.skipInvalidInput)throw new Error(`Trying to match a non-string field. Encountered type: ${typeof o}, field content: "${o}".`);this._propagate(a)}}}class S7 extends We{get behavior(){return Cr}constructor(t){super();const n=rn(t.columnRegex).map(h=>new RegExp(h)),r=rn(t.asValue);if(n.length!=r.length)throw new Error('Lengths of "columnRegex" and "as" are not equal!');const i=t.skipRegex?new RegExp(t.skipRegex):void 0,a=t.asKey||"sample";let o,s,l;const c=h=>{var y;const d=Object.keys(h),p=new Map;for(const[v,S]of n.entries())for(const k of d){const C=(y=S.exec(k))==null?void 0:y[1];if(C!==void 0){let E=p.get(C);E||(E=[],p.set(C,E)),E[v]=k}}o=[...p.entries()],s=d.filter(v=>!n.some(S=>S.test(v))&&!(i&&i.test(v)));const g=[...s.map(v=>JSON.stringify(v)+": datum["+JSON.stringify(v)+"]"),JSON.stringify(a)+": sampleId",...r.map(v=>JSON.stringify(v)+": null")];l=new Function("datum","sampleId",`return {
1357
+ `+g.join(`,
1358
1358
  `)+`
1359
- };`)},f=d=>{a||u(d);for(const[p,h]of a){const m=c(d,p);for(let g=0;g<h.length;g++)m[r[g]]=d[h[g]];this._propagate(m)}},l=d=>{u(d),f(d),this.handle=f};this.handle=l,this.beginBatch=d=>{Mg(d)&&(this.handle=l),super.beginBatch(d)}}}class c5 extends ue{get behavior(){return fn}constructor(e){super(),this.params=e,this.buffer=[]}reset(){this.buffer=[]}handle(e){this.buffer.push(e)}complete(){const e=this.params,n=e.as||["y0","y1"],r=e.sort?Yd(e.sort.field,e.sort.order):void 0,i=e.field?q(e.field):()=>1,o=e.groupby.map(f=>q(f)),a=V2(this.buffer,f=>o.map(l=>l(f)).join()).map(f=>f[1]);let s=f=>!0;if(e.baseField){const f=q(e.baseField);s=l=>f(l)!==null}let c,u;switch(e.offset){case"normalize":c=(f,l)=>f/l,u=(f,l)=>la(f,l);break;case"center":c=(f,l)=>f-l/2,u=(f,l)=>la(f,l);break;case"information":{const f=Math.log2(e.cardinality??4);c=(l,d)=>l/d,u=(l,d)=>{const h=la(l,b=>+!s(b)),m=la(l,d),g=m-h;let y=0;for(let b=0;b<l.length;b++){const w=l[b];if(s(w)){const C=d(w)/g;y-=C*Math.log2(C)}}return g/(f-(y+0))*(g/m)}}break;default:c=(f,l)=>f,u=(f,l)=>1}for(const f of a){r&&f.sort(r);const l=u(f,i);let d=0;for(const p of f){const h=d+i(p);s(p)&&(p[n[0]]=c(d,l),p[n[1]]=c(h,l),this._propagate(p),d=h)}}super.complete()}}class u5 extends ue{get behavior(){return Bt}constructor(e){super();const n=q(e.field??"sequence"),[r,i]=e.as??["pos","sequence"];this.handle=o=>{const a=Object.assign({},o,{[i]:"",[r]:0}),s=n(o);for(let c=0;c<s.length;c++){const u=Object.assign({},a);u[r]=c,u[i]=s.charAt(c),this._propagate(u)}}}}class l5 extends ue{get behavior(){return Bt}constructor(e){super(),this.params=e,this.buffer=[]}reset(){this.buffer=[]}handle(e){this.buffer.push(e)}complete(){const n=this.params.groupby,r=n.map(o=>q(o)),i=pi(this.buffer,...r);for(const[o,a]of ql(i)){const s={count:a.length};for(let c=0;c<n.length;c++)s[n[c]]=o[c];this._propagate(s)}super.complete()}}const f5="_uniqueId",p1=1e4,m1=[null];class g1 extends ue{get behavior(){return fn}constructor(e){super(),this.params=e,this.as=e.as??f5,this._blocks=[],this._usedBlocks=0,this._id=-1}initialize(){}reset(){super.reset(),this._usedBlocks=0,this._id=-1}handle(e){e[this.as]=this._nextId(),this._propagate(e)}_nextId(){return++this._id%p1==0&&(this._id=this._getBlock()*p1),this._id}_getBlock(){return this._usedBlocks<this._blocks.length?this._blocks[this._usedBlocks++]:this._reserveBlock()}_reserveBlock(){const e=m1.length;return m1[e]=this,this._blocks.push(e),this._usedBlocks++,e}}const y1={aggregate:l5,collect:bo,coverage:Y8,filterScoredLabels:X8,filter:Z8,flattenCompressedExons:J8,flattenDelimited:$8,flattenSequence:u5,formula:t5,identifier:g1,linearizeGenomicCoordinate:d1,measureText:n5,pileup:i5,project:o5,regexExtract:a5,regexFold:s5,sample:Tg,stack:c5};function d5(t,e){const n=y1[t.type];if(n)return new n(t,e);throw new Error("Unknown transform: "+t.type)}function h5(t){return"values"in t}class p5 extends rr{constructor(e){var n;if(super(),this.params=e,typeof e.values=="string"&&!((n=e==null?void 0:e.format)!=null&&n.type))throw new Error("Data format type (csv, dsv, ...) must be specified if a string is provided!")}loadSynchronously(){const e=this.params.values;let n=[],r=i=>i;if(Array.isArray(e))e.length>0&&(n=e,r=As(e[0]));else if(typeof e=="object")n=[e];else if(typeof e=="string")n=Xh(e,$g(this.params));else throw new Error('"values" in data configuration is not an array, object, or a string!');this.reset(),this.beginBatch({type:"file"});for(const i of n)this._propagate(r(i));this.complete()}async load(){this.loadSynchronously()}}function m5(t){return"url"in t}class g5 extends rr{constructor(e,n){super(),this.params=e,this.baseUrl=n}get identifier(){return JSON.stringify({params:this.params,baseUrl:this.baseUrl})}async load(){const e=this.params.url,n=Array.isArray(e)?e:[e],r=async o=>Ni({baseURL:this.baseUrl}).load(o).catch(a=>{throw new Error(`Cannot fetch: ${this.baseUrl}${o}: ${a.message}`)}),i=(o,a)=>{try{const s=Xh(o,$g(this.params));this.beginBatch({type:"file",url:a});for(const c of s)this._propagate(c)}catch(s){throw new Error(`Cannot parse: ${a}: ${s.message}`)}};this.reset(),await Promise.all(n.map(o=>r(o).then(i))),this.complete()}}function y5(t){return"sequence"in t}class v5 extends rr{constructor(e){if(super(),this.sequence=e.sequence,!("start"in this.sequence))throw new Error("'start' is missing from sequence parameters!");if(!("stop"in this.sequence))throw new Error("'stop' is missing from sequence parameters!")}loadSynchronously(){const e=this.sequence.as||"data",n=this.sequence.step||1,r=this.sequence.stop;this.reset(),this.beginBatch({type:"file"});for(let i=this.sequence.start;i<r;i+=n)this._propagate({[e]:i});this.complete()}async load(){this.loadSynchronously()}}function b5(t){return"dynamicSource"in t}class A5 extends rr{publishData(e){this.reset(),this.beginBatch({type:"file"});let n;for(const r of e)n||(n=As(r)),this._propagate(n(r));this.complete()}async load(){}}function v1(t,e){if(h5(t))return new p5(t);if(m5(t))return new g5(t,e);if(y5(t))return new v5(t);if(b5(t))return new A5;throw new Error("Cannot figure out the data source type: "+JSON.stringify(t))}function x5(t){const e=Object.keys(t).filter(r=>typeof r=="string"),n=new Function("source","return { "+e.map(r=>JSON.stringify(r)).map(r=>`${r}: source[${r}]`).join(`,
1360
- `)+" };");return n.properties=e,n}class xs extends ue{get behavior(){return Bt}constructor(){super();const e=n=>{const r=x5(n);this.handle=i=>this._propagate(r(i)),this.handle(n)};this.handle=e,this.beginBatch=n=>{Mg(n)&&(this.handle=e),super.beginBatch(n)}}}function w5(t){return"name"in t}class b1 extends rr{constructor(n,r){super();$(this,_o,void 0);this.provider=r,this.params=n}get identifier(){return this.params.name}updateDynamicData(n){et(this,_o,n),this.loadSynchronously()}loadSynchronously(){const n=j(this,_o)??this.provider(this.params.name)??[];let r=i=>i;if(Array.isArray(n))n.length>0&&(r=As(n[0]));else throw new Error(`Named data "${this.params.name}" is not an array!`);this.reset(),this.beginBatch({type:"file"});for(const i of n)this._propagate(r(i));this.complete()}async load(){this.loadSynchronously()}}_o=new WeakMap;class A1{constructor(){this._dataSourcesByHost=new Map,this._collectorsByHost=new Map,this._observers=new Map}get dataSources(){return[...new Set(this._dataSourcesByHost.values()).values()]}get collectors(){return[...this._collectorsByHost.values()]}addObserver(e,n){let r=this._observers.get(n);r||(r=[],this._observers.set(n,r)),r.push(e)}_relayObserverCallback(e,n){const r=this._observers.get(n);if(r)for(const i of r)i(e)}addDataSource(e,n){this._dataSourcesByHost.set(n,e)}findDataSourceByKey(e){return this._dataSourcesByHost.get(e)}findNamedDataSource(e){let n,r=[];for(const[i,o]of this._dataSourcesByHost.entries())if(o instanceof b1&&e==o.identifier){if(n&&n!==o)throw new Error(`Found multiple instances of named data: ${e}. Data flow optimization is broken (it's a bug).`);n=o,r.push(i)}if(n)return{dataSource:n,hosts:r}}addCollector(e,n){this._collectorsByHost.set(n,e),e.observers.push(r=>this._relayObserverCallback(r,n))}findCollectorByKey(e){return this._collectorsByHost.get(e)}initialize(){for(const e of this.dataSources)e.visit(n=>n.initialize())}}function x1(t,e){const n=[];let r;const i=e??new A1,o=[];function a(f,l=()=>{}){if(!r)throw l()||new Error("Cannot append data flow node, no parent exist!");return r.addChild(f),r=f,f}function s(f,l){return a(f,()=>new Error(`Cannot append a transform because no (inherited) data are available! ${l?JSON.stringify(l):""}`))}function c(f,l){for(const d of f){let p;try{p=d5(d,l)}catch(h){throw console.warn(h),new Error(`Cannot initialize "${d.type}" transform: ${h}`)}p.behavior&fn&&s(new xs),s(p)}}const u=f=>{if(n.push(r),f.spec.data){const l=I8(f.spec.data)?f.getDynamicDataSource():w5(f.spec.data)?new b1(f.spec.data,f.context.getNamedDataFromProvider):v1(f.spec.data,f.getBaseUrl());r=l,i.addDataSource(l,f)}if(f.spec.transform&&c(f.spec.transform,f),f instanceof pe){if(!r)throw new Error("A unit view has no (inherited) data source");const l=C5(f);if(l){o.push(l.rewrite);for(const p of l.transforms)s(p)}f.mark.isPickingParticipant()&&(s(new xs),s(new g1({type:"identifier"})));const d=new bo({type:"collect",groupby:f.getFacetFields(),sort:S5(f,l==null?void 0:l.rewrittenEncoding)});a(d),i.addCollector(d,f)}f1(f.spec)};return u.postOrder=f=>{r=n.pop()},t.visit(u),o.forEach(f=>f()),i}function C5(t){var o;const e=[],n={},r=[];for(const[a,s]of Object.entries(t.getEncoding())){const c=a;to(c)&&_p(s)&&r.push({channel:c,chromPosDef:s})}const i=pi(r,a=>Or(a.channel),a=>a.chromPosDef.chrom);for(const[a,s]of i.entries())for(const[c,u]of s.entries()){const f=[],l=[],d=[];for(const{channel:p,chromPosDef:h}of u){const m=b=>b.replace(/[^A-Za-z0-9_]/g,""),g=["_linearized_",m(h.chrom),"_",m(h.pos)].join(""),y={...((o=t.spec.encoding)==null?void 0:o[p])??t.getEncoding()[p]??{},field:g};delete y.chrom,delete y.pos,!y.type&&h.type&&(y.type=h.type),n[p]=y,f.push(h.pos),d.push(h.offset??0),l.push(g)}e.push(new xs),e.push(new d1({type:"linearizeGenomicCoordinate",channel:a,chrom:c,pos:f,offset:d,as:l},t))}return e.length?{transforms:e,rewrittenEncoding:n,rewrite:()=>{t.spec.encoding={...t.spec.encoding,...n},Ag(t.mark,"encoding")}}:void 0}function S5(t,e){var r;const n={...t.getEncoding(),...e}.x;if(qe(n)&&(r=t.getScaleResolution("x"))!=null&&r.isZoomable()){if(Xn(n))return{field:n.field};if(!$i(n))throw new Error("A zoomable x channel must be mapped to a field.")}}function E5(t,...e){let n=t;for(const o of e)n.addChild(o),n=o;let r;n instanceof bo?r=n:(r=new bo,n.addChild(r));let i;return t instanceof rr?i=async()=>(await t.load(),r.getData()):i=async()=>{throw new Error("The root node is not derived from DataSource!")},{dataSource:t,collector:r,loadAndCollect:i}}function w1(t,e=void 0){if(t.parent!==e)return!1;for(const n of t.children)if(!w1(n,t))return!1;return!0}function Kl(t,e=!1){if(t.behavior&Ol&&(e=!0),t instanceof xs)if(e)e=!1;else{const n=t.children[0];t.excise(),n&&Kl(n,e);return}t.behavior&Bt&&(e=!1);for(let n=0,r=t.children.length;n<r;n++)Kl(t.children[n],e||r>1)}function D5(t){const e=[...t._dataSourcesByHost.entries()],n=new Map;for(const r of e){const i=r[1];i.identifier&&!n.has(i.identifier)&&n.set(i.identifier,i)}t._dataSourcesByHost.clear();for(let[r,i]of e){const o=n.get(i.identifier);o&&(o.adoptChildrenOf(i),i=o),t.addDataSource(i,r)}}function M5(t){if(Kl(t),!w1(t))throw new Error("Encountered a bug! There's a problem in the data flow structure.")}function T5(t){for(const e of t.dataSources)M5(e);D5(t)}function C1(t){t.visit(n=>{n instanceof pe&&n.resolve("scale")});const e=new Set;t.visit(n=>{for(const r of Object.values(n.resolutions.scale)){const i=r.name;if(i&&e.has(i))throw new Error(`The same scale name "${i}" occurs in multiple scale resolutions!`);e.add(i)}}),t.visit(n=>{n instanceof pe&&n.resolve("axis")}),t.visit(n=>n.onScalesResolved())}function I5(t){for(const e of eo){const n=t.getScaleResolution(e);n&&!n.name&&n.isZoomable()&&(n.name=`${e}_at_root`)}}function k5(t){const e=[];return t.visit(n=>{if(n instanceof pe){const r=n.getEncoding();for(const[i,o]of Object.entries(r))Xn(o)&&"type"in o&&e.push({view:n,channel:i,field:o.field,type:o.type});return vs}}),e}async function N5(t,e,n){var a;if(!t.import.url)throw new Error("Cannot import, not an import spec: "+JSON.stringify(t));const r=Ni({baseURL:e}),i=t.import.url,o=JSON.parse(await r.load(i).catch(s=>{throw new Error(`Could not load imported view spec: ${i}
1361
- Reason: ${s.message}`)}));if(n.isViewSpec(o))return o.baseUrl=(a=i.match(/^[^?#]*\//))==null?void 0:a[0],o;throw new Error(`The imported spec "${i}" is not a view spec: ${JSON.stringify(t)}`)}async function S1(t){const e=[];t.visit(n=>{if(n instanceof qg)return e.push(n),vs});for(const n of e){const r=n.context,i=await N5(n.spec,n.getBaseUrl(),r),o=r.createView(i,n.parent,n.name);n.parent.replaceChild(n,o),await S1(o)}}function E1(t){const e=[];return t.visit(n=>{e.push(n)}),new Set([...Y2(e,n=>n.length,n=>n.name)].filter(([n,r])=>r==1&&n!==void 0).map(([n,r])=>n))}const L5=t=>!/^(layer|concat)\d+$/.test(t);class D1{constructor(e){this.globalOptions=e}pushView(e,n){}popView(e){}renderMark(e,n){}}class M1 extends D1{constructor(e,n){super(e),this.webGLHelper=n,this.buffer=[],this.coords=void 0,this.views=new Set}pushView(e,n){this.views.add(e),this.coords=n}renderMark(e,n){if(this.globalOptions.picking&&!e.isPickingParticipant())return;const r=e.render(n);r&&this.buffer.push({mark:e,callback:r,coords:this.coords,clipRect:n.clipRect})}renderDeferred(){if(this.batch||this._buildBatch(),this.batch.length==0)return;const e=this.webGLHelper.gl,n=this.globalOptions.picking;e.bindFramebuffer(e.FRAMEBUFFER,n?this.webGLHelper._pickingBufferInfo.framebuffer:null),this.webGLHelper.clearAll();for(const r of this.views)r.onBeforeRender();for(const r of this.batch)r();n&&e.bindFramebuffer(e.FRAMEBUFFER,null)}_buildBatch(){this.batch=[];let e=!0,n=!0;const r=a=>()=>{e&&a()},i=a=>()=>{e&&n&&a()},o=pi(this.buffer,a=>a.mark);for(const[a,s]of o.entries()){if(!a.isReady())continue;this.batch.push(()=>{e=a.unitView.getEffectiveOpacity()>0}),this.batch.push(...a.prepareRender(this.globalOptions).map(u=>r(u)));let c;for(const u of s){const f=u.coords;f.equals(c)||this.batch.push(r(()=>{n=a.setViewport(f,u.clipRect)})),this.batch.push(i(u.callback)),c=u.coords}}}}class B5 extends D1{constructor(...e){super({}),this.contexts=e}pushView(e,n){for(const r of this.contexts)r.pushView(e,n)}popView(e){for(const n of this.contexts)n.popView(e)}renderMark(e,n){for(const r of this.contexts)r.renderMark(e,n)}}class O5{constructor(e,n){this.point=e,this.uiEvent=n,this.stopped=!1,this.target=void 0}stopPropagation(){this.stopped=!0}get type(){return this.uiEvent.type}}class F5{constructor(e,n){this.x=e,this.y=n}equals(e){return e?e===this||e.x===this.x&&e.y===this.y:!1}}const P5=t=>new Promise(e=>setTimeout(e,t));function ws(t){const e=t.requestAnimationFrame||window.requestAnimationFrame,n=t.signal,r=()=>new Promise((i,o)=>{if(n!=null&&n.aborted)return o("aborted");const a=performance.now(),s=a+(t.duration||1e3),c=typeof t.from=="number"?t.from:0,u=typeof t.to=="number"?t.to:1,f=t.easingFunction||(m=>m),l=m=>(m-a)/(s-a),d=m=>m*(u-c)+c,p=m=>Math.max(0,Math.min(1,m)),h=m=>{n!=null&&n.aborted?o("aborted"):(t.onUpdate(d(f(p(l(m))))),m<s?e(h):(t.onUpdate(d(f(1))),i()))};e(h)});return t.delay?n!=null&&n.aborted?Promise.reject("aborted"):P5(t.delay).then(r):r()}class z5{constructor(e){this._renderCallback=e,this._renderRequested=!1,this._warn=!1,this.transitions=[]}requestTransition(e){this.cancelTransition(e),this.transitions.push(e),this.requestRender()}cancelTransition(e){const n=this.transitions.indexOf(e);n>=0&&this.transitions.splice(n,1)}requestRender(){this._renderRequested?this._warn&&console.warn("Render already requested!"):(this._renderRequested=!0,window.requestAnimationFrame(e=>{this._renderRequested=!1;const n=this.transitions;this.transitions=[];let r;for(;r=n.shift();)r(e);this._renderCallback(e)}))}transition(e){return ws({requestAnimationFrame:n=>this.requestTransition(n),...e})}}function T1(){const t=e=>e;return t.invert=e=>e,t.copy=T1,t.invertRange=()=>{},t}class R5{constructor(e){this.genomes=new Map,this.genomeSpy=e}async initialize(e){const n=new f8(e);return this.genomes.set(n.name,n),Promise.all([...this.genomes.values()].map(r=>r.load(this.genomeSpy.spec.baseUrl)))}getGenome(e){if(!this.genomes.size)throw new Error("No genomes have been configured!");if(e){const n=this.genomes.get(e);if(!n)throw new Error(`No genome with the name ${e} has been configured!`);return n}else{if(this.genomes.size>1)throw new Error("Cannot pick a default genome! More than one have been configured!");return this.genomes.values().next().value}}}const j5="data:image/png;base64,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",U5={thin:100,light:300,regular:400,normal:400,medium:500,bold:700,black:900};class H5{constructor(e){this._webGLHelper=e,this.fontRepository="https://raw.githubusercontent.com/etiennepinchon/aframe-fonts/master/fonts/",this._fonts=new Tn([],JSON.stringify),this._metadataPromises=new Map,this._fontPromises=new Map,this._promises=[],this._defaultFontEntry={metrics:Nl(h1),texture:this._createTextureNow(j5)}}async waitUntilReady(){await Promise.all(this._promises)}getFont(e,n="normal",r="regular"){if(ne(r)&&(r=U5[r.toLowerCase()],!r))throw new Error("Unknown font weight: "+r);const i={family:e,style:n,weight:r};let o=this._fonts.get(i);return o||(o={metrics:void 0,texture:void 0},this._fonts.set(i,o),this._promises.push(this._loadFontEntry(o,i))),o}async _loadFontEntry(e,n){try{const r=await this._loadMetadata(n.family),i=Q5(r,n),o=this.fontRepository+I1(n.family)+"/"+i.replace(/\.\w+/,""),a=this._createTexture(o+".png"),s=this._loadFont(o+".json");e.texture=await a,e.metrics=await s}catch(r){console.log("Cannot load font. Using default.",r),e.metrics=this._defaultFontEntry.metrics,e.texture=this._defaultFontEntry.texture}}_loadFont(e){let n=this._fontPromises.get(e);return n||(n=fetch(e).then(r=>{if(!r.ok)throw new Error("Could not load font: "+r.status);return r}).then(r=>r.json()).then(r=>Nl(r)),this._fontPromises.set(e,n)),n}_loadMetadata(e){const n=I1(e);let r=this._metadataPromises.get(n);return r||(r=fetch(this.fontRepository+n+"/METADATA.pb").then(i=>{if(!i.ok)throw new Error("Could not load font metadata: "+i.status);return i}).then(i=>i.text()).then(i=>G5(i)).catch(i=>{console.warn(i)}),this._metadataPromises.set(n,r)),r}getDefaultFont(){return this._defaultFontEntry}_createTexture(e){const n=this._webGLHelper.gl;return new Promise((r,i)=>{co(n,{src:e,min:n.LINEAR},(o,a,s)=>{o?i(o):r(a)})})}_createTextureNow(e){const n=this._webGLHelper.gl;let r;const i=new Promise((o,a)=>{r=co(n,{src:e,min:n.LINEAR},(s,c,u)=>{s?a(s):o(c)})});return this._promises.push(i),r}}function I1(t){return t.toLowerCase().replaceAll(/[^\w]/g,"")}function G5(t){const e=t.split(`
1362
- `),n=[];let r;for(const i of e)if(i.startsWith("fonts {")&&(r={name:void 0,style:void 0,weight:void 0,filename:void 0,post_script_name:void 0,full_name:void 0,copyright:void 0}),i.startsWith("}")&&(n.push(r),r=void 0),r){let o=i.match(/^\s*([A-Za-z_]+):[ ]?"(.*)"$/);if(o){const a=o[1];r[a]=o[2]}if(o=i.match(/^\s*([A-Za-z_]+):[ ]?(\d+)$/),o){const a=o[1];r[a]=+o[2]}}return n}function Q5(t,e){let n,r=Number.POSITIVE_INFINITY;for(const i of t)if(e.family.localeCompare(i.name,void 0,{sensitivity:"accent"})==0&&e.style==i.style){const o=Math.abs(e.weight-i.weight);o<r&&(r=o,n=i)}return n==null?void 0:n.filename}function V5(t,e){const n=[];let r;for(const i of t.split(`
1363
- `))if(i.startsWith(">"))r={identifier:i.match(/>(\S+)/)[1],sequence:""},n.push(r);else if(r)r.sequence+=i.trim();else throw new Error("Invalid fasta file!");return n}class Y5{constructor(e,n){this.animator=e,this.disabled=!!n,this.damping=.015,this.acceleration=.3,this.accelerationThreshold=100,this.lowerLimit=.5,this.loop=!1,this.momentum=0,this.timestamp=0,this.callback=null,this._transitionCallback=this.animate.bind(this),this.clear()}clear(){this.momentum=0,this.timestamp=null,this.loop=null,this.callback=null}cancel(){this.loop&&(this.animator.cancelTransition(this._transitionCallback),this.clear())}setMomentum(e,n){if(this.disabled){n(e);return}e*this.momentum<0?this.momentum=0:Math.abs(e)>this.accelerationThreshold?this.momentum=A2([this.momentum,e],this.acceleration):this.momentum=e,this.callback=n,this.loop||this.animate()}animate(e){this.callback(this.momentum);const n=e-this.timestamp||0;this.timestamp=e;const r=Math.abs(this.momentum);this.momentum=Math.sign(this.momentum)*Math.max(0,r-((r*this.damping)**1.5+.04)*n),Math.abs(this.momentum)>this.lowerLimit?(this.loop=!0,this.animator.requestTransition(this._transitionCallback)):this.clear()}}function _5(t){const e={},n=["string","number","boolean"],r=["wheelDelta","wheelDeltaX","wheelDeltaY"];for(const i in t){const o=i;!r.includes(i)&&n.includes(typeof t[o])&&(e[o]=t[o])}return e}function Cs(t,e,n=!0){let r,i=a=>{};return function(...s){return new Promise((c,u)=>{const f=()=>{clearTimeout(r),i=l=>{},c(t(...s))};n&&i("debounced"),clearTimeout(r),i=u,r=setTimeout(f,e)})}}const k1=new Map;async function W5(t,e,n){const r=t.symbol;let i=k1.get(r)??await q5(t.symbol);return i?(k1.set(r,i),E`<div class="title"><strong>${i.name}</strong> ${i.description}</div><p class="summary">${i.summary}</p><p class="source">Source: NCBI RefSeq Gene</p>`):null}async function X5(t){console.log("Searching: "+t);const e={mode:"cors"},r=(await fetch(`https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?db=gene&term=${t}[GENE]&sort=relevance&retmode=json`,e).then(i=>i.json())).esearchresult.idlist[0];return r?(await fetch(`https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esummary.fcgi?db=gene&id=${r}&retmode=json`,e).then(a=>a.json())).result[r]:null}const Z5=Cs(X5,500);function q5(t){return Z5(t)}const K5=de(".4~r"),J5=de(".4~e");function N1(t){return t===null?E`<span class="na">NA</span>`:ne(t)?t.substring(0,30):Number.isInteger(t)?""+t:le(t)?Math.abs(t)>Math.pow(10,8)||Math.abs(t)<Math.pow(10,-8)?J5(t):K5(t):ra(t)?t?"True":"False":"?"+typeof t+" "+t}async function $5(t,e,n){const r=(c,u)=>{var f;for(const[l,d]of Object.entries(e.encoders))if((f=d==null?void 0:d.accessor)!=null&&f.fields.includes(c))switch(l){case"color":case"fill":case"stroke":return E`<span class="color-legend" style="${`background-color: ${d(u)}`}"></span>`}return""},i=Object.entries(t).filter(([c,u])=>!c.startsWith("_"));if(i.length===0)return;const o=E`<table class="attributes">${i.map(([c,u])=>E`<tr><th>${c}</th><td>${N1(u)} ${r(c,t)}</td></tr>`)}</table>`,a=e.unitView.getTitleText(),s=a?E`<div class="title"><strong>${a}</strong></div>`:"";return E`${s}${o}`}class e6 extends u1{constructor(e,n){super({vconcat:[]},e,void 0,"implicitRoot",1),n.parent=this,this.appendChild(n)}}X("index",Jc,["continuous"]),X("locus",Kx,["continuous"]),X("null",T1,[]),Wh("fasta",V5);class L1{constructor(e,n,r={}){this.container=e,this.spec=n,this.accessorFactory=new H3,this.viewFactory=new H8,this.namedDataProviders=[],this.animator=new z5(()=>this.renderAll()),this.genomeStore=void 0,this.viewVisibilityPredicate=i=>i.isVisibleInSpec(),this._renderingContext=void 0,this._pickingContext=void 0,this._dirtyPickingBuffer=!1,this._currentHover=void 0,this._wheelInertia=new Y5(this.animator),this._keyboardListeners=new Map,this._eventListeners=new Map,this.tooltipHandlers={default:$5,refseqgene:W5,...r.tooltipHandlers??{}},this.viewRoot=void 0}registerNamedDataProvider(e){this.namedDataProviders.unshift(e)}getNamedDataFromProvider(e){for(const n of this.namedDataProviders){const r=n(e);if(r)return r}}updateNamedData(e,n){const r=this.viewRoot.context.dataFlow.findNamedDataSource(e);if(!r)throw new Error("No such named data source: "+e);r.dataSource.updateDynamicData(n);for(const i of r.hosts)i.visit(o=>{for(const a of Object.values(o.resolutions.scale))a.reconfigure()});this.animator.requestRender()}broadcast(e,n){const r={type:e,payload:n};this.viewRoot.visit(i=>i.handleBroadcast(r))}_prepareContainer(){this.container.classList.add("genome-spy"),this.container.classList.add("loading"),this._glHelper=new rM(this.container,()=>{if(this.viewRoot){const e=this.viewRoot.getSize().addPadding(this.viewRoot.getOverhang()),n=r=>r.grow>0?void 0:r.px;return{width:n(e.width),height:n(e.height)}}}),this.loadingMessageElement=document.createElement("div"),this.loadingMessageElement.className="loading-message",this.loadingMessageElement.innerHTML='<div class="message">Loading<span class="ellipsis">...</span></div>',this.container.appendChild(this.loadingMessageElement),this.tooltip=new A4(this.container),this.loadingMessageElement.querySelector(".message").addEventListener("transitionend",()=>{this.loadingMessageElement.style.display="none"})}destroy(){this.container.classList.remove("genome-spy"),this.container.classList.remove("loading");for(const[e,n]of this._keyboardListeners)for(const r of n)document.removeEventListener(e,r);for(this._glHelper.finalize();this.container.firstChild;)this.container.firstChild.remove()}async _prepareViewsAndData(){this.spec.genome&&(this.genomeStore=new R5(this),await this.genomeStore.initialize(this.spec.genome));const e=this,n={dataFlow:new A1,accessorFactory:this.accessorFactory,glHelper:this._glHelper,animator:this.animator,genomeStore:this.genomeStore,fontManager:new H5(this._glHelper),requestLayoutReflow:()=>{},updateTooltip:this.updateTooltip.bind(this),getNamedDataFromProvider:this.getNamedDataFromProvider.bind(this),getCurrentHover:()=>this._currentHover,addKeyboardListener:(s,c)=>{document.addEventListener(s,c);let u=this._keyboardListeners.get(s);u||(u=[],this._keyboardListeners.set(s,u)),u.push(c)},isViewVisible:e.viewVisibilityPredicate,isViewSpec:s=>e.viewFactory.isViewSpec(s),createView:function(s,c,u){return e.viewFactory.createView(s,n,c,u)}},r=this.spec;r.datasets&&this.registerNamedDataProvider(s=>r.datasets[s]),this.viewRoot=n.createView(r,null,"viewRoot"),await S1(this.viewRoot),(this.viewRoot instanceof pe||this.viewRoot instanceof Ot)&&(this.viewRoot=new e6(n,this.viewRoot)),C1(this.viewRoot),I5(this.viewRoot),this._glHelper.invalidateSize();const i=[];this.viewRoot.visit(s=>{s instanceof pe&&i.push(s)});const o=x1(this.viewRoot,n.dataFlow);T5(o),this.broadcast("dataFlowBuilt",o),o.dataSources.forEach(s=>console.log(s.subtreeToString())),i.forEach(s=>s.mark.initializeEncoders());const a=Promise.all(i.map(s=>s.mark.initializeGraphics()));for(const s of i)o.addObserver(c=>{s.mark.initializeData(),s.mark.updateGraphicsData()},s);await n.fontManager.waitUntilReady(),o.initialize(),await Promise.all(o.dataSources.map(s=>s.load())),this.viewRoot.visit(s=>{for(const c of Object.values(s.resolutions.scale))c.reconfigure()}),this.broadcast("dataLoaded"),await a,this.viewRoot.visit(s=>{for(const c of Object.values(s.resolutions.scale))this._glHelper.createRangeTexture(c)});for(const s of i)s.mark.finalizeGraphicsInitialization();n.requestLayoutReflow=this.computeLayout.bind(this),this.viewRoot.visit(s=>fo(s,"size")),this._glHelper.invalidateSize()}async launch(){try{return this._prepareContainer(),await this._prepareViewsAndData(),this.registerMouseEvents(),this.computeLayout(),this.animator.requestRender(),this._glHelper.addEventListener("resize",()=>{this.computeLayout(),this.renderAll()}),!0}catch(e){const n=`${e.view?`At "${e.view.getPathString()}": `:""}${e.toString()}`;return console.error(e.stack),t6(this.container,n),!1}finally{this.container.classList.remove("loading"),window.setTimeout(()=>{this.loadingMessageElement.style.display="none"},2e3)}}registerMouseEvents(){const e=this._glHelper.canvas,n=r=>{var i;if(r instanceof MouseEvent){r.type=="mousemove"&&(this.tooltip.handleMouseMove(r),this._tooltipUpdateRequested=!1,r.buttons==0&&this.renderPickingFramebuffer());const o=e.getBoundingClientRect(),a=new F5(r.clientX-o.left-e.clientLeft,r.clientY-o.top-e.clientTop),s=c=>{this.viewRoot.propagateInteractionEvent(new O5(a,c)),this._tooltipUpdateRequested||this.tooltip.clear()};if(r.type!="wheel"&&this._wheelInertia.cancel(),r.type=="mousemove")this._handlePicking(a.x,a.y);else if(r.type=="mousedown"||r.type=="mouseup")this.renderPickingFramebuffer();else if(r.type=="wheel"){this._tooltipUpdateRequested=!1;const c=r;if(Math.abs(c.deltaX)>Math.abs(c.deltaY))this._currentHover=null,this._wheelInertia.cancel();else{const u=_5(c);this._wheelInertia.setMomentum(c.deltaY*(c.deltaMode?80:1),f=>{const l=new WheelEvent("wheel",{...u,deltaMode:0,deltaX:0,deltaY:f});s(l)}),c.preventDefault();return}}if(r.type=="click"){const c=this._currentHover?{type:r.type,viewPath:[...this._currentHover.mark.unitView.getAncestors()].map(u=>u.name).reverse(),datum:this._currentHover.datum}:{type:r.type,viewPath:null,datum:null};(i=this._eventListeners.get("click"))==null||i.forEach(u=>u(c))}s(r)}};["mousedown","mouseup","wheel","click","mousemove","gesturechange","contextmenu"].forEach(r=>e.addEventListener(r,n)),e.addEventListener("mousedown",()=>{document.addEventListener("mouseup",()=>this.tooltip.popEnabledState(),{once:!0}),this.tooltip.pushEnabledState(!1)}),e.addEventListener("dragstart",r=>r.stopPropagation())}_handlePicking(e,n){var o;const r=this._glHelper.readPickingPixel(e,n),i=r[0]|r[1]<<8|r[2]<<16;if(i==0){this._currentHover=null;return}if(i!==((o=this._currentHover)==null?void 0:o.uniqueId)&&(this._currentHover=null),this._currentHover||this.viewRoot.visit(a=>{if(a instanceof pe){if(a.mark.isPickingParticipant()){const s=a.mark.encoders.uniqueId.accessor;a.getCollector().visitData(c=>{s(c)==i&&(this._currentHover={mark:a.mark,datum:c,uniqueId:i})})}if(this._currentHover)return tr}}),this._currentHover){const a=this._currentHover.mark;this.updateTooltip(this._currentHover.datum,async s=>{if(!a.isPickingParticipant())return;const c=a.properties.tooltip;if(c!==null){const u=(c==null?void 0:c.handler)??"default",f=this.tooltipHandlers[u];if(!f)throw new Error("No such tooltip handler: "+u);return f(s,a,c==null?void 0:c.params)}})}}updateTooltip(e,n){if(!this._tooltipUpdateRequested||!e)this.tooltip.updateWithDatum(e,n),this._tooltipUpdateRequested=!0;else throw new Error("Tooltip has already been updated! Duplicate event handler?")}computeLayout(){const e=this.viewRoot;if(!e)return;this.broadcast("layout");const n=this._glHelper.getLogicalCanvasSize();if(isNaN(n.width)||isNaN(n.height)){console.log(`NaN in canvas size: ${n.width}x${n.height}. Skipping computeLayout().`);return}this._renderingContext=new M1({picking:!1},this._glHelper),this._pickingContext=new M1({picking:!0},this._glHelper),e.render(new B5(this._renderingContext,this._pickingContext),dn.create(0,0,n.width,n.height)),this.broadcast("layoutComputed")}renderAll(){var e;(e=this._renderingContext)==null||e.renderDeferred(),this._dirtyPickingBuffer=!0}renderPickingFramebuffer(){this._dirtyPickingBuffer&&(this._pickingContext.renderDeferred(),this._dirtyPickingBuffer=!1)}getSearchableViews(){const e=[];return this.viewRoot.visit(n=>{n instanceof pe&&n.getAccessor("search")&&e.push(n)}),e}getNamedScaleResolutions(){const e=new Map;return this.viewRoot.visit(n=>{for(const r of Object.values(n.resolutions.scale))r.name&&e.set(r.name,r)}),e}}function t6(t,e){const n=document.createElement("div");n.className="message-box";const r=document.createElement("div");r.textContent=e,n.appendChild(r),t.appendChild(n)}const _N="",n6="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+Cjxzdmcgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDY0IDY0IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHhtbDpzcGFjZT0icHJlc2VydmUiIHhtbG5zOnNlcmlmPSJodHRwOi8vd3d3LnNlcmlmLmNvbS8iIHN0eWxlPSJmaWxsLXJ1bGU6ZXZlbm9kZDtjbGlwLXJ1bGU6ZXZlbm9kZDtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46cm91bmQ7c3Ryb2tlLW1pdGVybGltaXQ6MS41OyI+CiAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjEwMjIxLDAuMDA2ODM4MjUsLTAuMDA2NzEzNiwwLjEwMDM0NywtOC4wMzQyNCwtMTMuMjIyMikiPgogICAgICAgIDxwYXRoIGQ9Ik0yMDguNjI5LDU0OC4xN0MyMDguNjI5LDU0OC4xNyAyMTkuNzY4LDU5NC4zODkgMjM5LjgxNCw2MTkuMjIyQzI1OS44Niw2NDQuMDU1IDMxOS4xMTksNjgwLjgzMSAzMTkuMTE5LDY4MC44MzFDMzE5LjExOSw2ODAuODMxIDM4NS41NTcsNjIyLjkxNSA0MzcuODcsNDk4LjM0NkM0MzcuODcsNDk4LjM0NiA0NTYuMDIxLDQ5OS4yMzYgNDczLjgwOCw0ODYuNDQ2QzQ5MS41OTQsNDczLjY1NiA0OTAuMjM5LDQ3OC41MzQgNDk0Ljg4Myw0NjEuNjJDNDk0Ljg4Myw0NjEuNjIgNTUxLjg0OCw0NjcuOTM3IDYyNS44MjYsNDUxLjg2M0M2NjcuNjM0LDQ0Mi43NzggNzEwLjIzOCw0MjUuNjQ5IDc0Ny4zODIsMzkzLjE0MkM3NDcuMzgyLDM5My4xNDIgNzIxLjk5MiwzNjAuMjQ0IDY4OS40MjIsMjkxLjQ1QzY3Ny4wMjksMjY1LjI3NSA2NDcuNTE4LDI1Ny4wOTggNTkwLjc0NywyMDMuMzA5TDQzOC4wODMsMzkxLjI3M0wyMDguNjI5LDU0OC4xN1oiIHN0eWxlPSJmaWxsLW9wYWNpdHk6MC4xMTsiLz4KICAgIDwvZz4KICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDAuMDgxOTg1LC0wLjA1ODI0OTMsMC4wNTgyNDkzLDAuMDgxOTg1LC00MC40NzU0LDM0Ljc2NjgpIj4KICAgICAgICA8cGF0aCBkPSJNNTYxLjU4OCwzNDkuMTU1QzU2MS41ODgsMzQ5LjE1NSA1MTYuMjk3LDI3MS4zNDEgMzI4Ljg0MSwyNTIuMDQ0QzMyOC44NDEsMjUyLjA0NCAzMDIuMzQyLDMyNS4xODkgMzA3LjY4NiwzNjguMDU2QzMxMy4wMzEsNDEwLjkyMiAzMDMuMDAxLDQ1Ni4xNDcgMzI5LjEzMiw1MDEuMTc0QzMyOS4xMzIsNTAxLjE3NCA0NDMuMTE0LDUwNi43NDMgNTU0LjY0OSw0MjguNDY5TDYyOS4yMDQsNDMyLjExMkM2MjkuMjA0LDQzMi4xMTIgNjczLjc1NSw1MzQuMzUxIDg1Ni45NjQsNTU0LjM3NUM4NTYuOTY0LDU1NC4zNzUgODg2LjcxNyw0OTEuNzY4IDg3OS4xOTMsNDE3LjQ3OEM4NzEuMjExLDMzOC42NzMgODcxLjcxNiwyOTMuNDQzIDg3MS43MTYsMjkzLjQ0M0M4NzEuNzE2LDI5My40NDMgNzc1LjQ4NSwyODMuOTI4IDYzNS40MTgsMzYxLjc5NUw1NjEuNTg4LDM0OS4xNTVaIiBzdHlsZT0iZmlsbDpyZ2IoMTI3LDE4NywyMjEpOyIvPgogICAgICAgIDxjbGlwUGF0aCBpZD0iX2NsaXAxIj4KICAgICAgICAgICAgPHBhdGggZD0iTTU2MS41ODgsMzQ5LjE1NUM1NjEuNTg4LDM0OS4xNTUgNTE2LjI5NywyNzEuMzQxIDMyOC44NDEsMjUyLjA0NEMzMjguODQxLDI1Mi4wNDQgMzAyLjM0MiwzMjUuMTg5IDMwNy42ODYsMzY4LjA1NkMzMTMuMDMxLDQxMC45MjIgMzAzLjAwMSw0NTYuMTQ3IDMyOS4xMzIsNTAxLjE3NEMzMjkuMTMyLDUwMS4xNzQgNDQzLjExNCw1MDYuNzQzIDU1NC42NDksNDI4LjQ2OUw2MjkuMjA0LDQzMi4xMTJDNjI5LjIwNCw0MzIuMTEyIDY3My43NTUsNTM0LjM1MSA4NTYuOTY0LDU1NC4zNzVDODU2Ljk2NCw1NTQuMzc1IDg4Ni43MTcsNDkxLjc2OCA4NzkuMTkzLDQxNy40NzhDODcxLjIxMSwzMzguNjczIDg3MS43MTYsMjkzLjQ0MyA4NzEuNzE2LDI5My40NDNDODcxLjcxNiwyOTMuNDQzIDc3NS40ODUsMjgzLjkyOCA2MzUuNDE4LDM2MS43OTVMNTYxLjU4OCwzNDkuMTU1WiIvPgogICAgICAgIDwvY2xpcFBhdGg+CiAgICAgICAgPGcgY2xpcC1wYXRoPSJ1cmwoI19jbGlwMSkiPgogICAgICAgICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjc1ODYzNywwLjQ1ODkyLC0wLjQ1ODkyLDAuNzU4NjM3LDQyNS42MzUsLTEyMS4yMTMpIj4KICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0zODYuODczLDM5Ny4yNDFDMzcxLjM0NSwzODMuNjI4IDMzNS4xMzgsMzc0Ljc4MiAyOTAuNjQ0LDM4MC41NDNDMjQ2LjE0OSwzODYuMzA0IDE5Ni44MjcsNDAyLjI2NiAxNzguODAyLDQxMi4wNjVDMTY4LjIwMiw0MTcuODI4IDE1MS40OTQsNDI5LjM1NCAxNTAuNjgyLDQzOS4zMzRDMTQ5LjUyNyw0NTMuNTI4IDE1My41OTMsNDc3LjA2NiAxNjUuNjI1LDQ5MS4yODRDMTcxLjY5LDQ5OC40NTEgMTc5LjkyNyw1MDMuNDQ1IDE5My44MzgsNTA1LjQyM0MyMTEuNzAxLDUwNy45NjMgMjUyLjcxNCw0ODAuNjI3IDI3NS4zOTksNDY5LjIyQzI5OS4zMzIsNDU3LjE4NyAzMTMuOTgxLDQ1NC41NiAzMzguMzg2LDQ0Ny4wMTRDMzM4LjM4Niw0NDcuMDE0IDI5MS4zNDYsNDc4LjU4NyAyNzAuMjA1LDQ5NC4zOTNDMjM5LjYxLDUxNy4yNjggMjE4LjU3NSw1MjIuNDQ0IDIxMi44NTksNTM5Ljg5N0MyMDkuNzY2LDU0OS4zNCAyMTIuMjM3LDU2Ny43NjcgMjIwLjM1NCw1NzcuNTM4QzIyOS40MjcsNTg4LjQ2MSAyMzMuMTk3LDU5NS4wNjkgMjU0LjU5MSw1OTcuNjI0QzI2Ny4zMDMsNTk5LjE0MyAyNzYuNjg1LDU5OC44MDIgMzE0LjM3LDU2OC45NUMzMzYuMDYsNTUxLjc2NyAzNzAuMjk3LDUwOS44MTcgMzgxLjQxMiw0OTQuNjE2QzM5Ny41ODEsNDcyLjUwNiA0MDUuMTY1LDQ1MS40NjIgNDAyLjY1Niw0MzUuMDRDMzk5LjA0NSw0MTEuMzkxIDM5NC4yNTksNDAzLjcxNiAzODYuODczLDM5Ny4yNDFaIiBzdHlsZT0iZmlsbDp3aGl0ZTsiLz4KICAgICAgICAgICAgPC9nPgogICAgICAgICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjc1MjE0NSwwLjQ1NDk5MywtMC40NTQ5OTMsMC43NTIxNDUsNDY4LjM2LC0xMDguMjkzKSI+CiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNNDg0LjczMywzNzguOTM0QzQ3OS4zMywzNjcuODg2IDQ2Ny4wOTIsMzUwLjQ1MiA0ODMuODg2LDMyNS4yMDVDNTAyLjE3MiwyOTcuNzE3IDUxNC44OTgsMjgwLjkzOCA1MjguMTE3LDI2NC42MzJDNTQxLjMzNSwyNDguMzI2IDU3NC43OTMsMjE4LjQ0NyA1ODcuNzM5LDIxMi41M0M2MDAuNjg0LDIwNi42MTMgNjIxLjAyNiwyMDMuODUyIDYzMS44ODksMjEyLjg0MUM2NDIuODc0LDIyMS45MyA2NDguNDE2LDIzMy4zNzcgNjU0LjkyLDI0NS40NzhDNjYyLjMzMSwyNTkuMjY3IDY2Ny4zMTgsMjc0LjgwOCA2NTYuNTE4LDI4OC4yNzhDNjQxLjA5MywzMDcuNTE1IDYyMi4yNDIsMzA1LjI5NCA1OTQuOTEyLDMxOS44NDRDNTY3LjI0NCwzMzQuNTczIDU1Mi42NDQsMzQyLjk0MyA1MzkuMjQ0LDM1NS43MDNDNTM5LjI0NCwzNTUuNzAzIDU5MS40MzEsMzM0LjExNCA2MjEuMjI5LDMyNC40NzRDNjUxLjAyNywzMTQuODMzIDY4MC45NTIsMzA0LjQ2MSA2OTUuOTk1LDMxNS45NzVDNzExLjAzOCwzMjcuNDkgNzEwLjYzMSwzMzEuNDYzIDcxNC40MjUsMzQ3LjE4N0M3MTkuMTA3LDM2Ni41OSA3MDcuMjMxLDM4NS4xNjUgNjk0LjI5NCwzOTUuODM4QzY4MS4zNTYsNDA2LjUxIDY1OS45NTgsNDExLjc1NiA2MzYuODc1LDQxNi44NTJDNjA2LjQyLDQyMy41NzYgNTQwLjI3OCw0MzEuOTE3IDUxMi44MTksNDE5LjM2NkM0ODUuMzYxLDQwNi44MTUgNDg4LjQ4OCwzODYuNjEzIDQ4NC43MzMsMzc4LjkzNFoiIHN0eWxlPSJmaWxsOndoaXRlOyIvPgogICAgICAgICAgICA8L2c+CiAgICAgICAgPC9nPgogICAgICAgIDxwYXRoIGQ9Ik01NjEuNTg4LDM0OS4xNTVDNTYxLjU4OCwzNDkuMTU1IDUxNi4yOTcsMjcxLjM0MSAzMjguODQxLDI1Mi4wNDRDMzI4Ljg0MSwyNTIuMDQ0IDMwMi4zNDIsMzI1LjE4OSAzMDcuNjg2LDM2OC4wNTZDMzEzLjAzMSw0MTAuOTIyIDMwMy4wMDEsNDU2LjE0NyAzMjkuMTMyLDUwMS4xNzRDMzI5LjEzMiw1MDEuMTc0IDQ0My4xMTQsNTA2Ljc0MyA1NTQuNjQ5LDQyOC40NjlMNjI5LjIwNCw0MzIuMTEyQzYyOS4yMDQsNDMyLjExMiA2NzMuNzU1LDUzNC4zNTEgODU2Ljk2NCw1NTQuMzc1Qzg1Ni45NjQsNTU0LjM3NSA4ODYuNzE3LDQ5MS43NjggODc5LjE5Myw0MTcuNDc4Qzg3MS4yMTEsMzM4LjY3MyA4NzEuNzE2LDI5My40NDMgODcxLjcxNiwyOTMuNDQzQzg3MS43MTYsMjkzLjQ0MyA3NzUuNDg1LDI4My45MjggNjM1LjQxOCwzNjEuNzk1TDU2MS41ODgsMzQ5LjE1NVoiIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOmJsYWNrO3N0cm9rZS13aWR0aDoxNi41N3B4OyIvPgogICAgPC9nPgogICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMC4xMDAyOTgsLTAuMDA3NDA0ODgsMC4wMDc0MDQ4OCwwLjEwMDI5OCwtMTUuNzQ1NywtNS4xNzUyOCkiPgogICAgICAgIDxwYXRoIGQ9Ik0zODQuOTE2LDM4NS40NTlDMzg0LjkxNiwzODUuNDU5IDQzMC43ODEsMzQ3Ljg2OCA0NTAuMDI3LDM1MC4wOTNDNDcxLjY4NSwzNTIuNTk2IDQ5MC40OSw0MDcuNzQ3IDQ5MC4yMDgsNDI0LjQxNkM0ODkuOTI3LDQ0MS4wODUgNDQyLjk0OCw0NjkuODY2IDQyMi41MzcsNDY2LjI0QzQyMi41MzcsNDY2LjI0IDQyNS41MjUsNDQyLjEyOSA0MTIuMTE0LDQxMy4zMzVDMzk4LjcwMiwzODQuNTQgMzg0LjkxNiwzODUuNDU5IDM4NC45MTYsMzg1LjQ1OVoiIHN0eWxlPSJmaWxsOnJnYigxMjcsMTg3LDIyMSk7Ii8+CiAgICAgICAgPGNsaXBQYXRoIGlkPSJfY2xpcDIiPgogICAgICAgICAgICA8cGF0aCBkPSJNMzg0LjkxNiwzODUuNDU5QzM4NC45MTYsMzg1LjQ1OSA0MzAuNzgxLDM0Ny44NjggNDUwLjAyNywzNTAuMDkzQzQ3MS42ODUsMzUyLjU5NiA0OTAuNDksNDA3Ljc0NyA0OTAuMjA4LDQyNC40MTZDNDg5LjkyNyw0NDEuMDg1IDQ0Mi45NDgsNDY5Ljg2NiA0MjIuNTM3LDQ2Ni4yNEM0MjIuNTM3LDQ2Ni4yNCA0MjUuNTI1LDQ0Mi4xMjkgNDEyLjExNCw0MTMuMzM1QzM5OC43MDIsMzg0LjU0IDM4NC45MTYsMzg1LjQ1OSAzODQuOTE2LDM4NS40NTlaIi8+CiAgICAgICAgPC9jbGlwUGF0aD4KICAgICAgICA8ZyBjbGlwLXBhdGg9InVybCgjX2NsaXAyKSI+CiAgICAgICAgICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDAuOTA5MDY5LDMuNjc2NDFlLTE3LC0zLjc5ODE4ZS0xNywwLjg1ODUyLDM3LjA1MSw1Mi4xODI5KSI+CiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNNDEzLjI4Miw0MDIuNjk3QzQzMC43Nyw0MjEuNTggNDIzLjMwNyw0NDguNDI2IDQ0MS42ODMsNDQ2LjEzN0M0NjMuNDA5LDQ0My40MzEgNDcyLjYwNCw0MzAuMzU2IDQ3My4zMTYsNDEzLjQwMkM0NzQuMDI4LDM5Ni40NDggNDcyLjI0NSwzOTMuOTExIDQ2Ni4xNzIsMzc1LjMyMUM0NjAuMDk5LDM1Ni43MzEgNDQ3Ljk1MywzNTIuMTc2IDQyMi44NDIsMzU3LjE3OUM0MDEuOTU3LDM2MS4zMzkgNDA1LjAzOSwzNjAuMjE1IDM5OC43MzUsMzY3LjIyOEMzOTIuNDMsMzc0LjI0MiAzODQuMzE1LDM5My4xODIgMzg0LjMxNSwzOTMuMTgyQzM4NC4zMTUsMzkzLjE4MiAzOTIuNzE1LDM4MC40OTIgNDEzLjI4Miw0MDIuNjk3WiIgc3R5bGU9ImZpbGw6d2hpdGU7Ii8+CiAgICAgICAgICAgIDwvZz4KICAgICAgICA8L2c+CiAgICAgICAgPHBhdGggZD0iTTM4NC45MTYsMzg1LjQ1OUMzODQuOTE2LDM4NS40NTkgNDMwLjc4MSwzNDcuODY4IDQ1MC4wMjcsMzUwLjA5M0M0NzEuNjg1LDM1Mi41OTYgNDkwLjQ5LDQwNy43NDcgNDkwLjIwOCw0MjQuNDE2QzQ4OS45MjcsNDQxLjA4NSA0NDIuOTQ4LDQ2OS44NjYgNDIyLjUzNyw0NjYuMjRDNDIyLjUzNyw0NjYuMjQgNDI1LjUyNSw0NDIuMTI5IDQxMi4xMTQsNDEzLjMzNUMzOTguNzAyLDM4NC41NCAzODQuOTE2LDM4NS40NTkgMzg0LjkxNiwzODUuNDU5WiIgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6YmxhY2s7c3Ryb2tlLXdpZHRoOjE2LjU3cHg7Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=";/**
1359
+ };`)},u=h=>{o||c(h);for(const[d,p]of o){const g=l(h,d);for(let y=0;y<p.length;y++)g[r[y]]=h[p[y]];this._propagate(g)}},f=h=>{c(h),u(h),this.handle=u};this.handle=f,this.beginBatch=h=>{yx(h)&&(this.handle=f),super.beginBatch(h)}}}class C7 extends We{get behavior(){return di}constructor(t){super(),this.params=t,this.buffer=[]}reset(){this.buffer=[]}handle(t){this.buffer.push(t)}complete(){const t=this.params,n=t.as||["y0","y1"],r=t.sort?Rb(t.sort.field,t.sort.order):void 0,i=t.field?_e(t.field):()=>1,a=t.groupby.map(u=>_e(u)),o=ok(this.buffer,u=>a.map(f=>f(u)).join()).map(u=>u[1]);let s=u=>!0;if(t.baseField){const u=_e(t.baseField);s=f=>u(f)!==null}let l,c;switch(t.offset){case"normalize":l=(u,f)=>u/f,c=(u,f)=>Au(u,f);break;case"center":l=(u,f)=>u-f/2,c=(u,f)=>Au(u,f);break;case"information":{const u=Math.log2(t.cardinality??4);l=(f,h)=>f/h,c=(f,h)=>{const p=Au(f,S=>+!s(S)),g=Au(f,h),y=g-p;let v=0;for(let S=0;S<f.length;S++){const k=f[S];if(s(k)){const C=h(k)/y;v-=C*Math.log2(C)}}return y/(u-(v+0))*(y/g)}}break;default:l=(u,f)=>u,c=(u,f)=>1}for(const u of o){r&&u.sort(r);const f=c(u,i);let h=0;for(const d of u){const p=h+i(d);s(d)&&(d[n[0]]=l(h,f),d[n[1]]=l(p,f),this._propagate(d),h=p)}}super.complete()}}class _7 extends We{get behavior(){return Cr}constructor(t){super();const n=_e(t.field??"sequence"),[r,i]=t.as??["pos","sequence"];this.handle=a=>{const o=Object.assign({},a,{[i]:"",[r]:0}),s=n(a);for(let l=0;l<s.length;l++){const c=Object.assign({},o);c[r]=l,c[i]=s.charAt(l),this._propagate(c)}}}}class k7 extends We{get behavior(){return Cr}constructor(t){super(),this.params=t,this.buffer=[]}reset(){this.buffer=[]}handle(t){this.buffer.push(t)}complete(){const n=this.params.groupby,r=n.map(a=>_e(a)),i=Us(this.buffer,...r);for(const[a,o]of tg(i)){const s={count:o.length};for(let l=0;l<n.length;l++)s[n[l]]=a[l];this._propagate(s)}super.complete()}}const D7="_uniqueId",tA=1e4,nA=[null];class rA extends We{get behavior(){return di}constructor(t){super(),this.params=t,this.as=t.as??D7,this._blocks=[],this._usedBlocks=0,this._id=-1}initialize(){}reset(){super.reset(),this._usedBlocks=0,this._id=-1}handle(t){t[this.as]=this._nextId(),this._propagate(t)}_nextId(){return++this._id%tA==0&&(this._id=this._getBlock()*tA),this._id}_getBlock(){return this._usedBlocks<this._blocks.length?this._blocks[this._usedBlocks++]:this._reserveBlock()}_reserveBlock(){const t=nA.length;return nA[t]=this,this._blocks.push(t),this._usedBlocks++,t}}const iA={aggregate:k7,collect:$c,coverage:c7,filterScoredLabels:f7,filter:h7,flattenCompressedExons:g7,flattenDelimited:m7,flattenSequence:_7,formula:y7,identifier:rA,linearizeGenomicCoordinate:Jx,measureText:v7,pileup:x7,project:A7,regexExtract:E7,regexFold:S7,sample:vx,stack:C7};function I7(e,t){const n=iA[e.type];if(n)return new n(e,t);throw new Error("Unknown transform: "+e.type)}function aA(e){const t={...e.format};if(t.type??(t.type=F7(e)&&T7(e.url)),t.parse??(t.parse="auto"),!t.type)throw new Error("Format for the data source was not defined and it could not be inferred: "+JSON.stringify(e));return t}function T7(e){var t;if(Array.isArray(e)&&(e=e[0]),e)return(t=e.match(/\.(csv|tsv|json)/))==null?void 0:t[1]}const oA=e=>typeof e!="object"?M7:N7,M7=e=>({data:e}),N7=e=>e;function F7(e){return"url"in e}class zo extends We{get identifier(){}handle(t){throw new Error("Source does not handle incoming data!")}async load(){}}function B7(e){return"values"in e}class L7 extends zo{constructor(t,n){var r;if(super(),this.params=t,typeof t.values=="string"&&!((r=t==null?void 0:t.format)!=null&&r.type))throw new Error("Data format type (csv, dsv, ...) must be specified if a string is provided!")}loadSynchronously(){const t=this.params.values;let n=[],r=i=>i;if(Array.isArray(t))t.length>0&&(n=t,r=oA(t[0]));else if(typeof t=="object")n=[t];else if(typeof t=="string")n=Uy(t,aA(this.params));else throw new Error('"values" in data configuration is not an array, object, or a string!');this.reset(),this.beginBatch({type:"file"});for(const i of n)this._propagate(r(i));this.complete()}async load(){this.loadSynchronously()}}function O7(e){return"url"in e}class R7 extends zo{constructor(t,n){super(),this.params=t,this.baseUrl=n==null?void 0:n.getBaseUrl()}get identifier(){return JSON.stringify({params:this.params,baseUrl:this.baseUrl})}async load(){const t=this.params.url,n=Array.isArray(t)?t:[t],r=async a=>rc({baseURL:this.baseUrl}).load(a).catch(o=>{throw new Error(`Cannot fetch: ${this.baseUrl}${a}: ${o.message}`)}),i=(a,o)=>{try{const s=Uy(a,aA(this.params));this.beginBatch({type:"file",url:o});for(const l of s)this._propagate(l)}catch(s){throw new Error(`Cannot parse: ${o}: ${s.message}`)}};this.reset(),await Promise.all(n.map(a=>r(a).then(i))),this.complete()}}function z7(e){return"sequence"in e}class P7 extends zo{constructor(t,n){if(super(),this.sequence=t.sequence,!("start"in this.sequence))throw new Error("'start' is missing from sequence parameters!");if(!("stop"in this.sequence))throw new Error("'stop' is missing from sequence parameters!")}loadSynchronously(){const t=this.sequence.as||"data",n=this.sequence.step||1,r=this.sequence.stop;this.reset(),this.beginBatch({type:"file"});for(let i=this.sequence.start;i<r;i+=n)this._propagate({[t]:i});this.complete()}async load(){this.loadSynchronously()}}function sA(e,t,n){return n=(n-e)/(t-e),n=Math.max(0,Math.min(1,n)),n*n*(3-2*n)}class Po extends zo{constructor(t,n){if(super(),this.view=t,n){if(n!=="x"&&n!=="y")throw new Error(`Invalid channel specified for the dynamic data source: ${n}. Must be either "x" or "y"`)}else throw new Error('No channel has been specified for the dynamic data source. Must be either "x" or "y".');if(this.channel=n,this.scaleResolution=this.view.getScaleResolution(n),!this.scaleResolution){const r=[`The dynamic data source cannot find a resolved scale for channel "${n}".`];throw this.view instanceof Je||r.push('Make sure the view has a "shared" scale resolution as it is not a unit view.'),new Error(r.join(" "))}this.scaleResolution.addEventListener("domain",r=>{this.onDomainChanged(r.scaleResolution.getDomain(),r.scaleResolution.getComplexDomain())})}getAxisLength(){const t=this.scaleResolution.members.map(n=>{var r;return(r=n.view.coords)==null?void 0:r[this.channel==="x"?"width":"height"]}).filter(n=>n>0);return t.length?t.reduce((n,r)=>Math.min(n,r),1e4):0}get genome(){return this.scaleResolution.getGenome()}async onDomainChanged(t,n){}requestRender(){this.scaleResolution.members[0].view.context.animator.requestRender()}async load(){this.reset(),this.complete(),await this.onDomainChanged(this.scaleResolution.getDomain(),this.scaleResolution.getComplexDomain())}publishData(t){this.reset(),this.beginBatch({type:"file"});for(const n of t)this._propagate(n);this.complete(),this.requestRender()}}class U7 extends Po{constructor(n,r){var a;const i={axis:{},...n};super(r,i.channel);En(this,"ticks",[]);this.params=n,(a=this.scaleResolution.members[0])==null||a.view._addBroadcastHandler("layoutComputed",()=>this.onDomainChanged())}async onDomainChanged(){const n=this.scaleResolution.getScale(),r=this.params.axis,i=this.getAxisLength(),a=c=>25+60*sA(100,700,c),o=Ke(r.tickCount)?r.tickCount:Math.round(i/a(i)),s=_x(n,o,r.tickMinStep),l=r.values?kx(n,r.values,s):tL(n,s);if(!$0(l,this.ticks)){this.ticks=l;const c=rL(n,o,r.format);this.publishData(l.map(u=>({value:u,label:c(u)})))}}}class j7 extends Po{constructor(t,n){super(n,t.channel)}async load(){this.publishData(this.genome.chromosomes)}}var Sa=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Ca(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Vt={},Ff={};Ff.byteLength=$7,Ff.toByteArray=Y7,Ff.fromByteArray=q7;for(var Xn=[],sn=[],H7=typeof Uint8Array<"u"?Uint8Array:Array,ng="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Uo=0,G7=ng.length;Uo<G7;++Uo)Xn[Uo]=ng[Uo],sn[ng.charCodeAt(Uo)]=Uo;sn["-".charCodeAt(0)]=62,sn["_".charCodeAt(0)]=63;function cA(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var n=e.indexOf("=");n===-1&&(n=t);var r=n===t?0:4-n%4;return[n,r]}function $7(e){var t=cA(e),n=t[0],r=t[1];return(n+r)*3/4-r}function V7(e,t,n){return(t+n)*3/4-n}function Y7(e){var t,n=cA(e),r=n[0],i=n[1],a=new H7(V7(e,r,i)),o=0,s=i>0?r-4:r,l;for(l=0;l<s;l+=4)t=sn[e.charCodeAt(l)]<<18|sn[e.charCodeAt(l+1)]<<12|sn[e.charCodeAt(l+2)]<<6|sn[e.charCodeAt(l+3)],a[o++]=t>>16&255,a[o++]=t>>8&255,a[o++]=t&255;return i===2&&(t=sn[e.charCodeAt(l)]<<2|sn[e.charCodeAt(l+1)]>>4,a[o++]=t&255),i===1&&(t=sn[e.charCodeAt(l)]<<10|sn[e.charCodeAt(l+1)]<<4|sn[e.charCodeAt(l+2)]>>2,a[o++]=t>>8&255,a[o++]=t&255),a}function Q7(e){return Xn[e>>18&63]+Xn[e>>12&63]+Xn[e>>6&63]+Xn[e&63]}function Z7(e,t,n){for(var r,i=[],a=t;a<n;a+=3)r=(e[a]<<16&16711680)+(e[a+1]<<8&65280)+(e[a+2]&255),i.push(Q7(r));return i.join("")}function q7(e){for(var t,n=e.length,r=n%3,i=[],a=16383,o=0,s=n-r;o<s;o+=a)i.push(Z7(e,o,o+a>s?s:o+a));return r===1?(t=e[n-1],i.push(Xn[t>>2]+Xn[t<<4&63]+"==")):r===2&&(t=(e[n-2]<<8)+e[n-1],i.push(Xn[t>>10]+Xn[t>>4&63]+Xn[t<<2&63]+"=")),i.join("")}var rg={};/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */rg.read=function(e,t,n,r,i){var a,o,s=i*8-r-1,l=(1<<s)-1,c=l>>1,u=-7,f=n?i-1:0,h=n?-1:1,d=e[t+f];for(f+=h,a=d&(1<<-u)-1,d>>=-u,u+=s;u>0;a=a*256+e[t+f],f+=h,u-=8);for(o=a&(1<<-u)-1,a>>=-u,u+=r;u>0;o=o*256+e[t+f],f+=h,u-=8);if(a===0)a=1-c;else{if(a===l)return o?NaN:(d?-1:1)*(1/0);o=o+Math.pow(2,r),a=a-c}return(d?-1:1)*o*Math.pow(2,a-r)},rg.write=function(e,t,n,r,i,a){var o,s,l,c=a*8-i-1,u=(1<<c)-1,f=u>>1,h=i===23?Math.pow(2,-24)-Math.pow(2,-77):0,d=r?0:a-1,p=r?1:-1,g=t<0||t===0&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,o=u):(o=Math.floor(Math.log(t)/Math.LN2),t*(l=Math.pow(2,-o))<1&&(o--,l*=2),o+f>=1?t+=h/l:t+=h*Math.pow(2,1-f),t*l>=2&&(o++,l/=2),o+f>=u?(s=0,o=u):o+f>=1?(s=(t*l-1)*Math.pow(2,i),o=o+f):(s=t*Math.pow(2,f-1)*Math.pow(2,i),o=0));i>=8;e[n+d]=s&255,d+=p,s/=256,i-=8);for(o=o<<i|s,c+=i;c>0;e[n+d]=o&255,d+=p,o/=256,c-=8);e[n+d-p]|=g*128};/*!
1360
+ * The buffer module from node.js, for the browser.
1361
+ *
1362
+ * @author Feross Aboukhadijeh <https://feross.org>
1363
+ * @license MIT
1364
+ */(function(e){const t=Ff,n=rg,r=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;e.Buffer=s,e.SlowBuffer=S,e.INSPECT_MAX_BYTES=50;const i=2147483647;e.kMaxLength=i,s.TYPED_ARRAY_SUPPORT=a(),!s.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function a(){try{const x=new Uint8Array(1),m={foo:function(){return 42}};return Object.setPrototypeOf(m,Uint8Array.prototype),Object.setPrototypeOf(x,m),x.foo()===42}catch{return!1}}Object.defineProperty(s.prototype,"parent",{enumerable:!0,get:function(){if(s.isBuffer(this))return this.buffer}}),Object.defineProperty(s.prototype,"offset",{enumerable:!0,get:function(){if(s.isBuffer(this))return this.byteOffset}});function o(x){if(x>i)throw new RangeError('The value "'+x+'" is invalid for option "size"');const m=new Uint8Array(x);return Object.setPrototypeOf(m,s.prototype),m}function s(x,m,b){if(typeof x=="number"){if(typeof m=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return f(x)}return l(x,m,b)}s.poolSize=8192;function l(x,m,b){if(typeof x=="string")return h(x,m);if(ArrayBuffer.isView(x))return p(x);if(x==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof x);if(Jt(x,ArrayBuffer)||x&&Jt(x.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(Jt(x,SharedArrayBuffer)||x&&Jt(x.buffer,SharedArrayBuffer)))return g(x,m,b);if(typeof x=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');const I=x.valueOf&&x.valueOf();if(I!=null&&I!==x)return s.from(I,m,b);const B=y(x);if(B)return B;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof x[Symbol.toPrimitive]=="function")return s.from(x[Symbol.toPrimitive]("string"),m,b);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof x)}s.from=function(x,m,b){return l(x,m,b)},Object.setPrototypeOf(s.prototype,Uint8Array.prototype),Object.setPrototypeOf(s,Uint8Array);function c(x){if(typeof x!="number")throw new TypeError('"size" argument must be of type number');if(x<0)throw new RangeError('The value "'+x+'" is invalid for option "size"')}function u(x,m,b){return c(x),x<=0?o(x):m!==void 0?typeof b=="string"?o(x).fill(m,b):o(x).fill(m):o(x)}s.alloc=function(x,m,b){return u(x,m,b)};function f(x){return c(x),o(x<0?0:v(x)|0)}s.allocUnsafe=function(x){return f(x)},s.allocUnsafeSlow=function(x){return f(x)};function h(x,m){if((typeof m!="string"||m==="")&&(m="utf8"),!s.isEncoding(m))throw new TypeError("Unknown encoding: "+m);const b=k(x,m)|0;let I=o(b);const B=I.write(x,m);return B!==b&&(I=I.slice(0,B)),I}function d(x){const m=x.length<0?0:v(x.length)|0,b=o(m);for(let I=0;I<m;I+=1)b[I]=x[I]&255;return b}function p(x){if(Jt(x,Uint8Array)){const m=new Uint8Array(x);return g(m.buffer,m.byteOffset,m.byteLength)}return d(x)}function g(x,m,b){if(m<0||x.byteLength<m)throw new RangeError('"offset" is outside of buffer bounds');if(x.byteLength<m+(b||0))throw new RangeError('"length" is outside of buffer bounds');let I;return m===void 0&&b===void 0?I=new Uint8Array(x):b===void 0?I=new Uint8Array(x,m):I=new Uint8Array(x,m,b),Object.setPrototypeOf(I,s.prototype),I}function y(x){if(s.isBuffer(x)){const m=v(x.length)|0,b=o(m);return b.length===0||x.copy(b,0,0,m),b}if(x.length!==void 0)return typeof x.length!="number"||cu(x.length)?o(0):d(x);if(x.type==="Buffer"&&Array.isArray(x.data))return d(x.data)}function v(x){if(x>=i)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+i.toString(16)+" bytes");return x|0}function S(x){return+x!=x&&(x=0),s.alloc(+x)}s.isBuffer=function(m){return m!=null&&m._isBuffer===!0&&m!==s.prototype},s.compare=function(m,b){if(Jt(m,Uint8Array)&&(m=s.from(m,m.offset,m.byteLength)),Jt(b,Uint8Array)&&(b=s.from(b,b.offset,b.byteLength)),!s.isBuffer(m)||!s.isBuffer(b))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(m===b)return 0;let I=m.length,B=b.length;for(let L=0,P=Math.min(I,B);L<P;++L)if(m[L]!==b[L]){I=m[L],B=b[L];break}return I<B?-1:B<I?1:0},s.isEncoding=function(m){switch(String(m).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},s.concat=function(m,b){if(!Array.isArray(m))throw new TypeError('"list" argument must be an Array of Buffers');if(m.length===0)return s.alloc(0);let I;if(b===void 0)for(b=0,I=0;I<m.length;++I)b+=m[I].length;const B=s.allocUnsafe(b);let L=0;for(I=0;I<m.length;++I){let P=m[I];if(Jt(P,Uint8Array))L+P.length>B.length?(s.isBuffer(P)||(P=s.from(P)),P.copy(B,L)):Uint8Array.prototype.set.call(B,P,L);else if(s.isBuffer(P))P.copy(B,L);else throw new TypeError('"list" argument must be an Array of Buffers');L+=P.length}return B};function k(x,m){if(s.isBuffer(x))return x.length;if(ArrayBuffer.isView(x)||Jt(x,ArrayBuffer))return x.byteLength;if(typeof x!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof x);const b=x.length,I=arguments.length>2&&arguments[2]===!0;if(!I&&b===0)return 0;let B=!1;for(;;)switch(m){case"ascii":case"latin1":case"binary":return b;case"utf8":case"utf-8":return Kt(x).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return b*2;case"hex":return b>>>1;case"base64":return su(x).length;default:if(B)return I?-1:Kt(x).length;m=(""+m).toLowerCase(),B=!0}}s.byteLength=k;function C(x,m,b){let I=!1;if((m===void 0||m<0)&&(m=0),m>this.length||((b===void 0||b>this.length)&&(b=this.length),b<=0)||(b>>>=0,m>>>=0,b<=m))return"";for(x||(x="utf8");;)switch(x){case"hex":return yt(this,m,b);case"utf8":case"utf-8":return V(this,m,b);case"ascii":return tt(this,m,b);case"latin1":case"binary":return ie(this,m,b);case"base64":return q(this,m,b);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Vr(this,m,b);default:if(I)throw new TypeError("Unknown encoding: "+x);x=(x+"").toLowerCase(),I=!0}}s.prototype._isBuffer=!0;function E(x,m,b){const I=x[m];x[m]=x[b],x[b]=I}s.prototype.swap16=function(){const m=this.length;if(m%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let b=0;b<m;b+=2)E(this,b,b+1);return this},s.prototype.swap32=function(){const m=this.length;if(m%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(let b=0;b<m;b+=4)E(this,b,b+3),E(this,b+1,b+2);return this},s.prototype.swap64=function(){const m=this.length;if(m%8!==0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(let b=0;b<m;b+=8)E(this,b,b+7),E(this,b+1,b+6),E(this,b+2,b+5),E(this,b+3,b+4);return this},s.prototype.toString=function(){const m=this.length;return m===0?"":arguments.length===0?V(this,0,m):C.apply(this,arguments)},s.prototype.toLocaleString=s.prototype.toString,s.prototype.equals=function(m){if(!s.isBuffer(m))throw new TypeError("Argument must be a Buffer");return this===m?!0:s.compare(this,m)===0},s.prototype.inspect=function(){let m="";const b=e.INSPECT_MAX_BYTES;return m=this.toString("hex",0,b).replace(/(.{2})/g,"$1 ").trim(),this.length>b&&(m+=" ... "),"<Buffer "+m+">"},r&&(s.prototype[r]=s.prototype.inspect),s.prototype.compare=function(m,b,I,B,L){if(Jt(m,Uint8Array)&&(m=s.from(m,m.offset,m.byteLength)),!s.isBuffer(m))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof m);if(b===void 0&&(b=0),I===void 0&&(I=m?m.length:0),B===void 0&&(B=0),L===void 0&&(L=this.length),b<0||I>m.length||B<0||L>this.length)throw new RangeError("out of range index");if(B>=L&&b>=I)return 0;if(B>=L)return-1;if(b>=I)return 1;if(b>>>=0,I>>>=0,B>>>=0,L>>>=0,this===m)return 0;let P=L-B,oe=I-b;const Re=Math.min(P,oe),Ie=this.slice(B,L),$e=m.slice(b,I);for(let Ae=0;Ae<Re;++Ae)if(Ie[Ae]!==$e[Ae]){P=Ie[Ae],oe=$e[Ae];break}return P<oe?-1:oe<P?1:0};function w(x,m,b,I,B){if(x.length===0)return-1;if(typeof b=="string"?(I=b,b=0):b>2147483647?b=2147483647:b<-2147483648&&(b=-2147483648),b=+b,cu(b)&&(b=B?0:x.length-1),b<0&&(b=x.length+b),b>=x.length){if(B)return-1;b=x.length-1}else if(b<0)if(B)b=0;else return-1;if(typeof m=="string"&&(m=s.from(m,I)),s.isBuffer(m))return m.length===0?-1:A(x,m,b,I,B);if(typeof m=="number")return m=m&255,typeof Uint8Array.prototype.indexOf=="function"?B?Uint8Array.prototype.indexOf.call(x,m,b):Uint8Array.prototype.lastIndexOf.call(x,m,b):A(x,[m],b,I,B);throw new TypeError("val must be string, number or Buffer")}function A(x,m,b,I,B){let L=1,P=x.length,oe=m.length;if(I!==void 0&&(I=String(I).toLowerCase(),I==="ucs2"||I==="ucs-2"||I==="utf16le"||I==="utf-16le")){if(x.length<2||m.length<2)return-1;L=2,P/=2,oe/=2,b/=2}function Re($e,Ae){return L===1?$e[Ae]:$e.readUInt16BE(Ae*L)}let Ie;if(B){let $e=-1;for(Ie=b;Ie<P;Ie++)if(Re(x,Ie)===Re(m,$e===-1?0:Ie-$e)){if($e===-1&&($e=Ie),Ie-$e+1===oe)return $e*L}else $e!==-1&&(Ie-=Ie-$e),$e=-1}else for(b+oe>P&&(b=P-oe),Ie=b;Ie>=0;Ie--){let $e=!0;for(let Ae=0;Ae<oe;Ae++)if(Re(x,Ie+Ae)!==Re(m,Ae)){$e=!1;break}if($e)return Ie}return-1}s.prototype.includes=function(m,b,I){return this.indexOf(m,b,I)!==-1},s.prototype.indexOf=function(m,b,I){return w(this,m,b,I,!0)},s.prototype.lastIndexOf=function(m,b,I){return w(this,m,b,I,!1)};function T(x,m,b,I){b=Number(b)||0;const B=x.length-b;I?(I=Number(I),I>B&&(I=B)):I=B;const L=m.length;I>L/2&&(I=L/2);let P;for(P=0;P<I;++P){const oe=parseInt(m.substr(P*2,2),16);if(cu(oe))return P;x[b+P]=oe}return P}function D(x,m,b,I){return Os(Kt(m,x.length-b),x,b,I)}function M(x,m,b,I){return Os(lo(m),x,b,I)}function F(x,m,b,I){return Os(su(m),x,b,I)}function U(x,m,b,I){return Os(Ab(m,x.length-b),x,b,I)}s.prototype.write=function(m,b,I,B){if(b===void 0)B="utf8",I=this.length,b=0;else if(I===void 0&&typeof b=="string")B=b,I=this.length,b=0;else if(isFinite(b))b=b>>>0,isFinite(I)?(I=I>>>0,B===void 0&&(B="utf8")):(B=I,I=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");const L=this.length-b;if((I===void 0||I>L)&&(I=L),m.length>0&&(I<0||b<0)||b>this.length)throw new RangeError("Attempt to write outside buffer bounds");B||(B="utf8");let P=!1;for(;;)switch(B){case"hex":return T(this,m,b,I);case"utf8":case"utf-8":return D(this,m,b,I);case"ascii":case"latin1":case"binary":return M(this,m,b,I);case"base64":return F(this,m,b,I);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return U(this,m,b,I);default:if(P)throw new TypeError("Unknown encoding: "+B);B=(""+B).toLowerCase(),P=!0}},s.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function q(x,m,b){return m===0&&b===x.length?t.fromByteArray(x):t.fromByteArray(x.slice(m,b))}function V(x,m,b){b=Math.min(x.length,b);const I=[];let B=m;for(;B<b;){const L=x[B];let P=null,oe=L>239?4:L>223?3:L>191?2:1;if(B+oe<=b){let Re,Ie,$e,Ae;switch(oe){case 1:L<128&&(P=L);break;case 2:Re=x[B+1],(Re&192)===128&&(Ae=(L&31)<<6|Re&63,Ae>127&&(P=Ae));break;case 3:Re=x[B+1],Ie=x[B+2],(Re&192)===128&&(Ie&192)===128&&(Ae=(L&15)<<12|(Re&63)<<6|Ie&63,Ae>2047&&(Ae<55296||Ae>57343)&&(P=Ae));break;case 4:Re=x[B+1],Ie=x[B+2],$e=x[B+3],(Re&192)===128&&(Ie&192)===128&&($e&192)===128&&(Ae=(L&15)<<18|(Re&63)<<12|(Ie&63)<<6|$e&63,Ae>65535&&Ae<1114112&&(P=Ae))}}P===null?(P=65533,oe=1):P>65535&&(P-=65536,I.push(P>>>10&1023|55296),P=56320|P&1023),I.push(P),B+=oe}return Se(I)}const pe=4096;function Se(x){const m=x.length;if(m<=pe)return String.fromCharCode.apply(String,x);let b="",I=0;for(;I<m;)b+=String.fromCharCode.apply(String,x.slice(I,I+=pe));return b}function tt(x,m,b){let I="";b=Math.min(x.length,b);for(let B=m;B<b;++B)I+=String.fromCharCode(x[B]&127);return I}function ie(x,m,b){let I="";b=Math.min(x.length,b);for(let B=m;B<b;++B)I+=String.fromCharCode(x[B]);return I}function yt(x,m,b){const I=x.length;(!m||m<0)&&(m=0),(!b||b<0||b>I)&&(b=I);let B="";for(let L=m;L<b;++L)B+=dd[x[L]];return B}function Vr(x,m,b){const I=x.slice(m,b);let B="";for(let L=0;L<I.length-1;L+=2)B+=String.fromCharCode(I[L]+I[L+1]*256);return B}s.prototype.slice=function(m,b){const I=this.length;m=~~m,b=b===void 0?I:~~b,m<0?(m+=I,m<0&&(m=0)):m>I&&(m=I),b<0?(b+=I,b<0&&(b=0)):b>I&&(b=I),b<m&&(b=m);const B=this.subarray(m,b);return Object.setPrototypeOf(B,s.prototype),B};function De(x,m,b){if(x%1!==0||x<0)throw new RangeError("offset is not uint");if(x+m>b)throw new RangeError("Trying to access beyond buffer length")}s.prototype.readUintLE=s.prototype.readUIntLE=function(m,b,I){m=m>>>0,b=b>>>0,I||De(m,b,this.length);let B=this[m],L=1,P=0;for(;++P<b&&(L*=256);)B+=this[m+P]*L;return B},s.prototype.readUintBE=s.prototype.readUIntBE=function(m,b,I){m=m>>>0,b=b>>>0,I||De(m,b,this.length);let B=this[m+--b],L=1;for(;b>0&&(L*=256);)B+=this[m+--b]*L;return B},s.prototype.readUint8=s.prototype.readUInt8=function(m,b){return m=m>>>0,b||De(m,1,this.length),this[m]},s.prototype.readUint16LE=s.prototype.readUInt16LE=function(m,b){return m=m>>>0,b||De(m,2,this.length),this[m]|this[m+1]<<8},s.prototype.readUint16BE=s.prototype.readUInt16BE=function(m,b){return m=m>>>0,b||De(m,2,this.length),this[m]<<8|this[m+1]},s.prototype.readUint32LE=s.prototype.readUInt32LE=function(m,b){return m=m>>>0,b||De(m,4,this.length),(this[m]|this[m+1]<<8|this[m+2]<<16)+this[m+3]*16777216},s.prototype.readUint32BE=s.prototype.readUInt32BE=function(m,b){return m=m>>>0,b||De(m,4,this.length),this[m]*16777216+(this[m+1]<<16|this[m+2]<<8|this[m+3])},s.prototype.readBigUInt64LE=mr(function(m){m=m>>>0,Qe(m,"offset");const b=this[m],I=this[m+7];(b===void 0||I===void 0)&&de(m,this.length-8);const B=b+this[++m]*2**8+this[++m]*2**16+this[++m]*2**24,L=this[++m]+this[++m]*2**8+this[++m]*2**16+I*2**24;return BigInt(B)+(BigInt(L)<<BigInt(32))}),s.prototype.readBigUInt64BE=mr(function(m){m=m>>>0,Qe(m,"offset");const b=this[m],I=this[m+7];(b===void 0||I===void 0)&&de(m,this.length-8);const B=b*2**24+this[++m]*2**16+this[++m]*2**8+this[++m],L=this[++m]*2**24+this[++m]*2**16+this[++m]*2**8+I;return(BigInt(B)<<BigInt(32))+BigInt(L)}),s.prototype.readIntLE=function(m,b,I){m=m>>>0,b=b>>>0,I||De(m,b,this.length);let B=this[m],L=1,P=0;for(;++P<b&&(L*=256);)B+=this[m+P]*L;return L*=128,B>=L&&(B-=Math.pow(2,8*b)),B},s.prototype.readIntBE=function(m,b,I){m=m>>>0,b=b>>>0,I||De(m,b,this.length);let B=b,L=1,P=this[m+--B];for(;B>0&&(L*=256);)P+=this[m+--B]*L;return L*=128,P>=L&&(P-=Math.pow(2,8*b)),P},s.prototype.readInt8=function(m,b){return m=m>>>0,b||De(m,1,this.length),this[m]&128?(255-this[m]+1)*-1:this[m]},s.prototype.readInt16LE=function(m,b){m=m>>>0,b||De(m,2,this.length);const I=this[m]|this[m+1]<<8;return I&32768?I|4294901760:I},s.prototype.readInt16BE=function(m,b){m=m>>>0,b||De(m,2,this.length);const I=this[m+1]|this[m]<<8;return I&32768?I|4294901760:I},s.prototype.readInt32LE=function(m,b){return m=m>>>0,b||De(m,4,this.length),this[m]|this[m+1]<<8|this[m+2]<<16|this[m+3]<<24},s.prototype.readInt32BE=function(m,b){return m=m>>>0,b||De(m,4,this.length),this[m]<<24|this[m+1]<<16|this[m+2]<<8|this[m+3]},s.prototype.readBigInt64LE=mr(function(m){m=m>>>0,Qe(m,"offset");const b=this[m],I=this[m+7];(b===void 0||I===void 0)&&de(m,this.length-8);const B=this[m+4]+this[m+5]*2**8+this[m+6]*2**16+(I<<24);return(BigInt(B)<<BigInt(32))+BigInt(b+this[++m]*2**8+this[++m]*2**16+this[++m]*2**24)}),s.prototype.readBigInt64BE=mr(function(m){m=m>>>0,Qe(m,"offset");const b=this[m],I=this[m+7];(b===void 0||I===void 0)&&de(m,this.length-8);const B=(b<<24)+this[++m]*2**16+this[++m]*2**8+this[++m];return(BigInt(B)<<BigInt(32))+BigInt(this[++m]*2**24+this[++m]*2**16+this[++m]*2**8+I)}),s.prototype.readFloatLE=function(m,b){return m=m>>>0,b||De(m,4,this.length),n.read(this,m,!0,23,4)},s.prototype.readFloatBE=function(m,b){return m=m>>>0,b||De(m,4,this.length),n.read(this,m,!1,23,4)},s.prototype.readDoubleLE=function(m,b){return m=m>>>0,b||De(m,8,this.length),n.read(this,m,!0,52,8)},s.prototype.readDoubleBE=function(m,b){return m=m>>>0,b||De(m,8,this.length),n.read(this,m,!1,52,8)};function Xe(x,m,b,I,B,L){if(!s.isBuffer(x))throw new TypeError('"buffer" argument must be a Buffer instance');if(m>B||m<L)throw new RangeError('"value" argument is out of bounds');if(b+I>x.length)throw new RangeError("Index out of range")}s.prototype.writeUintLE=s.prototype.writeUIntLE=function(m,b,I,B){if(m=+m,b=b>>>0,I=I>>>0,!B){const oe=Math.pow(2,8*I)-1;Xe(this,m,b,I,oe,0)}let L=1,P=0;for(this[b]=m&255;++P<I&&(L*=256);)this[b+P]=m/L&255;return b+I},s.prototype.writeUintBE=s.prototype.writeUIntBE=function(m,b,I,B){if(m=+m,b=b>>>0,I=I>>>0,!B){const oe=Math.pow(2,8*I)-1;Xe(this,m,b,I,oe,0)}let L=I-1,P=1;for(this[b+L]=m&255;--L>=0&&(P*=256);)this[b+L]=m/P&255;return b+I},s.prototype.writeUint8=s.prototype.writeUInt8=function(m,b,I){return m=+m,b=b>>>0,I||Xe(this,m,b,1,255,0),this[b]=m&255,b+1},s.prototype.writeUint16LE=s.prototype.writeUInt16LE=function(m,b,I){return m=+m,b=b>>>0,I||Xe(this,m,b,2,65535,0),this[b]=m&255,this[b+1]=m>>>8,b+2},s.prototype.writeUint16BE=s.prototype.writeUInt16BE=function(m,b,I){return m=+m,b=b>>>0,I||Xe(this,m,b,2,65535,0),this[b]=m>>>8,this[b+1]=m&255,b+2},s.prototype.writeUint32LE=s.prototype.writeUInt32LE=function(m,b,I){return m=+m,b=b>>>0,I||Xe(this,m,b,4,4294967295,0),this[b+3]=m>>>24,this[b+2]=m>>>16,this[b+1]=m>>>8,this[b]=m&255,b+4},s.prototype.writeUint32BE=s.prototype.writeUInt32BE=function(m,b,I){return m=+m,b=b>>>0,I||Xe(this,m,b,4,4294967295,0),this[b]=m>>>24,this[b+1]=m>>>16,this[b+2]=m>>>8,this[b+3]=m&255,b+4};function Pi(x,m,b,I,B){j(m,I,B,x,b,7);let L=Number(m&BigInt(4294967295));x[b++]=L,L=L>>8,x[b++]=L,L=L>>8,x[b++]=L,L=L>>8,x[b++]=L;let P=Number(m>>BigInt(32)&BigInt(4294967295));return x[b++]=P,P=P>>8,x[b++]=P,P=P>>8,x[b++]=P,P=P>>8,x[b++]=P,b}function so(x,m,b,I,B){j(m,I,B,x,b,7);let L=Number(m&BigInt(4294967295));x[b+7]=L,L=L>>8,x[b+6]=L,L=L>>8,x[b+5]=L,L=L>>8,x[b+4]=L;let P=Number(m>>BigInt(32)&BigInt(4294967295));return x[b+3]=P,P=P>>8,x[b+2]=P,P=P>>8,x[b+1]=P,P=P>>8,x[b]=P,b+8}s.prototype.writeBigUInt64LE=mr(function(m,b=0){return Pi(this,m,b,BigInt(0),BigInt("0xffffffffffffffff"))}),s.prototype.writeBigUInt64BE=mr(function(m,b=0){return so(this,m,b,BigInt(0),BigInt("0xffffffffffffffff"))}),s.prototype.writeIntLE=function(m,b,I,B){if(m=+m,b=b>>>0,!B){const Re=Math.pow(2,8*I-1);Xe(this,m,b,I,Re-1,-Re)}let L=0,P=1,oe=0;for(this[b]=m&255;++L<I&&(P*=256);)m<0&&oe===0&&this[b+L-1]!==0&&(oe=1),this[b+L]=(m/P>>0)-oe&255;return b+I},s.prototype.writeIntBE=function(m,b,I,B){if(m=+m,b=b>>>0,!B){const Re=Math.pow(2,8*I-1);Xe(this,m,b,I,Re-1,-Re)}let L=I-1,P=1,oe=0;for(this[b+L]=m&255;--L>=0&&(P*=256);)m<0&&oe===0&&this[b+L+1]!==0&&(oe=1),this[b+L]=(m/P>>0)-oe&255;return b+I},s.prototype.writeInt8=function(m,b,I){return m=+m,b=b>>>0,I||Xe(this,m,b,1,127,-128),m<0&&(m=255+m+1),this[b]=m&255,b+1},s.prototype.writeInt16LE=function(m,b,I){return m=+m,b=b>>>0,I||Xe(this,m,b,2,32767,-32768),this[b]=m&255,this[b+1]=m>>>8,b+2},s.prototype.writeInt16BE=function(m,b,I){return m=+m,b=b>>>0,I||Xe(this,m,b,2,32767,-32768),this[b]=m>>>8,this[b+1]=m&255,b+2},s.prototype.writeInt32LE=function(m,b,I){return m=+m,b=b>>>0,I||Xe(this,m,b,4,2147483647,-2147483648),this[b]=m&255,this[b+1]=m>>>8,this[b+2]=m>>>16,this[b+3]=m>>>24,b+4},s.prototype.writeInt32BE=function(m,b,I){return m=+m,b=b>>>0,I||Xe(this,m,b,4,2147483647,-2147483648),m<0&&(m=4294967295+m+1),this[b]=m>>>24,this[b+1]=m>>>16,this[b+2]=m>>>8,this[b+3]=m&255,b+4},s.prototype.writeBigInt64LE=mr(function(m,b=0){return Pi(this,m,b,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),s.prototype.writeBigInt64BE=mr(function(m,b=0){return so(this,m,b,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function Bs(x,m,b,I,B,L){if(b+I>x.length)throw new RangeError("Index out of range");if(b<0)throw new RangeError("Index out of range")}function co(x,m,b,I,B){return m=+m,b=b>>>0,B||Bs(x,m,b,4),n.write(x,m,b,I,23,4),b+4}s.prototype.writeFloatLE=function(m,b,I){return co(this,m,b,!0,I)},s.prototype.writeFloatBE=function(m,b,I){return co(this,m,b,!1,I)};function Ls(x,m,b,I,B){return m=+m,b=b>>>0,B||Bs(x,m,b,8),n.write(x,m,b,I,52,8),b+8}s.prototype.writeDoubleLE=function(m,b,I){return Ls(this,m,b,!0,I)},s.prototype.writeDoubleBE=function(m,b,I){return Ls(this,m,b,!1,I)},s.prototype.copy=function(m,b,I,B){if(!s.isBuffer(m))throw new TypeError("argument should be a Buffer");if(I||(I=0),!B&&B!==0&&(B=this.length),b>=m.length&&(b=m.length),b||(b=0),B>0&&B<I&&(B=I),B===I||m.length===0||this.length===0)return 0;if(b<0)throw new RangeError("targetStart out of bounds");if(I<0||I>=this.length)throw new RangeError("Index out of range");if(B<0)throw new RangeError("sourceEnd out of bounds");B>this.length&&(B=this.length),m.length-b<B-I&&(B=m.length-b+I);const L=B-I;return this===m&&typeof Uint8Array.prototype.copyWithin=="function"?this.copyWithin(b,I,B):Uint8Array.prototype.set.call(m,this.subarray(I,B),b),L},s.prototype.fill=function(m,b,I,B){if(typeof m=="string"){if(typeof b=="string"?(B=b,b=0,I=this.length):typeof I=="string"&&(B=I,I=this.length),B!==void 0&&typeof B!="string")throw new TypeError("encoding must be a string");if(typeof B=="string"&&!s.isEncoding(B))throw new TypeError("Unknown encoding: "+B);if(m.length===1){const P=m.charCodeAt(0);(B==="utf8"&&P<128||B==="latin1")&&(m=P)}}else typeof m=="number"?m=m&255:typeof m=="boolean"&&(m=Number(m));if(b<0||this.length<b||this.length<I)throw new RangeError("Out of range index");if(I<=b)return this;b=b>>>0,I=I===void 0?this.length:I>>>0,m||(m=0);let L;if(typeof m=="number")for(L=b;L<I;++L)this[L]=m;else{const P=s.isBuffer(m)?m:s.from(m,B),oe=P.length;if(oe===0)throw new TypeError('The value "'+m+'" is invalid for argument "value"');for(L=0;L<I-b;++L)this[L+b]=P[L%oe]}return this};const jn={};function Q(x,m,b){jn[x]=class extends b{constructor(){super(),Object.defineProperty(this,"message",{value:m.apply(this,arguments),writable:!0,configurable:!0}),this.name=`${this.name} [${x}]`,this.stack,delete this.name}get code(){return x}set code(B){Object.defineProperty(this,"code",{configurable:!0,enumerable:!0,value:B,writable:!0})}toString(){return`${this.name} [${x}]: ${this.message}`}}}Q("ERR_BUFFER_OUT_OF_BOUNDS",function(x){return x?`${x} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"},RangeError),Q("ERR_INVALID_ARG_TYPE",function(x,m){return`The "${x}" argument must be of type number. Received type ${typeof m}`},TypeError),Q("ERR_OUT_OF_RANGE",function(x,m,b){let I=`The value of "${x}" is out of range.`,B=b;return Number.isInteger(b)&&Math.abs(b)>2**32?B=re(String(b)):typeof b=="bigint"&&(B=String(b),(b>BigInt(2)**BigInt(32)||b<-(BigInt(2)**BigInt(32)))&&(B=re(B)),B+="n"),I+=` It must be ${m}. Received ${B}`,I},RangeError);function re(x){let m="",b=x.length;const I=x[0]==="-"?1:0;for(;b>=I+4;b-=3)m=`_${x.slice(b-3,b)}${m}`;return`${x.slice(0,b)}${m}`}function ue(x,m,b){Qe(m,"offset"),(x[m]===void 0||x[m+b]===void 0)&&de(m,x.length-(b+1))}function j(x,m,b,I,B,L){if(x>b||x<m){const P=typeof m=="bigint"?"n":"";let oe;throw L>3?m===0||m===BigInt(0)?oe=`>= 0${P} and < 2${P} ** ${(L+1)*8}${P}`:oe=`>= -(2${P} ** ${(L+1)*8-1}${P}) and < 2 ** ${(L+1)*8-1}${P}`:oe=`>= ${m}${P} and <= ${b}${P}`,new jn.ERR_OUT_OF_RANGE("value",oe,x)}ue(I,B,L)}function Qe(x,m){if(typeof x!="number")throw new jn.ERR_INVALID_ARG_TYPE(m,"number",x)}function de(x,m,b){throw Math.floor(x)!==x?(Qe(x,b),new jn.ERR_OUT_OF_RANGE(b||"offset","an integer",x)):m<0?new jn.ERR_BUFFER_OUT_OF_BOUNDS:new jn.ERR_OUT_OF_RANGE(b||"offset",`>= ${b?1:0} and <= ${m}`,x)}const vt=/[^+/0-9A-Za-z-_]/g;function dt(x){if(x=x.split("=")[0],x=x.trim().replace(vt,""),x.length<2)return"";for(;x.length%4!==0;)x=x+"=";return x}function Kt(x,m){m=m||1/0;let b;const I=x.length;let B=null;const L=[];for(let P=0;P<I;++P){if(b=x.charCodeAt(P),b>55295&&b<57344){if(!B){if(b>56319){(m-=3)>-1&&L.push(239,191,189);continue}else if(P+1===I){(m-=3)>-1&&L.push(239,191,189);continue}B=b;continue}if(b<56320){(m-=3)>-1&&L.push(239,191,189),B=b;continue}b=(B-55296<<10|b-56320)+65536}else B&&(m-=3)>-1&&L.push(239,191,189);if(B=null,b<128){if((m-=1)<0)break;L.push(b)}else if(b<2048){if((m-=2)<0)break;L.push(b>>6|192,b&63|128)}else if(b<65536){if((m-=3)<0)break;L.push(b>>12|224,b>>6&63|128,b&63|128)}else if(b<1114112){if((m-=4)<0)break;L.push(b>>18|240,b>>12&63|128,b>>6&63|128,b&63|128)}else throw new Error("Invalid code point")}return L}function lo(x){const m=[];for(let b=0;b<x.length;++b)m.push(x.charCodeAt(b)&255);return m}function Ab(x,m){let b,I,B;const L=[];for(let P=0;P<x.length&&!((m-=2)<0);++P)b=x.charCodeAt(P),I=b>>8,B=b%256,L.push(B),L.push(I);return L}function su(x){return t.toByteArray(dt(x))}function Os(x,m,b,I){let B;for(B=0;B<I&&!(B+b>=m.length||B>=x.length);++B)m[B+b]=x[B];return B}function Jt(x,m){return x instanceof m||x!=null&&x.constructor!=null&&x.constructor.name!=null&&x.constructor.name===m.name}function cu(x){return x!==x}const dd=function(){const x="0123456789abcdef",m=new Array(256);for(let b=0;b<16;++b){const I=b*16;for(let B=0;B<16;++B)m[I+B]=x[b]+x[B]}return m}();function mr(x){return typeof BigInt>"u"?pd:x}function pd(){throw new Error("BigInt not supported")}})(Vt);const gi={},ig=typeof window<"u"?window:typeof self<"u"?self:{fetch:void 0};class kr{async getBufferFromResponse(t){if(typeof t.buffer=="function")return t.buffer();if(typeof t.arrayBuffer=="function"){const n=await t.arrayBuffer();return Vt.Buffer.from(n)}else throw new TypeError("invalid HTTP response object, has no buffer method, and no arrayBuffer method")}constructor(t,n={}){this.baseOverrides={},this.url=t;const r=n.fetch||ig.fetch&&ig.fetch.bind(ig);if(!r)throw new TypeError("no fetch function supplied, and none found in global environment");n.overrides&&(this.baseOverrides=n.overrides),this.fetchImplementation=r}async fetch(t,n){let r;try{r=await this.fetchImplementation(t,n)}catch(i){if(`${i}`.includes("Failed to fetch"))console.warn(`generic-filehandle: refetching ${t} to attempt to work around chrome CORS header caching bug`),r=await this.fetchImplementation(t,{...n,cache:"reload"});else throw i}return r}async read(t,n=0,r,i=0,a={}){const{headers:o={},signal:s,overrides:l={}}=a;r<1/0?o.range=`bytes=${i}-${i+r}`:r===1/0&&i!==0&&(o.range=`bytes=${i}-`);const c={...this.baseOverrides,...l,headers:{...o,...l.headers,...this.baseOverrides.headers},method:"GET",redirect:"follow",mode:"cors",signal:s},u=await this.fetch(this.url,c);if(!u.ok)throw new Error(`HTTP ${u.status} ${u.statusText} ${this.url}`);if(u.status===200&&i===0||u.status===206){const f=await this.getBufferFromResponse(u),h=f.copy(t,n,0,Math.min(r,f.length)),d=u.headers.get("content-range"),p=/\/(\d+)$/.exec(d||"");return p&&p[1]&&(this._stat={size:parseInt(p[1],10)}),{bytesRead:h,buffer:t}}throw u.status===200?new Error("${this.url} fetch returned status 200, expected 206"):new Error(`HTTP ${u.status} fetching ${this.url}`)}async readFile(t={}){let n,r;typeof t=="string"?(n=t,r={}):(n=t.encoding,r=t,delete r.encoding);const{headers:i={},signal:a,overrides:o={}}=r,s={headers:i,method:"GET",redirect:"follow",mode:"cors",signal:a,...this.baseOverrides,...o},l=await this.fetch(this.url,s);if(!l)throw new Error("generic-filehandle failed to fetch");if(l.status!==200)throw Object.assign(new Error(`HTTP ${l.status} fetching ${this.url}`),{status:l.status});if(n==="utf8")return l.text();if(n)throw new Error(`unsupported encoding: ${n}`);return this.getBufferFromResponse(l)}async stat(){if(!this._stat){const t=Vt.Buffer.allocUnsafe(10);if(await this.read(t,0,10,0),!this._stat)throw new Error(`unable to determine size of file at ${this.url}`)}return this._stat}async close(){}}var Dr={};(function(e){var t=typeof Uint8Array<"u"&&typeof Uint16Array<"u"&&typeof Int32Array<"u";function n(a,o){return Object.prototype.hasOwnProperty.call(a,o)}e.assign=function(a){for(var o=Array.prototype.slice.call(arguments,1);o.length;){var s=o.shift();if(s){if(typeof s!="object")throw new TypeError(s+"must be non-object");for(var l in s)n(s,l)&&(a[l]=s[l])}}return a},e.shrinkBuf=function(a,o){return a.length===o?a:a.subarray?a.subarray(0,o):(a.length=o,a)};var r={arraySet:function(a,o,s,l,c){if(o.subarray&&a.subarray){a.set(o.subarray(s,s+l),c);return}for(var u=0;u<l;u++)a[c+u]=o[s+u]},flattenChunks:function(a){var o,s,l,c,u,f;for(l=0,o=0,s=a.length;o<s;o++)l+=a[o].length;for(f=new Uint8Array(l),c=0,o=0,s=a.length;o<s;o++)u=a[o],f.set(u,c),c+=u.length;return f}},i={arraySet:function(a,o,s,l,c){for(var u=0;u<l;u++)a[c+u]=o[s+u]},flattenChunks:function(a){return[].concat.apply([],a)}};e.setTyped=function(a){a?(e.Buf8=Uint8Array,e.Buf16=Uint16Array,e.Buf32=Int32Array,e.assign(e,r)):(e.Buf8=Array,e.Buf16=Array,e.Buf32=Array,e.assign(e,i))},e.setTyped(t)})(Dr);var Yc={},Kn={},jo={},W7=Dr,X7=4,lA=0,uA=1,K7=2;function Ho(e){for(var t=e.length;--t>=0;)e[t]=0}var J7=0,fA=1,eO=2,tO=3,nO=258,ag=29,Qc=256,Zc=Qc+1+ag,Go=30,og=19,hA=2*Zc+1,_a=15,sg=16,rO=7,cg=256,dA=16,pA=17,gA=18,lg=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],Bf=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],iO=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],mA=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],aO=512,Ir=new Array((Zc+2)*2);Ho(Ir);var qc=new Array(Go*2);Ho(qc);var Wc=new Array(aO);Ho(Wc);var Xc=new Array(nO-tO+1);Ho(Xc);var ug=new Array(ag);Ho(ug);var Lf=new Array(Go);Ho(Lf);function fg(e,t,n,r,i){this.static_tree=e,this.extra_bits=t,this.extra_base=n,this.elems=r,this.max_length=i,this.has_stree=e&&e.length}var bA,yA,vA;function hg(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}function wA(e){return e<256?Wc[e]:Wc[256+(e>>>7)]}function Kc(e,t){e.pending_buf[e.pending++]=t&255,e.pending_buf[e.pending++]=t>>>8&255}function Rt(e,t,n){e.bi_valid>sg-n?(e.bi_buf|=t<<e.bi_valid&65535,Kc(e,e.bi_buf),e.bi_buf=t>>sg-e.bi_valid,e.bi_valid+=n-sg):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=n)}function Jn(e,t,n){Rt(e,n[t*2],n[t*2+1])}function xA(e,t){var n=0;do n|=e&1,e>>>=1,n<<=1;while(--t>0);return n>>>1}function oO(e){e.bi_valid===16?(Kc(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=e.bi_buf&255,e.bi_buf>>=8,e.bi_valid-=8)}function sO(e,t){var n=t.dyn_tree,r=t.max_code,i=t.stat_desc.static_tree,a=t.stat_desc.has_stree,o=t.stat_desc.extra_bits,s=t.stat_desc.extra_base,l=t.stat_desc.max_length,c,u,f,h,d,p,g=0;for(h=0;h<=_a;h++)e.bl_count[h]=0;for(n[e.heap[e.heap_max]*2+1]=0,c=e.heap_max+1;c<hA;c++)u=e.heap[c],h=n[n[u*2+1]*2+1]+1,h>l&&(h=l,g++),n[u*2+1]=h,!(u>r)&&(e.bl_count[h]++,d=0,u>=s&&(d=o[u-s]),p=n[u*2],e.opt_len+=p*(h+d),a&&(e.static_len+=p*(i[u*2+1]+d)));if(g!==0){do{for(h=l-1;e.bl_count[h]===0;)h--;e.bl_count[h]--,e.bl_count[h+1]+=2,e.bl_count[l]--,g-=2}while(g>0);for(h=l;h!==0;h--)for(u=e.bl_count[h];u!==0;)f=e.heap[--c],!(f>r)&&(n[f*2+1]!==h&&(e.opt_len+=(h-n[f*2+1])*n[f*2],n[f*2+1]=h),u--)}}function AA(e,t,n){var r=new Array(_a+1),i=0,a,o;for(a=1;a<=_a;a++)r[a]=i=i+n[a-1]<<1;for(o=0;o<=t;o++){var s=e[o*2+1];s!==0&&(e[o*2]=xA(r[s]++,s))}}function cO(){var e,t,n,r,i,a=new Array(_a+1);for(n=0,r=0;r<ag-1;r++)for(ug[r]=n,e=0;e<1<<lg[r];e++)Xc[n++]=r;for(Xc[n-1]=r,i=0,r=0;r<16;r++)for(Lf[r]=i,e=0;e<1<<Bf[r];e++)Wc[i++]=r;for(i>>=7;r<Go;r++)for(Lf[r]=i<<7,e=0;e<1<<Bf[r]-7;e++)Wc[256+i++]=r;for(t=0;t<=_a;t++)a[t]=0;for(e=0;e<=143;)Ir[e*2+1]=8,e++,a[8]++;for(;e<=255;)Ir[e*2+1]=9,e++,a[9]++;for(;e<=279;)Ir[e*2+1]=7,e++,a[7]++;for(;e<=287;)Ir[e*2+1]=8,e++,a[8]++;for(AA(Ir,Zc+1,a),e=0;e<Go;e++)qc[e*2+1]=5,qc[e*2]=xA(e,5);bA=new fg(Ir,lg,Qc+1,Zc,_a),yA=new fg(qc,Bf,0,Go,_a),vA=new fg(new Array(0),iO,0,og,rO)}function EA(e){var t;for(t=0;t<Zc;t++)e.dyn_ltree[t*2]=0;for(t=0;t<Go;t++)e.dyn_dtree[t*2]=0;for(t=0;t<og;t++)e.bl_tree[t*2]=0;e.dyn_ltree[cg*2]=1,e.opt_len=e.static_len=0,e.last_lit=e.matches=0}function SA(e){e.bi_valid>8?Kc(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0}function lO(e,t,n,r){SA(e),r&&(Kc(e,n),Kc(e,~n)),W7.arraySet(e.pending_buf,e.window,t,n,e.pending),e.pending+=n}function CA(e,t,n,r){var i=t*2,a=n*2;return e[i]<e[a]||e[i]===e[a]&&r[t]<=r[n]}function dg(e,t,n){for(var r=e.heap[n],i=n<<1;i<=e.heap_len&&(i<e.heap_len&&CA(t,e.heap[i+1],e.heap[i],e.depth)&&i++,!CA(t,r,e.heap[i],e.depth));)e.heap[n]=e.heap[i],n=i,i<<=1;e.heap[n]=r}function _A(e,t,n){var r,i,a=0,o,s;if(e.last_lit!==0)do r=e.pending_buf[e.d_buf+a*2]<<8|e.pending_buf[e.d_buf+a*2+1],i=e.pending_buf[e.l_buf+a],a++,r===0?Jn(e,i,t):(o=Xc[i],Jn(e,o+Qc+1,t),s=lg[o],s!==0&&(i-=ug[o],Rt(e,i,s)),r--,o=wA(r),Jn(e,o,n),s=Bf[o],s!==0&&(r-=Lf[o],Rt(e,r,s)));while(a<e.last_lit);Jn(e,cg,t)}function pg(e,t){var n=t.dyn_tree,r=t.stat_desc.static_tree,i=t.stat_desc.has_stree,a=t.stat_desc.elems,o,s,l=-1,c;for(e.heap_len=0,e.heap_max=hA,o=0;o<a;o++)n[o*2]!==0?(e.heap[++e.heap_len]=l=o,e.depth[o]=0):n[o*2+1]=0;for(;e.heap_len<2;)c=e.heap[++e.heap_len]=l<2?++l:0,n[c*2]=1,e.depth[c]=0,e.opt_len--,i&&(e.static_len-=r[c*2+1]);for(t.max_code=l,o=e.heap_len>>1;o>=1;o--)dg(e,n,o);c=a;do o=e.heap[1],e.heap[1]=e.heap[e.heap_len--],dg(e,n,1),s=e.heap[1],e.heap[--e.heap_max]=o,e.heap[--e.heap_max]=s,n[c*2]=n[o*2]+n[s*2],e.depth[c]=(e.depth[o]>=e.depth[s]?e.depth[o]:e.depth[s])+1,n[o*2+1]=n[s*2+1]=c,e.heap[1]=c++,dg(e,n,1);while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],sO(e,t),AA(n,l,e.bl_count)}function kA(e,t,n){var r,i=-1,a,o=t[0*2+1],s=0,l=7,c=4;for(o===0&&(l=138,c=3),t[(n+1)*2+1]=65535,r=0;r<=n;r++)a=o,o=t[(r+1)*2+1],!(++s<l&&a===o)&&(s<c?e.bl_tree[a*2]+=s:a!==0?(a!==i&&e.bl_tree[a*2]++,e.bl_tree[dA*2]++):s<=10?e.bl_tree[pA*2]++:e.bl_tree[gA*2]++,s=0,i=a,o===0?(l=138,c=3):a===o?(l=6,c=3):(l=7,c=4))}function DA(e,t,n){var r,i=-1,a,o=t[0*2+1],s=0,l=7,c=4;for(o===0&&(l=138,c=3),r=0;r<=n;r++)if(a=o,o=t[(r+1)*2+1],!(++s<l&&a===o)){if(s<c)do Jn(e,a,e.bl_tree);while(--s!==0);else a!==0?(a!==i&&(Jn(e,a,e.bl_tree),s--),Jn(e,dA,e.bl_tree),Rt(e,s-3,2)):s<=10?(Jn(e,pA,e.bl_tree),Rt(e,s-3,3)):(Jn(e,gA,e.bl_tree),Rt(e,s-11,7));s=0,i=a,o===0?(l=138,c=3):a===o?(l=6,c=3):(l=7,c=4)}}function uO(e){var t;for(kA(e,e.dyn_ltree,e.l_desc.max_code),kA(e,e.dyn_dtree,e.d_desc.max_code),pg(e,e.bl_desc),t=og-1;t>=3&&e.bl_tree[mA[t]*2+1]===0;t--);return e.opt_len+=3*(t+1)+5+5+4,t}function fO(e,t,n,r){var i;for(Rt(e,t-257,5),Rt(e,n-1,5),Rt(e,r-4,4),i=0;i<r;i++)Rt(e,e.bl_tree[mA[i]*2+1],3);DA(e,e.dyn_ltree,t-1),DA(e,e.dyn_dtree,n-1)}function hO(e){var t=4093624447,n;for(n=0;n<=31;n++,t>>>=1)if(t&1&&e.dyn_ltree[n*2]!==0)return lA;if(e.dyn_ltree[9*2]!==0||e.dyn_ltree[10*2]!==0||e.dyn_ltree[13*2]!==0)return uA;for(n=32;n<Qc;n++)if(e.dyn_ltree[n*2]!==0)return uA;return lA}var IA=!1;function dO(e){IA||(cO(),IA=!0),e.l_desc=new hg(e.dyn_ltree,bA),e.d_desc=new hg(e.dyn_dtree,yA),e.bl_desc=new hg(e.bl_tree,vA),e.bi_buf=0,e.bi_valid=0,EA(e)}function TA(e,t,n,r){Rt(e,(J7<<1)+(r?1:0),3),lO(e,t,n,!0)}function pO(e){Rt(e,fA<<1,3),Jn(e,cg,Ir),oO(e)}function gO(e,t,n,r){var i,a,o=0;e.level>0?(e.strm.data_type===K7&&(e.strm.data_type=hO(e)),pg(e,e.l_desc),pg(e,e.d_desc),o=uO(e),i=e.opt_len+3+7>>>3,a=e.static_len+3+7>>>3,a<=i&&(i=a)):i=a=n+5,n+4<=i&&t!==-1?TA(e,t,n,r):e.strategy===X7||a===i?(Rt(e,(fA<<1)+(r?1:0),3),_A(e,Ir,qc)):(Rt(e,(eO<<1)+(r?1:0),3),fO(e,e.l_desc.max_code+1,e.d_desc.max_code+1,o+1),_A(e,e.dyn_ltree,e.dyn_dtree)),EA(e),r&&SA(e)}function mO(e,t,n){return e.pending_buf[e.d_buf+e.last_lit*2]=t>>>8&255,e.pending_buf[e.d_buf+e.last_lit*2+1]=t&255,e.pending_buf[e.l_buf+e.last_lit]=n&255,e.last_lit++,t===0?e.dyn_ltree[n*2]++:(e.matches++,t--,e.dyn_ltree[(Xc[n]+Qc+1)*2]++,e.dyn_dtree[wA(t)*2]++),e.last_lit===e.lit_bufsize-1}jo._tr_init=dO,jo._tr_stored_block=TA,jo._tr_flush_block=gO,jo._tr_tally=mO,jo._tr_align=pO;function bO(e,t,n,r){for(var i=e&65535|0,a=e>>>16&65535|0,o=0;n!==0;){o=n>2e3?2e3:n,n-=o;do i=i+t[r++]|0,a=a+i|0;while(--o);i%=65521,a%=65521}return i|a<<16|0}var MA=bO;function yO(){for(var e,t=[],n=0;n<256;n++){e=n;for(var r=0;r<8;r++)e=e&1?3988292384^e>>>1:e>>>1;t[n]=e}return t}var vO=yO();function wO(e,t,n,r){var i=vO,a=r+n;e^=-1;for(var o=r;o<a;o++)e=e>>>8^i[(e^t[o])&255];return e^-1}var NA=wO,gg={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},kt=Dr,cn=jo,FA=MA,mi=NA,xO=gg,ka=0,AO=1,EO=3,bi=4,BA=5,er=0,LA=1,ln=-2,SO=-3,mg=-5,CO=-1,_O=1,Of=2,kO=3,DO=4,IO=0,TO=2,Rf=8,MO=9,NO=15,FO=8,BO=29,LO=256,bg=LO+1+BO,OO=30,RO=19,zO=2*bg+1,PO=15,fe=3,yi=258,Nn=yi+fe+1,UO=32,zf=42,yg=69,Pf=73,Uf=91,jf=103,Da=113,Jc=666,at=1,el=2,Ia=3,$o=4,jO=3;function vi(e,t){return e.msg=xO[t],t}function OA(e){return(e<<1)-(e>4?9:0)}function wi(e){for(var t=e.length;--t>=0;)e[t]=0}function xi(e){var t=e.state,n=t.pending;n>e.avail_out&&(n=e.avail_out),n!==0&&(kt.arraySet(e.output,t.pending_buf,t.pending_out,n,e.next_out),e.next_out+=n,t.pending_out+=n,e.total_out+=n,e.avail_out-=n,t.pending-=n,t.pending===0&&(t.pending_out=0))}function mt(e,t){cn._tr_flush_block(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,xi(e.strm)}function ye(e,t){e.pending_buf[e.pending++]=t}function tl(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=t&255}function HO(e,t,n,r){var i=e.avail_in;return i>r&&(i=r),i===0?0:(e.avail_in-=i,kt.arraySet(t,e.input,e.next_in,i,n),e.state.wrap===1?e.adler=FA(e.adler,t,i,n):e.state.wrap===2&&(e.adler=mi(e.adler,t,i,n)),e.next_in+=i,e.total_in+=i,i)}function RA(e,t){var n=e.max_chain_length,r=e.strstart,i,a,o=e.prev_length,s=e.nice_match,l=e.strstart>e.w_size-Nn?e.strstart-(e.w_size-Nn):0,c=e.window,u=e.w_mask,f=e.prev,h=e.strstart+yi,d=c[r+o-1],p=c[r+o];e.prev_length>=e.good_match&&(n>>=2),s>e.lookahead&&(s=e.lookahead);do if(i=t,!(c[i+o]!==p||c[i+o-1]!==d||c[i]!==c[r]||c[++i]!==c[r+1])){r+=2,i++;do;while(c[++r]===c[++i]&&c[++r]===c[++i]&&c[++r]===c[++i]&&c[++r]===c[++i]&&c[++r]===c[++i]&&c[++r]===c[++i]&&c[++r]===c[++i]&&c[++r]===c[++i]&&r<h);if(a=yi-(h-r),r=h-yi,a>o){if(e.match_start=t,o=a,a>=s)break;d=c[r+o-1],p=c[r+o]}}while((t=f[t&u])>l&&--n!==0);return o<=e.lookahead?o:e.lookahead}function Ta(e){var t=e.w_size,n,r,i,a,o;do{if(a=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-Nn)){kt.arraySet(e.window,e.window,t,t,0),e.match_start-=t,e.strstart-=t,e.block_start-=t,r=e.hash_size,n=r;do i=e.head[--n],e.head[n]=i>=t?i-t:0;while(--r);r=t,n=r;do i=e.prev[--n],e.prev[n]=i>=t?i-t:0;while(--r);a+=t}if(e.strm.avail_in===0)break;if(r=HO(e.strm,e.window,e.strstart+e.lookahead,a),e.lookahead+=r,e.lookahead+e.insert>=fe)for(o=e.strstart-e.insert,e.ins_h=e.window[o],e.ins_h=(e.ins_h<<e.hash_shift^e.window[o+1])&e.hash_mask;e.insert&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[o+fe-1])&e.hash_mask,e.prev[o&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=o,o++,e.insert--,!(e.lookahead+e.insert<fe)););}while(e.lookahead<Nn&&e.strm.avail_in!==0)}function GO(e,t){var n=65535;for(n>e.pending_buf_size-5&&(n=e.pending_buf_size-5);;){if(e.lookahead<=1){if(Ta(e),e.lookahead===0&&t===ka)return at;if(e.lookahead===0)break}e.strstart+=e.lookahead,e.lookahead=0;var r=e.block_start+n;if((e.strstart===0||e.strstart>=r)&&(e.lookahead=e.strstart-r,e.strstart=r,mt(e,!1),e.strm.avail_out===0)||e.strstart-e.block_start>=e.w_size-Nn&&(mt(e,!1),e.strm.avail_out===0))return at}return e.insert=0,t===bi?(mt(e,!0),e.strm.avail_out===0?Ia:$o):(e.strstart>e.block_start&&(mt(e,!1),e.strm.avail_out===0),at)}function vg(e,t){for(var n,r;;){if(e.lookahead<Nn){if(Ta(e),e.lookahead<Nn&&t===ka)return at;if(e.lookahead===0)break}if(n=0,e.lookahead>=fe&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+fe-1])&e.hash_mask,n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),n!==0&&e.strstart-n<=e.w_size-Nn&&(e.match_length=RA(e,n)),e.match_length>=fe)if(r=cn._tr_tally(e,e.strstart-e.match_start,e.match_length-fe),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=fe){e.match_length--;do e.strstart++,e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+fe-1])&e.hash_mask,n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart;while(--e.match_length!==0);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+1])&e.hash_mask;else r=cn._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(r&&(mt(e,!1),e.strm.avail_out===0))return at}return e.insert=e.strstart<fe-1?e.strstart:fe-1,t===bi?(mt(e,!0),e.strm.avail_out===0?Ia:$o):e.last_lit&&(mt(e,!1),e.strm.avail_out===0)?at:el}function Vo(e,t){for(var n,r,i;;){if(e.lookahead<Nn){if(Ta(e),e.lookahead<Nn&&t===ka)return at;if(e.lookahead===0)break}if(n=0,e.lookahead>=fe&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+fe-1])&e.hash_mask,n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=fe-1,n!==0&&e.prev_length<e.max_lazy_match&&e.strstart-n<=e.w_size-Nn&&(e.match_length=RA(e,n),e.match_length<=5&&(e.strategy===_O||e.match_length===fe&&e.strstart-e.match_start>4096)&&(e.match_length=fe-1)),e.prev_length>=fe&&e.match_length<=e.prev_length){i=e.strstart+e.lookahead-fe,r=cn._tr_tally(e,e.strstart-1-e.prev_match,e.prev_length-fe),e.lookahead-=e.prev_length-1,e.prev_length-=2;do++e.strstart<=i&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+fe-1])&e.hash_mask,n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart);while(--e.prev_length!==0);if(e.match_available=0,e.match_length=fe-1,e.strstart++,r&&(mt(e,!1),e.strm.avail_out===0))return at}else if(e.match_available){if(r=cn._tr_tally(e,0,e.window[e.strstart-1]),r&&mt(e,!1),e.strstart++,e.lookahead--,e.strm.avail_out===0)return at}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(r=cn._tr_tally(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<fe-1?e.strstart:fe-1,t===bi?(mt(e,!0),e.strm.avail_out===0?Ia:$o):e.last_lit&&(mt(e,!1),e.strm.avail_out===0)?at:el}function $O(e,t){for(var n,r,i,a,o=e.window;;){if(e.lookahead<=yi){if(Ta(e),e.lookahead<=yi&&t===ka)return at;if(e.lookahead===0)break}if(e.match_length=0,e.lookahead>=fe&&e.strstart>0&&(i=e.strstart-1,r=o[i],r===o[++i]&&r===o[++i]&&r===o[++i])){a=e.strstart+yi;do;while(r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&i<a);e.match_length=yi-(a-i),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=fe?(n=cn._tr_tally(e,1,e.match_length-fe),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(n=cn._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),n&&(mt(e,!1),e.strm.avail_out===0))return at}return e.insert=0,t===bi?(mt(e,!0),e.strm.avail_out===0?Ia:$o):e.last_lit&&(mt(e,!1),e.strm.avail_out===0)?at:el}function VO(e,t){for(var n;;){if(e.lookahead===0&&(Ta(e),e.lookahead===0)){if(t===ka)return at;break}if(e.match_length=0,n=cn._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,n&&(mt(e,!1),e.strm.avail_out===0))return at}return e.insert=0,t===bi?(mt(e,!0),e.strm.avail_out===0?Ia:$o):e.last_lit&&(mt(e,!1),e.strm.avail_out===0)?at:el}function tr(e,t,n,r,i){this.good_length=e,this.max_lazy=t,this.nice_length=n,this.max_chain=r,this.func=i}var Yo;Yo=[new tr(0,0,0,0,GO),new tr(4,4,8,4,vg),new tr(4,5,16,8,vg),new tr(4,6,32,32,vg),new tr(4,4,16,16,Vo),new tr(8,16,32,32,Vo),new tr(8,16,128,128,Vo),new tr(8,32,128,256,Vo),new tr(32,128,258,1024,Vo),new tr(32,258,258,4096,Vo)];function YO(e){e.window_size=2*e.w_size,wi(e.head),e.max_lazy_match=Yo[e.level].max_lazy,e.good_match=Yo[e.level].good_length,e.nice_match=Yo[e.level].nice_length,e.max_chain_length=Yo[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=fe-1,e.match_available=0,e.ins_h=0}function QO(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=Rf,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new kt.Buf16(zO*2),this.dyn_dtree=new kt.Buf16((2*OO+1)*2),this.bl_tree=new kt.Buf16((2*RO+1)*2),wi(this.dyn_ltree),wi(this.dyn_dtree),wi(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new kt.Buf16(PO+1),this.heap=new kt.Buf16(2*bg+1),wi(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new kt.Buf16(2*bg+1),wi(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function zA(e){var t;return!e||!e.state?vi(e,ln):(e.total_in=e.total_out=0,e.data_type=TO,t=e.state,t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap?zf:Da,e.adler=t.wrap===2?0:1,t.last_flush=ka,cn._tr_init(t),er)}function PA(e){var t=zA(e);return t===er&&YO(e.state),t}function ZO(e,t){return!e||!e.state||e.state.wrap!==2?ln:(e.state.gzhead=t,er)}function UA(e,t,n,r,i,a){if(!e)return ln;var o=1;if(t===CO&&(t=6),r<0?(o=0,r=-r):r>15&&(o=2,r-=16),i<1||i>MO||n!==Rf||r<8||r>15||t<0||t>9||a<0||a>DO)return vi(e,ln);r===8&&(r=9);var s=new QO;return e.state=s,s.strm=e,s.wrap=o,s.gzhead=null,s.w_bits=r,s.w_size=1<<s.w_bits,s.w_mask=s.w_size-1,s.hash_bits=i+7,s.hash_size=1<<s.hash_bits,s.hash_mask=s.hash_size-1,s.hash_shift=~~((s.hash_bits+fe-1)/fe),s.window=new kt.Buf8(s.w_size*2),s.head=new kt.Buf16(s.hash_size),s.prev=new kt.Buf16(s.w_size),s.lit_bufsize=1<<i+6,s.pending_buf_size=s.lit_bufsize*4,s.pending_buf=new kt.Buf8(s.pending_buf_size),s.d_buf=1*s.lit_bufsize,s.l_buf=(1+2)*s.lit_bufsize,s.level=t,s.strategy=a,s.method=n,PA(e)}function qO(e,t){return UA(e,t,Rf,NO,FO,IO)}function WO(e,t){var n,r,i,a;if(!e||!e.state||t>BA||t<0)return e?vi(e,ln):ln;if(r=e.state,!e.output||!e.input&&e.avail_in!==0||r.status===Jc&&t!==bi)return vi(e,e.avail_out===0?mg:ln);if(r.strm=e,n=r.last_flush,r.last_flush=t,r.status===zf)if(r.wrap===2)e.adler=0,ye(r,31),ye(r,139),ye(r,8),r.gzhead?(ye(r,(r.gzhead.text?1:0)+(r.gzhead.hcrc?2:0)+(r.gzhead.extra?4:0)+(r.gzhead.name?8:0)+(r.gzhead.comment?16:0)),ye(r,r.gzhead.time&255),ye(r,r.gzhead.time>>8&255),ye(r,r.gzhead.time>>16&255),ye(r,r.gzhead.time>>24&255),ye(r,r.level===9?2:r.strategy>=Of||r.level<2?4:0),ye(r,r.gzhead.os&255),r.gzhead.extra&&r.gzhead.extra.length&&(ye(r,r.gzhead.extra.length&255),ye(r,r.gzhead.extra.length>>8&255)),r.gzhead.hcrc&&(e.adler=mi(e.adler,r.pending_buf,r.pending,0)),r.gzindex=0,r.status=yg):(ye(r,0),ye(r,0),ye(r,0),ye(r,0),ye(r,0),ye(r,r.level===9?2:r.strategy>=Of||r.level<2?4:0),ye(r,jO),r.status=Da);else{var o=Rf+(r.w_bits-8<<4)<<8,s=-1;r.strategy>=Of||r.level<2?s=0:r.level<6?s=1:r.level===6?s=2:s=3,o|=s<<6,r.strstart!==0&&(o|=UO),o+=31-o%31,r.status=Da,tl(r,o),r.strstart!==0&&(tl(r,e.adler>>>16),tl(r,e.adler&65535)),e.adler=1}if(r.status===yg)if(r.gzhead.extra){for(i=r.pending;r.gzindex<(r.gzhead.extra.length&65535)&&!(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>i&&(e.adler=mi(e.adler,r.pending_buf,r.pending-i,i)),xi(e),i=r.pending,r.pending===r.pending_buf_size));)ye(r,r.gzhead.extra[r.gzindex]&255),r.gzindex++;r.gzhead.hcrc&&r.pending>i&&(e.adler=mi(e.adler,r.pending_buf,r.pending-i,i)),r.gzindex===r.gzhead.extra.length&&(r.gzindex=0,r.status=Pf)}else r.status=Pf;if(r.status===Pf)if(r.gzhead.name){i=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>i&&(e.adler=mi(e.adler,r.pending_buf,r.pending-i,i)),xi(e),i=r.pending,r.pending===r.pending_buf_size)){a=1;break}r.gzindex<r.gzhead.name.length?a=r.gzhead.name.charCodeAt(r.gzindex++)&255:a=0,ye(r,a)}while(a!==0);r.gzhead.hcrc&&r.pending>i&&(e.adler=mi(e.adler,r.pending_buf,r.pending-i,i)),a===0&&(r.gzindex=0,r.status=Uf)}else r.status=Uf;if(r.status===Uf)if(r.gzhead.comment){i=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>i&&(e.adler=mi(e.adler,r.pending_buf,r.pending-i,i)),xi(e),i=r.pending,r.pending===r.pending_buf_size)){a=1;break}r.gzindex<r.gzhead.comment.length?a=r.gzhead.comment.charCodeAt(r.gzindex++)&255:a=0,ye(r,a)}while(a!==0);r.gzhead.hcrc&&r.pending>i&&(e.adler=mi(e.adler,r.pending_buf,r.pending-i,i)),a===0&&(r.status=jf)}else r.status=jf;if(r.status===jf&&(r.gzhead.hcrc?(r.pending+2>r.pending_buf_size&&xi(e),r.pending+2<=r.pending_buf_size&&(ye(r,e.adler&255),ye(r,e.adler>>8&255),e.adler=0,r.status=Da)):r.status=Da),r.pending!==0){if(xi(e),e.avail_out===0)return r.last_flush=-1,er}else if(e.avail_in===0&&OA(t)<=OA(n)&&t!==bi)return vi(e,mg);if(r.status===Jc&&e.avail_in!==0)return vi(e,mg);if(e.avail_in!==0||r.lookahead!==0||t!==ka&&r.status!==Jc){var l=r.strategy===Of?VO(r,t):r.strategy===kO?$O(r,t):Yo[r.level].func(r,t);if((l===Ia||l===$o)&&(r.status=Jc),l===at||l===Ia)return e.avail_out===0&&(r.last_flush=-1),er;if(l===el&&(t===AO?cn._tr_align(r):t!==BA&&(cn._tr_stored_block(r,0,0,!1),t===EO&&(wi(r.head),r.lookahead===0&&(r.strstart=0,r.block_start=0,r.insert=0))),xi(e),e.avail_out===0))return r.last_flush=-1,er}return t!==bi?er:r.wrap<=0?LA:(r.wrap===2?(ye(r,e.adler&255),ye(r,e.adler>>8&255),ye(r,e.adler>>16&255),ye(r,e.adler>>24&255),ye(r,e.total_in&255),ye(r,e.total_in>>8&255),ye(r,e.total_in>>16&255),ye(r,e.total_in>>24&255)):(tl(r,e.adler>>>16),tl(r,e.adler&65535)),xi(e),r.wrap>0&&(r.wrap=-r.wrap),r.pending!==0?er:LA)}function XO(e){var t;return!e||!e.state?ln:(t=e.state.status,t!==zf&&t!==yg&&t!==Pf&&t!==Uf&&t!==jf&&t!==Da&&t!==Jc?vi(e,ln):(e.state=null,t===Da?vi(e,SO):er))}function KO(e,t){var n=t.length,r,i,a,o,s,l,c,u;if(!e||!e.state||(r=e.state,o=r.wrap,o===2||o===1&&r.status!==zf||r.lookahead))return ln;for(o===1&&(e.adler=FA(e.adler,t,n,0)),r.wrap=0,n>=r.w_size&&(o===0&&(wi(r.head),r.strstart=0,r.block_start=0,r.insert=0),u=new kt.Buf8(r.w_size),kt.arraySet(u,t,n-r.w_size,r.w_size,0),t=u,n=r.w_size),s=e.avail_in,l=e.next_in,c=e.input,e.avail_in=n,e.next_in=0,e.input=t,Ta(r);r.lookahead>=fe;){i=r.strstart,a=r.lookahead-(fe-1);do r.ins_h=(r.ins_h<<r.hash_shift^r.window[i+fe-1])&r.hash_mask,r.prev[i&r.w_mask]=r.head[r.ins_h],r.head[r.ins_h]=i,i++;while(--a);r.strstart=i,r.lookahead=fe-1,Ta(r)}return r.strstart+=r.lookahead,r.block_start=r.strstart,r.insert=r.lookahead,r.lookahead=0,r.match_length=r.prev_length=fe-1,r.match_available=0,e.next_in=l,e.input=c,e.avail_in=s,r.wrap=o,er}Kn.deflateInit=qO,Kn.deflateInit2=UA,Kn.deflateReset=PA,Kn.deflateResetKeep=zA,Kn.deflateSetHeader=ZO,Kn.deflate=WO,Kn.deflateEnd=XO,Kn.deflateSetDictionary=KO,Kn.deflateInfo="pako deflate (from Nodeca project)";var Ma={},Hf=Dr,jA=!0,HA=!0;try{String.fromCharCode.apply(null,[0])}catch{jA=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{HA=!1}for(var nl=new Hf.Buf8(256),Ai=0;Ai<256;Ai++)nl[Ai]=Ai>=252?6:Ai>=248?5:Ai>=240?4:Ai>=224?3:Ai>=192?2:1;nl[254]=nl[254]=1,Ma.string2buf=function(e){var t,n,r,i,a,o=e.length,s=0;for(i=0;i<o;i++)n=e.charCodeAt(i),(n&64512)===55296&&i+1<o&&(r=e.charCodeAt(i+1),(r&64512)===56320&&(n=65536+(n-55296<<10)+(r-56320),i++)),s+=n<128?1:n<2048?2:n<65536?3:4;for(t=new Hf.Buf8(s),a=0,i=0;a<s;i++)n=e.charCodeAt(i),(n&64512)===55296&&i+1<o&&(r=e.charCodeAt(i+1),(r&64512)===56320&&(n=65536+(n-55296<<10)+(r-56320),i++)),n<128?t[a++]=n:n<2048?(t[a++]=192|n>>>6,t[a++]=128|n&63):n<65536?(t[a++]=224|n>>>12,t[a++]=128|n>>>6&63,t[a++]=128|n&63):(t[a++]=240|n>>>18,t[a++]=128|n>>>12&63,t[a++]=128|n>>>6&63,t[a++]=128|n&63);return t};function GA(e,t){if(t<65534&&(e.subarray&&HA||!e.subarray&&jA))return String.fromCharCode.apply(null,Hf.shrinkBuf(e,t));for(var n="",r=0;r<t;r++)n+=String.fromCharCode(e[r]);return n}Ma.buf2binstring=function(e){return GA(e,e.length)},Ma.binstring2buf=function(e){for(var t=new Hf.Buf8(e.length),n=0,r=t.length;n<r;n++)t[n]=e.charCodeAt(n);return t},Ma.buf2string=function(e,t){var n,r,i,a,o=t||e.length,s=new Array(o*2);for(r=0,n=0;n<o;){if(i=e[n++],i<128){s[r++]=i;continue}if(a=nl[i],a>4){s[r++]=65533,n+=a-1;continue}for(i&=a===2?31:a===3?15:7;a>1&&n<o;)i=i<<6|e[n++]&63,a--;if(a>1){s[r++]=65533;continue}i<65536?s[r++]=i:(i-=65536,s[r++]=55296|i>>10&1023,s[r++]=56320|i&1023)}return GA(s,r)},Ma.utf8border=function(e,t){var n;for(t=t||e.length,t>e.length&&(t=e.length),n=t-1;n>=0&&(e[n]&192)===128;)n--;return n<0||n===0?t:n+nl[e[n]]>t?n:t};function JO(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}var $A=JO,rl=Kn,il=Dr,wg=Ma,xg=gg,eR=$A,VA=Object.prototype.toString,tR=0,Ag=4,Qo=0,YA=1,QA=2,nR=-1,rR=0,iR=8;function Na(e){if(!(this instanceof Na))return new Na(e);this.options=il.assign({level:nR,method:iR,chunkSize:16384,windowBits:15,memLevel:8,strategy:rR,to:""},e||{});var t=this.options;t.raw&&t.windowBits>0?t.windowBits=-t.windowBits:t.gzip&&t.windowBits>0&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new eR,this.strm.avail_out=0;var n=rl.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(n!==Qo)throw new Error(xg[n]);if(t.header&&rl.deflateSetHeader(this.strm,t.header),t.dictionary){var r;if(typeof t.dictionary=="string"?r=wg.string2buf(t.dictionary):VA.call(t.dictionary)==="[object ArrayBuffer]"?r=new Uint8Array(t.dictionary):r=t.dictionary,n=rl.deflateSetDictionary(this.strm,r),n!==Qo)throw new Error(xg[n]);this._dict_set=!0}}Na.prototype.push=function(e,t){var n=this.strm,r=this.options.chunkSize,i,a;if(this.ended)return!1;a=t===~~t?t:t===!0?Ag:tR,typeof e=="string"?n.input=wg.string2buf(e):VA.call(e)==="[object ArrayBuffer]"?n.input=new Uint8Array(e):n.input=e,n.next_in=0,n.avail_in=n.input.length;do{if(n.avail_out===0&&(n.output=new il.Buf8(r),n.next_out=0,n.avail_out=r),i=rl.deflate(n,a),i!==YA&&i!==Qo)return this.onEnd(i),this.ended=!0,!1;(n.avail_out===0||n.avail_in===0&&(a===Ag||a===QA))&&(this.options.to==="string"?this.onData(wg.buf2binstring(il.shrinkBuf(n.output,n.next_out))):this.onData(il.shrinkBuf(n.output,n.next_out)))}while((n.avail_in>0||n.avail_out===0)&&i!==YA);return a===Ag?(i=rl.deflateEnd(this.strm),this.onEnd(i),this.ended=!0,i===Qo):(a===QA&&(this.onEnd(Qo),n.avail_out=0),!0)},Na.prototype.onData=function(e){this.chunks.push(e)},Na.prototype.onEnd=function(e){e===Qo&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=il.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function Eg(e,t){var n=new Na(t);if(n.push(e,!0),n.err)throw n.msg||xg[n.err];return n.result}function aR(e,t){return t=t||{},t.raw=!0,Eg(e,t)}function oR(e,t){return t=t||{},t.gzip=!0,Eg(e,t)}Yc.Deflate=Na,Yc.deflate=Eg,Yc.deflateRaw=aR,Yc.gzip=oR;var al={},Fn={},Gf=30,sR=12,cR=function(t,n){var r,i,a,o,s,l,c,u,f,h,d,p,g,y,v,S,k,C,E,w,A,T,D,M,F;r=t.state,i=t.next_in,M=t.input,a=i+(t.avail_in-5),o=t.next_out,F=t.output,s=o-(n-t.avail_out),l=o+(t.avail_out-257),c=r.dmax,u=r.wsize,f=r.whave,h=r.wnext,d=r.window,p=r.hold,g=r.bits,y=r.lencode,v=r.distcode,S=(1<<r.lenbits)-1,k=(1<<r.distbits)-1;e:do{g<15&&(p+=M[i++]<<g,g+=8,p+=M[i++]<<g,g+=8),C=y[p&S];t:for(;;){if(E=C>>>24,p>>>=E,g-=E,E=C>>>16&255,E===0)F[o++]=C&65535;else if(E&16){w=C&65535,E&=15,E&&(g<E&&(p+=M[i++]<<g,g+=8),w+=p&(1<<E)-1,p>>>=E,g-=E),g<15&&(p+=M[i++]<<g,g+=8,p+=M[i++]<<g,g+=8),C=v[p&k];n:for(;;){if(E=C>>>24,p>>>=E,g-=E,E=C>>>16&255,E&16){if(A=C&65535,E&=15,g<E&&(p+=M[i++]<<g,g+=8,g<E&&(p+=M[i++]<<g,g+=8)),A+=p&(1<<E)-1,A>c){t.msg="invalid distance too far back",r.mode=Gf;break e}if(p>>>=E,g-=E,E=o-s,A>E){if(E=A-E,E>f&&r.sane){t.msg="invalid distance too far back",r.mode=Gf;break e}if(T=0,D=d,h===0){if(T+=u-E,E<w){w-=E;do F[o++]=d[T++];while(--E);T=o-A,D=F}}else if(h<E){if(T+=u+h-E,E-=h,E<w){w-=E;do F[o++]=d[T++];while(--E);if(T=0,h<w){E=h,w-=E;do F[o++]=d[T++];while(--E);T=o-A,D=F}}}else if(T+=h-E,E<w){w-=E;do F[o++]=d[T++];while(--E);T=o-A,D=F}for(;w>2;)F[o++]=D[T++],F[o++]=D[T++],F[o++]=D[T++],w-=3;w&&(F[o++]=D[T++],w>1&&(F[o++]=D[T++]))}else{T=o-A;do F[o++]=F[T++],F[o++]=F[T++],F[o++]=F[T++],w-=3;while(w>2);w&&(F[o++]=F[T++],w>1&&(F[o++]=F[T++]))}}else if(E&64){t.msg="invalid distance code",r.mode=Gf;break e}else{C=v[(C&65535)+(p&(1<<E)-1)];continue n}break}}else if(E&64)if(E&32){r.mode=sR;break e}else{t.msg="invalid literal/length code",r.mode=Gf;break e}else{C=y[(C&65535)+(p&(1<<E)-1)];continue t}break}}while(i<a&&o<l);w=g>>3,i-=w,g-=w<<3,p&=(1<<g)-1,t.next_in=i,t.next_out=o,t.avail_in=i<a?5+(a-i):5-(i-a),t.avail_out=o<l?257+(l-o):257-(o-l),r.hold=p,r.bits=g},ZA=Dr,Zo=15,qA=852,WA=592,XA=0,Sg=1,KA=2,lR=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],uR=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],fR=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],hR=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64],dR=function(t,n,r,i,a,o,s,l){var c=l.bits,u=0,f=0,h=0,d=0,p=0,g=0,y=0,v=0,S=0,k=0,C,E,w,A,T,D=null,M=0,F,U=new ZA.Buf16(Zo+1),q=new ZA.Buf16(Zo+1),V=null,pe=0,Se,tt,ie;for(u=0;u<=Zo;u++)U[u]=0;for(f=0;f<i;f++)U[n[r+f]]++;for(p=c,d=Zo;d>=1&&U[d]===0;d--);if(p>d&&(p=d),d===0)return a[o++]=1<<24|64<<16|0,a[o++]=1<<24|64<<16|0,l.bits=1,0;for(h=1;h<d&&U[h]===0;h++);for(p<h&&(p=h),v=1,u=1;u<=Zo;u++)if(v<<=1,v-=U[u],v<0)return-1;if(v>0&&(t===XA||d!==1))return-1;for(q[1]=0,u=1;u<Zo;u++)q[u+1]=q[u]+U[u];for(f=0;f<i;f++)n[r+f]!==0&&(s[q[n[r+f]]++]=f);if(t===XA?(D=V=s,F=19):t===Sg?(D=lR,M-=257,V=uR,pe-=257,F=256):(D=fR,V=hR,F=-1),k=0,f=0,u=h,T=o,g=p,y=0,w=-1,S=1<<p,A=S-1,t===Sg&&S>qA||t===KA&&S>WA)return 1;for(;;){Se=u-y,s[f]<F?(tt=0,ie=s[f]):s[f]>F?(tt=V[pe+s[f]],ie=D[M+s[f]]):(tt=32+64,ie=0),C=1<<u-y,E=1<<g,h=E;do E-=C,a[T+(k>>y)+E]=Se<<24|tt<<16|ie|0;while(E!==0);for(C=1<<u-1;k&C;)C>>=1;if(C!==0?(k&=C-1,k+=C):k=0,f++,--U[u]===0){if(u===d)break;u=n[r+s[f]]}if(u>p&&(k&A)!==w){for(y===0&&(y=p),T+=h,g=u-y,v=1<<g;g+y<d&&(v-=U[g+y],!(v<=0));)g++,v<<=1;if(S+=1<<g,t===Sg&&S>qA||t===KA&&S>WA)return 1;w=k&A,a[w]=p<<24|g<<16|T-o|0}}return k!==0&&(a[T+k]=u-y<<24|64<<16|0),l.bits=p,0},Yt=Dr,Cg=MA,nr=NA,pR=cR,ol=dR,gR=0,JA=1,e3=2,t3=4,mR=5,$f=6,Fa=0,bR=1,yR=2,un=-2,n3=-3,r3=-4,vR=-5,i3=8,a3=1,o3=2,s3=3,c3=4,l3=5,u3=6,f3=7,h3=8,d3=9,p3=10,Vf=11,Tr=12,_g=13,g3=14,kg=15,m3=16,b3=17,y3=18,v3=19,Yf=20,Qf=21,w3=22,x3=23,A3=24,E3=25,S3=26,Dg=27,C3=28,_3=29,je=30,k3=31,wR=32,xR=852,AR=592,ER=15,SR=ER;function D3(e){return(e>>>24&255)+(e>>>8&65280)+((e&65280)<<8)+((e&255)<<24)}function CR(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Yt.Buf16(320),this.work=new Yt.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function I3(e){var t;return!e||!e.state?un:(t=e.state,e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=t.wrap&1),t.mode=a3,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Yt.Buf32(xR),t.distcode=t.distdyn=new Yt.Buf32(AR),t.sane=1,t.back=-1,Fa)}function T3(e){var t;return!e||!e.state?un:(t=e.state,t.wsize=0,t.whave=0,t.wnext=0,I3(e))}function M3(e,t){var n,r;return!e||!e.state||(r=e.state,t<0?(n=0,t=-t):(n=(t>>4)+1,t<48&&(t&=15)),t&&(t<8||t>15))?un:(r.window!==null&&r.wbits!==t&&(r.window=null),r.wrap=n,r.wbits=t,T3(e))}function N3(e,t){var n,r;return e?(r=new CR,e.state=r,r.window=null,n=M3(e,t),n!==Fa&&(e.state=null),n):un}function _R(e){return N3(e,SR)}var F3=!0,Ig,Tg;function kR(e){if(F3){var t;for(Ig=new Yt.Buf32(512),Tg=new Yt.Buf32(32),t=0;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(ol(JA,e.lens,0,288,Ig,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;ol(e3,e.lens,0,32,Tg,0,e.work,{bits:5}),F3=!1}e.lencode=Ig,e.lenbits=9,e.distcode=Tg,e.distbits=5}function B3(e,t,n,r){var i,a=e.state;return a.window===null&&(a.wsize=1<<a.wbits,a.wnext=0,a.whave=0,a.window=new Yt.Buf8(a.wsize)),r>=a.wsize?(Yt.arraySet(a.window,t,n-a.wsize,a.wsize,0),a.wnext=0,a.whave=a.wsize):(i=a.wsize-a.wnext,i>r&&(i=r),Yt.arraySet(a.window,t,n-r,i,a.wnext),r-=i,r?(Yt.arraySet(a.window,t,n-r,r,0),a.wnext=r,a.whave=a.wsize):(a.wnext+=i,a.wnext===a.wsize&&(a.wnext=0),a.whave<a.wsize&&(a.whave+=i))),0}function DR(e,t){var n,r,i,a,o,s,l,c,u,f,h,d,p,g,y=0,v,S,k,C,E,w,A,T,D=new Yt.Buf8(4),M,F,U=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!e||!e.state||!e.output||!e.input&&e.avail_in!==0)return un;n=e.state,n.mode===Tr&&(n.mode=_g),o=e.next_out,i=e.output,l=e.avail_out,a=e.next_in,r=e.input,s=e.avail_in,c=n.hold,u=n.bits,f=s,h=l,T=Fa;e:for(;;)switch(n.mode){case a3:if(n.wrap===0){n.mode=_g;break}for(;u<16;){if(s===0)break e;s--,c+=r[a++]<<u,u+=8}if(n.wrap&2&&c===35615){n.check=0,D[0]=c&255,D[1]=c>>>8&255,n.check=nr(n.check,D,2,0),c=0,u=0,n.mode=o3;break}if(n.flags=0,n.head&&(n.head.done=!1),!(n.wrap&1)||(((c&255)<<8)+(c>>8))%31){e.msg="incorrect header check",n.mode=je;break}if((c&15)!==i3){e.msg="unknown compression method",n.mode=je;break}if(c>>>=4,u-=4,A=(c&15)+8,n.wbits===0)n.wbits=A;else if(A>n.wbits){e.msg="invalid window size",n.mode=je;break}n.dmax=1<<A,e.adler=n.check=1,n.mode=c&512?p3:Tr,c=0,u=0;break;case o3:for(;u<16;){if(s===0)break e;s--,c+=r[a++]<<u,u+=8}if(n.flags=c,(n.flags&255)!==i3){e.msg="unknown compression method",n.mode=je;break}if(n.flags&57344){e.msg="unknown header flags set",n.mode=je;break}n.head&&(n.head.text=c>>8&1),n.flags&512&&(D[0]=c&255,D[1]=c>>>8&255,n.check=nr(n.check,D,2,0)),c=0,u=0,n.mode=s3;case s3:for(;u<32;){if(s===0)break e;s--,c+=r[a++]<<u,u+=8}n.head&&(n.head.time=c),n.flags&512&&(D[0]=c&255,D[1]=c>>>8&255,D[2]=c>>>16&255,D[3]=c>>>24&255,n.check=nr(n.check,D,4,0)),c=0,u=0,n.mode=c3;case c3:for(;u<16;){if(s===0)break e;s--,c+=r[a++]<<u,u+=8}n.head&&(n.head.xflags=c&255,n.head.os=c>>8),n.flags&512&&(D[0]=c&255,D[1]=c>>>8&255,n.check=nr(n.check,D,2,0)),c=0,u=0,n.mode=l3;case l3:if(n.flags&1024){for(;u<16;){if(s===0)break e;s--,c+=r[a++]<<u,u+=8}n.length=c,n.head&&(n.head.extra_len=c),n.flags&512&&(D[0]=c&255,D[1]=c>>>8&255,n.check=nr(n.check,D,2,0)),c=0,u=0}else n.head&&(n.head.extra=null);n.mode=u3;case u3:if(n.flags&1024&&(d=n.length,d>s&&(d=s),d&&(n.head&&(A=n.head.extra_len-n.length,n.head.extra||(n.head.extra=new Array(n.head.extra_len)),Yt.arraySet(n.head.extra,r,a,d,A)),n.flags&512&&(n.check=nr(n.check,r,d,a)),s-=d,a+=d,n.length-=d),n.length))break e;n.length=0,n.mode=f3;case f3:if(n.flags&2048){if(s===0)break e;d=0;do A=r[a+d++],n.head&&A&&n.length<65536&&(n.head.name+=String.fromCharCode(A));while(A&&d<s);if(n.flags&512&&(n.check=nr(n.check,r,d,a)),s-=d,a+=d,A)break e}else n.head&&(n.head.name=null);n.length=0,n.mode=h3;case h3:if(n.flags&4096){if(s===0)break e;d=0;do A=r[a+d++],n.head&&A&&n.length<65536&&(n.head.comment+=String.fromCharCode(A));while(A&&d<s);if(n.flags&512&&(n.check=nr(n.check,r,d,a)),s-=d,a+=d,A)break e}else n.head&&(n.head.comment=null);n.mode=d3;case d3:if(n.flags&512){for(;u<16;){if(s===0)break e;s--,c+=r[a++]<<u,u+=8}if(c!==(n.check&65535)){e.msg="header crc mismatch",n.mode=je;break}c=0,u=0}n.head&&(n.head.hcrc=n.flags>>9&1,n.head.done=!0),e.adler=n.check=0,n.mode=Tr;break;case p3:for(;u<32;){if(s===0)break e;s--,c+=r[a++]<<u,u+=8}e.adler=n.check=D3(c),c=0,u=0,n.mode=Vf;case Vf:if(n.havedict===0)return e.next_out=o,e.avail_out=l,e.next_in=a,e.avail_in=s,n.hold=c,n.bits=u,yR;e.adler=n.check=1,n.mode=Tr;case Tr:if(t===mR||t===$f)break e;case _g:if(n.last){c>>>=u&7,u-=u&7,n.mode=Dg;break}for(;u<3;){if(s===0)break e;s--,c+=r[a++]<<u,u+=8}switch(n.last=c&1,c>>>=1,u-=1,c&3){case 0:n.mode=g3;break;case 1:if(kR(n),n.mode=Yf,t===$f){c>>>=2,u-=2;break e}break;case 2:n.mode=b3;break;case 3:e.msg="invalid block type",n.mode=je}c>>>=2,u-=2;break;case g3:for(c>>>=u&7,u-=u&7;u<32;){if(s===0)break e;s--,c+=r[a++]<<u,u+=8}if((c&65535)!==(c>>>16^65535)){e.msg="invalid stored block lengths",n.mode=je;break}if(n.length=c&65535,c=0,u=0,n.mode=kg,t===$f)break e;case kg:n.mode=m3;case m3:if(d=n.length,d){if(d>s&&(d=s),d>l&&(d=l),d===0)break e;Yt.arraySet(i,r,a,d,o),s-=d,a+=d,l-=d,o+=d,n.length-=d;break}n.mode=Tr;break;case b3:for(;u<14;){if(s===0)break e;s--,c+=r[a++]<<u,u+=8}if(n.nlen=(c&31)+257,c>>>=5,u-=5,n.ndist=(c&31)+1,c>>>=5,u-=5,n.ncode=(c&15)+4,c>>>=4,u-=4,n.nlen>286||n.ndist>30){e.msg="too many length or distance symbols",n.mode=je;break}n.have=0,n.mode=y3;case y3:for(;n.have<n.ncode;){for(;u<3;){if(s===0)break e;s--,c+=r[a++]<<u,u+=8}n.lens[U[n.have++]]=c&7,c>>>=3,u-=3}for(;n.have<19;)n.lens[U[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,M={bits:n.lenbits},T=ol(gR,n.lens,0,19,n.lencode,0,n.work,M),n.lenbits=M.bits,T){e.msg="invalid code lengths set",n.mode=je;break}n.have=0,n.mode=v3;case v3:for(;n.have<n.nlen+n.ndist;){for(;y=n.lencode[c&(1<<n.lenbits)-1],v=y>>>24,S=y>>>16&255,k=y&65535,!(v<=u);){if(s===0)break e;s--,c+=r[a++]<<u,u+=8}if(k<16)c>>>=v,u-=v,n.lens[n.have++]=k;else{if(k===16){for(F=v+2;u<F;){if(s===0)break e;s--,c+=r[a++]<<u,u+=8}if(c>>>=v,u-=v,n.have===0){e.msg="invalid bit length repeat",n.mode=je;break}A=n.lens[n.have-1],d=3+(c&3),c>>>=2,u-=2}else if(k===17){for(F=v+3;u<F;){if(s===0)break e;s--,c+=r[a++]<<u,u+=8}c>>>=v,u-=v,A=0,d=3+(c&7),c>>>=3,u-=3}else{for(F=v+7;u<F;){if(s===0)break e;s--,c+=r[a++]<<u,u+=8}c>>>=v,u-=v,A=0,d=11+(c&127),c>>>=7,u-=7}if(n.have+d>n.nlen+n.ndist){e.msg="invalid bit length repeat",n.mode=je;break}for(;d--;)n.lens[n.have++]=A}}if(n.mode===je)break;if(n.lens[256]===0){e.msg="invalid code -- missing end-of-block",n.mode=je;break}if(n.lenbits=9,M={bits:n.lenbits},T=ol(JA,n.lens,0,n.nlen,n.lencode,0,n.work,M),n.lenbits=M.bits,T){e.msg="invalid literal/lengths set",n.mode=je;break}if(n.distbits=6,n.distcode=n.distdyn,M={bits:n.distbits},T=ol(e3,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,M),n.distbits=M.bits,T){e.msg="invalid distances set",n.mode=je;break}if(n.mode=Yf,t===$f)break e;case Yf:n.mode=Qf;case Qf:if(s>=6&&l>=258){e.next_out=o,e.avail_out=l,e.next_in=a,e.avail_in=s,n.hold=c,n.bits=u,pR(e,h),o=e.next_out,i=e.output,l=e.avail_out,a=e.next_in,r=e.input,s=e.avail_in,c=n.hold,u=n.bits,n.mode===Tr&&(n.back=-1);break}for(n.back=0;y=n.lencode[c&(1<<n.lenbits)-1],v=y>>>24,S=y>>>16&255,k=y&65535,!(v<=u);){if(s===0)break e;s--,c+=r[a++]<<u,u+=8}if(S&&!(S&240)){for(C=v,E=S,w=k;y=n.lencode[w+((c&(1<<C+E)-1)>>C)],v=y>>>24,S=y>>>16&255,k=y&65535,!(C+v<=u);){if(s===0)break e;s--,c+=r[a++]<<u,u+=8}c>>>=C,u-=C,n.back+=C}if(c>>>=v,u-=v,n.back+=v,n.length=k,S===0){n.mode=S3;break}if(S&32){n.back=-1,n.mode=Tr;break}if(S&64){e.msg="invalid literal/length code",n.mode=je;break}n.extra=S&15,n.mode=w3;case w3:if(n.extra){for(F=n.extra;u<F;){if(s===0)break e;s--,c+=r[a++]<<u,u+=8}n.length+=c&(1<<n.extra)-1,c>>>=n.extra,u-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=x3;case x3:for(;y=n.distcode[c&(1<<n.distbits)-1],v=y>>>24,S=y>>>16&255,k=y&65535,!(v<=u);){if(s===0)break e;s--,c+=r[a++]<<u,u+=8}if(!(S&240)){for(C=v,E=S,w=k;y=n.distcode[w+((c&(1<<C+E)-1)>>C)],v=y>>>24,S=y>>>16&255,k=y&65535,!(C+v<=u);){if(s===0)break e;s--,c+=r[a++]<<u,u+=8}c>>>=C,u-=C,n.back+=C}if(c>>>=v,u-=v,n.back+=v,S&64){e.msg="invalid distance code",n.mode=je;break}n.offset=k,n.extra=S&15,n.mode=A3;case A3:if(n.extra){for(F=n.extra;u<F;){if(s===0)break e;s--,c+=r[a++]<<u,u+=8}n.offset+=c&(1<<n.extra)-1,c>>>=n.extra,u-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){e.msg="invalid distance too far back",n.mode=je;break}n.mode=E3;case E3:if(l===0)break e;if(d=h-l,n.offset>d){if(d=n.offset-d,d>n.whave&&n.sane){e.msg="invalid distance too far back",n.mode=je;break}d>n.wnext?(d-=n.wnext,p=n.wsize-d):p=n.wnext-d,d>n.length&&(d=n.length),g=n.window}else g=i,p=o-n.offset,d=n.length;d>l&&(d=l),l-=d,n.length-=d;do i[o++]=g[p++];while(--d);n.length===0&&(n.mode=Qf);break;case S3:if(l===0)break e;i[o++]=n.length,l--,n.mode=Qf;break;case Dg:if(n.wrap){for(;u<32;){if(s===0)break e;s--,c|=r[a++]<<u,u+=8}if(h-=l,e.total_out+=h,n.total+=h,h&&(e.adler=n.check=n.flags?nr(n.check,i,h,o-h):Cg(n.check,i,h,o-h)),h=l,(n.flags?c:D3(c))!==n.check){e.msg="incorrect data check",n.mode=je;break}c=0,u=0}n.mode=C3;case C3:if(n.wrap&&n.flags){for(;u<32;){if(s===0)break e;s--,c+=r[a++]<<u,u+=8}if(c!==(n.total&4294967295)){e.msg="incorrect length check",n.mode=je;break}c=0,u=0}n.mode=_3;case _3:T=bR;break e;case je:T=n3;break e;case k3:return r3;case wR:default:return un}return e.next_out=o,e.avail_out=l,e.next_in=a,e.avail_in=s,n.hold=c,n.bits=u,(n.wsize||h!==e.avail_out&&n.mode<je&&(n.mode<Dg||t!==t3))&&B3(e,e.output,e.next_out,h-e.avail_out),f-=e.avail_in,h-=e.avail_out,e.total_in+=f,e.total_out+=h,n.total+=h,n.wrap&&h&&(e.adler=n.check=n.flags?nr(n.check,i,h,e.next_out-h):Cg(n.check,i,h,e.next_out-h)),e.data_type=n.bits+(n.last?64:0)+(n.mode===Tr?128:0)+(n.mode===Yf||n.mode===kg?256:0),(f===0&&h===0||t===t3)&&T===Fa&&(T=vR),T}function IR(e){if(!e||!e.state)return un;var t=e.state;return t.window&&(t.window=null),e.state=null,Fa}function TR(e,t){var n;return!e||!e.state||(n=e.state,!(n.wrap&2))?un:(n.head=t,t.done=!1,Fa)}function MR(e,t){var n=t.length,r,i,a;return!e||!e.state||(r=e.state,r.wrap!==0&&r.mode!==Vf)?un:r.mode===Vf&&(i=1,i=Cg(i,t,n,0),i!==r.check)?n3:(a=B3(e,t,n,n),a?(r.mode=k3,r3):(r.havedict=1,Fa))}Fn.inflateReset=T3,Fn.inflateReset2=M3,Fn.inflateResetKeep=I3,Fn.inflateInit=_R,Fn.inflateInit2=N3,Fn.inflate=DR,Fn.inflateEnd=IR,Fn.inflateGetHeader=TR,Fn.inflateSetDictionary=MR,Fn.inflateInfo="pako inflate (from Nodeca project)";var L3={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};function NR(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}var FR=NR,qo=Fn,sl=Dr,Zf=Ma,et=L3,Mg=gg,BR=$A,LR=FR,O3=Object.prototype.toString;function Ba(e){if(!(this instanceof Ba))return new Ba(e);this.options=sl.assign({chunkSize:16384,windowBits:0,to:""},e||{});var t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,t.windowBits===0&&(t.windowBits=-15)),t.windowBits>=0&&t.windowBits<16&&!(e&&e.windowBits)&&(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&(t.windowBits&15||(t.windowBits|=15)),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new BR,this.strm.avail_out=0;var n=qo.inflateInit2(this.strm,t.windowBits);if(n!==et.Z_OK)throw new Error(Mg[n]);if(this.header=new LR,qo.inflateGetHeader(this.strm,this.header),t.dictionary&&(typeof t.dictionary=="string"?t.dictionary=Zf.string2buf(t.dictionary):O3.call(t.dictionary)==="[object ArrayBuffer]"&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(n=qo.inflateSetDictionary(this.strm,t.dictionary),n!==et.Z_OK)))throw new Error(Mg[n])}Ba.prototype.push=function(e,t){var n=this.strm,r=this.options.chunkSize,i=this.options.dictionary,a,o,s,l,c,u=!1;if(this.ended)return!1;o=t===~~t?t:t===!0?et.Z_FINISH:et.Z_NO_FLUSH,typeof e=="string"?n.input=Zf.binstring2buf(e):O3.call(e)==="[object ArrayBuffer]"?n.input=new Uint8Array(e):n.input=e,n.next_in=0,n.avail_in=n.input.length;do{if(n.avail_out===0&&(n.output=new sl.Buf8(r),n.next_out=0,n.avail_out=r),a=qo.inflate(n,et.Z_NO_FLUSH),a===et.Z_NEED_DICT&&i&&(a=qo.inflateSetDictionary(this.strm,i)),a===et.Z_BUF_ERROR&&u===!0&&(a=et.Z_OK,u=!1),a!==et.Z_STREAM_END&&a!==et.Z_OK)return this.onEnd(a),this.ended=!0,!1;n.next_out&&(n.avail_out===0||a===et.Z_STREAM_END||n.avail_in===0&&(o===et.Z_FINISH||o===et.Z_SYNC_FLUSH))&&(this.options.to==="string"?(s=Zf.utf8border(n.output,n.next_out),l=n.next_out-s,c=Zf.buf2string(n.output,s),n.next_out=l,n.avail_out=r-l,l&&sl.arraySet(n.output,n.output,s,l,0),this.onData(c)):this.onData(sl.shrinkBuf(n.output,n.next_out))),n.avail_in===0&&n.avail_out===0&&(u=!0)}while((n.avail_in>0||n.avail_out===0)&&a!==et.Z_STREAM_END);return a===et.Z_STREAM_END&&(o=et.Z_FINISH),o===et.Z_FINISH?(a=qo.inflateEnd(this.strm),this.onEnd(a),this.ended=!0,a===et.Z_OK):(o===et.Z_SYNC_FLUSH&&(this.onEnd(et.Z_OK),n.avail_out=0),!0)},Ba.prototype.onData=function(e){this.chunks.push(e)},Ba.prototype.onEnd=function(e){e===et.Z_OK&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=sl.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function Ng(e,t){var n=new Ba(t);if(n.push(e,!0),n.err)throw n.msg||Mg[n.err];return n.result}function OR(e,t){return t=t||{},t.raw=!0,Ng(e,t)}al.Inflate=Ba,al.inflate=Ng,al.inflateRaw=OR,al.ungzip=Ng;var RR=Dr.assign,zR=Yc,PR=al,UR=L3,R3={};RR(R3,zR,PR,UR);var qf=R3;async function Fg(e){try{let t,n=0,r=0;const i=[];let a=0,o;do{const l=e.subarray(n);if(o=new qf.Inflate,{strm:t}=o,o.push(l,qf.Z_SYNC_FLUSH),o.err)throw new Error(o.msg);n+=t.next_in,i[r]=o.result,a+=i[r].length,r+=1}while(t.avail_in);const s=new Uint8Array(a);for(let l=0,c=0;l<i.length;l++)s.set(i[l],c),c+=i[l].length;return Buffer.from(s)}catch(t){throw`${t}`.match(/incorrect header check/)?new Error("problem decompressing block: incorrect gzip header check"):t}}async function jR(e,t){try{let n;const{minv:r,maxv:i}=t;let a=r.blockPosition,o=r.dataPosition;const s=[],l=[],c=[];let u=0,f=0;do{const p=e.subarray(a-r.blockPosition),g=new qf.Inflate;if({strm:n}=g,g.push(p,qf.Z_SYNC_FLUSH),g.err)throw new Error(g.msg);const y=g.result;s.push(y);let v=y.length;l.push(a),c.push(o),s.length===1&&r.dataPosition&&(s[0]=s[0].subarray(r.dataPosition),v=s[0].length);const S=a;if(a+=n.next_in,o+=v,S>=i.blockPosition){s[f]=s[f].subarray(0,i.blockPosition===r.blockPosition?i.dataPosition-r.dataPosition+1:i.dataPosition+1),l.push(a),c.push(o),u+=s[f].length;break}u+=s[f].length,f++}while(n.avail_in);const h=new Uint8Array(u);for(let p=0,g=0;p<s.length;p++)h.set(s[p],g),g+=s[p].length;return{buffer:Buffer.from(h),cpositions:l,dpositions:c}}catch(n){throw`${n}`.match(/incorrect header check/)?new Error("problem decompressing block: incorrect gzip header check"):n}}/**
1365
+ * @license
1366
+ * Copyright 2009 The Closure Library Authors
1367
+ * Copyright 2020 Daniel Wirtz / The long.js Authors.
1368
+ *
1369
+ * Licensed under the Apache License, Version 2.0 (the "License");
1370
+ * you may not use this file except in compliance with the License.
1371
+ * You may obtain a copy of the License at
1372
+ *
1373
+ * http://www.apache.org/licenses/LICENSE-2.0
1374
+ *
1375
+ * Unless required by applicable law or agreed to in writing, software
1376
+ * distributed under the License is distributed on an "AS IS" BASIS,
1377
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1378
+ * See the License for the specific language governing permissions and
1379
+ * limitations under the License.
1380
+ *
1381
+ * SPDX-License-Identifier: Apache-2.0
1382
+ */var fn=null;try{fn=new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([0,97,115,109,1,0,0,0,1,13,2,96,0,1,127,96,4,127,127,127,127,1,127,3,7,6,0,1,1,1,1,1,6,6,1,127,1,65,0,11,7,50,6,3,109,117,108,0,1,5,100,105,118,95,115,0,2,5,100,105,118,95,117,0,3,5,114,101,109,95,115,0,4,5,114,101,109,95,117,0,5,8,103,101,116,95,104,105,103,104,0,0,10,191,1,6,4,0,35,0,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,126,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,127,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,128,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,129,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,130,34,4,66,32,135,167,36,0,32,4,167,11])),{}).exports}catch{}function Le(e,t,n){this.low=e|0,this.high=t|0,this.unsigned=!!n}Le.prototype.__isLong__,Object.defineProperty(Le.prototype,"__isLong__",{value:!0});function Et(e){return(e&&e.__isLong__)===!0}function z3(e){var t=Math.clz32(e&-e);return e?31-t:t}Le.isLong=Et;var P3={},U3={};function La(e,t){var n,r,i;return t?(e>>>=0,(i=0<=e&&e<256)&&(r=U3[e],r)?r:(n=ve(e,0,!0),i&&(U3[e]=n),n)):(e|=0,(i=-128<=e&&e<128)&&(r=P3[e],r)?r:(n=ve(e,e<0?-1:0,!1),i&&(P3[e]=n),n))}Le.fromInt=La;function hn(e,t){if(isNaN(e))return t?Mr:Ln;if(t){if(e<0)return Mr;if(e>=H3)return Q3}else{if(e<=-G3)return zt;if(e+1>=G3)return Y3}return e<0?hn(-e,t).neg():ve(e%Wo|0,e/Wo|0,t)}Le.fromNumber=hn;function ve(e,t,n){return new Le(e,t,n)}Le.fromBits=ve;var Wf=Math.pow;function Bg(e,t,n){if(e.length===0)throw Error("empty string");if(typeof t=="number"?(n=t,t=!1):t=!!t,e==="NaN"||e==="Infinity"||e==="+Infinity"||e==="-Infinity")return t?Mr:Ln;if(n=n||10,n<2||36<n)throw RangeError("radix");var r;if((r=e.indexOf("-"))>0)throw Error("interior hyphen");if(r===0)return Bg(e.substring(1),t,n).neg();for(var i=hn(Wf(n,8)),a=Ln,o=0;o<e.length;o+=8){var s=Math.min(8,e.length-o),l=parseInt(e.substring(o,o+s),n);if(s<8){var c=hn(Wf(n,s));a=a.mul(c).add(hn(l))}else a=a.mul(i),a=a.add(hn(l))}return a.unsigned=t,a}Le.fromString=Bg;function Bn(e,t){return typeof e=="number"?hn(e,t):typeof e=="string"?Bg(e,t):ve(e.low,e.high,typeof t=="boolean"?t:e.unsigned)}Le.fromValue=Bn;var j3=1<<16,HR=1<<24,Wo=j3*j3,H3=Wo*Wo,G3=H3/2,$3=La(HR),Ln=La(0);Le.ZERO=Ln;var Mr=La(0,!0);Le.UZERO=Mr;var Xo=La(1);Le.ONE=Xo;var V3=La(1,!0);Le.UONE=V3;var Lg=La(-1);Le.NEG_ONE=Lg;var Y3=ve(-1,2147483647,!1);Le.MAX_VALUE=Y3;var Q3=ve(-1,-1,!0);Le.MAX_UNSIGNED_VALUE=Q3;var zt=ve(0,-2147483648,!1);Le.MIN_VALUE=zt;var H=Le.prototype;H.toInt=function(){return this.unsigned?this.low>>>0:this.low},H.toNumber=function(){return this.unsigned?(this.high>>>0)*Wo+(this.low>>>0):this.high*Wo+(this.low>>>0)},H.toString=function(t){if(t=t||10,t<2||36<t)throw RangeError("radix");if(this.isZero())return"0";if(this.isNegative())if(this.eq(zt)){var n=hn(t),r=this.div(n),i=r.mul(n).sub(this);return r.toString(t)+i.toInt().toString(t)}else return"-"+this.neg().toString(t);for(var a=hn(Wf(t,6),this.unsigned),o=this,s="";;){var l=o.div(a),c=o.sub(l.mul(a)).toInt()>>>0,u=c.toString(t);if(o=l,o.isZero())return u+s;for(;u.length<6;)u="0"+u;s=""+u+s}},H.getHighBits=function(){return this.high},H.getHighBitsUnsigned=function(){return this.high>>>0},H.getLowBits=function(){return this.low},H.getLowBitsUnsigned=function(){return this.low>>>0},H.getNumBitsAbs=function(){if(this.isNegative())return this.eq(zt)?64:this.neg().getNumBitsAbs();for(var t=this.high!=0?this.high:this.low,n=31;n>0&&!(t&1<<n);n--);return this.high!=0?n+33:n+1},H.isZero=function(){return this.high===0&&this.low===0},H.eqz=H.isZero,H.isNegative=function(){return!this.unsigned&&this.high<0},H.isPositive=function(){return this.unsigned||this.high>=0},H.isOdd=function(){return(this.low&1)===1},H.isEven=function(){return(this.low&1)===0},H.equals=function(t){return Et(t)||(t=Bn(t)),this.unsigned!==t.unsigned&&this.high>>>31===1&&t.high>>>31===1?!1:this.high===t.high&&this.low===t.low},H.eq=H.equals,H.notEquals=function(t){return!this.eq(t)},H.neq=H.notEquals,H.ne=H.notEquals,H.lessThan=function(t){return this.comp(t)<0},H.lt=H.lessThan,H.lessThanOrEqual=function(t){return this.comp(t)<=0},H.lte=H.lessThanOrEqual,H.le=H.lessThanOrEqual,H.greaterThan=function(t){return this.comp(t)>0},H.gt=H.greaterThan,H.greaterThanOrEqual=function(t){return this.comp(t)>=0},H.gte=H.greaterThanOrEqual,H.ge=H.greaterThanOrEqual,H.compare=function(t){if(Et(t)||(t=Bn(t)),this.eq(t))return 0;var n=this.isNegative(),r=t.isNegative();return n&&!r?-1:!n&&r?1:this.unsigned?t.high>>>0>this.high>>>0||t.high===this.high&&t.low>>>0>this.low>>>0?-1:1:this.sub(t).isNegative()?-1:1},H.comp=H.compare,H.negate=function(){return!this.unsigned&&this.eq(zt)?zt:this.not().add(Xo)},H.neg=H.negate,H.add=function(t){Et(t)||(t=Bn(t));var n=this.high>>>16,r=this.high&65535,i=this.low>>>16,a=this.low&65535,o=t.high>>>16,s=t.high&65535,l=t.low>>>16,c=t.low&65535,u=0,f=0,h=0,d=0;return d+=a+c,h+=d>>>16,d&=65535,h+=i+l,f+=h>>>16,h&=65535,f+=r+s,u+=f>>>16,f&=65535,u+=n+o,u&=65535,ve(h<<16|d,u<<16|f,this.unsigned)},H.subtract=function(t){return Et(t)||(t=Bn(t)),this.add(t.neg())},H.sub=H.subtract,H.multiply=function(t){if(this.isZero())return this;if(Et(t)||(t=Bn(t)),fn){var n=fn.mul(this.low,this.high,t.low,t.high);return ve(n,fn.get_high(),this.unsigned)}if(t.isZero())return this.unsigned?Mr:Ln;if(this.eq(zt))return t.isOdd()?zt:Ln;if(t.eq(zt))return this.isOdd()?zt:Ln;if(this.isNegative())return t.isNegative()?this.neg().mul(t.neg()):this.neg().mul(t).neg();if(t.isNegative())return this.mul(t.neg()).neg();if(this.lt($3)&&t.lt($3))return hn(this.toNumber()*t.toNumber(),this.unsigned);var r=this.high>>>16,i=this.high&65535,a=this.low>>>16,o=this.low&65535,s=t.high>>>16,l=t.high&65535,c=t.low>>>16,u=t.low&65535,f=0,h=0,d=0,p=0;return p+=o*u,d+=p>>>16,p&=65535,d+=a*u,h+=d>>>16,d&=65535,d+=o*c,h+=d>>>16,d&=65535,h+=i*u,f+=h>>>16,h&=65535,h+=a*c,f+=h>>>16,h&=65535,h+=o*l,f+=h>>>16,h&=65535,f+=r*u+i*c+a*l+o*s,f&=65535,ve(d<<16|p,f<<16|h,this.unsigned)},H.mul=H.multiply,H.divide=function(t){if(Et(t)||(t=Bn(t)),t.isZero())throw Error("division by zero");if(fn){if(!this.unsigned&&this.high===-2147483648&&t.low===-1&&t.high===-1)return this;var n=(this.unsigned?fn.div_u:fn.div_s)(this.low,this.high,t.low,t.high);return ve(n,fn.get_high(),this.unsigned)}if(this.isZero())return this.unsigned?Mr:Ln;var r,i,a;if(this.unsigned){if(t.unsigned||(t=t.toUnsigned()),t.gt(this))return Mr;if(t.gt(this.shru(1)))return V3;a=Mr}else{if(this.eq(zt)){if(t.eq(Xo)||t.eq(Lg))return zt;if(t.eq(zt))return Xo;var o=this.shr(1);return r=o.div(t).shl(1),r.eq(Ln)?t.isNegative()?Xo:Lg:(i=this.sub(t.mul(r)),a=r.add(i.div(t)),a)}else if(t.eq(zt))return this.unsigned?Mr:Ln;if(this.isNegative())return t.isNegative()?this.neg().div(t.neg()):this.neg().div(t).neg();if(t.isNegative())return this.div(t.neg()).neg();a=Ln}for(i=this;i.gte(t);){r=Math.max(1,Math.floor(i.toNumber()/t.toNumber()));for(var s=Math.ceil(Math.log(r)/Math.LN2),l=s<=48?1:Wf(2,s-48),c=hn(r),u=c.mul(t);u.isNegative()||u.gt(i);)r-=l,c=hn(r,this.unsigned),u=c.mul(t);c.isZero()&&(c=Xo),a=a.add(c),i=i.sub(u)}return a},H.div=H.divide,H.modulo=function(t){if(Et(t)||(t=Bn(t)),fn){var n=(this.unsigned?fn.rem_u:fn.rem_s)(this.low,this.high,t.low,t.high);return ve(n,fn.get_high(),this.unsigned)}return this.sub(this.div(t).mul(t))},H.mod=H.modulo,H.rem=H.modulo,H.not=function(){return ve(~this.low,~this.high,this.unsigned)},H.countLeadingZeros=function(){return this.high?Math.clz32(this.high):Math.clz32(this.low)+32},H.clz=H.countLeadingZeros,H.countTrailingZeros=function(){return this.low?z3(this.low):z3(this.high)+32},H.ctz=H.countTrailingZeros,H.and=function(t){return Et(t)||(t=Bn(t)),ve(this.low&t.low,this.high&t.high,this.unsigned)},H.or=function(t){return Et(t)||(t=Bn(t)),ve(this.low|t.low,this.high|t.high,this.unsigned)},H.xor=function(t){return Et(t)||(t=Bn(t)),ve(this.low^t.low,this.high^t.high,this.unsigned)},H.shiftLeft=function(t){return Et(t)&&(t=t.toInt()),(t&=63)===0?this:t<32?ve(this.low<<t,this.high<<t|this.low>>>32-t,this.unsigned):ve(0,this.low<<t-32,this.unsigned)},H.shl=H.shiftLeft,H.shiftRight=function(t){return Et(t)&&(t=t.toInt()),(t&=63)===0?this:t<32?ve(this.low>>>t|this.high<<32-t,this.high>>t,this.unsigned):ve(this.high>>t-32,this.high>=0?0:-1,this.unsigned)},H.shr=H.shiftRight,H.shiftRightUnsigned=function(t){return Et(t)&&(t=t.toInt()),(t&=63)===0?this:t<32?ve(this.low>>>t|this.high<<32-t,this.high>>>t,this.unsigned):t===32?ve(this.high,0,this.unsigned):ve(this.high>>>t-32,0,this.unsigned)},H.shru=H.shiftRightUnsigned,H.shr_u=H.shiftRightUnsigned,H.rotateLeft=function(t){var n;return Et(t)&&(t=t.toInt()),(t&=63)===0?this:t===32?ve(this.high,this.low,this.unsigned):t<32?(n=32-t,ve(this.low<<t|this.high>>>n,this.high<<t|this.low>>>n,this.unsigned)):(t-=32,n=32-t,ve(this.high<<t|this.low>>>n,this.low<<t|this.high>>>n,this.unsigned))},H.rotl=H.rotateLeft,H.rotateRight=function(t){var n;return Et(t)&&(t=t.toInt()),(t&=63)===0?this:t===32?ve(this.high,this.low,this.unsigned):t<32?(n=32-t,ve(this.high<<n|this.low>>>t,this.low<<n|this.high>>>t,this.unsigned)):(t-=32,n=32-t,ve(this.low<<n|this.high>>>t,this.high<<n|this.low>>>t,this.unsigned))},H.rotr=H.rotateRight,H.toSigned=function(){return this.unsigned?ve(this.low,this.high,!1):this},H.toUnsigned=function(){return this.unsigned?this:ve(this.low,this.high,!0)},H.toBytes=function(t){return t?this.toBytesLE():this.toBytesBE()},H.toBytesLE=function(){var t=this.high,n=this.low;return[n&255,n>>>8&255,n>>>16&255,n>>>24,t&255,t>>>8&255,t>>>16&255,t>>>24]},H.toBytesBE=function(){var t=this.high,n=this.low;return[t>>>24,t>>>16&255,t>>>8&255,t&255,n>>>24,n>>>16&255,n>>>8&255,n&255]},Le.fromBytes=function(t,n,r){return r?Le.fromBytesLE(t,n):Le.fromBytesBE(t,n)},Le.fromBytesLE=function(t,n){return new Le(t[0]|t[1]<<8|t[2]<<16|t[3]<<24,t[4]|t[5]<<8|t[6]<<16|t[7]<<24,n)},Le.fromBytesBE=function(t,n){return new Le(t[4]<<24|t[5]<<16|t[6]<<8|t[7],t[0]<<24|t[1]<<16|t[2]<<8|t[3],n)};function Z3(e,t){return e.offset+e.lineBytes*Math.floor(t/e.lineLength)+t%e.lineLength}async function GR(e,t){const n=await e.readFile(t);if(!(n&&n.length))throw new Error("No data read from FASTA index (FAI) file");let r=0,i;const a=n.toString("utf8").split(/\r?\n/).filter(o=>/\S/.test(o)).map(o=>o.split(" ")).filter(o=>o[0]!=="").map(o=>((!i||i.name!==o[0])&&(i={name:o[0],id:r},r+=1),{id:i.id,name:o[0],length:+o[1],start:0,end:+o[1],offset:+o[2],lineLength:+o[3],lineBytes:+o[4]}));return{name:Object.fromEntries(a.map(o=>[o.name,o])),id:Object.fromEntries(a.map(o=>[o.id,o]))}}class $R{constructor({fasta:t,fai:n,path:r,faiPath:i,chunkSizeLimit:a=1e6}){if(t)this.fasta=t;else if(r)this.fasta=new gi(r);else throw new Error("Need to pass filehandle for fasta or path to localfile");if(n)this.fai=n;else if(i)this.fai=new gi(i);else if(r)this.fai=new gi(`${r}.fai`);else throw new Error("Need to pass filehandle for or path to localfile");this.chunkSizeLimit=a}async _getIndexes(t){return this.indexes||(this.indexes=GR(this.fai,t)),this.indexes}async getSequenceNames(t){return Object.keys((await this._getIndexes(t)).name)}async getSequenceSizes(t){const n={},r=await this._getIndexes(t),i=Object.values(r.id);for(let a=0;a<i.length;a+=1)n[i[a].name]=i[a].length;return n}async getSequenceSize(t,n){var r;return(r=(await this._getIndexes(n)).name[t])===null||r===void 0?void 0:r.length}async hasReferenceSequence(t,n){return!!(await this._getIndexes(n)).name[t]}async getResiduesById(t,n,r,i){const a=(await this._getIndexes(i)).id[t];if(a)return this._fetchFromIndexEntry(a,n,r,i)}async getResiduesByName(t,n,r,i){const a=(await this._getIndexes(i)).name[t];if(a)return this._fetchFromIndexEntry(a,n,r,i)}async getSequence(t,n,r,i){return this.getResiduesByName(t,n,r,i)}async _fetchFromIndexEntry(t,n=0,r,i){let a=r;if(n<0)throw new TypeError("regionStart cannot be less than 0");if((a===void 0||a>t.length)&&(a=t.length),n>=a)return"";const o=Z3(t,n),s=Z3(t,a)-o;if(s>this.chunkSizeLimit)throw new Error(`data size of ${s.toLocaleString()} bytes exceeded chunk size limit of ${this.chunkSizeLimit.toLocaleString()} bytes`);const l=Buffer.allocUnsafe(s);return await this.fasta.read(l,0,s,o,i),l.toString("utf8").replace(/\s+/g,"")}}function Xf(e){return class extends e{constructor(){super(...arguments);En(this,"lastQuantizedInterval",[0,0])}quantizeInterval(r,i){return[Math.max(Math.floor(r[0]/i-1)*i,0),Math.min(Math.ceil(r[1]/i+1)*i,this.genome.totalSize)]}checkAndUpdateLastInterval(r){return $0(this.lastQuantizedInterval,r)?!1:(this.lastQuantizedInterval=r,!0)}}}function Ko(e,t){return!t||/^(data:|([A-Za-z]+:)?\/\/)/.test(e)||e.startsWith("/")?e:(t.endsWith("/")||(t+="/"),t+e)}typeof window<"u"&&(window.Buffer=Vt.Buffer);class VR extends Xf(Po){constructor(t,n){const r={channel:"x",windowSize:7e3,...t};if(super(n,r.channel),this.params=r,!this.params.url)throw new Error("No URL provided for IndexedFastaSource");const i=a=>new kr(Ko(a,this.view.getBaseUrl()));this.fasta=new $R({fasta:i(this.params.url),fai:i(this.params.indexUrl??this.params.url+".fai")})}async onDomainChanged(t){const n=this.params.windowSize;if(t[1]-t[0]>n)return;const r=this.quantizeInterval(t,n);if(this.checkAndUpdateLastInterval(r)){const i=this.genome.continuousToDiscreteChromosomeIntervals(r),a=await Promise.all(i.map(o=>this.fasta.getSequence(o.chrom,o.startPos,o.endPos).then(s=>({chrom:o.chrom,start:o.startPos,sequence:s}))));this.publishData(a)}}}const Kf=BigInt(32);function YR(e,t,n){const r=+!!n,i=+!n;return BigInt(e.getInt32(t,n)*i+e.getInt32(t+4,n)*r)<<Kf|BigInt(e.getUint32(t,n)*r+e.getUint32(t+4,n)*i)}function QR(e,t,n){const r=e.getUint32(t,n),i=e.getUint32(t+4,n),a=+!!n,o=+!n;return BigInt(r*o+i*a)<<Kf|BigInt(r*a+i*o)}function ZR(e,t,n,r){const i=Number(n>>Kf),a=Number(n&BigInt(4294967295));r?(e.setInt32(t+4,i,r),e.setUint32(t,a,r)):(e.setInt32(t,i,r),e.setUint32(t+4,a,r))}function qR(e,t,n,r){const i=Number(n>>Kf),a=Number(n&BigInt(4294967295));r?(e.setUint32(t+4,i,r),e.setUint32(t,a,r)):(e.setUint32(t,i,r),e.setUint32(t+4,a,r))}"getBigInt64"in DataView||(DataView.prototype.getBigInt64=function(e,t){return YR(this,e,t)}),"getBigUint64"in DataView||(DataView.prototype.getBigUint64=function(e,t){return QR(this,e,t)}),"setBigInt64"in DataView||(DataView.prototype.setBigInt64=function(e,t,n){ZR(this,e,t,n)}),"setBigUint64"in DataView||(DataView.prototype.setBigUint64=function(e,t,n){qR(this,e,t,n)});class WR{constructor(t,n){this.code="",this.scopes=[["vars"]],this.bitFields=[],this.tmpVariableCount=0,this.references=new Map,this.imports=[],this.reverseImports=new Map,this.useContextVariables=!1,this.importPath=t,this.useContextVariables=n}generateVariable(t){const n=[...this.scopes[this.scopes.length-1]];return t&&n.push(t),n.join(".")}generateOption(t){switch(typeof t){case"number":return t.toString();case"string":return this.generateVariable(t);case"function":return`${this.addImport(t)}.call(${this.generateVariable()}, vars)`}}generateError(t){this.pushCode(`throw new Error(${t});`)}generateTmpVariable(){return"$tmp"+this.tmpVariableCount++}pushCode(t){this.code+=t+`
1383
+ `}pushPath(t){t&&this.scopes[this.scopes.length-1].push(t)}popPath(t){t&&this.scopes[this.scopes.length-1].pop()}pushScope(t){this.scopes.push([t])}popScope(){this.scopes.pop()}addImport(t){if(!this.importPath)return`(${t})`;let n=this.reverseImports.get(t);return n||(n=this.imports.push(t)-1,this.reverseImports.set(t,n)),`${this.importPath}[${n}]`}addReference(t){this.references.has(t)||this.references.set(t,{resolved:!1,requested:!1})}markResolved(t){const n=this.references.get(t);n&&(n.resolved=!0)}markRequested(t){t.forEach(n=>{const r=this.references.get(n);r&&(r.requested=!0)})}getUnresolvedReferences(){return Array.from(this.references).filter(([t,n])=>!n.resolved&&!n.requested).map(([t,n])=>t)}}const On=new Map,Oa="___parser_",Rn={uint8:1,uint16le:2,uint16be:2,uint32le:4,uint32be:4,int8:1,int16le:2,int16be:2,int32le:4,int32be:4,int64be:8,int64le:8,uint64be:8,uint64le:8,floatle:4,floatbe:4,doublele:8,doublebe:8},Jf={uint8:"Uint8",uint16le:"Uint16",uint16be:"Uint16",uint32le:"Uint32",uint32be:"Uint32",int8:"Int8",int16le:"Int16",int16be:"Int16",int32le:"Int32",int32be:"Int32",int64be:"BigInt64",int64le:"BigInt64",uint64be:"BigUint64",uint64le:"BigUint64",floatle:"Float32",floatbe:"Float32",doublele:"Float64",doublebe:"Float64"},eh={uint8:!1,uint16le:!0,uint16be:!1,uint32le:!0,uint32be:!1,int8:!1,int16le:!0,int16be:!1,int32le:!0,int32be:!1,int64be:!1,int64le:!0,uint64be:!1,uint64le:!0,floatle:!0,floatbe:!1,doublele:!0,doublebe:!1};class ae{constructor(){this.varName="",this.type="",this.options={},this.endian="be",this.useContextVariables=!1}static start(){return new ae}primitiveGenerateN(t,n){const r=Jf[t],i=eh[t];n.pushCode(`${n.generateVariable(this.varName)} = dataView.get${r}(offset, ${i});`),n.pushCode(`offset += ${Rn[t]};`)}primitiveN(t,n,r){return this.setNextParser(t,n,r)}useThisEndian(t){return t+this.endian.toLowerCase()}uint8(t,n={}){return this.primitiveN("uint8",t,n)}uint16(t,n={}){return this.primitiveN(this.useThisEndian("uint16"),t,n)}uint16le(t,n={}){return this.primitiveN("uint16le",t,n)}uint16be(t,n={}){return this.primitiveN("uint16be",t,n)}uint32(t,n={}){return this.primitiveN(this.useThisEndian("uint32"),t,n)}uint32le(t,n={}){return this.primitiveN("uint32le",t,n)}uint32be(t,n={}){return this.primitiveN("uint32be",t,n)}int8(t,n={}){return this.primitiveN("int8",t,n)}int16(t,n={}){return this.primitiveN(this.useThisEndian("int16"),t,n)}int16le(t,n={}){return this.primitiveN("int16le",t,n)}int16be(t,n={}){return this.primitiveN("int16be",t,n)}int32(t,n={}){return this.primitiveN(this.useThisEndian("int32"),t,n)}int32le(t,n={}){return this.primitiveN("int32le",t,n)}int32be(t,n={}){return this.primitiveN("int32be",t,n)}bigIntVersionCheck(){if(!DataView.prototype.getBigInt64)throw new Error("BigInt64 is unsupported on this runtime")}int64(t,n={}){return this.bigIntVersionCheck(),this.primitiveN(this.useThisEndian("int64"),t,n)}int64be(t,n={}){return this.bigIntVersionCheck(),this.primitiveN("int64be",t,n)}int64le(t,n={}){return this.bigIntVersionCheck(),this.primitiveN("int64le",t,n)}uint64(t,n={}){return this.bigIntVersionCheck(),this.primitiveN(this.useThisEndian("uint64"),t,n)}uint64be(t,n={}){return this.bigIntVersionCheck(),this.primitiveN("uint64be",t,n)}uint64le(t,n={}){return this.bigIntVersionCheck(),this.primitiveN("uint64le",t,n)}floatle(t,n={}){return this.primitiveN("floatle",t,n)}floatbe(t,n={}){return this.primitiveN("floatbe",t,n)}doublele(t,n={}){return this.primitiveN("doublele",t,n)}doublebe(t,n={}){return this.primitiveN("doublebe",t,n)}bitN(t,n,r){return r.length=t,this.setNextParser("bit",n,r)}bit1(t,n={}){return this.bitN(1,t,n)}bit2(t,n={}){return this.bitN(2,t,n)}bit3(t,n={}){return this.bitN(3,t,n)}bit4(t,n={}){return this.bitN(4,t,n)}bit5(t,n={}){return this.bitN(5,t,n)}bit6(t,n={}){return this.bitN(6,t,n)}bit7(t,n={}){return this.bitN(7,t,n)}bit8(t,n={}){return this.bitN(8,t,n)}bit9(t,n={}){return this.bitN(9,t,n)}bit10(t,n={}){return this.bitN(10,t,n)}bit11(t,n={}){return this.bitN(11,t,n)}bit12(t,n={}){return this.bitN(12,t,n)}bit13(t,n={}){return this.bitN(13,t,n)}bit14(t,n={}){return this.bitN(14,t,n)}bit15(t,n={}){return this.bitN(15,t,n)}bit16(t,n={}){return this.bitN(16,t,n)}bit17(t,n={}){return this.bitN(17,t,n)}bit18(t,n={}){return this.bitN(18,t,n)}bit19(t,n={}){return this.bitN(19,t,n)}bit20(t,n={}){return this.bitN(20,t,n)}bit21(t,n={}){return this.bitN(21,t,n)}bit22(t,n={}){return this.bitN(22,t,n)}bit23(t,n={}){return this.bitN(23,t,n)}bit24(t,n={}){return this.bitN(24,t,n)}bit25(t,n={}){return this.bitN(25,t,n)}bit26(t,n={}){return this.bitN(26,t,n)}bit27(t,n={}){return this.bitN(27,t,n)}bit28(t,n={}){return this.bitN(28,t,n)}bit29(t,n={}){return this.bitN(29,t,n)}bit30(t,n={}){return this.bitN(30,t,n)}bit31(t,n={}){return this.bitN(31,t,n)}bit32(t,n={}){return this.bitN(32,t,n)}namely(t){return On.set(t,this),this.alias=t,this}skip(t,n={}){return this.seek(t,n)}seek(t,n={}){if(n.assert)throw new Error("assert option on seek is not allowed.");return this.setNextParser("seek","",{length:t})}string(t,n){if(!n.zeroTerminated&&!n.length&&!n.greedy)throw new Error("One of length, zeroTerminated, or greedy must be defined for string.");if((n.zeroTerminated||n.length)&&n.greedy)throw new Error("greedy is mutually exclusive with length and zeroTerminated for string.");if(n.stripNull&&!(n.length||n.greedy))throw new Error("length or greedy must be defined if stripNull is enabled.");return n.encoding=n.encoding||"utf8",this.setNextParser("string",t,n)}buffer(t,n){if(!n.length&&!n.readUntil)throw new Error("length or readUntil must be defined for buffer.");return this.setNextParser("buffer",t,n)}wrapped(t,n){if(typeof n!="object"&&typeof t=="object"&&(n=t,t=""),!n||!n.wrapper||!n.type)throw new Error("Both wrapper and type must be defined for wrapped.");if(!n.length&&!n.readUntil)throw new Error("length or readUntil must be defined for wrapped.");return this.setNextParser("wrapper",t,n)}array(t,n){if(!n.readUntil&&!n.length&&!n.lengthInBytes)throw new Error("One of readUntil, length and lengthInBytes must be defined for array.");if(!n.type)throw new Error("type is required for array.");if(typeof n.type=="string"&&!On.has(n.type)&&!(n.type in Rn))throw new Error(`Array element type "${n.type}" is unkown.`);return this.setNextParser("array",t,n)}choice(t,n){if(typeof n!="object"&&typeof t=="object"&&(n=t,t=""),!n)throw new Error("tag and choices are are required for choice.");if(!n.tag)throw new Error("tag is requird for choice.");if(!n.choices)throw new Error("choices is required for choice.");for(const r in n.choices){const i=parseInt(r,10),a=n.choices[i];if(isNaN(i))throw new Error(`Choice key "${r}" is not a number.`);if(typeof a=="string"&&!On.has(a)&&!(a in Rn))throw new Error(`Choice type "${a}" is unkown.`)}return this.setNextParser("choice",t,n)}nest(t,n){if(typeof n!="object"&&typeof t=="object"&&(n=t,t=""),!n||!n.type)throw new Error("type is required for nest.");if(!(n.type instanceof ae)&&!On.has(n.type))throw new Error("type must be a known parser name or a Parser object.");if(!(n.type instanceof ae)&&!t)throw new Error("type must be a Parser object if the variable name is omitted.");return this.setNextParser("nest",t,n)}pointer(t,n){if(!n.offset)throw new Error("offset is required for pointer.");if(!n.type)throw new Error("type is required for pointer.");if(typeof n.type=="string"&&!(n.type in Rn)&&!On.has(n.type))throw new Error(`Pointer type "${n.type}" is unkown.`);return this.setNextParser("pointer",t,n)}saveOffset(t,n={}){return this.setNextParser("saveOffset",t,n)}endianness(t){switch(t.toLowerCase()){case"little":this.endian="le";break;case"big":this.endian="be";break;default:throw new Error('endianness must be one of "little" or "big"')}return this}endianess(t){return this.endianness(t)}useContextVars(t=!0){return this.useContextVariables=t,this}create(t){if(!(t instanceof Function))throw new Error("Constructor must be a Function object.");return this.constructorFn=t,this}getContext(t){const n=new WR(t,this.useContextVariables);return n.pushCode("var dataView = new DataView(buffer.buffer, buffer.byteOffset, buffer.length);"),this.alias?(this.addAliasedCode(n),n.pushCode(`return ${Oa+this.alias}(0).result;`)):this.addRawCode(n),n}getCode(){const t="imports";return this.getContext(t).code}addRawCode(t){t.pushCode("var offset = 0;"),t.pushCode(`var vars = ${this.constructorFn?"new constructorFn()":"{}"};`),t.pushCode("vars.$parent = null;"),t.pushCode("vars.$root = vars;"),this.generate(t),this.resolveReferences(t),t.pushCode("delete vars.$parent;"),t.pushCode("delete vars.$root;"),t.pushCode("return vars;")}addAliasedCode(t){return t.pushCode(`function ${Oa+this.alias}(offset, context) {`),t.pushCode(`var vars = ${this.constructorFn?"new constructorFn()":"{}"};`),t.pushCode("var ctx = Object.assign({$parent: null, $root: vars}, context || {});"),t.pushCode("vars = Object.assign(vars, ctx);"),this.generate(t),t.markResolved(this.alias),this.resolveReferences(t),t.pushCode("Object.keys(ctx).forEach(function (item) { delete vars[item]; });"),t.pushCode("return { offset: offset, result: vars };"),t.pushCode("}"),t}resolveReferences(t){const n=t.getUnresolvedReferences();t.markRequested(n),n.forEach(r=>{var i;(i=On.get(r))===null||i===void 0||i.addAliasedCode(t)})}compile(){const t="imports",n=this.getContext(t);this.compiled=new Function(t,"TextDecoder",`return function (buffer, constructorFn) { ${n.code} };`)(n.imports,TextDecoder)}sizeOf(){let t=NaN;if(Object.keys(Rn).indexOf(this.type)>=0)t=Rn[this.type];else if(this.type==="string"&&typeof this.options.length=="number")t=this.options.length;else if(this.type==="buffer"&&typeof this.options.length=="number")t=this.options.length;else if(this.type==="array"&&typeof this.options.length=="number"){let n=NaN;typeof this.options.type=="string"?n=Rn[this.options.type]:this.options.type instanceof ae&&(n=this.options.type.sizeOf()),t=this.options.length*n}else this.type==="seek"?t=this.options.length:this.type==="nest"?t=this.options.type.sizeOf():this.type||(t=0);return this.next&&(t+=this.next.sizeOf()),t}parse(t){return this.compiled||this.compile(),this.compiled(t,this.constructorFn)}setNextParser(t,n,r){const i=new ae;return i.type=t,i.varName=n,i.options=r,i.endian=this.endian,this.head?this.head.next=i:this.next=i,this.head=i,this}generate(t){if(this.type){switch(this.type){case"uint8":case"uint16le":case"uint16be":case"uint32le":case"uint32be":case"int8":case"int16le":case"int16be":case"int32le":case"int32be":case"int64be":case"int64le":case"uint64be":case"uint64le":case"floatle":case"floatbe":case"doublele":case"doublebe":this.primitiveGenerateN(this.type,t);break;case"bit":this.generateBit(t);break;case"string":this.generateString(t);break;case"buffer":this.generateBuffer(t);break;case"seek":this.generateSeek(t);break;case"nest":this.generateNest(t);break;case"array":this.generateArray(t);break;case"choice":this.generateChoice(t);break;case"pointer":this.generatePointer(t);break;case"saveOffset":this.generateSaveOffset(t);break;case"wrapper":this.generateWrapper(t);break}this.type!=="bit"&&this.generateAssert(t)}const n=t.generateVariable(this.varName);return this.options.formatter&&this.type!=="bit"&&this.generateFormatter(t,n,this.options.formatter),this.generateNext(t)}generateAssert(t){if(!this.options.assert)return;const n=t.generateVariable(this.varName);switch(typeof this.options.assert){case"function":{const r=t.addImport(this.options.assert);t.pushCode(`if (!${r}.call(vars, ${n})) {`)}break;case"number":t.pushCode(`if (${this.options.assert} !== ${n}) {`);break;case"string":t.pushCode(`if (${JSON.stringify(this.options.assert)} !== ${n}) {`);break;default:throw new Error("assert option must be a string, number or a function.")}t.generateError(`"Assertion error: ${n} is " + ${JSON.stringify(this.options.assert.toString())}`),t.pushCode("}")}generateNext(t){return this.next&&(t=this.next.generate(t)),t}generateBit(t){const n=JSON.parse(JSON.stringify(this));if(n.options=this.options,n.generateAssert=this.generateAssert.bind(this),n.generateFormatter=this.generateFormatter.bind(this),n.varName=t.generateVariable(n.varName),t.bitFields.push(n),!this.next||this.next&&["bit","nest"].indexOf(this.next.type)<0){const r=t.generateTmpVariable();t.pushCode(`var ${r} = 0;`);const i=(u=0)=>{let f=0;for(let h=u;h<t.bitFields.length;h++){const d=t.bitFields[h].options.length;if(f+d>32)break;f+=d}return f},a=u=>(u<=8?(t.pushCode(`${r} = dataView.getUint8(offset);`),u=8):u<=16?(t.pushCode(`${r} = dataView.getUint16(offset);`),u=16):u<=24?(t.pushCode(`${r} = (dataView.getUint16(offset) << 8) | dataView.getUint8(offset + 2);`),u=24):(t.pushCode(`${r} = dataView.getUint32(offset);`),u=32),t.pushCode(`offset += ${u/8};`),u);let o=0;const s=this.endian==="be";let l=0,c=0;t.bitFields.forEach((u,f)=>{let h=u.options.length;if(h>c){if(c){const g=-1>>>32-c;t.pushCode(`${u.varName} = (${r} & 0x${g.toString(16)}) << ${h-c};`),h-=c}o=0,c=l=a(i(f)-c)}const d=s?l-o-h:o,p=-1>>>32-h;t.pushCode(`${u.varName} ${h<u.options.length?"|=":"="} ${r} >> ${d} & 0x${p.toString(16)};`),u.options.length===32&&t.pushCode(`${u.varName} >>>= 0`),u.options.assert&&u.generateAssert(t),u.options.formatter&&u.generateFormatter(t,u.varName,u.options.formatter),o+=h,c-=h}),t.bitFields=[]}}generateSeek(t){const n=t.generateOption(this.options.length);t.pushCode(`offset += ${n};`)}generateString(t){const n=t.generateVariable(this.varName),r=t.generateTmpVariable(),i=this.options.encoding,a=i.toLowerCase()==="hex",o='b => b.toString(16).padStart(2, "0")';if(this.options.length&&this.options.zeroTerminated){const s=this.options.length;t.pushCode(`var ${r} = offset;`),t.pushCode(`while(dataView.getUint8(offset++) !== 0 && offset - ${r} < ${s});`);const l=`offset - ${r} < ${s} ? offset - 1 : offset`;t.pushCode(a?`${n} = Array.from(buffer.subarray(${r}, ${l}), ${o}).join('');`:`${n} = new TextDecoder('${i}').decode(buffer.subarray(${r}, ${l}));`)}else if(this.options.length){const s=t.generateOption(this.options.length);t.pushCode(a?`${n} = Array.from(buffer.subarray(offset, offset + ${s}), ${o}).join('');`:`${n} = new TextDecoder('${i}').decode(buffer.subarray(offset, offset + ${s}));`),t.pushCode(`offset += ${s};`)}else this.options.zeroTerminated?(t.pushCode(`var ${r} = offset;`),t.pushCode("while(dataView.getUint8(offset++) !== 0);"),t.pushCode(a?`${n} = Array.from(buffer.subarray(${r}, offset - 1), ${o}).join('');`:`${n} = new TextDecoder('${i}').decode(buffer.subarray(${r}, offset - 1));`)):this.options.greedy&&(t.pushCode(`var ${r} = offset;`),t.pushCode("while(buffer.length > offset++);"),t.pushCode(a?`${n} = Array.from(buffer.subarray(${r}, offset), ${o}).join('');`:`${n} = new TextDecoder('${i}').decode(buffer.subarray(${r}, offset));`));this.options.stripNull&&t.pushCode(`${n} = ${n}.replace(/\\x00+$/g, '')`)}generateBuffer(t){const n=t.generateVariable(this.varName);if(typeof this.options.readUntil=="function"){const r=this.options.readUntil,i=t.generateTmpVariable(),a=t.generateTmpVariable();t.pushCode(`var ${i} = offset;`),t.pushCode(`var ${a} = 0;`),t.pushCode("while (offset < buffer.length) {"),t.pushCode(`${a} = dataView.getUint8(offset);`);const o=t.addImport(r);t.pushCode(`if (${o}.call(${t.generateVariable()}, ${a}, buffer.subarray(offset))) break;`),t.pushCode("offset += 1;"),t.pushCode("}"),t.pushCode(`${n} = buffer.subarray(${i}, offset);`)}else if(this.options.readUntil==="eof")t.pushCode(`${n} = buffer.subarray(offset);`);else{const r=t.generateOption(this.options.length);t.pushCode(`${n} = buffer.subarray(offset, offset + ${r});`),t.pushCode(`offset += ${r};`)}this.options.clone&&t.pushCode(`${n} = buffer.constructor.from(${n});`)}generateArray(t){const n=t.generateOption(this.options.length),r=t.generateOption(this.options.lengthInBytes),i=this.options.type,a=t.generateTmpVariable(),o=t.generateVariable(this.varName),s=t.generateTmpVariable(),l=this.options.key,c=typeof l=="string";if(c?t.pushCode(`${o} = {};`):t.pushCode(`${o} = [];`),typeof this.options.readUntil=="function"?t.pushCode("do {"):this.options.readUntil==="eof"?t.pushCode(`for (var ${a} = 0; offset < buffer.length; ${a}++) {`):r!==void 0?t.pushCode(`for (var ${a} = offset + ${r}; offset < ${a}; ) {`):t.pushCode(`for (var ${a} = ${n}; ${a} > 0; ${a}--) {`),typeof i=="string")if(On.get(i)){const u=t.generateTmpVariable();if(t.pushCode(`var ${u} = ${Oa+i}(offset, {`),t.useContextVariables){const f=t.generateVariable();t.pushCode(`$parent: ${f},`),t.pushCode(`$root: ${f}.$root,`),!this.options.readUntil&&r===void 0&&t.pushCode(`$index: ${n} - ${a},`)}t.pushCode("});"),t.pushCode(`var ${s} = ${u}.result; offset = ${u}.offset;`),i!==this.alias&&t.addReference(i)}else{const u=Jf[i],f=eh[i];t.pushCode(`var ${s} = dataView.get${u}(offset, ${f});`),t.pushCode(`offset += ${Rn[i]};`)}else if(i instanceof ae){t.pushCode(`var ${s} = {};`);const u=t.generateVariable();t.pushScope(s),t.useContextVariables&&(t.pushCode(`${s}.$parent = ${u};`),t.pushCode(`${s}.$root = ${u}.$root;`),!this.options.readUntil&&r===void 0&&t.pushCode(`${s}.$index = ${n} - ${a};`)),i.generate(t),t.useContextVariables&&(t.pushCode(`delete ${s}.$parent;`),t.pushCode(`delete ${s}.$root;`),t.pushCode(`delete ${s}.$index;`)),t.popScope()}if(c?t.pushCode(`${o}[${s}.${l}] = ${s};`):t.pushCode(`${o}.push(${s});`),t.pushCode("}"),typeof this.options.readUntil=="function"){const u=this.options.readUntil,f=t.addImport(u);t.pushCode(`while (!${f}.call(${t.generateVariable()}, ${s}, buffer.subarray(offset)));`)}}generateChoiceCase(t,n,r){if(typeof r=="string"){const i=t.generateVariable(this.varName);if(On.has(r)){const a=t.generateTmpVariable();t.pushCode(`var ${a} = ${Oa+r}(offset, {`),t.useContextVariables&&(t.pushCode(`$parent: ${i}.$parent,`),t.pushCode(`$root: ${i}.$root,`)),t.pushCode("});"),t.pushCode(`${i} = ${a}.result; offset = ${a}.offset;`),r!==this.alias&&t.addReference(r)}else{const a=Jf[r],o=eh[r];t.pushCode(`${i} = dataView.get${a}(offset, ${o});`),t.pushCode(`offset += ${Rn[r]}`)}}else r instanceof ae&&(t.pushPath(n),r.generate(t),t.popPath(n))}generateChoice(t){const n=t.generateOption(this.options.tag),r=t.generateVariable(this.varName);if(this.varName&&(t.pushCode(`${r} = {};`),t.useContextVariables)){const i=t.generateVariable();t.pushCode(`${r}.$parent = ${i};`),t.pushCode(`${r}.$root = ${i}.$root;`)}t.pushCode(`switch(${n}) {`);for(const i in this.options.choices){const a=parseInt(i,10),o=this.options.choices[a];t.pushCode(`case ${a}:`),this.generateChoiceCase(t,this.varName,o),t.pushCode("break;")}t.pushCode("default:"),this.options.defaultChoice?this.generateChoiceCase(t,this.varName,this.options.defaultChoice):t.generateError(`"Met undefined tag value " + ${n} + " at choice"`),t.pushCode("}"),this.varName&&t.useContextVariables&&(t.pushCode(`delete ${r}.$parent;`),t.pushCode(`delete ${r}.$root;`))}generateNest(t){const n=t.generateVariable(this.varName);if(this.options.type instanceof ae){if(this.varName&&(t.pushCode(`${n} = {};`),t.useContextVariables)){const r=t.generateVariable();t.pushCode(`${n}.$parent = ${r};`),t.pushCode(`${n}.$root = ${r}.$root;`)}t.pushPath(this.varName),this.options.type.generate(t),t.popPath(this.varName),this.varName&&t.useContextVariables&&t.useContextVariables&&(t.pushCode(`delete ${n}.$parent;`),t.pushCode(`delete ${n}.$root;`))}else if(On.has(this.options.type)){const r=t.generateTmpVariable();if(t.pushCode(`var ${r} = ${Oa+this.options.type}(offset, {`),t.useContextVariables){const i=t.generateVariable();t.pushCode(`$parent: ${i},`),t.pushCode(`$root: ${i}.$root,`)}t.pushCode("});"),t.pushCode(`${n} = ${r}.result; offset = ${r}.offset;`),this.options.type!==this.alias&&t.addReference(this.options.type)}}generateWrapper(t){const n=t.generateVariable(this.varName),r=t.generateTmpVariable();if(typeof this.options.readUntil=="function"){const l=this.options.readUntil,c=t.generateTmpVariable(),u=t.generateTmpVariable();t.pushCode(`var ${c} = offset;`),t.pushCode(`var ${u} = 0;`),t.pushCode("while (offset < buffer.length) {"),t.pushCode(`${u} = dataView.getUint8(offset);`);const f=t.addImport(l);t.pushCode(`if (${f}.call(${t.generateVariable()}, ${u}, buffer.subarray(offset))) break;`),t.pushCode("offset += 1;"),t.pushCode("}"),t.pushCode(`${r} = buffer.subarray(${c}, offset);`)}else if(this.options.readUntil==="eof")t.pushCode(`${r} = buffer.subarray(offset);`);else{const l=t.generateOption(this.options.length);t.pushCode(`${r} = buffer.subarray(offset, offset + ${l});`),t.pushCode(`offset += ${l};`)}this.options.clone&&t.pushCode(`${r} = buffer.constructor.from(${r});`);const i=t.generateTmpVariable(),a=t.generateTmpVariable(),o=t.generateTmpVariable(),s=t.addImport(this.options.wrapper);if(t.pushCode(`${r} = ${s}.call(this, ${r}).subarray(0);`),t.pushCode(`var ${i} = buffer;`),t.pushCode(`var ${a} = offset;`),t.pushCode(`var ${o} = dataView;`),t.pushCode(`buffer = ${r};`),t.pushCode("offset = 0;"),t.pushCode("dataView = new DataView(buffer.buffer, buffer.byteOffset, buffer.length);"),this.options.type instanceof ae)this.varName&&t.pushCode(`${n} = {};`),t.pushPath(this.varName),this.options.type.generate(t),t.popPath(this.varName);else if(On.has(this.options.type)){const l=t.generateTmpVariable();t.pushCode(`var ${l} = ${Oa+this.options.type}(0);`),t.pushCode(`${n} = ${l}.result;`),this.options.type!==this.alias&&t.addReference(this.options.type)}t.pushCode(`buffer = ${i};`),t.pushCode(`dataView = ${o};`),t.pushCode(`offset = ${a};`)}generateFormatter(t,n,r){if(typeof r=="function"){const i=t.addImport(r);t.pushCode(`${n} = ${i}.call(${t.generateVariable()}, ${n});`)}}generatePointer(t){const n=this.options.type,r=t.generateOption(this.options.offset),i=t.generateTmpVariable(),a=t.generateVariable(this.varName);if(t.pushCode(`var ${i} = offset;`),t.pushCode(`offset = ${r};`),this.options.type instanceof ae){if(t.pushCode(`${a} = {};`),t.useContextVariables){const o=t.generateVariable();t.pushCode(`${a}.$parent = ${o};`),t.pushCode(`${a}.$root = ${o}.$root;`)}t.pushPath(this.varName),this.options.type.generate(t),t.popPath(this.varName),t.useContextVariables&&(t.pushCode(`delete ${a}.$parent;`),t.pushCode(`delete ${a}.$root;`))}else if(On.has(this.options.type)){const o=t.generateTmpVariable();if(t.pushCode(`var ${o} = ${Oa+this.options.type}(offset, {`),t.useContextVariables){const s=t.generateVariable();t.pushCode(`$parent: ${s},`),t.pushCode(`$root: ${s}.$root,`)}t.pushCode("});"),t.pushCode(`${a} = ${o}.result; offset = ${o}.offset;`),this.options.type!==this.alias&&t.addReference(this.options.type)}else if(Object.keys(Rn).indexOf(this.options.type)>=0){const o=Jf[n],s=eh[n];t.pushCode(`${a} = dataView.get${o}(offset, ${s});`),t.pushCode(`offset += ${Rn[n]};`)}t.pushCode(`offset = ${i};`)}generateSaveOffset(t){const n=t.generateVariable(this.varName);t.pushCode(`${n} = offset`)}}var q3={},Og={},Ra={},cl={};Object.defineProperty(cl,"__esModule",{value:!0});function Rg(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function W3(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function zg(e,t,n){return t&&W3(e.prototype,t),n&&W3(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function XR(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Pg(e,t)}function Jo(e){return Jo=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},Jo(e)}function Pg(e,t){return Pg=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,i){return r.__proto__=i,r},Pg(e,t)}function KR(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function ll(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function JR(e,t){if(t&&(typeof t=="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return ll(e)}function ez(e){var t=KR();return function(){var r=Jo(e),i;if(t){var a=Jo(this).constructor;i=Reflect.construct(r,arguments,a)}else i=r.apply(this,arguments);return JR(this,i)}}function tz(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&(e=Jo(e),e!==null););return e}function th(){return typeof Reflect<"u"&&Reflect.get?th=Reflect.get.bind():th=function(t,n,r){var i=tz(t,n);if(i){var a=Object.getOwnPropertyDescriptor(i,n);return a.get?a.get.call(arguments.length<3?t:r):a.value}},th.apply(this,arguments)}var X3=function(){function e(){Rg(this,e),Object.defineProperty(this,"listeners",{value:{},writable:!0,configurable:!0})}return zg(e,[{key:"addEventListener",value:function(n,r,i){n in this.listeners||(this.listeners[n]=[]),this.listeners[n].push({callback:r,options:i})}},{key:"removeEventListener",value:function(n,r){if(n in this.listeners){for(var i=this.listeners[n],a=0,o=i.length;a<o;a++)if(i[a].callback===r){i.splice(a,1);return}}}},{key:"dispatchEvent",value:function(n){if(n.type in this.listeners){for(var r=this.listeners[n.type],i=r.slice(),a=0,o=i.length;a<o;a++){var s=i[a];try{s.callback.call(this,n)}catch(l){Promise.resolve().then(function(){throw l})}s.options&&s.options.once&&this.removeEventListener(n.type,s.callback)}return!n.defaultPrevented}}}]),e}(),Ug=function(e){XR(n,e);var t=ez(n);function n(){var r;return Rg(this,n),r=t.call(this),r.listeners||X3.call(ll(r)),Object.defineProperty(ll(r),"aborted",{value:!1,writable:!0,configurable:!0}),Object.defineProperty(ll(r),"onabort",{value:null,writable:!0,configurable:!0}),Object.defineProperty(ll(r),"reason",{value:void 0,writable:!0,configurable:!0}),r}return zg(n,[{key:"toString",value:function(){return"[object AbortSignal]"}},{key:"dispatchEvent",value:function(i){i.type==="abort"&&(this.aborted=!0,typeof this.onabort=="function"&&this.onabort.call(this,i)),th(Jo(n.prototype),"dispatchEvent",this).call(this,i)}}]),n}(X3),K3=function(){function e(){Rg(this,e),Object.defineProperty(this,"signal",{value:new Ug,writable:!0,configurable:!0})}return zg(e,[{key:"abort",value:function(n){var r;try{r=new Event("abort")}catch{typeof document<"u"?document.createEvent?(r=document.createEvent("Event"),r.initEvent("abort",!1,!1)):(r=document.createEventObject(),r.type="abort"):r={type:"abort",bubbles:!1,cancelable:!1}}var i=n;if(i===void 0)if(typeof document>"u")i=new Error("This operation was aborted"),i.name="AbortError";else try{i=new DOMException("signal is aborted without reason")}catch{i=new Error("This operation was aborted"),i.name="AbortError"}this.signal.reason=i,this.signal.dispatchEvent(r)}},{key:"toString",value:function(){return"[object AbortController]"}}]),e}();typeof Symbol<"u"&&Symbol.toStringTag&&(K3.prototype[Symbol.toStringTag]="AbortController",Ug.prototype[Symbol.toStringTag]="AbortSignal");function nz(e){return e.__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL?(console.log("__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL=true is set, will force install polyfill"),!0):typeof e.Request=="function"&&!e.Request.prototype.hasOwnProperty("signal")||!e.AbortController}function rz(e){typeof e=="function"&&(e={fetch:e});var t=e,n=t.fetch,r=t.Request,i=r===void 0?n.Request:r,a=t.AbortController,o=t.__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL,s=o===void 0?!1:o;if(!nz({fetch:n,Request:i,AbortController:a,__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL:s}))return{fetch:n,Request:l};var l=i;(l&&!l.prototype.hasOwnProperty("signal")||s)&&(l=function(h,d){var p;d&&d.signal&&(p=d.signal,delete d.signal);var g=new i(h,d);return p&&Object.defineProperty(g,"signal",{writable:!1,enumerable:!1,configurable:!0,value:p}),g},l.prototype=i.prototype);var c=n,u=function(h,d){var p=l&&l.prototype.isPrototypeOf(h)?h.signal:d?d.signal:void 0;if(p){var g;try{g=new DOMException("Aborted","AbortError")}catch{g=new Error("Aborted"),g.name="AbortError"}if(p.aborted)return Promise.reject(g);var y=new Promise(function(v,S){p.addEventListener("abort",function(){return S(g)},{once:!0})});return d&&d.signal&&delete d.signal,Promise.race([y,c(h,d)])}return c(h,d)};return{fetch:u,Request:l}}cl.AbortController=K3,cl.AbortSignal=Ug,cl.abortableFetch=rz,Object.defineProperty(Ra,"__esModule",{value:!0}),Ra.AbortSignal=Ra.AbortController=void 0;const J3=cl;var nh=function(){if(typeof self<"u")return self;if(typeof window<"u")return window;if(typeof Sa<"u")return Sa;throw new Error("unable to locate global object")};let iz=typeof nh().AbortController>"u"?J3.AbortController:nh().AbortController;Ra.AbortController=iz;let az=typeof nh().AbortController>"u"?J3.AbortSignal:nh().AbortSignal;Ra.AbortSignal=az;var jg={};Object.defineProperty(jg,"__esModule",{value:!0});const oz=Ra;class sz{}class cz{constructor(){this.signals=new Set,this.abortController=new oz.AbortController}addSignal(t=new sz){if(this.signal.aborted)throw new Error("cannot add a signal, already aborted!");this.signals.add(t),t.aborted?this.handleAborted(t):typeof t.addEventListener=="function"&&t.addEventListener("abort",()=>{this.handleAborted(t)})}handleAborted(t){this.signals.delete(t),this.signals.size===0&&this.abortController.abort()}get signal(){return this.abortController.signal}abort(){this.abortController.abort()}}jg.default=cz;var Hg={};Object.defineProperty(Hg,"__esModule",{value:!0});class lz{constructor(){this.callbacks=new Set}addCallback(t=()=>{}){this.callbacks.add(t),t(this.currentMessage)}callback(t){this.currentMessage=t,this.callbacks.forEach(n=>{n(t)})}}Hg.default=lz;var e4=Sa&&Sa.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Og,"__esModule",{value:!0});const uz=Ra,fz=e4(jg),hz=e4(Hg);class rh{constructor({fill:t,cache:n}){if(typeof t!="function")throw new TypeError("must pass a fill function");if(typeof n!="object")throw new TypeError("must pass a cache object");if(typeof n.get!="function"||typeof n.set!="function"||typeof n.delete!="function")throw new TypeError("cache must implement get(key), set(key, val), and and delete(key)");this.cache=n,this.fillCallback=t}static isAbortException(t){return t.name==="AbortError"||t.code==="ERR_ABORTED"||t.message==="AbortError: aborted"||t.message==="Error: aborted"}evict(t,n){this.cache.get(t)===n&&this.cache.delete(t)}fill(t,n,r,i){const a=new fz.default,o=new hz.default;o.addCallback(i);const s={aborter:a,promise:this.fillCallback(n,a.signal,l=>{o.callback(l)}),settled:!1,statusReporter:o,get aborted(){return this.aborter.signal.aborted}};s.aborter.addSignal(r),s.aborter.signal.addEventListener("abort",()=>{s.settled||this.evict(t,s)}),s.promise.then(()=>{s.settled=!0},()=>{s.settled=!0,this.evict(t,s)}).catch(l=>{throw console.error(l),l}),this.cache.set(t,s)}static checkSinglePromise(t,n){function r(){if(n&&n.aborted)throw Object.assign(new Error("aborted"),{code:"ERR_ABORTED"})}return t.then(i=>(r(),i),i=>{throw r(),i})}has(t){return this.cache.has(t)}get(t,n,r,i){if(!r&&n instanceof uz.AbortSignal)throw new TypeError("second get argument appears to be an AbortSignal, perhaps you meant to pass `null` for the fill data?");const a=this.cache.get(t);return a?a.aborted&&!a.settled?(this.evict(t,a),this.get(t,n,r,i)):a.settled?a.promise:(a.aborter.addSignal(r),a.statusReporter.addCallback(i),rh.checkSinglePromise(a.promise,r)):(this.fill(t,n,r,i),rh.checkSinglePromise(this.cache.get(t).promise,r))}delete(t){const n=this.cache.get(t);n&&(n.settled||n.aborter.abort(),this.cache.delete(t))}clear(){const t=this.cache.keys();let n=0;for(let r=t.next();!r.done;r=t.next())this.delete(r.value),n+=1;return n}}Og.default=rh;var dz=Sa&&Sa.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(q3,"__esModule",{value:!0});const pz=dz(Og);var Gg=q3.default=pz.default,gz=class{constructor(t={}){if(!(t.maxSize&&t.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");this.maxSize=t.maxSize,this.cache=new Map,this.oldCache=new Map,this._size=0}_set(t,n){this.cache.set(t,n),this._size++,this._size>=this.maxSize&&(this._size=0,this.oldCache=this.cache,this.cache=new Map)}get(t){if(this.cache.has(t))return this.cache.get(t);if(this.oldCache.has(t)){const n=this.oldCache.get(t);return this.oldCache.delete(t),this._set(t,n),n}}set(t,n){return this.cache.has(t)?this.cache.set(t,n):this._set(t,n),this}has(t){return this.cache.has(t)||this.oldCache.has(t)}peek(t){if(this.cache.has(t))return this.cache.get(t);if(this.oldCache.has(t))return this.oldCache.get(t)}delete(t){const n=this.cache.delete(t);return n&&this._size--,this.oldCache.delete(t)||n}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}*keys(){for(const[t]of this)yield t}*values(){for(const[,t]of this)yield t}*[Symbol.iterator](){for(const t of this.cache)yield t;for(const t of this.oldCache){const[n]=t;this.cache.has(n)||(yield t)}}get size(){let t=0;for(const n of this.oldCache.keys())this.cache.has(n)||t++;return this._size+t}};const t4=Ca(gz);class Ei{constructor(t,n){this.ranges=arguments.length===2?[{min:t,max:n}]:0 in t?Object.assign({},t):[t]}min(){return this.ranges[0].min}max(){return this.ranges[this.ranges.length-1].max}contains(t){for(let n=0;n<this.ranges.length;n+=1){const r=this.ranges[n];if(r.min<=t&&r.max>=t)return!0}return!1}isContiguous(){return this.ranges.length>1}getRanges(){return this.ranges.map(t=>new Ei(t.min,t.max))}toString(){return this.ranges.map(t=>`[${t.min}-${t.max}]`).join(",")}union(t){const n=this.getRanges().concat(t.getRanges()).sort(this.rangeOrder),r=[];let i=n[0];for(let a=1;a<n.length;a+=1){const o=n[a];o.min()>i.max()+1?(r.push(i),i=o):o.max()>i.max()&&(i=new Ei(i.min(),o.max()))}return r.push(i),r.length===1?r[0]:new Ei(r)}intersection(t){let n=this,r=t;const i=this.ranges(),a=r.ranges(),o=i.length,s=a.length;let l=0,c=0;const u=[];for(;l<o&&c<s;){n=i[l],r=a[c];const f=Math.max(n.min(),r.min()),h=Math.min(n.max(),r.max());h>=f&&u.push(new Ei(f,h)),n.max()>r.max()?c+=1:l+=1}if(u.length===0)throw new Error("found range of length 0");return u.length===1?u[0]:new Ei(u)}coverage(){let t=0;const n=this.ranges();for(const r of n)t+=r.max()-r.min()+1;return t}rangeOrder(t,n){let r=t,i=n;return arguments.length<2&&(i=r,r=this),r.min()<i.min()?-1:r.min()>i.min()?1:r.max()<i.max()?-1:i.max()>r.max()?1:0}}/*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) */const mz=4,n4=0,r4=1,bz=2;function es(e){let t=e.length;for(;--t>=0;)e[t]=0}const yz=0,i4=1,vz=2,wz=3,xz=258,$g=29,ul=256,fl=ul+1+$g,ts=30,Vg=19,a4=2*fl+1,za=15,Yg=16,Az=7,Qg=256,o4=16,s4=17,c4=18,Zg=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),ih=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),Ez=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),l4=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),Sz=512,Nr=new Array((fl+2)*2);es(Nr);const hl=new Array(ts*2);es(hl);const dl=new Array(Sz);es(dl);const pl=new Array(xz-wz+1);es(pl);const qg=new Array($g);es(qg);const ah=new Array(ts);es(ah);function Wg(e,t,n,r,i){this.static_tree=e,this.extra_bits=t,this.extra_base=n,this.elems=r,this.max_length=i,this.has_stree=e&&e.length}let u4,f4,h4;function Xg(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}const d4=e=>e<256?dl[e]:dl[256+(e>>>7)],gl=(e,t)=>{e.pending_buf[e.pending++]=t&255,e.pending_buf[e.pending++]=t>>>8&255},Pt=(e,t,n)=>{e.bi_valid>Yg-n?(e.bi_buf|=t<<e.bi_valid&65535,gl(e,e.bi_buf),e.bi_buf=t>>Yg-e.bi_valid,e.bi_valid+=n-Yg):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=n)},rr=(e,t,n)=>{Pt(e,n[t*2],n[t*2+1])},p4=(e,t)=>{let n=0;do n|=e&1,e>>>=1,n<<=1;while(--t>0);return n>>>1},Cz=e=>{e.bi_valid===16?(gl(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=e.bi_buf&255,e.bi_buf>>=8,e.bi_valid-=8)},_z=(e,t)=>{const n=t.dyn_tree,r=t.max_code,i=t.stat_desc.static_tree,a=t.stat_desc.has_stree,o=t.stat_desc.extra_bits,s=t.stat_desc.extra_base,l=t.stat_desc.max_length;let c,u,f,h,d,p,g=0;for(h=0;h<=za;h++)e.bl_count[h]=0;for(n[e.heap[e.heap_max]*2+1]=0,c=e.heap_max+1;c<a4;c++)u=e.heap[c],h=n[n[u*2+1]*2+1]+1,h>l&&(h=l,g++),n[u*2+1]=h,!(u>r)&&(e.bl_count[h]++,d=0,u>=s&&(d=o[u-s]),p=n[u*2],e.opt_len+=p*(h+d),a&&(e.static_len+=p*(i[u*2+1]+d)));if(g!==0){do{for(h=l-1;e.bl_count[h]===0;)h--;e.bl_count[h]--,e.bl_count[h+1]+=2,e.bl_count[l]--,g-=2}while(g>0);for(h=l;h!==0;h--)for(u=e.bl_count[h];u!==0;)f=e.heap[--c],!(f>r)&&(n[f*2+1]!==h&&(e.opt_len+=(h-n[f*2+1])*n[f*2],n[f*2+1]=h),u--)}},g4=(e,t,n)=>{const r=new Array(za+1);let i=0,a,o;for(a=1;a<=za;a++)i=i+n[a-1]<<1,r[a]=i;for(o=0;o<=t;o++){let s=e[o*2+1];s!==0&&(e[o*2]=p4(r[s]++,s))}},kz=()=>{let e,t,n,r,i;const a=new Array(za+1);for(n=0,r=0;r<$g-1;r++)for(qg[r]=n,e=0;e<1<<Zg[r];e++)pl[n++]=r;for(pl[n-1]=r,i=0,r=0;r<16;r++)for(ah[r]=i,e=0;e<1<<ih[r];e++)dl[i++]=r;for(i>>=7;r<ts;r++)for(ah[r]=i<<7,e=0;e<1<<ih[r]-7;e++)dl[256+i++]=r;for(t=0;t<=za;t++)a[t]=0;for(e=0;e<=143;)Nr[e*2+1]=8,e++,a[8]++;for(;e<=255;)Nr[e*2+1]=9,e++,a[9]++;for(;e<=279;)Nr[e*2+1]=7,e++,a[7]++;for(;e<=287;)Nr[e*2+1]=8,e++,a[8]++;for(g4(Nr,fl+1,a),e=0;e<ts;e++)hl[e*2+1]=5,hl[e*2]=p4(e,5);u4=new Wg(Nr,Zg,ul+1,fl,za),f4=new Wg(hl,ih,0,ts,za),h4=new Wg(new Array(0),Ez,0,Vg,Az)},m4=e=>{let t;for(t=0;t<fl;t++)e.dyn_ltree[t*2]=0;for(t=0;t<ts;t++)e.dyn_dtree[t*2]=0;for(t=0;t<Vg;t++)e.bl_tree[t*2]=0;e.dyn_ltree[Qg*2]=1,e.opt_len=e.static_len=0,e.sym_next=e.matches=0},b4=e=>{e.bi_valid>8?gl(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0},y4=(e,t,n,r)=>{const i=t*2,a=n*2;return e[i]<e[a]||e[i]===e[a]&&r[t]<=r[n]},Kg=(e,t,n)=>{const r=e.heap[n];let i=n<<1;for(;i<=e.heap_len&&(i<e.heap_len&&y4(t,e.heap[i+1],e.heap[i],e.depth)&&i++,!y4(t,r,e.heap[i],e.depth));)e.heap[n]=e.heap[i],n=i,i<<=1;e.heap[n]=r},v4=(e,t,n)=>{let r,i,a=0,o,s;if(e.sym_next!==0)do r=e.pending_buf[e.sym_buf+a++]&255,r+=(e.pending_buf[e.sym_buf+a++]&255)<<8,i=e.pending_buf[e.sym_buf+a++],r===0?rr(e,i,t):(o=pl[i],rr(e,o+ul+1,t),s=Zg[o],s!==0&&(i-=qg[o],Pt(e,i,s)),r--,o=d4(r),rr(e,o,n),s=ih[o],s!==0&&(r-=ah[o],Pt(e,r,s)));while(a<e.sym_next);rr(e,Qg,t)},Jg=(e,t)=>{const n=t.dyn_tree,r=t.stat_desc.static_tree,i=t.stat_desc.has_stree,a=t.stat_desc.elems;let o,s,l=-1,c;for(e.heap_len=0,e.heap_max=a4,o=0;o<a;o++)n[o*2]!==0?(e.heap[++e.heap_len]=l=o,e.depth[o]=0):n[o*2+1]=0;for(;e.heap_len<2;)c=e.heap[++e.heap_len]=l<2?++l:0,n[c*2]=1,e.depth[c]=0,e.opt_len--,i&&(e.static_len-=r[c*2+1]);for(t.max_code=l,o=e.heap_len>>1;o>=1;o--)Kg(e,n,o);c=a;do o=e.heap[1],e.heap[1]=e.heap[e.heap_len--],Kg(e,n,1),s=e.heap[1],e.heap[--e.heap_max]=o,e.heap[--e.heap_max]=s,n[c*2]=n[o*2]+n[s*2],e.depth[c]=(e.depth[o]>=e.depth[s]?e.depth[o]:e.depth[s])+1,n[o*2+1]=n[s*2+1]=c,e.heap[1]=c++,Kg(e,n,1);while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],_z(e,t),g4(n,l,e.bl_count)},w4=(e,t,n)=>{let r,i=-1,a,o=t[0*2+1],s=0,l=7,c=4;for(o===0&&(l=138,c=3),t[(n+1)*2+1]=65535,r=0;r<=n;r++)a=o,o=t[(r+1)*2+1],!(++s<l&&a===o)&&(s<c?e.bl_tree[a*2]+=s:a!==0?(a!==i&&e.bl_tree[a*2]++,e.bl_tree[o4*2]++):s<=10?e.bl_tree[s4*2]++:e.bl_tree[c4*2]++,s=0,i=a,o===0?(l=138,c=3):a===o?(l=6,c=3):(l=7,c=4))},x4=(e,t,n)=>{let r,i=-1,a,o=t[0*2+1],s=0,l=7,c=4;for(o===0&&(l=138,c=3),r=0;r<=n;r++)if(a=o,o=t[(r+1)*2+1],!(++s<l&&a===o)){if(s<c)do rr(e,a,e.bl_tree);while(--s!==0);else a!==0?(a!==i&&(rr(e,a,e.bl_tree),s--),rr(e,o4,e.bl_tree),Pt(e,s-3,2)):s<=10?(rr(e,s4,e.bl_tree),Pt(e,s-3,3)):(rr(e,c4,e.bl_tree),Pt(e,s-11,7));s=0,i=a,o===0?(l=138,c=3):a===o?(l=6,c=3):(l=7,c=4)}},Dz=e=>{let t;for(w4(e,e.dyn_ltree,e.l_desc.max_code),w4(e,e.dyn_dtree,e.d_desc.max_code),Jg(e,e.bl_desc),t=Vg-1;t>=3&&e.bl_tree[l4[t]*2+1]===0;t--);return e.opt_len+=3*(t+1)+5+5+4,t},Iz=(e,t,n,r)=>{let i;for(Pt(e,t-257,5),Pt(e,n-1,5),Pt(e,r-4,4),i=0;i<r;i++)Pt(e,e.bl_tree[l4[i]*2+1],3);x4(e,e.dyn_ltree,t-1),x4(e,e.dyn_dtree,n-1)},Tz=e=>{let t=4093624447,n;for(n=0;n<=31;n++,t>>>=1)if(t&1&&e.dyn_ltree[n*2]!==0)return n4;if(e.dyn_ltree[9*2]!==0||e.dyn_ltree[10*2]!==0||e.dyn_ltree[13*2]!==0)return r4;for(n=32;n<ul;n++)if(e.dyn_ltree[n*2]!==0)return r4;return n4};let A4=!1;const Mz=e=>{A4||(kz(),A4=!0),e.l_desc=new Xg(e.dyn_ltree,u4),e.d_desc=new Xg(e.dyn_dtree,f4),e.bl_desc=new Xg(e.bl_tree,h4),e.bi_buf=0,e.bi_valid=0,m4(e)},E4=(e,t,n,r)=>{Pt(e,(yz<<1)+(r?1:0),3),b4(e),gl(e,n),gl(e,~n),n&&e.pending_buf.set(e.window.subarray(t,t+n),e.pending),e.pending+=n},Nz=e=>{Pt(e,i4<<1,3),rr(e,Qg,Nr),Cz(e)},Fz=(e,t,n,r)=>{let i,a,o=0;e.level>0?(e.strm.data_type===bz&&(e.strm.data_type=Tz(e)),Jg(e,e.l_desc),Jg(e,e.d_desc),o=Dz(e),i=e.opt_len+3+7>>>3,a=e.static_len+3+7>>>3,a<=i&&(i=a)):i=a=n+5,n+4<=i&&t!==-1?E4(e,t,n,r):e.strategy===mz||a===i?(Pt(e,(i4<<1)+(r?1:0),3),v4(e,Nr,hl)):(Pt(e,(vz<<1)+(r?1:0),3),Iz(e,e.l_desc.max_code+1,e.d_desc.max_code+1,o+1),v4(e,e.dyn_ltree,e.dyn_dtree)),m4(e),r&&b4(e)},Bz=(e,t,n)=>(e.pending_buf[e.sym_buf+e.sym_next++]=t,e.pending_buf[e.sym_buf+e.sym_next++]=t>>8,e.pending_buf[e.sym_buf+e.sym_next++]=n,t===0?e.dyn_ltree[n*2]++:(e.matches++,t--,e.dyn_ltree[(pl[n]+ul+1)*2]++,e.dyn_dtree[d4(t)*2]++),e.sym_next===e.sym_end);var Lz=Mz,Oz=E4,Rz=Fz,zz=Bz,Pz=Nz,Uz={_tr_init:Lz,_tr_stored_block:Oz,_tr_flush_block:Rz,_tr_tally:zz,_tr_align:Pz},ml=(e,t,n,r)=>{let i=e&65535|0,a=e>>>16&65535|0,o=0;for(;n!==0;){o=n>2e3?2e3:n,n-=o;do i=i+t[r++]|0,a=a+i|0;while(--o);i%=65521,a%=65521}return i|a<<16|0};const jz=()=>{let e,t=[];for(var n=0;n<256;n++){e=n;for(var r=0;r<8;r++)e=e&1?3988292384^e>>>1:e>>>1;t[n]=e}return t},Hz=new Uint32Array(jz());var ht=(e,t,n,r)=>{const i=Hz,a=r+n;e^=-1;for(let o=r;o<a;o++)e=e>>>8^i[(e^t[o])&255];return e^-1},ns={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},bl={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};const{_tr_init:Gz,_tr_stored_block:em,_tr_flush_block:$z,_tr_tally:Si,_tr_align:Vz}=Uz,{Z_NO_FLUSH:Ci,Z_PARTIAL_FLUSH:Yz,Z_FULL_FLUSH:Qz,Z_FINISH:dn,Z_BLOCK:S4,Z_OK:bt,Z_STREAM_END:C4,Z_STREAM_ERROR:ir,Z_DATA_ERROR:Zz,Z_BUF_ERROR:tm,Z_DEFAULT_COMPRESSION:qz,Z_FILTERED:Wz,Z_HUFFMAN_ONLY:oh,Z_RLE:Xz,Z_FIXED:Kz,Z_DEFAULT_STRATEGY:Jz,Z_UNKNOWN:eP,Z_DEFLATED:sh}=bl,tP=9,nP=15,rP=8,iP=29,nm=256+1+iP,aP=30,oP=19,sP=2*nm+1,cP=15,he=3,_i=258,ar=_i+he+1,lP=32,rs=42,rm=57,im=69,am=73,om=91,sm=103,Pa=113,yl=666,Dt=1,is=2,Ua=3,as=4,uP=3,ja=(e,t)=>(e.msg=ns[t],t),_4=e=>e*2-(e>4?9:0),ki=e=>{let t=e.length;for(;--t>=0;)e[t]=0},fP=e=>{let t,n,r,i=e.w_size;t=e.hash_size,r=t;do n=e.head[--r],e.head[r]=n>=i?n-i:0;while(--t);t=i,r=t;do n=e.prev[--r],e.prev[r]=n>=i?n-i:0;while(--t)};let Di=(e,t,n)=>(t<<e.hash_shift^n)&e.hash_mask;const Qt=e=>{const t=e.state;let n=t.pending;n>e.avail_out&&(n=e.avail_out),n!==0&&(e.output.set(t.pending_buf.subarray(t.pending_out,t.pending_out+n),e.next_out),e.next_out+=n,t.pending_out+=n,e.total_out+=n,e.avail_out-=n,t.pending-=n,t.pending===0&&(t.pending_out=0))},Zt=(e,t)=>{$z(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,Qt(e.strm)},we=(e,t)=>{e.pending_buf[e.pending++]=t},vl=(e,t)=>{e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=t&255},cm=(e,t,n,r)=>{let i=e.avail_in;return i>r&&(i=r),i===0?0:(e.avail_in-=i,t.set(e.input.subarray(e.next_in,e.next_in+i),n),e.state.wrap===1?e.adler=ml(e.adler,t,i,n):e.state.wrap===2&&(e.adler=ht(e.adler,t,i,n)),e.next_in+=i,e.total_in+=i,i)},k4=(e,t)=>{let n=e.max_chain_length,r=e.strstart,i,a,o=e.prev_length,s=e.nice_match;const l=e.strstart>e.w_size-ar?e.strstart-(e.w_size-ar):0,c=e.window,u=e.w_mask,f=e.prev,h=e.strstart+_i;let d=c[r+o-1],p=c[r+o];e.prev_length>=e.good_match&&(n>>=2),s>e.lookahead&&(s=e.lookahead);do if(i=t,!(c[i+o]!==p||c[i+o-1]!==d||c[i]!==c[r]||c[++i]!==c[r+1])){r+=2,i++;do;while(c[++r]===c[++i]&&c[++r]===c[++i]&&c[++r]===c[++i]&&c[++r]===c[++i]&&c[++r]===c[++i]&&c[++r]===c[++i]&&c[++r]===c[++i]&&c[++r]===c[++i]&&r<h);if(a=_i-(h-r),r=h-_i,a>o){if(e.match_start=t,o=a,a>=s)break;d=c[r+o-1],p=c[r+o]}}while((t=f[t&u])>l&&--n!==0);return o<=e.lookahead?o:e.lookahead},os=e=>{const t=e.w_size;let n,r,i;do{if(r=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-ar)&&(e.window.set(e.window.subarray(t,t+t-r),0),e.match_start-=t,e.strstart-=t,e.block_start-=t,e.insert>e.strstart&&(e.insert=e.strstart),fP(e),r+=t),e.strm.avail_in===0)break;if(n=cm(e.strm,e.window,e.strstart+e.lookahead,r),e.lookahead+=n,e.lookahead+e.insert>=he)for(i=e.strstart-e.insert,e.ins_h=e.window[i],e.ins_h=Di(e,e.ins_h,e.window[i+1]);e.insert&&(e.ins_h=Di(e,e.ins_h,e.window[i+he-1]),e.prev[i&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=i,i++,e.insert--,!(e.lookahead+e.insert<he)););}while(e.lookahead<ar&&e.strm.avail_in!==0)},D4=(e,t)=>{let n=e.pending_buf_size-5>e.w_size?e.w_size:e.pending_buf_size-5,r,i,a,o=0,s=e.strm.avail_in;do{if(r=65535,a=e.bi_valid+42>>3,e.strm.avail_out<a||(a=e.strm.avail_out-a,i=e.strstart-e.block_start,r>i+e.strm.avail_in&&(r=i+e.strm.avail_in),r>a&&(r=a),r<n&&(r===0&&t!==dn||t===Ci||r!==i+e.strm.avail_in)))break;o=t===dn&&r===i+e.strm.avail_in?1:0,em(e,0,0,o),e.pending_buf[e.pending-4]=r,e.pending_buf[e.pending-3]=r>>8,e.pending_buf[e.pending-2]=~r,e.pending_buf[e.pending-1]=~r>>8,Qt(e.strm),i&&(i>r&&(i=r),e.strm.output.set(e.window.subarray(e.block_start,e.block_start+i),e.strm.next_out),e.strm.next_out+=i,e.strm.avail_out-=i,e.strm.total_out+=i,e.block_start+=i,r-=i),r&&(cm(e.strm,e.strm.output,e.strm.next_out,r),e.strm.next_out+=r,e.strm.avail_out-=r,e.strm.total_out+=r)}while(o===0);return s-=e.strm.avail_in,s&&(s>=e.w_size?(e.matches=2,e.window.set(e.strm.input.subarray(e.strm.next_in-e.w_size,e.strm.next_in),0),e.strstart=e.w_size,e.insert=e.strstart):(e.window_size-e.strstart<=s&&(e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,e.insert>e.strstart&&(e.insert=e.strstart)),e.window.set(e.strm.input.subarray(e.strm.next_in-s,e.strm.next_in),e.strstart),e.strstart+=s,e.insert+=s>e.w_size-e.insert?e.w_size-e.insert:s),e.block_start=e.strstart),e.high_water<e.strstart&&(e.high_water=e.strstart),o?as:t!==Ci&&t!==dn&&e.strm.avail_in===0&&e.strstart===e.block_start?is:(a=e.window_size-e.strstart,e.strm.avail_in>a&&e.block_start>=e.w_size&&(e.block_start-=e.w_size,e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,a+=e.w_size,e.insert>e.strstart&&(e.insert=e.strstart)),a>e.strm.avail_in&&(a=e.strm.avail_in),a&&(cm(e.strm,e.window,e.strstart,a),e.strstart+=a,e.insert+=a>e.w_size-e.insert?e.w_size-e.insert:a),e.high_water<e.strstart&&(e.high_water=e.strstart),a=e.bi_valid+42>>3,a=e.pending_buf_size-a>65535?65535:e.pending_buf_size-a,n=a>e.w_size?e.w_size:a,i=e.strstart-e.block_start,(i>=n||(i||t===dn)&&t!==Ci&&e.strm.avail_in===0&&i<=a)&&(r=i>a?a:i,o=t===dn&&e.strm.avail_in===0&&r===i?1:0,em(e,e.block_start,r,o),e.block_start+=r,Qt(e.strm)),o?Ua:Dt)},lm=(e,t)=>{let n,r;for(;;){if(e.lookahead<ar){if(os(e),e.lookahead<ar&&t===Ci)return Dt;if(e.lookahead===0)break}if(n=0,e.lookahead>=he&&(e.ins_h=Di(e,e.ins_h,e.window[e.strstart+he-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),n!==0&&e.strstart-n<=e.w_size-ar&&(e.match_length=k4(e,n)),e.match_length>=he)if(r=Si(e,e.strstart-e.match_start,e.match_length-he),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=he){e.match_length--;do e.strstart++,e.ins_h=Di(e,e.ins_h,e.window[e.strstart+he-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart;while(--e.match_length!==0);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=Di(e,e.ins_h,e.window[e.strstart+1]);else r=Si(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(r&&(Zt(e,!1),e.strm.avail_out===0))return Dt}return e.insert=e.strstart<he-1?e.strstart:he-1,t===dn?(Zt(e,!0),e.strm.avail_out===0?Ua:as):e.sym_next&&(Zt(e,!1),e.strm.avail_out===0)?Dt:is},ss=(e,t)=>{let n,r,i;for(;;){if(e.lookahead<ar){if(os(e),e.lookahead<ar&&t===Ci)return Dt;if(e.lookahead===0)break}if(n=0,e.lookahead>=he&&(e.ins_h=Di(e,e.ins_h,e.window[e.strstart+he-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=he-1,n!==0&&e.prev_length<e.max_lazy_match&&e.strstart-n<=e.w_size-ar&&(e.match_length=k4(e,n),e.match_length<=5&&(e.strategy===Wz||e.match_length===he&&e.strstart-e.match_start>4096)&&(e.match_length=he-1)),e.prev_length>=he&&e.match_length<=e.prev_length){i=e.strstart+e.lookahead-he,r=Si(e,e.strstart-1-e.prev_match,e.prev_length-he),e.lookahead-=e.prev_length-1,e.prev_length-=2;do++e.strstart<=i&&(e.ins_h=Di(e,e.ins_h,e.window[e.strstart+he-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart);while(--e.prev_length!==0);if(e.match_available=0,e.match_length=he-1,e.strstart++,r&&(Zt(e,!1),e.strm.avail_out===0))return Dt}else if(e.match_available){if(r=Si(e,0,e.window[e.strstart-1]),r&&Zt(e,!1),e.strstart++,e.lookahead--,e.strm.avail_out===0)return Dt}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(r=Si(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<he-1?e.strstart:he-1,t===dn?(Zt(e,!0),e.strm.avail_out===0?Ua:as):e.sym_next&&(Zt(e,!1),e.strm.avail_out===0)?Dt:is},hP=(e,t)=>{let n,r,i,a;const o=e.window;for(;;){if(e.lookahead<=_i){if(os(e),e.lookahead<=_i&&t===Ci)return Dt;if(e.lookahead===0)break}if(e.match_length=0,e.lookahead>=he&&e.strstart>0&&(i=e.strstart-1,r=o[i],r===o[++i]&&r===o[++i]&&r===o[++i])){a=e.strstart+_i;do;while(r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&i<a);e.match_length=_i-(a-i),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=he?(n=Si(e,1,e.match_length-he),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(n=Si(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),n&&(Zt(e,!1),e.strm.avail_out===0))return Dt}return e.insert=0,t===dn?(Zt(e,!0),e.strm.avail_out===0?Ua:as):e.sym_next&&(Zt(e,!1),e.strm.avail_out===0)?Dt:is},dP=(e,t)=>{let n;for(;;){if(e.lookahead===0&&(os(e),e.lookahead===0)){if(t===Ci)return Dt;break}if(e.match_length=0,n=Si(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,n&&(Zt(e,!1),e.strm.avail_out===0))return Dt}return e.insert=0,t===dn?(Zt(e,!0),e.strm.avail_out===0?Ua:as):e.sym_next&&(Zt(e,!1),e.strm.avail_out===0)?Dt:is};function or(e,t,n,r,i){this.good_length=e,this.max_lazy=t,this.nice_length=n,this.max_chain=r,this.func=i}const wl=[new or(0,0,0,0,D4),new or(4,4,8,4,lm),new or(4,5,16,8,lm),new or(4,6,32,32,lm),new or(4,4,16,16,ss),new or(8,16,32,32,ss),new or(8,16,128,128,ss),new or(8,32,128,256,ss),new or(32,128,258,1024,ss),new or(32,258,258,4096,ss)],pP=e=>{e.window_size=2*e.w_size,ki(e.head),e.max_lazy_match=wl[e.level].max_lazy,e.good_match=wl[e.level].good_length,e.nice_match=wl[e.level].nice_length,e.max_chain_length=wl[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=he-1,e.match_available=0,e.ins_h=0};function gP(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=sh,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(sP*2),this.dyn_dtree=new Uint16Array((2*aP+1)*2),this.bl_tree=new Uint16Array((2*oP+1)*2),ki(this.dyn_ltree),ki(this.dyn_dtree),ki(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(cP+1),this.heap=new Uint16Array(2*nm+1),ki(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*nm+1),ki(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}const xl=e=>{if(!e)return 1;const t=e.state;return!t||t.strm!==e||t.status!==rs&&t.status!==rm&&t.status!==im&&t.status!==am&&t.status!==om&&t.status!==sm&&t.status!==Pa&&t.status!==yl?1:0},I4=e=>{if(xl(e))return ja(e,ir);e.total_in=e.total_out=0,e.data_type=eP;const t=e.state;return t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap===2?rm:t.wrap?rs:Pa,e.adler=t.wrap===2?0:1,t.last_flush=-2,Gz(t),bt},T4=e=>{const t=I4(e);return t===bt&&pP(e.state),t},mP=(e,t)=>xl(e)||e.state.wrap!==2?ir:(e.state.gzhead=t,bt),M4=(e,t,n,r,i,a)=>{if(!e)return ir;let o=1;if(t===qz&&(t=6),r<0?(o=0,r=-r):r>15&&(o=2,r-=16),i<1||i>tP||n!==sh||r<8||r>15||t<0||t>9||a<0||a>Kz||r===8&&o!==1)return ja(e,ir);r===8&&(r=9);const s=new gP;return e.state=s,s.strm=e,s.status=rs,s.wrap=o,s.gzhead=null,s.w_bits=r,s.w_size=1<<s.w_bits,s.w_mask=s.w_size-1,s.hash_bits=i+7,s.hash_size=1<<s.hash_bits,s.hash_mask=s.hash_size-1,s.hash_shift=~~((s.hash_bits+he-1)/he),s.window=new Uint8Array(s.w_size*2),s.head=new Uint16Array(s.hash_size),s.prev=new Uint16Array(s.w_size),s.lit_bufsize=1<<i+6,s.pending_buf_size=s.lit_bufsize*4,s.pending_buf=new Uint8Array(s.pending_buf_size),s.sym_buf=s.lit_bufsize,s.sym_end=(s.lit_bufsize-1)*3,s.level=t,s.strategy=a,s.method=n,T4(e)},bP=(e,t)=>M4(e,t,sh,nP,rP,Jz),yP=(e,t)=>{if(xl(e)||t>S4||t<0)return e?ja(e,ir):ir;const n=e.state;if(!e.output||e.avail_in!==0&&!e.input||n.status===yl&&t!==dn)return ja(e,e.avail_out===0?tm:ir);const r=n.last_flush;if(n.last_flush=t,n.pending!==0){if(Qt(e),e.avail_out===0)return n.last_flush=-1,bt}else if(e.avail_in===0&&_4(t)<=_4(r)&&t!==dn)return ja(e,tm);if(n.status===yl&&e.avail_in!==0)return ja(e,tm);if(n.status===rs&&n.wrap===0&&(n.status=Pa),n.status===rs){let i=sh+(n.w_bits-8<<4)<<8,a=-1;if(n.strategy>=oh||n.level<2?a=0:n.level<6?a=1:n.level===6?a=2:a=3,i|=a<<6,n.strstart!==0&&(i|=lP),i+=31-i%31,vl(n,i),n.strstart!==0&&(vl(n,e.adler>>>16),vl(n,e.adler&65535)),e.adler=1,n.status=Pa,Qt(e),n.pending!==0)return n.last_flush=-1,bt}if(n.status===rm){if(e.adler=0,we(n,31),we(n,139),we(n,8),n.gzhead)we(n,(n.gzhead.text?1:0)+(n.gzhead.hcrc?2:0)+(n.gzhead.extra?4:0)+(n.gzhead.name?8:0)+(n.gzhead.comment?16:0)),we(n,n.gzhead.time&255),we(n,n.gzhead.time>>8&255),we(n,n.gzhead.time>>16&255),we(n,n.gzhead.time>>24&255),we(n,n.level===9?2:n.strategy>=oh||n.level<2?4:0),we(n,n.gzhead.os&255),n.gzhead.extra&&n.gzhead.extra.length&&(we(n,n.gzhead.extra.length&255),we(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(e.adler=ht(e.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=im;else if(we(n,0),we(n,0),we(n,0),we(n,0),we(n,0),we(n,n.level===9?2:n.strategy>=oh||n.level<2?4:0),we(n,uP),n.status=Pa,Qt(e),n.pending!==0)return n.last_flush=-1,bt}if(n.status===im){if(n.gzhead.extra){let i=n.pending,a=(n.gzhead.extra.length&65535)-n.gzindex;for(;n.pending+a>n.pending_buf_size;){let s=n.pending_buf_size-n.pending;if(n.pending_buf.set(n.gzhead.extra.subarray(n.gzindex,n.gzindex+s),n.pending),n.pending=n.pending_buf_size,n.gzhead.hcrc&&n.pending>i&&(e.adler=ht(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex+=s,Qt(e),n.pending!==0)return n.last_flush=-1,bt;i=0,a-=s}let o=new Uint8Array(n.gzhead.extra);n.pending_buf.set(o.subarray(n.gzindex,n.gzindex+a),n.pending),n.pending+=a,n.gzhead.hcrc&&n.pending>i&&(e.adler=ht(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex=0}n.status=am}if(n.status===am){if(n.gzhead.name){let i=n.pending,a;do{if(n.pending===n.pending_buf_size){if(n.gzhead.hcrc&&n.pending>i&&(e.adler=ht(e.adler,n.pending_buf,n.pending-i,i)),Qt(e),n.pending!==0)return n.last_flush=-1,bt;i=0}n.gzindex<n.gzhead.name.length?a=n.gzhead.name.charCodeAt(n.gzindex++)&255:a=0,we(n,a)}while(a!==0);n.gzhead.hcrc&&n.pending>i&&(e.adler=ht(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex=0}n.status=om}if(n.status===om){if(n.gzhead.comment){let i=n.pending,a;do{if(n.pending===n.pending_buf_size){if(n.gzhead.hcrc&&n.pending>i&&(e.adler=ht(e.adler,n.pending_buf,n.pending-i,i)),Qt(e),n.pending!==0)return n.last_flush=-1,bt;i=0}n.gzindex<n.gzhead.comment.length?a=n.gzhead.comment.charCodeAt(n.gzindex++)&255:a=0,we(n,a)}while(a!==0);n.gzhead.hcrc&&n.pending>i&&(e.adler=ht(e.adler,n.pending_buf,n.pending-i,i))}n.status=sm}if(n.status===sm){if(n.gzhead.hcrc){if(n.pending+2>n.pending_buf_size&&(Qt(e),n.pending!==0))return n.last_flush=-1,bt;we(n,e.adler&255),we(n,e.adler>>8&255),e.adler=0}if(n.status=Pa,Qt(e),n.pending!==0)return n.last_flush=-1,bt}if(e.avail_in!==0||n.lookahead!==0||t!==Ci&&n.status!==yl){let i=n.level===0?D4(n,t):n.strategy===oh?dP(n,t):n.strategy===Xz?hP(n,t):wl[n.level].func(n,t);if((i===Ua||i===as)&&(n.status=yl),i===Dt||i===Ua)return e.avail_out===0&&(n.last_flush=-1),bt;if(i===is&&(t===Yz?Vz(n):t!==S4&&(em(n,0,0,!1),t===Qz&&(ki(n.head),n.lookahead===0&&(n.strstart=0,n.block_start=0,n.insert=0))),Qt(e),e.avail_out===0))return n.last_flush=-1,bt}return t!==dn?bt:n.wrap<=0?C4:(n.wrap===2?(we(n,e.adler&255),we(n,e.adler>>8&255),we(n,e.adler>>16&255),we(n,e.adler>>24&255),we(n,e.total_in&255),we(n,e.total_in>>8&255),we(n,e.total_in>>16&255),we(n,e.total_in>>24&255)):(vl(n,e.adler>>>16),vl(n,e.adler&65535)),Qt(e),n.wrap>0&&(n.wrap=-n.wrap),n.pending!==0?bt:C4)},vP=e=>{if(xl(e))return ir;const t=e.state.status;return e.state=null,t===Pa?ja(e,Zz):bt},wP=(e,t)=>{let n=t.length;if(xl(e))return ir;const r=e.state,i=r.wrap;if(i===2||i===1&&r.status!==rs||r.lookahead)return ir;if(i===1&&(e.adler=ml(e.adler,t,n,0)),r.wrap=0,n>=r.w_size){i===0&&(ki(r.head),r.strstart=0,r.block_start=0,r.insert=0);let l=new Uint8Array(r.w_size);l.set(t.subarray(n-r.w_size,n),0),t=l,n=r.w_size}const a=e.avail_in,o=e.next_in,s=e.input;for(e.avail_in=n,e.next_in=0,e.input=t,os(r);r.lookahead>=he;){let l=r.strstart,c=r.lookahead-(he-1);do r.ins_h=Di(r,r.ins_h,r.window[l+he-1]),r.prev[l&r.w_mask]=r.head[r.ins_h],r.head[r.ins_h]=l,l++;while(--c);r.strstart=l,r.lookahead=he-1,os(r)}return r.strstart+=r.lookahead,r.block_start=r.strstart,r.insert=r.lookahead,r.lookahead=0,r.match_length=r.prev_length=he-1,r.match_available=0,e.next_in=o,e.input=s,e.avail_in=a,r.wrap=i,bt};var xP=bP,AP=M4,EP=T4,SP=I4,CP=mP,_P=yP,kP=vP,DP=wP,IP="pako deflate (from Nodeca project)",Al={deflateInit:xP,deflateInit2:AP,deflateReset:EP,deflateResetKeep:SP,deflateSetHeader:CP,deflate:_P,deflateEnd:kP,deflateSetDictionary:DP,deflateInfo:IP};const TP=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var MP=function(e){const t=Array.prototype.slice.call(arguments,1);for(;t.length;){const n=t.shift();if(n){if(typeof n!="object")throw new TypeError(n+"must be non-object");for(const r in n)TP(n,r)&&(e[r]=n[r])}}return e},NP=e=>{let t=0;for(let r=0,i=e.length;r<i;r++)t+=e[r].length;const n=new Uint8Array(t);for(let r=0,i=0,a=e.length;r<a;r++){let o=e[r];n.set(o,i),i+=o.length}return n},ch={assign:MP,flattenChunks:NP};let N4=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{N4=!1}const El=new Uint8Array(256);for(let e=0;e<256;e++)El[e]=e>=252?6:e>=248?5:e>=240?4:e>=224?3:e>=192?2:1;El[254]=El[254]=1;var FP=e=>{if(typeof TextEncoder=="function"&&TextEncoder.prototype.encode)return new TextEncoder().encode(e);let t,n,r,i,a,o=e.length,s=0;for(i=0;i<o;i++)n=e.charCodeAt(i),(n&64512)===55296&&i+1<o&&(r=e.charCodeAt(i+1),(r&64512)===56320&&(n=65536+(n-55296<<10)+(r-56320),i++)),s+=n<128?1:n<2048?2:n<65536?3:4;for(t=new Uint8Array(s),a=0,i=0;a<s;i++)n=e.charCodeAt(i),(n&64512)===55296&&i+1<o&&(r=e.charCodeAt(i+1),(r&64512)===56320&&(n=65536+(n-55296<<10)+(r-56320),i++)),n<128?t[a++]=n:n<2048?(t[a++]=192|n>>>6,t[a++]=128|n&63):n<65536?(t[a++]=224|n>>>12,t[a++]=128|n>>>6&63,t[a++]=128|n&63):(t[a++]=240|n>>>18,t[a++]=128|n>>>12&63,t[a++]=128|n>>>6&63,t[a++]=128|n&63);return t};const BP=(e,t)=>{if(t<65534&&e.subarray&&N4)return String.fromCharCode.apply(null,e.length===t?e:e.subarray(0,t));let n="";for(let r=0;r<t;r++)n+=String.fromCharCode(e[r]);return n};var LP=(e,t)=>{const n=t||e.length;if(typeof TextDecoder=="function"&&TextDecoder.prototype.decode)return new TextDecoder().decode(e.subarray(0,t));let r,i;const a=new Array(n*2);for(i=0,r=0;r<n;){let o=e[r++];if(o<128){a[i++]=o;continue}let s=El[o];if(s>4){a[i++]=65533,r+=s-1;continue}for(o&=s===2?31:s===3?15:7;s>1&&r<n;)o=o<<6|e[r++]&63,s--;if(s>1){a[i++]=65533;continue}o<65536?a[i++]=o:(o-=65536,a[i++]=55296|o>>10&1023,a[i++]=56320|o&1023)}return BP(a,i)},OP=(e,t)=>{t=t||e.length,t>e.length&&(t=e.length);let n=t-1;for(;n>=0&&(e[n]&192)===128;)n--;return n<0||n===0?t:n+El[e[n]]>t?n:t},Sl={string2buf:FP,buf2string:LP,utf8border:OP};function RP(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}var F4=RP;const B4=Object.prototype.toString,{Z_NO_FLUSH:zP,Z_SYNC_FLUSH:PP,Z_FULL_FLUSH:UP,Z_FINISH:jP,Z_OK:lh,Z_STREAM_END:HP,Z_DEFAULT_COMPRESSION:GP,Z_DEFAULT_STRATEGY:$P,Z_DEFLATED:VP}=bl;function um(e){this.options=ch.assign({level:GP,method:VP,chunkSize:16384,windowBits:15,memLevel:8,strategy:$P},e||{});let t=this.options;t.raw&&t.windowBits>0?t.windowBits=-t.windowBits:t.gzip&&t.windowBits>0&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new F4,this.strm.avail_out=0;let n=Al.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(n!==lh)throw new Error(ns[n]);if(t.header&&Al.deflateSetHeader(this.strm,t.header),t.dictionary){let r;if(typeof t.dictionary=="string"?r=Sl.string2buf(t.dictionary):B4.call(t.dictionary)==="[object ArrayBuffer]"?r=new Uint8Array(t.dictionary):r=t.dictionary,n=Al.deflateSetDictionary(this.strm,r),n!==lh)throw new Error(ns[n]);this._dict_set=!0}}um.prototype.push=function(e,t){const n=this.strm,r=this.options.chunkSize;let i,a;if(this.ended)return!1;for(t===~~t?a=t:a=t===!0?jP:zP,typeof e=="string"?n.input=Sl.string2buf(e):B4.call(e)==="[object ArrayBuffer]"?n.input=new Uint8Array(e):n.input=e,n.next_in=0,n.avail_in=n.input.length;;){if(n.avail_out===0&&(n.output=new Uint8Array(r),n.next_out=0,n.avail_out=r),(a===PP||a===UP)&&n.avail_out<=6){this.onData(n.output.subarray(0,n.next_out)),n.avail_out=0;continue}if(i=Al.deflate(n,a),i===HP)return n.next_out>0&&this.onData(n.output.subarray(0,n.next_out)),i=Al.deflateEnd(this.strm),this.onEnd(i),this.ended=!0,i===lh;if(n.avail_out===0){this.onData(n.output);continue}if(a>0&&n.next_out>0){this.onData(n.output.subarray(0,n.next_out)),n.avail_out=0;continue}if(n.avail_in===0)break}return!0},um.prototype.onData=function(e){this.chunks.push(e)},um.prototype.onEnd=function(e){e===lh&&(this.result=ch.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};const uh=16209,YP=16191;var QP=function(t,n){let r,i,a,o,s,l,c,u,f,h,d,p,g,y,v,S,k,C,E,w,A,T,D,M;const F=t.state;r=t.next_in,D=t.input,i=r+(t.avail_in-5),a=t.next_out,M=t.output,o=a-(n-t.avail_out),s=a+(t.avail_out-257),l=F.dmax,c=F.wsize,u=F.whave,f=F.wnext,h=F.window,d=F.hold,p=F.bits,g=F.lencode,y=F.distcode,v=(1<<F.lenbits)-1,S=(1<<F.distbits)-1;e:do{p<15&&(d+=D[r++]<<p,p+=8,d+=D[r++]<<p,p+=8),k=g[d&v];t:for(;;){if(C=k>>>24,d>>>=C,p-=C,C=k>>>16&255,C===0)M[a++]=k&65535;else if(C&16){E=k&65535,C&=15,C&&(p<C&&(d+=D[r++]<<p,p+=8),E+=d&(1<<C)-1,d>>>=C,p-=C),p<15&&(d+=D[r++]<<p,p+=8,d+=D[r++]<<p,p+=8),k=y[d&S];n:for(;;){if(C=k>>>24,d>>>=C,p-=C,C=k>>>16&255,C&16){if(w=k&65535,C&=15,p<C&&(d+=D[r++]<<p,p+=8,p<C&&(d+=D[r++]<<p,p+=8)),w+=d&(1<<C)-1,w>l){t.msg="invalid distance too far back",F.mode=uh;break e}if(d>>>=C,p-=C,C=a-o,w>C){if(C=w-C,C>u&&F.sane){t.msg="invalid distance too far back",F.mode=uh;break e}if(A=0,T=h,f===0){if(A+=c-C,C<E){E-=C;do M[a++]=h[A++];while(--C);A=a-w,T=M}}else if(f<C){if(A+=c+f-C,C-=f,C<E){E-=C;do M[a++]=h[A++];while(--C);if(A=0,f<E){C=f,E-=C;do M[a++]=h[A++];while(--C);A=a-w,T=M}}}else if(A+=f-C,C<E){E-=C;do M[a++]=h[A++];while(--C);A=a-w,T=M}for(;E>2;)M[a++]=T[A++],M[a++]=T[A++],M[a++]=T[A++],E-=3;E&&(M[a++]=T[A++],E>1&&(M[a++]=T[A++]))}else{A=a-w;do M[a++]=M[A++],M[a++]=M[A++],M[a++]=M[A++],E-=3;while(E>2);E&&(M[a++]=M[A++],E>1&&(M[a++]=M[A++]))}}else if(C&64){t.msg="invalid distance code",F.mode=uh;break e}else{k=y[(k&65535)+(d&(1<<C)-1)];continue n}break}}else if(C&64)if(C&32){F.mode=YP;break e}else{t.msg="invalid literal/length code",F.mode=uh;break e}else{k=g[(k&65535)+(d&(1<<C)-1)];continue t}break}}while(r<i&&a<s);E=p>>3,r-=E,p-=E<<3,d&=(1<<p)-1,t.next_in=r,t.next_out=a,t.avail_in=r<i?5+(i-r):5-(r-i),t.avail_out=a<s?257+(s-a):257-(a-s),F.hold=d,F.bits=p};const cs=15,L4=852,O4=592,R4=0,fm=1,z4=2,ZP=new Uint16Array([3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0]),qP=new Uint8Array([16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78]),WP=new Uint16Array([1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0]),XP=new Uint8Array([16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64]);var Cl=(e,t,n,r,i,a,o,s)=>{const l=s.bits;let c=0,u=0,f=0,h=0,d=0,p=0,g=0,y=0,v=0,S=0,k,C,E,w,A,T=null,D;const M=new Uint16Array(cs+1),F=new Uint16Array(cs+1);let U=null,q,V,pe;for(c=0;c<=cs;c++)M[c]=0;for(u=0;u<r;u++)M[t[n+u]]++;for(d=l,h=cs;h>=1&&M[h]===0;h--);if(d>h&&(d=h),h===0)return i[a++]=1<<24|64<<16|0,i[a++]=1<<24|64<<16|0,s.bits=1,0;for(f=1;f<h&&M[f]===0;f++);for(d<f&&(d=f),y=1,c=1;c<=cs;c++)if(y<<=1,y-=M[c],y<0)return-1;if(y>0&&(e===R4||h!==1))return-1;for(F[1]=0,c=1;c<cs;c++)F[c+1]=F[c]+M[c];for(u=0;u<r;u++)t[n+u]!==0&&(o[F[t[n+u]]++]=u);if(e===R4?(T=U=o,D=20):e===fm?(T=ZP,U=qP,D=257):(T=WP,U=XP,D=0),S=0,u=0,c=f,A=a,p=d,g=0,E=-1,v=1<<d,w=v-1,e===fm&&v>L4||e===z4&&v>O4)return 1;for(;;){q=c-g,o[u]+1<D?(V=0,pe=o[u]):o[u]>=D?(V=U[o[u]-D],pe=T[o[u]-D]):(V=32+64,pe=0),k=1<<c-g,C=1<<p,f=C;do C-=k,i[A+(S>>g)+C]=q<<24|V<<16|pe|0;while(C!==0);for(k=1<<c-1;S&k;)k>>=1;if(k!==0?(S&=k-1,S+=k):S=0,u++,--M[c]===0){if(c===h)break;c=t[n+o[u]]}if(c>d&&(S&w)!==E){for(g===0&&(g=d),A+=f,p=c-g,y=1<<p;p+g<h&&(y-=M[p+g],!(y<=0));)p++,y<<=1;if(v+=1<<p,e===fm&&v>L4||e===z4&&v>O4)return 1;E=S&w,i[E]=d<<24|p<<16|A-a|0}}return S!==0&&(i[A+S]=c-g<<24|64<<16|0),s.bits=d,0};const KP=0,P4=1,U4=2,{Z_FINISH:j4,Z_BLOCK:JP,Z_TREES:fh,Z_OK:Ha,Z_STREAM_END:eU,Z_NEED_DICT:tU,Z_STREAM_ERROR:pn,Z_DATA_ERROR:H4,Z_MEM_ERROR:G4,Z_BUF_ERROR:nU,Z_DEFLATED:$4}=bl,hh=16180,V4=16181,Y4=16182,Q4=16183,Z4=16184,q4=16185,W4=16186,X4=16187,K4=16188,J4=16189,dh=16190,Fr=16191,hm=16192,eE=16193,dm=16194,tE=16195,nE=16196,rE=16197,iE=16198,ph=16199,gh=16200,aE=16201,oE=16202,sE=16203,cE=16204,lE=16205,pm=16206,uE=16207,fE=16208,He=16209,hE=16210,dE=16211,rU=852,iU=592,aU=15,pE=e=>(e>>>24&255)+(e>>>8&65280)+((e&65280)<<8)+((e&255)<<24);function oU(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}const Ga=e=>{if(!e)return 1;const t=e.state;return!t||t.strm!==e||t.mode<hh||t.mode>dE?1:0},gE=e=>{if(Ga(e))return pn;const t=e.state;return e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=t.wrap&1),t.mode=hh,t.last=0,t.havedict=0,t.flags=-1,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Int32Array(rU),t.distcode=t.distdyn=new Int32Array(iU),t.sane=1,t.back=-1,Ha},mE=e=>{if(Ga(e))return pn;const t=e.state;return t.wsize=0,t.whave=0,t.wnext=0,gE(e)},bE=(e,t)=>{let n;if(Ga(e))return pn;const r=e.state;return t<0?(n=0,t=-t):(n=(t>>4)+5,t<48&&(t&=15)),t&&(t<8||t>15)?pn:(r.window!==null&&r.wbits!==t&&(r.window=null),r.wrap=n,r.wbits=t,mE(e))},yE=(e,t)=>{if(!e)return pn;const n=new oU;e.state=n,n.strm=e,n.window=null,n.mode=hh;const r=bE(e,t);return r!==Ha&&(e.state=null),r},sU=e=>yE(e,aU);let vE=!0,gm,mm;const cU=e=>{if(vE){gm=new Int32Array(512),mm=new Int32Array(32);let t=0;for(;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(Cl(P4,e.lens,0,288,gm,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;Cl(U4,e.lens,0,32,mm,0,e.work,{bits:5}),vE=!1}e.lencode=gm,e.lenbits=9,e.distcode=mm,e.distbits=5},wE=(e,t,n,r)=>{let i;const a=e.state;return a.window===null&&(a.wsize=1<<a.wbits,a.wnext=0,a.whave=0,a.window=new Uint8Array(a.wsize)),r>=a.wsize?(a.window.set(t.subarray(n-a.wsize,n),0),a.wnext=0,a.whave=a.wsize):(i=a.wsize-a.wnext,i>r&&(i=r),a.window.set(t.subarray(n-r,n-r+i),a.wnext),r-=i,r?(a.window.set(t.subarray(n-r,n),0),a.wnext=r,a.whave=a.wsize):(a.wnext+=i,a.wnext===a.wsize&&(a.wnext=0),a.whave<a.wsize&&(a.whave+=i))),0},lU=(e,t)=>{let n,r,i,a,o,s,l,c,u,f,h,d,p,g,y=0,v,S,k,C,E,w,A,T;const D=new Uint8Array(4);let M,F;const U=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(Ga(e)||!e.output||!e.input&&e.avail_in!==0)return pn;n=e.state,n.mode===Fr&&(n.mode=hm),o=e.next_out,i=e.output,l=e.avail_out,a=e.next_in,r=e.input,s=e.avail_in,c=n.hold,u=n.bits,f=s,h=l,T=Ha;e:for(;;)switch(n.mode){case hh:if(n.wrap===0){n.mode=hm;break}for(;u<16;){if(s===0)break e;s--,c+=r[a++]<<u,u+=8}if(n.wrap&2&&c===35615){n.wbits===0&&(n.wbits=15),n.check=0,D[0]=c&255,D[1]=c>>>8&255,n.check=ht(n.check,D,2,0),c=0,u=0,n.mode=V4;break}if(n.head&&(n.head.done=!1),!(n.wrap&1)||(((c&255)<<8)+(c>>8))%31){e.msg="incorrect header check",n.mode=He;break}if((c&15)!==$4){e.msg="unknown compression method",n.mode=He;break}if(c>>>=4,u-=4,A=(c&15)+8,n.wbits===0&&(n.wbits=A),A>15||A>n.wbits){e.msg="invalid window size",n.mode=He;break}n.dmax=1<<n.wbits,n.flags=0,e.adler=n.check=1,n.mode=c&512?J4:Fr,c=0,u=0;break;case V4:for(;u<16;){if(s===0)break e;s--,c+=r[a++]<<u,u+=8}if(n.flags=c,(n.flags&255)!==$4){e.msg="unknown compression method",n.mode=He;break}if(n.flags&57344){e.msg="unknown header flags set",n.mode=He;break}n.head&&(n.head.text=c>>8&1),n.flags&512&&n.wrap&4&&(D[0]=c&255,D[1]=c>>>8&255,n.check=ht(n.check,D,2,0)),c=0,u=0,n.mode=Y4;case Y4:for(;u<32;){if(s===0)break e;s--,c+=r[a++]<<u,u+=8}n.head&&(n.head.time=c),n.flags&512&&n.wrap&4&&(D[0]=c&255,D[1]=c>>>8&255,D[2]=c>>>16&255,D[3]=c>>>24&255,n.check=ht(n.check,D,4,0)),c=0,u=0,n.mode=Q4;case Q4:for(;u<16;){if(s===0)break e;s--,c+=r[a++]<<u,u+=8}n.head&&(n.head.xflags=c&255,n.head.os=c>>8),n.flags&512&&n.wrap&4&&(D[0]=c&255,D[1]=c>>>8&255,n.check=ht(n.check,D,2,0)),c=0,u=0,n.mode=Z4;case Z4:if(n.flags&1024){for(;u<16;){if(s===0)break e;s--,c+=r[a++]<<u,u+=8}n.length=c,n.head&&(n.head.extra_len=c),n.flags&512&&n.wrap&4&&(D[0]=c&255,D[1]=c>>>8&255,n.check=ht(n.check,D,2,0)),c=0,u=0}else n.head&&(n.head.extra=null);n.mode=q4;case q4:if(n.flags&1024&&(d=n.length,d>s&&(d=s),d&&(n.head&&(A=n.head.extra_len-n.length,n.head.extra||(n.head.extra=new Uint8Array(n.head.extra_len)),n.head.extra.set(r.subarray(a,a+d),A)),n.flags&512&&n.wrap&4&&(n.check=ht(n.check,r,d,a)),s-=d,a+=d,n.length-=d),n.length))break e;n.length=0,n.mode=W4;case W4:if(n.flags&2048){if(s===0)break e;d=0;do A=r[a+d++],n.head&&A&&n.length<65536&&(n.head.name+=String.fromCharCode(A));while(A&&d<s);if(n.flags&512&&n.wrap&4&&(n.check=ht(n.check,r,d,a)),s-=d,a+=d,A)break e}else n.head&&(n.head.name=null);n.length=0,n.mode=X4;case X4:if(n.flags&4096){if(s===0)break e;d=0;do A=r[a+d++],n.head&&A&&n.length<65536&&(n.head.comment+=String.fromCharCode(A));while(A&&d<s);if(n.flags&512&&n.wrap&4&&(n.check=ht(n.check,r,d,a)),s-=d,a+=d,A)break e}else n.head&&(n.head.comment=null);n.mode=K4;case K4:if(n.flags&512){for(;u<16;){if(s===0)break e;s--,c+=r[a++]<<u,u+=8}if(n.wrap&4&&c!==(n.check&65535)){e.msg="header crc mismatch",n.mode=He;break}c=0,u=0}n.head&&(n.head.hcrc=n.flags>>9&1,n.head.done=!0),e.adler=n.check=0,n.mode=Fr;break;case J4:for(;u<32;){if(s===0)break e;s--,c+=r[a++]<<u,u+=8}e.adler=n.check=pE(c),c=0,u=0,n.mode=dh;case dh:if(n.havedict===0)return e.next_out=o,e.avail_out=l,e.next_in=a,e.avail_in=s,n.hold=c,n.bits=u,tU;e.adler=n.check=1,n.mode=Fr;case Fr:if(t===JP||t===fh)break e;case hm:if(n.last){c>>>=u&7,u-=u&7,n.mode=pm;break}for(;u<3;){if(s===0)break e;s--,c+=r[a++]<<u,u+=8}switch(n.last=c&1,c>>>=1,u-=1,c&3){case 0:n.mode=eE;break;case 1:if(cU(n),n.mode=ph,t===fh){c>>>=2,u-=2;break e}break;case 2:n.mode=nE;break;case 3:e.msg="invalid block type",n.mode=He}c>>>=2,u-=2;break;case eE:for(c>>>=u&7,u-=u&7;u<32;){if(s===0)break e;s--,c+=r[a++]<<u,u+=8}if((c&65535)!==(c>>>16^65535)){e.msg="invalid stored block lengths",n.mode=He;break}if(n.length=c&65535,c=0,u=0,n.mode=dm,t===fh)break e;case dm:n.mode=tE;case tE:if(d=n.length,d){if(d>s&&(d=s),d>l&&(d=l),d===0)break e;i.set(r.subarray(a,a+d),o),s-=d,a+=d,l-=d,o+=d,n.length-=d;break}n.mode=Fr;break;case nE:for(;u<14;){if(s===0)break e;s--,c+=r[a++]<<u,u+=8}if(n.nlen=(c&31)+257,c>>>=5,u-=5,n.ndist=(c&31)+1,c>>>=5,u-=5,n.ncode=(c&15)+4,c>>>=4,u-=4,n.nlen>286||n.ndist>30){e.msg="too many length or distance symbols",n.mode=He;break}n.have=0,n.mode=rE;case rE:for(;n.have<n.ncode;){for(;u<3;){if(s===0)break e;s--,c+=r[a++]<<u,u+=8}n.lens[U[n.have++]]=c&7,c>>>=3,u-=3}for(;n.have<19;)n.lens[U[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,M={bits:n.lenbits},T=Cl(KP,n.lens,0,19,n.lencode,0,n.work,M),n.lenbits=M.bits,T){e.msg="invalid code lengths set",n.mode=He;break}n.have=0,n.mode=iE;case iE:for(;n.have<n.nlen+n.ndist;){for(;y=n.lencode[c&(1<<n.lenbits)-1],v=y>>>24,S=y>>>16&255,k=y&65535,!(v<=u);){if(s===0)break e;s--,c+=r[a++]<<u,u+=8}if(k<16)c>>>=v,u-=v,n.lens[n.have++]=k;else{if(k===16){for(F=v+2;u<F;){if(s===0)break e;s--,c+=r[a++]<<u,u+=8}if(c>>>=v,u-=v,n.have===0){e.msg="invalid bit length repeat",n.mode=He;break}A=n.lens[n.have-1],d=3+(c&3),c>>>=2,u-=2}else if(k===17){for(F=v+3;u<F;){if(s===0)break e;s--,c+=r[a++]<<u,u+=8}c>>>=v,u-=v,A=0,d=3+(c&7),c>>>=3,u-=3}else{for(F=v+7;u<F;){if(s===0)break e;s--,c+=r[a++]<<u,u+=8}c>>>=v,u-=v,A=0,d=11+(c&127),c>>>=7,u-=7}if(n.have+d>n.nlen+n.ndist){e.msg="invalid bit length repeat",n.mode=He;break}for(;d--;)n.lens[n.have++]=A}}if(n.mode===He)break;if(n.lens[256]===0){e.msg="invalid code -- missing end-of-block",n.mode=He;break}if(n.lenbits=9,M={bits:n.lenbits},T=Cl(P4,n.lens,0,n.nlen,n.lencode,0,n.work,M),n.lenbits=M.bits,T){e.msg="invalid literal/lengths set",n.mode=He;break}if(n.distbits=6,n.distcode=n.distdyn,M={bits:n.distbits},T=Cl(U4,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,M),n.distbits=M.bits,T){e.msg="invalid distances set",n.mode=He;break}if(n.mode=ph,t===fh)break e;case ph:n.mode=gh;case gh:if(s>=6&&l>=258){e.next_out=o,e.avail_out=l,e.next_in=a,e.avail_in=s,n.hold=c,n.bits=u,QP(e,h),o=e.next_out,i=e.output,l=e.avail_out,a=e.next_in,r=e.input,s=e.avail_in,c=n.hold,u=n.bits,n.mode===Fr&&(n.back=-1);break}for(n.back=0;y=n.lencode[c&(1<<n.lenbits)-1],v=y>>>24,S=y>>>16&255,k=y&65535,!(v<=u);){if(s===0)break e;s--,c+=r[a++]<<u,u+=8}if(S&&!(S&240)){for(C=v,E=S,w=k;y=n.lencode[w+((c&(1<<C+E)-1)>>C)],v=y>>>24,S=y>>>16&255,k=y&65535,!(C+v<=u);){if(s===0)break e;s--,c+=r[a++]<<u,u+=8}c>>>=C,u-=C,n.back+=C}if(c>>>=v,u-=v,n.back+=v,n.length=k,S===0){n.mode=lE;break}if(S&32){n.back=-1,n.mode=Fr;break}if(S&64){e.msg="invalid literal/length code",n.mode=He;break}n.extra=S&15,n.mode=aE;case aE:if(n.extra){for(F=n.extra;u<F;){if(s===0)break e;s--,c+=r[a++]<<u,u+=8}n.length+=c&(1<<n.extra)-1,c>>>=n.extra,u-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=oE;case oE:for(;y=n.distcode[c&(1<<n.distbits)-1],v=y>>>24,S=y>>>16&255,k=y&65535,!(v<=u);){if(s===0)break e;s--,c+=r[a++]<<u,u+=8}if(!(S&240)){for(C=v,E=S,w=k;y=n.distcode[w+((c&(1<<C+E)-1)>>C)],v=y>>>24,S=y>>>16&255,k=y&65535,!(C+v<=u);){if(s===0)break e;s--,c+=r[a++]<<u,u+=8}c>>>=C,u-=C,n.back+=C}if(c>>>=v,u-=v,n.back+=v,S&64){e.msg="invalid distance code",n.mode=He;break}n.offset=k,n.extra=S&15,n.mode=sE;case sE:if(n.extra){for(F=n.extra;u<F;){if(s===0)break e;s--,c+=r[a++]<<u,u+=8}n.offset+=c&(1<<n.extra)-1,c>>>=n.extra,u-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){e.msg="invalid distance too far back",n.mode=He;break}n.mode=cE;case cE:if(l===0)break e;if(d=h-l,n.offset>d){if(d=n.offset-d,d>n.whave&&n.sane){e.msg="invalid distance too far back",n.mode=He;break}d>n.wnext?(d-=n.wnext,p=n.wsize-d):p=n.wnext-d,d>n.length&&(d=n.length),g=n.window}else g=i,p=o-n.offset,d=n.length;d>l&&(d=l),l-=d,n.length-=d;do i[o++]=g[p++];while(--d);n.length===0&&(n.mode=gh);break;case lE:if(l===0)break e;i[o++]=n.length,l--,n.mode=gh;break;case pm:if(n.wrap){for(;u<32;){if(s===0)break e;s--,c|=r[a++]<<u,u+=8}if(h-=l,e.total_out+=h,n.total+=h,n.wrap&4&&h&&(e.adler=n.check=n.flags?ht(n.check,i,h,o-h):ml(n.check,i,h,o-h)),h=l,n.wrap&4&&(n.flags?c:pE(c))!==n.check){e.msg="incorrect data check",n.mode=He;break}c=0,u=0}n.mode=uE;case uE:if(n.wrap&&n.flags){for(;u<32;){if(s===0)break e;s--,c+=r[a++]<<u,u+=8}if(n.wrap&4&&c!==(n.total&4294967295)){e.msg="incorrect length check",n.mode=He;break}c=0,u=0}n.mode=fE;case fE:T=eU;break e;case He:T=H4;break e;case hE:return G4;case dE:default:return pn}return e.next_out=o,e.avail_out=l,e.next_in=a,e.avail_in=s,n.hold=c,n.bits=u,(n.wsize||h!==e.avail_out&&n.mode<He&&(n.mode<pm||t!==j4))&&wE(e,e.output,e.next_out,h-e.avail_out),f-=e.avail_in,h-=e.avail_out,e.total_in+=f,e.total_out+=h,n.total+=h,n.wrap&4&&h&&(e.adler=n.check=n.flags?ht(n.check,i,h,e.next_out-h):ml(n.check,i,h,e.next_out-h)),e.data_type=n.bits+(n.last?64:0)+(n.mode===Fr?128:0)+(n.mode===ph||n.mode===dm?256:0),(f===0&&h===0||t===j4)&&T===Ha&&(T=nU),T},uU=e=>{if(Ga(e))return pn;let t=e.state;return t.window&&(t.window=null),e.state=null,Ha},fU=(e,t)=>{if(Ga(e))return pn;const n=e.state;return n.wrap&2?(n.head=t,t.done=!1,Ha):pn},hU=(e,t)=>{const n=t.length;let r,i,a;return Ga(e)||(r=e.state,r.wrap!==0&&r.mode!==dh)?pn:r.mode===dh&&(i=1,i=ml(i,t,n,0),i!==r.check)?H4:(a=wE(e,t,n,n),a?(r.mode=hE,G4):(r.havedict=1,Ha))};var dU=mE,pU=bE,gU=gE,mU=sU,bU=yE,yU=lU,vU=uU,wU=fU,xU=hU,AU="pako inflate (from Nodeca project)",Br={inflateReset:dU,inflateReset2:pU,inflateResetKeep:gU,inflateInit:mU,inflateInit2:bU,inflate:yU,inflateEnd:vU,inflateGetHeader:wU,inflateSetDictionary:xU,inflateInfo:AU};function EU(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}var SU=EU;const xE=Object.prototype.toString,{Z_NO_FLUSH:CU,Z_FINISH:_U,Z_OK:_l,Z_STREAM_END:bm,Z_NEED_DICT:ym,Z_STREAM_ERROR:kU,Z_DATA_ERROR:AE,Z_MEM_ERROR:DU}=bl;function kl(e){this.options=ch.assign({chunkSize:1024*64,windowBits:15,to:""},e||{});const t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,t.windowBits===0&&(t.windowBits=-15)),t.windowBits>=0&&t.windowBits<16&&!(e&&e.windowBits)&&(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&(t.windowBits&15||(t.windowBits|=15)),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new F4,this.strm.avail_out=0;let n=Br.inflateInit2(this.strm,t.windowBits);if(n!==_l)throw new Error(ns[n]);if(this.header=new SU,Br.inflateGetHeader(this.strm,this.header),t.dictionary&&(typeof t.dictionary=="string"?t.dictionary=Sl.string2buf(t.dictionary):xE.call(t.dictionary)==="[object ArrayBuffer]"&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(n=Br.inflateSetDictionary(this.strm,t.dictionary),n!==_l)))throw new Error(ns[n])}kl.prototype.push=function(e,t){const n=this.strm,r=this.options.chunkSize,i=this.options.dictionary;let a,o,s;if(this.ended)return!1;for(t===~~t?o=t:o=t===!0?_U:CU,xE.call(e)==="[object ArrayBuffer]"?n.input=new Uint8Array(e):n.input=e,n.next_in=0,n.avail_in=n.input.length;;){for(n.avail_out===0&&(n.output=new Uint8Array(r),n.next_out=0,n.avail_out=r),a=Br.inflate(n,o),a===ym&&i&&(a=Br.inflateSetDictionary(n,i),a===_l?a=Br.inflate(n,o):a===AE&&(a=ym));n.avail_in>0&&a===bm&&n.state.wrap>0&&e[n.next_in]!==0;)Br.inflateReset(n),a=Br.inflate(n,o);switch(a){case kU:case AE:case ym:case DU:return this.onEnd(a),this.ended=!0,!1}if(s=n.avail_out,n.next_out&&(n.avail_out===0||a===bm))if(this.options.to==="string"){let l=Sl.utf8border(n.output,n.next_out),c=n.next_out-l,u=Sl.buf2string(n.output,l);n.next_out=c,n.avail_out=r-c,c&&n.output.set(n.output.subarray(l,l+c),0),this.onData(u)}else this.onData(n.output.length===n.next_out?n.output:n.output.subarray(0,n.next_out));if(!(a===_l&&s===0)){if(a===bm)return a=Br.inflateEnd(this.strm),this.onEnd(a),this.ended=!0,!0;if(n.avail_in===0)break}}return!0},kl.prototype.onData=function(e){this.chunks.push(e)},kl.prototype.onEnd=function(e){e===_l&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=ch.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function vm(e,t){const n=new kl(t);if(n.push(e),n.err)throw n.msg||ns[n.err];return n.result}function IU(e,t){return t=t||{},t.raw=!0,vm(e,t)}var TU=kl,MU=vm,NU=IU,FU=vm,BU=bl,LU={Inflate:TU,inflate:MU,inflateRaw:NU,ungzip:FU,constants:BU};const{Inflate:oq,inflate:sq,inflateRaw:OU,ungzip:cq}=LU;var RU=OU;function zU(e){return RU(e.subarray(2))}class PU extends Error{constructor(t){super(t),this.code="ERR_ABORTED"}}function UU(e){e.sort((i,a)=>Number(i.offset)-Number(a.offset));const t=[];let n,r;for(const i of e)n&&r&&Number(i.offset)-r<=2e3?(n.length=BigInt(Number(n.length)+Number(i.length)-r+Number(i.offset)),n.blocks.push(i)):t.push(n={blocks:[i],length:i.length,offset:i.offset}),r=Number(n.offset)+Number(n.length);return t}function mh(e){if(e&&e.aborted)if(typeof DOMException>"u"){const t=new PU("aborted");throw t.code="ERR_ABORTED",t}else throw new DOMException("aborted","AbortError")}const jU=1,HU=2,GU=3;function wm(e,t,n,r){return e<r&&t>=n}function $U(e){const t=e?"big":"little",n=new ae().endianess(t).uint32("chromId").uint32("start").uint32("end").uint32("validCnt").floatle("minScore").floatle("maxScore").floatle("sumData").floatle("sumSqData").saveOffset("offset"),r=new ae().endianess(t).uint8("isLeaf").skip(1).uint16("cnt").choice({tag:"isLeaf",choices:{1:new ae().endianess(t).array("blocksToFetch",{length:"cnt",type:new ae().endianess(t).uint32("startChrom").uint32("startBase").uint32("endChrom").uint32("endBase").uint64("blockOffset").uint64("blockSize").saveOffset("offset")}),0:new ae().array("recurOffsets",{length:"cnt",type:new ae().endianess(t).uint32("startChrom").uint32("startBase").uint32("endChrom").uint32("endBase").uint64("blockOffset").saveOffset("offset")})}}),i=new ae().endianess(t).uint32("chromId").int32("start").int32("end").string("rest",{zeroTerminated:!0}).saveOffset("offset");return{bigWigParser:new ae().endianess(t).skip(4).int32("blockStart").skip(4).uint32("itemStep").uint32("itemSpan").uint8("blockType").skip(1).uint16("itemCount").choice({tag:"blockType",choices:{[GU]:new ae().array("items",{length:"itemCount",type:new ae().floatle("score")}),[HU]:new ae().array("items",{length:"itemCount",type:new ae().endianess(t).int32("start").floatle("score")}),[jU]:new ae().array("items",{length:"itemCount",type:new ae().endianess(t).int32("start").int32("end").floatle("score")})}}),bigBedParser:i,summaryParser:n,leafParser:r}}class EE{constructor(t,n,r,i,a,o){if(this.bbi=t,this.refsByName=n,this.cirTreeOffset=r,this.isBigEndian=i,this.isCompressed=a,this.blockType=o,this.featureCache=new Gg({cache:new t4({maxSize:1e3}),fill:async(l,c)=>{const u=Number(l.length),f=Number(l.offset),{buffer:h}=await this.bbi.read(Vt.Buffer.alloc(u),0,u,f,{signal:c});return h}}),!(r>=0))throw new Error("invalid cirTreeOffset!");const s=$U(i);this.leafParser=s.leafParser,this.bigBedParser=s.bigBedParser}async readWigData(t,n,r,i,a){try{const{refsByName:o,bbi:s,cirTreeOffset:l,isBigEndian:c}=this,u=o[t];u===void 0&&i.complete();const f={chrId:u,start:n,end:r};this.cirTreePromise||(this.cirTreePromise=s.read(Vt.Buffer.alloc(48),0,48,Number(l),a));const{buffer:h}=await this.cirTreePromise,d=c?h.readUInt32BE(4):h.readUInt32LE(4);let p=[],g=0;const y=(C,E,w)=>{try{const A=C.subarray(E),T=this.leafParser.parse(A);if(T.blocksToFetch&&(p=p.concat(T.blocksToFetch.filter(D=>v(D)).map(D=>({offset:D.blockOffset,length:D.blockSize})))),T.recurOffsets){const D=T.recurOffsets.filter(M=>v(M)).map(M=>Number(M.blockOffset));D.length>0&&k(D,w+1)}}catch(A){i.error(A)}},v=C=>{const{startChrom:E,startBase:w,endChrom:A,endBase:T}=C;return(E<u||E===u&&w<=r)&&(A>u||A===u&&T>=n)},S=async(C,E,w)=>{try{const A=E.max()-E.min(),T=E.min(),D=await this.featureCache.get(`${A}_${T}`,{length:A,offset:T},a==null?void 0:a.signal);for(const M of C)E.contains(M)&&(y(D,M-T,w),g-=1,g===0&&this.readFeatures(i,p,{...a,request:f}))}catch(A){i.error(A)}},k=(C,E)=>{try{g+=C.length;const w=4+Number(d)*32;let A=new Ei(C[0],C[0]+w);for(let T=1;T<C.length;T+=1){const D=new Ei(C[T],C[T]+w);A=A.union(D)}A.getRanges().map(T=>S(C,T,E))}catch(w){i.error(w)}};return k([Number(l)+48],1)}catch(o){i.error(o)}}parseSummaryBlock(t,n,r){const i=[];let a=n;const o=new DataView(t.buffer,t.byteOffset,t.length);for(;a<t.byteLength;){const s=o.getUint32(a,!0);a+=4;const l=o.getUint32(a,!0);a+=4;const c=o.getUint32(a,!0);a+=4;const u=o.getUint32(a,!0);a+=4;const f=o.getFloat32(a,!0);a+=4;const h=o.getFloat32(a,!0);a+=4;const d=o.getFloat32(a,!0);a+=4,a+=4,(!r||s===r.chrId&&wm(l,c,r.start,r.end))&&i.push({start:l,end:c,maxScore:h,minScore:f,summary:!0,score:d/(u||1)})}return i}parseBigBedBlock(t,n,r,i){const a=[];let o=n;for(;o<t.byteLength;){const s=this.bigBedParser.parse(t.subarray(o));a.push({...s,uniqueId:`bb-${r+o}`}),o+=s.offset}return i?a.filter(s=>wm(s.start,s.end,i.start,i.end)):a}parseBigWigBlock(t,n,r){const i=t.subarray(n),a=new DataView(i.buffer,i.byteOffset,i.length);let o=0;o+=4;const s=a.getInt32(o,!0);o+=8;const l=a.getUint32(o,!0);o+=4;const c=a.getUint32(o,!0);o+=4;const u=a.getUint8(o);o+=2;const f=a.getUint16(o,!0);o+=2;const h=new Array(f);switch(u){case 1:{for(let d=0;d<f;d++){const p=a.getInt32(o,!0);o+=4;const g=a.getInt32(o,!0);o+=4;const y=a.getFloat32(o,!0);o+=4,h[d]={start:p,end:g,score:y}}break}case 2:{for(let d=0;d<f;d++){const p=a.getInt32(o,!0);o+=4;const g=a.getFloat32(o,!0);o+=4,h[d]={score:g,start:p,end:p+c}}break}case 3:{for(let d=0;d<f;d++){const p=a.getFloat32(o,!0);o+=4;const g=s+d*l;h[d]={score:p,start:g,end:g+c}}break}}return r?h.filter(d=>wm(d.start,d.end,r.start,r.end)):h}async readFeatures(t,n,r={}){try{const{blockType:i,isCompressed:a}=this,{signal:o,request:s}=r,l=UU(n);mh(o),await Promise.all(l.map(async c=>{mh(o);const{length:u,offset:f}=c,h=await this.featureCache.get(`${u}_${f}`,c,o);for(const d of c.blocks){mh(o);let p=Number(d.offset)-Number(c.offset),g=h;switch(a&&(g=zU(h.subarray(p)),p=0),mh(o),i){case"summary":{t.next(this.parseSummaryBlock(g,p,s));break}case"bigwig":{t.next(this.parseBigWigBlock(g,p,s));break}case"bigbed":{t.next(this.parseBigBedBlock(g,p,Number(d.offset)*(1<<8),s));break}default:console.warn(`Don't know what to do with ${i}`)}}})),t.complete()}catch(i){t.error(i)}}}var xm=function(e,t){return xm=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,r){n.__proto__=r}||function(n,r){for(var i in r)Object.prototype.hasOwnProperty.call(r,i)&&(n[i]=r[i])},xm(e,t)};function Am(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");xm(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}function VU(e,t,n,r){function i(a){return a instanceof n?a:new n(function(o){o(a)})}return new(n||(n=Promise))(function(a,o){function s(u){try{c(r.next(u))}catch(f){o(f)}}function l(u){try{c(r.throw(u))}catch(f){o(f)}}function c(u){u.done?a(u.value):i(u.value).then(s,l)}c((r=r.apply(e,t||[])).next())})}function SE(e,t){var n={label:0,sent:function(){if(a[0]&1)throw a[1];return a[1]},trys:[],ops:[]},r,i,a,o;return o={next:s(0),throw:s(1),return:s(2)},typeof Symbol=="function"&&(o[Symbol.iterator]=function(){return this}),o;function s(c){return function(u){return l([c,u])}}function l(c){if(r)throw new TypeError("Generator is already executing.");for(;n;)try{if(r=1,i&&(a=c[0]&2?i.return:c[0]?i.throw||((a=i.return)&&a.call(i),0):i.next)&&!(a=a.call(i,c[1])).done)return a;switch(i=0,a&&(c=[c[0]&2,a.value]),c[0]){case 0:case 1:a=c;break;case 4:return n.label++,{value:c[1],done:!1};case 5:n.label++,i=c[1],c=[0];continue;case 7:c=n.ops.pop(),n.trys.pop();continue;default:if(a=n.trys,!(a=a.length>0&&a[a.length-1])&&(c[0]===6||c[0]===2)){n=0;continue}if(c[0]===3&&(!a||c[1]>a[0]&&c[1]<a[3])){n.label=c[1];break}if(c[0]===6&&n.label<a[1]){n.label=a[1],a=c;break}if(a&&n.label<a[2]){n.label=a[2],n.ops.push(c);break}a[2]&&n.ops.pop(),n.trys.pop();continue}c=t.call(e,n)}catch(u){c=[6,u],i=0}finally{r=a=0}if(c[0]&5)throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}function Dl(e){var t=typeof Symbol=="function"&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&typeof e.length=="number")return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function bh(e,t){var n=typeof Symbol=="function"&&e[Symbol.iterator];if(!n)return e;var r=n.call(e),i,a=[],o;try{for(;(t===void 0||t-- >0)&&!(i=r.next()).done;)a.push(i.value)}catch(s){o={error:s}}finally{try{i&&!i.done&&(n=r.return)&&n.call(r)}finally{if(o)throw o.error}}return a}function yh(e,t,n){if(n||arguments.length===2)for(var r=0,i=t.length,a;r<i;r++)(a||!(r in t))&&(a||(a=Array.prototype.slice.call(t,0,r)),a[r]=t[r]);return e.concat(a||Array.prototype.slice.call(t))}function ls(e){return this instanceof ls?(this.v=e,this):new ls(e)}function YU(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r=n.apply(e,t||[]),i,a=[];return i={},o("next"),o("throw"),o("return"),i[Symbol.asyncIterator]=function(){return this},i;function o(h){r[h]&&(i[h]=function(d){return new Promise(function(p,g){a.push([h,d,p,g])>1||s(h,d)})})}function s(h,d){try{l(r[h](d))}catch(p){f(a[0][3],p)}}function l(h){h.value instanceof ls?Promise.resolve(h.value.v).then(c,u):f(a[0][2],h)}function c(h){s("next",h)}function u(h){s("throw",h)}function f(h,d){h(d),a.shift(),a.length&&s(a[0][0],a[0][1])}}function QU(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t=e[Symbol.asyncIterator],n;return t?t.call(e):(e=typeof Dl=="function"?Dl(e):e[Symbol.iterator](),n={},r("next"),r("throw"),r("return"),n[Symbol.asyncIterator]=function(){return this},n);function r(a){n[a]=e[a]&&function(o){return new Promise(function(s,l){o=e[a](o),i(s,l,o.done,o.value)})}}function i(a,o,s,l){Promise.resolve(l).then(function(c){a({value:c,done:s})},o)}}function ot(e){return typeof e=="function"}function CE(e){var t=function(r){Error.call(r),r.stack=new Error().stack},n=e(t);return n.prototype=Object.create(Error.prototype),n.prototype.constructor=n,n}var Em=CE(function(e){return function(n){e(this),this.message=n?n.length+` errors occurred during unsubscription:
1384
+ `+n.map(function(r,i){return i+1+") "+r.toString()}).join(`
1385
+ `):"",this.name="UnsubscriptionError",this.errors=n}});function _E(e,t){if(e){var n=e.indexOf(t);0<=n&&e.splice(n,1)}}var Sm=function(){function e(t){this.initialTeardown=t,this.closed=!1,this._parentage=null,this._finalizers=null}return e.prototype.unsubscribe=function(){var t,n,r,i,a;if(!this.closed){this.closed=!0;var o=this._parentage;if(o)if(this._parentage=null,Array.isArray(o))try{for(var s=Dl(o),l=s.next();!l.done;l=s.next()){var c=l.value;c.remove(this)}}catch(g){t={error:g}}finally{try{l&&!l.done&&(n=s.return)&&n.call(s)}finally{if(t)throw t.error}}else o.remove(this);var u=this.initialTeardown;if(ot(u))try{u()}catch(g){a=g instanceof Em?g.errors:[g]}var f=this._finalizers;if(f){this._finalizers=null;try{for(var h=Dl(f),d=h.next();!d.done;d=h.next()){var p=d.value;try{DE(p)}catch(g){a=a??[],g instanceof Em?a=yh(yh([],bh(a)),bh(g.errors)):a.push(g)}}}catch(g){r={error:g}}finally{try{d&&!d.done&&(i=h.return)&&i.call(h)}finally{if(r)throw r.error}}}if(a)throw new Em(a)}},e.prototype.add=function(t){var n;if(t&&t!==this)if(this.closed)DE(t);else{if(t instanceof e){if(t.closed||t._hasParent(this))return;t._addParent(this)}(this._finalizers=(n=this._finalizers)!==null&&n!==void 0?n:[]).push(t)}},e.prototype._hasParent=function(t){var n=this._parentage;return n===t||Array.isArray(n)&&n.includes(t)},e.prototype._addParent=function(t){var n=this._parentage;this._parentage=Array.isArray(n)?(n.push(t),n):n?[n,t]:t},e.prototype._removeParent=function(t){var n=this._parentage;n===t?this._parentage=null:Array.isArray(n)&&_E(n,t)},e.prototype.remove=function(t){var n=this._finalizers;n&&_E(n,t),t instanceof e&&t._removeParent(this)},e.EMPTY=function(){var t=new e;return t.closed=!0,t}(),e}();Sm.EMPTY;function kE(e){return e instanceof Sm||e&&"closed"in e&&ot(e.remove)&&ot(e.add)&&ot(e.unsubscribe)}function DE(e){ot(e)?e():e.unsubscribe()}var IE={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},Cm={setTimeout:function(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];var i=Cm.delegate;return i!=null&&i.setTimeout?i.setTimeout.apply(i,yh([e,t],bh(n))):setTimeout.apply(void 0,yh([e,t],bh(n)))},clearTimeout:function(e){var t=Cm.delegate;return((t==null?void 0:t.clearTimeout)||clearTimeout)(e)},delegate:void 0};function TE(e){Cm.setTimeout(function(){throw e})}function ME(){}function ZU(e){e()}var _m=function(e){Am(t,e);function t(n){var r=e.call(this)||this;return r.isStopped=!1,n?(r.destination=n,kE(n)&&n.add(r)):r.destination=KU,r}return t.create=function(n,r,i){return new vh(n,r,i)},t.prototype.next=function(n){this.isStopped||this._next(n)},t.prototype.error=function(n){this.isStopped||(this.isStopped=!0,this._error(n))},t.prototype.complete=function(){this.isStopped||(this.isStopped=!0,this._complete())},t.prototype.unsubscribe=function(){this.closed||(this.isStopped=!0,e.prototype.unsubscribe.call(this),this.destination=null)},t.prototype._next=function(n){this.destination.next(n)},t.prototype._error=function(n){try{this.destination.error(n)}finally{this.unsubscribe()}},t.prototype._complete=function(){try{this.destination.complete()}finally{this.unsubscribe()}},t}(Sm),qU=Function.prototype.bind;function km(e,t){return qU.call(e,t)}var WU=function(){function e(t){this.partialObserver=t}return e.prototype.next=function(t){var n=this.partialObserver;if(n.next)try{n.next(t)}catch(r){wh(r)}},e.prototype.error=function(t){var n=this.partialObserver;if(n.error)try{n.error(t)}catch(r){wh(r)}else wh(t)},e.prototype.complete=function(){var t=this.partialObserver;if(t.complete)try{t.complete()}catch(n){wh(n)}},e}(),vh=function(e){Am(t,e);function t(n,r,i){var a=e.call(this)||this,o;if(ot(n)||!n)o={next:n??void 0,error:r??void 0,complete:i??void 0};else{var s;a&&IE.useDeprecatedNextContext?(s=Object.create(n),s.unsubscribe=function(){return a.unsubscribe()},o={next:n.next&&km(n.next,s),error:n.error&&km(n.error,s),complete:n.complete&&km(n.complete,s)}):o=n}return a.destination=new WU(o),a}return t}(_m);function wh(e){TE(e)}function XU(e){throw e}var KU={closed:!0,next:ME,error:XU,complete:ME},Dm=function(){return typeof Symbol=="function"&&Symbol.observable||"@@observable"}();function NE(e){return e}function JU(e){return e.length===0?NE:e.length===1?e[0]:function(n){return e.reduce(function(r,i){return i(r)},n)}}var gn=function(){function e(t){t&&(this._subscribe=t)}return e.prototype.lift=function(t){var n=new e;return n.source=this,n.operator=t,n},e.prototype.subscribe=function(t,n,r){var i=this,a=tj(t)?t:new vh(t,n,r);return ZU(function(){var o=i,s=o.operator,l=o.source;a.add(s?s.call(a,l):l?i._subscribe(a):i._trySubscribe(a))}),a},e.prototype._trySubscribe=function(t){try{return this._subscribe(t)}catch(n){t.error(n)}},e.prototype.forEach=function(t,n){var r=this;return n=FE(n),new n(function(i,a){var o=new vh({next:function(s){try{t(s)}catch(l){a(l),o.unsubscribe()}},error:a,complete:i});r.subscribe(o)})},e.prototype._subscribe=function(t){var n;return(n=this.source)===null||n===void 0?void 0:n.subscribe(t)},e.prototype[Dm]=function(){return this},e.prototype.pipe=function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return JU(t)(this)},e.prototype.toPromise=function(t){var n=this;return t=FE(t),new t(function(r,i){var a;n.subscribe(function(o){return a=o},function(o){return i(o)},function(){return r(a)})})},e.create=function(t){return new e(t)},e}();function FE(e){var t;return(t=e??IE.Promise)!==null&&t!==void 0?t:Promise}function ej(e){return e&&ot(e.next)&&ot(e.error)&&ot(e.complete)}function tj(e){return e&&e instanceof _m||ej(e)&&kE(e)}function nj(e){return ot(e==null?void 0:e.lift)}function us(e){return function(t){if(nj(t))return t.lift(function(n){try{return e(n,this)}catch(r){this.error(r)}});throw new TypeError("Unable to lift unknown Observable type")}}function Il(e,t,n,r,i){return new rj(e,t,n,r,i)}var rj=function(e){Am(t,e);function t(n,r,i,a,o,s){var l=e.call(this,n)||this;return l.onFinalize=o,l.shouldUnsubscribe=s,l._next=r?function(c){try{r(c)}catch(u){n.error(u)}}:e.prototype._next,l._error=a?function(c){try{a(c)}catch(u){n.error(u)}finally{this.unsubscribe()}}:e.prototype._error,l._complete=i?function(){try{i()}catch(c){n.error(c)}finally{this.unsubscribe()}}:e.prototype._complete,l}return t.prototype.unsubscribe=function(){var n;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){var r=this.closed;e.prototype.unsubscribe.call(this),!r&&((n=this.onFinalize)===null||n===void 0||n.call(this))}},t}(_m),ij=new gn(function(e){return e.complete()});function aj(e){return e&&ot(e.schedule)}function BE(e){return e[e.length-1]}function oj(e){return aj(BE(e))?e.pop():void 0}function sj(e,t){return typeof BE(e)=="number"?e.pop():t}var LE=function(e){return e&&typeof e.length=="number"&&typeof e!="function"};function OE(e){return ot(e==null?void 0:e.then)}function RE(e){return ot(e[Dm])}function zE(e){return Symbol.asyncIterator&&ot(e==null?void 0:e[Symbol.asyncIterator])}function PE(e){return new TypeError("You provided "+(e!==null&&typeof e=="object"?"an invalid object":"'"+e+"'")+" where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.")}function cj(){return typeof Symbol!="function"||!Symbol.iterator?"@@iterator":Symbol.iterator}var UE=cj();function jE(e){return ot(e==null?void 0:e[UE])}function HE(e){return YU(this,arguments,function(){var n,r,i,a;return SE(this,function(o){switch(o.label){case 0:n=e.getReader(),o.label=1;case 1:o.trys.push([1,,9,10]),o.label=2;case 2:return[4,ls(n.read())];case 3:return r=o.sent(),i=r.value,a=r.done,a?[4,ls(void 0)]:[3,5];case 4:return[2,o.sent()];case 5:return[4,ls(i)];case 6:return[4,o.sent()];case 7:return o.sent(),[3,2];case 8:return[3,10];case 9:return n.releaseLock(),[7];case 10:return[2]}})})}function GE(e){return ot(e==null?void 0:e.getReader)}function fs(e){if(e instanceof gn)return e;if(e!=null){if(RE(e))return lj(e);if(LE(e))return uj(e);if(OE(e))return fj(e);if(zE(e))return $E(e);if(jE(e))return hj(e);if(GE(e))return dj(e)}throw PE(e)}function lj(e){return new gn(function(t){var n=e[Dm]();if(ot(n.subscribe))return n.subscribe(t);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}function uj(e){return new gn(function(t){for(var n=0;n<e.length&&!t.closed;n++)t.next(e[n]);t.complete()})}function fj(e){return new gn(function(t){e.then(function(n){t.closed||(t.next(n),t.complete())},function(n){return t.error(n)}).then(null,TE)})}function hj(e){return new gn(function(t){var n,r;try{for(var i=Dl(e),a=i.next();!a.done;a=i.next()){var o=a.value;if(t.next(o),t.closed)return}}catch(s){n={error:s}}finally{try{a&&!a.done&&(r=i.return)&&r.call(i)}finally{if(n)throw n.error}}t.complete()})}function $E(e){return new gn(function(t){pj(e,t).catch(function(n){return t.error(n)})})}function dj(e){return $E(HE(e))}function pj(e,t){var n,r,i,a;return VU(this,void 0,void 0,function(){var o,s;return SE(this,function(l){switch(l.label){case 0:l.trys.push([0,5,6,11]),n=QU(e),l.label=1;case 1:return[4,n.next()];case 2:if(r=l.sent(),!!r.done)return[3,4];if(o=r.value,t.next(o),t.closed)return[2];l.label=3;case 3:return[3,1];case 4:return[3,11];case 5:return s=l.sent(),i={error:s},[3,11];case 6:return l.trys.push([6,,9,10]),r&&!r.done&&(a=n.return)?[4,a.call(n)]:[3,8];case 7:l.sent(),l.label=8;case 8:return[3,10];case 9:if(i)throw i.error;return[7];case 10:return[7];case 11:return t.complete(),[2]}})})}function Ii(e,t,n,r,i){r===void 0&&(r=0),i===void 0&&(i=!1);var a=t.schedule(function(){n(),i?e.add(this.schedule(null,r)):this.unsubscribe()},r);if(e.add(a),!i)return a}function VE(e,t){return t===void 0&&(t=0),us(function(n,r){n.subscribe(Il(r,function(i){return Ii(r,e,function(){return r.next(i)},t)},function(){return Ii(r,e,function(){return r.complete()},t)},function(i){return Ii(r,e,function(){return r.error(i)},t)}))})}function YE(e,t){return t===void 0&&(t=0),us(function(n,r){r.add(e.schedule(function(){return n.subscribe(r)},t))})}function gj(e,t){return fs(e).pipe(YE(t),VE(t))}function mj(e,t){return fs(e).pipe(YE(t),VE(t))}function bj(e,t){return new gn(function(n){var r=0;return t.schedule(function(){r===e.length?n.complete():(n.next(e[r++]),n.closed||this.schedule())})})}function yj(e,t){return new gn(function(n){var r;return Ii(n,t,function(){r=e[UE](),Ii(n,t,function(){var i,a,o;try{i=r.next(),a=i.value,o=i.done}catch(s){n.error(s);return}o?n.complete():n.next(a)},0,!0)}),function(){return ot(r==null?void 0:r.return)&&r.return()}})}function QE(e,t){if(!e)throw new Error("Iterable cannot be null");return new gn(function(n){Ii(n,t,function(){var r=e[Symbol.asyncIterator]();Ii(n,t,function(){r.next().then(function(i){i.done?n.complete():n.next(i.value)})},0,!0)})})}function vj(e,t){return QE(HE(e),t)}function wj(e,t){if(e!=null){if(RE(e))return gj(e,t);if(LE(e))return bj(e,t);if(OE(e))return mj(e,t);if(zE(e))return QE(e,t);if(jE(e))return yj(e,t);if(GE(e))return vj(e,t)}throw PE(e)}function xj(e,t){return t?wj(e,t):fs(e)}var Aj=CE(function(e){return function(){e(this),this.name="EmptyError",this.message="no elements in sequence"}});function ZE(e,t){var n=typeof t=="object";return new Promise(function(r,i){var a=new vh({next:function(o){r(o),a.unsubscribe()},error:i,complete:function(){n?r(t.defaultValue):i(new Aj)}});e.subscribe(a)})}function qE(e,t){return us(function(n,r){var i=0;n.subscribe(Il(r,function(a){r.next(e.call(t,a,i++))}))})}function Ej(e,t,n,r,i,a,o,s){var l=[],c=0,u=0,f=!1,h=function(){f&&!l.length&&!c&&t.complete()},d=function(g){return c<r?p(g):l.push(g)},p=function(g){a&&t.next(g),c++;var y=!1;fs(n(g,u++)).subscribe(Il(t,function(v){i==null||i(v),a?d(v):t.next(v)},function(){y=!0},void 0,function(){if(y)try{c--;for(var v=function(){var S=l.shift();o?Ii(t,o,function(){return p(S)}):p(S)};l.length&&c<r;)v();h()}catch(S){t.error(S)}}))};return e.subscribe(Il(t,d,function(){f=!0,h()})),function(){s==null||s()}}function WE(e,t,n){return n===void 0&&(n=1/0),ot(t)?WE(function(r,i){return qE(function(a,o){return t(r,a,i,o)})(fs(e(r,i)))},n):(typeof t=="number"&&(n=t),us(function(r,i){return Ej(r,i,e,n)}))}function Sj(e){return e===void 0&&(e=1/0),WE(NE,e)}function Cj(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n=oj(e),r=sj(e,1/0),i=e;return i.length?i.length===1?fs(i[0]):Sj(r)(xj(i,n)):ij}function _j(e,t,n,r,i){return function(a,o){var s=n,l=t,c=0;a.subscribe(Il(o,function(u){var f=c++;l=s?e(l,u,f):(s=!0,u),r&&o.next(l)},i&&function(){s&&o.next(l),o.complete()}))}}function XE(e,t){return us(_j(e,t,arguments.length>=2,!1,!0))}var kj=function(e,t){return e.push(t),e};function Dj(){return us(function(e,t){XE(kj,[])(e).subscribe(t)})}const KE=-2003829722,Im=-2021002517;function Ij(e){return new TextDecoder().decode(e)}function JE(e){const t=e?"big":"little",n=new ae().endianess(t).int32("magic").uint16("version").uint16("numZoomLevels").uint64("chromTreeOffset").uint64("unzoomedDataOffset").uint64("unzoomedIndexOffset").uint16("fieldCount").uint16("definedFieldCount").uint64("asOffset").uint64("totalSummaryOffset").uint32("uncompressBufSize").uint64("extHeaderOffset").array("zoomLevels",{length:"numZoomLevels",type:new ae().endianess(t).uint32("reductionLevel").uint32("reserved").uint64("dataOffset").uint64("indexOffset")}),r=new ae().endianess(t).uint64("basesCovered").doublele("scoreMin").doublele("scoreMax").doublele("scoreSum").doublele("scoreSumSquares"),i=new ae().endianess(t).uint32("magic").uint32("blockSize").uint32("keySize").uint32("valSize").uint64("itemCount"),a=new ae().endianess(t).uint8("isLeafNode").skip(1).uint16("cnt").saveOffset("offset");return{chromTreeParser:i,totalSummaryParser:r,headerParser:n,isLeafNode:a}}class eS{getHeader(t){return this.headerP||(this.headerP=this._getHeader(t).catch(n=>{throw this.headerP=void 0,n})),this.headerP}constructor(t){const{filehandle:n,renameRefSeqs:r=o=>o,path:i,url:a}=t;if(this.renameRefSeqs=r,n)this.bbi=n;else if(a)this.bbi=new kr(a);else if(i)this.bbi=new gi(i);else throw new Error("no file given")}async _getHeader(t){const n=await this._getMainHeader(t),r=await this._readChromTree(n,t);return{...n,...r}}async _getMainHeader(t,n=2e3){const{buffer:r}=await this.bbi.read(Vt.Buffer.alloc(n),0,n,0,t),i=this._isBigEndian(r),a=JE(i),o=a.headerParser.parse(r),{magic:s,asOffset:l,totalSummaryOffset:c}=o;if(o.fileType=s===Im?"bigbed":"bigwig",l>n||c>n)return this._getMainHeader(t,n*2);if(l){const u=Number(o.asOffset);o.autoSql=Ij(r.subarray(u,r.indexOf(0,u)))}if(o.totalSummaryOffset>n)return this._getMainHeader(t,n*2);if(o.totalSummaryOffset){const u=r.subarray(Number(o.totalSummaryOffset)),f=a.totalSummaryParser.parse(u);o.totalSummary={...f,basesCovered:Number(f.basesCovered)}}return{...o,isBigEndian:i}}_isBigEndian(t){let n=t.readInt32LE(0);if(n===KE||n===Im)return!1;if(n=t.readInt32BE(0),n===KE||n===Im)return!0;throw new Error("not a BigWig/BigBed file")}async _readChromTree(t,n){const r=t.isBigEndian,i=r?"big":"little",a=[],o={};let s=Number(t.unzoomedDataOffset);const l=Number(t.chromTreeOffset);for(;s%4!==0;)s+=1;const c=s-l,{buffer:u}=await this.bbi.read(Vt.Buffer.alloc(c),0,c,Number(l),n),f=JE(r),{keySize:h}=f.chromTreeParser.parse(u),d=new ae().endianess(i).string("key",{stripNull:!0,length:h}).uint32("refId").uint32("refSize").saveOffset("offset"),p=new ae().endianess(i).skip(h).uint64("childOffset").saveOffset("offset"),g=32,y=async v=>{let S=v;if(S>=u.length)throw new Error("reading beyond end of buffer");const k=f.isLeafNode.parse(u.subarray(S)),{isLeafNode:C,cnt:E}=k;if(S+=k.offset,C)for(let w=0;w<E;w+=1){const A=d.parse(u.subarray(S));S+=A.offset;const{key:T,refId:D,refSize:M}=A,F={name:T,id:D,length:M};o[this.renameRefSeqs(T)]=D,a[D]=F}else{const w=[];for(let A=0;A<E;A+=1){const T=p.parse(u.subarray(S)),{childOffset:D}=T;S+=T.offset,w.push(y(Number(D)-Number(l)))}await Promise.all(w)}};return await y(g),{refsByName:o,refsByNumber:a}}async getUnzoomedView(t){const{unzoomedIndexOffset:n,refsByName:r,uncompressBufSize:i,isBigEndian:a,fileType:o}=await this.getHeader(t);return new EE(this.bbi,r,n,a,i>0,o)}async getFeatureStream(t,n,r,i){await this.getHeader(i);const a=this.renameRefSeqs(t);let o;const{basesPerSpan:s,scale:l}=i||{};return s?o=await this.getView(1/s,i):l?o=await this.getView(l,i):o=await this.getView(1,i),new gn(c=>{o.readWigData(a,n,r,c,i)})}async getFeatures(t,n,r,i){const a=await this.getFeatureStream(t,n,r,i);return(await ZE(a.pipe(Dj()))).flat()}}class Tj extends eS{async getView(t,n){const{zoomLevels:r,refsByName:i,fileSize:a,isBigEndian:o,uncompressBufSize:s}=await this.getHeader(n),l=1/t;let c=r.length;a||(c-=1);for(let u=c;u>=0;u-=1){const f=r[u];if(f&&f.reductionLevel<=2*l){const h=Number(f.indexOffset);return new EE(this.bbi,i,h,o,s>0,"summary")}}return this.getUnzoomedView(n)}}function Mj(e){return e.filter(t=>!!t)}class Nj extends eS{constructor(){super(...arguments),this.readIndicesCache=new Gg({cache:new t4({maxSize:1}),fill:(t,n)=>this._readIndices({...t,signal:n})})}readIndices(t={}){const{signal:n,...r}=t;return this.readIndicesCache.get(JSON.stringify(r),t,n)}async getView(t,n){return this.getUnzoomedView(n)}async _readIndices(t){const{extHeaderOffset:n,isBigEndian:r}=await this.getHeader(t),{buffer:i}=await this.bbi.read(Vt.Buffer.alloc(64),0,64,Number(n)),a=r?"big":"little",o=new ae().endianess(a).uint16("size").uint16("count").uint64("offset").parse(i),{count:s,offset:l}=o;if(s===0)return[];const c=20,u=c*s,{buffer:f}=await this.bbi.read(Vt.Buffer.alloc(u),0,u,Number(l)),h=new ae().endianess(a).int16("type").int16("fieldcount").uint64("offset").skip(4).int16("field"),d=[];for(let p=0;p<s;p+=1)d.push(h.parse(f.subarray(p*c)));return d}async searchExtraIndexBlocks(t,n={}){const{isBigEndian:r}=await this.getHeader(n),i=await this.readIndices(n);if(i.length===0)return[];const a=i.map(async o=>{const{offset:s,field:l}=o,{buffer:c}=await this.bbi.read(Vt.Buffer.alloc(32),0,32,Number(s),n),u=r?"big":"little",f=new ae().endianess(u).int32("magic").int32("blockSize").int32("keySize").int32("valSize").uint64("itemCount"),{blockSize:h,keySize:d,valSize:p}=f.parse(c),g=new ae().endianess(u).int8("nodeType").skip(1).int16("cnt").choice({tag:"nodeType",choices:{0:new ae().array("leafkeys",{length:"cnt",type:new ae().endianess(u).string("key",{length:d,stripNull:!0}).uint64("offset")}),1:new ae().array("keys",{length:"cnt",type:new ae().endianess(u).string("key",{length:d,stripNull:!0}).uint64("offset").uint32("length").uint32("reserved")})}}),y=async S=>{const k=Number(S),C=4+h*(d+p),{buffer:E}=await this.bbi.read(Vt.Buffer.alloc(C),0,C,k,n),w=g.parse(E);if(w.leafkeys){let A;for(let T=0;T<w.leafkeys.length;T+=1){const{key:D}=w.leafkeys[T];if(t.localeCompare(D)<0&&A)return y(A);A=w.leafkeys[T].offset}return y(A)}for(let A=0;A<w.keys.length;A+=1)if(w.keys[A].key===t)return{...w.keys[A],field:l}},v=32;return y(Number(s)+v)});return Mj(await Promise.all(a))}async searchExtraIndex(t,n={}){const r=await this.searchExtraIndexBlocks(t,n);if(r.length===0)return[];const i=await this.getUnzoomedView(n),a=r.map(s=>new gn(l=>{i.readFeatures(l,[s],n)}).pipe(XE((l,c)=>l.concat(c)),qE(l=>{for(const c of l)c.field=s.field;return l})));return(await ZE(Cj(...a))).filter(s=>{var l;return((l=s.rest)===null||l===void 0?void 0:l.split(" ")[(s.field||0)-3])===t})}}function hs(e,t,n=!0){let r,i=o=>{};return function(...s){return new Promise((l,c)=>{const u=()=>{clearTimeout(r),i=f=>{},l(e(...s))};n&&i("debounced"),clearTimeout(r),i=c,r=setTimeout(u,t)})}}class Fj extends Xf(Po){constructor(n,r){const i={pixelsPerBin:2,channel:"x",...n};super(r,i.channel);En(this,"reductionLevels",[]);En(this,"lastRequestId",0);if(this.params=i,!this.params.url)throw new Error("No URL provided for BigWigSource");this.bbi=new Tj({filehandle:new kr(Ko(this.params.url,this.view.getBaseUrl()))}),this.doDebouncedRequest=hs(this.doRequest.bind(this),200,!1),this.headerPromise=this.bbi.getHeader(),this.headerPromise.then(a=>{this.reductionLevels=a.zoomLevels.map(o=>o.reductionLevel).reverse(),this.reductionLevels.push(1)})}async onDomainChanged(n){await this.headerPromise;const r=this.getAxisLength()||700,i=Bj(n,r,this.reductionLevels),a=Math.max(i*r,5e3),o=this.quantizeInterval(n,a);this.checkAndUpdateLastInterval(o)&&this.doDebouncedRequest(o,i)}async doRequest(n,r){const i=await this.getFeatures(n,.5/r/this.params.pixelsPerBin);i.requestId<this.lastRequestId||this.publishData(i.features)}async getFeatures(n,r){let i=++this.lastRequestId;const a=new AbortController,o=this.genome.continuousToDiscreteChromosomeIntervals(n),s=await Promise.all(o.map(l=>this.bbi.getFeatures(l.chrom,l.startPos,l.endPos,{scale:r,signal:a.signal}).then(c=>c.map(u=>({chrom:l.chrom,start:u.start,end:u.end,score:u.score})))));return{requestId:i,abort:()=>a.abort(),features:s.flat()}}}function Bj(e,t,n){const r=(e[1]-e[0])/t;return n.find(i=>i<r)??n.at(-1)}function Lj(e,t){function n(){this.constructor=e}n.prototype=t.prototype,e.prototype=new n}function ds(e,t,n,r){this.message=e,this.expected=t,this.found=n,this.location=r,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,ds)}Lj(ds,Error),ds.buildMessage=function(e,t){var n={literal:function(c){return'"'+i(c.text)+'"'},class:function(c){var u="",f;for(f=0;f<c.parts.length;f++)u+=c.parts[f]instanceof Array?a(c.parts[f][0])+"-"+a(c.parts[f][1]):a(c.parts[f]);return"["+(c.inverted?"^":"")+u+"]"},any:function(c){return"any character"},end:function(c){return"end of input"},other:function(c){return c.description}};function r(c){return c.charCodeAt(0).toString(16).toUpperCase()}function i(c){return c.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(u){return"\\x0"+r(u)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(u){return"\\x"+r(u)})}function a(c){return c.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(u){return"\\x0"+r(u)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(u){return"\\x"+r(u)})}function o(c){return n[c.type](c)}function s(c){var u=new Array(c.length),f,h;for(f=0;f<c.length;f++)u[f]=o(c[f]);if(u.sort(),u.length>0){for(f=1,h=1;f<u.length;f++)u[f-1]!==u[f]&&(u[h]=u[f],h++);u.length=h}switch(u.length){case 1:return u[0];case 2:return u[0]+" or "+u[1];default:return u.slice(0,-1).join(", ")+", or "+u[u.length-1]}}function l(c){return c?'"'+i(c)+'"':"end of input"}return"Expected "+s(e)+" but "+l(t)+" found."};function Oj(e,t){t=t!==void 0?t:{};var n={},r={declaration:r_},i=r_,a="(",o=Ce("(",!1),s=")",l=Ce(")",!1),c=function(_,O,$,Y){return{type:_,name:O,comment:$,fields:Y}},u="simple",f=Ce("simple",!1),h="object",d=Ce("object",!1),p="table",g=Ce("table",!1),y="auto",v=Ce("auto",!1),S="primary",k=Ce("primary",!1),C="index",E=Ce("index",!1),w="unique",A=Ce("unique",!1),T=function(_,O){return O},D=function(_,O){return _.name&&O.unshift(_),O},M="#",F=Ce("#",!1),U=";",q=Ce(";",!1),V=function(_,O,$){return{type:_,name:O,comment:$}},pe="[",Se=Ce("[",!1),tt="]",ie=Ce("]",!1),yt=function(_,O,$,Y){return{type:_,size:O,name:$,comment:Y}},Vr=function(_,O,$,Y){return{type:_,vals:O,name:$,comment:Y}},De=",",Xe=Ce(",",!1),Pi=function(_,O){return O.unshift(_),O},so="int",Bs=Ce("int",!1),co="uint",Ls=Ce("uint",!1),jn="short",Q=Ce("short",!1),re="ushort",ue=Ce("ushort",!1),j="byte",Qe=Ce("byte",!1),de="ubyte",vt=Ce("ubyte",!1),dt="float",Kt=Ce("float",!1),lo="char",Ab=Ce("char",!1),su="string",Os=Ce("string",!1),Jt="lstring",cu=Ce("lstring",!1),dd="enum",mr=Ce("enum",!1),pd="double",x=Ce("double",!1),m="bigint",b=Ce("bigint",!1),I="set",B=Ce("set",!1),L=function(_,O){return _+" "+O},P=/^[a-zA-Z_]/,oe=lu([["a","z"],["A","Z"],"_"],!1,!1),Re=/^[a-zA-Z0-9_]/,Ie=lu([["a","z"],["A","Z"],["0","9"],"_"],!1,!1),$e=function(_){return J8()},Ae=/^[^\n\r]/,Z8=lu([`
1386
+ `,"\r"],!0,!1),NZ=function(_){return _.join("").replace(/^"/,"").replace(/"$/,"")},FZ=e_("integer"),q8=/^[0-9]/,W8=lu([["0","9"]],!1,!1),BZ=function(){return parseInt(J8(),10)},LZ=e_("whitespace"),X8=/^[ \t\n\r]/,K8=lu([" "," ",`
1387
+ `,"\r"],!1,!1),N=0,It=0,gd=[{line:1,column:1}],br=0,Eb=[],J=0,md;if("startRule"in t){if(!(t.startRule in r))throw new Error(`Can't start parsing from rule "`+t.startRule+'".');i=r[t.startRule]}function J8(){return e.substring(It,N)}function Ce(_,O){return{type:"literal",text:_,ignoreCase:O}}function lu(_,O,$){return{type:"class",parts:_,inverted:O,ignoreCase:$}}function OZ(){return{type:"end"}}function e_(_){return{type:"other",description:_}}function t_(_){var O=gd[_],$;if(O)return O;for($=_-1;!gd[$];)$--;for(O=gd[$],O={line:O.line,column:O.column};$<_;)e.charCodeAt($)===10?(O.line++,O.column=1):O.column++,$++;return gd[_]=O,O}function n_(_,O){var $=t_(_),Y=t_(O);return{start:{offset:_,line:$.line,column:$.column},end:{offset:O,line:Y.line,column:Y.column}}}function ee(_){N<br||(N>br&&(br=N,Eb=[]),Eb.push(_))}function RZ(_,O,$){return new ds(ds.buildMessage(_,O),_,O,$)}function r_(){var _,O,$,Y,K,Ne,Ve,An,Ui,Yr,ji,Qr,Hi,Zr;return _=N,O=ge(),O!==n?($=i_(),$!==n?(Y=ge(),Y!==n?(K=a_(),K!==n?(Ne=ge(),Ne!==n?(Ve=bd(),Ve!==n?(An=ge(),An!==n?(e.charCodeAt(N)===40?(Ui=a,N++):(Ui=n,J===0&&ee(o)),Ui!==n?(Yr=ge(),Yr!==n?(ji=zZ(),ji!==n?(Qr=ge(),Qr!==n?(e.charCodeAt(N)===41?(Hi=s,N++):(Hi=n,J===0&&ee(l)),Hi!==n?(Zr=ge(),Zr!==n?(It=_,O=c($,K,Ve,ji),_=O):(N=_,_=n)):(N=_,_=n)):(N=_,_=n)):(N=_,_=n)):(N=_,_=n)):(N=_,_=n)):(N=_,_=n)):(N=_,_=n)):(N=_,_=n)):(N=_,_=n)):(N=_,_=n)):(N=_,_=n)):(N=_,_=n),_}function i_(){var _;return e.substr(N,6)===u?(_=u,N+=6):(_=n,J===0&&ee(f)),_===n&&(e.substr(N,6)===h?(_=h,N+=6):(_=n,J===0&&ee(d)),_===n&&(e.substr(N,5)===p?(_=p,N+=5):(_=n,J===0&&ee(g)))),_}function a_(){var _,O,$,Y;return _=Hn(),_===n&&(_=N,O=Hn(),O!==n?($=o_(),$!==n?(O=[O,$],_=O):(N=_,_=n)):(N=_,_=n),_===n&&(_=N,O=Hn(),O!==n?(e.substr(N,4)===y?($=y,N+=4):($=n,J===0&&ee(v)),$!==n?(O=[O,$],_=O):(N=_,_=n)):(N=_,_=n),_===n&&(_=N,O=Hn(),O!==n?($=o_(),$!==n?(e.substr(N,4)===y?(Y=y,N+=4):(Y=n,J===0&&ee(v)),Y!==n?(O=[O,$,Y],_=O):(N=_,_=n)):(N=_,_=n)):(N=_,_=n)))),_}function o_(){var _;return e.substr(N,7)===S?(_=S,N+=7):(_=n,J===0&&ee(k)),_===n&&(e.substr(N,5)===C?(_=C,N+=5):(_=n,J===0&&ee(E)),_===n&&(e.substr(N,6)===w?(_=w,N+=6):(_=n,J===0&&ee(A)))),_}function bd(){var _;return _=s_(),_===n&&(_=ge()),_}function zZ(){var _,O,$,Y,K,Ne,Ve;if(_=N,O=Sb(),O!==n)if($=ge(),$!==n){for(Y=[],K=N,Ne=ge(),Ne!==n?(Ve=Sb(),Ve!==n?(It=K,Ne=T(O,Ve),K=Ne):(N=K,K=n)):(N=K,K=n);K!==n;)Y.push(K),K=N,Ne=ge(),Ne!==n?(Ve=Sb(),Ve!==n?(It=K,Ne=T(O,Ve),K=Ne):(N=K,K=n)):(N=K,K=n);Y!==n?(K=ge(),K!==n?(It=_,O=D(O,Y),_=O):(N=_,_=n)):(N=_,_=n)}else N=_,_=n;else N=_,_=n;return _}function PZ(){var _;return e.charCodeAt(N)===35?(_=M,N++):(_=n,J===0&&ee(F)),_}function UZ(){var _,O,$,Y,K;return _=N,O=ge(),O!==n?($=PZ(),$!==n?(Y=s_(),Y!==n?(K=ge(),K!==n?(O=[O,$,Y,K],_=O):(N=_,_=n)):(N=_,_=n)):(N=_,_=n)):(N=_,_=n),_}function Sb(){var _,O,$,Y,K,Ne,Ve,An,Ui,Yr,ji,Qr,Hi,Zr;return _=N,O=Cb(),O!==n?($=ge(),$!==n?(Y=Hn(),Y!==n?(K=ge(),K!==n?(e.charCodeAt(N)===59?(Ne=U,N++):(Ne=n,J===0&&ee(q)),Ne!==n?(Ve=ge(),Ve!==n?(An=bd(),An!==n?(It=_,O=V(O,Y,An),_=O):(N=_,_=n)):(N=_,_=n)):(N=_,_=n)):(N=_,_=n)):(N=_,_=n)):(N=_,_=n)):(N=_,_=n),_===n&&(_=N,O=Cb(),O!==n?($=ge(),$!==n?(e.charCodeAt(N)===91?(Y=pe,N++):(Y=n,J===0&&ee(Se)),Y!==n?(K=ge(),K!==n?(Ne=HZ(),Ne!==n?(Ve=ge(),Ve!==n?(e.charCodeAt(N)===93?(An=tt,N++):(An=n,J===0&&ee(ie)),An!==n?(Ui=ge(),Ui!==n?(Yr=Hn(),Yr!==n?(ji=ge(),ji!==n?(e.charCodeAt(N)===59?(Qr=U,N++):(Qr=n,J===0&&ee(q)),Qr!==n?(Hi=ge(),Hi!==n?(Zr=bd(),Zr!==n?(It=_,O=yt(O,Ne,Yr,Zr),_=O):(N=_,_=n)):(N=_,_=n)):(N=_,_=n)):(N=_,_=n)):(N=_,_=n)):(N=_,_=n)):(N=_,_=n)):(N=_,_=n)):(N=_,_=n)):(N=_,_=n)):(N=_,_=n)):(N=_,_=n)):(N=_,_=n),_===n&&(_=N,O=Cb(),O!==n?($=ge(),$!==n?(e.charCodeAt(N)===40?(Y=a,N++):(Y=n,J===0&&ee(o)),Y!==n?(K=ge(),K!==n?(Ne=jZ(),Ne!==n?(Ve=ge(),Ve!==n?(e.charCodeAt(N)===41?(An=s,N++):(An=n,J===0&&ee(l)),An!==n?(Ui=ge(),Ui!==n?(Yr=Hn(),Yr!==n?(ji=ge(),ji!==n?(e.charCodeAt(N)===59?(Qr=U,N++):(Qr=n,J===0&&ee(q)),Qr!==n?(Hi=ge(),Hi!==n?(Zr=bd(),Zr!==n?(It=_,O=Vr(O,Ne,Yr,Zr),_=O):(N=_,_=n)):(N=_,_=n)):(N=_,_=n)):(N=_,_=n)):(N=_,_=n)):(N=_,_=n)):(N=_,_=n)):(N=_,_=n)):(N=_,_=n)):(N=_,_=n)):(N=_,_=n)):(N=_,_=n)):(N=_,_=n),_===n&&(_=UZ()))),_}function jZ(){var _,O,$,Y,K,Ne,Ve;if(_=N,O=Hn(),O!==n){for($=[],Y=N,e.charCodeAt(N)===44?(K=De,N++):(K=n,J===0&&ee(Xe)),K!==n?(Ne=ge(),Ne!==n?(Ve=Hn(),Ve!==n?(It=Y,K=T(O,Ve),Y=K):(N=Y,Y=n)):(N=Y,Y=n)):(N=Y,Y=n);Y!==n;)$.push(Y),Y=N,e.charCodeAt(N)===44?(K=De,N++):(K=n,J===0&&ee(Xe)),K!==n?(Ne=ge(),Ne!==n?(Ve=Hn(),Ve!==n?(It=Y,K=T(O,Ve),Y=K):(N=Y,Y=n)):(N=Y,Y=n)):(N=Y,Y=n);$!==n?(It=_,O=Pi(O,$),_=O):(N=_,_=n)}else N=_,_=n;return _}function Cb(){var _,O,$,Y;return e.substr(N,3)===so?(_=so,N+=3):(_=n,J===0&&ee(Bs)),_===n&&(e.substr(N,4)===co?(_=co,N+=4):(_=n,J===0&&ee(Ls)),_===n&&(e.substr(N,5)===jn?(_=jn,N+=5):(_=n,J===0&&ee(Q)),_===n&&(e.substr(N,6)===re?(_=re,N+=6):(_=n,J===0&&ee(ue)),_===n&&(e.substr(N,4)===j?(_=j,N+=4):(_=n,J===0&&ee(Qe)),_===n&&(e.substr(N,5)===de?(_=de,N+=5):(_=n,J===0&&ee(vt)),_===n&&(e.substr(N,5)===dt?(_=dt,N+=5):(_=n,J===0&&ee(Kt)),_===n&&(e.substr(N,4)===lo?(_=lo,N+=4):(_=n,J===0&&ee(Ab)),_===n&&(e.substr(N,6)===su?(_=su,N+=6):(_=n,J===0&&ee(Os)),_===n&&(e.substr(N,7)===Jt?(_=Jt,N+=7):(_=n,J===0&&ee(cu)),_===n&&(e.substr(N,4)===dd?(_=dd,N+=4):(_=n,J===0&&ee(mr)),_===n&&(e.substr(N,6)===pd?(_=pd,N+=6):(_=n,J===0&&ee(x)),_===n&&(e.substr(N,6)===m?(_=m,N+=6):(_=n,J===0&&ee(b)),_===n&&(e.substr(N,3)===I?(_=I,N+=3):(_=n,J===0&&ee(B)),_===n&&(_=N,O=i_(),O!==n?($=ge(),$!==n?(Y=a_(),Y!==n?(It=_,O=L(O,Y),_=O):(N=_,_=n)):(N=_,_=n)):(N=_,_=n))))))))))))))),_}function HZ(){var _;return _=GZ(),_===n&&(_=Hn()),_}function Hn(){var _,O,$,Y,K;if(_=N,O=N,P.test(e.charAt(N))?($=e.charAt(N),N++):($=n,J===0&&ee(oe)),$!==n){for(Y=[],Re.test(e.charAt(N))?(K=e.charAt(N),N++):(K=n,J===0&&ee(Ie));K!==n;)Y.push(K),Re.test(e.charAt(N))?(K=e.charAt(N),N++):(K=n,J===0&&ee(Ie));Y!==n?($=[$,Y],O=$):(N=O,O=n)}else N=O,O=n;return O!==n&&(It=_,O=$e()),_=O,_}function s_(){var _,O,$;for(_=N,O=[],Ae.test(e.charAt(N))?($=e.charAt(N),N++):($=n,J===0&&ee(Z8));$!==n;)O.push($),Ae.test(e.charAt(N))?($=e.charAt(N),N++):($=n,J===0&&ee(Z8));return O!==n&&(It=_,O=NZ(O)),_=O,_}function GZ(){var _,O,$,Y;if(J++,_=N,O=ge(),O!==n){if($=[],q8.test(e.charAt(N))?(Y=e.charAt(N),N++):(Y=n,J===0&&ee(W8)),Y!==n)for(;Y!==n;)$.push(Y),q8.test(e.charAt(N))?(Y=e.charAt(N),N++):(Y=n,J===0&&ee(W8));else $=n;$!==n?(It=_,O=BZ(),_=O):(N=_,_=n)}else N=_,_=n;return J--,_===n&&(O=n,J===0&&ee(FZ)),_}function ge(){var _,O;for(J++,_=[],X8.test(e.charAt(N))?(O=e.charAt(N),N++):(O=n,J===0&&ee(K8));O!==n;)_.push(O),X8.test(e.charAt(N))?(O=e.charAt(N),N++):(O=n,J===0&&ee(K8));return J--,_===n&&(O=n,J===0&&ee(LZ)),_}if(md=i(),md!==n&&N===e.length)return md;throw md!==n&&N<e.length&&ee(OZ()),RZ(Eb,br<e.length?e.charAt(br):null,br<e.length?n_(br,br+1):n_(br,br))}var tS={SyntaxError:ds,parse:Oj};const Rj=Ca(tS),Tm=Object.fromEntries(Object.entries(Object.freeze(Object.defineProperty({__proto__:null,bigChain:`table bigChain
1388
+ "bigChain pairwise alignment"
1389
+ (
1390
+ string chrom; "Reference sequence chromosome or scaffold"
1391
+ uint chromStart; "Start position in chromosome"
1392
+ uint chromEnd; "End position in chromosome"
1393
+ string name; "Name or ID of item, ideally both human readable and unique"
1394
+ uint score; "Score (0-1000)"
1395
+ char[1] strand; "+ or - for strand"
1396
+ uint tSize; "size of target sequence"
1397
+ string qName; "name of query sequence"
1398
+ uint qSize; "size of query sequence"
1399
+ uint qStart; "start of alignment on query sequence"
1400
+ uint qEnd; "end of alignment on query sequence"
1401
+ uint chainScore; "score from chain"
1402
+ )`,bigGenePred:`table bigGenePred
1403
+ "bigGenePred gene models"
1404
+ (
1405
+ string chrom; "Reference sequence chromosome or scaffold"
1406
+ uint chromStart; "Start position in chromosome"
1407
+ uint chromEnd; "End position in chromosome"
1408
+ string name; "Name or ID of item, ideally both human readable and unique"
1409
+ uint score; "Score (0-1000)"
1410
+ char[1] strand; "+ or - for strand"
1411
+ uint thickStart; "Start of where display should be thick (start codon)"
1412
+ uint thickEnd; "End of where display should be thick (stop codon)"
1413
+ uint reserved; "RGB value (use R,G,B string in input file)"
1414
+ int blockCount; "Number of blocks"
1415
+ int[blockCount] blockSizes; "Comma separated list of block sizes"
1416
+ int[blockCount] chromStarts; "Start positions relative to chromStart"
1417
+ string name2; "Alternative/human readable name"
1418
+ string cdsStartStat; "Status of CDS start annotation (none, unknown, incomplete, or complete)"
1419
+ string cdsEndStat; "Status of CDS end annotation (none, unknown, incomplete, or complete)"
1420
+ int[blockCount] exonFrames; "Exon frame {0,1,2}, or -1 if no frame for exon"
1421
+ string type; "Transcript type"
1422
+ string geneName; "Primary identifier for gene"
1423
+ string geneName2; "Alternative/human readable gene name"
1424
+ string geneType; "Gene type"
1425
+ )`,bigInteract:`table interact
1426
+ "interaction between two regions"
1427
+ (
1428
+ string chrom; "Chromosome (or contig, scaffold, etc.). For interchromosomal, use 2 records"
1429
+ uint chromStart; "Start position of lower region. For interchromosomal, set to chromStart of this region"
1430
+ uint chromEnd; "End position of upper region. For interchromosomal, set to chromEnd of this region"
1431
+ string name; "Name of item, for display. Usually 'sourceName/targetName/exp' or empty"
1432
+ uint score; "Score (0-1000)"
1433
+ double value; "Strength of interaction or other data value. Typically basis for score"
1434
+ string exp; "Experiment name (metadata for filtering). Use . if not applicable"
1435
+ string color; "Item color. Specified as r,g,b or hexadecimal #RRGGBB or html color name, as in //www.w3.org/TR/css3-color/#html4. Use 0 and spectrum setting to shade by score"
1436
+ string sourceChrom; "Chromosome of source region (directional) or lower region. For non-directional interchromosomal, chrom of this region."
1437
+ uint sourceStart; "Start position in chromosome of source/lower/this region"
1438
+ uint sourceEnd; "End position in chromosome of source/lower/this region"
1439
+ string sourceName; "Identifier of source/lower/this region"
1440
+ string sourceStrand; "Orientation of source/lower/this region: + or -. Use . if not applicable"
1441
+ string targetChrom; "Chromosome of target region (directional) or upper region. For non-directional interchromosomal, chrom of other region"
1442
+ uint targetStart; "Start position in chromosome of target/upper/this region"
1443
+ uint targetEnd; "End position in chromosome of target/upper/this region"
1444
+ string targetName; "Identifier of target/upper/this region"
1445
+ string targetStrand; "Orientation of target/upper/this region: + or -. Use . if not applicable"
1446
+
1447
+ )`,bigLink:`table bigLink
1448
+ "bigLink pairwise alignment"
1449
+ (
1450
+ string chrom; "Reference sequence chromosome or scaffold"
1451
+ uint chromStart; "Start position in chromosome"
1452
+ uint chromEnd; "End position in chromosome"
1453
+ string name; "Name or ID of item, ideally both human readable and unique"
1454
+ uint qStart; "start of alignment on query sequence"
1455
+ )`,bigMaf:`table bedMaf
1456
+ "Bed3 with MAF block"
1457
+ (
1458
+ string chrom; "Reference sequence chromosome or scaffold"
1459
+ uint chromStart; "Start position in chromosome"
1460
+ uint chromEnd; "End position in chromosome"
1461
+ lstring mafBlock; "MAF block"
1462
+ )`,bigNarrowPeak:`table bigNarrowPeak
1463
+ "BED6+4 Peaks of signal enrichment based on pooled, normalized (interpreted) data."
1464
+ (
1465
+ string chrom; "Reference sequence chromosome or scaffold"
1466
+ uint chromStart; "Start position in chromosome"
1467
+ uint chromEnd; "End position in chromosome"
1468
+ string name; "Name given to a region (preferably unique). Use . if no name is assigned"
1469
+ uint score; "Indicates how dark the peak will be displayed in the browser (0-1000) "
1470
+ char[1] strand; "+ or - or . for unknown"
1471
+ float signalValue; "Measurement of average enrichment for the region"
1472
+ float pValue; "Statistical significance of signal value (-log10). Set to -1 if not used."
1473
+ float qValue; "Statistical significance with multiple-test correction applied (FDR -log10). Set to -1 if not used."
1474
+ int peak; "Point-source called for this peak; 0-based offset from chromStart. Set to -1 if no point-source called."
1475
+ )`,bigPsl:`table bigPsl
1476
+ "bigPsl pairwise alignment"
1477
+ (
1478
+ string chrom; "Reference sequence chromosome or scaffold"
1479
+ uint chromStart; "Start position in chromosome"
1480
+ uint chromEnd; "End position in chromosome"
1481
+ string name; "Name or ID of item, ideally both human readable and unique"
1482
+ uint score; "Score (0-1000)"
1483
+ char[1] strand; "+ or - indicates whether the query aligns to the + or - strand on the reference"
1484
+ uint thickStart; "Start of where display should be thick (start codon)"
1485
+ uint thickEnd; "End of where display should be thick (stop codon)"
1486
+ uint reserved; "RGB value (use R,G,B string in input file)"
1487
+ int blockCount; "Number of blocks"
1488
+ int[blockCount] blockSizes; "Comma separated list of block sizes"
1489
+ int[blockCount] chromStarts; "Start positions relative to chromStart"
1490
+
1491
+ uint oChromStart;"Start position in other chromosome"
1492
+ uint oChromEnd; "End position in other chromosome"
1493
+ char[1] oStrand; "+ or -, - means that psl was reversed into BED-compatible coordinates"
1494
+ uint oChromSize; "Size of other chromosome."
1495
+ int[blockCount] oChromStarts; "Start positions relative to oChromStart or from oChromStart+oChromSize depending on strand"
1496
+
1497
+ lstring oSequence; "Sequence on other chrom (or empty)"
1498
+ string oCDS; "CDS in NCBI format"
1499
+
1500
+ uint chromSize;"Size of target chromosome"
1501
+
1502
+ uint match; "Number of bases matched."
1503
+ uint misMatch; " Number of bases that don't match "
1504
+ uint repMatch; " Number of bases that match but are part of repeats "
1505
+ uint nCount; " Number of 'N' bases "
1506
+ uint seqType; "0=empty, 1=nucleotide, 2=amino_acid"
1507
+ )`,defaultBedSchema:`table defaultBedSchema
1508
+ "BED12"
1509
+ (
1510
+ string chrom; "The name of the chromosome (e.g. chr3, chrY, chr2_random) or scaffold (e.g. scaffold10671)."
1511
+ uint chromStart; "The starting position of the feature in the chromosome or scaffold. The first base in a chromosome is numbered 0."
1512
+ uint chromEnd; "The ending position of the feature in the chromosome or scaffold. The chromEnd base is not included in the display of the feature. For example, the first 100 bases of a chromosome are defined as chromStart=0, chromEnd=100, and span the bases numbered 0-99."
1513
+ string name; "Defines the name of the BED line."
1514
+ float score; "Feature score, doesn't care about the 0-1000 limit as in bed"
1515
+ char strand; "Defines the strand. Either '.' (=no strand) or '+' or '-'"
1516
+ uint thickStart; "The starting position at which the feature is drawn thickly (for example, the start codon in gene displays). When there is no thick part, thickStart and thickEnd are usually set to the chromStart position."
1517
+ uint thickEnd; "The ending position at which the feature is drawn thickly (for example the stop codon in gene displays)."
1518
+ string itemRgb; "An RGB value of the form R,G,B (e.g. 255,0,0). "
1519
+ uint blockCount; " The number of blocks (exons) in the BED line."
1520
+ uint[blockCount] blockSizes; " A comma-separated list of the block sizes. The number of items in this list should correspond to blockCount."
1521
+ uint[blockCount] blockStarts; "A comma-separated list of block starts. All of the blockStart positions should be calculated relative to chromStart. The number of items in this list should correspond to blockCount."
1522
+ )`,mafFrames:`table mafFrames
1523
+ "codon frame assignment for MAF components"
1524
+ (
1525
+ string chrom; "Reference sequence chromosome or scaffold"
1526
+ uint chromStart; "Start range in chromosome"
1527
+ uint chromEnd; "End range in chromosome"
1528
+ string src; "Name of sequence source in MAF"
1529
+ ubyte frame; "frame (0,1,2) for first base(+) or last bast(-)"
1530
+ char[1] strand; "+ or -"
1531
+ string name; "Name of gene used to define frame"
1532
+ int prevFramePos; "target position of the previous base (in transcription direction) that continues this frame, or -1 if none, or frame not contiguous"
1533
+ int nextFramePos; "target position of the next base (in transcription direction) that continues this frame, or -1 if none, or frame not contiguous"
1534
+ ubyte isExonStart; "does this start the CDS portion of an exon?"
1535
+ ubyte isExonEnd; "does this end the CDS portion of an exon?"
1536
+ )`,mafSummary:`table mafSummary
1537
+ "Positions and scores for alignment blocks"
1538
+ (
1539
+ string chrom; "Reference sequence chromosome or scaffold"
1540
+ uint chromStart; "Start position in chromosome"
1541
+ uint chromEnd; "End position in chromosome"
1542
+ string src; "Sequence name or database of alignment"
1543
+ float score; "Floating point score."
1544
+ char[1] leftStatus; "Gap/break annotation for preceding block"
1545
+ char[1] rightStatus; "Gap/break annotation for following block"
1546
+ )`},Symbol.toStringTag,{value:"Module"}))).map(([e,t])=>[e,tS.parse(t.trim())]));function Mm(e){const t=["uint","int","float","long"];return{...e,fields:e.fields.map(n=>({...n,isArray:n.size&&n.type!=="char",arrayIsNumeric:n.size&&t.includes(n.type),isNumeric:!n.size&&t.includes(n.type)}))}}const zj={".":0,"-":-1,"+":1};function Pj(e){var t;return e.length>=12&&!Number.isNaN(parseInt(e[9],10))&&((t=e[10])===null||t===void 0?void 0:t.split(",").filter(n=>!!n).length)===parseInt(e[9],10)}class Uj{constructor(t={}){if(t.autoSql)this.autoSql=Mm(Rj.parse(t.autoSql));else if(t.type){if(!Tm[t.type])throw new Error("Type not found");this.autoSql=Mm(Tm[t.type])}else this.autoSql=Mm(Tm.defaultBedSchema),this.attemptDefaultBed=!0}parseLine(t,n={}){const{autoSql:r}=this,{uniqueId:i}=n,a=Array.isArray(t)?t:t.split(" ");let o={};if(!this.attemptDefaultBed||this.attemptDefaultBed&&Pj(a))for(let s=0;s<r.fields.length;s++){const l=r.fields[s];let c=a[s];const{isNumeric:u,isArray:f,arrayIsNumeric:h,name:d}=l;if(c==null)break;if(c!=="."){if(u){const p=Number(c);c=Number.isNaN(p)?c:p}else f&&(c=c.split(","),c[c.length-1]===""&&c.pop(),h&&(c=c.map(p=>Number(p))));o[d]=c}}else{const s=["chrom","chromStart","chromEnd","name"];o=Object.fromEntries(a.map((l,c)=>[s[c]||"field"+c,l])),o.chromStart=+o.chromStart,o.chromEnd=+o.chromEnd,Number.isNaN(Number.parseFloat(o.field4))||(o.score=+o.field4,delete o.field4),(o.field5==="+"||o.field5==="-")&&(o.strand=o.field5,delete o.field5)}return i&&(o.uniqueId=i),o.strand=zj[o.strand]||0,o.chrom=decodeURIComponent(o.chrom),o}}class jj extends Xf(Po){constructor(n,r){const i={channel:"x",windowSize:1e6,...n};super(r,i.channel);En(this,"lastRequestId",0);En(this,"parser");if(this.params=i,!this.params.url)throw new Error("No URL provided for BigBedSource");this.bbi=new Nj({filehandle:new kr(Ko(this.params.url,this.view.getBaseUrl()))}),this.doDebouncedRequest=hs(this.doRequest.bind(this),200,!1),this.headerPromise=this.bbi.getHeader(),this.headerPromise.then(a=>{this.parser=new Uj({autoSql:a.autoSql})})}async onDomainChanged(n){const r=this.params.windowSize;if(n[1]-n[0]>r)return;const i=this.quantizeInterval(n,r);this.checkAndUpdateLastInterval(i)&&this.doDebouncedRequest(i)}async doRequest(n){const r=await this.getFeatures(n);r.requestId<this.lastRequestId||this.publishData(r.features)}async getFeatures(n){let r=++this.lastRequestId;const i=new AbortController,a=this.genome.continuousToDiscreteChromosomeIntervals(n),o=await Promise.all(a.map(s=>this.bbi.getFeatures(s.chrom,s.startPos,s.endPos,{signal:i.signal}).then(l=>l.map(c=>this.parser.parseLine(`${s.chrom} ${c.start} ${c.end} ${c.rest}`,{uniqueId:c.uniqueId})))));return{requestId:r,abort:()=>i.abort(),features:o.flat()}}}var Hj=Te,mn=null;try{mn=new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([0,97,115,109,1,0,0,0,1,13,2,96,0,1,127,96,4,127,127,127,127,1,127,3,7,6,0,1,1,1,1,1,6,6,1,127,1,65,0,11,7,50,6,3,109,117,108,0,1,5,100,105,118,95,115,0,2,5,100,105,118,95,117,0,3,5,114,101,109,95,115,0,4,5,114,101,109,95,117,0,5,8,103,101,116,95,104,105,103,104,0,0,10,191,1,6,4,0,35,0,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,126,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,127,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,128,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,129,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,130,34,4,66,32,135,167,36,0,32,4,167,11])),{}).exports}catch{}function Te(e,t,n){this.low=e|0,this.high=t|0,this.unsigned=!!n}Te.prototype.__isLong__,Object.defineProperty(Te.prototype,"__isLong__",{value:!0});function Ut(e){return(e&&e.__isLong__)===!0}Te.isLong=Ut;var nS={},rS={};function $a(e,t){var n,r,i;return t?(e>>>=0,(i=0<=e&&e<256)&&(r=rS[e],r)?r:(n=Me(e,(e|0)<0?-1:0,!0),i&&(rS[e]=n),n)):(e|=0,(i=-128<=e&&e<128)&&(r=nS[e],r)?r:(n=Me(e,e<0?-1:0,!1),i&&(nS[e]=n),n))}Te.fromInt=$a;function bn(e,t){if(isNaN(e))return t?Va:yn;if(t){if(e<0)return Va;if(e>=aS)return uS}else{if(e<=-oS)return jt;if(e+1>=oS)return lS}return e<0?bn(-e,t).neg():Me(e%ps|0,e/ps|0,t)}Te.fromNumber=bn;function Me(e,t,n){return new Te(e,t,n)}Te.fromBits=Me;var xh=Math.pow;function Nm(e,t,n){if(e.length===0)throw Error("empty string");if(e==="NaN"||e==="Infinity"||e==="+Infinity"||e==="-Infinity")return yn;if(typeof t=="number"?(n=t,t=!1):t=!!t,n=n||10,n<2||36<n)throw RangeError("radix");var r;if((r=e.indexOf("-"))>0)throw Error("interior hyphen");if(r===0)return Nm(e.substring(1),t,n).neg();for(var i=bn(xh(n,8)),a=yn,o=0;o<e.length;o+=8){var s=Math.min(8,e.length-o),l=parseInt(e.substring(o,o+s),n);if(s<8){var c=bn(xh(n,s));a=a.mul(c).add(bn(l))}else a=a.mul(i),a=a.add(bn(l))}return a.unsigned=t,a}Te.fromString=Nm;function zn(e,t){return typeof e=="number"?bn(e,t):typeof e=="string"?Nm(e,t):Me(e.low,e.high,typeof t=="boolean"?t:e.unsigned)}Te.fromValue=zn;var iS=1<<16,Gj=1<<24,ps=iS*iS,aS=ps*ps,oS=aS/2,sS=$a(Gj),yn=$a(0);Te.ZERO=yn;var Va=$a(0,!0);Te.UZERO=Va;var gs=$a(1);Te.ONE=gs;var cS=$a(1,!0);Te.UONE=cS;var Fm=$a(-1);Te.NEG_ONE=Fm;var lS=Me(-1,2147483647,!1);Te.MAX_VALUE=lS;var uS=Me(-1,-1,!0);Te.MAX_UNSIGNED_VALUE=uS;var jt=Me(0,-2147483648,!1);Te.MIN_VALUE=jt;var G=Te.prototype;G.toInt=function(){return this.unsigned?this.low>>>0:this.low},G.toNumber=function(){return this.unsigned?(this.high>>>0)*ps+(this.low>>>0):this.high*ps+(this.low>>>0)},G.toString=function(t){if(t=t||10,t<2||36<t)throw RangeError("radix");if(this.isZero())return"0";if(this.isNegative())if(this.eq(jt)){var n=bn(t),r=this.div(n),i=r.mul(n).sub(this);return r.toString(t)+i.toInt().toString(t)}else return"-"+this.neg().toString(t);for(var a=bn(xh(t,6),this.unsigned),o=this,s="";;){var l=o.div(a),c=o.sub(l.mul(a)).toInt()>>>0,u=c.toString(t);if(o=l,o.isZero())return u+s;for(;u.length<6;)u="0"+u;s=""+u+s}},G.getHighBits=function(){return this.high},G.getHighBitsUnsigned=function(){return this.high>>>0},G.getLowBits=function(){return this.low},G.getLowBitsUnsigned=function(){return this.low>>>0},G.getNumBitsAbs=function(){if(this.isNegative())return this.eq(jt)?64:this.neg().getNumBitsAbs();for(var t=this.high!=0?this.high:this.low,n=31;n>0&&!(t&1<<n);n--);return this.high!=0?n+33:n+1},G.isZero=function(){return this.high===0&&this.low===0},G.eqz=G.isZero,G.isNegative=function(){return!this.unsigned&&this.high<0},G.isPositive=function(){return this.unsigned||this.high>=0},G.isOdd=function(){return(this.low&1)===1},G.isEven=function(){return(this.low&1)===0},G.equals=function(t){return Ut(t)||(t=zn(t)),this.unsigned!==t.unsigned&&this.high>>>31===1&&t.high>>>31===1?!1:this.high===t.high&&this.low===t.low},G.eq=G.equals,G.notEquals=function(t){return!this.eq(t)},G.neq=G.notEquals,G.ne=G.notEquals,G.lessThan=function(t){return this.comp(t)<0},G.lt=G.lessThan,G.lessThanOrEqual=function(t){return this.comp(t)<=0},G.lte=G.lessThanOrEqual,G.le=G.lessThanOrEqual,G.greaterThan=function(t){return this.comp(t)>0},G.gt=G.greaterThan,G.greaterThanOrEqual=function(t){return this.comp(t)>=0},G.gte=G.greaterThanOrEqual,G.ge=G.greaterThanOrEqual,G.compare=function(t){if(Ut(t)||(t=zn(t)),this.eq(t))return 0;var n=this.isNegative(),r=t.isNegative();return n&&!r?-1:!n&&r?1:this.unsigned?t.high>>>0>this.high>>>0||t.high===this.high&&t.low>>>0>this.low>>>0?-1:1:this.sub(t).isNegative()?-1:1},G.comp=G.compare,G.negate=function(){return!this.unsigned&&this.eq(jt)?jt:this.not().add(gs)},G.neg=G.negate,G.add=function(t){Ut(t)||(t=zn(t));var n=this.high>>>16,r=this.high&65535,i=this.low>>>16,a=this.low&65535,o=t.high>>>16,s=t.high&65535,l=t.low>>>16,c=t.low&65535,u=0,f=0,h=0,d=0;return d+=a+c,h+=d>>>16,d&=65535,h+=i+l,f+=h>>>16,h&=65535,f+=r+s,u+=f>>>16,f&=65535,u+=n+o,u&=65535,Me(h<<16|d,u<<16|f,this.unsigned)},G.subtract=function(t){return Ut(t)||(t=zn(t)),this.add(t.neg())},G.sub=G.subtract,G.multiply=function(t){if(this.isZero())return yn;if(Ut(t)||(t=zn(t)),mn){var n=mn.mul(this.low,this.high,t.low,t.high);return Me(n,mn.get_high(),this.unsigned)}if(t.isZero())return yn;if(this.eq(jt))return t.isOdd()?jt:yn;if(t.eq(jt))return this.isOdd()?jt:yn;if(this.isNegative())return t.isNegative()?this.neg().mul(t.neg()):this.neg().mul(t).neg();if(t.isNegative())return this.mul(t.neg()).neg();if(this.lt(sS)&&t.lt(sS))return bn(this.toNumber()*t.toNumber(),this.unsigned);var r=this.high>>>16,i=this.high&65535,a=this.low>>>16,o=this.low&65535,s=t.high>>>16,l=t.high&65535,c=t.low>>>16,u=t.low&65535,f=0,h=0,d=0,p=0;return p+=o*u,d+=p>>>16,p&=65535,d+=a*u,h+=d>>>16,d&=65535,d+=o*c,h+=d>>>16,d&=65535,h+=i*u,f+=h>>>16,h&=65535,h+=a*c,f+=h>>>16,h&=65535,h+=o*l,f+=h>>>16,h&=65535,f+=r*u+i*c+a*l+o*s,f&=65535,Me(d<<16|p,f<<16|h,this.unsigned)},G.mul=G.multiply,G.divide=function(t){if(Ut(t)||(t=zn(t)),t.isZero())throw Error("division by zero");if(mn){if(!this.unsigned&&this.high===-2147483648&&t.low===-1&&t.high===-1)return this;var n=(this.unsigned?mn.div_u:mn.div_s)(this.low,this.high,t.low,t.high);return Me(n,mn.get_high(),this.unsigned)}if(this.isZero())return this.unsigned?Va:yn;var r,i,a;if(this.unsigned){if(t.unsigned||(t=t.toUnsigned()),t.gt(this))return Va;if(t.gt(this.shru(1)))return cS;a=Va}else{if(this.eq(jt)){if(t.eq(gs)||t.eq(Fm))return jt;if(t.eq(jt))return gs;var o=this.shr(1);return r=o.div(t).shl(1),r.eq(yn)?t.isNegative()?gs:Fm:(i=this.sub(t.mul(r)),a=r.add(i.div(t)),a)}else if(t.eq(jt))return this.unsigned?Va:yn;if(this.isNegative())return t.isNegative()?this.neg().div(t.neg()):this.neg().div(t).neg();if(t.isNegative())return this.div(t.neg()).neg();a=yn}for(i=this;i.gte(t);){r=Math.max(1,Math.floor(i.toNumber()/t.toNumber()));for(var s=Math.ceil(Math.log(r)/Math.LN2),l=s<=48?1:xh(2,s-48),c=bn(r),u=c.mul(t);u.isNegative()||u.gt(i);)r-=l,c=bn(r,this.unsigned),u=c.mul(t);c.isZero()&&(c=gs),a=a.add(c),i=i.sub(u)}return a},G.div=G.divide,G.modulo=function(t){if(Ut(t)||(t=zn(t)),mn){var n=(this.unsigned?mn.rem_u:mn.rem_s)(this.low,this.high,t.low,t.high);return Me(n,mn.get_high(),this.unsigned)}return this.sub(this.div(t).mul(t))},G.mod=G.modulo,G.rem=G.modulo,G.not=function(){return Me(~this.low,~this.high,this.unsigned)},G.and=function(t){return Ut(t)||(t=zn(t)),Me(this.low&t.low,this.high&t.high,this.unsigned)},G.or=function(t){return Ut(t)||(t=zn(t)),Me(this.low|t.low,this.high|t.high,this.unsigned)},G.xor=function(t){return Ut(t)||(t=zn(t)),Me(this.low^t.low,this.high^t.high,this.unsigned)},G.shiftLeft=function(t){return Ut(t)&&(t=t.toInt()),(t&=63)===0?this:t<32?Me(this.low<<t,this.high<<t|this.low>>>32-t,this.unsigned):Me(0,this.low<<t-32,this.unsigned)},G.shl=G.shiftLeft,G.shiftRight=function(t){return Ut(t)&&(t=t.toInt()),(t&=63)===0?this:t<32?Me(this.low>>>t|this.high<<32-t,this.high>>t,this.unsigned):Me(this.high>>t-32,this.high>=0?0:-1,this.unsigned)},G.shr=G.shiftRight,G.shiftRightUnsigned=function(t){if(Ut(t)&&(t=t.toInt()),t&=63,t===0)return this;var n=this.high;if(t<32){var r=this.low;return Me(r>>>t|n<<32-t,n>>>t,this.unsigned)}else return t===32?Me(n,0,this.unsigned):Me(n>>>t-32,0,this.unsigned)},G.shru=G.shiftRightUnsigned,G.shr_u=G.shiftRightUnsigned,G.toSigned=function(){return this.unsigned?Me(this.low,this.high,!1):this},G.toUnsigned=function(){return this.unsigned?this:Me(this.low,this.high,!0)},G.toBytes=function(t){return t?this.toBytesLE():this.toBytesBE()},G.toBytesLE=function(){var t=this.high,n=this.low;return[n&255,n>>>8&255,n>>>16&255,n>>>24,t&255,t>>>8&255,t>>>16&255,t>>>24]},G.toBytesBE=function(){var t=this.high,n=this.low;return[t>>>24,t>>>16&255,t>>>8&255,t&255,n>>>24,n>>>16&255,n>>>8&255,n&255]},Te.fromBytes=function(t,n,r){return r?Te.fromBytesLE(t,n):Te.fromBytesBE(t,n)},Te.fromBytesLE=function(t,n){return new Te(t[0]|t[1]<<8|t[2]<<16|t[3]<<24,t[4]|t[5]<<8|t[6]<<16|t[7]<<24,n)},Te.fromBytesBE=function(t,n){return new Te(t[4]<<24|t[5]<<16|t[6]<<8|t[7],t[0]<<24|t[1]<<16|t[2]<<8|t[3],n)};const fS=Ca(Hj);class hS{constructor(t,n){this.blockPosition=t,this.dataPosition=n}toString(){return`${this.blockPosition}:${this.dataPosition}`}compareTo(t){return this.blockPosition-t.blockPosition||this.dataPosition-t.dataPosition}static min(...t){let n,r=0;for(;!n;r+=1)n=t[r];for(;r<t.length;r+=1)n.compareTo(t[r])>0&&(n=t[r]);return n}}function ms(e,t=0,n=!1){if(n)throw new Error("big-endian virtual file offsets not implemented");return new hS(e[t+7]*1099511627776+e[t+6]*4294967296+e[t+5]*16777216+e[t+4]*65536+e[t+3]*256+e[t+2],e[t+1]<<8|e[t])}class Ah{constructor(t,n,r,i=void 0){this.minv=t,this.maxv=n,this.bin=r,this._fetchedSize=i}toUniqueString(){return`${this.minv}..${this.maxv} (bin ${this.bin}, fetchedSize ${this.fetchedSize()})`}toString(){return this.toUniqueString()}compareTo(t){return this.minv.compareTo(t.minv)||this.maxv.compareTo(t.maxv)||this.bin-t.bin}fetchedSize(){return this._fetchedSize!==void 0?this._fetchedSize:this.maxv.blockPosition+(1<<16)-this.minv.blockPosition}}class dS{constructor({filehandle:t,renameRefSeq:n=r=>r}){this.filehandle=t,this.renameRefSeq=n}_findFirstData(t,n){const r=t.firstDataLine;r?t.firstDataLine=r.compareTo(n)>0?n:r:t.firstDataLine=n}async parse(t={}){return this.setupP||(this.setupP=this._parse(t).catch(n=>{throw this.setupP=void 0,n})),this.setupP}async hasRefSeq(t,n={}){return!!((await this.parse(n)).indices[t]||{}).binIndex}}function $j(e){return new Promise(t=>setTimeout(t,e))}function pS(e){if(e.greaterThan(Number.MAX_SAFE_INTEGER)||e.lessThan(Number.MIN_SAFE_INTEGER))throw new Error("integer overflow");return e.toNumber()}function gS(e){if(e&&e.aborted){if(typeof DOMException<"u")throw new DOMException("aborted","AbortError");{const t=new Error("aborted");throw t.code="ERR_ABORTED",t}}}async function mS(e){await Promise.resolve(),gS(e)}function Vj(e,t){return t.minv.blockPosition-e.maxv.blockPosition<65e3&&t.maxv.blockPosition-e.minv.blockPosition<5e6}function Yj(e={}){return"aborted"in e?{signal:e}:e}function bS(e,t){const n=[];let r=null;return e.length===0?e:(e.sort((i,a)=>{const o=i.minv.blockPosition-a.minv.blockPosition;return o!==0?o:i.minv.dataPosition-a.minv.dataPosition}),e.forEach(i=>{(!t||i.maxv.compareTo(t)>0)&&(r===null?(n.push(i),r=i):Vj(r,i)?i.maxv.compareTo(r.maxv)>0&&(r.maxv=i.maxv):(n.push(i),r=i))}),n)}const Qj=21578050;function Zj(e,t){return e-e%t}function qj(e,t){return e-e%t+t}class Tl extends dS{parsePseudoBin(t,n){return{lineCount:pS(fS.fromBytesLE(Array.prototype.slice.call(t,n+16,n+24),!0))}}async lineCount(t,n={}){const i=(await this.parse(n)).indices[t];if(!i)return-1;const a=i.stats||{};return a.lineCount===void 0?-1:a.lineCount}fetchBai(t={}){return this.baiP||(this.baiP=this.filehandle.readFile(t).catch(n=>{throw this.baiP=void 0,n})),this.baiP}async _parse(){const t={bai:!0,maxBlockSize:65536},n=await this.fetchBai();if(n.readUInt32LE(0)!==Qj)throw new Error("Not a BAI file");t.refCount=n.readInt32LE(4);const i=((1<<(5+1)*3)-1)/7;t.indices=new Array(t.refCount);let a=8;for(let o=0;o<t.refCount;o+=1){const s=n.readInt32LE(a);let l;a+=4;const c={};for(let h=0;h<s;h+=1){const d=n.readUInt32LE(a);if(a+=4,d===i+1)a+=4,l=this.parsePseudoBin(n,a),a+=32;else{if(d>i+1)throw new Error("bai index contains too many bins, please use CSI");{const p=n.readInt32LE(a);a+=4;const g=new Array(p);for(let y=0;y<p;y+=1){const v=ms(n,a),S=ms(n,a+8);a+=16,this._findFirstData(t,v),g[y]=new Ah(v,S,d)}c[d]=g}}}const u=n.readInt32LE(a);a+=4;const f=new Array(u);for(let h=0;h<u;h+=1)f[h]=ms(n,a),a+=8,this._findFirstData(t,f[h]);t.indices[o]={binIndex:c,linearIndex:f,stats:l}}return t}async indexCov(t,n,r,i={}){const o=n!==void 0,l=(await this.parse(i)).indices[t];if(!l)return[];const{linearIndex:c=[],stats:u}=l;if(!c.length)return[];const f=r!==void 0?qj(r,16384):(c.length-1)*16384,h=n!==void 0?Zj(n,16384):0;let d;o?d=new Array((f-h)/16384):d=new Array(c.length-1);const p=c[c.length-1].blockPosition;if(f>(c.length-1)*16384)throw new Error("query outside of range of linear index");let g=c[h/16384].blockPosition;for(let y=h/16384,v=0;y<f/16384;y++,v++)d[v]={score:c[y+1].blockPosition-g,start:y*16384,end:y*16384+16384},g=c[y+1].blockPosition;return d.map(y=>({...y,score:y.score*u.lineCount/p}))}reg2bins(t,n){return n-=1,[[0,0],[1+(t>>26),1+(n>>26)],[9+(t>>23),9+(n>>23)],[73+(t>>20),73+(n>>20)],[585+(t>>17),585+(n>>17)],[4681+(t>>14),4681+(n>>14)]]}async blocksForRange(t,n,r,i={}){n<0&&(n=0);const a=await this.parse(i);if(!a)return[];const o=a.indices[t];if(!o)return[];const s=this.reg2bins(n,r),l=[];for(const[d,p]of s)for(let g=d;g<=p;g++)if(o.binIndex[g]){const y=o.binIndex[g];for(let v=0;v<y.length;++v)l.push(new Ah(y[v].minv,y[v].maxv,g))}const c=o.linearIndex.length;let u=null;const f=Math.min(n>>14,c-1),h=Math.min(r>>14,c-1);for(let d=f;d<=h;++d){const p=o.linearIndex[d];p&&(!u||p.compareTo(u)<0)&&(u=p)}return bS(l,u)}}const Wj=21582659,Xj=38359875;function Kj(e,t){return e*2**t}function yS(e,t){return Math.floor(e/2**t)}class Bm extends dS{constructor(t){super(t),this.maxBinNumber=0,this.depth=0,this.minShift=0}async lineCount(t){const n=await this.parse();if(!n||!n.indices[t])return-1;const{stats:i}=n.indices[t];return i?i.lineCount:-1}async indexCov(){return[]}parseAuxData(t,n,r){if(r<30)return{};const i={};if(i.formatFlags=t.readInt32LE(n),i.coordinateType=i.formatFlags&65536?"zero-based-half-open":"1-based-closed",i.format={0:"generic",1:"SAM",2:"VCF"}[i.formatFlags&15],!i.format)throw new Error(`invalid Tabix preset format flags ${i.formatFlags}`);i.columnNumbers={ref:t.readInt32LE(n+4),start:t.readInt32LE(n+8),end:t.readInt32LE(n+12)},i.metaValue=t.readInt32LE(n+16),i.metaChar=i.metaValue?String.fromCharCode(i.metaValue):"",i.skipLines=t.readInt32LE(n+20);const a=t.readInt32LE(n+24);return Object.assign(i,this._parseNameBytes(t.subarray(n+28,n+28+a))),i}_parseNameBytes(t){let n=0,r=0;const i=[],a={};for(let o=0;o<t.length;o+=1)if(!t[o]){if(r<o){let s=t.toString("utf8",r,o);s=this.renameRefSeq(s),i[n]=s,a[s]=n}r=o+1,n+=1}return{refNameToId:a,refIdToName:i}}async _parse(t){const n={csi:!0,maxBlockSize:65536},r=await this.filehandle.readFile(t),i=await Fg(r);if(i.readUInt32LE(0)===Wj)n.csiVersion=1;else if(i.readUInt32LE(0)===Xj)n.csiVersion=2;else throw new Error("Not a CSI file");this.minShift=i.readInt32LE(4),this.depth=i.readInt32LE(8),this.maxBinNumber=((1<<(this.depth+1)*3)-1)/7;const a=i.readInt32LE(12);a&&Object.assign(n,this.parseAuxData(i,16,a)),n.refCount=i.readInt32LE(16+a),n.indices=new Array(n.refCount);let o=16+a+4;for(let s=0;s<n.refCount;s+=1){await mS(t.signal);const l=i.readInt32LE(o);o+=4;const c={};let u;for(let f=0;f<l;f+=1){const h=i.readUInt32LE(o);if(h>this.maxBinNumber)u=this.parsePseudoBin(i,o+4),o+=4+8+4+16+16;else{const d=ms(i,o+4);this._findFirstData(n,d);const p=i.readInt32LE(o+12);o+=16;const g=new Array(p);for(let y=0;y<p;y+=1){const v=ms(i,o),S=ms(i,o+8);o+=16,g[y]=new Ah(v,S,h)}c[h]=g}}n.indices[s]={binIndex:c,stats:u}}return n}parsePseudoBin(t,n){return{lineCount:pS(fS.fromBytesLE(Array.prototype.slice.call(t,n+28,n+36),!0))}}async blocksForRange(t,n,r,i={}){n<0&&(n=0);const a=await this.parse(i),o=a==null?void 0:a.indices[t];if(!o)return[];const s=this.reg2bins(n,r),l=[];for(const[c,u]of s)for(let f=c;f<=u;f++)if(o.binIndex[f]){const h=o.binIndex[f];for(let d=0;d<h.length;++d)l.push(new Ah(h[d].minv,h[d].maxv,f))}return bS(l,new hS(0,0))}reg2bins(t,n){t-=1,t<1&&(t=1),n>2**50&&(n=2**34),n-=1;let r=0,i=0,a=this.minShift+this.depth*3;const o=[];for(;r<=this.depth;a-=3,i+=Kj(1,r*3),r+=1){const s=i+yS(t,a),l=i+yS(n,a);if(l-s+o.length>this.maxBinNumber)throw new Error(`query ${t}-${n} is too large for current binning scheme (shift ${this.minShift}, depth ${this.depth}), try a smaller query or a coarser index binning scheme`);o.push([s,l])}return o}}var Ti=Vt.Buffer,Lm=[0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759,2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977,2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755,2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956,3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270,936918e3,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117];typeof Int32Array<"u"&&(Lm=new Int32Array(Lm));function vS(e){if(Ti.isBuffer(e))return e;var t=typeof Ti.alloc=="function"&&typeof Ti.from=="function";if(typeof e=="number")return t?Ti.alloc(e):new Ti(e);if(typeof e=="string")return t?Ti.from(e):new Ti(e);throw new Error("input must be buffer, number, or string, received "+typeof e)}function Jj(e){var t=vS(4);return t.writeInt32BE(e,0),t}function Om(e,t){e=vS(e),Ti.isBuffer(t)&&(t=t.readUInt32BE(0));for(var n=~~t^-1,r=0;r<e.length;r++)n=Lm[(n^e[r])&255]^n>>>8;return n^-1}function Rm(){return Jj(Om.apply(null,arguments))}Rm.signed=function(){return Om.apply(null,arguments)},Rm.unsigned=function(){return Om.apply(null,arguments)>>>0};var eH=Rm;const tH=Ca(eH);var zm,wS;function nH(){if(wS)return zm;wS=1;var e=function(r,i){return Object.prototype.hasOwnProperty.call(r,i)},t=function(r,i){return Object.prototype.propertyIsEnumerable.call(r,i)};function n(r){if(r==null)throw new TypeError("Cannot convert undefined or null to object");var i=[];for(var a in r)e(r,a)&&t(r,a)&&i.push([a,r[a]]);return i}return zm=n,zm}var rH=typeof Object.entries=="function"?Object.entries:nH();const iH=Ca(rH);class aH{constructor(t={}){if(!(t.maxSize&&t.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");this.maxSize=t.maxSize,this.cache=new Map,this.oldCache=new Map,this._size=0}_set(t,n){this.cache.set(t,n),this._size++,this._size>=this.maxSize&&(this._size=0,this.oldCache=this.cache,this.cache=new Map)}get(t){if(this.cache.has(t))return this.cache.get(t);if(this.oldCache.has(t)){const n=this.oldCache.get(t);return this._set(t,n),n}}set(t,n){return this.cache.has(t)?this.cache.set(t,n):this._set(t,n),this}has(t){return this.cache.has(t)||this.oldCache.has(t)}peek(t){if(this.cache.has(t))return this.cache.get(t);if(this.oldCache.has(t))return this.oldCache.get(t)}delete(t){const n=this.cache.delete(t);return n&&this._size--,this.oldCache.delete(t)||n}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}*keys(){for(const[t]of this)yield t}*values(){for(const[,t]of this)yield t}*[Symbol.iterator](){for(const t of this.cache)yield t;for(const t of this.oldCache){const[n]=t;this.cache.has(n)||(yield t)}}get size(){let t=0;for(const n of this.oldCache.keys())this.cache.has(n)||t++;return this._size+t}}var oH=aH;const sH=Ca(oH),vn={BAM_FPAIRED:1,BAM_FPROPER_PAIR:2,BAM_FUNMAP:4,BAM_FMUNMAP:8,BAM_FREVERSE:16,BAM_FMREVERSE:32,BAM_FREAD1:64,BAM_FREAD2:128,BAM_FSECONDARY:256,BAM_FQCFAIL:512,BAM_FDUP:1024,BAM_FSUPPLEMENTARY:2048},xS="=ACMGRSVTWYHKDBN".split(""),Ml="MIDNSHP=X???????".split("");class cH{constructor(t){this.data={},this._tagList=[],this._allTagsParsed=!1;const{bytes:n,fileOffset:r}=t,{byteArray:i,start:a}=n;this.data={},this.bytes=n,this._id=r,this._refID=i.readInt32LE(a+4),this.data.start=i.readInt32LE(a+8),this.flags=(i.readInt32LE(a+16)&4294901760)>>16}get(t){return this[t]?this.data[t]?this.data[t]:(this.data[t]=this[t](),this.data[t]):this._get(t.toLowerCase())}end(){return this.get("start")+this.get("length_on_ref")}seq_id(){return this._refID}_get(t){return t in this.data?this.data[t]:(this.data[t]=this._parseTag(t),this.data[t])}_tags(){this._parseAllTags();let t=["seq"];this.isSegmentUnmapped()||t.push("start","end","strand","score","qual","MQ","CIGAR","length_on_ref","template_length"),this.isPaired()&&t.push("next_segment_position","pair_orientation"),t=t.concat(this._tagList||[]),Object.keys(this.data).forEach(r=>{r[0]!=="_"&&r!=="next_seq_id"&&t.push(r)});const n={};return t.filter(r=>{if(r in this.data&&this.data[r]===void 0||r==="CG"||r==="cg")return!1;const i=r.toLowerCase(),a=n[i];return n[i]=!0,!a})}parent(){}children(){return this.get("subfeatures")}id(){return this._id}mq(){const t=(this.get("_bin_mq_nl")&65280)>>8;return t===255?void 0:t}score(){return this.get("mq")}qual(){var t;return(t=this.qualRaw())===null||t===void 0?void 0:t.join(" ")}qualRaw(){if(this.isSegmentUnmapped())return;const{start:t,byteArray:n}=this.bytes,r=t+36+this.get("_l_read_name")+this.get("_n_cigar_op")*4+this.get("_seq_bytes"),i=this.get("seq_length");return n.subarray(r,r+i)}strand(){return this.isReverseComplemented()?-1:1}multi_segment_next_segment_strand(){if(!this.isMateUnmapped())return this.isMateReverseComplemented()?-1:1}name(){return this.get("_read_name")}_read_name(){const t=this.get("_l_read_name"),{byteArray:n,start:r}=this.bytes;return n.toString("ascii",r+36,r+36+t-1)}_parseTag(t){if(this._allTagsParsed)return;const{byteArray:n,start:r}=this.bytes;let i=this._tagOffset||r+36+this.get("_l_read_name")+this.get("_n_cigar_op")*4+this.get("_seq_bytes")+this.get("seq_length");const a=this.bytes.end;let o;for(;i<a&&o!==t;){const s=String.fromCharCode(n[i],n[i+1]);o=s.toLowerCase();const l=String.fromCharCode(n[i+2]);i+=3;let c;switch(l){case"A":c=String.fromCharCode(n[i]),i+=1;break;case"i":c=n.readInt32LE(i),i+=4;break;case"I":c=n.readUInt32LE(i),i+=4;break;case"c":c=n.readInt8(i),i+=1;break;case"C":c=n.readUInt8(i),i+=1;break;case"s":c=n.readInt16LE(i),i+=2;break;case"S":c=n.readUInt16LE(i),i+=2;break;case"f":c=n.readFloatLE(i),i+=4;break;case"Z":case"H":for(c="";i<=a;){const u=n[i++];if(u===0)break;c+=String.fromCharCode(u)}break;case"B":{c="";const u=n[i++],f=String.fromCharCode(u),h=n.readInt32LE(i);if(i+=4,f==="i")if(s==="CG")for(let d=0;d<h;d++){const p=n.readInt32LE(i),g=p>>4,y=Ml[p&15];c+=g+y,i+=4}else for(let d=0;d<h;d++)c+=n.readInt32LE(i),d+1<h&&(c+=","),i+=4;if(f==="I")if(s==="CG")for(let d=0;d<h;d++){const p=n.readUInt32LE(i),g=p>>4,y=Ml[p&15];c+=g+y,i+=4}else for(let d=0;d<h;d++)c+=n.readUInt32LE(i),d+1<h&&(c+=","),i+=4;if(f==="s")for(let d=0;d<h;d++)c+=n.readInt16LE(i),d+1<h&&(c+=","),i+=2;if(f==="S")for(let d=0;d<h;d++)c+=n.readUInt16LE(i),d+1<h&&(c+=","),i+=2;if(f==="c")for(let d=0;d<h;d++)c+=n.readInt8(i),d+1<h&&(c+=","),i+=1;if(f==="C")for(let d=0;d<h;d++)c+=n.readUInt8(i),d+1<h&&(c+=","),i+=1;if(f==="f")for(let d=0;d<h;d++)c+=n.readFloatLE(i),d+1<h&&(c+=","),i+=4;break}default:console.warn(`Unknown BAM tag type '${l}', tags may be incomplete`),c=void 0,i=a}if(this._tagOffset=i,this._tagList.push(s),o===t)return c;this.data[o]=c}this._allTagsParsed=!0}_parseAllTags(){this._parseTag("")}_parseCigar(t){return t.match(/\d+\D/g).map(n=>[n.match(/\D/)[0].toUpperCase(),parseInt(n,10)])}isPaired(){return!!(this.flags&vn.BAM_FPAIRED)}isProperlyPaired(){return!!(this.flags&vn.BAM_FPROPER_PAIR)}isSegmentUnmapped(){return!!(this.flags&vn.BAM_FUNMAP)}isMateUnmapped(){return!!(this.flags&vn.BAM_FMUNMAP)}isReverseComplemented(){return!!(this.flags&vn.BAM_FREVERSE)}isMateReverseComplemented(){return!!(this.flags&vn.BAM_FMREVERSE)}isRead1(){return!!(this.flags&vn.BAM_FREAD1)}isRead2(){return!!(this.flags&vn.BAM_FREAD2)}isSecondary(){return!!(this.flags&vn.BAM_FSECONDARY)}isFailedQc(){return!!(this.flags&vn.BAM_FQCFAIL)}isDuplicate(){return!!(this.flags&vn.BAM_FDUP)}isSupplementary(){return!!(this.flags&vn.BAM_FSUPPLEMENTARY)}cigar(){if(this.isSegmentUnmapped())return;const{byteArray:t,start:n}=this.bytes,r=this.get("_n_cigar_op");let i=n+36+this.get("_l_read_name");const a=this.get("seq_length");let o="",s=0,l=t.readInt32LE(i),c=l>>4,u=Ml[l&15];if(u==="S"&&c===a)return i+=4,l=t.readInt32LE(i),c=l>>4,u=Ml[l&15],u!=="N"&&console.warn("CG tag with no N tag"),this.data.length_on_ref=c,this.get("CG");for(let f=0;f<r;++f)l=t.readInt32LE(i),c=l>>4,u=Ml[l&15],o+=c+u,u!=="H"&&u!=="S"&&u!=="I"&&(s+=c),i+=4;return this.data.length_on_ref=s,o}_flags(){}length_on_ref(){return this.data.length_on_ref?this.data.length_on_ref:(this.get("cigar"),this.data.length_on_ref)}_n_cigar_op(){return this.get("_flag_nc")&65535}_l_read_name(){return this.get("_bin_mq_nl")&255}_seq_bytes(){return this.get("seq_length")+1>>1}getReadBases(){return this.seq()}seq(){const{byteArray:t,start:n}=this.bytes,r=n+36+this.get("_l_read_name")+this.get("_n_cigar_op")*4,i=this.get("_seq_bytes"),a=this.get("seq_length");let o="",s=0;for(let l=0;l<i;++l){const c=t[r+l];o+=xS[(c&240)>>4],s++,s<a&&(o+=xS[c&15],s++)}return o}getPairOrientation(){if(!this.isSegmentUnmapped()&&!this.isMateUnmapped()&&this._refID===this._next_refid()){const t=this.isReverseComplemented()?"R":"F",n=this.isMateReverseComplemented()?"R":"F";let r=" ",i=" ";this.isRead1()?(r="1",i="2"):this.isRead2()&&(r="2",i="1");const a=[];return this.template_length()>0?(a[0]=t,a[1]=r,a[2]=n,a[3]=i):(a[2]=t,a[3]=r,a[0]=n,a[1]=i),a.join("")}return null}_bin_mq_nl(){return this.bytes.byteArray.readInt32LE(this.bytes.start+12)}_flag_nc(){return this.bytes.byteArray.readInt32LE(this.bytes.start+16)}seq_length(){return this.bytes.byteArray.readInt32LE(this.bytes.start+20)}_next_refid(){return this.bytes.byteArray.readInt32LE(this.bytes.start+24)}_next_pos(){return this.bytes.byteArray.readInt32LE(this.bytes.start+28)}template_length(){return this.bytes.byteArray.readInt32LE(this.bytes.start+32)}toJSON(){const t={};return Object.keys(this).forEach(n=>{n.charAt(0)==="_"||n==="bytes"||(t[n]=this[n])}),t}}function lH(e){const t=e.split(/\r?\n/),n=[];return t.forEach(r=>{const[i,...a]=r.split(/\t/),o=a.map(s=>{const[l,c]=s.split(":",2);return{tag:l,value:c}});i&&n.push({tag:i.substr(1),data:o})}),n}const uH=21840194,Pm=1<<16;function Um(e){return[].concat(...e)}async function fH(e){const t=[];for await(const n of e)t.push(n);return t}class hH{constructor({bamFilehandle:t,bamPath:n,bamUrl:r,baiPath:i,baiFilehandle:a,baiUrl:o,csiPath:s,csiFilehandle:l,csiUrl:c,fetchSizeLimit:u,chunkSizeLimit:f,yieldThreadTime:h=100,renameRefSeqs:d=p=>p}){if(this.featureCache=new Gg({cache:new sH({maxSize:50}),fill:async({chunk:p,opts:g},y)=>{const{data:v,cpositions:S,dpositions:k}=await this._readChunk({chunk:p,opts:{...g,signal:y}});return await this.readBamFeatures(v,S,k,p)}}),this.renameRefSeq=d,t)this.bam=t;else if(n)this.bam=new gi(n);else if(r)this.bam=new kr(r);else throw new Error("unable to initialize bam");if(l)this.index=new Bm({filehandle:l});else if(s)this.index=new Bm({filehandle:new gi(s)});else if(c)this.index=new Bm({filehandle:new kr(c)});else if(a)this.index=new Tl({filehandle:a});else if(i)this.index=new Tl({filehandle:new gi(i)});else if(o)this.index=new Tl({filehandle:new kr(o)});else if(n)this.index=new Tl({filehandle:new gi(`${n}.bai`)});else if(r)this.index=new Tl({filehandle:new kr(`${r}.bai`)});else throw new Error("unable to infer index format");this.fetchSizeLimit=u||5e8,this.chunkSizeLimit=f||3e8,this.yieldThreadTime=h}async getHeader(t={}){const n=Yj(t),r=await this.index.parse(n),i=r.firstDataLine?r.firstDataLine.blockPosition+65535:void 0;let a;if(i){const u=await this.bam.read(Buffer.alloc(i+Pm),0,i+Pm,0,n),{bytesRead:f}=u;if({buffer:a}=u,!f)throw new Error("Error reading header");f<i?a=a.subarray(0,f):a=a.subarray(0,i)}else a=await this.bam.readFile(n);const o=await Fg(a);if(o.readInt32LE(0)!==uH)throw new Error("Not a BAM file");const s=o.readInt32LE(4);this.header=o.toString("utf8",8,8+s);const{chrToIndex:l,indexToChr:c}=await this._readRefSeqs(s+8,65535,n);return this.chrToIndex=l,this.indexToChr=c,lH(this.header)}async getHeaderText(t={}){return await this.getHeader(t),this.header}async _readRefSeqs(t,n,r={}){if(t>n)return this._readRefSeqs(t,n*2,r);const i=n+Pm,{bytesRead:a,buffer:o}=await this.bam.read(Buffer.alloc(i),0,n,0,r);if(!a)throw new Error("Error reading refseqs from header");const s=await Fg(o.subarray(0,Math.min(a,n))),l=s.readInt32LE(t);let c=t+4;const u={},f=[];for(let h=0;h<l;h+=1){const d=s.readInt32LE(c),p=this.renameRefSeq(s.toString("utf8",c+4,c+4+d-1)),g=s.readInt32LE(c+d+4);if(u[p]=h,f.push({refName:p,length:g}),c=c+8+d,c>s.length)return console.warn(`BAM header is very big. Re-fetching ${n} bytes.`),this._readRefSeqs(t,n*2,r)}return{chrToIndex:u,indexToChr:f}}async getRecordsForRange(t,n,r,i={viewAsPairs:!1,pairAcrossChr:!1,maxInsertSize:2e5}){return Um(await fH(this.streamRecordsForRange(t,n,r,i)))}async*streamRecordsForRange(t,n,r,i={}){const{signal:a}=i,o=this.chrToIndex&&this.chrToIndex[t];let s;if(!(o>=0))s=[];else if(s=await this.index.blocksForRange(o,n-1,r,i),!s)throw new Error("Error in index fetch");for(let c=0;c<s.length;c+=1){await mS(a);const u=s[c].fetchedSize();if(u>this.chunkSizeLimit)throw new Error(`Too many BAM features. BAM chunk size ${u} bytes exceeds chunkSizeLimit of ${this.chunkSizeLimit}`)}const l=s.map(c=>c.fetchedSize()).reduce((c,u)=>c+u,0);if(l>this.fetchSizeLimit)throw new Error(`data size of ${l.toLocaleString()} bytes exceeded fetch size limit of ${this.fetchSizeLimit.toLocaleString()} bytes`);yield*this._fetchChunkFeatures(s,o,n,r,i)}async*_fetchChunkFeatures(t,n,r,i,a){const{viewAsPairs:o=!1}=a,s=[];let l=!1;for(let c=0;c<t.length;c++){const u=t[c],f=await this.featureCache.get(u.toString(),{chunk:u,opts:a},a.signal),h=[];for(let d=0;d<f.length;d+=1){const p=f[d];if(p.seq_id()===n)if(p.get("start")>=i){l=!0;break}else p.get("end")>=r&&h.push(p)}if(s.push(h),yield h,l)break}gS(a.signal),o&&(yield this.fetchPairs(n,s,a))}async fetchPairs(t,n,r){const{pairAcrossChr:i=!1,maxInsertSize:a=2e5}=r,o={},s={};n.map(h=>{const d={};for(let p=0;p<h.length;p++){const g=h[p].name(),y=h[p].id();d[g]||(d[g]=0),d[g]++,s[y]=1}iH(d).forEach(([p,g])=>{g===1&&(o[p]=!0)})});const l=[];n.map(h=>{for(let d=0;d<h.length;d++){const p=h[d],g=p.name(),y=p.get("start"),v=p._next_pos(),S=p._next_refid();o[g]&&(i||S===t&&Math.abs(y-v)<a)&&l.push(this.index.blocksForRange(S,v,v+1,r))}});const c=Um(await Promise.all(l)).sort().filter((h,d,p)=>!d||h.toString()!==p[d-1].toString()),u=c.map(h=>h.fetchedSize()).reduce((h,d)=>h+d,0);if(u>this.fetchSizeLimit)throw new Error(`data size of ${u.toLocaleString()} bytes exceeded fetch size limit of ${this.fetchSizeLimit.toLocaleString()} bytes`);const f=c.map(async h=>{const{data:d,cpositions:p,dpositions:g,chunk:y}=await this._readChunk({chunk:h,opts:r}),v=await this.readBamFeatures(d,p,g,y),S=[];for(let k=0;k<v.length;k+=1){const C=v[k];o[C.get("name")]&&!s[C.id()]&&S.push(C)}return S});return Um(await Promise.all(f))}async _readChunk({chunk:t,opts:n}){const r=t.fetchedSize(),{buffer:i,bytesRead:a}=await this.bam.read(Buffer.alloc(r),0,r,t.minv.blockPosition,n),{buffer:o,cpositions:s,dpositions:l}=await jR(i.subarray(0,Math.min(a,r)),t);return{data:o,cpositions:s,dpositions:l,chunk:t}}async readBamFeatures(t,n,r,i){let a=0;const o=[];let s=0,l=+Date.now();for(;a+4<t.length;){const c=t.readInt32LE(a),u=a+4+c-1;if(r){for(;a+i.minv.dataPosition>=r[s++];);s--}if(u<t.length){const f=new cH({bytes:{byteArray:t,start:a,end:u},fileOffset:n?n[s]*256+(a-r[s])+i.minv.dataPosition+1:tH.signed(t.slice(a,u))});o.push(f),this.yieldThreadTime&&+Date.now()-l>this.yieldThreadTime&&(await $j(1),l=+Date.now())}a=u+1}return o}async hasRefSeq(t){const n=this.chrToIndex&&this.chrToIndex[t];return this.index.hasRefSeq(n)}async lineCount(t){const n=this.chrToIndex&&this.chrToIndex[t];return this.index.lineCount(n)}async indexCov(t,n,r){await this.index.parse();const i=this.chrToIndex&&this.chrToIndex[t];return this.index.indexCov(i,n,r)}async blocksForRange(t,n,r,i){await this.index.parse();const a=this.chrToIndex&&this.chrToIndex[t];return this.index.blocksForRange(a,n,r,i)}}(function(){(function(e){(function(t){var n={searchParams:"URLSearchParams"in e,iterable:"Symbol"in e&&"iterator"in Symbol,blob:"FileReader"in e&&"Blob"in e&&function(){try{return new Blob,!0}catch{return!1}}(),formData:"FormData"in e,arrayBuffer:"ArrayBuffer"in e};function r(D){return D&&DataView.prototype.isPrototypeOf(D)}if(n.arrayBuffer)var i=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],a=ArrayBuffer.isView||function(D){return D&&i.indexOf(Object.prototype.toString.call(D))>-1};function o(D){if(typeof D!="string"&&(D=String(D)),/[^a-z0-9\-#$%&'*+.^_`|~]/i.test(D))throw new TypeError("Invalid character in header field name");return D.toLowerCase()}function s(D){return typeof D!="string"&&(D=String(D)),D}function l(D){var M={next:function(){var F=D.shift();return{done:F===void 0,value:F}}};return n.iterable&&(M[Symbol.iterator]=function(){return M}),M}function c(D){this.map={},D instanceof c?D.forEach(function(M,F){this.append(F,M)},this):Array.isArray(D)?D.forEach(function(M){this.append(M[0],M[1])},this):D&&Object.getOwnPropertyNames(D).forEach(function(M){this.append(M,D[M])},this)}c.prototype.append=function(D,M){D=o(D),M=s(M);var F=this.map[D];this.map[D]=F?F+", "+M:M},c.prototype.delete=function(D){delete this.map[o(D)]},c.prototype.get=function(D){return D=o(D),this.has(D)?this.map[D]:null},c.prototype.has=function(D){return this.map.hasOwnProperty(o(D))},c.prototype.set=function(D,M){this.map[o(D)]=s(M)},c.prototype.forEach=function(D,M){for(var F in this.map)this.map.hasOwnProperty(F)&&D.call(M,this.map[F],F,this)},c.prototype.keys=function(){var D=[];return this.forEach(function(M,F){D.push(F)}),l(D)},c.prototype.values=function(){var D=[];return this.forEach(function(M){D.push(M)}),l(D)},c.prototype.entries=function(){var D=[];return this.forEach(function(M,F){D.push([F,M])}),l(D)},n.iterable&&(c.prototype[Symbol.iterator]=c.prototype.entries);function u(D){if(D.bodyUsed)return Promise.reject(new TypeError("Already read"));D.bodyUsed=!0}function f(D){return new Promise(function(M,F){D.onload=function(){M(D.result)},D.onerror=function(){F(D.error)}})}function h(D){var M=new FileReader,F=f(M);return M.readAsArrayBuffer(D),F}function d(D){var M=new FileReader,F=f(M);return M.readAsText(D),F}function p(D){for(var M=new Uint8Array(D),F=new Array(M.length),U=0;U<M.length;U++)F[U]=String.fromCharCode(M[U]);return F.join("")}function g(D){if(D.slice)return D.slice(0);var M=new Uint8Array(D.byteLength);return M.set(new Uint8Array(D)),M.buffer}function y(){return this.bodyUsed=!1,this._initBody=function(D){this._bodyInit=D,D?typeof D=="string"?this._bodyText=D:n.blob&&Blob.prototype.isPrototypeOf(D)?this._bodyBlob=D:n.formData&&FormData.prototype.isPrototypeOf(D)?this._bodyFormData=D:n.searchParams&&URLSearchParams.prototype.isPrototypeOf(D)?this._bodyText=D.toString():n.arrayBuffer&&n.blob&&r(D)?(this._bodyArrayBuffer=g(D.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):n.arrayBuffer&&(ArrayBuffer.prototype.isPrototypeOf(D)||a(D))?this._bodyArrayBuffer=g(D):this._bodyText=D=Object.prototype.toString.call(D):this._bodyText="",this.headers.get("content-type")||(typeof D=="string"?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):n.searchParams&&URLSearchParams.prototype.isPrototypeOf(D)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},n.blob&&(this.blob=function(){var D=u(this);if(D)return D;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){return this._bodyArrayBuffer?u(this)||Promise.resolve(this._bodyArrayBuffer):this.blob().then(h)}),this.text=function(){var D=u(this);if(D)return D;if(this._bodyBlob)return d(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(p(this._bodyArrayBuffer));if(this._bodyFormData)throw new Error("could not read FormData body as text");return Promise.resolve(this._bodyText)},n.formData&&(this.formData=function(){return this.text().then(C)}),this.json=function(){return this.text().then(JSON.parse)},this}var v=["DELETE","GET","HEAD","OPTIONS","POST","PUT"];function S(D){var M=D.toUpperCase();return v.indexOf(M)>-1?M:D}function k(D,M){M=M||{};var F=M.body;if(D instanceof k){if(D.bodyUsed)throw new TypeError("Already read");this.url=D.url,this.credentials=D.credentials,M.headers||(this.headers=new c(D.headers)),this.method=D.method,this.mode=D.mode,this.signal=D.signal,!F&&D._bodyInit!=null&&(F=D._bodyInit,D.bodyUsed=!0)}else this.url=String(D);if(this.credentials=M.credentials||this.credentials||"same-origin",(M.headers||!this.headers)&&(this.headers=new c(M.headers)),this.method=S(M.method||this.method||"GET"),this.mode=M.mode||this.mode||null,this.signal=M.signal||this.signal,this.referrer=null,(this.method==="GET"||this.method==="HEAD")&&F)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(F)}k.prototype.clone=function(){return new k(this,{body:this._bodyInit})};function C(D){var M=new FormData;return D.trim().split("&").forEach(function(F){if(F){var U=F.split("="),q=U.shift().replace(/\+/g," "),V=U.join("=").replace(/\+/g," ");M.append(decodeURIComponent(q),decodeURIComponent(V))}}),M}function E(D){var M=new c,F=D.replace(/\r?\n[\t ]+/g," ");return F.split(/\r?\n/).forEach(function(U){var q=U.split(":"),V=q.shift().trim();if(V){var pe=q.join(":").trim();M.append(V,pe)}}),M}y.call(k.prototype);function w(D,M){M||(M={}),this.type="default",this.status=M.status===void 0?200:M.status,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in M?M.statusText:"OK",this.headers=new c(M.headers),this.url=M.url||"",this._initBody(D)}y.call(w.prototype),w.prototype.clone=function(){return new w(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new c(this.headers),url:this.url})},w.error=function(){var D=new w(null,{status:0,statusText:""});return D.type="error",D};var A=[301,302,303,307,308];w.redirect=function(D,M){if(A.indexOf(M)===-1)throw new RangeError("Invalid status code");return new w(null,{status:M,headers:{location:D}})},t.DOMException=e.DOMException;try{new t.DOMException}catch{t.DOMException=function(M,F){this.message=M,this.name=F;var U=Error(M);this.stack=U.stack},t.DOMException.prototype=Object.create(Error.prototype),t.DOMException.prototype.constructor=t.DOMException}function T(D,M){return new Promise(function(F,U){var q=new k(D,M);if(q.signal&&q.signal.aborted)return U(new t.DOMException("Aborted","AbortError"));var V=new XMLHttpRequest;function pe(){V.abort()}V.onload=function(){var Se={status:V.status,statusText:V.statusText,headers:E(V.getAllResponseHeaders()||"")};Se.url="responseURL"in V?V.responseURL:Se.headers.get("X-Request-URL");var tt="response"in V?V.response:V.responseText;F(new w(tt,Se))},V.onerror=function(){U(new TypeError("Network request failed"))},V.ontimeout=function(){U(new TypeError("Network request failed"))},V.onabort=function(){U(new t.DOMException("Aborted","AbortError"))},V.open(q.method,q.url,!0),q.credentials==="include"?V.withCredentials=!0:q.credentials==="omit"&&(V.withCredentials=!1),"responseType"in V&&n.blob&&(V.responseType="blob"),q.headers.forEach(function(Se,tt){V.setRequestHeader(tt,Se)}),q.signal&&(q.signal.addEventListener("abort",pe),V.onreadystatechange=function(){V.readyState===4&&q.signal.removeEventListener("abort",pe)}),V.send(typeof q._bodyInit>"u"?null:q._bodyInit)})}return T.polyfill=!0,e.fetch||(e.fetch=T,e.Headers=c,e.Request=k,e.Response=w),t.Headers=c,t.Request=k,t.Response=w,t.fetch=T,Object.defineProperty(t,"__esModule",{value:!0}),t})({})})(typeof self<"u"?self:Sa)})();class dH extends Xf(Po){constructor(n,r){const i={channel:"x",windowSize:2e4,...n};super(r,i.channel);En(this,"lastRequestId",0);En(this,"chrPrefixFixer",n=>n);if(this.params=i,!this.params.url)throw new Error("No URL provided for BamSource");const a=o=>new kr(Ko(o,this.view.getBaseUrl()));this.bam=new hH({bamFilehandle:a(this.params.url),baiFilehandle:a(this.params.indexUrl??this.params.url+".bai")}),this.headerPromise=this.bam.getHeader(),this.headerPromise.then(o=>{var c,u;const s=this.genome.hasChrPrefix(),l=(u=(c=this.bam.indexToChr)==null?void 0:c[0])==null?void 0:u.refName.startsWith("chr");s&&!l?this.chrPrefixFixer=f=>f.replace("chr",""):!s&&l&&(this.chrPrefixFixer=f=>"chr"+f)})}async onDomainChanged(n){const r=this.params.windowSize;if(n[1]-n[0]>r)return;await this.headerPromise;const i=this.quantizeInterval(n,r);if(this.checkAndUpdateLastInterval(i)){const a=this.genome.continuousToDiscreteChromosomeIntervals(i),o=await Promise.all(a.map(s=>this.bam.getRecordsForRange(this.chrPrefixFixer(s.chrom),s.startPos,s.endPos).then(l=>l.map(c=>({chrom:s.chrom,start:c.get("start"),end:c.get("end"),name:c.get("name"),MD:c.get("MD"),cigar:c.get("cigar"),mapq:c.get("mq"),strand:c.get("strand")===1?"+":"-"})))));this.publishData(o.flat())}}}function AS(e,t){if(B7(e))return new L7(e,t);if(O7(e))return new R7(e,t);if(z7(e))return new P7(e,t);if(pH(e))return xH(e.lazy,t);throw new Error("Cannot figure out the data source type: "+JSON.stringify(e))}function pH(e){return"lazy"in e}function gH(e){return(e==null?void 0:e.type)=="axisTicks"}function mH(e){return(e==null?void 0:e.type)=="axisGenome"}function bH(e){return(e==null?void 0:e.type)=="indexedFasta"}function yH(e){return(e==null?void 0:e.type)=="bigwig"}function vH(e){return(e==null?void 0:e.type)=="bigbed"}function wH(e){return(e==null?void 0:e.type)=="bam"}function xH(e,t){if(gH(e))return new U7(e,t);if(mH(e))return new j7(e,t);if(bH(e))return new VR(e,t);if(yH(e))return new Fj(e,t);if(vH(e))return new jj(e,t);if(wH(e))return new dH(e,t);throw new Error("Cannot figure out the data source type: "+JSON.stringify(e))}function AH(e){const t=Object.keys(e).filter(r=>typeof r=="string"),n=new Function("source","return { "+t.map(r=>JSON.stringify(r)).map(r=>`${r}: source[${r}]`).join(`,
1547
+ `)+" };");return n.properties=t,n}class Eh extends We{get behavior(){return Cr}constructor(){super();const t=n=>{const r=AH(n);this.handle=i=>this._propagate(r(i)),this.handle(n)};this.handle=t,this.beginBatch=n=>{yx(n)&&(this.handle=t),super.beginBatch(n)}}}function EH(e){return"name"in e}class ES extends zo{constructor(n,r,i){super();Fe(this,ru,void 0);this.provider=i,this.params=n}get identifier(){return this.params.name}updateDynamicData(n){Sn(this,ru,n),this.loadSynchronously()}loadSynchronously(){const n=ce(this,ru)??this.provider(this.params.name)??[];let r=i=>i;if(Array.isArray(n))n.length>0&&(r=oA(n[0]));else throw new Error(`Named data "${this.params.name}" is not an array!`);this.reset(),this.beginBatch({type:"file"});for(const i of n)this._propagate(r(i));this.complete()}async load(){this.loadSynchronously()}}ru=new WeakMap;class SS{constructor(){this._dataSourcesByHost=new Map,this._collectorsByHost=new Map,this._observers=new Map}get dataSources(){return[...new Set(this._dataSourcesByHost.values()).values()]}get collectors(){return[...this._collectorsByHost.values()]}addObserver(t,n){let r=this._observers.get(n);r||(r=[],this._observers.set(n,r)),r.push(t)}_relayObserverCallback(t,n){const r=this._observers.get(n);if(r)for(const i of r)i(t)}addDataSource(t,n){this._dataSourcesByHost.set(n,t)}findDataSourceByKey(t){return this._dataSourcesByHost.get(t)}findNamedDataSource(t){let n,r=[];for(const[i,a]of this._dataSourcesByHost.entries())if(a instanceof ES&&t==a.identifier){if(n&&n!==a)throw new Error(`Found multiple instances of named data: ${t}. Data flow optimization is broken (it's a bug).`);n=a,r.push(i)}if(n)return{dataSource:n,hosts:r}}addCollector(t,n){this._collectorsByHost.set(n,t),t.observers.push(r=>this._relayObserverCallback(r,n))}findCollectorByKey(t){return this._collectorsByHost.get(t)}initialize(){for(const t of this.dataSources)t.visit(n=>n.initialize())}}function CS(e,t){const n=[];let r;const i=t??new SS,a=[];function o(u,f=()=>{}){if(!r)throw f()||new Error("Cannot append data flow node, no parent exist!");return r.addChild(u),r=u,u}function s(u,f){return o(u,()=>new Error(`Cannot append a transform because no (inherited) data are available! ${f?JSON.stringify(f):""}`))}function l(u,f){for(const h of u){let d;try{d=I7(h,f)}catch(p){throw console.warn(p),new Error(`Cannot initialize "${h.type}" transform: ${p}`)}d.behavior&di&&s(new Eh),s(d)}}const c=u=>{if(n.push(r),u.spec.data){const f=EH(u.spec.data)?new ES(u.spec.data,u,u.context.getNamedDataFromProvider):AS(u.spec.data,u);r=f,i.addDataSource(f,u)}if(u.spec.transform&&l(u.spec.transform,u),u instanceof Je){if(!r)throw new Error("A unit view has no (inherited) data source");const f=SH(u);if(f){a.push(f.rewrite);for(const d of f.transforms)s(d)}u.mark.isPickingParticipant()&&(s(new Eh),s(new rA({type:"identifier"})));const h=new $c({type:"collect",groupby:u.getFacetFields(),sort:CH(u,f==null?void 0:f.rewrittenEncoding)});o(h),i.addCollector(h,u)}Kx(u.spec)};return c.postOrder=u=>{r=n.pop()},e.visit(c),a.forEach(u=>u()),i}function SH(e){var a;const t=[],n={},r=[];for(const[o,s]of Object.entries(e.getEncoding())){const l=o;kc(l)&&Rv(s)&&r.push({channel:l,chromPosDef:s})}const i=Us(r,o=>So(o.channel),o=>o.chromPosDef.chrom);for(const[o,s]of i.entries())for(const[l,c]of s.entries()){const u=[],f=[],h=[];for(const{channel:d,chromPosDef:p}of c){const g=S=>S.replace(/[^A-Za-z0-9_]/g,""),y=["_linearized_",g(p.chrom),"_",g(p.pos)].join(""),v={...((a=e.spec.encoding)==null?void 0:a[d])??e.getEncoding()[d]??{},field:y};delete v.chrom,delete v.pos,!v.type&&p.type&&(v.type=p.type),n[d]=v,u.push(p.pos),h.push(p.offset??0),f.push(y)}t.push(new Eh),t.push(new Jx({type:"linearizeGenomicCoordinate",channel:o,chrom:l,pos:u,offset:h,as:f},e))}return t.length?{transforms:t,rewrittenEncoding:n,rewrite:()=>{e.spec.encoding={...e.spec.encoding,...n},fx(e.mark,"encoding")}}:void 0}function CH(e,t){var r;const n={...e.getEncoding(),...t}.x;if(an(n)&&(r=e.getScaleResolution("x"))!=null&&r.isZoomable()){if(pa(n))return{field:n.field};if(!Cc(n))throw new Error("A zoomable x channel must be mapped to a field.")}}function _H(e,...t){let n=e;for(const a of t)n.addChild(a),n=a;let r;n instanceof $c?r=n:(r=new $c,n.addChild(r));let i;return e instanceof zo?i=async()=>(await e.load(),r.getData()):i=async()=>{throw new Error("The root node is not derived from DataSource!")},{dataSource:e,collector:r,loadAndCollect:i}}function _S(e,t=void 0){if(e.parent!==t)return!1;for(const n of e.children)if(!_S(n,e))return!1;return!0}function jm(e,t=!1){if(e.behavior&Pp&&(t=!0),e instanceof Eh)if(t)t=!1;else{const n=e.children[0];e.excise(),n&&jm(n,t);return}e.behavior&Cr&&(t=!1);for(let n=0,r=e.children.length;n<r;n++)jm(e.children[n],t||r>1)}function kH(e){const t=[...e._dataSourcesByHost.entries()],n=new Map;for(const r of t){const i=r[1];i.identifier&&!n.has(i.identifier)&&n.set(i.identifier,i)}e._dataSourcesByHost.clear();for(let[r,i]of t){const a=n.get(i.identifier);a&&(a.adoptChildrenOf(i),i=a),e.addDataSource(i,r)}}function DH(e){if(jm(e),!_S(e))throw new Error("Encountered a bug! There's a problem in the data flow structure.")}function IH(e){for(const t of e.dataSources)DH(t);kH(e)}function kS(e){e.visit(n=>{n instanceof Je&&n.resolve("scale")});const t=new Set;e.visit(n=>{for(const r of Object.values(n.resolutions.scale)){const i=r.name;if(i&&t.has(i))throw new Error(`The same scale name "${i}" occurs in multiple scale resolutions!`);t.add(i)}}),e.visit(n=>{n instanceof Je&&n.resolve("axis")}),e.visit(n=>n.onScalesResolved())}function TH(e){for(const t of _c){const n=e.getScaleResolution(t);n&&!n.name&&n.isZoomable()&&(n.name=`${t}_at_root`)}}function MH(e){const t=[];return e.visit(n=>{if(n instanceof Je){const r=n.getEncoding();for(const[i,a]of Object.entries(r))pa(a)&&"type"in a&&t.push({view:n,channel:i,field:a.field,type:a.type});return Mf}}),t}async function NH(e,t,n){var o;if(!e.import.url)throw new Error("Cannot import, not an import spec: "+JSON.stringify(e));const r=rc({baseURL:t}),i=e.import.url,a=JSON.parse(await r.load(i).catch(s=>{throw new Error(`Could not load imported view spec: ${i}
1548
+ Reason: ${s.message}`)}));if(n.isViewSpec(a))return a.baseUrl=(o=i.match(/^[^?#]*\//))==null?void 0:o[0],a;throw new Error(`The imported spec "${i}" is not a view spec: ${JSON.stringify(e)}`)}async function DS(e){const t=[];e.visit(n=>{if(n instanceof jx)return t.push(n),Mf});for(const n of t){const r=n.context,i=await NH(n.spec,n.getBaseUrl(),r),a=r.createView(i,n.parent,n.name);n.parent.replaceChild(n,a),await DS(a)}}function IS(e){const t=[];return e.visit(n=>{t.push(n)}),new Set([...sk(t,n=>n.length,n=>n.name)].filter(([n,r])=>r==1&&n!==void 0).map(([n,r])=>n))}const FH=e=>!/^(layer|concat)\d+$/.test(e);class TS{constructor(t){this.globalOptions=t}pushView(t,n){}popView(t){}renderMark(t,n){}}class MS extends TS{constructor(t,n){super(t),this.webGLHelper=n,this.buffer=[],this.coords=void 0,this.views=new Set}pushView(t,n){this.views.add(t),this.coords=n}renderMark(t,n){if(this.globalOptions.picking&&!t.isPickingParticipant())return;const r=t.render(n);r&&this.buffer.push({mark:t,callback:r,coords:this.coords,clipRect:n.clipRect})}renderDeferred(){if(this.batch||this._buildBatch(),this.batch.length==0)return;const t=this.webGLHelper.gl,n=this.globalOptions.picking;t.bindFramebuffer(t.FRAMEBUFFER,n?this.webGLHelper._pickingBufferInfo.framebuffer:null),this.webGLHelper.clearAll();for(const r of this.views)r.onBeforeRender();for(const r of this.batch)r();n&&t.bindFramebuffer(t.FRAMEBUFFER,null)}_buildBatch(){this.batch=[];let t=!0,n=!0;const r=o=>()=>{t&&o()},i=o=>()=>{t&&n&&o()},a=Us(this.buffer,o=>o.mark);for(const[o,s]of a.entries()){if(!o.isReady())continue;this.batch.push(()=>{t=o.unitView.getEffectiveOpacity()>0}),this.batch.push(...o.prepareRender(this.globalOptions).map(c=>r(c)));let l;for(const c of s){const u=c.coords;u.equals(l)||this.batch.push(r(()=>{n=o.setViewport(u,c.clipRect)})),this.batch.push(i(c.callback)),l=c.coords}}}}class BH extends TS{constructor(...t){super({}),this.contexts=t}pushView(t,n){for(const r of this.contexts)r.pushView(t,n)}popView(t){for(const n of this.contexts)n.popView(t)}renderMark(t,n){for(const r of this.contexts)r.renderMark(t,n)}}class LH{constructor(t,n){this.point=t,this.uiEvent=n,this.stopped=!1,this.target=void 0}stopPropagation(){this.stopped=!0}get type(){return this.uiEvent.type}}class OH{constructor(t,n){this.x=t,this.y=n}equals(t){return t?t===this||t.x===this.x&&t.y===this.y:!1}}const RH=e=>new Promise(t=>setTimeout(t,e));function Sh(e){const t=e.requestAnimationFrame||window.requestAnimationFrame,n=e.signal,r=()=>new Promise((i,a)=>{if(n!=null&&n.aborted)return a("aborted");const o=performance.now(),s=o+(e.duration||1e3),l=typeof e.from=="number"?e.from:0,c=typeof e.to=="number"?e.to:1,u=e.easingFunction||(g=>g),f=g=>(g-o)/(s-o),h=g=>g*(c-l)+l,d=g=>Math.max(0,Math.min(1,g)),p=g=>{n!=null&&n.aborted?a("aborted"):(e.onUpdate(h(u(d(f(g))))),g<s?t(p):(e.onUpdate(h(u(1))),i()))};t(p)});return e.delay?n!=null&&n.aborted?Promise.reject("aborted"):RH(e.delay).then(r):r()}class zH{constructor(t){this._renderCallback=t,this._renderRequested=!1,this._warn=!1,this.transitions=[]}requestTransition(t){this.cancelTransition(t),this.transitions.push(t),this.requestRender()}cancelTransition(t){const n=this.transitions.indexOf(t);n>=0&&this.transitions.splice(n,1)}requestRender(){this._renderRequested?this._warn&&console.warn("Render already requested!"):(this._renderRequested=!0,window.requestAnimationFrame(t=>{this._renderRequested=!1;const n=this.transitions;this.transitions=[];let r;for(;r=n.shift();)r(t);this._renderCallback(t)}))}transition(t){return Sh({requestAnimationFrame:n=>this.requestTransition(n),...t})}}function NS(){const e=t=>t;return e.invert=t=>t,e.copy=NS,e.invertRange=()=>{},e}class PH{constructor(t){this.genomes=new Map,this.genomeSpy=t}async initialize(t){const n=new _L(t);return this.genomes.set(n.name,n),Promise.all([...this.genomes.values()].map(r=>r.load(this.genomeSpy.spec.baseUrl)))}getGenome(t){if(!this.genomes.size)throw new Error("No genomes have been configured!");if(t){const n=this.genomes.get(t);if(!n)throw new Error(`No genome with the name ${t} has been configured!`);return n}else{if(this.genomes.size>1)throw new Error("Cannot pick a default genome! More than one have been configured!");return this.genomes.values().next().value}}}const UH="data:image/png;base64,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",jH={thin:100,light:300,regular:400,normal:400,medium:500,bold:700,black:900};class HH{constructor(t){this._webGLHelper=t,this.fontRepository="https://raw.githubusercontent.com/etiennepinchon/aframe-fonts/master/fonts/",this._fonts=new Zi([],JSON.stringify),this._metadataPromises=new Map,this._fontPromises=new Map,this._promises=[],this._defaultFontEntry={metrics:Op(eA),texture:this._createTextureNow(UH)}}async waitUntilReady(){await Promise.all(this._promises)}getFont(t,n="normal",r="regular"){if(ze(r)&&(r=jH[r.toLowerCase()],!r))throw new Error("Unknown font weight: "+r);const i={family:t,style:n,weight:r};let a=this._fonts.get(i);return a||(a={metrics:void 0,texture:void 0},this._fonts.set(i,a),this._promises.push(this._loadFontEntry(a,i))),a}async _loadFontEntry(t,n){try{const r=await this._loadMetadata(n.family),i=$H(r,n),a=this.fontRepository+FS(n.family)+"/"+i.replace(/\.\w+/,""),o=this._createTexture(a+".png"),s=this._loadFont(a+".json");t.texture=await o,t.metrics=await s}catch(r){console.log("Cannot load font. Using default.",r),t.metrics=this._defaultFontEntry.metrics,t.texture=this._defaultFontEntry.texture}}_loadFont(t){let n=this._fontPromises.get(t);return n||(n=fetch(t).then(r=>{if(!r.ok)throw new Error("Could not load font: "+r.status);return r}).then(r=>r.json()).then(r=>Op(r)),this._fontPromises.set(t,n)),n}_loadMetadata(t){const n=FS(t);let r=this._metadataPromises.get(n);return r||(r=fetch(this.fontRepository+n+"/METADATA.pb").then(i=>{if(!i.ok)throw new Error("Could not load font metadata: "+i.status);return i}).then(i=>i.text()).then(i=>GH(i)).catch(i=>{console.warn(i)}),this._metadataPromises.set(n,r)),r}getDefaultFont(){return this._defaultFontEntry}_createTexture(t){const n=this._webGLHelper.gl;return new Promise((r,i)=>{Bc(n,{src:t,min:n.LINEAR},(a,o,s)=>{a?i(a):r(o)})})}_createTextureNow(t){const n=this._webGLHelper.gl;let r;const i=new Promise((a,o)=>{r=Bc(n,{src:t,min:n.LINEAR},(s,l,c)=>{s?o(s):a(l)})});return this._promises.push(i),r}}function FS(e){return e.toLowerCase().replaceAll(/[^\w]/g,"")}function GH(e){const t=e.split(`
1549
+ `),n=[];let r;for(const i of t)if(i.startsWith("fonts {")&&(r={name:void 0,style:void 0,weight:void 0,filename:void 0,post_script_name:void 0,full_name:void 0,copyright:void 0}),i.startsWith("}")&&(n.push(r),r=void 0),r){let a=i.match(/^\s*([A-Za-z_]+):[ ]?"(.*)"$/);if(a){const o=a[1];r[o]=a[2]}if(a=i.match(/^\s*([A-Za-z_]+):[ ]?(\d+)$/),a){const o=a[1];r[o]=+a[2]}}return n}function $H(e,t){let n,r=Number.POSITIVE_INFINITY;for(const i of e)if(t.family.localeCompare(i.name,void 0,{sensitivity:"accent"})==0&&t.style==i.style){const a=Math.abs(t.weight-i.weight);a<r&&(r=a,n=i)}return n==null?void 0:n.filename}function VH(e,t){const n=[];let r;for(const i of e.split(`
1550
+ `))if(i.startsWith(">"))r={identifier:i.match(/>(\S+)/)[1],sequence:""},n.push(r);else if(r)r.sequence+=i.trim();else throw new Error("Invalid fasta file!");return n}class YH{constructor(t,n){this.animator=t,this.disabled=!!n,this.damping=.015,this.acceleration=.3,this.accelerationThreshold=100,this.lowerLimit=.5,this.loop=!1,this.momentum=0,this.timestamp=0,this.callback=null,this._transitionCallback=this.animate.bind(this),this.clear()}clear(){this.momentum=0,this.timestamp=null,this.loop=null,this.callback=null}cancel(){this.loop&&(this.animator.cancelTransition(this._transitionCallback),this.clear())}setMomentum(t,n){if(this.disabled){n(t);return}t*this.momentum<0?this.momentum=0:Math.abs(t)>this.accelerationThreshold?this.momentum=O_([this.momentum,t],this.acceleration):this.momentum=t,this.callback=n,this.loop||this.animate()}animate(t){this.callback(this.momentum);const n=t-this.timestamp||0;this.timestamp=t;const r=Math.abs(this.momentum);this.momentum=Math.sign(this.momentum)*Math.max(0,r-((r*this.damping)**1.5+.04)*n),Math.abs(this.momentum)>this.lowerLimit?(this.loop=!0,this.animator.requestTransition(this._transitionCallback)):this.clear()}}function QH(e){const t={},n=["string","number","boolean"],r=["wheelDelta","wheelDeltaX","wheelDeltaY"];for(const i in e){const a=i;!r.includes(i)&&n.includes(typeof e[a])&&(t[a]=e[a])}return t}const BS=new Map;async function ZH(e,t,n){const r=e.symbol;let i=BS.get(r)??await XH(e.symbol);return i?(BS.set(r,i),z`<div class="title"><strong>${i.name}</strong> ${i.description}</div><p class="summary">${i.summary}</p><p class="source">Source: NCBI RefSeq Gene</p>`):null}async function qH(e){console.log("Searching: "+e);const t={mode:"cors"},r=(await fetch(`https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?db=gene&term=${e}[GENE]&sort=relevance&retmode=json`,t).then(i=>i.json())).esearchresult.idlist[0];return r?(await fetch(`https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esummary.fcgi?db=gene&id=${r}&retmode=json`,t).then(o=>o.json())).result[r]:null}const WH=hs(qH,500);function XH(e){return WH(e)}const KH=rt(".4~r"),JH=rt(".4~e");function LS(e){return e===null?z`<span class="na">NA</span>`:ze(e)?e.substring(0,30):Number.isInteger(e)?""+e:Ke(e)?Math.abs(e)>Math.pow(10,8)||Math.abs(e)<Math.pow(10,-8)?JH(e):KH(e):gu(e)?e?"True":"False":"?"+typeof e+" "+e}async function eG(e,t,n){const r=(l,c)=>{var u;for(const[f,h]of Object.entries(t.encoders))if((u=h==null?void 0:h.accessor)!=null&&u.fields.includes(l))switch(f){case"color":case"fill":case"stroke":return z`<span class="color-legend" style="${`background-color: ${h(c)}`}"></span>`}return""},i=Object.entries(e).filter(([l,c])=>!l.startsWith("_"));if(i.length===0)return;const a=z`<table class="attributes">${i.map(([l,c])=>z`<tr><th>${l}</th><td>${LS(c)} ${r(l,e)}</td></tr>`)}</table>`,o=t.unitView.getTitleText(),s=o?z`<div class="title"><strong>${o}</strong></div>`:"";return z`${s}${a}`}class tG extends Wx{constructor(t,n){super({vconcat:[]},t,void 0,"implicitRoot",1),n.parent=this,this.appendChild(n)}}xe("index",n0,["continuous"]),xe("locus",d5,["continuous"]),xe("null",NS,[]),Py("fasta",VH);class OS{constructor(t,n,r={}){this.container=t,this.spec=n,this.accessorFactory=new nM,this.viewFactory=new i7,this.namedDataProviders=[],this.animator=new zH(()=>this.renderAll()),this.genomeStore=void 0,this.viewVisibilityPredicate=i=>i.isVisibleInSpec(),this._renderingContext=void 0,this._pickingContext=void 0,this._dirtyPickingBuffer=!1,this._currentHover=void 0,this._wheelInertia=new YH(this.animator),this._keyboardListeners=new Map,this._eventListeners=new Map,this.tooltipHandlers={default:eG,refseqgene:ZH,...r.tooltipHandlers??{}},this.viewRoot=void 0}registerNamedDataProvider(t){this.namedDataProviders.unshift(t)}getNamedDataFromProvider(t){for(const n of this.namedDataProviders){const r=n(t);if(r)return r}}updateNamedData(t,n){const r=this.viewRoot.context.dataFlow.findNamedDataSource(t);if(!r)throw new Error("No such named data source: "+t);r.dataSource.updateDynamicData(n);for(const i of r.hosts)i.visit(a=>{for(const o of Object.values(a.resolutions.scale))o.reconfigure()});this.animator.requestRender()}broadcast(t,n){const r={type:t,payload:n};this.viewRoot.visit(i=>i.handleBroadcast(r))}_prepareContainer(){this.container.classList.add("genome-spy"),this.container.classList.add("loading"),this._glHelper=new yB(this.container,()=>{if(this.viewRoot){const t=this.viewRoot.getSize().addPadding(this.viewRoot.getOverhang()),n=r=>r.grow>0?void 0:r.px;return{width:n(t.width),height:n(t.height)}}}),this.loadingMessageElement=document.createElement("div"),this.loadingMessageElement.className="loading-message",this.loadingMessageElement.innerHTML='<div class="message">Loading<span class="ellipsis">...</span></div>',this.container.appendChild(this.loadingMessageElement),this.tooltip=new LI(this.container),this.loadingMessageElement.querySelector(".message").addEventListener("transitionend",()=>{this.loadingMessageElement.style.display="none"})}destroy(){this.container.classList.remove("genome-spy"),this.container.classList.remove("loading");for(const[t,n]of this._keyboardListeners)for(const r of n)document.removeEventListener(t,r);for(this._glHelper.finalize();this.container.firstChild;)this.container.firstChild.remove()}async _prepareViewsAndData(){this.spec.genome&&(this.genomeStore=new PH(this),await this.genomeStore.initialize(this.spec.genome));const t=this,n={dataFlow:new SS,accessorFactory:this.accessorFactory,glHelper:this._glHelper,animator:this.animator,genomeStore:this.genomeStore,fontManager:new HH(this._glHelper),requestLayoutReflow:()=>{},updateTooltip:this.updateTooltip.bind(this),getNamedDataFromProvider:this.getNamedDataFromProvider.bind(this),getCurrentHover:()=>this._currentHover,addKeyboardListener:(s,l)=>{document.addEventListener(s,l);let c=this._keyboardListeners.get(s);c||(c=[],this._keyboardListeners.set(s,c)),c.push(l)},isViewVisible:t.viewVisibilityPredicate,isViewSpec:s=>t.viewFactory.isViewSpec(s),createView:function(s,l,c){return t.viewFactory.createView(s,n,l,c)}},r=this.spec;r.datasets&&this.registerNamedDataProvider(s=>r.datasets[s]),this.viewRoot=n.createView(r,null,"viewRoot"),await DS(this.viewRoot),(this.viewRoot instanceof Je||this.viewRoot instanceof Wn)&&(this.viewRoot=new tG(n,this.viewRoot)),kS(this.viewRoot),TH(this.viewRoot),this._glHelper.invalidateSize();const i=[];this.viewRoot.visit(s=>{s instanceof Je&&i.push(s)});const a=CS(this.viewRoot,n.dataFlow);IH(a),this.broadcast("dataFlowBuilt",a),a.dataSources.forEach(s=>console.log(s.subtreeToString())),i.forEach(s=>s.mark.initializeEncoders());const o=Promise.all(i.map(s=>s.mark.initializeGraphics()));for(const s of i)a.addObserver(l=>{s.mark.initializeData(),s.mark.updateGraphicsData()},s);await n.fontManager.waitUntilReady(),a.initialize(),await Promise.all(a.dataSources.map(s=>s.load())),this.viewRoot.visit(s=>{for(const l of Object.values(s.resolutions.scale))l.reconfigure()}),this.broadcast("dataLoaded"),await o,this.viewRoot.visit(s=>{for(const l of Object.values(s.resolutions.scale))this._glHelper.createRangeTexture(l)});for(const s of i)s.mark.finalizeGraphicsInitialization();n.requestLayoutReflow=this.computeLayout.bind(this),this.viewRoot.visit(s=>Rc(s,"size")),this._glHelper.invalidateSize()}async launch(){try{return this._prepareContainer(),await this._prepareViewsAndData(),this.registerMouseEvents(),this.computeLayout(),this.animator.requestRender(),this._glHelper.addEventListener("resize",()=>{this.computeLayout(),this.renderAll()}),!0}catch(t){const n=`${t.view?`At "${t.view.getPathString()}": `:""}${t.toString()}`;return console.error(t.stack),nG(this.container,n),!1}finally{this.container.classList.remove("loading"),window.setTimeout(()=>{this.loadingMessageElement.style.display="none"},2e3)}}registerMouseEvents(){const t=this._glHelper.canvas,n=r=>{var i;if(r instanceof MouseEvent){r.type=="mousemove"&&(this.tooltip.handleMouseMove(r),this._tooltipUpdateRequested=!1,r.buttons==0&&this.renderPickingFramebuffer());const a=t.getBoundingClientRect(),o=new OH(r.clientX-a.left-t.clientLeft,r.clientY-a.top-t.clientTop),s=l=>{this.viewRoot.propagateInteractionEvent(new LH(o,l)),this._tooltipUpdateRequested||this.tooltip.clear()};if(r.type!="wheel"&&this._wheelInertia.cancel(),r.type=="mousemove")this._handlePicking(o.x,o.y);else if(r.type=="mousedown"||r.type=="mouseup")this.renderPickingFramebuffer();else if(r.type=="wheel"){this._tooltipUpdateRequested=!1;const l=r;if(Math.abs(l.deltaX)>Math.abs(l.deltaY))this._currentHover=null,this._wheelInertia.cancel();else{const c=QH(l);this._wheelInertia.setMomentum(l.deltaY*(l.deltaMode?80:1),u=>{const f=new WheelEvent("wheel",{...c,deltaMode:0,deltaX:0,deltaY:u});s(f)}),l.preventDefault();return}}if(r.type=="click"){const l=this._currentHover?{type:r.type,viewPath:[...this._currentHover.mark.unitView.getAncestors()].map(c=>c.name).reverse(),datum:this._currentHover.datum}:{type:r.type,viewPath:null,datum:null};(i=this._eventListeners.get("click"))==null||i.forEach(c=>c(l))}s(r)}};["mousedown","mouseup","wheel","click","mousemove","gesturechange","contextmenu"].forEach(r=>t.addEventListener(r,n)),t.addEventListener("mousedown",()=>{document.addEventListener("mouseup",()=>this.tooltip.popEnabledState(),{once:!0}),this.tooltip.pushEnabledState(!1)}),t.addEventListener("dragstart",r=>r.stopPropagation())}_handlePicking(t,n){var a;const r=this._glHelper.readPickingPixel(t,n),i=r[0]|r[1]<<8|r[2]<<16;if(i==0){this._currentHover=null;return}if(i!==((a=this._currentHover)==null?void 0:a.uniqueId)&&(this._currentHover=null),this._currentHover||this.viewRoot.visit(o=>{if(o instanceof Je){if(o.mark.isPickingParticipant()){const s=o.mark.encoders.uniqueId.accessor;o.getCollector().visitData(l=>{s(l)==i&&(this._currentHover={mark:o.mark,datum:l,uniqueId:i})})}if(this._currentHover)return xa}}),this._currentHover){const o=this._currentHover.mark;this.updateTooltip(this._currentHover.datum,async s=>{if(!o.isPickingParticipant())return;const l=o.properties.tooltip;if(l!==null){const c=(l==null?void 0:l.handler)??"default",u=this.tooltipHandlers[c];if(!u)throw new Error("No such tooltip handler: "+c);return u(s,o,l==null?void 0:l.params)}})}}updateTooltip(t,n){if(!this._tooltipUpdateRequested||!t)this.tooltip.updateWithDatum(t,n),this._tooltipUpdateRequested=!0;else throw new Error("Tooltip has already been updated! Duplicate event handler?")}computeLayout(){const t=this.viewRoot;if(!t)return;this.broadcast("layout");const n=this._glHelper.getLogicalCanvasSize();if(isNaN(n.width)||isNaN(n.height)){console.log(`NaN in canvas size: ${n.width}x${n.height}. Skipping computeLayout().`);return}this._renderingContext=new MS({picking:!1},this._glHelper),this._pickingContext=new MS({picking:!0},this._glHelper),t.render(new BH(this._renderingContext,this._pickingContext),pi.create(0,0,n.width,n.height)),this.broadcast("layoutComputed")}renderAll(){var t;(t=this._renderingContext)==null||t.renderDeferred(),this._dirtyPickingBuffer=!0}renderPickingFramebuffer(){this._dirtyPickingBuffer&&(this._pickingContext.renderDeferred(),this._dirtyPickingBuffer=!1)}getSearchableViews(){const t=[];return this.viewRoot.visit(n=>{n instanceof Je&&n.getAccessor("search")&&t.push(n)}),t}getNamedScaleResolutions(){const t=new Map;return this.viewRoot.visit(n=>{for(const r of Object.values(n.resolutions.scale))r.name&&t.set(r.name,r)}),t}}function nG(e,t){const n=document.createElement("div");n.className="message-box";const r=document.createElement("div");r.textContent=t,n.appendChild(r),e.appendChild(n)}const wq="",rG="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+Cjxzdmcgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDY0IDY0IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHhtbDpzcGFjZT0icHJlc2VydmUiIHhtbG5zOnNlcmlmPSJodHRwOi8vd3d3LnNlcmlmLmNvbS8iIHN0eWxlPSJmaWxsLXJ1bGU6ZXZlbm9kZDtjbGlwLXJ1bGU6ZXZlbm9kZDtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46cm91bmQ7c3Ryb2tlLW1pdGVybGltaXQ6MS41OyI+CiAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjEwMjIxLDAuMDA2ODM4MjUsLTAuMDA2NzEzNiwwLjEwMDM0NywtOC4wMzQyNCwtMTMuMjIyMikiPgogICAgICAgIDxwYXRoIGQ9Ik0yMDguNjI5LDU0OC4xN0MyMDguNjI5LDU0OC4xNyAyMTkuNzY4LDU5NC4zODkgMjM5LjgxNCw2MTkuMjIyQzI1OS44Niw2NDQuMDU1IDMxOS4xMTksNjgwLjgzMSAzMTkuMTE5LDY4MC44MzFDMzE5LjExOSw2ODAuODMxIDM4NS41NTcsNjIyLjkxNSA0MzcuODcsNDk4LjM0NkM0MzcuODcsNDk4LjM0NiA0NTYuMDIxLDQ5OS4yMzYgNDczLjgwOCw0ODYuNDQ2QzQ5MS41OTQsNDczLjY1NiA0OTAuMjM5LDQ3OC41MzQgNDk0Ljg4Myw0NjEuNjJDNDk0Ljg4Myw0NjEuNjIgNTUxLjg0OCw0NjcuOTM3IDYyNS44MjYsNDUxLjg2M0M2NjcuNjM0LDQ0Mi43NzggNzEwLjIzOCw0MjUuNjQ5IDc0Ny4zODIsMzkzLjE0MkM3NDcuMzgyLDM5My4xNDIgNzIxLjk5MiwzNjAuMjQ0IDY4OS40MjIsMjkxLjQ1QzY3Ny4wMjksMjY1LjI3NSA2NDcuNTE4LDI1Ny4wOTggNTkwLjc0NywyMDMuMzA5TDQzOC4wODMsMzkxLjI3M0wyMDguNjI5LDU0OC4xN1oiIHN0eWxlPSJmaWxsLW9wYWNpdHk6MC4xMTsiLz4KICAgIDwvZz4KICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDAuMDgxOTg1LC0wLjA1ODI0OTMsMC4wNTgyNDkzLDAuMDgxOTg1LC00MC40NzU0LDM0Ljc2NjgpIj4KICAgICAgICA8cGF0aCBkPSJNNTYxLjU4OCwzNDkuMTU1QzU2MS41ODgsMzQ5LjE1NSA1MTYuMjk3LDI3MS4zNDEgMzI4Ljg0MSwyNTIuMDQ0QzMyOC44NDEsMjUyLjA0NCAzMDIuMzQyLDMyNS4xODkgMzA3LjY4NiwzNjguMDU2QzMxMy4wMzEsNDEwLjkyMiAzMDMuMDAxLDQ1Ni4xNDcgMzI5LjEzMiw1MDEuMTc0QzMyOS4xMzIsNTAxLjE3NCA0NDMuMTE0LDUwNi43NDMgNTU0LjY0OSw0MjguNDY5TDYyOS4yMDQsNDMyLjExMkM2MjkuMjA0LDQzMi4xMTIgNjczLjc1NSw1MzQuMzUxIDg1Ni45NjQsNTU0LjM3NUM4NTYuOTY0LDU1NC4zNzUgODg2LjcxNyw0OTEuNzY4IDg3OS4xOTMsNDE3LjQ3OEM4NzEuMjExLDMzOC42NzMgODcxLjcxNiwyOTMuNDQzIDg3MS43MTYsMjkzLjQ0M0M4NzEuNzE2LDI5My40NDMgNzc1LjQ4NSwyODMuOTI4IDYzNS40MTgsMzYxLjc5NUw1NjEuNTg4LDM0OS4xNTVaIiBzdHlsZT0iZmlsbDpyZ2IoMTI3LDE4NywyMjEpOyIvPgogICAgICAgIDxjbGlwUGF0aCBpZD0iX2NsaXAxIj4KICAgICAgICAgICAgPHBhdGggZD0iTTU2MS41ODgsMzQ5LjE1NUM1NjEuNTg4LDM0OS4xNTUgNTE2LjI5NywyNzEuMzQxIDMyOC44NDEsMjUyLjA0NEMzMjguODQxLDI1Mi4wNDQgMzAyLjM0MiwzMjUuMTg5IDMwNy42ODYsMzY4LjA1NkMzMTMuMDMxLDQxMC45MjIgMzAzLjAwMSw0NTYuMTQ3IDMyOS4xMzIsNTAxLjE3NEMzMjkuMTMyLDUwMS4xNzQgNDQzLjExNCw1MDYuNzQzIDU1NC42NDksNDI4LjQ2OUw2MjkuMjA0LDQzMi4xMTJDNjI5LjIwNCw0MzIuMTEyIDY3My43NTUsNTM0LjM1MSA4NTYuOTY0LDU1NC4zNzVDODU2Ljk2NCw1NTQuMzc1IDg4Ni43MTcsNDkxLjc2OCA4NzkuMTkzLDQxNy40NzhDODcxLjIxMSwzMzguNjczIDg3MS43MTYsMjkzLjQ0MyA4NzEuNzE2LDI5My40NDNDODcxLjcxNiwyOTMuNDQzIDc3NS40ODUsMjgzLjkyOCA2MzUuNDE4LDM2MS43OTVMNTYxLjU4OCwzNDkuMTU1WiIvPgogICAgICAgIDwvY2xpcFBhdGg+CiAgICAgICAgPGcgY2xpcC1wYXRoPSJ1cmwoI19jbGlwMSkiPgogICAgICAgICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjc1ODYzNywwLjQ1ODkyLC0wLjQ1ODkyLDAuNzU4NjM3LDQyNS42MzUsLTEyMS4yMTMpIj4KICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0zODYuODczLDM5Ny4yNDFDMzcxLjM0NSwzODMuNjI4IDMzNS4xMzgsMzc0Ljc4MiAyOTAuNjQ0LDM4MC41NDNDMjQ2LjE0OSwzODYuMzA0IDE5Ni44MjcsNDAyLjI2NiAxNzguODAyLDQxMi4wNjVDMTY4LjIwMiw0MTcuODI4IDE1MS40OTQsNDI5LjM1NCAxNTAuNjgyLDQzOS4zMzRDMTQ5LjUyNyw0NTMuNTI4IDE1My41OTMsNDc3LjA2NiAxNjUuNjI1LDQ5MS4yODRDMTcxLjY5LDQ5OC40NTEgMTc5LjkyNyw1MDMuNDQ1IDE5My44MzgsNTA1LjQyM0MyMTEuNzAxLDUwNy45NjMgMjUyLjcxNCw0ODAuNjI3IDI3NS4zOTksNDY5LjIyQzI5OS4zMzIsNDU3LjE4NyAzMTMuOTgxLDQ1NC41NiAzMzguMzg2LDQ0Ny4wMTRDMzM4LjM4Niw0NDcuMDE0IDI5MS4zNDYsNDc4LjU4NyAyNzAuMjA1LDQ5NC4zOTNDMjM5LjYxLDUxNy4yNjggMjE4LjU3NSw1MjIuNDQ0IDIxMi44NTksNTM5Ljg5N0MyMDkuNzY2LDU0OS4zNCAyMTIuMjM3LDU2Ny43NjcgMjIwLjM1NCw1NzcuNTM4QzIyOS40MjcsNTg4LjQ2MSAyMzMuMTk3LDU5NS4wNjkgMjU0LjU5MSw1OTcuNjI0QzI2Ny4zMDMsNTk5LjE0MyAyNzYuNjg1LDU5OC44MDIgMzE0LjM3LDU2OC45NUMzMzYuMDYsNTUxLjc2NyAzNzAuMjk3LDUwOS44MTcgMzgxLjQxMiw0OTQuNjE2QzM5Ny41ODEsNDcyLjUwNiA0MDUuMTY1LDQ1MS40NjIgNDAyLjY1Niw0MzUuMDRDMzk5LjA0NSw0MTEuMzkxIDM5NC4yNTksNDAzLjcxNiAzODYuODczLDM5Ny4yNDFaIiBzdHlsZT0iZmlsbDp3aGl0ZTsiLz4KICAgICAgICAgICAgPC9nPgogICAgICAgICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjc1MjE0NSwwLjQ1NDk5MywtMC40NTQ5OTMsMC43NTIxNDUsNDY4LjM2LC0xMDguMjkzKSI+CiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNNDg0LjczMywzNzguOTM0QzQ3OS4zMywzNjcuODg2IDQ2Ny4wOTIsMzUwLjQ1MiA0ODMuODg2LDMyNS4yMDVDNTAyLjE3MiwyOTcuNzE3IDUxNC44OTgsMjgwLjkzOCA1MjguMTE3LDI2NC42MzJDNTQxLjMzNSwyNDguMzI2IDU3NC43OTMsMjE4LjQ0NyA1ODcuNzM5LDIxMi41M0M2MDAuNjg0LDIwNi42MTMgNjIxLjAyNiwyMDMuODUyIDYzMS44ODksMjEyLjg0MUM2NDIuODc0LDIyMS45MyA2NDguNDE2LDIzMy4zNzcgNjU0LjkyLDI0NS40NzhDNjYyLjMzMSwyNTkuMjY3IDY2Ny4zMTgsMjc0LjgwOCA2NTYuNTE4LDI4OC4yNzhDNjQxLjA5MywzMDcuNTE1IDYyMi4yNDIsMzA1LjI5NCA1OTQuOTEyLDMxOS44NDRDNTY3LjI0NCwzMzQuNTczIDU1Mi42NDQsMzQyLjk0MyA1MzkuMjQ0LDM1NS43MDNDNTM5LjI0NCwzNTUuNzAzIDU5MS40MzEsMzM0LjExNCA2MjEuMjI5LDMyNC40NzRDNjUxLjAyNywzMTQuODMzIDY4MC45NTIsMzA0LjQ2MSA2OTUuOTk1LDMxNS45NzVDNzExLjAzOCwzMjcuNDkgNzEwLjYzMSwzMzEuNDYzIDcxNC40MjUsMzQ3LjE4N0M3MTkuMTA3LDM2Ni41OSA3MDcuMjMxLDM4NS4xNjUgNjk0LjI5NCwzOTUuODM4QzY4MS4zNTYsNDA2LjUxIDY1OS45NTgsNDExLjc1NiA2MzYuODc1LDQxNi44NTJDNjA2LjQyLDQyMy41NzYgNTQwLjI3OCw0MzEuOTE3IDUxMi44MTksNDE5LjM2NkM0ODUuMzYxLDQwNi44MTUgNDg4LjQ4OCwzODYuNjEzIDQ4NC43MzMsMzc4LjkzNFoiIHN0eWxlPSJmaWxsOndoaXRlOyIvPgogICAgICAgICAgICA8L2c+CiAgICAgICAgPC9nPgogICAgICAgIDxwYXRoIGQ9Ik01NjEuNTg4LDM0OS4xNTVDNTYxLjU4OCwzNDkuMTU1IDUxNi4yOTcsMjcxLjM0MSAzMjguODQxLDI1Mi4wNDRDMzI4Ljg0MSwyNTIuMDQ0IDMwMi4zNDIsMzI1LjE4OSAzMDcuNjg2LDM2OC4wNTZDMzEzLjAzMSw0MTAuOTIyIDMwMy4wMDEsNDU2LjE0NyAzMjkuMTMyLDUwMS4xNzRDMzI5LjEzMiw1MDEuMTc0IDQ0My4xMTQsNTA2Ljc0MyA1NTQuNjQ5LDQyOC40NjlMNjI5LjIwNCw0MzIuMTEyQzYyOS4yMDQsNDMyLjExMiA2NzMuNzU1LDUzNC4zNTEgODU2Ljk2NCw1NTQuMzc1Qzg1Ni45NjQsNTU0LjM3NSA4ODYuNzE3LDQ5MS43NjggODc5LjE5Myw0MTcuNDc4Qzg3MS4yMTEsMzM4LjY3MyA4NzEuNzE2LDI5My40NDMgODcxLjcxNiwyOTMuNDQzQzg3MS43MTYsMjkzLjQ0MyA3NzUuNDg1LDI4My45MjggNjM1LjQxOCwzNjEuNzk1TDU2MS41ODgsMzQ5LjE1NVoiIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOmJsYWNrO3N0cm9rZS13aWR0aDoxNi41N3B4OyIvPgogICAgPC9nPgogICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMC4xMDAyOTgsLTAuMDA3NDA0ODgsMC4wMDc0MDQ4OCwwLjEwMDI5OCwtMTUuNzQ1NywtNS4xNzUyOCkiPgogICAgICAgIDxwYXRoIGQ9Ik0zODQuOTE2LDM4NS40NTlDMzg0LjkxNiwzODUuNDU5IDQzMC43ODEsMzQ3Ljg2OCA0NTAuMDI3LDM1MC4wOTNDNDcxLjY4NSwzNTIuNTk2IDQ5MC40OSw0MDcuNzQ3IDQ5MC4yMDgsNDI0LjQxNkM0ODkuOTI3LDQ0MS4wODUgNDQyLjk0OCw0NjkuODY2IDQyMi41MzcsNDY2LjI0QzQyMi41MzcsNDY2LjI0IDQyNS41MjUsNDQyLjEyOSA0MTIuMTE0LDQxMy4zMzVDMzk4LjcwMiwzODQuNTQgMzg0LjkxNiwzODUuNDU5IDM4NC45MTYsMzg1LjQ1OVoiIHN0eWxlPSJmaWxsOnJnYigxMjcsMTg3LDIyMSk7Ii8+CiAgICAgICAgPGNsaXBQYXRoIGlkPSJfY2xpcDIiPgogICAgICAgICAgICA8cGF0aCBkPSJNMzg0LjkxNiwzODUuNDU5QzM4NC45MTYsMzg1LjQ1OSA0MzAuNzgxLDM0Ny44NjggNDUwLjAyNywzNTAuMDkzQzQ3MS42ODUsMzUyLjU5NiA0OTAuNDksNDA3Ljc0NyA0OTAuMjA4LDQyNC40MTZDNDg5LjkyNyw0NDEuMDg1IDQ0Mi45NDgsNDY5Ljg2NiA0MjIuNTM3LDQ2Ni4yNEM0MjIuNTM3LDQ2Ni4yNCA0MjUuNTI1LDQ0Mi4xMjkgNDEyLjExNCw0MTMuMzM1QzM5OC43MDIsMzg0LjU0IDM4NC45MTYsMzg1LjQ1OSAzODQuOTE2LDM4NS40NTlaIi8+CiAgICAgICAgPC9jbGlwUGF0aD4KICAgICAgICA8ZyBjbGlwLXBhdGg9InVybCgjX2NsaXAyKSI+CiAgICAgICAgICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDAuOTA5MDY5LDMuNjc2NDFlLTE3LC0zLjc5ODE4ZS0xNywwLjg1ODUyLDM3LjA1MSw1Mi4xODI5KSI+CiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNNDEzLjI4Miw0MDIuNjk3QzQzMC43Nyw0MjEuNTggNDIzLjMwNyw0NDguNDI2IDQ0MS42ODMsNDQ2LjEzN0M0NjMuNDA5LDQ0My40MzEgNDcyLjYwNCw0MzAuMzU2IDQ3My4zMTYsNDEzLjQwMkM0NzQuMDI4LDM5Ni40NDggNDcyLjI0NSwzOTMuOTExIDQ2Ni4xNzIsMzc1LjMyMUM0NjAuMDk5LDM1Ni43MzEgNDQ3Ljk1MywzNTIuMTc2IDQyMi44NDIsMzU3LjE3OUM0MDEuOTU3LDM2MS4zMzkgNDA1LjAzOSwzNjAuMjE1IDM5OC43MzUsMzY3LjIyOEMzOTIuNDMsMzc0LjI0MiAzODQuMzE1LDM5My4xODIgMzg0LjMxNSwzOTMuMTgyQzM4NC4zMTUsMzkzLjE4MiAzOTIuNzE1LDM4MC40OTIgNDEzLjI4Miw0MDIuNjk3WiIgc3R5bGU9ImZpbGw6d2hpdGU7Ii8+CiAgICAgICAgICAgIDwvZz4KICAgICAgICA8L2c+CiAgICAgICAgPHBhdGggZD0iTTM4NC45MTYsMzg1LjQ1OUMzODQuOTE2LDM4NS40NTkgNDMwLjc4MSwzNDcuODY4IDQ1MC4wMjcsMzUwLjA5M0M0NzEuNjg1LDM1Mi41OTYgNDkwLjQ5LDQwNy43NDcgNDkwLjIwOCw0MjQuNDE2QzQ4OS45MjcsNDQxLjA4NSA0NDIuOTQ4LDQ2OS44NjYgNDIyLjUzNyw0NjYuMjRDNDIyLjUzNyw0NjYuMjQgNDI1LjUyNSw0NDIuMTI5IDQxMi4xMTQsNDEzLjMzNUMzOTguNzAyLDM4NC41NCAzODQuOTE2LDM4NS40NTkgMzg0LjkxNiwzODUuNDU5WiIgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6YmxhY2s7c3Ryb2tlLXdpZHRoOjE2LjU3cHg7Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=";/**
1364
1551
  * @license
1365
1552
  * Copyright 2019 Google LLC
1366
1553
  * SPDX-License-Identifier: BSD-3-Clause
1367
- */const Ss=window,Jl=Ss.ShadowRoot&&(Ss.ShadyCSS===void 0||Ss.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,B1=Symbol(),O1=new WeakMap;let r6=class{constructor(e,n,r){if(this._$cssResult$=!0,r!==B1)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=e,this.t=n}get styleSheet(){let e=this.o;const n=this.t;if(Jl&&e===void 0){const r=n!==void 0&&n.length===1;r&&(e=O1.get(n)),e===void 0&&((this.o=e=new CSSStyleSheet).replaceSync(this.cssText),r&&O1.set(n,e))}return e}toString(){return this.cssText}};const i6=t=>new r6(typeof t=="string"?t:t+"",void 0,B1),o6=(t,e)=>{Jl?t.adoptedStyleSheets=e.map(n=>n instanceof CSSStyleSheet?n:n.styleSheet):e.forEach(n=>{const r=document.createElement("style"),i=Ss.litNonce;i!==void 0&&r.setAttribute("nonce",i),r.textContent=n.cssText,t.appendChild(r)})},F1=Jl?t=>t:t=>t instanceof CSSStyleSheet?(e=>{let n="";for(const r of e.cssRules)n+=r.cssText;return i6(n)})(t):t;/**
1554
+ */const Ch=window,Hm=Ch.ShadowRoot&&(Ch.ShadyCSS===void 0||Ch.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,RS=Symbol(),zS=new WeakMap;let iG=class{constructor(t,n,r){if(this._$cssResult$=!0,r!==RS)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=t,this.t=n}get styleSheet(){let t=this.o;const n=this.t;if(Hm&&t===void 0){const r=n!==void 0&&n.length===1;r&&(t=zS.get(n)),t===void 0&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),r&&zS.set(n,t))}return t}toString(){return this.cssText}};const aG=e=>new iG(typeof e=="string"?e:e+"",void 0,RS),oG=(e,t)=>{Hm?e.adoptedStyleSheets=t.map(n=>n instanceof CSSStyleSheet?n:n.styleSheet):t.forEach(n=>{const r=document.createElement("style"),i=Ch.litNonce;i!==void 0&&r.setAttribute("nonce",i),r.textContent=n.cssText,e.appendChild(r)})},PS=Hm?e=>e:e=>e instanceof CSSStyleSheet?(t=>{let n="";for(const r of t.cssRules)n+=r.cssText;return aG(n)})(e):e;/**
1368
1555
  * @license
1369
1556
  * Copyright 2017 Google LLC
1370
1557
  * SPDX-License-Identifier: BSD-3-Clause
1371
- */var $l;const Es=window,P1=Es.trustedTypes,a6=P1?P1.emptyScript:"",z1=Es.reactiveElementPolyfillSupport,ef={toAttribute(t,e){switch(e){case Boolean:t=t?a6:null;break;case Object:case Array:t=t==null?t:JSON.stringify(t)}return t},fromAttribute(t,e){let n=t;switch(e){case Boolean:n=t!==null;break;case Number:n=t===null?null:Number(t);break;case Object:case Array:try{n=JSON.parse(t)}catch{n=null}}return n}},R1=(t,e)=>e!==t&&(e==e||t==t),tf={attribute:!0,type:String,converter:ef,reflect:!1,hasChanged:R1};let Xr=class extends HTMLElement{constructor(){super(),this._$Ei=new Map,this.isUpdatePending=!1,this.hasUpdated=!1,this._$El=null,this.u()}static addInitializer(e){var n;(n=this.h)!==null&&n!==void 0||(this.h=[]),this.h.push(e)}static get observedAttributes(){this.finalize();const e=[];return this.elementProperties.forEach((n,r)=>{const i=this._$Ep(r,n);i!==void 0&&(this._$Ev.set(i,r),e.push(i))}),e}static createProperty(e,n=tf){if(n.state&&(n.attribute=!1),this.finalize(),this.elementProperties.set(e,n),!n.noAccessor&&!this.prototype.hasOwnProperty(e)){const r=typeof e=="symbol"?Symbol():"__"+e,i=this.getPropertyDescriptor(e,r,n);i!==void 0&&Object.defineProperty(this.prototype,e,i)}}static getPropertyDescriptor(e,n,r){return{get(){return this[n]},set(i){const o=this[e];this[n]=i,this.requestUpdate(e,o,r)},configurable:!0,enumerable:!0}}static getPropertyOptions(e){return this.elementProperties.get(e)||tf}static finalize(){if(this.hasOwnProperty("finalized"))return!1;this.finalized=!0;const e=Object.getPrototypeOf(this);if(e.finalize(),this.elementProperties=new Map(e.elementProperties),this._$Ev=new Map,this.hasOwnProperty("properties")){const n=this.properties,r=[...Object.getOwnPropertyNames(n),...Object.getOwnPropertySymbols(n)];for(const i of r)this.createProperty(i,n[i])}return this.elementStyles=this.finalizeStyles(this.styles),!0}static finalizeStyles(e){const n=[];if(Array.isArray(e)){const r=new Set(e.flat(1/0).reverse());for(const i of r)n.unshift(F1(i))}else e!==void 0&&n.push(F1(e));return n}static _$Ep(e,n){const r=n.attribute;return r===!1?void 0:typeof r=="string"?r:typeof e=="string"?e.toLowerCase():void 0}u(){var e;this._$E_=new Promise(n=>this.enableUpdating=n),this._$AL=new Map,this._$Eg(),this.requestUpdate(),(e=this.constructor.h)===null||e===void 0||e.forEach(n=>n(this))}addController(e){var n,r;((n=this._$ES)!==null&&n!==void 0?n:this._$ES=[]).push(e),this.renderRoot!==void 0&&this.isConnected&&((r=e.hostConnected)===null||r===void 0||r.call(e))}removeController(e){var n;(n=this._$ES)===null||n===void 0||n.splice(this._$ES.indexOf(e)>>>0,1)}_$Eg(){this.constructor.elementProperties.forEach((e,n)=>{this.hasOwnProperty(n)&&(this._$Ei.set(n,this[n]),delete this[n])})}createRenderRoot(){var e;const n=(e=this.shadowRoot)!==null&&e!==void 0?e:this.attachShadow(this.constructor.shadowRootOptions);return o6(n,this.constructor.elementStyles),n}connectedCallback(){var e;this.renderRoot===void 0&&(this.renderRoot=this.createRenderRoot()),this.enableUpdating(!0),(e=this._$ES)===null||e===void 0||e.forEach(n=>{var r;return(r=n.hostConnected)===null||r===void 0?void 0:r.call(n)})}enableUpdating(e){}disconnectedCallback(){var e;(e=this._$ES)===null||e===void 0||e.forEach(n=>{var r;return(r=n.hostDisconnected)===null||r===void 0?void 0:r.call(n)})}attributeChangedCallback(e,n,r){this._$AK(e,r)}_$EO(e,n,r=tf){var i;const o=this.constructor._$Ep(e,r);if(o!==void 0&&r.reflect===!0){const a=(((i=r.converter)===null||i===void 0?void 0:i.toAttribute)!==void 0?r.converter:ef).toAttribute(n,r.type);this._$El=e,a==null?this.removeAttribute(o):this.setAttribute(o,a),this._$El=null}}_$AK(e,n){var r;const i=this.constructor,o=i._$Ev.get(e);if(o!==void 0&&this._$El!==o){const a=i.getPropertyOptions(o),s=typeof a.converter=="function"?{fromAttribute:a.converter}:((r=a.converter)===null||r===void 0?void 0:r.fromAttribute)!==void 0?a.converter:ef;this._$El=o,this[o]=s.fromAttribute(n,a.type),this._$El=null}}requestUpdate(e,n,r){let i=!0;e!==void 0&&(((r=r||this.constructor.getPropertyOptions(e)).hasChanged||R1)(this[e],n)?(this._$AL.has(e)||this._$AL.set(e,n),r.reflect===!0&&this._$El!==e&&(this._$EC===void 0&&(this._$EC=new Map),this._$EC.set(e,r))):i=!1),!this.isUpdatePending&&i&&(this._$E_=this._$Ej())}async _$Ej(){this.isUpdatePending=!0;try{await this._$E_}catch(n){Promise.reject(n)}const e=this.scheduleUpdate();return e!=null&&await e,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){var e;if(!this.isUpdatePending)return;this.hasUpdated,this._$Ei&&(this._$Ei.forEach((i,o)=>this[o]=i),this._$Ei=void 0);let n=!1;const r=this._$AL;try{n=this.shouldUpdate(r),n?(this.willUpdate(r),(e=this._$ES)===null||e===void 0||e.forEach(i=>{var o;return(o=i.hostUpdate)===null||o===void 0?void 0:o.call(i)}),this.update(r)):this._$Ek()}catch(i){throw n=!1,this._$Ek(),i}n&&this._$AE(r)}willUpdate(e){}_$AE(e){var n;(n=this._$ES)===null||n===void 0||n.forEach(r=>{var i;return(i=r.hostUpdated)===null||i===void 0?void 0:i.call(r)}),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(e)),this.updated(e)}_$Ek(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$E_}shouldUpdate(e){return!0}update(e){this._$EC!==void 0&&(this._$EC.forEach((n,r)=>this._$EO(r,this[r],n)),this._$EC=void 0),this._$Ek()}updated(e){}firstUpdated(e){}};Xr.finalized=!0,Xr.elementProperties=new Map,Xr.elementStyles=[],Xr.shadowRootOptions={mode:"open"},z1==null||z1({ReactiveElement:Xr}),(($l=Es.reactiveElementVersions)!==null&&$l!==void 0?$l:Es.reactiveElementVersions=[]).push("1.4.1");/**
1558
+ */var Gm;const _h=window,US=_h.trustedTypes,sG=US?US.emptyScript:"",jS=_h.reactiveElementPolyfillSupport,$m={toAttribute(e,t){switch(t){case Boolean:e=e?sG:null;break;case Object:case Array:e=e==null?e:JSON.stringify(e)}return e},fromAttribute(e,t){let n=e;switch(t){case Boolean:n=e!==null;break;case Number:n=e===null?null:Number(e);break;case Object:case Array:try{n=JSON.parse(e)}catch{n=null}}return n}},HS=(e,t)=>t!==e&&(t==t||e==e),Vm={attribute:!0,type:String,converter:$m,reflect:!1,hasChanged:HS};let bs=class extends HTMLElement{constructor(){super(),this._$Ei=new Map,this.isUpdatePending=!1,this.hasUpdated=!1,this._$El=null,this.u()}static addInitializer(t){var n;(n=this.h)!==null&&n!==void 0||(this.h=[]),this.h.push(t)}static get observedAttributes(){this.finalize();const t=[];return this.elementProperties.forEach((n,r)=>{const i=this._$Ep(r,n);i!==void 0&&(this._$Ev.set(i,r),t.push(i))}),t}static createProperty(t,n=Vm){if(n.state&&(n.attribute=!1),this.finalize(),this.elementProperties.set(t,n),!n.noAccessor&&!this.prototype.hasOwnProperty(t)){const r=typeof t=="symbol"?Symbol():"__"+t,i=this.getPropertyDescriptor(t,r,n);i!==void 0&&Object.defineProperty(this.prototype,t,i)}}static getPropertyDescriptor(t,n,r){return{get(){return this[n]},set(i){const a=this[t];this[n]=i,this.requestUpdate(t,a,r)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)||Vm}static finalize(){if(this.hasOwnProperty("finalized"))return!1;this.finalized=!0;const t=Object.getPrototypeOf(this);if(t.finalize(),this.elementProperties=new Map(t.elementProperties),this._$Ev=new Map,this.hasOwnProperty("properties")){const n=this.properties,r=[...Object.getOwnPropertyNames(n),...Object.getOwnPropertySymbols(n)];for(const i of r)this.createProperty(i,n[i])}return this.elementStyles=this.finalizeStyles(this.styles),!0}static finalizeStyles(t){const n=[];if(Array.isArray(t)){const r=new Set(t.flat(1/0).reverse());for(const i of r)n.unshift(PS(i))}else t!==void 0&&n.push(PS(t));return n}static _$Ep(t,n){const r=n.attribute;return r===!1?void 0:typeof r=="string"?r:typeof t=="string"?t.toLowerCase():void 0}u(){var t;this._$E_=new Promise(n=>this.enableUpdating=n),this._$AL=new Map,this._$Eg(),this.requestUpdate(),(t=this.constructor.h)===null||t===void 0||t.forEach(n=>n(this))}addController(t){var n,r;((n=this._$ES)!==null&&n!==void 0?n:this._$ES=[]).push(t),this.renderRoot!==void 0&&this.isConnected&&((r=t.hostConnected)===null||r===void 0||r.call(t))}removeController(t){var n;(n=this._$ES)===null||n===void 0||n.splice(this._$ES.indexOf(t)>>>0,1)}_$Eg(){this.constructor.elementProperties.forEach((t,n)=>{this.hasOwnProperty(n)&&(this._$Ei.set(n,this[n]),delete this[n])})}createRenderRoot(){var t;const n=(t=this.shadowRoot)!==null&&t!==void 0?t:this.attachShadow(this.constructor.shadowRootOptions);return oG(n,this.constructor.elementStyles),n}connectedCallback(){var t;this.renderRoot===void 0&&(this.renderRoot=this.createRenderRoot()),this.enableUpdating(!0),(t=this._$ES)===null||t===void 0||t.forEach(n=>{var r;return(r=n.hostConnected)===null||r===void 0?void 0:r.call(n)})}enableUpdating(t){}disconnectedCallback(){var t;(t=this._$ES)===null||t===void 0||t.forEach(n=>{var r;return(r=n.hostDisconnected)===null||r===void 0?void 0:r.call(n)})}attributeChangedCallback(t,n,r){this._$AK(t,r)}_$EO(t,n,r=Vm){var i;const a=this.constructor._$Ep(t,r);if(a!==void 0&&r.reflect===!0){const o=(((i=r.converter)===null||i===void 0?void 0:i.toAttribute)!==void 0?r.converter:$m).toAttribute(n,r.type);this._$El=t,o==null?this.removeAttribute(a):this.setAttribute(a,o),this._$El=null}}_$AK(t,n){var r;const i=this.constructor,a=i._$Ev.get(t);if(a!==void 0&&this._$El!==a){const o=i.getPropertyOptions(a),s=typeof o.converter=="function"?{fromAttribute:o.converter}:((r=o.converter)===null||r===void 0?void 0:r.fromAttribute)!==void 0?o.converter:$m;this._$El=a,this[a]=s.fromAttribute(n,o.type),this._$El=null}}requestUpdate(t,n,r){let i=!0;t!==void 0&&(((r=r||this.constructor.getPropertyOptions(t)).hasChanged||HS)(this[t],n)?(this._$AL.has(t)||this._$AL.set(t,n),r.reflect===!0&&this._$El!==t&&(this._$EC===void 0&&(this._$EC=new Map),this._$EC.set(t,r))):i=!1),!this.isUpdatePending&&i&&(this._$E_=this._$Ej())}async _$Ej(){this.isUpdatePending=!0;try{await this._$E_}catch(n){Promise.reject(n)}const t=this.scheduleUpdate();return t!=null&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){var t;if(!this.isUpdatePending)return;this.hasUpdated,this._$Ei&&(this._$Ei.forEach((i,a)=>this[a]=i),this._$Ei=void 0);let n=!1;const r=this._$AL;try{n=this.shouldUpdate(r),n?(this.willUpdate(r),(t=this._$ES)===null||t===void 0||t.forEach(i=>{var a;return(a=i.hostUpdate)===null||a===void 0?void 0:a.call(i)}),this.update(r)):this._$Ek()}catch(i){throw n=!1,this._$Ek(),i}n&&this._$AE(r)}willUpdate(t){}_$AE(t){var n;(n=this._$ES)===null||n===void 0||n.forEach(r=>{var i;return(i=r.hostUpdated)===null||i===void 0?void 0:i.call(r)}),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$Ek(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$E_}shouldUpdate(t){return!0}update(t){this._$EC!==void 0&&(this._$EC.forEach((n,r)=>this._$EO(r,this[r],n)),this._$EC=void 0),this._$Ek()}updated(t){}firstUpdated(t){}};bs.finalized=!0,bs.elementProperties=new Map,bs.elementStyles=[],bs.shadowRootOptions={mode:"open"},jS==null||jS({ReactiveElement:bs}),((Gm=_h.reactiveElementVersions)!==null&&Gm!==void 0?Gm:_h.reactiveElementVersions=[]).push("1.4.1");/**
1372
1559
  * @license
1373
1560
  * Copyright 2017 Google LLC
1374
1561
  * SPDX-License-Identifier: BSD-3-Clause
1375
- */var nf,rf;let yt=class extends Xr{constructor(){super(...arguments),this.renderOptions={host:this},this._$Dt=void 0}createRenderRoot(){var e,n;const r=super.createRenderRoot();return(e=(n=this.renderOptions).renderBefore)!==null&&e!==void 0||(n.renderBefore=r.firstChild),r}update(e){const n=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(e),this._$Dt=Be(n,this.renderRoot,this.renderOptions)}connectedCallback(){var e;super.connectedCallback(),(e=this._$Dt)===null||e===void 0||e.setConnected(!0)}disconnectedCallback(){var e;super.disconnectedCallback(),(e=this._$Dt)===null||e===void 0||e.setConnected(!1)}render(){return Ae}};yt.finalized=!0,yt._$litElement$=!0,(nf=globalThis.litElementHydrateSupport)===null||nf===void 0||nf.call(globalThis,{LitElement:yt});const j1=globalThis.litElementPolyfillSupport;j1==null||j1({LitElement:yt}),((rf=globalThis.litElementVersions)!==null&&rf!==void 0?rf:globalThis.litElementVersions=[]).push("3.2.0");/**
1562
+ */var Ym,Qm;let sr=class extends bs{constructor(){super(...arguments),this.renderOptions={host:this},this._$Dt=void 0}createRenderRoot(){var t,n;const r=super.createRenderRoot();return(t=(n=this.renderOptions).renderBefore)!==null&&t!==void 0||(n.renderBefore=r.firstChild),r}update(t){const n=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Dt=Bt(n,this.renderRoot,this.renderOptions)}connectedCallback(){var t;super.connectedCallback(),(t=this._$Dt)===null||t===void 0||t.setConnected(!0)}disconnectedCallback(){var t;super.disconnectedCallback(),(t=this._$Dt)===null||t===void 0||t.setConnected(!1)}render(){return pt}};sr.finalized=!0,sr._$litElement$=!0,(Ym=globalThis.litElementHydrateSupport)===null||Ym===void 0||Ym.call(globalThis,{LitElement:sr});const GS=globalThis.litElementPolyfillSupport;GS==null||GS({LitElement:sr}),((Qm=globalThis.litElementVersions)!==null&&Qm!==void 0?Qm:globalThis.litElementVersions=[]).push("3.2.0");/**
1376
1563
  * @license
1377
1564
  * Copyright 2017 Google LLC
1378
1565
  * SPDX-License-Identifier: BSD-3-Clause
1379
- */const vt={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},or=t=>(...e)=>({_$litDirective$:t,values:e});let Zr=class{constructor(e){}get _$AU(){return this._$AM._$AU}_$AT(e,n,r){this._$Ct=e,this._$AM=n,this._$Ci=r}_$AS(e,n){return this.update(e,n)}update(e,n){return this.render(...n)}};/**
1566
+ */const cr={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},Ya=e=>(...t)=>({_$litDirective$:e,values:t});let ys=class{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,n,r){this._$Ct=t,this._$AM=n,this._$Ci=r}_$AS(t,n){return this.update(t,n)}update(t,n){return this.render(...n)}};/**
1380
1567
  * @license
1381
1568
  * Copyright 2018 Google LLC
1382
1569
  * SPDX-License-Identifier: BSD-3-Clause
1383
- */const of=or(class extends Zr{constructor(t){var e;if(super(t),t.type!==vt.ATTRIBUTE||t.name!=="class"||((e=t.strings)===null||e===void 0?void 0:e.length)>2)throw Error("`classMap()` can only be used in the `class` attribute and must be the only part in the attribute.")}render(t){return" "+Object.keys(t).filter(e=>t[e]).join(" ")+" "}update(t,[e]){var n,r;if(this.nt===void 0){this.nt=new Set,t.strings!==void 0&&(this.st=new Set(t.strings.join(" ").split(/\s/).filter(o=>o!=="")));for(const o in e)e[o]&&!(!((n=this.st)===null||n===void 0)&&n.has(o))&&this.nt.add(o);return this.render(e)}const i=t.element.classList;this.nt.forEach(o=>{o in e||(i.remove(o),this.nt.delete(o))});for(const o in e){const a=!!e[o];a===this.nt.has(o)||!((r=this.st)===null||r===void 0)&&r.has(o)||(a?(i.add(o),this.nt.add(o)):(i.remove(o),this.nt.delete(o)))}return Ae}});/*!
1570
+ */const Zm=Ya(class extends ys{constructor(e){var t;if(super(e),e.type!==cr.ATTRIBUTE||e.name!=="class"||((t=e.strings)===null||t===void 0?void 0:t.length)>2)throw Error("`classMap()` can only be used in the `class` attribute and must be the only part in the attribute.")}render(e){return" "+Object.keys(e).filter(t=>e[t]).join(" ")+" "}update(e,[t]){var n,r;if(this.nt===void 0){this.nt=new Set,e.strings!==void 0&&(this.st=new Set(e.strings.join(" ").split(/\s/).filter(a=>a!=="")));for(const a in t)t[a]&&!(!((n=this.st)===null||n===void 0)&&n.has(a))&&this.nt.add(a);return this.render(t)}const i=e.element.classList;this.nt.forEach(a=>{a in t||(i.remove(a),this.nt.delete(a))});for(const a in t){const o=!!t[a];o===this.nt.has(a)||!((r=this.st)===null||r===void 0)&&r.has(a)||(o?(i.add(a),this.nt.add(a)):(i.remove(a),this.nt.delete(a)))}return pt}});/*!
1384
1571
  * Font Awesome Free 6.1.1 by @fontawesome - https://fontawesome.com
1385
1572
  * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
1386
1573
  * Copyright 2022 Fonticons, Inc.
1387
- */var s6={prefix:"fas",iconName:"arrow-down-wide-short",icon:[576,512,["sort-amount-asc","sort-amount-down"],"f160","M416 288h-95.1c-17.67 0-32 14.33-32 32s14.33 32 32 32H416c17.67 0 32-14.33 32-32S433.7 288 416 288zM544 32h-223.1c-17.67 0-32 14.33-32 32s14.33 32 32 32H544c17.67 0 32-14.33 32-32S561.7 32 544 32zM352 416h-32c-17.67 0-32 14.33-32 32s14.33 32 32 32h32c17.67 0 31.1-14.33 31.1-32S369.7 416 352 416zM480 160h-159.1c-17.67 0-32 14.33-32 32s14.33 32 32 32H480c17.67 0 32-14.33 32-32S497.7 160 480 160zM192.4 330.7L160 366.1V64.03C160 46.33 145.7 32 128 32S96 46.33 96 64.03v302L63.6 330.7c-6.312-6.883-14.94-10.38-23.61-10.38c-7.719 0-15.47 2.781-21.61 8.414c-13.03 11.95-13.9 32.22-1.969 45.27l87.1 96.09c12.12 13.26 35.06 13.26 47.19 0l87.1-96.09c11.94-13.05 11.06-33.31-1.969-45.27C224.6 316.8 204.4 317.7 192.4 330.7z"]},c6=s6,u6={prefix:"fas",iconName:"arrow-rotate-left",icon:[512,512,[8634,"arrow-left-rotate","arrow-rotate-back","arrow-rotate-backward","undo"],"f0e2","M480 256c0 123.4-100.5 223.9-223.9 223.9c-48.86 0-95.19-15.58-134.2-44.86c-14.14-10.59-17-30.66-6.391-44.81c10.61-14.09 30.69-16.97 44.8-6.375c27.84 20.91 61 31.94 95.89 31.94C344.3 415.8 416 344.1 416 256s-71.67-159.8-159.8-159.8C205.9 96.22 158.6 120.3 128.6 160H192c17.67 0 32 14.31 32 32S209.7 224 192 224H48c-17.67 0-32-14.31-32-32V48c0-17.69 14.33-32 32-32s32 14.31 32 32v70.23C122.1 64.58 186.1 32.11 256.1 32.11C379.5 32.11 480 132.6 480 256z"]},l6=u6,f6={prefix:"fas",iconName:"arrow-rotate-right",icon:[512,512,[8635,"arrow-right-rotate","arrow-rotate-forward","redo"],"f01e","M496 48V192c0 17.69-14.31 32-32 32H320c-17.69 0-32-14.31-32-32s14.31-32 32-32h63.39c-29.97-39.7-77.25-63.78-127.6-63.78C167.7 96.22 96 167.9 96 256s71.69 159.8 159.8 159.8c34.88 0 68.03-11.03 95.88-31.94c14.22-10.53 34.22-7.75 44.81 6.375c10.59 14.16 7.75 34.22-6.375 44.81c-39.03 29.28-85.36 44.86-134.2 44.86C132.5 479.9 32 379.4 32 256s100.5-223.9 223.9-223.9c69.15 0 134 32.47 176.1 86.12V48c0-17.69 14.31-32 32-32S496 30.31 496 48z"]},d6=f6,h6={prefix:"fas",iconName:"arrow-up",icon:[384,512,[8593],"f062","M374.6 246.6C368.4 252.9 360.2 256 352 256s-16.38-3.125-22.62-9.375L224 141.3V448c0 17.69-14.33 31.1-31.1 31.1S160 465.7 160 448V141.3L54.63 246.6c-12.5 12.5-32.75 12.5-45.25 0s-12.5-32.75 0-45.25l160-160c12.5-12.5 32.75-12.5 45.25 0l160 160C387.1 213.9 387.1 234.1 374.6 246.6z"]},p6={prefix:"fas",iconName:"backward-step",icon:[320,512,["step-backward"],"f048","M31.1 64.03c-17.67 0-31.1 14.33-31.1 32v319.9c0 17.67 14.33 32 32 32C49.67 447.1 64 433.6 64 415.1V96.03C64 78.36 49.67 64.03 31.1 64.03zM267.5 71.41l-192 159.1C67.82 237.8 64 246.9 64 256c0 9.094 3.82 18.18 11.44 24.62l192 159.1c20.63 17.12 52.51 2.75 52.51-24.62v-319.9C319.1 68.66 288.1 54.28 267.5 71.41z"]},m6=p6,U1={prefix:"fas",iconName:"bookmark",icon:[384,512,[61591,128278],"f02e","M384 48V512l-192-112L0 512V48C0 21.5 21.5 0 48 0h288C362.5 0 384 21.5 384 48z"]},g6={prefix:"fas",iconName:"check",icon:[448,512,[10004,10003],"f00c","M438.6 105.4C451.1 117.9 451.1 138.1 438.6 150.6L182.6 406.6C170.1 419.1 149.9 419.1 137.4 406.6L9.372 278.6C-3.124 266.1-3.124 245.9 9.372 233.4C21.87 220.9 42.13 220.9 54.63 233.4L159.1 338.7L393.4 105.4C405.9 92.88 426.1 92.88 438.6 105.4H438.6z"]},y6={prefix:"fas",iconName:"chevron-down",icon:[448,512,[],"f078","M224 416c-8.188 0-16.38-3.125-22.62-9.375l-192-192c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0L224 338.8l169.4-169.4c12.5-12.5 32.75-12.5 45.25 0s12.5 32.75 0 45.25l-192 192C240.4 412.9 232.2 416 224 416z"]},H1={prefix:"fas",iconName:"circle",icon:[512,512,[128308,128309,128992,128993,128994,128995,128996,9898,9899,11044,61708,61915,9679],"f111","M512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256z"]},v6={prefix:"fas",iconName:"circle-exclamation",icon:[512,512,["exclamation-circle"],"f06a","M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM232 152C232 138.8 242.8 128 256 128s24 10.75 24 24v128c0 13.25-10.75 24-24 24S232 293.3 232 280V152zM256 400c-17.36 0-31.44-14.08-31.44-31.44c0-17.36 14.07-31.44 31.44-31.44s31.44 14.08 31.44 31.44C287.4 385.9 273.4 400 256 400z"]},b6=v6,A6={prefix:"fas",iconName:"circle-info",icon:[512,512,["info-circle"],"f05a","M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 128c17.67 0 32 14.33 32 32c0 17.67-14.33 32-32 32S224 177.7 224 160C224 142.3 238.3 128 256 128zM296 384h-80C202.8 384 192 373.3 192 360s10.75-24 24-24h16v-64H224c-13.25 0-24-10.75-24-24S210.8 224 224 224h32c13.25 0 24 10.75 24 24v88h16c13.25 0 24 10.75 24 24S309.3 384 296 384z"]},G1=A6,x6={prefix:"fas",iconName:"circle-question",icon:[512,512,[62108,"question-circle"],"f059","M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 400c-18 0-32-14-32-32s13.1-32 32-32c17.1 0 32 14 32 32S273.1 400 256 400zM325.1 258L280 286V288c0 13-11 24-24 24S232 301 232 288V272c0-8 4-16 12-21l57-34C308 213 312 206 312 198C312 186 301.1 176 289.1 176h-51.1C225.1 176 216 186 216 198c0 13-11 24-24 24s-24-11-24-24C168 159 199 128 237.1 128h51.1C329 128 360 159 360 198C360 222 347 245 325.1 258z"]},w6=x6,C6={prefix:"fas",iconName:"ellipsis",icon:[448,512,["ellipsis-h"],"f141","M120 256C120 286.9 94.93 312 64 312C33.07 312 8 286.9 8 256C8 225.1 33.07 200 64 200C94.93 200 120 225.1 120 256zM280 256C280 286.9 254.9 312 224 312C193.1 312 168 286.9 168 256C168 225.1 193.1 200 224 200C254.9 200 280 225.1 280 256zM328 256C328 225.1 353.1 200 384 200C414.9 200 440 225.1 440 256C440 286.9 414.9 312 384 312C353.1 312 328 286.9 328 256z"]},S6=C6,E6={prefix:"fas",iconName:"ellipsis-vertical",icon:[128,512,["ellipsis-v"],"f142","M64 360C94.93 360 120 385.1 120 416C120 446.9 94.93 472 64 472C33.07 472 8 446.9 8 416C8 385.1 33.07 360 64 360zM64 200C94.93 200 120 225.1 120 256C120 286.9 94.93 312 64 312C33.07 312 8 286.9 8 256C8 225.1 33.07 200 64 200zM64 152C33.07 152 8 126.9 8 96C8 65.07 33.07 40 64 40C94.93 40 120 65.07 120 96C120 126.9 94.93 152 64 152z"]},D6=E6,ar={prefix:"fas",iconName:"filter",icon:[512,512,[],"f0b0","M3.853 54.87C10.47 40.9 24.54 32 40 32H472C487.5 32 501.5 40.9 508.1 54.87C514.8 68.84 512.7 85.37 502.1 97.33L320 320.9V448C320 460.1 313.2 471.2 302.3 476.6C291.5 482 278.5 480.9 268.8 473.6L204.8 425.6C196.7 419.6 192 410.1 192 400V320.9L9.042 97.33C-.745 85.37-2.765 68.84 3.854 54.87L3.853 54.87z"]},M6={prefix:"fas",iconName:"forward-step",icon:[320,512,["step-forward"],"f051","M287.1 447.1c17.67 0 31.1-14.33 31.1-32V96.03c0-17.67-14.33-32-32-32c-17.67 0-31.1 14.33-31.1 31.1v319.9C255.1 433.6 270.3 447.1 287.1 447.1zM52.51 440.6l192-159.1c7.625-6.436 11.43-15.53 11.43-24.62c0-9.094-3.809-18.18-11.43-24.62l-192-159.1C31.88 54.28 0 68.66 0 96.03v319.9C0 443.3 31.88 457.7 52.51 440.6z"]},T6=M6,I6={prefix:"fas",iconName:"maximize",icon:[448,512,["expand-arrows-alt"],"f31e","M447.1 319.1v135.1c0 13.26-10.75 23.1-23.1 23.1h-135.1c-12.94 0-24.61-7.781-29.56-19.75c-4.906-11.1-2.203-25.72 6.937-34.87l30.06-30.06L224 323.9l-71.43 71.44l30.06 30.06c9.156 9.156 11.91 22.91 6.937 34.87C184.6 472.2 172.9 479.1 160 479.1H24c-13.25 0-23.1-10.74-23.1-23.1v-135.1c0-12.94 7.781-24.61 19.75-29.56C23.72 288.8 27.88 288 32 288c8.312 0 16.5 3.242 22.63 9.367l30.06 30.06l71.44-71.44L84.69 184.6L54.63 214.6c-9.156 9.156-22.91 11.91-34.87 6.937C7.798 216.6 .0013 204.9 .0013 191.1v-135.1c0-13.26 10.75-23.1 23.1-23.1h135.1c12.94 0 24.61 7.781 29.56 19.75C191.2 55.72 191.1 59.87 191.1 63.1c0 8.312-3.237 16.5-9.362 22.63L152.6 116.7l71.44 71.44l71.43-71.44l-30.06-30.06c-9.156-9.156-11.91-22.91-6.937-34.87c4.937-11.95 16.62-19.75 29.56-19.75h135.1c13.26 0 23.1 10.75 23.1 23.1v135.1c0 12.94-7.781 24.61-19.75 29.56c-11.1 4.906-25.72 2.203-34.87-6.937l-30.06-30.06l-71.43 71.43l71.44 71.44l30.06-30.06c9.156-9.156 22.91-11.91 34.87-6.937C440.2 295.4 447.1 307.1 447.1 319.1z"]},k6=I6,Q1={prefix:"fas",iconName:"medal",icon:[512,512,[127941],"f5a2","M223.7 130.8L149.1 7.77C147.1 2.949 141.9 0 136.3 0H16.03c-12.95 0-20.53 14.58-13.1 25.18l111.3 158.9C143.9 156.4 181.7 137.3 223.7 130.8zM256 160c-97.25 0-176 78.75-176 176S158.8 512 256 512s176-78.75 176-176S353.3 160 256 160zM348.5 317.3l-37.88 37l8.875 52.25c1.625 9.25-8.25 16.5-16.63 12l-46.88-24.62L209.1 418.5c-8.375 4.5-18.25-2.75-16.63-12l8.875-52.25l-37.88-37C156.6 310.6 160.5 299 169.9 297.6l52.38-7.625L245.7 242.5c2-4.25 6.125-6.375 10.25-6.375S264.2 238.3 266.2 242.5l23.5 47.5l52.38 7.625C351.6 299 355.4 310.6 348.5 317.3zM495.1 0H375.7c-5.621 0-10.83 2.949-13.72 7.77l-73.76 122.1c42 6.5 79.88 25.62 109.5 53.38l111.3-158.9C516.5 14.58 508.9 0 495.1 0z"]},xo={prefix:"fas",iconName:"object-group",icon:[576,512,[],"f247","M128 160C128 142.3 142.3 128 160 128H288C305.7 128 320 142.3 320 160V256C320 273.7 305.7 288 288 288H160C142.3 288 128 273.7 128 256V160zM288 320C323.3 320 352 291.3 352 256V224H416C433.7 224 448 238.3 448 256V352C448 369.7 433.7 384 416 384H288C270.3 384 256 369.7 256 352V320H288zM32 119.4C12.87 108.4 0 87.69 0 64C0 28.65 28.65 0 64 0C87.69 0 108.4 12.87 119.4 32H456.6C467.6 12.87 488.3 0 512 0C547.3 0 576 28.65 576 64C576 87.69 563.1 108.4 544 119.4V392.6C563.1 403.6 576 424.3 576 448C576 483.3 547.3 512 512 512C488.3 512 467.6 499.1 456.6 480H119.4C108.4 499.1 87.69 512 64 512C28.65 512 0 483.3 0 448C0 424.3 12.87 403.6 32 392.6V119.4zM119.4 96C113.8 105.7 105.7 113.8 96 119.4V392.6C105.7 398.2 113.8 406.3 119.4 416H456.6C462.2 406.3 470.3 398.2 480 392.6V119.4C470.3 113.8 462.2 105.7 456.6 96H119.4z"]},N6={prefix:"fas",iconName:"pen",icon:[512,512,[128394],"f304","M362.7 19.32C387.7-5.678 428.3-5.678 453.3 19.32L492.7 58.75C517.7 83.74 517.7 124.3 492.7 149.3L444.3 197.7L314.3 67.72L362.7 19.32zM421.7 220.3L188.5 453.4C178.1 463.8 165.2 471.5 151.1 475.6L30.77 511C22.35 513.5 13.24 511.2 7.03 504.1C.8198 498.8-1.502 489.7 .976 481.2L36.37 360.9C40.53 346.8 48.16 333.9 58.57 323.5L291.7 90.34L421.7 220.3z"]},af={prefix:"fas",iconName:"share",icon:[512,512,["arrow-turn-right","mail-forward"],"f064","M503.7 226.2l-176 151.1c-15.38 13.3-39.69 2.545-39.69-18.16V272.1C132.9 274.3 66.06 312.8 111.4 457.8c5.031 16.09-14.41 28.56-28.06 18.62C39.59 444.6 0 383.8 0 322.3c0-152.2 127.4-184.4 288-186.3V56.02c0-20.67 24.28-31.46 39.69-18.16l176 151.1C514.8 199.4 514.8 216.6 503.7 226.2z"]},L6={prefix:"fas",iconName:"sliders",icon:[512,512,["sliders-h"],"f1de","M0 416C0 398.3 14.33 384 32 384H86.66C99 355.7 127.2 336 160 336C192.8 336 220.1 355.7 233.3 384H480C497.7 384 512 398.3 512 416C512 433.7 497.7 448 480 448H233.3C220.1 476.3 192.8 496 160 496C127.2 496 99 476.3 86.66 448H32C14.33 448 0 433.7 0 416V416zM192 416C192 398.3 177.7 384 160 384C142.3 384 128 398.3 128 416C128 433.7 142.3 448 160 448C177.7 448 192 433.7 192 416zM352 176C384.8 176 412.1 195.7 425.3 224H480C497.7 224 512 238.3 512 256C512 273.7 497.7 288 480 288H425.3C412.1 316.3 384.8 336 352 336C319.2 336 291 316.3 278.7 288H32C14.33 288 0 273.7 0 256C0 238.3 14.33 224 32 224H278.7C291 195.7 319.2 176 352 176zM384 256C384 238.3 369.7 224 352 224C334.3 224 320 238.3 320 256C320 273.7 334.3 288 352 288C369.7 288 384 273.7 384 256zM480 64C497.7 64 512 78.33 512 96C512 113.7 497.7 128 480 128H265.3C252.1 156.3 224.8 176 192 176C159.2 176 131 156.3 118.7 128H32C14.33 128 0 113.7 0 96C0 78.33 14.33 64 32 64H118.7C131 35.75 159.2 16 192 16C224.8 16 252.1 35.75 265.3 64H480zM160 96C160 113.7 174.3 128 192 128C209.7 128 224 113.7 224 96C224 78.33 209.7 64 192 64C174.3 64 160 78.33 160 96z"]},B6=L6,V1={prefix:"fas",iconName:"trash",icon:[448,512,[],"f1f8","M135.2 17.69C140.6 6.848 151.7 0 163.8 0H284.2C296.3 0 307.4 6.848 312.8 17.69L320 32H416C433.7 32 448 46.33 448 64C448 81.67 433.7 96 416 96H32C14.33 96 0 81.67 0 64C0 46.33 14.33 32 32 32H128L135.2 17.69zM394.8 466.1C393.2 492.3 372.3 512 346.9 512H101.1C75.75 512 54.77 492.3 53.19 466.1L31.1 128H416L394.8 466.1z"]},O6={prefix:"fas",iconName:"trash-can",icon:[448,512,[61460,"trash-alt"],"f2ed","M135.2 17.69C140.6 6.848 151.7 0 163.8 0H284.2C296.3 0 307.4 6.848 312.8 17.69L320 32H416C433.7 32 448 46.33 448 64C448 81.67 433.7 96 416 96H32C14.33 96 0 81.67 0 64C0 46.33 14.33 32 32 32H128L135.2 17.69zM31.1 128H416V448C416 483.3 387.3 512 352 512H95.1C60.65 512 31.1 483.3 31.1 448V128zM111.1 208V432C111.1 440.8 119.2 448 127.1 448C136.8 448 143.1 440.8 143.1 432V208C143.1 199.2 136.8 192 127.1 192C119.2 192 111.1 199.2 111.1 208zM207.1 208V432C207.1 440.8 215.2 448 223.1 448C232.8 448 240 440.8 240 432V208C240 199.2 232.8 192 223.1 192C215.2 192 207.1 199.2 207.1 208zM304 208V432C304 440.8 311.2 448 320 448C328.8 448 336 440.8 336 432V208C336 199.2 328.8 192 320 192C311.2 192 304 199.2 304 208z"]},Ds=O6,F6={prefix:"fas",iconName:"up-down",icon:[256,512,[11021,8597,"arrows-alt-v"],"f338","M249.6 392.3l-104 112c-9.094 9.781-26.09 9.781-35.19 0l-103.1-112c-6.484-6.984-8.219-17.17-4.406-25.92S14.45 352 24 352H80V160H24C14.45 160 5.812 154.3 1.999 145.6C-1.813 136.8-.0781 126.7 6.406 119.7l104-112c9.094-9.781 26.09-9.781 35.19 0l104 112c6.484 6.984 8.219 17.17 4.406 25.92C250.2 154.3 241.5 160 232 160H176v192h56c9.547 0 18.19 5.656 22 14.41S256.1 385.3 249.6 392.3z"]},P6=F6,z6={prefix:"fas",iconName:"xmark",icon:[320,512,[128473,10005,10006,10060,215,"close","multiply","remove","times"],"f00d","M310.6 361.4c12.5 12.5 12.5 32.75 0 45.25C304.4 412.9 296.2 416 288 416s-16.38-3.125-22.62-9.375L160 301.3L54.63 406.6C48.38 412.9 40.19 416 32 416S15.63 412.9 9.375 406.6c-12.5-12.5-12.5-32.75 0-45.25l105.4-105.4L9.375 150.6c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0L160 210.8l105.4-105.4c12.5-12.5 32.75-12.5 45.25 0s12.5 32.75 0 45.25l-105.4 105.4L310.6 361.4z"]};/*!
1574
+ */var cG={prefix:"fas",iconName:"arrow-down-wide-short",icon:[576,512,["sort-amount-asc","sort-amount-down"],"f160","M416 288h-95.1c-17.67 0-32 14.33-32 32s14.33 32 32 32H416c17.67 0 32-14.33 32-32S433.7 288 416 288zM544 32h-223.1c-17.67 0-32 14.33-32 32s14.33 32 32 32H544c17.67 0 32-14.33 32-32S561.7 32 544 32zM352 416h-32c-17.67 0-32 14.33-32 32s14.33 32 32 32h32c17.67 0 31.1-14.33 31.1-32S369.7 416 352 416zM480 160h-159.1c-17.67 0-32 14.33-32 32s14.33 32 32 32H480c17.67 0 32-14.33 32-32S497.7 160 480 160zM192.4 330.7L160 366.1V64.03C160 46.33 145.7 32 128 32S96 46.33 96 64.03v302L63.6 330.7c-6.312-6.883-14.94-10.38-23.61-10.38c-7.719 0-15.47 2.781-21.61 8.414c-13.03 11.95-13.9 32.22-1.969 45.27l87.1 96.09c12.12 13.26 35.06 13.26 47.19 0l87.1-96.09c11.94-13.05 11.06-33.31-1.969-45.27C224.6 316.8 204.4 317.7 192.4 330.7z"]},lG=cG,uG={prefix:"fas",iconName:"arrow-rotate-left",icon:[512,512,[8634,"arrow-left-rotate","arrow-rotate-back","arrow-rotate-backward","undo"],"f0e2","M480 256c0 123.4-100.5 223.9-223.9 223.9c-48.86 0-95.19-15.58-134.2-44.86c-14.14-10.59-17-30.66-6.391-44.81c10.61-14.09 30.69-16.97 44.8-6.375c27.84 20.91 61 31.94 95.89 31.94C344.3 415.8 416 344.1 416 256s-71.67-159.8-159.8-159.8C205.9 96.22 158.6 120.3 128.6 160H192c17.67 0 32 14.31 32 32S209.7 224 192 224H48c-17.67 0-32-14.31-32-32V48c0-17.69 14.33-32 32-32s32 14.31 32 32v70.23C122.1 64.58 186.1 32.11 256.1 32.11C379.5 32.11 480 132.6 480 256z"]},fG=uG,hG={prefix:"fas",iconName:"arrow-rotate-right",icon:[512,512,[8635,"arrow-right-rotate","arrow-rotate-forward","redo"],"f01e","M496 48V192c0 17.69-14.31 32-32 32H320c-17.69 0-32-14.31-32-32s14.31-32 32-32h63.39c-29.97-39.7-77.25-63.78-127.6-63.78C167.7 96.22 96 167.9 96 256s71.69 159.8 159.8 159.8c34.88 0 68.03-11.03 95.88-31.94c14.22-10.53 34.22-7.75 44.81 6.375c10.59 14.16 7.75 34.22-6.375 44.81c-39.03 29.28-85.36 44.86-134.2 44.86C132.5 479.9 32 379.4 32 256s100.5-223.9 223.9-223.9c69.15 0 134 32.47 176.1 86.12V48c0-17.69 14.31-32 32-32S496 30.31 496 48z"]},dG=hG,pG={prefix:"fas",iconName:"arrow-up",icon:[384,512,[8593],"f062","M374.6 246.6C368.4 252.9 360.2 256 352 256s-16.38-3.125-22.62-9.375L224 141.3V448c0 17.69-14.33 31.1-31.1 31.1S160 465.7 160 448V141.3L54.63 246.6c-12.5 12.5-32.75 12.5-45.25 0s-12.5-32.75 0-45.25l160-160c12.5-12.5 32.75-12.5 45.25 0l160 160C387.1 213.9 387.1 234.1 374.6 246.6z"]},gG={prefix:"fas",iconName:"backward-step",icon:[320,512,["step-backward"],"f048","M31.1 64.03c-17.67 0-31.1 14.33-31.1 32v319.9c0 17.67 14.33 32 32 32C49.67 447.1 64 433.6 64 415.1V96.03C64 78.36 49.67 64.03 31.1 64.03zM267.5 71.41l-192 159.1C67.82 237.8 64 246.9 64 256c0 9.094 3.82 18.18 11.44 24.62l192 159.1c20.63 17.12 52.51 2.75 52.51-24.62v-319.9C319.1 68.66 288.1 54.28 267.5 71.41z"]},mG=gG,$S={prefix:"fas",iconName:"bookmark",icon:[384,512,[61591,128278],"f02e","M384 48V512l-192-112L0 512V48C0 21.5 21.5 0 48 0h288C362.5 0 384 21.5 384 48z"]},bG={prefix:"fas",iconName:"check",icon:[448,512,[10004,10003],"f00c","M438.6 105.4C451.1 117.9 451.1 138.1 438.6 150.6L182.6 406.6C170.1 419.1 149.9 419.1 137.4 406.6L9.372 278.6C-3.124 266.1-3.124 245.9 9.372 233.4C21.87 220.9 42.13 220.9 54.63 233.4L159.1 338.7L393.4 105.4C405.9 92.88 426.1 92.88 438.6 105.4H438.6z"]},yG={prefix:"fas",iconName:"chevron-down",icon:[448,512,[],"f078","M224 416c-8.188 0-16.38-3.125-22.62-9.375l-192-192c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0L224 338.8l169.4-169.4c12.5-12.5 32.75-12.5 45.25 0s12.5 32.75 0 45.25l-192 192C240.4 412.9 232.2 416 224 416z"]},VS={prefix:"fas",iconName:"circle",icon:[512,512,[128308,128309,128992,128993,128994,128995,128996,9898,9899,11044,61708,61915,9679],"f111","M512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256z"]},vG={prefix:"fas",iconName:"circle-exclamation",icon:[512,512,["exclamation-circle"],"f06a","M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM232 152C232 138.8 242.8 128 256 128s24 10.75 24 24v128c0 13.25-10.75 24-24 24S232 293.3 232 280V152zM256 400c-17.36 0-31.44-14.08-31.44-31.44c0-17.36 14.07-31.44 31.44-31.44s31.44 14.08 31.44 31.44C287.4 385.9 273.4 400 256 400z"]},wG=vG,xG={prefix:"fas",iconName:"circle-info",icon:[512,512,["info-circle"],"f05a","M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 128c17.67 0 32 14.33 32 32c0 17.67-14.33 32-32 32S224 177.7 224 160C224 142.3 238.3 128 256 128zM296 384h-80C202.8 384 192 373.3 192 360s10.75-24 24-24h16v-64H224c-13.25 0-24-10.75-24-24S210.8 224 224 224h32c13.25 0 24 10.75 24 24v88h16c13.25 0 24 10.75 24 24S309.3 384 296 384z"]},YS=xG,AG={prefix:"fas",iconName:"circle-question",icon:[512,512,[62108,"question-circle"],"f059","M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 400c-18 0-32-14-32-32s13.1-32 32-32c17.1 0 32 14 32 32S273.1 400 256 400zM325.1 258L280 286V288c0 13-11 24-24 24S232 301 232 288V272c0-8 4-16 12-21l57-34C308 213 312 206 312 198C312 186 301.1 176 289.1 176h-51.1C225.1 176 216 186 216 198c0 13-11 24-24 24s-24-11-24-24C168 159 199 128 237.1 128h51.1C329 128 360 159 360 198C360 222 347 245 325.1 258z"]},EG=AG,SG={prefix:"fas",iconName:"ellipsis",icon:[448,512,["ellipsis-h"],"f141","M120 256C120 286.9 94.93 312 64 312C33.07 312 8 286.9 8 256C8 225.1 33.07 200 64 200C94.93 200 120 225.1 120 256zM280 256C280 286.9 254.9 312 224 312C193.1 312 168 286.9 168 256C168 225.1 193.1 200 224 200C254.9 200 280 225.1 280 256zM328 256C328 225.1 353.1 200 384 200C414.9 200 440 225.1 440 256C440 286.9 414.9 312 384 312C353.1 312 328 286.9 328 256z"]},CG=SG,_G={prefix:"fas",iconName:"ellipsis-vertical",icon:[128,512,["ellipsis-v"],"f142","M64 360C94.93 360 120 385.1 120 416C120 446.9 94.93 472 64 472C33.07 472 8 446.9 8 416C8 385.1 33.07 360 64 360zM64 200C94.93 200 120 225.1 120 256C120 286.9 94.93 312 64 312C33.07 312 8 286.9 8 256C8 225.1 33.07 200 64 200zM64 152C33.07 152 8 126.9 8 96C8 65.07 33.07 40 64 40C94.93 40 120 65.07 120 96C120 126.9 94.93 152 64 152z"]},kG=_G,Qa={prefix:"fas",iconName:"filter",icon:[512,512,[],"f0b0","M3.853 54.87C10.47 40.9 24.54 32 40 32H472C487.5 32 501.5 40.9 508.1 54.87C514.8 68.84 512.7 85.37 502.1 97.33L320 320.9V448C320 460.1 313.2 471.2 302.3 476.6C291.5 482 278.5 480.9 268.8 473.6L204.8 425.6C196.7 419.6 192 410.1 192 400V320.9L9.042 97.33C-.745 85.37-2.765 68.84 3.854 54.87L3.853 54.87z"]},DG={prefix:"fas",iconName:"forward-step",icon:[320,512,["step-forward"],"f051","M287.1 447.1c17.67 0 31.1-14.33 31.1-32V96.03c0-17.67-14.33-32-32-32c-17.67 0-31.1 14.33-31.1 31.1v319.9C255.1 433.6 270.3 447.1 287.1 447.1zM52.51 440.6l192-159.1c7.625-6.436 11.43-15.53 11.43-24.62c0-9.094-3.809-18.18-11.43-24.62l-192-159.1C31.88 54.28 0 68.66 0 96.03v319.9C0 443.3 31.88 457.7 52.51 440.6z"]},IG=DG,TG={prefix:"fas",iconName:"maximize",icon:[448,512,["expand-arrows-alt"],"f31e","M447.1 319.1v135.1c0 13.26-10.75 23.1-23.1 23.1h-135.1c-12.94 0-24.61-7.781-29.56-19.75c-4.906-11.1-2.203-25.72 6.937-34.87l30.06-30.06L224 323.9l-71.43 71.44l30.06 30.06c9.156 9.156 11.91 22.91 6.937 34.87C184.6 472.2 172.9 479.1 160 479.1H24c-13.25 0-23.1-10.74-23.1-23.1v-135.1c0-12.94 7.781-24.61 19.75-29.56C23.72 288.8 27.88 288 32 288c8.312 0 16.5 3.242 22.63 9.367l30.06 30.06l71.44-71.44L84.69 184.6L54.63 214.6c-9.156 9.156-22.91 11.91-34.87 6.937C7.798 216.6 .0013 204.9 .0013 191.1v-135.1c0-13.26 10.75-23.1 23.1-23.1h135.1c12.94 0 24.61 7.781 29.56 19.75C191.2 55.72 191.1 59.87 191.1 63.1c0 8.312-3.237 16.5-9.362 22.63L152.6 116.7l71.44 71.44l71.43-71.44l-30.06-30.06c-9.156-9.156-11.91-22.91-6.937-34.87c4.937-11.95 16.62-19.75 29.56-19.75h135.1c13.26 0 23.1 10.75 23.1 23.1v135.1c0 12.94-7.781 24.61-19.75 29.56c-11.1 4.906-25.72 2.203-34.87-6.937l-30.06-30.06l-71.43 71.43l71.44 71.44l30.06-30.06c9.156-9.156 22.91-11.91 34.87-6.937C440.2 295.4 447.1 307.1 447.1 319.1z"]},MG=TG,QS={prefix:"fas",iconName:"medal",icon:[512,512,[127941],"f5a2","M223.7 130.8L149.1 7.77C147.1 2.949 141.9 0 136.3 0H16.03c-12.95 0-20.53 14.58-13.1 25.18l111.3 158.9C143.9 156.4 181.7 137.3 223.7 130.8zM256 160c-97.25 0-176 78.75-176 176S158.8 512 256 512s176-78.75 176-176S353.3 160 256 160zM348.5 317.3l-37.88 37l8.875 52.25c1.625 9.25-8.25 16.5-16.63 12l-46.88-24.62L209.1 418.5c-8.375 4.5-18.25-2.75-16.63-12l8.875-52.25l-37.88-37C156.6 310.6 160.5 299 169.9 297.6l52.38-7.625L245.7 242.5c2-4.25 6.125-6.375 10.25-6.375S264.2 238.3 266.2 242.5l23.5 47.5l52.38 7.625C351.6 299 355.4 310.6 348.5 317.3zM495.1 0H375.7c-5.621 0-10.83 2.949-13.72 7.77l-73.76 122.1c42 6.5 79.88 25.62 109.5 53.38l111.3-158.9C516.5 14.58 508.9 0 495.1 0z"]},Nl={prefix:"fas",iconName:"object-group",icon:[576,512,[],"f247","M128 160C128 142.3 142.3 128 160 128H288C305.7 128 320 142.3 320 160V256C320 273.7 305.7 288 288 288H160C142.3 288 128 273.7 128 256V160zM288 320C323.3 320 352 291.3 352 256V224H416C433.7 224 448 238.3 448 256V352C448 369.7 433.7 384 416 384H288C270.3 384 256 369.7 256 352V320H288zM32 119.4C12.87 108.4 0 87.69 0 64C0 28.65 28.65 0 64 0C87.69 0 108.4 12.87 119.4 32H456.6C467.6 12.87 488.3 0 512 0C547.3 0 576 28.65 576 64C576 87.69 563.1 108.4 544 119.4V392.6C563.1 403.6 576 424.3 576 448C576 483.3 547.3 512 512 512C488.3 512 467.6 499.1 456.6 480H119.4C108.4 499.1 87.69 512 64 512C28.65 512 0 483.3 0 448C0 424.3 12.87 403.6 32 392.6V119.4zM119.4 96C113.8 105.7 105.7 113.8 96 119.4V392.6C105.7 398.2 113.8 406.3 119.4 416H456.6C462.2 406.3 470.3 398.2 480 392.6V119.4C470.3 113.8 462.2 105.7 456.6 96H119.4z"]},NG={prefix:"fas",iconName:"pen",icon:[512,512,[128394],"f304","M362.7 19.32C387.7-5.678 428.3-5.678 453.3 19.32L492.7 58.75C517.7 83.74 517.7 124.3 492.7 149.3L444.3 197.7L314.3 67.72L362.7 19.32zM421.7 220.3L188.5 453.4C178.1 463.8 165.2 471.5 151.1 475.6L30.77 511C22.35 513.5 13.24 511.2 7.03 504.1C.8198 498.8-1.502 489.7 .976 481.2L36.37 360.9C40.53 346.8 48.16 333.9 58.57 323.5L291.7 90.34L421.7 220.3z"]},qm={prefix:"fas",iconName:"share",icon:[512,512,["arrow-turn-right","mail-forward"],"f064","M503.7 226.2l-176 151.1c-15.38 13.3-39.69 2.545-39.69-18.16V272.1C132.9 274.3 66.06 312.8 111.4 457.8c5.031 16.09-14.41 28.56-28.06 18.62C39.59 444.6 0 383.8 0 322.3c0-152.2 127.4-184.4 288-186.3V56.02c0-20.67 24.28-31.46 39.69-18.16l176 151.1C514.8 199.4 514.8 216.6 503.7 226.2z"]},FG={prefix:"fas",iconName:"sliders",icon:[512,512,["sliders-h"],"f1de","M0 416C0 398.3 14.33 384 32 384H86.66C99 355.7 127.2 336 160 336C192.8 336 220.1 355.7 233.3 384H480C497.7 384 512 398.3 512 416C512 433.7 497.7 448 480 448H233.3C220.1 476.3 192.8 496 160 496C127.2 496 99 476.3 86.66 448H32C14.33 448 0 433.7 0 416V416zM192 416C192 398.3 177.7 384 160 384C142.3 384 128 398.3 128 416C128 433.7 142.3 448 160 448C177.7 448 192 433.7 192 416zM352 176C384.8 176 412.1 195.7 425.3 224H480C497.7 224 512 238.3 512 256C512 273.7 497.7 288 480 288H425.3C412.1 316.3 384.8 336 352 336C319.2 336 291 316.3 278.7 288H32C14.33 288 0 273.7 0 256C0 238.3 14.33 224 32 224H278.7C291 195.7 319.2 176 352 176zM384 256C384 238.3 369.7 224 352 224C334.3 224 320 238.3 320 256C320 273.7 334.3 288 352 288C369.7 288 384 273.7 384 256zM480 64C497.7 64 512 78.33 512 96C512 113.7 497.7 128 480 128H265.3C252.1 156.3 224.8 176 192 176C159.2 176 131 156.3 118.7 128H32C14.33 128 0 113.7 0 96C0 78.33 14.33 64 32 64H118.7C131 35.75 159.2 16 192 16C224.8 16 252.1 35.75 265.3 64H480zM160 96C160 113.7 174.3 128 192 128C209.7 128 224 113.7 224 96C224 78.33 209.7 64 192 64C174.3 64 160 78.33 160 96z"]},BG=FG,ZS={prefix:"fas",iconName:"trash",icon:[448,512,[],"f1f8","M135.2 17.69C140.6 6.848 151.7 0 163.8 0H284.2C296.3 0 307.4 6.848 312.8 17.69L320 32H416C433.7 32 448 46.33 448 64C448 81.67 433.7 96 416 96H32C14.33 96 0 81.67 0 64C0 46.33 14.33 32 32 32H128L135.2 17.69zM394.8 466.1C393.2 492.3 372.3 512 346.9 512H101.1C75.75 512 54.77 492.3 53.19 466.1L31.1 128H416L394.8 466.1z"]},LG={prefix:"fas",iconName:"trash-can",icon:[448,512,[61460,"trash-alt"],"f2ed","M135.2 17.69C140.6 6.848 151.7 0 163.8 0H284.2C296.3 0 307.4 6.848 312.8 17.69L320 32H416C433.7 32 448 46.33 448 64C448 81.67 433.7 96 416 96H32C14.33 96 0 81.67 0 64C0 46.33 14.33 32 32 32H128L135.2 17.69zM31.1 128H416V448C416 483.3 387.3 512 352 512H95.1C60.65 512 31.1 483.3 31.1 448V128zM111.1 208V432C111.1 440.8 119.2 448 127.1 448C136.8 448 143.1 440.8 143.1 432V208C143.1 199.2 136.8 192 127.1 192C119.2 192 111.1 199.2 111.1 208zM207.1 208V432C207.1 440.8 215.2 448 223.1 448C232.8 448 240 440.8 240 432V208C240 199.2 232.8 192 223.1 192C215.2 192 207.1 199.2 207.1 208zM304 208V432C304 440.8 311.2 448 320 448C328.8 448 336 440.8 336 432V208C336 199.2 328.8 192 320 192C311.2 192 304 199.2 304 208z"]},kh=LG,OG={prefix:"fas",iconName:"up-down",icon:[256,512,[11021,8597,"arrows-alt-v"],"f338","M249.6 392.3l-104 112c-9.094 9.781-26.09 9.781-35.19 0l-103.1-112c-6.484-6.984-8.219-17.17-4.406-25.92S14.45 352 24 352H80V160H24C14.45 160 5.812 154.3 1.999 145.6C-1.813 136.8-.0781 126.7 6.406 119.7l104-112c9.094-9.781 26.09-9.781 35.19 0l104 112c6.484 6.984 8.219 17.17 4.406 25.92C250.2 154.3 241.5 160 232 160H176v192h56c9.547 0 18.19 5.656 22 14.41S256.1 385.3 249.6 392.3z"]},RG=OG,zG={prefix:"fas",iconName:"xmark",icon:[320,512,[128473,10005,10006,10060,215,"close","multiply","remove","times"],"f00d","M310.6 361.4c12.5 12.5 12.5 32.75 0 45.25C304.4 412.9 296.2 416 288 416s-16.38-3.125-22.62-9.375L160 301.3L54.63 406.6C48.38 412.9 40.19 416 32 416S15.63 412.9 9.375 406.6c-12.5-12.5-12.5-32.75 0-45.25l105.4-105.4L9.375 150.6c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0L160 210.8l105.4-105.4c12.5-12.5 32.75-12.5 45.25 0s12.5 32.75 0 45.25l-105.4 105.4L310.6 361.4z"]};/*!
1388
1575
  * Font Awesome Free 6.1.1 by @fontawesome - https://fontawesome.com
1389
1576
  * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
1390
1577
  * Copyright 2022 Fonticons, Inc.
1391
- */function Y1(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),n.push.apply(n,r)}return n}function I(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?Y1(Object(n),!0).forEach(function(r){U6(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):Y1(Object(n)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(n,r))})}return t}function Ms(t){return Ms=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Ms(t)}function R6(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function _1(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}function j6(t,e,n){return e&&_1(t.prototype,e),n&&_1(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t}function U6(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function sf(t,e){return G6(t)||V6(t,e)||W1(t,e)||_6()}function Ts(t){return H6(t)||Q6(t)||W1(t)||Y6()}function H6(t){if(Array.isArray(t))return cf(t)}function G6(t){if(Array.isArray(t))return t}function Q6(t){if(typeof Symbol<"u"&&t[Symbol.iterator]!=null||t["@@iterator"]!=null)return Array.from(t)}function V6(t,e){var n=t==null?null:typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(n!=null){var r=[],i=!0,o=!1,a,s;try{for(n=n.call(t);!(i=(a=n.next()).done)&&(r.push(a.value),!(e&&r.length===e));i=!0);}catch(c){o=!0,s=c}finally{try{!i&&n.return!=null&&n.return()}finally{if(o)throw s}}return r}}function W1(t,e){if(t){if(typeof t=="string")return cf(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);if(n==="Object"&&t.constructor&&(n=t.constructor.name),n==="Map"||n==="Set")return Array.from(t);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return cf(t,e)}}function cf(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}function Y6(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
1392
- In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _6(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
1393
- In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var X1=function(){},uf={},Z1={},q1=null,K1={mark:X1,measure:X1};try{typeof window<"u"&&(uf=window),typeof document<"u"&&(Z1=document),typeof MutationObserver<"u"&&(q1=MutationObserver),typeof performance<"u"&&(K1=performance)}catch{}var W6=uf.navigator||{},J1=W6.userAgent,$1=J1===void 0?"":J1,hn=uf,te=Z1,ey=q1,Is=K1;hn.document;var Pt=!!te.documentElement&&!!te.head&&typeof te.addEventListener=="function"&&typeof te.createElement=="function",ty=~$1.indexOf("MSIE")||~$1.indexOf("Trident/"),zt="___FONT_AWESOME___",lf=16,ny="fa",ry="svg-inline--fa",sr="data-fa-i2svg",ff="data-fa-pseudo-element",X6="data-fa-pseudo-element-pending",df="data-prefix",hf="data-icon",iy="fontawesome-i2svg",Z6="async",q6=["HTML","HEAD","STYLE","SCRIPT"],oy=function(){try{return!0}catch{return!1}}(),pf={fas:"solid","fa-solid":"solid",far:"regular","fa-regular":"regular",fal:"light","fa-light":"light",fat:"thin","fa-thin":"thin",fad:"duotone","fa-duotone":"duotone",fab:"brands","fa-brands":"brands",fak:"kit","fa-kit":"kit",fa:"solid"},ks={solid:"fas",regular:"far",light:"fal",thin:"fat",duotone:"fad",brands:"fab",kit:"fak"},ay={fab:"fa-brands",fad:"fa-duotone",fak:"fa-kit",fal:"fa-light",far:"fa-regular",fas:"fa-solid",fat:"fa-thin"},K6={"fa-brands":"fab","fa-duotone":"fad","fa-kit":"fak","fa-light":"fal","fa-regular":"far","fa-solid":"fas","fa-thin":"fat"},J6=/fa[srltdbk\-\ ]/,sy="fa-layers-text",$6=/Font ?Awesome ?([56 ]*)(Solid|Regular|Light|Thin|Duotone|Brands|Free|Pro|Kit)?.*/i,eT={900:"fas",400:"far",normal:"far",300:"fal",100:"fat"},cy=[1,2,3,4,5,6,7,8,9,10],tT=cy.concat([11,12,13,14,15,16,17,18,19,20]),nT=["class","data-prefix","data-icon","data-fa-transform","data-fa-mask"],cr={GROUP:"duotone-group",SWAP_OPACITY:"swap-opacity",PRIMARY:"primary",SECONDARY:"secondary"},rT=[].concat(Ts(Object.keys(ks)),["2xs","xs","sm","lg","xl","2xl","beat","border","fade","beat-fade","bounce","flip-both","flip-horizontal","flip-vertical","flip","fw","inverse","layers-counter","layers-text","layers","li","pull-left","pull-right","pulse","rotate-180","rotate-270","rotate-90","rotate-by","shake","spin-pulse","spin-reverse","spin","stack-1x","stack-2x","stack","ul",cr.GROUP,cr.SWAP_OPACITY,cr.PRIMARY,cr.SECONDARY]).concat(cy.map(function(t){return"".concat(t,"x")})).concat(tT.map(function(t){return"w-".concat(t)})),uy=hn.FontAwesomeConfig||{};function iT(t){var e=te.querySelector("script["+t+"]");if(e)return e.getAttribute(t)}function oT(t){return t===""?!0:t==="false"?!1:t==="true"?!0:t}if(te&&typeof te.querySelector=="function"){var aT=[["data-family-prefix","familyPrefix"],["data-style-default","styleDefault"],["data-replacement-class","replacementClass"],["data-auto-replace-svg","autoReplaceSvg"],["data-auto-add-css","autoAddCss"],["data-auto-a11y","autoA11y"],["data-search-pseudo-elements","searchPseudoElements"],["data-observe-mutations","observeMutations"],["data-mutate-approach","mutateApproach"],["data-keep-original-source","keepOriginalSource"],["data-measure-performance","measurePerformance"],["data-show-missing-icons","showMissingIcons"]];aT.forEach(function(t){var e=sf(t,2),n=e[0],r=e[1],i=oT(iT(n));i!=null&&(uy[r]=i)})}var sT={familyPrefix:ny,styleDefault:"solid",replacementClass:ry,autoReplaceSvg:!0,autoAddCss:!0,autoA11y:!0,searchPseudoElements:!1,observeMutations:!0,mutateApproach:"async",keepOriginalSource:!0,measurePerformance:!1,showMissingIcons:!0},wo=I(I({},sT),uy);wo.autoReplaceSvg||(wo.observeMutations=!1);var F={};Object.keys(wo).forEach(function(t){Object.defineProperty(F,t,{enumerable:!0,set:function(n){wo[t]=n,Ns.forEach(function(r){return r(F)})},get:function(){return wo[t]}})}),hn.FontAwesomeConfig=F;var Ns=[];function cT(t){return Ns.push(t),function(){Ns.splice(Ns.indexOf(t),1)}}var pn=lf,bt={size:16,x:0,y:0,rotate:0,flipX:!1,flipY:!1};function uT(t){if(!(!t||!Pt)){var e=te.createElement("style");e.setAttribute("type","text/css"),e.innerHTML=t;for(var n=te.head.childNodes,r=null,i=n.length-1;i>-1;i--){var o=n[i],a=(o.tagName||"").toUpperCase();["STYLE","LINK"].indexOf(a)>-1&&(r=o)}return te.head.insertBefore(e,r),t}}var lT="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";function Co(){for(var t=12,e="";t-- >0;)e+=lT[Math.random()*62|0];return e}function qr(t){for(var e=[],n=(t||[]).length>>>0;n--;)e[n]=t[n];return e}function mf(t){return t.classList?qr(t.classList):(t.getAttribute("class")||"").split(" ").filter(function(e){return e})}function ly(t){return"".concat(t).replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/'/g,"&#39;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function fT(t){return Object.keys(t||{}).reduce(function(e,n){return e+"".concat(n,'="').concat(ly(t[n]),'" ')},"").trim()}function Ls(t){return Object.keys(t||{}).reduce(function(e,n){return e+"".concat(n,": ").concat(t[n].trim(),";")},"")}function gf(t){return t.size!==bt.size||t.x!==bt.x||t.y!==bt.y||t.rotate!==bt.rotate||t.flipX||t.flipY}function dT(t){var e=t.transform,n=t.containerWidth,r=t.iconWidth,i={transform:"translate(".concat(n/2," 256)")},o="translate(".concat(e.x*32,", ").concat(e.y*32,") "),a="scale(".concat(e.size/16*(e.flipX?-1:1),", ").concat(e.size/16*(e.flipY?-1:1),") "),s="rotate(".concat(e.rotate," 0 0)"),c={transform:"".concat(o," ").concat(a," ").concat(s)},u={transform:"translate(".concat(r/2*-1," -256)")};return{outer:i,inner:c,path:u}}function hT(t){var e=t.transform,n=t.width,r=n===void 0?lf:n,i=t.height,o=i===void 0?lf:i,a=t.startCentered,s=a===void 0?!1:a,c="";return s&&ty?c+="translate(".concat(e.x/pn-r/2,"em, ").concat(e.y/pn-o/2,"em) "):s?c+="translate(calc(-50% + ".concat(e.x/pn,"em), calc(-50% + ").concat(e.y/pn,"em)) "):c+="translate(".concat(e.x/pn,"em, ").concat(e.y/pn,"em) "),c+="scale(".concat(e.size/pn*(e.flipX?-1:1),", ").concat(e.size/pn*(e.flipY?-1:1),") "),c+="rotate(".concat(e.rotate,"deg) "),c}var pT=`:root, :host {
1578
+ */function qS(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function Z(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?qS(Object(n),!0).forEach(function(r){jG(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):qS(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function Dh(e){return Dh=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Dh(e)}function PG(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function WS(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function UG(e,t,n){return t&&WS(e.prototype,t),n&&WS(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function jG(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Wm(e,t){return GG(e)||VG(e,t)||XS(e,t)||QG()}function Ih(e){return HG(e)||$G(e)||XS(e)||YG()}function HG(e){if(Array.isArray(e))return Xm(e)}function GG(e){if(Array.isArray(e))return e}function $G(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function VG(e,t){var n=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(n!=null){var r=[],i=!0,a=!1,o,s;try{for(n=n.call(e);!(i=(o=n.next()).done)&&(r.push(o.value),!(t&&r.length===t));i=!0);}catch(l){a=!0,s=l}finally{try{!i&&n.return!=null&&n.return()}finally{if(a)throw s}}return r}}function XS(e,t){if(e){if(typeof e=="string")return Xm(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Xm(e,t)}}function Xm(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function YG(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
1579
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function QG(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
1580
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var KS=function(){},Km={},JS={},eC=null,tC={mark:KS,measure:KS};try{typeof window<"u"&&(Km=window),typeof document<"u"&&(JS=document),typeof MutationObserver<"u"&&(eC=MutationObserver),typeof performance<"u"&&(tC=performance)}catch{}var ZG=Km.navigator||{},nC=ZG.userAgent,rC=nC===void 0?"":nC,Mi=Km,Oe=JS,iC=eC,Th=tC;Mi.document;var Lr=!!Oe.documentElement&&!!Oe.head&&typeof Oe.addEventListener=="function"&&typeof Oe.createElement=="function",aC=~rC.indexOf("MSIE")||~rC.indexOf("Trident/"),Or="___FONT_AWESOME___",Jm=16,oC="fa",sC="svg-inline--fa",Za="data-fa-i2svg",e1="data-fa-pseudo-element",qG="data-fa-pseudo-element-pending",t1="data-prefix",n1="data-icon",cC="fontawesome-i2svg",WG="async",XG=["HTML","HEAD","STYLE","SCRIPT"],lC=function(){try{return!0}catch{return!1}}(),r1={fas:"solid","fa-solid":"solid",far:"regular","fa-regular":"regular",fal:"light","fa-light":"light",fat:"thin","fa-thin":"thin",fad:"duotone","fa-duotone":"duotone",fab:"brands","fa-brands":"brands",fak:"kit","fa-kit":"kit",fa:"solid"},Mh={solid:"fas",regular:"far",light:"fal",thin:"fat",duotone:"fad",brands:"fab",kit:"fak"},uC={fab:"fa-brands",fad:"fa-duotone",fak:"fa-kit",fal:"fa-light",far:"fa-regular",fas:"fa-solid",fat:"fa-thin"},KG={"fa-brands":"fab","fa-duotone":"fad","fa-kit":"fak","fa-light":"fal","fa-regular":"far","fa-solid":"fas","fa-thin":"fat"},JG=/fa[srltdbk\-\ ]/,fC="fa-layers-text",e$=/Font ?Awesome ?([56 ]*)(Solid|Regular|Light|Thin|Duotone|Brands|Free|Pro|Kit)?.*/i,t$={900:"fas",400:"far",normal:"far",300:"fal",100:"fat"},hC=[1,2,3,4,5,6,7,8,9,10],n$=hC.concat([11,12,13,14,15,16,17,18,19,20]),r$=["class","data-prefix","data-icon","data-fa-transform","data-fa-mask"],qa={GROUP:"duotone-group",SWAP_OPACITY:"swap-opacity",PRIMARY:"primary",SECONDARY:"secondary"},i$=[].concat(Ih(Object.keys(Mh)),["2xs","xs","sm","lg","xl","2xl","beat","border","fade","beat-fade","bounce","flip-both","flip-horizontal","flip-vertical","flip","fw","inverse","layers-counter","layers-text","layers","li","pull-left","pull-right","pulse","rotate-180","rotate-270","rotate-90","rotate-by","shake","spin-pulse","spin-reverse","spin","stack-1x","stack-2x","stack","ul",qa.GROUP,qa.SWAP_OPACITY,qa.PRIMARY,qa.SECONDARY]).concat(hC.map(function(e){return"".concat(e,"x")})).concat(n$.map(function(e){return"w-".concat(e)})),dC=Mi.FontAwesomeConfig||{};function a$(e){var t=Oe.querySelector("script["+e+"]");if(t)return t.getAttribute(e)}function o$(e){return e===""?!0:e==="false"?!1:e==="true"?!0:e}if(Oe&&typeof Oe.querySelector=="function"){var s$=[["data-family-prefix","familyPrefix"],["data-style-default","styleDefault"],["data-replacement-class","replacementClass"],["data-auto-replace-svg","autoReplaceSvg"],["data-auto-add-css","autoAddCss"],["data-auto-a11y","autoA11y"],["data-search-pseudo-elements","searchPseudoElements"],["data-observe-mutations","observeMutations"],["data-mutate-approach","mutateApproach"],["data-keep-original-source","keepOriginalSource"],["data-measure-performance","measurePerformance"],["data-show-missing-icons","showMissingIcons"]];s$.forEach(function(e){var t=Wm(e,2),n=t[0],r=t[1],i=o$(a$(n));i!=null&&(dC[r]=i)})}var c$={familyPrefix:oC,styleDefault:"solid",replacementClass:sC,autoReplaceSvg:!0,autoAddCss:!0,autoA11y:!0,searchPseudoElements:!1,observeMutations:!0,mutateApproach:"async",keepOriginalSource:!0,measurePerformance:!1,showMissingIcons:!0},Fl=Z(Z({},c$),dC);Fl.autoReplaceSvg||(Fl.observeMutations=!1);var X={};Object.keys(Fl).forEach(function(e){Object.defineProperty(X,e,{enumerable:!0,set:function(n){Fl[e]=n,Nh.forEach(function(r){return r(X)})},get:function(){return Fl[e]}})}),Mi.FontAwesomeConfig=X;var Nh=[];function l$(e){return Nh.push(e),function(){Nh.splice(Nh.indexOf(e),1)}}var Ni=Jm,lr={size:16,x:0,y:0,rotate:0,flipX:!1,flipY:!1};function u$(e){if(!(!e||!Lr)){var t=Oe.createElement("style");t.setAttribute("type","text/css"),t.innerHTML=e;for(var n=Oe.head.childNodes,r=null,i=n.length-1;i>-1;i--){var a=n[i],o=(a.tagName||"").toUpperCase();["STYLE","LINK"].indexOf(o)>-1&&(r=a)}return Oe.head.insertBefore(t,r),e}}var f$="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";function Bl(){for(var e=12,t="";e-- >0;)t+=f$[Math.random()*62|0];return t}function vs(e){for(var t=[],n=(e||[]).length>>>0;n--;)t[n]=e[n];return t}function i1(e){return e.classList?vs(e.classList):(e.getAttribute("class")||"").split(" ").filter(function(t){return t})}function pC(e){return"".concat(e).replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/'/g,"&#39;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function h$(e){return Object.keys(e||{}).reduce(function(t,n){return t+"".concat(n,'="').concat(pC(e[n]),'" ')},"").trim()}function Fh(e){return Object.keys(e||{}).reduce(function(t,n){return t+"".concat(n,": ").concat(e[n].trim(),";")},"")}function a1(e){return e.size!==lr.size||e.x!==lr.x||e.y!==lr.y||e.rotate!==lr.rotate||e.flipX||e.flipY}function d$(e){var t=e.transform,n=e.containerWidth,r=e.iconWidth,i={transform:"translate(".concat(n/2," 256)")},a="translate(".concat(t.x*32,", ").concat(t.y*32,") "),o="scale(".concat(t.size/16*(t.flipX?-1:1),", ").concat(t.size/16*(t.flipY?-1:1),") "),s="rotate(".concat(t.rotate," 0 0)"),l={transform:"".concat(a," ").concat(o," ").concat(s)},c={transform:"translate(".concat(r/2*-1," -256)")};return{outer:i,inner:l,path:c}}function p$(e){var t=e.transform,n=e.width,r=n===void 0?Jm:n,i=e.height,a=i===void 0?Jm:i,o=e.startCentered,s=o===void 0?!1:o,l="";return s&&aC?l+="translate(".concat(t.x/Ni-r/2,"em, ").concat(t.y/Ni-a/2,"em) "):s?l+="translate(calc(-50% + ".concat(t.x/Ni,"em), calc(-50% + ").concat(t.y/Ni,"em)) "):l+="translate(".concat(t.x/Ni,"em, ").concat(t.y/Ni,"em) "),l+="scale(".concat(t.size/Ni*(t.flipX?-1:1),", ").concat(t.size/Ni*(t.flipY?-1:1),") "),l+="rotate(".concat(t.rotate,"deg) "),l}var g$=`:root, :host {
1394
1581
  --fa-font-solid: normal 900 1em/1 "Font Awesome 6 Solid";
1395
1582
  --fa-font-regular: normal 400 1em/1 "Font Awesome 6 Regular";
1396
1583
  --fa-font-light: normal 300 1em/1 "Font Awesome 6 Light";
@@ -2141,48 +2328,48 @@ svg:not(:root).svg-inline--fa, svg:not(:host).svg-inline--fa {
2141
2328
  .fad.fa-inverse,
2142
2329
  .fa-duotone.fa-inverse {
2143
2330
  color: var(--fa-inverse, #fff);
2144
- }`;function fy(){var t=ny,e=ry,n=F.familyPrefix,r=F.replacementClass,i=pT;if(n!==t||r!==e){var o=new RegExp("\\.".concat(t,"\\-"),"g"),a=new RegExp("\\--".concat(t,"\\-"),"g"),s=new RegExp("\\.".concat(e),"g");i=i.replace(o,".".concat(n,"-")).replace(a,"--".concat(n,"-")).replace(s,".".concat(r))}return i}var dy=!1;function yf(){F.autoAddCss&&!dy&&(uT(fy()),dy=!0)}var mT={mixout:function(){return{dom:{css:fy,insertCss:yf}}},hooks:function(){return{beforeDOMElementCreation:function(){yf()},beforeI2svg:function(){yf()}}}},Rt=hn||{};Rt[zt]||(Rt[zt]={}),Rt[zt].styles||(Rt[zt].styles={}),Rt[zt].hooks||(Rt[zt].hooks={}),Rt[zt].shims||(Rt[zt].shims=[]);var ct=Rt[zt],hy=[],gT=function t(){te.removeEventListener("DOMContentLoaded",t),Bs=1,hy.map(function(e){return e()})},Bs=!1;Pt&&(Bs=(te.documentElement.doScroll?/^loaded|^c/:/^loaded|^i|^c/).test(te.readyState),Bs||te.addEventListener("DOMContentLoaded",gT));function yT(t){Pt&&(Bs?setTimeout(t,0):hy.push(t))}function So(t){var e=t.tag,n=t.attributes,r=n===void 0?{}:n,i=t.children,o=i===void 0?[]:i;return typeof t=="string"?ly(t):"<".concat(e," ").concat(fT(r),">").concat(o.map(So).join(""),"</").concat(e,">")}function py(t,e,n){if(t&&t[e]&&t[e][n])return{prefix:e,iconName:n,icon:t[e][n]}}var vT=function(e,n){return function(r,i,o,a){return e.call(n,r,i,o,a)}},vf=function(e,n,r,i){var o=Object.keys(e),a=o.length,s=i!==void 0?vT(n,i):n,c,u,f;for(r===void 0?(c=1,f=e[o[0]]):(c=0,f=r);c<a;c++)u=o[c],f=s(f,e[u],u,e);return f};function bT(t){for(var e=[],n=0,r=t.length;n<r;){var i=t.charCodeAt(n++);if(i>=55296&&i<=56319&&n<r){var o=t.charCodeAt(n++);(o&64512)==56320?e.push(((i&1023)<<10)+(o&1023)+65536):(e.push(i),n--)}else e.push(i)}return e}function bf(t){var e=bT(t);return e.length===1?e[0].toString(16):null}function AT(t,e){var n=t.length,r=t.charCodeAt(e),i;return r>=55296&&r<=56319&&n>e+1&&(i=t.charCodeAt(e+1),i>=56320&&i<=57343)?(r-55296)*1024+i-56320+65536:r}function my(t){return Object.keys(t).reduce(function(e,n){var r=t[n],i=!!r.icon;return i?e[r.iconName]=r.icon:e[n]=r,e},{})}function Af(t,e){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},r=n.skipHooks,i=r===void 0?!1:r,o=my(e);typeof ct.hooks.addPack=="function"&&!i?ct.hooks.addPack(t,my(e)):ct.styles[t]=I(I({},ct.styles[t]||{}),o),t==="fas"&&Af("fa",e)}var Eo=ct.styles,xT=ct.shims,wT=Object.values(ay),xf=null,gy={},yy={},vy={},by={},Ay={},CT=Object.keys(pf);function ST(t){return~rT.indexOf(t)}function ET(t,e){var n=e.split("-"),r=n[0],i=n.slice(1).join("-");return r===t&&i!==""&&!ST(i)?i:null}var xy=function(){var e=function(o){return vf(Eo,function(a,s,c){return a[c]=vf(s,o,{}),a},{})};gy=e(function(i,o,a){if(o[3]&&(i[o[3]]=a),o[2]){var s=o[2].filter(function(c){return typeof c=="number"});s.forEach(function(c){i[c.toString(16)]=a})}return i}),yy=e(function(i,o,a){if(i[a]=a,o[2]){var s=o[2].filter(function(c){return typeof c=="string"});s.forEach(function(c){i[c]=a})}return i}),Ay=e(function(i,o,a){var s=o[2];return i[a]=a,s.forEach(function(c){i[c]=a}),i});var n="far"in Eo||F.autoFetchSvg,r=vf(xT,function(i,o){var a=o[0],s=o[1],c=o[2];return s==="far"&&!n&&(s="fas"),typeof a=="string"&&(i.names[a]={prefix:s,iconName:c}),typeof a=="number"&&(i.unicodes[a.toString(16)]={prefix:s,iconName:c}),i},{names:{},unicodes:{}});vy=r.names,by=r.unicodes,xf=Os(F.styleDefault)};cT(function(t){xf=Os(t.styleDefault)}),xy();function wf(t,e){return(gy[t]||{})[e]}function DT(t,e){return(yy[t]||{})[e]}function Kr(t,e){return(Ay[t]||{})[e]}function wy(t){return vy[t]||{prefix:null,iconName:null}}function MT(t){var e=by[t],n=wf("fas",t);return e||(n?{prefix:"fas",iconName:n}:null)||{prefix:null,iconName:null}}function mn(){return xf}var Cf=function(){return{prefix:null,iconName:null,rest:[]}};function Os(t){var e=pf[t],n=ks[t]||ks[e],r=t in ct.styles?t:null;return n||r||null}function Fs(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=e.skipLookups,r=n===void 0?!1:n,i=null,o=t.reduce(function(a,s){var c=ET(F.familyPrefix,s);if(Eo[s]?(s=wT.includes(s)?K6[s]:s,i=s,a.prefix=s):CT.indexOf(s)>-1?(i=s,a.prefix=Os(s)):c?a.iconName=c:s!==F.replacementClass&&a.rest.push(s),!r&&a.prefix&&a.iconName){var u=i==="fa"?wy(a.iconName):{},f=Kr(a.prefix,a.iconName);u.prefix&&(i=null),a.iconName=u.iconName||f||a.iconName,a.prefix=u.prefix||a.prefix,a.prefix==="far"&&!Eo.far&&Eo.fas&&!F.autoFetchSvg&&(a.prefix="fas")}return a},Cf());return(o.prefix==="fa"||i==="fa")&&(o.prefix=mn()||"fas"),o}var TT=function(){function t(){R6(this,t),this.definitions={}}return j6(t,[{key:"add",value:function(){for(var n=this,r=arguments.length,i=new Array(r),o=0;o<r;o++)i[o]=arguments[o];var a=i.reduce(this._pullDefinitions,{});Object.keys(a).forEach(function(s){n.definitions[s]=I(I({},n.definitions[s]||{}),a[s]),Af(s,a[s]);var c=ay[s];c&&Af(c,a[s]),xy()})}},{key:"reset",value:function(){this.definitions={}}},{key:"_pullDefinitions",value:function(n,r){var i=r.prefix&&r.iconName&&r.icon?{0:r}:r;return Object.keys(i).map(function(o){var a=i[o],s=a.prefix,c=a.iconName,u=a.icon,f=u[2];n[s]||(n[s]={}),f.length>0&&f.forEach(function(l){typeof l=="string"&&(n[s][l]=u)}),n[s][c]=u}),n}}]),t}(),Cy=[],Jr={},$r={},IT=Object.keys($r);function kT(t,e){var n=e.mixoutsTo;return Cy=t,Jr={},Object.keys($r).forEach(function(r){IT.indexOf(r)===-1&&delete $r[r]}),Cy.forEach(function(r){var i=r.mixout?r.mixout():{};if(Object.keys(i).forEach(function(a){typeof i[a]=="function"&&(n[a]=i[a]),Ms(i[a])==="object"&&Object.keys(i[a]).forEach(function(s){n[a]||(n[a]={}),n[a][s]=i[a][s]})}),r.hooks){var o=r.hooks();Object.keys(o).forEach(function(a){Jr[a]||(Jr[a]=[]),Jr[a].push(o[a])})}r.provides&&r.provides($r)}),n}function Sf(t,e){for(var n=arguments.length,r=new Array(n>2?n-2:0),i=2;i<n;i++)r[i-2]=arguments[i];var o=Jr[t]||[];return o.forEach(function(a){e=a.apply(null,[e].concat(r))}),e}function ur(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),r=1;r<e;r++)n[r-1]=arguments[r];var i=Jr[t]||[];i.forEach(function(o){o.apply(null,n)})}function jt(){var t=arguments[0],e=Array.prototype.slice.call(arguments,1);return $r[t]?$r[t].apply(null,e):void 0}function Ef(t){t.prefix==="fa"&&(t.prefix="fas");var e=t.iconName,n=t.prefix||mn();if(e)return e=Kr(n,e)||e,py(Sy.definitions,n,e)||py(ct.styles,n,e)}var Sy=new TT,NT=function(){F.autoReplaceSvg=!1,F.observeMutations=!1,ur("noAuto")},LT={i2svg:function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return Pt?(ur("beforeI2svg",e),jt("pseudoElements2svg",e),jt("i2svg",e)):Promise.reject("Operation requires a DOM of some kind.")},watch:function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=e.autoReplaceSvgRoot;F.autoReplaceSvg===!1&&(F.autoReplaceSvg=!0),F.observeMutations=!0,yT(function(){OT({autoReplaceSvgRoot:n}),ur("watch",e)})}},BT={icon:function(e){if(e===null)return null;if(Ms(e)==="object"&&e.prefix&&e.iconName)return{prefix:e.prefix,iconName:Kr(e.prefix,e.iconName)||e.iconName};if(Array.isArray(e)&&e.length===2){var n=e[1].indexOf("fa-")===0?e[1].slice(3):e[1],r=Os(e[0]);return{prefix:r,iconName:Kr(r,n)||n}}if(typeof e=="string"&&(e.indexOf("".concat(F.familyPrefix,"-"))>-1||e.match(J6))){var i=Fs(e.split(" "),{skipLookups:!0});return{prefix:i.prefix||mn(),iconName:Kr(i.prefix,i.iconName)||i.iconName}}if(typeof e=="string"){var o=mn();return{prefix:o,iconName:Kr(o,e)||e}}}},Ue={noAuto:NT,config:F,dom:LT,parse:BT,library:Sy,findIconDefinition:Ef,toHtml:So},OT=function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=e.autoReplaceSvgRoot,r=n===void 0?te:n;(Object.keys(ct.styles).length>0||F.autoFetchSvg)&&Pt&&F.autoReplaceSvg&&Ue.dom.i2svg({node:r})};function Ps(t,e){return Object.defineProperty(t,"abstract",{get:e}),Object.defineProperty(t,"html",{get:function(){return t.abstract.map(function(r){return So(r)})}}),Object.defineProperty(t,"node",{get:function(){if(Pt){var r=te.createElement("div");return r.innerHTML=t.html,r.children}}}),t}function FT(t){var e=t.children,n=t.main,r=t.mask,i=t.attributes,o=t.styles,a=t.transform;if(gf(a)&&n.found&&!r.found){var s=n.width,c=n.height,u={x:s/c/2,y:.5};i.style=Ls(I(I({},o),{},{"transform-origin":"".concat(u.x+a.x/16,"em ").concat(u.y+a.y/16,"em")}))}return[{tag:"svg",attributes:i,children:e}]}function PT(t){var e=t.prefix,n=t.iconName,r=t.children,i=t.attributes,o=t.symbol,a=o===!0?"".concat(e,"-").concat(F.familyPrefix,"-").concat(n):o;return[{tag:"svg",attributes:{style:"display: none;"},children:[{tag:"symbol",attributes:I(I({},i),{},{id:a}),children:r}]}]}function Df(t){var e=t.icons,n=e.main,r=e.mask,i=t.prefix,o=t.iconName,a=t.transform,s=t.symbol,c=t.title,u=t.maskId,f=t.titleId,l=t.extra,d=t.watchable,p=d===void 0?!1:d,h=r.found?r:n,m=h.width,g=h.height,y=i==="fak",b=[F.replacementClass,o?"".concat(F.familyPrefix,"-").concat(o):""].filter(function(k){return l.classes.indexOf(k)===-1}).filter(function(k){return k!==""||!!k}).concat(l.classes).join(" "),w={children:[],attributes:I(I({},l.attributes),{},{"data-prefix":i,"data-icon":o,class:b,role:l.attributes.role||"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 ".concat(m," ").concat(g)})},C=y&&!~l.classes.indexOf("fa-fw")?{width:"".concat(m/g*16*.0625,"em")}:{};p&&(w.attributes[sr]=""),c&&(w.children.push({tag:"title",attributes:{id:w.attributes["aria-labelledby"]||"title-".concat(f||Co())},children:[c]}),delete w.attributes.title);var x=I(I({},w),{},{prefix:i,iconName:o,main:n,mask:r,maskId:u,transform:a,symbol:s,styles:I(I({},C),l.styles)}),v=r.found&&n.found?jt("generateAbstractMask",x)||{children:[],attributes:{}}:jt("generateAbstractIcon",x)||{children:[],attributes:{}},A=v.children,D=v.attributes;return x.children=A,x.attributes=D,s?PT(x):FT(x)}function Ey(t){var e=t.content,n=t.width,r=t.height,i=t.transform,o=t.title,a=t.extra,s=t.watchable,c=s===void 0?!1:s,u=I(I(I({},a.attributes),o?{title:o}:{}),{},{class:a.classes.join(" ")});c&&(u[sr]="");var f=I({},a.styles);gf(i)&&(f.transform=hT({transform:i,startCentered:!0,width:n,height:r}),f["-webkit-transform"]=f.transform);var l=Ls(f);l.length>0&&(u.style=l);var d=[];return d.push({tag:"span",attributes:u,children:[e]}),o&&d.push({tag:"span",attributes:{class:"sr-only"},children:[o]}),d}function zT(t){var e=t.content,n=t.title,r=t.extra,i=I(I(I({},r.attributes),n?{title:n}:{}),{},{class:r.classes.join(" ")}),o=Ls(r.styles);o.length>0&&(i.style=o);var a=[];return a.push({tag:"span",attributes:i,children:[e]}),n&&a.push({tag:"span",attributes:{class:"sr-only"},children:[n]}),a}var Mf=ct.styles;function Tf(t){var e=t[0],n=t[1],r=t.slice(4),i=sf(r,1),o=i[0],a=null;return Array.isArray(o)?a={tag:"g",attributes:{class:"".concat(F.familyPrefix,"-").concat(cr.GROUP)},children:[{tag:"path",attributes:{class:"".concat(F.familyPrefix,"-").concat(cr.SECONDARY),fill:"currentColor",d:o[0]}},{tag:"path",attributes:{class:"".concat(F.familyPrefix,"-").concat(cr.PRIMARY),fill:"currentColor",d:o[1]}}]}:a={tag:"path",attributes:{fill:"currentColor",d:o}},{found:!0,width:e,height:n,icon:a}}var RT={found:!1,width:512,height:512};function jT(t,e){!oy&&!F.showMissingIcons&&t&&console.error('Icon with name "'.concat(t,'" and prefix "').concat(e,'" is missing.'))}function If(t,e){var n=e;return e==="fa"&&F.styleDefault!==null&&(e=mn()),new Promise(function(r,i){if(jt("missingIconAbstract"),n==="fa"){var o=wy(t)||{};t=o.iconName||t,e=o.prefix||e}if(t&&e&&Mf[e]&&Mf[e][t]){var a=Mf[e][t];return r(Tf(a))}jT(t,e),r(I(I({},RT),{},{icon:F.showMissingIcons&&t?jt("missingIconAbstract")||{}:{}}))})}var Dy=function(){},kf=F.measurePerformance&&Is&&Is.mark&&Is.measure?Is:{mark:Dy,measure:Dy},Do='FA "6.1.1"',UT=function(e){return kf.mark("".concat(Do," ").concat(e," begins")),function(){return My(e)}},My=function(e){kf.mark("".concat(Do," ").concat(e," ends")),kf.measure("".concat(Do," ").concat(e),"".concat(Do," ").concat(e," begins"),"".concat(Do," ").concat(e," ends"))},Nf={begin:UT,end:My},zs=function(){};function Ty(t){var e=t.getAttribute?t.getAttribute(sr):null;return typeof e=="string"}function HT(t){var e=t.getAttribute?t.getAttribute(df):null,n=t.getAttribute?t.getAttribute(hf):null;return e&&n}function GT(t){return t&&t.classList&&t.classList.contains&&t.classList.contains(F.replacementClass)}function QT(){if(F.autoReplaceSvg===!0)return Rs.replace;var t=Rs[F.autoReplaceSvg];return t||Rs.replace}function VT(t){return te.createElementNS("http://www.w3.org/2000/svg",t)}function YT(t){return te.createElement(t)}function Iy(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=e.ceFn,r=n===void 0?t.tag==="svg"?VT:YT:n;if(typeof t=="string")return te.createTextNode(t);var i=r(t.tag);Object.keys(t.attributes||[]).forEach(function(a){i.setAttribute(a,t.attributes[a])});var o=t.children||[];return o.forEach(function(a){i.appendChild(Iy(a,{ceFn:r}))}),i}function _T(t){var e=" ".concat(t.outerHTML," ");return e="".concat(e,"Font Awesome fontawesome.com "),e}var Rs={replace:function(e){var n=e[0];if(n.parentNode)if(e[1].forEach(function(i){n.parentNode.insertBefore(Iy(i),n)}),n.getAttribute(sr)===null&&F.keepOriginalSource){var r=te.createComment(_T(n));n.parentNode.replaceChild(r,n)}else n.remove()},nest:function(e){var n=e[0],r=e[1];if(~mf(n).indexOf(F.replacementClass))return Rs.replace(e);var i=new RegExp("".concat(F.familyPrefix,"-.*"));if(delete r[0].attributes.id,r[0].attributes.class){var o=r[0].attributes.class.split(" ").reduce(function(s,c){return c===F.replacementClass||c.match(i)?s.toSvg.push(c):s.toNode.push(c),s},{toNode:[],toSvg:[]});r[0].attributes.class=o.toSvg.join(" "),o.toNode.length===0?n.removeAttribute("class"):n.setAttribute("class",o.toNode.join(" "))}var a=r.map(function(s){return So(s)}).join(`
2145
- `);n.setAttribute(sr,""),n.innerHTML=a}};function ky(t){t()}function Ny(t,e){var n=typeof e=="function"?e:zs;if(t.length===0)n();else{var r=ky;F.mutateApproach===Z6&&(r=hn.requestAnimationFrame||ky),r(function(){var i=QT(),o=Nf.begin("mutate");t.map(i),o(),n()})}}var Lf=!1;function Ly(){Lf=!0}function Bf(){Lf=!1}var js=null;function By(t){if(ey&&F.observeMutations){var e=t.treeCallback,n=e===void 0?zs:e,r=t.nodeCallback,i=r===void 0?zs:r,o=t.pseudoElementsCallback,a=o===void 0?zs:o,s=t.observeMutationsRoot,c=s===void 0?te:s;js=new ey(function(u){if(!Lf){var f=mn();qr(u).forEach(function(l){if(l.type==="childList"&&l.addedNodes.length>0&&!Ty(l.addedNodes[0])&&(F.searchPseudoElements&&a(l.target),n(l.target)),l.type==="attributes"&&l.target.parentNode&&F.searchPseudoElements&&a(l.target.parentNode),l.type==="attributes"&&Ty(l.target)&&~nT.indexOf(l.attributeName))if(l.attributeName==="class"&&HT(l.target)){var d=Fs(mf(l.target)),p=d.prefix,h=d.iconName;l.target.setAttribute(df,p||f),h&&l.target.setAttribute(hf,h)}else GT(l.target)&&i(l.target)})}}),Pt&&js.observe(c,{childList:!0,attributes:!0,characterData:!0,subtree:!0})}}function WT(){js&&js.disconnect()}function XT(t){var e=t.getAttribute("style"),n=[];return e&&(n=e.split(";").reduce(function(r,i){var o=i.split(":"),a=o[0],s=o.slice(1);return a&&s.length>0&&(r[a]=s.join(":").trim()),r},{})),n}function ZT(t){var e=t.getAttribute("data-prefix"),n=t.getAttribute("data-icon"),r=t.innerText!==void 0?t.innerText.trim():"",i=Fs(mf(t));return i.prefix||(i.prefix=mn()),e&&n&&(i.prefix=e,i.iconName=n),i.iconName&&i.prefix||i.prefix&&r.length>0&&(i.iconName=DT(i.prefix,t.innerText)||wf(i.prefix,bf(t.innerText))),i}function qT(t){var e=qr(t.attributes).reduce(function(i,o){return i.name!=="class"&&i.name!=="style"&&(i[o.name]=o.value),i},{}),n=t.getAttribute("title"),r=t.getAttribute("data-fa-title-id");return F.autoA11y&&(n?e["aria-labelledby"]="".concat(F.replacementClass,"-title-").concat(r||Co()):(e["aria-hidden"]="true",e.focusable="false")),e}function KT(){return{iconName:null,title:null,titleId:null,prefix:null,transform:bt,symbol:!1,mask:{iconName:null,prefix:null,rest:[]},maskId:null,extra:{classes:[],styles:{},attributes:{}}}}function Oy(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{styleParser:!0},n=ZT(t),r=n.iconName,i=n.prefix,o=n.rest,a=qT(t),s=Sf("parseNodeAttributes",{},t),c=e.styleParser?XT(t):[];return I({iconName:r,title:t.getAttribute("title"),titleId:t.getAttribute("data-fa-title-id"),prefix:i,transform:bt,mask:{iconName:null,prefix:null,rest:[]},maskId:null,symbol:!1,extra:{classes:o,styles:c,attributes:a}},s)}var JT=ct.styles;function Fy(t){var e=F.autoReplaceSvg==="nest"?Oy(t,{styleParser:!1}):Oy(t);return~e.extra.classes.indexOf(sy)?jt("generateLayersText",t,e):jt("generateSvgReplacementMutation",t,e)}function Py(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;if(!Pt)return Promise.resolve();var n=te.documentElement.classList,r=function(l){return n.add("".concat(iy,"-").concat(l))},i=function(l){return n.remove("".concat(iy,"-").concat(l))},o=F.autoFetchSvg?Object.keys(pf):Object.keys(JT),a=[".".concat(sy,":not([").concat(sr,"])")].concat(o.map(function(f){return".".concat(f,":not([").concat(sr,"])")})).join(", ");if(a.length===0)return Promise.resolve();var s=[];try{s=qr(t.querySelectorAll(a))}catch{}if(s.length>0)r("pending"),i("complete");else return Promise.resolve();var c=Nf.begin("onTree"),u=s.reduce(function(f,l){try{var d=Fy(l);d&&f.push(d)}catch(p){oy||p.name==="MissingIcon"&&console.error(p)}return f},[]);return new Promise(function(f,l){Promise.all(u).then(function(d){Ny(d,function(){r("active"),r("complete"),i("pending"),typeof e=="function"&&e(),c(),f()})}).catch(function(d){c(),l(d)})})}function $T(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;Fy(t).then(function(n){n&&Ny([n],e)})}function eI(t){return function(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=(e||{}).icon?e:Ef(e||{}),i=n.mask;return i&&(i=(i||{}).icon?i:Ef(i||{})),t(r,I(I({},n),{},{mask:i}))}}var tI=function(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=n.transform,i=r===void 0?bt:r,o=n.symbol,a=o===void 0?!1:o,s=n.mask,c=s===void 0?null:s,u=n.maskId,f=u===void 0?null:u,l=n.title,d=l===void 0?null:l,p=n.titleId,h=p===void 0?null:p,m=n.classes,g=m===void 0?[]:m,y=n.attributes,b=y===void 0?{}:y,w=n.styles,C=w===void 0?{}:w;if(e){var x=e.prefix,v=e.iconName,A=e.icon;return Ps(I({type:"icon"},e),function(){return ur("beforeDOMElementCreation",{iconDefinition:e,params:n}),F.autoA11y&&(d?b["aria-labelledby"]="".concat(F.replacementClass,"-title-").concat(h||Co()):(b["aria-hidden"]="true",b.focusable="false")),Df({icons:{main:Tf(A),mask:c?Tf(c.icon):{found:!1,width:null,height:null,icon:{}}},prefix:x,iconName:v,transform:I(I({},bt),i),symbol:a,title:d,maskId:f,titleId:h,extra:{attributes:b,styles:C,classes:g}})})}},nI={mixout:function(){return{icon:eI(tI)}},hooks:function(){return{mutationObserverCallbacks:function(n){return n.treeCallback=Py,n.nodeCallback=$T,n}}},provides:function(e){e.i2svg=function(n){var r=n.node,i=r===void 0?te:r,o=n.callback,a=o===void 0?function(){}:o;return Py(i,a)},e.generateSvgReplacementMutation=function(n,r){var i=r.iconName,o=r.title,a=r.titleId,s=r.prefix,c=r.transform,u=r.symbol,f=r.mask,l=r.maskId,d=r.extra;return new Promise(function(p,h){Promise.all([If(i,s),f.iconName?If(f.iconName,f.prefix):Promise.resolve({found:!1,width:512,height:512,icon:{}})]).then(function(m){var g=sf(m,2),y=g[0],b=g[1];p([n,Df({icons:{main:y,mask:b},prefix:s,iconName:i,transform:c,symbol:u,maskId:l,title:o,titleId:a,extra:d,watchable:!0})])}).catch(h)})},e.generateAbstractIcon=function(n){var r=n.children,i=n.attributes,o=n.main,a=n.transform,s=n.styles,c=Ls(s);c.length>0&&(i.style=c);var u;return gf(a)&&(u=jt("generateAbstractTransformGrouping",{main:o,transform:a,containerWidth:o.width,iconWidth:o.width})),r.push(u||o.icon),{children:r,attributes:i}}}},rI={mixout:function(){return{layer:function(n){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=r.classes,o=i===void 0?[]:i;return Ps({type:"layer"},function(){ur("beforeDOMElementCreation",{assembler:n,params:r});var a=[];return n(function(s){Array.isArray(s)?s.map(function(c){a=a.concat(c.abstract)}):a=a.concat(s.abstract)}),[{tag:"span",attributes:{class:["".concat(F.familyPrefix,"-layers")].concat(Ts(o)).join(" ")},children:a}]})}}}},iI={mixout:function(){return{counter:function(n){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=r.title,o=i===void 0?null:i,a=r.classes,s=a===void 0?[]:a,c=r.attributes,u=c===void 0?{}:c,f=r.styles,l=f===void 0?{}:f;return Ps({type:"counter",content:n},function(){return ur("beforeDOMElementCreation",{content:n,params:r}),zT({content:n.toString(),title:o,extra:{attributes:u,styles:l,classes:["".concat(F.familyPrefix,"-layers-counter")].concat(Ts(s))}})})}}}},oI={mixout:function(){return{text:function(n){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=r.transform,o=i===void 0?bt:i,a=r.title,s=a===void 0?null:a,c=r.classes,u=c===void 0?[]:c,f=r.attributes,l=f===void 0?{}:f,d=r.styles,p=d===void 0?{}:d;return Ps({type:"text",content:n},function(){return ur("beforeDOMElementCreation",{content:n,params:r}),Ey({content:n,transform:I(I({},bt),o),title:s,extra:{attributes:l,styles:p,classes:["".concat(F.familyPrefix,"-layers-text")].concat(Ts(u))}})})}}},provides:function(e){e.generateLayersText=function(n,r){var i=r.title,o=r.transform,a=r.extra,s=null,c=null;if(ty){var u=parseInt(getComputedStyle(n).fontSize,10),f=n.getBoundingClientRect();s=f.width/u,c=f.height/u}return F.autoA11y&&!i&&(a.attributes["aria-hidden"]="true"),Promise.resolve([n,Ey({content:n.innerHTML,width:s,height:c,transform:o,title:i,extra:a,watchable:!0})])}}},aI=new RegExp('"',"ug"),zy=[1105920,1112319];function sI(t){var e=t.replace(aI,""),n=AT(e,0),r=n>=zy[0]&&n<=zy[1],i=e.length===2?e[0]===e[1]:!1;return{value:bf(i?e[0]:e),isSecondary:r||i}}function Ry(t,e){var n="".concat(X6).concat(e.replace(":","-"));return new Promise(function(r,i){if(t.getAttribute(n)!==null)return r();var o=qr(t.children),a=o.filter(function(v){return v.getAttribute(ff)===e})[0],s=hn.getComputedStyle(t,e),c=s.getPropertyValue("font-family").match($6),u=s.getPropertyValue("font-weight"),f=s.getPropertyValue("content");if(a&&!c)return t.removeChild(a),r();if(c&&f!=="none"&&f!==""){var l=s.getPropertyValue("content"),d=~["Solid","Regular","Light","Thin","Duotone","Brands","Kit"].indexOf(c[2])?ks[c[2].toLowerCase()]:eT[u],p=sI(l),h=p.value,m=p.isSecondary,g=c[0].startsWith("FontAwesome"),y=wf(d,h),b=y;if(g){var w=MT(h);w.iconName&&w.prefix&&(y=w.iconName,d=w.prefix)}if(y&&!m&&(!a||a.getAttribute(df)!==d||a.getAttribute(hf)!==b)){t.setAttribute(n,b),a&&t.removeChild(a);var C=KT(),x=C.extra;x.attributes[ff]=e,If(y,d).then(function(v){var A=Df(I(I({},C),{},{icons:{main:v,mask:Cf()},prefix:d,iconName:b,extra:x,watchable:!0})),D=te.createElement("svg");e==="::before"?t.insertBefore(D,t.firstChild):t.appendChild(D),D.outerHTML=A.map(function(k){return So(k)}).join(`
2146
- `),t.removeAttribute(n),r()}).catch(i)}else r()}else r()})}function cI(t){return Promise.all([Ry(t,"::before"),Ry(t,"::after")])}function uI(t){return t.parentNode!==document.head&&!~q6.indexOf(t.tagName.toUpperCase())&&!t.getAttribute(ff)&&(!t.parentNode||t.parentNode.tagName!=="svg")}function jy(t){if(Pt)return new Promise(function(e,n){var r=qr(t.querySelectorAll("*")).filter(uI).map(cI),i=Nf.begin("searchPseudoElements");Ly(),Promise.all(r).then(function(){i(),Bf(),e()}).catch(function(){i(),Bf(),n()})})}var lI={hooks:function(){return{mutationObserverCallbacks:function(n){return n.pseudoElementsCallback=jy,n}}},provides:function(e){e.pseudoElements2svg=function(n){var r=n.node,i=r===void 0?te:r;F.searchPseudoElements&&jy(i)}}},Uy=!1,fI={mixout:function(){return{dom:{unwatch:function(){Ly(),Uy=!0}}}},hooks:function(){return{bootstrap:function(){By(Sf("mutationObserverCallbacks",{}))},noAuto:function(){WT()},watch:function(n){var r=n.observeMutationsRoot;Uy?Bf():By(Sf("mutationObserverCallbacks",{observeMutationsRoot:r}))}}}},Hy=function(e){var n={size:16,x:0,y:0,flipX:!1,flipY:!1,rotate:0};return e.toLowerCase().split(" ").reduce(function(r,i){var o=i.toLowerCase().split("-"),a=o[0],s=o.slice(1).join("-");if(a&&s==="h")return r.flipX=!0,r;if(a&&s==="v")return r.flipY=!0,r;if(s=parseFloat(s),isNaN(s))return r;switch(a){case"grow":r.size=r.size+s;break;case"shrink":r.size=r.size-s;break;case"left":r.x=r.x-s;break;case"right":r.x=r.x+s;break;case"up":r.y=r.y-s;break;case"down":r.y=r.y+s;break;case"rotate":r.rotate=r.rotate+s;break}return r},n)},dI={mixout:function(){return{parse:{transform:function(n){return Hy(n)}}}},hooks:function(){return{parseNodeAttributes:function(n,r){var i=r.getAttribute("data-fa-transform");return i&&(n.transform=Hy(i)),n}}},provides:function(e){e.generateAbstractTransformGrouping=function(n){var r=n.main,i=n.transform,o=n.containerWidth,a=n.iconWidth,s={transform:"translate(".concat(o/2," 256)")},c="translate(".concat(i.x*32,", ").concat(i.y*32,") "),u="scale(".concat(i.size/16*(i.flipX?-1:1),", ").concat(i.size/16*(i.flipY?-1:1),") "),f="rotate(".concat(i.rotate," 0 0)"),l={transform:"".concat(c," ").concat(u," ").concat(f)},d={transform:"translate(".concat(a/2*-1," -256)")},p={outer:s,inner:l,path:d};return{tag:"g",attributes:I({},p.outer),children:[{tag:"g",attributes:I({},p.inner),children:[{tag:r.icon.tag,children:r.icon.children,attributes:I(I({},r.icon.attributes),p.path)}]}]}}}},Of={x:0,y:0,width:"100%",height:"100%"};function Gy(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return t.attributes&&(t.attributes.fill||e)&&(t.attributes.fill="black"),t}function hI(t){return t.tag==="g"?t.children:[t]}var pI={hooks:function(){return{parseNodeAttributes:function(n,r){var i=r.getAttribute("data-fa-mask"),o=i?Fs(i.split(" ").map(function(a){return a.trim()})):Cf();return o.prefix||(o.prefix=mn()),n.mask=o,n.maskId=r.getAttribute("data-fa-mask-id"),n}}},provides:function(e){e.generateAbstractMask=function(n){var r=n.children,i=n.attributes,o=n.main,a=n.mask,s=n.maskId,c=n.transform,u=o.width,f=o.icon,l=a.width,d=a.icon,p=dT({transform:c,containerWidth:l,iconWidth:u}),h={tag:"rect",attributes:I(I({},Of),{},{fill:"white"})},m=f.children?{children:f.children.map(Gy)}:{},g={tag:"g",attributes:I({},p.inner),children:[Gy(I({tag:f.tag,attributes:I(I({},f.attributes),p.path)},m))]},y={tag:"g",attributes:I({},p.outer),children:[g]},b="mask-".concat(s||Co()),w="clip-".concat(s||Co()),C={tag:"mask",attributes:I(I({},Of),{},{id:b,maskUnits:"userSpaceOnUse",maskContentUnits:"userSpaceOnUse"}),children:[h,y]},x={tag:"defs",children:[{tag:"clipPath",attributes:{id:w},children:hI(d)},C]};return r.push(x,{tag:"rect",attributes:I({fill:"currentColor","clip-path":"url(#".concat(w,")"),mask:"url(#".concat(b,")")},Of)}),{children:r,attributes:i}}}},mI={provides:function(e){var n=!1;hn.matchMedia&&(n=hn.matchMedia("(prefers-reduced-motion: reduce)").matches),e.missingIconAbstract=function(){var r=[],i={fill:"currentColor"},o={attributeType:"XML",repeatCount:"indefinite",dur:"2s"};r.push({tag:"path",attributes:I(I({},i),{},{d:"M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z"})});var a=I(I({},o),{},{attributeName:"opacity"}),s={tag:"circle",attributes:I(I({},i),{},{cx:"256",cy:"364",r:"28"}),children:[]};return n||s.children.push({tag:"animate",attributes:I(I({},o),{},{attributeName:"r",values:"28;14;28;28;14;28;"})},{tag:"animate",attributes:I(I({},a),{},{values:"1;0;1;1;0;1;"})}),r.push(s),r.push({tag:"path",attributes:I(I({},i),{},{opacity:"1",d:"M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z"}),children:n?[]:[{tag:"animate",attributes:I(I({},a),{},{values:"1;0;0;0;0;1;"})}]}),n||r.push({tag:"path",attributes:I(I({},i),{},{opacity:"0",d:"M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z"}),children:[{tag:"animate",attributes:I(I({},a),{},{values:"0;0;1;1;0;0;"})}]}),{tag:"g",attributes:{class:"missing"},children:r}}}},gI={hooks:function(){return{parseNodeAttributes:function(n,r){var i=r.getAttribute("data-fa-symbol"),o=i===null?!1:i===""?!0:i;return n.symbol=o,n}}}},yI=[mT,nI,rI,iI,oI,lI,fI,dI,pI,mI,gI];kT(yI,{mixoutsTo:Ue}),Ue.noAuto,Ue.config,Ue.library,Ue.dom,Ue.parse,Ue.findIconDefinition,Ue.toHtml;var K=Ue.icon;Ue.layer,Ue.text,Ue.counter;/**
2331
+ }`;function gC(){var e=oC,t=sC,n=X.familyPrefix,r=X.replacementClass,i=g$;if(n!==e||r!==t){var a=new RegExp("\\.".concat(e,"\\-"),"g"),o=new RegExp("\\--".concat(e,"\\-"),"g"),s=new RegExp("\\.".concat(t),"g");i=i.replace(a,".".concat(n,"-")).replace(o,"--".concat(n,"-")).replace(s,".".concat(r))}return i}var mC=!1;function o1(){X.autoAddCss&&!mC&&(u$(gC()),mC=!0)}var m$={mixout:function(){return{dom:{css:gC,insertCss:o1}}},hooks:function(){return{beforeDOMElementCreation:function(){o1()},beforeI2svg:function(){o1()}}}},Rr=Mi||{};Rr[Or]||(Rr[Or]={}),Rr[Or].styles||(Rr[Or].styles={}),Rr[Or].hooks||(Rr[Or].hooks={}),Rr[Or].shims||(Rr[Or].shims=[]);var Pn=Rr[Or],bC=[],b$=function e(){Oe.removeEventListener("DOMContentLoaded",e),Bh=1,bC.map(function(t){return t()})},Bh=!1;Lr&&(Bh=(Oe.documentElement.doScroll?/^loaded|^c/:/^loaded|^i|^c/).test(Oe.readyState),Bh||Oe.addEventListener("DOMContentLoaded",b$));function y$(e){Lr&&(Bh?setTimeout(e,0):bC.push(e))}function Ll(e){var t=e.tag,n=e.attributes,r=n===void 0?{}:n,i=e.children,a=i===void 0?[]:i;return typeof e=="string"?pC(e):"<".concat(t," ").concat(h$(r),">").concat(a.map(Ll).join(""),"</").concat(t,">")}function yC(e,t,n){if(e&&e[t]&&e[t][n])return{prefix:t,iconName:n,icon:e[t][n]}}var v$=function(t,n){return function(r,i,a,o){return t.call(n,r,i,a,o)}},s1=function(t,n,r,i){var a=Object.keys(t),o=a.length,s=i!==void 0?v$(n,i):n,l,c,u;for(r===void 0?(l=1,u=t[a[0]]):(l=0,u=r);l<o;l++)c=a[l],u=s(u,t[c],c,t);return u};function w$(e){for(var t=[],n=0,r=e.length;n<r;){var i=e.charCodeAt(n++);if(i>=55296&&i<=56319&&n<r){var a=e.charCodeAt(n++);(a&64512)==56320?t.push(((i&1023)<<10)+(a&1023)+65536):(t.push(i),n--)}else t.push(i)}return t}function c1(e){var t=w$(e);return t.length===1?t[0].toString(16):null}function x$(e,t){var n=e.length,r=e.charCodeAt(t),i;return r>=55296&&r<=56319&&n>t+1&&(i=e.charCodeAt(t+1),i>=56320&&i<=57343)?(r-55296)*1024+i-56320+65536:r}function vC(e){return Object.keys(e).reduce(function(t,n){var r=e[n],i=!!r.icon;return i?t[r.iconName]=r.icon:t[n]=r,t},{})}function l1(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},r=n.skipHooks,i=r===void 0?!1:r,a=vC(t);typeof Pn.hooks.addPack=="function"&&!i?Pn.hooks.addPack(e,vC(t)):Pn.styles[e]=Z(Z({},Pn.styles[e]||{}),a),e==="fas"&&l1("fa",t)}var Ol=Pn.styles,A$=Pn.shims,E$=Object.values(uC),u1=null,wC={},xC={},AC={},EC={},SC={},S$=Object.keys(r1);function C$(e){return~i$.indexOf(e)}function _$(e,t){var n=t.split("-"),r=n[0],i=n.slice(1).join("-");return r===e&&i!==""&&!C$(i)?i:null}var CC=function(){var t=function(a){return s1(Ol,function(o,s,l){return o[l]=s1(s,a,{}),o},{})};wC=t(function(i,a,o){if(a[3]&&(i[a[3]]=o),a[2]){var s=a[2].filter(function(l){return typeof l=="number"});s.forEach(function(l){i[l.toString(16)]=o})}return i}),xC=t(function(i,a,o){if(i[o]=o,a[2]){var s=a[2].filter(function(l){return typeof l=="string"});s.forEach(function(l){i[l]=o})}return i}),SC=t(function(i,a,o){var s=a[2];return i[o]=o,s.forEach(function(l){i[l]=o}),i});var n="far"in Ol||X.autoFetchSvg,r=s1(A$,function(i,a){var o=a[0],s=a[1],l=a[2];return s==="far"&&!n&&(s="fas"),typeof o=="string"&&(i.names[o]={prefix:s,iconName:l}),typeof o=="number"&&(i.unicodes[o.toString(16)]={prefix:s,iconName:l}),i},{names:{},unicodes:{}});AC=r.names,EC=r.unicodes,u1=Lh(X.styleDefault)};l$(function(e){u1=Lh(e.styleDefault)}),CC();function f1(e,t){return(wC[e]||{})[t]}function k$(e,t){return(xC[e]||{})[t]}function ws(e,t){return(SC[e]||{})[t]}function _C(e){return AC[e]||{prefix:null,iconName:null}}function D$(e){var t=EC[e],n=f1("fas",e);return t||(n?{prefix:"fas",iconName:n}:null)||{prefix:null,iconName:null}}function Fi(){return u1}var h1=function(){return{prefix:null,iconName:null,rest:[]}};function Lh(e){var t=r1[e],n=Mh[e]||Mh[t],r=e in Pn.styles?e:null;return n||r||null}function Oh(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=t.skipLookups,r=n===void 0?!1:n,i=null,a=e.reduce(function(o,s){var l=_$(X.familyPrefix,s);if(Ol[s]?(s=E$.includes(s)?KG[s]:s,i=s,o.prefix=s):S$.indexOf(s)>-1?(i=s,o.prefix=Lh(s)):l?o.iconName=l:s!==X.replacementClass&&o.rest.push(s),!r&&o.prefix&&o.iconName){var c=i==="fa"?_C(o.iconName):{},u=ws(o.prefix,o.iconName);c.prefix&&(i=null),o.iconName=c.iconName||u||o.iconName,o.prefix=c.prefix||o.prefix,o.prefix==="far"&&!Ol.far&&Ol.fas&&!X.autoFetchSvg&&(o.prefix="fas")}return o},h1());return(a.prefix==="fa"||i==="fa")&&(a.prefix=Fi()||"fas"),a}var I$=function(){function e(){PG(this,e),this.definitions={}}return UG(e,[{key:"add",value:function(){for(var n=this,r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];var o=i.reduce(this._pullDefinitions,{});Object.keys(o).forEach(function(s){n.definitions[s]=Z(Z({},n.definitions[s]||{}),o[s]),l1(s,o[s]);var l=uC[s];l&&l1(l,o[s]),CC()})}},{key:"reset",value:function(){this.definitions={}}},{key:"_pullDefinitions",value:function(n,r){var i=r.prefix&&r.iconName&&r.icon?{0:r}:r;return Object.keys(i).map(function(a){var o=i[a],s=o.prefix,l=o.iconName,c=o.icon,u=c[2];n[s]||(n[s]={}),u.length>0&&u.forEach(function(f){typeof f=="string"&&(n[s][f]=c)}),n[s][l]=c}),n}}]),e}(),kC=[],xs={},As={},T$=Object.keys(As);function M$(e,t){var n=t.mixoutsTo;return kC=e,xs={},Object.keys(As).forEach(function(r){T$.indexOf(r)===-1&&delete As[r]}),kC.forEach(function(r){var i=r.mixout?r.mixout():{};if(Object.keys(i).forEach(function(o){typeof i[o]=="function"&&(n[o]=i[o]),Dh(i[o])==="object"&&Object.keys(i[o]).forEach(function(s){n[o]||(n[o]={}),n[o][s]=i[o][s]})}),r.hooks){var a=r.hooks();Object.keys(a).forEach(function(o){xs[o]||(xs[o]=[]),xs[o].push(a[o])})}r.provides&&r.provides(As)}),n}function d1(e,t){for(var n=arguments.length,r=new Array(n>2?n-2:0),i=2;i<n;i++)r[i-2]=arguments[i];var a=xs[e]||[];return a.forEach(function(o){t=o.apply(null,[t].concat(r))}),t}function Wa(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];var i=xs[e]||[];i.forEach(function(a){a.apply(null,n)})}function zr(){var e=arguments[0],t=Array.prototype.slice.call(arguments,1);return As[e]?As[e].apply(null,t):void 0}function p1(e){e.prefix==="fa"&&(e.prefix="fas");var t=e.iconName,n=e.prefix||Fi();if(t)return t=ws(n,t)||t,yC(DC.definitions,n,t)||yC(Pn.styles,n,t)}var DC=new I$,N$=function(){X.autoReplaceSvg=!1,X.observeMutations=!1,Wa("noAuto")},F$={i2svg:function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return Lr?(Wa("beforeI2svg",t),zr("pseudoElements2svg",t),zr("i2svg",t)):Promise.reject("Operation requires a DOM of some kind.")},watch:function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=t.autoReplaceSvgRoot;X.autoReplaceSvg===!1&&(X.autoReplaceSvg=!0),X.observeMutations=!0,y$(function(){L$({autoReplaceSvgRoot:n}),Wa("watch",t)})}},B$={icon:function(t){if(t===null)return null;if(Dh(t)==="object"&&t.prefix&&t.iconName)return{prefix:t.prefix,iconName:ws(t.prefix,t.iconName)||t.iconName};if(Array.isArray(t)&&t.length===2){var n=t[1].indexOf("fa-")===0?t[1].slice(3):t[1],r=Lh(t[0]);return{prefix:r,iconName:ws(r,n)||n}}if(typeof t=="string"&&(t.indexOf("".concat(X.familyPrefix,"-"))>-1||t.match(JG))){var i=Oh(t.split(" "),{skipLookups:!0});return{prefix:i.prefix||Fi(),iconName:ws(i.prefix,i.iconName)||i.iconName}}if(typeof t=="string"){var a=Fi();return{prefix:a,iconName:ws(a,t)||t}}}},qt={noAuto:N$,config:X,dom:F$,parse:B$,library:DC,findIconDefinition:p1,toHtml:Ll},L$=function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=t.autoReplaceSvgRoot,r=n===void 0?Oe:n;(Object.keys(Pn.styles).length>0||X.autoFetchSvg)&&Lr&&X.autoReplaceSvg&&qt.dom.i2svg({node:r})};function Rh(e,t){return Object.defineProperty(e,"abstract",{get:t}),Object.defineProperty(e,"html",{get:function(){return e.abstract.map(function(r){return Ll(r)})}}),Object.defineProperty(e,"node",{get:function(){if(Lr){var r=Oe.createElement("div");return r.innerHTML=e.html,r.children}}}),e}function O$(e){var t=e.children,n=e.main,r=e.mask,i=e.attributes,a=e.styles,o=e.transform;if(a1(o)&&n.found&&!r.found){var s=n.width,l=n.height,c={x:s/l/2,y:.5};i.style=Fh(Z(Z({},a),{},{"transform-origin":"".concat(c.x+o.x/16,"em ").concat(c.y+o.y/16,"em")}))}return[{tag:"svg",attributes:i,children:t}]}function R$(e){var t=e.prefix,n=e.iconName,r=e.children,i=e.attributes,a=e.symbol,o=a===!0?"".concat(t,"-").concat(X.familyPrefix,"-").concat(n):a;return[{tag:"svg",attributes:{style:"display: none;"},children:[{tag:"symbol",attributes:Z(Z({},i),{},{id:o}),children:r}]}]}function g1(e){var t=e.icons,n=t.main,r=t.mask,i=e.prefix,a=e.iconName,o=e.transform,s=e.symbol,l=e.title,c=e.maskId,u=e.titleId,f=e.extra,h=e.watchable,d=h===void 0?!1:h,p=r.found?r:n,g=p.width,y=p.height,v=i==="fak",S=[X.replacementClass,a?"".concat(X.familyPrefix,"-").concat(a):""].filter(function(D){return f.classes.indexOf(D)===-1}).filter(function(D){return D!==""||!!D}).concat(f.classes).join(" "),k={children:[],attributes:Z(Z({},f.attributes),{},{"data-prefix":i,"data-icon":a,class:S,role:f.attributes.role||"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 ".concat(g," ").concat(y)})},C=v&&!~f.classes.indexOf("fa-fw")?{width:"".concat(g/y*16*.0625,"em")}:{};d&&(k.attributes[Za]=""),l&&(k.children.push({tag:"title",attributes:{id:k.attributes["aria-labelledby"]||"title-".concat(u||Bl())},children:[l]}),delete k.attributes.title);var E=Z(Z({},k),{},{prefix:i,iconName:a,main:n,mask:r,maskId:c,transform:o,symbol:s,styles:Z(Z({},C),f.styles)}),w=r.found&&n.found?zr("generateAbstractMask",E)||{children:[],attributes:{}}:zr("generateAbstractIcon",E)||{children:[],attributes:{}},A=w.children,T=w.attributes;return E.children=A,E.attributes=T,s?R$(E):O$(E)}function IC(e){var t=e.content,n=e.width,r=e.height,i=e.transform,a=e.title,o=e.extra,s=e.watchable,l=s===void 0?!1:s,c=Z(Z(Z({},o.attributes),a?{title:a}:{}),{},{class:o.classes.join(" ")});l&&(c[Za]="");var u=Z({},o.styles);a1(i)&&(u.transform=p$({transform:i,startCentered:!0,width:n,height:r}),u["-webkit-transform"]=u.transform);var f=Fh(u);f.length>0&&(c.style=f);var h=[];return h.push({tag:"span",attributes:c,children:[t]}),a&&h.push({tag:"span",attributes:{class:"sr-only"},children:[a]}),h}function z$(e){var t=e.content,n=e.title,r=e.extra,i=Z(Z(Z({},r.attributes),n?{title:n}:{}),{},{class:r.classes.join(" ")}),a=Fh(r.styles);a.length>0&&(i.style=a);var o=[];return o.push({tag:"span",attributes:i,children:[t]}),n&&o.push({tag:"span",attributes:{class:"sr-only"},children:[n]}),o}var m1=Pn.styles;function b1(e){var t=e[0],n=e[1],r=e.slice(4),i=Wm(r,1),a=i[0],o=null;return Array.isArray(a)?o={tag:"g",attributes:{class:"".concat(X.familyPrefix,"-").concat(qa.GROUP)},children:[{tag:"path",attributes:{class:"".concat(X.familyPrefix,"-").concat(qa.SECONDARY),fill:"currentColor",d:a[0]}},{tag:"path",attributes:{class:"".concat(X.familyPrefix,"-").concat(qa.PRIMARY),fill:"currentColor",d:a[1]}}]}:o={tag:"path",attributes:{fill:"currentColor",d:a}},{found:!0,width:t,height:n,icon:o}}var P$={found:!1,width:512,height:512};function U$(e,t){!lC&&!X.showMissingIcons&&e&&console.error('Icon with name "'.concat(e,'" and prefix "').concat(t,'" is missing.'))}function y1(e,t){var n=t;return t==="fa"&&X.styleDefault!==null&&(t=Fi()),new Promise(function(r,i){if(zr("missingIconAbstract"),n==="fa"){var a=_C(e)||{};e=a.iconName||e,t=a.prefix||t}if(e&&t&&m1[t]&&m1[t][e]){var o=m1[t][e];return r(b1(o))}U$(e,t),r(Z(Z({},P$),{},{icon:X.showMissingIcons&&e?zr("missingIconAbstract")||{}:{}}))})}var TC=function(){},v1=X.measurePerformance&&Th&&Th.mark&&Th.measure?Th:{mark:TC,measure:TC},Rl='FA "6.1.1"',j$=function(t){return v1.mark("".concat(Rl," ").concat(t," begins")),function(){return MC(t)}},MC=function(t){v1.mark("".concat(Rl," ").concat(t," ends")),v1.measure("".concat(Rl," ").concat(t),"".concat(Rl," ").concat(t," begins"),"".concat(Rl," ").concat(t," ends"))},w1={begin:j$,end:MC},zh=function(){};function NC(e){var t=e.getAttribute?e.getAttribute(Za):null;return typeof t=="string"}function H$(e){var t=e.getAttribute?e.getAttribute(t1):null,n=e.getAttribute?e.getAttribute(n1):null;return t&&n}function G$(e){return e&&e.classList&&e.classList.contains&&e.classList.contains(X.replacementClass)}function $$(){if(X.autoReplaceSvg===!0)return Ph.replace;var e=Ph[X.autoReplaceSvg];return e||Ph.replace}function V$(e){return Oe.createElementNS("http://www.w3.org/2000/svg",e)}function Y$(e){return Oe.createElement(e)}function FC(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=t.ceFn,r=n===void 0?e.tag==="svg"?V$:Y$:n;if(typeof e=="string")return Oe.createTextNode(e);var i=r(e.tag);Object.keys(e.attributes||[]).forEach(function(o){i.setAttribute(o,e.attributes[o])});var a=e.children||[];return a.forEach(function(o){i.appendChild(FC(o,{ceFn:r}))}),i}function Q$(e){var t=" ".concat(e.outerHTML," ");return t="".concat(t,"Font Awesome fontawesome.com "),t}var Ph={replace:function(t){var n=t[0];if(n.parentNode)if(t[1].forEach(function(i){n.parentNode.insertBefore(FC(i),n)}),n.getAttribute(Za)===null&&X.keepOriginalSource){var r=Oe.createComment(Q$(n));n.parentNode.replaceChild(r,n)}else n.remove()},nest:function(t){var n=t[0],r=t[1];if(~i1(n).indexOf(X.replacementClass))return Ph.replace(t);var i=new RegExp("".concat(X.familyPrefix,"-.*"));if(delete r[0].attributes.id,r[0].attributes.class){var a=r[0].attributes.class.split(" ").reduce(function(s,l){return l===X.replacementClass||l.match(i)?s.toSvg.push(l):s.toNode.push(l),s},{toNode:[],toSvg:[]});r[0].attributes.class=a.toSvg.join(" "),a.toNode.length===0?n.removeAttribute("class"):n.setAttribute("class",a.toNode.join(" "))}var o=r.map(function(s){return Ll(s)}).join(`
2332
+ `);n.setAttribute(Za,""),n.innerHTML=o}};function BC(e){e()}function LC(e,t){var n=typeof t=="function"?t:zh;if(e.length===0)n();else{var r=BC;X.mutateApproach===WG&&(r=Mi.requestAnimationFrame||BC),r(function(){var i=$$(),a=w1.begin("mutate");e.map(i),a(),n()})}}var x1=!1;function OC(){x1=!0}function A1(){x1=!1}var Uh=null;function RC(e){if(iC&&X.observeMutations){var t=e.treeCallback,n=t===void 0?zh:t,r=e.nodeCallback,i=r===void 0?zh:r,a=e.pseudoElementsCallback,o=a===void 0?zh:a,s=e.observeMutationsRoot,l=s===void 0?Oe:s;Uh=new iC(function(c){if(!x1){var u=Fi();vs(c).forEach(function(f){if(f.type==="childList"&&f.addedNodes.length>0&&!NC(f.addedNodes[0])&&(X.searchPseudoElements&&o(f.target),n(f.target)),f.type==="attributes"&&f.target.parentNode&&X.searchPseudoElements&&o(f.target.parentNode),f.type==="attributes"&&NC(f.target)&&~r$.indexOf(f.attributeName))if(f.attributeName==="class"&&H$(f.target)){var h=Oh(i1(f.target)),d=h.prefix,p=h.iconName;f.target.setAttribute(t1,d||u),p&&f.target.setAttribute(n1,p)}else G$(f.target)&&i(f.target)})}}),Lr&&Uh.observe(l,{childList:!0,attributes:!0,characterData:!0,subtree:!0})}}function Z$(){Uh&&Uh.disconnect()}function q$(e){var t=e.getAttribute("style"),n=[];return t&&(n=t.split(";").reduce(function(r,i){var a=i.split(":"),o=a[0],s=a.slice(1);return o&&s.length>0&&(r[o]=s.join(":").trim()),r},{})),n}function W$(e){var t=e.getAttribute("data-prefix"),n=e.getAttribute("data-icon"),r=e.innerText!==void 0?e.innerText.trim():"",i=Oh(i1(e));return i.prefix||(i.prefix=Fi()),t&&n&&(i.prefix=t,i.iconName=n),i.iconName&&i.prefix||i.prefix&&r.length>0&&(i.iconName=k$(i.prefix,e.innerText)||f1(i.prefix,c1(e.innerText))),i}function X$(e){var t=vs(e.attributes).reduce(function(i,a){return i.name!=="class"&&i.name!=="style"&&(i[a.name]=a.value),i},{}),n=e.getAttribute("title"),r=e.getAttribute("data-fa-title-id");return X.autoA11y&&(n?t["aria-labelledby"]="".concat(X.replacementClass,"-title-").concat(r||Bl()):(t["aria-hidden"]="true",t.focusable="false")),t}function K$(){return{iconName:null,title:null,titleId:null,prefix:null,transform:lr,symbol:!1,mask:{iconName:null,prefix:null,rest:[]},maskId:null,extra:{classes:[],styles:{},attributes:{}}}}function zC(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{styleParser:!0},n=W$(e),r=n.iconName,i=n.prefix,a=n.rest,o=X$(e),s=d1("parseNodeAttributes",{},e),l=t.styleParser?q$(e):[];return Z({iconName:r,title:e.getAttribute("title"),titleId:e.getAttribute("data-fa-title-id"),prefix:i,transform:lr,mask:{iconName:null,prefix:null,rest:[]},maskId:null,symbol:!1,extra:{classes:a,styles:l,attributes:o}},s)}var J$=Pn.styles;function PC(e){var t=X.autoReplaceSvg==="nest"?zC(e,{styleParser:!1}):zC(e);return~t.extra.classes.indexOf(fC)?zr("generateLayersText",e,t):zr("generateSvgReplacementMutation",e,t)}function UC(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;if(!Lr)return Promise.resolve();var n=Oe.documentElement.classList,r=function(f){return n.add("".concat(cC,"-").concat(f))},i=function(f){return n.remove("".concat(cC,"-").concat(f))},a=X.autoFetchSvg?Object.keys(r1):Object.keys(J$),o=[".".concat(fC,":not([").concat(Za,"])")].concat(a.map(function(u){return".".concat(u,":not([").concat(Za,"])")})).join(", ");if(o.length===0)return Promise.resolve();var s=[];try{s=vs(e.querySelectorAll(o))}catch{}if(s.length>0)r("pending"),i("complete");else return Promise.resolve();var l=w1.begin("onTree"),c=s.reduce(function(u,f){try{var h=PC(f);h&&u.push(h)}catch(d){lC||d.name==="MissingIcon"&&console.error(d)}return u},[]);return new Promise(function(u,f){Promise.all(c).then(function(h){LC(h,function(){r("active"),r("complete"),i("pending"),typeof t=="function"&&t(),l(),u()})}).catch(function(h){l(),f(h)})})}function eV(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;PC(e).then(function(n){n&&LC([n],t)})}function tV(e){return function(t){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=(t||{}).icon?t:p1(t||{}),i=n.mask;return i&&(i=(i||{}).icon?i:p1(i||{})),e(r,Z(Z({},n),{},{mask:i}))}}var nV=function(t){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=n.transform,i=r===void 0?lr:r,a=n.symbol,o=a===void 0?!1:a,s=n.mask,l=s===void 0?null:s,c=n.maskId,u=c===void 0?null:c,f=n.title,h=f===void 0?null:f,d=n.titleId,p=d===void 0?null:d,g=n.classes,y=g===void 0?[]:g,v=n.attributes,S=v===void 0?{}:v,k=n.styles,C=k===void 0?{}:k;if(t){var E=t.prefix,w=t.iconName,A=t.icon;return Rh(Z({type:"icon"},t),function(){return Wa("beforeDOMElementCreation",{iconDefinition:t,params:n}),X.autoA11y&&(h?S["aria-labelledby"]="".concat(X.replacementClass,"-title-").concat(p||Bl()):(S["aria-hidden"]="true",S.focusable="false")),g1({icons:{main:b1(A),mask:l?b1(l.icon):{found:!1,width:null,height:null,icon:{}}},prefix:E,iconName:w,transform:Z(Z({},lr),i),symbol:o,title:h,maskId:u,titleId:p,extra:{attributes:S,styles:C,classes:y}})})}},rV={mixout:function(){return{icon:tV(nV)}},hooks:function(){return{mutationObserverCallbacks:function(n){return n.treeCallback=UC,n.nodeCallback=eV,n}}},provides:function(t){t.i2svg=function(n){var r=n.node,i=r===void 0?Oe:r,a=n.callback,o=a===void 0?function(){}:a;return UC(i,o)},t.generateSvgReplacementMutation=function(n,r){var i=r.iconName,a=r.title,o=r.titleId,s=r.prefix,l=r.transform,c=r.symbol,u=r.mask,f=r.maskId,h=r.extra;return new Promise(function(d,p){Promise.all([y1(i,s),u.iconName?y1(u.iconName,u.prefix):Promise.resolve({found:!1,width:512,height:512,icon:{}})]).then(function(g){var y=Wm(g,2),v=y[0],S=y[1];d([n,g1({icons:{main:v,mask:S},prefix:s,iconName:i,transform:l,symbol:c,maskId:f,title:a,titleId:o,extra:h,watchable:!0})])}).catch(p)})},t.generateAbstractIcon=function(n){var r=n.children,i=n.attributes,a=n.main,o=n.transform,s=n.styles,l=Fh(s);l.length>0&&(i.style=l);var c;return a1(o)&&(c=zr("generateAbstractTransformGrouping",{main:a,transform:o,containerWidth:a.width,iconWidth:a.width})),r.push(c||a.icon),{children:r,attributes:i}}}},iV={mixout:function(){return{layer:function(n){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=r.classes,a=i===void 0?[]:i;return Rh({type:"layer"},function(){Wa("beforeDOMElementCreation",{assembler:n,params:r});var o=[];return n(function(s){Array.isArray(s)?s.map(function(l){o=o.concat(l.abstract)}):o=o.concat(s.abstract)}),[{tag:"span",attributes:{class:["".concat(X.familyPrefix,"-layers")].concat(Ih(a)).join(" ")},children:o}]})}}}},aV={mixout:function(){return{counter:function(n){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=r.title,a=i===void 0?null:i,o=r.classes,s=o===void 0?[]:o,l=r.attributes,c=l===void 0?{}:l,u=r.styles,f=u===void 0?{}:u;return Rh({type:"counter",content:n},function(){return Wa("beforeDOMElementCreation",{content:n,params:r}),z$({content:n.toString(),title:a,extra:{attributes:c,styles:f,classes:["".concat(X.familyPrefix,"-layers-counter")].concat(Ih(s))}})})}}}},oV={mixout:function(){return{text:function(n){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=r.transform,a=i===void 0?lr:i,o=r.title,s=o===void 0?null:o,l=r.classes,c=l===void 0?[]:l,u=r.attributes,f=u===void 0?{}:u,h=r.styles,d=h===void 0?{}:h;return Rh({type:"text",content:n},function(){return Wa("beforeDOMElementCreation",{content:n,params:r}),IC({content:n,transform:Z(Z({},lr),a),title:s,extra:{attributes:f,styles:d,classes:["".concat(X.familyPrefix,"-layers-text")].concat(Ih(c))}})})}}},provides:function(t){t.generateLayersText=function(n,r){var i=r.title,a=r.transform,o=r.extra,s=null,l=null;if(aC){var c=parseInt(getComputedStyle(n).fontSize,10),u=n.getBoundingClientRect();s=u.width/c,l=u.height/c}return X.autoA11y&&!i&&(o.attributes["aria-hidden"]="true"),Promise.resolve([n,IC({content:n.innerHTML,width:s,height:l,transform:a,title:i,extra:o,watchable:!0})])}}},sV=new RegExp('"',"ug"),jC=[1105920,1112319];function cV(e){var t=e.replace(sV,""),n=x$(t,0),r=n>=jC[0]&&n<=jC[1],i=t.length===2?t[0]===t[1]:!1;return{value:c1(i?t[0]:t),isSecondary:r||i}}function HC(e,t){var n="".concat(qG).concat(t.replace(":","-"));return new Promise(function(r,i){if(e.getAttribute(n)!==null)return r();var a=vs(e.children),o=a.filter(function(w){return w.getAttribute(e1)===t})[0],s=Mi.getComputedStyle(e,t),l=s.getPropertyValue("font-family").match(e$),c=s.getPropertyValue("font-weight"),u=s.getPropertyValue("content");if(o&&!l)return e.removeChild(o),r();if(l&&u!=="none"&&u!==""){var f=s.getPropertyValue("content"),h=~["Solid","Regular","Light","Thin","Duotone","Brands","Kit"].indexOf(l[2])?Mh[l[2].toLowerCase()]:t$[c],d=cV(f),p=d.value,g=d.isSecondary,y=l[0].startsWith("FontAwesome"),v=f1(h,p),S=v;if(y){var k=D$(p);k.iconName&&k.prefix&&(v=k.iconName,h=k.prefix)}if(v&&!g&&(!o||o.getAttribute(t1)!==h||o.getAttribute(n1)!==S)){e.setAttribute(n,S),o&&e.removeChild(o);var C=K$(),E=C.extra;E.attributes[e1]=t,y1(v,h).then(function(w){var A=g1(Z(Z({},C),{},{icons:{main:w,mask:h1()},prefix:h,iconName:S,extra:E,watchable:!0})),T=Oe.createElement("svg");t==="::before"?e.insertBefore(T,e.firstChild):e.appendChild(T),T.outerHTML=A.map(function(D){return Ll(D)}).join(`
2333
+ `),e.removeAttribute(n),r()}).catch(i)}else r()}else r()})}function lV(e){return Promise.all([HC(e,"::before"),HC(e,"::after")])}function uV(e){return e.parentNode!==document.head&&!~XG.indexOf(e.tagName.toUpperCase())&&!e.getAttribute(e1)&&(!e.parentNode||e.parentNode.tagName!=="svg")}function GC(e){if(Lr)return new Promise(function(t,n){var r=vs(e.querySelectorAll("*")).filter(uV).map(lV),i=w1.begin("searchPseudoElements");OC(),Promise.all(r).then(function(){i(),A1(),t()}).catch(function(){i(),A1(),n()})})}var fV={hooks:function(){return{mutationObserverCallbacks:function(n){return n.pseudoElementsCallback=GC,n}}},provides:function(t){t.pseudoElements2svg=function(n){var r=n.node,i=r===void 0?Oe:r;X.searchPseudoElements&&GC(i)}}},$C=!1,hV={mixout:function(){return{dom:{unwatch:function(){OC(),$C=!0}}}},hooks:function(){return{bootstrap:function(){RC(d1("mutationObserverCallbacks",{}))},noAuto:function(){Z$()},watch:function(n){var r=n.observeMutationsRoot;$C?A1():RC(d1("mutationObserverCallbacks",{observeMutationsRoot:r}))}}}},VC=function(t){var n={size:16,x:0,y:0,flipX:!1,flipY:!1,rotate:0};return t.toLowerCase().split(" ").reduce(function(r,i){var a=i.toLowerCase().split("-"),o=a[0],s=a.slice(1).join("-");if(o&&s==="h")return r.flipX=!0,r;if(o&&s==="v")return r.flipY=!0,r;if(s=parseFloat(s),isNaN(s))return r;switch(o){case"grow":r.size=r.size+s;break;case"shrink":r.size=r.size-s;break;case"left":r.x=r.x-s;break;case"right":r.x=r.x+s;break;case"up":r.y=r.y-s;break;case"down":r.y=r.y+s;break;case"rotate":r.rotate=r.rotate+s;break}return r},n)},dV={mixout:function(){return{parse:{transform:function(n){return VC(n)}}}},hooks:function(){return{parseNodeAttributes:function(n,r){var i=r.getAttribute("data-fa-transform");return i&&(n.transform=VC(i)),n}}},provides:function(t){t.generateAbstractTransformGrouping=function(n){var r=n.main,i=n.transform,a=n.containerWidth,o=n.iconWidth,s={transform:"translate(".concat(a/2," 256)")},l="translate(".concat(i.x*32,", ").concat(i.y*32,") "),c="scale(".concat(i.size/16*(i.flipX?-1:1),", ").concat(i.size/16*(i.flipY?-1:1),") "),u="rotate(".concat(i.rotate," 0 0)"),f={transform:"".concat(l," ").concat(c," ").concat(u)},h={transform:"translate(".concat(o/2*-1," -256)")},d={outer:s,inner:f,path:h};return{tag:"g",attributes:Z({},d.outer),children:[{tag:"g",attributes:Z({},d.inner),children:[{tag:r.icon.tag,children:r.icon.children,attributes:Z(Z({},r.icon.attributes),d.path)}]}]}}}},E1={x:0,y:0,width:"100%",height:"100%"};function YC(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return e.attributes&&(e.attributes.fill||t)&&(e.attributes.fill="black"),e}function pV(e){return e.tag==="g"?e.children:[e]}var gV={hooks:function(){return{parseNodeAttributes:function(n,r){var i=r.getAttribute("data-fa-mask"),a=i?Oh(i.split(" ").map(function(o){return o.trim()})):h1();return a.prefix||(a.prefix=Fi()),n.mask=a,n.maskId=r.getAttribute("data-fa-mask-id"),n}}},provides:function(t){t.generateAbstractMask=function(n){var r=n.children,i=n.attributes,a=n.main,o=n.mask,s=n.maskId,l=n.transform,c=a.width,u=a.icon,f=o.width,h=o.icon,d=d$({transform:l,containerWidth:f,iconWidth:c}),p={tag:"rect",attributes:Z(Z({},E1),{},{fill:"white"})},g=u.children?{children:u.children.map(YC)}:{},y={tag:"g",attributes:Z({},d.inner),children:[YC(Z({tag:u.tag,attributes:Z(Z({},u.attributes),d.path)},g))]},v={tag:"g",attributes:Z({},d.outer),children:[y]},S="mask-".concat(s||Bl()),k="clip-".concat(s||Bl()),C={tag:"mask",attributes:Z(Z({},E1),{},{id:S,maskUnits:"userSpaceOnUse",maskContentUnits:"userSpaceOnUse"}),children:[p,v]},E={tag:"defs",children:[{tag:"clipPath",attributes:{id:k},children:pV(h)},C]};return r.push(E,{tag:"rect",attributes:Z({fill:"currentColor","clip-path":"url(#".concat(k,")"),mask:"url(#".concat(S,")")},E1)}),{children:r,attributes:i}}}},mV={provides:function(t){var n=!1;Mi.matchMedia&&(n=Mi.matchMedia("(prefers-reduced-motion: reduce)").matches),t.missingIconAbstract=function(){var r=[],i={fill:"currentColor"},a={attributeType:"XML",repeatCount:"indefinite",dur:"2s"};r.push({tag:"path",attributes:Z(Z({},i),{},{d:"M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z"})});var o=Z(Z({},a),{},{attributeName:"opacity"}),s={tag:"circle",attributes:Z(Z({},i),{},{cx:"256",cy:"364",r:"28"}),children:[]};return n||s.children.push({tag:"animate",attributes:Z(Z({},a),{},{attributeName:"r",values:"28;14;28;28;14;28;"})},{tag:"animate",attributes:Z(Z({},o),{},{values:"1;0;1;1;0;1;"})}),r.push(s),r.push({tag:"path",attributes:Z(Z({},i),{},{opacity:"1",d:"M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z"}),children:n?[]:[{tag:"animate",attributes:Z(Z({},o),{},{values:"1;0;0;0;0;1;"})}]}),n||r.push({tag:"path",attributes:Z(Z({},i),{},{opacity:"0",d:"M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z"}),children:[{tag:"animate",attributes:Z(Z({},o),{},{values:"0;0;1;1;0;0;"})}]}),{tag:"g",attributes:{class:"missing"},children:r}}}},bV={hooks:function(){return{parseNodeAttributes:function(n,r){var i=r.getAttribute("data-fa-symbol"),a=i===null?!1:i===""?!0:i;return n.symbol=a,n}}}},yV=[m$,rV,iV,aV,oV,fV,hV,dV,gV,mV,bV];M$(yV,{mixoutsTo:qt}),qt.noAuto,qt.config,qt.library,qt.dom,qt.parse,qt.findIconDefinition,qt.toHtml;var ke=qt.icon;qt.layer,qt.text,qt.counter;/**
2147
2334
  * @license
2148
2335
  * Copyright 2018 Google LLC
2149
2336
  * SPDX-License-Identifier: BSD-3-Clause
2150
- */const Ff=or(class extends Zr{constructor(t){var e;if(super(t),t.type!==vt.ATTRIBUTE||t.name!=="style"||((e=t.strings)===null||e===void 0?void 0:e.length)>2)throw Error("The `styleMap` directive must be used in the `style` attribute and must be the only part in the attribute.")}render(t){return Object.keys(t).reduce((e,n)=>{const r=t[n];return r==null?e:e+`${n=n.replace(/(?:^(webkit|moz|ms|o)|)(?=[A-Z])/g,"-$&").toLowerCase()}:${r};`},"")}update(t,[e]){const{style:n}=t.element;if(this.vt===void 0){this.vt=new Set;for(const r in e)this.vt.add(r);return this.render(e)}this.vt.forEach(r=>{e[r]==null&&(this.vt.delete(r),r.includes("-")?n.removeProperty(r):n[r]="")});for(const r in e){const i=e[r];i!=null&&(this.vt.add(r),r.includes("-")?n.setProperty(r,i):n[r]=i)}return Ae}});/**
2337
+ */const S1=Ya(class extends ys{constructor(e){var t;if(super(e),e.type!==cr.ATTRIBUTE||e.name!=="style"||((t=e.strings)===null||t===void 0?void 0:t.length)>2)throw Error("The `styleMap` directive must be used in the `style` attribute and must be the only part in the attribute.")}render(e){return Object.keys(e).reduce((t,n)=>{const r=e[n];return r==null?t:t+`${n=n.replace(/(?:^(webkit|moz|ms|o)|)(?=[A-Z])/g,"-$&").toLowerCase()}:${r};`},"")}update(e,[t]){const{style:n}=e.element;if(this.vt===void 0){this.vt=new Set;for(const r in t)this.vt.add(r);return this.render(t)}this.vt.forEach(r=>{t[r]==null&&(this.vt.delete(r),r.includes("-")?n.removeProperty(r):n[r]="")});for(const r in t){const i=t[r];i!=null&&(this.vt.add(r),r.includes("-")?n.setProperty(r,i):n[r]=i)}return pt}});/**
2151
2338
  * @license
2152
2339
  * Copyright 2020 Google LLC
2153
2340
  * SPDX-License-Identifier: BSD-3-Clause
2154
- */const{I:vI}=v4,bI=t=>t===null||typeof t!="object"&&typeof t!="function",Qy=t=>t.strings===void 0,Vy=()=>document.createComment(""),Mo=(t,e,n)=>{var r;const i=t._$AA.parentNode,o=e===void 0?t._$AB:e._$AA;if(n===void 0){const a=i.insertBefore(Vy(),o),s=i.insertBefore(Vy(),o);n=new vI(a,s,t,t.options)}else{const a=n._$AB.nextSibling,s=n._$AM,c=s!==t;if(c){let u;(r=n._$AQ)===null||r===void 0||r.call(n,t),n._$AM=t,n._$AP!==void 0&&(u=t._$AU)!==s._$AU&&n._$AP(u)}if(a!==o||c){let u=n._$AA;for(;u!==a;){const f=u.nextSibling;i.insertBefore(u,o),u=f}}}return n},lr=(t,e,n=t)=>(t._$AI(e,n),t),AI={},Yy=(t,e=AI)=>t._$AH=e,xI=t=>t._$AH,Pf=t=>{var e;(e=t._$AP)===null||e===void 0||e.call(t,!1,!0);let n=t._$AA;const r=t._$AB.nextSibling;for(;n!==r;){const i=n.nextSibling;n.remove(),n=i}};/**
2341
+ */const{I:vV}=BI,wV=e=>e===null||typeof e!="object"&&typeof e!="function",QC=e=>e.strings===void 0,ZC=()=>document.createComment(""),zl=(e,t,n)=>{var r;const i=e._$AA.parentNode,a=t===void 0?e._$AB:t._$AA;if(n===void 0){const o=i.insertBefore(ZC(),a),s=i.insertBefore(ZC(),a);n=new vV(o,s,e,e.options)}else{const o=n._$AB.nextSibling,s=n._$AM,l=s!==e;if(l){let c;(r=n._$AQ)===null||r===void 0||r.call(n,e),n._$AM=e,n._$AP!==void 0&&(c=e._$AU)!==s._$AU&&n._$AP(c)}if(o!==a||l){let c=n._$AA;for(;c!==o;){const u=c.nextSibling;i.insertBefore(c,a),c=u}}}return n},Xa=(e,t,n=e)=>(e._$AI(t,n),e),xV={},qC=(e,t=xV)=>e._$AH=t,AV=e=>e._$AH,C1=e=>{var t;(t=e._$AP)===null||t===void 0||t.call(e,!1,!0);let n=e._$AA;const r=e._$AB.nextSibling;for(;n!==r;){const i=n.nextSibling;n.remove(),n=i}};/**
2155
2342
  * @license
2156
2343
  * Copyright 2017 Google LLC
2157
2344
  * SPDX-License-Identifier: BSD-3-Clause
2158
- */const _y=(t,e,n)=>{const r=new Map;for(let i=e;i<=n;i++)r.set(t[i],i);return r},wI=or(class extends Zr{constructor(t){if(super(t),t.type!==vt.CHILD)throw Error("repeat() can only be used in text expressions")}ht(t,e,n){let r;n===void 0?n=e:e!==void 0&&(r=e);const i=[],o=[];let a=0;for(const s of t)i[a]=r?r(s,a):a,o[a]=n(s,a),a++;return{values:o,keys:i}}render(t,e,n){return this.ht(t,e,n).values}update(t,[e,n,r]){var i;const o=xI(t),{values:a,keys:s}=this.ht(e,n,r);if(!Array.isArray(o))return this.ut=s,a;const c=(i=this.ut)!==null&&i!==void 0?i:this.ut=[],u=[];let f,l,d=0,p=o.length-1,h=0,m=a.length-1;for(;d<=p&&h<=m;)if(o[d]===null)d++;else if(o[p]===null)p--;else if(c[d]===s[h])u[h]=lr(o[d],a[h]),d++,h++;else if(c[p]===s[m])u[m]=lr(o[p],a[m]),p--,m--;else if(c[d]===s[m])u[m]=lr(o[d],a[m]),Mo(t,u[m+1],o[d]),d++,m--;else if(c[p]===s[h])u[h]=lr(o[p],a[h]),Mo(t,o[d],o[p]),p--,h++;else if(f===void 0&&(f=_y(s,h,m),l=_y(c,d,p)),f.has(c[d]))if(f.has(c[p])){const g=l.get(s[h]),y=g!==void 0?o[g]:null;if(y===null){const b=Mo(t,o[d]);lr(b,a[h]),u[h]=b}else u[h]=lr(y,a[h]),Mo(t,o[d],y),o[g]=null;h++}else Pf(o[p]),p--;else Pf(o[d]),d++;for(;h<=m;){const g=Mo(t,u[m+1]);lr(g,a[h]),u[h++]=g}for(;d<=p;){const g=o[d++];g!==null&&Pf(g)}return this.ut=s,Yy(t,u),Ae}}),Wy="close-dialog";function CI(){return new CustomEvent(Wy,{bubbles:!0})}function fr(t="default",e=document.body){const n=document.createElement("div");n.classList.add("gs-modal"),t!="default"&&n.classList.add(t);const r=o=>{var a;switch(o.key){case"Escape":{const s=n.querySelector(".btn-cancel");s&&(s.click(),o.stopPropagation());break}case"Enter":{if(((a=o.target)==null?void 0:a.tagName)=="TEXTAREA")return;n.querySelector(".btn-primary").click(),o.stopPropagation();break}}};n.addEventListener("keydown",r),Be(E`<div class="backdrop"></div><div class="content"></div>`,n);const i=()=>{n.querySelector(".backdrop").addEventListener("transitionend",()=>n.remove()),n.classList.remove("visible"),document.body.classList.remove(Vn)};return n.addEventListener("keydown",o=>{o.stopPropagation()}),n.addEventListener(Wy,i),e.appendChild(n),window.requestAnimationFrame(()=>n.classList.add("visible")),t!="tour"&&document.body.classList.add(Vn),{content:n.querySelector(".content"),close:i}}function He(t,e={}){const n=fr(),r=e.title;return e.okLabel??(e.okLabel="OK"),new Promise((i,o)=>{const a=()=>{n.close(),i(!0)},s=E`${r?E`<div class="modal-title">${r}</div>`:z}<div class="modal-body" style="max-width:700px">${t}</div><div class="modal-buttons">${e.cancelButton?E`<button class="btn" @click="${()=>{n.close(),i(!1)}}">Cancel</button>`:z} <button class="btn" @click="${a}">${e.okLabel}</button></div>`;Be(s,n.content)})}class Xy extends yt{constructor(){super();$(this,cc);$(this,uc);$(this,Xo);$(this,lc);$(this,li,void 0);$(this,Yt,void 0);$(this,An,void 0);$(this,Wo,0);this.values=[],this.thresholds=[],this.operators=[],this.colors=Zy,this.showThresholdNumbers=!1,et(this,li,$2().thresholds(40)),et(this,Yt,j(this,li).call(this,[])),et(this,An,Na())}connectedCallback(){super.connectedCallback()}createRenderRoot(){return this}willUpdate(n){n.has("values")&&(et(this,Yt,j(this,li).call(this,this.values)),et(this,An,Na().domain(this.domain).range([0,100])))}get domain(){return[j(this,Yt).at(0).x0,j(this,Yt).at(-1).x1]}render(){const n=j(this,An),r=100/j(this,Yt).length,i=se(this,lc,e2).call(this).map(o=>E`<div style="${Ff({width:r+.01+"%",left:o.x+"%",bottom:o.y+"%",height:o.height+"%",backgroundColor:typeof o.group=="number"?this.colors[o.group%this.colors.length]:"default"})}"></div>`);return E`<div class="histogram-widget"><div class="histogram-plot"><div class="histogram-bars">${i}</div><div class="histogram-thresholds" @click="${se(this,cc,Jb)}">${this.thresholds.map((o,a)=>{const s=n(o);return s>=0&&s<=100?E`<div class="histogram-threshold" style="${Ff({left:n(o)+"%"})}"><div class="histogram-knob" @mousedown="${c=>se(this,uc,$b).call(this,c,a)}">${this.showThresholdNumbers?a+1:z}</div></div>`:z})}</div><div class="${of({"histogram-hint":!0,visible:!this.thresholds.length})}"><span>Click here to add a threshold!</span></div></div><div class="histogram-domain"></div><div class="histogram-extent">${n.domain().map(o=>E`<div>${o}</div>`)}</div></div>`}}li=new WeakMap,Yt=new WeakMap,An=new WeakMap,Wo=new WeakMap,cc=new WeakSet,Jb=function(n){if(performance.now()<j(this,Wo)+200)return;const r=n.target,i=mp(r,n);se(this,Xo,Ud).call(this,"add",0,i[0]/r.offsetWidth)},uc=new WeakSet,$b=function(n,r){const o=n.target.closest(".histogram-threshold"),a=o.offsetLeft,s=o.offsetParent.offsetWidth;n.preventDefault(),n.stopPropagation(),this.style.cursor="col-resize",EI(n,(c,u)=>{se(this,Xo,Ud).call(this,"adjust",r,(a+c)/s)},()=>{et(this,Wo,performance.now()),this.style.cursor=""})},Xo=new WeakSet,Ud=function(n,r,i){i=ms(i,0,1),this.dispatchEvent(new SI(n,r,+j(this,An).invert(i*100).toPrecision(3)))},lc=new WeakSet,e2=function(){const n=j(this,Yt),r=j(this,An),i=90/n.map(f=>f.length).reduce((f,l)=>Math.max(f,l),0),o=[],a=this.thresholds.length==1&&this.operators[0]=="eq",s=[-1/0,...this.thresholds,1/0],c=[!1,...this.operators.map(f=>["lte","gt"].includes(f)),!0],u=["gt","gte"].includes(this.operators[0])?f=>s.length-f-2:f=>f;for(let f=0;f<n.length;f++){const l=n[f],d=r(l.x0);let p=0,h=0;if(a)for(let m=0;m<=1;m++)h=MI(l,this.thresholds[0],m>0),h&&o.push({x:d,y:p*i,height:h*i,group:m}),p+=h;else if(this.thresholds.length)for(let m=0;m<s.length-1;m++){const g=u(m);h=DI(l,s[g],s[g+1],!c[g],c[g+1]),h&&o.push({x:d,y:p*i,height:h*i,group:m}),p+=h}else h=l.length,h&&o.push({x:d,y:p,height:h*i,group:null})}return o},hc(Xy,"properties",{values:{attribute:!1},thresholds:{attribute:!1},operators:{attribute:!1},colors:{attribute:!1},showThresholdNumbers:{}}),customElements.define("genome-spy-histogram",Xy);class SI extends Event{constructor(e,n,r){super(e),this.index=n,this.value=r}}function EI(t,e,n){const r=t.clientX,i=t.clientY,o=function(s){e(s.clientX-r,s.clientY-i)},a=function(s){document.removeEventListener("mousemove",o),document.removeEventListener("mouseup",a),n==null||n(s.clientX-r,s.clientY-i)};document.addEventListener("mousemove",o),document.addEventListener("mouseup",a)}function DI(t,e,n,r=!0,i=!1){const o=r?c=>c>=e:c=>c>e,a=i?c=>c<=n:c=>c<n;let s=0;for(let c=0;c<t.length;c++){const u=t[c];o(u)&&a(u)&&s++}return s}function MI(t,e,n=!1){let r=0;for(let i=0;i<t.length;i++)r+=+(t[i]==e);return n?t.length-r:r}const Zy=["#1f77b4","#ff7f0e","#2ca02c","#d62728","#9467bd","#8c564b"];function TI(t,e){var r;const n=(r=t.scale)==null?void 0:r.type;nn(n)?kI(t,e):Le(n)||Hn(n)?NI(t,e):t.type==="identifier"?II(t,e):He("Not implemented (yet).")}function II(t,e){qy(e.getSamples().map(n=>n.id),t,e)}function kI(t,e){const n=t.scale,r=i=>E`<span class="color" style="${Ff({backgroundColor:n(i).toString()})}"></span>`;qy(n.domain(),t,e,r)}function qy(t,e,n,r=i=>z){const i=n.provenance.storeHelper.getDispatcher(),o=new Set(Ky(e,n.leafSamples,n.sampleHierarchy)),a=t.filter(C=>o.has(C)).map((C,x)=>({index:x,value:C,stringValue:`${C}`,lowerCaseValue:`${C}`.toLowerCase()})),s=fr(),c=E`<div class="modal-title">Filter by <em>${e.name}</em></div>`,u=new Set;let f="";const l=C=>{i(n.actions.filterByNominal({values:t.filter(x=>u.has(x)),attribute:e.attribute,remove:C})),s.close()},d=()=>a.filter(C=>f.length==0||C.lowerCaseValue.includes(f)),p=C=>{f=C.target.value.toLowerCase(),w()},h=C=>{const x=C.target,v=a[+x.value].value;x.checked?u.add(v):u.delete(v),w()},m=C=>{var x;if(C.key=="ArrowDown")(x=s.content.querySelector(".gs-checkbox-list li:first-child input[type='checkbox']"))==null||x.focus(),C.preventDefault(),C.stopPropagation();else if(C.key=="Enter"){const v=d();v.length==1&&(u.add(v[0].value),w()),C.stopPropagation()}},g=()=>{s.content.querySelector("input[type='text']").focus()},y=C=>{var v,A,D,k,O;const x=C.target;if(x.type=="checkbox")if(C.key=="ArrowDown")(A=(v=x.closest("li").nextElementSibling)==null?void 0:v.querySelector("input[type='checkbox']"))==null||A.focus(),C.preventDefault();else if(C.key=="ArrowUp"){const T=(D=x.closest("li").previousElementSibling)==null?void 0:D.querySelector("input[type='checkbox']");T?T.focus():g(),C.preventDefault()}else C.key=="Esc"?(g(),C.stopPropagation()):C.key=="Tab"&&!C.shiftKey?(k=x.closest(".gs-checkbox-list").querySelector("li:last-child input"))==null||k.focus():C.key=="Tab"&&C.shiftKey&&((O=x.closest(".gs-checkbox-list").querySelector("li:first-child input"))==null||O.focus())},b=()=>E`<div class="modal-buttons"><button class="btn btn-cancel" @click="${()=>s.close()}">Cancel</button> <button class="btn" ?disabled="${!u.size}" @click="${()=>l(!1)}">${K(ar).node[0]} Retain</button> <button class="btn" ?disabled="${!u.size}" @click="${()=>l(!0)}">${K(Ds).node[0]} Remove</button></div>`;function w(){const C=d(),x=E`<div class="gs-form-group"><p>Please select one or more categories and choose an action.</p><input type="text" placeholder="Type something to filter the list" @keydown="${m}" @input="${p}"><div class="gs-checkbox-list-wrapper"><ul class="gs-checkbox-list" @input="${h}" @keydown="${y}">${wI(C,A=>A.value,A=>E`<li><label class="checkbox">${r(A.value)} <input type="checkbox" .checked="${u.has(A.value)}" .value="${""+A.index}"> ${A.stringValue}</label></li>`)}</ul>${C.length==0?E`<div class="search-note"><div>Nothing found</div></div>`:C.length==1&&a.length>1?E`<div class="search-note"><div>${K(h6).node[0]} Hit enter to select the exact match</div></div>`:z}</div><small>The number of selected categories: <strong>${u.size}</strong></small></div>`;Be(E`${c}<div class="modal-body">${x}</div>${b()}`,s.content);const v=s.content.querySelector(".gs-checkbox-list");v.style.minHeight=`${v.offsetHeight}px`}w(),g()}function NI(t,e){var g;const n=e.provenance.storeHelper.getDispatcher();let r="lt",i;const o=fr(),a=E`<div class="modal-title">Filter by <em>${t.name}</em></div>`,s=y=>{n(e.actions.filterByQuantitative({attribute:t.attribute,operator:r,operand:i})),o.close()},c=()=>E`<div class="modal-buttons"><button class="btn btn-cancel" @click="${()=>o.close()}">Cancel</button> <button class="btn btn-primary" ?disabled="${typeof i>"u"}" @click="${()=>s()}">${K(ar).node[0]} Retain</button></div>`,u=y=>{r=y.target.value,m()},f=y=>{const w=y.target.value;/^\d+(\.(\d+)?)?$/.test(w)&&(i=+w,m())},l=y=>{typeof i!="number"&&(i=y.value,m())},d=y=>{i=y.value,m()},p=Ky(t,e.leafSamples,e.sampleHierarchy),h=()=>E`<div class="gs-form-group"><label>Retain samples where <em>${t.name}</em> is</label><div class="btn-group" role="group">${Object.entries(LI).map(([y,b])=>E`<button class="${of({btn:!0,chosen:y==r})}" .value="${y}" @click="${u}" title="${b[1]}">${b[0]}</button>`)}</div><genome-spy-histogram .values="${p}" .thresholds="${[i].filter(y=>y!==void 0)}" .operators="${[r]}" .colors="${["#1f77b4","#ddd"]}" .showThresholdNumbers="${!1}" @add="${l}" @adjust="${d}"></genome-spy-histogram><input type="text" placeholder="... or enter a numeric value here" .value="${typeof i=="number"?""+i:""}" @input="${f}"></div>`;function m(){Be(E`${a}<div class="modal-body">${h()}</div>${c()}`,o.content)}m(),(g=o.content.querySelector("input[type='text']"))==null||g.focus()}const LI={lt:["<","less than"],lte:["≤","less than or equal to"],eq:["=","equal to"],gte:["≥","greater than or equal to"],gt:[">","greater than"]};function Ky(t,e,n){const r=t.accessor;return e.map(i=>r(i,n))}function ut(t){for(var e=arguments.length,n=Array(e>1?e-1:0),r=1;r<e;r++)n[r-1]=arguments[r];throw Error("[Immer] minified error nr: "+t+(n.length?" "+n.map(function(i){return"'"+i+"'"}).join(","):"")+". Find the full error at: https://bit.ly/3cXEKWf")}function gn(t){return!!t&&!!t[oe]}function Ut(t){return!!t&&(function(e){if(!e||typeof e!="object")return!1;var n=Object.getPrototypeOf(e);if(n===null)return!0;var r=Object.hasOwnProperty.call(n,"constructor")&&n.constructor;return r===Object||typeof r=="function"&&Function.toString.call(r)===HI}(t)||Array.isArray(t)||!!t[sv]||!!t.constructor[sv]||zf(t)||Rf(t))}function dr(t,e,n){n===void 0&&(n=!1),ei(t)===0?(n?Object.keys:ni)(t).forEach(function(r){n&&typeof r=="symbol"||e(r,t[r],t)}):t.forEach(function(r,i){return e(i,r,t)})}function ei(t){var e=t[oe];return e?e.i>3?e.i-4:e.i:Array.isArray(t)?1:zf(t)?2:Rf(t)?3:0}function ti(t,e){return ei(t)===2?t.has(e):Object.prototype.hasOwnProperty.call(t,e)}function BI(t,e){return ei(t)===2?t.get(e):t[e]}function Jy(t,e,n){var r=ei(t);r===2?t.set(e,n):r===3?(t.delete(e),t.add(n)):t[e]=n}function $y(t,e){return t===e?t!==0||1/t==1/e:t!=t&&e!=e}function zf(t){return jI&&t instanceof Map}function Rf(t){return UI&&t instanceof Set}function hr(t){return t.o||t.t}function jf(t){if(Array.isArray(t))return Array.prototype.slice.call(t);var e=cv(t);delete e[oe];for(var n=ni(e),r=0;r<n.length;r++){var i=n[r],o=e[i];o.writable===!1&&(o.writable=!0,o.configurable=!0),(o.get||o.set)&&(e[i]={configurable:!0,writable:!0,enumerable:o.enumerable,value:t[i]})}return Object.create(Object.getPrototypeOf(t),e)}function Uf(t,e){return e===void 0&&(e=!1),Hf(t)||gn(t)||!Ut(t)||(ei(t)>1&&(t.set=t.add=t.clear=t.delete=OI),Object.freeze(t),e&&dr(t,function(n,r){return Uf(r,!0)},!0)),t}function OI(){ut(2)}function Hf(t){return t==null||typeof t!="object"||Object.isFrozen(t)}function At(t){var e=qf[t];return e||ut(18,t),e}function FI(t,e){qf[t]||(qf[t]=e)}function Gf(){return To}function Qf(t,e){e&&(At("Patches"),t.u=[],t.s=[],t.v=e)}function Us(t){Vf(t),t.p.forEach(PI),t.p=null}function Vf(t){t===To&&(To=t.l)}function ev(t){return To={p:[],l:To,h:t,m:!0,_:0}}function PI(t){var e=t[oe];e.i===0||e.i===1?e.j():e.O=!0}function Yf(t,e){e._=e.p.length;var n=e.p[0],r=t!==void 0&&t!==n;return e.h.g||At("ES5").S(e,t,r),r?(n[oe].P&&(Us(e),ut(4)),Ut(t)&&(t=Hs(e,t),e.l||Gs(e,t)),e.u&&At("Patches").M(n[oe].t,t,e.u,e.s)):t=Hs(e,n,[]),Us(e),e.u&&e.v(e.u,e.s),t!==av?t:void 0}function Hs(t,e,n){if(Hf(e))return e;var r=e[oe];if(!r)return dr(e,function(o,a){return tv(t,r,e,o,a,n)},!0),e;if(r.A!==t)return e;if(!r.P)return Gs(t,r.t,!0),r.t;if(!r.I){r.I=!0,r.A._--;var i=r.i===4||r.i===5?r.o=jf(r.k):r.o;dr(r.i===3?new Set(i):i,function(o,a){return tv(t,r,i,o,a,n)}),Gs(t,i,!1),n&&t.u&&At("Patches").R(r,n,t.u,t.s)}return r.o}function tv(t,e,n,r,i,o){if(gn(i)){var a=Hs(t,i,o&&e&&e.i!==3&&!ti(e.D,r)?o.concat(r):void 0);if(Jy(n,r,a),!gn(a))return;t.m=!1}if(Ut(i)&&!Hf(i)){if(!t.h.F&&t._<1)return;Hs(t,i),e&&e.A.l||Gs(t,i)}}function Gs(t,e,n){n===void 0&&(n=!1),t.h.F&&t.m&&Uf(e,n)}function _f(t,e){var n=t[oe];return(n?hr(n):t)[e]}function nv(t,e){if(e in t)for(var n=Object.getPrototypeOf(t);n;){var r=Object.getOwnPropertyDescriptor(n,e);if(r)return r;n=Object.getPrototypeOf(n)}}function yn(t){t.P||(t.P=!0,t.l&&yn(t.l))}function Wf(t){t.o||(t.o=jf(t.t))}function Xf(t,e,n){var r=zf(e)?At("MapSet").N(e,n):Rf(e)?At("MapSet").T(e,n):t.g?function(i,o){var a=Array.isArray(i),s={i:a?1:0,A:o?o.A:Gf(),P:!1,I:!1,D:{},l:o,t:i,k:null,o:null,j:null,C:!1},c=s,u=Io;a&&(c=[s],u=ko);var f=Proxy.revocable(c,u),l=f.revoke,d=f.proxy;return s.k=d,s.j=l,d}(e,n):At("ES5").J(e,n);return(n?n.A:Gf()).p.push(r),r}function zI(t){return gn(t)||ut(22,t),function e(n){if(!Ut(n))return n;var r,i=n[oe],o=ei(n);if(i){if(!i.P&&(i.i<4||!At("ES5").K(i)))return i.t;i.I=!0,r=rv(n,o),i.I=!1}else r=rv(n,o);return dr(r,function(a,s){i&&BI(i.t,a)===s||Jy(r,a,e(s))}),o===3?new Set(r):r}(t)}function rv(t,e){switch(e){case 2:return new Map(t);case 3:return Array.from(t)}return jf(t)}function RI(){function t(o,a){var s=i[o];return s?s.enumerable=a:i[o]=s={configurable:!0,enumerable:a,get:function(){var c=this[oe];return Io.get(c,o)},set:function(c){var u=this[oe];Io.set(u,o,c)}},s}function e(o){for(var a=o.length-1;a>=0;a--){var s=o[a][oe];if(!s.P)switch(s.i){case 5:r(s)&&yn(s);break;case 4:n(s)&&yn(s)}}}function n(o){for(var a=o.t,s=o.k,c=ni(s),u=c.length-1;u>=0;u--){var f=c[u];if(f!==oe){var l=a[f];if(l===void 0&&!ti(a,f))return!0;var d=s[f],p=d&&d[oe];if(p?p.t!==l:!$y(d,l))return!0}}var h=!!a[oe];return c.length!==ni(a).length+(h?0:1)}function r(o){var a=o.k;if(a.length!==o.t.length)return!0;var s=Object.getOwnPropertyDescriptor(a,a.length-1);if(s&&!s.get)return!0;for(var c=0;c<a.length;c++)if(!a.hasOwnProperty(c))return!0;return!1}var i={};FI("ES5",{J:function(o,a){var s=Array.isArray(o),c=function(f,l){if(f){for(var d=Array(l.length),p=0;p<l.length;p++)Object.defineProperty(d,""+p,t(p,!0));return d}var h=cv(l);delete h[oe];for(var m=ni(h),g=0;g<m.length;g++){var y=m[g];h[y]=t(y,f||!!h[y].enumerable)}return Object.create(Object.getPrototypeOf(l),h)}(s,o),u={i:s?5:4,A:a?a.A:Gf(),P:!1,I:!1,D:{},l:a,t:o,k:c,o:null,O:!1,C:!1};return Object.defineProperty(c,oe,{value:u,writable:!0}),c},S:function(o,a,s){s?gn(a)&&a[oe].A===o&&e(o.p):(o.u&&function c(u){if(u&&typeof u=="object"){var f=u[oe];if(f){var l=f.t,d=f.k,p=f.D,h=f.i;if(h===4)dr(d,function(w){w!==oe&&(l[w]!==void 0||ti(l,w)?p[w]||c(d[w]):(p[w]=!0,yn(f)))}),dr(l,function(w){d[w]!==void 0||ti(d,w)||(p[w]=!1,yn(f))});else if(h===5){if(r(f)&&(yn(f),p.length=!0),d.length<l.length)for(var m=d.length;m<l.length;m++)p[m]=!1;else for(var g=l.length;g<d.length;g++)p[g]=!0;for(var y=Math.min(d.length,l.length),b=0;b<y;b++)d.hasOwnProperty(b)||(p[b]=!0),p[b]===void 0&&c(d[b])}}}}(o.p[0]),e(o.p))},K:function(o){return o.i===4?n(o):r(o)}})}var iv,To,Zf=typeof Symbol<"u"&&typeof Symbol("x")=="symbol",jI=typeof Map<"u",UI=typeof Set<"u",ov=typeof Proxy<"u"&&Proxy.revocable!==void 0&&typeof Reflect<"u",av=Zf?Symbol.for("immer-nothing"):((iv={})["immer-nothing"]=!0,iv),sv=Zf?Symbol.for("immer-draftable"):"__$immer_draftable",oe=Zf?Symbol.for("immer-state"):"__$immer_state",HI=""+Object.prototype.constructor,ni=typeof Reflect<"u"&&Reflect.ownKeys?Reflect.ownKeys:Object.getOwnPropertySymbols!==void 0?function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:Object.getOwnPropertyNames,cv=Object.getOwnPropertyDescriptors||function(t){var e={};return ni(t).forEach(function(n){e[n]=Object.getOwnPropertyDescriptor(t,n)}),e},qf={},Io={get:function(t,e){if(e===oe)return t;var n=hr(t);if(!ti(n,e))return function(i,o,a){var s,c=nv(o,a);return c?"value"in c?c.value:(s=c.get)===null||s===void 0?void 0:s.call(i.k):void 0}(t,n,e);var r=n[e];return t.I||!Ut(r)?r:r===_f(t.t,e)?(Wf(t),t.o[e]=Xf(t.A.h,r,t)):r},has:function(t,e){return e in hr(t)},ownKeys:function(t){return Reflect.ownKeys(hr(t))},set:function(t,e,n){var r=nv(hr(t),e);if(r!=null&&r.set)return r.set.call(t.k,n),!0;if(!t.P){var i=_f(hr(t),e),o=i==null?void 0:i[oe];if(o&&o.t===n)return t.o[e]=n,t.D[e]=!1,!0;if($y(n,i)&&(n!==void 0||ti(t.t,e)))return!0;Wf(t),yn(t)}return t.o[e]===n&&typeof n!="number"&&(n!==void 0||e in t.o)||(t.o[e]=n,t.D[e]=!0,!0)},deleteProperty:function(t,e){return _f(t.t,e)!==void 0||e in t.t?(t.D[e]=!1,Wf(t),yn(t)):delete t.D[e],t.o&&delete t.o[e],!0},getOwnPropertyDescriptor:function(t,e){var n=hr(t),r=Reflect.getOwnPropertyDescriptor(n,e);return r&&{writable:!0,configurable:t.i!==1||e!=="length",enumerable:r.enumerable,value:n[e]}},defineProperty:function(){ut(11)},getPrototypeOf:function(t){return Object.getPrototypeOf(t.t)},setPrototypeOf:function(){ut(12)}},ko={};dr(Io,function(t,e){ko[t]=function(){return arguments[0]=arguments[0][0],e.apply(this,arguments)}}),ko.deleteProperty=function(t,e){return ko.set.call(this,t,e,void 0)},ko.set=function(t,e,n){return Io.set.call(this,t[0],e,n,t[0])};var GI=function(){function t(n){var r=this;this.g=ov,this.F=!0,this.produce=function(i,o,a){if(typeof i=="function"&&typeof o!="function"){var s=o;o=i;var c=r;return function(m){var g=this;m===void 0&&(m=s);for(var y=arguments.length,b=Array(y>1?y-1:0),w=1;w<y;w++)b[w-1]=arguments[w];return c.produce(m,function(C){var x;return(x=o).call.apply(x,[g,C].concat(b))})}}var u;if(typeof o!="function"&&ut(6),a!==void 0&&typeof a!="function"&&ut(7),Ut(i)){var f=ev(r),l=Xf(r,i,void 0),d=!0;try{u=o(l),d=!1}finally{d?Us(f):Vf(f)}return typeof Promise<"u"&&u instanceof Promise?u.then(function(m){return Qf(f,a),Yf(m,f)},function(m){throw Us(f),m}):(Qf(f,a),Yf(u,f))}if(!i||typeof i!="object"){if((u=o(i))===void 0&&(u=i),u===av&&(u=void 0),r.F&&Uf(u,!0),a){var p=[],h=[];At("Patches").M(i,u,p,h),a(p,h)}return u}ut(21,i)},this.produceWithPatches=function(i,o){if(typeof i=="function")return function(u){for(var f=arguments.length,l=Array(f>1?f-1:0),d=1;d<f;d++)l[d-1]=arguments[d];return r.produceWithPatches(u,function(p){return i.apply(void 0,[p].concat(l))})};var a,s,c=r.produce(i,o,function(u,f){a=u,s=f});return typeof Promise<"u"&&c instanceof Promise?c.then(function(u){return[u,a,s]}):[c,a,s]},typeof(n==null?void 0:n.useProxies)=="boolean"&&this.setUseProxies(n.useProxies),typeof(n==null?void 0:n.autoFreeze)=="boolean"&&this.setAutoFreeze(n.autoFreeze)}var e=t.prototype;return e.createDraft=function(n){Ut(n)||ut(8),gn(n)&&(n=zI(n));var r=ev(this),i=Xf(this,n,void 0);return i[oe].C=!0,Vf(r),i},e.finishDraft=function(n,r){var i=n&&n[oe],o=i.A;return Qf(o,r),Yf(void 0,o)},e.setAutoFreeze=function(n){this.F=n},e.setUseProxies=function(n){n&&!ov&&ut(20),this.g=n},e.applyPatches=function(n,r){var i;for(i=r.length-1;i>=0;i--){var o=r[i];if(o.path.length===0&&o.op==="replace"){n=o.value;break}}i>-1&&(r=r.slice(i+1));var a=At("Patches").$;return gn(n)?a(n,r):this.produce(n,function(s){return a(s,r)})},t}(),Ge=new GI,uv=Ge.produce;Ge.produceWithPatches.bind(Ge),Ge.setAutoFreeze.bind(Ge),Ge.setUseProxies.bind(Ge),Ge.applyPatches.bind(Ge),Ge.createDraft.bind(Ge),Ge.finishDraft.bind(Ge);function QI(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function lv(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),n.push.apply(n,r)}return n}function fv(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?lv(Object(n),!0).forEach(function(r){QI(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):lv(Object(n)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(n,r))})}return t}function Ee(t){return"Minified Redux error #"+t+"; visit https://redux.js.org/Errors?code="+t+" for the full message or use the non-minified dev environment for full errors. "}var dv=function(){return typeof Symbol=="function"&&Symbol.observable||"@@observable"}(),Kf=function(){return Math.random().toString(36).substring(7).split("").join(".")},Qs={INIT:"@@redux/INIT"+Kf(),REPLACE:"@@redux/REPLACE"+Kf(),PROBE_UNKNOWN_ACTION:function(){return"@@redux/PROBE_UNKNOWN_ACTION"+Kf()}};function VI(t){if(typeof t!="object"||t===null)return!1;for(var e=t;Object.getPrototypeOf(e)!==null;)e=Object.getPrototypeOf(e);return Object.getPrototypeOf(t)===e}function hv(t,e,n){var r;if(typeof e=="function"&&typeof n=="function"||typeof n=="function"&&typeof arguments[3]=="function")throw new Error(Ee(0));if(typeof e=="function"&&typeof n>"u"&&(n=e,e=void 0),typeof n<"u"){if(typeof n!="function")throw new Error(Ee(1));return n(hv)(t,e)}if(typeof t!="function")throw new Error(Ee(2));var i=t,o=e,a=[],s=a,c=!1;function u(){s===a&&(s=a.slice())}function f(){if(c)throw new Error(Ee(3));return o}function l(m){if(typeof m!="function")throw new Error(Ee(4));if(c)throw new Error(Ee(5));var g=!0;return u(),s.push(m),function(){if(g){if(c)throw new Error(Ee(6));g=!1,u();var b=s.indexOf(m);s.splice(b,1),a=null}}}function d(m){if(!VI(m))throw new Error(Ee(7));if(typeof m.type>"u")throw new Error(Ee(8));if(c)throw new Error(Ee(9));try{c=!0,o=i(o,m)}finally{c=!1}for(var g=a=s,y=0;y<g.length;y++){var b=g[y];b()}return m}function p(m){if(typeof m!="function")throw new Error(Ee(10));i=m,d({type:Qs.REPLACE})}function h(){var m,g=l;return m={subscribe:function(b){if(typeof b!="object"||b===null)throw new Error(Ee(11));function w(){b.next&&b.next(f())}w();var C=g(w);return{unsubscribe:C}}},m[dv]=function(){return this},m}return d({type:Qs.INIT}),r={dispatch:d,subscribe:l,getState:f,replaceReducer:p},r[dv]=h,r}function YI(t){Object.keys(t).forEach(function(e){var n=t[e],r=n(void 0,{type:Qs.INIT});if(typeof r>"u")throw new Error(Ee(12));if(typeof n(void 0,{type:Qs.PROBE_UNKNOWN_ACTION()})>"u")throw new Error(Ee(13))})}function Jf(t){for(var e=Object.keys(t),n={},r=0;r<e.length;r++){var i=e[r];typeof t[i]=="function"&&(n[i]=t[i])}var o=Object.keys(n),a;try{YI(n)}catch(s){a=s}return function(c,u){if(c===void 0&&(c={}),a)throw a;for(var f=!1,l={},d=0;d<o.length;d++){var p=o[d],h=n[p],m=c[p],g=h(m,u);if(typeof g>"u")throw u&&u.type,new Error(Ee(14));l[p]=g,f=f||g!==m}return f=f||o.length!==Object.keys(c).length,f?l:c}}function Vs(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];return e.length===0?function(r){return r}:e.length===1?e[0]:e.reduce(function(r,i){return function(){return r(i.apply(void 0,arguments))}})}function _I(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];return function(r){return function(){var i=r.apply(void 0,arguments),o=function(){throw new Error(Ee(15))},a={getState:i.getState,dispatch:function(){return o.apply(void 0,arguments)}},s=e.map(function(c){return c(a)});return o=Vs.apply(void 0,s)(i.dispatch),fv(fv({},i),{},{dispatch:o})}}}var Ys="NOT_FOUND";function WI(t){var e;return{get:function(r){return e&&t(e.key,r)?e.value:Ys},put:function(r,i){e={key:r,value:i}},getEntries:function(){return e?[e]:[]},clear:function(){e=void 0}}}function XI(t,e){var n=[];function r(s){var c=n.findIndex(function(f){return e(s,f.key)});if(c>-1){var u=n[c];return c>0&&(n.splice(c,1),n.unshift(u)),u.value}return Ys}function i(s,c){r(s)===Ys&&(n.unshift({key:s,value:c}),n.length>t&&n.pop())}function o(){return n}function a(){n=[]}return{get:r,put:i,getEntries:o,clear:a}}var ZI=function(e,n){return e===n};function qI(t){return function(n,r){if(n===null||r===null||n.length!==r.length)return!1;for(var i=n.length,o=0;o<i;o++)if(!t(n[o],r[o]))return!1;return!0}}function KI(t,e){var n=typeof e=="object"?e:{equalityCheck:e},r=n.equalityCheck,i=r===void 0?ZI:r,o=n.maxSize,a=o===void 0?1:o,s=n.resultEqualityCheck,c=qI(i),u=a===1?WI(c):XI(a,c);function f(){var l=u.get(arguments);if(l===Ys){if(l=t.apply(null,arguments),s){var d=u.getEntries(),p=d.find(function(h){return s(h.value,l)});p&&(l=p.value)}u.put(arguments,l)}return l}return f.clearCache=function(){return u.clear()},f}function JI(t){var e=Array.isArray(t[0])?t[0]:t;if(!e.every(function(r){return typeof r=="function"})){var n=e.map(function(r){return typeof r=="function"?"function "+(r.name||"unnamed")+"()":typeof r}).join(", ");throw new Error("createSelector expects all input-selectors to be functions, but received the following types: ["+n+"]")}return e}function $I(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),r=1;r<e;r++)n[r-1]=arguments[r];var i=function(){for(var a=arguments.length,s=new Array(a),c=0;c<a;c++)s[c]=arguments[c];var u=0,f,l={memoizeOptions:void 0},d=s.pop();if(typeof d=="object"&&(l=d,d=s.pop()),typeof d!="function")throw new Error("createSelector expects an output function after the inputs, but received: ["+typeof d+"]");var p=l,h=p.memoizeOptions,m=h===void 0?n:h,g=Array.isArray(m)?m:[m],y=JI(s),b=t.apply(void 0,[function(){return u++,d.apply(null,arguments)}].concat(g)),w=t(function(){for(var C=[],x=y.length,v=0;v<x;v++)C.push(y[v].apply(null,arguments));return f=b.apply(null,C),f});return Object.assign(w,{resultFunc:d,memoizedResultFunc:b,dependencies:y,lastResult:function(){return f},recomputations:function(){return u},resetRecomputations:function(){return u=0}}),w};return i}var e9=$I(KI);function pv(t){var e=function(r){var i=r.dispatch,o=r.getState;return function(a){return function(s){return typeof s=="function"?s(i,o,t):a(s)}}};return e}var mv=pv();mv.withExtraArgument=pv;const gv=mv;var t9=globalThis&&globalThis.__extends||function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,i){r.__proto__=i}||function(r,i){for(var o in i)Object.prototype.hasOwnProperty.call(i,o)&&(r[o]=i[o])},t(e,n)};return function(e,n){if(typeof n!="function"&&n!==null)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");t(e,n);function r(){this.constructor=e}e.prototype=n===null?Object.create(n):(r.prototype=n.prototype,new r)}}();globalThis&&globalThis.__generator;var _s=globalThis&&globalThis.__spreadArray||function(t,e){for(var n=0,r=e.length,i=t.length;n<r;n++,i++)t[i]=e[n];return t},n9=Object.defineProperty,yv=Object.getOwnPropertySymbols,r9=Object.prototype.hasOwnProperty,i9=Object.prototype.propertyIsEnumerable,vv=function(t,e,n){return e in t?n9(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n},No=function(t,e){for(var n in e||(e={}))r9.call(e,n)&&vv(t,n,e[n]);if(yv)for(var r=0,i=yv(e);r<i.length;r++){var n=i[r];i9.call(e,n)&&vv(t,n,e[n])}return t},o9=typeof window<"u"&&window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__?window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__:function(){if(arguments.length!==0)return typeof arguments[0]=="object"?Vs:Vs.apply(null,arguments)};function a9(t){if(typeof t!="object"||t===null)return!1;var e=Object.getPrototypeOf(t);if(e===null)return!0;for(var n=e;Object.getPrototypeOf(n)!==null;)n=Object.getPrototypeOf(n);return e===n}var s9=function(t){t9(e,t);function e(){for(var n=[],r=0;r<arguments.length;r++)n[r]=arguments[r];var i=t.apply(this,n)||this;return Object.setPrototypeOf(i,e.prototype),i}return Object.defineProperty(e,Symbol.species,{get:function(){return e},enumerable:!1,configurable:!0}),e.prototype.concat=function(){for(var n=[],r=0;r<arguments.length;r++)n[r]=arguments[r];return t.prototype.concat.apply(this,n)},e.prototype.prepend=function(){for(var n=[],r=0;r<arguments.length;r++)n[r]=arguments[r];return n.length===1&&Array.isArray(n[0])?new(e.bind.apply(e,_s([void 0],n[0].concat(this)))):new(e.bind.apply(e,_s([void 0],n.concat(this))))},e}(Array);function $f(t){return Ut(t)?uv(t,function(){}):t}function c9(t){return typeof t=="boolean"}function u9(){return function(e){return l9(e)}}function l9(t){t===void 0&&(t={});var e=t.thunk,n=e===void 0?!0:e;t.immutableCheck,t.serializableCheck;var r=new s9;return n&&(c9(n)?r.push(gv):r.push(gv.withExtraArgument(n.extraArgument))),r}var f9=!0;function d9(t){var e=u9(),n=t||{},r=n.reducer,i=r===void 0?void 0:r,o=n.middleware,a=o===void 0?e():o,s=n.devTools,c=s===void 0?!0:s,u=n.preloadedState,f=u===void 0?void 0:u,l=n.enhancers,d=l===void 0?void 0:l,p;if(typeof i=="function")p=i;else if(a9(i))p=Jf(i);else throw new Error('"reducer" is a required argument, and must be a function or an object of functions that can be passed to combineReducers');var h=a;typeof h=="function"&&(h=h(e));var m=_I.apply(void 0,h),g=Vs;c&&(g=o9(No({trace:!f9},typeof c=="object"&&c)));var y=[m];Array.isArray(d)?y=_s([m],d):typeof d=="function"&&(y=d(y));var b=g.apply(void 0,y);return hv(p,f,b)}function Lo(t,e){function n(){for(var r=[],i=0;i<arguments.length;i++)r[i]=arguments[i];if(e){var o=e.apply(void 0,r);if(!o)throw new Error("prepareAction did not return an object");return No(No({type:t,payload:o.payload},"meta"in o&&{meta:o.meta}),"error"in o&&{error:o.error})}return{type:t,payload:r[0]}}return n.toString=function(){return""+t},n.type=t,n.match=function(r){return r.type===t},n}function bv(t){var e={},n=[],r,i={addCase:function(o,a){var s=typeof o=="string"?o:o.type;if(s in e)throw new Error("addCase cannot be called with two reducers for the same action type");return e[s]=a,i},addMatcher:function(o,a){return n.push({matcher:o,reducer:a}),i},addDefaultCase:function(o){return r=o,i}};return t(i),[e,n,r]}function h9(t){return typeof t=="function"}function p9(t,e,n,r){n===void 0&&(n=[]);var i=typeof e=="function"?bv(e):[e,n,r],o=i[0],a=i[1],s=i[2],c;if(h9(t))c=function(){return $f(t())};else{var u=$f(t);c=function(){return u}}function f(l,d){l===void 0&&(l=c());var p=_s([o[d.type]],a.filter(function(h){var m=h.matcher;return m(d)}).map(function(h){var m=h.reducer;return m}));return p.filter(function(h){return!!h}).length===0&&(p=[s]),p.reduce(function(h,m){if(m)if(gn(h)){var g=h,y=m(g,d);return typeof y>"u"?h:y}else{if(Ut(h))return uv(h,function(b){return m(b,d)});var y=m(h,d);if(typeof y>"u"){if(h===null)return h;throw Error("A case reducer on a non-draftable value must not return undefined")}return y}return h},l)}return f.getInitialState=c,f}function m9(t,e){return t+"/"+e}function Av(t){var e=t.name;if(!e)throw new Error("`name` is a required option for createSlice");typeof process<"u";var n=typeof t.initialState=="function"?t.initialState:$f(t.initialState),r=t.reducers||{},i=Object.keys(r),o={},a={},s={};i.forEach(function(f){var l=r[f],d=m9(e,f),p,h;"reducer"in l?(p=l.reducer,h=l.prepare):p=l,o[f]=p,a[d]=p,s[f]=h?Lo(d,h):Lo(d)});function c(){var f=typeof t.extraReducers=="function"?bv(t.extraReducers):[t.extraReducers],l=f[0],d=l===void 0?{}:l,p=f[1],h=p===void 0?[]:p,m=f[2],g=m===void 0?void 0:m,y=No(No({},d),a);return p9(n,y,h,g)}var u;return{name:e,reducer:function(f,l){return u||(u=c()),u(f,l)},actions:s,caseReducers:o,getInitialState:function(){return u||(u=c()),u.getInitialState()}}}var ed="listenerMiddleware";Lo(ed+"/add"),Lo(ed+"/removeAll"),Lo(ed+"/remove"),RI();function g9(t,e){var n=t+"",r=e+"";return n<r?-1:n==r?0:1}var y9=[].forEach;function v9(t,e,n){if(typeof e!="function")throw new TypeError(e+" is not a function");var r,i=[],o=[],a=[];y9.call(t,function(c,u,f){if(r=e(c,u,f),r===void 0)return void a.push(c);if(n===void 0&&typeof r=="symbol")throw new TypeError("Can't convert symbol to string");i.push(u),o[u]=r}),n===void 0&&(n=g9),i.sort(function(c,u){return n(o[c],o[u])});var s=i.map(function(c){return t[c]}).concat(a);return s.length!=t.length&&(s.length=t.length),s}function b9(t,e){const n=i=>i.copy().range(_t(0,i.domain().length)).unknown(-1);let r;switch(e.type){case"quantitative":r=i=>le(i)&&!isNaN(i)?-i:-1/0;break;case"ordinal":r=n(e.scale);break;case"nominal":r=i=>i||"";break}return i=>r(t(i))}function A9(t,e){const n=new Set,r=i=>{const o=n.has(i);return n.add(i),o};return t.filter(i=>!r(e(i)))}function x9(t,e,n){const r=new Set,i=o=>(r.size<n&&r.add(o),r.has(o));return t.filter(o=>i(e(o)))}function w9(t,e,n=!1){return v9(t,e,(r,i)=>(n&&([r,i]=[i,r]),r<i?-1:r>i?1:0))}const C9={lt:(t,e)=>t<e,lte:(t,e)=>t<=e,eq:(t,e)=>t==e,gte:(t,e)=>t>=e,gt:(t,e)=>t>e};function S9(t,e,n,r){const i=C9[n];return t.filter(o=>i(e(o),r))}function xv(t,e,n,r){const i=new Set(r),o=s=>i.has(s),a=n=="remove"?s=>!o(s):o;return t.filter(s=>a(e(s)))}function E9(t,e){const n=r=>r!=null;return t.filter(r=>n(e(r)))}/**
2345
+ */const WC=(e,t,n)=>{const r=new Map;for(let i=t;i<=n;i++)r.set(e[i],i);return r},EV=Ya(class extends ys{constructor(e){if(super(e),e.type!==cr.CHILD)throw Error("repeat() can only be used in text expressions")}ht(e,t,n){let r;n===void 0?n=t:t!==void 0&&(r=t);const i=[],a=[];let o=0;for(const s of e)i[o]=r?r(s,o):o,a[o]=n(s,o),o++;return{values:a,keys:i}}render(e,t,n){return this.ht(e,t,n).values}update(e,[t,n,r]){var i;const a=AV(e),{values:o,keys:s}=this.ht(t,n,r);if(!Array.isArray(a))return this.ut=s,o;const l=(i=this.ut)!==null&&i!==void 0?i:this.ut=[],c=[];let u,f,h=0,d=a.length-1,p=0,g=o.length-1;for(;h<=d&&p<=g;)if(a[h]===null)h++;else if(a[d]===null)d--;else if(l[h]===s[p])c[p]=Xa(a[h],o[p]),h++,p++;else if(l[d]===s[g])c[g]=Xa(a[d],o[g]),d--,g--;else if(l[h]===s[g])c[g]=Xa(a[h],o[g]),zl(e,c[g+1],a[h]),h++,g--;else if(l[d]===s[p])c[p]=Xa(a[d],o[p]),zl(e,a[h],a[d]),d--,p++;else if(u===void 0&&(u=WC(s,p,g),f=WC(l,h,d)),u.has(l[h]))if(u.has(l[d])){const y=f.get(s[p]),v=y!==void 0?a[y]:null;if(v===null){const S=zl(e,a[h]);Xa(S,o[p]),c[p]=S}else c[p]=Xa(v,o[p]),zl(e,a[h],v),a[y]=null;p++}else C1(a[d]),d--;else C1(a[h]),h++;for(;p<=g;){const y=zl(e,c[g+1]);Xa(y,o[p]),c[p++]=y}for(;h<=d;){const y=a[h++];y!==null&&C1(y)}return this.ut=s,qC(e,c),pt}}),XC="close-dialog";function SV(){return new CustomEvent(XC,{bubbles:!0})}function Ka(e="default",t=document.body){const n=document.createElement("div");n.classList.add("gs-modal"),e!="default"&&n.classList.add(e);const r=a=>{var o;switch(a.key){case"Escape":{const s=n.querySelector(".btn-cancel");s&&(s.click(),a.stopPropagation());break}case"Enter":{if(((o=a.target)==null?void 0:o.tagName)=="TEXTAREA")return;n.querySelector(".btn-primary").click(),a.stopPropagation();break}}};n.addEventListener("keydown",r),Bt(z`<div class="backdrop"></div><div class="content"></div>`,n);const i=()=>{n.querySelector(".backdrop").addEventListener("transitionend",()=>n.remove()),n.classList.remove("visible"),document.body.classList.remove(ua)};return n.addEventListener("keydown",a=>{a.stopPropagation()}),n.addEventListener(XC,i),t.appendChild(n),window.requestAnimationFrame(()=>n.classList.add("visible")),e!="tour"&&document.body.classList.add(ua),{content:n.querySelector(".content"),close:i}}function Wt(e,t={}){const n=Ka(),r=t.title;return t.okLabel??(t.okLabel="OK"),new Promise((i,a)=>{const o=()=>{n.close(),i(!0)},s=z`${r?z`<div class="modal-title">${r}</div>`:ne}<div class="modal-body" style="max-width:700px">${e}</div><div class="modal-buttons">${t.cancelButton?z`<button class="btn" @click="${()=>{n.close(),i(!1)}}">Cancel</button>`:ne} <button class="btn" @click="${o}">${t.okLabel}</button></div>`;Bt(s,n.content)})}class KC extends sr{constructor(){super();Fe(this,ld);Fe(this,ud);Fe(this,au);Fe(this,fd);Fe(this,Fs,void 0);Fe(this,$r,void 0);Fe(this,zi,void 0);Fe(this,iu,0);this.values=[],this.thresholds=[],this.operators=[],this.colors=JC,this.showThresholdNumbers=!1,Sn(this,Fs,gk().thresholds(40)),Sn(this,$r,ce(this,Fs).call(this,[])),Sn(this,zi,Gu())}connectedCallback(){super.connectedCallback()}createRenderRoot(){return this}willUpdate(n){n.has("values")&&(Sn(this,$r,ce(this,Fs).call(this,this.values)),Sn(this,zi,Gu().domain(this.domain).range([0,100])))}get domain(){return[ce(this,$r).at(0).x0,ce(this,$r).at(-1).x1]}render(){const n=ce(this,zi),r=100/ce(this,$r).length,i=Ze(this,fd,m_).call(this).map(a=>z`<div style="${S1({width:r+.01+"%",left:a.x+"%",bottom:a.y+"%",height:a.height+"%",backgroundColor:typeof a.group=="number"?this.colors[a.group%this.colors.length]:"default"})}"></div>`);return z`<div class="histogram-widget"><div class="histogram-plot"><div class="histogram-bars">${i}</div><div class="histogram-thresholds" @click="${Ze(this,ld,p_)}">${this.thresholds.map((a,o)=>{const s=n(a);return s>=0&&s<=100?z`<div class="histogram-threshold" style="${S1({left:n(a)+"%"})}"><div class="histogram-knob" @mousedown="${l=>Ze(this,ud,g_).call(this,l,o)}">${this.showThresholdNumbers?o+1:ne}</div></div>`:ne})}</div><div class="${Zm({"histogram-hint":!0,visible:!this.thresholds.length})}"><span>Click here to add a threshold!</span></div></div><div class="histogram-domain"></div><div class="histogram-extent">${n.domain().map(a=>z`<div>${a}</div>`)}</div></div>`}}Fs=new WeakMap,$r=new WeakMap,zi=new WeakMap,iu=new WeakMap,ld=new WeakSet,p_=function(n){if(performance.now()<ce(this,iu)+200)return;const r=n.target,i=sv(r,n);Ze(this,au,Nb).call(this,"add",0,i[0]/r.offsetWidth)},ud=new WeakSet,g_=function(n,r){const a=n.target.closest(".histogram-threshold"),o=a.offsetLeft,s=a.offsetParent.offsetWidth;n.preventDefault(),n.stopPropagation(),this.style.cursor="col-resize",_V(n,(l,c)=>{Ze(this,au,Nb).call(this,"adjust",r,(o+l)/s)},()=>{Sn(this,iu,performance.now()),this.style.cursor=""})},au=new WeakSet,Nb=function(n,r,i){i=Df(i,0,1),this.dispatchEvent(new CV(n,r,+ce(this,zi).invert(i*100).toPrecision(3)))},fd=new WeakSet,m_=function(){const n=ce(this,$r),r=ce(this,zi),i=90/n.map(u=>u.length).reduce((u,f)=>Math.max(u,f),0),a=[],o=this.thresholds.length==1&&this.operators[0]=="eq",s=[-1/0,...this.thresholds,1/0],l=[!1,...this.operators.map(u=>["lte","gt"].includes(u)),!0],c=["gt","gte"].includes(this.operators[0])?u=>s.length-u-2:u=>u;for(let u=0;u<n.length;u++){const f=n[u],h=r(f.x0);let d=0,p=0;if(o)for(let g=0;g<=1;g++)p=DV(f,this.thresholds[0],g>0),p&&a.push({x:h,y:d*i,height:p*i,group:g}),d+=p;else if(this.thresholds.length)for(let g=0;g<s.length-1;g++){const y=c(g);p=kV(f,s[y],s[y+1],!l[y],l[y+1]),p&&a.push({x:h,y:d*i,height:p*i,group:g}),d+=p}else p=f.length,p&&a.push({x:h,y:d,height:p*i,group:null})}return a},En(KC,"properties",{values:{attribute:!1},thresholds:{attribute:!1},operators:{attribute:!1},colors:{attribute:!1},showThresholdNumbers:{}}),customElements.define("genome-spy-histogram",KC);class CV extends Event{constructor(t,n,r){super(t),this.index=n,this.value=r}}function _V(e,t,n){const r=e.clientX,i=e.clientY,a=function(s){t(s.clientX-r,s.clientY-i)},o=function(s){document.removeEventListener("mousemove",a),document.removeEventListener("mouseup",o),n==null||n(s.clientX-r,s.clientY-i)};document.addEventListener("mousemove",a),document.addEventListener("mouseup",o)}function kV(e,t,n,r=!0,i=!1){const a=r?l=>l>=t:l=>l>t,o=i?l=>l<=n:l=>l<n;let s=0;for(let l=0;l<e.length;l++){const c=e[l];a(c)&&o(c)&&s++}return s}function DV(e,t,n=!1){let r=0;for(let i=0;i<e.length;i++)r+=+(e[i]==t);return n?e.length-r:r}const JC=["#1f77b4","#ff7f0e","#2ca02c","#d62728","#9467bd","#8c564b"];function IV(e,t){var r;const n=(r=e.scale)==null?void 0:r.type;ai(n)?MV(e,t):Ft(n)||sa(n)?NV(e,t):e.type==="identifier"?TV(e,t):Wt("Not implemented (yet).")}function TV(e,t){e6(t.getSamples().map(n=>n.id),e,t)}function MV(e,t){const n=e.scale,r=i=>z`<span class="color" style="${S1({backgroundColor:n(i).toString()})}"></span>`;e6(n.domain(),e,t,r)}function e6(e,t,n,r=i=>ne){const i=n.provenance.storeHelper.getDispatcher(),a=new Set(t6(t,n.leafSamples,n.sampleHierarchy)),o=e.filter(C=>a.has(C)).map((C,E)=>({index:E,value:C,stringValue:`${C}`,lowerCaseValue:`${C}`.toLowerCase()})),s=Ka(),l=z`<div class="modal-title">Filter by <em>${t.name}</em></div>`,c=new Set;let u="";const f=C=>{i(n.actions.filterByNominal({values:e.filter(E=>c.has(E)),attribute:t.attribute,remove:C})),s.close()},h=()=>o.filter(C=>u.length==0||C.lowerCaseValue.includes(u)),d=C=>{u=C.target.value.toLowerCase(),k()},p=C=>{const E=C.target,w=o[+E.value].value;E.checked?c.add(w):c.delete(w),k()},g=C=>{var E;if(C.key=="ArrowDown")(E=s.content.querySelector(".gs-checkbox-list li:first-child input[type='checkbox']"))==null||E.focus(),C.preventDefault(),C.stopPropagation();else if(C.key=="Enter"){const w=h();w.length==1&&(c.add(w[0].value),k()),C.stopPropagation()}},y=()=>{s.content.querySelector("input[type='text']").focus()},v=C=>{var w,A,T,D,M;const E=C.target;if(E.type=="checkbox")if(C.key=="ArrowDown")(A=(w=E.closest("li").nextElementSibling)==null?void 0:w.querySelector("input[type='checkbox']"))==null||A.focus(),C.preventDefault();else if(C.key=="ArrowUp"){const F=(T=E.closest("li").previousElementSibling)==null?void 0:T.querySelector("input[type='checkbox']");F?F.focus():y(),C.preventDefault()}else C.key=="Esc"?(y(),C.stopPropagation()):C.key=="Tab"&&!C.shiftKey?(D=E.closest(".gs-checkbox-list").querySelector("li:last-child input"))==null||D.focus():C.key=="Tab"&&C.shiftKey&&((M=E.closest(".gs-checkbox-list").querySelector("li:first-child input"))==null||M.focus())},S=()=>z`<div class="modal-buttons"><button class="btn btn-cancel" @click="${()=>s.close()}">Cancel</button> <button class="btn" ?disabled="${!c.size}" @click="${()=>f(!1)}">${ke(Qa).node[0]} Retain</button> <button class="btn" ?disabled="${!c.size}" @click="${()=>f(!0)}">${ke(kh).node[0]} Remove</button></div>`;function k(){const C=h(),E=z`<div class="gs-form-group"><p>Please select one or more categories and choose an action.</p><input type="text" placeholder="Type something to filter the list" @keydown="${g}" @input="${d}"><div class="gs-checkbox-list-wrapper"><ul class="gs-checkbox-list" @input="${p}" @keydown="${v}">${EV(C,A=>A.value,A=>z`<li><label class="checkbox">${r(A.value)} <input type="checkbox" .checked="${c.has(A.value)}" .value="${""+A.index}"> ${A.stringValue}</label></li>`)}</ul>${C.length==0?z`<div class="search-note"><div>Nothing found</div></div>`:C.length==1&&o.length>1?z`<div class="search-note"><div>${ke(pG).node[0]} Hit enter to select the exact match</div></div>`:ne}</div><small>The number of selected categories: <strong>${c.size}</strong></small></div>`;Bt(z`${l}<div class="modal-body">${E}</div>${S()}`,s.content);const w=s.content.querySelector(".gs-checkbox-list");w.style.minHeight=`${w.offsetHeight}px`}k(),y()}function NV(e,t){var y;const n=t.provenance.storeHelper.getDispatcher();let r="lt",i;const a=Ka(),o=z`<div class="modal-title">Filter by <em>${e.name}</em></div>`,s=v=>{n(t.actions.filterByQuantitative({attribute:e.attribute,operator:r,operand:i})),a.close()},l=()=>z`<div class="modal-buttons"><button class="btn btn-cancel" @click="${()=>a.close()}">Cancel</button> <button class="btn btn-primary" ?disabled="${typeof i>"u"}" @click="${()=>s()}">${ke(Qa).node[0]} Retain</button></div>`,c=v=>{r=v.target.value,g()},u=v=>{const k=v.target.value;/^\d+(\.(\d+)?)?$/.test(k)&&(i=+k,g())},f=v=>{typeof i!="number"&&(i=v.value,g())},h=v=>{i=v.value,g()},d=t6(e,t.leafSamples,t.sampleHierarchy),p=()=>z`<div class="gs-form-group"><label>Retain samples where <em>${e.name}</em> is</label><div class="btn-group" role="group">${Object.entries(FV).map(([v,S])=>z`<button class="${Zm({btn:!0,chosen:v==r})}" .value="${v}" @click="${c}" title="${S[1]}">${S[0]}</button>`)}</div><genome-spy-histogram .values="${d}" .thresholds="${[i].filter(v=>v!==void 0)}" .operators="${[r]}" .colors="${["#1f77b4","#ddd"]}" .showThresholdNumbers="${!1}" @add="${f}" @adjust="${h}"></genome-spy-histogram><input type="text" placeholder="... or enter a numeric value here" .value="${typeof i=="number"?""+i:""}" @input="${u}"></div>`;function g(){Bt(z`${o}<div class="modal-body">${p()}</div>${l()}`,a.content)}g(),(y=a.content.querySelector("input[type='text']"))==null||y.focus()}const FV={lt:["<","less than"],lte:["≤","less than or equal to"],eq:["=","equal to"],gte:["≥","greater than or equal to"],gt:[">","greater than"]};function t6(e,t,n){const r=e.accessor;return t.map(i=>r(i,n))}function Un(e){for(var t=arguments.length,n=Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];throw Error("[Immer] minified error nr: "+e+(n.length?" "+n.map(function(i){return"'"+i+"'"}).join(","):"")+". Find the full error at: https://bit.ly/3cXEKWf")}function Bi(e){return!!e&&!!e[Ge]}function Pr(e){return!!e&&(function(t){if(!t||typeof t!="object")return!1;var n=Object.getPrototypeOf(t);if(n===null)return!0;var r=Object.hasOwnProperty.call(n,"constructor")&&n.constructor;return r===Object||typeof r=="function"&&Function.toString.call(r)===HV}(e)||Array.isArray(e)||!!e[f6]||!!e.constructor[f6]||_1(e)||k1(e))}function Ja(e,t,n){n===void 0&&(n=!1),Es(e)===0?(n?Object.keys:Cs)(e).forEach(function(r){n&&typeof r=="symbol"||t(r,e[r],e)}):e.forEach(function(r,i){return t(i,r,e)})}function Es(e){var t=e[Ge];return t?t.i>3?t.i-4:t.i:Array.isArray(e)?1:_1(e)?2:k1(e)?3:0}function Ss(e,t){return Es(e)===2?e.has(t):Object.prototype.hasOwnProperty.call(e,t)}function BV(e,t){return Es(e)===2?e.get(t):e[t]}function n6(e,t,n){var r=Es(e);r===2?e.set(t,n):r===3?(e.delete(t),e.add(n)):e[t]=n}function r6(e,t){return e===t?e!==0||1/e==1/t:e!=e&&t!=t}function _1(e){return UV&&e instanceof Map}function k1(e){return jV&&e instanceof Set}function eo(e){return e.o||e.t}function D1(e){if(Array.isArray(e))return Array.prototype.slice.call(e);var t=h6(e);delete t[Ge];for(var n=Cs(t),r=0;r<n.length;r++){var i=n[r],a=t[i];a.writable===!1&&(a.writable=!0,a.configurable=!0),(a.get||a.set)&&(t[i]={configurable:!0,writable:!0,enumerable:a.enumerable,value:e[i]})}return Object.create(Object.getPrototypeOf(e),t)}function I1(e,t){return t===void 0&&(t=!1),T1(e)||Bi(e)||!Pr(e)||(Es(e)>1&&(e.set=e.add=e.clear=e.delete=LV),Object.freeze(e),t&&Ja(e,function(n,r){return I1(r,!0)},!0)),e}function LV(){Un(2)}function T1(e){return e==null||typeof e!="object"||Object.isFrozen(e)}function ur(e){var t=P1[e];return t||Un(18,e),t}function OV(e,t){P1[e]||(P1[e]=t)}function M1(){return Pl}function N1(e,t){t&&(ur("Patches"),e.u=[],e.s=[],e.v=t)}function jh(e){F1(e),e.p.forEach(RV),e.p=null}function F1(e){e===Pl&&(Pl=e.l)}function i6(e){return Pl={p:[],l:Pl,h:e,m:!0,_:0}}function RV(e){var t=e[Ge];t.i===0||t.i===1?t.j():t.O=!0}function B1(e,t){t._=t.p.length;var n=t.p[0],r=e!==void 0&&e!==n;return t.h.g||ur("ES5").S(t,e,r),r?(n[Ge].P&&(jh(t),Un(4)),Pr(e)&&(e=Hh(t,e),t.l||Gh(t,e)),t.u&&ur("Patches").M(n[Ge].t,e,t.u,t.s)):e=Hh(t,n,[]),jh(t),t.u&&t.v(t.u,t.s),e!==u6?e:void 0}function Hh(e,t,n){if(T1(t))return t;var r=t[Ge];if(!r)return Ja(t,function(a,o){return a6(e,r,t,a,o,n)},!0),t;if(r.A!==e)return t;if(!r.P)return Gh(e,r.t,!0),r.t;if(!r.I){r.I=!0,r.A._--;var i=r.i===4||r.i===5?r.o=D1(r.k):r.o;Ja(r.i===3?new Set(i):i,function(a,o){return a6(e,r,i,a,o,n)}),Gh(e,i,!1),n&&e.u&&ur("Patches").R(r,n,e.u,e.s)}return r.o}function a6(e,t,n,r,i,a){if(Bi(i)){var o=Hh(e,i,a&&t&&t.i!==3&&!Ss(t.D,r)?a.concat(r):void 0);if(n6(n,r,o),!Bi(o))return;e.m=!1}if(Pr(i)&&!T1(i)){if(!e.h.F&&e._<1)return;Hh(e,i),t&&t.A.l||Gh(e,i)}}function Gh(e,t,n){n===void 0&&(n=!1),e.h.F&&e.m&&I1(t,n)}function L1(e,t){var n=e[Ge];return(n?eo(n):e)[t]}function o6(e,t){if(t in e)for(var n=Object.getPrototypeOf(e);n;){var r=Object.getOwnPropertyDescriptor(n,t);if(r)return r;n=Object.getPrototypeOf(n)}}function Li(e){e.P||(e.P=!0,e.l&&Li(e.l))}function O1(e){e.o||(e.o=D1(e.t))}function R1(e,t,n){var r=_1(t)?ur("MapSet").N(t,n):k1(t)?ur("MapSet").T(t,n):e.g?function(i,a){var o=Array.isArray(i),s={i:o?1:0,A:a?a.A:M1(),P:!1,I:!1,D:{},l:a,t:i,k:null,o:null,j:null,C:!1},l=s,c=Ul;o&&(l=[s],c=jl);var u=Proxy.revocable(l,c),f=u.revoke,h=u.proxy;return s.k=h,s.j=f,h}(t,n):ur("ES5").J(t,n);return(n?n.A:M1()).p.push(r),r}function zV(e){return Bi(e)||Un(22,e),function t(n){if(!Pr(n))return n;var r,i=n[Ge],a=Es(n);if(i){if(!i.P&&(i.i<4||!ur("ES5").K(i)))return i.t;i.I=!0,r=s6(n,a),i.I=!1}else r=s6(n,a);return Ja(r,function(o,s){i&&BV(i.t,o)===s||n6(r,o,t(s))}),a===3?new Set(r):r}(e)}function s6(e,t){switch(t){case 2:return new Map(e);case 3:return Array.from(e)}return D1(e)}function PV(){function e(a,o){var s=i[a];return s?s.enumerable=o:i[a]=s={configurable:!0,enumerable:o,get:function(){var l=this[Ge];return Ul.get(l,a)},set:function(l){var c=this[Ge];Ul.set(c,a,l)}},s}function t(a){for(var o=a.length-1;o>=0;o--){var s=a[o][Ge];if(!s.P)switch(s.i){case 5:r(s)&&Li(s);break;case 4:n(s)&&Li(s)}}}function n(a){for(var o=a.t,s=a.k,l=Cs(s),c=l.length-1;c>=0;c--){var u=l[c];if(u!==Ge){var f=o[u];if(f===void 0&&!Ss(o,u))return!0;var h=s[u],d=h&&h[Ge];if(d?d.t!==f:!r6(h,f))return!0}}var p=!!o[Ge];return l.length!==Cs(o).length+(p?0:1)}function r(a){var o=a.k;if(o.length!==a.t.length)return!0;var s=Object.getOwnPropertyDescriptor(o,o.length-1);if(s&&!s.get)return!0;for(var l=0;l<o.length;l++)if(!o.hasOwnProperty(l))return!0;return!1}var i={};OV("ES5",{J:function(a,o){var s=Array.isArray(a),l=function(u,f){if(u){for(var h=Array(f.length),d=0;d<f.length;d++)Object.defineProperty(h,""+d,e(d,!0));return h}var p=h6(f);delete p[Ge];for(var g=Cs(p),y=0;y<g.length;y++){var v=g[y];p[v]=e(v,u||!!p[v].enumerable)}return Object.create(Object.getPrototypeOf(f),p)}(s,a),c={i:s?5:4,A:o?o.A:M1(),P:!1,I:!1,D:{},l:o,t:a,k:l,o:null,O:!1,C:!1};return Object.defineProperty(l,Ge,{value:c,writable:!0}),l},S:function(a,o,s){s?Bi(o)&&o[Ge].A===a&&t(a.p):(a.u&&function l(c){if(c&&typeof c=="object"){var u=c[Ge];if(u){var f=u.t,h=u.k,d=u.D,p=u.i;if(p===4)Ja(h,function(k){k!==Ge&&(f[k]!==void 0||Ss(f,k)?d[k]||l(h[k]):(d[k]=!0,Li(u)))}),Ja(f,function(k){h[k]!==void 0||Ss(h,k)||(d[k]=!1,Li(u))});else if(p===5){if(r(u)&&(Li(u),d.length=!0),h.length<f.length)for(var g=h.length;g<f.length;g++)d[g]=!1;else for(var y=f.length;y<h.length;y++)d[y]=!0;for(var v=Math.min(h.length,f.length),S=0;S<v;S++)h.hasOwnProperty(S)||(d[S]=!0),d[S]===void 0&&l(h[S])}}}}(a.p[0]),t(a.p))},K:function(a){return a.i===4?n(a):r(a)}})}var c6,Pl,z1=typeof Symbol<"u"&&typeof Symbol("x")=="symbol",UV=typeof Map<"u",jV=typeof Set<"u",l6=typeof Proxy<"u"&&Proxy.revocable!==void 0&&typeof Reflect<"u",u6=z1?Symbol.for("immer-nothing"):((c6={})["immer-nothing"]=!0,c6),f6=z1?Symbol.for("immer-draftable"):"__$immer_draftable",Ge=z1?Symbol.for("immer-state"):"__$immer_state",HV=""+Object.prototype.constructor,Cs=typeof Reflect<"u"&&Reflect.ownKeys?Reflect.ownKeys:Object.getOwnPropertySymbols!==void 0?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:Object.getOwnPropertyNames,h6=Object.getOwnPropertyDescriptors||function(e){var t={};return Cs(e).forEach(function(n){t[n]=Object.getOwnPropertyDescriptor(e,n)}),t},P1={},Ul={get:function(e,t){if(t===Ge)return e;var n=eo(e);if(!Ss(n,t))return function(i,a,o){var s,l=o6(a,o);return l?"value"in l?l.value:(s=l.get)===null||s===void 0?void 0:s.call(i.k):void 0}(e,n,t);var r=n[t];return e.I||!Pr(r)?r:r===L1(e.t,t)?(O1(e),e.o[t]=R1(e.A.h,r,e)):r},has:function(e,t){return t in eo(e)},ownKeys:function(e){return Reflect.ownKeys(eo(e))},set:function(e,t,n){var r=o6(eo(e),t);if(r!=null&&r.set)return r.set.call(e.k,n),!0;if(!e.P){var i=L1(eo(e),t),a=i==null?void 0:i[Ge];if(a&&a.t===n)return e.o[t]=n,e.D[t]=!1,!0;if(r6(n,i)&&(n!==void 0||Ss(e.t,t)))return!0;O1(e),Li(e)}return e.o[t]===n&&typeof n!="number"&&(n!==void 0||t in e.o)||(e.o[t]=n,e.D[t]=!0,!0)},deleteProperty:function(e,t){return L1(e.t,t)!==void 0||t in e.t?(e.D[t]=!1,O1(e),Li(e)):delete e.D[t],e.o&&delete e.o[t],!0},getOwnPropertyDescriptor:function(e,t){var n=eo(e),r=Reflect.getOwnPropertyDescriptor(n,t);return r&&{writable:!0,configurable:e.i!==1||t!=="length",enumerable:r.enumerable,value:n[t]}},defineProperty:function(){Un(11)},getPrototypeOf:function(e){return Object.getPrototypeOf(e.t)},setPrototypeOf:function(){Un(12)}},jl={};Ja(Ul,function(e,t){jl[e]=function(){return arguments[0]=arguments[0][0],t.apply(this,arguments)}}),jl.deleteProperty=function(e,t){return jl.set.call(this,e,t,void 0)},jl.set=function(e,t,n){return Ul.set.call(this,e[0],t,n,e[0])};var GV=function(){function e(n){var r=this;this.g=l6,this.F=!0,this.produce=function(i,a,o){if(typeof i=="function"&&typeof a!="function"){var s=a;a=i;var l=r;return function(g){var y=this;g===void 0&&(g=s);for(var v=arguments.length,S=Array(v>1?v-1:0),k=1;k<v;k++)S[k-1]=arguments[k];return l.produce(g,function(C){var E;return(E=a).call.apply(E,[y,C].concat(S))})}}var c;if(typeof a!="function"&&Un(6),o!==void 0&&typeof o!="function"&&Un(7),Pr(i)){var u=i6(r),f=R1(r,i,void 0),h=!0;try{c=a(f),h=!1}finally{h?jh(u):F1(u)}return typeof Promise<"u"&&c instanceof Promise?c.then(function(g){return N1(u,o),B1(g,u)},function(g){throw jh(u),g}):(N1(u,o),B1(c,u))}if(!i||typeof i!="object"){if((c=a(i))===void 0&&(c=i),c===u6&&(c=void 0),r.F&&I1(c,!0),o){var d=[],p=[];ur("Patches").M(i,c,d,p),o(d,p)}return c}Un(21,i)},this.produceWithPatches=function(i,a){if(typeof i=="function")return function(c){for(var u=arguments.length,f=Array(u>1?u-1:0),h=1;h<u;h++)f[h-1]=arguments[h];return r.produceWithPatches(c,function(d){return i.apply(void 0,[d].concat(f))})};var o,s,l=r.produce(i,a,function(c,u){o=c,s=u});return typeof Promise<"u"&&l instanceof Promise?l.then(function(c){return[c,o,s]}):[l,o,s]},typeof(n==null?void 0:n.useProxies)=="boolean"&&this.setUseProxies(n.useProxies),typeof(n==null?void 0:n.autoFreeze)=="boolean"&&this.setAutoFreeze(n.autoFreeze)}var t=e.prototype;return t.createDraft=function(n){Pr(n)||Un(8),Bi(n)&&(n=zV(n));var r=i6(this),i=R1(this,n,void 0);return i[Ge].C=!0,F1(r),i},t.finishDraft=function(n,r){var i=n&&n[Ge],a=i.A;return N1(a,r),B1(void 0,a)},t.setAutoFreeze=function(n){this.F=n},t.setUseProxies=function(n){n&&!l6&&Un(20),this.g=n},t.applyPatches=function(n,r){var i;for(i=r.length-1;i>=0;i--){var a=r[i];if(a.path.length===0&&a.op==="replace"){n=a.value;break}}i>-1&&(r=r.slice(i+1));var o=ur("Patches").$;return Bi(n)?o(n,r):this.produce(n,function(s){return o(s,r)})},e}(),Xt=new GV,d6=Xt.produce;Xt.produceWithPatches.bind(Xt),Xt.setAutoFreeze.bind(Xt),Xt.setUseProxies.bind(Xt),Xt.applyPatches.bind(Xt),Xt.createDraft.bind(Xt),Xt.finishDraft.bind(Xt);function $V(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function p6(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function g6(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?p6(Object(n),!0).forEach(function(r){$V(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):p6(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function St(e){return"Minified Redux error #"+e+"; visit https://redux.js.org/Errors?code="+e+" for the full message or use the non-minified dev environment for full errors. "}var m6=function(){return typeof Symbol=="function"&&Symbol.observable||"@@observable"}(),U1=function(){return Math.random().toString(36).substring(7).split("").join(".")},$h={INIT:"@@redux/INIT"+U1(),REPLACE:"@@redux/REPLACE"+U1(),PROBE_UNKNOWN_ACTION:function(){return"@@redux/PROBE_UNKNOWN_ACTION"+U1()}};function VV(e){if(typeof e!="object"||e===null)return!1;for(var t=e;Object.getPrototypeOf(t)!==null;)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}function b6(e,t,n){var r;if(typeof t=="function"&&typeof n=="function"||typeof n=="function"&&typeof arguments[3]=="function")throw new Error(St(0));if(typeof t=="function"&&typeof n>"u"&&(n=t,t=void 0),typeof n<"u"){if(typeof n!="function")throw new Error(St(1));return n(b6)(e,t)}if(typeof e!="function")throw new Error(St(2));var i=e,a=t,o=[],s=o,l=!1;function c(){s===o&&(s=o.slice())}function u(){if(l)throw new Error(St(3));return a}function f(g){if(typeof g!="function")throw new Error(St(4));if(l)throw new Error(St(5));var y=!0;return c(),s.push(g),function(){if(y){if(l)throw new Error(St(6));y=!1,c();var S=s.indexOf(g);s.splice(S,1),o=null}}}function h(g){if(!VV(g))throw new Error(St(7));if(typeof g.type>"u")throw new Error(St(8));if(l)throw new Error(St(9));try{l=!0,a=i(a,g)}finally{l=!1}for(var y=o=s,v=0;v<y.length;v++){var S=y[v];S()}return g}function d(g){if(typeof g!="function")throw new Error(St(10));i=g,h({type:$h.REPLACE})}function p(){var g,y=f;return g={subscribe:function(S){if(typeof S!="object"||S===null)throw new Error(St(11));function k(){S.next&&S.next(u())}k();var C=y(k);return{unsubscribe:C}}},g[m6]=function(){return this},g}return h({type:$h.INIT}),r={dispatch:h,subscribe:f,getState:u,replaceReducer:d},r[m6]=p,r}function YV(e){Object.keys(e).forEach(function(t){var n=e[t],r=n(void 0,{type:$h.INIT});if(typeof r>"u")throw new Error(St(12));if(typeof n(void 0,{type:$h.PROBE_UNKNOWN_ACTION()})>"u")throw new Error(St(13))})}function j1(e){for(var t=Object.keys(e),n={},r=0;r<t.length;r++){var i=t[r];typeof e[i]=="function"&&(n[i]=e[i])}var a=Object.keys(n),o;try{YV(n)}catch(s){o=s}return function(l,c){if(l===void 0&&(l={}),o)throw o;for(var u=!1,f={},h=0;h<a.length;h++){var d=a[h],p=n[d],g=l[d],y=p(g,c);if(typeof y>"u")throw c&&c.type,new Error(St(14));f[d]=y,u=u||y!==g}return u=u||a.length!==Object.keys(l).length,u?f:l}}function Vh(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.length===0?function(r){return r}:t.length===1?t[0]:t.reduce(function(r,i){return function(){return r(i.apply(void 0,arguments))}})}function QV(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return function(r){return function(){var i=r.apply(void 0,arguments),a=function(){throw new Error(St(15))},o={getState:i.getState,dispatch:function(){return a.apply(void 0,arguments)}},s=t.map(function(l){return l(o)});return a=Vh.apply(void 0,s)(i.dispatch),g6(g6({},i),{},{dispatch:a})}}}var Yh="NOT_FOUND";function ZV(e){var t;return{get:function(r){return t&&e(t.key,r)?t.value:Yh},put:function(r,i){t={key:r,value:i}},getEntries:function(){return t?[t]:[]},clear:function(){t=void 0}}}function qV(e,t){var n=[];function r(s){var l=n.findIndex(function(u){return t(s,u.key)});if(l>-1){var c=n[l];return l>0&&(n.splice(l,1),n.unshift(c)),c.value}return Yh}function i(s,l){r(s)===Yh&&(n.unshift({key:s,value:l}),n.length>e&&n.pop())}function a(){return n}function o(){n=[]}return{get:r,put:i,getEntries:a,clear:o}}var WV=function(t,n){return t===n};function XV(e){return function(n,r){if(n===null||r===null||n.length!==r.length)return!1;for(var i=n.length,a=0;a<i;a++)if(!e(n[a],r[a]))return!1;return!0}}function KV(e,t){var n=typeof t=="object"?t:{equalityCheck:t},r=n.equalityCheck,i=r===void 0?WV:r,a=n.maxSize,o=a===void 0?1:a,s=n.resultEqualityCheck,l=XV(i),c=o===1?ZV(l):qV(o,l);function u(){var f=c.get(arguments);if(f===Yh){if(f=e.apply(null,arguments),s){var h=c.getEntries(),d=h.find(function(p){return s(p.value,f)});d&&(f=d.value)}c.put(arguments,f)}return f}return u.clearCache=function(){return c.clear()},u}function JV(e){var t=Array.isArray(e[0])?e[0]:e;if(!t.every(function(r){return typeof r=="function"})){var n=t.map(function(r){return typeof r=="function"?"function "+(r.name||"unnamed")+"()":typeof r}).join(", ");throw new Error("createSelector expects all input-selectors to be functions, but received the following types: ["+n+"]")}return t}function eY(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];var i=function(){for(var o=arguments.length,s=new Array(o),l=0;l<o;l++)s[l]=arguments[l];var c=0,u,f={memoizeOptions:void 0},h=s.pop();if(typeof h=="object"&&(f=h,h=s.pop()),typeof h!="function")throw new Error("createSelector expects an output function after the inputs, but received: ["+typeof h+"]");var d=f,p=d.memoizeOptions,g=p===void 0?n:p,y=Array.isArray(g)?g:[g],v=JV(s),S=e.apply(void 0,[function(){return c++,h.apply(null,arguments)}].concat(y)),k=e(function(){for(var C=[],E=v.length,w=0;w<E;w++)C.push(v[w].apply(null,arguments));return u=S.apply(null,C),u});return Object.assign(k,{resultFunc:h,memoizedResultFunc:S,dependencies:v,lastResult:function(){return u},recomputations:function(){return c},resetRecomputations:function(){return c=0}}),k};return i}var tY=eY(KV);function y6(e){var t=function(r){var i=r.dispatch,a=r.getState;return function(o){return function(s){return typeof s=="function"?s(i,a,e):o(s)}}};return t}var v6=y6();v6.withExtraArgument=y6;const w6=v6;var nY=globalThis&&globalThis.__extends||function(){var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,i){r.__proto__=i}||function(r,i){for(var a in i)Object.prototype.hasOwnProperty.call(i,a)&&(r[a]=i[a])},e(t,n)};return function(t,n){if(typeof n!="function"&&n!==null)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");e(t,n);function r(){this.constructor=t}t.prototype=n===null?Object.create(n):(r.prototype=n.prototype,new r)}}();globalThis&&globalThis.__generator;var Qh=globalThis&&globalThis.__spreadArray||function(e,t){for(var n=0,r=t.length,i=e.length;n<r;n++,i++)e[i]=t[n];return e},rY=Object.defineProperty,x6=Object.getOwnPropertySymbols,iY=Object.prototype.hasOwnProperty,aY=Object.prototype.propertyIsEnumerable,A6=function(e,t,n){return t in e?rY(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n},Hl=function(e,t){for(var n in t||(t={}))iY.call(t,n)&&A6(e,n,t[n]);if(x6)for(var r=0,i=x6(t);r<i.length;r++){var n=i[r];aY.call(t,n)&&A6(e,n,t[n])}return e},oY=typeof window<"u"&&window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__?window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__:function(){if(arguments.length!==0)return typeof arguments[0]=="object"?Vh:Vh.apply(null,arguments)};function sY(e){if(typeof e!="object"||e===null)return!1;var t=Object.getPrototypeOf(e);if(t===null)return!0;for(var n=t;Object.getPrototypeOf(n)!==null;)n=Object.getPrototypeOf(n);return t===n}var cY=function(e){nY(t,e);function t(){for(var n=[],r=0;r<arguments.length;r++)n[r]=arguments[r];var i=e.apply(this,n)||this;return Object.setPrototypeOf(i,t.prototype),i}return Object.defineProperty(t,Symbol.species,{get:function(){return t},enumerable:!1,configurable:!0}),t.prototype.concat=function(){for(var n=[],r=0;r<arguments.length;r++)n[r]=arguments[r];return e.prototype.concat.apply(this,n)},t.prototype.prepend=function(){for(var n=[],r=0;r<arguments.length;r++)n[r]=arguments[r];return n.length===1&&Array.isArray(n[0])?new(t.bind.apply(t,Qh([void 0],n[0].concat(this)))):new(t.bind.apply(t,Qh([void 0],n.concat(this))))},t}(Array);function H1(e){return Pr(e)?d6(e,function(){}):e}function lY(e){return typeof e=="boolean"}function uY(){return function(t){return fY(t)}}function fY(e){e===void 0&&(e={});var t=e.thunk,n=t===void 0?!0:t;e.immutableCheck,e.serializableCheck;var r=new cY;return n&&(lY(n)?r.push(w6):r.push(w6.withExtraArgument(n.extraArgument))),r}var hY=!0;function dY(e){var t=uY(),n=e||{},r=n.reducer,i=r===void 0?void 0:r,a=n.middleware,o=a===void 0?t():a,s=n.devTools,l=s===void 0?!0:s,c=n.preloadedState,u=c===void 0?void 0:c,f=n.enhancers,h=f===void 0?void 0:f,d;if(typeof i=="function")d=i;else if(sY(i))d=j1(i);else throw new Error('"reducer" is a required argument, and must be a function or an object of functions that can be passed to combineReducers');var p=o;typeof p=="function"&&(p=p(t));var g=QV.apply(void 0,p),y=Vh;l&&(y=oY(Hl({trace:!hY},typeof l=="object"&&l)));var v=[g];Array.isArray(h)?v=Qh([g],h):typeof h=="function"&&(v=h(v));var S=y.apply(void 0,v);return b6(d,u,S)}function Gl(e,t){function n(){for(var r=[],i=0;i<arguments.length;i++)r[i]=arguments[i];if(t){var a=t.apply(void 0,r);if(!a)throw new Error("prepareAction did not return an object");return Hl(Hl({type:e,payload:a.payload},"meta"in a&&{meta:a.meta}),"error"in a&&{error:a.error})}return{type:e,payload:r[0]}}return n.toString=function(){return""+e},n.type=e,n.match=function(r){return r.type===e},n}function E6(e){var t={},n=[],r,i={addCase:function(a,o){var s=typeof a=="string"?a:a.type;if(s in t)throw new Error("addCase cannot be called with two reducers for the same action type");return t[s]=o,i},addMatcher:function(a,o){return n.push({matcher:a,reducer:o}),i},addDefaultCase:function(a){return r=a,i}};return e(i),[t,n,r]}function pY(e){return typeof e=="function"}function gY(e,t,n,r){n===void 0&&(n=[]);var i=typeof t=="function"?E6(t):[t,n,r],a=i[0],o=i[1],s=i[2],l;if(pY(e))l=function(){return H1(e())};else{var c=H1(e);l=function(){return c}}function u(f,h){f===void 0&&(f=l());var d=Qh([a[h.type]],o.filter(function(p){var g=p.matcher;return g(h)}).map(function(p){var g=p.reducer;return g}));return d.filter(function(p){return!!p}).length===0&&(d=[s]),d.reduce(function(p,g){if(g)if(Bi(p)){var y=p,v=g(y,h);return typeof v>"u"?p:v}else{if(Pr(p))return d6(p,function(S){return g(S,h)});var v=g(p,h);if(typeof v>"u"){if(p===null)return p;throw Error("A case reducer on a non-draftable value must not return undefined")}return v}return p},f)}return u.getInitialState=l,u}function mY(e,t){return e+"/"+t}function S6(e){var t=e.name;if(!t)throw new Error("`name` is a required option for createSlice");typeof process<"u";var n=typeof e.initialState=="function"?e.initialState:H1(e.initialState),r=e.reducers||{},i=Object.keys(r),a={},o={},s={};i.forEach(function(u){var f=r[u],h=mY(t,u),d,p;"reducer"in f?(d=f.reducer,p=f.prepare):d=f,a[u]=d,o[h]=d,s[u]=p?Gl(h,p):Gl(h)});function l(){var u=typeof e.extraReducers=="function"?E6(e.extraReducers):[e.extraReducers],f=u[0],h=f===void 0?{}:f,d=u[1],p=d===void 0?[]:d,g=u[2],y=g===void 0?void 0:g,v=Hl(Hl({},h),o);return gY(n,v,p,y)}var c;return{name:t,reducer:function(u,f){return c||(c=l()),c(u,f)},actions:s,caseReducers:a,getInitialState:function(){return c||(c=l()),c.getInitialState()}}}var G1="listenerMiddleware";Gl(G1+"/add"),Gl(G1+"/removeAll"),Gl(G1+"/remove"),PV();function bY(e,t){var n=e+"",r=t+"";return n<r?-1:n==r?0:1}var yY=[].forEach;function vY(e,t,n){if(typeof t!="function")throw new TypeError(t+" is not a function");var r,i=[],a=[],o=[];yY.call(e,function(l,c,u){if(r=t(l,c,u),r===void 0)return void o.push(l);if(n===void 0&&typeof r=="symbol")throw new TypeError("Can't convert symbol to string");i.push(c),a[c]=r}),n===void 0&&(n=bY),i.sort(function(l,c){return n(a[l],a[c])});var s=i.map(function(l){return e[l]}).concat(o);return s.length!=e.length&&(s.length=e.length),s}function wY(e,t){const n=i=>i.copy().range(qr(0,i.domain().length)).unknown(-1);let r;switch(t.type){case"quantitative":r=i=>Ke(i)&&!isNaN(i)?-i:-1/0;break;case"ordinal":r=n(t.scale);break;case"nominal":r=i=>i||"";break}return i=>r(e(i))}function xY(e,t){const n=new Set,r=i=>{const a=n.has(i);return n.add(i),a};return e.filter(i=>!r(t(i)))}function AY(e,t,n){const r=new Set,i=a=>(r.size<n&&r.add(a),r.has(a));return e.filter(a=>i(t(a)))}function EY(e,t,n=!1){return vY(e,t,(r,i)=>(n&&([r,i]=[i,r]),r<i?-1:r>i?1:0))}const SY={lt:(e,t)=>e<t,lte:(e,t)=>e<=t,eq:(e,t)=>e==t,gte:(e,t)=>e>=t,gt:(e,t)=>e>t};function CY(e,t,n,r){const i=SY[n];return e.filter(a=>i(t(a),r))}function C6(e,t,n,r){const i=new Set(r),a=s=>i.has(s),o=n=="remove"?s=>!a(s):a;return e.filter(s=>o(t(s)))}function _Y(e,t){const n=r=>r!=null;return e.filter(r=>n(t(r)))}/**
2159
2346
  * @license
2160
2347
  * Copyright 2021 Google LLC
2161
2348
  * SPDX-License-Identifier: BSD-3-Clause
2162
- */function*D9(t,e){const n=typeof e=="function";if(t!==void 0){let r=-1;for(const i of t)r>-1&&(yield n?e(r):e),r++,yield i}}const wv="setSamples",Cv="sortBy",Sv="retainFirstOfEach",Ev="retainFirstNCategories",Dv="filterByNominal",Mv="filterByQuantitative",Tv="removeUndefined",Iv="groupByNominal",kv="groupToQuartiles",Nv="groupByThresholds",Lv="removeGroup",Bv="retainMatched",ri="sampleView";function M9(){return{sampleData:void 0,groupMetadata:[],rootGroup:{name:"ROOT",title:"Root",samples:[]}}}function T9(t){const e=(n,r)=>{const i=t(n.attribute).accessor;return o=>i(o,r)};return Av({name:ri,initialState:M9(),reducers:{[wv]:(n,r)=>{const i=r.payload.samples;if(n.sampleData)throw new Error("Samples have already been set!");if(i.some(a=>a.id===void 0||a.id===null))throw new Error('The sample metadata contains missing sample ids or the "sample" column is missing!');if(new Set(i.map(a=>a.id)).size!=i.length)throw new Error("The sample metadata contains duplicate sample ids!");const o=i.map((a,s)=>({...a,indexNumber:s}));n.sampleData={ids:o.map(a=>a.id),entities:Object.fromEntries(o.map(a=>[a.id,a]))},n.rootGroup={name:"ROOT",title:"Root",samples:n.sampleData.ids}},[Cv]:(n,r)=>{pr(n,i=>w9(i,b9(e(r.payload,n),t(r.payload.attribute)),!1))},[Sv]:(n,r)=>{pr(n,i=>A9(i,e(r.payload,n)))},[Ev]:(n,r)=>{pr(n,i=>x9(i,e(r.payload,n),r.payload.n))},[Mv]:(n,r)=>{pr(n,i=>S9(i,e(r.payload,n),r.payload.operator,r.payload.operand))},[Dv]:(n,r)=>{pr(n,i=>xv(i,e(r.payload,n),r.payload.remove?"remove":"retain",r.payload.values))},[Tv]:(n,r)=>{pr(n,i=>E9(i,e(r.payload,n)))},[Iv]:(n,r)=>{var o;const i=(o=t(r.payload.attribute).scale)==null?void 0:o.domain();td(n,a=>zv(a,e(r.payload,n),i)),n.groupMetadata.push({attribute:r.payload.attribute})},[kv]:(n,r)=>{td(n,i=>L9(i,e(r.payload,n))),n.groupMetadata.push({attribute:r.payload.attribute})},[Nv]:(n,r)=>{td(n,i=>N9(i,e(r.payload,n),r.payload.thresholds)),n.groupMetadata.push({attribute:r.payload.attribute})},[Lv]:(n,r)=>{const i=n.rootGroup;Ws(i)&&jv(i,r.payload.path)},[Bv]:(n,r)=>{const i=e(r.payload,n),o=[];for(const s of nd(n))if(s.samples.length>0){const c=new Set;for(const u of s.samples)c.add(i(u));o.push(c)}const a=[];for(const s of o[0]){let c=!0;for(let u=1;u<o.length&&c;u++)c=o[u].has(s);c&&a.push(s)}pr(n,s=>xv(s,i,"retain",a))}}})}function pr(t,e){for(const n of nd(t))n.samples=e(n.samples)}function td(t,e){for(const n of nd(t))e(n)}function nd(t){return id(t).map(e=>Re(e))}function rd(t){return t.provenance.present[ri]}function id(t){const e=[],n=[],r=i=>{if(e.push(i),Ws(i))for(const o of i.groups)r(o);else n.push([...e]);e.pop()};return r(t.rootGroup),n}function Ov(t){return"samples"in t}function Ws(t){return"groups"in t}function*od(t){if(yield[t],Ws(t))for(const e of t.groups)for(const n of od(e))yield[t,...n]}const I9=de(".4"),Fv={lt:"<",lte:"≤",eq:"=",gte:"≥",gt:">"};function Pv(t){return E`{${t.map((e,n)=>E`${n>0?", ":""}<strong>${e}</strong>`)}}`}function k9(t,e){if(!t.type.startsWith(ri))return;const n=t.payload,r=n.attribute&&e(n.attribute),i=r==null?void 0:r.name,o=(r==null?void 0:r.title)||E`<em>${i}</em>`,a={attributeName:i};switch(t.type.substring(ri.length+1)){case wv:return{...a,title:"The initial state",icon:g6};case Cv:return{...a,title:"Sort by",provenanceTitle:E`Sort by ${o}`,icon:c6};case Sv:return{...a,title:E`Retain the first sample of each <em>${i}</em>`,provenanceTitle:E`Retain the first sample of each ${o}`,icon:Q1};case Ev:return{...a,title:E`Retain first <strong>n</strong> categories of <em>${i}</em>...`,provenanceTitle:E`Retain first <strong>${n.n}</strong> categories of ${o}`,icon:Q1};case Dv:{const c=n.values,u=f=>E`${n.remove?"Remove":"Retain"} samples having ${c[0]===void 0||c[0]===null?E`undefined ${f}`:E`${f} ${c.length>1?E`in ${Pv(c)}`:E`<span class="operator">=</span> <strong>${c[0]}</strong>`}`}`;return{...a,title:u(E`<em>${i}</em>`),provenanceTitle:u(o),icon:n.remove?Ds:ar}}case Mv:{const c=u=>E`Retain samples having ${u} <span class="operator">${Fv[n.operator]}</span> <strong>${I9(n.operand)}</strong>`;return{...a,title:c(E`<em>${i}</em>`),provenanceTitle:c(o),icon:ar}}case Tv:return{...a,title:"Remove samples having missing attribute",provenanceTitle:E`Remove samples having missing ${o}`,icon:Ds};case Iv:return{...a,title:"Group by",provenanceTitle:E`Group by ${o}`,icon:xo};case kv:return{...a,title:"Group by quartiles",provenanceTitle:E`Group by quartiles on ${o}`,icon:xo};case Nv:return{...a,title:"Group by thresholds",provenanceTitle:E`Group by thresholds ${Pv(n.thresholds.map(c=>`${Fv[c.operator]} ${c.operand}`))} on ${o}`,icon:xo};case Lv:return{title:"Remove group",provenanceTitle:E`Remove group ${D9(n.path.map(c=>E`<strong>${c}</strong>`)," / ")}`,icon:Ds};case Bv:return{...a,title:E`Retain group-wise matched samples using <em>${i}</em>`,provenanceTitle:E`Retain group-wise matched samples using ${o}`,icon:ar};default:return{...a,title:JSON.stringify(t),icon:H1}}}function zv(t,e,n,r){if(r&&!n)throw new Error("Custom labels need explicit group order!");const i=pi(t.samples,e),o=n?n.map(c=>[c,i.get(c)]).filter(c=>c[1]):[...i],s=t;s.groups=o.map(([c,u],f)=>({name:""+c,title:r?r[f]:c,samples:u})),delete t.samples}function Rv(t,e,n){const r=a=>`Group ${a+1}`,i=_t(n.length-1).reverse(),o=Uv(e,n.slice(1,n.length-1));zv(t,a=>r(o(a)),i.map(r),i.map(a=>Gv(n[a],n[a+1])))}function N9(t,e,n){Rv(t,e,[{operator:"lt",operand:-1/0},...n,{operator:"lte",operand:1/0}])}function L9(t,e){const n=O9(B9(t.samples,e,[0,.25,.5,.75,1]));n.length==1&&n.push(n[0]),Rv(t,e,n.map((r,i,o)=>({operator:i==o.length-1?"lte":"lt",operand:r})))}function jv(t,e){if(e.length==0)return;const n=t.groups.findIndex(r=>r.name==e[0]);if(!(n<0)){if(e.length==1)t.groups.splice(n,1);else if(e.length>1){const r=t.groups[n];Ws(r)&&jv(r,[...e].splice(1))}}}function Uv(t,e){return r=>{const i=t(r);if(!(!le(i)||isNaN(i))){for(let o=0;o<e.length;o++)if(e[o].operator=="lt"){if(i<e[o].operand)return o}else if(i<=e[o].operand)return o;return e.length}}}function B9(t,e,n){const r=W2(t.map(e).filter(i=>le(i)&&!isNaN(i)));return n.map(i=>Ic(r,i))}function O9(t){const e=[t[0]];for(let n=1;n<t.length;n++)t[n]!=t[n-1]&&e.push(t[n]);return e}const Hv=de(".3~r"),Gv=(t,e)=>`${t.operator=="lt"?"[":"("}${Hv(t.operand)}, ${Hv(e.operand)}${e.operator=="lte"?"]":")"}`;function F9(t,e){const n=e.provenance.storeHelper.getDispatcher(),r=[],i=fr(),o=E`<div class="modal-title">Group by threshold on <em>${t.name}</em></div>`,a=g=>{n(e.actions.groupByThresholds({attribute:t.attribute,thresholds:r})),i.close()},s=()=>E`<div class="modal-buttons"><button class="btn btn-cancel" @click="${()=>i.close()}">Cancel</button> <button class="btn btn-primary" ?disabled="${!P9(r)}" @click="${()=>a()}">${K(xo).node[0]} Group</button></div>`,c=(g,y)=>(y>0&&(g=Math.max(g,r[y-1].operand)),y<r.length-1&&(g=Math.min(g,r[y+1].operand)),g),u=(g,y)=>{const b=g.target.value;r[y].operator=b,m()},f=(g,y)=>{const b=g.target.value;/^\d+(\.\d+)?$/.test(b)&&(r[y].operand=c(+b,y),m())},l=g=>{const y=r.findIndex(b=>b.operand>g.value);r.splice(y<0?r.length:y,0,{operand:g.value,operator:"lt"}),m()},d=g=>{r[g.index].operand=c(g.value,g.index),m()},p=g=>{r.splice(g,1),m()},h=z9(t,e.leafSamples,e.sampleHierarchy);function m(){const g=()=>{const b=[{operand:-1/0,operator:"lt"},...r,{operand:1/0,operator:"lte"}],w=Uv(v=>v,b),C=[];for(let v=1;v<b.length;v++)C.push(0);for(const v of h)C[w(v)-1]++;const x=[];for(let v=1;v<b.length;v++)x.push({index:v-1,name:v,interval:Gv(b[v-1],b[v]),n:C[v-1]});return E`<table class="threshold-groups"><thead><tr><th>Group</th><th>Interval</th><th>n</th></tr></thead><tbody>${x.map(v=>E`<tr><td><span class="group-color" style="background-color:${Zy[v.index]}"></span> ${v.name}</td><td>${v.interval}</td><td>${v.n}</td></tr>`)}</tbody></table>`},y=E`<div class="gs-form-group group-by-thresholds-form"><label>Split into groups using the thresholds:</label><genome-spy-histogram .values="${h}" .thresholds="${r.map(b=>b.operand)}" .operators="${r.map(b=>b.operator)}" .showThresholdNumbers="${!0}" @add="${l}" @adjust="${d}"></genome-spy-histogram>${r.map((b,w)=>E`<div class="threshold-flex"><select .value="${b.operator}" @change="${C=>u(C,w)}"><option value="lt">${"<"}</option><option value="lte">${"≤"}</option></select> <input .value="${""+b.operand}" type="text" placeholder="Numeric value" @input="${C=>f(C,w)}" @blur="${C=>{C.target.value=""+r[w].operand}}"> <button @click="${()=>p(w)}" class="btn" title="Remove">${K(V1).node[0]}</button></div>`)} ${r.length?E`<small>The operator specifies whether the upper endpoint of the interval (<em>i.e.</em>, the group) is exclusive (&lt;) or inclusive(≤). </small>${g()}`:z}</div>`;Be(E`${o}<div class="modal-body">${y}</div>${s()}`,i.content)}m()}function P9(t){return t.length}function z9(t,e,n){const r=t.accessor;return e.map(i=>r(i,n))}function R9(t,e){const n=e.provenance.storeHelper.getDispatcher();let r=5;const i=fr(),o=E`<div class="modal-title">Retain first n categories of <em>${t.title}</em></div>`,a=f=>{n(e.actions.retainFirstNCategories({attribute:t.attribute,n:r})),i.close()},s=()=>E`<div class="modal-buttons"><button class="btn btn-cancel" @click="${()=>i.close()}">Cancel</button> <button class="btn btn-primary" @click="${()=>a()}">${K(ar).node[0]} Retain</button></div>`,c=E`<div class="gs-form-group"><label>Number of categories to retain:</label> <input type="number" min="1" .valueAsNumber="${r}" @change="${f=>{r=f.target.valueAsNumber}}"></div>`;function u(){Be(E`${o}<div class="modal-body">${c}</div>${s()}`,i.content)}u(),i.content.querySelector("input").focus()}function ad(t,e,n,r){const i=r.actions,o=e.attribute,a=r.sampleHierarchy,s=r.provenance.storeHelper.getDispatcher(),c=[];t&&c.push({label:t,type:"header"});const u=(d,p,h)=>{const m=r.provenance.getActionInfo(d);return{label:m.title,icon:m.icon,callback:p?void 0:h??(()=>s(d))}},f=(...d)=>c.push(...d.map(p=>u(p)));f(i.sortBy({attribute:o}));const l=(e==null?void 0:e.type)??"identifier";return l!="quantitative"?(l!="identifier"&&(f(i.groupByNominal({attribute:o}),i.retainFirstOfEach({attribute:o})),c.push(u(i.retainFirstNCategories({attribute:o,n:void 0}),!1,()=>R9(e,r)))),f(i.filterByNominal({attribute:o,values:[n]}),i.filterByNominal({attribute:o,remove:!0,values:[n]})),l!="identifier"&&c.push(u(i.retainMatched({attribute:o}),!a.groupMetadata.length))):(f(i.groupToQuartiles({attribute:o})),c.push({icon:xo,label:"Group by thresholds...",callback:()=>F9(e,r)}),j9(n)?f(i.filterByQuantitative({attribute:o,operator:"gte",operand:+n}),i.filterByQuantitative({attribute:o,operator:"lte",operand:+n})):f(i.removeUndefined({attribute:o}))),c.push({icon:ar,label:"Advanced filter...",callback:()=>TI(e,r)}),c}function j9(t){return t!=null&&t!==""&&!(typeof t=="number"&&isNaN(t))}function U9(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var Ht={},mr={};Object.defineProperty(mr,"__esModule",{value:!0}),mr.ActionCreators=mr.ActionTypes=void 0;var gr={UNDO:"@@redux-undo/UNDO",REDO:"@@redux-undo/REDO",JUMP_TO_FUTURE:"@@redux-undo/JUMP_TO_FUTURE",JUMP_TO_PAST:"@@redux-undo/JUMP_TO_PAST",JUMP:"@@redux-undo/JUMP",CLEAR_HISTORY:"@@redux-undo/CLEAR_HISTORY"};mr.ActionTypes=gr;var H9={undo:function(){return{type:gr.UNDO}},redo:function(){return{type:gr.REDO}},jumpToFuture:function(e){return{type:gr.JUMP_TO_FUTURE,index:e}},jumpToPast:function(e){return{type:gr.JUMP_TO_PAST,index:e}},jump:function(e){return{type:gr.JUMP,index:e}},clearHistory:function(){return{type:gr.CLEAR_HISTORY}}};mr.ActionCreators=H9;var xt={};Object.defineProperty(xt,"__esModule",{value:!0}),xt.parseActions=Xs,xt.isHistory=G9,xt.includeAction=Q9,xt.excludeAction=V9,xt.combineFilters=Y9,xt.groupByActionTypes=_9,xt.newHistory=W9;function Xs(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];return Array.isArray(t)?t:typeof t=="string"?[t]:e}function G9(t){return typeof t.present<"u"&&typeof t.future<"u"&&typeof t.past<"u"&&Array.isArray(t.future)&&Array.isArray(t.past)}function Q9(t){var e=Xs(t);return function(n){return e.indexOf(n.type)>=0}}function V9(t){var e=Xs(t);return function(n){return e.indexOf(n.type)<0}}function Y9(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];return e.reduce(function(r,i){return function(o,a,s){return r(o,a,s)&&i(o,a,s)}},function(){return!0})}function _9(t){var e=Xs(t);return function(n){return e.indexOf(n.type)>=0?n.type:null}}function W9(t,e,n){var r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:null;return{past:t,present:e,future:n,group:r,_latestUnfiltered:e,index:t.length,limit:t.length+n.length+1}}var Qv={},ii={};Object.defineProperty(ii,"__esModule",{value:!0}),ii.set=nk,ii.start=$9,ii.end=ek,ii.log=tk;function wt(t){return q9(t)||Z9(t)||X9()}function X9(){throw new TypeError("Invalid attempt to spread non-iterable instance")}function Z9(t){if(Symbol.iterator in Object(t)||Object.prototype.toString.call(t)==="[object Arguments]")return Array.from(t)}function q9(t){if(Array.isArray(t)){for(var e=0,n=new Array(t.length);e<t.length;e++)n[e]=t[e];return n}}var Zs,Je,sd={prevState:"#9E9E9E",action:"#03A9F4",nextState:"#4CAF50"};function K9(){Je={header:[],prev:[],action:[],next:[],msgs:[]}}function J9(){var t=Je,e=t.header,n=t.prev,r=t.next,i=t.action,o=t.msgs;if(console.group){var a,s,c,u,f;(a=console).groupCollapsed.apply(a,wt(e)),(s=console).log.apply(s,wt(n)),(c=console).log.apply(c,wt(i)),(u=console).log.apply(u,wt(r)),(f=console).log.apply(f,wt(o)),console.groupEnd()}else{var l,d,p,h,m;(l=console).log.apply(l,wt(e)),(d=console).log.apply(d,wt(n)),(p=console).log.apply(p,wt(i)),(h=console).log.apply(h,wt(r)),(m=console).log.apply(m,wt(o))}}function cd(t,e,n){return["%c".concat(t),"color: ".concat(e,"; font-weight: bold"),n]}function $9(t,e){K9(),Zs&&(console.group?(Je.header=["%credux-undo","font-style: italic","action",t.type],Je.action=cd("action",sd.action,t),Je.prev=cd("prev history",sd.prevState,e)):(Je.header=["redux-undo action",t.type],Je.action=["action",t],Je.prev=["prev history",e]))}function ek(t){Zs&&(console.group?Je.next=cd("next history",sd.nextState,t):Je.next=["next history",t],J9())}function tk(){if(Zs){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];Je.msgs=Je.msgs.concat([].concat(e,[`
2163
- `]))}}function nk(t){Zs=t}(function(t){function e(x){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?e=function(A){return typeof A}:e=function(A){return A&&typeof Symbol=="function"&&A.constructor===Symbol&&A!==Symbol.prototype?"symbol":typeof A},e(x)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=C;var n=a(ii),r=mr,i=xt;function o(){if(typeof WeakMap!="function")return null;var x=new WeakMap;return o=function(){return x},x}function a(x){if(x&&x.__esModule)return x;if(x===null||e(x)!=="object"&&typeof x!="function")return{default:x};var v=o();if(v&&v.has(x))return v.get(x);var A={},D=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var k in x)if(Object.prototype.hasOwnProperty.call(x,k)){var O=D?Object.getOwnPropertyDescriptor(x,k):null;O&&(O.get||O.set)?Object.defineProperty(A,k,O):A[k]=x[k]}return A.default=x,v&&v.set(x,A),A}function s(x,v){var A=Object.keys(x);if(Object.getOwnPropertySymbols){var D=Object.getOwnPropertySymbols(x);v&&(D=D.filter(function(k){return Object.getOwnPropertyDescriptor(x,k).enumerable})),A.push.apply(A,D)}return A}function c(x){for(var v=1;v<arguments.length;v++){var A=arguments[v]!=null?arguments[v]:{};v%2?s(Object(A),!0).forEach(function(D){u(x,D,A[D])}):Object.getOwnPropertyDescriptors?Object.defineProperties(x,Object.getOwnPropertyDescriptors(A)):s(Object(A)).forEach(function(D){Object.defineProperty(x,D,Object.getOwnPropertyDescriptor(A,D))})}return x}function u(x,v,A){return v in x?Object.defineProperty(x,v,{value:A,enumerable:!0,configurable:!0,writable:!0}):x[v]=A,x}function f(x){return p(x)||d(x)||l()}function l(){throw new TypeError("Invalid attempt to spread non-iterable instance")}function d(x){if(Symbol.iterator in Object(x)||Object.prototype.toString.call(x)==="[object Arguments]")return Array.from(x)}function p(x){if(Array.isArray(x)){for(var v=0,A=new Array(x.length);v<x.length;v++)A[v]=x[v];return A}}function h(x,v){var A=(0,i.newHistory)([],x,[]);return v&&(A._latestUnfiltered=null),A}function m(x,v,A,D){var k=x.past.length+1;n.log("inserting",v),n.log("new free: ",A-k);var O=x.past,T=x._latestUnfiltered,B=A&&A<=k,G=O.slice(B?1:0),Q=T!=null?[].concat(f(G),[T]):G;return(0,i.newHistory)(Q,v,[],D)}function g(x,v){if(v<0||v>=x.future.length)return x;var A=x.past,D=x.future,k=x._latestUnfiltered,O=[].concat(f(A),[k],f(D.slice(0,v))),T=D[v],B=D.slice(v+1);return(0,i.newHistory)(O,T,B)}function y(x,v){if(v<0||v>=x.past.length)return x;var A=x.past,D=x.future,k=x._latestUnfiltered,O=A.slice(0,v),T=[].concat(f(A.slice(v+1)),[k],f(D)),B=A[v];return(0,i.newHistory)(O,B,T)}function b(x,v){return v>0?g(x,v-1):v<0?y(x,x.past.length+v):x}function w(x,v){return v.indexOf(x)>-1?x:!x}function C(x){var v=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};n.set(v.debug);var A=c({limit:void 0,filter:function(){return!0},groupBy:function(){return null},undoType:r.ActionTypes.UNDO,redoType:r.ActionTypes.REDO,jumpToPastType:r.ActionTypes.JUMP_TO_PAST,jumpToFutureType:r.ActionTypes.JUMP_TO_FUTURE,jumpType:r.ActionTypes.JUMP,neverSkipReducer:!1,ignoreInitialState:!1,syncFilter:!1},v,{initTypes:(0,i.parseActions)(v.initTypes,["@@redux-undo/INIT"]),clearHistoryType:(0,i.parseActions)(v.clearHistoryType,[r.ActionTypes.CLEAR_HISTORY])}),D=A.neverSkipReducer?function(O,T){for(var B=arguments.length,G=new Array(B>2?B-2:0),Q=2;Q<B;Q++)G[Q-2]=arguments[Q];return c({},O,{present:x.apply(void 0,[O.present,T].concat(G))})}:function(O){return O},k;return function(){var O=arguments.length>0&&arguments[0]!==void 0?arguments[0]:k,T=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};n.start(T,O);for(var B=O,G=arguments.length,Q=new Array(G>2?G-2:0),De=2;De<G;De++)Q[De-2]=arguments[De];if(!k)if(n.log("history is uninitialized"),O===void 0){var xn={type:"@@redux-undo/CREATE_HISTORY"},wn=x.apply(void 0,[O,xn].concat(Q));return B=h(wn,A.ignoreInitialState),n.log("do not set initialState on probe actions"),n.end(B),B}else(0,i.isHistory)(O)?(B=k=A.ignoreInitialState?O:(0,i.newHistory)(O.past,O.present,O.future),n.log("initialHistory initialized: initialState is a history",k)):(B=k=h(O,A.ignoreInitialState),n.log("initialHistory initialized: initialState is not a history",k));var _;switch(T.type){case void 0:return B;case A.undoType:return _=b(B,-1),n.log("perform undo"),n.end(_),D.apply(void 0,[_,T].concat(Q));case A.redoType:return _=b(B,1),n.log("perform redo"),n.end(_),D.apply(void 0,[_,T].concat(Q));case A.jumpToPastType:return _=y(B,T.index),n.log("perform jumpToPast to ".concat(T.index)),n.end(_),D.apply(void 0,[_,T].concat(Q));case A.jumpToFutureType:return _=g(B,T.index),n.log("perform jumpToFuture to ".concat(T.index)),n.end(_),D.apply(void 0,[_,T].concat(Q));case A.jumpType:return _=b(B,T.index),n.log("perform jump to ".concat(T.index)),n.end(_),D.apply(void 0,[_,T].concat(Q));case w(T.type,A.clearHistoryType):return _=h(B.present,A.ignoreInitialState),n.log("perform clearHistory"),n.end(_),D.apply(void 0,[_,T].concat(Q));default:if(_=x.apply(void 0,[B.present,T].concat(Q)),A.initTypes.some(function(Bd){return Bd===T.type}))return n.log("reset history due to init action"),n.end(k),k;if(B._latestUnfiltered===_)return B;var Qe=typeof A.filter=="function"&&!A.filter(T,_,B);if(Qe){var qo=(0,i.newHistory)(B.past,_,B.future,B.group);return A.syncFilter||(qo._latestUnfiltered=B._latestUnfiltered),n.log("filter ignored action, not storing it in past"),n.end(qo),qo}var Ko=A.groupBy(T,_,B);if(Ko!=null&&Ko===B.group){var dc=(0,i.newHistory)(B.past,_,B.future,B.group);return n.log("groupBy grouped the action with the previous action"),n.end(dc),dc}return B=m(B,_,A.limit,Ko),n.log("inserted new state into history"),n.end(B),B}}}})(Qv),function(t){Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"ActionTypes",{enumerable:!0,get:function(){return e.ActionTypes}}),Object.defineProperty(t,"ActionCreators",{enumerable:!0,get:function(){return e.ActionCreators}}),Object.defineProperty(t,"parseActions",{enumerable:!0,get:function(){return n.parseActions}}),Object.defineProperty(t,"isHistory",{enumerable:!0,get:function(){return n.isHistory}}),Object.defineProperty(t,"includeAction",{enumerable:!0,get:function(){return n.includeAction}}),Object.defineProperty(t,"excludeAction",{enumerable:!0,get:function(){return n.excludeAction}}),Object.defineProperty(t,"combineFilters",{enumerable:!0,get:function(){return n.combineFilters}}),Object.defineProperty(t,"groupByActionTypes",{enumerable:!0,get:function(){return n.groupByActionTypes}}),Object.defineProperty(t,"newHistory",{enumerable:!0,get:function(){return n.newHistory}}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return r.default}});var e=mr,n=xt,r=i(Qv);function i(o){return o&&o.__esModule?o:{default:o}}}(Ht);const rk=U9(Ht);function qs(t){return t.split("-")[0]}function ud(t){return t.split("-")[1]}function ld(t){return["top","bottom"].includes(qs(t))?"x":"y"}function Vv(t){return t==="y"?"height":"width"}function Yv(t,e,n){let{reference:r,floating:i}=t;const o=r.x+r.width/2-i.width/2,a=r.y+r.height/2-i.height/2,s=ld(e),c=Vv(s),u=r[c]/2-i[c]/2,f=s==="x";let l;switch(qs(e)){case"top":l={x:o,y:r.y-i.height};break;case"bottom":l={x:o,y:r.y+r.height};break;case"right":l={x:r.x+r.width,y:a};break;case"left":l={x:r.x-i.width,y:a};break;default:l={x:r.x,y:r.y}}switch(ud(e)){case"start":l[s]-=u*(n&&f?-1:1);break;case"end":l[s]+=u*(n&&f?-1:1)}return l}const ik=async(t,e,n)=>{const{placement:r="bottom",strategy:i="absolute",middleware:o=[],platform:a}=n,s=await(a.isRTL==null?void 0:a.isRTL(e));let c=await a.getElementRects({reference:t,floating:e,strategy:i}),{x:u,y:f}=Yv(c,r,s),l=r,d={};for(let p=0;p<o.length;p++){const{name:h,fn:m}=o[p],{x:g,y,data:b,reset:w}=await m({x:u,y:f,initialPlacement:r,placement:l,strategy:i,middlewareData:d,rects:c,platform:a,elements:{reference:t,floating:e}});u=g??u,f=y??f,d={...d,[h]:{...d[h],...b}},w&&(typeof w=="object"&&(w.placement&&(l=w.placement),w.rects&&(c=w.rects===!0?await a.getElementRects({reference:t,floating:e,strategy:i}):w.rects),{x:u,y:f}=Yv(c,l,s)),p=-1)}return{x:u,y:f,placement:l,strategy:i,middlewareData:d}};function ok(t){return typeof t!="number"?function(e){return{top:0,right:0,bottom:0,left:0,...e}}(t):{top:t,right:t,bottom:t,left:t}}function Ks(t){return{...t,top:t.y,left:t.x,right:t.x+t.width,bottom:t.y+t.height}}async function ak(t,e){var n;e===void 0&&(e={});const{x:r,y:i,platform:o,rects:a,elements:s,strategy:c}=t,{boundary:u="clippingAncestors",rootBoundary:f="viewport",elementContext:l="floating",altBoundary:d=!1,padding:p=0}=e,h=ok(p),m=s[d?l==="floating"?"reference":"floating":l],g=Ks(await o.getClippingRect({element:(n=await(o.isElement==null?void 0:o.isElement(m)))==null||n?m:m.contextElement||await(o.getDocumentElement==null?void 0:o.getDocumentElement(s.floating)),boundary:u,rootBoundary:f,strategy:c})),y=Ks(o.convertOffsetParentRelativeRectToViewportRelativeRect?await o.convertOffsetParentRelativeRectToViewportRelativeRect({rect:l==="floating"?{...a.floating,x:r,y:i}:a.reference,offsetParent:await(o.getOffsetParent==null?void 0:o.getOffsetParent(s.floating)),strategy:c}):a[l]);return{top:g.top-y.top+h.top,bottom:y.bottom-g.bottom+h.bottom,left:g.left-y.left+h.left,right:y.right-g.right+h.right}}const sk={left:"right",right:"left",bottom:"top",top:"bottom"};function Js(t){return t.replace(/left|right|bottom|top/g,e=>sk[e])}function ck(t,e,n){n===void 0&&(n=!1);const r=ud(t),i=ld(t),o=Vv(i);let a=i==="x"?r===(n?"end":"start")?"right":"left":r==="start"?"bottom":"top";return e.reference[o]>e.floating[o]&&(a=Js(a)),{main:a,cross:Js(a)}}const uk={start:"end",end:"start"};function _v(t){return t.replace(/start|end/g,e=>uk[e])}["top","right","bottom","left"].reduce((t,e)=>t.concat(e,e+"-start",e+"-end"),[]);const Wv=function(t){return t===void 0&&(t={}),{name:"flip",options:t,async fn(e){var n;const{placement:r,middlewareData:i,rects:o,initialPlacement:a,platform:s,elements:c}=e,{mainAxis:u=!0,crossAxis:f=!0,fallbackPlacements:l,fallbackStrategy:d="bestFit",flipAlignment:p=!0,...h}=t,m=qs(r),g=l||(m===a||!p?[Js(a)]:function(D){const k=Js(D);return[_v(D),k,_v(k)]}(a)),y=[a,...g],b=await ak(e,h),w=[];let C=((n=i.flip)==null?void 0:n.overflows)||[];if(u&&w.push(b[m]),f){const{main:D,cross:k}=ck(r,o,await(s.isRTL==null?void 0:s.isRTL(c.floating)));w.push(b[D],b[k])}if(C=[...C,{placement:r,overflows:w}],!w.every(D=>D<=0)){var x,v;const D=((x=(v=i.flip)==null?void 0:v.index)!=null?x:0)+1,k=y[D];if(k)return{data:{index:D,overflows:C},reset:{placement:k}};let O="bottom";switch(d){case"bestFit":{var A;const T=(A=C.map(B=>[B,B.overflows.filter(G=>G>0).reduce((G,Q)=>G+Q,0)]).sort((B,G)=>B[1]-G[1])[0])==null?void 0:A[0].placement;T&&(O=T);break}case"initialPlacement":O=a}if(r!==O)return{reset:{placement:O}}}return{}}}},lk=function(t){return t===void 0&&(t=0),{name:"offset",options:t,async fn(e){const{x:n,y:r}=e,i=await async function(o,a){const{placement:s,platform:c,elements:u}=o,f=await(c.isRTL==null?void 0:c.isRTL(u.floating)),l=qs(s),d=ud(s),p=ld(s)==="x",h=["left","top"].includes(l)?-1:1,m=f&&p?-1:1,g=typeof a=="function"?a(o):a;let{mainAxis:y,crossAxis:b,alignmentAxis:w}=typeof g=="number"?{mainAxis:g,crossAxis:0,alignmentAxis:null}:{mainAxis:0,crossAxis:0,alignmentAxis:null,...g};return d&&typeof w=="number"&&(b=d==="end"?-1*w:w),p?{x:b*m,y:y*h}:{x:y*h,y:b*m}}(e,t);return{x:n+i.x,y:r+i.y,data:i}}}};function Xv(t){return t&&t.document&&t.location&&t.alert&&t.setInterval}function Gt(t){if(t==null)return window;if(!Xv(t)){const e=t.ownerDocument;return e&&e.defaultView||window}return t}function Bo(t){return Gt(t).getComputedStyle(t)}function Qt(t){return Xv(t)?"":t?(t.nodeName||"").toLowerCase():""}function Zv(){const t=navigator.userAgentData;return t!=null&&t.brands?t.brands.map(e=>e.brand+"/"+e.version).join(" "):navigator.userAgent}function Ct(t){return t instanceof Gt(t).HTMLElement}function oi(t){return t instanceof Gt(t).Element}function fd(t){return typeof ShadowRoot>"u"?!1:t instanceof Gt(t).ShadowRoot||t instanceof ShadowRoot}function $s(t){const{overflow:e,overflowX:n,overflowY:r}=Bo(t);return/auto|scroll|overlay|hidden/.test(e+r+n)}function fk(t){return["table","td","th"].includes(Qt(t))}function qv(t){const e=/firefox/i.test(Zv()),n=Bo(t);return n.transform!=="none"||n.perspective!=="none"||n.contain==="paint"||["transform","perspective"].includes(n.willChange)||e&&n.willChange==="filter"||e&&!!n.filter&&n.filter!=="none"}function Kv(){return!/^((?!chrome|android).)*safari/i.test(Zv())}const Jv=Math.min,Oo=Math.max,ec=Math.round;function yr(t,e,n){var r,i,o,a;e===void 0&&(e=!1),n===void 0&&(n=!1);const s=t.getBoundingClientRect();let c=1,u=1;e&&Ct(t)&&(c=t.offsetWidth>0&&ec(s.width)/t.offsetWidth||1,u=t.offsetHeight>0&&ec(s.height)/t.offsetHeight||1);const f=oi(t)?Gt(t):window,l=!Kv()&&n,d=(s.left+(l&&(r=(i=f.visualViewport)==null?void 0:i.offsetLeft)!=null?r:0))/c,p=(s.top+(l&&(o=(a=f.visualViewport)==null?void 0:a.offsetTop)!=null?o:0))/u,h=s.width/c,m=s.height/u;return{width:h,height:m,top:p,right:d+h,bottom:p+m,left:d,x:d,y:p}}function vn(t){return(e=t,(e instanceof Gt(e).Node?t.ownerDocument:t.document)||window.document).documentElement;var e}function tc(t){return oi(t)?{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}:{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function $v(t){return yr(vn(t)).left+tc(t).scrollLeft}function dk(t,e,n){const r=Ct(e),i=vn(e),o=yr(t,r&&function(c){const u=yr(c);return ec(u.width)!==c.offsetWidth||ec(u.height)!==c.offsetHeight}(e),n==="fixed");let a={scrollLeft:0,scrollTop:0};const s={x:0,y:0};if(r||!r&&n!=="fixed")if((Qt(e)!=="body"||$s(i))&&(a=tc(e)),Ct(e)){const c=yr(e,!0);s.x=c.x+e.clientLeft,s.y=c.y+e.clientTop}else i&&(s.x=$v(i));return{x:o.left+a.scrollLeft-s.x,y:o.top+a.scrollTop-s.y,width:o.width,height:o.height}}function eb(t){return Qt(t)==="html"?t:t.assignedSlot||t.parentNode||(fd(t)?t.host:null)||vn(t)}function tb(t){return Ct(t)&&getComputedStyle(t).position!=="fixed"?t.offsetParent:null}function dd(t){const e=Gt(t);let n=tb(t);for(;n&&fk(n)&&getComputedStyle(n).position==="static";)n=tb(n);return n&&(Qt(n)==="html"||Qt(n)==="body"&&getComputedStyle(n).position==="static"&&!qv(n))?e:n||function(r){let i=eb(r);for(fd(i)&&(i=i.host);Ct(i)&&!["html","body"].includes(Qt(i));){if(qv(i))return i;i=i.parentNode}return null}(t)||e}function nb(t){if(Ct(t))return{width:t.offsetWidth,height:t.offsetHeight};const e=yr(t);return{width:e.width,height:e.height}}function rb(t){const e=eb(t);return["html","body","#document"].includes(Qt(e))?t.ownerDocument.body:Ct(e)&&$s(e)?e:rb(e)}function ib(t,e){var n;e===void 0&&(e=[]);const r=rb(t),i=r===((n=t.ownerDocument)==null?void 0:n.body),o=Gt(r),a=i?[o].concat(o.visualViewport||[],$s(r)?r:[]):r,s=e.concat(a);return i?s:s.concat(ib(a))}function ob(t,e,n){return e==="viewport"?Ks(function(r,i){const o=Gt(r),a=vn(r),s=o.visualViewport;let c=a.clientWidth,u=a.clientHeight,f=0,l=0;if(s){c=s.width,u=s.height;const d=Kv();(d||!d&&i==="fixed")&&(f=s.offsetLeft,l=s.offsetTop)}return{width:c,height:u,x:f,y:l}}(t,n)):oi(e)?function(r,i){const o=yr(r,!1,i==="fixed"),a=o.top+r.clientTop,s=o.left+r.clientLeft;return{top:a,left:s,x:s,y:a,right:s+r.clientWidth,bottom:a+r.clientHeight,width:r.clientWidth,height:r.clientHeight}}(e,n):Ks(function(r){var i;const o=vn(r),a=tc(r),s=(i=r.ownerDocument)==null?void 0:i.body,c=Oo(o.scrollWidth,o.clientWidth,s?s.scrollWidth:0,s?s.clientWidth:0),u=Oo(o.scrollHeight,o.clientHeight,s?s.scrollHeight:0,s?s.clientHeight:0);let f=-a.scrollLeft+$v(r);const l=-a.scrollTop;return Bo(s||o).direction==="rtl"&&(f+=Oo(o.clientWidth,s?s.clientWidth:0)-c),{width:c,height:u,x:f,y:l}}(vn(t)))}function hk(t){const e=ib(t),n=["absolute","fixed"].includes(Bo(t).position)&&Ct(t)?dd(t):t;return oi(n)?e.filter(r=>oi(r)&&function(i,o){const a=o==null||o.getRootNode==null?void 0:o.getRootNode();if(i!=null&&i.contains(o))return!0;if(a&&fd(a)){let s=o;do{if(s&&i===s)return!0;s=s.parentNode||s.host}while(s)}return!1}(r,n)&&Qt(r)!=="body"):[]}const pk={getClippingRect:function(t){let{element:e,boundary:n,rootBoundary:r,strategy:i}=t;const o=[...n==="clippingAncestors"?hk(e):[].concat(n),r],a=o[0],s=o.reduce((c,u)=>{const f=ob(e,u,i);return c.top=Oo(f.top,c.top),c.right=Jv(f.right,c.right),c.bottom=Jv(f.bottom,c.bottom),c.left=Oo(f.left,c.left),c},ob(e,a,i));return{width:s.right-s.left,height:s.bottom-s.top,x:s.left,y:s.top}},convertOffsetParentRelativeRectToViewportRelativeRect:function(t){let{rect:e,offsetParent:n,strategy:r}=t;const i=Ct(n),o=vn(n);if(n===o)return e;let a={scrollLeft:0,scrollTop:0};const s={x:0,y:0};if((i||!i&&r!=="fixed")&&((Qt(n)!=="body"||$s(o))&&(a=tc(n)),Ct(n))){const c=yr(n,!0);s.x=c.x+n.clientLeft,s.y=c.y+n.clientTop}return{...e,x:e.x-a.scrollLeft+s.x,y:e.y-a.scrollTop+s.y}},isElement:oi,getDimensions:nb,getOffsetParent:dd,getDocumentElement:vn,getElementRects:t=>{let{reference:e,floating:n,strategy:r}=t;return{reference:dk(e,dd(n),r),floating:{...nb(n),x:0,y:0}}},getClientRects:t=>Array.from(t.getClientRects()),isRTL:t=>Bo(t).direction==="rtl"},mk=(t,e,n)=>ik(t,e,{platform:pk,...n});let St;const Fo=[],hd=Cs(t=>t(),150,!1),pd={type:"divider"};function Po(t){if((t==null?void 0:t.type)=="contextmenu"){t.preventDefault();return}St&&(St.remove(),St=void 0,document.body.classList.remove(Vn))}function ab(t){var e;if(!(t<1)){for(let n=t;n<Fo.length;n++)(e=Fo[n])==null||e.remove(),Fo[n]=void 0;for(const n of Fo[t-1].querySelectorAll("li.active"))n.classList.remove("active")}}const gk=()=>E`<li class="menu-divider"></li>`,yk=t=>E`<li class="menu-header">${t.label||"-"}</li>`,vk=(t,e)=>E`<li><a class="submenu-item" @click="${n=>n.stopPropagation()}" @mouseup="${n=>n.stopPropagation()}" @mouseenter="${n=>hd(()=>{const r=n.target.closest("li");xk(t.submenu,r,e+1),n.stopPropagation()})}" @mouseleave="${()=>hd(()=>ab(e+1))}"><span>${t.label}</span></a></li>`,bk=t=>E`<li><a class="choice-item" @mouseup="${()=>{Po(),t.callback()}}"><span>${t.icon?K(t.icon).node[0]:""} ${t.label}</span> ${t.shortcut?E`<span class="kbd-shortcut">${t.shortcut}</span>`:z} </a>${t.ellipsisCallback?E`<a class="menu-ellipsis" @click="${t.ellipsisCallback}">${K(D6).node[0]}</a>`:z}</li>`,Ak=t=>E`<li><span class="disabled-item">${t.icon?K(t.icon).node[0]:""} ${t.label||"-"}</span></li>`;function sb(t,e=1){switch(t.type){case"divider":return gk();case"header":return yk(t);default:return t.submenu?vk(t,e):t.callback?bk(t):Ak(t)}}function xk(t,e,n){cb(t,e,n,"right-start"),e.classList.add("active")}function cb(t,e,n,r){const i=document.createElement("ul");i.classList.add("gs-context-menu"),i.addEventListener("mouseenter",()=>{hd(()=>{})}),Be(t.map(o=>sb(o,n)),i),St.appendChild(i),ab(n),Fo[n]=i,mk(e,i,{placement:r??"right-start",middleware:n?[Wv()]:[lk(2),Wv()]}).then(({x:o,y:a})=>{const s=i.querySelector(":scope > li");s&&(a-=s.getBoundingClientRect().top),i.style.left=`${o}px`,i.style.top=`${a}px`})}function ub(t,e,n){n??(n="bottom-start"),Po();const r=performance.now(),i=document.body;St=document.createElement("div"),St.classList.add("gs-context-menu-backdrop"),St.addEventListener("click",Po),St.addEventListener("contextmenu",Po),St.addEventListener("mouseup",()=>{performance.now()-r>500&&Po()},{once:!0}),i.appendChild(St),document.body.classList.add(Vn),cb(t.items,e,0,n)}function md(t,e){ub(t,wk(e),"right-start"),e.preventDefault()}function wk(t){return{getBoundingClientRect(){return{width:0,height:0,x:t.clientX,y:t.clientY,top:t.clientY,left:t.clientX,right:t.clientX,bottom:t.clientY,toJSON:void 0}}}}const gd={NOMINAL:"nominal",ORDINAL:"ordinal",QUANTITATIVE:"quantitative"},nc="SAMPLE_ATTRIBUTE",lb="SAMPLE_NAME",Ck=/^attribute-(.*)$/;class fb extends Wr{constructor(e){super({title:"Sample metadata",data:{dynamicSource:!0},hconcat:[],spacing:e.spec.samples.attributeSpacing??1,resolve:{scale:{default:"independent"},axis:{default:"independent"}}},e.context,void 0,"sample-metadata"),this.sampleView=e,this._attributeHighlighState={backgroundOpacity:1,currentAttribute:void 0,abortController:new AbortController},this.sampleView.compositeAttributeInfoSource.addAttributeInfoSource(nc,n=>this.children.map(this.getAttributeInfoFromView.bind(this)).find(r=>r&&r.name==n.specifier)),this.sampleView.compositeAttributeInfoSource.addAttributeInfoSource(lb,n=>db),this.addInteractionEventListener("contextmenu",this.handleContextMenu.bind(this)),this.addInteractionEventListener("mousemove",(n,r)=>{var s;const i=r.target,o=this._findSampleForMouseEvent(n,r),a=i&&((s=this.getAttributeInfoFromView(i))==null?void 0:s.name)||void 0;if(o){const c=JSON.stringify([o.id,a]);this.context.updateTooltip(c,u=>Promise.resolve(this.sampleToTooltip(u)))}this._handleAttributeHighlight(a)}),Re([...this.sampleView.getAncestors()]).addInteractionEventListener("mousemove",(n,r)=>{if(this._attributeHighlighState.currentAttribute){if(r.target){for(const i of r.target.getAncestors())if(i==this)return}this._handleAttributeHighlight(void 0)}})}getEncoding(){return{}}render(e,n,r={}){this.isVisible()&&super.render(e,n,{...r,clipRect:this.sampleView._clipBySummary(n)})}_handleAttributeHighlight(e){const n=this._attributeHighlighState;e!=n.currentAttribute&&(n.abortController.abort(),n.abortController=new AbortController,this.context.animator.transition({from:n.backgroundOpacity,onUpdate:r=>{n.backgroundOpacity=r},easingFunction:Wg,signal:n.abortController.signal,...e?{to:.1,duration:1e3,delay:n.backgroundOpacity<1?0:500}:{to:1,duration:200,delay:150}}).catch(r=>{}),this.context.animator.requestRender()),n.currentAttribute=e}getSample(e){var n;return(n=this.sampleView.sampleHierarchy.sampleData)==null?void 0:n.entities[e]}_findSampleForMouseEvent(e,n){return this.sampleView.getSampleAt(n.point.y-this.sampleView.childCoords.y)}_getAttributeOpacity(e){const n=this._attributeHighlighState;return e==n.currentAttribute?1:n.backgroundOpacity}handleContextMenu(e,n){const r=n.uiEvent,i=this._findSampleForMouseEvent(e,n);if(!i){r.preventDefault();return}const o=[this.sampleView.makePeekMenuItem(),pd],a=this.getAttributeInfoFromView(n.target);if(a){const s=i.attributes[a.name];o.push(...ad(E`Attribute: <strong>${a.name}</strong>`,a,s,this.sampleView))}else o.push(...ad(E`Sample: <strong>${i.displayName}</strong>`,db,i.id,this.sampleView));md({items:o},r)}_setSamples(e){if(this.childCount)throw new Error("Children are already created!");this._createViews();const n=this.context.dataFlow;x1(this,n);const r=n.findDataSourceByKey(this);r.visit(o=>o.initialize());const i=[];this.visit(o=>{if(o instanceof pe){const a=o.mark;a.initializeEncoders(),i.push(a.initializeGraphics().then(s=>a)),n.addObserver(s=>{a.initializeData(),a.updateGraphicsData()},o)}}),Promise.allSettled(i).then(o=>{for(const a of o)"value"in a?a.value.finalizeGraphicsInitialization():"reason"in a&&console.error(a.reason)}),r.publishData(e),this.visit(o=>{o.name.startsWith("title")&&n.findDataSourceByKey(o).load()})}_createViews(){const e=[];e.push(this.context.createView(Ek(this.sampleView.spec.samples),this));for(const n of this.getAttributeNames()){const r=this.context.createView(this._createAttributeViewSpec(n),this);r.opacityFunction=i=>i*this._getAttributeOpacity(n),e.push(r)}this.setChildren(e),C1(this)}_getAttributeDef(e){var n,r;return(r=(n=this.sampleView.spec.samples)==null?void 0:n.attributes)==null?void 0:r[e]}getAttributeNames(){return this._cache("attributeNames",()=>[...this.sampleView.getSamples().flatMap(r=>Object.keys(r.attributes)).reduce((r,i)=>r.add(i),new Set)])}_createAttributeViewSpec(e){const n=this._getAttributeDef(e);let r=n?n.type:void 0;if(!r){const i=this.sampleView.getSamples();switch(Vh(i.map(o=>o.attributes[e]))){case"integer":case"number":r=gd.QUANTITATIVE;break;default:r=gd.NOMINAL}}return Sk(e,{...n||{},type:r},this.sampleView.spec.samples)}_findViewForAttribute(e){return this.children[this.getAttributeNames().indexOf(e)+1]}getAttributeInfoFromView(e){const n=e==null?void 0:e.name.match(Ck);if(n){const r=e.getScaleResolution("color"),i=n[1];return{name:i,attribute:{type:nc,specifier:i},accessor:(o,a)=>a.sampleData.entities[o].attributes[i],type:r.type,scale:r.getScale(),title:E`<em class="attribute">${i}</em>`}}}getAttributeInfo(e){return this.getAttributeInfoFromView(this._findViewForAttribute(e))}sampleToTooltip(e){const[n,r]=JSON.parse(e),i=this.getSample(n),o=(s,c)=>Dk(c)?this.getAttributeInfo(s).scale(c):"transparent",a=E`<table class="attributes">${Object.entries(i.attributes).map(([s,c])=>E`<tr class="${of({hovered:s==r})}"><th>${s}</th><td>${N1(c)}</td><td class="color" .style="background-color: ${o(s,c)}"></td></tr>`)}</table>`;return E`<div class="title"><strong>${i.displayName||i.id}</strong></div>${a}`}getDefaultResolution(e,n){return"independent"}handleVerboseCommand(e){const n=e;for(const r of this.getAttributeNames()){const i=this.getAttributeInfo(r);if((i.type==Ul||i.type==Hl)&&this.sampleView.getSamples().find(a=>a.attributes[i.name]==n)){const a=this.sampleView.actions.filterByNominal({attribute:{type:nc,specifier:r},values:[n]}),s=this.sampleView.provenance.getPresentState().lastAction,c=this.sampleView.actions.filterByNominal.match(s)&&!s.payload.remove&&s.payload.attribute.type==nc&&s.payload.attribute.specifier==r&&s.payload.values.length==1;return this.sampleView.provenance.storeHelper.dispatch(c?[Ht.ActionCreators.undo(),a]:a),!0}}return!1}isPickingSupported(){return!1}}function Sk(t,e,n){const r=`attributes["${t}"]`,i={name:`attribute-${t}`,title:{text:t,orient:"bottom",align:"right",baseline:"middle",offset:5,angle:-90+(n.attributeLabelAngle??0),dy:-.5,font:n.attributeLabelFont,fontSize:n.attributeLabelFontSize??11,fontStyle:n.attributeLabelFontStyle,fontWeight:n.attributeLabelFontWeight},visible:e.visible??!0,width:e.width??n.attributeSize??10,transform:[{type:"filter",expr:`datum.${r} != null`}],mark:{type:"rect",xOffset:-.5},encoding:{facetIndex:{field:"indexNumber"},color:{field:r,type:e.type,scale:e.scale}},opacity:1};return e.barScale&&e.type==gd.QUANTITATIVE&&(i.encoding.x={field:`attributes["${t}"]`,type:e.type,scale:e.barScale,axis:null}),i}function Ek(t){return{name:"metadata-sample-name",title:{text:t.labelTitleText??"Sample name",orient:"bottom",anchor:"start",offset:5,font:t.attributeLabelFont,fontSize:t.attributeLabelFontSize??11,fontStyle:t.attributeLabelFontStyle,fontWeight:t.attributeLabelFontWeight},width:t.labelLength??140,mark:{type:"text",baseline:"middle",font:t.labelFont,size:t.labelFontSize??11,fontStyle:t.labelFontStyle,fontWeight:t.labelFontWeight,align:t.labelAlign??"left",flushY:!1},encoding:{facetIndex:{field:"indexNumber"},x:{value:0},x2:{value:1},y:{value:0},y2:{value:1},text:{field:"displayName"}}}}function Dk(t){return t!==""&&!(typeof t=="number"&&isNaN(t))&&t!==null}const db=Object.freeze({name:"sample",attribute:{type:lb},accessor:t=>t,type:"identifier",scale:void 0});class Mk extends Ot{constructor(e){super({title:{text:"Groups",orient:"none"},width:{step:22},data:{dynamicSource:!0},transform:[{type:"filter",expr:"datum._depth > 0"},{type:"formula",as:"_y1",expr:"datum._index * 2"},{type:"formula",as:"_y2",expr:"datum._index * 2 + 1"},{type:"formula",as:"_title",expr:"datum.title || datum.name"},{type:"formula",as:"_NA",expr:"datum._title === null"},{type:"formula",as:"_title",expr:"datum._title !== null ? datum._title: 'NA'"}],encoding:{x:{field:"_depth",type:"ordinal",scale:{align:0,padding:.2272727},axis:null},y:{field:"_y1",type:"nominal",scale:{type:"ordinal",domain:_t(500)},axis:null},y2:{field:"_y2"}},layer:[{title:"Group",mark:{type:"rect",clip:!0,color:"#e8e8e8",cornerRadiusBottomLeft:14,cornerRadiusTopLeft:14}},{mark:{type:"text",clip:!0,angle:-90,paddingY:5,tooltip:null},encoding:{text:{field:"_title"},opacity:{field:"_NA",type:"nominal",scale:{type:"ordinal",domain:[!1,!0],range:[1,.3]}}}}]},e.context,void 0,"sample-groups"),this.sampleView=e,this._addBroadcastHandler("layoutComputed",()=>{this.updateRange()}),this.addInteractionEventListener("contextmenu",(n,r)=>{const i=r.uiEvent,o=this.context.getCurrentHover();if(!o)return;const a=o.datum._rawGroup;let s;for(const l of od(this.sampleView.sampleHierarchy.rootGroup))if(l.at(-1)===a){s=l.slice(1);break}const c=e.actions.removeGroup({path:s.map(l=>l.name)}),u=e.provenance.getActionInfo(c),f=e.provenance.storeHelper.getDispatcher();md({items:[{label:u.title,icon:u.icon,callback:()=>f(c)}]},i)})}updateRange(){var o,a;const e=(o=this.sampleView.getLocations())==null?void 0:o.groups;if(!(e!=null&&e.length))return;const n=((a=this.sampleView)==null?void 0:a.childCoords.height)??0,r=this.getScaleResolution("y"),i=[];for(const s of e)i.push(1-(s.locSize.location+s.locSize.size)/n),i.push(1-s.locSize.location/n);r.getScale().range(i),this.context.glHelper.createRangeTexture(r,!0)}updateGroups(){var i;const e=((i=this.sampleView.getLocations())==null?void 0:i.groups)??[],n=this.context.dataFlow.findDataSourceByKey(this);if(!n)return;const r=e.map(o=>({_index:o.key.index,_depth:o.key.depth,_rawGroup:o.key.group,attribute:o.key.attributeLabel,name:o.key.group.name,...o.key.group.name!=o.key.group.title?{title:o.key.group.title}:{},n:o.key.n}));n.publishData(r),this.getScaleResolution("x").reconfigure(),this.getScaleResolution("y").reconfigure(),e.length&&this.updateRange(),Re([...this.getAncestors()]).visit(o=>fo(o,"size"))}}class Tk{constructor(){this.attributeInfoSourcesByType={}}addAttributeInfoSource(e,n){this.attributeInfoSourcesByType[e]=n}getAttributeInfo(e){const n=this.attributeInfoSourcesByType[e.type];if(!n)throw new Error("Cannot find attribute info source for: "+JSON.stringify(e));const r=n(e);if(r)return r;throw new Error("Unknown attribute: "+JSON.stringify(e))}}function rc(t,e,n){let r=n&&t(n);return i=>{const o=t(i);o!==r&&(e(o,r),r=o)}}function hb(t,{viewHeight:e=0,sampleHeight:n=0,groupSpacing:r=5,summaryHeight:i=0}){if(!e&&!n)throw new Error("viewHeight or sampleHeight must be provided!");const o=d=>Re(d),a=t.map(d=>({path:d,sampleGroup:o(d),samples:o(d).samples})).filter(d=>d.samples.length),s=n?d=>({px:d.length*n+i,grow:0}):d=>({px:i,grow:d.length}),c=[];go(a.map(d=>s(d.samples)),e,{spacing:r}).forEach((d,p)=>{c.push({key:a[p].path,locSize:d})});const u=[];for(const[d,p]of a.entries()){const h={grow:1},m=p.samples;go(m.map(g=>h),Math.max(0,c[d].locSize.size-i),{offset:c[d].locSize.location+i}).forEach((g,y)=>{const{size:b,location:w}=g,C=b*.1*Jg(15,22,b);g.location=w+C,g.size=b-2*C,u.push({key:m[y],locSize:g})})}function*f(){const d=[];for(const p of c){const h=p.key,m=Re(h);for(;d.length<=h.length&&d.length&&h[d.length-1]!=d[d.length-1].group;)yield d.pop();for(let g=0;g<d.length;g++){const y=d[g];y.locSize.size=p.locSize.location-y.locSize.location+p.locSize.size}for(let g=d.length;g<h.length;g++)d.push({group:h[g],locSize:{...p.locSize},depth:d.length,n:0});for(const g of d)g.n+=m.samples.length}for(;d.length;)yield d.pop()}const l=[...f()].sort((d,p)=>d.depth-p.depth).map((d,p)=>({key:{index:p,group:d.group,depth:d.depth,n:d.n,attributeLabel:void 0},locSize:d.locSize}));return{samples:u,summaries:c,groups:l}}function Ik(t,e){return e.find(n=>Ng(n.locSize,t))}const pb="VALUE_AT_LOCUS",mb=10;class yd extends nr{constructor(n,r,i,o,a){var f;super(n,r,i,o);$(this,fc);hc(this,"_peekState",0);this.provenance=a,this.spec=n,this.stickySummaries=n.stickySummaries??!0,this.compositeAttributeInfoSource=new Tk,this.child=r.createView(n.spec,this,"sample-facets"),this.summaryViews=new Wr({vconcat:[]},r,this,"sampleSummaries"),this.child.visit(l=>{l instanceof pe&&this.summaryViews.setChildren(l.sampleAggregateViews)}),this.childCoords=dn.ZERO,this.facetTexture=void 0,this.facetTextureData=void 0,this.peripheryView=new Wr({title:"Sidebar",resolve:{scale:{default:"independent"},axis:{default:"independent"}},hconcat:[],spacing:0},r,this,"sample-sidebar"),this.peripheryCoords=dn.ZERO,this.groupPanel=new Mk(this),this.attributePanel=new fb(this),this.peripheryView.setChildren([this.groupPanel,this.attributePanel]);{const l=(f=this.spec.spec)==null?void 0:f.view;if(l!=null&&l.fill||l!=null&&l.stroke){const d=new pe(l1(l),this.context,this,"sample-background");d.blockEncodingInheritance=!0,this.backgroundView=d}else this.backgroundView=void 0}this.child.addInteractionEventListener("contextmenu",this._handleContextMenu.bind(this)),this.provenance.storeHelper.subscribe(rc(l=>rd(l).rootGroup,l=>{this._locations=void 0,this.groupPanel.updateGroups(),this._peekState=0,this.context.requestLayoutReflow(),this.context.animator.requestRender()})),this.provenance.storeHelper.subscribe(rc(l=>rd(l).sampleData,l=>{const d=l&&Object.values(l.entities);d&&(this.attributePanel._setSamples(d),this.facetTextureData=new Float32Array(Math.ceil(d.length*2/4)*4),this.groupPanel.updateGroups())})),this.compositeAttributeInfoSource.addAttributeInfoSource(pb,l=>{var C;const d=l.specifier,p=this.findDescendantByName(d.view);let h;if(le(d.locus))h=d.locus;else{const x=this.getScaleResolution("x").getGenome();if(x)h=x.toContinuous(d.locus.chrom,d.locus.pos);else throw new Error("Encountered a complex locus but no genome is available!")}const m=x=>{var v;return(v=p.mark.findDatumAt(x,h))==null?void 0:v[d.field]},[g,y]=Object.entries(p.getEncoding()).find(([x,v])=>"field"in v&&v.field==d.field),b=g?(C=p.getScaleResolution(g))==null?void 0:C.getScale():void 0;return{name:d.field,attribute:l,title:E`<em class="attribute">${d.field}</em> <span class="viewTitle">(${p.getTitleText()??p.name})</span> at <span class="locus">${gb(d.locus)}</span>`,accessor:m,type:"type"in y?y.type:void 0,scale:b}}),this._addBroadcastHandler("dataLoaded",()=>this.extractSamplesFromData()),this._addBroadcastHandler("layout",()=>{this._locations=void 0}),this._scrollOffset=0,this._scrollableHeight=0,this._peekState=0,this._lastMouseY=-1,this.addInteractionEventListener("mousemove",(l,d)=>{this._lastMouseY=d.point.y-this.childCoords.y}),this.addInteractionEventListener("wheel",(l,d)=>{const p=d.uiEvent;this._peekState&&!p.ctrlKey&&(this._scrollOffset=ms(this._scrollOffset+p.deltaY,0,this._scrollableHeight-this.childCoords.height),this.groupPanel.updateRange(),this.context.animator.requestRender(),d.uiEvent={type:p.type,deltaX:p.deltaX,preventDefault:p.preventDefault.bind(p)})},!0),r.addKeyboardListener("keydown",l=>{l.code=="KeyE"&&!l.repeat&&this.togglePeek()}),r.addKeyboardListener("keyup",l=>{l.code=="KeyE"&&this.togglePeek(!1)});const s=l=>this.compositeAttributeInfoSource.getAttributeInfo(l),c=T9(s);this.provenance.addReducer(c.name,c.reducer),this.provenance.addActionInfoSource(l=>k9(l,s)),this.actions=c.actions;const u=e9(l=>{var d;return(d=l.sampleData)==null?void 0:d.entities},l=>l&&Object.values(l));this.getSamples=()=>u(this.sampleHierarchy),this.spec.samples.data&&this.loadSamples()}getOverhang(){let n=this.peripheryView.isVisible()?this.peripheryView.getSize().width.px:0;return n&&(n+=mb),new Ke(0,0,0,n)}*[Symbol.iterator](){this.backgroundView&&(yield this.backgroundView),yield this.child,yield this.peripheryView}replaceChild(n,r){const i=r;if(n===this.child)this.child=i;else throw new Error("Not my child!")}loadSamples(){if(!this.spec.samples.data)throw new Error("SampleView has no explicit sample metadata specified! Cannot load anything.");const{dataSource:n,collector:r}=E5(v1(this.spec.samples.data,this.getBaseUrl()),new kk);r.observers.push(o=>{const a=o.getData();this.provenance.storeHelper.dispatch(this.actions.setSamples({samples:a}))});const i="samples "+this.getPathString();this.context.dataFlow.addDataSource(n,i)}extractSamplesFromData(){if(this.getSamples())return;const n=this.getScaleResolution("sample");if(n){const r=n.getDataDomain().map((i,o)=>({id:i,displayName:i,indexNumber:o,attributes:[]}));this.provenance.storeHelper.dispatch(this.actions.setSamples({samples:r}))}else throw new Error("No explicit sample data nor sample channels found!")}get sampleHierarchy(){return this.provenance.getPresentState()[ri]}get leafSamples(){return id(this.sampleHierarchy).map(r=>r.at(-1)).map(r=>r.samples).flat()}getLocations(){var n,r,i;if(!this._locations){if(!((n=this.childCoords)!=null&&n.height))return;const o=this.sampleHierarchy,a=id(o),s=[null,...o.groupMetadata],c=(((r=this.summaryViews)==null?void 0:r.isVisible())&&((i=this.summaryViews)==null?void 0:i.getSize().height.px))??0,u=hb(a,{viewHeight:this.childCoords.height,groupSpacing:5,summaryHeight:c}),f=hb(a,{sampleHeight:35,groupSpacing:15,summaryHeight:c}),l=()=>-this._scrollOffset,d=()=>this._peekState;this._scrollableLocations=f,this._scrollableHeight=f.summaries.map(g=>g.locSize.location+g.locSize.size).reduce((g,y)=>Math.max(g,y),0);const p=(g,y)=>{const b=[];for(let w=0;w<g.length;w++){const C=g[w].key;b.push({key:C,locSize:BM(g[w].locSize,OM(y[w].locSize,l),d)})}return b},h=p(u.groups,f.groups),m=document.createElement("div");h.forEach(g=>{if(g.key.depth==0)return;const y=s[g.key.depth].attribute,b=this.compositeAttributeInfoSource.getAttributeInfo(y).title;b?ne(b)?g.key.attributeLabel=b:(Be(b,m),g.key.attributeLabel=m.textContent.replace(/\s+/g," ").trim()):g.key.attributeLabel="unknown"}),this._locations={samples:p(u.samples,f.samples),summaries:p(u.summaries,f.summaries),groups:h}}return this._locations}getSampleAt(n){const r=Ik(n,this.getLocations().samples);if(r)return this.sampleHierarchy.sampleData.entities[r.key]}getSummaryAt(n){const r=this.getLocations().summaries,i=r.findIndex(o=>Ng(o.locSize,n));return i>=0?{index:i,location:r[i]}:void 0}_clipBySummary(n){if(this.stickySummaries&&this.summaryViews.childCount){const r=this.summaryViews.getSize().height.px;return n.modify({y:()=>n.y+r,height:()=>n.height-r})}}renderChild(n,r,i={}){var c;const o=1/r.height,a=()=>o,s=this._clipBySummary(r);for(const u of this.getLocations().samples){const f={...i,sampleFacetRenderingOptions:{locSize:FM(u.locSize,a)},facetId:[u.key],clipRect:s};(c=this.backgroundView)==null||c.render(n,r,f),this.child.render(n,r,f)}}renderSummaries(n,r,i={}){i={...i,clipRect:r};const o=this.summaryViews.getSize().height.px;for(const[a,s]of this.getLocations().summaries.entries()){const c=()=>{const u=s.locSize.location;let f=r.y+u;return this.stickySummaries?f+ms(-u,0,s.locSize.size-o):f};this.summaryViews.render(n,r.modify({y:c,height:o}),{...i,facetId:[a]})}}render(n,r,i={}){if(!this.isVisible())return;this.parent||(r=r.shrink(this.getPadding())),n.pushView(this,r);const o=go([this.peripheryView.isVisible()?this.peripheryView.getSize().width:{px:0},{grow:1}],r.width,{spacing:mb}),a=s=>r.modify({x:s.location+r.x,width:s.size});this.peripheryCoords=a(o[0]),this.childCoords=a(o[1]),this.peripheryView.render(n,this.peripheryCoords,i),this.renderChild(n,this.childCoords,i),this.renderSummaries(n,this.childCoords,i),n.popView(this)}onBeforeRender(){this._updateFacetTexture()}_updateFacetTexture(){var o;const n=this.facetTextureData;n.fill(0);const r=(o=this.sampleHierarchy.sampleData)==null?void 0:o.entities;if(r){const a=this.getLocations().samples,s=this.childCoords.height;for(const c of a){const u=r[c.key].indexNumber;n[u*2+0]=c.locSize.location/s,n[u*2+1]=c.locSize.size/s}}const i=this.context.glHelper.gl;this.facetTexture=po(i,{internalFormat:i.RG32F,format:i.RG,height:1},n,this.facetTexture)}togglePeek(n){var i;if(this._peekState>0&&this._peekState<1||n!==void 0&&n==!!this._peekState)return;const r={requestAnimationFrame:o=>this.context.animator.requestTransition(o),onUpdate:o=>{this._peekState=Math.pow(o,2),this.groupPanel.updateRange(),this.context.animator.requestRender()},from:this._peekState};if(this._peekState==0){const o=this._lastMouseY,a=(i=this.getSampleAt(o))==null?void 0:i.id;let s;if(a)s=(u=>u.location+u.size/2)(this._scrollableLocations.samples.find(u=>u.key==a).locSize);else{const c=this.getSummaryAt(o);c&&(s=this._scrollableLocations.summaries[c.index].locSize.location-(c.location.locSize.location-o))}s?this._scrollOffset=s-o:this._scrollOffset=(this._scrollableHeight-this.childCoords.height)/2,this._scrollableHeight>this.childCoords.height?ws({...r,to:1,duration:500,easingFunction:v8}):ws({...r,from:0,to:1,duration:300,easingFunction:u=>(1-Math.pow(u*2-1,2))*.5})}else ws({...r,to:0,duration:400,easingFunction:g8})}makePeekMenuItem(){return{...this._peekState==0?{label:"Open closeup",callback:()=>this.togglePeek(!0),icon:P6}:{label:"Close closeup",callback:()=>this.togglePeek(!1),icon:z6},shortcut:"E"}}_handleContextMenu(n,r){const i=r.uiEvent,o=this.childCoords.normalizePoint(r.point.x,r.point.y).x,a=this.getScaleResolution("x").invertToComplex(o),s=E1([...this.getAncestors()].at(-1)),c=k5(this.child).filter(l=>!["sample","x","x2"].includes(l.channel)).filter(l=>["rect","rule"].includes(l.view.getMarkType())).filter(l=>s.has(l.view.name));let u=[this.makePeekMenuItem(),pd,{label:`Locus: ${gb(a)}`,type:"header"},pd],f="";for(const[l,d]of c.entries()){const p={view:d.view.name,field:d.field,locus:a},h=this.compositeAttributeInfoSource.getAttributeInfo({type:pb,specifier:p}),m=d.view.getTitleText()??d.view.spec.name;m!=f&&(l>0&&u.push({type:"divider"}),u.push({label:m,type:"header"}),f=m),u.push({label:d.field,submenu:ad(null,h,void 0,this)})}md({items:u},i)}getSampleFacetTexture(){return this.facetTexture}propagateInteractionEvent(n){this.handleInteractionEvent(void 0,n,!0),!n.stopped&&(this.childCoords.containsPoint(n.point.x,n.point.y)&&(this.child.propagateInteractionEvent(n),c1(n,this.childCoords,r=>se(this,fc,t2).call(this,this.childCoords,this.child,r),this.context.getCurrentHover())),this.peripheryCoords.containsPoint(n.point.x,n.point.y)&&this.peripheryView.propagateInteractionEvent(n),!n.stopped&&this.handleInteractionEvent(void 0,n,!1))}getDefaultResolution(n,r){switch(n){case"x":case"sample":return"shared";default:return"independent"}}}fc=new WeakSet,t2=function(n,r,i){const o=this.child.getScaleResolution("x");if(!o||!o.isZoomable())return;const a=n.normalizePoint(i.x,i.y),s=n.normalizePoint(i.x+i.xDelta,i.y+i.yDelta);o.zoom(2**i.zDelta,a.x,s.x-a.x),this.context.animator.requestRender()};function gb(t){return!le(t)&&"chrom"in t?c8(t):""+t}class kk extends ue{constructor(){super(),this.reset()}reset(){this._index=0}handle(e){this._propagate({id:e.sample,displayName:e.displayName||e.sample,indexNumber:this._index++,attributes:Nk(e)})}}function Nk(t){const e=Object.assign({},t);return delete e.sample,delete e.displayName,e}function Lk(t){return"samples"in t&&ze(t.samples)&&"spec"in t&&ze(t.spec)}const Bk=(t,e)=>e.some(n=>t instanceof n);let yb,vb;function Ok(){return yb||(yb=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])}function Fk(){return vb||(vb=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])}const bb=new WeakMap,vd=new WeakMap,Ab=new WeakMap,bd=new WeakMap,Ad=new WeakMap;function Pk(t){const e=new Promise((n,r)=>{const i=()=>{t.removeEventListener("success",o),t.removeEventListener("error",a)},o=()=>{n(bn(t.result)),i()},a=()=>{r(t.error),i()};t.addEventListener("success",o),t.addEventListener("error",a)});return e.then(n=>{n instanceof IDBCursor&&bb.set(n,t)}).catch(()=>{}),Ad.set(e,t),e}function zk(t){if(vd.has(t))return;const e=new Promise((n,r)=>{const i=()=>{t.removeEventListener("complete",o),t.removeEventListener("error",a),t.removeEventListener("abort",a)},o=()=>{n(),i()},a=()=>{r(t.error||new DOMException("AbortError","AbortError")),i()};t.addEventListener("complete",o),t.addEventListener("error",a),t.addEventListener("abort",a)});vd.set(t,e)}let xd={get(t,e,n){if(t instanceof IDBTransaction){if(e==="done")return vd.get(t);if(e==="objectStoreNames")return t.objectStoreNames||Ab.get(t);if(e==="store")return n.objectStoreNames[1]?void 0:n.objectStore(n.objectStoreNames[0])}return bn(t[e])},set(t,e,n){return t[e]=n,!0},has(t,e){return t instanceof IDBTransaction&&(e==="done"||e==="store")?!0:e in t}};function Rk(t){xd=t(xd)}function jk(t){return t===IDBDatabase.prototype.transaction&&!("objectStoreNames"in IDBTransaction.prototype)?function(e,...n){const r=t.call(wd(this),e,...n);return Ab.set(r,e.sort?e.sort():[e]),bn(r)}:Fk().includes(t)?function(...e){return t.apply(wd(this),e),bn(bb.get(this))}:function(...e){return bn(t.apply(wd(this),e))}}function Uk(t){return typeof t=="function"?jk(t):(t instanceof IDBTransaction&&zk(t),Bk(t,Ok())?new Proxy(t,xd):t)}function bn(t){if(t instanceof IDBRequest)return Pk(t);if(bd.has(t))return bd.get(t);const e=Uk(t);return e!==t&&(bd.set(t,e),Ad.set(e,t)),e}const wd=t=>Ad.get(t);function Hk(t,e,{blocked:n,upgrade:r,blocking:i,terminated:o}={}){const a=indexedDB.open(t,e),s=bn(a);return r&&a.addEventListener("upgradeneeded",c=>{r(bn(a.result),c.oldVersion,c.newVersion,bn(a.transaction))}),n&&a.addEventListener("blocked",()=>n()),s.then(c=>{o&&c.addEventListener("close",()=>o()),i&&c.addEventListener("versionchange",()=>i())}).catch(()=>{}),s}const Gk=["get","getKey","getAll","getAllKeys","count"],Qk=["put","add","delete","clear"],Cd=new Map;function xb(t,e){if(!(t instanceof IDBDatabase&&!(e in t)&&typeof e=="string"))return;if(Cd.get(e))return Cd.get(e);const n=e.replace(/FromIndex$/,""),r=e!==n,i=Qk.includes(n);if(!(n in(r?IDBIndex:IDBObjectStore).prototype)||!(i||Gk.includes(n)))return;const o=async function(a,...s){const c=this.transaction(a,i?"readwrite":"readonly");let u=c.store;return r&&(u=u.index(s.shift())),(await Promise.all([u[n](...s),i&&c.done]))[0]};return Cd.set(e,o),o}Rk(t=>({...t,get:(e,n,r)=>xb(e,n)||t.get(e,n,r),has:(e,n)=>!!xb(e,n)||t.has(e,n)}));class wb{isReadonly(){return!0}async put(e,n){this._checkReadonly()}async delete(e){this._checkReadonly()}async getNames(){return[]}async get(e){}_checkReadonly(){if(this.isReadonly())throw new Error("This bookmark")}}const zo="bookmarks";class Vk extends wb{constructor(e){super(),this.specId=e,this._db=void 0}async _getDB(){if(!this._db){const e=`GenomeSpy: ${this.specId}`;this._db=Hk(e,1,{upgrade(n,r,i,o){n.createObjectStore(zo,{keyPath:"name"})},blocked(){},blocking(){},terminated(){}})}return this._db}isReadonly(){return!1}async put(e,n){const i=(await this._getDB()).transaction(zo,"readwrite");try{n?(await i.store.delete(n),await i.store.put(e)):await i.store.put(e),await i.done}catch(o){throw i.abort(),o}}async delete(e){(await this._getDB()).delete(zo,e)}async getNames(){return(await this._getDB()).getAllKeys(zo)}async get(e){return(await this._getDB()).get(zo,e)}}/**
2349
+ */function*kY(e,t){const n=typeof t=="function";if(e!==void 0){let r=-1;for(const i of e)r>-1&&(yield n?t(r):t),r++,yield i}}const _6="setSamples",k6="sortBy",D6="retainFirstOfEach",I6="retainFirstNCategories",T6="filterByNominal",M6="filterByQuantitative",N6="removeUndefined",F6="groupByNominal",B6="groupToQuartiles",L6="groupByThresholds",O6="removeGroup",R6="retainMatched",_s="sampleView";function DY(){return{sampleData:void 0,groupMetadata:[],rootGroup:{name:"ROOT",title:"Root",samples:[]}}}function IY(e){const t=(n,r)=>{const i=e(n.attribute).accessor;return a=>i(a,r)};return S6({name:_s,initialState:DY(),reducers:{[_6]:(n,r)=>{const i=r.payload.samples;if(n.sampleData)throw new Error("Samples have already been set!");if(i.some(o=>o.id===void 0||o.id===null))throw new Error('The sample metadata contains missing sample ids or the "sample" column is missing!');if(new Set(i.map(o=>o.id)).size!=i.length)throw new Error("The sample metadata contains duplicate sample ids!");const a=i.map((o,s)=>({...o,indexNumber:s}));n.sampleData={ids:a.map(o=>o.id),entities:Object.fromEntries(a.map(o=>[o.id,o]))},n.rootGroup={name:"ROOT",title:"Root",samples:n.sampleData.ids}},[k6]:(n,r)=>{to(n,i=>EY(i,wY(t(r.payload,n),e(r.payload.attribute)),!1))},[D6]:(n,r)=>{to(n,i=>xY(i,t(r.payload,n)))},[I6]:(n,r)=>{to(n,i=>AY(i,t(r.payload,n),r.payload.n))},[M6]:(n,r)=>{to(n,i=>CY(i,t(r.payload,n),r.payload.operator,r.payload.operand))},[T6]:(n,r)=>{to(n,i=>C6(i,t(r.payload,n),r.payload.remove?"remove":"retain",r.payload.values))},[N6]:(n,r)=>{to(n,i=>_Y(i,t(r.payload,n)))},[F6]:(n,r)=>{var a;const i=(a=e(r.payload.attribute).scale)==null?void 0:a.domain();$1(n,o=>j6(o,t(r.payload,n),i)),n.groupMetadata.push({attribute:r.payload.attribute})},[B6]:(n,r)=>{$1(n,i=>FY(i,t(r.payload,n))),n.groupMetadata.push({attribute:r.payload.attribute})},[L6]:(n,r)=>{$1(n,i=>NY(i,t(r.payload,n),r.payload.thresholds)),n.groupMetadata.push({attribute:r.payload.attribute})},[O6]:(n,r)=>{const i=n.rootGroup;Zh(i)&&G6(i,r.payload.path)},[R6]:(n,r)=>{const i=t(r.payload,n),a=[];for(const s of V1(n))if(s.samples.length>0){const l=new Set;for(const c of s.samples)l.add(i(c));a.push(l)}const o=[];for(const s of a[0]){let l=!0;for(let c=1;c<a.length&&l;c++)l=a[c].has(s);l&&o.push(s)}to(n,s=>C6(s,i,"retain",o))}}})}function to(e,t){for(const n of V1(e))n.samples=t(n.samples)}function $1(e,t){for(const n of V1(e))t(n)}function V1(e){return Q1(e).map(t=>Gt(t))}function Y1(e){return e.provenance.present[_s]}function Q1(e){const t=[],n=[],r=i=>{if(t.push(i),Zh(i))for(const a of i.groups)r(a);else n.push([...t]);t.pop()};return r(e.rootGroup),n}function z6(e){return"samples"in e}function Zh(e){return"groups"in e}function*Z1(e){if(yield[e],Zh(e))for(const t of e.groups)for(const n of Z1(t))yield[e,...n]}const TY=rt(".4"),P6={lt:"<",lte:"≤",eq:"=",gte:"≥",gt:">"};function U6(e){return z`{${e.map((t,n)=>z`${n>0?", ":""}<strong>${t}</strong>`)}}`}function MY(e,t){if(!e.type.startsWith(_s))return;const n=e.payload,r=n.attribute&&t(n.attribute),i=r==null?void 0:r.name,a=(r==null?void 0:r.title)||z`<em>${i}</em>`,o={attributeName:i};switch(e.type.substring(_s.length+1)){case _6:return{...o,title:"The initial state",icon:bG};case k6:return{...o,title:"Sort by",provenanceTitle:z`Sort by ${a}`,icon:lG};case D6:return{...o,title:z`Retain the first sample of each <em>${i}</em>`,provenanceTitle:z`Retain the first sample of each ${a}`,icon:QS};case I6:return{...o,title:z`Retain first <strong>n</strong> categories of <em>${i}</em>...`,provenanceTitle:z`Retain first <strong>${n.n}</strong> categories of ${a}`,icon:QS};case T6:{const l=n.values,c=u=>z`${n.remove?"Remove":"Retain"} samples having ${l[0]===void 0||l[0]===null?z`undefined ${u}`:z`${u} ${l.length>1?z`in ${U6(l)}`:z`<span class="operator">=</span> <strong>${l[0]}</strong>`}`}`;return{...o,title:c(z`<em>${i}</em>`),provenanceTitle:c(a),icon:n.remove?kh:Qa}}case M6:{const l=c=>z`Retain samples having ${c} <span class="operator">${P6[n.operator]}</span> <strong>${TY(n.operand)}</strong>`;return{...o,title:l(z`<em>${i}</em>`),provenanceTitle:l(a),icon:Qa}}case N6:return{...o,title:"Remove samples having missing attribute",provenanceTitle:z`Remove samples having missing ${a}`,icon:kh};case F6:return{...o,title:"Group by",provenanceTitle:z`Group by ${a}`,icon:Nl};case B6:return{...o,title:"Group by quartiles",provenanceTitle:z`Group by quartiles on ${a}`,icon:Nl};case L6:return{...o,title:"Group by thresholds",provenanceTitle:z`Group by thresholds ${U6(n.thresholds.map(l=>`${P6[l.operator]} ${l.operand}`))} on ${a}`,icon:Nl};case O6:return{title:"Remove group",provenanceTitle:z`Remove group ${kY(n.path.map(l=>z`<strong>${l}</strong>`)," / ")}`,icon:kh};case R6:return{...o,title:z`Retain group-wise matched samples using <em>${i}</em>`,provenanceTitle:z`Retain group-wise matched samples using ${a}`,icon:Qa};default:return{...o,title:JSON.stringify(e),icon:VS}}}function j6(e,t,n,r){if(r&&!n)throw new Error("Custom labels need explicit group order!");const i=Us(e.samples,t),a=n?n.map(l=>[l,i.get(l)]).filter(l=>l[1]):[...i],s=e;s.groups=a.map(([l,c],u)=>({name:""+l,title:r?r[u]:l,samples:c})),delete e.samples}function H6(e,t,n){const r=o=>`Group ${o+1}`,i=qr(n.length-1).reverse(),a=$6(t,n.slice(1,n.length-1));j6(e,o=>r(a(o)),i.map(r),i.map(o=>Y6(n[o],n[o+1])))}function NY(e,t,n){H6(e,t,[{operator:"lt",operand:-1/0},...n,{operator:"lte",operand:1/0}])}function FY(e,t){const n=LY(BY(e.samples,t,[0,.25,.5,.75,1]));n.length==1&&n.push(n[0]),H6(e,t,n.map((r,i,a)=>({operator:i==a.length-1?"lte":"lt",operand:r})))}function G6(e,t){if(t.length==0)return;const n=e.groups.findIndex(r=>r.name==t[0]);if(!(n<0)){if(t.length==1)e.groups.splice(n,1);else if(t.length>1){const r=e.groups[n];Zh(r)&&G6(r,[...t].splice(1))}}}function $6(e,t){return r=>{const i=e(r);if(!(!Ke(i)||isNaN(i))){for(let a=0;a<t.length;a++)if(t[a].operator=="lt"){if(i<t[a].operand)return a}else if(i<=t[a].operand)return a;return t.length}}}function BY(e,t,n){const r=lk(e.map(t).filter(i=>Ke(i)&&!isNaN(i)));return n.map(i=>Fd(r,i))}function LY(e){const t=[e[0]];for(let n=1;n<e.length;n++)e[n]!=e[n-1]&&t.push(e[n]);return t}const V6=rt(".3~r"),Y6=(e,t)=>`${e.operator=="lt"?"[":"("}${V6(e.operand)}, ${V6(t.operand)}${t.operator=="lte"?"]":")"}`;function OY(e,t){const n=t.provenance.storeHelper.getDispatcher(),r=[],i=Ka(),a=z`<div class="modal-title">Group by threshold on <em>${e.name}</em></div>`,o=y=>{n(t.actions.groupByThresholds({attribute:e.attribute,thresholds:r})),i.close()},s=()=>z`<div class="modal-buttons"><button class="btn btn-cancel" @click="${()=>i.close()}">Cancel</button> <button class="btn btn-primary" ?disabled="${!RY(r)}" @click="${()=>o()}">${ke(Nl).node[0]} Group</button></div>`,l=(y,v)=>(v>0&&(y=Math.max(y,r[v-1].operand)),v<r.length-1&&(y=Math.min(y,r[v+1].operand)),y),c=(y,v)=>{const S=y.target.value;r[v].operator=S,g()},u=(y,v)=>{const S=y.target.value;/^\d+(\.\d+)?$/.test(S)&&(r[v].operand=l(+S,v),g())},f=y=>{const v=r.findIndex(S=>S.operand>y.value);r.splice(v<0?r.length:v,0,{operand:y.value,operator:"lt"}),g()},h=y=>{r[y.index].operand=l(y.value,y.index),g()},d=y=>{r.splice(y,1),g()},p=zY(e,t.leafSamples,t.sampleHierarchy);function g(){const y=()=>{const S=[{operand:-1/0,operator:"lt"},...r,{operand:1/0,operator:"lte"}],k=$6(w=>w,S),C=[];for(let w=1;w<S.length;w++)C.push(0);for(const w of p)C[k(w)-1]++;const E=[];for(let w=1;w<S.length;w++)E.push({index:w-1,name:w,interval:Y6(S[w-1],S[w]),n:C[w-1]});return z`<table class="threshold-groups"><thead><tr><th>Group</th><th>Interval</th><th>n</th></tr></thead><tbody>${E.map(w=>z`<tr><td><span class="group-color" style="background-color:${JC[w.index]}"></span> ${w.name}</td><td>${w.interval}</td><td>${w.n}</td></tr>`)}</tbody></table>`},v=z`<div class="gs-form-group group-by-thresholds-form"><label>Split into groups using the thresholds:</label><genome-spy-histogram .values="${p}" .thresholds="${r.map(S=>S.operand)}" .operators="${r.map(S=>S.operator)}" .showThresholdNumbers="${!0}" @add="${f}" @adjust="${h}"></genome-spy-histogram>${r.map((S,k)=>z`<div class="threshold-flex"><select .value="${S.operator}" @change="${C=>c(C,k)}"><option value="lt">${"<"}</option><option value="lte">${"≤"}</option></select> <input .value="${""+S.operand}" type="text" placeholder="Numeric value" @input="${C=>u(C,k)}" @blur="${C=>{C.target.value=""+r[k].operand}}"> <button @click="${()=>d(k)}" class="btn" title="Remove">${ke(ZS).node[0]}</button></div>`)} ${r.length?z`<small>The operator specifies whether the upper endpoint of the interval (<em>i.e.</em>, the group) is exclusive (&lt;) or inclusive(≤). </small>${y()}`:ne}</div>`;Bt(z`${a}<div class="modal-body">${v}</div>${s()}`,i.content)}g()}function RY(e){return e.length}function zY(e,t,n){const r=e.accessor;return t.map(i=>r(i,n))}function PY(e,t){const n=t.provenance.storeHelper.getDispatcher();let r=5;const i=Ka(),a=z`<div class="modal-title">Retain first n categories of <em>${e.title}</em></div>`,o=u=>{n(t.actions.retainFirstNCategories({attribute:e.attribute,n:r})),i.close()},s=()=>z`<div class="modal-buttons"><button class="btn btn-cancel" @click="${()=>i.close()}">Cancel</button> <button class="btn btn-primary" @click="${()=>o()}">${ke(Qa).node[0]} Retain</button></div>`,l=z`<div class="gs-form-group"><label>Number of categories to retain:</label> <input type="number" min="1" .valueAsNumber="${r}" @change="${u=>{r=u.target.valueAsNumber}}"></div>`;function c(){Bt(z`${a}<div class="modal-body">${l}</div>${s()}`,i.content)}c(),i.content.querySelector("input").focus()}function q1(e,t,n,r){const i=r.actions,a=t.attribute,o=r.sampleHierarchy,s=r.provenance.storeHelper.getDispatcher(),l=[];e&&l.push({label:e,type:"header"});const c=(h,d,p)=>{const g=r.provenance.getActionInfo(h);return{label:g.title,icon:g.icon,callback:d?void 0:p??(()=>s(h))}},u=(...h)=>l.push(...h.map(d=>c(d)));u(i.sortBy({attribute:a}));const f=(t==null?void 0:t.type)??"identifier";return f!="quantitative"?(f!="identifier"&&(u(i.groupByNominal({attribute:a}),i.retainFirstOfEach({attribute:a})),l.push(c(i.retainFirstNCategories({attribute:a,n:void 0}),!1,()=>PY(t,r)))),u(i.filterByNominal({attribute:a,values:[n]}),i.filterByNominal({attribute:a,remove:!0,values:[n]})),f!="identifier"&&l.push(c(i.retainMatched({attribute:a}),!o.groupMetadata.length))):(u(i.groupToQuartiles({attribute:a})),l.push({icon:Nl,label:"Group by thresholds...",callback:()=>OY(t,r)}),UY(n)?u(i.filterByQuantitative({attribute:a,operator:"gte",operand:+n}),i.filterByQuantitative({attribute:a,operator:"lte",operand:+n})):u(i.removeUndefined({attribute:a}))),l.push({icon:Qa,label:"Advanced filter...",callback:()=>IV(t,r)}),l}function UY(e){return e!=null&&e!==""&&!(typeof e=="number"&&isNaN(e))}var Ur={},no={};Object.defineProperty(no,"__esModule",{value:!0}),no.ActionCreators=no.ActionTypes=void 0;var ro={UNDO:"@@redux-undo/UNDO",REDO:"@@redux-undo/REDO",JUMP_TO_FUTURE:"@@redux-undo/JUMP_TO_FUTURE",JUMP_TO_PAST:"@@redux-undo/JUMP_TO_PAST",JUMP:"@@redux-undo/JUMP",CLEAR_HISTORY:"@@redux-undo/CLEAR_HISTORY"};no.ActionTypes=ro;var jY={undo:function(){return{type:ro.UNDO}},redo:function(){return{type:ro.REDO}},jumpToFuture:function(t){return{type:ro.JUMP_TO_FUTURE,index:t}},jumpToPast:function(t){return{type:ro.JUMP_TO_PAST,index:t}},jump:function(t){return{type:ro.JUMP,index:t}},clearHistory:function(){return{type:ro.CLEAR_HISTORY}}};no.ActionCreators=jY;var fr={};Object.defineProperty(fr,"__esModule",{value:!0}),fr.parseActions=qh,fr.isHistory=HY,fr.includeAction=GY,fr.excludeAction=$Y,fr.combineFilters=VY,fr.groupByActionTypes=YY,fr.newHistory=QY;function qh(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];return Array.isArray(e)?e:typeof e=="string"?[e]:t}function HY(e){return typeof e.present<"u"&&typeof e.future<"u"&&typeof e.past<"u"&&Array.isArray(e.future)&&Array.isArray(e.past)}function GY(e){var t=qh(e);return function(n){return t.indexOf(n.type)>=0}}function $Y(e){var t=qh(e);return function(n){return t.indexOf(n.type)<0}}function VY(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.reduce(function(r,i){return function(a,o,s){return r(a,o,s)&&i(a,o,s)}},function(){return!0})}function YY(e){var t=qh(e);return function(n){return t.indexOf(n.type)>=0?n.type:null}}function QY(e,t,n){var r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:null;return{past:e,present:t,future:n,group:r,_latestUnfiltered:t,index:e.length,limit:e.length+n.length+1}}var Q6={},ks={};Object.defineProperty(ks,"__esModule",{value:!0}),ks.set=nQ,ks.start=JY,ks.end=eQ,ks.log=tQ;function hr(e){return WY(e)||qY(e)||ZY()}function ZY(){throw new TypeError("Invalid attempt to spread non-iterable instance")}function qY(e){if(Symbol.iterator in Object(e)||Object.prototype.toString.call(e)==="[object Arguments]")return Array.from(e)}function WY(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t<e.length;t++)n[t]=e[t];return n}}var Wh,wn,W1={prevState:"#9E9E9E",action:"#03A9F4",nextState:"#4CAF50"};function XY(){wn={header:[],prev:[],action:[],next:[],msgs:[]}}function KY(){var e=wn,t=e.header,n=e.prev,r=e.next,i=e.action,a=e.msgs;if(console.group){var o,s,l,c,u;(o=console).groupCollapsed.apply(o,hr(t)),(s=console).log.apply(s,hr(n)),(l=console).log.apply(l,hr(i)),(c=console).log.apply(c,hr(r)),(u=console).log.apply(u,hr(a)),console.groupEnd()}else{var f,h,d,p,g;(f=console).log.apply(f,hr(t)),(h=console).log.apply(h,hr(n)),(d=console).log.apply(d,hr(i)),(p=console).log.apply(p,hr(r)),(g=console).log.apply(g,hr(a))}}function X1(e,t,n){return["%c".concat(e),"color: ".concat(t,"; font-weight: bold"),n]}function JY(e,t){XY(),Wh&&(console.group?(wn.header=["%credux-undo","font-style: italic","action",e.type],wn.action=X1("action",W1.action,e),wn.prev=X1("prev history",W1.prevState,t)):(wn.header=["redux-undo action",e.type],wn.action=["action",e],wn.prev=["prev history",t]))}function eQ(e){Wh&&(console.group?wn.next=X1("next history",W1.nextState,e):wn.next=["next history",e],KY())}function tQ(){if(Wh){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];wn.msgs=wn.msgs.concat([].concat(t,[`
2350
+ `]))}}function nQ(e){Wh=e}(function(e){function t(E){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?t=function(A){return typeof A}:t=function(A){return A&&typeof Symbol=="function"&&A.constructor===Symbol&&A!==Symbol.prototype?"symbol":typeof A},t(E)}Object.defineProperty(e,"__esModule",{value:!0}),e.default=C;var n=o(ks),r=no,i=fr;function a(){if(typeof WeakMap!="function")return null;var E=new WeakMap;return a=function(){return E},E}function o(E){if(E&&E.__esModule)return E;if(E===null||t(E)!=="object"&&typeof E!="function")return{default:E};var w=a();if(w&&w.has(E))return w.get(E);var A={},T=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var D in E)if(Object.prototype.hasOwnProperty.call(E,D)){var M=T?Object.getOwnPropertyDescriptor(E,D):null;M&&(M.get||M.set)?Object.defineProperty(A,D,M):A[D]=E[D]}return A.default=E,w&&w.set(E,A),A}function s(E,w){var A=Object.keys(E);if(Object.getOwnPropertySymbols){var T=Object.getOwnPropertySymbols(E);w&&(T=T.filter(function(D){return Object.getOwnPropertyDescriptor(E,D).enumerable})),A.push.apply(A,T)}return A}function l(E){for(var w=1;w<arguments.length;w++){var A=arguments[w]!=null?arguments[w]:{};w%2?s(Object(A),!0).forEach(function(T){c(E,T,A[T])}):Object.getOwnPropertyDescriptors?Object.defineProperties(E,Object.getOwnPropertyDescriptors(A)):s(Object(A)).forEach(function(T){Object.defineProperty(E,T,Object.getOwnPropertyDescriptor(A,T))})}return E}function c(E,w,A){return w in E?Object.defineProperty(E,w,{value:A,enumerable:!0,configurable:!0,writable:!0}):E[w]=A,E}function u(E){return d(E)||h(E)||f()}function f(){throw new TypeError("Invalid attempt to spread non-iterable instance")}function h(E){if(Symbol.iterator in Object(E)||Object.prototype.toString.call(E)==="[object Arguments]")return Array.from(E)}function d(E){if(Array.isArray(E)){for(var w=0,A=new Array(E.length);w<E.length;w++)A[w]=E[w];return A}}function p(E,w){var A=(0,i.newHistory)([],E,[]);return w&&(A._latestUnfiltered=null),A}function g(E,w,A,T){var D=E.past.length+1;n.log("inserting",w),n.log("new free: ",A-D);var M=E.past,F=E._latestUnfiltered,U=A&&A<=D,q=M.slice(U?1:0),V=F!=null?[].concat(u(q),[F]):q;return(0,i.newHistory)(V,w,[],T)}function y(E,w){if(w<0||w>=E.future.length)return E;var A=E.past,T=E.future,D=E._latestUnfiltered,M=[].concat(u(A),[D],u(T.slice(0,w))),F=T[w],U=T.slice(w+1);return(0,i.newHistory)(M,F,U)}function v(E,w){if(w<0||w>=E.past.length)return E;var A=E.past,T=E.future,D=E._latestUnfiltered,M=A.slice(0,w),F=[].concat(u(A.slice(w+1)),[D],u(T)),U=A[w];return(0,i.newHistory)(M,U,F)}function S(E,w){return w>0?y(E,w-1):w<0?v(E,E.past.length+w):E}function k(E,w){return w.indexOf(E)>-1?E:!E}function C(E){var w=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};n.set(w.debug);var A=l({limit:void 0,filter:function(){return!0},groupBy:function(){return null},undoType:r.ActionTypes.UNDO,redoType:r.ActionTypes.REDO,jumpToPastType:r.ActionTypes.JUMP_TO_PAST,jumpToFutureType:r.ActionTypes.JUMP_TO_FUTURE,jumpType:r.ActionTypes.JUMP,neverSkipReducer:!1,ignoreInitialState:!1,syncFilter:!1},w,{initTypes:(0,i.parseActions)(w.initTypes,["@@redux-undo/INIT"]),clearHistoryType:(0,i.parseActions)(w.clearHistoryType,[r.ActionTypes.CLEAR_HISTORY])}),T=A.neverSkipReducer?function(M,F){for(var U=arguments.length,q=new Array(U>2?U-2:0),V=2;V<U;V++)q[V-2]=arguments[V];return l({},M,{present:E.apply(void 0,[M.present,F].concat(q))})}:function(M){return M},D;return function(){var M=arguments.length>0&&arguments[0]!==void 0?arguments[0]:D,F=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};n.start(F,M);for(var U=M,q=arguments.length,V=new Array(q>2?q-2:0),pe=2;pe<q;pe++)V[pe-2]=arguments[pe];if(!D)if(n.log("history is uninitialized"),M===void 0){var Se={type:"@@redux-undo/CREATE_HISTORY"},tt=E.apply(void 0,[M,Se].concat(V));return U=p(tt,A.ignoreInitialState),n.log("do not set initialState on probe actions"),n.end(U),U}else(0,i.isHistory)(M)?(U=D=A.ignoreInitialState?M:(0,i.newHistory)(M.past,M.present,M.future),n.log("initialHistory initialized: initialState is a history",D)):(U=D=p(M,A.ignoreInitialState),n.log("initialHistory initialized: initialState is not a history",D));var ie;switch(F.type){case void 0:return U;case A.undoType:return ie=S(U,-1),n.log("perform undo"),n.end(ie),T.apply(void 0,[ie,F].concat(V));case A.redoType:return ie=S(U,1),n.log("perform redo"),n.end(ie),T.apply(void 0,[ie,F].concat(V));case A.jumpToPastType:return ie=v(U,F.index),n.log("perform jumpToPast to ".concat(F.index)),n.end(ie),T.apply(void 0,[ie,F].concat(V));case A.jumpToFutureType:return ie=y(U,F.index),n.log("perform jumpToFuture to ".concat(F.index)),n.end(ie),T.apply(void 0,[ie,F].concat(V));case A.jumpType:return ie=S(U,F.index),n.log("perform jump to ".concat(F.index)),n.end(ie),T.apply(void 0,[ie,F].concat(V));case k(F.type,A.clearHistoryType):return ie=p(U.present,A.ignoreInitialState),n.log("perform clearHistory"),n.end(ie),T.apply(void 0,[ie,F].concat(V));default:if(ie=E.apply(void 0,[U.present,F].concat(V)),A.initTypes.some(function(Pi){return Pi===F.type}))return n.log("reset history due to init action"),n.end(D),D;if(U._latestUnfiltered===ie)return U;var yt=typeof A.filter=="function"&&!A.filter(F,ie,U);if(yt){var Vr=(0,i.newHistory)(U.past,ie,U.future,U.group);return A.syncFilter||(Vr._latestUnfiltered=U._latestUnfiltered),n.log("filter ignored action, not storing it in past"),n.end(Vr),Vr}var De=A.groupBy(F,ie,U);if(De!=null&&De===U.group){var Xe=(0,i.newHistory)(U.past,ie,U.future,U.group);return n.log("groupBy grouped the action with the previous action"),n.end(Xe),Xe}return U=g(U,ie,A.limit,De),n.log("inserted new state into history"),n.end(U),U}}}})(Q6),function(e){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"ActionTypes",{enumerable:!0,get:function(){return t.ActionTypes}}),Object.defineProperty(e,"ActionCreators",{enumerable:!0,get:function(){return t.ActionCreators}}),Object.defineProperty(e,"parseActions",{enumerable:!0,get:function(){return n.parseActions}}),Object.defineProperty(e,"isHistory",{enumerable:!0,get:function(){return n.isHistory}}),Object.defineProperty(e,"includeAction",{enumerable:!0,get:function(){return n.includeAction}}),Object.defineProperty(e,"excludeAction",{enumerable:!0,get:function(){return n.excludeAction}}),Object.defineProperty(e,"combineFilters",{enumerable:!0,get:function(){return n.combineFilters}}),Object.defineProperty(e,"groupByActionTypes",{enumerable:!0,get:function(){return n.groupByActionTypes}}),Object.defineProperty(e,"newHistory",{enumerable:!0,get:function(){return n.newHistory}}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return r.default}});var t=no,n=fr,r=i(Q6);function i(a){return a&&a.__esModule?a:{default:a}}}(Ur);const rQ=Ca(Ur);function Xh(e){return e.split("-")[0]}function K1(e){return e.split("-")[1]}function J1(e){return["top","bottom"].includes(Xh(e))?"x":"y"}function Z6(e){return e==="y"?"height":"width"}function q6(e,t,n){let{reference:r,floating:i}=e;const a=r.x+r.width/2-i.width/2,o=r.y+r.height/2-i.height/2,s=J1(t),l=Z6(s),c=r[l]/2-i[l]/2,u=s==="x";let f;switch(Xh(t)){case"top":f={x:a,y:r.y-i.height};break;case"bottom":f={x:a,y:r.y+r.height};break;case"right":f={x:r.x+r.width,y:o};break;case"left":f={x:r.x-i.width,y:o};break;default:f={x:r.x,y:r.y}}switch(K1(t)){case"start":f[s]-=c*(n&&u?-1:1);break;case"end":f[s]+=c*(n&&u?-1:1)}return f}const iQ=async(e,t,n)=>{const{placement:r="bottom",strategy:i="absolute",middleware:a=[],platform:o}=n,s=await(o.isRTL==null?void 0:o.isRTL(t));let l=await o.getElementRects({reference:e,floating:t,strategy:i}),{x:c,y:u}=q6(l,r,s),f=r,h={};for(let d=0;d<a.length;d++){const{name:p,fn:g}=a[d],{x:y,y:v,data:S,reset:k}=await g({x:c,y:u,initialPlacement:r,placement:f,strategy:i,middlewareData:h,rects:l,platform:o,elements:{reference:e,floating:t}});c=y??c,u=v??u,h={...h,[p]:{...h[p],...S}},k&&(typeof k=="object"&&(k.placement&&(f=k.placement),k.rects&&(l=k.rects===!0?await o.getElementRects({reference:e,floating:t,strategy:i}):k.rects),{x:c,y:u}=q6(l,f,s)),d=-1)}return{x:c,y:u,placement:f,strategy:i,middlewareData:h}};function aQ(e){return typeof e!="number"?function(t){return{top:0,right:0,bottom:0,left:0,...t}}(e):{top:e,right:e,bottom:e,left:e}}function Kh(e){return{...e,top:e.y,left:e.x,right:e.x+e.width,bottom:e.y+e.height}}async function oQ(e,t){var n;t===void 0&&(t={});const{x:r,y:i,platform:a,rects:o,elements:s,strategy:l}=e,{boundary:c="clippingAncestors",rootBoundary:u="viewport",elementContext:f="floating",altBoundary:h=!1,padding:d=0}=t,p=aQ(d),g=s[h?f==="floating"?"reference":"floating":f],y=Kh(await a.getClippingRect({element:(n=await(a.isElement==null?void 0:a.isElement(g)))==null||n?g:g.contextElement||await(a.getDocumentElement==null?void 0:a.getDocumentElement(s.floating)),boundary:c,rootBoundary:u,strategy:l})),v=Kh(a.convertOffsetParentRelativeRectToViewportRelativeRect?await a.convertOffsetParentRelativeRectToViewportRelativeRect({rect:f==="floating"?{...o.floating,x:r,y:i}:o.reference,offsetParent:await(a.getOffsetParent==null?void 0:a.getOffsetParent(s.floating)),strategy:l}):o[f]);return{top:y.top-v.top+p.top,bottom:v.bottom-y.bottom+p.bottom,left:y.left-v.left+p.left,right:v.right-y.right+p.right}}const sQ={left:"right",right:"left",bottom:"top",top:"bottom"};function Jh(e){return e.replace(/left|right|bottom|top/g,t=>sQ[t])}function cQ(e,t,n){n===void 0&&(n=!1);const r=K1(e),i=J1(e),a=Z6(i);let o=i==="x"?r===(n?"end":"start")?"right":"left":r==="start"?"bottom":"top";return t.reference[a]>t.floating[a]&&(o=Jh(o)),{main:o,cross:Jh(o)}}const lQ={start:"end",end:"start"};function W6(e){return e.replace(/start|end/g,t=>lQ[t])}["top","right","bottom","left"].reduce((e,t)=>e.concat(t,t+"-start",t+"-end"),[]);const X6=function(e){return e===void 0&&(e={}),{name:"flip",options:e,async fn(t){var n;const{placement:r,middlewareData:i,rects:a,initialPlacement:o,platform:s,elements:l}=t,{mainAxis:c=!0,crossAxis:u=!0,fallbackPlacements:f,fallbackStrategy:h="bestFit",flipAlignment:d=!0,...p}=e,g=Xh(r),y=f||(g===o||!d?[Jh(o)]:function(T){const D=Jh(T);return[W6(T),D,W6(D)]}(o)),v=[o,...y],S=await oQ(t,p),k=[];let C=((n=i.flip)==null?void 0:n.overflows)||[];if(c&&k.push(S[g]),u){const{main:T,cross:D}=cQ(r,a,await(s.isRTL==null?void 0:s.isRTL(l.floating)));k.push(S[T],S[D])}if(C=[...C,{placement:r,overflows:k}],!k.every(T=>T<=0)){var E,w;const T=((E=(w=i.flip)==null?void 0:w.index)!=null?E:0)+1,D=v[T];if(D)return{data:{index:T,overflows:C},reset:{placement:D}};let M="bottom";switch(h){case"bestFit":{var A;const F=(A=C.map(U=>[U,U.overflows.filter(q=>q>0).reduce((q,V)=>q+V,0)]).sort((U,q)=>U[1]-q[1])[0])==null?void 0:A[0].placement;F&&(M=F);break}case"initialPlacement":M=o}if(r!==M)return{reset:{placement:M}}}return{}}}},uQ=function(e){return e===void 0&&(e=0),{name:"offset",options:e,async fn(t){const{x:n,y:r}=t,i=await async function(a,o){const{placement:s,platform:l,elements:c}=a,u=await(l.isRTL==null?void 0:l.isRTL(c.floating)),f=Xh(s),h=K1(s),d=J1(s)==="x",p=["left","top"].includes(f)?-1:1,g=u&&d?-1:1,y=typeof o=="function"?o(a):o;let{mainAxis:v,crossAxis:S,alignmentAxis:k}=typeof y=="number"?{mainAxis:y,crossAxis:0,alignmentAxis:null}:{mainAxis:0,crossAxis:0,alignmentAxis:null,...y};return h&&typeof k=="number"&&(S=h==="end"?-1*k:k),d?{x:S*g,y:v*p}:{x:v*p,y:S*g}}(t,e);return{x:n+i.x,y:r+i.y,data:i}}}};function K6(e){return e&&e.document&&e.location&&e.alert&&e.setInterval}function jr(e){if(e==null)return window;if(!K6(e)){const t=e.ownerDocument;return t&&t.defaultView||window}return e}function $l(e){return jr(e).getComputedStyle(e)}function Hr(e){return K6(e)?"":e?(e.nodeName||"").toLowerCase():""}function J6(){const e=navigator.userAgentData;return e!=null&&e.brands?e.brands.map(t=>t.brand+"/"+t.version).join(" "):navigator.userAgent}function dr(e){return e instanceof jr(e).HTMLElement}function Ds(e){return e instanceof jr(e).Element}function eb(e){return typeof ShadowRoot>"u"?!1:e instanceof jr(e).ShadowRoot||e instanceof ShadowRoot}function ed(e){const{overflow:t,overflowX:n,overflowY:r}=$l(e);return/auto|scroll|overlay|hidden/.test(t+r+n)}function fQ(e){return["table","td","th"].includes(Hr(e))}function e8(e){const t=/firefox/i.test(J6()),n=$l(e);return n.transform!=="none"||n.perspective!=="none"||n.contain==="paint"||["transform","perspective"].includes(n.willChange)||t&&n.willChange==="filter"||t&&!!n.filter&&n.filter!=="none"}function t8(){return!/^((?!chrome|android).)*safari/i.test(J6())}const n8=Math.min,Vl=Math.max,td=Math.round;function io(e,t,n){var r,i,a,o;t===void 0&&(t=!1),n===void 0&&(n=!1);const s=e.getBoundingClientRect();let l=1,c=1;t&&dr(e)&&(l=e.offsetWidth>0&&td(s.width)/e.offsetWidth||1,c=e.offsetHeight>0&&td(s.height)/e.offsetHeight||1);const u=Ds(e)?jr(e):window,f=!t8()&&n,h=(s.left+(f&&(r=(i=u.visualViewport)==null?void 0:i.offsetLeft)!=null?r:0))/l,d=(s.top+(f&&(a=(o=u.visualViewport)==null?void 0:o.offsetTop)!=null?a:0))/c,p=s.width/l,g=s.height/c;return{width:p,height:g,top:d,right:h+p,bottom:d+g,left:h,x:h,y:d}}function Oi(e){return(t=e,(t instanceof jr(t).Node?e.ownerDocument:e.document)||window.document).documentElement;var t}function nd(e){return Ds(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}}function r8(e){return io(Oi(e)).left+nd(e).scrollLeft}function hQ(e,t,n){const r=dr(t),i=Oi(t),a=io(e,r&&function(l){const c=io(l);return td(c.width)!==l.offsetWidth||td(c.height)!==l.offsetHeight}(t),n==="fixed");let o={scrollLeft:0,scrollTop:0};const s={x:0,y:0};if(r||!r&&n!=="fixed")if((Hr(t)!=="body"||ed(i))&&(o=nd(t)),dr(t)){const l=io(t,!0);s.x=l.x+t.clientLeft,s.y=l.y+t.clientTop}else i&&(s.x=r8(i));return{x:a.left+o.scrollLeft-s.x,y:a.top+o.scrollTop-s.y,width:a.width,height:a.height}}function i8(e){return Hr(e)==="html"?e:e.assignedSlot||e.parentNode||(eb(e)?e.host:null)||Oi(e)}function a8(e){return dr(e)&&getComputedStyle(e).position!=="fixed"?e.offsetParent:null}function tb(e){const t=jr(e);let n=a8(e);for(;n&&fQ(n)&&getComputedStyle(n).position==="static";)n=a8(n);return n&&(Hr(n)==="html"||Hr(n)==="body"&&getComputedStyle(n).position==="static"&&!e8(n))?t:n||function(r){let i=i8(r);for(eb(i)&&(i=i.host);dr(i)&&!["html","body"].includes(Hr(i));){if(e8(i))return i;i=i.parentNode}return null}(e)||t}function o8(e){if(dr(e))return{width:e.offsetWidth,height:e.offsetHeight};const t=io(e);return{width:t.width,height:t.height}}function s8(e){const t=i8(e);return["html","body","#document"].includes(Hr(t))?e.ownerDocument.body:dr(t)&&ed(t)?t:s8(t)}function c8(e,t){var n;t===void 0&&(t=[]);const r=s8(e),i=r===((n=e.ownerDocument)==null?void 0:n.body),a=jr(r),o=i?[a].concat(a.visualViewport||[],ed(r)?r:[]):r,s=t.concat(o);return i?s:s.concat(c8(o))}function l8(e,t,n){return t==="viewport"?Kh(function(r,i){const a=jr(r),o=Oi(r),s=a.visualViewport;let l=o.clientWidth,c=o.clientHeight,u=0,f=0;if(s){l=s.width,c=s.height;const h=t8();(h||!h&&i==="fixed")&&(u=s.offsetLeft,f=s.offsetTop)}return{width:l,height:c,x:u,y:f}}(e,n)):Ds(t)?function(r,i){const a=io(r,!1,i==="fixed"),o=a.top+r.clientTop,s=a.left+r.clientLeft;return{top:o,left:s,x:s,y:o,right:s+r.clientWidth,bottom:o+r.clientHeight,width:r.clientWidth,height:r.clientHeight}}(t,n):Kh(function(r){var i;const a=Oi(r),o=nd(r),s=(i=r.ownerDocument)==null?void 0:i.body,l=Vl(a.scrollWidth,a.clientWidth,s?s.scrollWidth:0,s?s.clientWidth:0),c=Vl(a.scrollHeight,a.clientHeight,s?s.scrollHeight:0,s?s.clientHeight:0);let u=-o.scrollLeft+r8(r);const f=-o.scrollTop;return $l(s||a).direction==="rtl"&&(u+=Vl(a.clientWidth,s?s.clientWidth:0)-l),{width:l,height:c,x:u,y:f}}(Oi(e)))}function dQ(e){const t=c8(e),n=["absolute","fixed"].includes($l(e).position)&&dr(e)?tb(e):e;return Ds(n)?t.filter(r=>Ds(r)&&function(i,a){const o=a==null||a.getRootNode==null?void 0:a.getRootNode();if(i!=null&&i.contains(a))return!0;if(o&&eb(o)){let s=a;do{if(s&&i===s)return!0;s=s.parentNode||s.host}while(s)}return!1}(r,n)&&Hr(r)!=="body"):[]}const pQ={getClippingRect:function(e){let{element:t,boundary:n,rootBoundary:r,strategy:i}=e;const a=[...n==="clippingAncestors"?dQ(t):[].concat(n),r],o=a[0],s=a.reduce((l,c)=>{const u=l8(t,c,i);return l.top=Vl(u.top,l.top),l.right=n8(u.right,l.right),l.bottom=n8(u.bottom,l.bottom),l.left=Vl(u.left,l.left),l},l8(t,o,i));return{width:s.right-s.left,height:s.bottom-s.top,x:s.left,y:s.top}},convertOffsetParentRelativeRectToViewportRelativeRect:function(e){let{rect:t,offsetParent:n,strategy:r}=e;const i=dr(n),a=Oi(n);if(n===a)return t;let o={scrollLeft:0,scrollTop:0};const s={x:0,y:0};if((i||!i&&r!=="fixed")&&((Hr(n)!=="body"||ed(a))&&(o=nd(n)),dr(n))){const l=io(n,!0);s.x=l.x+n.clientLeft,s.y=l.y+n.clientTop}return{...t,x:t.x-o.scrollLeft+s.x,y:t.y-o.scrollTop+s.y}},isElement:Ds,getDimensions:o8,getOffsetParent:tb,getDocumentElement:Oi,getElementRects:e=>{let{reference:t,floating:n,strategy:r}=e;return{reference:hQ(t,tb(n),r),floating:{...o8(n),x:0,y:0}}},getClientRects:e=>Array.from(e.getClientRects()),isRTL:e=>$l(e).direction==="rtl"},gQ=(e,t,n)=>iQ(e,t,{platform:pQ,...n});let pr;const Yl=[],nb=hs(e=>e(),150,!1),rb={type:"divider"};function Ql(e){if((e==null?void 0:e.type)=="contextmenu"){e.preventDefault();return}pr&&(pr.remove(),pr=void 0,document.body.classList.remove(ua))}function u8(e){var t;if(!(e<1)){for(let n=e;n<Yl.length;n++)(t=Yl[n])==null||t.remove(),Yl[n]=void 0;for(const n of Yl[e-1].querySelectorAll("li.active"))n.classList.remove("active")}}const mQ=()=>z`<li class="menu-divider"></li>`,bQ=e=>z`<li class="menu-header">${e.label||"-"}</li>`,yQ=(e,t)=>z`<li><a class="submenu-item" @click="${n=>n.stopPropagation()}" @mouseup="${n=>n.stopPropagation()}" @mouseenter="${n=>nb(()=>{const r=n.target.closest("li");xQ(e.submenu,r,t+1),n.stopPropagation()})}" @mouseleave="${()=>nb(()=>u8(t+1))}"><span>${e.label}</span></a></li>`,vQ=e=>z`<li><a class="choice-item" @mouseup="${()=>{Ql(),e.callback()}}"><span>${e.icon?ke(e.icon).node[0]:""} ${e.label}</span> ${e.shortcut?z`<span class="kbd-shortcut">${e.shortcut}</span>`:ne} </a>${e.ellipsisCallback?z`<a class="menu-ellipsis" @click="${e.ellipsisCallback}">${ke(kG).node[0]}</a>`:ne}</li>`,wQ=e=>z`<li><span class="disabled-item">${e.icon?ke(e.icon).node[0]:""} ${e.label||"-"}</span></li>`;function f8(e,t=1){switch(e.type){case"divider":return mQ();case"header":return bQ(e);default:return e.submenu?yQ(e,t):e.callback?vQ(e):wQ(e)}}function xQ(e,t,n){h8(e,t,n,"right-start"),t.classList.add("active")}function h8(e,t,n,r){const i=document.createElement("ul");i.classList.add("gs-context-menu"),i.addEventListener("mouseenter",()=>{nb(()=>{})}),Bt(e.map(a=>f8(a,n)),i),pr.appendChild(i),u8(n),Yl[n]=i,gQ(t,i,{placement:r??"right-start",middleware:n?[X6()]:[uQ(2),X6()]}).then(({x:a,y:o})=>{const s=i.querySelector(":scope > li");s&&(o-=s.getBoundingClientRect().top),i.style.left=`${a}px`,i.style.top=`${o}px`})}function d8(e,t,n){n??(n="bottom-start"),Ql();const r=performance.now(),i=document.body;pr=document.createElement("div"),pr.classList.add("gs-context-menu-backdrop"),pr.addEventListener("click",Ql),pr.addEventListener("contextmenu",Ql),pr.addEventListener("mouseup",()=>{performance.now()-r>500&&Ql()},{once:!0}),i.appendChild(pr),document.body.classList.add(ua),h8(e.items,t,0,n)}function ib(e,t){d8(e,AQ(t),"right-start"),t.preventDefault()}function AQ(e){return{getBoundingClientRect(){return{width:0,height:0,x:e.clientX,y:e.clientY,top:e.clientY,left:e.clientX,right:e.clientX,bottom:e.clientY,toJSON:void 0}}}}const ab={NOMINAL:"nominal",ORDINAL:"ordinal",QUANTITATIVE:"quantitative"},rd="SAMPLE_ATTRIBUTE",p8="SAMPLE_NAME",EQ=/^attribute-(.*)$/;class g8 extends Ro{constructor(t){super({title:"Sample metadata",data:{name:null},hconcat:[],spacing:t.spec.samples.attributeSpacing??1,resolve:{scale:{default:"independent"},axis:{default:"independent"}}},t.context,void 0,"sample-metadata"),this.sampleView=t,this._attributeHighlighState={backgroundOpacity:1,currentAttribute:void 0,abortController:new AbortController},this.sampleView.compositeAttributeInfoSource.addAttributeInfoSource(rd,n=>this.children.map(this.getAttributeInfoFromView.bind(this)).find(r=>r&&r.name==n.specifier)),this.sampleView.compositeAttributeInfoSource.addAttributeInfoSource(p8,n=>m8),this.addInteractionEventListener("contextmenu",this.handleContextMenu.bind(this)),this.addInteractionEventListener("mousemove",(n,r)=>{var s;const i=r.target,a=this._findSampleForMouseEvent(n,r),o=i&&((s=this.getAttributeInfoFromView(i))==null?void 0:s.name)||void 0;if(a){const l=JSON.stringify([a.id,o]);this.context.updateTooltip(l,c=>Promise.resolve(this.sampleToTooltip(c)))}this._handleAttributeHighlight(o)}),Gt([...this.sampleView.getAncestors()]).addInteractionEventListener("mousemove",(n,r)=>{if(this._attributeHighlighState.currentAttribute){if(r.target){for(const i of r.target.getAncestors())if(i==this)return}this._handleAttributeHighlight(void 0)}})}getEncoding(){return{}}render(t,n,r={}){this.isVisible()&&super.render(t,n,{...r,clipRect:this.sampleView._clipBySummary(n)})}_handleAttributeHighlight(t){const n=this._attributeHighlighState;t!=n.currentAttribute&&(n.abortController.abort(),n.abortController=new AbortController,this.context.animator.transition({from:n.backgroundOpacity,onUpdate:r=>{n.backgroundOpacity=r},easingFunction:zx,signal:n.abortController.signal,...t?{to:.1,duration:1e3,delay:n.backgroundOpacity<1?0:500}:{to:1,duration:200,delay:150}}).catch(r=>{}),this.context.animator.requestRender()),n.currentAttribute=t}getSample(t){var n;return(n=this.sampleView.sampleHierarchy.sampleData)==null?void 0:n.entities[t]}_findSampleForMouseEvent(t,n){return this.sampleView.getSampleAt(n.point.y-this.sampleView.childCoords.y)}_getAttributeOpacity(t){const n=this._attributeHighlighState;return t==n.currentAttribute?1:n.backgroundOpacity}handleContextMenu(t,n){const r=n.uiEvent,i=this._findSampleForMouseEvent(t,n);if(!i){r.preventDefault();return}const a=[this.sampleView.makePeekMenuItem(),rb],o=this.getAttributeInfoFromView(n.target);if(o){const s=i.attributes[o.name];a.push(...q1(z`Attribute: <strong>${o.name}</strong>`,o,s,this.sampleView))}else a.push(...q1(z`Sample: <strong>${i.displayName}</strong>`,m8,i.id,this.sampleView));ib({items:a},r)}_setSamples(t){if(this.childCount)throw new Error("Children are already created!");this._createViews();const n=this.context.dataFlow;CS(this,n);const r=n.findDataSourceByKey(this);r.visit(a=>a.initialize());const i=[];this.visit(a=>{if(a instanceof Je){const o=a.mark;o.initializeEncoders(),i.push(o.initializeGraphics().then(s=>o)),n.addObserver(s=>{o.initializeData(),o.updateGraphicsData()},a)}}),Promise.allSettled(i).then(a=>{for(const o of a)"value"in o?o.value.finalizeGraphicsInitialization():"reason"in o&&console.error(o.reason)}),r.updateDynamicData(t),this.visit(a=>{a.name.startsWith("title")&&n.findDataSourceByKey(a).load()})}_createViews(){const t=[];t.push(this.context.createView(CQ(this.sampleView.spec.samples),this));for(const n of this.getAttributeNames()){const r=this.context.createView(this._createAttributeViewSpec(n),this);r.opacityFunction=i=>i*this._getAttributeOpacity(n),t.push(r)}this.setChildren(t),kS(this)}_getAttributeDef(t){var n,r;return(r=(n=this.sampleView.spec.samples)==null?void 0:n.attributes)==null?void 0:r[t]}getAttributeNames(){return this._cache("attributeNames",()=>[...this.sampleView.getSamples().flatMap(r=>Object.keys(r.attributes)).reduce((r,i)=>r.add(i),new Set)])}_createAttributeViewSpec(t){const n=this._getAttributeDef(t);let r=n?n.type:void 0;if(!r){const i=this.sampleView.getSamples();switch(Oy(i.map(a=>a.attributes[t]))){case"integer":case"number":r=ab.QUANTITATIVE;break;default:r=ab.NOMINAL}}return SQ(t,{...n||{},type:r},this.sampleView.spec.samples)}_findViewForAttribute(t){return this.children[this.getAttributeNames().indexOf(t)+1]}getAttributeInfoFromView(t){const n=t==null?void 0:t.name.match(EQ);if(n){const r=t.getScaleResolution("color"),i=n[1];return{name:i,attribute:{type:rd,specifier:i},accessor:(a,o)=>o.sampleData.entities[a].attributes[i],type:r.type,scale:r.getScale(),title:z`<em class="attribute">${i}</em>`}}}getAttributeInfo(t){return this.getAttributeInfoFromView(this._findViewForAttribute(t))}sampleToTooltip(t){const[n,r]=JSON.parse(t),i=this.getSample(n),a=(s,l)=>_Q(l)?this.getAttributeInfo(s).scale(l):"transparent",o=z`<table class="attributes">${Object.entries(i.attributes).map(([s,l])=>z`<tr class="${Zm({hovered:s==r})}"><th>${s}</th><td>${LS(l)}</td><td class="color" .style="background-color: ${a(s,l)}"></td></tr>`)}</table>`;return z`<div class="title"><strong>${i.displayName||i.id}</strong></div>${o}`}getDefaultResolution(t,n){return"independent"}handleVerboseCommand(t){const n=t;for(const r of this.getAttributeNames()){const i=this.getAttributeInfo(r);if((i.type==Vp||i.type==Yp)&&this.sampleView.getSamples().find(o=>o.attributes[i.name]==n)){const o=this.sampleView.actions.filterByNominal({attribute:{type:rd,specifier:r},values:[n]}),s=this.sampleView.provenance.getPresentState().lastAction,l=this.sampleView.actions.filterByNominal.match(s)&&!s.payload.remove&&s.payload.attribute.type==rd&&s.payload.attribute.specifier==r&&s.payload.values.length==1;return this.sampleView.provenance.storeHelper.dispatch(l?[Ur.ActionCreators.undo(),o]:o),!0}}return!1}isPickingSupported(){return!1}}function SQ(e,t,n){const r=`attributes["${e}"]`,i={name:`attribute-${e}`,title:{text:e,orient:"bottom",align:"right",baseline:"middle",offset:5,angle:-90+(n.attributeLabelAngle??0),dy:-.5,font:n.attributeLabelFont,fontSize:n.attributeLabelFontSize??11,fontStyle:n.attributeLabelFontStyle,fontWeight:n.attributeLabelFontWeight},visible:t.visible??!0,width:t.width??n.attributeSize??10,transform:[{type:"filter",expr:`datum.${r} != null`}],mark:{type:"rect",xOffset:-.5},encoding:{facetIndex:{field:"indexNumber"},color:{field:r,type:t.type,scale:t.scale}},opacity:1};return t.barScale&&t.type==ab.QUANTITATIVE&&(i.encoding.x={field:`attributes["${e}"]`,type:t.type,scale:t.barScale,axis:null}),i}function CQ(e){return{name:"metadata-sample-name",title:{text:e.labelTitleText??"Sample name",orient:"bottom",anchor:"start",offset:5,font:e.attributeLabelFont,fontSize:e.attributeLabelFontSize??11,fontStyle:e.attributeLabelFontStyle,fontWeight:e.attributeLabelFontWeight},width:e.labelLength??140,mark:{type:"text",baseline:"middle",font:e.labelFont,size:e.labelFontSize??11,fontStyle:e.labelFontStyle,fontWeight:e.labelFontWeight,align:e.labelAlign??"left",flushY:!1},encoding:{facetIndex:{field:"indexNumber"},x:{value:0},x2:{value:1},y:{value:0},y2:{value:1},text:{field:"displayName"}}}}function _Q(e){return e!==""&&!(typeof e=="number"&&isNaN(e))&&e!==null}const m8=Object.freeze({name:"sample",attribute:{type:p8},accessor:e=>e,type:"identifier",scale:void 0});class kQ extends Wn{constructor(t){super({title:{text:"Groups",orient:"none"},width:{step:22},data:{name:null},transform:[{type:"filter",expr:"datum._depth > 0"},{type:"formula",as:"_y1",expr:"datum._index * 2"},{type:"formula",as:"_y2",expr:"datum._index * 2 + 1"},{type:"formula",as:"_title",expr:"datum.title || datum.name"},{type:"formula",as:"_NA",expr:"datum._title === null"},{type:"formula",as:"_title",expr:"datum._title !== null ? datum._title: 'NA'"}],encoding:{x:{field:"_depth",type:"ordinal",scale:{align:0,padding:.2272727},axis:null},y:{field:"_y1",type:"nominal",scale:{type:"ordinal",domain:qr(500)},axis:null},y2:{field:"_y2"}},layer:[{title:"Group",mark:{type:"rect",clip:!0,color:"#e8e8e8",cornerRadiusBottomLeft:14,cornerRadiusTopLeft:14}},{mark:{type:"text",clip:!0,angle:-90,paddingY:5,tooltip:null},encoding:{text:{field:"_title"},opacity:{field:"_NA",type:"nominal",scale:{type:"ordinal",domain:[!1,!0],range:[1,.3]}}}}]},t.context,void 0,"sample-groups"),this.sampleView=t,this._addBroadcastHandler("layoutComputed",()=>{this.updateRange()}),this.addInteractionEventListener("contextmenu",(n,r)=>{const i=r.uiEvent,a=this.context.getCurrentHover();if(!a)return;const o=a.datum._rawGroup;let s;for(const f of Z1(this.sampleView.sampleHierarchy.rootGroup))if(f.at(-1)===o){s=f.slice(1);break}const l=t.actions.removeGroup({path:s.map(f=>f.name)}),c=t.provenance.getActionInfo(l),u=t.provenance.storeHelper.getDispatcher();ib({items:[{label:c.title,icon:c.icon,callback:()=>u(l)}]},i)})}updateRange(){var a,o;const t=(a=this.sampleView.getLocations())==null?void 0:a.groups;if(!(t!=null&&t.length))return;const n=((o=this.sampleView)==null?void 0:o.childCoords.height)??0,r=this.getScaleResolution("y"),i=[];for(const s of t)i.push(1-(s.locSize.location+s.locSize.size)/n),i.push(1-s.locSize.location/n);r.getScale().range(i),this.context.glHelper.createRangeTexture(r,!0)}updateGroups(){var i;const t=((i=this.sampleView.getLocations())==null?void 0:i.groups)??[],n=this.context.dataFlow.findDataSourceByKey(this);if(!n)return;const r=t.map(a=>({_index:a.key.index,_depth:a.key.depth,_rawGroup:a.key.group,attribute:a.key.attributeLabel,name:a.key.group.name,...a.key.group.name!=a.key.group.title?{title:a.key.group.title}:{},n:a.key.n}));n.updateDynamicData(r),this.getScaleResolution("x").reconfigure(),this.getScaleResolution("y").reconfigure(),t.length&&this.updateRange(),Gt([...this.getAncestors()]).visit(a=>Rc(a,"size"))}}class DQ{constructor(){this.attributeInfoSourcesByType={}}addAttributeInfoSource(t,n){this.attributeInfoSourcesByType[t]=n}getAttributeInfo(t){const n=this.attributeInfoSourcesByType[t.type];if(!n)throw new Error("Cannot find attribute info source for: "+JSON.stringify(t));const r=n(t);if(r)return r;throw new Error("Unknown attribute: "+JSON.stringify(t))}}function id(e,t,n){let r=n&&e(n);return i=>{const a=e(i);a!==r&&(t(a,r),r=a)}}function b8(e,{viewHeight:t=0,sampleHeight:n=0,groupSpacing:r=5,summaryHeight:i=0}){if(!t&&!n)throw new Error("viewHeight or sampleHeight must be provided!");const a=h=>Gt(h),o=e.map(h=>({path:h,sampleGroup:a(h),samples:a(h).samples})).filter(h=>h.samples.length),s=n?h=>({px:h.length*n+i,grow:0}):h=>({px:i,grow:h.length}),l=[];jc(o.map(h=>s(h.samples)),t,{spacing:r}).forEach((h,d)=>{l.push({key:o[d].path,locSize:h})});const c=[];for(const[h,d]of o.entries()){const p={grow:1},g=d.samples;jc(g.map(y=>p),Math.max(0,l[h].locSize.size-i),{offset:l[h].locSize.location+i}).forEach((y,v)=>{const{size:S,location:k}=y,C=S*.1*sA(15,22,S);y.location=k+C,y.size=S-2*C,c.push({key:g[v],locSize:y})})}function*u(){const h=[];for(const d of l){const p=d.key,g=Gt(p);for(;h.length<=p.length&&h.length&&p[h.length-1]!=h[h.length-1].group;)yield h.pop();for(let y=0;y<h.length;y++){const v=h[y];v.locSize.size=d.locSize.location-v.locSize.location+d.locSize.size}for(let y=h.length;y<p.length;y++)h.push({group:p[y],locSize:{...d.locSize},depth:h.length,n:0});for(const y of h)y.n+=g.samples.length}for(;h.length;)yield h.pop()}const f=[...u()].sort((h,d)=>h.depth-d.depth).map((h,d)=>({key:{index:d,group:h.group,depth:h.depth,n:h.n,attributeLabel:void 0},locSize:h.locSize}));return{samples:c,summaries:l,groups:f}}function IQ(e,t){return t.find(n=>Ax(n.locSize,e))}const y8="VALUE_AT_LOCUS",v8=10;class ob extends Aa{constructor(n,r,i,a,o){var u;super(n,r,i,a);Fe(this,hd);En(this,"_peekState",0);this.provenance=o,this.spec=n,this.stickySummaries=n.stickySummaries??!0,this.compositeAttributeInfoSource=new DQ,this.child=r.createView(n.spec,this,"sample-facets"),this.summaryViews=new Ro({vconcat:[]},r,this,"sampleSummaries"),this.child.visit(f=>{f instanceof Je&&this.summaryViews.setChildren(f.sampleAggregateViews)}),this.childCoords=pi.ZERO,this.facetTexture=void 0,this.facetTextureData=void 0,this.peripheryView=new Ro({title:"Sidebar",resolve:{scale:{default:"independent"},axis:{default:"independent"}},hconcat:[],spacing:0},r,this,"sample-sidebar"),this.peripheryCoords=pi.ZERO,this.groupPanel=new kQ(this),this.attributePanel=new g8(this),this.peripheryView.setChildren([this.groupPanel,this.attributePanel]);{const f=(u=this.spec.spec)==null?void 0:u.view;if(f!=null&&f.fill||f!=null&&f.stroke){const h=new Je(Xx(f),this.context,this,"sample-background");h.blockEncodingInheritance=!0,this.backgroundView=h}else this.backgroundView=void 0}this.child.addInteractionEventListener("contextmenu",this._handleContextMenu.bind(this)),this.provenance.storeHelper.subscribe(id(f=>Y1(f).rootGroup,f=>{this._locations=void 0,this.groupPanel.updateGroups(),this._peekState=0,this.context.requestLayoutReflow(),this.context.animator.requestRender()})),this.provenance.storeHelper.subscribe(id(f=>Y1(f).sampleData,f=>{const h=f&&Object.values(f.entities);h&&(this.attributePanel._setSamples(h),this.facetTextureData=new Float32Array(Math.ceil(h.length*2/4)*4),this.groupPanel.updateGroups())})),this.compositeAttributeInfoSource.addAttributeInfoSource(y8,f=>{var C;const h=f.specifier,d=this.findDescendantByName(h.view);let p;if(Ke(h.locus))p=h.locus;else{const E=this.getScaleResolution("x").getGenome();if(E)p=E.toContinuous(h.locus.chrom,h.locus.pos);else throw new Error("Encountered a complex locus but no genome is available!")}const g=E=>{var w;return(w=d.mark.findDatumAt(E,p))==null?void 0:w[h.field]},[y,v]=Object.entries(d.getEncoding()).find(([E,w])=>"field"in w&&w.field==h.field),S=y?(C=d.getScaleResolution(y))==null?void 0:C.getScale():void 0;return{name:h.field,attribute:f,title:z`<em class="attribute">${h.field}</em> <span class="viewTitle">(${d.getTitleText()??d.name})</span> at <span class="locus">${w8(h.locus)}</span>`,accessor:g,type:"type"in v?v.type:void 0,scale:S}}),this._addBroadcastHandler("dataLoaded",()=>this.extractSamplesFromData()),this._addBroadcastHandler("layout",()=>{this._locations=void 0}),this._scrollOffset=0,this._scrollableHeight=0,this._peekState=0,this._lastMouseY=-1,this.addInteractionEventListener("mousemove",(f,h)=>{this._lastMouseY=h.point.y-this.childCoords.y}),this.addInteractionEventListener("wheel",(f,h)=>{const d=h.uiEvent;this._peekState&&!d.ctrlKey&&(this._scrollOffset=Df(this._scrollOffset+d.deltaY,0,this._scrollableHeight-this.childCoords.height),this.groupPanel.updateRange(),this.context.animator.requestRender(),h.uiEvent={type:d.type,deltaX:d.deltaX,preventDefault:d.preventDefault.bind(d)})},!0),r.addKeyboardListener("keydown",f=>{f.code=="KeyE"&&!f.repeat&&this.togglePeek()}),r.addKeyboardListener("keyup",f=>{f.code=="KeyE"&&this.togglePeek(!1)});const s=f=>this.compositeAttributeInfoSource.getAttributeInfo(f),l=IY(s);this.provenance.addReducer(l.name,l.reducer),this.provenance.addActionInfoSource(f=>MY(f,s)),this.actions=l.actions;const c=tY(f=>{var h;return(h=f.sampleData)==null?void 0:h.entities},f=>f&&Object.values(f));this.getSamples=()=>c(this.sampleHierarchy),this.spec.samples.data&&this.loadSamples()}getOverhang(){let n=this.peripheryView.isVisible()?this.peripheryView.getSize().width.px:0;return n&&(n+=v8),new on(0,0,0,n)}*[Symbol.iterator](){this.backgroundView&&(yield this.backgroundView),yield this.child,yield this.peripheryView}replaceChild(n,r){const i=r;if(n===this.child)this.child=i;else throw new Error("Not my child!")}loadSamples(){if(!this.spec.samples.data)throw new Error("SampleView has no explicit sample metadata specified! Cannot load anything.");const{dataSource:n,collector:r}=_H(AS(this.spec.samples.data,this),new TQ);r.observers.push(a=>{const o=a.getData();this.provenance.storeHelper.dispatch(this.actions.setSamples({samples:o}))});const i="samples "+this.getPathString();this.context.dataFlow.addDataSource(n,i)}extractSamplesFromData(){if(this.getSamples())return;const n=this.getScaleResolution("sample");if(n){const r=n.getDataDomain().map((i,a)=>({id:i,displayName:i,indexNumber:a,attributes:[]}));this.provenance.storeHelper.dispatch(this.actions.setSamples({samples:r}))}else throw new Error("No explicit sample data nor sample channels found!")}get sampleHierarchy(){return this.provenance.getPresentState()[_s]}get leafSamples(){return Q1(this.sampleHierarchy).map(r=>r.at(-1)).map(r=>r.samples).flat()}getLocations(){var n,r,i;if(!this._locations){if(!((n=this.childCoords)!=null&&n.height))return;const a=this.sampleHierarchy,o=Q1(a),s=[null,...a.groupMetadata],l=(((r=this.summaryViews)==null?void 0:r.isVisible())&&((i=this.summaryViews)==null?void 0:i.getSize().height.px))??0,c=b8(o,{viewHeight:this.childCoords.height,groupSpacing:5,summaryHeight:l}),u=b8(o,{sampleHeight:35,groupSpacing:15,summaryHeight:l}),f=()=>-this._scrollOffset,h=()=>this._peekState;this._scrollableLocations=u,this._scrollableHeight=u.summaries.map(y=>y.locSize.location+y.locSize.size).reduce((y,v)=>Math.max(y,v),0);const d=(y,v)=>{const S=[];for(let k=0;k<y.length;k++){const C=y[k].key;S.push({key:C,locSize:ZB(y[k].locSize,qB(v[k].locSize,f),h)})}return S},p=d(c.groups,u.groups),g=document.createElement("div");p.forEach(y=>{if(y.key.depth==0)return;const v=s[y.key.depth].attribute,S=this.compositeAttributeInfoSource.getAttributeInfo(v).title;S?ze(S)?y.key.attributeLabel=S:(Bt(S,g),y.key.attributeLabel=g.textContent.replace(/\s+/g," ").trim()):y.key.attributeLabel="unknown"}),this._locations={samples:d(c.samples,u.samples),summaries:d(c.summaries,u.summaries),groups:p}}return this._locations}getSampleAt(n){const r=IQ(n,this.getLocations().samples);if(r)return this.sampleHierarchy.sampleData.entities[r.key]}getSummaryAt(n){const r=this.getLocations().summaries,i=r.findIndex(a=>Ax(a.locSize,n));return i>=0?{index:i,location:r[i]}:void 0}_clipBySummary(n){if(this.stickySummaries&&this.summaryViews.childCount){const r=this.summaryViews.getSize().height.px;return n.modify({y:()=>n.y+r,height:()=>n.height-r})}}renderChild(n,r,i={}){var l;const a=1/r.height,o=()=>a,s=this._clipBySummary(r);for(const c of this.getLocations().samples){const u={...i,sampleFacetRenderingOptions:{locSize:WB(c.locSize,o)},facetId:[c.key],clipRect:s};(l=this.backgroundView)==null||l.render(n,r,u),this.child.render(n,r,u)}}renderSummaries(n,r,i={}){i={...i,clipRect:r};const a=this.summaryViews.getSize().height.px;for(const[o,s]of this.getLocations().summaries.entries()){const l=()=>{const c=s.locSize.location;let u=r.y+c;return this.stickySummaries?u+Df(-c,0,s.locSize.size-a):u};this.summaryViews.render(n,r.modify({y:l,height:a}),{...i,facetId:[o]})}}render(n,r,i={}){if(!this.isVisible())return;this.parent||(r=r.shrink(this.getPadding())),n.pushView(this,r);const a=jc([this.peripheryView.isVisible()?this.peripheryView.getSize().width:{px:0},{grow:1}],r.width,{spacing:v8}),o=s=>r.modify({x:s.location+r.x,width:s.size});this.peripheryCoords=o(a[0]),this.childCoords=o(a[1]),this.peripheryView.render(n,this.peripheryCoords,i),this.renderChild(n,this.childCoords,i),this.renderSummaries(n,this.childCoords,i),n.popView(this)}onBeforeRender(){this._updateFacetTexture()}_updateFacetTexture(){var a;const n=this.facetTextureData;n.fill(0);const r=(a=this.sampleHierarchy.sampleData)==null?void 0:a.entities;if(r){const o=this.getLocations().samples,s=this.childCoords.height;for(const l of o){const c=r[l.key].indexNumber;n[c*2+0]=l.locSize.location/s,n[c*2+1]=l.locSize.size/s}}const i=this.context.glHelper.gl;this.facetTexture=Pc(i,{internalFormat:i.RG32F,format:i.RG,height:1},n,this.facetTexture)}togglePeek(n){var i;if(this._peekState>0&&this._peekState<1||n!==void 0&&n==!!this._peekState)return;const r={requestAnimationFrame:a=>this.context.animator.requestTransition(a),onUpdate:a=>{this._peekState=Math.pow(a,2),this.groupPanel.updateRange(),this.context.animator.requestRender()},from:this._peekState};if(this._peekState==0){const a=this._lastMouseY,o=(i=this.getSampleAt(a))==null?void 0:i.id;let s;if(o)s=(c=>c.location+c.size/2)(this._scrollableLocations.samples.find(c=>c.key==o).locSize);else{const l=this.getSummaryAt(a);l&&(s=this._scrollableLocations.summaries[l.index].locSize.location-(l.location.locSize.location-a))}s?this._scrollOffset=s-a:this._scrollOffset=(this._scrollableHeight-this.childCoords.height)/2,this._scrollableHeight>this.childCoords.height?Sh({...r,to:1,duration:500,easingFunction:FL}):Sh({...r,from:0,to:1,duration:300,easingFunction:c=>(1-Math.pow(c*2-1,2))*.5})}else Sh({...r,to:0,duration:400,easingFunction:ML})}makePeekMenuItem(){return{...this._peekState==0?{label:"Open closeup",callback:()=>this.togglePeek(!0),icon:RG}:{label:"Close closeup",callback:()=>this.togglePeek(!1),icon:zG},shortcut:"E"}}_handleContextMenu(n,r){const i=r.uiEvent,a=this.childCoords.normalizePoint(r.point.x,r.point.y).x,o=this.getScaleResolution("x").invertToComplex(a),s=IS([...this.getAncestors()].at(-1)),l=MH(this.child).filter(f=>!["sample","x","x2"].includes(f.channel)).filter(f=>["rect","rule"].includes(f.view.getMarkType())).filter(f=>s.has(f.view.name));let c=[this.makePeekMenuItem(),rb,{label:`Locus: ${w8(o)}`,type:"header"},rb],u="";for(const[f,h]of l.entries()){const d={view:h.view.name,field:h.field,locus:o},p=this.compositeAttributeInfoSource.getAttributeInfo({type:y8,specifier:d}),g=h.view.getTitleText()??h.view.spec.name;g!=u&&(f>0&&c.push({type:"divider"}),c.push({label:g,type:"header"}),u=g),c.push({label:h.field,submenu:q1(null,p,void 0,this)})}ib({items:c},i)}getSampleFacetTexture(){return this.facetTexture}propagateInteractionEvent(n){this.handleInteractionEvent(void 0,n,!0),!n.stopped&&(this.childCoords.containsPoint(n.point.x,n.point.y)&&(this.child.propagateInteractionEvent(n),qx(n,this.childCoords,r=>Ze(this,hd,b_).call(this,this.childCoords,this.child,r),this.context.getCurrentHover())),this.peripheryCoords.containsPoint(n.point.x,n.point.y)&&this.peripheryView.propagateInteractionEvent(n),!n.stopped&&this.handleInteractionEvent(void 0,n,!1))}getDefaultResolution(n,r){switch(n){case"x":case"sample":return"shared";default:return"independent"}}}hd=new WeakSet,b_=function(n,r,i){const a=this.child.getScaleResolution("x");if(!a||!a.isZoomable())return;const o=n.normalizePoint(i.x,i.y),s=n.normalizePoint(i.x+i.xDelta,i.y+i.yDelta);a.zoom(2**i.zDelta,o.x,s.x-o.x),this.context.animator.requestRender()};function w8(e){return!Ke(e)&&"chrom"in e?EL(e):""+e}class TQ extends We{constructor(){super(),this.reset()}reset(){this._index=0}handle(t){this._propagate({id:t.sample,displayName:t.displayName||t.sample,indexNumber:this._index++,attributes:MQ(t)})}}function MQ(e){const t=Object.assign({},e);return delete t.sample,delete t.displayName,t}function NQ(e){return"samples"in e&&Ht(e.samples)&&"spec"in e&&Ht(e.spec)}const FQ=(e,t)=>t.some(n=>e instanceof n);let x8,A8;function BQ(){return x8||(x8=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])}function LQ(){return A8||(A8=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])}const E8=new WeakMap,sb=new WeakMap,S8=new WeakMap,cb=new WeakMap,lb=new WeakMap;function OQ(e){const t=new Promise((n,r)=>{const i=()=>{e.removeEventListener("success",a),e.removeEventListener("error",o)},a=()=>{n(Ri(e.result)),i()},o=()=>{r(e.error),i()};e.addEventListener("success",a),e.addEventListener("error",o)});return t.then(n=>{n instanceof IDBCursor&&E8.set(n,e)}).catch(()=>{}),lb.set(t,e),t}function RQ(e){if(sb.has(e))return;const t=new Promise((n,r)=>{const i=()=>{e.removeEventListener("complete",a),e.removeEventListener("error",o),e.removeEventListener("abort",o)},a=()=>{n(),i()},o=()=>{r(e.error||new DOMException("AbortError","AbortError")),i()};e.addEventListener("complete",a),e.addEventListener("error",o),e.addEventListener("abort",o)});sb.set(e,t)}let ub={get(e,t,n){if(e instanceof IDBTransaction){if(t==="done")return sb.get(e);if(t==="objectStoreNames")return e.objectStoreNames||S8.get(e);if(t==="store")return n.objectStoreNames[1]?void 0:n.objectStore(n.objectStoreNames[0])}return Ri(e[t])},set(e,t,n){return e[t]=n,!0},has(e,t){return e instanceof IDBTransaction&&(t==="done"||t==="store")?!0:t in e}};function zQ(e){ub=e(ub)}function PQ(e){return e===IDBDatabase.prototype.transaction&&!("objectStoreNames"in IDBTransaction.prototype)?function(t,...n){const r=e.call(fb(this),t,...n);return S8.set(r,t.sort?t.sort():[t]),Ri(r)}:LQ().includes(e)?function(...t){return e.apply(fb(this),t),Ri(E8.get(this))}:function(...t){return Ri(e.apply(fb(this),t))}}function UQ(e){return typeof e=="function"?PQ(e):(e instanceof IDBTransaction&&RQ(e),FQ(e,BQ())?new Proxy(e,ub):e)}function Ri(e){if(e instanceof IDBRequest)return OQ(e);if(cb.has(e))return cb.get(e);const t=UQ(e);return t!==e&&(cb.set(e,t),lb.set(t,e)),t}const fb=e=>lb.get(e);function jQ(e,t,{blocked:n,upgrade:r,blocking:i,terminated:a}={}){const o=indexedDB.open(e,t),s=Ri(o);return r&&o.addEventListener("upgradeneeded",l=>{r(Ri(o.result),l.oldVersion,l.newVersion,Ri(o.transaction))}),n&&o.addEventListener("blocked",()=>n()),s.then(l=>{a&&l.addEventListener("close",()=>a()),i&&l.addEventListener("versionchange",()=>i())}).catch(()=>{}),s}const HQ=["get","getKey","getAll","getAllKeys","count"],GQ=["put","add","delete","clear"],hb=new Map;function C8(e,t){if(!(e instanceof IDBDatabase&&!(t in e)&&typeof t=="string"))return;if(hb.get(t))return hb.get(t);const n=t.replace(/FromIndex$/,""),r=t!==n,i=GQ.includes(n);if(!(n in(r?IDBIndex:IDBObjectStore).prototype)||!(i||HQ.includes(n)))return;const a=async function(o,...s){const l=this.transaction(o,i?"readwrite":"readonly");let c=l.store;return r&&(c=c.index(s.shift())),(await Promise.all([c[n](...s),i&&l.done]))[0]};return hb.set(t,a),a}zQ(e=>({...e,get:(t,n,r)=>C8(t,n)||e.get(t,n,r),has:(t,n)=>!!C8(t,n)||e.has(t,n)}));class _8{isReadonly(){return!0}async put(t,n){this._checkReadonly()}async delete(t){this._checkReadonly()}async getNames(){return[]}async get(t){}_checkReadonly(){if(this.isReadonly())throw new Error("This bookmark")}}const Zl="bookmarks";class $Q extends _8{constructor(t){super(),this.specId=t,this._db=void 0}async _getDB(){if(!this._db){const t=`GenomeSpy: ${this.specId}`;this._db=jQ(t,1,{upgrade(n,r,i,a){n.createObjectStore(Zl,{keyPath:"name"})},blocked(){},blocking(){},terminated(){}})}return this._db}isReadonly(){return!1}async put(t,n){const i=(await this._getDB()).transaction(Zl,"readwrite");try{n?(await i.store.delete(n),await i.store.put(t)):await i.store.put(t),await i.done}catch(a){throw i.abort(),a}}async delete(t){(await this._getDB()).delete(Zl,t)}async getNames(){return(await this._getDB()).getAllKeys(Zl)}async get(t){return(await this._getDB()).get(Zl,t)}}/**
2164
2351
  * @license
2165
2352
  * Copyright 2017 Google LLC
2166
2353
  * SPDX-License-Identifier: BSD-3-Clause
2167
- */const Ro=(t,e)=>{var n,r;const i=t._$AN;if(i===void 0)return!1;for(const o of i)(r=(n=o)._$AO)===null||r===void 0||r.call(n,e,!1),Ro(o,e);return!0},ic=t=>{let e,n;do{if((e=t._$AM)===void 0)break;n=e._$AN,n.delete(t),t=e}while((n==null?void 0:n.size)===0)},Cb=t=>{for(let e;e=t._$AM;t=e){let n=e._$AN;if(n===void 0)e._$AN=n=new Set;else if(n.has(t))break;n.add(t),Wk(e)}};function Yk(t){this._$AN!==void 0?(ic(this),this._$AM=t,Cb(this)):this._$AM=t}function _k(t,e=!1,n=0){const r=this._$AH,i=this._$AN;if(i!==void 0&&i.size!==0)if(e)if(Array.isArray(r))for(let o=n;o<r.length;o++)Ro(r[o],!1),ic(r[o]);else r!=null&&(Ro(r,!1),ic(r));else Ro(this,t)}const Wk=t=>{var e,n,r,i;t.type==vt.CHILD&&((e=(r=t)._$AP)!==null&&e!==void 0||(r._$AP=_k),(n=(i=t)._$AQ)!==null&&n!==void 0||(i._$AQ=Yk))};let Sb=class extends Zr{constructor(){super(...arguments),this._$AN=void 0}_$AT(e,n,r){super._$AT(e,n,r),Cb(this),this.isConnected=e._$AU}_$AO(e,n=!0){var r,i;e!==this.isConnected&&(this.isConnected=e,e?(r=this.reconnected)===null||r===void 0||r.call(this):(i=this.disconnected)===null||i===void 0||i.call(this)),n&&(Ro(this,e),ic(this))}setValue(e){if(Qy(this._$Ct))this._$Ct._$AI(e,this);else{const n=[...this._$Ct._$AH];n[this._$Ci]=e,this._$Ct._$AI(n,this,0)}}disconnected(){}reconnected(){}};/**
2354
+ */const ql=(e,t)=>{var n,r;const i=e._$AN;if(i===void 0)return!1;for(const a of i)(r=(n=a)._$AO)===null||r===void 0||r.call(n,t,!1),ql(a,t);return!0},ad=e=>{let t,n;do{if((t=e._$AM)===void 0)break;n=t._$AN,n.delete(e),e=t}while((n==null?void 0:n.size)===0)},k8=e=>{for(let t;t=e._$AM;e=t){let n=t._$AN;if(n===void 0)t._$AN=n=new Set;else if(n.has(e))break;n.add(e),QQ(t)}};function VQ(e){this._$AN!==void 0?(ad(this),this._$AM=e,k8(this)):this._$AM=e}function YQ(e,t=!1,n=0){const r=this._$AH,i=this._$AN;if(i!==void 0&&i.size!==0)if(t)if(Array.isArray(r))for(let a=n;a<r.length;a++)ql(r[a],!1),ad(r[a]);else r!=null&&(ql(r,!1),ad(r));else ql(this,e)}const QQ=e=>{var t,n,r,i;e.type==cr.CHILD&&((t=(r=e)._$AP)!==null&&t!==void 0||(r._$AP=YQ),(n=(i=e)._$AQ)!==null&&n!==void 0||(i._$AQ=VQ))};let D8=class extends ys{constructor(){super(...arguments),this._$AN=void 0}_$AT(t,n,r){super._$AT(t,n,r),k8(this),this.isConnected=t._$AU}_$AO(t,n=!0){var r,i;t!==this.isConnected&&(this.isConnected=t,t?(r=this.reconnected)===null||r===void 0||r.call(this):(i=this.disconnected)===null||i===void 0||i.call(this)),n&&(ql(this,t),ad(this))}setValue(t){if(QC(this._$Ct))this._$Ct._$AI(t,this);else{const n=[...this._$Ct._$AH];n[this._$Ci]=t,this._$Ct._$AI(n,this,0)}}disconnected(){}reconnected(){}};/**
2168
2355
  * @license
2169
2356
  * Copyright 2020 Google LLC
2170
2357
  * SPDX-License-Identifier: BSD-3-Clause
2171
- */const Eb=()=>new Xk;class Xk{}const Sd=new WeakMap,Db=or(class extends Sb{render(t){return z}update(t,[e]){var n;const r=e!==this.Y;return r&&this.Y!==void 0&&this.rt(void 0),(r||this.lt!==this.ct)&&(this.Y=e,this.dt=(n=t.options)===null||n===void 0?void 0:n.host,this.rt(this.ct=t.element)),z}rt(t){var e;if(typeof this.Y=="function"){const n=(e=this.dt)!==null&&e!==void 0?e:globalThis;let r=Sd.get(n);r===void 0&&(r=new WeakMap,Sd.set(n,r)),r.get(this.Y)!==void 0&&this.Y.call(this.dt,void 0),r.set(this.Y,t),t!==void 0&&this.Y.call(this.dt,t)}else this.Y.value=t}get lt(){var t,e,n;return typeof this.Y=="function"?(e=Sd.get((t=this.dt)!==null&&t!==void 0?t:globalThis))===null||e===void 0?void 0:e.get(this.Y):(n=this.Y)===null||n===void 0?void 0:n.value}disconnected(){this.lt===this.ct&&this.rt(void 0)}reconnected(){this.rt(this.ct)}});/**
2358
+ */const I8=()=>new ZQ;class ZQ{}const db=new WeakMap,T8=Ya(class extends D8{render(e){return ne}update(e,[t]){var n;const r=t!==this.Y;return r&&this.Y!==void 0&&this.rt(void 0),(r||this.lt!==this.ct)&&(this.Y=t,this.dt=(n=e.options)===null||n===void 0?void 0:n.host,this.rt(this.ct=e.element)),ne}rt(e){var t;if(typeof this.Y=="function"){const n=(t=this.dt)!==null&&t!==void 0?t:globalThis;let r=db.get(n);r===void 0&&(r=new WeakMap,db.set(n,r)),r.get(this.Y)!==void 0&&this.Y.call(this.dt,void 0),r.set(this.Y,e),e!==void 0&&this.Y.call(this.dt,e)}else this.Y.value=e}get lt(){var e,t,n;return typeof this.Y=="function"?(t=db.get((e=this.dt)!==null&&e!==void 0?e:globalThis))===null||t===void 0?void 0:t.get(this.Y):(n=this.Y)===null||n===void 0?void 0:n.value}disconnected(){this.lt===this.ct&&this.rt(void 0)}reconnected(){this.rt(this.ct)}});/**
2172
2359
  * @license
2173
2360
  * Copyright 2018 Google LLC
2174
2361
  * SPDX-License-Identifier: BSD-3-Clause
2175
- */const Zk={},qk=or(class extends Zr{constructor(){super(...arguments),this.ot=Zk}render(t,e){return e()}update(t,[e,n]){if(Array.isArray(e)){if(Array.isArray(this.ot)&&this.ot.length===e.length&&e.every((r,i)=>r===this.ot[i]))return Ae}else if(this.ot===e)return Ae;return this.ot=Array.isArray(e)?Array.from(e):e,this.render(e,n)}});class Kk extends yt{constructor(){super(),this.inputRef=Eb(),this.app=void 0,this.getDefaultValue=()=>"",this._keyListener=this._onKeyDown.bind(this),this._documentClickListener=e=>{var n;e.target!==this._inputField&&((n=this._inputField)==null||n.blur())},this._focused=!1}get genomeSpy(){return this.app.genomeSpy}get _inputField(){return this.inputRef.value}static get properties(){return{app:{type:Object}}}connectedCallback(){super.connectedCallback(),this._initializeGenome(),document.addEventListener("keydown",this._keyListener),document.addEventListener("click",this._documentClickListener)}disconnectedCallback(){super.disconnectedCallback(),document.removeEventListener("keydown",this._keyListener),document.removeEventListener("click",this._documentClickListener)}createRenderRoot(){return this}_onKeyDown(e){switch(e.code){case"KeyF":e.metaKey||e.altKey||e.ctrlKey||(e.preventDefault(),this.inputRef.value.focus());break}}_initializeGenome(){const e=Mb(this.genomeSpy.viewRoot);e&&(this._genomeResolution=e,this._genome=this.genomeSpy.genomeStore.getGenome(),this.getDefaultValue=()=>this._genome.formatInterval(e.getDomain()),e.addEventListener("domain",Cs(()=>this.requestUpdate(),60,!1)))}async searchViews(e){var r;const n=new Intl.Collator("en",{usage:"search",sensitivity:"base"});for(const i of this.genomeSpy.getSearchableViews()){const o=i.getAccessor("search"),a=i.getAccessor("x"),s=i.getAccessor("x2"),c=i.getScaleResolution("x");if(!(!a||!s||!(c!=null&&c.isZoomable()))){for(const u of((r=i.getCollector())==null?void 0:r.getData())??[])if(n.compare(o(u),e)===0){const f=gc([a(u),s(u)],null,1.2);return await c.zoomTo(f),!0}}}return!1}async search(e){await(async()=>{if(this._genomeResolution&&this._genome){const r=this._genome.parseInterval(e);if(r){this._genomeResolution.zoomTo(r);return}if(await this.searchViews(e))return;this.genomeSpy.viewRoot.visit(i=>{i instanceof fb&&i.handleVerboseCommand(e)})}})(),this._inputField.value=this.getDefaultValue(),this.requestUpdate()}_onSearchHelpClicked(e){const n=e.target;n.tagName=="LI"&&this._doExampleSearch(n.innerText)}_onSearchFocused(e){const n=e.target;switch(e.type){case"focus":this._focused=!0,n.select();break;case"blur":this._focused=!1;break}}_onSearchKeyDown(e){const n=e.target;e.code=="Enter"?(e.preventDefault(),this.search(n.value).then(()=>{n.focus(),n.select()}).catch(r=>{console.log(r),alert(r)})):e.code=="Escape"?n.blur():e.stopPropagation()}_doExampleSearch(e){Jk(e,this._inputField).then(()=>{this._inputField.blur(),this.search(e)})}_getSearchHelp(){var r,i;const e=[];e.push(E`<p>Focus to a specific range. Examples:</p><ul><li>chr8</li><li>chr8:21,445,873</li><li>chr8:21,445,873-24,623,697</li><li>chr4:166,014,727-chr15:23,731,397</li></ul>`);for(const o of((r=this.genomeSpy)==null?void 0:r.getSearchableViews())||[]){const a=o.getTitleText()??o.spec.name,s=o.getAccessor("search"),c=s.fields.join(", "),u=Ig(3,o.getCollector().getData(),s);e.push(E`<p>Search <em>${a}</em> (${c}). Examples:</p><ul>${u.map(f=>E`<li>${f}</li>`)}</ul>`)}const n=(i=this.app.getSampleView())==null?void 0:i.attributePanel;if(n){const o=n.getAttributeNames().map(a=>n.getAttributeInfo(a)).filter(a=>a.type=="nominal"||a.type=="ordinal").sort(()=>.5-Math.random()).map(a=>{var s;return[...((s=a.scale)==null?void 0:s.domain())??[]].sort(()=>.5-Math.random())[0]}).filter(a=>a!==void 0).slice(0,3);o.length&&e.push(E`<p>Filter samples by categorical attributes. Examples:</p><ul>${o.map(a=>E`<li>${a}</li>`)}</ul>`)}return E`<div class="search-help" @click="${this._onSearchHelpClicked}">${e}</div>`}updated(e){this._focused&&this._inputField.select()}render(){return E`<div class="search"><input type="text" class="search-input" .value="${this.getDefaultValue()}" @mousedown="${e=>{this._focused||(this._inputField.focus(),e.preventDefault(),e.stopPropagation())}}" @keydown="${this._onSearchKeyDown.bind(this)}" @focus="${this._onSearchFocused}" @blur="${this._onSearchFocused}" ${Db(this.inputRef)}> ${qk([123],()=>this._getSearchHelp())}</div>`}}customElements.define("genome-spy-search-field",Kk);function Jk(t,e){return new Promise(n=>{let r=0;const i=700/t.length+30;function o(){e.value=t.substring(0,r),r>=t.length?setTimeout(n,500):(r++,setTimeout(o,Math.random()*i*2))}o()})}function Mb(t){let e;return t.visit(n=>{for(const r of["x","y"]){const i=n.resolutions.scale[r];if(i&&i.type=="locus"&&i.isZoomable())return e=i,tr}}),e}const Tb="data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMzIgMzIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLW1pdGVybGltaXQ9IjEuNSI+PHBhdGggZD0iTTQuNyAyMS4ycy40IDIuMyAxLjMgMy42QzcgMjYgOS44IDI4IDkuOCAyOHMzLjQtMi42IDYuNC04LjVjMCAwIDEgLjEgMS45LS40LjktLjYuOC0uNCAxLTEuMiAwIDAgMi45LjUgNi42IDAgMi4xLS4zIDQuMy0xIDYuMi0yLjUgMCAwLTEuMS0xLjctMi41LTUuMS0uNS0xLjMtMi0xLjgtNC42LTQuNmwtOC4yIDguNi0xMS45IDYuOXoiIGZpbGwtb3BhY2l0eT0iLjEiLz48cGF0aCBkPSJNMTIuNyAxNC44cy00LTEuOC0xMiAyLjdjMCAwIDEgMy43IDIuNSA1LjMgMS40IDEuNSAyLjMgMy42IDQuNiA0LjYgMCAwIDQuNy0zIDYuOS05LjJsMy0yczQuNyAyLjggMTIuNi0xLjZjMCAwLS42LTMuMy0zLTYtMi42LTMtMy44LTQuNy0zLjgtNC43cy00LjEgMi4zLTcuNSA5LjNsLTMuMyAxLjZ6IiBmaWxsPSIjN2ZiYmRkIi8+PHBhdGggZD0iTTEyLjQgMTUuNWMtLjctLjUtMi40LS44LTQuNC0uNC0yIC40LTQgMS4zLTQuOCAxLjgtLjUuMy0xLjIgMS0xLjIgMS40IDAgLjcuMyAxLjguOCAyLjQuMy4zLjcuNSAxLjQuNi44IDAgMi41LTEuNCAzLjUtMiAxLS42IDEuNi0uOCAyLjctMS4ybC0yLjkgMi40Yy0xLjMgMS4yLTIuMiAxLjUtMi40IDIuMyAwIC41IDAgMS40LjUgMS44LjQuNS42LjggMS42LjguNiAwIDEgMCAyLjYtMS41LjktLjkgMi4zLTMgMi43LTMuNy42LTEuMSAxLTIuMi43LTMtLjItMS0uNC0xLjQtLjgtMS43ek0xNy40IDE0LjJjLS4zLS41LS45LTEuMi0uMi0yLjVsMS45LTNjLjUtLjggMi0yLjMgMi42LTIuNi42LS40IDEuNS0uNiAyLS4yLjYuNCAxIDEgMS4zIDEuNS40LjYuNyAxLjMuMiAyLS43IDEtMS42LjktMi44IDEuNy0xLjIuOC0xLjkgMS4yLTIuNSAxLjlsMy44LTEuOGMxLjMtLjYgMi43LTEuMSAzLjQtLjcuOC41LjguNyAxIDEuNC4zIDEtLjIgMS45LS44IDIuNC0uNS42LTEuNS45LTIuNiAxLjItMS40LjQtNC41IDEtNS44LjUtMS4zLS41LTEuMy0xLjQtMS41LTEuOHoiIGZpbGw9IiNmZmYiLz48cGF0aCBkPSJNMTIuNyAxNC44cy00LTEuOC0xMiAyLjdjMCAwIDEgMy43IDIuNSA1LjMgMS40IDEuNSAyLjMgMy42IDQuNiA0LjYgMCAwIDQuNy0zIDYuOS05LjJsMy0yczQuNyAyLjggMTIuNi0xLjZjMCAwLS42LTMuMy0zLTYtMi42LTMtMy44LTQuNy0zLjgtNC43cy00LjEgMi4zLTcuNSA5LjNsLTMuMyAxLjZ6IiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0cm9rZS13aWR0aD0iLjUiLz48cGF0aCBkPSJNMTIuNCAxNC45czIuMS0yIDMtMmMxLjEgMCAyLjMgMi43IDIuMyAzLjUgMCAuOC0yLjEgMi40LTMuMSAyLjMgMCAwIDAtMS4yLS43LTIuNi0uOC0xLjMtMS41LTEuMi0xLjUtMS4yeiIgZmlsbD0iIzdmYmJkZCIvPjxwYXRoIGQ9Ik0xMy44IDE1LjNjLjkuOC42IDIgMS40IDEuOCAxLS4yIDEuNC0uOCAxLjMtMS41IDAtLjcgMC0uOC0uNC0xLjYtLjMtLjctMS0xLjEtMi0uNS0uNy41LTEuNCAxLjMtMS40IDEuM3MuMi0uMyAxLjEuNXoiIGZpbGw9IiNmZmYiLz48cGF0aCBkPSJNMTIuNCAxNC45czIuMS0yIDMtMmMxLjEgMCAyLjMgMi43IDIuMyAzLjUgMCAuOC0yLjEgMi40LTMuMSAyLjMgMCAwIDAtMS4yLS43LTIuNi0uOC0xLjMtMS41LTEuMi0xLjUtMS4yeiIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMDAwIiBzdHJva2Utd2lkdGg9Ii41Ii8+PC9zdmc+",Ib={name:"@genome-spy/app",description:"GenomeSpy-based visualization tool for multiple patient samples",author:{name:"Kari Lavikka",email:"kari.lavikka@helsinki.fi"},contributors:[],license:"MIT",version:"0.30.3",main:"dist/index.js",files:["dist/"],repository:{type:"git",url:"github:genome-spy/genome-spy",directory:"packages/app"},scripts:{dev:"node dev-server.js",build:"vite build",prepublishOnly:"npm run build"},dependencies:{"@floating-ui/dom":"^0.5.0","@fortawesome/fontawesome-free":"^6.1.1","@fortawesome/fontawesome-svg-core":"^6.1.1","@fortawesome/free-solid-svg-icons":"^6.1.1","@genome-spy/core":"^0.30.3","@reduxjs/toolkit":"^1.8.4",idb:"^7.0.1",lit:"^2.4.0","lz-string":"^1.4.4",mapsort:"^1.0.5","redux-batched-actions":"^0.5.0","redux-undo":"^1.0.1",snarkdown:"^2.0.0"},gitHead:"b4900c82877041afa1781f601e29cef4f51d5a52"};/**
2362
+ */const qQ={},WQ=Ya(class extends ys{constructor(){super(...arguments),this.ot=qQ}render(e,t){return t()}update(e,[t,n]){if(Array.isArray(t)){if(Array.isArray(this.ot)&&this.ot.length===t.length&&t.every((r,i)=>r===this.ot[i]))return pt}else if(this.ot===t)return pt;return this.ot=Array.isArray(t)?Array.from(t):t,this.render(t,n)}});class XQ extends sr{constructor(){super(),this.inputRef=I8(),this.app=void 0,this.getDefaultValue=()=>"",this._keyListener=this._onKeyDown.bind(this),this._documentClickListener=t=>{var n;t.target!==this._inputField&&((n=this._inputField)==null||n.blur())},this._focused=!1}get genomeSpy(){return this.app.genomeSpy}get _inputField(){return this.inputRef.value}static get properties(){return{app:{type:Object}}}connectedCallback(){super.connectedCallback(),this._initializeGenome(),document.addEventListener("keydown",this._keyListener),document.addEventListener("click",this._documentClickListener)}disconnectedCallback(){super.disconnectedCallback(),document.removeEventListener("keydown",this._keyListener),document.removeEventListener("click",this._documentClickListener)}createRenderRoot(){return this}_onKeyDown(t){switch(t.code){case"KeyF":t.metaKey||t.altKey||t.ctrlKey||(t.preventDefault(),this.inputRef.value.focus());break}}_initializeGenome(){const t=M8(this.genomeSpy.viewRoot);t&&(this._genomeResolution=t,this._genome=this.genomeSpy.genomeStore.getGenome(),this.getDefaultValue=()=>this._genome.formatInterval(t.getDomain()),t.addEventListener("domain",hs(()=>this.requestUpdate(),60,!1)))}async searchViews(t){var r;const n=new Intl.Collator("en",{usage:"search",sensitivity:"base"});for(const i of this.genomeSpy.getSearchableViews()){const a=i.getAccessor("search"),o=i.getAccessor("x"),s=i.getAccessor("x2"),l=i.getScaleResolution("x");if(!(!o||!s||!(l!=null&&l.isZoomable()))){for(const c of((r=i.getCollector())==null?void 0:r.getData())??[])if(n.compare(a(c),t)===0){const u=wd([o(c),s(c)],null,1.2);return await l.zoomTo(u),!0}}}return!1}async search(t){await(async()=>{if(this._genomeResolution&&this._genome){const r=this._genome.parseInterval(t);if(r){this._genomeResolution.zoomTo(r);return}if(await this.searchViews(t))return;this.genomeSpy.viewRoot.visit(i=>{i instanceof g8&&i.handleVerboseCommand(t)})}})(),this._inputField.value=this.getDefaultValue(),this.requestUpdate()}_onSearchHelpClicked(t){const n=t.target;n.tagName=="LI"&&this._doExampleSearch(n.innerText)}_onSearchFocused(t){const n=t.target;switch(t.type){case"focus":this._focused=!0,n.select();break;case"blur":this._focused=!1;break}}_onSearchKeyDown(t){const n=t.target;t.code=="Enter"?(t.preventDefault(),this.search(n.value).then(()=>{n.focus(),n.select()}).catch(r=>{console.log(r),alert(r)})):t.code=="Escape"?n.blur():t.stopPropagation()}_doExampleSearch(t){KQ(t,this._inputField).then(()=>{this._inputField.blur(),this.search(t)})}_getSearchHelp(){var r,i;const t=[];t.push(z`<p>Focus to a specific range. Examples:</p><ul><li>chr8</li><li>chr8:21,445,873</li><li>chr8:21,445,873-24,623,697</li><li>chr4:166,014,727-chr15:23,731,397</li></ul>`);for(const a of((r=this.genomeSpy)==null?void 0:r.getSearchableViews())||[]){const o=a.getTitleText()??a.spec.name,s=a.getAccessor("search"),l=s.fields.join(", "),c=wx(3,a.getCollector().getData(),s);t.push(z`<p>Search <em>${o}</em> (${l}). Examples:</p><ul>${c.map(u=>z`<li>${u}</li>`)}</ul>`)}const n=(i=this.app.getSampleView())==null?void 0:i.attributePanel;if(n){const a=n.getAttributeNames().map(o=>n.getAttributeInfo(o)).filter(o=>o.type=="nominal"||o.type=="ordinal").sort(()=>.5-Math.random()).map(o=>{var s;return[...((s=o.scale)==null?void 0:s.domain())??[]].sort(()=>.5-Math.random())[0]}).filter(o=>o!==void 0).slice(0,3);a.length&&t.push(z`<p>Filter samples by categorical attributes. Examples:</p><ul>${a.map(o=>z`<li>${o}</li>`)}</ul>`)}return z`<div class="search-help" @click="${this._onSearchHelpClicked}">${t}</div>`}updated(t){this._focused&&this._inputField.select()}render(){return z`<div class="search"><input type="text" class="search-input" .value="${this.getDefaultValue()}" @mousedown="${t=>{this._focused||(this._inputField.focus(),t.preventDefault(),t.stopPropagation())}}" @keydown="${this._onSearchKeyDown.bind(this)}" @focus="${this._onSearchFocused}" @blur="${this._onSearchFocused}" ${T8(this.inputRef)}> ${WQ([123],()=>this._getSearchHelp())}</div>`}}customElements.define("genome-spy-search-field",XQ);function KQ(e,t){return new Promise(n=>{let r=0;const i=700/e.length+30;function a(){t.value=e.substring(0,r),r>=e.length?setTimeout(n,500):(r++,setTimeout(a,Math.random()*i*2))}a()})}function M8(e){let t;return e.visit(n=>{for(const r of["x","y"]){const i=n.resolutions.scale[r];if(i&&i.type=="locus"&&i.isZoomable())return t=i,xa}}),t}const N8="data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMzIgMzIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLW1pdGVybGltaXQ9IjEuNSI+PHBhdGggZD0iTTQuNyAyMS4ycy40IDIuMyAxLjMgMy42QzcgMjYgOS44IDI4IDkuOCAyOHMzLjQtMi42IDYuNC04LjVjMCAwIDEgLjEgMS45LS40LjktLjYuOC0uNCAxLTEuMiAwIDAgMi45LjUgNi42IDAgMi4xLS4zIDQuMy0xIDYuMi0yLjUgMCAwLTEuMS0xLjctMi41LTUuMS0uNS0xLjMtMi0xLjgtNC42LTQuNmwtOC4yIDguNi0xMS45IDYuOXoiIGZpbGwtb3BhY2l0eT0iLjEiLz48cGF0aCBkPSJNMTIuNyAxNC44cy00LTEuOC0xMiAyLjdjMCAwIDEgMy43IDIuNSA1LjMgMS40IDEuNSAyLjMgMy42IDQuNiA0LjYgMCAwIDQuNy0zIDYuOS05LjJsMy0yczQuNyAyLjggMTIuNi0xLjZjMCAwLS42LTMuMy0zLTYtMi42LTMtMy44LTQuNy0zLjgtNC43cy00LjEgMi4zLTcuNSA5LjNsLTMuMyAxLjZ6IiBmaWxsPSIjN2ZiYmRkIi8+PHBhdGggZD0iTTEyLjQgMTUuNWMtLjctLjUtMi40LS44LTQuNC0uNC0yIC40LTQgMS4zLTQuOCAxLjgtLjUuMy0xLjIgMS0xLjIgMS40IDAgLjcuMyAxLjguOCAyLjQuMy4zLjcuNSAxLjQuNi44IDAgMi41LTEuNCAzLjUtMiAxLS42IDEuNi0uOCAyLjctMS4ybC0yLjkgMi40Yy0xLjMgMS4yLTIuMiAxLjUtMi40IDIuMyAwIC41IDAgMS40LjUgMS44LjQuNS42LjggMS42LjguNiAwIDEgMCAyLjYtMS41LjktLjkgMi4zLTMgMi43LTMuNy42LTEuMSAxLTIuMi43LTMtLjItMS0uNC0xLjQtLjgtMS43ek0xNy40IDE0LjJjLS4zLS41LS45LTEuMi0uMi0yLjVsMS45LTNjLjUtLjggMi0yLjMgMi42LTIuNi42LS40IDEuNS0uNiAyLS4yLjYuNCAxIDEgMS4zIDEuNS40LjYuNyAxLjMuMiAyLS43IDEtMS42LjktMi44IDEuNy0xLjIuOC0xLjkgMS4yLTIuNSAxLjlsMy44LTEuOGMxLjMtLjYgMi43LTEuMSAzLjQtLjcuOC41LjguNyAxIDEuNC4zIDEtLjIgMS45LS44IDIuNC0uNS42LTEuNS45LTIuNiAxLjItMS40LjQtNC41IDEtNS44LjUtMS4zLS41LTEuMy0xLjQtMS41LTEuOHoiIGZpbGw9IiNmZmYiLz48cGF0aCBkPSJNMTIuNyAxNC44cy00LTEuOC0xMiAyLjdjMCAwIDEgMy43IDIuNSA1LjMgMS40IDEuNSAyLjMgMy42IDQuNiA0LjYgMCAwIDQuNy0zIDYuOS05LjJsMy0yczQuNyAyLjggMTIuNi0xLjZjMCAwLS42LTMuMy0zLTYtMi42LTMtMy44LTQuNy0zLjgtNC43cy00LjEgMi4zLTcuNSA5LjNsLTMuMyAxLjZ6IiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0cm9rZS13aWR0aD0iLjUiLz48cGF0aCBkPSJNMTIuNCAxNC45czIuMS0yIDMtMmMxLjEgMCAyLjMgMi43IDIuMyAzLjUgMCAuOC0yLjEgMi40LTMuMSAyLjMgMCAwIDAtMS4yLS43LTIuNi0uOC0xLjMtMS41LTEuMi0xLjUtMS4yeiIgZmlsbD0iIzdmYmJkZCIvPjxwYXRoIGQ9Ik0xMy44IDE1LjNjLjkuOC42IDIgMS40IDEuOCAxLS4yIDEuNC0uOCAxLjMtMS41IDAtLjcgMC0uOC0uNC0xLjYtLjMtLjctMS0xLjEtMi0uNS0uNy41LTEuNCAxLjMtMS40IDEuM3MuMi0uMyAxLjEuNXoiIGZpbGw9IiNmZmYiLz48cGF0aCBkPSJNMTIuNCAxNC45czIuMS0yIDMtMmMxLjEgMCAyLjMgMi43IDIuMyAzLjUgMCAuOC0yLjEgMi40LTMuMSAyLjMgMCAwIDAtMS4yLS43LTIuNi0uOC0xLjMtMS41LTEuMi0xLjUtMS4yeiIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMDAwIiBzdHJva2Utd2lkdGg9Ii41Ii8+PC9zdmc+",F8={name:"@genome-spy/app",description:"GenomeSpy-based visualization tool for multiple patient samples",author:{name:"Kari Lavikka",email:"kari.lavikka@helsinki.fi"},contributors:[],license:"MIT",version:"0.32.0",main:"dist/index.js",files:["dist/"],repository:{type:"git",url:"github:genome-spy/genome-spy",directory:"packages/app"},scripts:{dev:"node dev-server.js",build:"vite build",prepublishOnly:"npm run build"},dependencies:{"@floating-ui/dom":"^0.5.0","@fortawesome/fontawesome-free":"^6.1.1","@fortawesome/fontawesome-svg-core":"^6.1.1","@fortawesome/free-solid-svg-icons":"^6.1.1","@genome-spy/core":"^0.32.0","@reduxjs/toolkit":"^1.8.4",idb:"^7.0.1",lit:"^2.4.0","lz-string":"^1.4.4",mapsort:"^1.0.5","redux-batched-actions":"^0.5.0","redux-undo":"^1.0.1",snarkdown:"^2.0.0"},gitHead:"09fe8c737a955ef4351be6f4c6a5d1c18c8be237"};/**
2176
2363
  * @license
2177
2364
  * Copyright 2020 Google LLC
2178
2365
  * SPDX-License-Identifier: BSD-3-Clause
2179
- */const $k=or(class extends Zr{constructor(t){if(super(t),t.type!==vt.PROPERTY&&t.type!==vt.ATTRIBUTE&&t.type!==vt.BOOLEAN_ATTRIBUTE)throw Error("The `live` directive is not allowed on child or event bindings");if(!Qy(t))throw Error("`live` bindings can only contain a single expression")}render(t){return t}update(t,[e]){if(e===Ae||e===z)return e;const n=t.element,r=t.name;if(t.type===vt.PROPERTY){if(e===n[r])return Ae}else if(t.type===vt.BOOLEAN_ATTRIBUTE){if(!!e===n.hasAttribute(r))return Ae}else if(t.type===vt.ATTRIBUTE&&n.getAttribute(r)===e+"")return Ae;return Yy(t),e}});function kb(t,e){return new CustomEvent("query-dependency",{detail:{name:t,setter:e},bubbles:!0})}function eN(t){if(!(t!=null&&t.length))throw new Error("Can't nest an empty array!");const e=Nb(null);for(const n of t){if(!(n!=null&&n.length))throw new Error("Cannot nest, element has no path!");let r=e;for(const i of n){let o=r.children.find(a=>a.item===i);o||(o=Nb(i),r.children.push(o)),r=o}}return e.children[0]}const Nb=t=>({item:t,children:[]}),Ed=new Set;function Dd(t){const n=t.currentTarget.parentNode,r=!n.classList.contains("show");for(const i of Ed)i.classList.remove("show"),document.body.classList.remove(Vn);return Ed.clear(),t.stopPropagation(),r?(Ed.add(n),n.classList.add("show"),document.body.classList.add(Vn),window.addEventListener("click",i=>{n.classList.contains("show")&&(n.classList.remove("show"),document.body.classList.remove(Vn),i.preventDefault())},{once:!0})):window.dispatchEvent(new MouseEvent("click")),r}const Md={visibilities:{}},ai=Av({name:"viewSettings",initialState:Md,reducers:{setVisibility:(t,e)=>{t.visibilities[e.payload.name]=e.payload.visibility},restoreDefaultVisibility:(t,e)=>{delete t.visibilities[e.payload]},restoreDefaultVisibilities:(t,e)=>Md,setViewSettings:(t,e)=>({...Md,...e.payload?e.payload:{}})}});class tN extends yt{constructor(){super(),this.app=void 0,this.nestedPaths=void 0,this.sateWatcher=rc(e=>e.viewSettings,(e,n)=>this.requestUpdate()),this.style.display="none"}connectedCallback(){super.connectedCallback(),this.dispatchEvent(kb("app",e=>{this.app=e})),this.app.addInitializationListener(()=>{this.updateToggles(),this.requestUpdate(),this.style.display=this.nestedPaths.children.length?"block":"none"}),this.app.storeHelper.subscribe(this.sateWatcher)}disconnectedCallback(){this.app.storeHelper.unsubscribe(this.sateWatcher)}createRenderRoot(){return this}toolButtonClicked(e){Dd(e)}handleCheckboxClick(e,n){const r=e.target.checked;this.app.storeHelper.dispatch(r!=n.isVisibleInSpec()?ai.actions.setVisibility({name:n.name,visibility:r}):ai.actions.restoreDefaultVisibility(n.name)),this.requestUpdate(),e.stopPropagation()}handleResetClick(){this.app.storeHelper.dispatch(ai.actions.restoreDefaultVisibilities())}updateToggles(){const e=this.app.genomeSpy.viewRoot;if(!e)return;const n=[];e.visit(i=>{if(i instanceof i1)return vs;n.push(i)});const r=n.filter(i=>L5(i.name)&&Lb(i)).map(i=>[...i.getAncestors()].reverse());this.nestedPaths=eN(r)}renderToggles(){const e=this.getVisibilities(),n=this.app.genomeSpy.viewRoot,r=E1(n);var i=(a,s=!0)=>a.length?E`<ul class="${s?null:"unchecked"}">${a.map(o)}</ul>`:z,o=a=>{const s=a.item,c=e[s.name]??s.isVisibleInSpec();return E`<li><label class="checkbox"><input type="checkbox" ?disabled="${!r.has(s.name)||!Lb(s)}" .checked="${$k(c)}" @change="${u=>this.handleCheckboxClick(u,s)}">${s.getTitleText()??s.name}</label> ${i(a.children,c)}</li>`};return i(this.nestedPaths.children)}render(){const e=!Object.keys(this.getVisibilities()).length;return E`<div class="dropdown bookmark-dropdown"><button class="tool-btn" title="Toggle view visibilities" @click="${this.toolButtonClicked.bind(this)}">${K(B6).node[0]}</button><ul class="gs-dropdown-menu" @click="${n=>n.stopPropagation()}"><li class="menu-header">View visibility</li><li>${e?E`<span class="disabled-item">Restore defaults</span>`:E`<a @click="${()=>this.handleResetClick()}">Restore defaults</a>`}</li><li class="menu-divider"></li><li>${this.nestedPaths?this.renderToggles():z}</li></ul></div>`}getVisibilities(){return this.app.storeHelper.state.viewSettings.visibilities}}const Lb=t=>t.spec.configurableVisibility??!(t.parent&&t.parent instanceof Ot);customElements.define("genome-spy-view-visibility",tN);class nN extends yt{constructor(){super(),this.provenance=void 0}connectedCallback(){super.connectedCallback(),this.provenance.storeHelper.subscribe(()=>{this.requestUpdate()})}disconnectedCallback(){super.disconnectedCallback()}createRenderRoot(){return this}render(){const e=(r,i)=>{const o=this.provenance.getActionInfo(r);return o?E`<li><a @click="${()=>this.provenance.activateState(i)}" class="${i==this.provenance.getCurrentIndex()?"active":""}">${K(o.icon??H1).node[0]} ${o.provenanceTitle??o.title}</a></li>`:z},n=()=>E`<div class="dropdown provenance-dropdown"><button class="tool-btn" title="Provenance" ?disabled="${this.provenance.isEmpty()}" @click="${Dd}">${K(S6).node[0]}</button><ol class="gs-dropdown-menu provenance-menu">${this.provenance.getFullActionHistory().map(e)}</ol></div>`;return E`<div class="btn-group" @click="${r=>r.stopPropagation()}"><button class="tool-btn" title="Backtrack samples (B)" ?disabled="${!this.provenance.isUndoable()}" @click="${()=>this.provenance.undo()}">${K(l6).node[0]}</button> ${n()} <button class="tool-btn" title="Redo" ?disabled="${!this.provenance.isRedoable()}" @click="${()=>this.provenance.redo()}">${K(d6).node[0]}</button></div>`}}customElements.define("genome-spy-provenance-buttons",nN);/**
2366
+ */const JQ=Ya(class extends ys{constructor(e){if(super(e),e.type!==cr.PROPERTY&&e.type!==cr.ATTRIBUTE&&e.type!==cr.BOOLEAN_ATTRIBUTE)throw Error("The `live` directive is not allowed on child or event bindings");if(!QC(e))throw Error("`live` bindings can only contain a single expression")}render(e){return e}update(e,[t]){if(t===pt||t===ne)return t;const n=e.element,r=e.name;if(e.type===cr.PROPERTY){if(t===n[r])return pt}else if(e.type===cr.BOOLEAN_ATTRIBUTE){if(!!t===n.hasAttribute(r))return pt}else if(e.type===cr.ATTRIBUTE&&n.getAttribute(r)===t+"")return pt;return qC(e),t}});function B8(e,t){return new CustomEvent("query-dependency",{detail:{name:e,setter:t},bubbles:!0})}function eZ(e){if(!(e!=null&&e.length))throw new Error("Can't nest an empty array!");const t=L8(null);for(const n of e){if(!(n!=null&&n.length))throw new Error("Cannot nest, element has no path!");let r=t;for(const i of n){let a=r.children.find(o=>o.item===i);a||(a=L8(i),r.children.push(a)),r=a}}return t.children[0]}const L8=e=>({item:e,children:[]}),pb=new Set;function gb(e){const n=e.currentTarget.parentNode,r=!n.classList.contains("show");for(const i of pb)i.classList.remove("show"),document.body.classList.remove(ua);return pb.clear(),e.stopPropagation(),r?(pb.add(n),n.classList.add("show"),document.body.classList.add(ua),window.addEventListener("click",i=>{n.classList.contains("show")&&(n.classList.remove("show"),document.body.classList.remove(ua),i.preventDefault())},{once:!0})):window.dispatchEvent(new MouseEvent("click")),r}const mb={visibilities:{}},Is=S6({name:"viewSettings",initialState:mb,reducers:{setVisibility:(e,t)=>{e.visibilities[t.payload.name]=t.payload.visibility},restoreDefaultVisibility:(e,t)=>{delete e.visibilities[t.payload]},restoreDefaultVisibilities:(e,t)=>mb,setViewSettings:(e,t)=>({...mb,...t.payload?t.payload:{}})}});class tZ extends sr{constructor(){super(),this.app=void 0,this.nestedPaths=void 0,this.sateWatcher=id(t=>t.viewSettings,(t,n)=>this.requestUpdate()),this.style.display="none"}connectedCallback(){super.connectedCallback(),this.dispatchEvent(B8("app",t=>{this.app=t})),this.app.addInitializationListener(()=>{this.updateToggles(),this.requestUpdate(),this.style.display=this.nestedPaths.children.length?"block":"none"}),this.app.storeHelper.subscribe(this.sateWatcher)}disconnectedCallback(){this.app.storeHelper.unsubscribe(this.sateWatcher)}createRenderRoot(){return this}toolButtonClicked(t){gb(t)}handleCheckboxClick(t,n){const r=t.target.checked;this.app.storeHelper.dispatch(r!=n.isVisibleInSpec()?Is.actions.setVisibility({name:n.name,visibility:r}):Is.actions.restoreDefaultVisibility(n.name)),this.requestUpdate(),t.stopPropagation()}handleResetClick(){this.app.storeHelper.dispatch(Is.actions.restoreDefaultVisibilities())}updateToggles(){const t=this.app.genomeSpy.viewRoot;if(!t)return;const n=[];t.visit(i=>{if(i instanceof $x)return Mf;n.push(i)});const r=n.filter(i=>FH(i.name)&&O8(i)).map(i=>[...i.getAncestors()].reverse());this.nestedPaths=eZ(r)}renderToggles(){const t=this.getVisibilities(),n=this.app.genomeSpy.viewRoot,r=IS(n);var i=(o,s=!0)=>o.length?z`<ul class="${s?null:"unchecked"}">${o.map(a)}</ul>`:ne,a=o=>{const s=o.item,l=t[s.name]??s.isVisibleInSpec();return z`<li><label class="checkbox"><input type="checkbox" ?disabled="${!r.has(s.name)||!O8(s)}" .checked="${JQ(l)}" @change="${c=>this.handleCheckboxClick(c,s)}">${s.getTitleText()??s.name}</label> ${i(o.children,l)}</li>`};return i(this.nestedPaths.children)}render(){const t=!Object.keys(this.getVisibilities()).length;return z`<div class="dropdown bookmark-dropdown"><button class="tool-btn" title="Toggle view visibilities" @click="${this.toolButtonClicked.bind(this)}">${ke(BG).node[0]}</button><ul class="gs-dropdown-menu" @click="${n=>n.stopPropagation()}"><li class="menu-header">View visibility</li><li>${t?z`<span class="disabled-item">Restore defaults</span>`:z`<a @click="${()=>this.handleResetClick()}">Restore defaults</a>`}</li><li class="menu-divider"></li><li>${this.nestedPaths?this.renderToggles():ne}</li></ul></div>`}getVisibilities(){return this.app.storeHelper.state.viewSettings.visibilities}}const O8=e=>e.spec.configurableVisibility??!(e.parent&&e.parent instanceof Wn);customElements.define("genome-spy-view-visibility",tZ);class nZ extends sr{constructor(){super(),this.provenance=void 0}connectedCallback(){super.connectedCallback(),this.provenance.storeHelper.subscribe(()=>{this.requestUpdate()})}disconnectedCallback(){super.disconnectedCallback()}createRenderRoot(){return this}render(){const t=(r,i)=>{const a=this.provenance.getActionInfo(r);return a?z`<li><a @click="${()=>this.provenance.activateState(i)}" class="${i==this.provenance.getCurrentIndex()?"active":""}">${ke(a.icon??VS).node[0]} ${a.provenanceTitle??a.title}</a></li>`:ne},n=()=>z`<div class="dropdown provenance-dropdown"><button class="tool-btn" title="Provenance" ?disabled="${this.provenance.isEmpty()}" @click="${gb}">${ke(CG).node[0]}</button><ol class="gs-dropdown-menu provenance-menu">${this.provenance.getFullActionHistory().map(t)}</ol></div>`;return z`<div class="btn-group" @click="${r=>r.stopPropagation()}"><button class="tool-btn" title="Backtrack samples (B)" ?disabled="${!this.provenance.isUndoable()}" @click="${()=>this.provenance.undo()}">${ke(fG).node[0]}</button> ${n()} <button class="tool-btn" title="Redo" ?disabled="${!this.provenance.isRedoable()}" @click="${()=>this.provenance.redo()}">${ke(dG).node[0]}</button></div>`}}customElements.define("genome-spy-provenance-buttons",nZ);/**
2180
2367
  * @license
2181
2368
  * Copyright 2021 Google LLC
2182
2369
  * SPDX-License-Identifier: BSD-3-Clause
2183
- */class rN{constructor(e){this.Y=e}disconnect(){this.Y=void 0}reconnect(e){this.Y=e}deref(){return this.Y}}class iN{constructor(){this.Z=void 0,this.q=void 0}get(){return this.Z}pause(){var e;(e=this.Z)!==null&&e!==void 0||(this.Z=new Promise(n=>this.q=n))}resume(){var e;(e=this.q)===null||e===void 0||e.call(this),this.Z=this.q=void 0}}/**
2370
+ */class rZ{constructor(t){this.Y=t}disconnect(){this.Y=void 0}reconnect(t){this.Y=t}deref(){return this.Y}}class iZ{constructor(){this.Z=void 0,this.q=void 0}get(){return this.Z}pause(){var t;(t=this.Z)!==null&&t!==void 0||(this.Z=new Promise(n=>this.q=n))}resume(){var t;(t=this.q)===null||t===void 0||t.call(this),this.Z=this.q=void 0}}/**
2184
2371
  * @license
2185
2372
  * Copyright 2017 Google LLC
2186
2373
  * SPDX-License-Identifier: BSD-3-Clause
2187
- */const Bb=t=>!bI(t)&&typeof t.then=="function";class oN extends Sb{constructor(){super(...arguments),this._$Cwt=1073741823,this._$Cyt=[],this._$CK=new rN(this),this._$CX=new iN}render(...e){var n;return(n=e.find(r=>!Bb(r)))!==null&&n!==void 0?n:Ae}update(e,n){const r=this._$Cyt;let i=r.length;this._$Cyt=n;const o=this._$CK,a=this._$CX;this.isConnected||this.disconnected();for(let s=0;s<n.length&&!(s>this._$Cwt);s++){const c=n[s];if(!Bb(c))return this._$Cwt=s,c;s<i&&c===r[s]||(this._$Cwt=1073741823,i=0,Promise.resolve(c).then(async u=>{for(;a.get();)await a.get();const f=o.deref();if(f!==void 0){const l=f._$Cyt.indexOf(c);l>-1&&l<f._$Cwt&&(f._$Cwt=l,f.setValue(u))}}))}return Ae}disconnected(){this._$CK.disconnect(),this._$CX.pause()}reconnected(){this._$CK.reconnect(this),this._$CX.resume()}}const aN=or(oN);var sN={"":["<em>","</em>"],_:["<strong>","</strong>"],"*":["<strong>","</strong>"],"~":["<s>","</s>"],"\n":["<br />"]," ":["<br />"],"-":["<hr />"]};function Ob(t){return t.replace(RegExp("^"+(t.match(/^(\t| )+/)||"")[0],"gm"),"")}function jo(t){return(t+"").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function Td(t,e){var n,r,i,o,a,s=/((?:^|\n+)(?:\n---+|\* \*(?: \*)+)\n)|(?:^``` *(\w*)\n([\s\S]*?)\n```$)|((?:(?:^|\n+)(?:\t| {2,}).+)+\n*)|((?:(?:^|\n)([>*+-]|\d+\.)\s+.*)+)|(?:!\[([^\]]*?)\]\(([^)]+?)\))|(\[)|(\](?:\(([^)]+?)\))?)|(?:(?:^|\n+)([^\s].*)\n(-{3,}|={3,})(?:\n+|$))|(?:(?:^|\n+)(#{1,6})\s*(.+)(?:\n+|$))|(?:`([^`].*?)`)|( \n\n*|\n{2,}|__|\*\*|[_*]|~~)/gm,c=[],u="",f=e||{},l=0;function d(h){var m=sN[h[1]||""],g=c[c.length-1]==h;return m?m[1]?(g?c.pop():c.push(h),m[0|g]):m[0]:h}function p(){for(var h="";c.length;)h+=d(c[c.length-1]);return h}for(t=t.replace(/^\[(.+?)\]:\s*(.+)$/gm,function(h,m,g){return f[m.toLowerCase()]=g,""}).replace(/^\n+|\n+$/g,"");i=s.exec(t);)r=t.substring(l,i.index),l=s.lastIndex,n=i[0],r.match(/[^\\](\\\\)*\\$/)||((a=i[3]||i[4])?n='<pre class="code '+(i[4]?"poetry":i[2].toLowerCase())+'"><code'+(i[2]?' class="language-'+i[2].toLowerCase()+'"':"")+">"+Ob(jo(a).replace(/^\n+|\n+$/g,""))+"</code></pre>":(a=i[6])?(a.match(/\./)&&(i[5]=i[5].replace(/^\d+/gm,"")),o=Td(Ob(i[5].replace(/^\s*[>*+.-]/gm,""))),a==">"?a="blockquote":(a=a.match(/\./)?"ol":"ul",o=o.replace(/^(.*)(\n|$)/gm,"<li>$1</li>")),n="<"+a+">"+o+"</"+a+">"):i[8]?n='<img src="'+jo(i[8])+'" alt="'+jo(i[7])+'">':i[10]?(u=u.replace("<a>",'<a href="'+jo(i[11]||f[r.toLowerCase()])+'">'),n=p()+"</a>"):i[9]?n="<a>":i[12]||i[14]?n="<"+(a="h"+(i[14]?i[14].length:i[13]>"="?1:2))+">"+Td(i[12]||i[15],f)+"</"+a+">":i[16]?n="<code>"+jo(i[16])+"</code>":(i[17]||i[1])&&(n=d(i[17]||"--"))),u+=r,u+=n;return(u+t.substring(l)+p()).replace(/^\n+|\n+$/g,"")}function Fb(t,e){return!e||/^(data:|([A-Za-z]+:)?\/\/)/.test(t)||t.startsWith("/")?t:(e.endsWith("/")||(e+="/"),e+t)}function cN(t,e={}){const n=Td(t),r=new DOMParser().parseFromString(`<!DOCTYPE html><html><body><div>${n}</div></body></html>`,"text/html");r.normalize(),Pb(r.body);for(const o of r.querySelectorAll("a[href]"))o.setAttribute("target","blank"),o.setAttribute("rel","noopener noreferrer"),o.setAttribute("href",Fb(o.getAttribute("href"),e.baseUrl));for(const o of r.querySelectorAll("img[src]"))o.setAttribute("src",Fb(o.getAttribute("src"),e.baseUrl));const i=r.body.removeChild(r.querySelector("body > div"));return i.className="snarkdown",i}function Pb(t){if(t.nodeType!==3){if(t.nodeType!==1||/^(script|iframe|object|embed|svg)$/i.test(t.tagName))return t.remove();for(let e=t.attributes.length;e--;){const n=t.attributes[e].name;/^(class|id|name|href|src|alt|align|valign|(on[a-z]+))$/i.test(n)||t.attributes.removeNamedItem(n)}for(let e=t.childNodes.length;e--;)Pb(t.childNodes[e])}}function uN(t){t.stopPropagation(),t.preventDefault();const n=t.target.parentElement,r=n.parentElement,o=r.parentElement.querySelector(".panes"),a=[...r.children].findIndex(s=>s==n);for(const s of r.children)s.classList.remove("active-tab");for(const s of o.children)s.classList.remove("active-tab");r.children.item(a).classList.add("active-tab"),o.children.item(a).classList.add("active-tab")}var Id={exports:{}};Id.exports,function(t){var e=function(){var n=String.fromCharCode,r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$",o={};function a(c,u){if(!o[c]){o[c]={};for(var f=0;f<c.length;f++)o[c][c.charAt(f)]=f}return o[c][u]}var s={compressToBase64:function(c){if(c==null)return"";var u=s._compress(c,6,function(f){return r.charAt(f)});switch(u.length%4){default:case 0:return u;case 1:return u+"===";case 2:return u+"==";case 3:return u+"="}},decompressFromBase64:function(c){return c==null?"":c==""?null:s._decompress(c.length,32,function(u){return a(r,c.charAt(u))})},compressToUTF16:function(c){return c==null?"":s._compress(c,15,function(u){return n(u+32)})+" "},decompressFromUTF16:function(c){return c==null?"":c==""?null:s._decompress(c.length,16384,function(u){return c.charCodeAt(u)-32})},compressToUint8Array:function(c){for(var u=s.compress(c),f=new Uint8Array(u.length*2),l=0,d=u.length;l<d;l++){var p=u.charCodeAt(l);f[l*2]=p>>>8,f[l*2+1]=p%256}return f},decompressFromUint8Array:function(c){if(c==null)return s.decompress(c);for(var u=new Array(c.length/2),f=0,l=u.length;f<l;f++)u[f]=c[f*2]*256+c[f*2+1];var d=[];return u.forEach(function(p){d.push(n(p))}),s.decompress(d.join(""))},compressToEncodedURIComponent:function(c){return c==null?"":s._compress(c,6,function(u){return i.charAt(u)})},decompressFromEncodedURIComponent:function(c){return c==null?"":c==""?null:(c=c.replace(/ /g,"+"),s._decompress(c.length,32,function(u){return a(i,c.charAt(u))}))},compress:function(c){return s._compress(c,16,function(u){return n(u)})},_compress:function(c,u,f){if(c==null)return"";var l,d,p={},h={},m="",g="",y="",b=2,w=3,C=2,x=[],v=0,A=0,D;for(D=0;D<c.length;D+=1)if(m=c.charAt(D),Object.prototype.hasOwnProperty.call(p,m)||(p[m]=w++,h[m]=!0),g=y+m,Object.prototype.hasOwnProperty.call(p,g))y=g;else{if(Object.prototype.hasOwnProperty.call(h,y)){if(y.charCodeAt(0)<256){for(l=0;l<C;l++)v=v<<1,A==u-1?(A=0,x.push(f(v)),v=0):A++;for(d=y.charCodeAt(0),l=0;l<8;l++)v=v<<1|d&1,A==u-1?(A=0,x.push(f(v)),v=0):A++,d=d>>1}else{for(d=1,l=0;l<C;l++)v=v<<1|d,A==u-1?(A=0,x.push(f(v)),v=0):A++,d=0;for(d=y.charCodeAt(0),l=0;l<16;l++)v=v<<1|d&1,A==u-1?(A=0,x.push(f(v)),v=0):A++,d=d>>1}b--,b==0&&(b=Math.pow(2,C),C++),delete h[y]}else for(d=p[y],l=0;l<C;l++)v=v<<1|d&1,A==u-1?(A=0,x.push(f(v)),v=0):A++,d=d>>1;b--,b==0&&(b=Math.pow(2,C),C++),p[g]=w++,y=String(m)}if(y!==""){if(Object.prototype.hasOwnProperty.call(h,y)){if(y.charCodeAt(0)<256){for(l=0;l<C;l++)v=v<<1,A==u-1?(A=0,x.push(f(v)),v=0):A++;for(d=y.charCodeAt(0),l=0;l<8;l++)v=v<<1|d&1,A==u-1?(A=0,x.push(f(v)),v=0):A++,d=d>>1}else{for(d=1,l=0;l<C;l++)v=v<<1|d,A==u-1?(A=0,x.push(f(v)),v=0):A++,d=0;for(d=y.charCodeAt(0),l=0;l<16;l++)v=v<<1|d&1,A==u-1?(A=0,x.push(f(v)),v=0):A++,d=d>>1}b--,b==0&&(b=Math.pow(2,C),C++),delete h[y]}else for(d=p[y],l=0;l<C;l++)v=v<<1|d&1,A==u-1?(A=0,x.push(f(v)),v=0):A++,d=d>>1;b--,b==0&&(b=Math.pow(2,C),C++)}for(d=2,l=0;l<C;l++)v=v<<1|d&1,A==u-1?(A=0,x.push(f(v)),v=0):A++,d=d>>1;for(;;)if(v=v<<1,A==u-1){x.push(f(v));break}else A++;return x.join("")},decompress:function(c){return c==null?"":c==""?null:s._decompress(c.length,32768,function(u){return c.charCodeAt(u)})},_decompress:function(c,u,f){var l=[],d=4,p=4,h=3,m="",g=[],y,b,w,C,x,v,A,D={val:f(0),position:u,index:1};for(y=0;y<3;y+=1)l[y]=y;for(w=0,x=Math.pow(2,2),v=1;v!=x;)C=D.val&D.position,D.position>>=1,D.position==0&&(D.position=u,D.val=f(D.index++)),w|=(C>0?1:0)*v,v<<=1;switch(w){case 0:for(w=0,x=Math.pow(2,8),v=1;v!=x;)C=D.val&D.position,D.position>>=1,D.position==0&&(D.position=u,D.val=f(D.index++)),w|=(C>0?1:0)*v,v<<=1;A=n(w);break;case 1:for(w=0,x=Math.pow(2,16),v=1;v!=x;)C=D.val&D.position,D.position>>=1,D.position==0&&(D.position=u,D.val=f(D.index++)),w|=(C>0?1:0)*v,v<<=1;A=n(w);break;case 2:return""}for(l[3]=A,b=A,g.push(A);;){if(D.index>c)return"";for(w=0,x=Math.pow(2,h),v=1;v!=x;)C=D.val&D.position,D.position>>=1,D.position==0&&(D.position=u,D.val=f(D.index++)),w|=(C>0?1:0)*v,v<<=1;switch(A=w){case 0:for(w=0,x=Math.pow(2,8),v=1;v!=x;)C=D.val&D.position,D.position>>=1,D.position==0&&(D.position=u,D.val=f(D.index++)),w|=(C>0?1:0)*v,v<<=1;l[p++]=n(w),A=p-1,d--;break;case 1:for(w=0,x=Math.pow(2,16),v=1;v!=x;)C=D.val&D.position,D.position>>=1,D.position==0&&(D.position=u,D.val=f(D.index++)),w|=(C>0?1:0)*v,v<<=1;l[p++]=n(w),A=p-1,d--;break;case 2:return g.join("")}if(d==0&&(d=Math.pow(2,h),h++),l[A])m=l[A];else if(A===p)m=b+b.charAt(0);else return null;g.push(m),l[p++]=b+m.charAt(0),d--,b=m,d==0&&(d=Math.pow(2,h),h++)}}};return s}();t!=null&&(t.exports=e)}(Id);var zb=Id.exports;function lN(){const t=typeof process<"u"?require("util").TextEncoder:TextEncoder;return new t}let Rb;function fN(){let t,e=[];for(let n=0;n<256;n++){t=n;for(let r=0;r<8;r++)t=t&1?3988292384^t>>>1:t>>>1;e[n]=t}return e}function dN(t){Rb??(Rb=fN());let e=-1;const n=lN().encode(t);for(let r=0;r<n.length;r++)e=e>>>8^Rb[(e^n[r])&255];return(e^-1)>>>0}function jb(t){return("00000000"+dN(t).toString(16)).slice(-8)}function Ub(t){const e=zb.compressToEncodedURIComponent(JSON.stringify(t));return"#"+e+jb(e)}function hN(t){if(!t||t.length<10)throw new Error("The state string in the URL is too short.");const e=t.slice(1,-8),n=t.slice(-8);if(jb(e)!==n)throw new Error("The state string in the URL is corrupted.");return JSON.parse(zb.decompressFromEncodedURIComponent(e))}let vr;function pN(t){for(const e of t.genomeSpy.getNamedScaleResolutions().values())e.isZoomable()&&e.resetZoom();t.storeHelper.dispatch([...t.provenance.isUndoable()?[Ht.ActionCreators.jumpToPast(0)]:[],ai.actions.restoreDefaultVisibilities()])}async function kd(t,e){try{t.actions&&e.provenance.dispatchBookmark(t.actions),e.storeHelper.dispatch(ai.actions.setViewSettings(t.viewSettings));const n=[];for(const[r,i]of Object.entries(t.scaleDomains??{})){const o=e.genomeSpy.getNamedScaleResolutions().get(r);o?n.push(o.zoomTo(i)):console.warn(`Cannot restore scale domain. Unknown name: ${r}`)}await Promise.all(n)}catch(n){console.error(n),He(E`<p>Cannot restore the state:</p><p>${n}</p>`),e.provenance.activateState(0)}}async function Uo(t,e,n={}){await kd(t,e),(vr||t.notes||n.mode=="shared"&&(t.name||t.notes))&&await mN(t,e,n)}async function mN(t,e,n={}){vr??(vr=fr("tour",e.appContainer)),await gN(t,e,n)}async function gN(t,e,n){const r=n.database,i=r?await r.getNames():[],o=i.indexOf(t.name),a=r?` ${o+1} of ${i.length}`:"",s=`${n.mode=="shared"?"Shared bookmark":"Bookmark"}${a}: ${t.name??"Unnamed"}`,c=t.notes?cN(t.notes,{baseUrl:e.genomeSpy.spec.baseUrl}):E`<span class="no-notes">No notes provided</span>`,u=async()=>{if(vr==null||vr.close(),vr=void 0,n.mode=="tour"){const m=n.afterTourBookmark;if(typeof m=="string"){const g=await n.database.get(m);if(!g)throw new Error(`No such bookmark: ${m}`);kd(g,e)}else m===null||pN(e)}},f=async m=>{const g=await r.get(i[m]);Uo(g,e,n),e.appContainer.querySelector("canvas").focus()},l=async()=>{if(await Nd(e.localBookmarkDatabase,t,"add"))try{await e.localBookmarkDatabase.put(t)}catch(m){console.warn(m),He(`Cannot import bookmark: ${m}`)}},d=E`<button class="btn" @click="${u}">${n.mode=="tour"?"End tour":"Close"}</button> ${n.mode=="shared"&&e.localBookmarkDatabase?E`<button class="btn" @click="${l}">${K(U1).node[0]} Import bookmark</button>`:z} ${r?E`<button class="btn" @click="${()=>f(o-1)}" ?disabled="${o<=0}">${K(m6).node[0]} Previous</button> <button class="btn" @click="${()=>f(o+1)}" ?disabled="${o>=i.length-1}">Next ${K(T6).node[0]}</button>`:z}`,h=E`<button title="Collapse" class="btn collapse" @click="${m=>m.target.closest(".gs-modal").classList.toggle("collapsed")}">${K(y6).node[0]}</button><div class="modal-title">${s}</div><div class="modal-body markdown" style="max-width:600px">${c}</div><div class="modal-buttons">${d}</div>`;Be(h,vr.content)}function Hb(t,e){const n=JSON.stringify(t,void 0,2),r=window.location,i=r.origin+r.pathname+r.search+(e?"#bookmark:"+t.name.replaceAll(" ","-"):Ub(t));He(E`<div class="gs-tabs" style="width:600px"><ul class="tabs" @click="${uN}"><li class="active-tab"><button>URL</button></li><li><button>JSON</button></li></ul><div class="panes"><div class="gs-form-group active-tab"><label for="bookmark-url">Here's a link for you:</label><div class="copy-url"><input id="bookmark-url" type="text" .value="${i}"> <button @click="${a=>navigator.clipboard.writeText(i).then(()=>a.target.dispatchEvent(CI())).catch(()=>He("Failed to copy!"))}">Copy</button></div><small>The bookmark URL contains all the bookmarked data, including the possible notes, which will be shown when the link is opened.</small></div><div class="gs-form-group"><textarea id="bookmark-json" style="height:250px">
2188
- ${n}</textarea> <small>The JSON-formatted bookmark is currently available for development purposes.</small></div></div></div>`,{title:"Share a bookmark",okLabel:"Close"})}function Nd(t,e,n){const r={add:"Add bookmark",edit:"Edit bookmark",share:"Share the current view state as a bookmark"}[n],i=(c,u)=>E`<div class="modal-title">${r}</div><div class="modal-body" style="width:500px">${n=="edit"?E`<div class="gs-alert warning">${K(b6).node[0]} The current visualization state will be updated to the bookmark you are editing.</div>`:z} ${n=="share"?E`<div class="gs-alert info">${K(G1).node[0]} <span>You can add an optional title and notes, which will be shown to the recipient when the bookmark link is opened.</span></div>`:z}<div class="gs-form-group"><label for="bookmark-title">Title</label> <input id="bookmark-title" type="text" ?required="${n=="add"||n=="edit"}" .value="${e.name??""}" .placeholder="${n=="share"?"Add an optional title":""}" @change="${f=>{e.name=Gb(f.target.value)}}"></div><div class="gs-form-group"><label for="bookmark-notes">Notes</label> <textarea id="bookmark-notes" rows="4" .value="${e.notes??""}" .placeholder="${n=="share"?"... and notes":""}" @change="${f=>{e.notes=Gb(f.target.value)}}"></textarea> <small>Notes will be shown when the bookmark is loaded. You can use <a href="https://www.markdownguide.org/basic-syntax/">markdown</a> for formatting.</small></div></div><div class="modal-buttons"><button class="btn btn-cancel" @click="${c}">Cancel</button> <button class="btn btn-primary" @click="${u}">${n=="share"?E`${K(af).node[0]} Create a link`:"Save"}</button></div>`,o=e.name,a=()=>!!e.name,s=fr();return new Promise(c=>{const u=()=>{s.close(),c(!1)},f=async()=>{if(!a()){He("Name is missing!",{title:"Error"});return}let d=!0;t&&!(n&&e.name==o)&&await t.get(e.name)&&(d=await He(E`A bookmark with the name <em>${e.name}</em> already exists. It will be overwritten.`,{title:"Bookmark already exists",cancelButton:!0})),d&&(s.close(),c(!0))},l=()=>{s.close(),c(!0)};Be(i(u,n=="share"?l:f),s.content),s.content.querySelector("#bookmark-title").focus()})}function Gb(t){if(t!==void 0&&(t=t.trim(),t.length))return t}class yN extends yt{constructor(){super(),this.app=void 0}connectedCallback(){super.connectedCallback(),this.dispatchEvent(kb("app",e=>{this.app=e}))}createRenderRoot(){return this}_createBookmarkWithCurrentState(){const e={name:void 0,timestamp:Date.now(),actions:this.app.provenance.getBookmarkableActionHistory(),scaleDomains:{}},n=this.app.storeHelper.state.viewSettings;Object.keys(n.visibilities).length&&(e.viewSettings=n);for(const[r,i]of this.app.genomeSpy.getNamedScaleResolutions().entries())i.isZoomable()&&(e.scaleDomains[r]=i.getComplexDomain());return e}async _shareCurrentState(){const e=this._createBookmarkWithCurrentState();await Nd(void 0,e,"share")&&Hb(e,!1)}async _addBookmark(e,n){const r=n?await e.get(n):void 0,i=!!r,o=this._createBookmarkWithCurrentState();if(o.name??(o.name=r==null?void 0:r.name),o.notes??(o.notes=r==null?void 0:r.notes),await Nd(e,o,i?"edit":"add"))try{await e.put(o,r==null?void 0:r.name),this.requestUpdate()}catch(a){He(`${a}`,{title:"Cannot save the bookmark!"})}}async _loadBookmark(e,n){const r=await e.get(n);r&&Uo(r,this.app,{database:e})}_createContextMenu(e,n,r){r.stopPropagation();const i=r.target.closest("li"),o=()=>He(E`The bookmark <em>${n}</em> will be deleted.`,{title:"Are you sure?",cancelButton:!0}).then(async c=>{c&&(await e.delete(n),this.requestUpdate())}),a=[],s=e==this.app.globalBookmarkDatabase;s||(a.push({label:"Edit and replace...",icon:N6,callback:()=>this._addBookmark(e,n)}),a.push({label:"Delete",icon:V1,callback:o})),a.push({label:"Share...",icon:af,callback:async()=>Hb(await e.get(n),s)}),ub({items:a},i,"right-start")}async _makeBookmarkMenuItems(e,n){const i=(await e.getNames()).map(o=>({label:o,callback:()=>this._loadBookmark(e,o),ellipsisCallback:a=>this._createContextMenu(e,o,a)}));return i.length?[{type:"divider"},{label:n,type:"header"},...i].map(o=>sb(o)):z}_getBookmarks(){const e=(n,r)=>n?aN(this._makeBookmarkMenuItems(n,r),E`Loading...`):z;return[e(this.app.globalBookmarkDatabase,"Bookmarks on the server"),e(this.app.localBookmarkDatabase,"Bookmarks in the web browser")]}render(){const e=this.app.localBookmarkDatabase,n=e?E`<li><a @click="${()=>this._addBookmark(e)}">Add bookmark...</a></li>`:z,r=e||this.app.globalBookmarkDatabase?E`<div class="dropdown bookmark-dropdown"><button class="tool-btn" title="Bookmarks" @click="${i=>{Dd(i)&&this.requestUpdate()}}">${K(U1).node[0]}</button><ul class="gs-dropdown-menu">${n} ${this._getBookmarks()}</ul></div>`:z;return E`<div class="btn-group">${r} <button class="tool-btn" title="Share" @click="${()=>this._shareCurrentState()}">${K(af).node[0]}</button></div>`}}customElements.define("genome-spy-bookmark-button",yN);class vN extends yt{constructor(){super(),this.app=void 0,this.appInitialized=!1}static get properties(){return{app:{type:Object},appInitialized:{type:Boolean}}}createRenderRoot(){return this}_getToolButtons(){const e=this.app.provenance,n=[];e.isEnabled()&&n.push(E`<genome-spy-provenance-buttons .provenance="${e}"></genome-spy-provenance-buttons>`),n.push(E`<genome-spy-view-visibility></genome-spy-view-visibility>`),n.push(E`<genome-spy-bookmark-button></genome-spy-bookmark-button>`);const r=this.app.config.description?Ze(this.app.config.description):[];return r.length>1&&n.push(E`<button class="tool-btn" title="Show a description of the visualization" @click="${()=>He(E`${r.slice(1).map(i=>E`<p>${i}</p>`)}`,{title:r[0]})}">${K(G1).node[0]}</button>`),r.length>0&&n.push(E`<span class="vis-title">${r[0]}</span>`),n.push(E`<span class="spacer"></span> <a class="version" href="https://github.com/genome-spy/genome-spy/releases/tag/v${Ib.version}">v${Ib.version}</a> ${this.app.appContainer.requestFullscreen?E`<button class="tool-btn" title="Fullscreen" @click="${()=>this.app.toggleFullScreen()}">${K(k6).node[0]}</button>`:z} <button class="tool-btn" title="Help" @click="${()=>window.open("https://genomespy.app/docs/sample-collections/analyzing/","_blank")}">${K(w6).node[0]}</button>`),n}render(){const e=this.app.genomeSpy;return E`<nav class="gs-toolbar"><a href="https://genomespy.app" target="_blank" class="logo"><img title="GenomeSpy" alt="GenomeSpy" src="${Tb}"> </a>${this.appInitialized&&Mb(e.viewRoot)?E`<genome-spy-search-field .app="${this.app}"></genome-spy-search-field>`:z} ${this._getToolButtons()}</nav>`}}customElements.define("genome-spy-toolbar",vN);class bN{constructor(e){this.storeHelper=e,this._reducers={},this.actionInfoSources=[],this._reducer=void 0,e.addReducer("provenance",(n,r)=>this._reducer?this._reducer(n,r):n??{})}addReducer(e,n){this._reducers[e]=n;const r=o=>Object.keys(this._reducers).some(a=>o.type.startsWith(a)),i=(o,a)=>r(a)?a:o??null;this._reducer=rk(Jf({...this._reducers,lastAction:i}),{ignoreInitialState:!0,filter:r}),this.storeHelper.dispatch({type:"@@redux/REPLACE"+Math.random().toString(36).substring(7).split("").join(".")})}get _storeState(){return this.storeHelper.store.getState()}get _provenanceState(){return this._storeState.provenance}isEnabled(){return!!this.getPresentState()}getPresentState(){return this._provenanceState.present}addActionInfoSource(e){this.actionInfoSources.push(e)}getActionInfo(e){for(const n of this.actionInfoSources){const r=n(e);if(r)return r}}dispatchBookmark(e){this.storeHelper.dispatch([...this.isUndoable()?[Ht.ActionCreators.jumpToPast(0)]:[],...e])}isRedoable(){return this.isEnabled()&&this._provenanceState.future.length>0}redo(){this.storeHelper.dispatch(Ht.ActionCreators.redo())}isUndoable(){return this.isEnabled()&&this._provenanceState.past.length>0}undo(){this.storeHelper.dispatch(Ht.ActionCreators.undo())}isAtInitialState(){return!this.isUndoable()}isEmpty(){const e=this._provenanceState;return!this.isEnabled()||e.past.length+e.future.length<=0}activateState(e){const n=this.getCurrentIndex();e<n?this.storeHelper.dispatch(Ht.ActionCreators.jumpToPast(e)):e>n&&this.storeHelper.dispatch(Ht.ActionCreators.jumpToFuture(e-n-1))}getCurrentIndex(){var e;return(e=this._provenanceState.past)==null?void 0:e.length}getActionHistory(){const e=this._provenanceState;return e.present&&[...e.past,e.present].map(n=>n.lastAction)}getFullActionHistory(){const e=this._provenanceState;return[...e.past,e.present,...e.future].map(n=>n.lastAction)}getBookmarkableActionHistory(){var e;return(e=this.getActionHistory())==null?void 0:e.slice(1)}}function*AN(t,e=n=>+n){const n=t.length,r=new Ao,i=new Array(n).fill(0);for(const[a,s]of t.entries())s.length&&r.push(a,e(s[0]));let o=0;for(;(o=r.pop())!==void 0;){const a=t[o];let s=i[o];if(yield a[s++],s<a.length){const u=e(a[s]);r.push(o,u),i[o]=s}}}const xN="sampleCount";class wN extends ue{constructor(n,r){super();$(this,Zo);this.view=r;const i=r.context.animator;if(this.provenance=CN(r),!this.provenance)throw new Error("No SampleView was found!");this.provenance.storeHelper.subscribe(o=>{j(this,Zo,Hd)&&i.requestTransition(()=>{this.reset(),this._mergeAndPropagate(rd(o)),this.complete()})}),this.contextObject=void 0}initialize(){this.contextObject=Object.create(super.getGlobalObject());const n=this.view.getEncoding().x;if(Xn(n))this.xAccessor=q(n.field);else throw new Error("Crash!")}handle(n){}getGlobalObject(){return this.contextObject}_getCollector(){if(this.parent instanceof bo)return this.parent;throw new Error("MergeFacetsTransform must be a direct child of a Collector")}complete(){j(this,Zo,Hd)&&(this._mergeAndPropagate(this.provenance.getPresentState()[ri]),super.complete())}_mergeAndPropagate(n){const r=[...od(n.rootGroup)].filter(i=>Ov(Re(i)));for(const[i,o]of r.entries()){const a=Re(o);if(Ov(a)){this.contextObject[xN]=a.samples.length,this.beginBatch({type:"facet",facetId:[i]});const s=a.samples,c=this._getCollector(),u=AN(s.map(f=>c.facetBatches.get([f])??[]),this.xAccessor);for(const f of u)this._propagate(f)}}this._updateScales()}setParent(n){super.setParent(n)}_updateScales(){const n=new Set;this.view.visit(r=>{if(r instanceof pe&&r.mark.encoding.y){const i=r.getScaleResolution("y");i&&n.add(i)}});for(const r of n)r.reconfigure()}}Zo=new WeakSet,Hd=function(){return this.view.isVisible()};function CN(t){for(const e of t.getAncestors())if(e instanceof yd)return e.provenance}var SN="BATCHING_REDUCER.BATCH";function EN(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:SN;return{type:e,meta:{batch:!0},payload:t}}function DN(t){return function e(n,r){return r&&r.meta&&r.meta.batch?r.payload.reduce(e,n):t(n,r)}}class MN{constructor(e){this._reducers=e??{},this.store=d9({reducer:{}}),this._listeners=new Set,this.store.subscribe(()=>{const n=this.store.getState();for(const r of this._listeners)r(n)})}get state(){return this.store.getState()}addReducer(e,n){this._reducers[e]=n,this.store.replaceReducer(DN(Jf(this._reducers)))}subscribe(e){this._listeners.add(e)}unsubscribe(e){this._listeners.delete(e)}dispatch(e){Array.isArray(e)?this.store.dispatch(EN(e)):this.store.dispatch(e)}getDispatcher(){return e=>this.dispatch(e)}}class TN extends wb{constructor(e){super(),this.bookmarks=e,this.names=e.map(n=>n.name)}async getNames(){return this.names}async get(e){return this.bookmarks.find(n=>n.name==e)}}y1.mergeFacets=wN;class Qb{constructor(e,n,r={}){const i=this;this.config=n,this.storeHelper=new MN,this.storeHelper.addReducer("viewSettings",ai.reducer),this.provenance=new bN(this.storeHelper),this._initializationListeners=[],this.toolbarRef=Eb(),this.appContainer=e,this._configureContainer(),this.localBookmarkDatabase=typeof n.specId=="string"?new Vk(n.specId):void 0,this.globalBookmarkDatabase=void 0,Be(E`<div class="genome-spy-app"><genome-spy-toolbar ${Db(i.toolbarRef)} .app="${i}"></genome-spy-toolbar><div class="genome-spy-container"></div></div>`,i.appContainer),i.appContainer.querySelector(".genome-spy-app").addEventListener("query-dependency",s=>{s.detail.name=="app"&&(s.detail.setter(i),s.stopPropagation())});const o=s=>this.appContainer.getElementsByClassName(s)[0];this.genomeSpy=new L1(o("genome-spy-container"),this.config,r),this.genomeSpy.viewFactory.addViewType(Lk,(s,c,u,f)=>new yd(s,c,u,f,this.provenance));const a=this.genomeSpy.viewVisibilityPredicate;this.genomeSpy.viewVisibilityPredicate=s=>{var c;return((c=this.storeHelper.state.viewSettings)==null?void 0:c.visibilities[s.name])??a(s)}}addInitializationListener(e){this._initializationListeners?this._initializationListeners.push(e):e()}toggleFullScreen(){document.fullscreenElement?document.exitFullscreen&&document.exitFullscreen():this.appContainer.requestFullscreen()}isFullPage(){return this.appContainer==document.body}async launch(){var a;const e=(a=this.config.bookmarks)!=null&&a.remote?Ni({baseURL:this.config.baseUrl}).load(this.config.bookmarks.remote.url).then(s=>Promise.resolve(JSON.parse(s))):Promise.resolve([]);if(!await this.genomeSpy.launch())return;this.appContainer.querySelector("canvas").setAttribute("tabindex","-1"),this.storeHelper.subscribe(rc(s=>{var c;return(c=s.viewSettings)==null?void 0:c.visibilities},(s,c)=>{var f,l;this.genomeSpy.viewRoot._invalidateCacheByPrefix("size","progeny"),(l=(f=this.getSampleView())==null?void 0:f.summaryViews)==null||l._invalidateCacheByPrefix("size","self");const u=this.genomeSpy.viewRoot.context;u.requestLayoutReflow(),u.animator.requestRender()},this.storeHelper.store.getState()));try{const s=await e;s.length&&(this.globalBookmarkDatabase=new TN(s))}catch(s){throw new Error(`Cannot load remote bookmarks: ${s}`)}try{await this._restoreStateFromUrlOrBookmark()}catch(s){He(s.toString())}this.storeHelper.subscribe(()=>{this._updateStateToUrl()}),window.addEventListener("hashchange",()=>this._restoreStateFromUrl().catch(s=>He(s.toString())),!1);const r=Cs(()=>this._updateStateToUrl(),500,!1);for(const[,s]of this.genomeSpy.getNamedScaleResolutions())s.isZoomable()&&s.addEventListener("domain",r);const i=this.toolbarRef.value;i.appInitialized=!0;const o=Ze(this.genomeSpy.spec.description??[]);this.isFullPage()&&o.length>0&&(document.title="GenomeSpy - "+o);for(const s of this._initializationListeners)s();this._initializationListeners=void 0}async _restoreStateFromUrlOrBookmark(){var i;const e=(i=this.config.bookmarks)==null?void 0:i.remote,n=this.globalBookmarkDatabase;if(!await this._restoreStateFromUrl()&&e&&n){const o=e.initialBookmark??(e.tour&&(await n.getNames())[0]);if(o){const a=await n.get(o);if(!a)throw new Error(`No such bookmark: ${o}`);e.tour?await Uo(a,this,{mode:"tour",database:n,afterTourBookmark:e.afterTourBookmark}):await kd(a,this)}}}_updateStateToUrl(){const e={actions:[],scaleDomains:{}},n=this.provenance.getBookmarkableActionHistory();n!=null&&n.length&&(e.actions=n);for(const[o,a]of this.genomeSpy.getNamedScaleResolutions().entries())a.isZoomed()||(e.scaleDomains[o]=a.getComplexDomain());const r=this.storeHelper.state.viewSettings;Object.keys(r.visibilities).length&&(e.viewSettings=r);const i=e.actions.length||Object.keys(e.scaleDomains).length||e.viewSettings?Ub(e):"";window.history.replaceState(void 0,document.title,window.location.pathname+window.location.search+i)}async _restoreStateFromUrl(){var r,i;const e=window.location.hash,n=(r=e.match(/^#bookmark:(.+)$/))==null?void 0:r[1];if(n){const o=(i=this.config.bookmarks)==null?void 0:i.remote,a=this.globalBookmarkDatabase;if(o&&a){const s=(await a.getNames()).find(c=>c.replaceAll(" ","-")==n);if(s){const c=await a.get(s);if(!c)throw new Error(`No such bookmark: ${s}`);return await Uo(c,this,{mode:"tour",database:a}),!0}else throw new Error(`No such bookmark: ${n}`)}}if(e&&e.length>0)try{const o=hN(e);return Uo(o,this,{mode:"shared"}),!0}catch(o){console.error(o),He(E`<p>Cannot restore the state:</p><p>${o}</p>`)}return!1}_configureContainer(){this.isFullPage()?(this.appContainer.style.margin="0",this.appContainer.style.padding="0",this.appContainer.style.overflow="hidden",IN(n6)):this.appContainer.style.position="relative"}getSampleView(){var n;if(!((n=this.genomeSpy)!=null&&n.viewRoot))return;let e;return this.genomeSpy.viewRoot.visit(r=>{if(r instanceof yd)return e=r,tr}),e}}function IN(t){const e=document.querySelector("head"),n=document.createElement("link");n.setAttribute("rel","shortcut icon"),n.setAttribute("href",t),e.appendChild(n)}async function kN(t,e,n={}){let r;if(ne(t)){if(r=document.querySelector(t),!r)throw new Error(`No such element: ${t}`)}else if(t instanceof HTMLElement)r=t;else throw new Error(`Invalid element: ${t}`);let i;try{const o=ze(e)?e:await Vb(e);o.baseUrl??(o.baseUrl=""),o.width??(o.width="container"),o.padding??(o.padding=10);const a=new Qb(r,o,n);i=a.genomeSpy,NN(i,n),await a.launch()}catch(o){r.innerText=o.toString(),console.error(o)}return{finalize(){for(i.destroy();r.firstChild;)r.firstChild.remove()},addEventListener(o,a){const s=i._eventListeners;let c=s.get(o);c||(c=new Set,s.set(o,c)),c.add(a)},removeEventListener(o,a){var c;(c=i._eventListeners.get(o))==null||c.delete(a)},getScaleResolutionByName(o){return i.getNamedScaleResolutions().get(o)}}}function NN(t,e){e.namedDataProvider&&t.registerNamedDataProvider(e.namedDataProvider)}async function Vb(t){let e;try{e=JSON.parse(await Ni().load(t))}catch(n){throw new Error(`Could not load or parse configuration: ${t}, reason: ${n.message}`)}if(!e.baseUrl){const n=t.match(/^[^?#]*\//);e.baseUrl=n&&n[0]||"./"}return e}U.GenomeSpy=L1,U.GenomeSpyApp=Qb,U.embed=kN,U.html=E,U.icon=Tb,U.loadSpec=Vb,Object.defineProperty(U,Symbol.toStringTag,{value:"Module"})});
2374
+ */const R8=e=>!wV(e)&&typeof e.then=="function";class aZ extends D8{constructor(){super(...arguments),this._$Cwt=1073741823,this._$Cyt=[],this._$CK=new rZ(this),this._$CX=new iZ}render(...t){var n;return(n=t.find(r=>!R8(r)))!==null&&n!==void 0?n:pt}update(t,n){const r=this._$Cyt;let i=r.length;this._$Cyt=n;const a=this._$CK,o=this._$CX;this.isConnected||this.disconnected();for(let s=0;s<n.length&&!(s>this._$Cwt);s++){const l=n[s];if(!R8(l))return this._$Cwt=s,l;s<i&&l===r[s]||(this._$Cwt=1073741823,i=0,Promise.resolve(l).then(async c=>{for(;o.get();)await o.get();const u=a.deref();if(u!==void 0){const f=u._$Cyt.indexOf(l);f>-1&&f<u._$Cwt&&(u._$Cwt=f,u.setValue(c))}}))}return pt}disconnected(){this._$CK.disconnect(),this._$CX.pause()}reconnected(){this._$CK.reconnect(this),this._$CX.resume()}}const oZ=Ya(aZ);var sZ={"":["<em>","</em>"],_:["<strong>","</strong>"],"*":["<strong>","</strong>"],"~":["<s>","</s>"],"\n":["<br />"]," ":["<br />"],"-":["<hr />"]};function z8(e){return e.replace(RegExp("^"+(e.match(/^(\t| )+/)||"")[0],"gm"),"")}function Wl(e){return(e+"").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function bb(e,t){var n,r,i,a,o,s=/((?:^|\n+)(?:\n---+|\* \*(?: \*)+)\n)|(?:^``` *(\w*)\n([\s\S]*?)\n```$)|((?:(?:^|\n+)(?:\t| {2,}).+)+\n*)|((?:(?:^|\n)([>*+-]|\d+\.)\s+.*)+)|(?:!\[([^\]]*?)\]\(([^)]+?)\))|(\[)|(\](?:\(([^)]+?)\))?)|(?:(?:^|\n+)([^\s].*)\n(-{3,}|={3,})(?:\n+|$))|(?:(?:^|\n+)(#{1,6})\s*(.+)(?:\n+|$))|(?:`([^`].*?)`)|( \n\n*|\n{2,}|__|\*\*|[_*]|~~)/gm,l=[],c="",u=t||{},f=0;function h(p){var g=sZ[p[1]||""],y=l[l.length-1]==p;return g?g[1]?(y?l.pop():l.push(p),g[0|y]):g[0]:p}function d(){for(var p="";l.length;)p+=h(l[l.length-1]);return p}for(e=e.replace(/^\[(.+?)\]:\s*(.+)$/gm,function(p,g,y){return u[g.toLowerCase()]=y,""}).replace(/^\n+|\n+$/g,"");i=s.exec(e);)r=e.substring(f,i.index),f=s.lastIndex,n=i[0],r.match(/[^\\](\\\\)*\\$/)||((o=i[3]||i[4])?n='<pre class="code '+(i[4]?"poetry":i[2].toLowerCase())+'"><code'+(i[2]?' class="language-'+i[2].toLowerCase()+'"':"")+">"+z8(Wl(o).replace(/^\n+|\n+$/g,""))+"</code></pre>":(o=i[6])?(o.match(/\./)&&(i[5]=i[5].replace(/^\d+/gm,"")),a=bb(z8(i[5].replace(/^\s*[>*+.-]/gm,""))),o==">"?o="blockquote":(o=o.match(/\./)?"ol":"ul",a=a.replace(/^(.*)(\n|$)/gm,"<li>$1</li>")),n="<"+o+">"+a+"</"+o+">"):i[8]?n='<img src="'+Wl(i[8])+'" alt="'+Wl(i[7])+'">':i[10]?(c=c.replace("<a>",'<a href="'+Wl(i[11]||u[r.toLowerCase()])+'">'),n=d()+"</a>"):i[9]?n="<a>":i[12]||i[14]?n="<"+(o="h"+(i[14]?i[14].length:i[13]>"="?1:2))+">"+bb(i[12]||i[15],u)+"</"+o+">":i[16]?n="<code>"+Wl(i[16])+"</code>":(i[17]||i[1])&&(n=h(i[17]||"--"))),c+=r,c+=n;return(c+e.substring(f)+d()).replace(/^\n+|\n+$/g,"")}function cZ(e,t={}){const n=bb(e),r=new DOMParser().parseFromString(`<!DOCTYPE html><html><body><div>${n}</div></body></html>`,"text/html");r.normalize(),P8(r.body);for(const a of r.querySelectorAll("a[href]"))a.setAttribute("target","blank"),a.setAttribute("rel","noopener noreferrer"),a.setAttribute("href",Ko(a.getAttribute("href"),t.baseUrl));for(const a of r.querySelectorAll("img[src]"))a.setAttribute("src",Ko(a.getAttribute("src"),t.baseUrl));const i=r.body.removeChild(r.querySelector("body > div"));return i.className="snarkdown",i}function P8(e){if(e.nodeType!==3){if(e.nodeType!==1||/^(script|iframe|object|embed|svg)$/i.test(e.tagName))return e.remove();for(let t=e.attributes.length;t--;){const n=e.attributes[t].name;/^(class|id|name|href|src|alt|align|valign|(on[a-z]+))$/i.test(n)||e.attributes.removeNamedItem(n)}for(let t=e.childNodes.length;t--;)P8(e.childNodes[t])}}function lZ(e){e.stopPropagation(),e.preventDefault();const n=e.target.parentElement,r=n.parentElement,a=r.parentElement.querySelector(".panes"),o=[...r.children].findIndex(s=>s==n);for(const s of r.children)s.classList.remove("active-tab");for(const s of a.children)s.classList.remove("active-tab");r.children.item(o).classList.add("active-tab"),a.children.item(o).classList.add("active-tab")}var yb={exports:{}};yb.exports,function(e){var t=function(){var n=String.fromCharCode,r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$",a={};function o(l,c){if(!a[l]){a[l]={};for(var u=0;u<l.length;u++)a[l][l.charAt(u)]=u}return a[l][c]}var s={compressToBase64:function(l){if(l==null)return"";var c=s._compress(l,6,function(u){return r.charAt(u)});switch(c.length%4){default:case 0:return c;case 1:return c+"===";case 2:return c+"==";case 3:return c+"="}},decompressFromBase64:function(l){return l==null?"":l==""?null:s._decompress(l.length,32,function(c){return o(r,l.charAt(c))})},compressToUTF16:function(l){return l==null?"":s._compress(l,15,function(c){return n(c+32)})+" "},decompressFromUTF16:function(l){return l==null?"":l==""?null:s._decompress(l.length,16384,function(c){return l.charCodeAt(c)-32})},compressToUint8Array:function(l){for(var c=s.compress(l),u=new Uint8Array(c.length*2),f=0,h=c.length;f<h;f++){var d=c.charCodeAt(f);u[f*2]=d>>>8,u[f*2+1]=d%256}return u},decompressFromUint8Array:function(l){if(l==null)return s.decompress(l);for(var c=new Array(l.length/2),u=0,f=c.length;u<f;u++)c[u]=l[u*2]*256+l[u*2+1];var h=[];return c.forEach(function(d){h.push(n(d))}),s.decompress(h.join(""))},compressToEncodedURIComponent:function(l){return l==null?"":s._compress(l,6,function(c){return i.charAt(c)})},decompressFromEncodedURIComponent:function(l){return l==null?"":l==""?null:(l=l.replace(/ /g,"+"),s._decompress(l.length,32,function(c){return o(i,l.charAt(c))}))},compress:function(l){return s._compress(l,16,function(c){return n(c)})},_compress:function(l,c,u){if(l==null)return"";var f,h,d={},p={},g="",y="",v="",S=2,k=3,C=2,E=[],w=0,A=0,T;for(T=0;T<l.length;T+=1)if(g=l.charAt(T),Object.prototype.hasOwnProperty.call(d,g)||(d[g]=k++,p[g]=!0),y=v+g,Object.prototype.hasOwnProperty.call(d,y))v=y;else{if(Object.prototype.hasOwnProperty.call(p,v)){if(v.charCodeAt(0)<256){for(f=0;f<C;f++)w=w<<1,A==c-1?(A=0,E.push(u(w)),w=0):A++;for(h=v.charCodeAt(0),f=0;f<8;f++)w=w<<1|h&1,A==c-1?(A=0,E.push(u(w)),w=0):A++,h=h>>1}else{for(h=1,f=0;f<C;f++)w=w<<1|h,A==c-1?(A=0,E.push(u(w)),w=0):A++,h=0;for(h=v.charCodeAt(0),f=0;f<16;f++)w=w<<1|h&1,A==c-1?(A=0,E.push(u(w)),w=0):A++,h=h>>1}S--,S==0&&(S=Math.pow(2,C),C++),delete p[v]}else for(h=d[v],f=0;f<C;f++)w=w<<1|h&1,A==c-1?(A=0,E.push(u(w)),w=0):A++,h=h>>1;S--,S==0&&(S=Math.pow(2,C),C++),d[y]=k++,v=String(g)}if(v!==""){if(Object.prototype.hasOwnProperty.call(p,v)){if(v.charCodeAt(0)<256){for(f=0;f<C;f++)w=w<<1,A==c-1?(A=0,E.push(u(w)),w=0):A++;for(h=v.charCodeAt(0),f=0;f<8;f++)w=w<<1|h&1,A==c-1?(A=0,E.push(u(w)),w=0):A++,h=h>>1}else{for(h=1,f=0;f<C;f++)w=w<<1|h,A==c-1?(A=0,E.push(u(w)),w=0):A++,h=0;for(h=v.charCodeAt(0),f=0;f<16;f++)w=w<<1|h&1,A==c-1?(A=0,E.push(u(w)),w=0):A++,h=h>>1}S--,S==0&&(S=Math.pow(2,C),C++),delete p[v]}else for(h=d[v],f=0;f<C;f++)w=w<<1|h&1,A==c-1?(A=0,E.push(u(w)),w=0):A++,h=h>>1;S--,S==0&&(S=Math.pow(2,C),C++)}for(h=2,f=0;f<C;f++)w=w<<1|h&1,A==c-1?(A=0,E.push(u(w)),w=0):A++,h=h>>1;for(;;)if(w=w<<1,A==c-1){E.push(u(w));break}else A++;return E.join("")},decompress:function(l){return l==null?"":l==""?null:s._decompress(l.length,32768,function(c){return l.charCodeAt(c)})},_decompress:function(l,c,u){var f=[],h=4,d=4,p=3,g="",y=[],v,S,k,C,E,w,A,T={val:u(0),position:c,index:1};for(v=0;v<3;v+=1)f[v]=v;for(k=0,E=Math.pow(2,2),w=1;w!=E;)C=T.val&T.position,T.position>>=1,T.position==0&&(T.position=c,T.val=u(T.index++)),k|=(C>0?1:0)*w,w<<=1;switch(k){case 0:for(k=0,E=Math.pow(2,8),w=1;w!=E;)C=T.val&T.position,T.position>>=1,T.position==0&&(T.position=c,T.val=u(T.index++)),k|=(C>0?1:0)*w,w<<=1;A=n(k);break;case 1:for(k=0,E=Math.pow(2,16),w=1;w!=E;)C=T.val&T.position,T.position>>=1,T.position==0&&(T.position=c,T.val=u(T.index++)),k|=(C>0?1:0)*w,w<<=1;A=n(k);break;case 2:return""}for(f[3]=A,S=A,y.push(A);;){if(T.index>l)return"";for(k=0,E=Math.pow(2,p),w=1;w!=E;)C=T.val&T.position,T.position>>=1,T.position==0&&(T.position=c,T.val=u(T.index++)),k|=(C>0?1:0)*w,w<<=1;switch(A=k){case 0:for(k=0,E=Math.pow(2,8),w=1;w!=E;)C=T.val&T.position,T.position>>=1,T.position==0&&(T.position=c,T.val=u(T.index++)),k|=(C>0?1:0)*w,w<<=1;f[d++]=n(k),A=d-1,h--;break;case 1:for(k=0,E=Math.pow(2,16),w=1;w!=E;)C=T.val&T.position,T.position>>=1,T.position==0&&(T.position=c,T.val=u(T.index++)),k|=(C>0?1:0)*w,w<<=1;f[d++]=n(k),A=d-1,h--;break;case 2:return y.join("")}if(h==0&&(h=Math.pow(2,p),p++),f[A])g=f[A];else if(A===d)g=S+S.charAt(0);else return null;y.push(g),f[d++]=S+g.charAt(0),h--,S=g,h==0&&(h=Math.pow(2,p),p++)}}};return s}();e!=null&&(e.exports=t)}(yb);var U8=yb.exports;function uZ(){const e=typeof process<"u"?require("util").TextEncoder:TextEncoder;return new e}let j8;function fZ(){let e,t=[];for(let n=0;n<256;n++){e=n;for(let r=0;r<8;r++)e=e&1?3988292384^e>>>1:e>>>1;t[n]=e}return t}function hZ(e){j8??(j8=fZ());let t=-1;const n=uZ().encode(e);for(let r=0;r<n.length;r++)t=t>>>8^j8[(t^n[r])&255];return(t^-1)>>>0}function H8(e){return("00000000"+hZ(e).toString(16)).slice(-8)}function G8(e){const t=U8.compressToEncodedURIComponent(JSON.stringify(e));return"#"+t+H8(t)}function dZ(e){if(!e||e.length<10)throw new Error("The state string in the URL is too short.");const t=e.slice(1,-8),n=e.slice(-8);if(H8(t)!==n)throw new Error("The state string in the URL is corrupted.");return JSON.parse(U8.decompressFromEncodedURIComponent(t))}let ao;function pZ(e){for(const t of e.genomeSpy.getNamedScaleResolutions().values())t.isZoomable()&&t.resetZoom();e.storeHelper.dispatch([...e.provenance.isUndoable()?[Ur.ActionCreators.jumpToPast(0)]:[],Is.actions.restoreDefaultVisibilities()])}async function vb(e,t){try{e.actions&&t.provenance.dispatchBookmark(e.actions),t.storeHelper.dispatch(Is.actions.setViewSettings(e.viewSettings));const n=[];for(const[r,i]of Object.entries(e.scaleDomains??{})){const a=t.genomeSpy.getNamedScaleResolutions().get(r);a?n.push(a.zoomTo(i)):console.warn(`Cannot restore scale domain. Unknown name: ${r}`)}await Promise.all(n)}catch(n){console.error(n),Wt(z`<p>Cannot restore the state:</p><p>${n}</p>`),t.provenance.activateState(0)}}async function Xl(e,t,n={}){await vb(e,t),(ao||e.notes||n.mode=="shared"&&(e.name||e.notes))&&await gZ(e,t,n)}async function gZ(e,t,n={}){ao??(ao=Ka("tour",t.appContainer)),await mZ(e,t,n)}async function mZ(e,t,n){const r=n.database,i=r?await r.getNames():[],a=i.indexOf(e.name),o=r?` ${a+1} of ${i.length}`:"",s=`${n.mode=="shared"?"Shared bookmark":"Bookmark"}${o}: ${e.name??"Unnamed"}`,l=e.notes?cZ(e.notes,{baseUrl:t.genomeSpy.spec.baseUrl}):z`<span class="no-notes">No notes provided</span>`,c=async()=>{if(ao==null||ao.close(),ao=void 0,n.mode=="tour"){const g=n.afterTourBookmark;if(typeof g=="string"){const y=await n.database.get(g);if(!y)throw new Error(`No such bookmark: ${g}`);vb(y,t)}else g===null||pZ(t)}},u=async g=>{const y=await r.get(i[g]);Xl(y,t,n),t.appContainer.querySelector("canvas").focus()},f=async()=>{if(await wb(t.localBookmarkDatabase,e,"add"))try{await t.localBookmarkDatabase.put(e)}catch(g){console.warn(g),Wt(`Cannot import bookmark: ${g}`)}},h=z`<button class="btn" @click="${c}">${n.mode=="tour"?"End tour":"Close"}</button> ${n.mode=="shared"&&t.localBookmarkDatabase?z`<button class="btn" @click="${f}">${ke($S).node[0]} Import bookmark</button>`:ne} ${r?z`<button class="btn" @click="${()=>u(a-1)}" ?disabled="${a<=0}">${ke(mG).node[0]} Previous</button> <button class="btn" @click="${()=>u(a+1)}" ?disabled="${a>=i.length-1}">Next ${ke(IG).node[0]}</button>`:ne}`,p=z`<button title="Collapse" class="btn collapse" @click="${g=>g.target.closest(".gs-modal").classList.toggle("collapsed")}">${ke(yG).node[0]}</button><div class="modal-title">${s}</div><div class="modal-body markdown" style="max-width:600px">${l}</div><div class="modal-buttons">${h}</div>`;Bt(p,ao.content)}function $8(e,t){const n=JSON.stringify(e,void 0,2),r=window.location,i=r.origin+r.pathname+r.search+(t?"#bookmark:"+e.name.replaceAll(" ","-"):G8(e));Wt(z`<div class="gs-tabs" style="width:600px"><ul class="tabs" @click="${lZ}"><li class="active-tab"><button>URL</button></li><li><button>JSON</button></li></ul><div class="panes"><div class="gs-form-group active-tab"><label for="bookmark-url">Here's a link for you:</label><div class="copy-url"><input id="bookmark-url" type="text" .value="${i}"> <button @click="${o=>navigator.clipboard.writeText(i).then(()=>o.target.dispatchEvent(SV())).catch(()=>Wt("Failed to copy!"))}">Copy</button></div><small>The bookmark URL contains all the bookmarked data, including the possible notes, which will be shown when the link is opened.</small></div><div class="gs-form-group"><textarea id="bookmark-json" style="height:250px">
2375
+ ${n}</textarea> <small>The JSON-formatted bookmark is currently available for development purposes.</small></div></div></div>`,{title:"Share a bookmark",okLabel:"Close"})}function wb(e,t,n){const r={add:"Add bookmark",edit:"Edit bookmark",share:"Share the current view state as a bookmark"}[n],i=(l,c)=>z`<div class="modal-title">${r}</div><div class="modal-body" style="width:500px">${n=="edit"?z`<div class="gs-alert warning">${ke(wG).node[0]} The current visualization state will be updated to the bookmark you are editing.</div>`:ne} ${n=="share"?z`<div class="gs-alert info">${ke(YS).node[0]} <span>You can add an optional title and notes, which will be shown to the recipient when the bookmark link is opened.</span></div>`:ne}<div class="gs-form-group"><label for="bookmark-title">Title</label> <input id="bookmark-title" type="text" ?required="${n=="add"||n=="edit"}" .value="${t.name??""}" .placeholder="${n=="share"?"Add an optional title":""}" @change="${u=>{t.name=V8(u.target.value)}}"></div><div class="gs-form-group"><label for="bookmark-notes">Notes</label> <textarea id="bookmark-notes" rows="4" .value="${t.notes??""}" .placeholder="${n=="share"?"... and notes":""}" @change="${u=>{t.notes=V8(u.target.value)}}"></textarea> <small>Notes will be shown when the bookmark is loaded. You can use <a href="https://www.markdownguide.org/basic-syntax/">markdown</a> for formatting.</small></div></div><div class="modal-buttons"><button class="btn btn-cancel" @click="${l}">Cancel</button> <button class="btn btn-primary" @click="${c}">${n=="share"?z`${ke(qm).node[0]} Create a link`:"Save"}</button></div>`,a=t.name,o=()=>!!t.name,s=Ka();return new Promise(l=>{const c=()=>{s.close(),l(!1)},u=async()=>{if(!o()){Wt("Name is missing!",{title:"Error"});return}let h=!0;e&&!(n&&t.name==a)&&await e.get(t.name)&&(h=await Wt(z`A bookmark with the name <em>${t.name}</em> already exists. It will be overwritten.`,{title:"Bookmark already exists",cancelButton:!0})),h&&(s.close(),l(!0))},f=()=>{s.close(),l(!0)};Bt(i(c,n=="share"?f:u),s.content),s.content.querySelector("#bookmark-title").focus()})}function V8(e){if(e!==void 0&&(e=e.trim(),e.length))return e}class bZ extends sr{constructor(){super(),this.app=void 0}connectedCallback(){super.connectedCallback(),this.dispatchEvent(B8("app",t=>{this.app=t}))}createRenderRoot(){return this}_createBookmarkWithCurrentState(){const t={name:void 0,timestamp:Date.now(),actions:this.app.provenance.getBookmarkableActionHistory(),scaleDomains:{}},n=this.app.storeHelper.state.viewSettings;Object.keys(n.visibilities).length&&(t.viewSettings=n);for(const[r,i]of this.app.genomeSpy.getNamedScaleResolutions().entries())i.isZoomable()&&(t.scaleDomains[r]=i.getComplexDomain());return t}async _shareCurrentState(){const t=this._createBookmarkWithCurrentState();await wb(void 0,t,"share")&&$8(t,!1)}async _addBookmark(t,n){const r=n?await t.get(n):void 0,i=!!r,a=this._createBookmarkWithCurrentState();if(a.name??(a.name=r==null?void 0:r.name),a.notes??(a.notes=r==null?void 0:r.notes),await wb(t,a,i?"edit":"add"))try{await t.put(a,r==null?void 0:r.name),this.requestUpdate()}catch(o){Wt(`${o}`,{title:"Cannot save the bookmark!"})}}async _loadBookmark(t,n){const r=await t.get(n);r&&Xl(r,this.app,{database:t})}_createContextMenu(t,n,r){r.stopPropagation();const i=r.target.closest("li"),a=()=>Wt(z`The bookmark <em>${n}</em> will be deleted.`,{title:"Are you sure?",cancelButton:!0}).then(async l=>{l&&(await t.delete(n),this.requestUpdate())}),o=[],s=t==this.app.globalBookmarkDatabase;s||(o.push({label:"Edit and replace...",icon:NG,callback:()=>this._addBookmark(t,n)}),o.push({label:"Delete",icon:ZS,callback:a})),o.push({label:"Share...",icon:qm,callback:async()=>$8(await t.get(n),s)}),d8({items:o},i,"right-start")}async _makeBookmarkMenuItems(t,n){const i=(await t.getNames()).map(a=>({label:a,callback:()=>this._loadBookmark(t,a),ellipsisCallback:o=>this._createContextMenu(t,a,o)}));return i.length?[{type:"divider"},{label:n,type:"header"},...i].map(a=>f8(a)):ne}_getBookmarks(){const t=(n,r)=>n?oZ(this._makeBookmarkMenuItems(n,r),z`Loading...`):ne;return[t(this.app.globalBookmarkDatabase,"Bookmarks on the server"),t(this.app.localBookmarkDatabase,"Bookmarks in the web browser")]}render(){const t=this.app.localBookmarkDatabase,n=t?z`<li><a @click="${()=>this._addBookmark(t)}">Add bookmark...</a></li>`:ne,r=t||this.app.globalBookmarkDatabase?z`<div class="dropdown bookmark-dropdown"><button class="tool-btn" title="Bookmarks" @click="${i=>{gb(i)&&this.requestUpdate()}}">${ke($S).node[0]}</button><ul class="gs-dropdown-menu">${n} ${this._getBookmarks()}</ul></div>`:ne;return z`<div class="btn-group">${r} <button class="tool-btn" title="Share" @click="${()=>this._shareCurrentState()}">${ke(qm).node[0]}</button></div>`}}customElements.define("genome-spy-bookmark-button",bZ);class yZ extends sr{constructor(){super(),this.app=void 0,this.appInitialized=!1}static get properties(){return{app:{type:Object},appInitialized:{type:Boolean}}}createRenderRoot(){return this}_getToolButtons(){const t=this.app.provenance,n=[];t.isEnabled()&&n.push(z`<genome-spy-provenance-buttons .provenance="${t}"></genome-spy-provenance-buttons>`),n.push(z`<genome-spy-view-visibility></genome-spy-view-visibility>`),n.push(z`<genome-spy-bookmark-button></genome-spy-bookmark-button>`);const r=this.app.config.description?rn(this.app.config.description):[];return r.length>1&&n.push(z`<button class="tool-btn" title="Show a description of the visualization" @click="${()=>Wt(z`${r.slice(1).map(i=>z`<p>${i}</p>`)}`,{title:r[0]})}">${ke(YS).node[0]}</button>`),r.length>0&&n.push(z`<span class="vis-title">${r[0]}</span>`),n.push(z`<span class="spacer"></span> <a class="version" href="https://github.com/genome-spy/genome-spy/releases/tag/v${F8.version}">v${F8.version}</a> ${this.app.appContainer.requestFullscreen?z`<button class="tool-btn" title="Fullscreen" @click="${()=>this.app.toggleFullScreen()}">${ke(MG).node[0]}</button>`:ne} <button class="tool-btn" title="Help" @click="${()=>window.open("https://genomespy.app/docs/sample-collections/analyzing/","_blank")}">${ke(EG).node[0]}</button>`),n}render(){const t=this.app.genomeSpy;return z`<nav class="gs-toolbar"><a href="https://genomespy.app" target="_blank" class="logo"><img title="GenomeSpy" alt="GenomeSpy" src="${N8}"> </a>${this.appInitialized&&M8(t.viewRoot)?z`<genome-spy-search-field .app="${this.app}"></genome-spy-search-field>`:ne} ${this._getToolButtons()}</nav>`}}customElements.define("genome-spy-toolbar",yZ);class vZ{constructor(t){this.storeHelper=t,this._reducers={},this.actionInfoSources=[],this._reducer=void 0,t.addReducer("provenance",(n,r)=>this._reducer?this._reducer(n,r):n??{})}addReducer(t,n){this._reducers[t]=n;const r=a=>Object.keys(this._reducers).some(o=>a.type.startsWith(o)),i=(a,o)=>r(o)?o:a??null;this._reducer=rQ(j1({...this._reducers,lastAction:i}),{ignoreInitialState:!0,filter:r}),this.storeHelper.dispatch({type:"@@redux/REPLACE"+Math.random().toString(36).substring(7).split("").join(".")})}get _storeState(){return this.storeHelper.store.getState()}get _provenanceState(){return this._storeState.provenance}isEnabled(){return!!this.getPresentState()}getPresentState(){return this._provenanceState.present}addActionInfoSource(t){this.actionInfoSources.push(t)}getActionInfo(t){for(const n of this.actionInfoSources){const r=n(t);if(r)return r}}dispatchBookmark(t){this.storeHelper.dispatch([...this.isUndoable()?[Ur.ActionCreators.jumpToPast(0)]:[],...t])}isRedoable(){return this.isEnabled()&&this._provenanceState.future.length>0}redo(){this.storeHelper.dispatch(Ur.ActionCreators.redo())}isUndoable(){return this.isEnabled()&&this._provenanceState.past.length>0}undo(){this.storeHelper.dispatch(Ur.ActionCreators.undo())}isAtInitialState(){return!this.isUndoable()}isEmpty(){const t=this._provenanceState;return!this.isEnabled()||t.past.length+t.future.length<=0}activateState(t){const n=this.getCurrentIndex();t<n?this.storeHelper.dispatch(Ur.ActionCreators.jumpToPast(t)):t>n&&this.storeHelper.dispatch(Ur.ActionCreators.jumpToFuture(t-n-1))}getCurrentIndex(){var t;return(t=this._provenanceState.past)==null?void 0:t.length}getActionHistory(){const t=this._provenanceState;return t.present&&[...t.past,t.present].map(n=>n.lastAction)}getFullActionHistory(){const t=this._provenanceState;return[...t.past,t.present,...t.future].map(n=>n.lastAction)}getBookmarkableActionHistory(){var t;return(t=this.getActionHistory())==null?void 0:t.slice(1)}}function*wZ(e,t=n=>+n){const n=e.length,r=new Vc,i=new Array(n).fill(0);for(const[o,s]of e.entries())s.length&&r.push(o,t(s[0]));let a=0;for(;(a=r.pop())!==void 0;){const o=e[a];let s=i[a];if(yield o[s++],s<o.length){const c=t(o[s]);r.push(a,c),i[a]=s}}}const xZ="sampleCount";class AZ extends We{constructor(n,r){super();Fe(this,ou);this.view=r;const i=r.context.animator;if(this.provenance=EZ(r),!this.provenance)throw new Error("No SampleView was found!");this.provenance.storeHelper.subscribe(a=>{ce(this,ou,Fb)&&i.requestTransition(()=>{this.reset(),this._mergeAndPropagate(Y1(a)),this.complete()})}),this.contextObject=void 0}initialize(){this.contextObject=Object.create(super.getGlobalObject());const n=this.view.getEncoding().x;if(pa(n))this.xAccessor=_e(n.field);else throw new Error("Crash!")}handle(n){}getGlobalObject(){return this.contextObject}_getCollector(){if(this.parent instanceof $c)return this.parent;throw new Error("MergeFacetsTransform must be a direct child of a Collector")}complete(){ce(this,ou,Fb)&&(this._mergeAndPropagate(this.provenance.getPresentState()[_s]),super.complete())}_mergeAndPropagate(n){const r=[...Z1(n.rootGroup)].filter(i=>z6(Gt(i)));for(const[i,a]of r.entries()){const o=Gt(a);if(z6(o)){this.contextObject[xZ]=o.samples.length,this.beginBatch({type:"facet",facetId:[i]});const s=o.samples,l=this._getCollector(),c=wZ(s.map(u=>l.facetBatches.get([u])??[]),this.xAccessor);for(const u of c)this._propagate(u)}}this._updateScales()}setParent(n){super.setParent(n)}_updateScales(){const n=new Set;this.view.visit(r=>{if(r instanceof Je&&r.mark.encoding.y){const i=r.getScaleResolution("y");i&&n.add(i)}});for(const r of n)r.reconfigure()}}ou=new WeakSet,Fb=function(){return this.view.isVisible()};function EZ(e){for(const t of e.getAncestors())if(t instanceof ob)return t.provenance}var SZ="BATCHING_REDUCER.BATCH";function CZ(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:SZ;return{type:t,meta:{batch:!0},payload:e}}function _Z(e){return function t(n,r){return r&&r.meta&&r.meta.batch?r.payload.reduce(t,n):e(n,r)}}class kZ{constructor(t){this._reducers=t??{},this.store=dY({reducer:{}}),this._listeners=new Set,this.store.subscribe(()=>{const n=this.store.getState();for(const r of this._listeners)r(n)})}get state(){return this.store.getState()}addReducer(t,n){this._reducers[t]=n,this.store.replaceReducer(_Z(j1(this._reducers)))}subscribe(t){this._listeners.add(t)}unsubscribe(t){this._listeners.delete(t)}dispatch(t){Array.isArray(t)?this.store.dispatch(CZ(t)):this.store.dispatch(t)}getDispatcher(){return t=>this.dispatch(t)}}class DZ extends _8{constructor(t){super(),this.bookmarks=t,this.names=t.map(n=>n.name)}async getNames(){return this.names}async get(t){return this.bookmarks.find(n=>n.name==t)}}iA.mergeFacets=AZ;class Y8{constructor(t,n,r={}){const i=this;this.config=n,this.storeHelper=new kZ,this.storeHelper.addReducer("viewSettings",Is.reducer),this.provenance=new vZ(this.storeHelper),this._initializationListeners=[],this.toolbarRef=I8(),this.appContainer=t,this._configureContainer(),this.localBookmarkDatabase=typeof n.specId=="string"?new $Q(n.specId):void 0,this.globalBookmarkDatabase=void 0,Bt(z`<div class="genome-spy-app"><genome-spy-toolbar ${T8(i.toolbarRef)} .app="${i}"></genome-spy-toolbar><div class="genome-spy-container"></div></div>`,i.appContainer),i.appContainer.querySelector(".genome-spy-app").addEventListener("query-dependency",s=>{s.detail.name=="app"&&(s.detail.setter(i),s.stopPropagation())});const a=s=>this.appContainer.getElementsByClassName(s)[0];this.genomeSpy=new OS(a("genome-spy-container"),this.config,r),this.genomeSpy.viewFactory.addViewType(NQ,(s,l,c,u)=>new ob(s,l,c,u,this.provenance));const o=this.genomeSpy.viewVisibilityPredicate;this.genomeSpy.viewVisibilityPredicate=s=>{var l;return((l=this.storeHelper.state.viewSettings)==null?void 0:l.visibilities[s.name])??o(s)}}addInitializationListener(t){this._initializationListeners?this._initializationListeners.push(t):t()}toggleFullScreen(){document.fullscreenElement?document.exitFullscreen&&document.exitFullscreen():this.appContainer.requestFullscreen()}isFullPage(){return this.appContainer==document.body}async launch(){var o;const t=(o=this.config.bookmarks)!=null&&o.remote?rc({baseURL:this.config.baseUrl}).load(this.config.bookmarks.remote.url).then(s=>Promise.resolve(JSON.parse(s))):Promise.resolve([]);if(!await this.genomeSpy.launch())return;this.appContainer.querySelector("canvas").setAttribute("tabindex","-1"),this.storeHelper.subscribe(id(s=>{var l;return(l=s.viewSettings)==null?void 0:l.visibilities},(s,l)=>{var u,f;this.genomeSpy.viewRoot._invalidateCacheByPrefix("size","progeny"),(f=(u=this.getSampleView())==null?void 0:u.summaryViews)==null||f._invalidateCacheByPrefix("size","self");const c=this.genomeSpy.viewRoot.context;c.requestLayoutReflow(),c.animator.requestRender()},this.storeHelper.store.getState()));try{const s=await t;s.length&&(this.globalBookmarkDatabase=new DZ(s))}catch(s){throw new Error(`Cannot load remote bookmarks: ${s}`)}try{await this._restoreStateFromUrlOrBookmark()}catch(s){Wt(s.toString())}this.storeHelper.subscribe(()=>{this._updateStateToUrl()}),window.addEventListener("hashchange",()=>this._restoreStateFromUrl().catch(s=>Wt(s.toString())),!1);const r=hs(()=>this._updateStateToUrl(),500,!1);for(const[,s]of this.genomeSpy.getNamedScaleResolutions())s.isZoomable()&&s.addEventListener("domain",r);const i=this.toolbarRef.value;i.appInitialized=!0;const a=rn(this.genomeSpy.spec.description??[]);this.isFullPage()&&a.length>0&&(document.title="GenomeSpy - "+a);for(const s of this._initializationListeners)s();this._initializationListeners=void 0}async _restoreStateFromUrlOrBookmark(){var i;const t=(i=this.config.bookmarks)==null?void 0:i.remote,n=this.globalBookmarkDatabase;if(!await this._restoreStateFromUrl()&&t&&n){const a=t.initialBookmark??(t.tour&&(await n.getNames())[0]);if(a){const o=await n.get(a);if(!o)throw new Error(`No such bookmark: ${a}`);t.tour?await Xl(o,this,{mode:"tour",database:n,afterTourBookmark:t.afterTourBookmark}):await vb(o,this)}}}_updateStateToUrl(){const t={actions:[],scaleDomains:{}},n=this.provenance.getBookmarkableActionHistory();n!=null&&n.length&&(t.actions=n);for(const[a,o]of this.genomeSpy.getNamedScaleResolutions().entries())o.isZoomed()||(t.scaleDomains[a]=o.getComplexDomain());const r=this.storeHelper.state.viewSettings;Object.keys(r.visibilities).length&&(t.viewSettings=r);const i=t.actions.length||Object.keys(t.scaleDomains).length||t.viewSettings?G8(t):"";window.history.replaceState(void 0,document.title,window.location.pathname+window.location.search+i)}async _restoreStateFromUrl(){var r,i;const t=window.location.hash,n=(r=t.match(/^#bookmark:(.+)$/))==null?void 0:r[1];if(n){const a=(i=this.config.bookmarks)==null?void 0:i.remote,o=this.globalBookmarkDatabase;if(a&&o){const s=(await o.getNames()).find(l=>l.replaceAll(" ","-")==n);if(s){const l=await o.get(s);if(!l)throw new Error(`No such bookmark: ${s}`);return await Xl(l,this,{mode:"tour",database:o}),!0}else throw new Error(`No such bookmark: ${n}`)}}if(t&&t.length>0)try{const a=dZ(t);return Xl(a,this,{mode:"shared"}),!0}catch(a){console.error(a),Wt(z`<p>Cannot restore the state:</p><p>${a}</p>`)}return!1}_configureContainer(){this.isFullPage()?(this.appContainer.style.margin="0",this.appContainer.style.padding="0",this.appContainer.style.overflow="hidden",IZ(rG)):this.appContainer.style.position="relative"}getSampleView(){var n;if(!((n=this.genomeSpy)!=null&&n.viewRoot))return;let t;return this.genomeSpy.viewRoot.visit(r=>{if(r instanceof ob)return t=r,xa}),t}}function IZ(e){const t=document.querySelector("head"),n=document.createElement("link");n.setAttribute("rel","shortcut icon"),n.setAttribute("href",e),t.appendChild(n)}async function TZ(e,t,n={}){let r;if(ze(e)){if(r=document.querySelector(e),!r)throw new Error(`No such element: ${e}`)}else if(e instanceof HTMLElement)r=e;else throw new Error(`Invalid element: ${e}`);let i;try{const a=Ht(t)?t:await Q8(t);a.baseUrl??(a.baseUrl=""),a.width??(a.width="container"),a.padding??(a.padding=10);const o=new Y8(r,a,n);i=o.genomeSpy,MZ(i,n),await o.launch()}catch(a){r.innerText=a.toString(),console.error(a)}return{finalize(){for(i.destroy();r.firstChild;)r.firstChild.remove()},addEventListener(a,o){const s=i._eventListeners;let l=s.get(a);l||(l=new Set,s.set(a,l)),l.add(o)},removeEventListener(a,o){var l;(l=i._eventListeners.get(a))==null||l.delete(o)},getScaleResolutionByName(a){return i.getNamedScaleResolutions().get(a)}}}function MZ(e,t){t.namedDataProvider&&e.registerNamedDataProvider(t.namedDataProvider)}async function Q8(e){let t;try{t=JSON.parse(await rc().load(e))}catch(n){throw new Error(`Could not load or parse configuration: ${e}, reason: ${n.message}`)}if(!t.baseUrl){const n=e.match(/^[^?#]*\//);t.baseUrl=n&&n[0]||"./"}return t}le.GenomeSpy=OS,le.GenomeSpyApp=Y8,le.embed=TZ,le.html=z,le.icon=N8,le.loadSpec=Q8,Object.defineProperty(le,Symbol.toStringTag,{value:"Module"})});