@genome-spy/core 0.43.3 → 0.45.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bundle/index.es.js +5231 -4324
- package/dist/bundle/index.js +197 -85
- package/dist/schema.json +723 -104
- package/dist/src/data/collector.d.ts.map +1 -1
- package/dist/src/data/collector.js +4 -2
- package/dist/src/data/flowOptimizer.test.js +12 -3
- package/dist/src/data/sources/dataUtils.d.ts.map +1 -1
- package/dist/src/data/sources/dataUtils.js +3 -1
- package/dist/src/data/sources/lazy/axisTickSource.d.ts +1 -1
- package/dist/src/data/sources/lazy/axisTickSource.d.ts.map +1 -1
- package/dist/src/data/sources/lazy/axisTickSource.js +2 -2
- package/dist/src/data/sources/lazy/bigBedSource.d.ts +1 -1
- package/dist/src/data/sources/lazy/bigBedSource.d.ts.map +1 -1
- package/dist/src/data/sources/lazy/bigBedSource.js +52 -20
- package/dist/src/data/sources/lazy/bigWigSource.d.ts +6 -1
- package/dist/src/data/sources/lazy/bigWigSource.d.ts.map +1 -1
- package/dist/src/data/sources/lazy/bigWigSource.js +33 -9
- package/dist/src/data/sources/lazy/singleAxisLazySource.d.ts +1 -1
- package/dist/src/data/sources/lazy/singleAxisLazySource.d.ts.map +1 -1
- package/dist/src/data/sources/lazy/singleAxisLazySource.js +1 -3
- package/dist/src/data/sources/lazy/singleAxisWindowedSource.d.ts +13 -14
- package/dist/src/data/sources/lazy/singleAxisWindowedSource.d.ts.map +1 -1
- package/dist/src/data/sources/lazy/singleAxisWindowedSource.js +70 -48
- package/dist/src/data/sources/sequenceSource.d.ts.map +1 -1
- package/dist/src/data/sources/sequenceSource.js +14 -5
- package/dist/src/data/sources/sequenceSource.test.js +23 -5
- package/dist/src/data/sources/urlSource.d.ts.map +1 -1
- package/dist/src/data/sources/urlSource.js +15 -2
- package/dist/src/data/transforms/aggregate.d.ts.map +1 -1
- package/dist/src/data/transforms/aggregate.js +5 -2
- package/dist/src/data/transforms/filterScoredLabels.js +1 -1
- package/dist/src/encoder/encoder.d.ts +2 -4
- package/dist/src/encoder/encoder.d.ts.map +1 -1
- package/dist/src/encoder/encoder.js +20 -10
- package/dist/src/encoder/encoder.test.js +3 -0
- package/dist/src/genomeSpy.d.ts +8 -5
- package/dist/src/genomeSpy.d.ts.map +1 -1
- package/dist/src/genomeSpy.js +121 -42
- package/dist/src/gl/glslScaleGenerator.d.ts +23 -3
- package/dist/src/gl/glslScaleGenerator.d.ts.map +1 -1
- package/dist/src/gl/glslScaleGenerator.js +137 -42
- package/dist/src/gl/webGLHelper.d.ts.map +1 -1
- package/dist/src/gl/webGLHelper.js +5 -7
- package/dist/src/index.d.ts +1 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +1 -1
- package/dist/src/marks/link.common.glsl.js +2 -0
- package/dist/src/marks/link.d.ts.map +1 -1
- package/dist/src/marks/link.js +19 -9
- package/dist/src/marks/link.vertex.glsl.js +1 -1
- package/dist/src/marks/mark.d.ts +25 -20
- package/dist/src/marks/mark.d.ts.map +1 -1
- package/dist/src/marks/mark.js +234 -129
- package/dist/src/marks/point.common.glsl.js +1 -1
- package/dist/src/marks/point.d.ts +1 -4
- package/dist/src/marks/point.d.ts.map +1 -1
- package/dist/src/marks/point.js +31 -23
- package/dist/src/marks/point.vertex.glsl.js +1 -1
- package/dist/src/marks/rect.common.glsl.js +2 -0
- package/dist/src/marks/rect.d.ts.map +1 -1
- package/dist/src/marks/rect.js +12 -12
- package/dist/src/marks/rect.vertex.glsl.js +1 -1
- package/dist/src/marks/rule.common.glsl.js +1 -1
- package/dist/src/marks/rule.js +2 -2
- package/dist/src/marks/text.common.glsl.js +1 -1
- package/dist/src/marks/text.d.ts.map +1 -1
- package/dist/src/marks/text.js +17 -9
- package/dist/src/spec/channel.d.ts +4 -3
- package/dist/src/spec/data.d.ts +11 -10
- package/dist/src/spec/mark.d.ts +28 -46
- package/dist/src/spec/parameter.d.ts +127 -0
- package/dist/src/spec/root.d.ts +1 -0
- package/dist/src/spec/scale.d.ts +2 -1
- package/dist/src/spec/title.d.ts +5 -4
- package/dist/src/spec/view.d.ts +20 -5
- package/dist/src/styles/genome-spy.css.d.ts +1 -1
- package/dist/src/styles/genome-spy.css.d.ts.map +1 -1
- package/dist/src/styles/genome-spy.css.js +52 -5
- package/dist/src/styles/genome-spy.scss +63 -10
- package/dist/src/styles/update.sh +6 -0
- package/dist/src/tooltip/dataTooltipHandler.js +1 -1
- package/dist/src/tooltip/refseqGeneTooltipHandler.js +1 -1
- package/dist/src/tooltip/tooltipHandler.d.ts +1 -1
- package/dist/src/tooltip/tooltipHandler.d.ts.map +1 -1
- package/dist/src/tooltip/tooltipHandler.ts +1 -1
- package/dist/src/types/embedApi.d.ts +6 -0
- package/dist/src/types/scaleResolutionApi.d.ts +7 -3
- package/dist/src/types/viewContext.d.ts +2 -3
- package/dist/src/utils/debounce.d.ts +2 -2
- package/dist/src/utils/debounce.d.ts.map +1 -1
- package/dist/src/utils/debounce.js +5 -2
- package/dist/src/utils/expression.d.ts +2 -2
- package/dist/src/utils/expression.d.ts.map +1 -1
- package/dist/src/utils/expression.js +3 -3
- package/dist/src/utils/formatObject.d.ts +2 -2
- package/dist/src/utils/formatObject.d.ts.map +1 -1
- package/dist/src/utils/formatObject.js +2 -2
- package/dist/src/utils/inputBinding.d.ts +5 -0
- package/dist/src/utils/inputBinding.d.ts.map +1 -0
- package/dist/src/utils/inputBinding.js +115 -0
- package/dist/src/utils/ui/tooltip.js +1 -1
- package/dist/src/view/axisView.js +3 -3
- package/dist/src/view/paramMediator.d.ts +108 -0
- package/dist/src/view/paramMediator.d.ts.map +1 -0
- package/dist/src/view/paramMediator.js +337 -0
- package/dist/src/view/paramMediator.test.js +211 -0
- package/dist/src/view/scaleResolution.d.ts +8 -18
- package/dist/src/view/scaleResolution.d.ts.map +1 -1
- package/dist/src/view/scaleResolution.js +225 -126
- package/dist/src/view/scaleResolution.test.js +7 -7
- package/dist/src/view/unitView.d.ts.map +1 -1
- package/dist/src/view/unitView.js +10 -3
- package/dist/src/view/view.d.ts +4 -1
- package/dist/src/view/view.d.ts.map +1 -1
- package/dist/src/view/view.js +21 -7
- package/dist/src/view/viewFactory.d.ts.map +1 -1
- package/dist/src/view/viewFactory.js +45 -0
- package/dist/src/view/viewUtils.d.ts +5 -1
- package/dist/src/view/viewUtils.d.ts.map +1 -1
- package/dist/src/view/viewUtils.js +9 -4
- package/package.json +16 -17
- package/dist/src/paramBroker.d.ts +0 -30
- package/dist/src/paramBroker.d.ts.map +0 -1
- package/dist/src/paramBroker.js +0 -102
package/dist/bundle/index.js
CHANGED
|
@@ -1,25 +1,45 @@
|
|
|
1
|
-
(function(
|
|
2
|
-
\r]`),n=e.charCodeAt(0);function r(
|
|
3
|
-
`)}function s(
|
|
4
|
-
`)}function u(
|
|
5
|
-
`)}function l(c){return c.map(f).join(e)}function f(c){return c==null?"":c instanceof Date?G_(c):t.test(c+="")?'"'+c.replace(/"/g,'""')+'"':c}return{parse:r,parseRows:i,format:o,formatBody:s,formatRows:u,formatRow:l,formatValue:f}}var H_=im(" "),V_=H_.parseRows;function j_(e){return e}function q_(e){if(e==null)return j_;var t,n,r=e.scale[0],i=e.scale[1],a=e.translate[0],o=e.translate[1];return function(s,u){u||(t=n=0);var l=2,f=s.length,c=new Array(f);for(c[0]=(t+=s[0])*r+a,c[1]=(n+=s[1])*i+o;l<f;)c[l]=s[l],++l;return c}}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 W_(e,t){return typeof t=="string"&&(t=e.objects[t]),t.type==="GeometryCollection"?{type:"FeatureCollection",features:t.geometries.map(function(n){return am(e,n)})}:am(e,t)}function am(e,t){var n=t.id,r=t.bbox,i=t.properties==null?{}:t.properties,a=om(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 om(e,t){var n=q_(e.transform),r=e.arcs;function i(f,c){c.length&&c.pop();for(var h=r[f<0?~f:f],d=0,p=h.length;d<p;++d)c.push(n(h[d],d));f<0&&Z_(c,p)}function a(f){return n(f)}function o(f){for(var c=[],h=0,d=f.length;h<d;++h)i(f[h],c);return c.length<2&&c.push(c[0]),c}function s(f){for(var c=o(f);c.length<4;)c.push(c[0]);return c}function u(f){return f.map(s)}function l(f){var c=f.type,h;switch(c){case"GeometryCollection":return{type:c,geometries:f.geometries.map(l)};case"Point":h=a(f.coordinates);break;case"MultiPoint":h=f.coordinates.map(a);break;case"LineString":h=o(f.arcs);break;case"MultiLineString":h=f.arcs.map(o);break;case"Polygon":h=u(f.arcs);break;case"MultiPolygon":h=f.arcs.map(u);break;default:return null}return{type:c,coordinates:h}}return l(t)}function Y_(e,t){var n={},r={},i={},a=[],o=-1;t.forEach(function(l,f){var c=e.arcs[l<0?~l:l],h;c.length<3&&!c[1][0]&&!c[1][1]&&(h=t[++o],t[o]=l,t[f]=h)}),t.forEach(function(l){var f=s(l),c=f[0],h=f[1],d,p;if(d=i[c])if(delete i[d.end],d.push(l),d.end=h,p=r[h]){delete r[p.start];var b=p===d?d:d.concat(p);r[b.start=d.start]=i[b.end=p.end]=b}else r[d.start]=i[d.end]=d;else if(d=r[h])if(delete r[d.start],d.unshift(l),d.start=c,p=i[c]){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=[l],r[d.start=c]=i[d.end=h]=d});function s(l){var f=e.arcs[l<0?~l:l],c=f[0],h;return e.transform?(h=[0,0],f.forEach(function(d){h[0]+=d[0],h[1]+=d[1]})):h=f[f.length-1],l<0?[h,c]:[c,h]}function u(l,f){for(var c in l){var h=l[c];delete f[h.start],delete h.start,delete h.end,h.forEach(function(d){n[d<0?~d:d]=1}),a.push(h)}}return u(i,r),u(r,i),t.forEach(function(l){n[l<0?~l:l]||a.push([l])}),a}function Q_(e){return om(e,$_.apply(this,arguments))}function $_(e,t,n){var r,i,a;if(arguments.length>1)r=X_(e,t,n);else for(i=0,r=new Array(a=e.arcs.length);i<a;++i)r[i]=i;return{type:"MultiLineString",arcs:Y_(e,r)}}function X_(e,t,n){var r=[],i=[],a;function o(c){var h=c<0?~c:c;(i[h]||(i[h]=[])).push({i:c,g:a})}function s(c){c.forEach(o)}function u(c){c.forEach(s)}function l(c){c.forEach(u)}function f(c){switch(a=c,c.type){case"GeometryCollection":c.geometries.forEach(f);break;case"LineString":s(c.arcs);break;case"MultiLineString":case"Polygon":u(c.arcs);break;case"MultiPolygon":l(c.arcs);break}}return f(t),i.forEach(n==null?function(c){r.push(c[0].i)}:function(c){n(c[0].g,c[c.length-1].g)&&r.push(c[0].i)}),r}function Vo(e,t){return e==null||t==null?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function K_(e,t){return e==null||t==null?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function gu(e){let t,n,r;e.length!==2?(t=Vo,n=(s,u)=>Vo(e(s),u),r=(s,u)=>e(s)-u):(t=e===Vo||e===K_?e:J_,n=e,r=e);function i(s,u,l=0,f=s.length){if(l<f){if(t(u,u)!==0)return f;do{const c=l+f>>>1;n(s[c],u)<0?l=c+1:f=c}while(l<f)}return l}function a(s,u,l=0,f=s.length){if(l<f){if(t(u,u)!==0)return f;do{const c=l+f>>>1;n(s[c],u)<=0?l=c+1:f=c}while(l<f)}return l}function o(s,u,l=0,f=s.length){const c=i(s,u,l,f-1);return c>l&&r(s[c-1],u)>-r(s[c],u)?c-1:c}return{left:i,center:o,right:a}}function J_(){return 0}function sm(e){return e===null?NaN:+e}const lm=gu(Vo),Er=lm.right;lm.left,gu(sm).center;function e4(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 _r extends Map{constructor(t,n=r4){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(um(this,t))}has(t){return super.has(um(this,t))}set(t,n){return super.set(t4(this,t),n)}delete(t){return super.delete(n4(this,t))}}function um({_intern:e,_key:t},n){const r=t(n);return e.has(r)?e.get(r):n}function t4({_intern:e,_key:t},n){const r=t(n);return e.has(r)?e.get(r):(e.set(r,n),n)}function n4({_intern:e,_key:t},n){const r=t(n);return e.has(r)&&(n=e.get(r),e.delete(r)),n}function r4(e){return e!==null&&typeof e=="object"?e.valueOf():e}function eh(e){return e}function mu(e,...t){return fm(e,eh,eh,t)}function i4(e,...t){return fm(e,Array.from,eh,t)}function fm(e,t,n,r){return function i(a,o){if(o>=r.length)return n(a);const s=new _r,u=r[o++];let l=-1;for(const f of a){const c=u(f,++l,a),h=s.get(c);h?h.push(f):s.set(c,[f])}for(const[f,c]of s)s.set(f,i(c,o));return t(s)}(e,0)}var th=Math.sqrt(50),nh=Math.sqrt(10),rh=Math.sqrt(2);function bu(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=cm(e,t,n))===0||!isFinite(s))return[];if(s>0){let u=Math.round(e/s),l=Math.round(t/s);for(u*s<e&&++u,l*s>t&&--l,o=new Array(a=l-u+1);++i<a;)o[i]=(u+i)*s}else{s=-s;let u=Math.round(e*s),l=Math.round(t*s);for(u/s<e&&++u,l/s>t&&--l,o=new Array(a=l-u+1);++i<a;)o[i]=(u+i)/s}return r&&o.reverse(),o}function cm(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>=th?10:a>=nh?5:a>=rh?2:1)*Math.pow(10,i):-Math.pow(10,-i)/(a>=th?10:a>=nh?5:a>=rh?2:1)}function bi(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>=th?i*=10:a>=nh?i*=5:a>=rh&&(i*=2),t<e?-i:i}function hm(e,t,n=sm){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 jo(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 yu(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 a4(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)}function wu(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 Aa(e){return e=wu(Math.abs(e)),e?e[1]:NaN}function o4(e,t){return function(n,r){for(var i=n.length,a=[],o=0,s=e[0],u=0;i>0&&s>0&&(u+s+1>r&&(s=Math.max(1,r-u)),a.push(n.substring(i-=s,i+s)),!((u+=s+1)>r));)s=e[o=(o+1)%e.length];return a.reverse().join(t)}}function s4(e){return function(t){return t.replace(/[0-9]/g,function(n){return e[+n]})}}var l4=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Sr(e){if(!(t=l4.exec(e)))throw new Error("invalid format: "+e);var t;return new ih({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]})}Sr.prototype=ih.prototype;function ih(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+""}ih.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 u4(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 dm;function f4(e,t){var n=wu(e,t);if(!n)return e+"";var r=n[0],i=n[1],a=i-(dm=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")+wu(e,Math.max(0,t+a-1))[0]}function pm(e,t){var n=wu(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 gm={"%":(e,t)=>(e*100).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+"",d:a4,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)=>pm(e*100,t),r:pm,s:f4,X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function mm(e){return e}var bm=Array.prototype.map,ym=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function c4(e){var t=e.grouping===void 0||e.thousands===void 0?mm:o4(bm.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?mm:s4(bm.call(e.numerals,String)),o=e.percent===void 0?"%":e.percent+"",s=e.minus===void 0?"−":e.minus+"",u=e.nan===void 0?"NaN":e.nan+"";function l(c){c=Sr(c);var h=c.fill,d=c.align,p=c.sign,b=c.symbol,y=c.zero,w=c.width,A=c.comma,S=c.precision,_=c.trim,T=c.type;T==="n"?(A=!0,T="g"):gm[T]||(S===void 0&&(S=12),_=!0,T="g"),(y||h==="0"&&d==="=")&&(y=!0,h="0",d="=");var I=b==="$"?n:b==="#"&&/[boxX]/.test(T)?"0"+T.toLowerCase():"",B=b==="$"?r:/[%p]/.test(T)?o:"",R=gm[T],L=/[defgprs%]/.test(T);S=S===void 0?6:/[gprs]/.test(T)?Math.max(1,Math.min(21,S)):Math.max(0,Math.min(20,S));function j(M){var ie=I,se=B,ge,Ie,$e;if(T==="c")se=R(M)+se,M="";else{M=+M;var De=M<0||1/M<0;if(M=isNaN(M)?u:R(Math.abs(M),S),_&&(M=u4(M)),De&&+M==0&&p!=="+"&&(De=!1),ie=(De?p==="("?p:s:p==="-"||p==="("?"":p)+ie,se=(T==="s"?ym[8+dm/3]:"")+se+(De&&p==="("?")":""),L){for(ge=-1,Ie=M.length;++ge<Ie;)if($e=M.charCodeAt(ge),48>$e||$e>57){se=($e===46?i+M.slice(ge+1):M.slice(ge))+se,M=M.slice(0,ge);break}}}A&&!y&&(M=t(M,1/0));var Ke=ie.length+M.length+se.length,Ze=Ke<w?new Array(w-Ke+1).join(h):"";switch(A&&y&&(M=t(Ze+M,Ze.length?w-se.length:1/0),Ze=""),d){case"<":M=ie+M+se+Ze;break;case"=":M=ie+Ze+M+se;break;case"^":M=Ze.slice(0,Ke=Ze.length>>1)+ie+M+se+Ze.slice(Ke);break;default:M=Ze+ie+M+se;break}return a(M)}return j.toString=function(){return c+""},j}function f(c,h){var d=l((c=Sr(c),c.type="f",c)),p=Math.max(-8,Math.min(8,Math.floor(Aa(h)/3)))*3,b=Math.pow(10,-p),y=ym[8+p/3];return function(w){return d(b*w)+y}}return{format:l,formatPrefix:f}}var vu,gt,ah;h4({thousands:",",grouping:[3],currency:["$",""]});function h4(e){return vu=c4(e),gt=vu.format,ah=vu.formatPrefix,vu}function wm(e){return Math.max(0,-Aa(Math.abs(e)))}function vm(e,t){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(Aa(t)/3)))*3-Aa(Math.abs(e)))}function xm(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,Aa(t)-Aa(e))+1}var oh=new Date,sh=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 u=[],l;if(a=i.ceil(a),s=s==null?1:Math.floor(s),!(a<o)||!(s>0))return u;do u.push(l=new Date(+a)),t(a,s),e(a);while(l<a&&a<o);return u},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 oh.setTime(+a),sh.setTime(+o),e(oh),e(sh),Math.floor(n(oh,sh))},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 xu=st(function(){},function(e,t){e.setTime(+e+t)},function(e,t){return t-e});xu.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}):xu};const lh=xu;xu.range;const er=1e3,Jt=er*60,tr=Jt*60,yi=tr*24,uh=yi*7,Am=yi*30,fh=yi*365;var Em=st(function(e){e.setTime(e-e.getMilliseconds())},function(e,t){e.setTime(+e+t*er)},function(e,t){return(t-e)/er},function(e){return e.getUTCSeconds()});const Cr=Em;Em.range;var _m=st(function(e){e.setTime(e-e.getMilliseconds()-e.getSeconds()*er)},function(e,t){e.setTime(+e+t*Jt)},function(e,t){return(t-e)/Jt},function(e){return e.getMinutes()});const ch=_m;_m.range;var Sm=st(function(e){e.setTime(e-e.getMilliseconds()-e.getSeconds()*er-e.getMinutes()*Jt)},function(e,t){e.setTime(+e+t*tr)},function(e,t){return(t-e)/tr},function(e){return e.getHours()});const hh=Sm;Sm.range;var Cm=st(e=>e.setHours(0,0,0,0),(e,t)=>e.setDate(e.getDate()+t),(e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*Jt)/yi,e=>e.getDate()-1);const wi=Cm;Cm.range;function vi(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())*Jt)/uh})}var qo=vi(0),Au=vi(1),d4=vi(2),p4=vi(3),Ea=vi(4),g4=vi(5),m4=vi(6);qo.range,Au.range,d4.range,p4.range,Ea.range,g4.range,m4.range;var Zo=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()});Zo.range;var dh=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()});dh.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=dh;dh.range;var km=st(function(e){e.setUTCSeconds(0,0)},function(e,t){e.setTime(+e+t*Jt)},function(e,t){return(t-e)/Jt},function(e){return e.getUTCMinutes()});const ph=km;km.range;var Tm=st(function(e){e.setUTCMinutes(0,0,0)},function(e,t){e.setTime(+e+t*tr)},function(e,t){return(t-e)/tr},function(e){return e.getUTCHours()});const gh=Tm;Tm.range;var Im=st(function(e){e.setUTCHours(0,0,0,0)},function(e,t){e.setUTCDate(e.getUTCDate()+t)},function(e,t){return(t-e)/yi},function(e){return e.getUTCDate()-1});const xi=Im;Im.range;function Ai(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)/uh})}var Wo=Ai(0),Eu=Ai(1),b4=Ai(2),y4=Ai(3),_a=Ai(4),w4=Ai(5),v4=Ai(6);Wo.range,Eu.range,b4.range,y4.range,_a.range,w4.range,v4.range;var Yo=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()});Yo.range;var mh=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()});mh.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 Tr=mh;mh.range;function Bm(e,t,n,r,i,a){const o=[[Cr,1,er],[Cr,5,5*er],[Cr,15,15*er],[Cr,30,30*er],[a,1,Jt],[a,5,5*Jt],[a,15,15*Jt],[a,30,30*Jt],[i,1,tr],[i,3,3*tr],[i,6,6*tr],[i,12,12*tr],[r,1,yi],[r,2,2*yi],[n,1,uh],[t,1,Am],[t,3,3*Am],[e,1,fh]];function s(l,f,c){const h=f<l;h&&([l,f]=[f,l]);const d=c&&typeof c.range=="function"?c:u(l,f,c),p=d?d.range(l,+f+1):[];return h?p.reverse():p}function u(l,f,c){const h=Math.abs(f-l)/c,d=gu(([,,y])=>y).right(o,h);if(d===o.length)return e.every(bi(l/fh,f/fh,c));if(d===0)return lh.every(Math.max(bi(l,f,c),1));const[p,b]=o[h/o[d-1][2]<o[d][2]/h?d-1:d];return p.every(b)}return[s,u]}const[x4,A4]=Bm(Tr,Yo,Wo,xi,gh,ph),[E4,_4]=Bm(kr,Zo,qo,wi,hh,ch),Qo="year",$o="quarter",Xo="month",Ko="week",Jo="date",_u="day",bh="dayofyear",es="hours",ts="minutes",ns="seconds",Su="milliseconds";[Qo,$o,Xo,Ko,Jo,_u,bh,es,ts,ns,Su].reduce((e,t,n)=>(e[t]=1+n,e),{});const S4={[Qo]:kr,[$o]:Zo.every(3),[Xo]:Zo,[Ko]:qo,[Jo]:wi,[_u]:wi,[bh]:wi,[es]:hh,[ts]:ch,[ns]:Cr,[Su]:lh},C4={[Qo]:Tr,[$o]:Yo.every(3),[Xo]:Yo,[Ko]:Wo,[Jo]:xi,[_u]:xi,[bh]:xi,[es]:gh,[ts]:ph,[ns]:Cr,[Su]:lh};function k4(e){return S4[e]}function T4(e){return C4[e]}function yh(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 wh(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 rs(e,t,n){return{y:e,m:t,d:n,H:0,M:0,S:0,L:0}}function Dm(e){var t=e.dateTime,n=e.date,r=e.time,i=e.periods,a=e.days,o=e.shortDays,s=e.months,u=e.shortMonths,l=is(i),f=as(i),c=is(a),h=as(a),d=is(o),p=as(o),b=is(s),y=as(s),w=is(u),A=as(u),S={a:De,A:Ke,b:Ze,B:Je,c:null,d:Nm,e:Nm,f:X4,g:sS,G:uS,H:Y4,I:Q4,j:$4,L:Om,m:K4,M:J4,p:Ee,q:_e,Q:jm,s:qm,S:eS,u:tS,U:nS,V:rS,w:iS,W:aS,x:null,X:null,y:oS,Y:lS,Z:fS,"%":Vm},_={a:pt,A:qt,b:Oe,B:N,c:null,d:Um,e:Um,f:pS,g:_S,G:CS,H:cS,I:hS,j:dS,L:Gm,m:gS,M:mS,p:P,q,Q:jm,s:qm,S:bS,u:yS,U:wS,V:vS,w:xS,W:AS,x:null,X:null,y:ES,Y:SS,Z:kS,"%":Vm},T={a:j,A:M,b:ie,B:se,c:ge,d:Pm,e:Pm,f:j4,g:Mm,G:Rm,H:Lm,I:Lm,j:U4,L:V4,m:z4,M:G4,p:L,q:O4,Q:Z4,s:W4,S:H4,u:R4,U:M4,V:P4,w:F4,W:L4,x:Ie,X:$e,y:Mm,Y:Rm,Z:N4,"%":q4};S.x=I(n,S),S.X=I(r,S),S.c=I(t,S),_.x=I(n,_),_.X=I(r,_),_.c=I(t,_);function I(H,Y){return function(C){var x=[],G=-1,Z=0,le=H.length,J,ue,Zt;for(C instanceof Date||(C=new Date(+C));++G<le;)H.charCodeAt(G)===37&&(x.push(H.slice(Z,G)),(ue=Fm[J=H.charAt(++G)])!=null?J=H.charAt(++G):ue=J==="e"?" ":"0",(Zt=Y[J])&&(J=Zt(C,ue)),x.push(J),Z=G+1);return x.push(H.slice(Z,G)),x.join("")}}function B(H,Y){return function(C){var x=rs(1900,void 0,1),G=R(x,H,C+="",0),Z,le;if(G!=C.length)return null;if("Q"in x)return new Date(x.Q);if("s"in x)return new Date(x.s*1e3+("L"in x?x.L:0));if(Y&&!("Z"in x)&&(x.Z=0),"p"in x&&(x.H=x.H%12+x.p*12),x.m===void 0&&(x.m="q"in x?x.q:0),"V"in x){if(x.V<1||x.V>53)return null;"w"in x||(x.w=1),"Z"in x?(Z=wh(rs(x.y,0,1)),le=Z.getUTCDay(),Z=le>4||le===0?Eu.ceil(Z):Eu(Z),Z=xi.offset(Z,(x.V-1)*7),x.y=Z.getUTCFullYear(),x.m=Z.getUTCMonth(),x.d=Z.getUTCDate()+(x.w+6)%7):(Z=yh(rs(x.y,0,1)),le=Z.getDay(),Z=le>4||le===0?Au.ceil(Z):Au(Z),Z=wi.offset(Z,(x.V-1)*7),x.y=Z.getFullYear(),x.m=Z.getMonth(),x.d=Z.getDate()+(x.w+6)%7)}else("W"in x||"U"in x)&&("w"in x||(x.w="u"in x?x.u%7:"W"in x?1:0),le="Z"in x?wh(rs(x.y,0,1)).getUTCDay():yh(rs(x.y,0,1)).getDay(),x.m=0,x.d="W"in x?(x.w+6)%7+x.W*7-(le+5)%7:x.w+x.U*7-(le+6)%7);return"Z"in x?(x.H+=x.Z/100|0,x.M+=x.Z%100,wh(x)):yh(x)}}function R(H,Y,C,x){for(var G=0,Z=Y.length,le=C.length,J,ue;G<Z;){if(x>=le)return-1;if(J=Y.charCodeAt(G++),J===37){if(J=Y.charAt(G++),ue=T[J in Fm?Y.charAt(G++):J],!ue||(x=ue(H,C,x))<0)return-1}else if(J!=C.charCodeAt(x++))return-1}return x}function L(H,Y,C){var x=l.exec(Y.slice(C));return x?(H.p=f.get(x[0].toLowerCase()),C+x[0].length):-1}function j(H,Y,C){var x=d.exec(Y.slice(C));return x?(H.w=p.get(x[0].toLowerCase()),C+x[0].length):-1}function M(H,Y,C){var x=c.exec(Y.slice(C));return x?(H.w=h.get(x[0].toLowerCase()),C+x[0].length):-1}function ie(H,Y,C){var x=w.exec(Y.slice(C));return x?(H.m=A.get(x[0].toLowerCase()),C+x[0].length):-1}function se(H,Y,C){var x=b.exec(Y.slice(C));return x?(H.m=y.get(x[0].toLowerCase()),C+x[0].length):-1}function ge(H,Y,C){return R(H,t,Y,C)}function Ie(H,Y,C){return R(H,n,Y,C)}function $e(H,Y,C){return R(H,r,Y,C)}function De(H){return o[H.getDay()]}function Ke(H){return a[H.getDay()]}function Ze(H){return u[H.getMonth()]}function Je(H){return s[H.getMonth()]}function Ee(H){return i[+(H.getHours()>=12)]}function _e(H){return 1+~~(H.getMonth()/3)}function pt(H){return o[H.getUTCDay()]}function qt(H){return a[H.getUTCDay()]}function Oe(H){return u[H.getUTCMonth()]}function N(H){return s[H.getUTCMonth()]}function P(H){return i[+(H.getUTCHours()>=12)]}function q(H){return 1+~~(H.getUTCMonth()/3)}return{format:function(H){var Y=I(H+="",S);return Y.toString=function(){return H},Y},parse:function(H){var Y=B(H+="",!1);return Y.toString=function(){return H},Y},utcFormat:function(H){var Y=I(H+="",_);return Y.toString=function(){return H},Y},utcParse:function(H){var Y=B(H+="",!0);return Y.toString=function(){return H},Y}}}var Fm={"-":"",_:" ",0:"0"},lt=/^\s*\d+/,I4=/^%/,B4=/[\\^$*+?|[\]().{}]/g;function be(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 D4(e){return e.replace(B4,"\\$&")}function is(e){return new RegExp("^(?:"+e.map(D4).join("|")+")","i")}function as(e){return new Map(e.map((t,n)=>[t.toLowerCase(),n]))}function F4(e,t,n){var r=lt.exec(t.slice(n,n+1));return r?(e.w=+r[0],n+r[0].length):-1}function R4(e,t,n){var r=lt.exec(t.slice(n,n+1));return r?(e.u=+r[0],n+r[0].length):-1}function M4(e,t,n){var r=lt.exec(t.slice(n,n+2));return r?(e.U=+r[0],n+r[0].length):-1}function P4(e,t,n){var r=lt.exec(t.slice(n,n+2));return r?(e.V=+r[0],n+r[0].length):-1}function L4(e,t,n){var r=lt.exec(t.slice(n,n+2));return r?(e.W=+r[0],n+r[0].length):-1}function Rm(e,t,n){var r=lt.exec(t.slice(n,n+4));return r?(e.y=+r[0],n+r[0].length):-1}function Mm(e,t,n){var r=lt.exec(t.slice(n,n+2));return r?(e.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function N4(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 O4(e,t,n){var r=lt.exec(t.slice(n,n+1));return r?(e.q=r[0]*3-3,n+r[0].length):-1}function z4(e,t,n){var r=lt.exec(t.slice(n,n+2));return r?(e.m=r[0]-1,n+r[0].length):-1}function Pm(e,t,n){var r=lt.exec(t.slice(n,n+2));return r?(e.d=+r[0],n+r[0].length):-1}function U4(e,t,n){var r=lt.exec(t.slice(n,n+3));return r?(e.m=0,e.d=+r[0],n+r[0].length):-1}function Lm(e,t,n){var r=lt.exec(t.slice(n,n+2));return r?(e.H=+r[0],n+r[0].length):-1}function G4(e,t,n){var r=lt.exec(t.slice(n,n+2));return r?(e.M=+r[0],n+r[0].length):-1}function H4(e,t,n){var r=lt.exec(t.slice(n,n+2));return r?(e.S=+r[0],n+r[0].length):-1}function V4(e,t,n){var r=lt.exec(t.slice(n,n+3));return r?(e.L=+r[0],n+r[0].length):-1}function j4(e,t,n){var r=lt.exec(t.slice(n,n+6));return r?(e.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function q4(e,t,n){var r=I4.exec(t.slice(n,n+1));return r?n+r[0].length:-1}function Z4(e,t,n){var r=lt.exec(t.slice(n));return r?(e.Q=+r[0],n+r[0].length):-1}function W4(e,t,n){var r=lt.exec(t.slice(n));return r?(e.s=+r[0],n+r[0].length):-1}function Nm(e,t){return be(e.getDate(),t,2)}function Y4(e,t){return be(e.getHours(),t,2)}function Q4(e,t){return be(e.getHours()%12||12,t,2)}function $4(e,t){return be(1+wi.count(kr(e),e),t,3)}function Om(e,t){return be(e.getMilliseconds(),t,3)}function X4(e,t){return Om(e,t)+"000"}function K4(e,t){return be(e.getMonth()+1,t,2)}function J4(e,t){return be(e.getMinutes(),t,2)}function eS(e,t){return be(e.getSeconds(),t,2)}function tS(e){var t=e.getDay();return t===0?7:t}function nS(e,t){return be(qo.count(kr(e)-1,e),t,2)}function zm(e){var t=e.getDay();return t>=4||t===0?Ea(e):Ea.ceil(e)}function rS(e,t){return e=zm(e),be(Ea.count(kr(e),e)+(kr(e).getDay()===4),t,2)}function iS(e){return e.getDay()}function aS(e,t){return be(Au.count(kr(e)-1,e),t,2)}function oS(e,t){return be(e.getFullYear()%100,t,2)}function sS(e,t){return e=zm(e),be(e.getFullYear()%100,t,2)}function lS(e,t){return be(e.getFullYear()%1e4,t,4)}function uS(e,t){var n=e.getDay();return e=n>=4||n===0?Ea(e):Ea.ceil(e),be(e.getFullYear()%1e4,t,4)}function fS(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+be(t/60|0,"0",2)+be(t%60,"0",2)}function Um(e,t){return be(e.getUTCDate(),t,2)}function cS(e,t){return be(e.getUTCHours(),t,2)}function hS(e,t){return be(e.getUTCHours()%12||12,t,2)}function dS(e,t){return be(1+xi.count(Tr(e),e),t,3)}function Gm(e,t){return be(e.getUTCMilliseconds(),t,3)}function pS(e,t){return Gm(e,t)+"000"}function gS(e,t){return be(e.getUTCMonth()+1,t,2)}function mS(e,t){return be(e.getUTCMinutes(),t,2)}function bS(e,t){return be(e.getUTCSeconds(),t,2)}function yS(e){var t=e.getUTCDay();return t===0?7:t}function wS(e,t){return be(Wo.count(Tr(e)-1,e),t,2)}function Hm(e){var t=e.getUTCDay();return t>=4||t===0?_a(e):_a.ceil(e)}function vS(e,t){return e=Hm(e),be(_a.count(Tr(e),e)+(Tr(e).getUTCDay()===4),t,2)}function xS(e){return e.getUTCDay()}function AS(e,t){return be(Eu.count(Tr(e)-1,e),t,2)}function ES(e,t){return be(e.getUTCFullYear()%100,t,2)}function _S(e,t){return e=Hm(e),be(e.getUTCFullYear()%100,t,2)}function SS(e,t){return be(e.getUTCFullYear()%1e4,t,4)}function CS(e,t){var n=e.getUTCDay();return e=n>=4||n===0?_a(e):_a.ceil(e),be(e.getUTCFullYear()%1e4,t,4)}function kS(){return"+0000"}function Vm(){return"%"}function jm(e){return+e}function qm(e){return Math.floor(+e/1e3)}var Sa,vh,Zm,xh,Wm;TS({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 TS(e){return Sa=Dm(e),vh=Sa.format,Zm=Sa.parse,xh=Sa.utcFormat,Wm=Sa.utcParse,Sa}function os(e){const t={};return n=>t[n]||(t[n]=e(n))}function IS(e,t){return n=>{const r=e(n),i=r.indexOf(t);if(i<0)return r;let a=BS(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 BS(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 DS(e){const t=os(e.format),n=e.formatPrefix;return{format:t,formatPrefix:n,formatFloat(r){const i=Sr(r||",");if(i.precision==null){switch(i.precision=12,i.type){case"%":i.precision-=2;break;case"e":i.precision-=1;break}return IS(t(i),t(".1f")(1)[1])}else return t(i)},formatSpan(r,i,a,o){o=Sr(o??",f");const s=bi(r,i,a),u=Math.max(Math.abs(r),Math.abs(i));let l;if(o.precision==null)switch(o.type){case"s":return isNaN(l=vm(s,u))||(o.precision=l),n(o,u);case"":case"e":case"g":case"p":case"r":{isNaN(l=xm(s,u))||(o.precision=l-(o.type==="e"));break}case"f":case"%":{isNaN(l=wm(s))||(o.precision=l-(o.type==="%")*2);break}}return t(o)}}}FS();function FS(){return DS({format:gt,formatPrefix:ah})}function Ym(e,t,n){n=n||{},Rt(n)||Qe("Invalid time multi-format specifier: ".concat(n));const r=t(ns),i=t(ts),a=t(es),o=t(Jo),s=t(Ko),u=t(Xo),l=t($o),f=t(Qo),c=e(n[Su]||".%L"),h=e(n[ns]||":%S"),d=e(n[ts]||"%I:%M"),p=e(n[es]||"%I %p"),b=e(n[Jo]||n[_u]||"%a %d"),y=e(n[Ko]||"%b %d"),w=e(n[Xo]||"%B"),A=e(n[$o]||"%B"),S=e(n[Qo]||"%Y");return _=>(r(_)<_?c:i(_)<_?h:a(_)<_?d:o(_)<_?p:u(_)<_?s(_)<_?b:y:f(_)<_?l(_)<_?w:A:S)(_)}function Qm(e){const t=os(e.format),n=os(e.utcFormat);return{timeFormat:r=>Pe(r)?t(r):Ym(t,k4,r),utcFormat:r=>Pe(r)?n(r):Ym(n,T4,r),timeParse:os(e.parse),utcParse:os(e.utcParse)}}let Ah;RS();function RS(){return Ah=Qm({format:vh,parse:Zm,utcFormat:xh,utcParse:Wm})}function MS(e){return Qm(Dm(e))}function PS(e){return arguments.length?Ah=MS(e):Ah}const LS=/^(data:|([A-Za-z]+:)?\/\/)/,NS=/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp|file|data):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i,OS=/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205f\u3000]/g,$m="file://";function zS(e,t){return n=>({options:n||{},sanitize:GS,load:US,fileAccess:!!t,file:HS(t),http:jS(e)})}async function US(e,t){const n=await this.sanitize(e,t),r=n.href;return n.localFile?this.file(r):this.http(r,t)}async function GS(e,t){t=$c({},this.options,t);const n=this.fileAccess,r={href:null};let i,a,o;const s=NS.test(e.replace(OS,""));(e==null||typeof e!="string"||!s)&&Qe("Sanitize failure, invalid URI: "+du(e));const u=LS.test(e);return(o=t.baseURL)&&!u&&(!e.startsWith("/")&&!o.endsWith("/")&&(e="/"+e),e=o+e),a=(i=e.startsWith($m))||t.mode==="file"||t.mode!=="http"&&!u&&n,i?e=e.slice($m.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 HS(e){return e?t=>new Promise((n,r)=>{e.readFile(t,(i,a)=>{i?r(i):n(a)})}):VS}async function VS(){Qe("No file system access.")}function jS(e){return e?async function(t,n){const r=$c({},this.options.http,n),i=n&&n.response,a=await e(t,r);return a.ok?Mt(a[i])?a[i]():a.text():Qe(a.status+""+a.statusText)}:qS}async function qS(){Qe("No HTTP fetch method available.")}const ZS=e=>e!=null&&e===e,WS=e=>e==="true"||e==="false"||e===!0||e===!1,YS=e=>!Number.isNaN(Date.parse(e)),Xm=e=>!Number.isNaN(+e)&&!(e instanceof Date),QS=e=>Xm(e)&&Number.isInteger(+e),Km={boolean:P_,integer:Uo,number:Uo,date:N_,string:O_,unknown:uu},Cu=[WS,QS,Xm,YS],$S=["boolean","integer","number","date"];function XS(e,t){if(!e||!e.length)return"unknown";const n=e.length,r=Cu.length,i=Cu.map((a,o)=>o+1);for(let a=0,o=0,s,u;a<n;++a)for(u=t?e[a][t]:e[a],s=0;s<r;++s)if(i[s]&&ZS(u)&&!Cu[s](u)&&(i[s]=0,++o,o===Cu.length))return"string";return $S[i.reduce((a,o)=>a===0?o:a,0)-1]}function KS(e,t){return t.reduce((n,r)=>(n[r]=XS(e,r),n),{})}function Jm(e){const t=function(n,r){const i={delimiter:e};return Eh(n,r?$c(r,i):i)};return t.responseType="text",t}function Eh(e,t){return t.header&&(e=t.header.map(du).join(t.delimiter)+`
|
|
6
|
-
`+e),
|
|
1
|
+
(function(he,xe){typeof exports=="object"&&typeof module<"u"?xe(exports):typeof define=="function"&&define.amd?define(["exports"],xe):(he=typeof globalThis<"u"?globalThis:he||self,xe(he.genomeSpyEmbed={}))})(this,function(he){"use strict";var ZU=Object.defineProperty;var YU=(he,xe,ke)=>xe in he?ZU(he,xe,{enumerable:!0,configurable:!0,writable:!0,value:ke}):he[xe]=ke;var yn=(he,xe,ke)=>(YU(he,typeof xe!="symbol"?xe+"":xe,ke),ke),cm=(he,xe,ke)=>{if(!xe.has(he))throw TypeError("Cannot "+ke)};var W=(he,xe,ke)=>(cm(he,xe,"read from private field"),ke?ke.call(he):xe.get(he)),K=(he,xe,ke)=>{if(xe.has(he))throw TypeError("Cannot add the same private member more than once");xe instanceof WeakSet?xe.add(he):xe.set(he,ke)},Fe=(he,xe,ke,Aa)=>(cm(he,xe,"write to private field"),Aa?Aa.call(he,ke):xe.set(he,ke),ke);var j_=(he,xe,ke,Aa)=>({set _(Cu){Fe(he,xe,Cu,ke)},get _(){return W(he,xe,Aa)}}),J=(he,xe,ke)=>(cm(he,xe,"access private method"),ke);var I_,bi,Do,Ro,Kl,Jl,eu,lh,$_,uh,q_,xr,tu,fm,nu,hm,Fo,ru,dm,Mo,iu,au,ma,_u,ou,pm,Ar,Po,Jt,su,lu,gm,am,QU,Dn,Br,uu,mm,ch,W_,fh,Z_,cu,bm,fu,ym,Lo,Ah,Er,va,hu,wm,hh,Y_,om,XU,du,vm,Oo,No,zo,pu,Uo,Go,gu,xm,mu,Am,ba,bu,yu,wu,_r,Ho,Vo,en,ya,jo,Sr,xa,dh,Q_,wa,Su,vu,Em,xu,_m,Au,Sm,ph,X_,$o,Eh,gh,K_,qo,Wo,_h,mh,J_,bh,e4,yh,t4;function xe(e,t){for(var n=0;n<t.length;n++){const r=t[n];if(typeof r!="string"&&!Array.isArray(r)){for(const i in r)if(i!=="default"&&!(i in e)){const a=Object.getOwnPropertyDescriptor(r,i);a&&Object.defineProperty(e,i,a.get?a:{enumerable:!0,get:()=>r[i]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}function ke(e,t,n){return e.fields=t||[],e.fname=n,e}function Aa(e){return e==null?null:e.fname}function Cu(e){return e==null?null:e.fields}function n4(e){return e.length===1?r4(e[0]):i4(e)}const r4=e=>function(t){return t[e]},i4=e=>{const t=e.length;return function(n){for(let r=0;r<t;++r)n=n[e[r]];return n}};function Qe(e){throw Error(e)}function a4(e){const t=[],n=e.length;let r=null,i=0,a="",o,s,u;e=e+"";function l(){t.push(a+e.substring(o,s)),a="",o=s+1}for(o=s=0;s<n;++s)if(u=e[s],u==="\\")a+=e.substring(o,s++),o=s;else if(u===r)l(),r=null,i=-1;else{if(r)continue;o===i&&u==='"'||o===i&&u==="'"?(o=s+1,r=u):u==="."&&!i?s>o?l():o=s+1:u==="["?(s>o&&l(),i=o=s+1):u==="]"&&(i||Qe("Access path missing open bracket: "+e),i>0&&l(),i=0,o=s+1)}return i&&Qe("Access path missing closing bracket: "+e),r&&Qe("Access path missing closing quote: "+e),s>o&&(s++,l()),t}function ku(e,t,n){const r=a4(e);return e=r.length===1?r[0]:e,ke((n&&n.get||n4)(r),[e],t||e)}ku("id");const Tu=ke(e=>e,[],"identity");ke(()=>0,[],"zero"),ke(()=>1,[],"one"),ke(()=>!0,[],"true"),ke(()=>!1,[],"false");var xt=Array.isArray;function kt(e){return e===Object(e)}function wn(e){return e[e.length-1]}function Zo(e){return e==null||e===""?null:+e}const Cm=e=>t=>e*Math.exp(t),km=e=>t=>Math.log(e*t),o4=e=>t=>Math.sign(t)*Math.log1p(Math.abs(t/e)),s4=e=>t=>Math.sign(t)*Math.expm1(Math.abs(t))*e,Iu=e=>t=>t<0?-Math.pow(-t,e):Math.pow(t,e);function Sh(e,t,n,r){const i=n(e[0]),a=n(wn(e)),o=(a-i)*t;return[r(i-o),r(a-o)]}function l4(e,t){return Sh(e,t,Zo,Tu)}function u4(e,t){var n=Math.sign(e[0]);return Sh(e,t,km(n),Cm(n))}function c4(e,t,n){return Sh(e,t,Iu(n),Iu(1/n))}function Bu(e,t,n,r,i){const a=r(e[0]),o=r(wn(e)),s=t!=null?r(t):(a+o)/2;return[i(s+(a-s)*n),i(s+(o-s)*n)]}function Tm(e,t,n){return Bu(e,t,n,Zo,Tu)}function Im(e,t,n){const r=Math.sign(e[0]);return Bu(e,t,n,km(r),Cm(r))}function Ch(e,t,n,r){return Bu(e,t,n,Iu(r),Iu(1/r))}function f4(e,t,n,r){return Bu(e,t,n,o4(r),s4(r))}function kh(e){return e!=null?xt(e)?e:[e]:[]}function h4(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 Pt(e){return typeof e=="function"}const d4="descending";function Bm(e,t,n){n=n||{},t=kh(t)||[];const r=[],i=[],a={},o=n.comparator||p4;return kh(e).forEach((s,u)=>{s!=null&&(r.push(t[u]===d4?-1:1),i.push(s=Pt(s)?s:ku(s,null,n)),(Cu(s)||[]).forEach(l=>a[l]=1))}),i.length===0?null:ke(o(i,r),Object.keys(a))}const Dm=(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),p4=(e,t)=>e.length===1?g4(e[0],t[0]):m4(e,t,e.length),g4=(e,t)=>function(n,r){return Dm(e(n),e(r))*t},m4=(e,t,n)=>(t.push(0),function(r,i){let a,o=0,s=-1;for(;o===0&&++s<n;)a=e[s],o=Dm(a(r),a(i));return o*t[s]});function b4(e){return Pt(e)?e:()=>e}function Th(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 y4=Object.prototype.hasOwnProperty;function Ea(e,t){return y4.call(e,t)}function Yo(e){return typeof e=="boolean"}function w4(e){return Object.prototype.toString.call(e)==="[object Date]"}function v4(e){return e&&Pt(e[Symbol.iterator])}function Tt(e){return typeof e=="number"}function x4(e){return Object.prototype.toString.call(e)==="[object RegExp]"}function Ue(e){return typeof e=="string"}function Rm(e,t){const n=e[0],r=wn(e),i=+t;return i?i===1?r:n+i*(r-n):n}function Du(e){return e&&wn(e)-e[0]||0}function Ru(e){return xt(e)?"["+e.map(Ru)+"]":kt(e)||Ue(e)?JSON.stringify(e).replace("\u2028","\\u2028").replace("\u2029","\\u2029"):e}function A4(e){return e==null||e===""?null:!e||e==="false"||e==="0"?!1:!!e}const E4=e=>Tt(e)||w4(e)?e:Date.parse(e);function _4(e,t){return t=t||E4,e==null||e===""?null:t(e)}function S4(e){return e==null||e===""?null:e+""}function Fu(e){const t={},n=e.length;for(let r=0;r<n;++r)t[e[r]]=!0;return t}var Fm={},Ih={},Bh=34,Qo=10,Dh=13;function Mm(e){return new Function("d","return {"+e.map(function(t,n){return JSON.stringify(t)+": d["+n+'] || ""'}).join(",")+"}")}function C4(e,t){var n=Mm(e);return function(r,i){return t(n(r),i,e)}}function Pm(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 Lt(e,t){var n=e+"",r=n.length;return r<t?new Array(t-r+1).join(0)+n:n}function k4(e){return e<0?"-"+Lt(-e,6):e>9999?"+"+Lt(e,6):Lt(e,4)}function T4(e){var t=e.getUTCHours(),n=e.getUTCMinutes(),r=e.getUTCSeconds(),i=e.getUTCMilliseconds();return isNaN(e)?"Invalid Date":k4(e.getUTCFullYear())+"-"+Lt(e.getUTCMonth()+1,2)+"-"+Lt(e.getUTCDate(),2)+(i?"T"+Lt(t,2)+":"+Lt(n,2)+":"+Lt(r,2)+"."+Lt(i,3)+"Z":r?"T"+Lt(t,2)+":"+Lt(n,2)+":"+Lt(r,2)+"Z":n||t?"T"+Lt(t,2)+":"+Lt(n,2)+"Z":"")}function Lm(e){var t=new RegExp('["'+e+`
|
|
2
|
+
\r]`),n=e.charCodeAt(0);function r(f,h){var d,p,m=i(f,function(y,w){if(d)return d(y,w-1);p=y,d=h?C4(y,h):Mm(y)});return m.columns=p||[],m}function i(f,h){var d=[],p=f.length,m=0,y=0,w,A=p<=0,S=!1;f.charCodeAt(p-1)===Qo&&--p,f.charCodeAt(p-1)===Dh&&--p;function _(){if(A)return Ih;if(S)return S=!1,Fm;var I,B=m,R;if(f.charCodeAt(B)===Bh){for(;m++<p&&f.charCodeAt(m)!==Bh||f.charCodeAt(++m)===Bh;);return(I=m)>=p?A=!0:(R=f.charCodeAt(m++))===Qo?S=!0:R===Dh&&(S=!0,f.charCodeAt(m)===Qo&&++m),f.slice(B+1,I-1).replace(/""/g,'"')}for(;m<p;){if((R=f.charCodeAt(I=m++))===Qo)S=!0;else if(R===Dh)S=!0,f.charCodeAt(m)===Qo&&++m;else if(R!==n)continue;return f.slice(B,I)}return A=!0,f.slice(B,p)}for(;(w=_())!==Ih;){for(var T=[];w!==Fm&&w!==Ih;)T.push(w),w=_();h&&(T=h(T,y++))==null||d.push(T)}return d}function a(f,h){return f.map(function(d){return h.map(function(p){return c(d[p])}).join(e)})}function o(f,h){return h==null&&(h=Pm(f)),[h.map(c).join(e)].concat(a(f,h)).join(`
|
|
3
|
+
`)}function s(f,h){return h==null&&(h=Pm(f)),a(f,h).join(`
|
|
4
|
+
`)}function u(f){return f.map(l).join(`
|
|
5
|
+
`)}function l(f){return f.map(c).join(e)}function c(f){return f==null?"":f instanceof Date?T4(f):t.test(f+="")?'"'+f.replace(/"/g,'""')+'"':f}return{parse:r,parseRows:i,format:o,formatBody:s,formatRows:u,formatRow:l,formatValue:c}}var I4=Lm(" "),B4=I4.parseRows;function D4(e){return e}function R4(e){if(e==null)return D4;var t,n,r=e.scale[0],i=e.scale[1],a=e.translate[0],o=e.translate[1];return function(s,u){u||(t=n=0);var l=2,c=s.length,f=new Array(c);for(f[0]=(t+=s[0])*r+a,f[1]=(n+=s[1])*i+o;l<c;)f[l]=s[l],++l;return f}}function F4(e,t){for(var n,r=e.length,i=r-t;i<--r;)n=e[i],e[i++]=e[r],e[r]=n}function M4(e,t){return typeof t=="string"&&(t=e.objects[t]),t.type==="GeometryCollection"?{type:"FeatureCollection",features:t.geometries.map(function(n){return Om(e,n)})}:Om(e,t)}function Om(e,t){var n=t.id,r=t.bbox,i=t.properties==null?{}:t.properties,a=Nm(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 Nm(e,t){var n=R4(e.transform),r=e.arcs;function i(c,f){f.length&&f.pop();for(var h=r[c<0?~c:c],d=0,p=h.length;d<p;++d)f.push(n(h[d],d));c<0&&F4(f,p)}function a(c){return n(c)}function o(c){for(var f=[],h=0,d=c.length;h<d;++h)i(c[h],f);return f.length<2&&f.push(f[0]),f}function s(c){for(var f=o(c);f.length<4;)f.push(f[0]);return f}function u(c){return c.map(s)}function l(c){var f=c.type,h;switch(f){case"GeometryCollection":return{type:f,geometries:c.geometries.map(l)};case"Point":h=a(c.coordinates);break;case"MultiPoint":h=c.coordinates.map(a);break;case"LineString":h=o(c.arcs);break;case"MultiLineString":h=c.arcs.map(o);break;case"Polygon":h=u(c.arcs);break;case"MultiPolygon":h=c.arcs.map(u);break;default:return null}return{type:f,coordinates:h}}return l(t)}function P4(e,t){var n={},r={},i={},a=[],o=-1;t.forEach(function(l,c){var f=e.arcs[l<0?~l:l],h;f.length<3&&!f[1][0]&&!f[1][1]&&(h=t[++o],t[o]=l,t[c]=h)}),t.forEach(function(l){var c=s(l),f=c[0],h=c[1],d,p;if(d=i[f])if(delete i[d.end],d.push(l),d.end=h,p=r[h]){delete r[p.start];var m=p===d?d:d.concat(p);r[m.start=d.start]=i[m.end=p.end]=m}else r[d.start]=i[d.end]=d;else if(d=r[h])if(delete r[d.start],d.unshift(l),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=[l],r[d.start=f]=i[d.end=h]=d});function s(l){var c=e.arcs[l<0?~l:l],f=c[0],h;return e.transform?(h=[0,0],c.forEach(function(d){h[0]+=d[0],h[1]+=d[1]})):h=c[c.length-1],l<0?[h,f]:[f,h]}function u(l,c){for(var f in l){var h=l[f];delete c[h.start],delete h.start,delete h.end,h.forEach(function(d){n[d<0?~d:d]=1}),a.push(h)}}return u(i,r),u(r,i),t.forEach(function(l){n[l<0?~l:l]||a.push([l])}),a}function L4(e){return Nm(e,O4.apply(this,arguments))}function O4(e,t,n){var r,i,a;if(arguments.length>1)r=N4(e,t,n);else for(i=0,r=new Array(a=e.arcs.length);i<a;++i)r[i]=i;return{type:"MultiLineString",arcs:P4(e,r)}}function N4(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 u(f){f.forEach(s)}function l(f){f.forEach(u)}function c(f){switch(a=f,f.type){case"GeometryCollection":f.geometries.forEach(c);break;case"LineString":s(f.arcs);break;case"MultiLineString":case"Polygon":u(f.arcs);break;case"MultiPolygon":l(f.arcs);break}}return c(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 Xo(e,t){return e==null||t==null?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function z4(e,t){return e==null||t==null?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function Mu(e){let t,n,r;e.length!==2?(t=Xo,n=(s,u)=>Xo(e(s),u),r=(s,u)=>e(s)-u):(t=e===Xo||e===z4?e:U4,n=e,r=e);function i(s,u,l=0,c=s.length){if(l<c){if(t(u,u)!==0)return c;do{const f=l+c>>>1;n(s[f],u)<0?l=f+1:c=f}while(l<c)}return l}function a(s,u,l=0,c=s.length){if(l<c){if(t(u,u)!==0)return c;do{const f=l+c>>>1;n(s[f],u)<=0?l=f+1:c=f}while(l<c)}return l}function o(s,u,l=0,c=s.length){const f=i(s,u,l,c-1);return f>l&&r(s[f-1],u)>-r(s[f],u)?f-1:f}return{left:i,center:o,right:a}}function U4(){return 0}function zm(e){return e===null?NaN:+e}const Um=Mu(Xo),Dr=Um.right;Um.left,Mu(zm).center;function G4(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 Rr extends Map{constructor(t,n=j4){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(Gm(this,t))}has(t){return super.has(Gm(this,t))}set(t,n){return super.set(H4(this,t),n)}delete(t){return super.delete(V4(this,t))}}function Gm({_intern:e,_key:t},n){const r=t(n);return e.has(r)?e.get(r):n}function H4({_intern:e,_key:t},n){const r=t(n);return e.has(r)?e.get(r):(e.set(r,n),n)}function V4({_intern:e,_key:t},n){const r=t(n);return e.has(r)&&(n=e.get(r),e.delete(r)),n}function j4(e){return e!==null&&typeof e=="object"?e.valueOf():e}function Rh(e){return e}function Pu(e,...t){return Hm(e,Rh,Rh,t)}function $4(e,...t){return Hm(e,Array.from,Rh,t)}function Hm(e,t,n,r){return function i(a,o){if(o>=r.length)return n(a);const s=new Rr,u=r[o++];let l=-1;for(const c of a){const f=u(c,++l,a),h=s.get(f);h?h.push(c):s.set(f,[c])}for(const[c,f]of s)s.set(c,i(f,o));return t(s)}(e,0)}const q4=Math.sqrt(50),W4=Math.sqrt(10),Z4=Math.sqrt(2);function Lu(e,t,n){const r=(t-e)/Math.max(0,n),i=Math.floor(Math.log10(r)),a=r/Math.pow(10,i),o=a>=q4?10:a>=W4?5:a>=Z4?2:1;let s,u,l;return i<0?(l=Math.pow(10,-i)/o,s=Math.round(e*l),u=Math.round(t*l),s/l<e&&++s,u/l>t&&--u,l=-l):(l=Math.pow(10,i)*o,s=Math.round(e/l),u=Math.round(t/l),s*l<e&&++s,u*l>t&&--u),u<s&&.5<=n&&n<2?Lu(e,t,n*2):[s,u,l]}function Ou(e,t,n){if(t=+t,e=+e,n=+n,!(n>0))return[];if(e===t)return[e];const r=t<e,[i,a,o]=r?Lu(t,e,n):Lu(e,t,n);if(!(a>=i))return[];const s=a-i+1,u=new Array(s);if(r)if(o<0)for(let l=0;l<s;++l)u[l]=(a-l)/-o;else for(let l=0;l<s;++l)u[l]=(a-l)*o;else if(o<0)for(let l=0;l<s;++l)u[l]=(i+l)/-o;else for(let l=0;l<s;++l)u[l]=(i+l)*o;return u}function Fh(e,t,n){return t=+t,e=+e,n=+n,Lu(e,t,n)[2]}function Fr(e,t,n){t=+t,e=+e,n=+n;const r=t<e,i=r?Fh(t,e,n):Fh(e,t,n);return(r?-1:1)*(i<0?1/-i:i)}function Vm(e,t,n=zm){if(!(!(r=e.length)||isNaN(t=+t))){if(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 Ko(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 Nu(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 Y4(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)}function zu(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 _a(e){return e=zu(Math.abs(e)),e?e[1]:NaN}function Q4(e,t){return function(n,r){for(var i=n.length,a=[],o=0,s=e[0],u=0;i>0&&s>0&&(u+s+1>r&&(s=Math.max(1,r-u)),a.push(n.substring(i-=s,i+s)),!((u+=s+1)>r));)s=e[o=(o+1)%e.length];return a.reverse().join(t)}}function X4(e){return function(t){return t.replace(/[0-9]/g,function(n){return e[+n]})}}var K4=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Mr(e){if(!(t=K4.exec(e)))throw new Error("invalid format: "+e);var t;return new Mh({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]})}Mr.prototype=Mh.prototype;function Mh(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+""}Mh.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 J4(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 jm;function eS(e,t){var n=zu(e,t);if(!n)return e+"";var r=n[0],i=n[1],a=i-(jm=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")+zu(e,Math.max(0,t+a-1))[0]}function $m(e,t){var n=zu(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 qm={"%":(e,t)=>(e*100).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+"",d:Y4,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)=>$m(e*100,t),r:$m,s:eS,X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function Wm(e){return e}var Zm=Array.prototype.map,Ym=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function tS(e){var t=e.grouping===void 0||e.thousands===void 0?Wm:Q4(Zm.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?Wm:X4(Zm.call(e.numerals,String)),o=e.percent===void 0?"%":e.percent+"",s=e.minus===void 0?"−":e.minus+"",u=e.nan===void 0?"NaN":e.nan+"";function l(f){f=Mr(f);var h=f.fill,d=f.align,p=f.sign,m=f.symbol,y=f.zero,w=f.width,A=f.comma,S=f.precision,_=f.trim,T=f.type;T==="n"?(A=!0,T="g"):qm[T]||(S===void 0&&(S=12),_=!0,T="g"),(y||h==="0"&&d==="=")&&(y=!0,h="0",d="=");var I=m==="$"?n:m==="#"&&/[boxX]/.test(T)?"0"+T.toLowerCase():"",B=m==="$"?r:/[%p]/.test(T)?o:"",R=qm[T],M=/[defgprs%]/.test(T);S=S===void 0?6:/[gprs]/.test(T)?Math.max(1,Math.min(21,S)):Math.max(0,Math.min(20,S));function G(N){var re=I,se=B,te,ge,Xe;if(T==="c")se=R(N)+se,N="";else{N=+N;var De=N<0||1/N<0;if(N=isNaN(N)?u:R(Math.abs(N),S),_&&(N=J4(N)),De&&+N==0&&p!=="+"&&(De=!1),re=(De?p==="("?p:s:p==="-"||p==="("?"":p)+re,se=(T==="s"?Ym[8+jm/3]:"")+se+(De&&p==="("?")":""),M){for(te=-1,ge=N.length;++te<ge;)if(Xe=N.charCodeAt(te),48>Xe||Xe>57){se=(Xe===46?i+N.slice(te+1):N.slice(te))+se,N=N.slice(0,te);break}}}A&&!y&&(N=t(N,1/0));var Ke=re.length+N.length+se.length,We=Ke<w?new Array(w-Ke+1).join(h):"";switch(A&&y&&(N=t(We+N,We.length?w-se.length:1/0),We=""),d){case"<":N=re+N+se+We;break;case"=":N=re+We+N+se;break;case"^":N=We.slice(0,Ke=We.length>>1)+re+N+se+We.slice(Ke);break;default:N=We+re+N+se;break}return a(N)}return G.toString=function(){return f+""},G}function c(f,h){var d=l((f=Mr(f),f.type="f",f)),p=Math.max(-8,Math.min(8,Math.floor(_a(h)/3)))*3,m=Math.pow(10,-p),y=Ym[8+p/3];return function(w){return d(m*w)+y}}return{format:l,formatPrefix:c}}var Uu,mt,Ph;nS({thousands:",",grouping:[3],currency:["$",""]});function nS(e){return Uu=tS(e),mt=Uu.format,Ph=Uu.formatPrefix,Uu}function Qm(e){return Math.max(0,-_a(Math.abs(e)))}function Xm(e,t){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(_a(t)/3)))*3-_a(Math.abs(e)))}function Km(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,_a(t)-_a(e))+1}const Lh=new Date,Oh=new Date;function rt(e,t,n,r){function i(a){return e(a=arguments.length===0?new Date:new Date(+a)),a}return i.floor=a=>(e(a=new Date(+a)),a),i.ceil=a=>(e(a=new Date(a-1)),t(a,1),e(a),a),i.round=a=>{const o=i(a),s=i.ceil(a);return a-o<s-a?o:s},i.offset=(a,o)=>(t(a=new Date(+a),o==null?1:Math.floor(o)),a),i.range=(a,o,s)=>{const u=[];if(a=i.ceil(a),s=s==null?1:Math.floor(s),!(a<o)||!(s>0))return u;let l;do u.push(l=new Date(+a)),t(a,s),e(a);while(l<a&&a<o);return u},i.filter=a=>rt(o=>{if(o>=o)for(;e(o),!a(o);)o.setTime(o-1)},(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=(a,o)=>(Lh.setTime(+a),Oh.setTime(+o),e(Lh),e(Oh),Math.floor(n(Lh,Oh))),i.every=a=>(a=Math.floor(a),!isFinite(a)||!(a>0)?null:a>1?i.filter(r?o=>r(o)%a===0:o=>i.count(0,o)%a===0):i)),i}const Sa=rt(()=>{},(e,t)=>{e.setTime(+e+t)},(e,t)=>t-e);Sa.every=e=>(e=Math.floor(e),!isFinite(e)||!(e>0)?null:e>1?rt(t=>{t.setTime(Math.floor(t/e)*e)},(t,n)=>{t.setTime(+t+n*e)},(t,n)=>(n-t)/e):Sa),Sa.range;const ir=1e3,tn=ir*60,ar=tn*60,or=ar*24,Nh=or*7,Jm=or*30,zh=or*365,sr=rt(e=>{e.setTime(e-e.getMilliseconds())},(e,t)=>{e.setTime(+e+t*ir)},(e,t)=>(t-e)/ir,e=>e.getUTCSeconds());sr.range;const Gu=rt(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*ir)},(e,t)=>{e.setTime(+e+t*tn)},(e,t)=>(t-e)/tn,e=>e.getMinutes());Gu.range;const Hu=rt(e=>{e.setUTCSeconds(0,0)},(e,t)=>{e.setTime(+e+t*tn)},(e,t)=>(t-e)/tn,e=>e.getUTCMinutes());Hu.range;const Vu=rt(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*ir-e.getMinutes()*tn)},(e,t)=>{e.setTime(+e+t*ar)},(e,t)=>(t-e)/ar,e=>e.getHours());Vu.range;const ju=rt(e=>{e.setUTCMinutes(0,0,0)},(e,t)=>{e.setTime(+e+t*ar)},(e,t)=>(t-e)/ar,e=>e.getUTCHours());ju.range;const Pr=rt(e=>e.setHours(0,0,0,0),(e,t)=>e.setDate(e.getDate()+t),(e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*tn)/or,e=>e.getDate()-1);Pr.range;const Si=rt(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/or,e=>e.getUTCDate()-1);Si.range;const e1=rt(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/or,e=>Math.floor(e/or));e1.range;function Ci(e){return rt(t=>{t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)},(t,n)=>{t.setDate(t.getDate()+n*7)},(t,n)=>(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*tn)/Nh)}const Jo=Ci(0),$u=Ci(1),rS=Ci(2),iS=Ci(3),Ca=Ci(4),aS=Ci(5),oS=Ci(6);Jo.range,$u.range,rS.range,iS.range,Ca.range,aS.range,oS.range;function ki(e){return rt(t=>{t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)},(t,n)=>{t.setUTCDate(t.getUTCDate()+n*7)},(t,n)=>(n-t)/Nh)}const es=ki(0),qu=ki(1),sS=ki(2),lS=ki(3),ka=ki(4),uS=ki(5),cS=ki(6);es.range,qu.range,sS.range,lS.range,ka.range,uS.range,cS.range;const ts=rt(e=>{e.setDate(1),e.setHours(0,0,0,0)},(e,t)=>{e.setMonth(e.getMonth()+t)},(e,t)=>t.getMonth()-e.getMonth()+(t.getFullYear()-e.getFullYear())*12,e=>e.getMonth());ts.range;const ns=rt(e=>{e.setUTCDate(1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCMonth(e.getUTCMonth()+t)},(e,t)=>t.getUTCMonth()-e.getUTCMonth()+(t.getUTCFullYear()-e.getUTCFullYear())*12,e=>e.getUTCMonth());ns.range;const Pn=rt(e=>{e.setMonth(0,1),e.setHours(0,0,0,0)},(e,t)=>{e.setFullYear(e.getFullYear()+t)},(e,t)=>t.getFullYear()-e.getFullYear(),e=>e.getFullYear());Pn.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:rt(t=>{t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)},(t,n)=>{t.setFullYear(t.getFullYear()+n*e)}),Pn.range;const Ln=rt(e=>{e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCFullYear(e.getUTCFullYear()+t)},(e,t)=>t.getUTCFullYear()-e.getUTCFullYear(),e=>e.getUTCFullYear());Ln.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:rt(t=>{t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,n)=>{t.setUTCFullYear(t.getUTCFullYear()+n*e)}),Ln.range;function t1(e,t,n,r,i,a){const o=[[sr,1,ir],[sr,5,5*ir],[sr,15,15*ir],[sr,30,30*ir],[a,1,tn],[a,5,5*tn],[a,15,15*tn],[a,30,30*tn],[i,1,ar],[i,3,3*ar],[i,6,6*ar],[i,12,12*ar],[r,1,or],[r,2,2*or],[n,1,Nh],[t,1,Jm],[t,3,3*Jm],[e,1,zh]];function s(l,c,f){const h=c<l;h&&([l,c]=[c,l]);const d=f&&typeof f.range=="function"?f:u(l,c,f),p=d?d.range(l,+c+1):[];return h?p.reverse():p}function u(l,c,f){const h=Math.abs(c-l)/f,d=Mu(([,,y])=>y).right(o,h);if(d===o.length)return e.every(Fr(l/zh,c/zh,f));if(d===0)return Sa.every(Math.max(Fr(l,c,f),1));const[p,m]=o[h/o[d-1][2]<o[d][2]/h?d-1:d];return p.every(m)}return[s,u]}const[fS,hS]=t1(Ln,ns,es,e1,ju,Hu),[dS,pS]=t1(Pn,ts,Jo,Pr,Vu,Gu),rs="year",is="quarter",as="month",os="week",ss="date",Wu="day",Uh="dayofyear",ls="hours",us="minutes",cs="seconds",Zu="milliseconds";[rs,is,as,os,ss,Wu,Uh,ls,us,cs,Zu].reduce((e,t,n)=>(e[t]=1+n,e),{});const gS={[rs]:Pn,[is]:ts.every(3),[as]:ts,[os]:Jo,[ss]:Pr,[Wu]:Pr,[Uh]:Pr,[ls]:Vu,[us]:Gu,[cs]:sr,[Zu]:Sa},mS={[rs]:Ln,[is]:ns.every(3),[as]:ns,[os]:es,[ss]:Si,[Wu]:Si,[Uh]:Si,[ls]:ju,[us]:Hu,[cs]:sr,[Zu]:Sa};function bS(e){return gS[e]}function yS(e){return mS[e]}function Gh(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 Hh(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 fs(e,t,n){return{y:e,m:t,d:n,H:0,M:0,S:0,L:0}}function n1(e){var t=e.dateTime,n=e.date,r=e.time,i=e.periods,a=e.days,o=e.shortDays,s=e.months,u=e.shortMonths,l=hs(i),c=ds(i),f=hs(a),h=ds(a),d=hs(o),p=ds(o),m=hs(s),y=ds(s),w=hs(u),A=ds(u),S={a:De,A:Ke,b:We,B:Je,c:null,d:l1,e:l1,f:GS,g:XS,G:JS,H:NS,I:zS,j:US,L:u1,m:HS,M:VS,p:_e,q:Se,Q:g1,s:m1,S:jS,u:$S,U:qS,V:WS,w:ZS,W:YS,x:null,X:null,y:QS,Y:KS,Z:eC,"%":p1},_={a:gt,A:$t,b:Ne,B:L,c:null,d:f1,e:f1,f:iC,g:pC,G:mC,H:tC,I:nC,j:rC,L:h1,m:aC,M:oC,p:P,q:$,Q:g1,s:m1,S:sC,u:lC,U:uC,V:cC,w:fC,W:hC,x:null,X:null,y:dC,Y:gC,Z:bC,"%":p1},T={a:G,A:N,b:re,B:se,c:te,d:o1,e:o1,f:MS,g:a1,G:i1,H:s1,I:s1,j:BS,L:FS,m:IS,M:DS,p:M,q:TS,Q:LS,s:OS,S:RS,u:ES,U:_S,V:SS,w:AS,W:CS,x:ge,X:Xe,y:a1,Y:i1,Z:kS,"%":PS};S.x=I(n,S),S.X=I(r,S),S.c=I(t,S),_.x=I(n,_),_.X=I(r,_),_.c=I(t,_);function I(V,Z){return function(C){var x=[],H=-1,q=0,ue=V.length,ne,ce,qt;for(C instanceof Date||(C=new Date(+C));++H<ue;)V.charCodeAt(H)===37&&(x.push(V.slice(q,H)),(ce=r1[ne=V.charAt(++H)])!=null?ne=V.charAt(++H):ce=ne==="e"?" ":"0",(qt=Z[ne])&&(ne=qt(C,ce)),x.push(ne),q=H+1);return x.push(V.slice(q,H)),x.join("")}}function B(V,Z){return function(C){var x=fs(1900,void 0,1),H=R(x,V,C+="",0),q,ue;if(H!=C.length)return null;if("Q"in x)return new Date(x.Q);if("s"in x)return new Date(x.s*1e3+("L"in x?x.L:0));if(Z&&!("Z"in x)&&(x.Z=0),"p"in x&&(x.H=x.H%12+x.p*12),x.m===void 0&&(x.m="q"in x?x.q:0),"V"in x){if(x.V<1||x.V>53)return null;"w"in x||(x.w=1),"Z"in x?(q=Hh(fs(x.y,0,1)),ue=q.getUTCDay(),q=ue>4||ue===0?qu.ceil(q):qu(q),q=Si.offset(q,(x.V-1)*7),x.y=q.getUTCFullYear(),x.m=q.getUTCMonth(),x.d=q.getUTCDate()+(x.w+6)%7):(q=Gh(fs(x.y,0,1)),ue=q.getDay(),q=ue>4||ue===0?$u.ceil(q):$u(q),q=Pr.offset(q,(x.V-1)*7),x.y=q.getFullYear(),x.m=q.getMonth(),x.d=q.getDate()+(x.w+6)%7)}else("W"in x||"U"in x)&&("w"in x||(x.w="u"in x?x.u%7:"W"in x?1:0),ue="Z"in x?Hh(fs(x.y,0,1)).getUTCDay():Gh(fs(x.y,0,1)).getDay(),x.m=0,x.d="W"in x?(x.w+6)%7+x.W*7-(ue+5)%7:x.w+x.U*7-(ue+6)%7);return"Z"in x?(x.H+=x.Z/100|0,x.M+=x.Z%100,Hh(x)):Gh(x)}}function R(V,Z,C,x){for(var H=0,q=Z.length,ue=C.length,ne,ce;H<q;){if(x>=ue)return-1;if(ne=Z.charCodeAt(H++),ne===37){if(ne=Z.charAt(H++),ce=T[ne in r1?Z.charAt(H++):ne],!ce||(x=ce(V,C,x))<0)return-1}else if(ne!=C.charCodeAt(x++))return-1}return x}function M(V,Z,C){var x=l.exec(Z.slice(C));return x?(V.p=c.get(x[0].toLowerCase()),C+x[0].length):-1}function G(V,Z,C){var x=d.exec(Z.slice(C));return x?(V.w=p.get(x[0].toLowerCase()),C+x[0].length):-1}function N(V,Z,C){var x=f.exec(Z.slice(C));return x?(V.w=h.get(x[0].toLowerCase()),C+x[0].length):-1}function re(V,Z,C){var x=w.exec(Z.slice(C));return x?(V.m=A.get(x[0].toLowerCase()),C+x[0].length):-1}function se(V,Z,C){var x=m.exec(Z.slice(C));return x?(V.m=y.get(x[0].toLowerCase()),C+x[0].length):-1}function te(V,Z,C){return R(V,t,Z,C)}function ge(V,Z,C){return R(V,n,Z,C)}function Xe(V,Z,C){return R(V,r,Z,C)}function De(V){return o[V.getDay()]}function Ke(V){return a[V.getDay()]}function We(V){return u[V.getMonth()]}function Je(V){return s[V.getMonth()]}function _e(V){return i[+(V.getHours()>=12)]}function Se(V){return 1+~~(V.getMonth()/3)}function gt(V){return o[V.getUTCDay()]}function $t(V){return a[V.getUTCDay()]}function Ne(V){return u[V.getUTCMonth()]}function L(V){return s[V.getUTCMonth()]}function P(V){return i[+(V.getUTCHours()>=12)]}function $(V){return 1+~~(V.getUTCMonth()/3)}return{format:function(V){var Z=I(V+="",S);return Z.toString=function(){return V},Z},parse:function(V){var Z=B(V+="",!1);return Z.toString=function(){return V},Z},utcFormat:function(V){var Z=I(V+="",_);return Z.toString=function(){return V},Z},utcParse:function(V){var Z=B(V+="",!0);return Z.toString=function(){return V},Z}}}var r1={"-":"",_:" ",0:"0"},ut=/^\s*\d+/,wS=/^%/,vS=/[\\^$*+?|[\]().{}]/g;function ye(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 xS(e){return e.replace(vS,"\\$&")}function hs(e){return new RegExp("^(?:"+e.map(xS).join("|")+")","i")}function ds(e){return new Map(e.map((t,n)=>[t.toLowerCase(),n]))}function AS(e,t,n){var r=ut.exec(t.slice(n,n+1));return r?(e.w=+r[0],n+r[0].length):-1}function ES(e,t,n){var r=ut.exec(t.slice(n,n+1));return r?(e.u=+r[0],n+r[0].length):-1}function _S(e,t,n){var r=ut.exec(t.slice(n,n+2));return r?(e.U=+r[0],n+r[0].length):-1}function SS(e,t,n){var r=ut.exec(t.slice(n,n+2));return r?(e.V=+r[0],n+r[0].length):-1}function CS(e,t,n){var r=ut.exec(t.slice(n,n+2));return r?(e.W=+r[0],n+r[0].length):-1}function i1(e,t,n){var r=ut.exec(t.slice(n,n+4));return r?(e.y=+r[0],n+r[0].length):-1}function a1(e,t,n){var r=ut.exec(t.slice(n,n+2));return r?(e.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function kS(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 TS(e,t,n){var r=ut.exec(t.slice(n,n+1));return r?(e.q=r[0]*3-3,n+r[0].length):-1}function IS(e,t,n){var r=ut.exec(t.slice(n,n+2));return r?(e.m=r[0]-1,n+r[0].length):-1}function o1(e,t,n){var r=ut.exec(t.slice(n,n+2));return r?(e.d=+r[0],n+r[0].length):-1}function BS(e,t,n){var r=ut.exec(t.slice(n,n+3));return r?(e.m=0,e.d=+r[0],n+r[0].length):-1}function s1(e,t,n){var r=ut.exec(t.slice(n,n+2));return r?(e.H=+r[0],n+r[0].length):-1}function DS(e,t,n){var r=ut.exec(t.slice(n,n+2));return r?(e.M=+r[0],n+r[0].length):-1}function RS(e,t,n){var r=ut.exec(t.slice(n,n+2));return r?(e.S=+r[0],n+r[0].length):-1}function FS(e,t,n){var r=ut.exec(t.slice(n,n+3));return r?(e.L=+r[0],n+r[0].length):-1}function MS(e,t,n){var r=ut.exec(t.slice(n,n+6));return r?(e.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function PS(e,t,n){var r=wS.exec(t.slice(n,n+1));return r?n+r[0].length:-1}function LS(e,t,n){var r=ut.exec(t.slice(n));return r?(e.Q=+r[0],n+r[0].length):-1}function OS(e,t,n){var r=ut.exec(t.slice(n));return r?(e.s=+r[0],n+r[0].length):-1}function l1(e,t){return ye(e.getDate(),t,2)}function NS(e,t){return ye(e.getHours(),t,2)}function zS(e,t){return ye(e.getHours()%12||12,t,2)}function US(e,t){return ye(1+Pr.count(Pn(e),e),t,3)}function u1(e,t){return ye(e.getMilliseconds(),t,3)}function GS(e,t){return u1(e,t)+"000"}function HS(e,t){return ye(e.getMonth()+1,t,2)}function VS(e,t){return ye(e.getMinutes(),t,2)}function jS(e,t){return ye(e.getSeconds(),t,2)}function $S(e){var t=e.getDay();return t===0?7:t}function qS(e,t){return ye(Jo.count(Pn(e)-1,e),t,2)}function c1(e){var t=e.getDay();return t>=4||t===0?Ca(e):Ca.ceil(e)}function WS(e,t){return e=c1(e),ye(Ca.count(Pn(e),e)+(Pn(e).getDay()===4),t,2)}function ZS(e){return e.getDay()}function YS(e,t){return ye($u.count(Pn(e)-1,e),t,2)}function QS(e,t){return ye(e.getFullYear()%100,t,2)}function XS(e,t){return e=c1(e),ye(e.getFullYear()%100,t,2)}function KS(e,t){return ye(e.getFullYear()%1e4,t,4)}function JS(e,t){var n=e.getDay();return e=n>=4||n===0?Ca(e):Ca.ceil(e),ye(e.getFullYear()%1e4,t,4)}function eC(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+ye(t/60|0,"0",2)+ye(t%60,"0",2)}function f1(e,t){return ye(e.getUTCDate(),t,2)}function tC(e,t){return ye(e.getUTCHours(),t,2)}function nC(e,t){return ye(e.getUTCHours()%12||12,t,2)}function rC(e,t){return ye(1+Si.count(Ln(e),e),t,3)}function h1(e,t){return ye(e.getUTCMilliseconds(),t,3)}function iC(e,t){return h1(e,t)+"000"}function aC(e,t){return ye(e.getUTCMonth()+1,t,2)}function oC(e,t){return ye(e.getUTCMinutes(),t,2)}function sC(e,t){return ye(e.getUTCSeconds(),t,2)}function lC(e){var t=e.getUTCDay();return t===0?7:t}function uC(e,t){return ye(es.count(Ln(e)-1,e),t,2)}function d1(e){var t=e.getUTCDay();return t>=4||t===0?ka(e):ka.ceil(e)}function cC(e,t){return e=d1(e),ye(ka.count(Ln(e),e)+(Ln(e).getUTCDay()===4),t,2)}function fC(e){return e.getUTCDay()}function hC(e,t){return ye(qu.count(Ln(e)-1,e),t,2)}function dC(e,t){return ye(e.getUTCFullYear()%100,t,2)}function pC(e,t){return e=d1(e),ye(e.getUTCFullYear()%100,t,2)}function gC(e,t){return ye(e.getUTCFullYear()%1e4,t,4)}function mC(e,t){var n=e.getUTCDay();return e=n>=4||n===0?ka(e):ka.ceil(e),ye(e.getUTCFullYear()%1e4,t,4)}function bC(){return"+0000"}function p1(){return"%"}function g1(e){return+e}function m1(e){return Math.floor(+e/1e3)}var Ta,Vh,b1,jh,y1;yC({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 yC(e){return Ta=n1(e),Vh=Ta.format,b1=Ta.parse,jh=Ta.utcFormat,y1=Ta.utcParse,Ta}function ps(e){const t={};return n=>t[n]||(t[n]=e(n))}function wC(e,t){return n=>{const r=e(n),i=r.indexOf(t);if(i<0)return r;let a=vC(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 vC(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 xC(e){const t=ps(e.format),n=e.formatPrefix;return{format:t,formatPrefix:n,formatFloat(r){const i=Mr(r||",");if(i.precision==null){switch(i.precision=12,i.type){case"%":i.precision-=2;break;case"e":i.precision-=1;break}return wC(t(i),t(".1f")(1)[1])}else return t(i)},formatSpan(r,i,a,o){o=Mr(o??",f");const s=Fr(r,i,a),u=Math.max(Math.abs(r),Math.abs(i));let l;if(o.precision==null)switch(o.type){case"s":return isNaN(l=Xm(s,u))||(o.precision=l),n(o,u);case"":case"e":case"g":case"p":case"r":{isNaN(l=Km(s,u))||(o.precision=l-(o.type==="e"));break}case"f":case"%":{isNaN(l=Qm(s))||(o.precision=l-(o.type==="%")*2);break}}return t(o)}}}AC();function AC(){return xC({format:mt,formatPrefix:Ph})}function w1(e,t,n){n=n||{},kt(n)||Qe(`Invalid time multi-format specifier: ${n}`);const r=t(cs),i=t(us),a=t(ls),o=t(ss),s=t(os),u=t(as),l=t(is),c=t(rs),f=e(n[Zu]||".%L"),h=e(n[cs]||":%S"),d=e(n[us]||"%I:%M"),p=e(n[ls]||"%I %p"),m=e(n[ss]||n[Wu]||"%a %d"),y=e(n[os]||"%b %d"),w=e(n[as]||"%B"),A=e(n[is]||"%B"),S=e(n[rs]||"%Y");return _=>(r(_)<_?f:i(_)<_?h:a(_)<_?d:o(_)<_?p:u(_)<_?s(_)<_?m:y:c(_)<_?l(_)<_?w:A:S)(_)}function v1(e){const t=ps(e.format),n=ps(e.utcFormat);return{timeFormat:r=>Ue(r)?t(r):w1(t,bS,r),utcFormat:r=>Ue(r)?n(r):w1(n,yS,r),timeParse:ps(e.parse),utcParse:ps(e.utcParse)}}let $h;EC();function EC(){return $h=v1({format:Vh,parse:b1,utcFormat:jh,utcParse:y1})}function _C(e){return v1(n1(e))}function SC(e){return arguments.length?$h=_C(e):$h}const CC=/^(data:|([A-Za-z]+:)?\/\/)/,kC=/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp|file|data):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i,TC=/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205f\u3000]/g,x1="file://";function IC(e,t){return n=>({options:n||{},sanitize:DC,load:BC,fileAccess:!!t,file:RC(t),http:MC(e)})}async function BC(e,t){const n=await this.sanitize(e,t),r=n.href;return n.localFile?this.file(r):this.http(r,t)}async function DC(e,t){t=Th({},this.options,t);const n=this.fileAccess,r={href:null};let i,a,o;const s=kC.test(e.replace(TC,""));(e==null||typeof e!="string"||!s)&&Qe("Sanitize failure, invalid URI: "+Ru(e));const u=CC.test(e);return(o=t.baseURL)&&!u&&(!e.startsWith("/")&&!o.endsWith("/")&&(e="/"+e),e=o+e),a=(i=e.startsWith(x1))||t.mode==="file"||t.mode!=="http"&&!u&&n,i?e=e.slice(x1.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 RC(e){return e?t=>new Promise((n,r)=>{e.readFile(t,(i,a)=>{i?r(i):n(a)})}):FC}async function FC(){Qe("No file system access.")}function MC(e){return e?async function(t,n){const r=Th({},this.options.http,n),i=n&&n.response,a=await e(t,r);return a.ok?Pt(a[i])?a[i]():a.text():Qe(a.status+""+a.statusText)}:PC}async function PC(){Qe("No HTTP fetch method available.")}const LC=e=>e!=null&&e===e,OC=e=>e==="true"||e==="false"||e===!0||e===!1,NC=e=>!Number.isNaN(Date.parse(e)),A1=e=>!Number.isNaN(+e)&&!(e instanceof Date),zC=e=>A1(e)&&Number.isInteger(+e),E1={boolean:A4,integer:Zo,number:Zo,date:_4,string:S4,unknown:Tu},Yu=[OC,zC,A1,NC],UC=["boolean","integer","number","date"];function GC(e,t){if(!e||!e.length)return"unknown";const n=e.length,r=Yu.length,i=Yu.map((a,o)=>o+1);for(let a=0,o=0,s,u;a<n;++a)for(u=t?e[a][t]:e[a],s=0;s<r;++s)if(i[s]&&LC(u)&&!Yu[s](u)&&(i[s]=0,++o,o===Yu.length))return"string";return UC[i.reduce((a,o)=>a===0?o:a,0)-1]}function HC(e,t){return t.reduce((n,r)=>(n[r]=GC(e,r),n),{})}function _1(e){const t=function(n,r){const i={delimiter:e};return qh(n,r?Th(r,i):i)};return t.responseType="text",t}function qh(e,t){return t.header&&(e=t.header.map(Ru).join(t.delimiter)+`
|
|
6
|
+
`+e),Lm(t.delimiter).parse(e+"")}qh.responseType="text";function VC(e){return typeof Buffer=="function"&&Pt(Buffer.isBuffer)?Buffer.isBuffer(e):!1}function Wh(e,t){const n=t&&t.property?ku(t.property):Tu;return kt(e)&&!VC(e)?jC(n(e),t):n(JSON.parse(e))}Wh.responseType="json";function jC(e,t){return!xt(e)&&v4(e)&&(e=[...e]),t&&t.copy?JSON.parse(JSON.stringify(e)):e}const $C={interior:(e,t)=>e!==t,exterior:(e,t)=>e===t};function S1(e,t){let n,r,i,a;return e=Wh(e,t),t&&t.feature?(n=M4,i=t.feature):t&&t.mesh?(n=L4,i=t.mesh,a=$C[t.filter]):Qe("Missing TopoJSON feature or mesh parameter."),r=(r=e.objects[i])?n(e,r,a):Qe("Invalid TopoJSON object: "+i),r&&r.features||[r]}S1.responseType="json";const Zh={dsv:qh,csv:_1(","),tsv:_1(" "),json:Wh,topojson:S1};function C1(e,t){return arguments.length>1?(Zh[e]=t,this):Ea(Zh,e)?Zh[e]:null}function k1(e,t,n,r){t=t||{};const i=C1(t.type||"json");return i||Qe("Unknown data format type: "+t.type),e=i(e,t),t.parse&&qC(e,t.parse,n,r),Ea(e,"columns")&&delete e.columns,e}function qC(e,t,n,r){if(!e.length)return;const i=SC();n=n||i.timeParse,r=r||i.utcParse;let a=e.columns||Object.keys(e[0]),o,s,u,l,c,f;t==="auto"&&(t=HC(e,a)),a=Object.keys(t);const h=a.map(d=>{const p=t[d];let m,y;if(p&&(p.startsWith("date:")||p.startsWith("utc:")))return m=p.split(/:(.+)?/,2),y=m[1],(y[0]==="'"&&y[y.length-1]==="'"||y[0]==='"'&&y[y.length-1]==='"')&&(y=y.slice(1,-1)),(m[0]==="utc"?r:n)(y);if(!E1[p])throw Error("Illegal format pattern: "+d+":"+p);return E1[p]});for(u=0,c=e.length,f=a.length;u<c;++u)for(o=e[u],l=0;l<f;++l)s=a[l],o[s]=h[l](o[s])}const Qu=IC(typeof fetch<"u"&&fetch,null);/**
|
|
7
|
+
* @license
|
|
8
|
+
* Copyright 2019 Google LLC
|
|
9
|
+
* SPDX-License-Identifier: BSD-3-Clause
|
|
10
|
+
*/const Xu=globalThis,Yh=Xu.ShadowRoot&&(Xu.ShadyCSS===void 0||Xu.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,T1=Symbol(),I1=new WeakMap;let WC=class{constructor(t,n,r){if(this._$cssResult$=!0,r!==T1)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(Yh&&t===void 0){const r=n!==void 0&&n.length===1;r&&(t=I1.get(n)),t===void 0&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),r&&I1.set(n,t))}return t}toString(){return this.cssText}};const ZC=e=>new WC(typeof e=="string"?e:e+"",void 0,T1),YC=(e,t)=>{if(Yh)e.adoptedStyleSheets=t.map(n=>n instanceof CSSStyleSheet?n:n.styleSheet);else for(const n of t){const r=document.createElement("style"),i=Xu.litNonce;i!==void 0&&r.setAttribute("nonce",i),r.textContent=n.cssText,e.appendChild(r)}},B1=Yh?e=>e:e=>e instanceof CSSStyleSheet?(t=>{let n="";for(const r of t.cssRules)n+=r.cssText;return ZC(n)})(e):e;/**
|
|
11
|
+
* @license
|
|
12
|
+
* Copyright 2017 Google LLC
|
|
13
|
+
* SPDX-License-Identifier: BSD-3-Clause
|
|
14
|
+
*/const{is:QC,defineProperty:XC,getOwnPropertyDescriptor:KC,getOwnPropertyNames:JC,getOwnPropertySymbols:e6,getPrototypeOf:t6}=Object,Lr=globalThis,D1=Lr.trustedTypes,n6=D1?D1.emptyScript:"",Qh=Lr.reactiveElementPolyfillSupport,gs=(e,t)=>e,Xh={toAttribute(e,t){switch(t){case Boolean:e=e?n6: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}},R1=(e,t)=>!QC(e,t),F1={attribute:!0,type:String,converter:Xh,reflect:!1,hasChanged:R1};Symbol.metadata??(Symbol.metadata=Symbol("metadata")),Lr.litPropertyMetadata??(Lr.litPropertyMetadata=new WeakMap);class Ia extends HTMLElement{static addInitializer(t){this._$Ei(),(this.l??(this.l=[])).push(t)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(t,n=F1){if(n.state&&(n.attribute=!1),this._$Ei(),this.elementProperties.set(t,n),!n.noAccessor){const r=Symbol(),i=this.getPropertyDescriptor(t,r,n);i!==void 0&&XC(this.prototype,t,i)}}static getPropertyDescriptor(t,n,r){const{get:i,set:a}=KC(this.prototype,t)??{get(){return this[n]},set(o){this[n]=o}};return{get(){return i==null?void 0:i.call(this)},set(o){const s=i==null?void 0:i.call(this);a.call(this,o),this.requestUpdate(t,s,r)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)??F1}static _$Ei(){if(this.hasOwnProperty(gs("elementProperties")))return;const t=t6(this);t.finalize(),t.l!==void 0&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties)}static finalize(){if(this.hasOwnProperty(gs("finalized")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(gs("properties"))){const n=this.properties,r=[...JC(n),...e6(n)];for(const i of r)this.createProperty(i,n[i])}const t=this[Symbol.metadata];if(t!==null){const n=litPropertyMetadata.get(t);if(n!==void 0)for(const[r,i]of n)this.elementProperties.set(r,i)}this._$Eh=new Map;for(const[n,r]of this.elementProperties){const i=this._$Eu(n,r);i!==void 0&&this._$Eh.set(i,n)}this.elementStyles=this.finalizeStyles(this.styles)}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(B1(i))}else t!==void 0&&n.push(B1(t));return n}static _$Eu(t,n){const r=n.attribute;return r===!1?void 0:typeof r=="string"?r:typeof t=="string"?t.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){var t;this._$ES=new Promise(n=>this.enableUpdating=n),this._$AL=new Map,this._$E_(),this.requestUpdate(),(t=this.constructor.l)==null||t.forEach(n=>n(this))}addController(t){var n;(this._$EO??(this._$EO=new Set)).add(t),this.renderRoot!==void 0&&this.isConnected&&((n=t.hostConnected)==null||n.call(t))}removeController(t){var n;(n=this._$EO)==null||n.delete(t)}_$E_(){const t=new Map,n=this.constructor.elementProperties;for(const r of n.keys())this.hasOwnProperty(r)&&(t.set(r,this[r]),delete this[r]);t.size>0&&(this._$Ep=t)}createRenderRoot(){const t=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return YC(t,this.constructor.elementStyles),t}connectedCallback(){var t;this.renderRoot??(this.renderRoot=this.createRenderRoot()),this.enableUpdating(!0),(t=this._$EO)==null||t.forEach(n=>{var r;return(r=n.hostConnected)==null?void 0:r.call(n)})}enableUpdating(t){}disconnectedCallback(){var t;(t=this._$EO)==null||t.forEach(n=>{var r;return(r=n.hostDisconnected)==null?void 0:r.call(n)})}attributeChangedCallback(t,n,r){this._$AK(t,r)}_$EC(t,n){var a;const r=this.constructor.elementProperties.get(t),i=this.constructor._$Eu(t,r);if(i!==void 0&&r.reflect===!0){const o=(((a=r.converter)==null?void 0:a.toAttribute)!==void 0?r.converter:Xh).toAttribute(n,r.type);this._$Em=t,o==null?this.removeAttribute(i):this.setAttribute(i,o),this._$Em=null}}_$AK(t,n){var a;const r=this.constructor,i=r._$Eh.get(t);if(i!==void 0&&this._$Em!==i){const o=r.getPropertyOptions(i),s=typeof o.converter=="function"?{fromAttribute:o.converter}:((a=o.converter)==null?void 0:a.fromAttribute)!==void 0?o.converter:Xh;this._$Em=i,this[i]=s.fromAttribute(n,o.type),this._$Em=null}}requestUpdate(t,n,r){if(t!==void 0){if(r??(r=this.constructor.getPropertyOptions(t)),!(r.hasChanged??R1)(this[t],n))return;this.P(t,n,r)}this.isUpdatePending===!1&&(this._$ES=this._$ET())}P(t,n,r){this._$AL.has(t)||this._$AL.set(t,n),r.reflect===!0&&this._$Em!==t&&(this._$Ej??(this._$Ej=new Set)).add(t)}async _$ET(){this.isUpdatePending=!0;try{await this._$ES}catch(n){Promise.reject(n)}const t=this.scheduleUpdate();return t!=null&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){var r;if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??(this.renderRoot=this.createRenderRoot()),this._$Ep){for(const[a,o]of this._$Ep)this[a]=o;this._$Ep=void 0}const i=this.constructor.elementProperties;if(i.size>0)for(const[a,o]of i)o.wrapped!==!0||this._$AL.has(a)||this[a]===void 0||this.P(a,this[a],o)}let t=!1;const n=this._$AL;try{t=this.shouldUpdate(n),t?(this.willUpdate(n),(r=this._$EO)==null||r.forEach(i=>{var a;return(a=i.hostUpdate)==null?void 0:a.call(i)}),this.update(n)):this._$EU()}catch(i){throw t=!1,this._$EU(),i}t&&this._$AE(n)}willUpdate(t){}_$AE(t){var n;(n=this._$EO)==null||n.forEach(r=>{var i;return(i=r.hostUpdated)==null?void 0:i.call(r)}),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$EU(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(t){return!0}update(t){this._$Ej&&(this._$Ej=this._$Ej.forEach(n=>this._$EC(n,this[n]))),this._$EU()}updated(t){}firstUpdated(t){}}Ia.elementStyles=[],Ia.shadowRootOptions={mode:"open"},Ia[gs("elementProperties")]=new Map,Ia[gs("finalized")]=new Map,Qh==null||Qh({ReactiveElement:Ia}),(Lr.reactiveElementVersions??(Lr.reactiveElementVersions=[])).push("2.0.4");/**
|
|
15
|
+
* @license
|
|
16
|
+
* Copyright 2017 Google LLC
|
|
17
|
+
* SPDX-License-Identifier: BSD-3-Clause
|
|
18
|
+
*/const ms=globalThis,Ku=ms.trustedTypes,M1=Ku?Ku.createPolicy("lit-html",{createHTML:e=>e}):void 0,P1="$lit$",Or=`lit$${(Math.random()+"").slice(9)}$`,L1="?"+Or,r6=`<${L1}>`,Ti=document,bs=()=>Ti.createComment(""),ys=e=>e===null||typeof e!="object"&&typeof e!="function",O1=Array.isArray,i6=e=>O1(e)||typeof(e==null?void 0:e[Symbol.iterator])=="function",Kh=`[
|
|
19
|
+
\f\r]`,ws=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,N1=/-->/g,z1=/>/g,Ii=RegExp(`>|${Kh}(?:([^\\s"'>=/]+)(${Kh}*=${Kh}*(?:[^
|
|
20
|
+
\f\r"'\`<>=]|("|')|))|$)`,"g"),U1=/'/g,G1=/"/g,H1=/^(?:script|style|textarea|title)$/i,a6=e=>(t,...n)=>({_$litType$:e,strings:t,values:n}),it=a6(1),Bi=Symbol.for("lit-noChange"),at=Symbol.for("lit-nothing"),V1=new WeakMap,Di=Ti.createTreeWalker(Ti,129);function j1(e,t){if(!Array.isArray(e)||!e.hasOwnProperty("raw"))throw Error("invalid template strings array");return M1!==void 0?M1.createHTML(t):t}const o6=(e,t)=>{const n=e.length-1,r=[];let i,a=t===2?"<svg>":"",o=ws;for(let s=0;s<n;s++){const u=e[s];let l,c,f=-1,h=0;for(;h<u.length&&(o.lastIndex=h,c=o.exec(u),c!==null);)h=o.lastIndex,o===ws?c[1]==="!--"?o=N1:c[1]!==void 0?o=z1:c[2]!==void 0?(H1.test(c[2])&&(i=RegExp("</"+c[2],"g")),o=Ii):c[3]!==void 0&&(o=Ii):o===Ii?c[0]===">"?(o=i??ws,f=-1):c[1]===void 0?f=-2:(f=o.lastIndex-c[2].length,l=c[1],o=c[3]===void 0?Ii:c[3]==='"'?G1:U1):o===G1||o===U1?o=Ii:o===N1||o===z1?o=ws:(o=Ii,i=void 0);const d=o===Ii&&e[s+1].startsWith("/>")?" ":"";a+=o===ws?u+r6:f>=0?(r.push(l),u.slice(0,f)+P1+u.slice(f)+Or+d):u+Or+(f===-2?s:d)}return[j1(e,a+(e[n]||"<?>")+(t===2?"</svg>":"")),r]};class vs{constructor({strings:t,_$litType$:n},r){let i;this.parts=[];let a=0,o=0;const s=t.length-1,u=this.parts,[l,c]=o6(t,n);if(this.el=vs.createElement(l,r),Di.currentNode=this.el.content,n===2){const f=this.el.content.firstChild;f.replaceWith(...f.childNodes)}for(;(i=Di.nextNode())!==null&&u.length<s;){if(i.nodeType===1){if(i.hasAttributes())for(const f of i.getAttributeNames())if(f.endsWith(P1)){const h=c[o++],d=i.getAttribute(f).split(Or),p=/([.?@])?(.*)/.exec(h);u.push({type:1,index:a,name:p[2],strings:d,ctor:p[1]==="."?l6:p[1]==="?"?u6:p[1]==="@"?c6:Ju}),i.removeAttribute(f)}else f.startsWith(Or)&&(u.push({type:6,index:a}),i.removeAttribute(f));if(H1.test(i.tagName)){const f=i.textContent.split(Or),h=f.length-1;if(h>0){i.textContent=Ku?Ku.emptyScript:"";for(let d=0;d<h;d++)i.append(f[d],bs()),Di.nextNode(),u.push({type:2,index:++a});i.append(f[h],bs())}}}else if(i.nodeType===8)if(i.data===L1)u.push({type:2,index:a});else{let f=-1;for(;(f=i.data.indexOf(Or,f+1))!==-1;)u.push({type:7,index:a}),f+=Or.length-1}a++}}static createElement(t,n){const r=Ti.createElement("template");return r.innerHTML=t,r}}function Ba(e,t,n=e,r){var o,s;if(t===Bi)return t;let i=r!==void 0?(o=n._$Co)==null?void 0:o[r]:n._$Cl;const a=ys(t)?void 0:t._$litDirective$;return(i==null?void 0:i.constructor)!==a&&((s=i==null?void 0:i._$AO)==null||s.call(i,!1),a===void 0?i=void 0:(i=new a(e),i._$AT(e,n,r)),r!==void 0?(n._$Co??(n._$Co=[]))[r]=i:n._$Cl=i),i!==void 0&&(t=Ba(e,i._$AS(e,t.values),i,r)),t}class s6{constructor(t,n){this._$AV=[],this._$AN=void 0,this._$AD=t,this._$AM=n}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(t){const{el:{content:n},parts:r}=this._$AD,i=((t==null?void 0:t.creationScope)??Ti).importNode(n,!0);Di.currentNode=i;let a=Di.nextNode(),o=0,s=0,u=r[0];for(;u!==void 0;){if(o===u.index){let l;u.type===2?l=new xs(a,a.nextSibling,this,t):u.type===1?l=new u.ctor(a,u.name,u.strings,this,t):u.type===6&&(l=new f6(a,this,t)),this._$AV.push(l),u=r[++s]}o!==(u==null?void 0:u.index)&&(a=Di.nextNode(),o++)}return Di.currentNode=Ti,i}p(t){let n=0;for(const r of this._$AV)r!==void 0&&(r.strings!==void 0?(r._$AI(t,r,n),n+=r.strings.length-2):r._$AI(t[n])),n++}}class xs{get _$AU(){var t;return((t=this._$AM)==null?void 0:t._$AU)??this._$Cv}constructor(t,n,r,i){this.type=2,this._$AH=at,this._$AN=void 0,this._$AA=t,this._$AB=n,this._$AM=r,this.options=i,this._$Cv=(i==null?void 0:i.isConnected)??!0}get parentNode(){let t=this._$AA.parentNode;const n=this._$AM;return n!==void 0&&(t==null?void 0:t.nodeType)===11&&(t=n.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,n=this){t=Ba(this,t,n),ys(t)?t===at||t==null||t===""?(this._$AH!==at&&this._$AR(),this._$AH=at):t!==this._$AH&&t!==Bi&&this._(t):t._$litType$!==void 0?this.$(t):t.nodeType!==void 0?this.T(t):i6(t)?this.k(t):this._(t)}S(t){return this._$AA.parentNode.insertBefore(t,this._$AB)}T(t){this._$AH!==t&&(this._$AR(),this._$AH=this.S(t))}_(t){this._$AH!==at&&ys(this._$AH)?this._$AA.nextSibling.data=t:this.T(Ti.createTextNode(t)),this._$AH=t}$(t){var a;const{values:n,_$litType$:r}=t,i=typeof r=="number"?this._$AC(t):(r.el===void 0&&(r.el=vs.createElement(j1(r.h,r.h[0]),this.options)),r);if(((a=this._$AH)==null?void 0:a._$AD)===i)this._$AH.p(n);else{const o=new s6(i,this),s=o.u(this.options);o.p(n),this.T(s),this._$AH=o}}_$AC(t){let n=V1.get(t.strings);return n===void 0&&V1.set(t.strings,n=new vs(t)),n}k(t){O1(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 xs(this.S(bs()),this.S(bs()),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?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._$Cv=t,(n=this._$AP)==null||n.call(this,t))}}let Ju=class{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(t,n,r,i,a){this.type=1,this._$AH=at,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=at}_$AI(t,n=this,r,i){const a=this.strings;let o=!1;if(a===void 0)t=Ba(this,t,n,0),o=!ys(t)||t!==this._$AH&&t!==Bi,o&&(this._$AH=t);else{const s=t;let u,l;for(t=a[0],u=0;u<a.length-1;u++)l=Ba(this,s[r+u],n,u),l===Bi&&(l=this._$AH[u]),o||(o=!ys(l)||l!==this._$AH[u]),l===at?t=at:t!==at&&(t+=(l??"")+a[u+1]),this._$AH[u]=l}o&&!i&&this.j(t)}j(t){t===at?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t??"")}};class l6 extends Ju{constructor(){super(...arguments),this.type=3}j(t){this.element[this.name]=t===at?void 0:t}}class u6 extends Ju{constructor(){super(...arguments),this.type=4}j(t){this.element.toggleAttribute(this.name,!!t&&t!==at)}}class c6 extends Ju{constructor(t,n,r,i,a){super(t,n,r,i,a),this.type=5}_$AI(t,n=this){if((t=Ba(this,t,n,0)??at)===Bi)return;const r=this._$AH,i=t===at&&r!==at||t.capture!==r.capture||t.once!==r.once||t.passive!==r.passive,a=t!==at&&(r===at||i);i&&this.element.removeEventListener(this.name,this,r),a&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){var n;typeof this._$AH=="function"?this._$AH.call(((n=this.options)==null?void 0:n.host)??this.element,t):this._$AH.handleEvent(t)}}class f6{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){Ba(this,t)}}const Jh=ms.litHtmlPolyfillSupport;Jh==null||Jh(vs,xs),(ms.litHtmlVersions??(ms.litHtmlVersions=[])).push("3.1.2");const As=(e,t,n)=>{const r=(n==null?void 0:n.renderBefore)??t;let i=r._$litPart$;if(i===void 0){const a=(n==null?void 0:n.renderBefore)??null;r._$litPart$=i=new xs(t.insertBefore(bs(),a),a,void 0,n??{})}return i._$AI(e),i};/**
|
|
7
21
|
* @license
|
|
8
22
|
* Copyright 2017 Google LLC
|
|
9
23
|
* SPDX-License-Identifier: BSD-3-Clause
|
|
10
|
-
*/
|
|
11
|
-
\f\r]`,fs=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,s1=/-->/g,l1=/>/g,_i=RegExp(`>|${Ch}(?:([^\\s"'>=/]+)(${Ch}*=${Ch}*(?:[^
|
|
12
|
-
\f\r"'\`<>=]|("|')|))|$)`,"g"),u1=/'/g,f1=/"/g,c1=/^(?:script|style|textarea|title)$/i,aC=e=>(t,...n)=>({_$litType$:e,strings:t,values:n}),mn=aC(1),Ca=Symbol.for("lit-noChange"),rt=Symbol.for("lit-nothing"),h1=new WeakMap,Si=Ei.createTreeWalker(Ei,129);function d1(e,t){if(!Array.isArray(e)||!e.hasOwnProperty("raw"))throw Error("invalid template strings array");return r1!==void 0?r1.createHTML(t):t}const oC=(e,t)=>{const n=e.length-1,r=[];let i,a=t===2?"<svg>":"",o=fs;for(let s=0;s<n;s++){const u=e[s];let l,f,c=-1,h=0;for(;h<u.length&&(o.lastIndex=h,f=o.exec(u),f!==null);)h=o.lastIndex,o===fs?f[1]==="!--"?o=s1:f[1]!==void 0?o=l1:f[2]!==void 0?(c1.test(f[2])&&(i=RegExp("</"+f[2],"g")),o=_i):f[3]!==void 0&&(o=_i):o===_i?f[0]===">"?(o=i??fs,c=-1):f[1]===void 0?c=-2:(c=o.lastIndex-f[2].length,l=f[1],o=f[3]===void 0?_i:f[3]==='"'?f1:u1):o===f1||o===u1?o=_i:o===s1||o===l1?o=fs:(o=_i,i=void 0);const d=o===_i&&e[s+1].startsWith("/>")?" ":"";a+=o===fs?u+rC:c>=0?(r.push(l),u.slice(0,c)+i1+u.slice(c)+Ir+d):u+Ir+(c===-2?s:d)}return[d1(e,a+(e[n]||"<?>")+(t===2?"</svg>":"")),r]};class cs{constructor({strings:t,_$litType$:n},r){let i;this.parts=[];let a=0,o=0;const s=t.length-1,u=this.parts,[l,f]=oC(t,n);if(this.el=cs.createElement(l,r),Si.currentNode=this.el.content,n===2){const c=this.el.content.firstChild;c.replaceWith(...c.childNodes)}for(;(i=Si.nextNode())!==null&&u.length<s;){if(i.nodeType===1){if(i.hasAttributes())for(const c of i.getAttributeNames())if(c.endsWith(i1)){const h=f[o++],d=i.getAttribute(c).split(Ir),p=/([.?@])?(.*)/.exec(h);u.push({type:1,index:a,name:p[2],strings:d,ctor:p[1]==="."?lC:p[1]==="?"?uC:p[1]==="@"?fC:Iu}),i.removeAttribute(c)}else c.startsWith(Ir)&&(u.push({type:6,index:a}),i.removeAttribute(c));if(c1.test(i.tagName)){const c=i.textContent.split(Ir),h=c.length-1;if(h>0){i.textContent=Tu?Tu.emptyScript:"";for(let d=0;d<h;d++)i.append(c[d],ls()),Si.nextNode(),u.push({type:2,index:++a});i.append(c[h],ls())}}}else if(i.nodeType===8)if(i.data===a1)u.push({type:2,index:a});else{let c=-1;for(;(c=i.data.indexOf(Ir,c+1))!==-1;)u.push({type:7,index:a}),c+=Ir.length-1}a++}}static createElement(t,n){const r=Ei.createElement("template");return r.innerHTML=t,r}}function ka(e,t,n=e,r){var o,s;if(t===Ca)return t;let i=r!==void 0?(o=n._$Co)==null?void 0:o[r]:n._$Cl;const a=us(t)?void 0:t._$litDirective$;return(i==null?void 0:i.constructor)!==a&&((s=i==null?void 0:i._$AO)==null||s.call(i,!1),a===void 0?i=void 0:(i=new a(e),i._$AT(e,n,r)),r!==void 0?(n._$Co??(n._$Co=[]))[r]=i:n._$Cl=i),i!==void 0&&(t=ka(e,i._$AS(e,t.values),i,r)),t}class sC{constructor(t,n){this._$AV=[],this._$AN=void 0,this._$AD=t,this._$AM=n}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(t){const{el:{content:n},parts:r}=this._$AD,i=((t==null?void 0:t.creationScope)??Ei).importNode(n,!0);Si.currentNode=i;let a=Si.nextNode(),o=0,s=0,u=r[0];for(;u!==void 0;){if(o===u.index){let l;u.type===2?l=new hs(a,a.nextSibling,this,t):u.type===1?l=new u.ctor(a,u.name,u.strings,this,t):u.type===6&&(l=new cC(a,this,t)),this._$AV.push(l),u=r[++s]}o!==(u==null?void 0:u.index)&&(a=Si.nextNode(),o++)}return Si.currentNode=Ei,i}p(t){let n=0;for(const r of this._$AV)r!==void 0&&(r.strings!==void 0?(r._$AI(t,r,n),n+=r.strings.length-2):r._$AI(t[n])),n++}}class hs{get _$AU(){var t;return((t=this._$AM)==null?void 0:t._$AU)??this._$Cv}constructor(t,n,r,i){this.type=2,this._$AH=rt,this._$AN=void 0,this._$AA=t,this._$AB=n,this._$AM=r,this.options=i,this._$Cv=(i==null?void 0:i.isConnected)??!0}get parentNode(){let t=this._$AA.parentNode;const n=this._$AM;return n!==void 0&&(t==null?void 0:t.nodeType)===11&&(t=n.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,n=this){t=ka(this,t,n),us(t)?t===rt||t==null||t===""?(this._$AH!==rt&&this._$AR(),this._$AH=rt):t!==this._$AH&&t!==Ca&&this._(t):t._$litType$!==void 0?this.g(t):t.nodeType!==void 0?this.$(t):iC(t)?this.T(t):this._(t)}k(t){return this._$AA.parentNode.insertBefore(t,this._$AB)}$(t){this._$AH!==t&&(this._$AR(),this._$AH=this.k(t))}_(t){this._$AH!==rt&&us(this._$AH)?this._$AA.nextSibling.data=t:this.$(Ei.createTextNode(t)),this._$AH=t}g(t){var a;const{values:n,_$litType$:r}=t,i=typeof r=="number"?this._$AC(t):(r.el===void 0&&(r.el=cs.createElement(d1(r.h,r.h[0]),this.options)),r);if(((a=this._$AH)==null?void 0:a._$AD)===i)this._$AH.p(n);else{const o=new sC(i,this),s=o.u(this.options);o.p(n),this.$(s),this._$AH=o}}_$AC(t){let n=h1.get(t.strings);return n===void 0&&h1.set(t.strings,n=new cs(t)),n}T(t){o1(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 hs(this.k(ls()),this.k(ls()),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?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._$Cv=t,(n=this._$AP)==null||n.call(this,t))}}let Iu=class{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(t,n,r,i,a){this.type=1,this._$AH=rt,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=rt}_$AI(t,n=this,r,i){const a=this.strings;let o=!1;if(a===void 0)t=ka(this,t,n,0),o=!us(t)||t!==this._$AH&&t!==Ca,o&&(this._$AH=t);else{const s=t;let u,l;for(t=a[0],u=0;u<a.length-1;u++)l=ka(this,s[r+u],n,u),l===Ca&&(l=this._$AH[u]),o||(o=!us(l)||l!==this._$AH[u]),l===rt?t=rt:t!==rt&&(t+=(l??"")+a[u+1]),this._$AH[u]=l}o&&!i&&this.O(t)}O(t){t===rt?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t??"")}};class lC extends Iu{constructor(){super(...arguments),this.type=3}O(t){this.element[this.name]=t===rt?void 0:t}}class uC extends Iu{constructor(){super(...arguments),this.type=4}O(t){this.element.toggleAttribute(this.name,!!t&&t!==rt)}}class fC extends Iu{constructor(t,n,r,i,a){super(t,n,r,i,a),this.type=5}_$AI(t,n=this){if((t=ka(this,t,n,0)??rt)===Ca)return;const r=this._$AH,i=t===rt&&r!==rt||t.capture!==r.capture||t.once!==r.once||t.passive!==r.passive,a=t!==rt&&(r===rt||i);i&&this.element.removeEventListener(this.name,this,r),a&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){var n;typeof this._$AH=="function"?this._$AH.call(((n=this.options)==null?void 0:n.host)??this.element,t):this._$AH.handleEvent(t)}}class cC{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){ka(this,t)}}const kh=ss.litHtmlPolyfillSupport;kh==null||kh(cs,hs),(ss.litHtmlVersions??(ss.litHtmlVersions=[])).push("3.1.0");const Th=(e,t,n)=>{const r=(n==null?void 0:n.renderBefore)??t;let i=r._$litPart$;if(i===void 0){const a=(n==null?void 0:n.renderBefore)??null;r._$litPart$=i=new hs(t.insertBefore(ls(),a),a,void 0,n??{})}return i._$AI(e),i};/**
|
|
24
|
+
*/class ec extends Ia{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){var n;const t=super.createRenderRoot();return(n=this.renderOptions).renderBefore??(n.renderBefore=t.firstChild),t}update(t){const n=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=As(n,this.renderRoot,this.renderOptions)}connectedCallback(){var t;super.connectedCallback(),(t=this._$Do)==null||t.setConnected(!0)}disconnectedCallback(){var t;super.disconnectedCallback(),(t=this._$Do)==null||t.setConnected(!1)}render(){return Bi}}ec._$litElement$=!0,ec.finalized=!0,(I_=globalThis.litElementHydrateSupport)==null||I_.call(globalThis,{LitElement:ec});const ed=globalThis.litElementPolyfillSupport;ed==null||ed({LitElement:ec}),(globalThis.litElementVersions??(globalThis.litElementVersions=[])).push("4.0.4");/**
|
|
13
25
|
* @license
|
|
14
26
|
* Copyright 2017 Google LLC
|
|
15
27
|
* SPDX-License-Identifier: BSD-3-Clause
|
|
16
|
-
*/const
|
|
28
|
+
*/const h6={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},d6=e=>(...t)=>({_$litDirective$:e,values:t});let p6=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)}};/**
|
|
17
29
|
* @license
|
|
18
30
|
* Copyright 2018 Google LLC
|
|
19
31
|
* SPDX-License-Identifier: BSD-3-Clause
|
|
20
|
-
*/const
|
|
32
|
+
*/const $1="important",g6=" !"+$1,m6=d6(class extends p6{constructor(e){var t;if(super(e),e.type!==h6.ATTRIBUTE||e.name!=="style"||((t=e.strings)==null?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.includes("-")?n:n.replace(/(?:^(webkit|moz|ms|o)|)(?=[A-Z])/g,"-$&").toLowerCase()}:${r};`},"")}update(e,[t]){const{style:n}=e.element;if(this.ft===void 0)return this.ft=new Set(Object.keys(t)),this.render(t);for(const r of this.ft)t[r]==null&&(this.ft.delete(r),r.includes("-")?n.removeProperty(r):n[r]=null);for(const r in t){const i=t[r];if(i!=null){this.ft.add(r);const a=typeof i=="string"&&i.endsWith(g6);r.includes("-")||a?n.setProperty(r,a?i.slice(0,-11):i,a?$1:""):n[r]=i}}return Bi}}),b6="data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3cstyle%3e.spinner_ajPY{transform-origin:center;animation:spinner_AtaB%20.75s%20infinite%20linear}@keyframes%20spinner_AtaB{100%25{transform:rotate(360deg)}}%3c/style%3e%3cpath%20d='M12,1A11,11,0,1,0,23,12,11,11,0,0,0,12,1Zm0,19a8,8,0,1,1,8-8A8,8,0,0,1,12,20Z'%20opacity='.25'/%3e%3cpath%20d='M10.14,1.16a11,11,0,0,0-9,8.92A1.59,1.59,0,0,0,2.46,12,1.52,1.52,0,0,0,4.11,10.7a8,8,0,0,1,6.66-6.61A1.42,1.42,0,0,0,12,2.69h0A1.57,1.57,0,0,0,10.14,1.16Z'%20class='spinner_ajPY'/%3e%3c/svg%3e",y6=`
|
|
33
|
+
.genome-spy {
|
|
21
34
|
font-family: system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
|
22
35
|
position: relative;
|
|
36
|
+
display: flex;
|
|
37
|
+
flex-direction: column;
|
|
38
|
+
}
|
|
39
|
+
.genome-spy .canvas-wrapper {
|
|
40
|
+
position: relative;
|
|
41
|
+
flex-grow: 1;
|
|
42
|
+
overflow: hidden;
|
|
23
43
|
}
|
|
24
44
|
.genome-spy canvas {
|
|
25
45
|
transform: scale(1, 1);
|
|
@@ -38,14 +58,14 @@
|
|
|
38
58
|
opacity: 0;
|
|
39
59
|
transition: opacity 0.7s;
|
|
40
60
|
}
|
|
41
|
-
.genome-spy.loading canvas {
|
|
61
|
+
.genome-spy .loading > canvas {
|
|
42
62
|
transform: scale(0.95, 0.95);
|
|
43
63
|
opacity: 0;
|
|
44
64
|
}
|
|
45
|
-
.genome-spy.loading .loading-message .message {
|
|
65
|
+
.genome-spy .loading > .loading-message .message {
|
|
46
66
|
opacity: 1;
|
|
47
67
|
}
|
|
48
|
-
.genome-spy.loading .ellipsis {
|
|
68
|
+
.genome-spy .loading > .loading-message .message .ellipsis {
|
|
49
69
|
animation: blinker 1s linear infinite;
|
|
50
70
|
}
|
|
51
71
|
@keyframes blinker {
|
|
@@ -157,11 +177,51 @@
|
|
|
157
177
|
border: 1px solid red;
|
|
158
178
|
padding: 10px;
|
|
159
179
|
background: #fff0f0;
|
|
160
|
-
}`;function wC(e,t){var n=e.getBoundingClientRect();return[t.clientX-n.left-e.clientLeft,t.clientY-n.top-e.clientTop]}function Bu(e,t){return e.length==t.length&&e.every((n,r)=>e[r]===t[r])}function Lt(e){return Array.isArray(e)?e:typeof e<"u"?[e]:[]}function ds(e){return e[e.length-1]}class vC{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 ds(this.enabledStack)??!0}pushEnabledState(t){this.enabledStack.push(t),t||(this.visible=!1)}popEnabledState(){this.enabledStack.pop()}handleMouseMove(t){this.mouseCoords=wC(this.container,t);const n=performance.now();!this.visible&&!this._isPenalty()&&n-this._previousMove>500&&(this._penaltyUntil=n+70),this._lastCoords&&xC(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&&(Th("",this.element),this.visible=!1),this._previousTooltipDatum=void 0;return}Th(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(mn` ${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 xC(e,t){let n=0;for(let r=0;r<e.length;r++)n+=(e[r]-t[r])**2;return Math.sqrt(n)}const AC="RawCode",EC="Literal",_C="Property",SC="Identifier",CC="ArrayExpression",kC="BinaryExpression",TC="CallExpression",IC="ConditionalExpression",BC="LogicalExpression",DC="MemberExpression",FC="ObjectExpression",RC="UnaryExpression";function bn(e){this.type=e}bn.prototype.visit=function(e){let t,n,r;if(e(this))return 1;for(t=MC(this),n=0,r=t.length;n<r;++n)if(t[n].visit(e))return 1};function MC(e){switch(e.type){case CC:return e.elements;case kC:case BC:return[e.left,e.right];case TC:return[e.callee].concat(e.arguments);case IC:return[e.test,e.consequent,e.alternate];case DC:return[e.object,e.property];case FC:return e.properties;case _C:return[e.key,e.value];case RC:return[e.argument];case SC:case EC:case AC:default:return[]}}var Fn,K,U,xt,ke,Du=1,ps=2,Ci=3,Br=4,Fu=5,ki=6,Nt=7,gs=8,PC=9;Fn={},Fn[Du]="Boolean",Fn[ps]="<end>",Fn[Ci]="Identifier",Fn[Br]="Keyword",Fn[Fu]="Null",Fn[ki]="Numeric",Fn[Nt]="Punctuator",Fn[gs]="String",Fn[PC]="RegularExpression";var LC="ArrayExpression",NC="BinaryExpression",OC="CallExpression",zC="ConditionalExpression",g1="Identifier",UC="Literal",GC="LogicalExpression",HC="MemberExpression",VC="ObjectExpression",jC="Property",qC="UnaryExpression",ut="Unexpected token %0",ZC="Unexpected number",WC="Unexpected string",YC="Unexpected identifier",QC="Unexpected reserved word",$C="Unexpected end of input",Ih="Invalid regular expression",Bh="Invalid regular expression: missing /",m1="Octal literals are not allowed in strict mode.",XC="Duplicate data property in object literal not allowed in strict mode",mt="ILLEGAL",ms="Disabled.",KC=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]"),JC=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 Ru(e,t){if(!e)throw new Error("ASSERT: "+t)}function nr(e){return e>=48&&e<=57}function Dh(e){return"0123456789abcdefABCDEF".indexOf(e)>=0}function bs(e){return"01234567".indexOf(e)>=0}function e6(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 ys(e){return e===10||e===13||e===8232||e===8233}function ws(e){return e===36||e===95||e>=65&&e<=90||e>=97&&e<=122||e===92||e>=128&&KC.test(String.fromCharCode(e))}function Mu(e){return e===36||e===95||e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||e===92||e>=128&&JC.test(String.fromCharCode(e))}const t6={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 b1(){for(;U<xt;){const e=K.charCodeAt(U);if(e6(e)||ys(e))++U;else break}}function Fh(e){var t,n,r,i=0;for(n=e==="u"?4:2,t=0;t<n;++t)U<xt&&Dh(K[U])?(r=K[U++],i=i*16+"0123456789abcdef".indexOf(r.toLowerCase())):ye({},ut,mt);return String.fromCharCode(i)}function n6(){var e,t,n,r;for(e=K[U],t=0,e==="}"&&ye({},ut,mt);U<xt&&(e=K[U++],!!Dh(e));)t=t*16+"0123456789abcdef".indexOf(e.toLowerCase());return(t>1114111||e!=="}")&&ye({},ut,mt),t<=65535?String.fromCharCode(t):(n=(t-65536>>10)+55296,r=(t-65536&1023)+56320,String.fromCharCode(n,r))}function y1(){var e,t;for(e=K.charCodeAt(U++),t=String.fromCharCode(e),e===92&&(K.charCodeAt(U)!==117&&ye({},ut,mt),++U,e=Fh("u"),(!e||e==="\\"||!ws(e.charCodeAt(0)))&&ye({},ut,mt),t=e);U<xt&&(e=K.charCodeAt(U),!!Mu(e));)++U,t+=String.fromCharCode(e),e===92&&(t=t.substr(0,t.length-1),K.charCodeAt(U)!==117&&ye({},ut,mt),++U,e=Fh("u"),(!e||e==="\\"||!Mu(e.charCodeAt(0)))&&ye({},ut,mt),t+=e);return t}function r6(){var e,t;for(e=U++;U<xt;){if(t=K.charCodeAt(U),t===92)return U=e,y1();if(Mu(t))++U;else break}return K.slice(e,U)}function i6(){var e,t,n;return e=U,t=K.charCodeAt(U)===92?y1():r6(),t.length===1?n=Ci:t6.hasOwnProperty(t)?n=Br:t==="null"?n=Fu:t==="true"||t==="false"?n=Du:n=Ci,{type:n,value:t,start:e,end:U}}function Rh(){var e=U,t=K.charCodeAt(U),n,r=K[U],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++U,{type:Nt,value:String.fromCharCode(t),start:e,end:U};default:if(n=K.charCodeAt(U+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 U+=2,{type:Nt,value:String.fromCharCode(t)+String.fromCharCode(n),start:e,end:U};case 33:case 61:return U+=2,K.charCodeAt(U)===61&&++U,{type:Nt,value:K.slice(e,U),start:e,end:U}}}if(o=K.substr(U,4),o===">>>=")return U+=4,{type:Nt,value:o,start:e,end:U};if(a=o.substr(0,3),a===">>>"||a==="<<="||a===">>=")return U+=3,{type:Nt,value:a,start:e,end:U};if(i=a.substr(0,2),r===i[1]&&"+-<>&|".indexOf(r)>=0||i==="=>")return U+=2,{type:Nt,value:i,start:e,end:U};if(i==="//"&&ye({},ut,mt),"<>=!+-*%&|^/".indexOf(r)>=0)return++U,{type:Nt,value:r,start:e,end:U};ye({},ut,mt)}function a6(e){let t="";for(;U<xt&&Dh(K[U]);)t+=K[U++];return t.length===0&&ye({},ut,mt),ws(K.charCodeAt(U))&&ye({},ut,mt),{type:ki,value:parseInt("0x"+t,16),start:e,end:U}}function o6(e){let t="0"+K[U++];for(;U<xt&&bs(K[U]);)t+=K[U++];return(ws(K.charCodeAt(U))||nr(K.charCodeAt(U)))&&ye({},ut,mt),{type:ki,value:parseInt(t,8),octal:!0,start:e,end:U}}function w1(){var e,t,n;if(n=K[U],Ru(nr(n.charCodeAt(0))||n===".","Numeric literal must start with a decimal digit or a decimal point"),t=U,e="",n!=="."){if(e=K[U++],n=K[U],e==="0"){if(n==="x"||n==="X")return++U,a6(t);if(bs(n))return o6(t);n&&nr(n.charCodeAt(0))&&ye({},ut,mt)}for(;nr(K.charCodeAt(U));)e+=K[U++];n=K[U]}if(n==="."){for(e+=K[U++];nr(K.charCodeAt(U));)e+=K[U++];n=K[U]}if(n==="e"||n==="E")if(e+=K[U++],n=K[U],(n==="+"||n==="-")&&(e+=K[U++]),nr(K.charCodeAt(U)))for(;nr(K.charCodeAt(U));)e+=K[U++];else ye({},ut,mt);return ws(K.charCodeAt(U))&&ye({},ut,mt),{type:ki,value:parseFloat(e),start:t,end:U}}function s6(){var e="",t,n,r,i,a=!1;for(t=K[U],Ru(t==="'"||t==='"',"String literal must starts with a quote"),n=U,++U;U<xt;)if(r=K[U++],r===t){t="";break}else if(r==="\\")if(r=K[U++],!r||!ys(r.charCodeAt(0)))switch(r){case"u":case"x":K[U]==="{"?(++U,e+=n6()):e+=Fh(r);break;case"n":e+=`
|
|
161
|
-
|
|
162
|
-
`&&++U;else{if(ys(r.charCodeAt(0)))break;e+=r}return t!==""&&ye({},ut,mt),{type:gs,value:e,octal:a,start:n,end:U}}function l6(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";ye({},Ih)}).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"x"));try{new RegExp(n)}catch{ye({},Ih)}try{return new RegExp(e,t)}catch{return null}}function u6(){var e,t,n,r,i;for(e=K[U],Ru(e==="/","Regular expression literal must start with a slash"),t=K[U++],n=!1,r=!1;U<xt;)if(e=K[U++],t+=e,e==="\\")e=K[U++],ys(e.charCodeAt(0))&&ye({},Bh),t+=e;else if(ys(e.charCodeAt(0)))ye({},Bh);else if(n)e==="]"&&(n=!1);else if(e==="/"){r=!0;break}else e==="["&&(n=!0);return r||ye({},Bh),i=t.substr(1,t.length-2),{value:i,literal:t}}function f6(){var e,t,n;for(t="",n="";U<xt&&(e=K[U],!!Mu(e.charCodeAt(0)));)++U,e==="\\"&&U<xt?ye({},ut,mt):(n+=e,t+=e);return n.search(/[^gimuy]/g)>=0&&ye({},Ih,n),{value:n,literal:t}}function c6(){var e,t,n,r;return ke=null,b1(),e=U,t=u6(),n=f6(),r=l6(t.value,n.value),{literal:t.literal+n.literal,value:r,regex:{pattern:t.value,flags:n.value},start:e,end:U}}function h6(e){return e.type===Ci||e.type===Br||e.type===Du||e.type===Fu}function v1(){if(b1(),U>=xt)return{type:ps,start:U,end:U};const e=K.charCodeAt(U);return ws(e)?i6():e===40||e===41||e===59?Rh():e===39||e===34?s6():e===46?nr(K.charCodeAt(U+1))?w1():Rh():nr(e)?w1():Rh()}function Ot(){const e=ke;return U=e.end,ke=v1(),U=e.end,e}function x1(){const e=U;ke=v1(),U=e}function d6(e){const t=new bn(LC);return t.elements=e,t}function A1(e,t,n){const r=new bn(e==="||"||e==="&&"?GC:NC);return r.operator=e,r.left=t,r.right=n,r}function p6(e,t){const n=new bn(OC);return n.callee=e,n.arguments=t,n}function g6(e,t,n){const r=new bn(zC);return r.test=e,r.consequent=t,r.alternate=n,r}function Mh(e){const t=new bn(g1);return t.name=e,t}function vs(e){const t=new bn(UC);return t.value=e.value,t.raw=K.slice(e.start,e.end),e.regex&&(t.raw==="//"&&(t.raw="/(?:)/"),t.regex=e.regex),t}function E1(e,t,n){const r=new bn(HC);return r.computed=e==="[",r.object=t,r.property=n,r.computed||(n.member=!0),r}function m6(e){const t=new bn(VC);return t.properties=e,t}function _1(e,t,n){const r=new bn(jC);return r.key=t,r.value=n,r.kind=e,r}function b6(e,t){const n=new bn(qC);return n.operator=e,n.argument=t,n.prefix=!0,n}function ye(e,t){var n,r=Array.prototype.slice.call(arguments,2),i=t.replace(/%(\d)/g,(a,o)=>(Ru(o<r.length,"Message reference must be in range"),r[o]));throw n=new Error(i),n.index=U,n.description=i,n}function Pu(e){e.type===ps&&ye(e,$C),e.type===ki&&ye(e,ZC),e.type===gs&&ye(e,WC),e.type===Ci&&ye(e,YC),e.type===Br&&ye(e,QC),ye(e,ut,e.value)}function At(e){const t=Ot();(t.type!==Nt||t.value!==e)&&Pu(t)}function Ue(e){return ke.type===Nt&&ke.value===e}function Ph(e){return ke.type===Br&&ke.value===e}function y6(){const e=[];for(U=ke.start,At("[");!Ue("]");)Ue(",")?(Ot(),e.push(null)):(e.push(Ti()),Ue("]")||At(","));return Ot(),d6(e)}function S1(){U=ke.start;const e=Ot();return e.type===gs||e.type===ki?(e.octal&&ye(e,m1),vs(e)):Mh(e.value)}function w6(){var e,t,n,r;if(U=ke.start,e=ke,e.type===Ci)return n=S1(),At(":"),r=Ti(),_1("init",n,r);if(e.type===ps||e.type===Nt)Pu(e);else return t=S1(),At(":"),r=Ti(),_1("init",t,r)}function v6(){var e=[],t,n,r,i={},a=String;for(U=ke.start,At("{");!Ue("}");)t=w6(),t.key.type===g1?n=t.key.name:n=a(t.key.value),r="$"+n,Object.prototype.hasOwnProperty.call(i,r)?ye({},XC):i[r]=!0,e.push(t),Ue("}")||At(",");return At("}"),m6(e)}function x6(){At("(");const e=Lh();return At(")"),e}const A6={if:1};function E6(){var e,t,n;if(Ue("("))return x6();if(Ue("["))return y6();if(Ue("{"))return v6();if(e=ke.type,U=ke.start,e===Ci||A6[ke.value])n=Mh(Ot().value);else if(e===gs||e===ki)ke.octal&&ye(ke,m1),n=vs(Ot());else{if(e===Br)throw new Error(ms);e===Du?(t=Ot(),t.value=t.value==="true",n=vs(t)):e===Fu?(t=Ot(),t.value=null,n=vs(t)):Ue("/")||Ue("/=")?(n=vs(c6()),x1()):Pu(Ot())}return n}function _6(){const e=[];if(At("("),!Ue(")"))for(;U<xt&&(e.push(Ti()),!Ue(")"));)At(",");return At(")"),e}function S6(){U=ke.start;const e=Ot();return h6(e)||Pu(e),Mh(e.value)}function C6(){return At("."),S6()}function k6(){At("[");const e=Lh();return At("]"),e}function T6(){var e,t,n;for(e=E6();;)if(Ue("."))n=C6(),e=E1(".",e,n);else if(Ue("("))t=_6(),e=p6(e,t);else if(Ue("["))n=k6(),e=E1("[",e,n);else break;return e}function C1(){const e=T6();if(ke.type===Nt&&(Ue("++")||Ue("--")))throw new Error(ms);return e}function Lu(){var e,t;if(ke.type!==Nt&&ke.type!==Br)t=C1();else{if(Ue("++")||Ue("--"))throw new Error(ms);if(Ue("+")||Ue("-")||Ue("~")||Ue("!"))e=Ot(),t=Lu(),t=b6(e.value,t);else{if(Ph("delete")||Ph("void")||Ph("typeof"))throw new Error(ms);t=C1()}}return t}function k1(e){let t=0;if(e.type!==Nt&&e.type!==Br)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 I6(){var e,t,n,r,i,a,o,s,u,l;if(e=ke,u=Lu(),r=ke,i=k1(r),i===0)return u;for(r.prec=i,Ot(),t=[e,ke],o=Lu(),a=[u,r,o];(i=k1(ke))>0;){for(;a.length>2&&i<=a[a.length-2].prec;)o=a.pop(),s=a.pop().value,u=a.pop(),t.pop(),n=A1(s,u,o),a.push(n);r=Ot(),r.prec=i,a.push(r),t.push(ke),n=Lu(),a.push(n)}for(l=a.length-1,n=a[l],t.pop();l>1;)t.pop(),n=A1(a[l-1].value,a[l-2],n),l-=2;return n}function Ti(){var e,t,n;return e=I6(),Ue("?")&&(Ot(),t=Ti(),At(":"),n=Ti(),e=g6(e,t,n)),e}function Lh(){const e=Ti();if(Ue(","))throw new Error(ms);return e}function B6(e){K=e,U=0,xt=K.length,ke=null,x1();const t=Lh();if(ke.type!==ps)throw new Error("Unexpect token after expression.");return t}var D6={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 T1(e){function t(o,s,u,l){let f=e(s[0]);return u&&(f=u+"("+f+")",u.lastIndexOf("new ",0)===0&&(f="("+f+")")),f+"."+o+(l<0?"":l===0?"()":"("+s.slice(1).map(e).join(",")+")")}function n(o,s,u){return l=>t(o,l,s,u)}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&&Qe("Missing arguments to clamp function."),o.length>3&&Qe("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&&Qe("Missing arguments to if function."),o.length>3&&Qe("Too many arguments to if function.");const s=o.map(e);return"("+s[0]+"?"+s[1]+":"+s[2]+")"}}}function F6(e){const t=e&&e.length-1;return t&&(e[0]==='"'&&e[t]==='"'||e[0]==="'"&&e[t]==="'")?e.slice(1,-1):e}function R6(e){e=e||{};const t=e.allowed?pu(e.allowed):{},n=e.forbidden?pu(e.forbidden):{},r=e.constants||D6,i=(e.functions||T1)(c),a=e.globalvar,o=e.fieldvar,s=Mt(a)?a:p=>`${a}["${p}"]`;let u={},l={},f=0;function c(p){if(Pe(p))return p;const b=h[p.type];return b==null&&Qe("Unsupported type: "+p.type),b(p)}const h={Literal:p=>p.raw,Identifier:p=>{const b=p.name;return f>0?b:mi(n,b)?Qe("Illegal identifier: "+b):mi(r,b)?r[b]:mi(t,b)?b:(u[b]=1,s(b))},MemberExpression:p=>{const b=!p.computed,y=c(p.object);b&&(f+=1);const w=c(p.property);return y===o&&(l[F6(w)]=1),b&&(f-=1),y+(b?"."+w:"["+w+"]")},CallExpression:p=>{p.callee.type!=="Identifier"&&Qe("Illegal callee type: "+p.callee.type);const b=p.callee.name,y=p.arguments,w=mi(i,b)&&i[b];return w||Qe("Unrecognized function: "+b),Mt(w)?w(y):w+"("+y.map(c).join(",")+")"},ArrayExpression:p=>"["+p.elements.map(c).join(",")+"]",BinaryExpression:p=>"("+c(p.left)+" "+p.operator+" "+c(p.right)+")",UnaryExpression:p=>"("+p.operator+c(p.argument)+")",ConditionalExpression:p=>"("+c(p.test)+"?"+c(p.consequent)+":"+c(p.alternate)+")",LogicalExpression:p=>"("+c(p.left)+p.operator+c(p.right)+")",ObjectExpression:p=>"{"+p.properties.map(c).join(",")+"}",Property:p=>{f+=1;const b=c(p.key);return f-=1,b+":"+c(p.value)}};function d(p){const b={code:c(p),globals:Object.keys(u),fields:Object.keys(l)};return u={},l={},b}return d.functions=i,d.constants=r,d}function I1(e,t,n){return n=(n-e)/(t-e),n=Math.max(0,Math.min(1,n)),n*n*(3-2*n)}function xs(e,t=0,n=1){return Math.max(t,Math.min(n,e))}function M6(e,t,n){return xs((n-e)/(t-e),0,1)}const B1={clamp:xs,isArray:Ft,isBoolean:Go,isDefined(e){return e!==void 0},isNumber:Ct,isObject:Rt,isRegExp:M_,isString:Pe,isValid(e){return e!=null&&e===e},lerp:em,linearstep:M6,smoothstep:I1};function P6(e){const t=T1(e);for(const n in B1)t[n]=`this.${n}`;return t}const L6=R6({forbidden:[],allowed:["datum"],globalvar:"globalObject",fieldvar:"datum",functions:P6});function Nu(e,t={}){try{const n=B6(e),r=L6(n),i=Function("datum","globalObject",`"use strict"; return (${r.code});`).bind(B1),a=o=>i(o,t);return a.fields=r.fields,a.globals=r.globals,a.code=r.code,a}catch(n){throw new Error(`Invalid expression: ${e}, ${n.message}`)}}function Rn(e,t){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(t).domain(e);break}return this}function Dr(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 Nh=Symbol("implicit");function Oh(){var e=new _r,t=[],n=[],r=Nh;function i(a){let o=e.get(a);if(o===void 0){if(r!==Nh)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 _r;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 Oh(t,n).unknown(r)},Rn.apply(i,arguments),i}function Ta(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function As(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function Fr(){}var Ii=.7,Ia=1/Ii,Ba="\\s*([+-]?\\d+)\\s*",Es="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",Mn="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",N6=/^#([0-9a-f]{3,8})$/,O6=new RegExp(`^rgb\\(${Ba},${Ba},${Ba}\\)$`),z6=new RegExp(`^rgb\\(${Mn},${Mn},${Mn}\\)$`),U6=new RegExp(`^rgba\\(${Ba},${Ba},${Ba},${Es}\\)$`),G6=new RegExp(`^rgba\\(${Mn},${Mn},${Mn},${Es}\\)$`),H6=new RegExp(`^hsl\\(${Es},${Mn},${Mn}\\)$`),V6=new RegExp(`^hsla\\(${Es},${Mn},${Mn},${Es}\\)$`),D1={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};Ta(Fr,Rr,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:F1,formatHex:F1,formatHex8:j6,formatHsl:q6,formatRgb:R1,toString:R1});function F1(){return this.rgb().formatHex()}function j6(){return this.rgb().formatHex8()}function q6(){return O1(this).formatHsl()}function R1(){return this.rgb().formatRgb()}function Rr(e){var t,n;return e=(e+"").trim().toLowerCase(),(t=N6.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?M1(t):n===3?new ft(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?Ou(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?Ou(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=O6.exec(e))?new ft(t[1],t[2],t[3],1):(t=z6.exec(e))?new ft(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=U6.exec(e))?Ou(t[1],t[2],t[3],t[4]):(t=G6.exec(e))?Ou(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=H6.exec(e))?N1(t[1],t[2]/100,t[3]/100,1):(t=V6.exec(e))?N1(t[1],t[2]/100,t[3]/100,t[4]):D1.hasOwnProperty(e)?M1(D1[e]):e==="transparent"?new ft(NaN,NaN,NaN,0):null}function M1(e){return new ft(e>>16&255,e>>8&255,e&255,1)}function Ou(e,t,n,r){return r<=0&&(e=t=n=NaN),new ft(e,t,n,r)}function zh(e){return e instanceof Fr||(e=Rr(e)),e?(e=e.rgb(),new ft(e.r,e.g,e.b,e.opacity)):new ft}function zu(e,t,n,r){return arguments.length===1?zh(e):new ft(e,t,n,r??1)}function ft(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}Ta(ft,zu,As(Fr,{brighter(e){return e=e==null?Ia:Math.pow(Ia,e),new ft(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?Ii:Math.pow(Ii,e),new ft(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new ft(Bi(this.r),Bi(this.g),Bi(this.b),Uu(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:P1,formatHex:P1,formatHex8:Z6,formatRgb:L1,toString:L1}));function P1(){return`#${Di(this.r)}${Di(this.g)}${Di(this.b)}`}function Z6(){return`#${Di(this.r)}${Di(this.g)}${Di(this.b)}${Di((isNaN(this.opacity)?1:this.opacity)*255)}`}function L1(){const e=Uu(this.opacity);return`${e===1?"rgb(":"rgba("}${Bi(this.r)}, ${Bi(this.g)}, ${Bi(this.b)}${e===1?")":`, ${e})`}`}function Uu(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function Bi(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Di(e){return e=Bi(e),(e<16?"0":"")+e.toString(16)}function N1(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new yn(e,t,n,r)}function O1(e){if(e instanceof yn)return new yn(e.h,e.s,e.l,e.opacity);if(e instanceof Fr||(e=Rr(e)),!e)return new yn;if(e instanceof yn)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,u=(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/=u<.5?a+i:2-a-i,o*=60):s=u>0&&u<1?0:o,new yn(o,s,u,e.opacity)}function Uh(e,t,n,r){return arguments.length===1?O1(e):new yn(e,t,n,r??1)}function yn(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}Ta(yn,Uh,As(Fr,{brighter(e){return e=e==null?Ia:Math.pow(Ia,e),new yn(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?Ii:Math.pow(Ii,e),new yn(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 ft(Gh(e>=240?e-240:e+120,i,r),Gh(e,i,r),Gh(e<120?e+240:e-120,i,r),this.opacity)},clamp(){return new yn(z1(this.h),Gu(this.s),Gu(this.l),Uu(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=Uu(this.opacity);return`${e===1?"hsl(":"hsla("}${z1(this.h)}, ${Gu(this.s)*100}%, ${Gu(this.l)*100}%${e===1?")":`, ${e})`}`}}));function z1(e){return e=(e||0)%360,e<0?e+360:e}function Gu(e){return Math.max(0,Math.min(1,e||0))}function Gh(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 U1=Math.PI/180,G1=180/Math.PI,Hu=18,H1=.96422,V1=1,j1=.82521,q1=4/29,Da=6/29,Z1=3*Da*Da,W6=Da*Da*Da;function W1(e){if(e instanceof Pn)return new Pn(e.l,e.a,e.b,e.opacity);if(e instanceof rr)return Y1(e);e instanceof ft||(e=zh(e));var t=Zh(e.r),n=Zh(e.g),r=Zh(e.b),i=Vh((.2225045*t+.7168786*n+.0606169*r)/V1),a,o;return t===n&&n===r?a=o=i:(a=Vh((.4360747*t+.3850649*n+.1430804*r)/H1),o=Vh((.0139322*t+.0971045*n+.7141733*r)/j1)),new Pn(116*i-16,500*(a-i),200*(i-o),e.opacity)}function Hh(e,t,n,r){return arguments.length===1?W1(e):new Pn(e,t,n,r??1)}function Pn(e,t,n,r){this.l=+e,this.a=+t,this.b=+n,this.opacity=+r}Ta(Pn,Hh,As(Fr,{brighter(e){return new Pn(this.l+Hu*(e??1),this.a,this.b,this.opacity)},darker(e){return new Pn(this.l-Hu*(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=H1*jh(t),e=V1*jh(e),n=j1*jh(n),new ft(qh(3.1338561*t-1.6168667*e-.4906146*n),qh(-.9787684*t+1.9161415*e+.033454*n),qh(.0719453*t-.2289914*e+1.4052427*n),this.opacity)}}));function Vh(e){return e>W6?Math.pow(e,1/3):e/Z1+q1}function jh(e){return e>Da?e*e*e:Z1*(e-q1)}function qh(e){return 255*(e<=.0031308?12.92*e:1.055*Math.pow(e,1/2.4)-.055)}function Zh(e){return(e/=255)<=.04045?e/12.92:Math.pow((e+.055)/1.055,2.4)}function Y6(e){if(e instanceof rr)return new rr(e.h,e.c,e.l,e.opacity);if(e instanceof Pn||(e=W1(e)),e.a===0&&e.b===0)return new rr(NaN,0<e.l&&e.l<100?0:NaN,e.l,e.opacity);var t=Math.atan2(e.b,e.a)*G1;return new rr(t<0?t+360:t,Math.sqrt(e.a*e.a+e.b*e.b),e.l,e.opacity)}function Wh(e,t,n,r){return arguments.length===1?Y6(e):new rr(e,t,n,r??1)}function rr(e,t,n,r){this.h=+e,this.c=+t,this.l=+n,this.opacity=+r}function Y1(e){if(isNaN(e.h))return new Pn(e.l,0,0,e.opacity);var t=e.h*U1;return new Pn(e.l,Math.cos(t)*e.c,Math.sin(t)*e.c,e.opacity)}Ta(rr,Wh,As(Fr,{brighter(e){return new rr(this.h,this.c,this.l+Hu*(e??1),this.opacity)},darker(e){return new rr(this.h,this.c,this.l-Hu*(e??1),this.opacity)},rgb(){return Y1(this).rgb()}}));var Q1=-.14861,Yh=1.78277,Qh=-.29227,Vu=-.90649,_s=1.97294,$1=_s*Vu,X1=_s*Yh,K1=Yh*Qh-Vu*Q1;function Q6(e){if(e instanceof Fi)return new Fi(e.h,e.s,e.l,e.opacity);e instanceof ft||(e=zh(e));var t=e.r/255,n=e.g/255,r=e.b/255,i=(K1*r+$1*t-X1*n)/(K1+$1-X1),a=r-i,o=(_s*(n-i)-Qh*a)/Vu,s=Math.sqrt(o*o+a*a)/(_s*i*(1-i)),u=s?Math.atan2(o,a)*G1-120:NaN;return new Fi(u<0?u+360:u,s,i,e.opacity)}function $h(e,t,n,r){return arguments.length===1?Q6(e):new Fi(e,t,n,r??1)}function Fi(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}Ta(Fi,$h,As(Fr,{brighter(e){return e=e==null?Ia:Math.pow(Ia,e),new Fi(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?Ii:Math.pow(Ii,e),new Fi(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=isNaN(this.h)?0:(this.h+120)*U1,t=+this.l,n=isNaN(this.s)?0:this.s*t*(1-t),r=Math.cos(e),i=Math.sin(e);return new ft(255*(t+n*(Q1*r+Yh*i)),255*(t+n*(Qh*r+Vu*i)),255*(t+n*(_s*r)),this.opacity)}}));function J1(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 eb(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 J1((n-r/t)*t,o,i,a,s)}}function tb(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 J1((n-r/t)*t,i,a,o,s)}}const ju=e=>()=>e;function nb(e,t){return function(n){return e+n*t}}function $6(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 qu(e,t){var n=t-e;return n?nb(e,n>180||n<-180?n-360*Math.round(n/360):n):ju(isNaN(e)?t:e)}function X6(e){return(e=+e)==1?ct:function(t,n){return n-t?$6(t,n,e):ju(isNaN(t)?n:t)}}function ct(e,t){var n=t-e;return n?nb(e,n):ju(isNaN(e)?t:e)}const Xh=function e(t){var n=X6(t);function r(i,a){var o=n((i=zu(i)).r,(a=zu(a)).r),s=n(i.g,a.g),u=n(i.b,a.b),l=ct(i.opacity,a.opacity);return function(f){return i.r=o(f),i.g=s(f),i.b=u(f),i.opacity=l(f),i+""}}return r.gamma=e,r}(1);function rb(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=zu(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(u){return s.r=r(u),s.g=i(u),s.b=a(u),s+""}}}var K6=rb(eb),J6=rb(tb);function Kh(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 ib(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function e8(e,t){return(ib(t)?Kh:ab)(e,t)}function ab(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]=Mr(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 ob(e,t){var n=new Date;return e=+e,t=+t,function(r){return n.setTime(e*(1-r)+t*r),n}}function wn(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}function sb(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]=Mr(e[i],t[i]):r[i]=t[i];return function(a){for(i in n)r[i]=n[i](a);return r}}var Jh=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,ed=new RegExp(Jh.source,"g");function t8(e){return function(){return e}}function n8(e){return function(t){return e(t)+""}}function lb(e,t){var n=Jh.lastIndex=ed.lastIndex=0,r,i,a,o=-1,s=[],u=[];for(e=e+"",t=t+"";(r=Jh.exec(e))&&(i=ed.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,u.push({i:o,x:wn(r,i)})),n=ed.lastIndex;return n<t.length&&(a=t.slice(n),s[o]?s[o]+=a:s[++o]=a),s.length<2?u[0]?n8(u[0].x):t8(t):(t=u.length,function(l){for(var f=0,c;f<t;++f)s[(c=u[f]).i]=c.x(l);return s.join("")})}function Mr(e,t){var n=typeof t,r;return t==null||n==="boolean"?ju(t):(n==="number"?wn:n==="string"?(r=Rr(t))?(t=r,Xh):lb:t instanceof Rr?Xh:t instanceof Date?ob:ib(t)?Kh:Array.isArray(t)?ab:typeof t.valueOf!="function"&&typeof t.toString!="function"||isNaN(t)?sb:wn)(e,t)}function r8(e){var t=e.length;return function(n){return e[Math.max(0,Math.min(t-1,Math.floor(n*t)))]}}function i8(e,t){var n=qu(+e,+t);return function(r){var i=n(r);return i-360*Math.floor(i/360)}}function Ss(e,t){return e=+e,t=+t,function(n){return Math.round(e*(1-n)+t*n)}}var ub=180/Math.PI,td={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function fb(e,t,n,r,i,a){var o,s,u;return(o=Math.sqrt(e*e+t*t))&&(e/=o,t/=o),(u=e*n+t*r)&&(n-=e*u,r-=t*u),(s=Math.sqrt(n*n+r*r))&&(n/=s,r/=s,u/=s),e*r<t*n&&(e=-e,t=-t,u=-u,o=-o),{translateX:i,translateY:a,rotate:Math.atan2(t,e)*ub,skewX:Math.atan(u)*ub,scaleX:o,scaleY:s}}var Zu;function a8(e){const t=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(e+"");return t.isIdentity?td:fb(t.a,t.b,t.c,t.d,t.e,t.f)}function o8(e){return e==null||(Zu||(Zu=document.createElementNS("http://www.w3.org/2000/svg","g")),Zu.setAttribute("transform",e),!(e=Zu.transform.baseVal.consolidate()))?td:(e=e.matrix,fb(e.a,e.b,e.c,e.d,e.e,e.f))}function cb(e,t,n,r){function i(l){return l.length?l.pop()+" ":""}function a(l,f,c,h,d,p){if(l!==c||f!==h){var b=d.push("translate(",null,t,null,n);p.push({i:b-4,x:wn(l,c)},{i:b-2,x:wn(f,h)})}else(c||h)&&d.push("translate("+c+t+h+n)}function o(l,f,c,h){l!==f?(l-f>180?f+=360:f-l>180&&(l+=360),h.push({i:c.push(i(c)+"rotate(",null,r)-2,x:wn(l,f)})):f&&c.push(i(c)+"rotate("+f+r)}function s(l,f,c,h){l!==f?h.push({i:c.push(i(c)+"skewX(",null,r)-2,x:wn(l,f)}):f&&c.push(i(c)+"skewX("+f+r)}function u(l,f,c,h,d,p){if(l!==c||f!==h){var b=d.push(i(d)+"scale(",null,",",null,")");p.push({i:b-4,x:wn(l,c)},{i:b-2,x:wn(f,h)})}else(c!==1||h!==1)&&d.push(i(d)+"scale("+c+","+h+")")}return function(l,f){var c=[],h=[];return l=e(l),f=e(f),a(l.translateX,l.translateY,f.translateX,f.translateY,c,h),o(l.rotate,f.rotate,c,h),s(l.skewX,f.skewX,c,h),u(l.scaleX,l.scaleY,f.scaleX,f.scaleY,c,h),l=f=null,function(d){for(var p=-1,b=h.length,y;++p<b;)c[(y=h[p]).i]=y.x(d);return c.join("")}}}var s8=cb(a8,"px, ","px)","deg)"),l8=cb(o8,", ",")",")"),u8=1e-12;function hb(e){return((e=Math.exp(e))+1/e)/2}function f8(e){return((e=Math.exp(e))-1/e)/2}function c8(e){return((e=Math.exp(2*e))-1)/(e+1)}const h8=function e(t,n,r){function i(a,o){var s=a[0],u=a[1],l=a[2],f=o[0],c=o[1],h=o[2],d=f-s,p=c-u,b=d*d+p*p,y,w;if(b<u8)w=Math.log(h/l)/t,y=function(B){return[s+B*d,u+B*p,l*Math.exp(t*B*w)]};else{var A=Math.sqrt(b),S=(h*h-l*l+r*b)/(2*l*n*A),_=(h*h-l*l-r*b)/(2*h*n*A),T=Math.log(Math.sqrt(S*S+1)-S),I=Math.log(Math.sqrt(_*_+1)-_);w=(I-T)/t,y=function(B){var R=B*w,L=hb(T),j=l/(n*A)*(L*c8(t*R+T)-f8(T));return[s+j*d,u+j*p,l*L/hb(t*R+T)]}}return y.duration=w*1e3*t/Math.SQRT2,y}return i.rho=function(a){var o=Math.max(.001,+a),s=o*o,u=s*s;return e(o,s,u)},i}(Math.SQRT2,2,4);function db(e){return function(t,n){var r=e((t=Uh(t)).h,(n=Uh(n)).h),i=ct(t.s,n.s),a=ct(t.l,n.l),o=ct(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 d8=db(qu);var p8=db(ct);function g8(e,t){var n=ct((e=Hh(e)).l,(t=Hh(t)).l),r=ct(e.a,t.a),i=ct(e.b,t.b),a=ct(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 pb(e){return function(t,n){var r=e((t=Wh(t)).h,(n=Wh(n)).h),i=ct(t.c,n.c),a=ct(t.l,n.l),o=ct(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 m8=pb(qu);var b8=pb(ct);function gb(e){return function t(n){n=+n;function r(i,a){var o=e((i=$h(i)).h,(a=$h(a)).h),s=ct(i.s,a.s),u=ct(i.l,a.l),l=ct(i.opacity,a.opacity);return function(f){return i.h=o(f),i.s=s(f),i.l=u(Math.pow(f,n)),i.opacity=l(f),i+""}}return r.gamma=t,r}(1)}const y8=gb(qu);var w8=gb(ct);function nd(e,t){t===void 0&&(t=e,e=Mr);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 v8(e,t){for(var n=new Array(t),r=0;r<t;++r)n[r]=e(r/(t-1));return n}const x8=Object.freeze(Object.defineProperty({__proto__:null,interpolate:Mr,interpolateArray:e8,interpolateBasis:eb,interpolateBasisClosed:tb,interpolateCubehelix:y8,interpolateCubehelixLong:w8,interpolateDate:ob,interpolateDiscrete:r8,interpolateHcl:m8,interpolateHclLong:b8,interpolateHsl:d8,interpolateHslLong:p8,interpolateHue:i8,interpolateLab:g8,interpolateNumber:wn,interpolateNumberArray:Kh,interpolateObject:sb,interpolateRgb:Xh,interpolateRgbBasis:K6,interpolateRgbBasisClosed:J6,interpolateRound:Ss,interpolateString:lb,interpolateTransformCss:s8,interpolateTransformSvg:l8,interpolateZoom:h8,piecewise:nd,quantize:v8},Symbol.toStringTag,{value:"Module"}));function A8(e){return function(){return e}}function rd(e){return+e}var mb=[0,1];function zt(e){return e}function id(e,t){return(t-=e=+e)?function(n){return(n-e)/t}:A8(isNaN(t)?NaN:.5)}function E8(e,t){var n;return e>t&&(n=e,e=t,t=n),function(r){return Math.max(e,Math.min(t,r))}}function _8(e,t,n){var r=e[0],i=e[1],a=t[0],o=t[1];return i<r?(r=id(i,r),a=n(o,a)):(r=id(r,i),a=n(a,o)),function(s){return a(r(s))}}function S8(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]=id(e[o],e[o+1]),a[o]=n(t[o],t[o+1]);return function(s){var u=Er(e,s,1,r)-1;return a[u](i[u](s))}}function Cs(e,t){return t.domain(e.domain()).range(e.range()).interpolate(e.interpolate()).clamp(e.clamp()).unknown(e.unknown())}function Wu(){var e=mb,t=mb,n=Mr,r,i,a,o=zt,s,u,l;function f(){var h=Math.min(e.length,t.length);return o!==zt&&(o=E8(e[0],e[h-1])),s=h>2?S8:_8,u=l=null,c}function c(h){return h==null||isNaN(h=+h)?a:(u||(u=s(e.map(r),t,n)))(r(o(h)))}return c.invert=function(h){return o(i((l||(l=s(t,e.map(r),wn)))(h)))},c.domain=function(h){return arguments.length?(e=Array.from(h,rd),f()):e.slice()},c.range=function(h){return arguments.length?(t=Array.from(h),f()):t.slice()},c.rangeRound=function(h){return t=Array.from(h),n=Ss,f()},c.clamp=function(h){return arguments.length?(o=h?!0:zt,f()):o!==zt},c.interpolate=function(h){return arguments.length?(n=h,f()):n},c.unknown=function(h){return arguments.length?(a=h,c):a},function(h,d){return r=h,i=d,f()}}function bb(){return Wu()(zt,zt)}function yb(e,t,n,r){var i=bi(e,t,n),a;switch(r=Sr(r??",f"),r.type){case"s":{var o=Math.max(Math.abs(e),Math.abs(t));return r.precision==null&&!isNaN(a=vm(i,o))&&(r.precision=a),ah(r,o)}case"":case"e":case"g":case"p":case"r":{r.precision==null&&!isNaN(a=xm(i,Math.max(Math.abs(e),Math.abs(t))))&&(r.precision=a-(r.type==="e"));break}case"f":case"%":{r.precision==null&&!isNaN(a=wm(i))&&(r.precision=a-(r.type==="%")*2);break}}return gt(r)}function Ri(e){var t=e.domain;return e.ticks=function(n){var r=t();return bu(r[0],r[r.length-1],n??10)},e.tickFormat=function(n,r){var i=t();return yb(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],u,l,f=10;for(s<o&&(l=o,o=s,s=l,l=i,i=a,a=l);f-- >0;){if(l=cm(o,s,n),l===u)return r[i]=o,r[a]=s,t(r);if(l>0)o=Math.floor(o/l)*l,s=Math.ceil(s/l)*l;else if(l<0)o=Math.ceil(o*l)/l,s=Math.floor(s*l)/l;else break;u=l}return e},e}function wb(){var e=bb();return e.copy=function(){return Cs(e,wb())},Rn.apply(e,arguments),Ri(e)}function vb(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,rd),n):e.slice()},n.unknown=function(r){return arguments.length?(t=r,n):t},n.copy=function(){return vb(e).unknown(t)},e=arguments.length?Array.from(e,rd):[0,1],Ri(n)}function xb(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 Ab(e){return Math.log(e)}function Eb(e){return Math.exp(e)}function C8(e){return-Math.log(-e)}function k8(e){return-Math.exp(-e)}function T8(e){return isFinite(e)?+("1e"+e):e<0?0:e}function I8(e){return e===10?T8:e===Math.E?Math.exp:t=>Math.pow(e,t)}function B8(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 _b(e){return(t,n)=>-e(-t,n)}function ad(e){const t=e(Ab,Eb),n=t.domain;let r=10,i,a;function o(){return i=B8(r),a=I8(r),n()[0]<0?(i=_b(i),a=_b(a),e(C8,k8)):e(Ab,Eb),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 u=n();let l=u[0],f=u[u.length-1];const c=f<l;c&&([l,f]=[f,l]);let h=i(l),d=i(f),p,b;const y=s==null?10:+s;let w=[];if(!(r%1)&&d-h<y){if(h=Math.floor(h),d=Math.ceil(d),l>0){for(;h<=d;++h)for(p=1;p<r;++p)if(b=h<0?p/a(-h):p*a(h),!(b<l)){if(b>f)break;w.push(b)}}else for(;h<=d;++h)for(p=r-1;p>=1;--p)if(b=h>0?p/a(-h):p*a(h),!(b<l)){if(b>f)break;w.push(b)}w.length*2<y&&(w=bu(l,f,y))}else w=bu(h,d,Math.min(d-h,y)).map(a);return c?w.reverse():w},t.tickFormat=(s,u)=>{if(s==null&&(s=10),u==null&&(u=r===10?"s":","),typeof u!="function"&&(!(r%1)&&(u=Sr(u)).precision==null&&(u.trim=!0),u=gt(u)),s===1/0)return u;const l=Math.max(1,r*s/t.ticks().length);return f=>{let c=f/a(Math.round(i(f)));return c*r<r-.5&&(c*=r),c<=l?u(f):""}},t.nice=()=>n(xb(n(),{floor:s=>a(Math.floor(i(s))),ceil:s=>a(Math.ceil(i(s)))})),t}function od(){const e=ad(Wu()).domain([1,10]);return e.copy=()=>Cs(e,od()).base(e.base()),Rn.apply(e,arguments),e}function Sb(e){return function(t){return Math.sign(t)*Math.log1p(Math.abs(t/e))}}function Cb(e){return function(t){return Math.sign(t)*Math.expm1(Math.abs(t))*e}}function sd(e){var t=1,n=e(Sb(t),Cb(t));return n.constant=function(r){return arguments.length?e(Sb(t=+r),Cb(t)):t},Ri(n)}function kb(){var e=sd(Wu());return e.copy=function(){return Cs(e,kb()).constant(e.constant())},Rn.apply(e,arguments)}function Tb(e){return function(t){return t<0?-Math.pow(-t,e):Math.pow(t,e)}}function D8(e){return e<0?-Math.sqrt(-e):Math.sqrt(e)}function F8(e){return e<0?-e*e:e*e}function ld(e){var t=e(zt,zt),n=1;function r(){return n===1?e(zt,zt):n===.5?e(D8,F8):e(Tb(n),Tb(1/n))}return t.exponent=function(i){return arguments.length?(n=+i,r()):n},Ri(t)}function ud(){var e=ld(Wu());return e.copy=function(){return Cs(e,ud()).exponent(e.exponent())},Rn.apply(e,arguments),e}function R8(){return ud.apply(null,arguments).exponent(.5)}function Ib(){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]=hm(e,o/s);return a}function a(o){return o==null||isNaN(o=+o)?r:t[Er(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(Vo),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 Ib().domain(e).range(t).unknown(r)},Rn.apply(a,arguments)}function Bb(){var e=0,t=1,n=1,r=[.5],i=[0,1],a;function o(u){return u!=null&&u<=u?i[Er(r,u,0,n)]:a}function s(){var u=-1;for(r=new Array(n);++u<n;)r[u]=((u+1)*t-(u-n)*e)/(n+1);return o}return o.domain=function(u){return arguments.length?([e,t]=u,e=+e,t=+t,s()):[e,t]},o.range=function(u){return arguments.length?(n=(i=Array.from(u)).length-1,s()):i.slice()},o.invertExtent=function(u){var l=i.indexOf(u);return l<0?[NaN,NaN]:l<1?[e,r[0]]:l>=n?[r[n-1],t]:[r[l-1],r[l]]},o.unknown=function(u){return arguments.length&&(a=u),o},o.thresholds=function(){return r.slice()},o.copy=function(){return Bb().domain([e,t]).range(i).unknown(a)},Rn.apply(Ri(o),arguments)}function Db(){var e=[.5],t=[0,1],n,r=1;function i(a){return a!=null&&a<=a?t[Er(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 Db().domain(e).range(t).unknown(n)},Rn.apply(i,arguments)}function M8(e){return new Date(e)}function P8(e){return e instanceof Date?+e:+new Date(+e)}function fd(e,t,n,r,i,a,o,s,u,l){var f=bb(),c=f.invert,h=f.domain,d=l(".%L"),p=l(":%S"),b=l("%I:%M"),y=l("%I %p"),w=l("%a %d"),A=l("%b %d"),S=l("%B"),_=l("%Y");function T(I){return(u(I)<I?d:s(I)<I?p:o(I)<I?b:a(I)<I?y:r(I)<I?i(I)<I?w:A:n(I)<I?S:_)(I)}return f.invert=function(I){return new Date(c(I))},f.domain=function(I){return arguments.length?h(Array.from(I,P8)):h().map(M8)},f.ticks=function(I){var B=h();return e(B[0],B[B.length-1],I??10)},f.tickFormat=function(I,B){return B==null?T:l(B)},f.nice=function(I){var B=h();return(!I||typeof I.range!="function")&&(I=t(B[0],B[B.length-1],I??10)),I?h(xb(B,I)):f},f.copy=function(){return Cs(f,fd(e,t,n,r,i,a,o,s,u,l))},f}function L8(){return Rn.apply(fd(E4,_4,kr,Zo,qo,wi,hh,ch,Cr,vh).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}function N8(){return Rn.apply(fd(x4,A4,Tr,Yo,Wo,xi,gh,ph,Cr,xh).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)}function Yu(){var e=0,t=1,n,r,i,a,o=zt,s=!1,u;function l(c){return c==null||isNaN(c=+c)?u:o(i===0?.5:(c=(a(c)-n)*i,s?Math.max(0,Math.min(1,c)):c))}l.domain=function(c){return arguments.length?([e,t]=c,n=a(e=+e),r=a(t=+t),i=n===r?0:1/(r-n),l):[e,t]},l.clamp=function(c){return arguments.length?(s=!!c,l):s},l.interpolator=function(c){return arguments.length?(o=c,l):o};function f(c){return function(h){var d,p;return arguments.length?([d,p]=h,o=c(d,p),l):[o(0),o(1)]}}return l.range=f(Mr),l.rangeRound=f(Ss),l.unknown=function(c){return arguments.length?(u=c,l):u},function(c){return a=c,n=c(e),r=c(t),i=n===r?0:1/(r-n),l}}function Pr(e,t){return t.domain(e.domain()).interpolator(e.interpolator()).clamp(e.clamp()).unknown(e.unknown())}function cd(){var e=Ri(Yu()(zt));return e.copy=function(){return Pr(e,cd())},Dr.apply(e,arguments)}function Fb(){var e=ad(Yu()).domain([1,10]);return e.copy=function(){return Pr(e,Fb()).base(e.base())},Dr.apply(e,arguments)}function Rb(){var e=sd(Yu());return e.copy=function(){return Pr(e,Rb()).constant(e.constant())},Dr.apply(e,arguments)}function hd(){var e=ld(Yu());return e.copy=function(){return Pr(e,hd()).exponent(e.exponent())},Dr.apply(e,arguments)}function O8(){return hd.apply(null,arguments).exponent(.5)}function Qu(){var e=0,t=.5,n=1,r=1,i,a,o,s,u,l=zt,f,c=!1,h;function d(b){return isNaN(b=+b)?h:(b=.5+((b=+f(b))-a)*(r*b<r*a?s:u),l(c?Math.max(0,Math.min(1,b)):b))}d.domain=function(b){return arguments.length?([e,t,n]=b,i=f(e=+e),a=f(t=+t),o=f(n=+n),s=i===a?0:.5/(a-i),u=a===o?0:.5/(o-a),r=a<i?-1:1,d):[e,t,n]},d.clamp=function(b){return arguments.length?(c=!!b,d):c},d.interpolator=function(b){return arguments.length?(l=b,d):l};function p(b){return function(y){var w,A,S;return arguments.length?([w,A,S]=y,l=nd(b,[w,A,S]),d):[l(0),l(.5),l(1)]}}return d.range=p(Mr),d.rangeRound=p(Ss),d.unknown=function(b){return arguments.length?(h=b,d):h},function(b){return f=b,i=b(e),a=b(t),o=b(n),s=i===a?0:.5/(a-i),u=a===o?0:.5/(o-a),r=a<i?-1:1,d}}function Mb(){var e=Ri(Qu()(zt));return e.copy=function(){return Pr(e,Mb())},Dr.apply(e,arguments)}function Pb(){var e=ad(Qu()).domain([.1,1,10]);return e.copy=function(){return Pr(e,Pb()).base(e.base())},Dr.apply(e,arguments)}function Lb(){var e=sd(Qu());return e.copy=function(){return Pr(e,Lb()).constant(e.constant())},Dr.apply(e,arguments)}function dd(){var e=ld(Qu());return e.copy=function(){return Pr(e,dd()).exponent(e.exponent())},Dr.apply(e,arguments)}function z8(){return dd.apply(null,arguments).exponent(.5)}function pd(e,t,n){const r=e-t+n*2;return e?r>0?r:1:0}const U8="identity",Fa="linear",Lr="log",ks="pow",Ts="sqrt",$u="symlog",Nb="time",Ob="utc",Ln="sequential",Ra="diverging",gd="quantile",zb="quantize",Ub="threshold",md="ordinal",bd="point",Gb="band",yd="bin-ordinal",it="continuous",Is="discrete",Bs="discretizing",en="interpolating",Hb="temporal";function G8(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 H8(e){return function(t){const n=e.range();let r=t[0],i=t[1],a=-1,o,s,u,l;for(i<r&&(s=r,r=i,i=s),u=0,l=n.length;u<l;++u)n[u]>=r&&n[u]<=i&&(a<0&&(a=u),o=u);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 wd(){const e=Oh().unknown(void 0),t=e.domain,n=e.range;let r=[0,1],i,a,o=!1,s=0,u=0,l=.5;delete e.unknown;function f(){const c=t().length,h=r[1]<r[0],d=r[1-h],p=pd(c,s,u);let b=r[h-0];i=(d-b)/(p||1),o&&(i=Math.floor(i)),b+=(d-b-i*(c-s))*l,a=i*(1-s),o&&(b=Math.round(b),a=Math.round(a));const y=jo(c).map(w=>b+i*w);return n(h?y.reverse():y)}return e.domain=function(c){return arguments.length?(t(c),f()):t()},e.range=function(c){return arguments.length?(r=[+c[0],+c[1]],f()):r.slice()},e.rangeRound=function(c){return r=[+c[0],+c[1]],o=!0,f()},e.bandwidth=function(){return a},e.step=function(){return i},e.round=function(c){return arguments.length?(o=!!c,f()):o},e.padding=function(c){return arguments.length?(u=Math.max(0,Math.min(1,c)),s=u,f()):s},e.paddingInner=function(c){return arguments.length?(s=Math.max(0,Math.min(1,c)),f()):s},e.paddingOuter=function(c){return arguments.length?(u=Math.max(0,Math.min(1,c)),f()):u},e.align=function(c){return arguments.length?(l=Math.max(0,Math.min(1,c)),f()):l},e.invertRange=function(c){if(c[0]==null||c[1]==null)return;const h=r[1]<r[0],d=h?n().reverse():n(),p=d.length-1;let b=+c[0],y=+c[1],w,A,S;if(!(b!==b||y!==y)&&(y<b&&(S=b,b=y,y=S),!(y<d[0]||b>r[1-h])))return w=Math.max(0,Er(d,b)-1),A=b===y?w:Er(d,y)-1,b-d[w]>a+1e-10&&++w,h&&(S=w,w=p-A,A=p-S),w>A?void 0:t().slice(w,A+1)},e.invert=function(c){const h=e.invertRange([c,c]);return h&&h[0]},e.copy=function(){return wd().domain(t()).range(r).round(o).paddingInner(s).paddingOuter(u).align(l)},f()}function Vb(e){const t=e.copy;return e.padding=e.paddingOuter,delete e.paddingInner,e.copy=function(){return Vb(t())},e}function V8(){return Vb(wd().paddingInner(1))}var j8=Array.prototype.map;function q8(e){return j8.call(e,Uo)}const Z8=Array.prototype.slice;function jb(){let e=[],t=[];function n(r){return r==null||r!==r?void 0:t[(Er(e,r)-1)%t.length]}return n.domain=function(r){return arguments.length?(e=q8(r),n):e.slice()},n.range=function(r){return arguments.length?(t=Z8.call(r),n):t.slice()},n.tickFormat=function(r,i){return yb(e[0],gn(e),r??10,i)},n.copy=function(){return jb().domain(n.domain()).range(n.range())},n}const Xu={};function W8(e,t,n){const r=function(){const a=t();return a.invertRange||(a.invertRange=a.invert?G8(a):a.invertExtent?H8(a):void 0),a.type=e,a};return r.metadata=pu(Qc(n)),r}function Ae(e,t,n){return arguments.length>1?(Xu[e]=W8(e,t,n),this):Y8(e)?Xu[e]:void 0}Ae(U8,vb),Ae(Fa,wb,it),Ae(Lr,od,[it,Lr]),Ae(ks,ud,it),Ae(Ts,R8,it),Ae($u,kb,it),Ae(Nb,L8,[it,Hb]),Ae(Ob,N8,[it,Hb]),Ae(Ln,cd,[it,en]),Ae("".concat(Ln,"-").concat(Fa),cd,[it,en]),Ae("".concat(Ln,"-").concat(Lr),Fb,[it,en,Lr]),Ae("".concat(Ln,"-").concat(ks),hd,[it,en]),Ae("".concat(Ln,"-").concat(Ts),O8,[it,en]),Ae("".concat(Ln,"-").concat($u),Rb,[it,en]),Ae("".concat(Ra,"-").concat(Fa),Mb,[it,en]),Ae("".concat(Ra,"-").concat(Lr),Pb,[it,en,Lr]),Ae("".concat(Ra,"-").concat(ks),dd,[it,en]),Ae("".concat(Ra,"-").concat(Ts),z8,[it,en]),Ae("".concat(Ra,"-").concat($u),Lb,[it,en]),Ae(gd,Ib,[Bs,gd]),Ae(zb,Bb,Bs),Ae(Ub,Db,Bs),Ae(yd,jb,[Is,Bs]),Ae(md,Oh,Is),Ae(Gb,wd,Is),Ae(bd,V8,Is);function Y8(e){return mi(Xu,e)}function Ds(e,t){const n=Xu[e];return n&&n.metadata[t]}function bt(e){return Ds(e,it)}function Nn(e){return Ds(e,Is)}function Mi(e){return Ds(e,Bs)}function qb(e){return Ds(e,Lr)}function Ku(e){return Ds(e,en)}function Q8(e,t){const n=t[0],r=gn(t)-n;return function(i){return e(n+i*r)}}function Ju(e,t,n){return nd(Zb(t||"rgb",n),e)}function $8(e,t){const n=new Array(t),r=t+1;for(let i=0;i<t;)n[i]=e(++i/r);return n}function Zb(e,t){const n=x8[X8(e)];return t!=null&&n&&n.gamma?n.gamma(t):n}function X8(e){return"interpolate"+e.toLowerCase().split("-").map(t=>t[0].toUpperCase()+t.slice(1)).join("")}const K8={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"},J8={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 Wb(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 Yb(e,t){for(const n in e)vd(n,t(e[n]))}const Qb={};Yb(J8,Wb),Yb(K8,e=>Ju(Wb(e)));function vd(e,t){return e=e&&e.toLowerCase(),arguments.length>1?(Qb[e]=t,this):Qb[e]}function e5(){let e=0,t,n=0;const r=new Map,i=a=>(a===t||(n=r.get(a),n===void 0&&(n=e++,r.set(a,n)),t=a),n);return i.addAll=a=>{for(const o of a)i(o)},i.invert=a=>{for(const o of r.entries())if(o[1]==a)return o[0]},i.domain=()=>[...r.keys()],i}function ef(){const e=t=>t;return e.invert=t=>t,e.copy=ef,e.invertRange=()=>{},e.type="null",e}function t5(e,t){const n={};t||(t=e.encoding);for(const[r,i]of Object.entries(t)){if(!i)continue;const a=((Ut(i)&&i.resolutionChannel)??(Oi(r)&&r))||void 0,o=e.unitView.getScaleResolution(a);n[r]=n5(t[r],o==null?void 0:o.getScale(),e.unitView.getAccessor(r),r)}return n}function n5(e,t,n,r){let i;if(vn(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)if(!Oi(r))t=ef();else throw new Error(`Missing scale! "${r}": ${JSON.stringify(e)}`);if(i=a=>t(n(a)),Nn(t.type)){const a=e5();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 vn(e){return e&&"value"in e}function Pi(e){return e&&"field"in e}function Fs(e){return e&&"datum"in e}function Ut(e){return Pi(e)||Fs(e)||tf(e)||$b(e)}function xd(e,t){const n=e.mark.encoding[t];if(Ut(n))return n;throw new Error("Not a channel def with scale!")}function $b(e){return e&&"chrom"in e}function tf(e){return e&&"expr"in e}const Ma=["x","y"],r5=["x2","y2"],i5=[...Ma,...r5];function Xb(e){return Ma.includes(e)}function Rs(e){return i5.includes(e)}const Ad={x:"x2",y:"y2"},Kb=Object.fromEntries(Object.entries(Ad).map(e=>[e[1],e[0]]));function Ms(e){return e in Kb}function a5(e){const t=Ad[e];if(t)return t;throw new Error(`${e} has no secondary channel!`)}function Li(e){return Kb[e]??e}function Ni(e){return["color","fill","stroke"].includes(Li(e))}function nf(e){return["shape","squeeze"].includes(e)}function Oi(e){return["x","y","x2","y2","color","fill","stroke","opacity","fillOpacity","strokeOpacity","strokeWidth","size","shape","angle","dx","dy","sample"].includes(e)}function o5(e){switch(e){case"shape":return["circle","square","cross","diamond","triangle-up","triangle-right","triangle-down","triangle-left","tick-up","tick-right","tick-down","tick-left"]}}function Jb(e){if(!nf(e))throw new Error("Not a discrete channel: "+e);const t=new Map(o5(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 Re(e,t=e){if(/^[A-Za-z0-9_]+$/.test(e)){const n=new Function("datum",`return datum[${JSON.stringify(e)}]`);return Ce(n,[e],t)}else return lu(e)}class s5{constructor(){this.accessorCreators=[],this.register(t=>{if(Pi(t))try{const n=Re(t.field);return n.constant=!1,n.fields=su(n),n}catch(n){throw new Error(`Invalid field definition: ${n.message}`)}}),this.register(t=>tf(t)?l5(t.expr):void 0),this.register(t=>{if(Fs(t)){const r=B_(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 l5(e){const n=Nu(e);return n.constant=n.fields.length==0,n}/* @license twgl.js 4.22.0 Copyright (c) 2015, Gregg Tavares All Rights Reserved.
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
.gs-input-binding {
|
|
183
|
+
display: grid;
|
|
184
|
+
grid-template-columns: max-content max-content;
|
|
185
|
+
column-gap: 1em;
|
|
186
|
+
row-gap: 0.3em;
|
|
187
|
+
justify-items: start;
|
|
188
|
+
}
|
|
189
|
+
.gs-input-binding > select,
|
|
190
|
+
.gs-input-binding > input:not([type=checkbox]) {
|
|
191
|
+
width: 100%;
|
|
192
|
+
}
|
|
193
|
+
.gs-input-binding input[type=range] + span {
|
|
194
|
+
display: inline-block;
|
|
195
|
+
margin-left: 0.3em;
|
|
196
|
+
min-width: 2.2em;
|
|
197
|
+
font-variant-numeric: tabular-nums;
|
|
198
|
+
}
|
|
199
|
+
.gs-input-binding input[type=range],
|
|
200
|
+
.gs-input-binding input[type=radio] {
|
|
201
|
+
vertical-align: text-bottom;
|
|
202
|
+
}
|
|
203
|
+
.gs-input-binding .radio-group {
|
|
204
|
+
display: flex;
|
|
205
|
+
align-items: center;
|
|
206
|
+
}
|
|
207
|
+
.gs-input-binding .description {
|
|
208
|
+
max-width: 26em;
|
|
209
|
+
grid-column: 1/-1;
|
|
210
|
+
color: #777;
|
|
211
|
+
font-size: 90%;
|
|
212
|
+
margin-top: -0.5em;
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
.gs-input-bindings {
|
|
216
|
+
flex-basis: content;
|
|
217
|
+
font-size: 14px;
|
|
218
|
+
padding: 10px;
|
|
219
|
+
}
|
|
220
|
+
`;function w6(e,t){var n=e.getBoundingClientRect();return[t.clientX-n.left-e.clientLeft,t.clientY-n.top-e.clientTop]}function td(e,t){return e.length==t.length&&e.every((n,r)=>e[r]===t[r])}function Ot(e){return Array.isArray(e)?e:typeof e<"u"?[e]:[]}function Es(e){return e[e.length-1]}class v6{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 Es(this.enabledStack)??!0}pushEnabledState(t){this.enabledStack.push(t),t||(this.visible=!1)}popEnabledState(){this.enabledStack.pop()}handleMouseMove(t){this.mouseCoords=w6(this.container,t);const n=performance.now();!this.visible&&!this._isPenalty()&&n-this._previousMove>500&&(this._penaltyUntil=n+70),this._lastCoords&&x6(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&&(As("",this.element),this.visible=!1),this._previousTooltipDatum=void 0;return}As(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(it` ${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 x6(e,t){let n=0;for(let r=0;r<e.length;r++)n+=(e[r]-t[r])**2;return Math.sqrt(n)}const A6="RawCode",E6="Literal",_6="Property",S6="Identifier",C6="ArrayExpression",k6="BinaryExpression",T6="CallExpression",I6="ConditionalExpression",B6="LogicalExpression",D6="MemberExpression",R6="ObjectExpression",F6="UnaryExpression";function vn(e){this.type=e}vn.prototype.visit=function(e){let t,n,r;if(e(this))return 1;for(t=M6(this),n=0,r=t.length;n<r;++n)if(t[n].visit(e))return 1};function M6(e){switch(e.type){case C6:return e.elements;case k6:case B6:return[e.left,e.right];case T6:return[e.callee].concat(e.arguments);case I6:return[e.test,e.consequent,e.alternate];case D6:return[e.object,e.property];case R6:return e.properties;case _6:return[e.key,e.value];case F6:return[e.argument];case S6:case E6:case A6:default:return[]}}var On,ee,U,At,Te,tc=1,_s=2,Ri=3,Nr=4,nc=5,Fi=6,Nt=7,Ss=8,P6=9;On={},On[tc]="Boolean",On[_s]="<end>",On[Ri]="Identifier",On[Nr]="Keyword",On[nc]="Null",On[Fi]="Numeric",On[Nt]="Punctuator",On[Ss]="String",On[P6]="RegularExpression";var L6="ArrayExpression",O6="BinaryExpression",N6="CallExpression",z6="ConditionalExpression",q1="Identifier",U6="Literal",G6="LogicalExpression",H6="MemberExpression",V6="ObjectExpression",j6="Property",$6="UnaryExpression",ct="Unexpected token %0",q6="Unexpected number",W6="Unexpected string",Z6="Unexpected identifier",Y6="Unexpected reserved word",Q6="Unexpected end of input",nd="Invalid regular expression",rd="Invalid regular expression: missing /",W1="Octal literals are not allowed in strict mode.",X6="Duplicate data property in object literal not allowed in strict mode",bt="ILLEGAL",Cs="Disabled.",K6=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]"),J6=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 rc(e,t){if(!e)throw new Error("ASSERT: "+t)}function lr(e){return e>=48&&e<=57}function id(e){return"0123456789abcdefABCDEF".indexOf(e)>=0}function ks(e){return"01234567".indexOf(e)>=0}function e8(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 Ts(e){return e===10||e===13||e===8232||e===8233}function Is(e){return e===36||e===95||e>=65&&e<=90||e>=97&&e<=122||e===92||e>=128&&K6.test(String.fromCharCode(e))}function ic(e){return e===36||e===95||e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||e===92||e>=128&&J6.test(String.fromCharCode(e))}const t8={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 Z1(){for(;U<At;){const e=ee.charCodeAt(U);if(e8(e)||Ts(e))++U;else break}}function ad(e){var t,n,r,i=0;for(n=e==="u"?4:2,t=0;t<n;++t)U<At&&id(ee[U])?(r=ee[U++],i=i*16+"0123456789abcdef".indexOf(r.toLowerCase())):we({},ct,bt);return String.fromCharCode(i)}function n8(){var e,t,n,r;for(e=ee[U],t=0,e==="}"&&we({},ct,bt);U<At&&(e=ee[U++],!!id(e));)t=t*16+"0123456789abcdef".indexOf(e.toLowerCase());return(t>1114111||e!=="}")&&we({},ct,bt),t<=65535?String.fromCharCode(t):(n=(t-65536>>10)+55296,r=(t-65536&1023)+56320,String.fromCharCode(n,r))}function Y1(){var e,t;for(e=ee.charCodeAt(U++),t=String.fromCharCode(e),e===92&&(ee.charCodeAt(U)!==117&&we({},ct,bt),++U,e=ad("u"),(!e||e==="\\"||!Is(e.charCodeAt(0)))&&we({},ct,bt),t=e);U<At&&(e=ee.charCodeAt(U),!!ic(e));)++U,t+=String.fromCharCode(e),e===92&&(t=t.substr(0,t.length-1),ee.charCodeAt(U)!==117&&we({},ct,bt),++U,e=ad("u"),(!e||e==="\\"||!ic(e.charCodeAt(0)))&&we({},ct,bt),t+=e);return t}function r8(){var e,t;for(e=U++;U<At;){if(t=ee.charCodeAt(U),t===92)return U=e,Y1();if(ic(t))++U;else break}return ee.slice(e,U)}function i8(){var e,t,n;return e=U,t=ee.charCodeAt(U)===92?Y1():r8(),t.length===1?n=Ri:t8.hasOwnProperty(t)?n=Nr:t==="null"?n=nc:t==="true"||t==="false"?n=tc:n=Ri,{type:n,value:t,start:e,end:U}}function od(){var e=U,t=ee.charCodeAt(U),n,r=ee[U],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++U,{type:Nt,value:String.fromCharCode(t),start:e,end:U};default:if(n=ee.charCodeAt(U+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 U+=2,{type:Nt,value:String.fromCharCode(t)+String.fromCharCode(n),start:e,end:U};case 33:case 61:return U+=2,ee.charCodeAt(U)===61&&++U,{type:Nt,value:ee.slice(e,U),start:e,end:U}}}if(o=ee.substr(U,4),o===">>>=")return U+=4,{type:Nt,value:o,start:e,end:U};if(a=o.substr(0,3),a===">>>"||a==="<<="||a===">>=")return U+=3,{type:Nt,value:a,start:e,end:U};if(i=a.substr(0,2),r===i[1]&&"+-<>&|".indexOf(r)>=0||i==="=>")return U+=2,{type:Nt,value:i,start:e,end:U};if(i==="//"&&we({},ct,bt),"<>=!+-*%&|^/".indexOf(r)>=0)return++U,{type:Nt,value:r,start:e,end:U};we({},ct,bt)}function a8(e){let t="";for(;U<At&&id(ee[U]);)t+=ee[U++];return t.length===0&&we({},ct,bt),Is(ee.charCodeAt(U))&&we({},ct,bt),{type:Fi,value:parseInt("0x"+t,16),start:e,end:U}}function o8(e){let t="0"+ee[U++];for(;U<At&&ks(ee[U]);)t+=ee[U++];return(Is(ee.charCodeAt(U))||lr(ee.charCodeAt(U)))&&we({},ct,bt),{type:Fi,value:parseInt(t,8),octal:!0,start:e,end:U}}function Q1(){var e,t,n;if(n=ee[U],rc(lr(n.charCodeAt(0))||n===".","Numeric literal must start with a decimal digit or a decimal point"),t=U,e="",n!=="."){if(e=ee[U++],n=ee[U],e==="0"){if(n==="x"||n==="X")return++U,a8(t);if(ks(n))return o8(t);n&&lr(n.charCodeAt(0))&&we({},ct,bt)}for(;lr(ee.charCodeAt(U));)e+=ee[U++];n=ee[U]}if(n==="."){for(e+=ee[U++];lr(ee.charCodeAt(U));)e+=ee[U++];n=ee[U]}if(n==="e"||n==="E")if(e+=ee[U++],n=ee[U],(n==="+"||n==="-")&&(e+=ee[U++]),lr(ee.charCodeAt(U)))for(;lr(ee.charCodeAt(U));)e+=ee[U++];else we({},ct,bt);return Is(ee.charCodeAt(U))&&we({},ct,bt),{type:Fi,value:parseFloat(e),start:t,end:U}}function s8(){var e="",t,n,r,i,a=!1;for(t=ee[U],rc(t==="'"||t==='"',"String literal must starts with a quote"),n=U,++U;U<At;)if(r=ee[U++],r===t){t="";break}else if(r==="\\")if(r=ee[U++],!r||!Ts(r.charCodeAt(0)))switch(r){case"u":case"x":ee[U]==="{"?(++U,e+=n8()):e+=ad(r);break;case"n":e+=`
|
|
221
|
+
`;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:ks(r)?(i="01234567".indexOf(r),i!==0&&(a=!0),U<At&&ks(ee[U])&&(a=!0,i=i*8+"01234567".indexOf(ee[U++]),"0123".indexOf(r)>=0&&U<At&&ks(ee[U])&&(i=i*8+"01234567".indexOf(ee[U++]))),e+=String.fromCharCode(i)):e+=r;break}else r==="\r"&&ee[U]===`
|
|
222
|
+
`&&++U;else{if(Ts(r.charCodeAt(0)))break;e+=r}return t!==""&&we({},ct,bt),{type:Ss,value:e,octal:a,start:n,end:U}}function l8(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";we({},nd)}).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"x"));try{new RegExp(n)}catch{we({},nd)}try{return new RegExp(e,t)}catch{return null}}function u8(){var e,t,n,r,i;for(e=ee[U],rc(e==="/","Regular expression literal must start with a slash"),t=ee[U++],n=!1,r=!1;U<At;)if(e=ee[U++],t+=e,e==="\\")e=ee[U++],Ts(e.charCodeAt(0))&&we({},rd),t+=e;else if(Ts(e.charCodeAt(0)))we({},rd);else if(n)e==="]"&&(n=!1);else if(e==="/"){r=!0;break}else e==="["&&(n=!0);return r||we({},rd),i=t.substr(1,t.length-2),{value:i,literal:t}}function c8(){var e,t,n;for(t="",n="";U<At&&(e=ee[U],!!ic(e.charCodeAt(0)));)++U,e==="\\"&&U<At?we({},ct,bt):(n+=e,t+=e);return n.search(/[^gimuy]/g)>=0&&we({},nd,n),{value:n,literal:t}}function f8(){var e,t,n,r;return Te=null,Z1(),e=U,t=u8(),n=c8(),r=l8(t.value,n.value),{literal:t.literal+n.literal,value:r,regex:{pattern:t.value,flags:n.value},start:e,end:U}}function h8(e){return e.type===Ri||e.type===Nr||e.type===tc||e.type===nc}function X1(){if(Z1(),U>=At)return{type:_s,start:U,end:U};const e=ee.charCodeAt(U);return Is(e)?i8():e===40||e===41||e===59?od():e===39||e===34?s8():e===46?lr(ee.charCodeAt(U+1))?Q1():od():lr(e)?Q1():od()}function zt(){const e=Te;return U=e.end,Te=X1(),U=e.end,e}function K1(){const e=U;Te=X1(),U=e}function d8(e){const t=new vn(L6);return t.elements=e,t}function J1(e,t,n){const r=new vn(e==="||"||e==="&&"?G6:O6);return r.operator=e,r.left=t,r.right=n,r}function p8(e,t){const n=new vn(N6);return n.callee=e,n.arguments=t,n}function g8(e,t,n){const r=new vn(z6);return r.test=e,r.consequent=t,r.alternate=n,r}function sd(e){const t=new vn(q1);return t.name=e,t}function Bs(e){const t=new vn(U6);return t.value=e.value,t.raw=ee.slice(e.start,e.end),e.regex&&(t.raw==="//"&&(t.raw="/(?:)/"),t.regex=e.regex),t}function eb(e,t,n){const r=new vn(H6);return r.computed=e==="[",r.object=t,r.property=n,r.computed||(n.member=!0),r}function m8(e){const t=new vn(V6);return t.properties=e,t}function tb(e,t,n){const r=new vn(j6);return r.key=t,r.value=n,r.kind=e,r}function b8(e,t){const n=new vn($6);return n.operator=e,n.argument=t,n.prefix=!0,n}function we(e,t){var n,r=Array.prototype.slice.call(arguments,2),i=t.replace(/%(\d)/g,(a,o)=>(rc(o<r.length,"Message reference must be in range"),r[o]));throw n=new Error(i),n.index=U,n.description=i,n}function ac(e){e.type===_s&&we(e,Q6),e.type===Fi&&we(e,q6),e.type===Ss&&we(e,W6),e.type===Ri&&we(e,Z6),e.type===Nr&&we(e,Y6),we(e,ct,e.value)}function Et(e){const t=zt();(t.type!==Nt||t.value!==e)&&ac(t)}function Ge(e){return Te.type===Nt&&Te.value===e}function ld(e){return Te.type===Nr&&Te.value===e}function y8(){const e=[];for(U=Te.start,Et("[");!Ge("]");)Ge(",")?(zt(),e.push(null)):(e.push(Mi()),Ge("]")||Et(","));return zt(),d8(e)}function nb(){U=Te.start;const e=zt();return e.type===Ss||e.type===Fi?(e.octal&&we(e,W1),Bs(e)):sd(e.value)}function w8(){var e,t,n,r;if(U=Te.start,e=Te,e.type===Ri)return n=nb(),Et(":"),r=Mi(),tb("init",n,r);if(e.type===_s||e.type===Nt)ac(e);else return t=nb(),Et(":"),r=Mi(),tb("init",t,r)}function v8(){var e=[],t,n,r,i={},a=String;for(U=Te.start,Et("{");!Ge("}");)t=w8(),t.key.type===q1?n=t.key.name:n=a(t.key.value),r="$"+n,Object.prototype.hasOwnProperty.call(i,r)?we({},X6):i[r]=!0,e.push(t),Ge("}")||Et(",");return Et("}"),m8(e)}function x8(){Et("(");const e=ud();return Et(")"),e}const A8={if:1};function E8(){var e,t,n;if(Ge("("))return x8();if(Ge("["))return y8();if(Ge("{"))return v8();if(e=Te.type,U=Te.start,e===Ri||A8[Te.value])n=sd(zt().value);else if(e===Ss||e===Fi)Te.octal&&we(Te,W1),n=Bs(zt());else{if(e===Nr)throw new Error(Cs);e===tc?(t=zt(),t.value=t.value==="true",n=Bs(t)):e===nc?(t=zt(),t.value=null,n=Bs(t)):Ge("/")||Ge("/=")?(n=Bs(f8()),K1()):ac(zt())}return n}function _8(){const e=[];if(Et("("),!Ge(")"))for(;U<At&&(e.push(Mi()),!Ge(")"));)Et(",");return Et(")"),e}function S8(){U=Te.start;const e=zt();return h8(e)||ac(e),sd(e.value)}function C8(){return Et("."),S8()}function k8(){Et("[");const e=ud();return Et("]"),e}function T8(){var e,t,n;for(e=E8();;)if(Ge("."))n=C8(),e=eb(".",e,n);else if(Ge("("))t=_8(),e=p8(e,t);else if(Ge("["))n=k8(),e=eb("[",e,n);else break;return e}function rb(){const e=T8();if(Te.type===Nt&&(Ge("++")||Ge("--")))throw new Error(Cs);return e}function oc(){var e,t;if(Te.type!==Nt&&Te.type!==Nr)t=rb();else{if(Ge("++")||Ge("--"))throw new Error(Cs);if(Ge("+")||Ge("-")||Ge("~")||Ge("!"))e=zt(),t=oc(),t=b8(e.value,t);else{if(ld("delete")||ld("void")||ld("typeof"))throw new Error(Cs);t=rb()}}return t}function ib(e){let t=0;if(e.type!==Nt&&e.type!==Nr)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 I8(){var e,t,n,r,i,a,o,s,u,l;if(e=Te,u=oc(),r=Te,i=ib(r),i===0)return u;for(r.prec=i,zt(),t=[e,Te],o=oc(),a=[u,r,o];(i=ib(Te))>0;){for(;a.length>2&&i<=a[a.length-2].prec;)o=a.pop(),s=a.pop().value,u=a.pop(),t.pop(),n=J1(s,u,o),a.push(n);r=zt(),r.prec=i,a.push(r),t.push(Te),n=oc(),a.push(n)}for(l=a.length-1,n=a[l],t.pop();l>1;)t.pop(),n=J1(a[l-1].value,a[l-2],n),l-=2;return n}function Mi(){var e,t,n;return e=I8(),Ge("?")&&(zt(),t=Mi(),Et(":"),n=Mi(),e=g8(e,t,n)),e}function ud(){const e=Mi();if(Ge(","))throw new Error(Cs);return e}function B8(e){ee=e,U=0,At=ee.length,Te=null,K1();const t=ud();if(Te.type!==_s)throw new Error("Unexpect token after expression.");return t}var D8={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 ab(e){function t(o,s,u,l){let c=e(s[0]);return u&&(c=u+"("+c+")",u.lastIndexOf("new ",0)===0&&(c="("+c+")")),c+"."+o+(l<0?"":l===0?"()":"("+s.slice(1).map(e).join(",")+")")}function n(o,s,u){return l=>t(o,l,s,u)}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",hypot:"Math.hypot",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&&Qe("Missing arguments to clamp function."),o.length>3&&Qe("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&&Qe("Missing arguments to if function."),o.length>3&&Qe("Too many arguments to if function.");const s=o.map(e);return"("+s[0]+"?"+s[1]+":"+s[2]+")"}}}function R8(e){const t=e&&e.length-1;return t&&(e[0]==='"'&&e[t]==='"'||e[0]==="'"&&e[t]==="'")?e.slice(1,-1):e}function F8(e){e=e||{};const t=e.allowed?Fu(e.allowed):{},n=e.forbidden?Fu(e.forbidden):{},r=e.constants||D8,i=(e.functions||ab)(f),a=e.globalvar,o=e.fieldvar,s=Pt(a)?a:p=>`${a}["${p}"]`;let u={},l={},c=0;function f(p){if(Ue(p))return p;const m=h[p.type];return m==null&&Qe("Unsupported type: "+p.type),m(p)}const h={Literal:p=>p.raw,Identifier:p=>{const m=p.name;return c>0?m:Ea(n,m)?Qe("Illegal identifier: "+m):Ea(r,m)?r[m]:Ea(t,m)?m:(u[m]=1,s(m))},MemberExpression:p=>{const m=!p.computed,y=f(p.object);m&&(c+=1);const w=f(p.property);return y===o&&(l[R8(w)]=1),m&&(c-=1),y+(m?"."+w:"["+w+"]")},CallExpression:p=>{p.callee.type!=="Identifier"&&Qe("Illegal callee type: "+p.callee.type);const m=p.callee.name,y=p.arguments,w=Ea(i,m)&&i[m];return w||Qe("Unrecognized function: "+m),Pt(w)?w(y):w+"("+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=>{c+=1;const m=f(p.key);return c-=1,m+":"+f(p.value)}};function d(p){const m={code:f(p),globals:Object.keys(u),fields:Object.keys(l)};return u={},l={},m}return d.functions=i,d.constants=r,d}function ob(e,t,n){return n=(n-e)/(t-e),n=Math.max(0,Math.min(1,n)),n*n*(3-2*n)}function Ds(e,t=0,n=1){return Math.max(t,Math.min(n,e))}function M8(e,t,n){return Ds((n-e)/(t-e),0,1)}const sb={clamp:Ds,isArray:xt,isBoolean:Yo,isDefined(e){return e!==void 0},isNumber:Tt,isObject:kt,isRegExp:x4,isString:Ue,isValid(e){return e!=null&&e===e},lerp:Rm,linearstep:M8,smoothstep:ob};function P8(e){const t=ab(e);for(const n in sb)t[n]=`this.${n}`;return t}const L8=F8({forbidden:[],allowed:["datum"],globalvar:"globalObject",fieldvar:"datum",functions:P8});function sc(e,t={}){try{const n=B8(e),r=L8(n),i=Function("datum","globalObject",`"use strict"; return (${r.code});`).bind(sb),a=o=>i(o,t);return a.fields=r.fields,a.globals=r.globals,a.code=r.code,a}catch(n){throw new Error(`Invalid expression: ${e}, ${n.message}`)}}function Nn(e,t){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(t).domain(e);break}return this}function zr(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 cd=Symbol("implicit");function fd(){var e=new Rr,t=[],n=[],r=cd;function i(a){let o=e.get(a);if(o===void 0){if(r!==cd)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 Rr;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 fd(t,n).unknown(r)},Nn.apply(i,arguments),i}function Da(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function Rs(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function Ur(){}var Pi=.7,Ra=1/Pi,Fa="\\s*([+-]?\\d+)\\s*",Fs="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",zn="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",O8=/^#([0-9a-f]{3,8})$/,N8=new RegExp(`^rgb\\(${Fa},${Fa},${Fa}\\)$`),z8=new RegExp(`^rgb\\(${zn},${zn},${zn}\\)$`),U8=new RegExp(`^rgba\\(${Fa},${Fa},${Fa},${Fs}\\)$`),G8=new RegExp(`^rgba\\(${zn},${zn},${zn},${Fs}\\)$`),H8=new RegExp(`^hsl\\(${Fs},${zn},${zn}\\)$`),V8=new RegExp(`^hsla\\(${Fs},${zn},${zn},${Fs}\\)$`),lb={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};Da(Ur,Gr,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:ub,formatHex:ub,formatHex8:j8,formatHsl:$8,formatRgb:cb,toString:cb});function ub(){return this.rgb().formatHex()}function j8(){return this.rgb().formatHex8()}function $8(){return gb(this).formatHsl()}function cb(){return this.rgb().formatRgb()}function Gr(e){var t,n;return e=(e+"").trim().toLowerCase(),(t=O8.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?fb(t):n===3?new ft(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?lc(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?lc(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=N8.exec(e))?new ft(t[1],t[2],t[3],1):(t=z8.exec(e))?new ft(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=U8.exec(e))?lc(t[1],t[2],t[3],t[4]):(t=G8.exec(e))?lc(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=H8.exec(e))?pb(t[1],t[2]/100,t[3]/100,1):(t=V8.exec(e))?pb(t[1],t[2]/100,t[3]/100,t[4]):lb.hasOwnProperty(e)?fb(lb[e]):e==="transparent"?new ft(NaN,NaN,NaN,0):null}function fb(e){return new ft(e>>16&255,e>>8&255,e&255,1)}function lc(e,t,n,r){return r<=0&&(e=t=n=NaN),new ft(e,t,n,r)}function hd(e){return e instanceof Ur||(e=Gr(e)),e?(e=e.rgb(),new ft(e.r,e.g,e.b,e.opacity)):new ft}function uc(e,t,n,r){return arguments.length===1?hd(e):new ft(e,t,n,r??1)}function ft(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}Da(ft,uc,Rs(Ur,{brighter(e){return e=e==null?Ra:Math.pow(Ra,e),new ft(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?Pi:Math.pow(Pi,e),new ft(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new ft(Li(this.r),Li(this.g),Li(this.b),cc(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:hb,formatHex:hb,formatHex8:q8,formatRgb:db,toString:db}));function hb(){return`#${Oi(this.r)}${Oi(this.g)}${Oi(this.b)}`}function q8(){return`#${Oi(this.r)}${Oi(this.g)}${Oi(this.b)}${Oi((isNaN(this.opacity)?1:this.opacity)*255)}`}function db(){const e=cc(this.opacity);return`${e===1?"rgb(":"rgba("}${Li(this.r)}, ${Li(this.g)}, ${Li(this.b)}${e===1?")":`, ${e})`}`}function cc(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function Li(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Oi(e){return e=Li(e),(e<16?"0":"")+e.toString(16)}function pb(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new xn(e,t,n,r)}function gb(e){if(e instanceof xn)return new xn(e.h,e.s,e.l,e.opacity);if(e instanceof Ur||(e=Gr(e)),!e)return new xn;if(e instanceof xn)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,u=(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/=u<.5?a+i:2-a-i,o*=60):s=u>0&&u<1?0:o,new xn(o,s,u,e.opacity)}function dd(e,t,n,r){return arguments.length===1?gb(e):new xn(e,t,n,r??1)}function xn(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}Da(xn,dd,Rs(Ur,{brighter(e){return e=e==null?Ra:Math.pow(Ra,e),new xn(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?Pi:Math.pow(Pi,e),new xn(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 ft(pd(e>=240?e-240:e+120,i,r),pd(e,i,r),pd(e<120?e+240:e-120,i,r),this.opacity)},clamp(){return new xn(mb(this.h),fc(this.s),fc(this.l),cc(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=cc(this.opacity);return`${e===1?"hsl(":"hsla("}${mb(this.h)}, ${fc(this.s)*100}%, ${fc(this.l)*100}%${e===1?")":`, ${e})`}`}}));function mb(e){return e=(e||0)%360,e<0?e+360:e}function fc(e){return Math.max(0,Math.min(1,e||0))}function pd(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 bb=Math.PI/180,yb=180/Math.PI,hc=18,wb=.96422,vb=1,xb=.82521,Ab=4/29,Ma=6/29,Eb=3*Ma*Ma,W8=Ma*Ma*Ma;function _b(e){if(e instanceof Un)return new Un(e.l,e.a,e.b,e.opacity);if(e instanceof ur)return Sb(e);e instanceof ft||(e=hd(e));var t=wd(e.r),n=wd(e.g),r=wd(e.b),i=md((.2225045*t+.7168786*n+.0606169*r)/vb),a,o;return t===n&&n===r?a=o=i:(a=md((.4360747*t+.3850649*n+.1430804*r)/wb),o=md((.0139322*t+.0971045*n+.7141733*r)/xb)),new Un(116*i-16,500*(a-i),200*(i-o),e.opacity)}function gd(e,t,n,r){return arguments.length===1?_b(e):new Un(e,t,n,r??1)}function Un(e,t,n,r){this.l=+e,this.a=+t,this.b=+n,this.opacity=+r}Da(Un,gd,Rs(Ur,{brighter(e){return new Un(this.l+hc*(e??1),this.a,this.b,this.opacity)},darker(e){return new Un(this.l-hc*(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=wb*bd(t),e=vb*bd(e),n=xb*bd(n),new ft(yd(3.1338561*t-1.6168667*e-.4906146*n),yd(-.9787684*t+1.9161415*e+.033454*n),yd(.0719453*t-.2289914*e+1.4052427*n),this.opacity)}}));function md(e){return e>W8?Math.pow(e,1/3):e/Eb+Ab}function bd(e){return e>Ma?e*e*e:Eb*(e-Ab)}function yd(e){return 255*(e<=.0031308?12.92*e:1.055*Math.pow(e,1/2.4)-.055)}function wd(e){return(e/=255)<=.04045?e/12.92:Math.pow((e+.055)/1.055,2.4)}function Z8(e){if(e instanceof ur)return new ur(e.h,e.c,e.l,e.opacity);if(e instanceof Un||(e=_b(e)),e.a===0&&e.b===0)return new ur(NaN,0<e.l&&e.l<100?0:NaN,e.l,e.opacity);var t=Math.atan2(e.b,e.a)*yb;return new ur(t<0?t+360:t,Math.sqrt(e.a*e.a+e.b*e.b),e.l,e.opacity)}function vd(e,t,n,r){return arguments.length===1?Z8(e):new ur(e,t,n,r??1)}function ur(e,t,n,r){this.h=+e,this.c=+t,this.l=+n,this.opacity=+r}function Sb(e){if(isNaN(e.h))return new Un(e.l,0,0,e.opacity);var t=e.h*bb;return new Un(e.l,Math.cos(t)*e.c,Math.sin(t)*e.c,e.opacity)}Da(ur,vd,Rs(Ur,{brighter(e){return new ur(this.h,this.c,this.l+hc*(e??1),this.opacity)},darker(e){return new ur(this.h,this.c,this.l-hc*(e??1),this.opacity)},rgb(){return Sb(this).rgb()}}));var Cb=-.14861,xd=1.78277,Ad=-.29227,dc=-.90649,Ms=1.97294,kb=Ms*dc,Tb=Ms*xd,Ib=xd*Ad-dc*Cb;function Y8(e){if(e instanceof Ni)return new Ni(e.h,e.s,e.l,e.opacity);e instanceof ft||(e=hd(e));var t=e.r/255,n=e.g/255,r=e.b/255,i=(Ib*r+kb*t-Tb*n)/(Ib+kb-Tb),a=r-i,o=(Ms*(n-i)-Ad*a)/dc,s=Math.sqrt(o*o+a*a)/(Ms*i*(1-i)),u=s?Math.atan2(o,a)*yb-120:NaN;return new Ni(u<0?u+360:u,s,i,e.opacity)}function Ed(e,t,n,r){return arguments.length===1?Y8(e):new Ni(e,t,n,r??1)}function Ni(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}Da(Ni,Ed,Rs(Ur,{brighter(e){return e=e==null?Ra:Math.pow(Ra,e),new Ni(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?Pi:Math.pow(Pi,e),new Ni(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=isNaN(this.h)?0:(this.h+120)*bb,t=+this.l,n=isNaN(this.s)?0:this.s*t*(1-t),r=Math.cos(e),i=Math.sin(e);return new ft(255*(t+n*(Cb*r+xd*i)),255*(t+n*(Ad*r+dc*i)),255*(t+n*(Ms*r)),this.opacity)}}));function Bb(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 Db(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 Bb((n-r/t)*t,o,i,a,s)}}function Rb(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 Bb((n-r/t)*t,i,a,o,s)}}const pc=e=>()=>e;function Fb(e,t){return function(n){return e+n*t}}function Q8(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 gc(e,t){var n=t-e;return n?Fb(e,n>180||n<-180?n-360*Math.round(n/360):n):pc(isNaN(e)?t:e)}function X8(e){return(e=+e)==1?ht:function(t,n){return n-t?Q8(t,n,e):pc(isNaN(t)?n:t)}}function ht(e,t){var n=t-e;return n?Fb(e,n):pc(isNaN(e)?t:e)}const _d=function e(t){var n=X8(t);function r(i,a){var o=n((i=uc(i)).r,(a=uc(a)).r),s=n(i.g,a.g),u=n(i.b,a.b),l=ht(i.opacity,a.opacity);return function(c){return i.r=o(c),i.g=s(c),i.b=u(c),i.opacity=l(c),i+""}}return r.gamma=e,r}(1);function Mb(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=uc(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(u){return s.r=r(u),s.g=i(u),s.b=a(u),s+""}}}var K8=Mb(Db),J8=Mb(Rb);function Sd(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 Pb(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function e5(e,t){return(Pb(t)?Sd:Lb)(e,t)}function Lb(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]=Hr(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 Ob(e,t){var n=new Date;return e=+e,t=+t,function(r){return n.setTime(e*(1-r)+t*r),n}}function An(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}function Nb(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]=Hr(e[i],t[i]):r[i]=t[i];return function(a){for(i in n)r[i]=n[i](a);return r}}var Cd=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,kd=new RegExp(Cd.source,"g");function t5(e){return function(){return e}}function n5(e){return function(t){return e(t)+""}}function zb(e,t){var n=Cd.lastIndex=kd.lastIndex=0,r,i,a,o=-1,s=[],u=[];for(e=e+"",t=t+"";(r=Cd.exec(e))&&(i=kd.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,u.push({i:o,x:An(r,i)})),n=kd.lastIndex;return n<t.length&&(a=t.slice(n),s[o]?s[o]+=a:s[++o]=a),s.length<2?u[0]?n5(u[0].x):t5(t):(t=u.length,function(l){for(var c=0,f;c<t;++c)s[(f=u[c]).i]=f.x(l);return s.join("")})}function Hr(e,t){var n=typeof t,r;return t==null||n==="boolean"?pc(t):(n==="number"?An:n==="string"?(r=Gr(t))?(t=r,_d):zb:t instanceof Gr?_d:t instanceof Date?Ob:Pb(t)?Sd:Array.isArray(t)?Lb:typeof t.valueOf!="function"&&typeof t.toString!="function"||isNaN(t)?Nb:An)(e,t)}function r5(e){var t=e.length;return function(n){return e[Math.max(0,Math.min(t-1,Math.floor(n*t)))]}}function i5(e,t){var n=gc(+e,+t);return function(r){var i=n(r);return i-360*Math.floor(i/360)}}function Ps(e,t){return e=+e,t=+t,function(n){return Math.round(e*(1-n)+t*n)}}var Ub=180/Math.PI,Td={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function Gb(e,t,n,r,i,a){var o,s,u;return(o=Math.sqrt(e*e+t*t))&&(e/=o,t/=o),(u=e*n+t*r)&&(n-=e*u,r-=t*u),(s=Math.sqrt(n*n+r*r))&&(n/=s,r/=s,u/=s),e*r<t*n&&(e=-e,t=-t,u=-u,o=-o),{translateX:i,translateY:a,rotate:Math.atan2(t,e)*Ub,skewX:Math.atan(u)*Ub,scaleX:o,scaleY:s}}var mc;function a5(e){const t=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(e+"");return t.isIdentity?Td:Gb(t.a,t.b,t.c,t.d,t.e,t.f)}function o5(e){return e==null||(mc||(mc=document.createElementNS("http://www.w3.org/2000/svg","g")),mc.setAttribute("transform",e),!(e=mc.transform.baseVal.consolidate()))?Td:(e=e.matrix,Gb(e.a,e.b,e.c,e.d,e.e,e.f))}function Hb(e,t,n,r){function i(l){return l.length?l.pop()+" ":""}function a(l,c,f,h,d,p){if(l!==f||c!==h){var m=d.push("translate(",null,t,null,n);p.push({i:m-4,x:An(l,f)},{i:m-2,x:An(c,h)})}else(f||h)&&d.push("translate("+f+t+h+n)}function o(l,c,f,h){l!==c?(l-c>180?c+=360:c-l>180&&(l+=360),h.push({i:f.push(i(f)+"rotate(",null,r)-2,x:An(l,c)})):c&&f.push(i(f)+"rotate("+c+r)}function s(l,c,f,h){l!==c?h.push({i:f.push(i(f)+"skewX(",null,r)-2,x:An(l,c)}):c&&f.push(i(f)+"skewX("+c+r)}function u(l,c,f,h,d,p){if(l!==f||c!==h){var m=d.push(i(d)+"scale(",null,",",null,")");p.push({i:m-4,x:An(l,f)},{i:m-2,x:An(c,h)})}else(f!==1||h!==1)&&d.push(i(d)+"scale("+f+","+h+")")}return function(l,c){var f=[],h=[];return l=e(l),c=e(c),a(l.translateX,l.translateY,c.translateX,c.translateY,f,h),o(l.rotate,c.rotate,f,h),s(l.skewX,c.skewX,f,h),u(l.scaleX,l.scaleY,c.scaleX,c.scaleY,f,h),l=c=null,function(d){for(var p=-1,m=h.length,y;++p<m;)f[(y=h[p]).i]=y.x(d);return f.join("")}}}var s5=Hb(a5,"px, ","px)","deg)"),l5=Hb(o5,", ",")",")"),u5=1e-12;function Vb(e){return((e=Math.exp(e))+1/e)/2}function c5(e){return((e=Math.exp(e))-1/e)/2}function f5(e){return((e=Math.exp(2*e))-1)/(e+1)}const h5=function e(t,n,r){function i(a,o){var s=a[0],u=a[1],l=a[2],c=o[0],f=o[1],h=o[2],d=c-s,p=f-u,m=d*d+p*p,y,w;if(m<u5)w=Math.log(h/l)/t,y=function(B){return[s+B*d,u+B*p,l*Math.exp(t*B*w)]};else{var A=Math.sqrt(m),S=(h*h-l*l+r*m)/(2*l*n*A),_=(h*h-l*l-r*m)/(2*h*n*A),T=Math.log(Math.sqrt(S*S+1)-S),I=Math.log(Math.sqrt(_*_+1)-_);w=(I-T)/t,y=function(B){var R=B*w,M=Vb(T),G=l/(n*A)*(M*f5(t*R+T)-c5(T));return[s+G*d,u+G*p,l*M/Vb(t*R+T)]}}return y.duration=w*1e3*t/Math.SQRT2,y}return i.rho=function(a){var o=Math.max(.001,+a),s=o*o,u=s*s;return e(o,s,u)},i}(Math.SQRT2,2,4);function jb(e){return function(t,n){var r=e((t=dd(t)).h,(n=dd(n)).h),i=ht(t.s,n.s),a=ht(t.l,n.l),o=ht(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 d5=jb(gc);var p5=jb(ht);function g5(e,t){var n=ht((e=gd(e)).l,(t=gd(t)).l),r=ht(e.a,t.a),i=ht(e.b,t.b),a=ht(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 $b(e){return function(t,n){var r=e((t=vd(t)).h,(n=vd(n)).h),i=ht(t.c,n.c),a=ht(t.l,n.l),o=ht(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 m5=$b(gc);var b5=$b(ht);function qb(e){return function t(n){n=+n;function r(i,a){var o=e((i=Ed(i)).h,(a=Ed(a)).h),s=ht(i.s,a.s),u=ht(i.l,a.l),l=ht(i.opacity,a.opacity);return function(c){return i.h=o(c),i.s=s(c),i.l=u(Math.pow(c,n)),i.opacity=l(c),i+""}}return r.gamma=t,r}(1)}const y5=qb(gc);var w5=qb(ht);function Id(e,t){t===void 0&&(t=e,e=Hr);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 v5(e,t){for(var n=new Array(t),r=0;r<t;++r)n[r]=e(r/(t-1));return n}const x5=Object.freeze(Object.defineProperty({__proto__:null,interpolate:Hr,interpolateArray:e5,interpolateBasis:Db,interpolateBasisClosed:Rb,interpolateCubehelix:y5,interpolateCubehelixLong:w5,interpolateDate:Ob,interpolateDiscrete:r5,interpolateHcl:m5,interpolateHclLong:b5,interpolateHsl:d5,interpolateHslLong:p5,interpolateHue:i5,interpolateLab:g5,interpolateNumber:An,interpolateNumberArray:Sd,interpolateObject:Nb,interpolateRgb:_d,interpolateRgbBasis:K8,interpolateRgbBasisClosed:J8,interpolateRound:Ps,interpolateString:zb,interpolateTransformCss:s5,interpolateTransformSvg:l5,interpolateZoom:h5,piecewise:Id,quantize:v5},Symbol.toStringTag,{value:"Module"}));function A5(e){return function(){return e}}function Bd(e){return+e}var Wb=[0,1];function Ut(e){return e}function Dd(e,t){return(t-=e=+e)?function(n){return(n-e)/t}:A5(isNaN(t)?NaN:.5)}function E5(e,t){var n;return e>t&&(n=e,e=t,t=n),function(r){return Math.max(e,Math.min(t,r))}}function _5(e,t,n){var r=e[0],i=e[1],a=t[0],o=t[1];return i<r?(r=Dd(i,r),a=n(o,a)):(r=Dd(r,i),a=n(a,o)),function(s){return a(r(s))}}function S5(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]=Dd(e[o],e[o+1]),a[o]=n(t[o],t[o+1]);return function(s){var u=Dr(e,s,1,r)-1;return a[u](i[u](s))}}function Ls(e,t){return t.domain(e.domain()).range(e.range()).interpolate(e.interpolate()).clamp(e.clamp()).unknown(e.unknown())}function bc(){var e=Wb,t=Wb,n=Hr,r,i,a,o=Ut,s,u,l;function c(){var h=Math.min(e.length,t.length);return o!==Ut&&(o=E5(e[0],e[h-1])),s=h>2?S5:_5,u=l=null,f}function f(h){return h==null||isNaN(h=+h)?a:(u||(u=s(e.map(r),t,n)))(r(o(h)))}return f.invert=function(h){return o(i((l||(l=s(t,e.map(r),An)))(h)))},f.domain=function(h){return arguments.length?(e=Array.from(h,Bd),c()):e.slice()},f.range=function(h){return arguments.length?(t=Array.from(h),c()):t.slice()},f.rangeRound=function(h){return t=Array.from(h),n=Ps,c()},f.clamp=function(h){return arguments.length?(o=h?!0:Ut,c()):o!==Ut},f.interpolate=function(h){return arguments.length?(n=h,c()):n},f.unknown=function(h){return arguments.length?(a=h,f):a},function(h,d){return r=h,i=d,c()}}function Zb(){return bc()(Ut,Ut)}function Yb(e,t,n,r){var i=Fr(e,t,n),a;switch(r=Mr(r??",f"),r.type){case"s":{var o=Math.max(Math.abs(e),Math.abs(t));return r.precision==null&&!isNaN(a=Xm(i,o))&&(r.precision=a),Ph(r,o)}case"":case"e":case"g":case"p":case"r":{r.precision==null&&!isNaN(a=Km(i,Math.max(Math.abs(e),Math.abs(t))))&&(r.precision=a-(r.type==="e"));break}case"f":case"%":{r.precision==null&&!isNaN(a=Qm(i))&&(r.precision=a-(r.type==="%")*2);break}}return mt(r)}function zi(e){var t=e.domain;return e.ticks=function(n){var r=t();return Ou(r[0],r[r.length-1],n??10)},e.tickFormat=function(n,r){var i=t();return Yb(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],u,l,c=10;for(s<o&&(l=o,o=s,s=l,l=i,i=a,a=l);c-- >0;){if(l=Fh(o,s,n),l===u)return r[i]=o,r[a]=s,t(r);if(l>0)o=Math.floor(o/l)*l,s=Math.ceil(s/l)*l;else if(l<0)o=Math.ceil(o*l)/l,s=Math.floor(s*l)/l;else break;u=l}return e},e}function Qb(){var e=Zb();return e.copy=function(){return Ls(e,Qb())},Nn.apply(e,arguments),zi(e)}function Xb(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,Bd),n):e.slice()},n.unknown=function(r){return arguments.length?(t=r,n):t},n.copy=function(){return Xb(e).unknown(t)},e=arguments.length?Array.from(e,Bd):[0,1],zi(n)}function Kb(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 Jb(e){return Math.log(e)}function e2(e){return Math.exp(e)}function C5(e){return-Math.log(-e)}function k5(e){return-Math.exp(-e)}function T5(e){return isFinite(e)?+("1e"+e):e<0?0:e}function I5(e){return e===10?T5:e===Math.E?Math.exp:t=>Math.pow(e,t)}function B5(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 t2(e){return(t,n)=>-e(-t,n)}function Rd(e){const t=e(Jb,e2),n=t.domain;let r=10,i,a;function o(){return i=B5(r),a=I5(r),n()[0]<0?(i=t2(i),a=t2(a),e(C5,k5)):e(Jb,e2),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 u=n();let l=u[0],c=u[u.length-1];const f=c<l;f&&([l,c]=[c,l]);let h=i(l),d=i(c),p,m;const y=s==null?10:+s;let w=[];if(!(r%1)&&d-h<y){if(h=Math.floor(h),d=Math.ceil(d),l>0){for(;h<=d;++h)for(p=1;p<r;++p)if(m=h<0?p/a(-h):p*a(h),!(m<l)){if(m>c)break;w.push(m)}}else for(;h<=d;++h)for(p=r-1;p>=1;--p)if(m=h>0?p/a(-h):p*a(h),!(m<l)){if(m>c)break;w.push(m)}w.length*2<y&&(w=Ou(l,c,y))}else w=Ou(h,d,Math.min(d-h,y)).map(a);return f?w.reverse():w},t.tickFormat=(s,u)=>{if(s==null&&(s=10),u==null&&(u=r===10?"s":","),typeof u!="function"&&(!(r%1)&&(u=Mr(u)).precision==null&&(u.trim=!0),u=mt(u)),s===1/0)return u;const l=Math.max(1,r*s/t.ticks().length);return c=>{let f=c/a(Math.round(i(c)));return f*r<r-.5&&(f*=r),f<=l?u(c):""}},t.nice=()=>n(Kb(n(),{floor:s=>a(Math.floor(i(s))),ceil:s=>a(Math.ceil(i(s)))})),t}function Fd(){const e=Rd(bc()).domain([1,10]);return e.copy=()=>Ls(e,Fd()).base(e.base()),Nn.apply(e,arguments),e}function n2(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 Md(e){var t=1,n=e(n2(t),r2(t));return n.constant=function(r){return arguments.length?e(n2(t=+r),r2(t)):t},zi(n)}function i2(){var e=Md(bc());return e.copy=function(){return Ls(e,i2()).constant(e.constant())},Nn.apply(e,arguments)}function a2(e){return function(t){return t<0?-Math.pow(-t,e):Math.pow(t,e)}}function D5(e){return e<0?-Math.sqrt(-e):Math.sqrt(e)}function R5(e){return e<0?-e*e:e*e}function Pd(e){var t=e(Ut,Ut),n=1;function r(){return n===1?e(Ut,Ut):n===.5?e(D5,R5):e(a2(n),a2(1/n))}return t.exponent=function(i){return arguments.length?(n=+i,r()):n},zi(t)}function Ld(){var e=Pd(bc());return e.copy=function(){return Ls(e,Ld()).exponent(e.exponent())},Nn.apply(e,arguments),e}function F5(){return Ld.apply(null,arguments).exponent(.5)}function o2(){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]=Vm(e,o/s);return a}function a(o){return o==null||isNaN(o=+o)?r:t[Dr(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(Xo),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 o2().domain(e).range(t).unknown(r)},Nn.apply(a,arguments)}function s2(){var e=0,t=1,n=1,r=[.5],i=[0,1],a;function o(u){return u!=null&&u<=u?i[Dr(r,u,0,n)]:a}function s(){var u=-1;for(r=new Array(n);++u<n;)r[u]=((u+1)*t-(u-n)*e)/(n+1);return o}return o.domain=function(u){return arguments.length?([e,t]=u,e=+e,t=+t,s()):[e,t]},o.range=function(u){return arguments.length?(n=(i=Array.from(u)).length-1,s()):i.slice()},o.invertExtent=function(u){var l=i.indexOf(u);return l<0?[NaN,NaN]:l<1?[e,r[0]]:l>=n?[r[n-1],t]:[r[l-1],r[l]]},o.unknown=function(u){return arguments.length&&(a=u),o},o.thresholds=function(){return r.slice()},o.copy=function(){return s2().domain([e,t]).range(i).unknown(a)},Nn.apply(zi(o),arguments)}function l2(){var e=[.5],t=[0,1],n,r=1;function i(a){return a!=null&&a<=a?t[Dr(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 l2().domain(e).range(t).unknown(n)},Nn.apply(i,arguments)}function M5(e){return new Date(e)}function P5(e){return e instanceof Date?+e:+new Date(+e)}function Od(e,t,n,r,i,a,o,s,u,l){var c=Zb(),f=c.invert,h=c.domain,d=l(".%L"),p=l(":%S"),m=l("%I:%M"),y=l("%I %p"),w=l("%a %d"),A=l("%b %d"),S=l("%B"),_=l("%Y");function T(I){return(u(I)<I?d:s(I)<I?p:o(I)<I?m:a(I)<I?y:r(I)<I?i(I)<I?w:A:n(I)<I?S:_)(I)}return c.invert=function(I){return new Date(f(I))},c.domain=function(I){return arguments.length?h(Array.from(I,P5)):h().map(M5)},c.ticks=function(I){var B=h();return e(B[0],B[B.length-1],I??10)},c.tickFormat=function(I,B){return B==null?T:l(B)},c.nice=function(I){var B=h();return(!I||typeof I.range!="function")&&(I=t(B[0],B[B.length-1],I??10)),I?h(Kb(B,I)):c},c.copy=function(){return Ls(c,Od(e,t,n,r,i,a,o,s,u,l))},c}function L5(){return Nn.apply(Od(dS,pS,Pn,ts,Jo,Pr,Vu,Gu,sr,Vh).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}function O5(){return Nn.apply(Od(fS,hS,Ln,ns,es,Si,ju,Hu,sr,jh).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)}function yc(){var e=0,t=1,n,r,i,a,o=Ut,s=!1,u;function l(f){return f==null||isNaN(f=+f)?u:o(i===0?.5:(f=(a(f)-n)*i,s?Math.max(0,Math.min(1,f)):f))}l.domain=function(f){return arguments.length?([e,t]=f,n=a(e=+e),r=a(t=+t),i=n===r?0:1/(r-n),l):[e,t]},l.clamp=function(f){return arguments.length?(s=!!f,l):s},l.interpolator=function(f){return arguments.length?(o=f,l):o};function c(f){return function(h){var d,p;return arguments.length?([d,p]=h,o=f(d,p),l):[o(0),o(1)]}}return l.range=c(Hr),l.rangeRound=c(Ps),l.unknown=function(f){return arguments.length?(u=f,l):u},function(f){return a=f,n=f(e),r=f(t),i=n===r?0:1/(r-n),l}}function Vr(e,t){return t.domain(e.domain()).interpolator(e.interpolator()).clamp(e.clamp()).unknown(e.unknown())}function Nd(){var e=zi(yc()(Ut));return e.copy=function(){return Vr(e,Nd())},zr.apply(e,arguments)}function u2(){var e=Rd(yc()).domain([1,10]);return e.copy=function(){return Vr(e,u2()).base(e.base())},zr.apply(e,arguments)}function c2(){var e=Md(yc());return e.copy=function(){return Vr(e,c2()).constant(e.constant())},zr.apply(e,arguments)}function zd(){var e=Pd(yc());return e.copy=function(){return Vr(e,zd()).exponent(e.exponent())},zr.apply(e,arguments)}function N5(){return zd.apply(null,arguments).exponent(.5)}function wc(){var e=0,t=.5,n=1,r=1,i,a,o,s,u,l=Ut,c,f=!1,h;function d(m){return isNaN(m=+m)?h:(m=.5+((m=+c(m))-a)*(r*m<r*a?s:u),l(f?Math.max(0,Math.min(1,m)):m))}d.domain=function(m){return arguments.length?([e,t,n]=m,i=c(e=+e),a=c(t=+t),o=c(n=+n),s=i===a?0:.5/(a-i),u=a===o?0:.5/(o-a),r=a<i?-1:1,d):[e,t,n]},d.clamp=function(m){return arguments.length?(f=!!m,d):f},d.interpolator=function(m){return arguments.length?(l=m,d):l};function p(m){return function(y){var w,A,S;return arguments.length?([w,A,S]=y,l=Id(m,[w,A,S]),d):[l(0),l(.5),l(1)]}}return d.range=p(Hr),d.rangeRound=p(Ps),d.unknown=function(m){return arguments.length?(h=m,d):h},function(m){return c=m,i=m(e),a=m(t),o=m(n),s=i===a?0:.5/(a-i),u=a===o?0:.5/(o-a),r=a<i?-1:1,d}}function f2(){var e=zi(wc()(Ut));return e.copy=function(){return Vr(e,f2())},zr.apply(e,arguments)}function h2(){var e=Rd(wc()).domain([.1,1,10]);return e.copy=function(){return Vr(e,h2()).base(e.base())},zr.apply(e,arguments)}function d2(){var e=Md(wc());return e.copy=function(){return Vr(e,d2()).constant(e.constant())},zr.apply(e,arguments)}function Ud(){var e=Pd(wc());return e.copy=function(){return Vr(e,Ud()).exponent(e.exponent())},zr.apply(e,arguments)}function z5(){return Ud.apply(null,arguments).exponent(.5)}function Gd(e,t,n){const r=e-t+n*2;return e?r>0?r:1:0}const U5="identity",Pa="linear",jr="log",Os="pow",Ns="sqrt",vc="symlog",p2="time",g2="utc",Gn="sequential",La="diverging",Hd="quantile",m2="quantize",b2="threshold",Vd="ordinal",jd="point",y2="band",$d="bin-ordinal",ot="continuous",zs="discrete",Us="discretizing",nn="interpolating",w2="temporal";function G5(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 H5(e){return function(t){const n=e.range();let r=t[0],i=t[1],a=-1,o,s,u,l;for(i<r&&(s=r,r=i,i=s),u=0,l=n.length;u<l;++u)n[u]>=r&&n[u]<=i&&(a<0&&(a=u),o=u);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 qd(){const e=fd().unknown(void 0),t=e.domain,n=e.range;let r=[0,1],i,a,o=!1,s=0,u=0,l=.5;delete e.unknown;function c(){const f=t().length,h=r[1]<r[0],d=r[1-h],p=Gd(f,s,u);let m=r[h-0];i=(d-m)/(p||1),o&&(i=Math.floor(i)),m+=(d-m-i*(f-s))*l,a=i*(1-s),o&&(m=Math.round(m),a=Math.round(a));const y=Ko(f).map(w=>m+i*w);return n(h?y.reverse():y)}return e.domain=function(f){return arguments.length?(t(f),c()):t()},e.range=function(f){return arguments.length?(r=[+f[0],+f[1]],c()):r.slice()},e.rangeRound=function(f){return r=[+f[0],+f[1]],o=!0,c()},e.bandwidth=function(){return a},e.step=function(){return i},e.round=function(f){return arguments.length?(o=!!f,c()):o},e.padding=function(f){return arguments.length?(u=Math.max(0,Math.min(1,f)),s=u,c()):s},e.paddingInner=function(f){return arguments.length?(s=Math.max(0,Math.min(1,f)),c()):s},e.paddingOuter=function(f){return arguments.length?(u=Math.max(0,Math.min(1,f)),c()):u},e.align=function(f){return arguments.length?(l=Math.max(0,Math.min(1,f)),c()):l},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 m=+f[0],y=+f[1],w,A,S;if(!(m!==m||y!==y)&&(y<m&&(S=m,m=y,y=S),!(y<d[0]||m>r[1-h])))return w=Math.max(0,Dr(d,m)-1),A=m===y?w:Dr(d,y)-1,m-d[w]>a+1e-10&&++w,h&&(S=w,w=p-A,A=p-S),w>A?void 0:t().slice(w,A+1)},e.invert=function(f){const h=e.invertRange([f,f]);return h&&h[0]},e.copy=function(){return qd().domain(t()).range(r).round(o).paddingInner(s).paddingOuter(u).align(l)},c()}function v2(e){const t=e.copy;return e.padding=e.paddingOuter,delete e.paddingInner,e.copy=function(){return v2(t())},e}function V5(){return v2(qd().paddingInner(1))}var j5=Array.prototype.map;function $5(e){return j5.call(e,Zo)}const q5=Array.prototype.slice;function x2(){let e=[],t=[];function n(r){return r==null||r!==r?void 0:t[(Dr(e,r)-1)%t.length]}return n.domain=function(r){return arguments.length?(e=$5(r),n):e.slice()},n.range=function(r){return arguments.length?(t=q5.call(r),n):t.slice()},n.tickFormat=function(r,i){return Yb(e[0],wn(e),r??10,i)},n.copy=function(){return x2().domain(n.domain()).range(n.range())},n}const xc=new Map,W5=Symbol("vega_scale");function Z5(e){return e[W5]=!0,e}function Y5(e,t,n){const r=function(){const a=t();return a.invertRange||(a.invertRange=a.invert?G5(a):a.invertExtent?H5(a):void 0),a.type=e,Z5(a)};return r.metadata=Fu(kh(n)),r}function Ee(e,t,n){return arguments.length>1?(xc.set(e,Y5(e,t,n)),this):Q5(e)?xc.get(e):void 0}Ee(U5,Xb),Ee(Pa,Qb,ot),Ee(jr,Fd,[ot,jr]),Ee(Os,Ld,ot),Ee(Ns,F5,ot),Ee(vc,i2,ot),Ee(p2,L5,[ot,w2]),Ee(g2,O5,[ot,w2]),Ee(Gn,Nd,[ot,nn]),Ee(`${Gn}-${Pa}`,Nd,[ot,nn]),Ee(`${Gn}-${jr}`,u2,[ot,nn,jr]),Ee(`${Gn}-${Os}`,zd,[ot,nn]),Ee(`${Gn}-${Ns}`,N5,[ot,nn]),Ee(`${Gn}-${vc}`,c2,[ot,nn]),Ee(`${La}-${Pa}`,f2,[ot,nn]),Ee(`${La}-${jr}`,h2,[ot,nn,jr]),Ee(`${La}-${Os}`,Ud,[ot,nn]),Ee(`${La}-${Ns}`,z5,[ot,nn]),Ee(`${La}-${vc}`,d2,[ot,nn]),Ee(Hd,o2,[Us,Hd]),Ee(m2,s2,Us),Ee(b2,l2,Us),Ee($d,x2,[zs,Us]),Ee(Vd,fd,zs),Ee(y2,qd,zs),Ee(jd,V5,zs);function Q5(e){return xc.has(e)}function Gs(e,t){const n=xc.get(e);return n&&n.metadata[t]}function yt(e){return Gs(e,ot)}function Hn(e){return Gs(e,zs)}function Ui(e){return Gs(e,Us)}function A2(e){return Gs(e,jr)}function Ac(e){return Gs(e,nn)}function X5(e,t){const n=t[0],r=wn(t)-n;return function(i){return e(n+i*r)}}function Ec(e,t,n){return Id(E2(t||"rgb",n),e)}function K5(e,t){const n=new Array(t),r=t+1;for(let i=0;i<t;)n[i]=e(++i/r);return n}function E2(e,t){const n=x5[J5(e)];return t!=null&&n&&n.gamma?n.gamma(t):n}function J5(e){return"interpolate"+e.toLowerCase().split("-").map(t=>t[0].toUpperCase()+t.slice(1)).join("")}const ek={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"},tk={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 _2(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 S2(e,t){for(const n in e)Wd(n,t(e[n]))}const C2={};S2(tk,_2),S2(ek,e=>Ec(_2(e)));function Wd(e,t){return e=e&&e.toLowerCase(),arguments.length>1?(C2[e]=t,this):C2[e]}function nk(){let e=0,t,n=0;const r=new Map,i=a=>(a===t||(n=r.get(a),n===void 0&&(n=e++,r.set(a,n)),t=a),n);return i.addAll=a=>{for(const o of a)i(o)},i.invert=a=>{for(const o of r.entries())if(o[1]==a)return o[0]},i.domain=()=>[...r.keys()],i}function _c(){const e=t=>t;return e.invert=t=>t,e.copy=_c,e.invertRange=()=>{},e.type="null",e}class rk{constructor(t){K(this,bi,void 0);yn(this,"paramListeners");K(this,Do,new Map);K(this,Ro,new Map);K(this,Kl,new Map);K(this,Jl,void 0);Fe(this,Jl,t??(()=>{})),Fe(this,bi,new Map),this.paramListeners=new Map}registerParam(t){if("value"in t&&"expr"in t)throw new Error("Parameter must not have both value and expr: "+t.name);let n;if("value"in t)n=this.allocateSetter(t.name,t.value);else if("expr"in t){const r=this.createExpression(t.expr),i=this.allocateSetter(t.name,r(null));r.addListener(()=>i(r(null))),n=a=>{}}return W(this,Kl).set(t.name,t),n}allocateSetter(t,n){if(W(this,Do).has(t))throw new Error("Setter already allocated for parameter: "+t);const r=i=>{const a=W(this,bi).get(t);if(i!==a){W(this,bi).set(t,i);const o=this.paramListeners.get(t);if(o)for(const s of o)s()}};return r(n),W(this,Do).set(t,r),r}getSetter(t){const n=W(this,Do).get(t);if(!n)throw new Error("Setter not found for parameter: "+t);return n}getValue(t){return W(this,bi).get(t)}findValue(t){const n=this.findMediatorForParam(t);return n==null?void 0:n.getValue(t)}get paramConfigs(){return W(this,Kl)}findMediatorForParam(t){var n;return W(this,bi).has(t)?this:(n=W(this,Jl).call(this))==null?void 0:n.findMediatorForParam(t)}createExpression(t){if(W(this,Ro).has(t))return W(this,Ro).get(t);const n={},r=sc(t,n),i=new Map;for(const o of r.globals){const s=this.findMediatorForParam(o);if(!s)throw new Error(`Unknown variable "${o}" in expression: ${t}`);i.set(o,s),Object.defineProperty(n,o,{enumerable:!0,get(){return s.getValue(o)}})}const a=new Set;return r.addListener=o=>{for(const[s,u]of i){const l=u.paramListeners.get(s)??new Set;u.paramListeners.set(s,l),l.add(o),a.add(o)}},r.invalidate=()=>{var o;for(const[s,u]of i)for(const l of a)(o=u.paramListeners.get(s))==null||o.delete(l)},r.identifier=()=>r.code,W(this,Ro).set(t,r),r}evaluateAndGet(t){return this.createExpression(t)()}}bi=new WeakMap,Do=new WeakMap,Ro=new WeakMap,Kl=new WeakMap,Jl=new WeakMap;function It(e){return typeof e=="object"&&e!=null&&"expr"in e&&Ue(e.expr)}function En(e){if(It(e))throw new Error(`ExprRef ${JSON.stringify(e)} not allowed here. Expected a scalar value.`);return e}function Sc(e,t,n){const r={...t},i=[],a=o=>{i.push(o),i.length===1&&queueMicrotask(()=>{n(i.slice()),i.length=0})};for(const[o,s]of Object.entries(t))if(It(s)){const u=e.createExpression(s.expr);n&&u.addListener(()=>a(o)),Object.defineProperty(r,o,{enumerable:!0,get(){return u()}})}else r[o]=s;return r}function ik(e,t){const n={};t||(t=e.encoding);for(const[r,i]of Object.entries(t)){if(!i)continue;const a=((Zt(i)&&i.resolutionChannel)??(Na(r)&&r))||void 0,o=e.unitView.getScaleResolution(a);n[r]=ak(e,t[r],o==null?void 0:o.scale,e.unitView.getAccessor(r),r)}return n}function ak(e,t,n,r,i){let a;if(rn(t))if(It(t.value)){const o=e.unitView.paramMediator.createExpression(t.value.expr);a=s=>o(null),a.constant=!0,a.constantValue=!1,a.accessor=r}else{const o=t.value;a=s=>o,a.constant=!0,a.constantValue=!0,a.accessor=void 0}else if(r)if(i=="text")a=o=>{},a.accessor=r,a.constant=r.constant;else{if(!n)if(!Na(i))n=_c();else throw new Error(`Missing scale! "${i}": ${JSON.stringify(t)}`);if(a=o=>n(r(o)),Hn(n.type)){const o=nk();o.addAll(n.domain()),a.indexer=o}a.constant=r.constant,a.accessor=r,a.scale=n}else throw new Error(`Missing value or accessor (field, expr, datum) on channel "${i}": ${JSON.stringify(t)}`);return a.invert=n?o=>n.invert(o):o=>{throw new Error("No scale available, cannot invert: "+JSON.stringify(t))},a.channelDef=t,a.applyMetadata=o=>{for(const s in a)s in a&&(o[s]=a[s]);return o},a}function rn(e){return e&&"value"in e}function Gi(e){return e&&"field"in e}function Hs(e){return e&&"datum"in e}function Zt(e){return Gi(e)||Hs(e)||Cc(e)||k2(e)}function Zd(e,t){const n=e.mark.encoding[t];if(Zt(n))return n;throw new Error("Not a channel def with scale!")}function k2(e){return e&&"chrom"in e}function Cc(e){return e&&"expr"in e}const Oa=["x","y"],ok=["x2","y2"],sk=[...Oa,...ok];function T2(e){return Oa.includes(e)}function Vs(e){return sk.includes(e)}const Yd={x:"x2",y:"y2"},I2=Object.fromEntries(Object.entries(Yd).map(e=>[e[1],e[0]]));function js(e){return e in I2}function lk(e){const t=Yd[e];if(t)return t;throw new Error(`${e} has no secondary channel!`)}function Hi(e){return I2[e]??e}function $r(e){return["color","fill","stroke"].includes(Hi(e))}function kc(e){return["shape","squeeze"].includes(e)}function Na(e){return["x","y","x2","y2","color","fill","stroke","opacity","fillOpacity","strokeOpacity","strokeWidth","size","shape","angle","dx","dy","sample"].includes(e)}function uk(e){switch(e){case"shape":return["circle","square","cross","diamond","triangle-up","triangle-right","triangle-down","triangle-left","tick-up","tick-right","tick-down","tick-left"]}}function B2(e){if(!kc(e))throw new Error("Not a discrete channel: "+e);const t=new Map(uk(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 Me(e,t=e){if(/^[A-Za-z0-9_]+$/.test(e)){const n=new Function("datum",`return datum[${JSON.stringify(e)}]`);return ke(n,[e],t)}else return ku(e)}class ck{constructor(){this.accessorCreators=[],this.register(t=>{if(Gi(t))try{const n=Me(t.field);return n.constant=!1,n.fields=Cu(n),n}catch(n){throw new Error(`Invalid field definition: ${n.message}`)}}),this.register(t=>Cc(t)?fk(t.expr):void 0),this.register(t=>{if(Hs(t)){const r=b4(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 fk(e){const n=sc(e);return n.constant=n.fields.length==0,n}/* @license twgl.js 4.22.0 Copyright (c) 2015, Gregg Tavares All Rights Reserved.
|
|
163
223
|
Available via the MIT license.
|
|
164
|
-
see: http://github.com/greggman/twgl.js for details */const Ed=5120,Ps=5121,_d=5122,Sd=5123,Cd=5124,kd=5125,Td=5126,u5=32819,f5=32820,c5=33635,h5=5131,d5=33640,p5=35899,g5=35902,m5=36269,b5=34042,e2={};{const e=e2;e[Ed]=Int8Array,e[Ps]=Uint8Array,e[_d]=Int16Array,e[Sd]=Uint16Array,e[Cd]=Int32Array,e[kd]=Uint32Array,e[Td]=Float32Array,e[u5]=Uint16Array,e[f5]=Uint16Array,e[c5]=Uint16Array,e[h5]=Uint16Array,e[d5]=Uint32Array,e[p5]=Uint32Array,e[g5]=Uint32Array,e[m5]=Uint32Array,e[b5]=Uint32Array}function Id(e){if(e instanceof Int8Array)return Ed;if(e instanceof Uint8Array||e instanceof Uint8ClampedArray)return Ps;if(e instanceof Int16Array)return _d;if(e instanceof Uint16Array)return Sd;if(e instanceof Int32Array)return Cd;if(e instanceof Uint32Array)return kd;if(e instanceof Float32Array)return Td;throw new Error("unsupported typed array type")}function y5(e){if(e===Int8Array)return Ed;if(e===Uint8Array||e===Uint8ClampedArray)return Ps;if(e===Int16Array)return _d;if(e===Uint16Array)return Sd;if(e===Int32Array)return Cd;if(e===Uint32Array)return kd;if(e===Float32Array)return Td;throw new Error("unsupported typed array type")}function w5(e){const t=e2[e];if(!t)throw new Error("unknown gl type");return t}const rf=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 v5(...e){console.error(...e)}function t2(...e){console.warn(...e)}function x5(e,t){return typeof WebGLBuffer<"u"&&t instanceof WebGLBuffer}function n2(e,t){return typeof WebGLRenderbuffer<"u"&&t instanceof WebGLRenderbuffer}function af(e,t){return typeof WebGLTexture<"u"&&t instanceof WebGLTexture}function A5(e,t){return typeof WebGLSampler<"u"&&t instanceof WebGLSampler}const r2=35044,On=34962,E5=34963,_5=34660,S5=5120,C5=5121,k5=5122,T5=5123,I5=5124,B5=5125,D5=5126,i2={attribPrefix:""};function a2(e,t,n,r,i){e.bindBuffer(t,n),e.bufferData(t,r,i||r2)}function o2(e,t,n,r){if(x5(e,t))return t;n=n||On;const i=e.createBuffer();return a2(e,n,i,t,r),i}function s2(e){return e==="indices"}function F5(e){return e instanceof Int8Array||e instanceof Uint8Array}function R5(e){return e===Int8Array||e===Uint8Array}function M5(e){return e.length?e:e.data}const P5=/coord|texture/i,L5=/color|colour/i;function l2(e,t){let n;if(P5.test(e)?n=2:L5.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 N5(e,t){return e.numComponents||e.size||l2(t,M5(e).length)}function Bd(e,t){if(rf(e))return e;if(rf(e.data))return e.data;Array.isArray(e)&&(e={data:e});let n=e.type;return n||(s2(t)?n=Uint16Array:n=Float32Array),new n(e.data)}function O5(e,t){const n={};return Object.keys(t).forEach(function(r){if(!s2(r)){const i=t[r],a=i.attrib||i.name||i.attribName||i2.attribPrefix+r;if(i.value){if(!Array.isArray(i.value)&&!rf(i.value))throw new Error("array.value is not array or typedarray");n[a]={value:i.value}}else{let o,s,u,l;if(i.buffer&&i.buffer instanceof WebGLBuffer)o=i.buffer,l=i.numComponents||i.size,s=i.type,u=i.normalize;else if(typeof i=="number"||typeof i.data=="number"){const f=i.data||i,c=i.type||Float32Array,h=f*c.BYTES_PER_ELEMENT;s=y5(c),u=i.normalize!==void 0?i.normalize:R5(c),l=i.numComponents||i.size||l2(r,f),o=e.createBuffer(),e.bindBuffer(On,o),e.bufferData(On,h,i.drawType||r2)}else{const f=Bd(i,r);o=o2(e,f,void 0,i.drawType),s=Id(f),u=i.normalize!==void 0?i.normalize:F5(f),l=N5(i,r)}n[a]={buffer:o,numComponents:l,type:s,normalize:u,stride:i.stride||0,offset:i.offset||0,divisor:i.divisor===void 0?void 0:i.divisor,drawType:i.drawType}}}}),e.bindBuffer(On,null),n}function z5(e,t,n,r){n=Bd(n),r!==void 0?(e.bindBuffer(On,t.buffer),e.bufferSubData(On,r,n)):a2(e,On,t.buffer,n,t.drawType)}function U5(e,t){return t===S5||t===C5?1:t===k5||t===T5?2:t===I5||t===B5||t===D5?4:0}const Dd=["position","positions","a_position"];function G5(e,t){let n,r;for(r=0;r<Dd.length&&(n=Dd[r],!(n in t||(n=i2.attribPrefix+n,n in t)));++r);r===Dd.length&&(n=Object.keys(t)[0]);const i=t[n];e.bindBuffer(On,i.buffer);const a=e.getBufferParameter(On,_5);e.bindBuffer(On,null);const o=U5(e,i.type),s=a/o,u=i.numComponents||i.size,l=s/u;if(l%1!==0)throw new Error(`numComponents ${u} not correct for length ${length}`);return l}function H5(e,t,n){const r=O5(e,t),i=Object.assign({},n||{});i.attribs=Object.assign({},n?n.attribs:{},r);const a=t.indices;if(a){const o=Bd(a,"indices");i.indices=o2(e,o,E5),i.numElements=o.length,i.elementType=Id(o)}else i.numElements||(i.numElements=G5(e,i.attribs));return i}function Pa(e){return!!e.texStorage2D}const Fd=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)}}(),Nr={textureColor:new Uint8Array([128,192,255,255]),textureOptions:{},crossOrigin:void 0},La=rf,u2=function(){let e;return function(){return e=e||(typeof document<"u"&&document.createElement?document.createElement("canvas").getContext("2d"):null),e}}(),f2=6406,zn=6407,He=6408,c2=6409,h2=6410,Ls=6402,d2=34041,of=33071,V5=9728,j5=9729,ir=3553,ar=34067,Or=32879,zr=35866,sf=34069,q5=34070,Z5=34071,W5=34072,Y5=34073,Q5=34074,Rd=10241,Md=10240,lf=10242,uf=10243,p2=32882,$5=33082,X5=33083,K5=33084,J5=33085,Pd=3317,g2=3314,m2=32878,b2=3316,y2=3315,w2=32877,ek=37443,tk=37441,nk=37440,rk=33321,ik=36756,ak=33325,ok=33326,sk=33330,lk=33329,uk=33338,fk=33337,ck=33340,hk=33339,dk=33323,pk=36757,gk=33327,mk=33328,bk=33336,yk=33335,wk=33332,vk=33331,xk=33334,Ak=33333,Ek=32849,_k=35905,Sk=36194,Ck=36758,kk=35898,Tk=35901,Ik=34843,Bk=34837,Dk=36221,Fk=36239,Rk=36215,Mk=36233,Pk=36209,Lk=36227,Nk=32856,Ok=35907,zk=36759,Uk=32855,Gk=32854,Hk=32857,Vk=34842,jk=34836,qk=36220,Zk=36238,Wk=36975,Yk=36214,Qk=36232,$k=36226,Xk=36208,Kk=33189,Jk=33190,eT=36012,tT=36013,nT=35056,Ur=5120,Ve=5121,ff=5122,Na=5123,cf=5124,zi=5125,Et=5126,v2=32819,x2=32820,A2=33635,xn=5131,Ns=36193,Ld=33640,rT=35899,iT=35902,aT=36269,oT=34042,hf=33319,Oa=33320,df=6403,za=36244,Ua=36248,Ui=36249;let Nd;function pf(e){if(!Nd){const t={};t[f2]={textureFormat:f2,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[1,2,2,4],type:[Ve,xn,Ns,Et]},t[c2]={textureFormat:c2,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[1,2,2,4],type:[Ve,xn,Ns,Et]},t[h2]={textureFormat:h2,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[2,4,4,8],type:[Ve,xn,Ns,Et]},t[zn]={textureFormat:zn,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[3,6,6,12,2],type:[Ve,xn,Ns,Et,A2]},t[He]={textureFormat:He,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4,8,8,16,2,2],type:[Ve,xn,Ns,Et,v2,x2]},t[Ls]={textureFormat:Ls,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2,4],type:[zi,Na]},t[rk]={textureFormat:df,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[1],type:[Ve]},t[ik]={textureFormat:df,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[1],type:[Ur]},t[ak]={textureFormat:df,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[4,2],type:[Et,xn]},t[ok]={textureFormat:df,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[4],type:[Et]},t[sk]={textureFormat:za,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[1],type:[Ve]},t[lk]={textureFormat:za,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[1],type:[Ur]},t[wk]={textureFormat:za,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[Na]},t[vk]={textureFormat:za,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[ff]},t[xk]={textureFormat:za,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[zi]},t[Ak]={textureFormat:za,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[cf]},t[dk]={textureFormat:hf,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[2],type:[Ve]},t[pk]={textureFormat:hf,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[2],type:[Ur]},t[gk]={textureFormat:hf,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[8,4],type:[Et,xn]},t[mk]={textureFormat:hf,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[8],type:[Et]},t[bk]={textureFormat:Oa,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[Ve]},t[yk]={textureFormat:Oa,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[Ur]},t[uk]={textureFormat:Oa,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Na]},t[fk]={textureFormat:Oa,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[ff]},t[ck]={textureFormat:Oa,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[zi]},t[hk]={textureFormat:Oa,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[cf]},t[Ek]={textureFormat:zn,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[3],type:[Ve]},t[_k]={textureFormat:zn,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[3],type:[Ve]},t[Sk]={textureFormat:zn,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[3,2],type:[Ve,A2]},t[Ck]={textureFormat:zn,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[3],type:[Ur]},t[kk]={textureFormat:zn,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[12,6,4],type:[Et,xn,rT]},t[Tk]={textureFormat:zn,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[12,6,4],type:[Et,xn,iT]},t[Ik]={textureFormat:zn,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[12,6],type:[Et,xn]},t[Bk]={textureFormat:zn,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[12],type:[Et]},t[Dk]={textureFormat:Ua,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[3],type:[Ve]},t[Fk]={textureFormat:Ua,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[3],type:[Ur]},t[Rk]={textureFormat:Ua,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[6],type:[Na]},t[Mk]={textureFormat:Ua,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[6],type:[ff]},t[Pk]={textureFormat:Ua,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[12],type:[zi]},t[Lk]={textureFormat:Ua,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[12],type:[cf]},t[Nk]={textureFormat:He,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4],type:[Ve]},t[Ok]={textureFormat:He,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4],type:[Ve]},t[zk]={textureFormat:He,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[4],type:[Ur]},t[Uk]={textureFormat:He,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4,2,4],type:[Ve,x2,Ld]},t[Gk]={textureFormat:He,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4,2],type:[Ve,v2]},t[Hk]={textureFormat:He,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4],type:[Ld]},t[Vk]={textureFormat:He,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[16,8],type:[Et,xn]},t[jk]={textureFormat:He,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[16],type:[Et]},t[qk]={textureFormat:Ui,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Ve]},t[Zk]={textureFormat:Ui,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Ur]},t[Wk]={textureFormat:Ui,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Ld]},t[Yk]={textureFormat:Ui,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[Na]},t[Qk]={textureFormat:Ui,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[ff]},t[$k]={textureFormat:Ui,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[16],type:[cf]},t[Xk]={textureFormat:Ui,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[16],type:[zi]},t[Kk]={textureFormat:Ls,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2,4],type:[Na,zi]},t[Jk]={textureFormat:Ls,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[zi]},t[eT]={textureFormat:Ls,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Et]},t[nT]={textureFormat:d2,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[oT]},t[tT]={textureFormat:d2,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[aT]},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})}),Nd=t}return Nd[e]}function sT(e,t){const n=pf(e);if(!n)throw"unknown internal format";const r=n.bytesPerElementMap[t];if(r===void 0)throw"unknown internal format";return r}function Ga(e){const t=pf(e);if(!t)throw"unknown internal format";return{format:t.textureFormat,type:t.type[0]}}function E2(e){return(e&e-1)===0}function lT(e,t,n,r){if(!Pa(e))return E2(t)&&E2(n);const i=pf(r);if(!i)throw"unknown internal format";return i.colorRenderable&&i.textureFilterable}function uT(e){const t=pf(e);if(!t)throw"unknown internal format";return t.textureFilterable}function _2(e,t,n){return La(t)?Id(t):n||Ve}function gf(e,t,n,r,i){if(i%1!==0)throw"can't guess dimensions";if(!n&&!r){const a=Math.sqrt(i/(t===ar?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 Ha(e,t){t.colorspaceConversion!==void 0&&e.pixelStorei(ek,t.colorspaceConversion),t.premultiplyAlpha!==void 0&&e.pixelStorei(tk,t.premultiplyAlpha),t.flipY!==void 0&&e.pixelStorei(nk,t.flipY)}function S2(e){e.pixelStorei(Pd,4),Pa(e)&&(e.pixelStorei(g2,0),e.pixelStorei(m2,0),e.pixelStorei(b2,0),e.pixelStorei(y2,0),e.pixelStorei(w2,0))}function fT(e,t,n,r){r.minMag&&(n.call(e,t,Rd,r.minMag),n.call(e,t,Md,r.minMag)),r.min&&n.call(e,t,Rd,r.min),r.mag&&n.call(e,t,Md,r.mag),r.wrap&&(n.call(e,t,lf,r.wrap),n.call(e,t,uf,r.wrap),(t===Or||A5(e,t))&&n.call(e,t,p2,r.wrap)),r.wrapR&&n.call(e,t,p2,r.wrapR),r.wrapS&&n.call(e,t,lf,r.wrapS),r.wrapT&&n.call(e,t,uf,r.wrapT),r.minLod&&n.call(e,t,$5,r.minLod),r.maxLod&&n.call(e,t,X5,r.maxLod),r.baseLevel&&n.call(e,t,K5,r.baseLevel),r.maxLevel&&n.call(e,t,J5,r.maxLevel)}function C2(e,t,n){const r=n.target||ir;e.bindTexture(r,t),fT(e,r,e.texParameteri,n)}function cT(e){return e=e||Nr.textureColor,La(e)?e:new Uint8Array([e[0]*255,e[1]*255,e[2]*255,e[3]*255])}function Od(e,t,n,r,i,a){n=n||Nr.textureOptions,a=a||He;const o=n.target||ir;if(r=r||n.width,i=i||n.height,e.bindTexture(o,t),lT(e,r,i,a))e.generateMipmap(o);else{const s=uT(a)?j5:V5;e.texParameteri(o,Rd,s),e.texParameteri(o,Md,s),e.texParameteri(o,lf,of),e.texParameteri(o,uf,of)}}function Os(e){return e.auto===!0||e.auto===void 0&&e.level===void 0}function zd(e,t){return t=t||{},t.cubeFaceOrder||[sf,q5,Z5,W5,Y5,Q5]}function Ud(e,t){const r=zd(e,t).map(function(i,a){return{face:i,ndx:a}});return r.sort(function(i,a){return i.face-a.face}),r}function k2(e,t,n,r){r=r||Nr.textureOptions;const i=r.target||ir,a=r.level||0;let o=n.width,s=n.height;const u=r.internalFormat||r.format||He,l=Ga(u),f=r.format||l.format,c=r.type||l.type;if(Ha(e,r),e.bindTexture(i,t),i===ar){const h=n.width,d=n.height;let p,b;if(h/6===d)p=d,b=[0,0,1,0,2,0,3,0,4,0,5,0];else if(d/6===h)p=h,b=[0,0,0,1,0,2,0,3,0,4,0,5];else if(h/3===d/2)p=h/3,b=[0,0,1,0,2,0,0,1,1,1,2,1];else if(h/2===d/3)p=h/2,b=[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=u2();y?(y.canvas.width=p,y.canvas.height=p,o=p,s=p,Ud(e,r).forEach(function(w){const A=b[w.ndx*2+0]*p,S=b[w.ndx*2+1]*p;y.drawImage(n,A,S,p,p,0,0,p,p),e.texImage2D(w.face,a,u,f,c,y.canvas)}),y.canvas.width=1,y.canvas.height=1):typeof createImageBitmap<"u"&&(o=p,s=p,Ud(e,r).forEach(function(w){const A=b[w.ndx*2+0]*p,S=b[w.ndx*2+1]*p;e.texImage2D(w.face,a,u,p,p,0,f,c,null),createImageBitmap(n,A,S,p,p,{premultiplyAlpha:"none",colorSpaceConversion:"none"}).then(function(_){Ha(e,r),e.bindTexture(i,t),e.texImage2D(w.face,a,u,f,c,_),Os(r)&&Od(e,t,r,o,s,u)})}))}else if(i===Or||i===zr){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 b=n.width===d?1:0,y=n.height===d?1:0;e.pixelStorei(Pd,1),e.pixelStorei(g2,n.width),e.pixelStorei(m2,0),e.pixelStorei(w2,0),e.texImage3D(i,a,u,h,h,h,0,f,c,null);for(let w=0;w<p;++w){const A=w*h*b,S=w*h*y;e.pixelStorei(b2,A),e.pixelStorei(y2,S),e.texSubImage3D(i,a,0,0,w,h,h,1,f,c,n)}S2(e)}else e.texImage2D(i,a,u,f,c,n);Os(r)&&Od(e,t,r,o,s,u),C2(e,t,r)}function zs(){}function hT(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 dT(e,t){return t===void 0&&!hT(e)?"anonymous":t}function pT(e,t,n){n=n||zs;let r;if(t=t!==void 0?t:Nr.crossOrigin,t=dT(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 u="couldn't load image: "+e;v5(u),n(u,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(u){if(!u.ok)throw u;return u.blob()}).then(function(u){return createImageBitmap(u,{premultiplyAlpha:"none",colorSpaceConversion:"none"})}).then(function(u){a=u,setTimeout(o)}).catch(function(u){i=u,setTimeout(o)}),r=null}return r}function T2(e){return typeof ImageBitmap<"u"&&e instanceof ImageBitmap||typeof ImageData<"u"&&e instanceof ImageData||typeof HTMLElement<"u"&&e instanceof HTMLElement}function Gd(e,t,n){return T2(e)?(setTimeout(function(){n(null,e)}),e):pT(e,t,n)}function Hd(e,t,n){n=n||Nr.textureOptions;const r=n.target||ir;if(e.bindTexture(r,t),n.color===!1)return;const i=cT(n.color);if(r===ar)for(let a=0;a<6;++a)e.texImage2D(sf+a,0,He,1,1,0,He,Ve,i);else r===Or||r===zr?e.texImage3D(r,0,He,1,1,1,0,He,Ve,i):e.texImage2D(r,0,He,1,1,0,He,Ve,i)}function gT(e,t,n,r){return r=r||zs,n=n||Nr.textureOptions,Hd(e,t,n),n=Object.assign({},n),Gd(n.src,n.crossOrigin,function(a,o){a?r(a,t,o):(k2(e,t,o,n),r(null,t,o))})}function mT(e,t,n,r){r=r||zs;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||He,s=Ga(o),u=n.format||s.format,l=n.type||Ve,f=n.target||ir;if(f!==ar)throw"target must be TEXTURE_CUBE_MAP";Hd(e,t,n),n=Object.assign({},n);let c=6;const h=[],d=zd(e,n);let p;function b(y){return function(w,A){--c,w?h.push(w):A.width!==A.height?h.push("cubemap face img is not a square: "+A.src):(Ha(e,n),e.bindTexture(f,t),c===5?zd().forEach(function(S){e.texImage2D(S,a,o,u,l,A)}):e.texImage2D(y,a,o,u,l,A),Os(n)&&e.generateMipmap(f)),c===0&&r(h.length?h:void 0,t,p)}}p=i.map(function(y,w){return Gd(y,n.crossOrigin,b(d[w]))})}function bT(e,t,n,r){r=r||zs;const i=n.src,a=n.internalFormat||n.format||He,o=Ga(a),s=n.format||o.format,u=n.type||Ve,l=n.target||zr;if(l!==Or&&l!==zr)throw"target must be TEXTURE_3D or TEXTURE_2D_ARRAY";Hd(e,t,n),n=Object.assign({},n);let f=i.length;const c=[];let h;const d=n.level||0;let p=n.width,b=n.height;const y=i.length;let w=!0;function A(S){return function(_,T){if(--f,_)c.push(_);else{if(Ha(e,n),e.bindTexture(l,t),w){w=!1,p=n.width||T.width,b=n.height||T.height,e.texImage3D(l,d,a,p,b,y,0,s,u,null);for(let I=0;I<y;++I)e.texSubImage3D(l,d,0,0,I,p,b,1,s,u,T)}else{let I=T,B;(T.width!==p||T.height!==b)&&(B=u2(),I=B.canvas,B.canvas.width=p,B.canvas.height=b,B.drawImage(T,0,0,p,b)),e.texSubImage3D(l,d,0,0,S,p,b,1,s,u,I),B&&I===B.canvas&&(B.canvas.width=0,B.canvas.height=0)}Os(n)&&e.generateMipmap(l)}f===0&&r(c.length?c:void 0,t,h)}}h=i.map(function(S,_){return Gd(S,n.crossOrigin,A(_))})}function I2(e,t,n,r){r=r||Nr.textureOptions;const i=r.target||ir;e.bindTexture(i,t);let a=r.width,o=r.height,s=r.depth;const u=r.level||0,l=r.internalFormat||r.format||He,f=Ga(l),c=r.format||f.format,h=r.type||_2(e,n,f.type);if(La(n))n instanceof Uint8ClampedArray&&(n=new Uint8Array(n.buffer));else{const y=w5(h);n=new y(n)}const d=sT(l,h),p=n.byteLength/d;if(p%1)throw"length wrong size for format: "+Fd(e,c);let b;if(i===Or||i===zr)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)?(b=gf(e,i,o,s,p/a),o=b.width,s=b.height):o&&(!a||!s)?(b=gf(e,i,a,s,p/o),a=b.width,s=b.height):(b=gf(e,i,a,o,p/s),a=b.width,o=b.height);else b=gf(e,i,a,o,p),a=b.width,o=b.height;if(S2(e),e.pixelStorei(Pd,r.unpackAlignment||1),Ha(e,r),i===ar){const y=d/n.BYTES_PER_ELEMENT,w=p/6*y;Ud(e,r).forEach(A=>{const S=w*A.ndx,_=n.subarray(S,S+w);e.texImage2D(A.face,u,l,a,o,0,c,h,_)})}else i===Or||i===zr?e.texImage3D(i,u,l,a,o,s,0,c,h,n):e.texImage2D(i,u,l,a,o,0,c,h,n);return{width:a,height:o,depth:s,type:h}}function yT(e,t,n){const r=n.target||ir;e.bindTexture(r,t);const i=n.level||0,a=n.internalFormat||n.format||He,o=Ga(a),s=n.format||o.format,u=n.type||o.type;if(Ha(e,n),r===ar)for(let l=0;l<6;++l)e.texImage2D(sf+l,i,a,n.width,n.height,0,s,u,null);else r===Or||r===zr?e.texImage3D(r,i,a,n.width,n.height,n.depth,0,s,u,null):e.texImage2D(r,i,a,n.width,n.height,0,s,u,null)}function Us(e,t,n){n=n||zs,t=t||Nr.textureOptions;const r=e.createTexture(),i=t.target||ir;let a=t.width||1,o=t.height||1;const s=t.internalFormat||He;e.bindTexture(i,r),i===ar&&(e.texParameteri(i,lf,of),e.texParameteri(i,uf,of));let u=t.src;if(u)if(typeof u=="function"&&(u=u(e,t)),typeof u=="string")gT(e,r,t,n);else if(La(u)||Array.isArray(u)&&(typeof u[0]=="number"||Array.isArray(u[0])||La(u[0]))){const l=I2(e,r,u,t);a=l.width,o=l.height}else Array.isArray(u)&&(typeof u[0]=="string"||T2(u[0]))?i===ar?mT(e,r,t,n):bT(e,r,t,n):(k2(e,r,u,t),a=u.width,o=u.height);else yT(e,r,t);return Os(t)&&Od(e,r,t,a,o,s),C2(e,r,t),r}function wT(e,t,n,r,i,a){r=r||n.width,i=i||n.height,a=a||n.depth;const o=n.target||ir;e.bindTexture(o,t);const s=n.level||0,u=n.internalFormat||n.format||He,l=Ga(u),f=n.format||l.format;let c;const h=n.src;if(h&&(La(h)||Array.isArray(h)&&typeof h[0]=="number")?c=n.type||_2(e,h,l.type):c=n.type||l.type,o===ar)for(let d=0;d<6;++d)e.texImage2D(sf+d,s,u,r,i,0,f,c,null);else o===Or||o===zr?e.texImage3D(o,s,u,r,i,a,0,f,c,null):e.texImage2D(o,s,u,r,i,0,f,c,null)}const vT=t2,mf=33984,xT=35048,bf=34962,AT=34963,Vd=35345,B2=35718,ET=35721,_T=35971,ST=35382,CT=35396,kT=35398,TT=35392,IT=35395,yf=5126,D2=35664,F2=35665,R2=35666,jd=5124,M2=35667,P2=35668,L2=35669,N2=35670,O2=35671,z2=35672,U2=35673,G2=35674,H2=35675,V2=35676,BT=35678,DT=35680,FT=35679,RT=35682,MT=35685,PT=35686,LT=35687,NT=35688,OT=35689,zT=35690,UT=36289,GT=36292,HT=36293,qd=5125,j2=36294,q2=36295,Z2=36296,VT=36298,jT=36299,qT=36300,ZT=36303,WT=36306,YT=36307,QT=36308,$T=36311,wf=3553,vf=34067,Zd=32879,xf=35866,oe={};function W2(e,t){return oe[t].bindPoint}function XT(e,t){return function(n){e.uniform1f(t,n)}}function KT(e,t){return function(n){e.uniform1fv(t,n)}}function JT(e,t){return function(n){e.uniform2fv(t,n)}}function eI(e,t){return function(n){e.uniform3fv(t,n)}}function tI(e,t){return function(n){e.uniform4fv(t,n)}}function Y2(e,t){return function(n){e.uniform1i(t,n)}}function Q2(e,t){return function(n){e.uniform1iv(t,n)}}function $2(e,t){return function(n){e.uniform2iv(t,n)}}function X2(e,t){return function(n){e.uniform3iv(t,n)}}function K2(e,t){return function(n){e.uniform4iv(t,n)}}function nI(e,t){return function(n){e.uniform1ui(t,n)}}function rI(e,t){return function(n){e.uniform1uiv(t,n)}}function iI(e,t){return function(n){e.uniform2uiv(t,n)}}function aI(e,t){return function(n){e.uniform3uiv(t,n)}}function oI(e,t){return function(n){e.uniform4uiv(t,n)}}function sI(e,t){return function(n){e.uniformMatrix2fv(t,!1,n)}}function lI(e,t){return function(n){e.uniformMatrix3fv(t,!1,n)}}function uI(e,t){return function(n){e.uniformMatrix4fv(t,!1,n)}}function fI(e,t){return function(n){e.uniformMatrix2x3fv(t,!1,n)}}function cI(e,t){return function(n){e.uniformMatrix3x2fv(t,!1,n)}}function hI(e,t){return function(n){e.uniformMatrix2x4fv(t,!1,n)}}function dI(e,t){return function(n){e.uniformMatrix4x2fv(t,!1,n)}}function pI(e,t){return function(n){e.uniformMatrix3x4fv(t,!1,n)}}function gI(e,t){return function(n){e.uniformMatrix4x3fv(t,!1,n)}}function kt(e,t,n,r){const i=W2(e,t);return Pa(e)?function(a){let o,s;af(e,a)?(o=a,s=null):(o=a.texture,s=a.sampler),e.uniform1i(r,n),e.activeTexture(mf+n),e.bindTexture(i,o),e.bindSampler(n,s)}:function(a){e.uniform1i(r,n),e.activeTexture(mf+n),e.bindTexture(i,a)}}function Tt(e,t,n,r,i){const a=W2(e,t),o=new Int32Array(i);for(let s=0;s<i;++s)o[s]=n+s;return Pa(e)?function(s){e.uniform1iv(r,o),s.forEach(function(u,l){e.activeTexture(mf+o[l]);let f,c;af(e,u)?(f=u,c=null):(f=u.texture,c=u.sampler),e.bindSampler(n,c),e.bindTexture(a,f)})}:function(s){e.uniform1iv(r,o),s.forEach(function(u,l){e.activeTexture(mf+o[l]),e.bindTexture(a,u)})}}oe[yf]={Type:Float32Array,size:4,setter:XT,arraySetter:KT},oe[D2]={Type:Float32Array,size:8,setter:JT,cols:2},oe[F2]={Type:Float32Array,size:12,setter:eI,cols:3},oe[R2]={Type:Float32Array,size:16,setter:tI,cols:4},oe[jd]={Type:Int32Array,size:4,setter:Y2,arraySetter:Q2},oe[M2]={Type:Int32Array,size:8,setter:$2,cols:2},oe[P2]={Type:Int32Array,size:12,setter:X2,cols:3},oe[L2]={Type:Int32Array,size:16,setter:K2,cols:4},oe[qd]={Type:Uint32Array,size:4,setter:nI,arraySetter:rI},oe[j2]={Type:Uint32Array,size:8,setter:iI,cols:2},oe[q2]={Type:Uint32Array,size:12,setter:aI,cols:3},oe[Z2]={Type:Uint32Array,size:16,setter:oI,cols:4},oe[N2]={Type:Uint32Array,size:4,setter:Y2,arraySetter:Q2},oe[O2]={Type:Uint32Array,size:8,setter:$2,cols:2},oe[z2]={Type:Uint32Array,size:12,setter:X2,cols:3},oe[U2]={Type:Uint32Array,size:16,setter:K2,cols:4},oe[G2]={Type:Float32Array,size:32,setter:sI,rows:2,cols:2},oe[H2]={Type:Float32Array,size:48,setter:lI,rows:3,cols:3},oe[V2]={Type:Float32Array,size:64,setter:uI,rows:4,cols:4},oe[MT]={Type:Float32Array,size:32,setter:fI,rows:2,cols:3},oe[PT]={Type:Float32Array,size:32,setter:hI,rows:2,cols:4},oe[LT]={Type:Float32Array,size:48,setter:cI,rows:3,cols:2},oe[NT]={Type:Float32Array,size:48,setter:pI,rows:3,cols:4},oe[OT]={Type:Float32Array,size:64,setter:dI,rows:4,cols:2},oe[zT]={Type:Float32Array,size:64,setter:gI,rows:4,cols:3},oe[BT]={Type:null,size:0,setter:kt,arraySetter:Tt,bindPoint:wf},oe[DT]={Type:null,size:0,setter:kt,arraySetter:Tt,bindPoint:vf},oe[FT]={Type:null,size:0,setter:kt,arraySetter:Tt,bindPoint:Zd},oe[RT]={Type:null,size:0,setter:kt,arraySetter:Tt,bindPoint:wf},oe[UT]={Type:null,size:0,setter:kt,arraySetter:Tt,bindPoint:xf},oe[GT]={Type:null,size:0,setter:kt,arraySetter:Tt,bindPoint:xf},oe[HT]={Type:null,size:0,setter:kt,arraySetter:Tt,bindPoint:vf},oe[VT]={Type:null,size:0,setter:kt,arraySetter:Tt,bindPoint:wf},oe[jT]={Type:null,size:0,setter:kt,arraySetter:Tt,bindPoint:Zd},oe[qT]={Type:null,size:0,setter:kt,arraySetter:Tt,bindPoint:vf},oe[ZT]={Type:null,size:0,setter:kt,arraySetter:Tt,bindPoint:xf},oe[WT]={Type:null,size:0,setter:kt,arraySetter:Tt,bindPoint:wf},oe[YT]={Type:null,size:0,setter:kt,arraySetter:Tt,bindPoint:Zd},oe[QT]={Type:null,size:0,setter:kt,arraySetter:Tt,bindPoint:vf},oe[$T]={Type:null,size:0,setter:kt,arraySetter:Tt,bindPoint:xf};function Af(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(bf,n.buffer),e.enableVertexAttribArray(t),e.vertexAttribPointer(t,n.numComponents||n.size,n.type||yf,n.normalize||!1,n.stride||0,n.offset||0),n.divisor!==void 0&&e.vertexAttribDivisor(t,n.divisor)}}function Gr(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(bf,n.buffer),e.enableVertexAttribArray(t),e.vertexAttribIPointer(t,n.numComponents||n.size,n.type||jd,n.stride||0,n.offset||0),n.divisor!==void 0&&e.vertexAttribDivisor(t,n.divisor)}}function Ef(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(bf,n.buffer),e.enableVertexAttribArray(t),e.vertexAttribIPointer(t,n.numComponents||n.size,n.type||qd,n.stride||0,n.offset||0),n.divisor!==void 0&&e.vertexAttribDivisor(t,n.divisor)}}function Wd(e,t,n){const r=n.size,i=n.count;return function(a){e.bindBuffer(bf,a.buffer);const o=a.size||a.numComponents||r,s=o/i,u=a.type||yf,f=oe[u].size*o,c=a.normalize||!1,h=a.offset||0,d=f/i;for(let p=0;p<i;++p)e.enableVertexAttribArray(t+p),e.vertexAttribPointer(t+p,s,u,c,f,h+d*p),a.divisor!==void 0&&e.vertexAttribDivisor(t+p,a.divisor)}}const nt={};nt[yf]={size:4,setter:Af},nt[D2]={size:8,setter:Af},nt[F2]={size:12,setter:Af},nt[R2]={size:16,setter:Af},nt[jd]={size:4,setter:Gr},nt[M2]={size:8,setter:Gr},nt[P2]={size:12,setter:Gr},nt[L2]={size:16,setter:Gr},nt[qd]={size:4,setter:Ef},nt[j2]={size:8,setter:Ef},nt[q2]={size:12,setter:Ef},nt[Z2]={size:16,setter:Ef},nt[N2]={size:4,setter:Gr},nt[O2]={size:8,setter:Gr},nt[z2]={size:12,setter:Gr},nt[U2]={size:16,setter:Gr},nt[G2]={size:4,setter:Wd,count:2},nt[H2]={size:9,setter:Wd,count:3},nt[V2]={size:16,setter:Wd,count:4};function J2(e){const t=e.name;return t.startsWith("gl_")||t.startsWith("webgl_")}const mI=/(\.|\[|]|\w+)/g,bI=e=>e>="0"&&e<="9";function ey(e,t,n,r){const i=e.split(mI).filter(s=>s!=="");let a=0,o="";for(;;){const s=i[a++];o+=s;const u=bI(s[0]),l=u?parseInt(s):s;if(u&&(o+=i[a++]),a===i.length){n[l]=t;break}else{const c=i[a++],h=c==="[",d=n[l]||(h?[]:{});n[l]=d,n=d,r[o]=r[o]||function(p){return function(b){ry(p,b)}}(d),o+=c}}}function yI(e,t){let n=0;function r(s,u,l){const f=u.name.endsWith("[0]"),c=u.type,h=oe[c];if(!h)throw new Error(`unknown type: 0x${c.toString(16)}`);let d;if(h.bindPoint){const p=n;n+=u.size,f?d=h.arraySetter(e,c,p,l,u.size):d=h.setter(e,c,p,l,u.size)}else h.arraySetter&&f?d=h.arraySetter(e,l):d=h.setter(e,l);return d.location=l,d}const i={},a={},o=e.getProgramParameter(t,B2);for(let s=0;s<o;++s){const u=e.getActiveUniform(t,s);if(J2(u))continue;let l=u.name;l.endsWith("[0]")&&(l=l.substr(0,l.length-3));const f=e.getUniformLocation(t,u.name);if(f){const c=r(t,u,f);i[l]=c,ey(l,c,a,i)}}return i}function wI(e,t){const n={},r=e.getProgramParameter(t,_T);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 vI(e,t){const n=e.getProgramParameter(t,B2),r=[],i=[];for(let s=0;s<n;++s){i.push(s),r.push({});const u=e.getActiveUniform(t,s);r[s].name=u.name}[["UNIFORM_TYPE","type"],["UNIFORM_SIZE","size"],["UNIFORM_BLOCK_INDEX","blockNdx"],["UNIFORM_OFFSET","offset"]].forEach(function(s){const u=s[0],l=s[1];e.getActiveUniforms(t,i,e[u]).forEach(function(f,c){r[c][l]=f})});const a={},o=e.getProgramParameter(t,ST);for(let s=0;s<o;++s){const u=e.getActiveUniformBlockName(t,s),l={index:e.getUniformBlockIndex(t,u),usedByVertexShader:e.getActiveUniformBlockParameter(t,s,CT),usedByFragmentShader:e.getActiveUniformBlockParameter(t,s,kT),size:e.getActiveUniformBlockParameter(t,s,TT),uniformIndices:e.getActiveUniformBlockParameter(t,s,IT)};l.used=l.usedByVertexShader||l.usedByFragmentShader,a[u]=l}return{blockSpecs:a,uniformData:r}}const ty=/\[\d+\]\.$/,xI=(e,t)=>((e+(t-1))/t|0)*t;function AI(e,t,n,r){if(t||n){r=r||1;const a=e.length/4;return function(o){let s=0,u=0;for(let l=0;l<a;++l){for(let f=0;f<r;++f)e[s++]=o[u++];s+=4-r}}}else return function(i){i.length?e.set(i):e[0]=i}}function EI(e,t,n,r){const i=n.blockSpecs,a=n.uniformData,o=i[r];if(!o)return vT("no uniform block object named:",r),{name:r,uniforms:{}};const s=new ArrayBuffer(o.size),u=e.createBuffer(),l=o.index;e.bindBuffer(Vd,u),e.uniformBlockBinding(t,o.index,l);let f=r+".";ty.test(f)&&(f=f.replace(ty,"."));const c={},h={},d={};return o.uniformIndices.forEach(function(p){const b=a[p];let y=b.name;y.startsWith(f)&&(y=y.substr(f.length));const w=y.endsWith("[0]");w&&(y=y.substr(0,y.length-3));const A=oe[b.type],S=A.Type,_=w?xI(A.size,16)*b.size:A.size*b.size,T=new S(s,b.offset,_/S.BYTES_PER_ELEMENT);c[y]=T;const I=AI(T,w,A.rows,A.cols);h[y]=I,ey(y,I,d,h)}),{name:r,array:s,asFloat:new Float32Array(s),buffer:u,uniforms:c,setters:h}}function Yd(e,t,n){return EI(e,t.program,t.uniformBlockSpec,n)}function ny(e,t,n){const i=(t.uniformBlockSpec||t).blockSpecs[n.name];if(i){const a=i.index;return e.bindBufferRange(Vd,a,n.buffer,n.offset||0,n.array.byteLength),!0}return!1}function Qd(e,t,n){ny(e,t,n)&&e.bufferData(Vd,n.array,xT)}function Va(e,t){const n=e.setters;for(const r in t){const i=n[r];if(i){const a=t[r];i(a)}}}function ry(e,t){for(const n in t){const r=e[n];typeof r=="function"?r(t[n]):ry(e[n],t[n])}}function Gi(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)Gi(n,a[s])}else for(const o in a){const s=n[o];s&&s(a[o])}}}function _I(e,t){const n={},r=e.getProgramParameter(t,ET);for(let i=0;i<r;++i){const a=e.getActiveAttrib(t,i);if(J2(a))continue;const o=e.getAttribLocation(t,a.name),s=nt[a.type],u=s.setter(e,o,s);u.location=o,n[a.name]=u}return n}function SI(e,t){for(const n in t){const r=e[n];r&&r(t[n])}}function Hi(e,t,n){n.vertexArrayObject?e.bindVertexArray(n.vertexArrayObject):(SI(t.attribSetters||t,n.attribs),n.indices&&e.bindBuffer(AT,n.indices))}function CI(e,t){const n=yI(e,t),r=_I(e,t),i={program:t,uniformSetters:n,attribSetters:r};return Pa(e)&&(i.uniformBlockSpec=vI(e,t),i.transformFeedbackInfo=wI(e,t)),i}const kI=4,iy=5123;function _f(e,t,n,r,i,a){n=n===void 0?kI:n;const o=t.indices,s=t.elementType,u=r===void 0?t.numElements:r;i=i===void 0?0:i,s||o?a!==void 0?e.drawElementsInstanced(n,u,s===void 0?iy:t.elementType,i,a):e.drawElements(n,u,s===void 0?iy:t.elementType,i):a!==void 0?e.drawArraysInstanced(n,i,u,a):e.drawArrays(n,i,u)}const TI=36160,Vi=36161,II=3553,BI=5121,DI=6402,FI=6408,RI=33190,MI=36012,PI=35056,LI=36013,NI=32854,OI=32855,zI=36194,ay=33189,oy=6401,sy=36168,$d=34041,UI=36064,Sf=36096,ly=36128,Xd=33306,Kd=33071,Jd=9729,uy=[{format:FI,type:BI,min:Jd,wrap:Kd},{format:$d}],An={};An[$d]=Xd,An[oy]=ly,An[sy]=ly,An[DI]=Sf,An[ay]=Sf,An[RI]=Sf,An[MI]=Sf,An[PI]=Xd,An[LI]=Xd;function GI(e,t){return An[e]||An[t]}const Hr={};Hr[NI]=!0,Hr[OI]=!0,Hr[zI]=!0,Hr[$d]=!0,Hr[ay]=!0,Hr[oy]=!0,Hr[sy]=!0;function HI(e){return Hr[e]}function VI(e,t,n,r){const i=TI,a=e.createFramebuffer();e.bindFramebuffer(i,a),n=n||e.drawingBufferWidth,r=r||e.drawingBufferHeight,t=t||uy;let o=0;const s={framebuffer:a,attachments:[],width:n,height:r};return t.forEach(function(u){let l=u.attachment;const f=u.samples,c=u.format;let h=u.attachmentPoint||GI(c,u.internalFormat);if(h||(h=UI+o++),!l)if(f!==void 0||HI(c))l=e.createRenderbuffer(),e.bindRenderbuffer(Vi,l),f>1?e.renderbufferStorageMultisample(Vi,f,c,n,r):e.renderbufferStorage(Vi,c,n,r);else{const d=Object.assign({},u);d.width=n,d.height=r,d.auto===void 0&&(d.auto=!1,d.min=d.min||d.minMag||Jd,d.mag=d.mag||d.minMag||Jd,d.wrapS=d.wrapS||d.wrap||Kd,d.wrapT=d.wrapT||d.wrap||Kd),l=Us(e,d)}if(n2(e,l))e.framebufferRenderbuffer(i,h,Vi,l);else if(af(e,l))u.layer!==void 0?e.framebufferTextureLayer(i,h,l,u.level||0,u.layer):e.framebufferTexture2D(i,h,u.target||II,l,u.level||0);else throw new Error("unknown attachment type");s.attachments.push(l)}),s}function jI(e,t,n,r,i){r=r||e.drawingBufferWidth,i=i||e.drawingBufferHeight,t.width=r,t.height=i,n=n||uy,n.forEach(function(a,o){const s=t.attachments[o],u=a.format,l=a.samples;if(l!==void 0||n2(e,s))e.bindRenderbuffer(Vi,s),l>1?e.renderbufferStorageMultisample(Vi,l,u,r,i):e.renderbufferStorage(Vi,u,r,i);else if(af(e,s))wT(e,s,a,r,i);else throw new Error("unknown attachment type")})}function qI(e,t,n){const r=e.createVertexArray();return e.bindVertexArray(r),t.length||(t=[t]),t.forEach(function(i){Hi(e,i,n)}),e.bindVertexArray(null),{numElements:n.numElements,elementType:n.elementType,vertexArrayObject:r}}const ZI=/^(.*?)_/;function WI(e,t){Fd(e,0);const n=e.getExtension(t);if(n){const r={},i=ZI.exec(t)[1],a="_"+i;for(const o in n){const s=n[o],u=typeof s=="function",l=u?i:a;let f=o;o.endsWith(l)&&(f=o.substring(0,o.length-l.length)),e[f]!==void 0?!u&&e[f]!==s&&t2(f,e[f],s,o):u?e[f]=function(c){return function(){return c.apply(n,arguments)}}(s):(e[f]=s,r[f]=s)}r.constructor={name:n.constructor.name},Fd(r,0)}return n}const fy=["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 cy(e){for(let t=0;t<fy.length;++t)WI(e,fy[t])}function YI(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){cy(r);break}return r}function QI(e,t){return YI(e,t)}const $I=`uniform Mark{uniform float uMinWidth;uniform float uMinHeight;uniform float uMinOpacity;uniform float uCornerRadiusTopRight;uniform float uCornerRadiusBottomRight;uniform float uCornerRadiusTopLeft;uniform float uCornerRadiusBottomLeft;};out lowp vec4 vFillColor;out lowp vec4 vStrokeColor;out float vHalfStrokeWidth;out vec4 vCornerRadii;
|
|
224
|
+
see: http://github.com/greggman/twgl.js for details */const Qd=5120,$s=5121,Xd=5122,Kd=5123,Jd=5124,e0=5125,t0=5126,hk=32819,dk=32820,pk=33635,gk=5131,mk=33640,bk=35899,yk=35902,wk=36269,vk=34042,D2={};{const e=D2;e[Qd]=Int8Array,e[$s]=Uint8Array,e[Xd]=Int16Array,e[Kd]=Uint16Array,e[Jd]=Int32Array,e[e0]=Uint32Array,e[t0]=Float32Array,e[hk]=Uint16Array,e[dk]=Uint16Array,e[pk]=Uint16Array,e[gk]=Uint16Array,e[mk]=Uint32Array,e[bk]=Uint32Array,e[yk]=Uint32Array,e[wk]=Uint32Array,e[vk]=Uint32Array}function n0(e){if(e instanceof Int8Array)return Qd;if(e instanceof Uint8Array||e instanceof Uint8ClampedArray)return $s;if(e instanceof Int16Array)return Xd;if(e instanceof Uint16Array)return Kd;if(e instanceof Int32Array)return Jd;if(e instanceof Uint32Array)return e0;if(e instanceof Float32Array)return t0;throw new Error("unsupported typed array type")}function xk(e){if(e===Int8Array)return Qd;if(e===Uint8Array||e===Uint8ClampedArray)return $s;if(e===Int16Array)return Xd;if(e===Uint16Array)return Kd;if(e===Int32Array)return Jd;if(e===Uint32Array)return e0;if(e===Float32Array)return t0;throw new Error("unsupported typed array type")}function Ak(e){const t=D2[e];if(!t)throw new Error("unknown gl type");return t}const Tc=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 Ek(...e){console.error(...e)}function R2(...e){console.warn(...e)}function _k(e,t){return typeof WebGLBuffer<"u"&&t instanceof WebGLBuffer}function F2(e,t){return typeof WebGLRenderbuffer<"u"&&t instanceof WebGLRenderbuffer}function Ic(e,t){return typeof WebGLTexture<"u"&&t instanceof WebGLTexture}function Sk(e,t){return typeof WebGLSampler<"u"&&t instanceof WebGLSampler}const M2=35044,Vn=34962,Ck=34963,kk=34660,Tk=5120,Ik=5121,Bk=5122,Dk=5123,Rk=5124,Fk=5125,Mk=5126,P2={attribPrefix:""};function L2(e,t,n,r,i){e.bindBuffer(t,n),e.bufferData(t,r,i||M2)}function O2(e,t,n,r){if(_k(e,t))return t;n=n||Vn;const i=e.createBuffer();return L2(e,n,i,t,r),i}function N2(e){return e==="indices"}function Pk(e){return e instanceof Int8Array||e instanceof Uint8Array}function Lk(e){return e===Int8Array||e===Uint8Array}function Ok(e){return e.length?e:e.data}const Nk=/coord|texture/i,zk=/color|colour/i;function z2(e,t){let n;if(Nk.test(e)?n=2:zk.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 Uk(e,t){return e.numComponents||e.size||z2(t,Ok(e).length)}function r0(e,t){if(Tc(e))return e;if(Tc(e.data))return e.data;Array.isArray(e)&&(e={data:e});let n=e.type;return n||(N2(t)?n=Uint16Array:n=Float32Array),new n(e.data)}function Gk(e,t){const n={};return Object.keys(t).forEach(function(r){if(!N2(r)){const i=t[r],a=i.attrib||i.name||i.attribName||P2.attribPrefix+r;if(i.value){if(!Array.isArray(i.value)&&!Tc(i.value))throw new Error("array.value is not array or typedarray");n[a]={value:i.value}}else{let o,s,u,l;if(i.buffer&&i.buffer instanceof WebGLBuffer)o=i.buffer,l=i.numComponents||i.size,s=i.type,u=i.normalize;else if(typeof i=="number"||typeof i.data=="number"){const c=i.data||i,f=i.type||Float32Array,h=c*f.BYTES_PER_ELEMENT;s=xk(f),u=i.normalize!==void 0?i.normalize:Lk(f),l=i.numComponents||i.size||z2(r,c),o=e.createBuffer(),e.bindBuffer(Vn,o),e.bufferData(Vn,h,i.drawType||M2)}else{const c=r0(i,r);o=O2(e,c,void 0,i.drawType),s=n0(c),u=i.normalize!==void 0?i.normalize:Pk(c),l=Uk(i,r)}n[a]={buffer:o,numComponents:l,type:s,normalize:u,stride:i.stride||0,offset:i.offset||0,divisor:i.divisor===void 0?void 0:i.divisor,drawType:i.drawType}}}}),e.bindBuffer(Vn,null),n}function Hk(e,t,n,r){n=r0(n),r!==void 0?(e.bindBuffer(Vn,t.buffer),e.bufferSubData(Vn,r,n)):L2(e,Vn,t.buffer,n,t.drawType)}function Vk(e,t){return t===Tk||t===Ik?1:t===Bk||t===Dk?2:t===Rk||t===Fk||t===Mk?4:0}const i0=["position","positions","a_position"];function jk(e,t){let n,r;for(r=0;r<i0.length&&(n=i0[r],!(n in t||(n=P2.attribPrefix+n,n in t)));++r);r===i0.length&&(n=Object.keys(t)[0]);const i=t[n];e.bindBuffer(Vn,i.buffer);const a=e.getBufferParameter(Vn,kk);e.bindBuffer(Vn,null);const o=Vk(e,i.type),s=a/o,u=i.numComponents||i.size,l=s/u;if(l%1!==0)throw new Error(`numComponents ${u} not correct for length ${length}`);return l}function $k(e,t,n){const r=Gk(e,t),i=Object.assign({},n||{});i.attribs=Object.assign({},n?n.attribs:{},r);const a=t.indices;if(a){const o=r0(a,"indices");i.indices=O2(e,o,Ck),i.numElements=o.length,i.elementType=n0(o)}else i.numElements||(i.numElements=jk(e,i.attribs));return i}function za(e){return!!e.texStorage2D}const a0=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)}}(),qr={textureColor:new Uint8Array([128,192,255,255]),textureOptions:{},crossOrigin:void 0},Ua=Tc,U2=function(){let e;return function(){return e=e||(typeof document<"u"&&document.createElement?document.createElement("canvas").getContext("2d"):null),e}}(),G2=6406,jn=6407,Ve=6408,H2=6409,V2=6410,qs=6402,j2=34041,Bc=33071,qk=9728,Wk=9729,cr=3553,fr=34067,Wr=32879,Zr=35866,Dc=34069,Zk=34070,Yk=34071,Qk=34072,Xk=34073,Kk=34074,o0=10241,s0=10240,Rc=10242,Fc=10243,$2=32882,Jk=33082,eT=33083,tT=33084,nT=33085,l0=3317,q2=3314,W2=32878,Z2=3316,Y2=3315,Q2=32877,rT=37443,iT=37441,aT=37440,oT=33321,sT=36756,lT=33325,uT=33326,cT=33330,fT=33329,hT=33338,dT=33337,pT=33340,gT=33339,mT=33323,bT=36757,yT=33327,wT=33328,vT=33336,xT=33335,AT=33332,ET=33331,_T=33334,ST=33333,CT=32849,kT=35905,TT=36194,IT=36758,BT=35898,DT=35901,RT=34843,FT=34837,MT=36221,PT=36239,LT=36215,OT=36233,NT=36209,zT=36227,UT=32856,GT=35907,HT=36759,VT=32855,jT=32854,$T=32857,qT=34842,WT=34836,ZT=36220,YT=36238,QT=36975,XT=36214,KT=36232,JT=36226,eI=36208,tI=33189,nI=33190,rI=36012,iI=36013,aI=35056,Yr=5120,je=5121,Mc=5122,Ga=5123,Pc=5124,Vi=5125,_t=5126,X2=32819,K2=32820,J2=33635,_n=5131,Ws=36193,u0=33640,oI=35899,sI=35902,lI=36269,uI=34042,Lc=33319,Ha=33320,Oc=6403,Va=36244,ja=36248,ji=36249;let c0;function Nc(e){if(!c0){const t={};t[G2]={textureFormat:G2,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[1,2,2,4],type:[je,_n,Ws,_t]},t[H2]={textureFormat:H2,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[1,2,2,4],type:[je,_n,Ws,_t]},t[V2]={textureFormat:V2,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[2,4,4,8],type:[je,_n,Ws,_t]},t[jn]={textureFormat:jn,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[3,6,6,12,2],type:[je,_n,Ws,_t,J2]},t[Ve]={textureFormat:Ve,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4,8,8,16,2,2],type:[je,_n,Ws,_t,X2,K2]},t[qs]={textureFormat:qs,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2,4],type:[Vi,Ga]},t[oT]={textureFormat:Oc,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[1],type:[je]},t[sT]={textureFormat:Oc,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[1],type:[Yr]},t[lT]={textureFormat:Oc,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[4,2],type:[_t,_n]},t[uT]={textureFormat:Oc,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[4],type:[_t]},t[cT]={textureFormat:Va,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[1],type:[je]},t[fT]={textureFormat:Va,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[1],type:[Yr]},t[AT]={textureFormat:Va,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[Ga]},t[ET]={textureFormat:Va,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[Mc]},t[_T]={textureFormat:Va,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Vi]},t[ST]={textureFormat:Va,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Pc]},t[mT]={textureFormat:Lc,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[2],type:[je]},t[bT]={textureFormat:Lc,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[2],type:[Yr]},t[yT]={textureFormat:Lc,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[8,4],type:[_t,_n]},t[wT]={textureFormat:Lc,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[8],type:[_t]},t[vT]={textureFormat:Ha,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[je]},t[xT]={textureFormat:Ha,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[Yr]},t[hT]={textureFormat:Ha,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Ga]},t[dT]={textureFormat:Ha,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Mc]},t[pT]={textureFormat:Ha,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[Vi]},t[gT]={textureFormat:Ha,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[Pc]},t[CT]={textureFormat:jn,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[3],type:[je]},t[kT]={textureFormat:jn,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[3],type:[je]},t[TT]={textureFormat:jn,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[3,2],type:[je,J2]},t[IT]={textureFormat:jn,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[3],type:[Yr]},t[BT]={textureFormat:jn,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[12,6,4],type:[_t,_n,oI]},t[DT]={textureFormat:jn,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[12,6,4],type:[_t,_n,sI]},t[RT]={textureFormat:jn,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[12,6],type:[_t,_n]},t[FT]={textureFormat:jn,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[12],type:[_t]},t[MT]={textureFormat:ja,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[3],type:[je]},t[PT]={textureFormat:ja,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[3],type:[Yr]},t[LT]={textureFormat:ja,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[6],type:[Ga]},t[OT]={textureFormat:ja,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[6],type:[Mc]},t[NT]={textureFormat:ja,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[12],type:[Vi]},t[zT]={textureFormat:ja,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[12],type:[Pc]},t[UT]={textureFormat:Ve,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4],type:[je]},t[GT]={textureFormat:Ve,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4],type:[je]},t[HT]={textureFormat:Ve,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[4],type:[Yr]},t[VT]={textureFormat:Ve,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4,2,4],type:[je,K2,u0]},t[jT]={textureFormat:Ve,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4,2],type:[je,X2]},t[$T]={textureFormat:Ve,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4],type:[u0]},t[qT]={textureFormat:Ve,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[16,8],type:[_t,_n]},t[WT]={textureFormat:Ve,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[16],type:[_t]},t[ZT]={textureFormat:ji,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[je]},t[YT]={textureFormat:ji,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Yr]},t[QT]={textureFormat:ji,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[u0]},t[XT]={textureFormat:ji,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[Ga]},t[KT]={textureFormat:ji,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[Mc]},t[JT]={textureFormat:ji,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[16],type:[Pc]},t[eI]={textureFormat:ji,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[16],type:[Vi]},t[tI]={textureFormat:qs,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2,4],type:[Ga,Vi]},t[nI]={textureFormat:qs,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Vi]},t[rI]={textureFormat:qs,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[_t]},t[aI]={textureFormat:j2,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[uI]},t[iI]={textureFormat:j2,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[lI]},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})}),c0=t}return c0[e]}function cI(e,t){const n=Nc(e);if(!n)throw"unknown internal format";const r=n.bytesPerElementMap[t];if(r===void 0)throw"unknown internal format";return r}function $a(e){const t=Nc(e);if(!t)throw"unknown internal format";return{format:t.textureFormat,type:t.type[0]}}function ey(e){return(e&e-1)===0}function fI(e,t,n,r){if(!za(e))return ey(t)&&ey(n);const i=Nc(r);if(!i)throw"unknown internal format";return i.colorRenderable&&i.textureFilterable}function hI(e){const t=Nc(e);if(!t)throw"unknown internal format";return t.textureFilterable}function ty(e,t,n){return Ua(t)?n0(t):n||je}function zc(e,t,n,r,i){if(i%1!==0)throw"can't guess dimensions";if(!n&&!r){const a=Math.sqrt(i/(t===fr?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 qa(e,t){t.colorspaceConversion!==void 0&&e.pixelStorei(rT,t.colorspaceConversion),t.premultiplyAlpha!==void 0&&e.pixelStorei(iT,t.premultiplyAlpha),t.flipY!==void 0&&e.pixelStorei(aT,t.flipY)}function ny(e){e.pixelStorei(l0,4),za(e)&&(e.pixelStorei(q2,0),e.pixelStorei(W2,0),e.pixelStorei(Z2,0),e.pixelStorei(Y2,0),e.pixelStorei(Q2,0))}function dI(e,t,n,r){r.minMag&&(n.call(e,t,o0,r.minMag),n.call(e,t,s0,r.minMag)),r.min&&n.call(e,t,o0,r.min),r.mag&&n.call(e,t,s0,r.mag),r.wrap&&(n.call(e,t,Rc,r.wrap),n.call(e,t,Fc,r.wrap),(t===Wr||Sk(e,t))&&n.call(e,t,$2,r.wrap)),r.wrapR&&n.call(e,t,$2,r.wrapR),r.wrapS&&n.call(e,t,Rc,r.wrapS),r.wrapT&&n.call(e,t,Fc,r.wrapT),r.minLod&&n.call(e,t,Jk,r.minLod),r.maxLod&&n.call(e,t,eT,r.maxLod),r.baseLevel&&n.call(e,t,tT,r.baseLevel),r.maxLevel&&n.call(e,t,nT,r.maxLevel)}function ry(e,t,n){const r=n.target||cr;e.bindTexture(r,t),dI(e,r,e.texParameteri,n)}function pI(e){return e=e||qr.textureColor,Ua(e)?e:new Uint8Array([e[0]*255,e[1]*255,e[2]*255,e[3]*255])}function f0(e,t,n,r,i,a){n=n||qr.textureOptions,a=a||Ve;const o=n.target||cr;if(r=r||n.width,i=i||n.height,e.bindTexture(o,t),fI(e,r,i,a))e.generateMipmap(o);else{const s=hI(a)?Wk:qk;e.texParameteri(o,o0,s),e.texParameteri(o,s0,s),e.texParameteri(o,Rc,Bc),e.texParameteri(o,Fc,Bc)}}function Zs(e){return e.auto===!0||e.auto===void 0&&e.level===void 0}function h0(e,t){return t=t||{},t.cubeFaceOrder||[Dc,Zk,Yk,Qk,Xk,Kk]}function d0(e,t){const r=h0(e,t).map(function(i,a){return{face:i,ndx:a}});return r.sort(function(i,a){return i.face-a.face}),r}function iy(e,t,n,r){r=r||qr.textureOptions;const i=r.target||cr,a=r.level||0;let o=n.width,s=n.height;const u=r.internalFormat||r.format||Ve,l=$a(u),c=r.format||l.format,f=r.type||l.type;if(qa(e,r),e.bindTexture(i,t),i===fr){const h=n.width,d=n.height;let p,m;if(h/6===d)p=d,m=[0,0,1,0,2,0,3,0,4,0,5,0];else if(d/6===h)p=h,m=[0,0,0,1,0,2,0,3,0,4,0,5];else if(h/3===d/2)p=h/3,m=[0,0,1,0,2,0,0,1,1,1,2,1];else if(h/2===d/3)p=h/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 y=U2();y?(y.canvas.width=p,y.canvas.height=p,o=p,s=p,d0(e,r).forEach(function(w){const A=m[w.ndx*2+0]*p,S=m[w.ndx*2+1]*p;y.drawImage(n,A,S,p,p,0,0,p,p),e.texImage2D(w.face,a,u,c,f,y.canvas)}),y.canvas.width=1,y.canvas.height=1):typeof createImageBitmap<"u"&&(o=p,s=p,d0(e,r).forEach(function(w){const A=m[w.ndx*2+0]*p,S=m[w.ndx*2+1]*p;e.texImage2D(w.face,a,u,p,p,0,c,f,null),createImageBitmap(n,A,S,p,p,{premultiplyAlpha:"none",colorSpaceConversion:"none"}).then(function(_){qa(e,r),e.bindTexture(i,t),e.texImage2D(w.face,a,u,c,f,_),Zs(r)&&f0(e,t,r,o,s,u)})}))}else if(i===Wr||i===Zr){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 m=n.width===d?1:0,y=n.height===d?1:0;e.pixelStorei(l0,1),e.pixelStorei(q2,n.width),e.pixelStorei(W2,0),e.pixelStorei(Q2,0),e.texImage3D(i,a,u,h,h,h,0,c,f,null);for(let w=0;w<p;++w){const A=w*h*m,S=w*h*y;e.pixelStorei(Z2,A),e.pixelStorei(Y2,S),e.texSubImage3D(i,a,0,0,w,h,h,1,c,f,n)}ny(e)}else e.texImage2D(i,a,u,c,f,n);Zs(r)&&f0(e,t,r,o,s,u),ry(e,t,r)}function Ys(){}function gI(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 mI(e,t){return t===void 0&&!gI(e)?"anonymous":t}function bI(e,t,n){n=n||Ys;let r;if(t=t!==void 0?t:qr.crossOrigin,t=mI(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 u="couldn't load image: "+e;Ek(u),n(u,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(u){if(!u.ok)throw u;return u.blob()}).then(function(u){return createImageBitmap(u,{premultiplyAlpha:"none",colorSpaceConversion:"none"})}).then(function(u){a=u,setTimeout(o)}).catch(function(u){i=u,setTimeout(o)}),r=null}return r}function ay(e){return typeof ImageBitmap<"u"&&e instanceof ImageBitmap||typeof ImageData<"u"&&e instanceof ImageData||typeof HTMLElement<"u"&&e instanceof HTMLElement}function p0(e,t,n){return ay(e)?(setTimeout(function(){n(null,e)}),e):bI(e,t,n)}function g0(e,t,n){n=n||qr.textureOptions;const r=n.target||cr;if(e.bindTexture(r,t),n.color===!1)return;const i=pI(n.color);if(r===fr)for(let a=0;a<6;++a)e.texImage2D(Dc+a,0,Ve,1,1,0,Ve,je,i);else r===Wr||r===Zr?e.texImage3D(r,0,Ve,1,1,1,0,Ve,je,i):e.texImage2D(r,0,Ve,1,1,0,Ve,je,i)}function yI(e,t,n,r){return r=r||Ys,n=n||qr.textureOptions,g0(e,t,n),n=Object.assign({},n),p0(n.src,n.crossOrigin,function(a,o){a?r(a,t,o):(iy(e,t,o,n),r(null,t,o))})}function wI(e,t,n,r){r=r||Ys;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||Ve,s=$a(o),u=n.format||s.format,l=n.type||je,c=n.target||cr;if(c!==fr)throw"target must be TEXTURE_CUBE_MAP";g0(e,t,n),n=Object.assign({},n);let f=6;const h=[],d=h0(e,n);let p;function m(y){return function(w,A){--f,w?h.push(w):A.width!==A.height?h.push("cubemap face img is not a square: "+A.src):(qa(e,n),e.bindTexture(c,t),f===5?h0().forEach(function(S){e.texImage2D(S,a,o,u,l,A)}):e.texImage2D(y,a,o,u,l,A),Zs(n)&&e.generateMipmap(c)),f===0&&r(h.length?h:void 0,t,p)}}p=i.map(function(y,w){return p0(y,n.crossOrigin,m(d[w]))})}function vI(e,t,n,r){r=r||Ys;const i=n.src,a=n.internalFormat||n.format||Ve,o=$a(a),s=n.format||o.format,u=n.type||je,l=n.target||Zr;if(l!==Wr&&l!==Zr)throw"target must be TEXTURE_3D or TEXTURE_2D_ARRAY";g0(e,t,n),n=Object.assign({},n);let c=i.length;const f=[];let h;const d=n.level||0;let p=n.width,m=n.height;const y=i.length;let w=!0;function A(S){return function(_,T){if(--c,_)f.push(_);else{if(qa(e,n),e.bindTexture(l,t),w){w=!1,p=n.width||T.width,m=n.height||T.height,e.texImage3D(l,d,a,p,m,y,0,s,u,null);for(let I=0;I<y;++I)e.texSubImage3D(l,d,0,0,I,p,m,1,s,u,T)}else{let I=T,B;(T.width!==p||T.height!==m)&&(B=U2(),I=B.canvas,B.canvas.width=p,B.canvas.height=m,B.drawImage(T,0,0,p,m)),e.texSubImage3D(l,d,0,0,S,p,m,1,s,u,I),B&&I===B.canvas&&(B.canvas.width=0,B.canvas.height=0)}Zs(n)&&e.generateMipmap(l)}c===0&&r(f.length?f:void 0,t,h)}}h=i.map(function(S,_){return p0(S,n.crossOrigin,A(_))})}function oy(e,t,n,r){r=r||qr.textureOptions;const i=r.target||cr;e.bindTexture(i,t);let a=r.width,o=r.height,s=r.depth;const u=r.level||0,l=r.internalFormat||r.format||Ve,c=$a(l),f=r.format||c.format,h=r.type||ty(e,n,c.type);if(Ua(n))n instanceof Uint8ClampedArray&&(n=new Uint8Array(n.buffer));else{const y=Ak(h);n=new y(n)}const d=cI(l,h),p=n.byteLength/d;if(p%1)throw"length wrong size for format: "+a0(e,f);let m;if(i===Wr||i===Zr)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)?(m=zc(e,i,o,s,p/a),o=m.width,s=m.height):o&&(!a||!s)?(m=zc(e,i,a,s,p/o),a=m.width,s=m.height):(m=zc(e,i,a,o,p/s),a=m.width,o=m.height);else m=zc(e,i,a,o,p),a=m.width,o=m.height;if(ny(e),e.pixelStorei(l0,r.unpackAlignment||1),qa(e,r),i===fr){const y=d/n.BYTES_PER_ELEMENT,w=p/6*y;d0(e,r).forEach(A=>{const S=w*A.ndx,_=n.subarray(S,S+w);e.texImage2D(A.face,u,l,a,o,0,f,h,_)})}else i===Wr||i===Zr?e.texImage3D(i,u,l,a,o,s,0,f,h,n):e.texImage2D(i,u,l,a,o,0,f,h,n);return{width:a,height:o,depth:s,type:h}}function xI(e,t,n){const r=n.target||cr;e.bindTexture(r,t);const i=n.level||0,a=n.internalFormat||n.format||Ve,o=$a(a),s=n.format||o.format,u=n.type||o.type;if(qa(e,n),r===fr)for(let l=0;l<6;++l)e.texImage2D(Dc+l,i,a,n.width,n.height,0,s,u,null);else r===Wr||r===Zr?e.texImage3D(r,i,a,n.width,n.height,n.depth,0,s,u,null):e.texImage2D(r,i,a,n.width,n.height,0,s,u,null)}function Qs(e,t,n){n=n||Ys,t=t||qr.textureOptions;const r=e.createTexture(),i=t.target||cr;let a=t.width||1,o=t.height||1;const s=t.internalFormat||Ve;e.bindTexture(i,r),i===fr&&(e.texParameteri(i,Rc,Bc),e.texParameteri(i,Fc,Bc));let u=t.src;if(u)if(typeof u=="function"&&(u=u(e,t)),typeof u=="string")yI(e,r,t,n);else if(Ua(u)||Array.isArray(u)&&(typeof u[0]=="number"||Array.isArray(u[0])||Ua(u[0]))){const l=oy(e,r,u,t);a=l.width,o=l.height}else Array.isArray(u)&&(typeof u[0]=="string"||ay(u[0]))?i===fr?wI(e,r,t,n):vI(e,r,t,n):(iy(e,r,u,t),a=u.width,o=u.height);else xI(e,r,t);return Zs(t)&&f0(e,r,t,a,o,s),ry(e,r,t),r}function AI(e,t,n,r,i,a){r=r||n.width,i=i||n.height,a=a||n.depth;const o=n.target||cr;e.bindTexture(o,t);const s=n.level||0,u=n.internalFormat||n.format||Ve,l=$a(u),c=n.format||l.format;let f;const h=n.src;if(h&&(Ua(h)||Array.isArray(h)&&typeof h[0]=="number")?f=n.type||ty(e,h,l.type):f=n.type||l.type,o===fr)for(let d=0;d<6;++d)e.texImage2D(Dc+d,s,u,r,i,0,c,f,null);else o===Wr||o===Zr?e.texImage3D(o,s,u,r,i,a,0,c,f,null):e.texImage2D(o,s,u,r,i,0,c,f,null)}const EI=R2,Uc=33984,_I=35048,Gc=34962,SI=34963,m0=35345,sy=35718,CI=35721,kI=35971,TI=35382,II=35396,BI=35398,DI=35392,RI=35395,Hc=5126,ly=35664,uy=35665,cy=35666,b0=5124,fy=35667,hy=35668,dy=35669,py=35670,gy=35671,my=35672,by=35673,yy=35674,wy=35675,vy=35676,FI=35678,MI=35680,PI=35679,LI=35682,OI=35685,NI=35686,zI=35687,UI=35688,GI=35689,HI=35690,VI=36289,jI=36292,$I=36293,y0=5125,xy=36294,Ay=36295,Ey=36296,qI=36298,WI=36299,ZI=36300,YI=36303,QI=36306,XI=36307,KI=36308,JI=36311,Vc=3553,jc=34067,w0=32879,$c=35866,le={};function _y(e,t){return le[t].bindPoint}function eB(e,t){return function(n){e.uniform1f(t,n)}}function tB(e,t){return function(n){e.uniform1fv(t,n)}}function nB(e,t){return function(n){e.uniform2fv(t,n)}}function rB(e,t){return function(n){e.uniform3fv(t,n)}}function iB(e,t){return function(n){e.uniform4fv(t,n)}}function Sy(e,t){return function(n){e.uniform1i(t,n)}}function Cy(e,t){return function(n){e.uniform1iv(t,n)}}function ky(e,t){return function(n){e.uniform2iv(t,n)}}function Ty(e,t){return function(n){e.uniform3iv(t,n)}}function Iy(e,t){return function(n){e.uniform4iv(t,n)}}function aB(e,t){return function(n){e.uniform1ui(t,n)}}function oB(e,t){return function(n){e.uniform1uiv(t,n)}}function sB(e,t){return function(n){e.uniform2uiv(t,n)}}function lB(e,t){return function(n){e.uniform3uiv(t,n)}}function uB(e,t){return function(n){e.uniform4uiv(t,n)}}function cB(e,t){return function(n){e.uniformMatrix2fv(t,!1,n)}}function fB(e,t){return function(n){e.uniformMatrix3fv(t,!1,n)}}function hB(e,t){return function(n){e.uniformMatrix4fv(t,!1,n)}}function dB(e,t){return function(n){e.uniformMatrix2x3fv(t,!1,n)}}function pB(e,t){return function(n){e.uniformMatrix3x2fv(t,!1,n)}}function gB(e,t){return function(n){e.uniformMatrix2x4fv(t,!1,n)}}function mB(e,t){return function(n){e.uniformMatrix4x2fv(t,!1,n)}}function bB(e,t){return function(n){e.uniformMatrix3x4fv(t,!1,n)}}function yB(e,t){return function(n){e.uniformMatrix4x3fv(t,!1,n)}}function Bt(e,t,n,r){const i=_y(e,t);return za(e)?function(a){let o,s;Ic(e,a)?(o=a,s=null):(o=a.texture,s=a.sampler),e.uniform1i(r,n),e.activeTexture(Uc+n),e.bindTexture(i,o),e.bindSampler(n,s)}:function(a){e.uniform1i(r,n),e.activeTexture(Uc+n),e.bindTexture(i,a)}}function Dt(e,t,n,r,i){const a=_y(e,t),o=new Int32Array(i);for(let s=0;s<i;++s)o[s]=n+s;return za(e)?function(s){e.uniform1iv(r,o),s.forEach(function(u,l){e.activeTexture(Uc+o[l]);let c,f;Ic(e,u)?(c=u,f=null):(c=u.texture,f=u.sampler),e.bindSampler(n,f),e.bindTexture(a,c)})}:function(s){e.uniform1iv(r,o),s.forEach(function(u,l){e.activeTexture(Uc+o[l]),e.bindTexture(a,u)})}}le[Hc]={Type:Float32Array,size:4,setter:eB,arraySetter:tB},le[ly]={Type:Float32Array,size:8,setter:nB,cols:2},le[uy]={Type:Float32Array,size:12,setter:rB,cols:3},le[cy]={Type:Float32Array,size:16,setter:iB,cols:4},le[b0]={Type:Int32Array,size:4,setter:Sy,arraySetter:Cy},le[fy]={Type:Int32Array,size:8,setter:ky,cols:2},le[hy]={Type:Int32Array,size:12,setter:Ty,cols:3},le[dy]={Type:Int32Array,size:16,setter:Iy,cols:4},le[y0]={Type:Uint32Array,size:4,setter:aB,arraySetter:oB},le[xy]={Type:Uint32Array,size:8,setter:sB,cols:2},le[Ay]={Type:Uint32Array,size:12,setter:lB,cols:3},le[Ey]={Type:Uint32Array,size:16,setter:uB,cols:4},le[py]={Type:Uint32Array,size:4,setter:Sy,arraySetter:Cy},le[gy]={Type:Uint32Array,size:8,setter:ky,cols:2},le[my]={Type:Uint32Array,size:12,setter:Ty,cols:3},le[by]={Type:Uint32Array,size:16,setter:Iy,cols:4},le[yy]={Type:Float32Array,size:32,setter:cB,rows:2,cols:2},le[wy]={Type:Float32Array,size:48,setter:fB,rows:3,cols:3},le[vy]={Type:Float32Array,size:64,setter:hB,rows:4,cols:4},le[OI]={Type:Float32Array,size:32,setter:dB,rows:2,cols:3},le[NI]={Type:Float32Array,size:32,setter:gB,rows:2,cols:4},le[zI]={Type:Float32Array,size:48,setter:pB,rows:3,cols:2},le[UI]={Type:Float32Array,size:48,setter:bB,rows:3,cols:4},le[GI]={Type:Float32Array,size:64,setter:mB,rows:4,cols:2},le[HI]={Type:Float32Array,size:64,setter:yB,rows:4,cols:3},le[FI]={Type:null,size:0,setter:Bt,arraySetter:Dt,bindPoint:Vc},le[MI]={Type:null,size:0,setter:Bt,arraySetter:Dt,bindPoint:jc},le[PI]={Type:null,size:0,setter:Bt,arraySetter:Dt,bindPoint:w0},le[LI]={Type:null,size:0,setter:Bt,arraySetter:Dt,bindPoint:Vc},le[VI]={Type:null,size:0,setter:Bt,arraySetter:Dt,bindPoint:$c},le[jI]={Type:null,size:0,setter:Bt,arraySetter:Dt,bindPoint:$c},le[$I]={Type:null,size:0,setter:Bt,arraySetter:Dt,bindPoint:jc},le[qI]={Type:null,size:0,setter:Bt,arraySetter:Dt,bindPoint:Vc},le[WI]={Type:null,size:0,setter:Bt,arraySetter:Dt,bindPoint:w0},le[ZI]={Type:null,size:0,setter:Bt,arraySetter:Dt,bindPoint:jc},le[YI]={Type:null,size:0,setter:Bt,arraySetter:Dt,bindPoint:$c},le[QI]={Type:null,size:0,setter:Bt,arraySetter:Dt,bindPoint:Vc},le[XI]={Type:null,size:0,setter:Bt,arraySetter:Dt,bindPoint:w0},le[KI]={Type:null,size:0,setter:Bt,arraySetter:Dt,bindPoint:jc},le[JI]={Type:null,size:0,setter:Bt,arraySetter:Dt,bindPoint:$c};function qc(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(Gc,n.buffer),e.enableVertexAttribArray(t),e.vertexAttribPointer(t,n.numComponents||n.size,n.type||Hc,n.normalize||!1,n.stride||0,n.offset||0),n.divisor!==void 0&&e.vertexAttribDivisor(t,n.divisor)}}function Qr(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(Gc,n.buffer),e.enableVertexAttribArray(t),e.vertexAttribIPointer(t,n.numComponents||n.size,n.type||b0,n.stride||0,n.offset||0),n.divisor!==void 0&&e.vertexAttribDivisor(t,n.divisor)}}function Wc(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(Gc,n.buffer),e.enableVertexAttribArray(t),e.vertexAttribIPointer(t,n.numComponents||n.size,n.type||y0,n.stride||0,n.offset||0),n.divisor!==void 0&&e.vertexAttribDivisor(t,n.divisor)}}function v0(e,t,n){const r=n.size,i=n.count;return function(a){e.bindBuffer(Gc,a.buffer);const o=a.size||a.numComponents||r,s=o/i,u=a.type||Hc,c=le[u].size*o,f=a.normalize||!1,h=a.offset||0,d=c/i;for(let p=0;p<i;++p)e.enableVertexAttribArray(t+p),e.vertexAttribPointer(t+p,s,u,f,c,h+d*p),a.divisor!==void 0&&e.vertexAttribDivisor(t+p,a.divisor)}}const nt={};nt[Hc]={size:4,setter:qc},nt[ly]={size:8,setter:qc},nt[uy]={size:12,setter:qc},nt[cy]={size:16,setter:qc},nt[b0]={size:4,setter:Qr},nt[fy]={size:8,setter:Qr},nt[hy]={size:12,setter:Qr},nt[dy]={size:16,setter:Qr},nt[y0]={size:4,setter:Wc},nt[xy]={size:8,setter:Wc},nt[Ay]={size:12,setter:Wc},nt[Ey]={size:16,setter:Wc},nt[py]={size:4,setter:Qr},nt[gy]={size:8,setter:Qr},nt[my]={size:12,setter:Qr},nt[by]={size:16,setter:Qr},nt[yy]={size:4,setter:v0,count:2},nt[wy]={size:9,setter:v0,count:3},nt[vy]={size:16,setter:v0,count:4};function By(e){const t=e.name;return t.startsWith("gl_")||t.startsWith("webgl_")}const wB=/(\.|\[|]|\w+)/g,vB=e=>e>="0"&&e<="9";function Dy(e,t,n,r){const i=e.split(wB).filter(s=>s!=="");let a=0,o="";for(;;){const s=i[a++];o+=s;const u=vB(s[0]),l=u?parseInt(s):s;if(u&&(o+=i[a++]),a===i.length){n[l]=t;break}else{const f=i[a++],h=f==="[",d=n[l]||(h?[]:{});n[l]=d,n=d,r[o]=r[o]||function(p){return function(m){Ly(p,m)}}(d),o+=f}}}function xB(e,t){let n=0;function r(s,u,l){const c=u.name.endsWith("[0]"),f=u.type,h=le[f];if(!h)throw new Error(`unknown type: 0x${f.toString(16)}`);let d;if(h.bindPoint){const p=n;n+=u.size,c?d=h.arraySetter(e,f,p,l,u.size):d=h.setter(e,f,p,l,u.size)}else h.arraySetter&&c?d=h.arraySetter(e,l):d=h.setter(e,l);return d.location=l,d}const i={},a={},o=e.getProgramParameter(t,sy);for(let s=0;s<o;++s){const u=e.getActiveUniform(t,s);if(By(u))continue;let l=u.name;l.endsWith("[0]")&&(l=l.substr(0,l.length-3));const c=e.getUniformLocation(t,u.name);if(c){const f=r(t,u,c);i[l]=f,Dy(l,f,a,i)}}return i}function AB(e,t){const n={},r=e.getProgramParameter(t,kI);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 EB(e,t){const n=e.getProgramParameter(t,sy),r=[],i=[];for(let s=0;s<n;++s){i.push(s),r.push({});const u=e.getActiveUniform(t,s);r[s].name=u.name}[["UNIFORM_TYPE","type"],["UNIFORM_SIZE","size"],["UNIFORM_BLOCK_INDEX","blockNdx"],["UNIFORM_OFFSET","offset"]].forEach(function(s){const u=s[0],l=s[1];e.getActiveUniforms(t,i,e[u]).forEach(function(c,f){r[f][l]=c})});const a={},o=e.getProgramParameter(t,TI);for(let s=0;s<o;++s){const u=e.getActiveUniformBlockName(t,s),l={index:e.getUniformBlockIndex(t,u),usedByVertexShader:e.getActiveUniformBlockParameter(t,s,II),usedByFragmentShader:e.getActiveUniformBlockParameter(t,s,BI),size:e.getActiveUniformBlockParameter(t,s,DI),uniformIndices:e.getActiveUniformBlockParameter(t,s,RI)};l.used=l.usedByVertexShader||l.usedByFragmentShader,a[u]=l}return{blockSpecs:a,uniformData:r}}const Ry=/\[\d+\]\.$/,_B=(e,t)=>((e+(t-1))/t|0)*t;function SB(e,t,n,r){if(t||n){r=r||1;const a=e.length/4;return function(o){let s=0,u=0;for(let l=0;l<a;++l){for(let c=0;c<r;++c)e[s++]=o[u++];s+=4-r}}}else return function(i){i.length?e.set(i):e[0]=i}}function CB(e,t,n,r){const i=n.blockSpecs,a=n.uniformData,o=i[r];if(!o)return EI("no uniform block object named:",r),{name:r,uniforms:{}};const s=new ArrayBuffer(o.size),u=e.createBuffer(),l=o.index;e.bindBuffer(m0,u),e.uniformBlockBinding(t,o.index,l);let c=r+".";Ry.test(c)&&(c=c.replace(Ry,"."));const f={},h={},d={};return o.uniformIndices.forEach(function(p){const m=a[p];let y=m.name;y.startsWith(c)&&(y=y.substr(c.length));const w=y.endsWith("[0]");w&&(y=y.substr(0,y.length-3));const A=le[m.type],S=A.Type,_=w?_B(A.size,16)*m.size:A.size*m.size,T=new S(s,m.offset,_/S.BYTES_PER_ELEMENT);f[y]=T;const I=SB(T,w,A.rows,A.cols);h[y]=I,Dy(y,I,d,h)}),{name:r,array:s,asFloat:new Float32Array(s),buffer:u,uniforms:f,setters:h}}function Fy(e,t,n){return CB(e,t.program,t.uniformBlockSpec,n)}function My(e,t,n){const i=(t.uniformBlockSpec||t).blockSpecs[n.name];if(i){const a=i.index;return e.bindBufferRange(m0,a,n.buffer,n.offset||0,n.array.byteLength),!0}return!1}function Py(e,t,n){My(e,t,n)&&e.bufferData(m0,n.array,_I)}function Xs(e,t){const n=e.setters;for(const r in t){const i=n[r];if(i){const a=t[r];i(a)}}}function Ly(e,t){for(const n in t){const r=e[n];typeof r=="function"?r(t[n]):Ly(e[n],t[n])}}function Wa(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)Wa(n,a[s])}else for(const o in a){const s=n[o];s&&s(a[o])}}}function kB(e,t){const n={},r=e.getProgramParameter(t,CI);for(let i=0;i<r;++i){const a=e.getActiveAttrib(t,i);if(By(a))continue;const o=e.getAttribLocation(t,a.name),s=nt[a.type],u=s.setter(e,o,s);u.location=o,n[a.name]=u}return n}function TB(e,t){for(const n in t){const r=e[n];r&&r(t[n])}}function $i(e,t,n){n.vertexArrayObject?e.bindVertexArray(n.vertexArrayObject):(TB(t.attribSetters||t,n.attribs),n.indices&&e.bindBuffer(SI,n.indices))}function IB(e,t){const n=xB(e,t),r=kB(e,t),i={program:t,uniformSetters:n,attribSetters:r};return za(e)&&(i.uniformBlockSpec=EB(e,t),i.transformFeedbackInfo=AB(e,t)),i}const BB=4,Oy=5123;function Zc(e,t,n,r,i,a){n=n===void 0?BB:n;const o=t.indices,s=t.elementType,u=r===void 0?t.numElements:r;i=i===void 0?0:i,s||o?a!==void 0?e.drawElementsInstanced(n,u,s===void 0?Oy:t.elementType,i,a):e.drawElements(n,u,s===void 0?Oy:t.elementType,i):a!==void 0?e.drawArraysInstanced(n,i,u,a):e.drawArrays(n,i,u)}const DB=36160,qi=36161,RB=3553,FB=5121,MB=6402,PB=6408,LB=33190,OB=36012,NB=35056,zB=36013,UB=32854,GB=32855,HB=36194,Ny=33189,zy=6401,Uy=36168,x0=34041,VB=36064,Yc=36096,Gy=36128,A0=33306,E0=33071,_0=9729,Hy=[{format:PB,type:FB,min:_0,wrap:E0},{format:x0}],Sn={};Sn[x0]=A0,Sn[zy]=Gy,Sn[Uy]=Gy,Sn[MB]=Yc,Sn[Ny]=Yc,Sn[LB]=Yc,Sn[OB]=Yc,Sn[NB]=A0,Sn[zB]=A0;function jB(e,t){return Sn[e]||Sn[t]}const Xr={};Xr[UB]=!0,Xr[GB]=!0,Xr[HB]=!0,Xr[x0]=!0,Xr[Ny]=!0,Xr[zy]=!0,Xr[Uy]=!0;function $B(e){return Xr[e]}function qB(e,t,n,r){const i=DB,a=e.createFramebuffer();e.bindFramebuffer(i,a),n=n||e.drawingBufferWidth,r=r||e.drawingBufferHeight,t=t||Hy;let o=0;const s={framebuffer:a,attachments:[],width:n,height:r};return t.forEach(function(u){let l=u.attachment;const c=u.samples,f=u.format;let h=u.attachmentPoint||jB(f,u.internalFormat);if(h||(h=VB+o++),!l)if(c!==void 0||$B(f))l=e.createRenderbuffer(),e.bindRenderbuffer(qi,l),c>1?e.renderbufferStorageMultisample(qi,c,f,n,r):e.renderbufferStorage(qi,f,n,r);else{const d=Object.assign({},u);d.width=n,d.height=r,d.auto===void 0&&(d.auto=!1,d.min=d.min||d.minMag||_0,d.mag=d.mag||d.minMag||_0,d.wrapS=d.wrapS||d.wrap||E0,d.wrapT=d.wrapT||d.wrap||E0),l=Qs(e,d)}if(F2(e,l))e.framebufferRenderbuffer(i,h,qi,l);else if(Ic(e,l))u.layer!==void 0?e.framebufferTextureLayer(i,h,l,u.level||0,u.layer):e.framebufferTexture2D(i,h,u.target||RB,l,u.level||0);else throw new Error("unknown attachment type");s.attachments.push(l)}),s}function WB(e,t,n,r,i){r=r||e.drawingBufferWidth,i=i||e.drawingBufferHeight,t.width=r,t.height=i,n=n||Hy,n.forEach(function(a,o){const s=t.attachments[o],u=a.format,l=a.samples;if(l!==void 0||F2(e,s))e.bindRenderbuffer(qi,s),l>1?e.renderbufferStorageMultisample(qi,l,u,r,i):e.renderbufferStorage(qi,u,r,i);else if(Ic(e,s))AI(e,s,a,r,i);else throw new Error("unknown attachment type")})}function ZB(e,t,n){const r=e.createVertexArray();return e.bindVertexArray(r),t.length||(t=[t]),t.forEach(function(i){$i(e,i,n)}),e.bindVertexArray(null),{numElements:n.numElements,elementType:n.elementType,vertexArrayObject:r}}const YB=/^(.*?)_/;function QB(e,t){a0(e,0);const n=e.getExtension(t);if(n){const r={},i=YB.exec(t)[1],a="_"+i;for(const o in n){const s=n[o],u=typeof s=="function",l=u?i:a;let c=o;o.endsWith(l)&&(c=o.substring(0,o.length-l.length)),e[c]!==void 0?!u&&e[c]!==s&&R2(c,e[c],s,o):u?e[c]=function(f){return function(){return f.apply(n,arguments)}}(s):(e[c]=s,r[c]=s)}r.constructor={name:n.constructor.name},a0(r,0)}return n}const Vy=["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 jy(e){for(let t=0;t<Vy.length;++t)QB(e,Vy[t])}function XB(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){jy(r);break}return r}function KB(e,t){return XB(e,t)}const JB=`out lowp vec4 vFillColor;out lowp vec4 vStrokeColor;out float vHalfStrokeWidth;out vec4 vCornerRadii;
|
|
165
225
|
#if defined(ROUNDED_CORNERS) || defined(STROKED)
|
|
166
226
|
out vec2 vPosInPixels;
|
|
167
227
|
#endif
|
|
@@ -169,7 +229,7 @@ out vec2 vHalfSizeInPixels;/***Clamps the minimumSize and returns an opacity tha
|
|
|
169
229
|
#if defined(ROUNDED_CORNERS) || defined(STROKED)
|
|
170
230
|
float aaPadding=1.0/uDevicePixelRatio;float strokeWidth=getScaled_strokeWidth();float strokeOpacity=getScaled_strokeOpacity()*opaFactor;vec2 centeredFrac=frac-0.5;vec2 expand=centeredFrac*(strokeWidth+aaPadding)/uViewportSize;pos+=expand;vec2 sizeInPixels=size*uViewportSize;vPosInPixels=(centeredFrac+expand/size)*sizeInPixels;vHalfSizeInPixels=sizeInPixels/2.0;vCornerRadii=min(cornerRadii,min(vHalfSizeInPixels.x,vHalfSizeInPixels.y));vHalfStrokeWidth=strokeWidth/2.0;vStrokeColor=vec4(getScaled_stroke()*strokeOpacity,strokeOpacity);
|
|
171
231
|
#endif
|
|
172
|
-
gl_Position=unitToNdc(pos);float fillOpacity=getScaled_fillOpacity()*opaFactor;vFillColor=vec4(getScaled_fill()*fillOpacity,fillOpacity);setupPicking();}`,
|
|
232
|
+
gl_Position=unitToNdc(pos);float fillOpacity=getScaled_fillOpacity()*opaFactor;vFillColor=vec4(getScaled_fill()*fillOpacity,fillOpacity);setupPicking();}`,eD=`#if defined(ROUNDED_CORNERS) || defined(STROKED)
|
|
173
233
|
in vec2 vPosInPixels;
|
|
174
234
|
#endif
|
|
175
235
|
in vec2 vHalfSizeInPixels;in lowp vec4 vFillColor;in lowp vec4 vStrokeColor;in float vHalfStrokeWidth;in vec4 vCornerRadii;out lowp vec4 fragColor;float sdRoundedBox(vec2 p,vec2 b,vec4 r){r.xy=p.x>0.0 ? r.xy : r.zw;r.x=p.y>0.0 ? r.x : r.y;vec2 q=abs(p)-b+r.x;return min(max(q.x,q.y),0.0)+length(max(q,0.0))-r.x;}float sdSharpBox(vec2 p,vec2 b){vec2 q=abs(p)-b;return max(q.x,q.y);}void main(void){
|
|
@@ -183,34 +243,42 @@ fragColor=distanceToColor(d,vFillColor,vStrokeColor,vHalfStrokeWidth);if(fragCol
|
|
|
183
243
|
#else
|
|
184
244
|
fragColor=vFillColor;
|
|
185
245
|
#endif
|
|
186
|
-
if(uPickingEnabled){fragColor=vPickingColor;}}`,
|
|
246
|
+
if(uPickingEnabled){fragColor=vPickingColor;}}`,tD=`layout(std140)uniform Mark{uniform float uMinWidth;uniform float uMinHeight;uniform float uMinOpacity;uniform float uCornerRadiusTopRight;uniform float uCornerRadiusBottomRight;uniform float uCornerRadiusTopLeft;uniform float uCornerRadiusBottomLeft;
|
|
247
|
+
#pragma markUniforms
|
|
248
|
+
};`,$y="attr_",nD="uDomain_",rD="range_",qy="scale_",S0="getScaled_",C0="uRangeTexture_",Wy=3402823466e29;function iD(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 aD(e,t){let n;if(kc(e))n=Wi(B2(e)(t));else if(Ue(t))if($r(e))n=lD(t);else throw new Error(`String values are not supported on the "${e}" channel: ${t}`);else if(Yo(t))n=Wi(t?1:0);else if(t===null)if($r(e))n=Wi([0,0,0]);else throw new Error(`null value is not supported on the "${e}" chanel.`);else n=Wi(t);return`
|
|
187
249
|
#define ${e}_DEFINED
|
|
188
|
-
${n.type} ${
|
|
250
|
+
${n.type} ${S0}${e}() {
|
|
189
251
|
// Constant value
|
|
190
252
|
return ${n};
|
|
191
|
-
}`}function
|
|
192
|
-
${
|
|
193
|
-
${
|
|
253
|
+
}`}function oD(e){let t="float",n=o=>o;$r(e)&&(t="vec3",n=o=>Qy(o));const r=`u${hD(e)}`,i=` // Dynamic value
|
|
254
|
+
uniform ${t} ${r};`;let a=`
|
|
255
|
+
#define ${e}_DEFINED
|
|
256
|
+
${t} ${S0}${e}() {
|
|
257
|
+
// Dynamic value
|
|
258
|
+
return ${r};
|
|
259
|
+
}`;return{channel:e,uniformName:r,uniformGlsl:i,scaleGlsl:a,adjuster:n}}function sD(e,t,n,r=[e]){if(rn(n))throw new Error(`Cannot create scale for "value": ${JSON.stringify(n)}`);const i=t?t.scale:_c(),a=Hi(e),o=$y+ew(r),s=nD+a,u=rD+a,l=Hn(i.type),c=Qc(i.type),h=c&&k0(i.domain())?"uvec2":c||l?"uint":"float",d=i.domain?i.domain().length:void 0;let p;const m=[];m.push(""),m.push("/".repeat(70)),m.push(`// Channel: ${e}`),m.push(""),m.push(`#define ${e}_DEFINED`);const{transform:y}=iD(i.type),w=(te,...ge)=>uD.apply(null,[te,"value",...ge]);let A;switch(y){case"linear":A=w("scaleLinear","domain",u);break;case"log":A=w("scaleLog","domain",u,i.base());break;case"symlog":A=w("scaleSymlog","domain",u,i.constant());break;case"pow":case"sqrt":A=w("scalePow","domain",u,i.exponent());break;case"index":case"locus":A=w("scaleBandHp","domain",u,i.paddingInner(),i.paddingOuter(),i.align(),n.band??.5);break;case"point":case"band":A=w("scaleBand","domain",u,i.paddingInner(),i.paddingOuter(),i.align(),n.band??.5);break;case"ordinal":case"null":case"identity":A=w("scaleIdentity");break;case"threshold":break;default:throw new Error(`Unsupported scale type: ${i.type}! ${e}: ${JSON.stringify(n)}`)}const S=tw(i,e);let _;if(S&&e==a){const te=i.props.range??[];if(It(te)||te.some(It)){if(S.length<1||S.length>4)throw new Error(`A range with ExprRefs must have 1-4 elements, not ${S.length}! Range: ${JSON.stringify(S)}`);_=` uniform ${Yy(S.length)} ${u};`}else if(S.length&&S.every(Tt)){const ge=Xy(S);m.push(`const ${ge.type} ${u} = ${ge};`)}}const T=$r(e)?"vec3":"float";let I;if($r(e)){const te=C0+a;if(e==a&&m.push(`uniform sampler2D ${te};`),yt(i.type))I=`getInterpolatedColor(${te}, transformed)`;else if(Hn(i.type)||Ui(i.type))I=`getDiscreteColor(${te}, int(transformed))`;else throw new Error("Problem with color scale!")}else if(i.type==="ordinal"||Ui(i.type)){const te=C0+a;e==a&&m.push(`uniform sampler2D ${te};`),I=`getDiscreteColor(${te}, int(transformed)).r`}const[B,R]=Hs(n)?[void 0,` uniform highp ${h} ${o};`]:[`in highp ${h} ${o};`,void 0],M=[],G=yt(i.type)&&d>2,N=Ui(i.type)||G;if(M.push("int slot = 0;"),N){const te=s;M.push(G?`while (slot < ${te}.length() - 2 && value >= ${te}[slot + 1]) { slot++; }`:`while (slot < ${te}.length() && value >= ${te}[slot]) { slot++; }`)}const re=yt(i.type)||Ui(i.type)||["band","point"].includes(i.type);if(A){const te=s;re&&(c?M.push(`vec3 domain = ${te};`):M.push(`vec2 domain = vec2(${te}[slot], ${te}[slot + 1]);`)),M.push(`float transformed = ${A};`),G&&M.push(`transformed = (float(slot) + transformed) / (float(${te}.length() - 1));`)}else M.push("float transformed = float(slot);");"clamp"in i&&i.clamp()&&M.push(`transformed = clampToRange(transformed, ${Xy(S)});`),M.push(`return ${I??"transformed"};`),m.push(`
|
|
260
|
+
${T} ${qy}${e}(${h} value) {
|
|
261
|
+
${M.map(te=>` ${te}
|
|
194
262
|
`).join("")}
|
|
195
|
-
}`),
|
|
196
|
-
${
|
|
197
|
-
return ${
|
|
198
|
-
}`);const
|
|
199
|
-
`);if(
|
|
263
|
+
}`),m.push(`
|
|
264
|
+
${T} ${S0}${e}() {
|
|
265
|
+
return ${qy}${e}(${o});
|
|
266
|
+
}`);const se=m.join(`
|
|
267
|
+
`);if(re&&e==a){const te=yt(i.type)||Ui(i.type)?d:2;p=c?` highp vec3 ${s};`:` mediump float ${s}[${te}];`}return{attributeName:o,attributeGlsl:B,markUniformGlsl:R,glsl:se,domainUniformName:s,domainUniform:p,rangeName:u,rangeUniform:_}}function Zy(e){if(!Tt(e))throw new Error(`Not a number: ${e}`);if(e==1/0)return""+Wy;if(e==-1/0)return""+-Wy;{let t=`${e}`;return/^(-)?\d+$/.test(t)&&(t+=".0"),t}}function Wi(e){typeof e=="number"&&(e=[e]);const t=e.length;if(t<1||t>4)throw new Error("Invalid number of components: "+t);const n=Yy(t),r=`${n}(${e.map(Zy).join(", ")})`;return Object.assign(r,{type:n,numComponents:t})}function Yy(e){switch(e){case 1:return"float";case 2:return"vec2";case 3:return"vec3";case 4:return"vec4";default:throw new Error("Invalid number of components: "+e)}}function Qy(e){const t=Gr(e).rgb();return[t.r,t.g,t.b].map(n=>n/255)}function lD(e){return Wi(Qy(e))}function Xy(e){return Wi([e[0],Es(e)])}function uD(e,...t){const n=[];for(const r of t)Tt(r)?n.push(Zy(r)):xt(r)?n.push(Wi(r)):n.push(r);return`${e}(${n.join(", ")})`}function Qc(e){return e=="index"||e=="locus"}function k0(e){return e[1]>2**32}const T0=2**12;function Ky(e,t=[]){const n=e%T0,r=(e-n)/T0;return t[0]=r,t[1]=n,t}function cD(e){const t=e%T0;return[e-t,t]}function fD(e){return[...cD(e[0]),e[1]-e[0]]}function Jy(e){const t=new Rr([],JSON.stringify);for(const[n,r]of Object.entries(e)){const i=r.channelDef;if(Gi(i)){const o=[i.field,r.scale?(yt(r.scale.type)||Ui(r.scale.type))??!1:!1];t.set(o,[...t.get(o)??[],n])}}return t}function ew(e){return Ot(e).join("_")}function hD(e){return e[0].toUpperCase()+e.slice(1)}const tw=(e,t)=>Ac(e.type)||yt(e.type)&&$r(t)?[0,1]:e.range?e.range():void 0,nw=1e4;class dD{constructor(t){K(this,lh);K(this,uh);K(this,eu,!1);this.size=t,this.arrays={},this.pushers=[],this.dataUpdaters=[],this.vertexCount=0}configure(){if(W(this,eu))throw new Error("Already configured!");J(this,lh,$_).call(this),J(this,uh,q_).call(this),Fe(this,eu,!0)}addConverter(t,n){const r=this.createUpdater($y+t,n.numComponents||1,n.targetArrayType??Float32Array,n.arrayReference),i=n.f;this.dataUpdaters.push(n.arrayReference?a=>r(i(a)):a=>r(i(a)))}createUpdater(t,n,r=Float32Array,i=void 0){if(!Tt(this.size))throw new Error("The number of vertices must be defined!");let a,o,s=0;const u=new r(this.size*n);if(this.arrays[t]={data:u,numComponents:n},n==1){let l=0;const c=f=>{l=+f};a=()=>{u[s++]=l},o=c}else{let l=i??[0];const c=i?f=>{}:f=>{l=f};switch(n){case 1:break;case 2:a=()=>{u[s++]=l[0],u[s++]=l[1]},o=c;break;case 3:a=()=>{u[s++]=l[0],u[s++]=l[1],u[s++]=l[2]},o=c;break;case 4:a=()=>{u[s++]=l[0],u[s++]=l[1],u[s++]=l[2],u[s++]=l[3]},o=c;break;default:throw new Error("Invalid numComponents: "+n)}}return this.pushers.push(a),o}pushAll(){throw new Error("Call configure() first!")}updateFromDatum(t){throw new Error("Call configure() first!")}pushFromDatum(t){this.updateFromDatum(t),this.pushAll()}}eu=new WeakMap,lh=new WeakSet,$_=function(){if(this.size>nw){const t=this.pushers.map((r,i)=>`const p${i} = that.pushers[${i}];`).join(`
|
|
200
268
|
`),n=this.pushers.map((r,i)=>` p${i}();`).join(`
|
|
201
269
|
`);this.pushAll=new Function("that",`${t}
|
|
202
270
|
return function unrolledPushAll() {
|
|
203
271
|
${n}
|
|
204
272
|
that.vertexCount++;
|
|
205
|
-
};`)(this)}else this.pushAll=()=>{for(let t=0;t<this.pushers.length;t++)this.pushers[t]();this.vertexCount++}},
|
|
273
|
+
};`)(this)}else this.pushAll=()=>{for(let t=0;t<this.pushers.length;t++)this.pushers[t]();this.vertexCount++}},uh=new WeakSet,q_=function(){if(this.size>nw){const t=this.dataUpdaters.map((r,i)=>`const u${i} = that.dataUpdaters[${i}];`).join(`
|
|
206
274
|
`),n=this.dataUpdaters.map((r,i)=>` u${i}(datum);`).join(`
|
|
207
275
|
`);this.updateFromDatum=new Function("that","datum",`${t}
|
|
208
276
|
return function unrolledUpdateFromDatum(datum) {
|
|
209
277
|
${n}
|
|
210
|
-
};`)(this)}else this.updateFromDatum=t=>{for(let n=0;n<this.dataUpdaters.length;n++)this.dataUpdaters[n](t)}};const
|
|
278
|
+
};`)(this)}else this.updateFromDatum=t=>{for(let n=0;n<this.dataUpdaters.length;n++)this.dataUpdaters[n](t)}};const Za=5,I0=127;function B0(e){const t=[];for(let p=0;p<=I0;p++)t.push(void 0);const n=new Map;for(const p of e.chars)p.id<=I0?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<=I0?t[p]:n.get(p))||t[63]}function a(p){return i(p.charCodeAt(0))}const o=e.common.base,s=a("x"),u=a("X"),l=a("q"),c=s.height-Za*2,f=u.height-Za*2,h=l.height-s.height+l.yoffset-s.yoffset;function d(p,m=1){let y=0;for(let w=0;w<p.length;w++)y+=i(p.charCodeAt(w)).xadvance;return y/o*m}return{measureWidth:d,getCharByCode:i,getChar:a,xHeight:c,capHeight:f,descent:h,common:e.common}}const rw=2**31-1,pD=-(2**31);function gD(e,t,n,r=n){const i=new Array(e);i.fill(rw);let a=pD,o=-1/0,s=!1;const u=new Array(e);u.fill(0);const l=t[0],f=(t[1]-t[0])/e,h=(w,A)=>{const S=(w-l)/f,_=Math.floor(S);return Ds(A&&_==S?_-1:_,0,e-1)};function d(w,A,S){if(s)return;if(A>a)a=A;else{s=!0,console.debug("Items are not ordered properly. Disabling binned index.");return}const _=n(w);if(_<o){s=!0,console.debug("Items are not ordered properly. Disabling binned index.");return}o=_;const T=h(_,!1);i[T]>A&&(i[T]=A),u[T]<S&&(u[T]=S)}function p(w,A,S){if(s)return;if(A>a)a=A;else{s=!0,console.debug("Items (vertices) are not ordered properly. Disabling binned index.");return}const _=n(w),T=r(w);if(_<o){s=!0,console.debug("Items are not ordered properly. Disabling binned index.");return}else if(T<_){s=!0,console.debug("End index is less than start index. Disabling binned index. Datum: ",w);return}o=_;const I=h(_,!1),B=h(T,!0);for(let R=I;R<=B;R++)i[R]>A&&(i[R]=A),u[R]<S&&(u[R]=S)}const m=(w,A,S=[0,0])=>{const _=h(w,!1),T=h(A,!0),I=i[_],B=Math.max(u[T],I);return S[0]=I,S[1]=B,S},y=()=>{if(s)return;for(let A=1;A<u.length;A++)u[A]<u[A-1]&&(u[A]=u[A-1]);let w=!0;for(let A=i.length-1;A>0;A--)w&&i[A]==rw?(i[A]=u[A],w=!1):i[A-1]>i[A]&&(i[A-1]=i[A]);return m};return d.getIndex=y,p.getIndex=y,n==r?d:p}class Ks{constructor({encoders:t,numVertices:n=void 0,attributes:r=[]}){this.encoders=t,this.variableEncoders=Object.fromEntries(Object.entries(t).filter(([a,o])=>r.includes(a)&&o&&o.scale&&!o.constant));const i=[...Jy(t).entries()].filter(([a,o])=>a[1]&&o.length>1).map(([a,o])=>o);this.allocatedVertices=n,this.variableBuilder=new dD(n);for(const[a,o]of Object.entries(this.variableEncoders)){const s=i.find(m=>m.find(y=>y==a));if(s&&a!=s[0])continue;const u=o.accessor,l=Qc(o.scale.type),c=l&&k0(o.scale.domain()),f=[0,0],h=o.indexer,d=h?m=>h(u(m)):c?m=>Ky(u(m),f):u,p=s?ew(s):a;this.variableBuilder.addConverter(p,{f:d,numComponents:c?2:1,arrayReference:c?f:void 0,targetArrayType:Hn(o.scale.type)?Uint16Array:l?Uint32Array:Float32Array})}this.lastOffset=0,this.rangeMap=new Rr([],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){var l;const i=()=>{this.addToXIndex=c=>{},this.xIndexer=void 0},a=(l=this.encoders.x)==null?void 0:l.channelDef;if(!("buildIndex"in a)||!a.buildIndex||!t.length||r-n<0){i();return}const o=c=>{var f;return c&&yt((f=c.scale)==null?void 0:f.type)&&c},s=o(this.variableEncoders.x),u=o(this.variableEncoders.x2);if(s){const c=s.accessor,f=u?u.accessor:c,h=[c(t[n]),f(t[r-1])];if(h[1]>h[0]){this.xIndexer=gD(50,h,c,f);let d=this.variableBuilder.vertexCount;this.addToXIndex=p=>{let m=this.variableBuilder.vertexCount;this.xIndexer(p,d,m),d=m}}else i()}else i()}addToXIndex(t){}toArrays(){return{arrays:this.variableBuilder.arrays,vertexCount:this.variableBuilder.vertexCount,allocatedVertices:this.allocatedVertices,rangeMap:this.rangeMap}}}class mD extends Ks{constructor({encoders:t,attributes:n,numItems:r}){super({encoders:t,attributes:n,numVertices:r*6}),this.variableBuilder.configure();const i=this.variableBuilder.pushAll;this.pushAllSixTimes=r>500?new Function("pushAll",`return function unrolledPushAllSixTimes() {
|
|
211
279
|
pushAll(); pushAll(); pushAll(); pushAll(); pushAll(); pushAll();
|
|
212
|
-
};`)(i):function(){i(),i(),i(),i(),i(),i()}}addBatch(t,n,r=0,i=n.length){if(!(i<=r)){this.prepareXIndexer(n,r,i);for(let a=r;a<i;a++){const o=n[a];this.variableBuilder.updateFromDatum(o),this.pushAllSixTimes(),this.addToXIndex(o)}this.registerBatch(t)}}}class
|
|
213
|
-
uniform View{mediump vec2 uViewOffset;mediump vec2 uViewScale;mediump vec2 uViewportSize;lowp float uDevicePixelRatio;lowp float uViewOpacity;bool uPickingEnabled;};/***Maps a coordinate on the unit scale to a normalized device coordinate.*(0,0)is at the bottom left corner.*/vec4 unitToNdc(vec2 coord){return vec4((coord*uViewScale+uViewOffset)*2.0-1.0,0.0,1.0);}vec4 unitToNdc(float x,float y){return unitToNdc(vec2(x,y));}vec4 pixelsToNdc(vec2 coord){return unitToNdc(coord/uViewportSize);}vec4 pixelsToNdc(float x,float y){return pixelsToNdc(vec2(x,y));}float linearstep(float edge0,float edge1,float x){return clamp((x-edge0)/(edge1-edge0),0.0,1.0);}/***Specialized linearstep for doing antialiasing*/float distanceToRatio(float d){return clamp(d*uDevicePixelRatio+0.5,0.0,1.0);}vec4 distanceToColor(float d,vec4 fill,vec4 stroke,float halfStrokeWidth){if(halfStrokeWidth>0.0){float sd=abs(d)-halfStrokeWidth;return mix(stroke,d<=0.0 ? fill : vec4(0.0),distanceToRatio(sd));}else{return fill*distanceToRatio(-d);}}`,
|
|
280
|
+
};`)(i):function(){i(),i(),i(),i(),i(),i()}}addBatch(t,n,r=0,i=n.length){if(!(i<=r)){this.prepareXIndexer(n,r,i);for(let a=r;a<i;a++){const o=n[a];this.variableBuilder.updateFromDatum(o),this.pushAllSixTimes(),this.addToXIndex(o)}this.registerBatch(t)}}}class bD extends Ks{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),this.variableBuilder.configure()}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 u=0;u<=s;u++)this.updatePos(u/s),this.updateSide(-.5),this.variableBuilder.pushAll(),this.updateSide(.5),this.variableBuilder.pushAll();this.variableBuilder.pushAll(),this.addToXIndex(o)}this.registerBatch(t)}}class yD extends Ks{constructor({encoders:t,attributes:n,numItems:r=void 0}){super({encoders:t,attributes:n,numVertices:r}),this.variableBuilder.configure()}}class wD extends Ks{constructor({encoders:t,attributes:n,numItems:r=void 0}){super({encoders:t,attributes:n,numVertices:r}),this.variableBuilder.configure()}toArrays(){const t=this.variableBuilder.arrays;for(let n of Object.values(t))n.divisor=1;return super.toArrays()}}class vD extends Ks{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=!rn(s)&&"format"in s&&s.format?mt(s.format):u=>u,this.updateVertexCoord=this.variableBuilder.createUpdater("vertexCoord",2),this.updateTextureCoord=this.variableBuilder.createUpdater("textureCoord",2),this.updateWidth=this.variableBuilder.createUpdater("width",1),this.variableBuilder.configure()}addBatch(t,n,r=0,i=n.length){const a=this.properties.align||"left",o=this.properties.logoLetters??!1,s=this.metadata.common.base,u=this.metadata.common.scaleH;let l=-Za;switch(this.properties.baseline){case"top":l+=this.metrics.capHeight;break;case"middle":l+=this.metrics.capHeight/2;break;case"bottom":l-=this.metrics.descent;break}const c=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],m=this.numberFormat(c(p)),y=Ue(m)?m:m===null?"":""+m;if(y.length==0)continue;this.variableBuilder.updateFromDatum(p);const w=o?y.length:this.metrics.measureWidth(y);this.updateWidth(w);let A=a=="right"?-w:a=="center"?-w/2:0;if(!o){const I=this.metrics.getCharByCode(y.charCodeAt(0));A-=(I.width-I.xadvance)/s/2}let S=-.5,_=1,T=1;for(let I=0;I<y.length;I++){const B=this.metrics.getCharByCode(y.charCodeAt(I)),R=o?1:B.xadvance/s;if(B.id==32){A+=R;continue}o?(T=(B.width+Za*2)/B.width,A=-T/2,_=(B.height+Za*2)/B.height,S=-.5-Za/B.height):(_=B.height/s,S=-(B.height+B.yoffset+l)/s,T=B.width/s);const M=B.x,G=B.y;f[0]=A,f[1]=S+_,h[0]=M/u,h[1]=G/u,this.variableBuilder.pushAll(),f[0]=A+T,f[1]=S+_,h[0]=(M+B.width)/u,h[1]=G/u,this.variableBuilder.pushAll(),f[0]=A,f[1]=S,h[0]=M/u,h[1]=(G+B.height)/u,this.variableBuilder.pushAll(),f[0]=A+T,f[1]=S+_,h[0]=(M+B.width)/u,h[1]=G/u,this.variableBuilder.pushAll(),f[0]=A,f[1]=S,h[0]=M/u,h[1]=(G+B.height)/u,this.variableBuilder.pushAll(),f[0]=A+T,f[1]=S,h[0]=(M+B.width)/u,h[1]=(G+B.height)/u,this.variableBuilder.pushAll(),A+=R}this.addToXIndex(p)}this.registerBatch(t)}}const iw=`#define PI 3.141593
|
|
281
|
+
uniform View{mediump vec2 uViewOffset;mediump vec2 uViewScale;mediump vec2 uViewportSize;lowp float uDevicePixelRatio;lowp float uViewOpacity;bool uPickingEnabled;};/***Maps a coordinate on the unit scale to a normalized device coordinate.*(0,0)is at the bottom left corner.*/vec4 unitToNdc(vec2 coord){return vec4((coord*uViewScale+uViewOffset)*2.0-1.0,0.0,1.0);}vec4 unitToNdc(float x,float y){return unitToNdc(vec2(x,y));}vec4 pixelsToNdc(vec2 coord){return unitToNdc(coord/uViewportSize);}vec4 pixelsToNdc(float x,float y){return pixelsToNdc(vec2(x,y));}float linearstep(float edge0,float edge1,float x){return clamp((x-edge0)/(edge1-edge0),0.0,1.0);}/***Specialized linearstep for doing antialiasing*/float distanceToRatio(float d){return clamp(d*uDevicePixelRatio+0.5,0.0,1.0);}vec4 distanceToColor(float d,vec4 fill,vec4 stroke,float halfStrokeWidth){if(halfStrokeWidth>0.0){float sd=abs(d)-halfStrokeWidth;return mix(stroke,d<=0.0 ? fill : vec4(0.0),distanceToRatio(sd));}else{return fill*distanceToRatio(-d);}}`,xD="uniform highp float uZero;vec3 getDiscreteColor(sampler2D s,int index){return texelFetch(s,ivec2(index % textureSize(s,0).x,0),0).rgb;}vec3 getInterpolatedColor(sampler2D s,float unitValue){return texture(s,vec2(unitValue,0.0)).rgb;}float clampToRange(float value,vec2 range){return clamp(value,min(range[0],range[1]),max(range[0],range[1]));}float scaleIdentity(float value){return value;}float scaleIdentity(uint value){return float(value);}float scaleLinear(float value,vec2 domain,vec2 range){float domainSpan=domain[1]-domain[0];float rangeSpan=range[1]-range[0];return(value-domain[0])/domainSpan*rangeSpan+range[0];}float scaleLog(float value,vec2 domain,vec2 range,float base){return scaleLinear(log(value)/log(base),log(domain)/log(base),range);}float symlog(float value,float constant){return sign(value)*log(abs(value/constant)+1.0);}float scaleSymlog(float value,vec2 domain,vec2 range,float constant){return scaleLinear(symlog(value,constant),vec2(symlog(domain[0],constant),symlog(domain[1],constant)),range);}float scalePow(float value,vec2 domain,vec2 range,float exponent){return scaleLinear(pow(abs(value),exponent)*sign(value),pow(abs(domain),vec2(exponent))*sign(domain),range);}float scaleBand(uint value,vec2 domainExtent,vec2 range,float paddingInner,float paddingOuter,float align,float band){float start=range[0];float stop=range[1];float rangeSpan=stop-start;float n=domainExtent[1]-domainExtent[0];paddingInner=int(n)>1 ? paddingInner : 0.0;float step=rangeSpan/max(1.0,n-paddingInner+paddingOuter*2.0);start+=(rangeSpan-step*(n-paddingInner))*align;float bandwidth=step*(1.0-paddingInner);return start+(float(value)-domainExtent[0])*step+bandwidth*band;}const int lowBits=12;const float lowDivisor=pow(2.0,float(lowBits));const uint lowMask=uint(lowDivisor-1.0);vec2 splitUint(uint value){uint valueLo=value&lowMask;uint valueHi=value-valueLo;return vec2(float(valueHi),float(valueLo));}/***High precision variant of scaleBand for index/locus scales*/float scaleBandHp(uint value,vec3 domainExtent,vec2 range,float paddingInner,float paddingOuter,float align,float band){float start=range[0];float stop=range[1];float rangeSpan=stop-start;vec2 domainStart=domainExtent.xy;float n=domainExtent[2];float step=rangeSpan/max(1.0,n-paddingInner+paddingOuter*2.0);start+=(rangeSpan-step*(n-paddingInner))*align;float bandwidth=step*(1.0-paddingInner);vec2 splitValue=splitUint(value);float inf=1.0/uZero;float hi=max(splitValue[0]-domainStart[0],-inf);float lo=max(splitValue[1]-domainStart[1],-inf);return dot(vec4(start,hi,lo,bandwidth),vec4(1.0,step,step,band));}/***High precision variant of scaleBand for index/locus scales for large*domains where 32bit uints are not sufficient to represent the domain.*/float scaleBandHp(uvec2 value,vec3 domainExtent,vec2 range,float paddingInner,float paddingOuter,float align,float band){float start=range[0];float stop=range[1];float rangeSpan=stop-start;vec2 domainStart=domainExtent.xy;float n=domainExtent[2];float step=rangeSpan/max(1.0,n-paddingInner+paddingOuter*2.0);start+=(rangeSpan-step*(n-paddingInner))*align;float bandwidth=step*(1.0-paddingInner);vec2 splitValue=vec2(float(value[0])*lowDivisor,float(value[1]));float inf=1.0/uZero;float hi=max(splitValue[0]-domainStart[0],-inf);float lo=max(splitValue[1]-domainStart[1],-inf);return dot(vec4(start,hi,lo,bandwidth),vec4(1.0,step,step,band));}",AD=`/***Describes where a sample facet should be shown. Interpolating between the*current and target positions/heights allows for transitioning between facet*configurations.*/struct SampleFacetPosition{float pos;float height;float targetPos;float targetHeight;};/***Trasition fraction[0,1]between the current and target configurations.*/uniform float uTransitionOffset;
|
|
214
282
|
#if !defined(SAMPLE_FACET_UNIFORM) && !defined(SAMPLE_FACET_TEXTURE)
|
|
215
283
|
SampleFacetPosition getSampleFacetPos(){return SampleFacetPosition(0.0,1.0,0.0,1.0);}
|
|
216
284
|
#elif defined(SAMPLE_FACET_UNIFORM)
|
|
@@ -218,37 +286,40 @@ SampleFacetPosition getSampleFacetPos(){return SampleFacetPosition(0.0,1.0,0.0,1
|
|
|
218
286
|
#elif defined(SAMPLE_FACET_TEXTURE)
|
|
219
287
|
uniform sampler2D uSampleFacetTexture;SampleFacetPosition getSampleFacetPos(){vec4 texel=texelFetch(uSampleFacetTexture,ivec2(int(attr_facetIndex),0),0);return SampleFacetPosition(1.0-texel.r-texel.g,texel.g,1.0-texel.r-texel.g,texel.g);}
|
|
220
288
|
#endif
|
|
221
|
-
bool isFacetedSamples(SampleFacetPosition facetPos){return facetPos!=SampleFacetPosition(0.0,1.0,0.0,1.0);}bool isFacetedSamples(){return isFacetedSamples(getSampleFacetPos());}bool isInTransit(){return uTransitionOffset>0.0;}float getTransitionFraction(float xPos){return smoothstep(0.0,0.7+uTransitionOffset,(xPos-uTransitionOffset)*2.0);}vec2 applySampleFacet(vec2 pos){SampleFacetPosition facetPos=getSampleFacetPos();if(!isFacetedSamples(facetPos)){return pos;}else if(isInTransit()){vec2 interpolated=mix(vec2(facetPos.pos,facetPos.height),vec2(facetPos.targetPos,facetPos.targetHeight),getTransitionFraction(pos.x));return vec2(pos.x,interpolated[0]+pos.y*interpolated[1]);}else{return vec2(pos.x,facetPos.pos+pos.y*facetPos.height);}}float getSampleFacetHeight(vec2 pos){SampleFacetPosition facetPos=getSampleFacetPos();if(!isFacetedSamples(facetPos)){return 1.0;}else if(isInTransit()){return mix(facetPos.height,facetPos.targetHeight,getTransitionFraction(pos.x));}else{return facetPos.height;}}`,
|
|
289
|
+
bool isFacetedSamples(SampleFacetPosition facetPos){return facetPos!=SampleFacetPosition(0.0,1.0,0.0,1.0);}bool isFacetedSamples(){return isFacetedSamples(getSampleFacetPos());}bool isInTransit(){return uTransitionOffset>0.0;}float getTransitionFraction(float xPos){return smoothstep(0.0,0.7+uTransitionOffset,(xPos-uTransitionOffset)*2.0);}vec2 applySampleFacet(vec2 pos){SampleFacetPosition facetPos=getSampleFacetPos();if(!isFacetedSamples(facetPos)){return pos;}else if(isInTransit()){vec2 interpolated=mix(vec2(facetPos.pos,facetPos.height),vec2(facetPos.targetPos,facetPos.targetHeight),getTransitionFraction(pos.x));return vec2(pos.x,interpolated[0]+pos.y*interpolated[1]);}else{return vec2(pos.x,facetPos.pos+pos.y*facetPos.height);}}float getSampleFacetHeight(vec2 pos){SampleFacetPosition facetPos=getSampleFacetPos();if(!isFacetedSamples(facetPos)){return 1.0;}else if(isInTransit()){return mix(facetPos.height,facetPos.targetHeight,getTransitionFraction(pos.x));}else{return facetPos.height;}}`,ED=`/**Based on concepts presented at:*https:*https:*/out highp vec4 vPickingColor;/***Passes the unique id to the fragment shader as a color if picking is enabled.*Returns true if picking is enabled.*/bool setupPicking(){if(uPickingEnabled){
|
|
222
290
|
#ifdef uniqueId_DEFINED
|
|
223
291
|
int id=int(getScaled_uniqueId());vPickingColor=vec4(ivec4(id>>0,id>>8,id>>16,0xFF)&0xFF)/float(0xFF);
|
|
224
292
|
#else
|
|
225
293
|
vPickingColor=vec4(1.0);
|
|
226
294
|
#endif
|
|
227
|
-
return true;}return false;}`,
|
|
295
|
+
return true;}return false;}`,_D="in highp vec4 vPickingColor;",Xc=Symbol("cacheMap");function Kc(e,t,n){let r=Js(e).get(t);return r===void 0&&(r=n(t),Js(e).set(t,r)),r}function SD(e,t){Js(e).delete(t)}function Jc(e,t){const n=Js(e);for(const r of n.keys())r.startsWith(t)&&n.delete(r);Js(e).delete(t)}function aw(e){e[Xc]=new Map}function Js(e){return e[Xc]||aw(e),e[Xc]}function CD(e,t,n,r){const i=Ue(e)?e:e.name,a=!Ue(e)&&e.extent||[0,1];if(n===void 0&&!Ue(e)&&(n=e.count),i){const o=Wd(i);if(Pt(o)){const s=ow(o,{extent:a,count:n});return ef(t,{minMag:t.LINEAR,format:t.RGB,height:1,wrap:t.CLAMP_TO_EDGE},s,r)}else{if(xt(o))return D0(o,t);throw new Error("Unknown scheme: "+i)}}}function kD(e,t="rgb",n,r){const i=Ec(e,Ue(t)?t:t.type,Ue(t)?void 0:t.gamma),a=ow(i);return ef(n,{minMag:n.LINEAR,format:n.RGB,height:1,wrap:n.CLAMP_TO_EDGE},a,r)}function TD(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 ef(t,{minMag:t.NEAREST,format:t.RED,internalFormat:t.R32F,height:1},a,r)}function D0(e,t,n,r){const i=sw(e,n);return ef(t,{minMag:t.NEAREST,format:t.RGB,height:1},i,r)}function ow(e,{extent:t=[0,1],reverse:n=!1,count:r=256}={}){const i=t[0],a=Es(t)-i,o=Ko(r).map(s=>s/(r-1)).map(s=>i+s/a).map(e);return n&&o.reverse(),sw(o)}function sw(e,t){const n=Math.max(e.length,t||0),r=new Uint8Array(n*3);for(let i=0;i<n;i++){const a=Gr(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 ID{constructor(t,n,r){this._container=t,this._sizeSource=n??(()=>({width:void 0,height:void 0})),this._shaderCache=new Map,this.rangeTextures=new WeakMap;const i=document.createElement("canvas");t.appendChild(i);const a=KB(i,{antialias:!0,depth:!1,premultipliedAlpha:!0});if(!a)throw new Error("Unable to initialize WebGL. Your browser or machine may not support it.");if(!za(a))throw new Error("Your web browser does not support WebGL 2.0. Chrome, Firefox, and Safari Tech Preview should work.");if(jy(a),a.blendFunc(a.ONE,a.ONE_MINUS_SRC_ALPHA),this.canvas=i,this.gl=a,this._pickingAttachmentOptions=[{format:a.RGBA,type:a.UNSIGNED_BYTE,minMag:a.LINEAR,wrap:a.CLAMP_TO_EDGE}],this._pickingBufferInfo=qB(a,this._pickingAttachmentOptions),a.bindFramebuffer(a.FRAMEBUFFER,null),this.adjustGl(),this._updateDpr(),this._clearColor=[0,0,0,0],r){const o=Gr(r).rgb();this._clearColor=[o.r/255,o.g/255,o.b/255,o.opacity]}}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;";xt(n)&&(n=n.join(`
|
|
228
296
|
|
|
229
297
|
`));const a=this.gl,o=n.replaceAll(/ {2,}|^\s*\/\/.*$/gm,"");let s=this._shaderCache.get(o);if(!s){const u=[r,i,n].join(`
|
|
230
298
|
|
|
231
|
-
`);s=a.createShader(t),a.shaderSource(s,u),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,
|
|
299
|
+
`);s=a.createShader(t),a.shaderSource(s,u),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,WB(this.gl,this._pickingBufferInfo,this._pickingAttachmentOptions)}finalize(){this.canvas.remove()}getPhysicalCanvasSize(t){return t=t||this.getLogicalCanvasSize(),{width:t.width*this.dpr,height:t.height*this.dpr}}getLogicalCanvasSize(){if(this._logicalCanvasSize)return this._logicalCanvasSize;const t=this._sizeSource(),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}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(...this._clearColor),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 Hn(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($r(a)){const o=t.scale,s=o.props,u=o.range();let l;if(s.scheme)if(o.type=="threshold"&&u)l=D0(u,this.gl,o.domain().length,r);else{let c=Ue(s.scheme)?void 0:s.scheme.count;c=i(c,o),l=CD(s.scheme,this.gl,c,r)}else Ac(o.type)||yt(o.type)&&u.length>1?l=kD(u,s.interpolate,this.gl,r):l=D0(u,this.gl,o.domain().length,r);this.rangeTextures.set(t,l)}else{const o=t.scale;if(o.type==="ordinal"||Ui(o.type)){const s=kc(a)?B2(a):l=>l,u=o.range();this.rangeTextures.set(t,TD(u.map(s),this.gl,o.domain().length,r))}}}}function BD(e,t="",n=0){const r=/ERROR:\s*\d+:(\d+)/gi,i=[...t.matchAll(r)],a=new Map(i.map((o,s)=>{const u=parseInt(o[1]),l=i[s+1],c=l?l.index:t.length,f=t.substring(o.index,c);return[u-1,f]}));return e.split(`
|
|
232
300
|
`).map((o,s)=>{const u=a.get(s);return`${s+1+n}: ${o}${u?`
|
|
233
301
|
|
|
234
302
|
^^^ ${u}`:""}`}).join(`
|
|
235
|
-
`)}function
|
|
236
|
-
Error compiling: ${a}`,e.deleteShader(u));e.deleteProgram(r)}if(a)return{message:a,detail:o}}return{program:r,getProgramErrors:i}}function
|
|
237
|
-
|
|
238
|
-
`).
|
|
239
|
-
|
|
240
|
-
`:"",h=[`precision highp float;
|
|
241
|
-
`,a,...r,Ay,bB,f,[...s].join(`
|
|
242
|
-
`),...o,yB,wB,t],d=[a,...r,Ay,vB,n],p=this.gl;this.programStatus=CB(p,this.glHelper.compileShader(p.VERTEX_SHADER,h),this.glHelper.compileShader(p.FRAGMENT_SHADER,d))}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=CI(this.gl,this.programStatus.program),delete this.programStatus,this.domainUniforms.length&&(this.domainUniformInfo=Yd(this.gl,this.programInfo,"Domains")),this.viewUniformInfo=Yd(this.gl,this.programInfo,"View"),this.markUniformInfo=Yd(this.gl,this.programInfo,"Mark"),this.gl.useProgram(this.programInfo.program),this._setDatums(),Gi(this.programInfo,{uSampleFacet:[0,1,0,1],uTransitionOffset:0,uZero:0})}registerMarkUniform(t,n,r=i=>i){const i=this.markUniformInfo.setters[t];if(Ty(n)){const a=this.unitView.context.paramBroker.createExpression(n.expr),o=()=>{i(r(a(null))),this.markUniformsAltered=!0};a.addListener(o),o()}else i(r(n)),this.markUniformsAltered=!0}_setDatums(){for(const[t,n]of Object.entries(this.encoding))if(Fs(n)){const r=this.encoders[t],i=r.indexer?r.indexer(n.datum):Cf(r.scale.type)?aB(+n.datum):+n.datum;Gi(this.programInfo,{[e0+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&&z5(this.gl,this.bufferInfo.attribs[n],r.data,0);else this.deleteGraphicsData(),this.bufferInfo=H5(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.getLayoutAncestors())if(!t.isPickingSupported())return!1;return!0}bindOrSetMarkUniformBlock(){this.markUniformsAltered?(Qd(this.gl,this.programInfo,this.markUniformInfo),this.markUniformsAltered=!1):ny(this.gl,this.programInfo,this.markUniformInfo)}prepareRender(t){const n=this.glHelper,r=this.gl,i=[];if(i.push(()=>{this.vertexArrayInfo||(this.vertexArrayInfo=qI(this.gl,this.programInfo,this.bufferInfo)),r.useProgram(this.programInfo.program)}),this.domainUniformInfo){for(const[o,s]of Object.entries(this.domainUniformInfo.setters)){const u=o.substring(hy.length),l=this.encoding[u],f=Ut(l)&&l.resolutionChannel||u;if(Oi(f)){const c=this.unitView.getScaleResolution(f).getScale();i.push(()=>{const h=Nn(c.type)?[0,c.domain().length]:c.domain();s(Cf(c.type)?lB(h):h)})}}i.push(()=>Qd(r,this.programInfo,this.domainUniformInfo))}for(const[o,s]of Object.entries(this.encoding))if(Ut(s)){const u=Ut(s)&&s.resolutionChannel||o;if(Oi(u)){const l=this.unitView.getScaleResolution(u),f=n.rangeTextures.get(l);f&&i.push(()=>Gi(this.programInfo,{[t0+o]:f}))}}this.getSampleFacetMode()==ky&&i.push(()=>{let o;for(const s of this.unitView.getLayoutAncestors())if(o=s.getSampleFacetTexture(),o)break;if(!o)throw new Error("No facet texture available. This is bug.");Gi(this.programInfo,{uSampleFacetTexture:o})});const a=(t.picking??!1)&&this.isPickingParticipant();return i.push(()=>Va(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 c;if(!this.bufferInfo)throw new qi(`${this.getType()} mark has no data. This is bug.`,this.unitView);const r=this;let i;const a=(c=this.unitView.getScaleResolution("x"))==null?void 0:c.getScale(),o=a&&bt(a.type),s=["index","locus"].includes(a==null?void 0:a.type)?-1:0,u=[0,0];i=h=>{if(o&&h.xIndex){const d=a.domain(),p=h.xIndex(d[0]+s,d[1],u),b=p[0],y=p[1]-b;y>0&&t(b,y)}else t(h.offset,h.count)};const l=this.rangeMap.get(void 0).count==0?n.facetId:void 0,f=this.rangeMap.get(l);return n.sampleFacetRenderingOptions?function(){f.count&&r.prepareSampleFacetRendering(n)&&i(f)}:function(){f.count&&i(f)}}setViewport(t,n){t=t.flatten();const r=this.unitView.context.devicePixelRatio,i=this.gl,a=this.properties,o=this.glHelper.getLogicalCanvasSize(),s=.5,u=(a.xOffset??0)+s,l=(a.yOffset??0)+s;let f,c=t;if(a.clip!=="never"&&(a.clip||n)){let h=0,d=0,p;if(n){if(c=t.intersect(n).flatten(),!c.isDefined())return!1;p=[t.width/c.width,t.height/c.height],d=Math.max(0,t.y2-n.y2),h=Math.min(0,t.x-n.x)}else p=[1,1];const b=[c.x,o.height-c.y2,c.width,c.height].map(S=>S*r),y=b.map(S=>Math.round(S)),[w,A]=b.map((S,_)=>S-y[_]);i.viewport(...y),i.scissor(...y),i.enable(i.SCISSOR_TEST),f={uViewOffset:[(u+h+w/r)/c.width,-(l+d-A/r)/c.height],uViewScale:p}}else{if(!t.isDefined())return!1;i.viewport(0,0,o.width*r,o.height*r),i.disable(i.SCISSOR_TEST),f={uViewOffset:[(t.x+u)/o.width,(o.height-t.y-l-t.height)/o.height],uViewScale:[t.width/o.width,t.height/o.height]}}return Va(this.viewUniformInfo,{...f,uViewportSize:[t.width,t.height],uDevicePixelRatio:r}),Qd(this.gl,this.programInfo,this.viewUniformInfo),!0}findDatumAt(t,n){}}class BB extends _r{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 Ty(e){return typeof e=="object"&&"expr"in e&&Pe(e.expr)}function o0(e,t){const n=a5(t);let r=e[t]&&{...e[t]},i=e[n]&&{...e[n]};if(!(vn(r)||vn(i))){if(r){if(!Ut(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 Iy(e,t){e.stroke||(t?e.stroke={value:null}:e.stroke={resolutionChannel:"color",...e.color}),vn(e.stroke)&&e.stroke.value===null&&(e.strokeWidth={value:0}),e.strokeOpacity||(e.strokeOpacity={resolutionChannel:"opacity",...e.opacity})}function By(e,t){vn(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 DB extends Vs{constructor(n){super(n);ne(this,Hl);ne(this,Vl);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 qa(this,"opaque",()=>!ee(this,Hl,zg).call(this)&&!ee(this,Vl,Ug).call(this)&&vn(this.encoding.fillOpacity)&&this.encoding.fillOpacity.value==1&&this.properties.minOpacity==1)&&this.unitView.getEffectiveOpacity()==1}fixEncoding(n){return o0(n,"x"),o0(n,"y"),Iy(n,this.properties.filled),By(n,this.properties.filled),delete n.color,delete n.opacity,n}onBeforeSampleAnimation(){}onAfterSampleAnimation(){}async initializeGraphics(){await super.initializeGraphics();const n=[];ee(this,Hl,zg).call(this)&&n.push("ROUNDED_CORNERS"),ee(this,Vl,Ug).call(this)&&n.push("STROKED"),this.createAndLinkShaders($I,XI,n.map(r=>"#define "+r))}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const n=this.properties;this.registerMarkUniform("uMinWidth",n.minWidth),this.registerMarkUniform("uMinHeight",n.minHeight),this.registerMarkUniform("uMinOpacity",n.minOpacity),this.registerMarkUniform("uCornerRadiusTopRight",n.cornerRadiusTopRight??n.cornerRadius??0),this.registerMarkUniform("uCornerRadiusBottomRight",n.cornerRadiusBottomRight??n.cornerRadius??0),this.registerMarkUniform("uCornerRadiusTopLeft",n.cornerRadiusTopLeft??n.cornerRadius??0),this.registerMarkUniform("uCornerRadiusBottomLeft",n.cornerRadiusBottomLeft??n.cornerRadius??0)}updateGraphicsData(){const n=this.unitView.getCollector(),r=n.getItemCount(),i=new hB({encoders:this.encoders,attributes:this.getAttributes(),numItems:r});i.addBatches(n.facetBatches);const a=i.toArrays();this.rangeMap.migrateEntries(a.rangeMap),this.updateBufferInfo(a)}prepareRender(n){const r=super.prepareRender(n);return r.push(()=>this.bindOrSetMarkUniformBlock()),r.push(()=>Hi(this.gl,this.programInfo,this.vertexArrayInfo)),r}render(n){const r=this.gl;return this.createRenderCallback((i,a)=>{_f(r,this.vertexArrayInfo,r.TRIANGLE_STRIP,a,i)},n)}findDatumAt(n,r){n=Lt(n);const i=this.unitView.getCollector().facetBatches.get(n);if(!i)return;const a=this.encoders,o=a.x.scale.type;if(Nn(o)){const s=a.x.accessor;return i.find(u=>r==s(u))}else{const s=a.x.accessor,u=a.x2.accessor;return i.find(l=>r>=s(l)&&r<u(l))}}}Hl=new WeakSet,zg=function(){const n=this.properties;return n.cornerRadius||n.cornerRadiusBottomLeft||n.cornerRadiusBottomRight||n.cornerRadiusTopLeft||n.cornerRadiusTopRight},Vl=new WeakSet,Ug=function(){const n=this.encoding.strokeWidth;return!(vn(n)&&!n.value)};const FB=`out float vRadius;out float vRadiusWithPadding;out lowp vec4 vFillColor;out lowp vec4 vStrokeColor;out lowp float vShape;out lowp float vHalfStrokeWidth;out mat2 vRotationMatrix;const float CIRCLE=0.0;const float SQUARE=1.0;const float CROSS=2.0;const float DIAMOND=3.0;const float TRIANGLE_UP=4.0;const float TRIANGLE_RIGHT=5.0;const float TRIANGLE_DOWN=6.0;const float TRIANGLE_LEFT=7.0;const float TICK_UP=8.0;const float TICK_RIGHT=9.0;const float TICK_DOWN=10.0;const float TICK_LEFT=11.0;float computeSemanticThresholdFactor(){return getScaled_semanticScore()>=uSemanticThreshold ? 1.0 : 0.0;}/***Computes a scaling factor for the points in a sample-faceted view.*/float getDownscaleFactor(vec2 pos){if(!isFacetedSamples()){return 1.0;}float sampleFacetHeight=getSampleFacetHeight(pos);float maxPointDiameter=sqrt(uMaxPointSize);float factor=sampleFacetHeight*uViewportSize.y*uMaxRelativePointDiameter;return clamp(0.0,maxPointDiameter,factor)/maxPointDiameter;}vec2 getDxDy(){
|
|
303
|
+
`)}function DD(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 u of[t,n])e.getShaderParameter(u,e.COMPILE_STATUS)||(a=e.getShaderInfoLog(u),o=BD(e.getShaderSource(u),a,0)+`
|
|
304
|
+
Error compiling: ${a}`,e.deleteShader(u));e.deleteProgram(r)}if(a)return{message:a,detail:o}}return{program:r,getProgramErrors:i}}function ef(e,t,n,r){return r?oy(e,r,n,t):r=Qs(e,{...t,src:n}),r}function lw(...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 RD(e){return Ue(e)||Tt(e)||Yo(e)}class Zi extends Error{constructor(t,n){super(t),this.name="ViewError",this.view=n}}const FD="SAMPLE_FACET_UNIFORM",uw="SAMPLE_FACET_TEXTURE";class el{constructor(t){K(this,xr,[]);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.markUniformInfo=void 0,this.markUniformsAltered=!0,this.rangeMap=new MD,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=lw(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}setupExprRefsNeedingGraphicsUpdate(t){const n=this.getSupportedChannels(),r={};for(const a of t){const o=this.properties[a];if(o&&It(o)){const s=this.unitView.paramMediator.createExpression(o.expr);s.addListener(()=>{this.updateGraphicsData(),this.unitView.context.animator.requestRender()}),n.includes(a)||Object.defineProperty(r,a,{get(){return s()}})}}const i=this.properties;this.properties=lw(()=>r,()=>i)}get encoding(){return Kc(this,"encoding",()=>{var o;const t=this.getDefaultEncoding(),n=this.unitView.getEncoding(),r=s=>{const u=this.properties[s];return RD(u)||It(u)?{value:u}:void 0},i=Object.fromEntries(this.getSupportedChannels().map(s=>[s,r(s)]).filter(s=>rn(s[1]))),a=this.fixEncoding({...t,...i,...n});for(const s of Object.keys(a))this.getSupportedChannels().includes(s)||delete a[s];return a.x&&((o=a.x).buildIndex??(o.buildIndex=!0)),a})}getContext(){return this.unitView.context}getType(){return this.unitView.getMarkType()}initializeData(){}initializeEncoders(){this.encoders=ik(this)}async initializeGraphics(){}updateGraphicsData(){}getSampleFacetMode(){if(this.encoders.facetIndex)return uw;if(this.unitView.getLayoutAncestors().find(t=>"samples"in t.spec))return FD}createAndLinkShaders(t,n,r=[]){const i=this.getAttributes(),a="// view: "+this.unitView.getPathString();let o=[];const s=new Set,u=Jy(this.encoders),l=this.getSampleFacetMode();l&&r.push(`#define ${l}`);const c=[];for(const y of i){let w;if(y in this.encoding)w=y;else continue;const A=this.encoding[w];if(A)if(rn(A))if(It(A.value)){const{uniformName:S,uniformGlsl:_,scaleGlsl:T,adjuster:I}=oD(w);o.push(T),c.push(_),W(this,xr).push(()=>{this.registerMarkUniformValue(S,A.value,I)})}else o.push(aD(w,A.value));else{const S=Zt(A)&&A.resolutionChannel||w,_=Na(S)?this.unitView.getScaleResolution(S):null,T=Gi(A)?u.get([A.field,!0]):[w],I=sD(w,_,A,T!=null&&T.includes(w)?T:[w]);if(o.push(I.glsl),c.push(I.domainUniform),c.push(I.rangeUniform),s.add(I.attributeGlsl),I.rangeUniform&&W(this,xr).push(()=>{const B=this.createMarkUniformSetter(I.rangeName),R=()=>B(tw(_.scale,w));_.addEventListener("range",R),R()}),I.markUniformGlsl){if(!Hs(A))throw new Error("Bug!");const B=this.encoders[w],R=B.indexer,G=Qc(B.scale.type)&&k0(B.scale.domain()),N=R||(G?Ky:re=>+re);c.push(I.markUniformGlsl),W(this,xr).push(()=>{this.registerMarkUniformValue(I.attributeName,A.datum,N)})}I.domainUniform&&W(this,xr).push(()=>{const B=this.createMarkUniformSetter(I.domainUniformName),R=_.scale,M=()=>{const G=Hn(R.type)?[0,R.domain().length]:R.domain();B(Qc(R.type)?fD(G):G)};_.addEventListener("domain",M),M()})}}const f=`precision highp float;
|
|
305
|
+
precision highp int;`,h=y=>y.replace("#pragma markUniforms",c.join(`
|
|
306
|
+
`));r=r.map(h),t=h(t),n=h(n);const d=[f,a,...r,iw,xD,[...s].join(`
|
|
307
|
+
`),...o,AD,ED,t],p=[f,a,...r,iw,_D,n],m=this.gl;this.programStatus=DD(m,this.glHelper.compileShader(m.VERTEX_SHADER,d),this.glHelper.compileShader(m.FRAGMENT_SHADER,p))}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=IB(this.gl,this.programStatus.program),delete this.programStatus,this.viewUniformInfo=Fy(this.gl,this.programInfo,"View"),this.markUniformInfo=Fy(this.gl,this.programInfo,"Mark"),this.gl.useProgram(this.programInfo.program),Wa(this.programInfo,{uSampleFacet:[0,1,0,1],uTransitionOffset:0,uZero:0});for(const n of W(this,xr))n();Fe(this,xr,void 0)}createMarkUniformSetter(t){const n=this.markUniformInfo.setters[t];if(!n)throw new Error(`Uniform "${t}" not found int the Mark block!`);return r=>{n(r),this.markUniformsAltered=!0,this.unitView.context.animator.requestRender()}}registerMarkUniformValue(t,n,r=i=>i){const i=this.createMarkUniformSetter(t),a=o=>{if(o==null)throw new Error(`Trying to set null/undefined value for uniform: ${t}${It(n)?`Expr: ${n.expr}`:""}`);i(o)};if(It(n)){const o=this.unitView.paramMediator.createExpression(n.expr),s=()=>a(r(o(null)));o.addListener(s),s()}else a(r(n))}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&&Hk(this.gl,this.bufferInfo.attribs[n],r.data,0);else this.deleteGraphicsData(),this.bufferInfo=$k(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.getLayoutAncestors())if(!t.isPickingSupported())return!1;return!0}bindOrSetMarkUniformBlock(){this.markUniformsAltered?(Py(this.gl,this.programInfo,this.markUniformInfo),this.markUniformsAltered=!1):My(this.gl,this.programInfo,this.markUniformInfo)}prepareRender(t){const n=this.glHelper,r=this.gl,i=[];i.push(()=>{this.vertexArrayInfo||(this.vertexArrayInfo=ZB(this.gl,this.programInfo,this.bufferInfo)),r.useProgram(this.programInfo.program)});for(const[o,s]of Object.entries(this.encoding))if(Zt(s)){const u=Zt(s)&&s.resolutionChannel||o;if(Na(u)){const l=this.unitView.getScaleResolution(u),c=n.rangeTextures.get(l);c&&i.push(()=>Wa(this.programInfo,{[C0+o]:c}))}}this.getSampleFacetMode()==uw&&i.push(()=>{let o;for(const s of this.unitView.getLayoutAncestors())if(o=s.getSampleFacetTexture(),o)break;if(!o)throw new Error("No facet texture available. This is bug.");Wa(this.programInfo,{uSampleFacetTexture:o})});const a=(t.picking??!1)&&this.isPickingParticipant();return i.push(()=>Xs(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;if(!this.bufferInfo)throw new Zi(`${this.getType()} mark has no data. This is bug.`,this.unitView);const r=this;let i;const a=(f=this.unitView.getScaleResolution("x"))==null?void 0:f.scale,o=a&&yt(a.type),s=["index","locus"].includes(a==null?void 0:a.type)?-1:0,u=[0,0];i=h=>{if(o&&h.xIndex){const d=a.domain(),p=h.xIndex(d[0]+s,d[1],u),m=p[0],y=p[1]-m;y>0&&t(m,y)}else t(h.offset,h.count)};const l=this.rangeMap.get(void 0).count==0?n.facetId:void 0,c=this.rangeMap.get(l);return n.sampleFacetRenderingOptions?function(){c.count&&r.prepareSampleFacetRendering(n)&&i(c)}:function(){c.count&&i(c)}}setViewport(t,n){t=t.flatten();const r=this.unitView.context.devicePixelRatio,i=this.gl,a=this.properties,o=this.glHelper.getLogicalCanvasSize(),s=.5,u=(a.xOffset??0)+s,l=(a.yOffset??0)+s;let c,f=t;if(a.clip!=="never"&&(a.clip||n)){let h=0,d=0,p;if(n){if(f=t.intersect(n).flatten(),!f.isDefined())return!1;p=[t.width/f.width,t.height/f.height],d=Math.max(0,t.y2-n.y2),h=Math.min(0,t.x-n.x)}else p=[1,1];const m=[f.x,o.height-f.y2,f.width,f.height].map(S=>S*r),y=m.map(S=>Math.round(S)),[w,A]=m.map((S,_)=>S-y[_]);i.viewport(...y),i.scissor(...y),i.enable(i.SCISSOR_TEST),c={uViewOffset:[(u+h+w/r)/f.width,-(l+d-A/r)/f.height],uViewScale:p}}else{if(!t.isDefined())return!1;i.viewport(0,0,o.width*r,o.height*r),i.disable(i.SCISSOR_TEST),c={uViewOffset:[(t.x+u)/o.width,(o.height-t.y-l-t.height)/o.height],uViewScale:[t.width/o.width,t.height/o.height]}}return Xs(this.viewUniformInfo,{...c,uViewportSize:[t.width,t.height],uDevicePixelRatio:r}),Py(this.gl,this.programInfo,this.viewUniformInfo),!0}findDatumAt(t,n){}}xr=new WeakMap;class MD extends Rr{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 R0(e,t){const n=lk(t);let r=e[t]&&{...e[t]},i=e[n]&&{...e[n]};if(!(rn(r)||rn(i))){if(r){if(!Zt(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 cw(e,t){e.stroke||(t?e.stroke={value:null}:e.stroke={resolutionChannel:"color",...e.color}),rn(e.stroke)&&e.stroke.value===null&&(e.strokeWidth={value:0}),e.strokeOpacity||(e.strokeOpacity={resolutionChannel:"opacity",...e.opacity})}function fw(e,t){rn(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 PD extends el{constructor(n){super(n);K(this,tu);K(this,nu);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 Kc(this,"opaque",()=>!J(this,tu,fm).call(this)&&!J(this,nu,hm).call(this)&&rn(this.encoding.fillOpacity)&&this.encoding.fillOpacity.value==1&&this.properties.minOpacity==1)&&this.unitView.getEffectiveOpacity()==1}fixEncoding(n){return R0(n,"x"),R0(n,"y"),cw(n,this.properties.filled),fw(n,this.properties.filled),delete n.color,delete n.opacity,n}onBeforeSampleAnimation(){}onAfterSampleAnimation(){}async initializeGraphics(){await super.initializeGraphics();const n=[];J(this,tu,fm).call(this)&&n.push("ROUNDED_CORNERS"),J(this,nu,hm).call(this)&&n.push("STROKED"),this.createAndLinkShaders(JB,eD,[tD,...n.map(r=>"#define "+r)])}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const n=this.properties;this.registerMarkUniformValue("uMinWidth",n.minWidth),this.registerMarkUniformValue("uMinHeight",n.minHeight),this.registerMarkUniformValue("uMinOpacity",n.minOpacity),this.registerMarkUniformValue("uCornerRadiusTopRight",n.cornerRadiusTopRight??n.cornerRadius??0),this.registerMarkUniformValue("uCornerRadiusBottomRight",n.cornerRadiusBottomRight??n.cornerRadius??0),this.registerMarkUniformValue("uCornerRadiusTopLeft",n.cornerRadiusTopLeft??n.cornerRadius??0),this.registerMarkUniformValue("uCornerRadiusBottomLeft",n.cornerRadiusBottomLeft??n.cornerRadius??0)}updateGraphicsData(){const n=this.unitView.getCollector(),r=n.getItemCount(),i=new mD({encoders:this.encoders,attributes:this.getAttributes(),numItems:r});i.addBatches(n.facetBatches);const a=i.toArrays();this.rangeMap.migrateEntries(a.rangeMap),this.updateBufferInfo(a)}prepareRender(n){const r=super.prepareRender(n);return r.push(()=>this.bindOrSetMarkUniformBlock()),r.push(()=>$i(this.gl,this.programInfo,this.vertexArrayInfo)),r}render(n){const r=this.gl;return this.createRenderCallback((i,a)=>{Zc(r,this.vertexArrayInfo,r.TRIANGLE_STRIP,a,i)},n)}findDatumAt(n,r){n=Ot(n);const i=this.unitView.getCollector().facetBatches.get(n);if(!i)return;const a=this.encoders,o=a.x.scale.type;if(Hn(o)){const s=a.x.accessor;return i.find(u=>r==s(u))}else{const s=a.x.accessor,u=a.x2.accessor;return i.find(l=>r>=s(l)&&r<u(l))}}}tu=new WeakSet,fm=function(){const n=this.properties;return n.cornerRadius||n.cornerRadiusBottomLeft||n.cornerRadiusBottomRight||n.cornerRadiusTopLeft||n.cornerRadiusTopRight},nu=new WeakSet,hm=function(){const n=this.encoding.strokeWidth;return!(rn(n)&&!n.value)};const LD=`out float vRadius;out float vRadiusWithPadding;out lowp vec4 vFillColor;out lowp vec4 vStrokeColor;out lowp float vShape;out lowp float vHalfStrokeWidth;out mat2 vRotationMatrix;const float CIRCLE=0.0;const float SQUARE=1.0;const float CROSS=2.0;const float DIAMOND=3.0;const float TRIANGLE_UP=4.0;const float TRIANGLE_RIGHT=5.0;const float TRIANGLE_DOWN=6.0;const float TRIANGLE_LEFT=7.0;const float TICK_UP=8.0;const float TICK_RIGHT=9.0;const float TICK_DOWN=10.0;const float TICK_LEFT=11.0;float computeSemanticThresholdFactor(){return getScaled_semanticScore()>=uSemanticThreshold ? 1.0 : 0.0;}vec2 getDxDy(){
|
|
243
308
|
#if defined(dx_DEFINED) || defined(dy_DEFINED)
|
|
244
309
|
return vec2(getScaled_dx(),getScaled_dy())/uViewportSize;
|
|
245
310
|
#else
|
|
246
311
|
return vec2(0.0,0.0);
|
|
247
312
|
#endif
|
|
248
|
-
}void main(void){float shapeAngle=0.0;float semanticThresholdFactor=computeSemanticThresholdFactor();if(semanticThresholdFactor<=0.0){gl_PointSize=0.0;gl_Position=vec4(100.0,0.0,0.0,0.0);return;}float size=getScaled_size();vec2 pos=vec2(getScaled_x(),getScaled_y())+getDxDy();gl_Position=unitToNdc(applySampleFacet(pos));float strokeWidth=getScaled_strokeWidth();float diameter=sqrt(size)*uScaleFactor*semanticThresholdFactor
|
|
249
|
-
|
|
313
|
+
}void main(void){float shapeAngle=0.0;float semanticThresholdFactor=computeSemanticThresholdFactor();if(semanticThresholdFactor<=0.0){gl_PointSize=0.0;gl_Position=vec4(100.0,0.0,0.0,0.0);return;}float size=getScaled_size();vec2 pos=vec2(getScaled_x(),getScaled_y())+getDxDy();gl_Position=unitToNdc(applySampleFacet(pos));float strokeWidth=getScaled_strokeWidth();float diameter=sqrt(size)*uScaleFactor*semanticThresholdFactor;float opacity=uViewOpacity;if(strokeWidth<=0.0||uInwardStroke){float minDiameter=1.0/uDevicePixelRatio;if(diameter<minDiameter){opacity*=pow(diameter/minDiameter,2.5);diameter=minDiameter;}}float fillOpa=getScaled_fillOpacity()*opacity;float strokeOpa=getScaled_strokeOpacity()*opacity;vShape=getScaled_shape();bool circle=vShape==0.0;if(vShape>TICK_UP&&vShape<=TICK_LEFT){shapeAngle=(vShape-TICK_UP)*90.0;vShape=TICK_UP;}else if(vShape>TRIANGLE_UP&&vShape<=TRIANGLE_LEFT){shapeAngle=(vShape-TRIANGLE_UP)*90.0;vShape=TRIANGLE_UP;}float angleInDegrees=getScaled_angle();float angle=-(shapeAngle+angleInDegrees)*PI/180.0;float sinTheta=sin(angle);float cosTheta=cos(angle);vRotationMatrix=mat2(cosTheta,sinTheta,-sinTheta,cosTheta);float roomForRotation=circle ? 1.0 : sin(mod(angle,PI/2.0)+PI/4.0)/sin(PI/4.0);float aaPadding=1.0/uDevicePixelRatio;float rotationPadding=(diameter*roomForRotation)-diameter;float strokePadding=uInwardStroke ? 0.0 : strokeWidth*(circle ? 1.0 : sqrt(3.0));float padding=rotationPadding+strokePadding+aaPadding;gl_PointSize=(diameter+padding)*uDevicePixelRatio;vRadius=diameter/2.0;vRadiusWithPadding=vRadius+padding/2.0;vHalfStrokeWidth=strokeWidth/2.0;vFillColor=vec4(getScaled_fill()*fillOpa,fillOpa);vStrokeColor=vec4(getScaled_stroke()*strokeOpa,strokeOpa);setupPicking();}`,OD="const lowp vec4 white=vec4(1.0);const lowp vec4 black=vec4(0.0,0.0,0.0,1.0);in float vRadius;in float vRadiusWithPadding;in lowp vec4 vFillColor;in lowp vec4 vStrokeColor;in lowp float vShape;in lowp float vHalfStrokeWidth;in mat2 vRotationMatrix;out lowp vec4 fragColor;const float CIRCLE=0.0;const float SQUARE=1.0;const float CROSS=2.0;const float DIAMOND=3.0;const float TRIANGLE_UP=4.0;const float TICK_UP=8.0;float circle(vec2 p,float r){return length(p)-r;}float square(vec2 p,float r){p=abs(p);return max(p.x,p.y)-r;}float tickUp(vec2 p,float r){float halfR=r*0.5;p.y+=halfR;p=abs(p);return max(p.x-r*0.15,p.y-halfR);}float equilateralTriangle(vec2 p,float r){p.y=-p.y;float k=sqrt(3.0);float kr=k*r;p.y-=kr/2.0;return max((abs(p.x)*k+p.y)/2.0,-p.y-kr);}float crossShape(vec2 p,float r){p=abs(p);vec2 b=vec2(0.4,1.0)*r;vec2 v=abs(p)-b.xy;vec2 h=abs(p)-b.yx;return min(max(v.x,v.y),max(h.x,h.y));}float diamond(vec2 p,float r){p=abs(p);return(max(abs(p.x-p.y),abs(p.x+p.y))-r)/sqrt(2.0);}void main(){float d;vec2 p=vRotationMatrix*(2.0*gl_PointCoord-1.0)*vRadiusWithPadding;float r=vRadius;if(vShape==CIRCLE){d=circle(p,r);}else if(vShape==SQUARE){d=square(p,r);}else if(vShape==CROSS){d=crossShape(p,r);}else if(vShape==DIAMOND){d=diamond(p,r);}else if(vShape==TRIANGLE_UP){d=equilateralTriangle(p,r);}else if(vShape==TICK_UP){d=tickUp(p,r);}else{d=0.0;}if(!uPickingEnabled){lowp vec4 fillColor=mix(vFillColor,white,-d*uGradientStrength/vRadius);fragColor=distanceToColor(d+(uInwardStroke ? vHalfStrokeWidth : 0.0),fillColor,vStrokeColor,vHalfStrokeWidth);}else if(d-vHalfStrokeWidth<=0.0){fragColor=vPickingColor;}else{discard;}}",ND=`layout(std140)uniform Mark{/***The stroke should only grow inwards,e.g,the diameter/outline is not affected by the stroke width.*Thus,a point that has a zero size has no visible stroke. This allows strokes to be used with*geometric zoom,etc.*/uniform bool uInwardStroke;uniform mediump float uScaleFactor;uniform mediump float uZoomLevel;uniform highp float uSemanticThreshold;uniform mediump float uGradientStrength;
|
|
314
|
+
#pragma markUniforms
|
|
315
|
+
};`,$n=1,Kr=2,F0=4,zD={};class et{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",Ko(this.children.length).map(t=>`const child${t} = children[${t}];`).join(`
|
|
316
|
+
`)+`return function propagate(datum) {${Ko(this.children.length).map(t=>`child${t}.handle(datum);`).join(`
|
|
250
317
|
`)}}`)(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){const n=this.children.map(r=>r.subtreeToString(t+1)).join("");return`${" ".repeat(t*2)}* ${this.constructor.name}${("identifier"in this&&this.identifier?": "+this.identifier:"")??""}
|
|
251
|
-
${n}`}getGlobalObject(){return this.parent?this.parent.getGlobalObject():PB}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 Dy(e){return e.type=="file"}function LB(e){return e.type=="facet"}class Fy extends et{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 NB(e,t,n){const r=new Fy({type:"sample",size:e});for(const i of t)r.handle(n(i));return r.complete(),r.reservoir}const OB={};class zB extends Vs{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(),...OB}}fixEncoding(t){return Iy(t,this.properties.filled),By(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(NB(1e4,this.unitView.getCollector().getData(),t)),this.sampledSemanticScores.sort((n,r)=>n-r))}async initializeGraphics(){await super.initializeGraphics(),this.createAndLinkShaders(FB,RB,[MB])}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const t=this.properties;Va(this.markUniformInfo,{uInwardStroke:!!t.inwardStroke,uGradientStrength:+t.fillGradientStrength,uMaxRelativePointDiameter:1-2*t.sampleFacetPadding})}updateGraphicsData(){const t=this.unitView.getCollector(),n=t.getItemCount(),r=new pB({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 hm(n,t)}}else return-1}prepareRender(t){const n=super.prepareRender(t);return n.push(()=>{Va(this.markUniformInfo,{uMaxPointSize:this._getMaxPointSize(),uScaleFactor:this._getGeometricScaleFactor(),uSemanticThreshold:this.getSemanticThreshold()}),this.markUniformsAltered=!0}),n.push(()=>this.bindOrSetMarkUniformBlock()),n.push(()=>Hi(this.gl,this.programInfo,this.vertexArrayInfo)),n}render(t){const n=this.gl;return this.createRenderCallback((r,i)=>{i&&_f(n,this.vertexArrayInfo,n.POINTS,i,r)},t)}}const UB="const int BUTT=0;const int SQUARE=1;const int ROUND=2;in float pos;in float side;out vec4 vColor;out float vSize;out float vNormalLengthInPixels;out highp vec2 vPosInPixels;void main(void){float pixelSize=1.0/uDevicePixelRatio;float size=getScaled_size();float opacity=getScaled_opacity()*uViewOpacity;if(size<pixelSize){opacity*=size/pixelSize;size=pixelSize;}vec2 a=applySampleFacet(vec2(getScaled_x(),getScaled_y()));vec2 b=applySampleFacet(vec2(getScaled_x2(),getScaled_y2()));vec2 tangent=b-a;float offset=0.0;float relativeDiff=0.0;if(uMinLength>0.0||uStrokeCap!=BUTT){float len=length(tangent*uViewportSize);float diff=max(0.0,uMinLength-len);if(uStrokeCap!=BUTT){diff+=size;}relativeDiff=diff/len;offset=relativeDiff*(pos-0.5);}vec2 p=pos<1.0? a+tangent*(pos+offset): b+tangent*offset;float aaPadding=pixelSize;vec2 normal=normalize(vec2(-tangent.y,tangent.x)/uViewportSize);p+=normal*side*(size+aaPadding)/uViewportSize;gl_Position=unitToNdc(p);vColor=vec4(getScaled_color()*opacity,opacity);vSize=size;vNormalLengthInPixels=side*(size+aaPadding);vPosInPixels=vec2(pos,(1.0-pos))*(1.0+relativeDiff)*length(tangent*uViewportSize)-vec2(uStrokeCap!=BUTT ? size/2.0 : 0.0);setupPicking();}",GB="const int BUTT=0;const int SQUARE=1;const int ROUND=2;uniform sampler2D uDashTexture;in vec4 vColor;in float vSize;in vec2 vPosInPixels;in float vNormalLengthInPixels;out lowp vec4 fragColor;void main(void){float dpr=uDevicePixelRatio;float distanceFromEnd=-min(vPosInPixels[0],vPosInPixels[1]);float distance;if(distanceFromEnd>0.0&&uStrokeCap==ROUND){distance=length(vec2(distanceFromEnd,vNormalLengthInPixels));}else{distance=abs(vNormalLengthInPixels);}float opacity=clamp(((vSize/2.0-distance)*dpr),-0.5,0.5)+0.5;if(uDashTextureSize>0.0){float pos=(vPosInPixels[0]+uStrokeDashOffset)*dpr;float floored=floor(pos);vec2 texelPositions=(floored+vec2(0.5,1.5))/dpr/uDashTextureSize;opacity*=mix(texture(uDashTexture,vec2(texelPositions[0],0)).r,texture(uDashTexture,vec2(texelPositions[1],0)).r,clamp((pos-floored),0.0,1.0));}fragColor=vColor*opacity;if(uPickingEnabled){fragColor=vPickingColor;}}",HB="uniform Mark{uniform mediump float uMinLength;uniform mediump float uDashTextureSize;uniform lowp int uStrokeCap;uniform mediump float uStrokeDashOffset;};";class VB extends Vs{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&&Ut(t.y)&&t.y.type=="quantitative")t.x2=t.x,t.y2={datum:0};else if(!t.y2&&Ut(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=jB(this.properties.strokeDash);this.dashTexture=Us(t,{mag:t.NEAREST,min:t.NEAREST,internalFormat:t.R8,format:t.RED,src:n,height:1}),this.dashTextureSize=n.length}this.createAndLinkShaders(UB,GB,[HB])}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const t=this.properties;this.registerMarkUniform("uMinLength",t.minLength),this.registerMarkUniform("uStrokeCap",t.strokeCap??"butt",n=>["butt","square","round"].indexOf(n)),Va(this.markUniformInfo,{uDashTextureSize:+this.dashTextureSize}),this.markUniformsAltered=!0}updateGraphicsData(){const t=this.unitView.getCollector(),n=t.getItemCount(),r=new dB({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 n.push(()=>this.bindOrSetMarkUniformBlock()),this.dashTexture&&n.push(()=>Gi(this.programInfo,{uDashTexture:this.dashTexture})),n.push(()=>Hi(this.gl,this.programInfo,this.vertexArrayInfo)),n}render(t){const n=this.gl;return this.createRenderCallback((r,i)=>_f(n,this.vertexArrayInfo,n.TRIANGLE_STRIP,i,r),t)}}function jB(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 qB="uniform Mark{uniform float uArcHeightFactor;uniform float uMinArcHeight;uniform float uMinPickingSize;uniform int uShape;uniform int uOrient;uniform bool uClampApex;uniform float uMaxChordLength;uniform vec2 uArcFadingDistance;};in vec2 strip;out vec4 vColor;out float vSize;out float vNormalLengthInPixels;const int SHAPE_ARC=0;const int SHAPE_DOME=1;const int SHAPE_DIAGONAL=2;const int SHAPE_LINE=3;const int ORIENT_VERTICAL=0;const int ORIENT_HORIZONTAL=1;float distanceFromLine(vec2 pointOnLine1,vec2 pointOnLine2,vec2 point){vec2 a=point-pointOnLine1;vec2 b=pointOnLine2-pointOnLine1;vec2 proj=dot(a,b)/dot(b,b)*b;return length(a-proj);}bool isInsideViewport(vec2 point,float marginFactor){vec2 margin=uViewportSize*vec2(marginFactor);return point.x>=-margin.x&&point.x<=uViewportSize.x+margin.x&&point.y>=-margin.y&&point.y<=uViewportSize.y+margin.y;}void main(void){float pixelSize=1.0/uDevicePixelRatio;float opacity=getScaled_opacity()*uViewOpacity;vec2 p1,p2,p3,p4;vec2 a=applySampleFacet(vec2(getScaled_x(),getScaled_y()))*uViewportSize;vec2 b=applySampleFacet(vec2(getScaled_x2(),getScaled_y2()))*uViewportSize;if(uShape<=SHAPE_DOME){if(uShape==SHAPE_DOME){vec2 height=vec2(0.0);if(uOrient==ORIENT_VERTICAL){p1=vec2(min(a.x,b.x),b.y);p4=vec2(max(a.x,b.x),b.y);height=vec2(0.0,a.y-b.y);if(uClampApex){if(p4.x>0.0){p1.x=max(p1.x,-p4.x);}if(p1.x<uViewportSize.x){p4.x=min(p4.x,2.0*uViewportSize.x-p1.x);}}}else{p1=vec2(b.x,min(a.y,b.y));p4=vec2(b.x,max(a.y,b.y));height=vec2(a.x-b.x,0.0);if(uClampApex){if(p4.y>0.0){p1.y=max(p1.y,-p4.y);}if(p1.y<uViewportSize.y){p4.y=min(p4.y,2.0*uViewportSize.y-p1.y);}}}vec2 controlOffset=height/0.75;p2=p1+controlOffset;p3=p4+controlOffset;}if(uShape==SHAPE_ARC){p1=a;p4=b;vec2 chordVector=p4-p1;vec2 unitChordVector=normalize(chordVector);vec2 chordNormal=vec2(-unitChordVector.y,unitChordVector.x);float chordLength=length(chordVector);if(chordLength>uMaxChordLength){if(isInsideViewport(p1,2.0)){chordLength=uMaxChordLength;p4=p1+unitChordVector*uMaxChordLength;}else if(isInsideViewport(p4,2.0)){chordLength=uMaxChordLength;p1=p4-unitChordVector*uMaxChordLength;}}float height=max(chordLength/2.0*uArcHeightFactor,uMinArcHeight);vec2 controlOffset=chordNormal*height/0.75;p2=p1+controlOffset;p3=p4+controlOffset;}}else if(uShape==SHAPE_DIAGONAL){if(uOrient==ORIENT_VERTICAL){p1=a;p2=vec2(a.x,(a.y+b.y)/2.0);p3=vec2(b.x,(a.y+b.y)/2.0);p4=b;}else{p1=a;p2=vec2((a.x+b.x)/2.0,a.y);p3=vec2((a.x+b.x)/2.0,b.y);p4=b;}}else if(uShape==SHAPE_LINE){p1=a;p2=(a+b)/2.0;p3=p2;p4=b;}float t=smoothstep(0.0,1.0,strip.x);vec2 C1=p4-3.0*p3+3.0*p2-p1;vec2 C2=3.0*p3-6.0*p2+3.0*p1;vec2 C3=3.0*p2-3.0*p1;vec2 C4=p1;vec2 p;if(t==0.0){p=p1;}else if(t==1.0){p=p4;}else{p=C1*t*t*t+C2*t*t+C3*t+C4;}vec2 tangent=normalize(3.0*C1*t*t+2.0*C2*t+C3);vec2 normal=vec2(-tangent.y,tangent.x);float size=getScaled_size();if(size<pixelSize){opacity*=size/pixelSize;size=pixelSize;}float paddedSize=uPickingEnabled? max(size,uMinPickingSize): size+pixelSize;vNormalLengthInPixels=strip.y*paddedSize;if(uShape==SHAPE_ARC&&uArcFadingDistance[0]>0.0&&uArcFadingDistance[1]>0.0){float d=distanceFromLine(p1,p4,p);float distanceOpacity=smoothstep(uArcFadingDistance[1],uArcFadingDistance[0],d);opacity*=distanceOpacity;if(distanceOpacity<=0.0){vNormalLengthInPixels=0.0;}}p+=normal*vNormalLengthInPixels;gl_Position=pixelsToNdc(p);vec3 color=getScaled_color();vColor=vec4(color*opacity,opacity);vSize=paddedSize;setupPicking();}",ZB="in vec4 vColor;in float vSize;in float vNormalLengthInPixels;out lowp vec4 fragColor;void main(void){float dpr=uDevicePixelRatio;float distance=abs(vNormalLengthInPixels);float opacity=clamp(((vSize/2.0-distance)*dpr),0.0,1.0);fragColor=vColor*opacity;if(uPickingEnabled){fragColor=vPickingColor;}}",WB=["arc","dome","diagonal","line"],YB=["vertical","horizontal"];class QB extends Vs{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,arcHeightFactor:1,minArcHeight:1.5,minPickingSize:3,clampApex:!1,maxChordLength:5e4,arcFadingDistance:!1,linkShape:"arc",orient:"vertical"})),this._baseInstanceExt=this.gl.getExtension("WEBGL_draw_instanced_base_vertex_base_instance")}getAttributes(){return["uniqueId","facetIndex","x","x2","y","y2","size","height","color","opacity"]}getSupportedChannels(){return[...super.getSupportedChannels(),"x2","y2","size"]}fixEncoding(t){return t.x2||(Ut(t.x)?t.x2={datum:0}:t.x2=t.x),t.y2||(Ut(t.y)?t.y2={datum:0}:t.y2=t.y),t}async initializeGraphics(){await super.initializeGraphics(),this.createAndLinkShaders(qB,ZB)}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const t=this.properties;this.registerMarkUniform("uArcFadingDistance",t.arcFadingDistance,n=>n||[0,0]),this.registerMarkUniform("uArcHeightFactor",t.arcHeightFactor),this.registerMarkUniform("uMinArcHeight",t.minArcHeight),this.registerMarkUniform("uMinPickingSize",t.minPickingSize),this.registerMarkUniform("uShape",t.linkShape,n=>WB.indexOf(n)),this.registerMarkUniform("uOrient",t.orient,n=>YB.indexOf(n)),this.registerMarkUniform("uClampApex",t.clampApex,n=>!!n),this.registerMarkUniform("uMaxChordLength",t.maxChordLength)}updateGraphicsData(){const t=this.unitView.getCollector(),n=t.getItemCount(),r=new gB({encoders:this.encoders,attributes:this.getAttributes(),numItems:n});r.addBatches(t.facetBatches);const i=r.toArrays();i.arrays.strip={data:$B(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)}prepareRender(t){const n=super.prepareRender(t);return n.push(()=>this.bindOrSetMarkUniformBlock()),this._baseInstanceExt?n.push(()=>Hi(this.gl,this.programInfo,this.vertexArrayInfo)):n.push(()=>this.gl.bindVertexArray(null)),n}render(t){const n=this.gl,r=(this.properties.segments+1)*2;return this._baseInstanceExt?this.createRenderCallback((i,a)=>{this._baseInstanceExt.drawArraysInstancedBaseInstanceWEBGL(n.TRIANGLE_STRIP,0,r,a,i)},t):this.createRenderCallback((i,a)=>{for(const o of Object.entries(this.bufferInfo.attribs)){const[s,u]=o;u.buffer&&u.numComponents&&u.divisor&&(u.offset=i*this.arrays[s].numComponents*4)}Hi(n,this.programInfo,this.bufferInfo),n.drawArraysInstanced(n.TRIANGLE_STRIP,0,r,a)},t)}}function $B(e){let t=0;const n=[];for(;t<=e;t++)n.push(t/e,.5),n.push(t/e,-.5);return new Float32Array(n)}const XB=`in mediump vec2 vertexCoord;in lowp vec2 textureCoord;in float width;out vec2 vTexCoord;out vec4 vColor;out float vSlope;out float vEdgeFadeOpacity;struct RangeResult{float pos;float scale;};float minValue(vec4 v){return min(min(v.x,v.y),min(v.z,v.w));}float maxValue(vec4 v){return max(max(v.x,v.y),max(v.z,v.w));}/***All measures are in[0,1]*/RangeResult positionInsideRange(float a,float b,float width,float padding,int align,bool flush){float span=b-a;float paddedWidth=width+2.0*padding;if(a>1.0||b<0.0){return RangeResult(0.0,0.0);}float extra=max(0.0,span-paddedWidth);float pos;if(align==0){float centre=a+b;if(flush){float leftOver=max(0.0,paddedWidth-centre);centre+=min(leftOver,extra);float rightOver=max(0.0,paddedWidth+centre-2.0);centre-=min(rightOver,extra);}pos=centre/2.0;}else if(align<0){float edge=a;if(flush){float over=max(0.0,-edge);edge+=min(over,extra);}pos=edge+padding;}else{float edge=b;if(flush){float over=max(0.0,edge-1.0);edge-=min(over,extra);}pos=edge-padding;}float scale=clamp((span-padding)/paddedWidth,0.0,1.0);return RangeResult(pos,scale);}vec2 calculateRotatedDimensions(float width,mat2 rotationMatrix){vec2 a=abs(rotationMatrix*vec2(width/2.0,0.5));vec2 b=abs(rotationMatrix*vec2(width/2.0,-0.5));return vec2(max(a.x,b.x),max(a.y,b.y))*2.0;}ivec2 fixAlignForAngle(ivec2 align,float angleInDegrees){float a=mod(angleInDegrees+45.0,360.0);int x=align.x;int y=-align.y;if(a<90.0){return ivec2(x,y);}else if(a<180.0){return ivec2(y,-x);}else if(a<270.0){return ivec2(-x,y);}else{return ivec2(-y,x);}}void main(void){float opacity=getScaled_opacity()*uViewOpacity;vec2 size=vec2(getScaled_size());float x=getScaled_x();float y=getScaled_y();float scale=1.0;float angleInDegrees=getScaled_angle();float angle=-angleInDegrees*PI/180.0;float sinTheta=sin(angle);float cosTheta=cos(angle);mat2 rotationMatrix=mat2(cosTheta,sinTheta,-sinTheta,cosTheta);vec2 flushSize=calculateRotatedDimensions(width,rotationMatrix);
|
|
318
|
+
${n}`}getGlobalObject(){return this.parent?this.parent.getGlobalObject():zD}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 hw(e){return e.type=="file"}function UD(e){return e.type=="facet"}class dw extends et{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 GD(e,t,n){const r=new dw({type:"sample",size:e});for(const i of t)r.handle(n(i));return r.complete(),r.reservoir}const HD={};class VD extends el{constructor(n){super(n);K(this,Fo,()=>0);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}));const r=this.properties.semanticZoomFraction;if(r!=null)if(It(r)){const i=this.unitView.paramMediator.createExpression(r.expr);i.addListener(()=>this.getContext().animator.requestRender()),Fe(this,Fo,i)}else Fe(this,Fo,()=>r)}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(),...HD}}fixEncoding(n){return cw(n,this.properties.filled),fw(n,this.properties.filled),delete n.color,delete n.opacity,n}initializeData(){super.initializeData();const n=this.unitView.getAccessor("semanticScore");n&&(this.sampledSemanticScores=Float32Array.from(GD(1e4,this.unitView.getCollector().getData(),n)),this.sampledSemanticScores.sort((r,i)=>r-i))}async initializeGraphics(){await super.initializeGraphics(),this.createAndLinkShaders(LD,OD,[ND])}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const n=this.properties;this.registerMarkUniformValue("uInwardStroke",n.inwardStroke,r=>!!r),this.registerMarkUniformValue("uGradientStrength",n.fillGradientStrength)}updateGraphicsData(){const n=this.unitView.getCollector(),r=n.getItemCount(),i=new yD({encoders:this.encoders,attributes:this.getAttributes(),numItems:Math.max(r,this.properties.minBufferSize||0)});i.addBatches(n.facetBatches);const a=i.toArrays();this.rangeMap.migrateEntries(a.rangeMap),this.updateBufferInfo(a)}_getGeometricScaleFactor(){const n=Math.pow(2,this.properties.geometricZoomBound||0);return Math.pow(Math.min(1,this.unitView.getZoomLevel()/n),1/3)}getSemanticThreshold(){if(this.sampledSemanticScores){const n=Math.max(0,1-W(this,Fo).call(this)*this.unitView.getZoomLevel());if(n<=0)return-1/0;if(n>=1)return 1/0;{const r=this.sampledSemanticScores;return Vm(r,n)}}else return-1}prepareRender(n){const r=super.prepareRender(n);return r.push(()=>{Xs(this.markUniformInfo,{uScaleFactor:this._getGeometricScaleFactor(),uSemanticThreshold:this.getSemanticThreshold()}),this.markUniformsAltered=!0}),r.push(()=>this.bindOrSetMarkUniformBlock()),r.push(()=>$i(this.gl,this.programInfo,this.vertexArrayInfo)),r}render(n){const r=this.gl;return this.createRenderCallback((i,a)=>{a&&Zc(r,this.vertexArrayInfo,r.POINTS,a,i)},n)}}Fo=new WeakMap;const jD="const int BUTT=0;const int SQUARE=1;const int ROUND=2;in float pos;in float side;out vec4 vColor;out float vSize;out float vNormalLengthInPixels;out highp vec2 vPosInPixels;void main(void){float pixelSize=1.0/uDevicePixelRatio;float size=getScaled_size();float opacity=getScaled_opacity()*uViewOpacity;if(size<pixelSize){opacity*=size/pixelSize;size=pixelSize;}vec2 a=applySampleFacet(vec2(getScaled_x(),getScaled_y()));vec2 b=applySampleFacet(vec2(getScaled_x2(),getScaled_y2()));vec2 tangent=b-a;float offset=0.0;float relativeDiff=0.0;if(uMinLength>0.0||uStrokeCap!=BUTT){float len=length(tangent*uViewportSize);float diff=max(0.0,uMinLength-len);if(uStrokeCap!=BUTT){diff+=size;}relativeDiff=diff/len;offset=relativeDiff*(pos-0.5);}vec2 p=pos<1.0? a+tangent*(pos+offset): b+tangent*offset;float aaPadding=pixelSize;vec2 normal=normalize(vec2(-tangent.y,tangent.x)/uViewportSize);p+=normal*side*(size+aaPadding)/uViewportSize;gl_Position=unitToNdc(p);vColor=vec4(getScaled_color()*opacity,opacity);vSize=size;vNormalLengthInPixels=side*(size+aaPadding);vPosInPixels=vec2(pos,(1.0-pos))*(1.0+relativeDiff)*length(tangent*uViewportSize)-vec2(uStrokeCap!=BUTT ? size/2.0 : 0.0);setupPicking();}",$D="const int BUTT=0;const int SQUARE=1;const int ROUND=2;uniform sampler2D uDashTexture;in vec4 vColor;in float vSize;in vec2 vPosInPixels;in float vNormalLengthInPixels;out lowp vec4 fragColor;void main(void){float dpr=uDevicePixelRatio;float distanceFromEnd=-min(vPosInPixels[0],vPosInPixels[1]);float distance;if(distanceFromEnd>0.0&&uStrokeCap==ROUND){distance=length(vec2(distanceFromEnd,vNormalLengthInPixels));}else{distance=abs(vNormalLengthInPixels);}float opacity=clamp(((vSize/2.0-distance)*dpr),-0.5,0.5)+0.5;if(uDashTextureSize>0.0){float pos=(vPosInPixels[0]+uStrokeDashOffset)*dpr;float floored=floor(pos);vec2 texelPositions=(floored+vec2(0.5,1.5))/dpr/uDashTextureSize;opacity*=mix(texture(uDashTexture,vec2(texelPositions[0],0)).r,texture(uDashTexture,vec2(texelPositions[1],0)).r,clamp((pos-floored),0.0,1.0));}fragColor=vColor*opacity;if(uPickingEnabled){fragColor=vPickingColor;}}",qD=`layout(std140)uniform Mark{uniform mediump float uMinLength;uniform mediump float uDashTextureSize;uniform lowp int uStrokeCap;uniform mediump float uStrokeDashOffset;
|
|
319
|
+
#pragma markUniforms
|
|
320
|
+
};`;class WD extends el{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&&Zt(t.y)&&t.y.type=="quantitative")t.x2=t.x,t.y2={datum:0};else if(!t.y2&&Zt(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=ZD(this.properties.strokeDash);this.dashTexture=Qs(t,{mag:t.NEAREST,min:t.NEAREST,internalFormat:t.R8,format:t.RED,src:n,height:1}),this.dashTextureSize=n.length}this.createAndLinkShaders(jD,$D,[qD])}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const t=this.properties;this.registerMarkUniformValue("uMinLength",t.minLength),this.registerMarkUniformValue("uStrokeCap",t.strokeCap??"butt",n=>["butt","square","round"].indexOf(n)),Xs(this.markUniformInfo,{uDashTextureSize:+this.dashTextureSize}),this.markUniformsAltered=!0}updateGraphicsData(){const t=this.unitView.getCollector(),n=t.getItemCount(),r=new bD({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 n.push(()=>this.bindOrSetMarkUniformBlock()),this.dashTexture&&n.push(()=>Wa(this.programInfo,{uDashTexture:this.dashTexture})),n.push(()=>$i(this.gl,this.programInfo,this.vertexArrayInfo)),n}render(t){const n=this.gl;return this.createRenderCallback((r,i)=>Zc(n,this.vertexArrayInfo,n.TRIANGLE_STRIP,i,r),t)}}function ZD(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 YD="in vec2 strip;out vec4 vColor;out float vSize;out float vNormalLengthInPixels;const int SHAPE_ARC=0;const int SHAPE_DOME=1;const int SHAPE_DIAGONAL=2;const int SHAPE_LINE=3;const int ORIENT_VERTICAL=0;const int ORIENT_HORIZONTAL=1;float distanceFromLine(vec2 pointOnLine1,vec2 pointOnLine2,vec2 point){vec2 a=point-pointOnLine1;vec2 b=pointOnLine2-pointOnLine1;vec2 proj=dot(a,b)/dot(b,b)*b;return length(a-proj);}bool isInsideViewport(vec2 point,float marginFactor){vec2 margin=uViewportSize*vec2(marginFactor);return point.x>=-margin.x&&point.x<=uViewportSize.x+margin.x&&point.y>=-margin.y&&point.y<=uViewportSize.y+margin.y;}void main(void){float pixelSize=1.0/uDevicePixelRatio;float opacity=getScaled_opacity()*uViewOpacity;vec2 p1,p2,p3,p4;vec2 a=applySampleFacet(vec2(getScaled_x(),getScaled_y()))*uViewportSize;vec2 b=applySampleFacet(vec2(getScaled_x2(),getScaled_y2()))*uViewportSize;if(uShape<=SHAPE_DOME){if(uShape==SHAPE_DOME){vec2 height=vec2(0.0);if(uOrient==ORIENT_VERTICAL){p1=vec2(min(a.x,b.x),b.y);p4=vec2(max(a.x,b.x),b.y);height=vec2(0.0,a.y-b.y);if(uClampApex){if(p4.x>0.0){p1.x=max(p1.x,-p4.x);}if(p1.x<uViewportSize.x){p4.x=min(p4.x,2.0*uViewportSize.x-p1.x);}}}else{p1=vec2(b.x,min(a.y,b.y));p4=vec2(b.x,max(a.y,b.y));height=vec2(a.x-b.x,0.0);if(uClampApex){if(p4.y>0.0){p1.y=max(p1.y,-p4.y);}if(p1.y<uViewportSize.y){p4.y=min(p4.y,2.0*uViewportSize.y-p1.y);}}}vec2 controlOffset=height/0.75;p2=p1+controlOffset;p3=p4+controlOffset;}if(uShape==SHAPE_ARC){p1=a;p4=b;vec2 chordVector=p4-p1;vec2 unitChordVector=normalize(chordVector);vec2 chordNormal=vec2(-unitChordVector.y,unitChordVector.x);float chordLength=length(chordVector);if(chordLength>uMaxChordLength){if(isInsideViewport(p1,2.0)){chordLength=uMaxChordLength;p4=p1+unitChordVector*uMaxChordLength;}else if(isInsideViewport(p4,2.0)){chordLength=uMaxChordLength;p1=p4-unitChordVector*uMaxChordLength;}}float height=max(chordLength/2.0*uArcHeightFactor,uMinArcHeight);vec2 controlOffset=chordNormal*height/0.75;p2=p1+controlOffset;p3=p4+controlOffset;}}else if(uShape==SHAPE_DIAGONAL){if(uOrient==ORIENT_VERTICAL){p1=a;p2=vec2(a.x,(a.y+b.y)/2.0);p3=vec2(b.x,(a.y+b.y)/2.0);p4=b;}else{p1=a;p2=vec2((a.x+b.x)/2.0,a.y);p3=vec2((a.x+b.x)/2.0,b.y);p4=b;}}else if(uShape==SHAPE_LINE){p1=a;p2=(a+b)/2.0;p3=p2;p4=b;}float t=smoothstep(0.0,1.0,strip.x);vec2 C1=p4-3.0*p3+3.0*p2-p1;vec2 C2=3.0*p3-6.0*p2+3.0*p1;vec2 C3=3.0*p2-3.0*p1;vec2 C4=p1;vec2 p;if(t==0.0){p=p1;}else if(t==1.0){p=p4;}else{p=C1*t*t*t+C2*t*t+C3*t+C4;}vec2 tangent=normalize(3.0*C1*t*t+2.0*C2*t+C3);vec2 normal=vec2(-tangent.y,tangent.x);float size=getScaled_size();if(size<pixelSize){opacity*=size/pixelSize;size=pixelSize;}float paddedSize=uPickingEnabled? max(size,uMinPickingSize): size+pixelSize;vNormalLengthInPixels=strip.y*paddedSize;if(uShape==SHAPE_ARC&&uArcFadingDistance[0]>0.0&&uArcFadingDistance[1]>0.0){float d=distanceFromLine(p1,p4,p);float distanceOpacity=smoothstep(uArcFadingDistance[1],uArcFadingDistance[0],d);opacity*=distanceOpacity;if(distanceOpacity<=0.0){vNormalLengthInPixels=0.0;}}p+=normal*vNormalLengthInPixels;gl_Position=pixelsToNdc(p);vec3 color=getScaled_color();vColor=vec4(color*opacity,opacity);vSize=paddedSize;setupPicking();}",QD="in vec4 vColor;in float vSize;in float vNormalLengthInPixels;out lowp vec4 fragColor;void main(void){float dpr=uDevicePixelRatio;float distance=abs(vNormalLengthInPixels);float opacity=clamp(((vSize/2.0-distance)*dpr),0.0,1.0);fragColor=vColor*opacity;if(uPickingEnabled){fragColor=vPickingColor;}}",XD=`layout(std140)uniform Mark{uniform float uArcHeightFactor;uniform float uMinArcHeight;uniform float uMinPickingSize;uniform int uShape;uniform int uOrient;uniform bool uClampApex;uniform float uMaxChordLength;uniform vec2 uArcFadingDistance;
|
|
321
|
+
#pragma markUniforms
|
|
322
|
+
};`,KD=["arc","dome","diagonal","line"],JD=["vertical","horizontal"];class eR extends el{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,arcHeightFactor:1,minArcHeight:1.5,minPickingSize:3,clampApex:!1,maxChordLength:5e4,arcFadingDistance:!1,linkShape:"arc",orient:"vertical"})),this._baseInstanceExt=this.gl.getExtension("WEBGL_draw_instanced_base_vertex_base_instance")}getAttributes(){return["uniqueId","facetIndex","x","x2","y","y2","size","height","color","opacity"]}getSupportedChannels(){return[...super.getSupportedChannels(),"x2","y2","size"]}fixEncoding(t){return t.x2||(Zt(t.x)?t.x2={datum:0}:t.x2=t.x),t.y2||(Zt(t.y)?t.y2={datum:0}:t.y2=t.y),t}async initializeGraphics(){await super.initializeGraphics(),this.createAndLinkShaders(YD,QD,[XD])}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const t=this.properties;this.registerMarkUniformValue("uArcFadingDistance",t.arcFadingDistance,n=>n||[0,0]),this.registerMarkUniformValue("uArcHeightFactor",t.arcHeightFactor),this.registerMarkUniformValue("uMinArcHeight",t.minArcHeight),this.registerMarkUniformValue("uMinPickingSize",t.minPickingSize),this.registerMarkUniformValue("uShape",t.linkShape,n=>KD.indexOf(n)),this.registerMarkUniformValue("uOrient",t.orient,n=>JD.indexOf(n)),this.registerMarkUniformValue("uClampApex",t.clampApex,n=>!!n),this.registerMarkUniformValue("uMaxChordLength",t.maxChordLength)}updateGraphicsData(){const t=this.unitView.getCollector(),n=t.getItemCount(),r=new wD({encoders:this.encoders,attributes:this.getAttributes(),numItems:n});r.addBatches(t.facetBatches);const i=r.toArrays();i.arrays.strip={data:tR(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)}prepareRender(t){const n=super.prepareRender(t);return n.push(()=>this.bindOrSetMarkUniformBlock()),this._baseInstanceExt?n.push(()=>$i(this.gl,this.programInfo,this.vertexArrayInfo)):n.push(()=>this.gl.bindVertexArray(null)),n}render(t){const n=this.gl,r=(this.properties.segments+1)*2;return this._baseInstanceExt?this.createRenderCallback((i,a)=>{this._baseInstanceExt.drawArraysInstancedBaseInstanceWEBGL(n.TRIANGLE_STRIP,0,r,a,i)},t):this.createRenderCallback((i,a)=>{for(const o of Object.entries(this.bufferInfo.attribs)){const[s,u]=o;u.buffer&&u.numComponents&&u.divisor&&(u.offset=i*this.arrays[s].numComponents*4)}$i(n,this.programInfo,this.bufferInfo),n.drawArraysInstanced(n.TRIANGLE_STRIP,0,r,a)},t)}}function tR(e){let t=0;const n=[];for(;t<=e;t++)n.push(t/e,.5),n.push(t/e,-.5);return new Float32Array(n)}const nR=`in mediump vec2 vertexCoord;in lowp vec2 textureCoord;in float width;out vec2 vTexCoord;out vec4 vColor;out float vSlope;out float vEdgeFadeOpacity;struct RangeResult{float pos;float scale;};float minValue(vec4 v){return min(min(v.x,v.y),min(v.z,v.w));}float maxValue(vec4 v){return max(max(v.x,v.y),max(v.z,v.w));}/***All measures are in[0,1]*/RangeResult positionInsideRange(float a,float b,float width,float padding,int align,bool flush){float span=b-a;float paddedWidth=width+2.0*padding;if(a>1.0||b<0.0){return RangeResult(0.0,0.0);}float extra=max(0.0,span-paddedWidth);float pos;if(align==0){float centre=a+b;if(flush){float leftOver=max(0.0,paddedWidth-centre);centre+=min(leftOver,extra);float rightOver=max(0.0,paddedWidth+centre-2.0);centre-=min(rightOver,extra);}pos=centre/2.0;}else if(align<0){float edge=a;if(flush){float over=max(0.0,-edge);edge+=min(over,extra);}pos=edge+padding;}else{float edge=b;if(flush){float over=max(0.0,edge-1.0);edge-=min(over,extra);}pos=edge-padding;}float scale=clamp((span-padding)/paddedWidth,0.0,1.0);return RangeResult(pos,scale);}vec2 calculateRotatedDimensions(float width,mat2 rotationMatrix){vec2 a=abs(rotationMatrix*vec2(width/2.0,0.5));vec2 b=abs(rotationMatrix*vec2(width/2.0,-0.5));return vec2(max(a.x,b.x),max(a.y,b.y))*2.0;}ivec2 fixAlignForAngle(ivec2 align,float angleInDegrees){float a=mod(angleInDegrees+45.0,360.0);int x=align.x;int y=-align.y;if(a<90.0){return ivec2(x,y);}else if(a<180.0){return ivec2(y,-x);}else if(a<270.0){return ivec2(-x,y);}else{return ivec2(-y,x);}}void main(void){float opacity=getScaled_opacity()*uViewOpacity;vec2 size=vec2(getScaled_size());float x=getScaled_x();float y=getScaled_y();float scale=1.0;float angleInDegrees=getScaled_angle();float angle=-angleInDegrees*PI/180.0;float sinTheta=sin(angle);float cosTheta=cos(angle);mat2 rotationMatrix=mat2(cosTheta,sinTheta,-sinTheta,cosTheta);vec2 flushSize=calculateRotatedDimensions(width,rotationMatrix);
|
|
252
323
|
#if defined(x2_DEFINED) || defined(y2_DEFINED)
|
|
253
324
|
ivec2 align=fixAlignForAngle(uAlign,angleInDegrees);
|
|
254
325
|
#else
|
|
@@ -261,7 +332,9 @@ vec2 pos=applySampleFacet(vec2(x,y));
|
|
|
261
332
|
#ifdef y2_DEFINED
|
|
262
333
|
float y2=getScaled_y2();vec2 pos2=applySampleFacet(vec2(x,y2));if(uLogoLetter){size.y=(pos2.y-pos.y)*uViewportSize.y;pos.y+=(pos2.y-pos.y)/2.0;}else{RangeResult result=positionInsideRange(min(pos.y,pos2.y),max(pos.y,pos2.y),size.y*scale*flushSize.y/uViewportSize.y,uPaddingY/uViewportSize.y,align.y,uFlushY);pos.y=result.pos;scale*=result.scale;}
|
|
263
334
|
#endif
|
|
264
|
-
if(scale<1.0){if(uSqueeze){vec2 scaleFadeExtent=vec2(3.0,6.0)/size;if(scale<scaleFadeExtent[0]){gl_Position=vec4(0.0);return;}size*=scale;opacity*=linearstep(scaleFadeExtent[0],scaleFadeExtent[1],scale);}else if(scale<1.0){gl_Position=vec4(0.0);return;}}vec2 charPos=rotationMatrix*(vertexCoord*size+uD);vec2 unitPos=pos+charPos/uViewportSize;gl_Position=unitToNdc(unitPos);vSlope=max(1.0,min(size.x,size.y)/uSdfNumerator);vColor=vec4(getScaled_color()*opacity,opacity);vTexCoord=textureCoord;if(maxValue(uViewportEdgeFadeDistance)>-pow(10.0,10.0)){vEdgeFadeOpacity=minValue(((vec4(1.0,1.0,0.0,0.0)+vec4(-1.0,-1.0,1.0,1.0)*unitPos.yxyx)*uViewportSize.yxyx-uViewportEdgeFadeDistance)/uViewportEdgeFadeWidth);}else{vEdgeFadeOpacity=1.0;}setupPicking();}`,KB="uniform sampler2D uTexture;in vec2 vTexCoord;in float vEdgeFadeOpacity;in vec4 vColor;in float vSlope;out lowp vec4 fragColor;float median(float r,float g,float b){return max(min(r,g),min(max(r,g),b));}void main(){vec3 c=texture(uTexture,vTexCoord).rgb;float sigDist=1.0-median(c.r,c.g,c.b);float slope=uLogoLetter? 0.7/length(vec2(dFdy(sigDist),dFdx(sigDist))): vSlope;float opa=clamp((sigDist-0.5)*slope+0.5,0.0,1.0);opa*=pow(clamp(vEdgeFadeOpacity,0.0,1.0),2.2);fragColor=vColor*opa;if(uPickingEnabled){fragColor=vPickingColor;}}",JB="uniform Mark{uniform mediump float uSdfNumerator;uniform mediump vec2 uD;uniform mediump vec4 uViewportEdgeFadeWidth;uniform mediump vec4 uViewportEdgeFadeDistance;uniform bool uSqueeze;uniform bool uLogoLetter;uniform lowp ivec2 uAlign;uniform mediump float uPaddingX;uniform bool uFlushX;uniform mediump float uPaddingY;uniform bool uFlushY;};",eD={left:-1,center:0,right:1},tD={top:-1,middle:0,bottom:1,alphabetic:1};class nD extends Vs{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 Ma)this.properties.fitToBand&&o0(t,n);return t}async initializeGraphics(){await super.initializeGraphics(),this.createAndLinkShaders(XB,KB,[JB])}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const t=this.properties;this.registerMarkUniform("uSdfNumerator",{expr:"devicePixelRatio"},n=>{let r=.35;return this.properties.logoLetters&&(r/=2),this.font.metrics.common.base/(n/r)}),Va(this.markUniformInfo,{uPaddingX:t.paddingX,uPaddingY:t.paddingY,uFlushX:!!t.flushX,uFlushY:!!t.flushY,uAlign:[eD[t.align],tD[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="format"in r.text?gt(r.text.format):l=>l;for(const l of n){const f=o(i(l)),c=Pe(f)?f:f===null?"":""+f;a+=c&&c.length||0}const s=new mB({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 u=s.toArrays();this.rangeMap.migrateEntries(u.rangeMap),this.updateBufferInfo(u)}prepareRender(t){const n=super.prepareRender(t);return n.push(()=>{Gi(this.programInfo,{uTexture:this.font.texture})}),n.push(()=>this.bindOrSetMarkUniformBlock()),n.push(()=>Hi(this.gl,this.programInfo,this.vertexArrayInfo)),n}render(t){const n=this.gl;return this.createRenderCallback((r,i)=>_f(n,this.vertexArrayInfo,n.TRIANGLES,i,r),t)}}function Ry(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+=Df(p.px)+(l0(p)?0:n),s+=Df(p.grow);o-=n;const u=Math.max(0,t-o),l=r!==void 0?p=>Math.round(p*r)/r:p=>p,f=[],c=[],h=p=>{const b=f.length;if(!b)return;const y=(p?n:0)*(a?-1:1);d-=y;for(let w=0;w<b;w++)c.push({location:d+(w+1)/(b+1)*y,size:0});d+=y,f.length=0};let d=a?Math.max(t,o):0+i;if(e.length==1&&l0(e[0]))return[{location:d,size:0}];for(let p=0;p<e.length;p++){const b=e[p];if(l0(b))f.push(b);else{h(c.length>0);const y=Df(b.px)+(s?Df(b.grow)/s*u:0);a&&(d-=y),c.push({location:l(d),size:l(y)}),a?d-=n:d+=y+n}}return d+=a?n:-n,h(!1),c}function rD(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 Rg=class Rg{constructor(t,n){ne(this,jl);this.width=t,this.height=n}addPadding(t){return ee(this,jl,Gg).call(this,t.width,t.height)}subtractPadding(t){return ee(this,jl,Gg).call(this,-t.width,-t.height)}};jl=new WeakSet,Gg=function(t,n){return new Rg({px:(this.width.px??0)+t,grow:this.width.grow},{px:(this.height.px??0)+n,grow:this.height.grow})};let jr=Rg;const js=Object.freeze({px:0,grow:0}),My=new jr(js,js);function l0(e){return!e.px&&!e.grow}function Df(e){return e||0}function iD(e){return e&&(Ct(e.px)||Ct(e.grow))}function Py(e){if(Ny(e))throw new Error("parseSizeDef does not accept step-based sizes.");if(iD(e))return e;if(Ct(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}`)}class _t{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 _t(this.top+t,this.right+t,this.bottom+t,this.left+t)}add(t){return new _t(this.top+t.top,this.right+t.right,this.bottom+t.bottom,this.left+t.left)}subtract(t){return new _t(this.top-t.top,this.right-t.right,this.bottom-t.bottom,this.left-t.left)}union(t){return new _t(Math.max(this.top,t.top),Math.max(this.right,t.right),Math.max(this.bottom,t.bottom),Math.max(this.left,t.left))}getHorizontal(){return new _t(0,this.right,0,this.left)}getVertical(){return new _t(this.top,0,this.bottom,0)}get horizontalTotal(){return this.left+this.right}get verticalTotal(){return this.top+this.bottom}static createFromConfig(t){return typeof t=="number"?this.createUniformPadding(t):t?this.createFromRecord(t):u0}static createFromRecord(t){return new _t(t.top,t.right,t.bottom,t.left)}static zero(){return u0}static createUniformPadding(t){return new _t(t,t,t,t)}}const u0=_t.createUniformPadding(0);Object.freeze(u0);const aD=/^([A-Za-z]+:)?\/\//;function oD(e,t){if(t&&aD.test(t))return t;const n=e();return n&&t?n.endsWith("/")?n+t:n+"/"+t:n??t}const sD="VISIT_SKIP",qs="VISIT_STOP",Ly=e=>e;class lD{constructor(t,n,r,i,a,o={}){ne(this,da);ne(this,Wl);ne(this,To,{});ne(this,ql,{});ne(this,Zl,{});Bn(this,"opacityFunction",Ly);Bn(this,"coords");if(!t)throw new Error("View spec must be defined!");this.context=n,this.layoutParent=r,this.dataParent=i,this.name=t.name||a,this.spec=t,this.resolutions={scale:{},axis:{}},_y(this),this.options={blockEncodingInheritance:!1,contributesToScaleDomain:!0,...o},this.needsAxes={x:!1,y:!1}}getPadding(){return this._cache("size/padding",()=>_t.createFromConfig(this.spec.padding))}getOverhang(){return _t.zero()}isScrollable(){return this.spec.viewportWidth!=null||this.spec.viewportHeight!=null}getSize(){return this._cache("size/size",()=>this.isConfiguredVisible()?new jr(ee(this,da,au).call(this,"width"),ee(this,da,au).call(this,"height")):My)}getViewportSize(){if(!this.isScrollable())return this.getSize();if(!this.isConfiguredVisible())return My;const t=this.getSize();return new jr(ee(this,da,au).call(this,"viewportWidth")??t.width,ee(this,da,au).call(this,"viewportHeight")??t.height)}isConfiguredVisible(){return this.context.isViewConfiguredVisible(this)}isVisibleInSpec(){return this.spec.visible??!0}isVisible(){return this.getLayoutAncestors().every(t=>t.isConfiguredVisible())}getEffectiveOpacity(){var t;return this.opacityFunction(((t=this.layoutParent)==null?void 0:t.getEffectiveOpacity())??1)}getPathString(){return this.getLayoutAncestors().map(t=>t.name).reverse().join("/")}getLayoutAncestors(){return ee(this,Wl,Hg).call(this,"layoutParent")}getDataAncestors(){return ee(this,Wl,Hg).call(this,"dataParent")}handleBroadcast(t){for(const n of W(this,To)[t.type]||[])n(t)}_addBroadcastHandler(t,n){let r=W(this,To)[t];r||(r=[],W(this,To)[t]=r),r.push(n)}handleInteractionEvent(t,n,r){const i=r?W(this,ql):W(this,Zl);for(const a of i[n.type]||[])a(t,n)}addInteractionEventListener(t,n,r){const i=r?W(this,ql):W(this,Zl);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!==qs)return n}catch(n){throw n.view=this,n}}getDescendants(){const t=[];return this.visit(n=>{t.push(n)}),t}configureViewOpacity(){(!this.opacityFunction||this.opacityFunction===Ly)&&(this.opacityFunction=fD(this))}onBeforeRender(){}render(t,n,r={}){this.coords=r.clipRect?n.intersect(r.clipRect):n}getEncoding(){const t=this.dataParent&&!this.options.blockEncodingInheritance?this.dataParent.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.layoutParent)return this.layoutParent.getFacetAccessor(this)}getFacetFields(t){var r;const n=this.getEncoding().sample;return Pi(n)?[n.field]:(r=this.layoutParent)==null?void 0:r.getFacetFields(this)}getSampleFacetTexture(){}getScaleResolution(t){const n=Li(t);return this.getDataAncestors().map(r=>r.resolutions.scale[n]).find(r=>r)}getAxisResolution(t){const n=Li(t);return this.getDataAncestors().map(r=>r.resolutions.axis[n]).find(r=>r)}getConfiguredResolution(t,n){var r,i;return(i=(r=this.spec.resolve)==null?void 0:r[n])==null?void 0:i[t]}getConfiguredOrDefaultResolution(t,n){return this.getConfiguredResolution(t,n)??this.getConfiguredResolution("default",n)??this.getDefaultResolution(t,n)}getDefaultResolution(t,n){return"independent"}getBaseUrl(){return oD(()=>{var t;return(t=this.dataParent)==null?void 0:t.getBaseUrl()},this.spec.baseUrl)}isPickingSupported(){return!0}getTitleText(){const t=this.spec.title;if(t)return Pe(t)?t:t.text}_cache(t,n){return qa(this,t,n)}_invalidateCacheByPrefix(t,n="self"){switch(n){case"self":If(this,t);break;case"ancestors":for(const r of this.getLayoutAncestors())If(r,t);break;case"progeny":this.visit(r=>If(r,t));break}}invalidateSizeCache(){this._invalidateCacheByPrefix("size/","ancestors")}propagateInteractionEvent(t){}}To=new WeakMap,ql=new WeakMap,Zl=new WeakMap,da=new WeakSet,au=function(t){var i;let n=this.spec[t];const r=t=="viewportWidth"||t=="viewportHeight";if(Ny(n)){if(r)throw new qi(`Cannot use step-based size with "${t}"!`,this);const a=n.step,o=(i=this.getScaleResolution(t=="width"?"x":"y"))==null?void 0:i.getScale();if(o){let s=0;if(Nn(o.type))s=o.domain().length;else if(["locus","index"].includes(o.type)){const l=o.domain();s=ds(l)-l[0]}else throw new qi(`Cannot use step-based size with "${o.type}" scale!`,this);const u=o;return s=pd(s,u.paddingInner(),u.paddingOuter()),{px:s*a,grow:0}}else throw new qi("Cannot use 'step' size with missing scale!",this)}else return(n&&Py(n))??(r?void 0:{px:0,grow:1})},Wl=new WeakSet,Hg=function(t){const n=[];let r=this;do n.push(r),r=r[t];while(r);return n};function uD(e){return"unitsPerPixel"in e}function fD(e){const t=e.spec.opacity;if(t!==void 0){if(Ct(t))return n=>n*t;if(uD(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 qi("Cannot find a resolved quantitative scale for dynamic opacity!",e);const i=od().domain(t.unitsPerPixel).range(t.values).clamp(!0);return a=>{const s=hu(r.domain())/1e3;return i(s)*a}}else if(Ty(t)){const n=e.context.paramBroker.createExpression(t.expr);return r=>n(null)*r}}return n=>n}const Ny=e=>!!(e!=null&&e.step);class Zi extends lD{constructor(t,n,r,i,a,o){super(t,n,r,i,a,o),this.spec=t}async initializeChildren(){}*[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===qs)return n;if(n!==sD){t.beforeChildren&&t.beforeChildren(this);for(const r of this){const i=r.visit(t);if(i===qs)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 Zi)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,qs}),n}getDefaultResolution(t,n){return"shared"}}const Oy=1;function f0(){let e=[0,1],t=[0,1],n=1,r=1,i=0,a=0,o=.5,s=0;const l=f=>(f+o-e[0])/n*r+t[0];return l.invert=f=>(f-t[0])/r*n+e[0]-o,l.domain=function(f){if(arguments.length){e=e4(f),n=e[1]-e[0];const c=e[0]===0&&e[0]===0;if(n<Oy&&!c){n=Oy;const h=(e[0]+e[1])/2;e[0]=h-n/2,e[1]=h+n/2}return l}else return e.slice()},l.range=function(f){return arguments.length?(t=[...f],r=t[1]-t[0],l):t},l.numberingOffset=function(f){return arguments.length?(s=f,l):s},l.padding=function(f){return arguments.length?(a=f,i=Math.min(1,f),l):i},l.paddingInner=function(f){return arguments.length?(i=Math.min(1,f),l):i},l.paddingOuter=function(f){return arguments.length?(a=f,l):a},l.align=function(f){return arguments.length?(o=Math.max(0,Math.min(1,f)),l):o},l.step=()=>r/n,l.bandwidth=()=>l.step(),l.ticks=f=>{const c=l.align(),h=l.numberingOffset();return bu(e[0]-c+h,e[1]-c+h,Math.min(f,Math.ceil(n))).filter(Number.isInteger).map(d=>d-s)},l.tickFormat=(f,c)=>{if(c)throw new Error("Index scale's tickFormat does not support a specifier!");const d=bi(e[0],e[1],Math.min(f,Math.ceil(n)))<1e5?gt(","):gt(".3s");return p=>d(p+s)},l.copy=()=>f0().domain(e).range(t).paddingInner(i).paddingOuter(a).numberingOffset(s),l}function cD(){const e=f0().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(f=>t.toChromosome(f)),u=Math.max(1,bi(i[0],i[1],r)),l=[];for(let f=o.index;f<=s.index;f++){const c=t.chromosomes[f],h=Math.max(c.continuousStart+u,i[0]-(i[0]-c.continuousStart)%u),d=Math.min(c.continuousEnd-u/4,i[1]+1);for(let p=h;p<=d;p+=u){const b=p-a;b>=i[0]&&b<i[1]&&l.push(b)}}return l},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(),l=bi(a[0],a[1],Math.min(r,Math.ceil(o)))<1e6?gt(","):gt(".3s"),f=c=>c-t.toChromosome(c).continuousStart;return c=>l(f(c)+s)};const n=e.copy;return e.copy=()=>n().genome(t),e}function hD(e){return e.type=="locus"}function Ff(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||Za(o)&&Za(s)||Za(o)&&s===!0||o===!0&&Rt(s),a=o=>{for(let s in o){const u=o[s];if(!n.includes(s)&&u!==void 0)if(r[s]!==void 0&&!i(r[s],u))console.warn(`Conflicting property ${s} of ${t}: (${JSON.stringify(r[s])} and ${JSON.stringify(o[s])}). Using ${JSON.stringify(r[s])}.`);else{const l=r[s];if(Za(l))Za(u)&&(r[s]=Ff([l,u],s));else if(Za(u)){if(!(l===!0||l===void 0))throw new Error("Bug in merge! Target is: "+l);r[s]=Ff([{},u],s)}else r[s]=u}}};for(const o of e)a(o);return r}function Za(e){return Rt(e)&&!Array.isArray(e)}/*!
|
|
335
|
+
if(scale<1.0){if(uSqueeze){vec2 scaleFadeExtent=vec2(3.0,6.0)/size;if(scale<scaleFadeExtent[0]){gl_Position=vec4(0.0);return;}size*=scale;opacity*=linearstep(scaleFadeExtent[0],scaleFadeExtent[1],scale);}else if(scale<1.0){gl_Position=vec4(0.0);return;}}vec2 charPos=rotationMatrix*(vertexCoord*size+uD);vec2 unitPos=pos+charPos/uViewportSize;gl_Position=unitToNdc(unitPos);vSlope=max(1.0,min(size.x,size.y)/uSdfNumerator);vColor=vec4(getScaled_color()*opacity,opacity);vTexCoord=textureCoord;if(maxValue(uViewportEdgeFadeDistance)>-pow(10.0,10.0)){vEdgeFadeOpacity=minValue(((vec4(1.0,1.0,0.0,0.0)+vec4(-1.0,-1.0,1.0,1.0)*unitPos.yxyx)*uViewportSize.yxyx-uViewportEdgeFadeDistance)/uViewportEdgeFadeWidth);}else{vEdgeFadeOpacity=1.0;}setupPicking();}`,rR="uniform sampler2D uTexture;in vec2 vTexCoord;in float vEdgeFadeOpacity;in vec4 vColor;in float vSlope;out lowp vec4 fragColor;float median(float r,float g,float b){return max(min(r,g),min(max(r,g),b));}void main(){vec3 c=texture(uTexture,vTexCoord).rgb;float sigDist=1.0-median(c.r,c.g,c.b);float slope=uLogoLetter? 0.7/length(vec2(dFdy(sigDist),dFdx(sigDist))): vSlope;float opa=clamp((sigDist-0.5)*slope+0.5,0.0,1.0);opa*=pow(clamp(vEdgeFadeOpacity,0.0,1.0),2.2);fragColor=vColor*opa;if(uPickingEnabled){fragColor=vPickingColor;}}",iR=`layout(std140)uniform Mark{uniform mediump float uSdfNumerator;uniform mediump vec2 uD;uniform mediump vec4 uViewportEdgeFadeWidth;uniform mediump vec4 uViewportEdgeFadeDistance;uniform bool uSqueeze;uniform bool uLogoLetter;uniform lowp ivec2 uAlign;uniform mediump float uPaddingX;uniform bool uFlushX;uniform mediump float uPaddingY;uniform bool uFlushY;
|
|
336
|
+
#pragma markUniforms
|
|
337
|
+
};`,aR={left:-1,center:0,right:1},oR={top:-1,middle:0,bottom:1,alphabetic:1};class sR extends el{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(),this.setupExprRefsNeedingGraphicsUpdate(["text","fitToBand","logoLetters"])}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 Oa)this.properties.fitToBand&&R0(t,n);return t}async initializeGraphics(){await super.initializeGraphics(),this.createAndLinkShaders(nR,rR,[iR])}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const t=this.properties;this.registerMarkUniformValue("uSdfNumerator",{expr:"devicePixelRatio"},n=>{let r=.35;return this.properties.logoLetters&&(r/=2),this.font.metrics.common.base/(n/r)}),this.registerMarkUniformValue("uPaddingX",t.paddingX),this.registerMarkUniformValue("uPaddingY",t.paddingY),this.registerMarkUniformValue("uFlushX",t.flushX,n=>!!n),this.registerMarkUniformValue("uFlushY",t.flushY,n=>!!n),this.registerMarkUniformValue("uSqueeze",t.squeeze,n=>!!n),Xs(this.markUniformInfo,{uAlign:[aR[t.align],oR[t.baseline]],uD:[t.dx,-t.dy],uLogoLetter:!!t.logoLetters,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="format"in r.text?mt(r.text.format):l=>l;for(const l of n){const c=o(i(l)),f=Ue(c)?c:c===null?"":""+c;a+=f&&f.length||0}const s=new vD({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 u=s.toArrays();this.rangeMap.migrateEntries(u.rangeMap),this.updateBufferInfo(u)}prepareRender(t){const n=super.prepareRender(t);return n.push(()=>{Wa(this.programInfo,{uTexture:this.font.texture})}),n.push(()=>this.bindOrSetMarkUniformBlock()),n.push(()=>$i(this.gl,this.programInfo,this.vertexArrayInfo)),n}render(t){const n=this.gl;return this.createRenderCallback((r,i)=>Zc(n,this.vertexArrayInfo,n.TRIANGLES,i,r),t)}}function pw(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)+(M0(p)?0:n),s+=tf(p.grow);o-=n;const u=Math.max(0,t-o),l=r!==void 0?p=>Math.round(p*r)/r:p=>p,c=[],f=[],h=p=>{const m=c.length;if(!m)return;const y=(p?n:0)*(a?-1:1);d-=y;for(let w=0;w<m;w++)f.push({location:d+(w+1)/(m+1)*y,size:0});d+=y,c.length=0};let d=a?Math.max(t,o):0+i;if(e.length==1&&M0(e[0]))return[{location:d,size:0}];for(let p=0;p<e.length;p++){const m=e[p];if(M0(m))c.push(m);else{h(f.length>0);const y=tf(m.px)+(s?tf(m.grow)/s*u:0);a&&(d-=y),f.push({location:l(d),size:l(y)}),a?d-=n:d+=y+n}}return d+=a?n:-n,h(!1),f}function lR(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 im=class im{constructor(t,n){K(this,ru);this.width=t,this.height=n}addPadding(t){return J(this,ru,dm).call(this,t.width,t.height)}subtractPadding(t){return J(this,ru,dm).call(this,-t.width,-t.height)}};ru=new WeakSet,dm=function(t,n){return new im({px:(this.width.px??0)+t,grow:this.width.grow},{px:(this.height.px??0)+n,grow:this.height.grow})};let Jr=im;const tl=Object.freeze({px:0,grow:0}),gw=new Jr(tl,tl);function M0(e){return!e.px&&!e.grow}function tf(e){return e||0}function uR(e){return e&&(Tt(e.px)||Tt(e.grow))}function mw(e){if(yw(e))throw new Error("parseSizeDef does not accept step-based sizes.");if(uR(e))return e;if(Tt(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}`)}class St{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 St(this.top+t,this.right+t,this.bottom+t,this.left+t)}add(t){return new St(this.top+t.top,this.right+t.right,this.bottom+t.bottom,this.left+t.left)}subtract(t){return new St(this.top-t.top,this.right-t.right,this.bottom-t.bottom,this.left-t.left)}union(t){return new St(Math.max(this.top,t.top),Math.max(this.right,t.right),Math.max(this.bottom,t.bottom),Math.max(this.left,t.left))}getHorizontal(){return new St(0,this.right,0,this.left)}getVertical(){return new St(this.top,0,this.bottom,0)}get horizontalTotal(){return this.left+this.right}get verticalTotal(){return this.top+this.bottom}static createFromConfig(t){return typeof t=="number"?this.createUniformPadding(t):t?this.createFromRecord(t):P0}static createFromRecord(t){return new St(t.top,t.right,t.bottom,t.left)}static zero(){return P0}static createUniformPadding(t){return new St(t,t,t,t)}}const P0=St.createUniformPadding(0);Object.freeze(P0);const cR=/^([A-Za-z]+:)?\/\//;function fR(e,t){if(t&&cR.test(t))return t;const n=e();return n&&t?n.endsWith("/")?n+t:n+"/"+t:n??t}const hR="VISIT_SKIP",nl="VISIT_STOP",bw=e=>e;class dR{constructor(t,n,r,i,a,o={}){K(this,ma);K(this,ou);K(this,Mo,{});K(this,iu,{});K(this,au,{});yn(this,"opacityFunction",bw);yn(this,"coords");if(!t)throw new Error("View spec must be defined!");if(this.context=n,this.layoutParent=r,this.dataParent=i,this.name=t.name||a,this.spec=t,this.resolutions={scale:{},axis:{}},aw(this),this.options={blockEncodingInheritance:!1,contributesToScaleDomain:!0,...o},this.needsAxes={x:!1,y:!1},this.paramMediator=new rk(()=>{var s;return(s=this.dataParent)==null?void 0:s.paramMediator}),t.params)for(const s of t.params)this.paramMediator.registerParam(s)}getPadding(){return this._cache("size/padding",()=>St.createFromConfig(this.spec.padding))}getOverhang(){return St.zero()}isScrollable(){return this.spec.viewportWidth!=null||this.spec.viewportHeight!=null}getSize(){return this._cache("size/size",()=>this.isConfiguredVisible()?new Jr(J(this,ma,_u).call(this,"width"),J(this,ma,_u).call(this,"height")):gw)}getViewportSize(){if(!this.isScrollable())return this.getSize();if(!this.isConfiguredVisible())return gw;const t=this.getSize();return new Jr(J(this,ma,_u).call(this,"viewportWidth")??t.width,J(this,ma,_u).call(this,"viewportHeight")??t.height)}isConfiguredVisible(){return this.context.isViewConfiguredVisible(this)}isVisibleInSpec(){return this.spec.visible??!0}isVisible(){return this.getLayoutAncestors().every(t=>t.isConfiguredVisible())}getEffectiveOpacity(){var t;return this.opacityFunction(((t=this.layoutParent)==null?void 0:t.getEffectiveOpacity())??1)}getPathString(){return this.getLayoutAncestors().map(t=>t.name).reverse().join("/")}getLayoutAncestors(){return J(this,ou,pm).call(this,"layoutParent")}getDataAncestors(){return J(this,ou,pm).call(this,"dataParent")}handleBroadcast(t){for(const n of W(this,Mo)[t.type]||[])n(t)}_addBroadcastHandler(t,n){let r=W(this,Mo)[t];r||(r=[],W(this,Mo)[t]=r),r.push(n)}handleInteractionEvent(t,n,r){const i=r?W(this,iu):W(this,au);for(const a of i[n.type]||[])a(t,n)}addInteractionEventListener(t,n,r){const i=r?W(this,iu):W(this,au);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!==nl)return n}catch(n){throw n.view=this,n}}getDescendants(){const t=[];return this.visit(n=>{t.push(n)}),t}configureViewOpacity(){(!this.opacityFunction||this.opacityFunction===bw)&&(this.opacityFunction=gR(this))}onBeforeRender(){}render(t,n,r={}){this.coords=r.clipRect?n.intersect(r.clipRect):n}getEncoding(){const t=this.dataParent&&!this.options.blockEncodingInheritance?this.dataParent.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.layoutParent)return this.layoutParent.getFacetAccessor(this)}getFacetFields(t){var r;const n=this.getEncoding().sample;return Gi(n)?[n.field]:(r=this.layoutParent)==null?void 0:r.getFacetFields(this)}getSampleFacetTexture(){}getScaleResolution(t){const n=Hi(t);return this.getDataAncestors().map(r=>r.resolutions.scale[n]).find(r=>r)}getAxisResolution(t){const n=Hi(t);return this.getDataAncestors().map(r=>r.resolutions.axis[n]).find(r=>r)}getConfiguredResolution(t,n){var r,i;return(i=(r=this.spec.resolve)==null?void 0:r[n])==null?void 0:i[t]}getConfiguredOrDefaultResolution(t,n){return this.getConfiguredResolution(t,n)??this.getConfiguredResolution("default",n)??this.getDefaultResolution(t,n)}getDefaultResolution(t,n){return"independent"}getBaseUrl(){return fR(()=>{var t;return(t=this.dataParent)==null?void 0:t.getBaseUrl()},this.spec.baseUrl)}isPickingSupported(){return!0}getTitleText(){const t=this.spec.title;if(t)return Ue(t)?t:It(t.text)?this.paramMediator.evaluateAndGet(t.text.expr):t.text}_cache(t,n){return Kc(this,t,n)}_invalidateCacheByPrefix(t,n="self"){switch(n){case"self":Jc(this,t);break;case"ancestors":for(const r of this.getLayoutAncestors())Jc(r,t);break;case"progeny":this.visit(r=>Jc(r,t));break}}invalidateSizeCache(){this._invalidateCacheByPrefix("size/","ancestors")}propagateInteractionEvent(t){}}Mo=new WeakMap,iu=new WeakMap,au=new WeakMap,ma=new WeakSet,_u=function(t){var i;let n=this.spec[t];const r=t=="viewportWidth"||t=="viewportHeight";if(yw(n)){if(r)throw new Zi(`Cannot use step-based size with "${t}"!`,this);const a=n.step,o=(i=this.getScaleResolution(t=="width"?"x":"y"))==null?void 0:i.scale;if(o){let s=0;if(Hn(o.type))s=o.domain().length;else if(["locus","index"].includes(o.type)){const l=o.domain();s=Es(l)-l[0]}else throw new Zi(`Cannot use step-based size with "${o.type}" scale!`,this);const u=o;return s=Gd(s,u.paddingInner(),u.paddingOuter()),{px:s*a,grow:0}}else throw new Zi("Cannot use 'step' size with missing scale!",this)}else return(n&&mw(n))??(r?void 0:{px:0,grow:1})},ou=new WeakSet,pm=function(t){const n=[];let r=this;do n.push(r),r=r[t];while(r);return n};function pR(e){return"unitsPerPixel"in e}function gR(e){const t=e.spec.opacity;if(t!==void 0){if(Tt(t))return n=>n*t;if(pR(t)){const n=a=>{var s;const o=(s=e.getScaleResolution(a))==null?void 0:s.scale;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 Zi("Cannot find a resolved quantitative scale for dynamic opacity!",e);const i=Fd().domain(t.unitsPerPixel).range(t.values).clamp(!0);return a=>{const s=Du(r.domain())/1e3;return i(s)*a}}else if(It(t)){const n=e.paramMediator.createExpression(t.expr);return n.addListener(()=>e.context.animator.requestRender()),r=>n(null)*r}}return n=>n}const yw=e=>!!(e!=null&&e.step);class Yi extends dR{constructor(t,n,r,i,a,o){super(t,n,r,i,a,o),this.spec=t}async initializeChildren(){}*[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===nl)return n;if(n!==hR){t.beforeChildren&&t.beforeChildren(this);for(const r of this){const i=r.visit(t);if(i===nl)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 Yi)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,nl}),n}getDefaultResolution(t,n){return"shared"}}const ww=1;function L0(){let e=[0,1],t=[0,1],n=1,r=1,i=0,a=0,o=.5,s=0;const l=c=>(c+o-e[0])/n*r+t[0];return l.invert=c=>(c-t[0])/r*n+e[0]-o,l.domain=function(c){if(arguments.length){e=G4(c),n=e[1]-e[0];const f=e[0]===0&&e[0]===0;if(n<ww&&!f){n=ww;const h=(e[0]+e[1])/2;e[0]=h-n/2,e[1]=h+n/2}return l}else return e.slice()},l.range=function(c){return arguments.length?(t=[...c],r=t[1]-t[0],l):t},l.numberingOffset=function(c){return arguments.length?(s=c,l):s},l.padding=function(c){return arguments.length?(a=c,i=Math.min(1,c),l):i},l.paddingInner=function(c){return arguments.length?(i=Math.min(1,c),l):i},l.paddingOuter=function(c){return arguments.length?(a=c,l):a},l.align=function(c){return arguments.length?(o=Math.max(0,Math.min(1,c)),l):o},l.step=()=>r/n,l.bandwidth=()=>l.step(),l.ticks=c=>{const f=l.align(),h=l.numberingOffset();return Ou(e[0]-f+h,e[1]-f+h,Math.min(c,Math.ceil(n))).filter(Number.isInteger).map(d=>d-s)},l.tickFormat=(c,f)=>{if(f)throw new Error("Index scale's tickFormat does not support a specifier!");const d=Fr(e[0],e[1],Math.min(c,Math.ceil(n)))<1e5?mt(","):mt(".3s");return p=>d(p+s)},l.copy=()=>L0().domain(e).range(t).paddingInner(i).paddingOuter(a).numberingOffset(s),l}function mR(){const e=L0().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(c=>t.toChromosome(c)),u=Math.max(1,Fr(i[0],i[1],r)),l=[];for(let c=o.index;c<=s.index;c++){const f=t.chromosomes[c],h=Math.max(f.continuousStart+u,i[0]-(i[0]-f.continuousStart)%u),d=Math.min(f.continuousEnd-u/4,i[1]+1);for(let p=h;p<=d;p+=u){const m=p-a;m>=i[0]&&m<i[1]&&l.push(m)}}return l},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(),l=Fr(a[0],a[1],Math.min(r,Math.ceil(o)))<1e6?mt(","):mt(".3s"),c=f=>f-t.toChromosome(f).continuousStart;return f=>l(c(f)+s)};const n=e.copy;return e.copy=()=>n().genome(t),e}function bR(e){return e.type=="locus"}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||Ya(o)&&Ya(s)||Ya(o)&&s===!0||o===!0&&kt(s),a=o=>{for(let s in o){const u=o[s];if(!n.includes(s)&&u!==void 0)if(r[s]!==void 0&&!i(r[s],u))console.warn(`Conflicting property ${s} of ${t}: (${JSON.stringify(r[s])} and ${JSON.stringify(o[s])}). Using ${JSON.stringify(r[s])}.`);else{const l=r[s];if(Ya(l))Ya(u)&&(r[s]=nf([l,u],s));else if(Ya(u)){if(!(l===!0||l===void 0))throw new Error("Bug in merge! Target is: "+l);r[s]=nf([{},u],s)}else r[s]=u}}};for(const o of e)a(o);return r}function Ya(e){return kt(e)&&!Array.isArray(e)}/*!
|
|
265
338
|
* Adapted from vega-encode:
|
|
266
339
|
* https://github.com/vega/vega/blob/master/packages/vega-encode/src/ticks.js
|
|
267
340
|
*
|
|
@@ -269,7 +342,7 @@ if(scale<1.0){if(uSqueeze){vec2 scaleFadeExtent=vec2(3.0,6.0)/size;if(scale<scal
|
|
|
269
342
|
* All rights reserved.
|
|
270
343
|
*
|
|
271
344
|
* BSD-3-Clause License: https://github.com/vega/vega-lite/blob/master/LICENSE
|
|
272
|
-
*/function
|
|
345
|
+
*/function vw(e,t,n){return Tt(t)&&n!=null&&(t=Math.min(t,~~(Du(e.domain())/n)||1)),kt(t)&&(t.step,t=t.interval),t}function xw(e,t,n){var r=e.range(),i=Math.floor(r[0]),a=Math.ceil(wn(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],wn(t)];t.length>n&&t.length>=3;)t=t.filter(function(s,u){return!(u%2)});t.length<3&&(t=o)}return t}function yR(e,t){return e.bins?xw(e,wR(e.bins,t)):e.ticks?e.ticks(t):e.domain()}function wR(e,t){var n=e.length,r=~~(n/(t||n));return r<2?e.slice():e.filter(function(i,a){return!(a%r)})}function vR(e,t,n){var r=e.tickFormat?e.tickFormat(t,n):n?mt(n):String;if(A2(e.type)){var i=AR(n);r=e.bins?i:xR(r,i)}return r}function xR(e,t){return function(n){return e(n)?t(n):""}}function AR(e){var t=Mr(e||",");if(t.precision==null){switch(t.precision=12,t.type){case"%":t.precision-=2;break;case"e":t.precision-=1;break}return ER(mt(t),mt(".1f")(1)[1])}else return mt(t)}function ER(e,t){return function(n){var r=e(n),i=r.indexOf(t),a,o;if(i<0)return r;for(a=_R(r,i),o=a<r.length?r.slice(a):"";--a>i;)if(r[a]!=="0"){++a;break}return r.slice(0,a)+o}}function _R(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}/*!
|
|
273
346
|
* Adapted from vega-encode:
|
|
274
347
|
* https://github.com/vega/vega/blob/master/packages/vega-encode/src/Scale.js
|
|
275
348
|
*
|
|
@@ -277,11 +350,11 @@ if(scale<1.0){if(uSqueeze){vec2 scaleFadeExtent=vec2(3.0,6.0)/size;if(scale<scal
|
|
|
277
350
|
* All rights reserved.
|
|
278
351
|
*
|
|
279
352
|
* BSD-3-Clause License: https://github.com/vega/vega-lite/blob/master/LICENSE
|
|
280
|
-
*/const vD="locus",xD="index";var AD=5;function ED(e){const t=e.type;return!e.bins&&(t===Fa||t===ks||t===Ts)}function Gy(e){return bt(e)&&![Ln,xD,vD].includes(e)}function Hy(e){return e||{warn:(t,...n)=>console.warn(t,...n)}}var _D=pu(["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 Vy(e,t,n){n=Hy(n);for(const r in e)if(!_D[r]){if(r==="padding"&&Gy(t.type))continue;Mt(t[r])?t[r](e[r]):n.warn("Unsupported scale property: "+r)}FD(t,e,DD(t,e,TD(t,e,n)))}function SD(e,t){const n=CD(e),r=Ae(n);if(!r)throw new Error("Unknown scale type: "+n);const i=r();return!e.domain&&bt(i.type)&&(e.domain=[0,0]),Vy(e,i,t),i}function CD(e){var t=e.type,n="",r;return t===Ln?Ln+"-"+Fa:(kD(e)&&(r=e.rawDomain?e.rawDomain.length:e.domain?e.domain.length+ +(e.domainMid!=null):0,n=r===2?Ln+"-":r===3?Ra+"-":""),(n+t||Fa).toLowerCase())}function kD(e){const t=e.type;return bt(t)&&t!==Nb&&t!==Ob&&(e.scheme||e.range&&e.range.length&&e.range.every(Pe))}function TD(e,t,n){if(!e.domain)return 0;n=Hy(n);var r=ID(e,t.domainRaw,n);if(r>-1)return r;var i=t.domain,a=e.type,o=t.zero||t.zero===void 0&&ED(e),s,u;return i?(Gy(a)&&t.padding&&i[0]!==gn(i)&&(i=BD(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&&(u=t.domainMid,(u<i[0]||u>i[s])&&n.warn("Scale domainMid exceeds domain min or max.",u),i.splice(s,0,u))),e.domain(jy(a,i,n)),a===md&&e.unknown(t.domainImplicit?Nh:void 0),t.nice&&e.nice&&e.nice(t.nice!==!0&&zy(e,t.nice)||null),i.length):0}function ID(e,t,n){return t?(e.domain(jy(e.type,t,n)),t.length):-1}function BD(e,t,n,r,i,a){var o=Math.abs(gn(n)-n[0]),s=o/(o-2*r),u=e===Lr?Xg(t,null,s):e===Ts?Yc(t,null,s,.5):e===ks?Yc(t,null,s,i||1):e===$u?__(t,null,s,a||1):$g(t,null,s);return t=t.slice(),t[0]=u[0],t[t.length-1]=u[1],t}function jy(e,t,n){if(qb(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: "+du(t))}return t}function DD(e,t,n){let r=t.bins;if(r&&!Ft(r)){const i=(r.start==null||r.stop==null)&&e.domain(),a=r.start==null?i[0]:r.start,o=r.stop==null?gn(i):r.stop,s=r.step;s||Qe("Scale bins parameter missing step property."),r=jo(a,o+s,s)}return r?e.bins=r:e.bins&&delete e.bins,e.type===yd&&(r?!t.domain&&!t.domainRaw&&(e.domain(r),n=r.length):e.bins=e.domain()),n}function FD(e,t,n){var r=e.type,i=t.round||!1,a=t.range;if(t.rangeStep!=null)a=RD(r,t,n);else if(t.scheme&&(a=MD(r,t,n),Mt(a))){if(e.interpolator)return e.interpolator(a);Qe(`Scale type ${r} does not support interpolating color schemes.`)}if(a&&Ku(r))return e.interpolator(Ju(c0(a,t.reverse),t.interpolate,t.interpolateGamma));a&&t.interpolate&&e.interpolate?e.interpolate(Zb(t.interpolate,t.interpolateGamma)):Mt(e.round)?e.round(i):Mt(e.rangeRound)&&e.interpolate(i?Ss:Mr),a&&e.range(c0(a,t.reverse))}function RD(e,t,n){e!==Gb&&e!==bd&&Qe("Only band and point scales support rangeStep.");var r=(t.paddingOuter!=null?t.paddingOuter:t.padding)||0,i=e===bd?1:(t.paddingInner!=null?t.paddingInner:t.padding)||0;return[0,t.rangeStep*pd(n,i,r)]}function MD(e,t,n){var r=t.schemeExtent,i,a;return Ft(t.scheme)?a=Ju(t.scheme,t.interpolate,t.interpolateGamma):(i=t.scheme.toLowerCase(),a=vd(i),a||Qe(`Unrecognized scheme name: ${t.scheme}`)),n=e===Ub?n+1:e===yd?n-1:e===gd||e===zb?+t.schemeCount||AD:n,Ku(e)?qy(a,r,t.reverse):Mt(a)?$8(qy(a,r),n):e===md?a:a.slice(0,n)}function qy(e,t,n){return Mt(e)&&(t||n)?Q8(e,c0(t||[0,1],n)):e}function c0(e,t){return t?e.slice().reverse():e}const Zy=gt(",d");function PD(e,t){return e.chrom+":"+Zy(Math.floor(e.pos+1))+"-"+(e.chrom!=t.chrom?t.chrom+":":"")+Zy(Math.ceil(t.pos))}const LD="https://genomespy.app/data/genomes/";class ND{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=LD;try{this.setChromSizes(OD(await ku({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=Er(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 PD(...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 OD(e){return V_(e).filter(t=>/^chr[0-9A-Z]+$/.test(t[0])).map(([t,n])=>({name:t,size:parseInt(n)}))}function Wy(e){return Rt(e)&&"chrom"in e}function zD(e){return e.every(Wy)}class Zs extends Array{constructor(){super(),this.type=void 0}extend(t){return this}extendAll(t){if(t instanceof Zs&&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 h0 extends Zs{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 Yy extends Zs{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 Qy extends Yy{constructor(){super(),this.type="nominal"}}class UD extends Zs{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 $y={quantitative:h0,index:h0,locus:h0,nominal:Qy,ordinal:Yy};function Xy(e,t){if(e=="quantitative"&&GD(t)){const n=new UD(t);return n.type=e,n}else if($y[e]){const n=new $y[e];return n.type=e,t&&n.extendAll(t),n}throw new Error("Unknown type: "+e)}function GD(e){return e&&e.length>0&&e.length!=2&&e.every(t=>typeof t=="number")}function HD(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}function VD(e,t,n){return e*Math.pow(t/e,n)}Ae("index",f0,["continuous"]),Ae("locus",cD,["continuous"]),Ae("null",ef,[]);const Ky="quantitative",Jy="ordinal",ew="nominal",tw="locus",jD="index";class qD{constructor(t){ne(this,Xn);ne(this,Nc);ne(this,Bo);ne(this,mr);ne(this,Yl);ne(this,Oc);ne(this,Mg);ne(this,Ql);ne(this,gr,void 0);ne(this,Io,new Set);ne(this,vt,void 0);this.channel=t,this.members=[],this.type=null,this.name=void 0}addEventListener(t,n){if(t!="domain")throw new Error("Unsupported event type: "+t);W(this,Io).add(n)}removeEventListener(t,n){if(t!="domain")throw new Error("Unsupported event type: "+t);W(this,Io).delete(n)}pushUnitView(t,n){var o;const r=xd(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&&!Ms(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()}isDomainInitialized(){const t=W(this,vt);if(!t)return!1;const n=t.domain();return bt(t.type)?n.length>2||n.length==2&&(n[0]!==0||n[1]!==0):n.length>0}getScaleProps(){return qa(this,"scaleProps",()=>{const t=ee(this,Nc,f_).call(this);if(t===null||t.type=="null")return{type:"null"};const n={...ee(this,Oc,c_).call(this,this.type),...t};n.type||(n.type=ZD(this.channel,this.type));const r=ee(this,Bo,qc).call(this);return r&&r.length>0?n.domain=r:Nn(n.type)&&(n.domain=new Qy),!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),WD(n,this.channel),n})}getConfiguredDomain(){return ee(this,Ql,jg).call(this,t=>Ms(t.channel)?void 0:t.view.getConfiguredDomain(t.channel))}getDataDomain(){return ee(this,Ql,jg).call(this,t=>Ms(t.channel)?void 0:t.view.extractDataDomain(t.channel))}reconfigure(){if(W(this,vt)&&W(this,vt).type!="null"){const t=this.isDomainInitialized(),n=W(this,vt).domain();Ey(this,"scaleProps");const r=this.getScaleProps();if(Vy(r,W(this,vt)),bt(W(this,vt).type)&&Xe(this,gr,ee(this,Yl,Vg).call(this)),!t){ee(this,Xn,gi).call(this);return}const i=W(this,vt).domain();Bu(i,n)||(this.isZoomable()?W(this,vt).domain(n):ee(this,mr,wa).call(this)?(W(this,vt).domain(n),this.zoomTo(i,500)):ee(this,Xn,gi).call(this))}}getScale(){if(W(this,vt))return W(this,vt);const t=this.getScaleProps(),n=SD(t);return Xe(this,vt,n),hD(n)&&n.genome(this.getGenome()),bt(n.type)&&Xe(this,gr,ee(this,Yl,Vg).call(this)),n}getDomain(){return this.getScale().domain()}getComplexDomain(){var t;return((t=this.getGenome())==null?void 0:t.toChromosomalInterval(this.getDomain()))??this.getDomain()}isZoomed(){return ee(this,mr,wa).call(this)&&Bu(ee(this,Bo,qc).call(this),this.getDomain())}isZoomable(){return ee(this,mr,wa).call(this)&&!!this.getScaleProps().zoom}zoom(t,n,r){if(!ee(this,mr,wa).call(this))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=x_(o,r||0),o=$g(o,s,t);break;case"log":o=A_(o,r||0),o=Xg(o,s,t);break;case"pow":case"sqrt":{const u=i;o=E_(o,r||0,u.exponent()),o=Yc(o,s,t,u.exponent());break}default:throw new Error("Zooming is not implemented for: "+i.type)}return W(this,gr)&&(o=S_(o,W(this,gr)[0],W(this,gr)[1])),[0,1].some(u=>o[u]!=a[u])?(i.domain(o),ee(this,Xn,gi).call(this),!0):!1}async zoomTo(t,n=!1){var s;if(Go(n)&&(n=n?700:0),!ee(this,mr,wa).call(this))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 u=o[1]-o[0],l=o[0]+u/2,f=r[1]-r[0],c=r[0]+f/2;await i.transition({duration:n,easingFunction:HD,onUpdate:h=>{const d=VD(u,f,h),p=(u-d)/(u-f),b=p*c+(1-p)*l;a.domain([b-d/2,b+d/2]),ee(this,Xn,gi).call(this)}}),a.domain(r),ee(this,Xn,gi).call(this)}else a.domain(r),i==null||i.requestRender(),ee(this,Xn,gi).call(this)}resetZoom(){if(!ee(this,mr,wa).call(this))throw new Error("Not a zoomable scale!");const t=this.getDomain(),n=ee(this,Bo,qc).call(this);return[0,1].some(r=>n[r]!=t[r])?(W(this,vt).domain(n),ee(this,Xn,gi).call(this),!0):!1}getZoomLevel(){return this.isZoomable()?hu(W(this,gr))/hu(this.getScale().domain()):1}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 Wy(t)?this.getGenome().toContinuous(t.chrom,t.pos):t}fromComplexInterval(t){return this.type==="locus"&&zD(t)?this.getGenome().toContinuousInterval(t):t}}gr=new WeakMap,Io=new WeakMap,vt=new WeakMap,Xn=new WeakSet,gi=function(){for(const t of W(this,Io).values())t({type:"domain",scaleResolution:this})},Nc=new WeakSet,f_=function(){return qa(this,"mergedScaleProps",()=>{const t=this.members.map(n=>xd(n.view,n.channel).scale).filter(n=>n!==void 0);return Ff(t,"scale",["domain"])})},Bo=new WeakSet,qc=function(){return this.getConfiguredDomain()??(this.type==tw?this.getGenome().getExtent():this.getDataDomain())},mr=new WeakSet,wa=function(){const t=this.getScale().type;return bt(t)},Yl=new WeakSet,Vg=function(){const t=this.getScaleProps(),n=t.zoom;if(YD(n)&&Ft(n.extent))return this.fromComplexInterval(n.extent);if(n)return t.type=="locus"?this.getGenome().getExtent():W(this,vt).domain()},Oc=new WeakSet,c_=function(t){const n=this.channel,r={};return this.isExplicitDomain()&&(r.zero=!1),Rs(n)?r.nice=!this.isExplicitDomain():Ni(n)?r.scheme=t==ew?"tableau10":t==Jy?"blues":"viridis":nf(n)?r.range=n=="shape"?["circle","square","triangle-up","cross","diamond"]:[]:n=="size"?r.range=[0,400]:n=="angle"&&(r.range=[0,360]),r},Mg=new WeakSet,jz=function(){return this.members.map(t=>t.view.getPathString()).join(", ")},Ql=new WeakSet,jg=function(t){const n=this.members.filter(r=>!r.view.getLayoutAncestors().some(i=>!i.options.contributesToScaleDomain)).map(t).filter(r=>!!r);if(n.length)return n.reduce((r,i)=>r.extendAll(i))};function ZD(e,t){if(t==jD||t==tw){if(Xb(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=["sample"].includes(e)?"null":n[e]?n[e][[ew,Jy,Ky].indexOf(t)]:t==Ky?"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 WD(e,t){Rs(t)&&e.type!=="ordinal"&&(e.range=[0,1]),t=="opacity"&&bt(e.type)&&(e.clamp=!0)}function YD(e){return Rt(e)}function d0(e){const t=new Set;function n(r){for(const i of Object.values(r.resolutions.scale))t.add(i)}for(const r of Lt(e)){r.visit(n);for(const i of r.getDataAncestors()){if(!i.options.contributesToScaleDomain)break;n(i)}}t.forEach(r=>r.reconfigure())}function p0(...e){for(const t of e)if(t!==void 0)return t}class QD{constructor(t){this.channel=t,this.members=[]}get scaleResolution(){var t;return(t=ds(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 qa(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:Ff(t.filter(n=>n!==void 0),"axis",["title"])})}getTitle(){const t=a=>{var s;const o=xd(a.view,a.channel);if(!vn(o))return{member:a,explicitTitle:p0("axis"in o?(s=o.axis)==null?void 0:s.title:void 0,o.title),implicitTitle:p0(Pi(o)?o.field:void 0,tf(o)?o.expr:void 0)}},n=this.members.map(t),r=n.filter(a=>{var o;if(Ms(a.member.channel)&&!a.explicitTitle){const s=Li(a.member.channel);return((o=n.find(u=>u.member.view==a.member.view&&u.member.channel==s))==null?void 0:o.explicitTitle)===void 0}return!0}),i=new Set(r.map(a=>p0(a.explicitTitle,a.implicitTitle)).filter(Pe));return i.size?[...i].join(", "):null}}const $D={point:zB,rect:DB,rule:VB,link:QB,text:nD};class Yt extends Zi{constructor(t,n,r,i,a,o){super(t,n,r,i,a,o),this.spec=t;const s=$D[this.getMarkType()];if(s)this.mark=new s(this);else throw new Error(`No such mark: ${this.getMarkType()}`);this.resolve(),this.needsAxes={x:!0,y:!0}}render(t,n,r={}){super.render(t,n,r),this.isConfiguredVisible()&&(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){t||(this.resolve("scale"),this.resolve("axis"));const n=this.mark.encoding;for(const[r,i]of Object.entries(n)){if(!Ut(i))continue;const a=Li(i.resolutionChannel??r);if(!Oi(a)||t=="axis"&&!Rs(a))continue;let o=this;for(;(o.getConfiguredOrDefaultResolution(a,t)=="forced"||o.dataParent instanceof Zi&&["shared","excluded","forced"].includes(o.dataParent.getConfiguredOrDefaultResolution(a,t)))&&o.getConfiguredOrDefaultResolution(a,t)!="excluded";)o=o.dataParent;t=="axis"&&Rs(r)&&Xb(a)?(o.resolutions[t][a]||(o.resolutions[t][a]=new QD(a)),o.resolutions[t][a].pushUnitView(this,r)):t=="scale"&&Oi(r)&&(o.resolutions[t][a]||(o.resolutions[t][a]=new qD(a)),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(Ms(t))throw new Error(`getDomain(${t}), must only be called for primary channels!`);const n=this.mark.encoding[t];if(!Ut(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 Xy(n.type??"nominal",i.fromComplexInterval(r))}}extractDataDomain(t){const r=this._validateDomainQuery(t).type??"nominal",i=s=>{let u;const l=this.mark.encoding[s];if(l){const f=this.context.accessorFactory.createAccessor(l);if(f)if(u=Xy(r),f.constant)u.extend(f({}));else{const c=this.getCollector();c!=null&&c.completed&&c.visitData(h=>u.extend(f(h)))}}return u};let a=i(t);const o=Ad[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 Ma.map(t).reduce((n,r)=>n*r,1)}propagateInteractionEvent(t){this.handleInteractionEvent(void 0,t,!0),t.target=this,!t.stopped&&this.handleInteractionEvent(void 0,t,!1)}getDefaultResolution(t,n){return t=="x"?"shared":"independent"}}function*g0(e,t=[]){for(const[n,r]of e.entries())if(r instanceof Map)for(const i of g0(r,[...t,n]))yield i;else yield[[...t,n],r]}class nw extends et{get behavior(){return s0}constructor(t){super(),this.params=t??{type:"collect"},this.observers=[],this.facetBatches=void 0,this._init()}_init(){this._data=[],this.facetBatches=new _r([],JSON.stringify),this.facetBatches.set(void 0,this._data)}reset(){super.reset(),this._init()}handle(t){this._data.push(t)}beginBatch(t){LB(t)&&(this._data=[],this.facetBatches.set(Lt(t.facetId),this._data))}complete(){var i,a;const t=(i=this.params)==null?void 0:i.sort,n=t?Kg(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(u=>Re(u)),s=o.length>1?mu(this._data,...o):XD(this._data,o[0]);this.facetBatches.clear();for(const[u,l]of g0(s))this.facetBatches.set(u,l)}for(const o of this.facetBatches.values())r(o);if(this.children.length)for(const[o,s]of this.facetBatches.entries()){if(o){const u={type:"facet",facetId:o};for(const l of this.children)l.beginBatch(u)}for(const u of s)this._propagate(u)}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.")}}function XD(e,t){const n=new Map;for(let r=0,i=e.length;r<i;r++){const a=e[r],o=t(a);let s=n.get(o);s||(s=[],n.set(o,s)),s.push(a)}return n}class Rf{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 u=this.ids[o],l=this.values[o];const f=this.values[s];if(s<this.length&&f<l&&(o=s,u=this.ids[s],l=f),l>=r)break;this.ids[a]=u,this.values[a]=l,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 KD extends et{get behavior(){return Un}constructor(t){super(),this.params=t,this.startAccessor=Re(t.start),this.endAccessor=Re(t.end),this.chromAccessor=t.chrom?Re(t.chrom):n=>{},this.weightAccessor=t.weight?Re(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 Rf}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 u,l,f,c=0,h;const d=this.ends;d.clear();const p=(y,w,A)=>{if(y==w)return;let S=!1;u&&(u[t]===A?(u[n]=w,S=!0):u[t]!=0&&this._propagate(u)),S||(u=this.createSegment(y,w,A,f))},b=()=>{let y=0;for(;(y=d.peekValue())!==void 0;)p(h,y,c),h=y,c-=d.pop();h=void 0,u&&(this._propagate(u),u=void 0)};this.handle=y=>{const w=i(y);let A=0;for(;(A=d.peekValue())!==void 0&&A<w;)p(h,A,c),h=A,c-=d.pop();if(r){let _=o(y);_!==l&&(b(),f=_,l=f)}h!==void 0&&p(h,w,c),h=w;const S=s(y);c+=S,d.push(S,a(y))},this.complete=()=>{b(),super.complete()},this.beginBatch=y=>{b(),l=void 0,super.beginBatch(y)}}}function JD(e,t,n=0,r=e.length){const i=new Rf,a=r-n;let o;for(o=0;o<t&&o<a;o++)i.push(o,e[n+o]);for(;o<a;o++){const l=e[n+o];l>=i.peekValue()&&(i.push(o,l),i.pop())}const s=[];let u;for(;(u=i.pop())!==void 0;)s.push(n+u);return s.reverse()}class e9{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 t9 extends et{get behavior(){return s0}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=Re(this.params.pos),this.posBisector=gu(this.posAccessor),this.scoreAccessor=Re(this.params.score),this.widthAccessor=Re(this.params.width),this.laneAccessor=this.params.lane?Re(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 e9(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=JD(this._scores,i,this.posBisector.left(this._data,r[0]),this.posBisector.right(this._data,r[1]));for(const s of a){const u=this._data[s],l=t(this.posAccessor(u))*n,f=this.widthAccessor(u)/2+this.padding;this.reservationMaps.get(this.laneAccessor(u)).reserve(l-f,l+f)&&this._propagate(u)}super.complete()}reset(){super.reset(),this._data=[],this.groups=new Map}handle(t){this._data.push(t)}}class n9 extends et{constructor(t){super(),this.params=t,this.predicate=void 0}initialize(){this.predicate=Nu(this.params.expr,this.getGlobalObject())}handle(t){this.predicate(t)&&this._propagate(t)}}class r9 extends et{get behavior(){return Un}constructor(t){super();const n=t.index;if(t.fields){const r=Lt(t.fields).map(a=>Re(a)),i=Lt(t.as||t.fields);if(r.length!==i.length)throw new Error(`Lengths of "fields" (${r.length}), and "as" (${i.length}) do not match!`);this.handle=a=>{const o=r.map((u,l)=>u(a)??[]),s=o[0].length;for(let u=0;u<s;u++){const l=Object.assign({},a);for(let f=0;f<r.length;f++)l[i[f]]=u<o[f].length?o[f][u]:null;n&&(l[n]=u),this._propagate(l)}}}else this.handle=r=>{for(let i=0;i<r.length;i++){const a=Object.assign({},r[i]);n&&(a[n]=i),this._propagate(a)}}}}const i9="0".charCodeAt(0);function*a9(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-i9}yield r}class o9 extends et{get behavior(){return Un}constructor(t){super();const n=Re(t.exons??"exons"),r=Re(t.start??"start"),[i,a]=t.as||["exonStart","exonEnd"];this.handle=o=>{let s=r(o),u=s,l=!0;const f=n(o);for(const c of a9(f)){if(l)u=s+c;else{s=u+c;const h=Object.assign({},o);h[i]=u,h[a]=s,this._propagate(h)}l=!l}}}}class s9 extends et{get behavior(){return Un}constructor(t){super();const n=Lt(t.field).map(a=>Re(a)),r=Lt(t.separator),i=Lt(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(u=>!u(a)))return;const o=n.map((u,l)=>u(a).split(r[l]));l9(o,a);const s=o[0].length;for(let u=0;u<s;u++){const l=Object.assign({},a);for(let f=0;f<n.length;f++)l[i[f]]=o[f][u];this._propagate(l)}}}}function l9(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 u9 extends et{get behavior(){return Vr}constructor(t){super(),this.params=t,this.as=t.as,this.fn=void 0}initialize(){this.fn=Nu(this.params.expr,this.getGlobalObject())}handle(t){t[this.as]=this.fn(t),this._propagate(t)}}class rw extends et{get behavior(){return Vr}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=Re(t.chrom),o=Lt(t.pos).map(p=>Re(p)),s=Lt(t.as);if(o.length!=s.length)throw new Error('The number of "pos" and "as" elements must be equal!');const u=Lt(t.offset);let l;if(u.length==0)l=new Array(o.length).fill(0);else if(u.length==1)l=new Array(o.length).fill(u[0]);else if(u.length==o.length)l=u;else throw new Error(`Invalid "offset" parameter: ${JSON.stringify(t.offset)}!`);const f=new Function("datum","chromOffset","posAccessors",s.map((p,b)=>`datum[${JSON.stringify(p)}] = chromOffset + +posAccessors[${b}](datum) - ${l[b]};`).join(`
|
|
281
|
-
`));let c,h=0;const d=p=>{if(p!==c){if(h=i.cumulativeChromPositions.get(p),h===void 0)throw new Error("Unknown chromosome/contig: "+p);c=p}return h};this.handle=p=>{f(p,d(a(p)),o),this._propagate(p)}}}const iw={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 f9 extends et{get behavior(){return Vr}constructor(t){super();const n=i0(iw),r=Re(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 c9=65536;class h9 extends et{get behavior(){return Vr}constructor(t){super(),this.params=t}reset(){super.reset(),this.initialize()}initialize(){const t=this.params,n=t.as||"lane",r=Ct(t.spacing)?t.spacing:1,i=Re(t.start),a=Re(t.end);if(!t.preference!=!t.preferredOrder)throw new Error('Must specify both "preference" and "preferredOrder"');if(t.preference){const o=new Float64Array(c9),s=Re(t.preference),u=t.preferredOrder;let l=1/0;this.handle=f=>{const c=i(f);c<l&&o.fill(-1/0),l=c;const h=u.indexOf(s(f));let d=-1;if(h>=0&&o[h]<c)d=h;else{const p=i(f);for(d=0;d<o.length&&!(o[d]<p);d++);if(d>=o.length)throw new Error("Out of lanes!")}o[d]=a(f)+r,f[n]=d,this._propagate(f)}}else{const o=new Rf,s=new Rf;let u=-1/0,l=0;this.handle=f=>{const c=i(f);for(;o.length&&(o.peekValue()<=c||c<u);){const d=o.pop();s.push(d,d)}u=c;let h=s.pop();h===void 0&&(h=l++),f[n]=h,this._propagate(f),o.push(h,a(f)+r)}}}}class d9 extends et{get behavior(){return Un}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=>Re(i)),r=t.as?t.as:n.map(xa);this.handle=i=>{const a={};for(let o=0;o<n.length;o++)a[r[o]]=n[o](i);this._propagate(a)}}}class p9 extends et{get behavior(){return Vr}constructor(t){super();const n=new RegExp(t.regex),r=typeof t.as=="string"?[t.as]:t.as,i=Re(t.field);this.handle=a=>{const o=i(a);if(Pe(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 u=0;u<r.length;u++)a[r[u]]=s[u+1]}else if(t.skipInvalidInput)for(let u=0;u<r.length;u++)a[r[u]]=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 g9 extends et{get behavior(){return Un}constructor(t){super();const n=Lt(t.columnRegex).map(h=>new RegExp(h)),r=Lt(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,u;const l=h=>{var y;const d=Object.keys(h);for(const w of n)if(!d.some(A=>w.test(A)))throw new Error(`No columns matching the regex ${w.toString()} found in the data!`);const p=new Map;for(const[w,A]of n.entries())for(const S of d){const _=(y=A.exec(S))==null?void 0:y[1];if(_!==void 0){let T=p.get(_);T||(T=[],p.set(_,T)),T[w]=S}}o=[...p.entries()],s=d.filter(w=>!n.some(A=>A.test(w))&&!(i&&i.test(w)));const b=[...s.map(w=>JSON.stringify(w)+": datum["+JSON.stringify(w)+"]"),JSON.stringify(a)+": sampleId",...r.map((w,A)=>JSON.stringify(w)+`: datum[attrs[${A}]]`)];u=new Function("datum","sampleId","attrs",`return {
|
|
282
|
-
`+
|
|
353
|
+
*/const SR="locus",CR="index";var kR=5;function TR(e){const t=e.type;return!e.bins&&(t===Pa||t===Os||t===Ns)}function Aw(e){return yt(e)&&![Gn,CR,SR].includes(e)}function Ew(e){return e||{warn:(t,...n)=>console.warn(t,...n)}}var IR=Fu(["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 _w(e,t,n){n=Ew(n);for(const r in e)if(!IR[r]){if(r==="padding"&&Aw(t.type))continue;Pt(t[r])?t[r](e[r]):n.warn("Unsupported scale property: "+r)}OR(t,e,LR(t,e,FR(t,e,n)))}function BR(e,t){const n=DR(e),r=Ee(n);if(!r)throw new Error("Unknown scale type: "+n);const i=r();return!e.domain&&yt(i.type)&&(e.domain=[0,0]),_w(e,i,t),i}function DR(e){var t=e.type,n="",r;return t===Gn?Gn+"-"+Pa:(RR(e)&&(r=e.rawDomain?e.rawDomain.length:e.domain?e.domain.length+ +(e.domainMid!=null):0,n=r===2?Gn+"-":r===3?La+"-":""),(n+t||Pa).toLowerCase())}function RR(e){const t=e.type;return yt(t)&&t!==p2&&t!==g2&&(e.scheme||e.range&&e.range.length&&e.range.every(Ue))}function FR(e,t,n){if(!e.domain)return 0;n=Ew(n);var r=MR(e,t.domainRaw,n);if(r>-1)return r;var i=t.domain,a=e.type,o=t.zero||t.zero===void 0&&TR(e),s,u;return i?(Aw(a)&&t.padding&&i[0]!==wn(i)&&(i=PR(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&&(u=t.domainMid,(u<i[0]||u>i[s])&&n.warn("Scale domainMid exceeds domain min or max.",u),i.splice(s,0,u))),e.domain(Sw(a,i,n)),a===Vd&&e.unknown(t.domainImplicit?cd:void 0),t.nice&&e.nice&&e.nice(t.nice!==!0&&vw(e,t.nice)||null),i.length):0}function MR(e,t,n){return t?(e.domain(Sw(e.type,t,n)),t.length):-1}function PR(e,t,n,r,i,a){var o=Math.abs(wn(n)-n[0]),s=o/(o-2*r),u=e===jr?Im(t,null,s):e===Ns?Ch(t,null,s,.5):e===Os?Ch(t,null,s,i||1):e===vc?f4(t,null,s,a||1):Tm(t,null,s);return t=t.slice(),t[0]=u[0],t[t.length-1]=u[1],t}function Sw(e,t,n){if(A2(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: "+Ru(t))}return t}function LR(e,t,n){let r=t.bins;if(r&&!xt(r)){const i=(r.start==null||r.stop==null)&&e.domain(),a=r.start==null?i[0]:r.start,o=r.stop==null?wn(i):r.stop,s=r.step;s||Qe("Scale bins parameter missing step property."),r=Ko(a,o+s,s)}return r?e.bins=r:e.bins&&delete e.bins,e.type===$d&&(r?!t.domain&&!t.domainRaw&&(e.domain(r),n=r.length):e.bins=e.domain()),n}function OR(e,t,n){var r=e.type,i=t.round||!1,a=t.range;if(t.rangeStep!=null)a=NR(r,t,n);else if(t.scheme&&(a=zR(r,t,n),Pt(a))){if(e.interpolator)return e.interpolator(a);Qe(`Scale type ${r} does not support interpolating color schemes.`)}if(a&&Ac(r))return e.interpolator(Ec(O0(a,t.reverse),t.interpolate,t.interpolateGamma));a&&t.interpolate&&e.interpolate?e.interpolate(E2(t.interpolate,t.interpolateGamma)):Pt(e.round)?e.round(i):Pt(e.rangeRound)&&e.interpolate(i?Ps:Hr),a&&e.range(O0(a,t.reverse))}function NR(e,t,n){e!==y2&&e!==jd&&Qe("Only band and point scales support rangeStep.");var r=(t.paddingOuter!=null?t.paddingOuter:t.padding)||0,i=e===jd?1:(t.paddingInner!=null?t.paddingInner:t.padding)||0;return[0,t.rangeStep*Gd(n,i,r)]}function zR(e,t,n){var r=t.schemeExtent,i,a;return xt(t.scheme)?a=Ec(t.scheme,t.interpolate,t.interpolateGamma):(i=t.scheme.toLowerCase(),a=Wd(i),a||Qe(`Unrecognized scheme name: ${t.scheme}`)),n=e===b2?n+1:e===$d?n-1:e===Hd||e===m2?+t.schemeCount||kR:n,Ac(e)?Cw(a,r,t.reverse):Pt(a)?K5(Cw(a,r),n):e===Vd?a:a.slice(0,n)}function Cw(e,t,n){return Pt(e)&&(t||n)?X5(e,O0(t||[0,1],n)):e}function O0(e,t){return t?e.slice().reverse():e}const kw=mt(",d");function UR(e,t){return e.chrom+":"+kw(Math.floor(e.pos+1))+"-"+(e.chrom!=t.chrom?t.chrom+":":"")+kw(Math.ceil(t.pos))}const GR="https://genomespy.app/data/genomes/";class HR{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=GR;try{this.setChromSizes(VR(await Qu({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=Dr(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 UR(...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 VR(e){return B4(e).filter(t=>/^chr[0-9A-Z]+$/.test(t[0])).map(([t,n])=>({name:t,size:parseInt(n)}))}function Tw(e){return kt(e)&&"chrom"in e}function jR(e){return e.every(Tw)}class rl extends Array{constructor(){super(),this.type=void 0}extend(t){return this}extendAll(t){if(t instanceof rl&&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 N0 extends rl{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 Iw extends rl{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 Bw extends Iw{constructor(){super(),this.type="nominal"}}class $R extends rl{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 Dw={quantitative:N0,index:N0,locus:N0,nominal:Bw,ordinal:Iw};function Rw(e,t){if(e=="quantitative"&&qR(t)){const n=new $R(t);return n.type=e,n}else if(Dw[e]){const n=new Dw[e];return n.type=e,t&&n.extendAll(t),n}throw new Error("Unknown type: "+e)}function qR(e){return e&&e.length>0&&e.length!=2&&e.every(t=>typeof t=="number")}function WR(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}function ZR(e,t,n){return e*Math.pow(t/e,n)}Ee("index",L0,["continuous"]),Ee("locus",mR,["continuous"]),Ee("null",_c,[]);const Fw="quantitative",Mw="ordinal",Pw="nominal",Lw="locus",YR="index";class QR{constructor(t){K(this,lu);K(this,am);K(this,Dn);K(this,uu);K(this,ch);K(this,fh);K(this,cu);K(this,fu);K(this,Lo);K(this,Er);K(this,hu);K(this,hh);K(this,om);K(this,du);K(this,Ar,void 0);K(this,Po,{domain:new Set,range:new Set});K(this,Jt,void 0);K(this,su,new Set);this.channel=t,this.members=[],this.type=null,this.name=void 0}addEventListener(t,n){W(this,Po)[t].add(n)}removeEventListener(t,n){W(this,Po)[t].delete(n)}pushUnitView(t,n){var o;const r=Zd(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&&!js(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})}getConfiguredDomain(){return J(this,du,vm).call(this,t=>js(t.channel)?void 0:t.view.getConfiguredDomain(t.channel))}getDataDomain(){return J(this,du,vm).call(this,t=>js(t.channel)?void 0:t.view.extractDataDomain(t.channel))}reconfigure(){const t=W(this,Jt);if(!t||t.type=="null")return;const n=J(this,ch,W_).call(this),r=t.domain(),i=J(this,cu,bm).call(this);if(_w({...i,range:void 0},t),t.props=i,J(this,fu,ym).call(this),yt(t.type)&&Fe(this,Ar,J(this,hu,wm).call(this)),!n){J(this,Dn,Br).call(this,"domain");return}const a=t.domain();td(a,r)||(this.isZoomable()?t.domain(r):J(this,Er,va).call(this)?(t.domain(r),this.zoomTo(a,500)):J(this,Dn,Br).call(this,"domain"))}get scale(){if(W(this,Jt))return W(this,Jt);const t=J(this,cu,bm).call(this),n=BR({...t,range:void 0});n.props=t,Fe(this,Jt,n),J(this,fu,ym).call(this),bR(n)&&n.genome(this.getGenome()),yt(n.type)&&Fe(this,Ar,J(this,hu,wm).call(this));const r=n.range;if(r){const i=()=>J(this,Dn,Br).call(this,"range");n.range=function(a){if(arguments.length)r(a),i();else return r()},i()}return n}getDomain(){return this.scale.domain()}getComplexDomain(){var t;return((t=this.getGenome())==null?void 0:t.toChromosomalInterval(this.getDomain()))??this.getDomain()}isZoomed(){return J(this,Er,va).call(this)&&td(J(this,Lo,Ah).call(this),this.getDomain())}isZoomable(){return J(this,Er,va).call(this)&&!!this.scale.props.zoom}zoom(t,n,r){if(!J(this,Er,va).call(this))return!1;const i=this.scale,a=i.domain();let o=[...a],s=i.invert(n);switch(i.props.reverse&&(r=-r),"align"in i&&(s+=i.align()),i.type){case"linear":case"index":case"locus":o=l4(o,r||0),o=Tm(o,s,t);break;case"log":o=u4(o,r||0),o=Im(o,s,t);break;case"pow":case"sqrt":{const u=i;o=c4(o,r||0,u.exponent()),o=Ch(o,s,t,u.exponent());break}default:throw new Error("Zooming is not implemented for: "+i.type)}return W(this,Ar)&&(o=h4(o,W(this,Ar)[0],W(this,Ar)[1])),[0,1].some(u=>o[u]!=a[u])?(i.domain(o),J(this,Dn,Br).call(this,"domain"),!0):!1}async zoomTo(t,n=!1){var s;if(Yo(n)&&(n=n?700:0),!J(this,Er,va).call(this))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.scale,o=a.domain();if(n>0&&o.length==2){const u=o[1]-o[0],l=o[0]+u/2,c=r[1]-r[0],f=r[0]+c/2;await i.transition({duration:n,easingFunction:WR,onUpdate:h=>{const d=ZR(u,c,h),p=(u-d)/(u-c),m=p*f+(1-p)*l;a.domain([m-d/2,m+d/2]),J(this,Dn,Br).call(this,"domain")}}),a.domain(r),J(this,Dn,Br).call(this,"domain")}else a.domain(r),i==null||i.requestRender(),J(this,Dn,Br).call(this,"domain")}resetZoom(){if(!J(this,Er,va).call(this))throw new Error("Not a zoomable scale!");const t=this.getDomain(),n=J(this,Lo,Ah).call(this);return[0,1].some(r=>n[r]!=t[r])?(W(this,Jt).domain(n),J(this,Dn,Br).call(this,"domain"),!0):!1}getZoomLevel(){return this.isZoomable()?Du(W(this,Ar))/Du(this.scale.domain()):1}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.scale;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 Tw(t)?this.getGenome().toContinuous(t.chrom,t.pos):t}fromComplexInterval(t){return this.type==="locus"&&jR(t)?this.getGenome().toContinuousInterval(t):t}}Ar=new WeakMap,Po=new WeakMap,Jt=new WeakMap,su=new WeakMap,lu=new WeakSet,gm=function(){return this.members[0].view},am=new WeakSet,QU=function(){return W(this,lu,gm).context},Dn=new WeakSet,Br=function(t){for(const n of W(this,Po)[t].values())n({type:t,scaleResolution:this})},uu=new WeakSet,mm=function(){return!!this.getConfiguredDomain()},ch=new WeakSet,W_=function(){const t=W(this,Jt);if(!t)return!1;const n=t.domain();return yt(t.type)?n.length>2||n.length==2&&(n[0]!==0||n[1]!==0):n.length>0},fh=new WeakSet,Z_=function(){const t=this.members.map(n=>Zd(n.view,n.channel).scale).filter(n=>n!==void 0);return nf(t,"scale",["domain"])},cu=new WeakSet,bm=function(){const t=J(this,fh,Z_).call(this);if(t===null||t.type=="null")return{type:"null"};const n={...J(this,hh,Y_).call(this,this.type),...t};n.type||(n.type=XR(this.channel,this.type));const r=J(this,Lo,Ah).call(this);return r&&r.length>0?n.domain=r:Hn(n.type)&&(n.domain=new Bw),!n.domain&&n.domainMid!==void 0&&(n.domain=[n.domainMin??0,n.domainMax??1]),this.channel=="y"&&Hn(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),KR(n,this.channel),n},fu=new WeakSet,ym=function(){const t=W(this,Jt).props,n=t.range;if(W(this,su).forEach(i=>i.invalidate()),!n||!xt(n))return;const r=(i,a)=>a?i.slice().reverse():i;if(n.some(It)){let i;const a=()=>{W(this,Jt).range(r(i.map(o=>o()),t.reverse))};i=n.map(o=>{if(It(o)){const s=W(this,lu,gm).paramMediator.createExpression(o.expr);return s.addListener(a),W(this,su).add(s),()=>s(null)}else return()=>o}),a()}else W(this,Jt).range(r(n,t.reverse))},Lo=new WeakSet,Ah=function(){return this.getConfiguredDomain()??(this.type==Lw?this.getGenome().getExtent():this.getDataDomain())},Er=new WeakSet,va=function(){const t=this.scale.type;return yt(t)},hu=new WeakSet,wm=function(){const t=this.scale.props,n=t.zoom;if(JR(n)&&xt(n.extent))return this.fromComplexInterval(n.extent);if(n)return t.type=="locus"?this.getGenome().getExtent():W(this,Jt).domain()},hh=new WeakSet,Y_=function(t){const n=this.channel,r={};return J(this,uu,mm).call(this)&&(r.zero=!1),Vs(n)?r.nice=!J(this,uu,mm).call(this):$r(n)?r.scheme=t==Pw?"tableau10":t==Mw?"blues":"viridis":kc(n)?r.range=n=="shape"?["circle","square","triangle-up","cross","diamond"]:[]:n=="size"?r.range=[0,400]:n=="angle"&&(r.range=[0,360]),r},om=new WeakSet,XU=function(){return this.members.map(t=>t.view.getPathString()).join(", ")},du=new WeakSet,vm=function(t){const n=this.members.filter(r=>!r.view.getLayoutAncestors().some(i=>!i.options.contributesToScaleDomain)).map(t).filter(r=>!!r);if(n.length)return n.reduce((r,i)=>r.extendAll(i))};function XR(e,t){if(t==YR||t==Lw){if(T2(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=["sample"].includes(e)?"null":n[e]?n[e][[Pw,Mw,Fw].indexOf(t)]:t==Fw?"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 KR(e,t){Vs(t)&&e.type!=="ordinal"&&(e.range=[0,1]),t=="opacity"&&yt(e.type)&&(e.clamp=!0)}function JR(e){return kt(e)}function z0(e){const t=new Set;function n(r){for(const i of Object.values(r.resolutions.scale))t.add(i)}for(const r of Ot(e)){r.visit(n);for(const i of r.getDataAncestors()){if(!i.options.contributesToScaleDomain)break;n(i)}}t.forEach(r=>r.reconfigure())}function U0(...e){for(const t of e)if(t!==void 0)return t}class e9{constructor(t){this.channel=t,this.members=[]}get scaleResolution(){var t;return(t=Es(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 Kc(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=Zd(a.view,a.channel);if(!rn(o))return{member:a,explicitTitle:U0("axis"in o?(s=o.axis)==null?void 0:s.title:void 0,o.title),implicitTitle:U0(Gi(o)?o.field:void 0,Cc(o)?o.expr:void 0)}},n=this.members.map(t),r=n.filter(a=>{var o;if(js(a.member.channel)&&!a.explicitTitle){const s=Hi(a.member.channel);return((o=n.find(u=>u.member.view==a.member.view&&u.member.channel==s))==null?void 0:o.explicitTitle)===void 0}return!0}),i=new Set(r.map(a=>U0(a.explicitTitle,a.implicitTitle)).filter(Ue));return i.size?[...i].join(", "):null}}const t9={point:VD,rect:PD,rule:WD,link:eR,text:sR};class Yt extends Yi{constructor(t,n,r,i,a,o){super(t,n,r,i,a,o),this.spec=t;const s=t9[this.getMarkType()];if(s)this.mark=new s(this);else throw new Error(`No such mark: ${this.getMarkType()}`);this.resolve(),this.needsAxes={x:!0,y:!0}}render(t,n,r={}){super.render(t,n,r),this.isConfiguredVisible()&&(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){t||(this.resolve("scale"),this.resolve("axis"));const n=this.mark.encoding;for(const[r,i]of Object.entries(n)){if(!Zt(i))continue;const a=Hi(i.resolutionChannel??r);if(!Na(a)||t=="axis"&&!Vs(a))continue;let o=this;for(;(o.getConfiguredOrDefaultResolution(a,t)=="forced"||o.dataParent instanceof Yi&&["shared","excluded","forced"].includes(o.dataParent.getConfiguredOrDefaultResolution(a,t)))&&o.getConfiguredOrDefaultResolution(a,t)!="excluded";)o=o.dataParent;if(t=="axis"&&Vs(r)&&T2(a))o.resolutions[t][a]||(o.resolutions[t][a]=new e9(a)),o.resolutions[t][a].pushUnitView(this,r);else if(t=="scale"&&Na(r)){if(!o.resolutions[t][a]){const s=new QR(a);o.resolutions[t][a]=s,s.addEventListener("range",u=>{var l;(l=this.context.glHelper)==null||l.createRangeTexture(u.scaleResolution,!0)})}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(js(t))throw new Error(`getDomain(${t}), must only be called for primary channels!`);const n=this.mark.encoding[t];if(!Zt(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 Rw(n.type??"nominal",i.fromComplexInterval(r))}}extractDataDomain(t){const r=this._validateDomainQuery(t).type??"nominal",i=s=>{let u;const l=this.mark.encoding[s];if(l){const c=this.context.accessorFactory.createAccessor(l);if(c)if(u=Rw(r),c.constant)u.extend(c({}));else{const f=this.getCollector();f!=null&&f.completed&&f.visitData(h=>u.extend(c(h)))}}return u};let a=i(t);const o=Yd[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 Oa.map(t).reduce((n,r)=>n*r,1)}propagateInteractionEvent(t){this.handleInteractionEvent(void 0,t,!0),t.target=this,!t.stopped&&this.handleInteractionEvent(void 0,t,!1)}getDefaultResolution(t,n){return t=="x"?"shared":"independent"}}function*G0(e,t=[]){for(const[n,r]of e.entries())if(r instanceof Map)for(const i of G0(r,[...t,n]))yield i;else yield[[...t,n],r]}class Ow extends et{get behavior(){return F0}constructor(t){super(),this.params=t??{type:"collect"},this.observers=[],this.facetBatches=void 0,this._init()}_init(){this._data=[],this.facetBatches=new Rr([],JSON.stringify),this.facetBatches.set(void 0,this._data)}reset(){super.reset(),this._init()}handle(t){this._data.push(t)}beginBatch(t){UD(t)&&(this._data=[],this.facetBatches.set(Ot(t.facetId),this._data))}complete(){var i,a;const t=(i=this.params)==null?void 0:i.sort,n=t?Bm(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(u=>Me(u)),s=o.length>1?Pu(this._data,...o):n9(this._data,o[0]);this.facetBatches.clear();for(const[u,l]of G0(s))this.facetBatches.set(u,l)}for(const o of this.facetBatches.values())r(o);if(this.children.length)for(const[o,s]of this.facetBatches.entries()){if(o){const u={type:"facet",facetId:o};for(const l of this.children)l.beginBatch(u)}for(const u of s)this._propagate(u)}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.")}}function n9(e,t){const n=new Map;for(let r=0,i=e.length;r<i;r++){const a=e[r],o=t(a);let s=n.get(o);s||(s=[],n.set(o,s)),s.push(a)}return n}class rf{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 u=this.ids[o],l=this.values[o];const c=this.values[s];if(s<this.length&&c<l&&(o=s,u=this.ids[s],l=c),l>=r)break;this.ids[a]=u,this.values[a]=l,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 r9 extends et{get behavior(){return $n}constructor(t){super(),this.params=t,this.startAccessor=Me(t.start),this.endAccessor=Me(t.end),this.chromAccessor=t.chrom?Me(t.chrom):n=>{},this.weightAccessor=t.weight?Me(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 rf}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 u,l,c,f=0,h;const d=this.ends;d.clear();const p=(y,w,A)=>{if(y==w)return;let S=!1;u&&(u[t]===A?(u[n]=w,S=!0):u[t]!=0&&this._propagate(u)),S||(u=this.createSegment(y,w,A,c))},m=()=>{let y=0;for(;(y=d.peekValue())!==void 0;)p(h,y,f),h=y,f-=d.pop();h=void 0,u&&(this._propagate(u),u=void 0)};this.handle=y=>{const w=i(y);let A=0;for(;(A=d.peekValue())!==void 0&&A<w;)p(h,A,f),h=A,f-=d.pop();if(r){let _=o(y);_!==l&&(m(),c=_,l=c)}h!==void 0&&p(h,w,f),h=w;const S=s(y);f+=S,d.push(S,a(y))},this.complete=()=>{m(),super.complete()},this.beginBatch=y=>{m(),l=void 0,super.beginBatch(y)}}}function i9(e,t,n=0,r=e.length){const i=new rf,a=r-n;let o;for(o=0;o<t&&o<a;o++)i.push(o,e[n+o]);for(;o<a;o++){const l=e[n+o];l>=i.peekValue()&&(i.push(o,l),i.pop())}const s=[];let u;for(;(u=i.pop())!==void 0;)s.push(n+u);return s.reverse()}class a9{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 o9 extends et{get behavior(){return F0}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=Me(this.params.pos),this.posBisector=Mu(this.posAccessor),this.scoreAccessor=Me(this.params.score),this.widthAccessor=Me(this.params.width),this.laneAccessor=this.params.lane?Me(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 a9(200));this.schedule(),super.complete()}_filterAndPropagate(){var o;super.reset();const t=this.resolution.scale,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=i9(this._scores,i,this.posBisector.left(this._data,r[0]),this.posBisector.right(this._data,r[1]));for(const s of a){const u=this._data[s],l=t(this.posAccessor(u))*n,c=this.widthAccessor(u)/2+this.padding;this.reservationMaps.get(this.laneAccessor(u)).reserve(l-c,l+c)&&this._propagate(u)}super.complete()}reset(){super.reset(),this._data=[],this.groups=new Map}handle(t){this._data.push(t)}}class s9 extends et{constructor(t){super(),this.params=t,this.predicate=void 0}initialize(){this.predicate=sc(this.params.expr,this.getGlobalObject())}handle(t){this.predicate(t)&&this._propagate(t)}}class l9 extends et{get behavior(){return $n}constructor(t){super();const n=t.index;if(t.fields){const r=Ot(t.fields).map(a=>Me(a)),i=Ot(t.as||t.fields);if(r.length!==i.length)throw new Error(`Lengths of "fields" (${r.length}), and "as" (${i.length}) do not match!`);this.handle=a=>{const o=r.map((u,l)=>u(a)??[]),s=o[0].length;for(let u=0;u<s;u++){const l=Object.assign({},a);for(let c=0;c<r.length;c++)l[i[c]]=u<o[c].length?o[c][u]:null;n&&(l[n]=u),this._propagate(l)}}}else this.handle=r=>{for(let i=0;i<r.length;i++){const a=Object.assign({},r[i]);n&&(a[n]=i),this._propagate(a)}}}}const u9="0".charCodeAt(0);function*c9(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-u9}yield r}class f9 extends et{get behavior(){return $n}constructor(t){super();const n=Me(t.exons??"exons"),r=Me(t.start??"start"),[i,a]=t.as||["exonStart","exonEnd"];this.handle=o=>{let s=r(o),u=s,l=!0;const c=n(o);for(const f of c9(c)){if(l)u=s+f;else{s=u+f;const h=Object.assign({},o);h[i]=u,h[a]=s,this._propagate(h)}l=!l}}}}class h9 extends et{get behavior(){return $n}constructor(t){super();const n=Ot(t.field).map(a=>Me(a)),r=Ot(t.separator),i=Ot(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(u=>!u(a)))return;const o=n.map((u,l)=>u(a).split(r[l]));d9(o,a);const s=o[0].length;for(let u=0;u<s;u++){const l=Object.assign({},a);for(let c=0;c<n.length;c++)l[i[c]]=o[c][u];this._propagate(l)}}}}function d9(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 p9 extends et{get behavior(){return Kr}constructor(t){super(),this.params=t,this.as=t.as,this.fn=void 0}initialize(){this.fn=sc(this.params.expr,this.getGlobalObject())}handle(t){t[this.as]=this.fn(t),this._propagate(t)}}class Nw extends et{get behavior(){return Kr}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=Me(t.chrom),o=Ot(t.pos).map(p=>Me(p)),s=Ot(t.as);if(o.length!=s.length)throw new Error('The number of "pos" and "as" elements must be equal!');const u=Ot(t.offset);let l;if(u.length==0)l=new Array(o.length).fill(0);else if(u.length==1)l=new Array(o.length).fill(u[0]);else if(u.length==o.length)l=u;else throw new Error(`Invalid "offset" parameter: ${JSON.stringify(t.offset)}!`);const c=new Function("datum","chromOffset","posAccessors",s.map((p,m)=>`datum[${JSON.stringify(p)}] = chromOffset + +posAccessors[${m}](datum) - ${l[m]};`).join(`
|
|
354
|
+
`));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=>{c(p,d(a(p)),o),this._propagate(p)}}}const zw={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 g9 extends et{get behavior(){return Kr}constructor(t){super();const n=B0(zw),r=Me(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 m9=65536;class b9 extends et{get behavior(){return Kr}constructor(t){super(),this.params=t}reset(){super.reset(),this.initialize()}initialize(){const t=this.params,n=t.as||"lane",r=Tt(t.spacing)?t.spacing:1,i=Me(t.start),a=Me(t.end);if(!t.preference!=!t.preferredOrder)throw new Error('Must specify both "preference" and "preferredOrder"');if(t.preference){const o=new Float64Array(m9),s=Me(t.preference),u=t.preferredOrder;let l=1/0;this.handle=c=>{const f=i(c);f<l&&o.fill(-1/0),l=f;const h=u.indexOf(s(c));let d=-1;if(h>=0&&o[h]<f)d=h;else{const p=i(c);for(d=0;d<o.length&&!(o[d]<p);d++);if(d>=o.length)throw new Error("Out of lanes!")}o[d]=a(c)+r,c[n]=d,this._propagate(c)}}else{const o=new rf,s=new rf;let u=-1/0,l=0;this.handle=c=>{const f=i(c);for(;o.length&&(o.peekValue()<=f||f<u);){const d=o.pop();s.push(d,d)}u=f;let h=s.pop();h===void 0&&(h=l++),c[n]=h,this._propagate(c),o.push(h,a(c)+r)}}}}class y9 extends et{get behavior(){return $n}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=>Me(i)),r=t.as?t.as:n.map(Aa);this.handle=i=>{const a={};for(let o=0;o<n.length;o++)a[r[o]]=n[o](i);this._propagate(a)}}}class w9 extends et{get behavior(){return Kr}constructor(t){super();const n=new RegExp(t.regex),r=typeof t.as=="string"?[t.as]:t.as,i=Me(t.field);this.handle=a=>{const o=i(a);if(Ue(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 u=0;u<r.length;u++)a[r[u]]=s[u+1]}else if(t.skipInvalidInput)for(let u=0;u<r.length;u++)a[r[u]]=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 v9 extends et{get behavior(){return $n}constructor(t){super();const n=Ot(t.columnRegex).map(h=>new RegExp(h)),r=Ot(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,u;const l=h=>{var y;const d=Object.keys(h);for(const w of n)if(!d.some(A=>w.test(A)))throw new Error(`No columns matching the regex ${w.toString()} found in the data!`);const p=new Map;for(const[w,A]of n.entries())for(const S of d){const _=(y=A.exec(S))==null?void 0:y[1];if(_!==void 0){let T=p.get(_);T||(T=[],p.set(_,T)),T[w]=S}}o=[...p.entries()],s=d.filter(w=>!n.some(A=>A.test(w))&&!(i&&i.test(w)));const m=[...s.map(w=>JSON.stringify(w)+": datum["+JSON.stringify(w)+"]"),JSON.stringify(a)+": sampleId",...r.map((w,A)=>JSON.stringify(w)+`: datum[attrs[${A}]]`)];u=new Function("datum","sampleId","attrs",`return {
|
|
355
|
+
`+m.join(`,
|
|
283
356
|
`)+`
|
|
284
|
-
};`)},f=h=>{o||l(h);for(let d=0;d<o.length;d++){const[p,b]=o[d],y=u(h,p,b);this._propagate(y)}},c=h=>{l(h),f(h),this.handle=f};this.handle=c,this.beginBatch=h=>{Dy(h)&&(this.handle=c),super.beginBatch(h)}}}class m9 extends et{get behavior(){return Vr}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?Kg(t.sort.field,t.sort.order):void 0,i=t.field?Re(t.field):()=>1,a=t.groupby.map(f=>Re(f)),o=i4(this.buffer,f=>a.map(c=>c(f)).join()).map(f=>f[1]);let s=f=>!0;if(t.baseField){const f=Re(t.baseField);s=c=>f(c)!==null}let u,l;switch(t.offset){case"normalize":u=(f,c)=>f/c,l=(f,c)=>yu(f,c);break;case"center":u=(f,c)=>f-c/2,l=(f,c)=>yu(f,c);break;case"information":{const f=Math.log2(t.cardinality??4);u=(c,h)=>c/h,l=(c,h)=>{const p=yu(c,A=>+!s(A)),b=yu(c,h),y=b-p;let w=0;for(let A=0;A<c.length;A++){const S=c[A];if(s(S)){const _=h(S)/y;w-=_*Math.log2(_)}}return y/(f-(w+0))*(y/b)}}break;default:u=(f,c)=>f,l=(f,c)=>1}for(const f of o){r&&f.sort(r);const c=l(f,i);let h=0;for(const d of f){const p=h+i(d);s(d)&&(d[n[0]]=u(h,c),d[n[1]]=u(p,c),this._propagate(d),h=p)}}super.complete()}}class b9 extends et{get behavior(){return Un}constructor(t){super();const n=Re(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 u=0;u<s.length;u++){const l=Object.assign({},o);l[r]=u,l[i]=s.charAt(u),this._propagate(l)}}}}class y9 extends et{get behavior(){return Un}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=>Re(a)),i=mu(this.buffer,...r);for(const[a,o]of g0(i)){const s={count:o.length};for(let u=0;u<n.length;u++)s[n[u]]=a[u];this._propagate(s)}super.complete()}}const w9="_uniqueId",aw=1e4,ow=[null];class sw extends et{get behavior(){return Vr}constructor(t){super(),this.params=t,this.as=t.as??w9,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%aw==0&&(this._id=this._getBlock()*aw),this._id}_getBlock(){return this._usedBlocks<this._blocks.length?this._blocks[this._usedBlocks++]:this._reserveBlock()}_reserveBlock(){const t=ow.length;return ow[t]=this,this._blocks.push(t),this._usedBlocks++,t}}const v9={aggregate:y9,collect:nw,coverage:KD,filterScoredLabels:t9,filter:n9,flatten:r9,flattenCompressedExons:o9,flattenDelimited:s9,flattenSequence:b9,formula:u9,identifier:sw,linearizeGenomicCoordinate:rw,measureText:f9,pileup:h9,project:d9,regexExtract:p9,regexFold:g9,sample:Fy,stack:m9};function x9(e,t){const n=v9[e.type];if(n)return new n(e,t);throw new Error("Unknown transform: "+e.type)}function lw(e){if(!cw(e)&&!fw(e))return;const t={...e.format};if(t.type??(t.type=fw(e)&&A9(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 A9(e){var t;if(Array.isArray(e)&&(e=e[0]),e)return(t=e.match(/\.(csv|tsv|json)/))==null?void 0:t[1]}const uw=e=>typeof e!="object"?E9:_9,E9=e=>({data:e}),_9=e=>e;function fw(e){return"url"in e}class Ws extends et{get identifier(){}handle(t){throw new Error("Source does not handle incoming data!")}async load(){}}function cw(e){return"values"in e}class S9 extends Ws{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=uw(t[0]));else if(typeof t=="object")n=[t];else if(typeof t=="string")n=n1(t,lw(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 C9(e){return"url"in e}class k9 extends Ws{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=>ku({baseURL:this.baseUrl}).load(a).catch(o=>{throw new Error(`Cannot fetch: ${this.baseUrl}${a}: ${o.message}`)}),i=(a,o)=>{try{const s=n1(a,lw(this.params));this.beginBatch({type:"file",url:o});for(const u of s)this._propagate(u)}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 T9(e){return"sequence"in e}class I9 extends Ws{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()}}class m0 extends Ws{constructor(n,r){super();Bn(this,"initializedPromise",Promise.resolve());if(this.view=n,r){if(r!=="x"&&r!=="y")throw new Error(`Invalid channel specified for the lazy data source: ${r}. Must be either "x" or "y"`)}else throw new Error('No channel has been specified for the lazy data source. Must be either "x" or "y".');if(this.channel=r,this.scaleResolution=this.view.getScaleResolution(r),!this.scaleResolution){const a=[`The lazy data source cannot find a resolved scale for channel "${r}".`];throw this.view instanceof Yt||a.push('Make sure the view has a "shared" scale resolution as it is not a unit view.'),new Error(a.join(" "))}const i=()=>{this.view.isVisible()&&this.onDomainChanged(this.scaleResolution.getDomain(),this.scaleResolution.getComplexDomain())};this.scaleResolution.addEventListener("domain",i),this.view.context.addBroadcastListener("layoutComputed",i)}getAxisLength(){const n=this.scaleResolution.members.map(r=>{var i;return(i=r.view.coords)==null?void 0:i[this.channel==="x"?"width":"height"]}).filter(r=>r>0);return n.length?n.reduce((r,i)=>Math.min(r,i),1e4):0}get genome(){return this.scaleResolution.getGenome()}async onDomainChanged(n,r){}setLoadingStatus(n){this.view.context.setDataLoadingStatus(this.view,n)}requestRender(){this.view.context.animator.requestRender()}async load(){this.reset(),this.complete()}publishData(n){this.reset(),this.beginBatch({type:"file"});for(const r of n)for(const i of r)this._propagate(i);this.complete(),d0(this.view),this.requestRender()}}class B9 extends m0{constructor(n,r){const i={axis:{},...n};super(r,i.channel);Bn(this,"ticks",[]);this.params=n}async onDomainChanged(){const n=this.scaleResolution.getScale(),r=this.params.axis,i=this.getAxisLength(),a=l=>25+60*I1(100,700,l),o=Ct(r.tickCount)?r.tickCount:Math.round(i/a(i)),s=zy(n,o,r.tickMinStep),u=r.values?Uy(n,r.values,s):dD(n,s);if(!Bu(u,this.ticks)){this.ticks=u;const l=gD(n,o,r.format);this.publishData([u.map(f=>({value:f,label:l(f)}))])}}}class D9 extends m0{constructor(t,n){super(n,t.channel)}async load(){this.publishData([this.genome.chromosomes])}}function Ys(e,t){return!t||/^(data:|([A-Za-z]+:)?\/\/)/.test(e)||e.startsWith("/")?e:(t.endsWith("/")||(t+="/"),t+e)}function b0(e,t,n=!0){let r,i=o=>{};return function(...s){return new Promise((u,l)=>{const f=()=>{clearTimeout(r),i=c=>{},u(e(...s))};n&&i("debounced"),clearTimeout(r),i=l,r=window.setTimeout(f,t)})}}class Qs extends m0{constructor(){super(...arguments);ne(this,Do,new AbortController);ne(this,$l,[0,0]);Bn(this,"params")}setupDebouncing(n){n.debounce>0&&(n.debounceMode=="domain"?this.onDomainChanged=b0(this.onDomainChanged.bind(this),n.debounce,!1):n.debounceMode=="window"&&(this.loadInterval=b0(this.loadInterval.bind(this),n.debounce,!1)))}async onDomainChanged(n){var a;const r=((a=this.params)==null?void 0:a.windowSize)??-1;if(n[1]-n[0]>r)return;const i=this.quantizeInterval(n,r);this.checkAndUpdateLastInterval(i)&&(await this.initializedPromise,this.loadInterval(i))}async loadInterval(n){}async discretizeAndLoad(n,r){W(this,Do).abort(),this.setLoadingStatus(!0),Xe(this,Do,new AbortController);const i=W(this,Do).signal,a=this.genome.continuousToDiscreteChromosomeIntervals(n);try{const o=await Promise.all(a.map(async s=>r(s,i)));if(!i.aborted)return this.setLoadingStatus(!1),o}catch(o){if(!i.aborted)throw this.setLoadingStatus(!1),o}}quantizeInterval(n,r){return[Math.max(Math.floor(n[0]/r-1)*r,0),Math.min(Math.ceil(n[1]/r+1)*r,this.genome.totalSize)]}checkAndUpdateLastInterval(n){return Bu(W(this,$l),n)?!1:(Xe(this,$l,n),!0)}}Do=new WeakMap,$l=new WeakMap;class F9 extends Qs{constructor(t,n){const r={channel:"x",windowSize:7e3,debounce:200,debounceMode:"window",...t};if(super(n,r.channel),this.params=r,!this.params.url)throw new Error("No URL provided for IndexedFastaSource");this.setupDebouncing(this.params),this.initializedPromise=new Promise(i=>{Promise.all([Promise.resolve().then(()=>Pw),Promise.resolve().then(()=>vM),Promise.resolve().then(()=>Ks)]).then(([{Buffer:a},{IndexedFasta:o},{RemoteFile:s}])=>{typeof window<"u"&&(window.Buffer??(window.Buffer=a));const u=l=>new s(Ys(l,this.view.getBaseUrl()));this.fasta=new o({fasta:u(this.params.url),fai:u(this.params.indexUrl??this.params.url+".fai")}),i()})})}async loadInterval(t){const n=await this.discretizeAndLoad(t,async(r,i)=>this.fasta.getSequence(r.chrom,r.startPos,r.endPos,{signal:i}).then(a=>({chrom:r.chrom,start:r.startPos,sequence:a})));n&&this.publishData([n])}}class R9 extends Qs{constructor(n,r){const i={pixelsPerBin:2,channel:"x",debounce:200,debounceMode:"window",...n};super(r,i.channel);ne(this,Fo,[]);ne(this,Ro,void 0);if(this.params=i,!this.params.url)throw new Error("No URL provided for BigWigSource");this.setupDebouncing(this.params),this.initializedPromise=new Promise(a=>{Promise.all([Promise.resolve().then(()=>R3),Promise.resolve().then(()=>Ks)]).then(([{BigWig:o},{RemoteFile:s}])=>{Xe(this,Ro,new o({filehandle:new s(Ys(this.params.url,this.view.getBaseUrl()))})),W(this,Ro).getHeader().then(u=>{Xe(this,Fo,u.zoomLevels.map(l=>l.reductionLevel).reverse()),W(this,Fo).push(1),a()})})})}async onDomainChanged(n){await this.initializedPromise;const r=this.getAxisLength()||700,i=M9(n,r,W(this,Fo)),a=Math.max(i*r,5e3),o=this.quantizeInterval(n,a);this.checkAndUpdateLastInterval(o)&&this.loadInterval(o,i)}async loadInterval(n,r){const i=.5/r/this.params.pixelsPerBin,a=await this.discretizeAndLoad(n,(o,s)=>W(this,Ro).getFeatures(o.chrom,o.startPos,o.endPos,{scale:i,signal:s}).then(u=>u.map(l=>({chrom:o.chrom,start:l.start,end:l.end,score:l.score}))));a&&this.publishData(a)}}Fo=new WeakMap,Ro=new WeakMap;function M9(e,t,n){const r=(e[1]-e[0])/t;return n.find(i=>i<r)??n.at(-1)}class P9 extends Qs{constructor(n,r){const i={channel:"x",windowSize:1e6,debounce:200,debounceMode:"window",...n};super(r,i.channel);Bn(this,"parser");Bn(this,"bbi");Bn(this,"parseLine");if(this.params=i,!this.params.url)throw new Error("No URL provided for BigBedSource");this.setupDebouncing(this.params),this.initializedPromise=new Promise(a=>{Promise.all([Promise.resolve().then(()=>gO),Promise.resolve().then(()=>R3),Promise.resolve().then(()=>Ks)]).then(([o,{BigBed:s},{RemoteFile:u}])=>{const l=o.default;this.bbi=new s({filehandle:new u(Ys(this.params.url,this.view.getBaseUrl()))}),this.bbi.getHeader().then(async f=>{this.parser=new l({autoSql:f.autoSql});try{const c=L9(this.parser);this.parseLine=(h,d)=>c(h,d.start,d.end,d.rest)}catch{this.parseLine=(h,d)=>this.parser.parseLine(`${h} ${d.start} ${d.end} ${d.rest}`)}a()})})})}async loadInterval(n){const r=await this.discretizeAndLoad(n,async(i,a)=>this.bbi.getFeatures(i.chrom,i.startPos,i.endPos,{signal:a}).then(o=>o.map(s=>this.parseLine(i.chrom,s))));r&&this.publishData(r)}}function L9(e){const t=e.autoSql.fields.filter(A=>A.type).slice(3);let n=0,r="",i=0,a={};const o=" ",s=o.charCodeAt(0),u="0".charCodeAt(0),l="-".charCodeAt(0);function f(){let A=r.indexOf(o,n);A<0&&(A=i);const S=r.substring(n,A);return n=A+1,S}function c(){let A=0,S=r.charCodeAt(n),_=1;S===l&&(_=-1,n++,S=r.charCodeAt(n));do{if(S===s){n++;break}A=A*10+S-u,S=r.charCodeAt(++n)}while(n<i);return A*_}const h=t.map(A=>`${JSON.stringify(A.name)}: ${A.isNumeric?"0":"emptyString"}`),d=new Function(`
|
|
357
|
+
};`)},c=h=>{o||l(h);for(let d=0;d<o.length;d++){const[p,m]=o[d],y=u(h,p,m);this._propagate(y)}},f=h=>{l(h),c(h),this.handle=c};this.handle=f,this.beginBatch=h=>{hw(h)&&(this.handle=f),super.beginBatch(h)}}}class x9 extends et{get behavior(){return Kr}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?Bm(t.sort.field,t.sort.order):void 0,i=t.field?Me(t.field):()=>1,a=t.groupby.map(c=>Me(c)),o=$4(this.buffer,c=>a.map(f=>f(c)).join()).map(c=>c[1]);let s=c=>!0;if(t.baseField){const c=Me(t.baseField);s=f=>c(f)!==null}let u,l;switch(t.offset){case"normalize":u=(c,f)=>c/f,l=(c,f)=>Nu(c,f);break;case"center":u=(c,f)=>c-f/2,l=(c,f)=>Nu(c,f);break;case"information":{const c=Math.log2(t.cardinality??4);u=(f,h)=>f/h,l=(f,h)=>{const p=Nu(f,A=>+!s(A)),m=Nu(f,h),y=m-p;let w=0;for(let A=0;A<f.length;A++){const S=f[A];if(s(S)){const _=h(S)/y;w-=_*Math.log2(_)}}return y/(c-(w+0))*(y/m)}}break;default:u=(c,f)=>c,l=(c,f)=>1}for(const c of o){r&&c.sort(r);const f=l(c,i);let h=0;for(const d of c){const p=h+i(d);s(d)&&(d[n[0]]=u(h,f),d[n[1]]=u(p,f),this._propagate(d),h=p)}}super.complete()}}class A9 extends et{get behavior(){return $n}constructor(t){super();const n=Me(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 u=0;u<s.length;u++){const l=Object.assign({},o);l[r]=u,l[i]=s.charAt(u),this._propagate(l)}}}}class E9 extends et{get behavior(){return $n}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=>Me(a)),i=Pu(this.buffer,...r);for(const[a,o]of G0(i)){const s={count:o.length};for(let u=0;u<n.length;u++)s[n[u]]=a[u];this._propagate(s)}super.complete()}}const _9="_uniqueId",Uw=1e4,Gw=[null];class Hw extends et{get behavior(){return Kr}constructor(t){super(),this.params=t,this.as=t.as??_9,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%Uw==0&&(this._id=this._getBlock()*Uw),this._id}_getBlock(){return this._usedBlocks<this._blocks.length?this._blocks[this._usedBlocks++]:this._reserveBlock()}_reserveBlock(){const t=Gw.length;return Gw[t]=this,this._blocks.push(t),this._usedBlocks++,t}}const S9={aggregate:E9,collect:Ow,coverage:r9,filterScoredLabels:o9,filter:s9,flatten:l9,flattenCompressedExons:f9,flattenDelimited:h9,flattenSequence:A9,formula:p9,identifier:Hw,linearizeGenomicCoordinate:Nw,measureText:g9,pileup:b9,project:y9,regexExtract:w9,regexFold:v9,sample:dw,stack:x9};function C9(e,t){const n=S9[e.type];if(n)return new n(e,t);throw new Error("Unknown transform: "+e.type)}function Vw(e){if(!qw(e)&&!$w(e))return;const t={...e.format};if(t.type??(t.type=$w(e)&&k9(En(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 k9(e){var t;if(Array.isArray(e)&&(e=e[0]),e)return(t=e.match(/\.(csv|tsv|json)/))==null?void 0:t[1]}const jw=e=>typeof e!="object"?T9:I9,T9=e=>({data:e}),I9=e=>e;function $w(e){return"url"in e}class il extends et{get identifier(){}handle(t){throw new Error("Source does not handle incoming data!")}async load(){}}function qw(e){return"values"in e}class B9 extends il{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=jw(t[0]));else if(typeof t=="object")n=[t];else if(typeof t=="string")n=k1(t,Vw(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 D9(e){return"url"in e}class R9 extends il{constructor(t,n){super(),this.params=Sc(n.paramMediator,t,()=>this.load()),this.baseUrl=n==null?void 0:n.getBaseUrl()}get identifier(){return JSON.stringify({params:this.params,baseUrl:this.baseUrl})}async load(){const t=En(this.params.url),n=Array.isArray(t)?t:[t];if(n.length===0||!n[0]){this.reset(),this.complete();return}const r=async a=>Qu({baseURL:this.baseUrl}).load(a).catch(o=>{throw new Error(`Cannot fetch: ${this.baseUrl}${a}: ${o.message}`)}),i=(a,o)=>{try{const s=k1(a,Vw(this.params));this.beginBatch({type:"file",url:o});for(const u of s)this._propagate(u)}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 F9(e){return"sequence"in e}class M9 extends il{constructor(t,n){if(super(),this.sequence=Sc(n.paramMediator,t.sequence,()=>this.loadSynchronously()),!("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=En(this.sequence.as)??"data",n=En(this.sequence.start)??0,r=En(this.sequence.step)??1,i=En(this.sequence.stop);this.reset(),this.beginBatch({type:"file"});for(let a=n;a<i;a+=r)this._propagate({[t]:a});this.complete()}async load(){this.loadSynchronously()}}class H0 extends il{constructor(n,r){super();yn(this,"initializedPromise",Promise.resolve());if(this.view=n,r){if(r!=="x"&&r!=="y")throw new Error(`Invalid channel specified for the lazy data source: ${r}. Must be either "x" or "y"`)}else throw new Error('No channel has been specified for the lazy data source. Must be either "x" or "y".');if(this.channel=r,this.scaleResolution=this.view.getScaleResolution(r),!this.scaleResolution){const a=[`The lazy data source cannot find a resolved scale for channel "${r}".`];throw this.view instanceof Yt||a.push('Make sure the view has a "shared" scale resolution as it is not a unit view.'),new Error(a.join(" "))}const i=()=>{this.view.isVisible()&&this.onDomainChanged(this.scaleResolution.getDomain(),this.scaleResolution.getComplexDomain())};this.scaleResolution.addEventListener("domain",i),this.view.context.addBroadcastListener("layoutComputed",i)}getAxisLength(){const n=this.scaleResolution.members.map(r=>{var i;return(i=r.view.coords)==null?void 0:i[this.channel==="x"?"width":"height"]}).filter(r=>r>0);return n.length?n.reduce((r,i)=>Math.min(r,i),1e4):0}get genome(){return this.scaleResolution.getGenome()}onDomainChanged(n,r){}setLoadingStatus(n){this.view.context.setDataLoadingStatus(this.view,n)}requestRender(){this.view.context.animator.requestRender()}async load(){this.reset(),this.complete()}publishData(n){this.reset(),this.beginBatch({type:"file"});for(const r of n)for(const i of r)this._propagate(i);this.complete(),z0(this.view)}}class P9 extends H0{constructor(n,r){const i={axis:{},...n};super(r,i.channel);yn(this,"ticks",[]);this.params=n}onDomainChanged(){const n=this.scaleResolution.scale,r=this.params.axis,i=this.getAxisLength(),a=l=>25+60*ob(100,700,l),o=Tt(r.tickCount)?r.tickCount:Math.round(i/a(i)),s=vw(n,o,r.tickMinStep),u=r.values?xw(n,r.values,s):yR(n,s);if(!td(u,this.ticks)){this.ticks=u;const l=vR(n,o,r.format);this.publishData([u.map(c=>({value:c,label:l(c)}))])}}}class L9 extends H0{constructor(t,n){super(n,t.channel)}async load(){this.publishData([this.genome.chromosomes])}}function al(e,t){return!t||/^(data:|([A-Za-z]+:)?\/\/)/.test(e)||e.startsWith("/")?e:(t.endsWith("/")||(t+="/"),t+e)}function af(e,t,n=!0){let r,i=o=>{};return function(...s){return new Promise((u,l)=>{const c=()=>{clearTimeout(r),i=f=>{},u(e(...s))};n&&i("debounced"),clearTimeout(r),i=l,r=window.setTimeout(c,typeof t=="function"?t():t)})}}class ol extends H0{constructor(){super(...arguments);K(this,Oo,new AbortController);K(this,No,[0,0]);K(this,zo,[0,0]);K(this,pu,0);yn(this,"params")}setupDebouncing(n){const r=()=>En(n.debounce),i=n.debounceMode;if(i=="domain")this.onDomainChanged=af(this.onDomainChanged.bind(this),r,!1);else if(i=="window")this.loadInterval=af(this.loadInterval.bind(this),r,!1);else throw new Error("Invalid debounceMode: "+i)}onDomainChanged(n){var i;Fe(this,zo,n);const r=En((i=this.params)==null?void 0:i.windowSize)??-1;n[1]-n[0]>r||this.callIfWindowsChanged(n,r,async a=>{await this.initializedPromise,this.loadInterval(a)})}reloadLastDomain(){const n=W(this,zo);Fe(this,zo,[0,0]),Fe(this,No,[0,0]),this.onDomainChanged(n)}async loadInterval(n){}async discretizeAndLoad(n,r){W(this,Oo).abort(),this.setLoadingStatus(!0),Fe(this,Oo,new AbortController);const i=W(this,Oo).signal,a=this.genome.continuousToDiscreteChromosomeIntervals(n);try{const o=await Promise.all(a.map(async s=>r(s,i)));if(!i.aborted)return this.setLoadingStatus(!1),o}catch(o){if(!i.aborted)throw this.setLoadingStatus(!1),o}}callIfWindowsChanged(n,r,i){const a=[Math.max(Math.floor(n[0]/r)*r,0),Math.min(Math.ceil(n[1]/r)*r,this.genome.totalSize)],o=W(this,No);(r!==W(this,pu)||a[0]<o[0]||a[1]>o[1])&&(Fe(this,No,a),Fe(this,pu,r),i(a))}}Oo=new WeakMap,No=new WeakMap,zo=new WeakMap,pu=new WeakMap;class O9 extends ol{constructor(t,n){const r={channel:"x",windowSize:7e3,debounce:200,debounceMode:"window",...t};if(super(n,r.channel),this.params=r,!this.params.url)throw new Error("No URL provided for IndexedFastaSource");this.setupDebouncing(this.params),this.initializedPromise=new Promise(i=>{Promise.all([Promise.resolve().then(()=>bv),Promise.resolve().then(()=>CP),Promise.resolve().then(()=>ul)]).then(([{Buffer:a},{IndexedFasta:o},{RemoteFile:s}])=>{typeof window<"u"&&(window.Buffer??(window.Buffer=a));const u=l=>new s(al(l,this.view.getBaseUrl()));this.fasta=new o({fasta:u(this.params.url),fai:u(this.params.indexUrl??this.params.url+".fai")}),i()})})}async loadInterval(t){const n=await this.discretizeAndLoad(t,async(r,i)=>this.fasta.getSequence(r.chrom,r.startPos,r.endPos,{signal:i}).then(a=>({chrom:r.chrom,start:r.startPos,sequence:a})));n&&this.publishData([n])}}class N9 extends ol{constructor(n,r){const i={pixelsPerBin:2,channel:"x",debounce:200,debounceMode:"window",...n},a=Sc(r.paramMediator,i,o=>{o.includes("url")?J(this,gu,xm).call(this).then(()=>this.reloadLastDomain()):o.includes("pixelsPerBin")&&this.reloadLastDomain()});super(r,a.channel);K(this,gu);K(this,Uo,[]);K(this,Go,void 0);if(this.params=a,!this.params.url)throw new Error("No URL provided for BigWigSource");this.setupDebouncing(this.params),J(this,gu,xm).call(this)}async onDomainChanged(n){await this.initializedPromise;const r=this.getAxisLength()||700,i=z9(n,r,W(this,Uo)),a=Math.max(i*r,5e3);this.callIfWindowsChanged(n,a,o=>this.loadInterval(o,i))}async loadInterval(n,r){const i=.5/r/En(this.params.pixelsPerBin),a=await this.discretizeAndLoad(n,(o,s)=>W(this,Go).getFeatures(o.chrom,o.startPos,o.endPos,{scale:i,signal:s}).then(u=>u.map(l=>({chrom:o.chrom,start:l.start,end:l.end,score:l.score}))));a&&this.publishData(a)}}Uo=new WeakMap,Go=new WeakMap,gu=new WeakSet,xm=function(){return this.initializedPromise=new Promise(n=>{Promise.all([Promise.resolve().then(()=>gE),Promise.resolve().then(()=>ul)]).then(([{BigWig:r},{RemoteFile:i}])=>{Fe(this,Go,new r({filehandle:new i(al(En(this.params.url),this.view.getBaseUrl()))})),W(this,Go).getHeader().then(a=>{Fe(this,Uo,a.zoomLevels.map(o=>o.reductionLevel).reverse()),W(this,Uo).push(1),n()})})}),this.initializedPromise};function z9(e,t,n){const r=(e[1]-e[0])/t;return n.find(i=>i<r)??n.at(-1)}class U9 extends ol{constructor(n,r){const i={channel:"x",windowSize:1e6,debounce:200,debounceMode:"window",...n},a=Sc(r.paramMediator,i,o=>{o.includes("url")?J(this,mu,Am).call(this).then(()=>this.reloadLastDomain()):o.includes("windowSize")&&this.reloadLastDomain()});super(r,a.channel);K(this,mu);yn(this,"parser");yn(this,"bbi");yn(this,"parseLine");if(this.params=a,!this.params.url)throw new Error("No URL provided for BigBedSource");this.setupDebouncing(this.params),J(this,mu,Am).call(this)}async loadInterval(n){const r=await this.discretizeAndLoad(n,async(i,a)=>this.bbi.getFeatures(i.chrom,i.startPos,i.endPos,{signal:a}).then(o=>o.map(s=>this.parseLine(i.chrom,s))));r&&this.publishData(r)}}mu=new WeakSet,Am=function(){return this.initializedPromise=new Promise((n,r)=>{Promise.all([Promise.resolve().then(()=>xz),Promise.resolve().then(()=>gE),Promise.resolve().then(()=>ul)]).then(([i,{BigBed:a},{RemoteFile:o}])=>{const s=i.default;this.bbi=new a({filehandle:new o(al(En(this.params.url),this.view.getBaseUrl()))}),this.bbi.getHeader().then(async u=>{this.parser=new s({autoSql:u.autoSql});try{const l=G9(this.parser);this.parseLine=(c,f)=>l(c,f.start,f.end,f.rest)}catch{this.parseLine=(c,f)=>this.parser.parseLine(`${c} ${f.start} ${f.end} ${f.rest}`)}n()}).catch(u=>{this.load(),r(u)})})}),this.initializedPromise};function G9(e){const t=e.autoSql.fields.filter(A=>A.type).slice(3);let n=0,r="",i=0,a={};const o=" ",s=o.charCodeAt(0),u="0".charCodeAt(0),l="-".charCodeAt(0);function c(){let A=r.indexOf(o,n);A<0&&(A=i);const S=r.substring(n,A);return n=A+1,S}function f(){let A=0,S=r.charCodeAt(n),_=1;S===l&&(_=-1,n++,S=r.charCodeAt(n));do{if(S===s){n++;break}A=A*10+S-u,S=r.charCodeAt(++n)}while(n<i);return A*_}const h=t.map(A=>`${JSON.stringify(A.name)}: ${A.isNumeric?"0":"emptyString"}`),d=new Function(`
|
|
285
358
|
const emptyString = "";
|
|
286
359
|
return function makeTemplate(chrom, chromStart, chromEnd) {
|
|
287
360
|
return {
|
|
@@ -291,56 +364,95 @@ if(scale<1.0){if(uSqueeze){vec2 scaleFadeExtent=vec2(3.0,6.0)/size;if(scale<scal
|
|
|
291
364
|
${h.join(`,
|
|
292
365
|
`)}
|
|
293
366
|
}
|
|
294
|
-
};`)(),p=t.map(A=>{const S=A.type,_=JSON.stringify(A.name);if(["ubyte","int","uint"].includes(S))return`d[${_}] = parseInt();`;if(A.isNumeric)return`d[${_}] = Number(parseString());`;if(["char","string","lstring"].includes(S))return`d[${_}] = parseString();`;throw new Error("Unsupported type: "+S)}),
|
|
367
|
+
};`)(),p=t.map(A=>{const S=A.type,_=JSON.stringify(A.name);if(["ubyte","int","uint"].includes(S))return`d[${_}] = parseInt();`;if(A.isNumeric)return`d[${_}] = Number(parseString());`;if(["char","string","lstring"].includes(S))return`d[${_}] = parseString();`;throw new Error("Unsupported type: "+S)}),m=H9(p,50).map((A,S)=>Function("parseInt","parseString",`return function parseFieldChunk${S}(d) {
|
|
295
368
|
${A.join(`
|
|
296
369
|
`)}
|
|
297
|
-
}`)(c
|
|
298
|
-
`),{parseSequences:!1})}}
|
|
299
|
-
`)+" };");return n.properties=t,n}class
|
|
300
|
-
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)}`)}function fF(e){const t=e.getSize().addPadding(e.getOverhang()),n=r=>r.grow>0?void 0:r.px;return{width:n(t.width),height:n(t.height)}}function or(e){return()=>e}const Tn=class Tn{static create(t,n,r,i){return new Tn(or(t),or(n),or(r),or(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"?or(i):typeof i=="function"?i:this._passThrough(r)};return new Tn(n("x"),n("y"),n("width"),n("height"))}translate(t,n){return t===0&&n===0?this:new Tn(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 Tn(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||t==null?this:new Tn(()=>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))}union(t){return this===t||t==null?this:new Tn(()=>Math.min(this.x,t.x),()=>Math.min(this.y,t.y),()=>Math.max(this.x2,t.x2)-Math.min(this.x,t.x),()=>Math.max(this.y2,t.y2)-Math.min(this.y,t.y))}isDefined(){return this.width>=0&&this.height>=0}flatten(){return new Tn(or(this.x),or(this.y),or(this.width),or(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}`}toRoundedString(){return`Rectangle: x: ${Math.round(this.x)}, y: ${Math.round(this.y)}, width: ${Math.round(this.width)}, height: ${Math.round(this.height)}`}};Bn(Tn,"ZERO",Tn.create(0,0,0,0));let sr=Tn;class mw{constructor(t){this.globalOptions=t}pushView(t,n){}popView(t){}renderMark(t,n){}}class bw extends mw{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})}render(){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=mu(this.buffer.reverse(),o=>o.mark);for(const[o,s]of[...a.entries()].reverse()){if(!o.isReady())continue;this.batch.push(()=>{t=o.unitView.getEffectiveOpacity()>0}),this.batch.push(...o.prepareRender(this.globalOptions).map(l=>r(l)));let u;for(const l of s){const f=l.coords;f.equals(u)||this.batch.push(r(()=>{n=o.setViewport(f,l.clipRect)})),this.batch.push(i(l.callback)),u=l.coords}}}}class cF extends mw{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 hF{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 dF{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 pF=e=>new Promise(t=>setTimeout(t,e));function gF(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),u=typeof e.from=="number"?e.from:0,l=typeof e.to=="number"?e.to:1,f=e.easingFunction||(b=>b),c=b=>(b-o)/(s-o),h=b=>b*(l-u)+u,d=b=>Math.max(0,Math.min(1,b)),p=b=>{n!=null&&n.aborted?a("aborted"):(e.onUpdate(h(f(d(c(b))))),b<s?t(p):(e.onUpdate(h(f(1))),i()))};t(p)});return e.delay?n!=null&&n.aborted?Promise.reject("aborted"):pF(e.delay).then(r):r()}class mF{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 gF({requestAnimationFrame:n=>this.requestTransition(n),...t})}}class bF{constructor(t){this.genomes=new Map,this.baseUrl=t}async initialize(t){const n=new ND(t);return this.genomes.set(n.name,n),Promise.all([...this.genomes.values()].map(r=>r.load(this.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 yF="data:image/png;base64,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",wF={thin:100,light:300,regular:400,normal:400,medium:500,bold:700,black:900};class vF{constructor(t){this._webGLHelper=t,this.fontRepository="https://raw.githubusercontent.com/etiennepinchon/aframe-fonts/master/fonts/",this._fonts=new _r([],JSON.stringify),this._metadataPromises=new Map,this._fontPromises=new Map,this._promises=[],this._defaultFontEntry={metrics:i0(iw),texture:t?this._createTextureNow(yF):void 0}}async waitUntilReady(){await Promise.all(this._promises)}getFont(t,n="normal",r="regular"){if(Pe(r)&&(r=wF[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=AF(r,n),a=this.fontRepository+yw(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=>i0(r)),this._fontPromises.set(t,n)),n}_loadMetadata(t){const n=yw(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=>xF(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)=>{Us(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=Us(n,{src:t,min:n.LINEAR},(s,u,l)=>{s?o(s):a(u)})});return this._promises.push(i),r}}function yw(e){return e.toLowerCase().replaceAll(/[^\w]/g,"")}function xF(e){const t=e.split(`
|
|
301
|
-
`),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
|
|
302
|
-
`))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
|
|
370
|
+
}`)(f,c));function y(A){r=A,i=A.length,n=0}function w(A,S,_,T){y(T),a=d(A,S,_);for(const I of m)I(a);return a}return w}function H9(e,t){return Array.from({length:Math.ceil(e.length/t)},(n,r)=>e.slice(r*t,r*t+t))}class V9 extends ol{constructor(n,r){const i={channel:"x",windowSize:2e4,debounce:200,debounceMode:"domain",...n};super(r,i.channel);K(this,ba,void 0);yn(this,"chrPrefixFixer",n=>n);if(this.params=i,!this.params.url)throw new Error("No URL provided for BamSource");this.setupDebouncing(this.params),this.initializedPromise=new Promise(a=>{Promise.all([Promise.resolve().then(()=>Gz),Promise.resolve().then(()=>ul)]).then(([{BamFile:o},{RemoteFile:s}])=>{const u=l=>new s(al(l,this.view.getBaseUrl()));Fe(this,ba,new o({bamFilehandle:u(this.params.url),baiFilehandle:u(this.params.indexUrl??this.params.url+".bai")})),W(this,ba).getHeader().then(l=>{var h,d;const c=this.genome.hasChrPrefix(),f=(d=(h=W(this,ba).indexToChr)==null?void 0:h[0])==null?void 0:d.refName.startsWith("chr");c&&!f?this.chrPrefixFixer=p=>p.replace("chr",""):!c&&f&&(this.chrPrefixFixer=p=>"chr"+p),a()})})})}async loadInterval(n){const r=await this.discretizeAndLoad(n,async(i,a)=>W(this,ba).getRecordsForRange(this.chrPrefixFixer(i.chrom),i.startPos,i.endPos,{signal:a}).then(o=>o.map(s=>({chrom:i.chrom,start:s.get("start"),end:s.get("end"),name:s.get("name"),MD:s.get("MD"),cigar:s.get("cigar"),mapq:s.get("mq"),strand:s.get("strand")===1?"+":"-"}))));r&&this.publishData(r)}}ba=new WeakMap;class j9 extends ol{constructor(n,r){const i={channel:"x",windowSize:3e6,debounce:200,debounceMode:"domain",...n};super(r,i.channel);K(this,bu,void 0);if(this.params=i,!this.params.url)throw new Error("No URL provided for TabixSource");this.setupDebouncing(this.params),this.initializedPromise=new Promise(a=>{Promise.all([Promise.resolve().then(()=>bv),Promise.resolve().then(()=>Xz),Promise.resolve().then(()=>ul)]).then(([{Buffer:o},{TabixIndexedFile:s},{RemoteFile:u}])=>{typeof window<"u"&&(window.Buffer??(window.Buffer=o));const l=c=>new u(al(c,this.view.getBaseUrl()));Fe(this,bu,new s({filehandle:l(this.params.url),tbiFilehandle:l(this.params.indexUrl??this.params.url+".tbi")})),a()})})}async loadInterval(n){const r=await this.discretizeAndLoad(n,async(i,a)=>{const o=[];return await W(this,bu).getLines(i.chrom,i.startPos,i.endPos,{lineCallback:s=>{o.push(s)},signal:a}),this._parseFeatures(o)});r&&this.publishData(r)}_parseFeatures(n){return[]}}bu=new WeakMap;class $9 extends j9{constructor(n,r){super(n,r);K(this,yu,void 0);Promise.resolve().then(()=>PU).then(i=>{Fe(this,yu,i.default)})}_parseFeatures(n){var i;return(i=W(this,yu))==null?void 0:i.parseStringSync(n.join(`
|
|
371
|
+
`),{parseSequences:!1})}}yu=new WeakMap;function q9(e,t){if(qw(e))return new B9(e,t);if(D9(e))return new R9(e,t);if(F9(e))return new M9(e,t);if(W9(e))return tF(e.lazy,t);throw new Error("Cannot figure out the data source type: "+JSON.stringify(e))}function W9(e){return"lazy"in e}function Z9(e){return(e==null?void 0:e.type)=="axisTicks"}function Y9(e){return(e==null?void 0:e.type)=="axisGenome"}function Q9(e){return(e==null?void 0:e.type)=="indexedFasta"}function X9(e){return(e==null?void 0:e.type)=="bigwig"}function K9(e){return(e==null?void 0:e.type)=="bigbed"}function J9(e){return(e==null?void 0:e.type)=="bam"}function eF(e){return(e==null?void 0:e.type)=="gff3"}function tF(e,t){if(Z9(e))return new P9(e,t);if(Y9(e))return new L9(e,t);if(Q9(e))return new O9(e,t);if(X9(e))return new N9(e,t);if(K9(e))return new U9(e,t);if(J9(e))return new V9(e,t);if(eF(e))return new $9(e,t);throw new Error("Cannot figure out the data source type: "+JSON.stringify(e))}function nF(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(`,
|
|
372
|
+
`)+" };");return n.properties=t,n}class of extends et{get behavior(){return $n}constructor(){super();const t=n=>{const r=nF(n);this.handle=i=>this._propagate(r(i)),this.handle(n)};this.handle=t,this.beginBatch=n=>{hw(n)&&(this.handle=t),super.beginBatch(n)}}}function rF(e){return"name"in e}class Ww extends il{constructor(n,r,i){super();K(this,wu,void 0);this.provider=i,this.params=n}get identifier(){return this.params.name}updateDynamicData(n){Fe(this,wu,n),this.loadSynchronously()}loadSynchronously(){const n=W(this,wu)??this.provider(this.params.name)??[];let r=i=>i;if(Array.isArray(n))n.length>0&&(r=jw(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()}}wu=new WeakMap;class Zw{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 Ww&&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 iF(e,t){const n=new Map,r=[];for(const i of e)n.set(i,{ref:i,children:[]});for(const i of n.values()){const a=n.get(t(i.ref));a?a.children.push(i):r.push(i)}return r}function Yw(e,t,n){var i,a;const r=(i=t.preOrder)==null?void 0:i.call(t,e);if(r)return r;for(const o of n(e)){const s=Yw(o,t,n);if(s==="stop")return s}return(a=t.postOrder)==null?void 0:a.call(t,e)}function aF(e,t){return Yw(e,t,n=>n.children)}function oF(e,t){const n=[];let r;const i=t??new Zw,a=[];function o(f,h=()=>{}){if(!r)throw h()||new Error("Cannot append data flow node, no parent exist!");return r.addChild(f),r=f,f}function s(f,h){return o(f,()=>new Error(`Cannot append a transform because no (inherited) data are available! ${h?JSON.stringify(h):""}`))}function u(f,h){for(const d of f){let p;try{p=C9(d,h)}catch(m){throw console.warn(m),new Error(`Cannot initialize "${d.type}" transform: ${m}`)}p.behavior&Kr&&s(new of),s(p)}}const l=f=>{if(n.push(r),f.spec.data){const h=rF(f.spec.data)?new Ww(f.spec.data,f,f.context.getNamedDataFromProvider):q9(f.spec.data,f);r=h,i.addDataSource(h,f)}if(f.spec.transform&&u(f.spec.transform,f),f instanceof Yt){if(!r)throw new Error(`A unit view (${f.getPathString()}) has no (inherited) data source`);const h=sF(f);if(h){a.push(h.rewrite);for(const p of h.transforms)s(p)}f.mark.isPickingParticipant()&&(s(new of),s(new Hw({type:"identifier"})));const d=new Ow({type:"collect",groupby:f.getFacetFields(),sort:lF(f,h==null?void 0:h.rewrittenEncoding)});o(d),i.addCollector(d,f)}},c=iF(e.getDescendants(),f=>f.dataParent);for(const f of c)aF(f,{preOrder:h=>l(h.ref),postOrder:()=>{r=n.pop()}});return a.forEach(f=>f()),i}function sF(e){var a;const t=[],n={},r=[];for(const[o,s]of Object.entries(e.getEncoding())){const u=o;Vs(u)&&k2(s)&&r.push({channel:u,chromPosDef:s})}const i=Pu(r,o=>Hi(o.channel),o=>o.chromPosDef.chrom);for(const[o,s]of i.entries())for(const[u,l]of s.entries()){const c=[],f=[],h=[];for(const{channel:d,chromPosDef:p}of l){const m=A=>A.replace(/[^A-Za-z0-9_]/g,""),y=["_linearized_",m(p.chrom),"_",m(p.pos)].join(""),w={...((a=e.spec.encoding)==null?void 0:a[d])??e.getEncoding()[d]??{},field:y};delete w.chrom,delete w.pos,!w.type&&p.type&&(w.type=p.type),n[d]=w,c.push(p.pos),h.push(p.offset??0),f.push(y)}t.push(new of),t.push(new Nw({type:"linearizeGenomicCoordinate",channel:o,chrom:u,pos:c,offset:h,as:f},e))}return t.length?{transforms:t,rewrittenEncoding:n,rewrite:()=>{e.spec.encoding={...e.spec.encoding,...n},SD(e.mark,"encoding")}}:void 0}function lF(e,t){var r;const n={...e.getEncoding(),...t}.x;if(Zt(n)&&(r=e.getScaleResolution("x"))!=null&&r.isZoomable()){if(Gi(n))return"buildIndex"in n&&n.buildIndex?{field:n.field}:null;if(!Hs(n)){if(Cc(n))throw new Error("A zoomable x channel must be mapped to a field.")}}}function Qw(e,t=void 0){if(e.parent!==t)return!1;for(const n of e.children)if(!Qw(n,e))return!1;return!0}function V0(e,t=!1){if(e.behavior&F0&&(t=!0),e instanceof of)if(t)t=!1;else{const n=e.children[0];e.excise(),n&&V0(n,t);return}e.behavior&$n&&(t=!1);for(let n=0,r=e.children.length;n<r;n++)V0(e.children[n],t||r>1)}function uF(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 cF(e){if(V0(e),!Qw(e))throw new Error("Encountered a bug! There's a problem in the data flow structure.")}function fF(e){for(const t of e.dataSources)cF(t);uF(e)}function hF(e){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)}})}function dF(e){for(const t of Oa){const n=e.getScaleResolution(t);n&&!n.name&&n.isZoomable()&&(n.name=`${t}_at_root`)}}async function pF(e,t,n){var o;if(!e.import.url)throw new Error("Cannot import, not an import spec: "+JSON.stringify(e));const r=Qu({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}
|
|
373
|
+
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)}`)}function Xw(e){return e.getSize().addPadding(e.getOverhang())}function gF(e){const t=n=>n.grow>0?void 0:n.px;return{width:t(e.width),height:t(e.height)}}function hr(e){return()=>e}const Rn=class Rn{static create(t,n,r,i){return new Rn(hr(t),hr(n),hr(r),hr(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"?hr(i):typeof i=="function"?i:this._passThrough(r)};return new Rn(n("x"),n("y"),n("width"),n("height"))}translate(t,n){return t===0&&n===0?this:new Rn(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 Rn(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||t==null?this:new Rn(()=>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))}union(t){return this===t||t==null?this:new Rn(()=>Math.min(this.x,t.x),()=>Math.min(this.y,t.y),()=>Math.max(this.x2,t.x2)-Math.min(this.x,t.x),()=>Math.max(this.y2,t.y2)-Math.min(this.y,t.y))}isDefined(){return this.width>=0&&this.height>=0}flatten(){return new Rn(hr(this.x),hr(this.y),hr(this.width),hr(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}`}toRoundedString(){return`Rectangle: x: ${Math.round(this.x)}, y: ${Math.round(this.y)}, width: ${Math.round(this.width)}, height: ${Math.round(this.height)}`}};yn(Rn,"ZERO",Rn.create(0,0,0,0));let dr=Rn;class Kw{constructor(t){this.globalOptions=t}pushView(t,n){}popView(t){}renderMark(t,n){}}class Jw extends Kw{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})}render(){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=Pu(this.buffer.reverse(),o=>o.mark);for(const[o,s]of[...a.entries()].reverse()){if(!o.isReady())continue;this.batch.push(()=>{t=o.unitView.getEffectiveOpacity()>0}),this.batch.push(...o.prepareRender(this.globalOptions).map(l=>r(l)));let u;for(const l of s){const c=l.coords;c.equals(u)||this.batch.push(r(()=>{n=o.setViewport(c,l.clipRect)})),this.batch.push(i(l.callback)),u=l.coords}}}}class mF extends Kw{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 bF{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 yF{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 wF=e=>new Promise(t=>setTimeout(t,e));function vF(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),u=typeof e.from=="number"?e.from:0,l=typeof e.to=="number"?e.to:1,c=e.easingFunction||(m=>m),f=m=>(m-o)/(s-o),h=m=>m*(l-u)+u,d=m=>Math.max(0,Math.min(1,m)),p=m=>{n!=null&&n.aborted?a("aborted"):(e.onUpdate(h(c(d(f(m))))),m<s?t(p):(e.onUpdate(h(c(1))),i()))};t(p)});return e.delay?n!=null&&n.aborted?Promise.reject("aborted"):wF(e.delay).then(r):r()}class xF{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 vF({requestAnimationFrame:n=>this.requestTransition(n),...t})}}class AF{constructor(t){this.genomes=new Map,this.baseUrl=t}async initialize(t){const n=new HR(t);return this.genomes.set(n.name,n),Promise.all([...this.genomes.values()].map(r=>r.load(this.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 EF="data:image/png;base64,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",_F={thin:100,light:300,regular:400,normal:400,medium:500,bold:700,black:900};class SF{constructor(t){this._webGLHelper=t,this.fontRepository="https://raw.githubusercontent.com/etiennepinchon/aframe-fonts/master/fonts/",this._fonts=new Rr([],JSON.stringify),this._metadataPromises=new Map,this._fontPromises=new Map,this._promises=[],this._defaultFontEntry={metrics:B0(zw),texture:t?this._createTextureNow(EF):void 0}}async waitUntilReady(){await Promise.all(this._promises)}getFont(t,n="normal",r="regular"){if(Ue(r)&&(r=_F[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=kF(r,n),a=this.fontRepository+ev(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=>B0(r)),this._fontPromises.set(t,n)),n}_loadMetadata(t){const n=ev(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=>CF(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)=>{Qs(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=Qs(n,{src:t,min:n.LINEAR},(s,u,l)=>{s?o(s):a(u)})});return this._promises.push(i),r}}function ev(e){return e.toLowerCase().replaceAll(/[^\w]/g,"")}function CF(e){const t=e.split(`
|
|
374
|
+
`),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 kF(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 TF(e,t){const n=[];let r;for(const i of e.split(`
|
|
375
|
+
`))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 IF{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=Rm([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 BF(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 tv=new Map;async function DF(e,t,n){const r=e.symbol;let i=tv.get(r)??await MF(e.symbol);return i?(tv.set(r,i),it`
|
|
303
376
|
<div class="title">
|
|
304
377
|
<strong>${i.name}</strong>
|
|
305
378
|
${i.description}
|
|
306
379
|
</div>
|
|
307
380
|
<p class="summary">${i.summary}</p>
|
|
308
381
|
<p class="source">Source: NCBI RefSeq Gene</p>
|
|
309
|
-
`):null}async function
|
|
382
|
+
`):null}async function RF(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 FF=af(RF,500);function MF(e){return FF(e)}const PF=mt(".4~r"),LF=mt(".4~e");function nv(e){return e==null?it` <span class="na">NA</span> `:Ue(e)?e.substring(0,30):Number.isInteger(e)?""+e:Tt(e)?Math.abs(e)>Math.pow(10,8)||Math.abs(e)<Math.pow(10,-8)?LF(e):PF(e):Yo(e)?e?"True":"False":xt(e)?it`${e.map((t,n)=>[nv(t),n<e.length-1?", ":at])}`:"?"+typeof e+" "+e}async function OF(e,t,n){const r=(u,l)=>{var c;for(const[f,h]of Object.entries(t.encoders))if((c=h==null?void 0:h.accessor)!=null&&c.fields.includes(u))switch(f){case"color":case"fill":case"stroke":return it`
|
|
310
383
|
<span
|
|
311
384
|
class="color-legend"
|
|
312
385
|
style=${`background-color: ${h(l)}`}
|
|
313
386
|
></span>
|
|
314
|
-
`}return""},i=Object.entries(e).filter(([u,l])=>!u.startsWith("_"));if(i.length===0)return;const a=
|
|
387
|
+
`}return""},i=Object.entries(e).filter(([u,l])=>!u.startsWith("_"));if(i.length===0)return;const a=it`
|
|
315
388
|
<table class="attributes">
|
|
316
|
-
${i.map(([u,l])=>
|
|
389
|
+
${i.map(([u,l])=>it`
|
|
317
390
|
<tr>
|
|
318
391
|
<th>${u}</th>
|
|
319
|
-
<td>${
|
|
392
|
+
<td>${nv(l)} ${r(u,e)}</td>
|
|
320
393
|
</tr>
|
|
321
394
|
`)}
|
|
322
395
|
</table>
|
|
323
|
-
`,o=t.unitView.getTitleText(),s=o?
|
|
396
|
+
`,o=t.unitView.getTitleText(),s=o?it`
|
|
324
397
|
<div class="title">
|
|
325
398
|
<strong>${o}</strong>
|
|
326
399
|
</div>
|
|
327
|
-
`:"";return mn`${s}${a}`}class $s extends Zi{constructor(n,r,i,a,o,s){super(n,r,i,a,o,s);ne(this,br,[]);this.spec=n,this.needsAxes={x:!0,y:!0}}async initializeChildren(){Xe(this,br,await Promise.all(this.spec.layer.map((n,r)=>this.context.createOrImportView(n,this,this,"grid"+r,i=>{if(!_0(i)&&!E0(i))throw new qi("LayerView accepts only unit or layer specs as children!",this)}))))}get children(){return W(this,br).slice()}*[Symbol.iterator](){for(const n of W(this,br))yield n}render(n,r,i={}){if(super.render(n,r,i),!!this.isConfiguredVisible()){n.pushView(this,r);for(const a of W(this,br))a.render(n,r,i);n.popView(this)}}propagateInteractionEvent(n){this.handleInteractionEvent(void 0,n,!0);for(let r=W(this,br).length-1;r>=0;r--)if(W(this,br)[r].propagateInteractionEvent(n),n.stopped)return;this.handleInteractionEvent(void 0,n,!1)}}br=new WeakMap;class xw{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)]}}const RF="chromosome_ticks_and_labels",MF={x:"width",y:"height"};function w0(e){return e=="x"?"y":"x"}const Pf={x:["bottom","top"],y:["left","right"]},v0=Object.fromEntries(Object.entries(Pf).map(([e,t])=>t.map(n=>[n,e])).flat(1));function qr(e){return v0[e]}class Aw extends $s{constructor(t,n,r,i,a,o){const s=n=="locus",u={...s?LF:Ew,...PF(n,t),...t};super(s?NF(u,n):_w(u,n),r,i,a,`axis_${t.orient}`,{blockEncodingInheritance:!0,contributesToScaleDomain:!1,...o}),this.axisProps=u}getSize(){const t={px:this.getPerpendicularSize()},n={grow:1};return v0[this.axisProps.orient]=="x"?new jr(n,t):new jr(t,n)}getPerpendicularSize(){return x0(this.axisProps)}isPickingSupported(){return!1}}function x0(e){const t=qr(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 Ew={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 PF(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 _w(e,t){const n={...e,extent:x0(e)},r=qr(n.orient),i=w0(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}}),u=()=>({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"}}}),l=()=>({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)}}}),f=()=>({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}}),c=()=>{const d={name:"ticks_and_labels",encoding:{[r]:{field:"value",type:t}},layer:[]};return n.ticks&&d.layer.push(l()),n.labels&&d.layer.push(u()),d},h={resolve:{scale:{[r]:"forced"}},[MF[w0(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(c()),n.title&&h.layer.push(f()),h}const LF={...Ew,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 NF(e,t){const n={...e,extent:x0(e)},r=qr(n.orient),i=w0(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 f;switch(n.orient){case"top":f={y:0,angle:0,paddingX:4,dy:-n.chromLabelPadding,viewportEdgeFadeWidthLeft:20,viewportEdgeFadeWidthRight:20,viewportEdgeFadeDistanceRight:-10,viewportEdgeFadeDistanceLeft:-20};break;case"bottom":f={y:1,angle:0,paddingX:4,dy:n.chromLabelPadding+n.chromLabelFontSize*.73,viewportEdgeFadeWidthLeft:20,viewportEdgeFadeWidthRight:20,viewportEdgeFadeDistanceRight:-10,viewportEdgeFadeDistanceLeft:-20};break;case"left":f={x:1,angle:-90,paddingY:4,dy:-n.chromLabelPadding,viewportEdgeFadeWidthBottom:20,viewportEdgeFadeWidthTop:20,viewportEdgeFadeDistanceBottom:-20,viewportEdgeFadeDistanceTop:-10};break;case"right":f={x:0,angle:90,align:"right",paddingY:4,dy:-n.chromLabelPadding};break;default:f={}}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,...f},encoding:{[r+"2"]:{field:"continuousEnd",type:t},text:{field:"name"}}}};let u;switch(n.orient){case"bottom":case"top":u={};break;case"left":u={labelAngle:-90,labelAlign:"center",labelPadding:6};break;case"right":u={labelAngle:90,labelAlign:"center",labelPadding:6};break;default:u={}}const l=_w({...e,...u},t);if(e.chromTicks||e.chromLabels){const f={name:RF,data:{lazy:{type:"axisGenome",channel:qr(n.orient)}},encoding:{[r]:{field:"continuousStart",type:t,band:0}},layer:[]};if(e.chromTicks&&f.layer.push(o()),e.chromLabels){f.layer.push(s());let c;l.layer.filter(h=>h.name=="ticks_and_labels").forEach(h=>h.layer.filter(d=>d.name=="labels").forEach(d=>{c=d.mark})),c&&(n.orient=="top"||n.orient=="bottom"?(c.viewportEdgeFadeWidthLeft=30,c.viewportEdgeFadeDistanceLeft=40):(c.viewportEdgeFadeWidthBottom=30,c.viewportEdgeFadeDistanceBottom=40))}l.layer.push(f)}return l}class OF extends $s{constructor(t,n,r,i,a,o){const u={...n=="locus"?zF:Sw,...t};super(VF(u,n),r,i,a,`axisGrid_${t.orient}`,{blockEncodingInheritance:!0,contributesToScaleDomain:!1,...o}),this.axisProps=u}getOrient(){return this.axisProps.orient}isPickingSupported(){return!1}}const Sw={values:null,grid:!1,gridCap:"butt",gridColor:"lightgray",gridDash:null,gridOpacity:1,gridWidth:1,tickCount:null,tickMinStep:null},zF={...Sw,chromGrid:!1,chromGridCap:"butt",chromGridColor:"gray",chromGridDash:[1,5],chromGridOpacity:1,chromGridWidth:1};function UF(e,t){const n=e,r=qr(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 GF(e,t){const n=e,r=qr(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 HF(e,t){const n=e,r=qr(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 VF(e,t){const n={...e},r=[];return n.chromGrid&&(n.chromGridFillOdd||n.chromGridFillEven)&&r.push(HF(n,t)),n.chromGrid&&n.chromGridOpacity>0&&r.push(GF(n,t)),n.grid&&n.gridOpacity>0&&r.push(UF(n,t)),{name:"grid_layers",configurableVisibility:!1,resolve:{scale:{[qr(e.orient)]:"forced",fill:"independent",opacity:"independent"}},layer:r}}const Cw={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"},jF={orient:"left",anchor:"middle",align:"right",baseline:"middle",angle:0,fontSize:12},qF={orient:"top",anchor:"start",align:"left",baseline:"top",offset:-10,dx:10,fontSize:12},ZF={start:0,middle:.5,end:1},WF={start:"left",middle:"center",end:"right"};function YF(e){if(!e)return;const t=Pe(e)?{text:e}:e;if(!t.text||t.orient=="none")return;const n={"track-title":jF,overlay:qF}[t.style]??{},r={...Cw,...n,...t};let i={},a={x:0,y:0};const o=ZF[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={...Cw,...i,...n,...t},u={xOffset:0,yOffset:0};switch(r.orient){case"top":u.yOffset=-s.offset;break;case"right":u.xOffset=s.offset;break;case"bottom":u.yOffset=s.offset;break;case"left":u.xOffset=-s.offset;break}return{configurableVisibility:!1,data:{values:[{}]},mark:{type:"text",tooltip:null,clip:!1,...a,...u,text:s.text,align:s.align??WF[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 QF(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 u=r.mark.encoders;u.x&&!u.x2&&!u.x.constantValue&&(o=+u.x(r.datum)*t.width+t.x),u.y&&!u.y2&&!u.y.constantValue&&(s=(1-+u.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=u=>{n({x:a.clientX,y:a.clientY,xDelta:u.clientX-a.clientX,yDelta:u.clientY-a.clientY,zDelta:0}),a=u},s=u=>{document.removeEventListener("mousemove",o),document.removeEventListener("mouseup",s)};document.addEventListener("mouseup",s,!1),document.addEventListener("mousemove",o,!1)}}class $F extends Zi{constructor(n,r,i,a,o,s,u){super(n,r,i,a,o,u);ne(this,yr);ne(this,zc);ne(this,ma);ne(this,eu);ne(this,tu);ne(this,nu);ne(this,Uc);ne(this,No);ne(this,Gc);ne(this,Mo,1/0);ne(this,Po,10);ne(this,Kt,[]);ne(this,ga,{});ne(this,Lo,0);this.spec=n,Xe(this,Po,n.spacing??10),Xe(this,Mo,s),Xe(this,Kt,[]),this.wrappingFacet=!1}appendChild(n){n.layoutParent??(n.layoutParent=this),W(this,Kt).push(new Tw(n,this,W(this,Lo))),s_(this,Lo)._++}setChildren(n){Xe(this,Kt,[]);for(const r of n)this.appendChild(r)}replaceChild(n,r){const i=W(this,Kt).findIndex(a=>a.view==n);if(i>=0)W(this,Kt)[i]=new Tw(r,this,W(this,Lo));else throw new Error("Not my child view!")}get children(){return W(this,Kt).map(n=>n.view)}get childCount(){return W(this,Kt).length}async createAxes(){const n=[];for(const r of Ma){const i=this.resolutions.axis[r];if(i){const a=i.getAxisProps();if(a){const o={title:i.getTitle(),orient:Pf[r][0],...a},s=new Aw(o,i.scaleResolution.type,this.context,this,this);n.push(s.initializeChildren()),W(this,ga)[r]=s}}}return Promise.all([...n,...W(this,Kt).map(r=>r.createAxes())])}*[Symbol.iterator](){for(const n of W(this,Kt))yield*n.getChildren();for(const n of Object.values(W(this,ga)))yield n}getOverhang(){return ee(this,Uc,d_).call(this).union(ee(this,No,Zc).call(this))}getSize(){return this._cache("size",()=>new jr(ee(this,tu,Zg).call(this,"column"),ee(this,tu,Zg).call(this,"row")).addPadding(ee(this,No,Zc).call(this)))}render(n,r,i={}){if(super.render(n,r,i),!this.isConfiguredVisible())return;this.layoutParent||(r=r.shrink(this.getPadding())),r=r.shrink(ee(this,No,Zc).call(this)),n.pushView(this,r);const a={devicePixelRatio:this.context.devicePixelRatio},o=Ry(ee(this,eu,qg).call(this,"column"),r.width,a),s=Ry(ee(this,eu,qg).call(this,"row"),r.height,a),u=new xw(W(this,yr,va).length,W(this,Mo)??1/0),l=f=>Math.round(f*devicePixelRatio)/devicePixelRatio;for(const[f,c]of W(this,yr,va).entries()){const{view:h,axes:d,gridLines:p,background:b,backgroundStroke:y,title:w}=c,[A,S]=u.getCellCoords(f),_=o[ee(this,nu,Wg).call(this,"column",A)],T=s[ee(this,nu,Wg).call(this,"row",S)],I=h.getViewportSize(),B=h.getSize(),R=h.getOverhang(),L=_.location-R.left,j=T.location-R.top,M=(Oe,N)=>(Oe[N].grow?(N=="width"?_:T).size:Oe[N].px)+R[N],ie=M(I,"width"),se=M(I,"height"),ge=M(B,"width"),Ie=M(B,"height"),$e=c.scrollbars.horizontal,De=c.scrollbars.vertical,Ke=$e?()=>l($e.viewportOffset):()=>0,Ze=De?()=>l(De.viewportOffset):()=>0,Je=new sr(()=>r.x+L,()=>r.y+j,()=>ie,()=>se),Ee=h.isScrollable(),_e=Ee?new sr(()=>r.x+L-Ke(),()=>r.y+j-Ze(),()=>ge,()=>Ie):Je;c.coords=Je;const pt=i.clipRect?Je.intersect(i.clipRect):Je;b==null||b.render(n,pt,{...i,clipRect:void 0});for(const Oe of Object.values(p))Oe.render(n,Je,i);const qt=eR(h)||Ee;qt&&h.render(n,_e,{...i,clipRect:pt}),y==null||y.render(n,pt,{...i,clipRect:void 0});for(const[Oe,N]of Object.entries(d)){const P=Oe=="left"||Oe=="right"?"vertical":"horizontal",q=c.scrollbars[P],H=q?Je.modify(P=="vertical"?{y:()=>_e.y,height:Ie}:{x:()=>_e.x,width:ge}):Je,Y=kw(H,Oe,N);let C=i.clipRect;q&&(C=Y.intersect(C).intersect(q?Je.modify(P=="vertical"?{x:-1e5,width:2e5}:{y:-1e5,height:2e5}):void 0)),N.render(n,Y,{...i,clipRect:C})}for(const Oe of Object.values(W(this,ga))){const P=Oe.axisProps.orient;(P=="left"&&A==0||P=="right"&&A==u.nCols-1||P=="top"&&S==0||P=="bottom"&&S==u.nRows-1)&&Oe.render(n,kw(Je.shrink(c.view.getOverhang()),P,Oe),i)}qt||h.render(n,_e,i);for(const Oe of Object.values(c.scrollbars))Oe.updateScrollbar(Je,_e),Oe.render(n,r,i);w==null||w.render(n,Je,i)}n.popView(this)}propagateInteractionEvent(n){if(this.handleInteractionEvent(void 0,n,!0),n.stopped)return;const r=W(this,yr,va).find(a=>a.coords.containsPoint(n.point.x,n.point.y));for(const a of Object.values((r==null?void 0:r.scrollbars)??{}))if(a.coords.containsPoint(n.point.x,n.point.y)&&(a.propagateInteractionEvent(n),n.stopped))return;const i=r==null?void 0:r.view;i&&(i.propagateInteractionEvent(n),(i instanceof Yt||i instanceof $s)&&QF(n,r.coords,a=>ee(this,Gc,p_).call(this,r.coords,r.view,a),this.context.getCurrentHover())),!n.stopped&&this.handleInteractionEvent(void 0,n,!1)}getDefaultResolution(n,r){return"independent"}}Mo=new WeakMap,Po=new WeakMap,Kt=new WeakMap,ga=new WeakMap,Lo=new WeakMap,yr=new WeakSet,va=function(){return W(this,Kt).filter(n=>n.view.isConfiguredVisible())},zc=new WeakSet,h_=function(){return new xw(W(this,yr,va).length,W(this,Mo)??1/0)},ma=new WeakSet,ou=function(n){const r=n=="column"?"width":"height",i=(a,o)=>a.map(s=>{const l=W(this,yr,va)[s].getOverhangAndPadding();return n=="column"?o?l.right:l.left:o?l.bottom:l.top}).reduce((s,u)=>Math.max(s,u),0);return this._cache(`size/directionSizes/${n}`,()=>W(this,zc,h_)[n=="column"?"colIndices":"rowIndices"].map(a=>({axisBefore:i(a,0),axisAfter:i(a,1),view:rD(a.map(o=>W(this,yr,va)[o].view.getViewportSize()[r]))})))},eu=new WeakSet,qg=function(n){const r=ee(this,ma,ou).call(this,n),i=[];i.push(js);for(const[a,o]of r.entries())a>0&&i.push({px:W(this,Po),grow:0}),(a==0||this.wrappingFacet)&&i.push(js),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(js);return i},tu=new WeakSet,Zg=function(n){let r=0,i=0;const a=n=="row"?this.spec.height:this.spec.width;if(a||a===0)return Py(a);const o=ee(this,ma,ou).call(this,n);for(const[s,u]of o.entries())s>0&&(i+=W(this,Po)),(s==0||this.wrappingFacet)&&(i+=0),i+=u.axisBefore,i+=u.view.px??0,r+=u.view.grow??0,i+=u.axisAfter,(s==o.length-1||this.wrappingFacet)&&(i+=0);return{px:i,grow:r}},nu=new WeakSet,Wg=function(n,r){return n=="row"&&this.wrappingFacet?1+6*r+2:2+4*r+1},Uc=new WeakSet,d_=function(){const n=ee(this,ma,ou).call(this,"column"),r=ee(this,ma,ou).call(this,"row");return!n.length||!r.length?_t.zero():new _t(r.at(0).axisBefore,n.at(-1).axisAfter,r.at(-1).axisAfter,n.at(0).axisBefore)},No=new WeakSet,Zc=function(){const n=r=>{const i=v0[r],a=W(this,ga)[i];return(a==null?void 0:a.axisProps.orient)!==r?0:Math.max(a.getPerpendicularSize()+a.axisProps.offset,0)};return new _t(n("top"),n("right"),n("bottom"),n("left"))},Gc=new WeakSet,p_=function(n,r,i){for(const[a,o]of Object.entries(JF(r))){if(o.size<=0)continue;const s=n.normalizePoint(i.x,i.y),u=n.normalizePoint(i.x+i.xDelta,i.y+i.yDelta),l={x:u.x-s.x,y:u.y-s.y};for(const f of o)f.zoom(2**i.zDelta,a=="y"?1-s[a]:s[a],a=="x"?l.x:-l.y)}this.context.animator.requestRender()};function XF(e){if(!(!e||!e.fill||e.fillOpacity===0))return{configurableVisibility:!1,data:{values:[{}]},mark:{color:e.fill,opacity:e.fillOpacity??1,type:"rect",clip:!1,tooltip:null,minHeight:1,minOpacity:0}}}function KF(e){if(!(!e||!e.stroke||e.strokeWidth===0||e.strokeOpacity===0))return{configurableVisibility:!1,resolve:{scale:{x:"excluded",y:"excluded"},axis:{x:"excluded",y:"excluded"}},data:{values:[{x:0,y:0,x2:1,y2:0},{x:1,y:0,x2:1,y2:1},{x:1,y:1,x2:0,y2:1},{x:0,y:1,x2:0,y2:0}]},mark:{size:e.strokeWidth??1,color:e.stroke??"lightgray",strokeCap:"square",strokeOpacity:e.strokeOpacity??1,type:"rule",clip:!1,tooltip:null},encoding:{x:{field:"x",type:"quantitative",scale:null},y:{field:"y",type:"quantitative",scale:null},x2:{field:"x2"},y2:{field:"y2"}}}}function JF(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 eR(e){let t=!0;return e.visit(n=>{n instanceof Yt&&t&&(t=n.mark.properties.clip===!0)}),t}function kw(e,t,n){const r=n.axisProps,i=n.getPerpendicularSize();if(t=="bottom")return e.translate(0,e.height+r.offset).modify({height:i});if(t=="top")return e.translate(0,-i-r.offset).modify({height:i});if(t=="left")return e.translate(-i-r.offset,0).modify({width:i});if(t=="right")return e.translate(e.width+r.offset,0).modify({width:i})}class Tw{constructor(t,n,r){if(this.layoutParent=n,this.view=t,this.serial=r,this.background=void 0,this.backgroundStroke=void 0,this.axes={},this.gridLines={},this.scrollbars={},this.title=void 0,this.coords=sr.ZERO,t.needsAxes.x||t.needsAxes.y){const i=t.spec,a="view"in i?i==null?void 0:i.view:void 0,o=XF(a);o&&(this.background=new Yt(o,n.context,n,t,"background"+r,{blockEncodingInheritance:!0}));const s=KF(a);s&&(this.backgroundStroke=new Yt(s,n.context,n,t,"backgroundStroke"+r,{blockEncodingInheritance:!0}));const u=YF(t.spec.title);if(u){const l=new Yt(u,n.context,n,t,"title"+r,{blockEncodingInheritance:!0});this.title=l}}t.spec.viewportWidth!=null&&(this.scrollbars.horizontal=new Iw(this,"horizontal")),t.spec.viewportHeight!=null&&(this.scrollbars.vertical=new Iw(this,"vertical"))}*getChildren(){this.background&&(yield this.background),this.backgroundStroke&&(yield this.backgroundStroke),this.title&&(yield this.title),yield*Object.values(this.axes),yield*Object.values(this.gridLines),yield this.view,yield*Object.values(this.scrollbars)}async createAxes(){const{view:t,axes:n,gridLines:r}=this,i=(s,u)=>{const l=s.getAxisProps();if(l===null)return;const f=l?{...l}:{};if(!f.orient){for(const c of Pf[u])if(!n[c]){f.orient=c;break}if(!f.orient)throw new Error("No slots available for an axis! Perhaps a LayerView has more than two children?")}if(f.title??(f.title=s.getTitle()),!Pf[u].includes(f.orient))throw new Error(`Invalid axis orientation "${f.orient}" on channel "${u}"!`);return f},a=async(s,u,l)=>{const f=i(s,u);if(f){if(n[f.orient])throw new Error(`An axis with the orient "${f.orient}" already exists!`);const c=new Aw(f,s.scaleResolution.type,this.layoutParent.context,this.layoutParent,l);n[f.orient]=c,await c.initializeChildren()}},o=async(s,u,l)=>{const f=i(s,u);if(f&&(f.grid||f.chromGrid)){const c=new OF(f,s.scaleResolution.type,this.layoutParent.context,this.layoutParent,l);r[f.orient]=c,await c.initializeChildren()}};for(const s of["x","y"])if(t.needsAxes[s]){const u=t.resolutions.axis[s];if(!u)continue;await a(u,s,t)}for(const s of["x","y"])if(t.needsAxes[s]){const u=t.getAxisResolution(s);if(!u)continue;await o(u,s,t)}if(t instanceof $s){for(const s of t)for(const[u,l]of Object.entries(s.resolutions.axis)){const f=l.getAxisProps();f&&f.orient&&await a(l,u,s)}for(const s of t)for(const[u,l]of Object.entries(s.resolutions.axis)){const f=l.getAxisProps();f&&!f.orient&&await a(l,u,s)}}[...Object.values(n),...Object.values(r)].forEach(s=>s.visit(u=>{u instanceof Yt&&u.resolve("scale")}))}getOverhang(){const t=n=>{const r=this.axes[n];return r?Math.max(r.getPerpendicularSize()+r.axisProps.offset,0):0};return new _t(t("top"),t("right"),t("bottom"),t("left")).add(this.view.getOverhang())}getOverhangAndPadding(){return this.getOverhang().add(this.view.getPadding())}}class Iw extends Yt{constructor(t,n){const r={scrollbarSize:8,scrollbarPadding:2};super({data:{values:[{}]},mark:{type:"rect",fill:"#b0b0b0",fillOpacity:.6,stroke:"white",strokeWidth:1,strokeOpacity:1,cornerRadius:5,clip:!1},configurableVisibility:!1},t.layoutParent.context,t.layoutParent,t.view,"scrollbar-"+n,{blockEncodingInheritance:!0}),this.config=r,this.scrollDirection=n,this.viewportOffset=0,this.maxScrollOffset=0,this.scrollbarCoords=sr.ZERO,this.addInteractionEventListener("mousedown",(i,a)=>{if(a.stopPropagation(),this.maxScrollOffset<=0)return;const o=h=>n=="vertical"?h.clientY:h.clientX,s=a.uiEvent;s.preventDefault();const u=this.getScrollOffset(),l=o(s),f=h=>{const d=xs(o(h)-l+u,0,this.maxScrollOffset);this.viewportOffset=d/this.maxScrollOffset*this.maxViewportOffset,this.context.animator.requestRender()},c=()=>{document.removeEventListener("mousemove",f),document.removeEventListener("mouseup",c)};document.addEventListener("mouseup",c,!1),document.addEventListener("mousemove",f,!1)})}getScrollOffset(){return this.viewportOffset/this.maxViewportOffset*this.maxScrollOffset}render(t,n,r){super.render(t,this.scrollbarCoords,r)}updateScrollbar(t,n){const r=this.config.scrollbarPadding,i=this.config.scrollbarSize,a=this.scrollDirection=="horizontal"?"width":"height",o=Math.min(1,t[a]/n[a]),s=t[a]-2*r,u=o*s;this.maxScrollOffset=s-u,this.maxViewportOffset=n[a]-t[a],this.viewportOffset=xs(this.viewportOffset,0,this.maxViewportOffset),this.scrollbarCoords=this.scrollDirection=="vertical"?new sr(()=>t.x+t.width-i-r,()=>t.y+r+this.getScrollOffset(),()=>i,()=>u):new sr(()=>t.x+r+this.getScrollOffset(),()=>t.y+t.height-i-r,()=>u,()=>i)}}class A0 extends $F{constructor(t,n,r,i,a){super(t,n,r,i,a,S0(t)?t.columns:Lf(t)?1:1/0),this.spec=t}async initializeChildren(){const t=this.spec,n=S0(t)?t.concat:Lf(t)?t.vconcat:t.hconcat;this.setChildren(await Promise.all(n.map((r,i)=>this.context.createOrImportView(r,this,this,"grid"+i)))),await this.createAxes()}getDefaultResolution(t,n){return n=="axis"?"independent":Lf(this.spec)&&t==="x"||Dw(this.spec)&&t==="y"?"shared":"independent"}}const Bw="viewRoot";class tR{constructor(t={}){ne(this,Oo,new Map);this.options={allowImport:!0,wrapRoot:!0,...t};const n=r=>(i,a,o,s,u)=>new r(i,a,o,s,i.name??u);this.addViewType(_0,n($s)),this.addViewType(E0,n(Yt)),this.addViewType(Lf,n(A0)),this.addViewType(Dw,n(A0)),this.addViewType(S0,n(A0)),this.addViewType(rR,()=>{throw new Error("SampleView is not supported by the @genome-spy/core package. Use @genome-spy/app instead!")})}addViewType(t,n){W(this,Oo).set(t,n)}createView(t,n,r,i,a){for(const[o,s]of W(this,Oo))if(o(t))return s(t,n,r,i,a);throw new Error("Invalid spec, cannot figure out the view type from the properties: "+JSON.stringify([...Object.keys(t)]))}isViewSpec(t){const n=[...W(this,Oo).keys()].filter(r=>r(t));if(n.length>1)throw new Error("Ambiguous spec. Cannot create a view!");return n.length==1}async createOrImportView(t,n,r,i,a,o){let s;if(nR(t))if(this.options.allowImport)s=await uF(t,i.getBaseUrl(),n),o&&o(s);else throw new qi("Importing views is not allowed!",r);else s=t;!i&&this.options.wrapRoot&&(E0(s)||_0(s))&&a===Bw&&(s={name:"implicitRoot",vconcat:[s]});const u=this.createView(s,n,r,i,a);return u instanceof Zi&&await u.initializeChildren(),u}}Oo=new WeakMap;function E0(e){return"mark"in e&&(Pe(e.mark)||Rt(e.mark))}function _0(e){return"layer"in e&&Rt(e.layer)}function nR(e){return"import"in e}function Lf(e){return"vconcat"in e&&Ft(e.vconcat)}function Dw(e){return"hconcat"in e&&Ft(e.hconcat)}function S0(e){return"concat"in e&&Ft(e.concat)}function rR(e){return"samples"in e&&Rt(e.samples)&&"spec"in e&&Rt(e.spec)}class iR{constructor(){ne(this,zo,void 0);ne(this,ba,void 0);ne(this,ru,void 0);ne(this,ya,void 0);Xe(this,zo,new Map),Xe(this,ba,new Set),Xe(this,ya,new Map),Xe(this,ru,new Proxy(W(this,zo),{get(t,n){return Pe(n)?t.get(n):void 0}}))}allocateSetter(t){if(W(this,ba).has(t))throw new Error("Setter already allocated for parameter: "+t);return W(this,ba).add(t),n=>{W(this,zo).set(t,n);const r=W(this,ya).get(t);if(r)for(const i of r)i()}}createExpression(t){const n=Nu(t,W(this,ru));for(const r of n.globals)if(!W(this,ba).has(r))throw new Error(`Unknown variable "${r}" in expression: ${t}`);return n.addListener=r=>{for(const i of n.globals){const a=W(this,ya).get(i)??new Set;W(this,ya).set(i,a),a.add(r)}},n}}zo=new WeakMap,ba=new WeakMap,ru=new WeakMap,ya=new WeakMap,t1("fasta",EF);class Fw{constructor(t,n,r={}){this.container=t,this._destructionCallbacks=[];const i=document.createElement("style");i.innerHTML=yC,t.appendChild(i),this.spec=n,this.accessorFactory=new s5,this.viewFactory=new tR,this.namedDataProviders=[],this.animator=new mF(()=>this.renderAll()),this.genomeStore=void 0,this.viewVisibilityPredicate=a=>a.isVisibleInSpec(),this._renderingContext=void 0,this._pickingContext=void 0,this._dirtyPickingBuffer=!1,this._currentHover=void 0,this._wheelInertia=new _F(this.animator),this._keyboardListeners=new Map,this._eventListeners=new Map,this._extraBroadcastListeners=new Map,this.tooltipHandlers={default:FF,refseqgene:CF,...r.tooltipHandlers??{}},this.viewRoot=void 0,this._paramBroker=new iR,this._loadingViews=new Map}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),d0(r.hosts),this.animator.requestRender()}broadcast(t,n){var i;const r={type:t,payload:n};this.viewRoot.visit(a=>a.handleBroadcast(r)),(i=this._extraBroadcastListeners.get(t))==null||i.forEach(a=>a(r))}_updateLoadingIndicators(){const t=[],n=()=>[...this._loadingViews.values()].some(r=>r);for(const[r,i]of this._loadingViews){const a=r.coords;if(a){const o={left:`${a.x}px`,top:`${a.y}px`,width:`${a.width}px`,height:`${a.height}px`};t.push(mn`<div style=${mC(o)}>
|
|
400
|
+
`:"";return it`${s}${a}`}class sl extends Yi{constructor(n,r,i,a,o,s){super(n,r,i,a,o,s);K(this,_r,[]);this.spec=n,this.needsAxes={x:!0,y:!0}}async initializeChildren(){Fe(this,_r,await Promise.all(this.spec.layer.map((n,r)=>this.context.createOrImportView(n,this,this,"grid"+r,i=>{if(!Y0(i)&&!Z0(i))throw new Zi("LayerView accepts only unit or layer specs as children!",this)}))))}get children(){return W(this,_r).slice()}*[Symbol.iterator](){for(const n of W(this,_r))yield n}render(n,r,i={}){if(super.render(n,r,i),!!this.isConfiguredVisible()){n.pushView(this,r);for(const a of W(this,_r))a.render(n,r,i);n.popView(this)}}propagateInteractionEvent(n){this.handleInteractionEvent(void 0,n,!0);for(let r=W(this,_r).length-1;r>=0;r--)if(W(this,_r)[r].propagateInteractionEvent(n),n.stopped)return;this.handleInteractionEvent(void 0,n,!1)}}_r=new WeakMap;class rv{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)]}}const NF="chromosome_ticks_and_labels",zF={x:"width",y:"height"};function j0(e){return e=="x"?"y":"x"}const sf={x:["bottom","top"],y:["left","right"]},$0=Object.fromEntries(Object.entries(sf).map(([e,t])=>t.map(n=>[n,e])).flat(1));function ei(e){return $0[e]}class iv extends sl{constructor(t,n,r,i,a,o){const s=n=="locus",u={...s?GF:av,...UF(n,t),...t};super(s?HF(u,n):ov(u,n),r,i,a,`axis_${t.orient}`,{blockEncodingInheritance:!0,contributesToScaleDomain:!1,...o}),this.axisProps=u}getSize(){const t={px:this.getPerpendicularSize()},n={grow:1};return $0[this.axisProps.orient]=="x"?new Jr(n,t):new Jr(t,n)}getPerpendicularSize(){return q0(this.axisProps)}isPickingSupported(){return!1}}function q0(e){const t=ei(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 av={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 UF(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 ov(e,t){const n={...e,extent:q0(e)},r=ei(n.orient),i=j0(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}}),u=()=>({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"}}}),l=()=>({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)}}}),c=()=>({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(l()),n.labels&&d.layer.push(u()),d},h={resolve:{scale:{[r]:"forced"}},[zF[j0(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(c()),h}const GF={...av,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 HF(e,t){const n={...e,extent:q0(e)},r=ei(n.orient),i=j0(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 c;switch(n.orient){case"top":c={y:0,angle:0,paddingX:4,dy:-n.chromLabelPadding,viewportEdgeFadeWidthLeft:20,viewportEdgeFadeWidthRight:20,viewportEdgeFadeDistanceRight:-10,viewportEdgeFadeDistanceLeft:-20};break;case"bottom":c={y:1,angle:0,paddingX:4,dy:n.chromLabelPadding+n.chromLabelFontSize*.73,viewportEdgeFadeWidthLeft:20,viewportEdgeFadeWidthRight:20,viewportEdgeFadeDistanceRight:-10,viewportEdgeFadeDistanceLeft:-20};break;case"left":c={x:1,angle:-90,paddingY:4,dy:-n.chromLabelPadding,viewportEdgeFadeWidthBottom:20,viewportEdgeFadeWidthTop:20,viewportEdgeFadeDistanceBottom:-20,viewportEdgeFadeDistanceTop:-10};break;case"right":c={x:0,angle:90,align:"right",paddingY:4,dy:-n.chromLabelPadding};break;default:c={}}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,...c},encoding:{[r+"2"]:{field:"continuousEnd",type:t},text:{field:"name"}}}};let u;switch(n.orient){case"bottom":case"top":u={};break;case"left":u={labelAngle:-90,labelAlign:"center",labelPadding:6};break;case"right":u={labelAngle:90,labelAlign:"center",labelPadding:6};break;default:u={}}const l=ov({...e,...u},t);if(e.chromTicks||e.chromLabels){const c={name:NF,data:{lazy:{type:"axisGenome",channel:ei(n.orient)}},encoding:{[r]:{field:"continuousStart",type:t,band:0}},layer:[]};if(e.chromTicks&&c.layer.push(o()),e.chromLabels){c.layer.push(s());let f;l.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))}l.layer.push(c)}return l}class VF extends sl{constructor(t,n,r,i,a,o){const u={...n=="locus"?jF:sv,...t};super(ZF(u,n),r,i,a,`axisGrid_${t.orient}`,{blockEncodingInheritance:!0,contributesToScaleDomain:!1,...o}),this.axisProps=u}getOrient(){return this.axisProps.orient}isPickingSupported(){return!1}}const sv={values:null,grid:!1,gridCap:"butt",gridColor:"lightgray",gridDash:null,gridOpacity:1,gridWidth:1,tickCount:null,tickMinStep:null},jF={...sv,chromGrid:!1,chromGridCap:"butt",chromGridColor:"gray",chromGridDash:[1,5],chromGridOpacity:1,chromGridWidth:1};function $F(e,t){const n=e,r=ei(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 qF(e,t){const n=e,r=ei(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 WF(e,t){const n=e,r=ei(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 ZF(e,t){const n={...e},r=[];return n.chromGrid&&(n.chromGridFillOdd||n.chromGridFillEven)&&r.push(WF(n,t)),n.chromGrid&&n.chromGridOpacity>0&&r.push(qF(n,t)),n.grid&&n.gridOpacity>0&&r.push($F(n,t)),{name:"grid_layers",configurableVisibility:!1,resolve:{scale:{[ei(e.orient)]:"forced",fill:"independent",opacity:"independent"}},layer:r}}const lv={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"},YF={orient:"left",anchor:"middle",align:"right",baseline:"middle",angle:0,fontSize:12},QF={orient:"top",anchor:"start",align:"left",baseline:"top",offset:-10,dx:10,fontSize:12},XF={start:0,middle:.5,end:1},KF={start:"left",middle:"center",end:"right"};function JF(e){if(!e)return;const t=Ue(e)?{text:e}:e;if(!t.text||t.orient=="none")return;const n={"track-title":YF,overlay:QF}[t.style]??{},r={...lv,...n,...t};let i={},a={x:0,y:0};const o=XF[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={...lv,...i,...n,...t},u={xOffset:0,yOffset:0};switch(r.orient){case"top":u.yOffset=-s.offset;break;case"right":u.xOffset=s.offset;break;case"bottom":u.yOffset=s.offset;break;case"left":u.xOffset=-s.offset;break}return{configurableVisibility:!1,data:{values:[{}]},mark:{type:"text",tooltip:null,clip:!1,...a,...u,text:s.text,align:s.align??KF[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 e7(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 u=r.mark.encoders;u.x&&!u.x2&&!u.x.constantValue&&(o=+u.x(r.datum)*t.width+t.x),u.y&&!u.y2&&!u.y.constantValue&&(s=(1-+u.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=u=>{n({x:a.clientX,y:a.clientY,xDelta:u.clientX-a.clientX,yDelta:u.clientY-a.clientY,zDelta:0}),a=u},s=u=>{document.removeEventListener("mousemove",o),document.removeEventListener("mouseup",s)};document.addEventListener("mouseup",s,!1),document.addEventListener("mousemove",o,!1)}}class t7 extends Yi{constructor(n,r,i,a,o,s,u){super(n,r,i,a,o,u);K(this,Sr);K(this,dh);K(this,wa);K(this,vu);K(this,xu);K(this,Au);K(this,ph);K(this,$o);K(this,gh);K(this,Ho,1/0);K(this,Vo,10);K(this,en,[]);K(this,ya,{});K(this,jo,0);this.spec=n,Fe(this,Vo,n.spacing??10),Fe(this,Ho,s),Fe(this,en,[]),this.wrappingFacet=!1}appendChild(n){n.layoutParent??(n.layoutParent=this),W(this,en).push(new cv(n,this,W(this,jo))),j_(this,jo)._++}setChildren(n){Fe(this,en,[]);for(const r of n)this.appendChild(r)}replaceChild(n,r){const i=W(this,en).findIndex(a=>a.view==n);if(i>=0)W(this,en)[i]=new cv(r,this,W(this,jo));else throw new Error("Not my child view!")}get children(){return W(this,en).map(n=>n.view)}get childCount(){return W(this,en).length}async createAxes(){const n=[];for(const r of Oa){const i=this.resolutions.axis[r];if(i){const a=i.getAxisProps();if(a){const o={title:i.getTitle(),orient:sf[r][0],...a},s=new iv(o,i.scaleResolution.type,this.context,this,this);n.push(s.initializeChildren()),W(this,ya)[r]=s}}}return Promise.all([...n,...W(this,en).map(r=>r.createAxes())])}*[Symbol.iterator](){for(const n of W(this,en))yield*n.getChildren();for(const n of Object.values(W(this,ya)))yield n}getOverhang(){return J(this,ph,X_).call(this).union(J(this,$o,Eh).call(this))}getSize(){return this._cache("size",()=>new Jr(J(this,xu,_m).call(this,"column"),J(this,xu,_m).call(this,"row")).addPadding(J(this,$o,Eh).call(this)))}render(n,r,i={}){if(super.render(n,r,i),!this.isConfiguredVisible())return;this.layoutParent||(r=r.shrink(this.getPadding())),r=r.shrink(J(this,$o,Eh).call(this)),n.pushView(this,r);const a={devicePixelRatio:this.context.devicePixelRatio},o=pw(J(this,vu,Em).call(this,"column"),r.width,a),s=pw(J(this,vu,Em).call(this,"row"),r.height,a),u=new rv(W(this,Sr,xa).length,W(this,Ho)??1/0),l=c=>Math.round(c*devicePixelRatio)/devicePixelRatio;for(const[c,f]of W(this,Sr,xa).entries()){const{view:h,axes:d,gridLines:p,background:m,backgroundStroke:y,title:w}=f,[A,S]=u.getCellCoords(c),_=o[J(this,Au,Sm).call(this,"column",A)],T=s[J(this,Au,Sm).call(this,"row",S)],I=h.getViewportSize(),B=h.getSize(),R=h.getOverhang(),M=_.location-R.left,G=T.location-R.top,N=(Ne,L)=>(Ne[L].grow?(L=="width"?_:T).size:Ne[L].px)+R[L],re=N(I,"width"),se=N(I,"height"),te=N(B,"width"),ge=N(B,"height"),Xe=f.scrollbars.horizontal,De=f.scrollbars.vertical,Ke=Xe?()=>l(Xe.viewportOffset):()=>0,We=De?()=>l(De.viewportOffset):()=>0,Je=new dr(()=>r.x+M,()=>r.y+G,()=>re,()=>se),_e=h.isScrollable(),Se=_e?new dr(()=>r.x+M-Ke(),()=>r.y+G-We(),()=>te,()=>ge):Je;f.coords=Je;const gt=i.clipRect?Je.intersect(i.clipRect):Je;m==null||m.render(n,gt,{...i,clipRect:void 0});for(const Ne of Object.values(p))Ne.render(n,Je,i);const $t=a7(h)||_e;$t&&h.render(n,Se,{...i,clipRect:gt}),y==null||y.render(n,gt,{...i,clipRect:void 0});for(const[Ne,L]of Object.entries(d)){const P=Ne=="left"||Ne=="right"?"vertical":"horizontal",$=f.scrollbars[P],V=$?Je.modify(P=="vertical"?{y:()=>Se.y,height:ge}:{x:()=>Se.x,width:te}):Je,Z=uv(V,Ne,L);let C=i.clipRect;$&&(C=Z.intersect(C).intersect($?Je.modify(P=="vertical"?{x:-1e5,width:2e5}:{y:-1e5,height:2e5}):void 0)),L.render(n,Z,{...i,clipRect:C})}for(const Ne of Object.values(W(this,ya))){const P=Ne.axisProps.orient;(P=="left"&&A==0||P=="right"&&A==u.nCols-1||P=="top"&&S==0||P=="bottom"&&S==u.nRows-1)&&Ne.render(n,uv(Je.shrink(f.view.getOverhang()),P,Ne),i)}$t||h.render(n,Se,i);for(const Ne of Object.values(f.scrollbars))Ne.updateScrollbar(Je,Se),Ne.render(n,r,i);w==null||w.render(n,Je,i)}n.popView(this)}propagateInteractionEvent(n){if(this.handleInteractionEvent(void 0,n,!0),n.stopped)return;const r=W(this,Sr,xa).find(a=>a.coords.containsPoint(n.point.x,n.point.y));for(const a of Object.values((r==null?void 0:r.scrollbars)??{}))if(a.coords.containsPoint(n.point.x,n.point.y)&&(a.propagateInteractionEvent(n),n.stopped))return;const i=r==null?void 0:r.view;i&&(i.propagateInteractionEvent(n),(i instanceof Yt||i instanceof sl)&&e7(n,r.coords,a=>J(this,gh,K_).call(this,r.coords,r.view,a),this.context.getCurrentHover())),!n.stopped&&this.handleInteractionEvent(void 0,n,!1)}getDefaultResolution(n,r){return"independent"}}Ho=new WeakMap,Vo=new WeakMap,en=new WeakMap,ya=new WeakMap,jo=new WeakMap,Sr=new WeakSet,xa=function(){return W(this,en).filter(n=>n.view.isConfiguredVisible())},dh=new WeakSet,Q_=function(){return new rv(W(this,Sr,xa).length,W(this,Ho)??1/0)},wa=new WeakSet,Su=function(n){const r=n=="column"?"width":"height",i=(a,o)=>a.map(s=>{const l=W(this,Sr,xa)[s].getOverhangAndPadding();return n=="column"?o?l.right:l.left:o?l.bottom:l.top}).reduce((s,u)=>Math.max(s,u),0);return this._cache(`size/directionSizes/${n}`,()=>W(this,dh,Q_)[n=="column"?"colIndices":"rowIndices"].map(a=>({axisBefore:i(a,0),axisAfter:i(a,1),view:lR(a.map(o=>W(this,Sr,xa)[o].view.getViewportSize()[r]))})))},vu=new WeakSet,Em=function(n){const r=J(this,wa,Su).call(this,n),i=[];i.push(tl);for(const[a,o]of r.entries())a>0&&i.push({px:W(this,Vo),grow:0}),(a==0||this.wrappingFacet)&&i.push(tl),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(tl);return i},xu=new WeakSet,_m=function(n){let r=0,i=0;const a=n=="row"?this.spec.height:this.spec.width;if(a||a===0)return mw(a);const o=J(this,wa,Su).call(this,n);for(const[s,u]of o.entries())s>0&&(i+=W(this,Vo)),(s==0||this.wrappingFacet)&&(i+=0),i+=u.axisBefore,i+=u.view.px??0,r+=u.view.grow??0,i+=u.axisAfter,(s==o.length-1||this.wrappingFacet)&&(i+=0);return{px:i,grow:r}},Au=new WeakSet,Sm=function(n,r){return n=="row"&&this.wrappingFacet?1+6*r+2:2+4*r+1},ph=new WeakSet,X_=function(){const n=J(this,wa,Su).call(this,"column"),r=J(this,wa,Su).call(this,"row");return!n.length||!r.length?St.zero():new St(r.at(0).axisBefore,n.at(-1).axisAfter,r.at(-1).axisAfter,n.at(0).axisBefore)},$o=new WeakSet,Eh=function(){const n=r=>{const i=$0[r],a=W(this,ya)[i];return(a==null?void 0:a.axisProps.orient)!==r?0:Math.max(a.getPerpendicularSize()+a.axisProps.offset,0)};return new St(n("top"),n("right"),n("bottom"),n("left"))},gh=new WeakSet,K_=function(n,r,i){for(const[a,o]of Object.entries(i7(r))){if(o.size<=0)continue;const s=n.normalizePoint(i.x,i.y),u=n.normalizePoint(i.x+i.xDelta,i.y+i.yDelta),l={x:u.x-s.x,y:u.y-s.y};for(const c of o)c.zoom(2**i.zDelta,a=="y"?1-s[a]:s[a],a=="x"?l.x:-l.y)}this.context.animator.requestRender()};function n7(e){if(!(!e||!e.fill||e.fillOpacity===0))return{configurableVisibility:!1,data:{values:[{}]},mark:{color:e.fill,opacity:e.fillOpacity??1,type:"rect",clip:!1,tooltip:null,minHeight:1,minOpacity:0}}}function r7(e){if(!(!e||!e.stroke||e.strokeWidth===0||e.strokeOpacity===0))return{configurableVisibility:!1,resolve:{scale:{x:"excluded",y:"excluded"},axis:{x:"excluded",y:"excluded"}},data:{values:[{x:0,y:0,x2:1,y2:0},{x:1,y:0,x2:1,y2:1},{x:1,y:1,x2:0,y2:1},{x:0,y:1,x2:0,y2:0}]},mark:{size:e.strokeWidth??1,color:e.stroke??"lightgray",strokeCap:"square",strokeOpacity:e.strokeOpacity??1,type:"rule",clip:!1,tooltip:null},encoding:{x:{field:"x",type:"quantitative",scale:null},y:{field:"y",type:"quantitative",scale:null},x2:{field:"x2"},y2:{field:"y2"}}}}function i7(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 a7(e){let t=!0;return e.visit(n=>{n instanceof Yt&&t&&(t=n.mark.properties.clip===!0)}),t}function uv(e,t,n){const r=n.axisProps,i=n.getPerpendicularSize();if(t=="bottom")return e.translate(0,e.height+r.offset).modify({height:i});if(t=="top")return e.translate(0,-i-r.offset).modify({height:i});if(t=="left")return e.translate(-i-r.offset,0).modify({width:i});if(t=="right")return e.translate(e.width+r.offset,0).modify({width:i})}class cv{constructor(t,n,r){if(this.layoutParent=n,this.view=t,this.serial=r,this.background=void 0,this.backgroundStroke=void 0,this.axes={},this.gridLines={},this.scrollbars={},this.title=void 0,this.coords=dr.ZERO,t.needsAxes.x||t.needsAxes.y){const i=t.spec,a="view"in i?i==null?void 0:i.view:void 0,o=n7(a);o&&(this.background=new Yt(o,n.context,n,t,"background"+r,{blockEncodingInheritance:!0}));const s=r7(a);s&&(this.backgroundStroke=new Yt(s,n.context,n,t,"backgroundStroke"+r,{blockEncodingInheritance:!0}));const u=JF(t.spec.title);if(u){const l=new Yt(u,n.context,n,t,"title"+r,{blockEncodingInheritance:!0});this.title=l}}t.spec.viewportWidth!=null&&(this.scrollbars.horizontal=new fv(this,"horizontal")),t.spec.viewportHeight!=null&&(this.scrollbars.vertical=new fv(this,"vertical"))}*getChildren(){this.background&&(yield this.background),this.backgroundStroke&&(yield this.backgroundStroke),this.title&&(yield this.title),yield*Object.values(this.axes),yield*Object.values(this.gridLines),yield this.view,yield*Object.values(this.scrollbars)}async createAxes(){const{view:t,axes:n,gridLines:r}=this,i=(s,u)=>{const l=s.getAxisProps();if(l===null)return;const c=l?{...l}:{};if(!c.orient){for(const f of sf[u])if(!n[f]){c.orient=f;break}if(!c.orient)throw new Error("No slots available for an axis! Perhaps a LayerView has more than two children?")}if(c.title??(c.title=s.getTitle()),!sf[u].includes(c.orient))throw new Error(`Invalid axis orientation "${c.orient}" on channel "${u}"!`);return c},a=async(s,u,l)=>{const c=i(s,u);if(c){if(n[c.orient])throw new Error(`An axis with the orient "${c.orient}" already exists!`);const f=new iv(c,s.scaleResolution.type,this.layoutParent.context,this.layoutParent,l);n[c.orient]=f,await f.initializeChildren()}},o=async(s,u,l)=>{const c=i(s,u);if(c&&(c.grid||c.chromGrid)){const f=new VF(c,s.scaleResolution.type,this.layoutParent.context,this.layoutParent,l);r[c.orient]=f,await f.initializeChildren()}};for(const s of["x","y"])if(t.needsAxes[s]){const u=t.resolutions.axis[s];if(!u)continue;await a(u,s,t)}for(const s of["x","y"])if(t.needsAxes[s]){const u=t.getAxisResolution(s);if(!u)continue;await o(u,s,t)}if(t instanceof sl){for(const s of t)for(const[u,l]of Object.entries(s.resolutions.axis)){const c=l.getAxisProps();c&&c.orient&&await a(l,u,s)}for(const s of t)for(const[u,l]of Object.entries(s.resolutions.axis)){const c=l.getAxisProps();c&&!c.orient&&await a(l,u,s)}}[...Object.values(n),...Object.values(r)].forEach(s=>s.visit(u=>{u instanceof Yt&&u.resolve("scale")}))}getOverhang(){const t=n=>{const r=this.axes[n];return r?Math.max(r.getPerpendicularSize()+r.axisProps.offset,0):0};return new St(t("top"),t("right"),t("bottom"),t("left")).add(this.view.getOverhang())}getOverhangAndPadding(){return this.getOverhang().add(this.view.getPadding())}}class fv extends Yt{constructor(t,n){const r={scrollbarSize:8,scrollbarPadding:2};super({data:{values:[{}]},mark:{type:"rect",fill:"#b0b0b0",fillOpacity:.6,stroke:"white",strokeWidth:1,strokeOpacity:1,cornerRadius:5,clip:!1},configurableVisibility:!1},t.layoutParent.context,t.layoutParent,t.view,"scrollbar-"+n,{blockEncodingInheritance:!0}),this.config=r,this.scrollDirection=n,this.viewportOffset=0,this.maxScrollOffset=0,this.scrollbarCoords=dr.ZERO,this.addInteractionEventListener("mousedown",(i,a)=>{if(a.stopPropagation(),this.maxScrollOffset<=0)return;const o=h=>n=="vertical"?h.clientY:h.clientX,s=a.uiEvent;s.preventDefault();const u=this.getScrollOffset(),l=o(s),c=h=>{const d=Ds(o(h)-l+u,0,this.maxScrollOffset);this.viewportOffset=d/this.maxScrollOffset*this.maxViewportOffset,this.context.animator.requestRender()},f=()=>{document.removeEventListener("mousemove",c),document.removeEventListener("mouseup",f)};document.addEventListener("mouseup",f,!1),document.addEventListener("mousemove",c,!1)})}getScrollOffset(){return this.viewportOffset/this.maxViewportOffset*this.maxScrollOffset}render(t,n,r){super.render(t,this.scrollbarCoords,r)}updateScrollbar(t,n){const r=this.config.scrollbarPadding,i=this.config.scrollbarSize,a=this.scrollDirection=="horizontal"?"width":"height",o=Math.min(1,t[a]/n[a]),s=t[a]-2*r,u=o*s;this.maxScrollOffset=s-u,this.maxViewportOffset=n[a]-t[a],this.viewportOffset=Ds(this.viewportOffset,0,this.maxViewportOffset),this.scrollbarCoords=this.scrollDirection=="vertical"?new dr(()=>t.x+t.width-i-r,()=>t.y+r+this.getScrollOffset(),()=>i,()=>u):new dr(()=>t.x+r+this.getScrollOffset(),()=>t.y+t.height-i-r,()=>u,()=>i)}}class W0 extends t7{constructor(t,n,r,i,a){super(t,n,r,i,a,Q0(t)?t.columns:lf(t)?1:1/0),this.spec=t}async initializeChildren(){const t=this.spec,n=Q0(t)?t.concat:lf(t)?t.vconcat:t.hconcat;this.setChildren(await Promise.all(n.map((r,i)=>this.context.createOrImportView(r,this,this,"grid"+i)))),await this.createAxes()}getDefaultResolution(t,n){return n=="axis"?"independent":lf(this.spec)&&t==="x"||dv(this.spec)&&t==="y"?"shared":"independent"}}const hv="viewRoot";class o7{constructor(t={}){K(this,qo,new Map);this.options={allowImport:!0,wrapRoot:!0,...t};const n=r=>(i,a,o,s,u)=>new r(i,a,o,s,i.name??u);this.addViewType(Y0,n(sl)),this.addViewType(Z0,n(Yt)),this.addViewType(lf,n(W0)),this.addViewType(dv,n(W0)),this.addViewType(Q0,n(W0)),this.addViewType(u7,()=>{throw new Error("SampleView is not supported by the @genome-spy/core package. Use @genome-spy/app instead!")})}addViewType(t,n){W(this,qo).set(t,n)}createView(t,n,r,i,a){for(const[o,s]of W(this,qo))if(o(t))return s(t,n,r,i,a);throw new Error("Invalid spec, cannot figure out the view type from the properties: "+JSON.stringify([...Object.keys(t)]))}isViewSpec(t){const n=[...W(this,qo).keys()].filter(r=>r(t));if(n.length>1)throw new Error("Ambiguous spec. Cannot create a view!");return n.length==1}async createOrImportView(t,n,r,i,a,o){let s;if(l7(t))if(this.options.allowImport)s=await pF(t,i.getBaseUrl(),n),o&&o(s),s7(s,t.import);else throw new Zi("Importing views is not allowed!",r);else s=t;!i&&this.options.wrapRoot&&(Z0(s)||Y0(s))&&a===hv&&(s={name:"implicitRoot",vconcat:[s]});const u=this.createView(s,n,r,i,a);return u instanceof Yi&&await u.initializeChildren(),u}}qo=new WeakMap;function s7(e,t){t.name!=null&&(e.name=t.name);const n=xt(t.params)?t.params:kt(t.params)?Object.entries(t.params).map(([r,i])=>({name:r,value:i})):[];if(n.length){e.params??(e.params=[]);for(const r of n){const i=e.params.findIndex(a=>a.name==r.name);i>=0&&(e.params[i]=r)}for(const r of n)e.params.some(i=>i.name==r.name)||e.params.push(r)}}function Z0(e){return"mark"in e&&(Ue(e.mark)||kt(e.mark))}function Y0(e){return"layer"in e&&kt(e.layer)}function l7(e){return"import"in e}function lf(e){return"vconcat"in e&&xt(e.vconcat)}function dv(e){return"hconcat"in e&&xt(e.hconcat)}function Q0(e){return"concat"in e&&xt(e.concat)}function u7(e){return"samples"in e&&kt(e.samples)&&"spec"in e&&kt(e.spec)}function c7(e){const t=Math.floor(Math.random()*16777215).toString(16),n=[];for(const r of e.paramConfigs.values()){const i=r.bind;if(!i||!("input"in i))continue;const a=r.name,o=e.getSetter(a),s=e.getValue(a),u=i.name??a,l=i.debounce?af(o,i.debounce,!1):o,c=`${t}-param-${a}`;if(i.input=="range")n.push(it`<label for=${c}>${u}</label>
|
|
401
|
+
<div>
|
|
402
|
+
<input
|
|
403
|
+
id=${c}
|
|
404
|
+
type="range"
|
|
405
|
+
min=${i.min??0}
|
|
406
|
+
max=${i.max??100}
|
|
407
|
+
step=${i.step??Fr(i.min,i.max,100)}
|
|
408
|
+
.value=${s}
|
|
409
|
+
@input=${f=>{l(f.target.valueAsNumber),f.target.nextElementSibling.textContent=f.target.valueAsNumber}}
|
|
410
|
+
/><span>${s}</span>
|
|
411
|
+
</div>`);else if(i.input=="checkbox")n.push(it`<label for=${c}>${u}</label>
|
|
412
|
+
<input
|
|
413
|
+
id=${c}
|
|
414
|
+
type="checkbox"
|
|
415
|
+
?checked=${s}
|
|
416
|
+
@input=${f=>l(f.target.checked)}
|
|
417
|
+
/>`);else if(i.input=="radio")n.push(it`<span class="label">${u}</span>
|
|
418
|
+
<div class="radio-group">
|
|
419
|
+
${i.options.map((f,h)=>{var d;return it`<label>
|
|
420
|
+
<input
|
|
421
|
+
type="radio"
|
|
422
|
+
name=${a}
|
|
423
|
+
value=${f}
|
|
424
|
+
.checked=${s==f}
|
|
425
|
+
@input=${p=>l(p.target.value)}
|
|
426
|
+
/>${((d=i.labels)==null?void 0:d[h])??f}</label
|
|
427
|
+
>`})}
|
|
428
|
+
</div>`);else if(i.input=="select")n.push(it`<label for=${c}>${u}</label>
|
|
429
|
+
<select
|
|
430
|
+
id=${c}
|
|
431
|
+
@input=${f=>l(f.target.value)}
|
|
432
|
+
>
|
|
433
|
+
${i.options.map((f,h)=>{var d;return it`<option
|
|
434
|
+
value=${f}
|
|
435
|
+
?selected=${s==f}
|
|
436
|
+
>
|
|
437
|
+
${((d=i.labels)==null?void 0:d[h])??f}
|
|
438
|
+
</option>`})}
|
|
439
|
+
</select> `);else throw new Error("Unsupported input type: "+i.input);i.description&&n.push(it`<div class="description">${i.description}</div>`)}return n}C1("fasta",TF);class pv{constructor(t,n,r={}){K(this,Wo);K(this,mh);K(this,bh);K(this,yh);this.container=t,this.options=r,r.inputBindingContainer??(r.inputBindingContainer="default"),this._destructionCallbacks=[],this.spec=n,this.accessorFactory=new ck,this.viewFactory=new o7,this.namedDataProviders=[],this.animator=new xF(()=>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 IF(this.animator),this._keyboardListeners=new Map,this._eventListeners=new Map,this._extraBroadcastListeners=new Map,this.tooltipHandlers={default:OF,refseqgene:DF,...r.tooltipHandlers??{}},this.viewRoot=void 0,this._loadingViews=new Map,this._inputBindingContainer=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),z0(r.hosts),this.animator.requestRender()}broadcast(t,n){var i;const r={type:t,payload:n};this.viewRoot.visit(a=>a.handleBroadcast(r)),(i=this._extraBroadcastListeners.get(t))==null||i.forEach(a=>a(r))}_updateLoadingIndicators(){const t=[],n=()=>[...this._loadingViews.values()].some(r=>r);for(const[r,i]of this._loadingViews){const a=r.coords;if(a){const o={left:`${a.x}px`,top:`${a.y}px`,width:`${a.width}px`,height:`${a.height}px`};t.push(it`<div style=${m6(o)}>
|
|
328
440
|
<div class=${i?"loading":""}>
|
|
329
|
-
<img src="${
|
|
441
|
+
<img src="${b6}" alt="" />
|
|
330
442
|
<span>Loading...</span>
|
|
331
443
|
</div>
|
|
332
|
-
</div>`)}}n()?this.loadingIndicatorsElement.style.display="block":setTimeout(()=>{n()||(this.loadingIndicatorsElement.style.display="none")},3e3),Th(t,this.loadingIndicatorsElement)}_prepareContainer(){this.container.classList.add("genome-spy"),this.container.classList.add("loading"),this._glHelper=new _B(this.container,()=>this.viewRoot?fF(this.viewRoot):{width:void 0,height:void 0},this.spec.background);const t=()=>{this._glHelper.invalidateSize(),r(window.devicePixelRatio),this.computeLayout(),this.renderAll()},n=new ResizeObserver(t);n.observe(this.container),this._destructionCallbacks.push(()=>n.disconnect());const r=this._paramBroker.allocateSetter("devicePixelRatio");r(window.devicePixelRatio);let i=null;const a=()=>{i!=null&&(i(),t());const o=matchMedia(`(resolution: ${window.devicePixelRatio}dppx)`);o.addEventListener("change",a),i=()=>{o.removeEventListener("change",a)}};a(),i&&this._destructionCallbacks.push(i),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.loadingIndicatorsElement=document.createElement("div"),this.loadingIndicatorsElement.className="loading-indicators",this.container.appendChild(this.loadingIndicatorsElement),this.tooltip=new vC(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._destructionCallbacks.forEach(t=>t()),this._glHelper.finalize();this.container.firstChild;)this.container.firstChild.remove()}async _prepareViewsAndData(){this.spec.genome&&(this.genomeStore=new bF(this.spec.baseUrl),await this.genomeStore.initialize(this.spec.genome));const t=this,n={dataFlow:new dw,accessorFactory:this.accessorFactory,glHelper:this._glHelper,animator:this.animator,genomeStore:this.genomeStore,fontManager:new vF(this._glHelper),get devicePixelRatio(){return t._glHelper.dpr},paramBroker:this._paramBroker,requestLayoutReflow:()=>{},updateTooltip:this.updateTooltip.bind(this),getNamedDataFromProvider:this.getNamedDataFromProvider.bind(this),getCurrentHover:()=>this._currentHover,setDataLoadingStatus:(u,l)=>{this._loadingViews.set(u,l),this._updateLoadingIndicators()},addKeyboardListener:(u,l)=>{document.addEventListener(u,l);let f=this._keyboardListeners.get(u);f||(f=[],this._keyboardListeners.set(u,f)),f.push(l)},addBroadcastListener(u,l){const f=t._extraBroadcastListeners;let c=f.get(u);c||(c=new Set,f.set(u,c)),c.add(l)},removeBroadcastListener(u,l){var c;(c=t._extraBroadcastListeners.get(u))==null||c.delete(l)},isViewConfiguredVisible:t.viewVisibilityPredicate,isViewSpec:u=>t.viewFactory.isViewSpec(u),createView:function(u,l,f,c){return t.viewFactory.createView(u,n,l,f,c)},createOrImportView:async function(u,l,f,c,h){return t.viewFactory.createOrImportView(u,n,l,f,c,h)}},r=this.spec;r.datasets&&this.registerNamedDataProvider(u=>r.datasets[u]),this.viewRoot=await n.createOrImportView(r,null,null,Bw),sF(this.viewRoot),lF(this.viewRoot);const i=this.viewRoot.getDescendants();i.forEach(u=>u.configureViewOpacity()),this._glHelper.invalidateSize();const a=i.filter(u=>u instanceof Yt),o=tF(this.viewRoot,n.dataFlow);oF(o),this.broadcast("dataFlowBuilt",o),a.forEach(u=>u.mark.initializeEncoders());const s=Promise.all(a.map(u=>u.mark.initializeGraphics()));for(const u of a)o.addObserver(l=>{u.mark.initializeData(),u.mark.updateGraphicsData()},u);await n.fontManager.waitUntilReady(),o.initialize(),await Promise.all(o.dataSources.map(u=>u.load())),d0(this.viewRoot),this.broadcast("dataLoaded"),await s,this.viewRoot.visit(u=>{for(const l of Object.values(u.resolutions.scale))this._glHelper.createRangeTexture(l)});for(const u of a)u.mark.finalizeGraphicsInitialization();n.requestLayoutReflow=this.computeLayout.bind(this),this.viewRoot.visit(u=>If(u,"size")),this._glHelper.invalidateSize()}async launch(){try{return this._prepareContainer(),await this._prepareViewsAndData(),this.registerMouseEvents(),this.computeLayout(),this.animator.requestRender(),!0}catch(t){const n=`${t.view?`At "${t.view.getPathString()}": `:""}${t.toString()}`;return console.error(t.stack),aR(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 dF(r.clientX-a.left-t.clientLeft,r.clientY-a.top-t.clientTop),s=u=>{this.viewRoot.propagateInteractionEvent(new hF(o,u)),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 u=r;if(Math.abs(u.deltaX)>Math.abs(u.deltaY))this._currentHover=null,this._wheelInertia.cancel();else{const l=SF(u);this._wheelInertia.setMomentum(u.deltaY*(u.deltaMode?80:1),f=>{const c=new WheelEvent("wheel",{...l,deltaMode:0,deltaX:0,deltaY:f});s(c)}),u.preventDefault();return}}if(r.type=="click"){const u=this._currentHover?{type:r.type,viewPath:this._currentHover.mark.unitView.getLayoutAncestors().map(l=>l.name).reverse(),datum:this._currentHover.datum}:{type:r.type,viewPath:null,datum:null};(i=this._eventListeners.get("click"))==null||i.forEach(l=>l(u))}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 Yt){if(o.mark.isPickingParticipant()){const s=o.mark.encoders.uniqueId.accessor;o.getCollector().visitData(u=>{s(u)==i&&(this._currentHover={mark:o.mark,datum:u,uniqueId:i})})}if(this._currentHover)return qs}}),this._currentHover){const o=this._currentHover.mark;this.updateTooltip(this._currentHover.datum,async s=>{if(!o.isPickingParticipant())return;const u=o.properties.tooltip;if(u!==null){const l=(u==null?void 0:u.handler)??"default",f=this.tooltipHandlers[l];if(!f)throw new Error("No such tooltip handler: "+l);return f(s,o,u==null?void 0:u.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 bw({picking:!1},this._glHelper),this._pickingContext=new bw({picking:!0},this._glHelper),t.render(new cF(this._renderingContext,this._pickingContext),sr.create(0,0,n.width,n.height)),this.broadcast("layoutComputed")}renderAll(){var t;(t=this._renderingContext)==null||t.render(),this._dirtyPickingBuffer=!0}renderPickingFramebuffer(){this._dirtyPickingBuffer&&(this._pickingContext.render(),this._dirtyPickingBuffer=!1)}getSearchableViews(){const t=[];return this.viewRoot.visit(n=>{n instanceof Yt&&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 aR(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 oR="data:image/svg+xml,%3csvg%20viewBox='0%200%2032%2032'%20xmlns='http://www.w3.org/2000/svg'%20fill-rule='evenodd'%20clip-rule='evenodd'%20stroke-linecap='round'%20stroke-linejoin='round'%20stroke-miterlimit='1.5'%3e%3cpath%20d='M4.7%2021.2s.4%202.3%201.3%203.6C7%2026%209.8%2028%209.8%2028s3.4-2.6%206.4-8.5c0%200%201%20.1%201.9-.4.9-.6.8-.4%201-1.2%200%200%202.9.5%206.6%200%202.1-.3%204.3-1%206.2-2.5%200%200-1.1-1.7-2.5-5.1-.5-1.3-2-1.8-4.6-4.6l-8.2%208.6-11.9%206.9z'%20fill-opacity='.1'/%3e%3cpath%20d='M12.7%2014.8s-4-1.8-12%202.7c0%200%201%203.7%202.5%205.3%201.4%201.5%202.3%203.6%204.6%204.6%200%200%204.7-3%206.9-9.2l3-2s4.7%202.8%2012.6-1.6c0%200-.6-3.3-3-6-2.6-3-3.8-4.7-3.8-4.7s-4.1%202.3-7.5%209.3l-3.3%201.6z'%20fill='%237fbbdd'/%3e%3cpath%20d='M12.4%2015.5c-.7-.5-2.4-.8-4.4-.4-2%20.4-4%201.3-4.8%201.8-.5.3-1.2%201-1.2%201.4%200%20.7.3%201.8.8%202.4.3.3.7.5%201.4.6.8%200%202.5-1.4%203.5-2%201-.6%201.6-.8%202.7-1.2l-2.9%202.4c-1.3%201.2-2.2%201.5-2.4%202.3%200%20.5%200%201.4.5%201.8.4.5.6.8%201.6.8.6%200%201%200%202.6-1.5.9-.9%202.3-3%202.7-3.7.6-1.1%201-2.2.7-3-.2-1-.4-1.4-.8-1.7zM17.4%2014.2c-.3-.5-.9-1.2-.2-2.5l1.9-3c.5-.8%202-2.3%202.6-2.6.6-.4%201.5-.6%202-.2.6.4%201%201%201.3%201.5.4.6.7%201.3.2%202-.7%201-1.6.9-2.8%201.7-1.2.8-1.9%201.2-2.5%201.9l3.8-1.8c1.3-.6%202.7-1.1%203.4-.7.8.5.8.7%201%201.4.3%201-.2%201.9-.8%202.4-.5.6-1.5.9-2.6%201.2-1.4.4-4.5%201-5.8.5-1.3-.5-1.3-1.4-1.5-1.8z'%20fill='%23fff'/%3e%3cpath%20d='M12.7%2014.8s-4-1.8-12%202.7c0%200%201%203.7%202.5%205.3%201.4%201.5%202.3%203.6%204.6%204.6%200%200%204.7-3%206.9-9.2l3-2s4.7%202.8%2012.6-1.6c0%200-.6-3.3-3-6-2.6-3-3.8-4.7-3.8-4.7s-4.1%202.3-7.5%209.3l-3.3%201.6z'%20fill='none'%20stroke='%23000'%20stroke-width='.5'/%3e%3cpath%20d='M12.4%2014.9s2.1-2%203-2c1.1%200%202.3%202.7%202.3%203.5%200%20.8-2.1%202.4-3.1%202.3%200%200%200-1.2-.7-2.6-.8-1.3-1.5-1.2-1.5-1.2z'%20fill='%237fbbdd'/%3e%3cpath%20d='M13.8%2015.3c.9.8.6%202%201.4%201.8%201-.2%201.4-.8%201.3-1.5%200-.7%200-.8-.4-1.6-.3-.7-1-1.1-2-.5-.7.5-1.4%201.3-1.4%201.3s.2-.3%201.1.5z'%20fill='%23fff'/%3e%3cpath%20d='M12.4%2014.9s2.1-2%203-2c1.1%200%202.3%202.7%202.3%203.5%200%20.8-2.1%202.4-3.1%202.3%200%200%200-1.2-.7-2.6-.8-1.3-1.5-1.2-1.5-1.2z'%20fill='none'%20stroke='%23000'%20stroke-width='.5'/%3e%3c/svg%3e",sR="data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%2064%2064'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20xmlns:serif='http://www.serif.com/'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:1.5;'%3e%3cg%20transform='matrix(0.10221,0.00683825,-0.0067136,0.100347,-8.03424,-13.2222)'%3e%3cpath%20d='M208.629,548.17C208.629,548.17%20219.768,594.389%20239.814,619.222C259.86,644.055%20319.119,680.831%20319.119,680.831C319.119,680.831%20385.557,622.915%20437.87,498.346C437.87,498.346%20456.021,499.236%20473.808,486.446C491.594,473.656%20490.239,478.534%20494.883,461.62C494.883,461.62%20551.848,467.937%20625.826,451.863C667.634,442.778%20710.238,425.649%20747.382,393.142C747.382,393.142%20721.992,360.244%20689.422,291.45C677.029,265.275%20647.518,257.098%20590.747,203.309L438.083,391.273L208.629,548.17Z'%20style='fill-opacity:0.11;'/%3e%3c/g%3e%3cg%20transform='matrix(0.081985,-0.0582493,0.0582493,0.081985,-40.4754,34.7668)'%3e%3cpath%20d='M561.588,349.155C561.588,349.155%20516.297,271.341%20328.841,252.044C328.841,252.044%20302.342,325.189%20307.686,368.056C313.031,410.922%20303.001,456.147%20329.132,501.174C329.132,501.174%20443.114,506.743%20554.649,428.469L629.204,432.112C629.204,432.112%20673.755,534.351%20856.964,554.375C856.964,554.375%20886.717,491.768%20879.193,417.478C871.211,338.673%20871.716,293.443%20871.716,293.443C871.716,293.443%20775.485,283.928%20635.418,361.795L561.588,349.155Z'%20style='fill:rgb(127,187,221);'/%3e%3cclipPath%20id='_clip1'%3e%3cpath%20d='M561.588,349.155C561.588,349.155%20516.297,271.341%20328.841,252.044C328.841,252.044%20302.342,325.189%20307.686,368.056C313.031,410.922%20303.001,456.147%20329.132,501.174C329.132,501.174%20443.114,506.743%20554.649,428.469L629.204,432.112C629.204,432.112%20673.755,534.351%20856.964,554.375C856.964,554.375%20886.717,491.768%20879.193,417.478C871.211,338.673%20871.716,293.443%20871.716,293.443C871.716,293.443%20775.485,283.928%20635.418,361.795L561.588,349.155Z'/%3e%3c/clipPath%3e%3cg%20clip-path='url(%23_clip1)'%3e%3cg%20transform='matrix(0.758637,0.45892,-0.45892,0.758637,425.635,-121.213)'%3e%3cpath%20d='M386.873,397.241C371.345,383.628%20335.138,374.782%20290.644,380.543C246.149,386.304%20196.827,402.266%20178.802,412.065C168.202,417.828%20151.494,429.354%20150.682,439.334C149.527,453.528%20153.593,477.066%20165.625,491.284C171.69,498.451%20179.927,503.445%20193.838,505.423C211.701,507.963%20252.714,480.627%20275.399,469.22C299.332,457.187%20313.981,454.56%20338.386,447.014C338.386,447.014%20291.346,478.587%20270.205,494.393C239.61,517.268%20218.575,522.444%20212.859,539.897C209.766,549.34%20212.237,567.767%20220.354,577.538C229.427,588.461%20233.197,595.069%20254.591,597.624C267.303,599.143%20276.685,598.802%20314.37,568.95C336.06,551.767%20370.297,509.817%20381.412,494.616C397.581,472.506%20405.165,451.462%20402.656,435.04C399.045,411.391%20394.259,403.716%20386.873,397.241Z'%20style='fill:white;'/%3e%3c/g%3e%3cg%20transform='matrix(0.752145,0.454993,-0.454993,0.752145,468.36,-108.293)'%3e%3cpath%20d='M484.733,378.934C479.33,367.886%20467.092,350.452%20483.886,325.205C502.172,297.717%20514.898,280.938%20528.117,264.632C541.335,248.326%20574.793,218.447%20587.739,212.53C600.684,206.613%20621.026,203.852%20631.889,212.841C642.874,221.93%20648.416,233.377%20654.92,245.478C662.331,259.267%20667.318,274.808%20656.518,288.278C641.093,307.515%20622.242,305.294%20594.912,319.844C567.244,334.573%20552.644,342.943%20539.244,355.703C539.244,355.703%20591.431,334.114%20621.229,324.474C651.027,314.833%20680.952,304.461%20695.995,315.975C711.038,327.49%20710.631,331.463%20714.425,347.187C719.107,366.59%20707.231,385.165%20694.294,395.838C681.356,406.51%20659.958,411.756%20636.875,416.852C606.42,423.576%20540.278,431.917%20512.819,419.366C485.361,406.815%20488.488,386.613%20484.733,378.934Z'%20style='fill:white;'/%3e%3c/g%3e%3c/g%3e%3cpath%20d='M561.588,349.155C561.588,349.155%20516.297,271.341%20328.841,252.044C328.841,252.044%20302.342,325.189%20307.686,368.056C313.031,410.922%20303.001,456.147%20329.132,501.174C329.132,501.174%20443.114,506.743%20554.649,428.469L629.204,432.112C629.204,432.112%20673.755,534.351%20856.964,554.375C856.964,554.375%20886.717,491.768%20879.193,417.478C871.211,338.673%20871.716,293.443%20871.716,293.443C871.716,293.443%20775.485,283.928%20635.418,361.795L561.588,349.155Z'%20style='fill:none;stroke:black;stroke-width:16.57px;'/%3e%3c/g%3e%3cg%20transform='matrix(0.100298,-0.00740488,0.00740488,0.100298,-15.7457,-5.17528)'%3e%3cpath%20d='M384.916,385.459C384.916,385.459%20430.781,347.868%20450.027,350.093C471.685,352.596%20490.49,407.747%20490.208,424.416C489.927,441.085%20442.948,469.866%20422.537,466.24C422.537,466.24%20425.525,442.129%20412.114,413.335C398.702,384.54%20384.916,385.459%20384.916,385.459Z'%20style='fill:rgb(127,187,221);'/%3e%3cclipPath%20id='_clip2'%3e%3cpath%20d='M384.916,385.459C384.916,385.459%20430.781,347.868%20450.027,350.093C471.685,352.596%20490.49,407.747%20490.208,424.416C489.927,441.085%20442.948,469.866%20422.537,466.24C422.537,466.24%20425.525,442.129%20412.114,413.335C398.702,384.54%20384.916,385.459%20384.916,385.459Z'/%3e%3c/clipPath%3e%3cg%20clip-path='url(%23_clip2)'%3e%3cg%20transform='matrix(0.909069,3.67641e-17,-3.79818e-17,0.85852,37.051,52.1829)'%3e%3cpath%20d='M413.282,402.697C430.77,421.58%20423.307,448.426%20441.683,446.137C463.409,443.431%20472.604,430.356%20473.316,413.402C474.028,396.448%20472.245,393.911%20466.172,375.321C460.099,356.731%20447.953,352.176%20422.842,357.179C401.957,361.339%20405.039,360.215%20398.735,367.228C392.43,374.242%20384.315,393.182%20384.315,393.182C384.315,393.182%20392.715,380.492%20413.282,402.697Z'%20style='fill:white;'/%3e%3c/g%3e%3c/g%3e%3cpath%20d='M384.916,385.459C384.916,385.459%20430.781,347.868%20450.027,350.093C471.685,352.596%20490.49,407.747%20490.208,424.416C489.927,441.085%20442.948,469.866%20422.537,466.24C422.537,466.24%20425.525,442.129%20412.114,413.335C398.702,384.54%20384.916,385.459%20384.916,385.459Z'%20style='fill:none;stroke:black;stroke-width:16.57px;'/%3e%3c/g%3e%3c/svg%3e";async function lR(e,t,n={}){let r;if(Pe(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=Rt(t)?t:await Rw(t);if(a.baseUrl??(a.baseUrl=""),a.width??(a.width="container"),a.padding??(a.padding=10),r==document.body){const o=document.createElement("div");o.style.position="fixed",o.style.inset="0",o.style.overflow="hidden",r.appendChild(o),r=o}i=new Fw(r,a,n),uR(i,n),await i.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 u=s.get(a);u||(u=new Set,s.set(a,u)),u.add(o)},removeEventListener(a,o){var u;(u=i._eventListeners.get(a))==null||u.delete(o)},getScaleResolutionByName(a){return i.getNamedScaleResolutions().get(a)},updateNamedData:i.updateNamedData.bind(i)}}function uR(e,t){t.namedDataProvider&&e.registerNamedDataProvider(t.namedDataProvider)}async function Rw(e){let t;try{t=JSON.parse(await ku().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}var Nf=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};function Xs(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function fR(e){if(e.__esModule)return e;var t=e.default;if(typeof t=="function"){var n=function r(){return this instanceof r?Reflect.construct(t,arguments,this.constructor):t.apply(this,arguments)};n.prototype=t.prototype}else n={};return Object.defineProperty(n,"__esModule",{value:!0}),Object.keys(e).forEach(function(r){var i=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(n,r,i.get?i:{enumerable:!0,get:function(){return e[r]}})}),n}var pe={},Of={};Of.byteLength=dR,Of.toByteArray=gR,Of.fromByteArray=yR;for(var Gn=[],tn=[],cR=typeof Uint8Array<"u"?Uint8Array:Array,C0="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Wa=0,hR=C0.length;Wa<hR;++Wa)Gn[Wa]=C0[Wa],tn[C0.charCodeAt(Wa)]=Wa;tn["-".charCodeAt(0)]=62,tn["_".charCodeAt(0)]=63;function Mw(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 dR(e){var t=Mw(e),n=t[0],r=t[1];return(n+r)*3/4-r}function pR(e,t,n){return(t+n)*3/4-n}function gR(e){var t,n=Mw(e),r=n[0],i=n[1],a=new cR(pR(e,r,i)),o=0,s=i>0?r-4:r,u;for(u=0;u<s;u+=4)t=tn[e.charCodeAt(u)]<<18|tn[e.charCodeAt(u+1)]<<12|tn[e.charCodeAt(u+2)]<<6|tn[e.charCodeAt(u+3)],a[o++]=t>>16&255,a[o++]=t>>8&255,a[o++]=t&255;return i===2&&(t=tn[e.charCodeAt(u)]<<2|tn[e.charCodeAt(u+1)]>>4,a[o++]=t&255),i===1&&(t=tn[e.charCodeAt(u)]<<10|tn[e.charCodeAt(u+1)]<<4|tn[e.charCodeAt(u+2)]>>2,a[o++]=t>>8&255,a[o++]=t&255),a}function mR(e){return Gn[e>>18&63]+Gn[e>>12&63]+Gn[e>>6&63]+Gn[e&63]}function bR(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(mR(r));return i.join("")}function yR(e){for(var t,n=e.length,r=n%3,i=[],a=16383,o=0,s=n-r;o<s;o+=a)i.push(bR(e,o,o+a>s?s:o+a));return r===1?(t=e[n-1],i.push(Gn[t>>2]+Gn[t<<4&63]+"==")):r===2&&(t=(e[n-2]<<8)+e[n-1],i.push(Gn[t>>10]+Gn[t>>4&63]+Gn[t<<2&63]+"=")),i.join("")}var k0={};/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */k0.read=function(e,t,n,r,i){var a,o,s=i*8-r-1,u=(1<<s)-1,l=u>>1,f=-7,c=n?i-1:0,h=n?-1:1,d=e[t+c];for(c+=h,a=d&(1<<-f)-1,d>>=-f,f+=s;f>0;a=a*256+e[t+c],c+=h,f-=8);for(o=a&(1<<-f)-1,a>>=-f,f+=r;f>0;o=o*256+e[t+c],c+=h,f-=8);if(a===0)a=1-l;else{if(a===u)return o?NaN:(d?-1:1)*(1/0);o=o+Math.pow(2,r),a=a-l}return(d?-1:1)*o*Math.pow(2,a-r)},k0.write=function(e,t,n,r,i,a){var o,s,u,l=a*8-i-1,f=(1<<l)-1,c=f>>1,h=i===23?Math.pow(2,-24)-Math.pow(2,-77):0,d=r?0:a-1,p=r?1:-1,b=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=f):(o=Math.floor(Math.log(t)/Math.LN2),t*(u=Math.pow(2,-o))<1&&(o--,u*=2),o+c>=1?t+=h/u:t+=h*Math.pow(2,1-c),t*u>=2&&(o++,u/=2),o+c>=f?(s=0,o=f):o+c>=1?(s=(t*u-1)*Math.pow(2,i),o=o+c):(s=t*Math.pow(2,c-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,l+=i;l>0;e[n+d]=o&255,d+=p,o/=256,l-=8);e[n+d-p]|=b*128};/*!
|
|
444
|
+
</div>`)}}n()?this.loadingIndicatorsElement.style.display="block":setTimeout(()=>{n()||(this.loadingIndicatorsElement.style.display="none")},3e3),As(t,this.loadingIndicatorsElement)}destroy(){var n;const t=W(this,Wo,_h);this.container.classList.remove("genome-spy"),t.classList.remove("loading");for(const[r,i]of this._keyboardListeners)for(const a of i)document.removeEventListener(r,a);for(this._destructionCallbacks.forEach(r=>r()),this._glHelper.finalize(),(n=this._inputBindingContainer)==null||n.remove();this.container.firstChild;)this.container.firstChild.remove()}async _prepareViewsAndData(){this.spec.genome&&(this.genomeStore=new AF(this.spec.baseUrl),await this.genomeStore.initialize(this.spec.genome));const t=this,n={dataFlow:new Zw,accessorFactory:this.accessorFactory,glHelper:this._glHelper,animator:this.animator,genomeStore:this.genomeStore,fontManager:new SF(this._glHelper),get devicePixelRatio(){return t._glHelper.dpr},requestLayoutReflow:()=>{},updateTooltip:this.updateTooltip.bind(this),getNamedDataFromProvider:this.getNamedDataFromProvider.bind(this),getCurrentHover:()=>this._currentHover,setDataLoadingStatus:(u,l)=>{this._loadingViews.set(u,l),this._updateLoadingIndicators()},addKeyboardListener:(u,l)=>{document.addEventListener(u,l);let c=this._keyboardListeners.get(u);c||(c=[],this._keyboardListeners.set(u,c)),c.push(l)},addBroadcastListener(u,l){const c=t._extraBroadcastListeners;let f=c.get(u);f||(f=new Set,c.set(u,f)),f.add(l)},removeBroadcastListener(u,l){var f;(f=t._extraBroadcastListeners.get(u))==null||f.delete(l)},isViewConfiguredVisible:t.viewVisibilityPredicate,isViewSpec:u=>t.viewFactory.isViewSpec(u),createView:function(u,l,c,f){return t.viewFactory.createView(u,n,l,c,f)},createOrImportView:async function(u,l,c,f,h){return t.viewFactory.createOrImportView(u,n,l,c,f,h)}},r=this.spec;r.datasets&&this.registerNamedDataProvider(u=>r.datasets[u]),this.viewRoot=await n.createOrImportView(r,null,null,hv),W(this,Wo,_h).style.flexGrow=Xw(this.viewRoot).height.grow>0?"1":"0",J(this,mh,J_).call(this),hF(this.viewRoot),dF(this.viewRoot);const i=this.viewRoot.getDescendants();i.forEach(u=>u.configureViewOpacity()),this._glHelper.invalidateSize(),J(this,bh,e4).call(this);const a=i.filter(u=>u instanceof Yt),o=oF(this.viewRoot,n.dataFlow);fF(o),this.broadcast("dataFlowBuilt",o),a.forEach(u=>u.mark.initializeEncoders());const s=Promise.all(a.map(u=>u.mark.initializeGraphics()));for(const u of a)o.addObserver(l=>{u.mark.initializeData(),u.mark.updateGraphicsData(),n.animator.requestRender()},u);await n.fontManager.waitUntilReady(),o.initialize(),await Promise.all(o.dataSources.map(u=>u.load())),z0(this.viewRoot),this.broadcast("dataLoaded"),await s;for(const u of a)u.mark.finalizeGraphicsInitialization();n.requestLayoutReflow=this.computeLayout.bind(this),this.viewRoot.visit(u=>Jc(u,"size")),this._glHelper.invalidateSize()}async launch(){try{return J(this,yh,t4).call(this),await this._prepareViewsAndData(),this.registerMouseEvents(),this.computeLayout(),this.animator.requestRender(),!0}catch(t){const n=`${t.view?`At "${t.view.getPathString()}": `:""}${t.toString()}`;return console.error(t.stack),f7(this.container,n),!1}finally{W(this,Wo,_h).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 yF(r.clientX-a.left-t.clientLeft,r.clientY-a.top-t.clientTop),s=u=>{this.viewRoot.propagateInteractionEvent(new bF(o,u)),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 u=r;if(Math.abs(u.deltaX)>Math.abs(u.deltaY))this._currentHover=null,this._wheelInertia.cancel();else{const l=BF(u);this._wheelInertia.setMomentum(u.deltaY*(u.deltaMode?80:1),c=>{const f=new WheelEvent("wheel",{...l,deltaMode:0,deltaX:0,deltaY:c});s(f)}),u.preventDefault();return}}if(r.type=="click"){const u=this._currentHover?{type:r.type,viewPath:this._currentHover.mark.unitView.getLayoutAncestors().map(l=>l.name).reverse(),datum:this._currentHover.datum}:{type:r.type,viewPath:null,datum:null};(i=this._eventListeners.get("click"))==null||i.forEach(l=>l(u))}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 Yt){if(o.mark.isPickingParticipant()){const s=o.mark.encoders.uniqueId.accessor;o.getCollector().visitData(u=>{s(u)==i&&(this._currentHover={mark:o.mark,datum:u,uniqueId:i})})}if(this._currentHover)return nl}}),this._currentHover){const o=this._currentHover.mark;this.updateTooltip(this._currentHover.datum,async s=>{if(!o.isPickingParticipant())return;const u=o.properties.tooltip;if(u!==null){const l=(u==null?void 0:u.handler)??"default",c=this.tooltipHandlers[l];if(!c)throw new Error("No such tooltip handler: "+l);return c(s,o,u==null?void 0:u.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 Jw({picking:!1},this._glHelper),this._pickingContext=new Jw({picking:!0},this._glHelper),t.render(new mF(this._renderingContext,this._pickingContext),dr.create(0,0,n.width,n.height)),this.broadcast("layoutComputed")}renderAll(){var t;(t=this._renderingContext)==null||t.render(),this._dirtyPickingBuffer=!0}renderPickingFramebuffer(){this._dirtyPickingBuffer&&(this._pickingContext.render(),this._dirtyPickingBuffer=!1)}getSearchableViews(){const t=[];return this.viewRoot.visit(n=>{n instanceof Yt&&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}}Wo=new WeakSet,_h=function(){return this.container.querySelector(".canvas-wrapper")},mh=new WeakSet,J_=function(){const t=[];this.viewRoot.visit(r=>{const i=r.paramMediator;t.push(...c7(i))});const n=this.options.inputBindingContainer;if(!(!n||n=="none"||!t.length)){if(this._inputBindingContainer=uf("div",{className:"gs-input-bindings"}),n=="default")this.container.appendChild(this._inputBindingContainer);else if(n instanceof HTMLElement)n.appendChild(this._inputBindingContainer);else throw new Error("Invalid inputBindingContainer");t.length&&As(it`<div class="gs-input-binding">${t}</div>`,this._inputBindingContainer)}},bh=new WeakSet,e4=function(){const t=this.viewRoot.paramMediator.allocateSetter("devicePixelRatio",window.devicePixelRatio),n=()=>{this._glHelper.invalidateSize(),t(window.devicePixelRatio),this.computeLayout(),this.renderAll()},r=new ResizeObserver(n);r.observe(this.container),this._destructionCallbacks.push(()=>r.disconnect());let i=null;const a=()=>{i!=null&&(i(),n());const o=matchMedia(`(resolution: ${window.devicePixelRatio}dppx)`);o.addEventListener("change",a),i=()=>{o.removeEventListener("change",a)}};a(),i&&this._destructionCallbacks.push(i)},yh=new WeakSet,t4=function(){this.container.classList.add("genome-spy");const t=document.createElement("style");t.innerHTML=y6,this.container.appendChild(t);const n=uf("div",{class:"canvas-wrapper"});this.container.appendChild(n),n.classList.add("loading"),this._glHelper=new ID(n,()=>this.viewRoot?gF(Xw(this.viewRoot)):{width:void 0,height:void 0},this.spec.background),this.loadingMessageElement=uf("div",{class:"loading-message",innerHTML:'<div class="message">Loading<span class="ellipsis">...</span></div>'}),n.appendChild(this.loadingMessageElement),this.loadingIndicatorsElement=uf("div",{class:"loading-indicators"}),n.appendChild(this.loadingIndicatorsElement),this.tooltip=new v6(n),this.loadingMessageElement.querySelector(".message").addEventListener("transitionend",()=>{this.loadingMessageElement.style.display="none"})};function f7(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)}function uf(e,t){const n=document.createElement(e);for(const[r,i]of Object.entries(t))["innerHTML","innerText","className"].includes(r)&&(n[r]=i),n.setAttribute(r,i);return n}const h7="data:image/svg+xml,%3csvg%20viewBox='0%200%2032%2032'%20xmlns='http://www.w3.org/2000/svg'%20fill-rule='evenodd'%20clip-rule='evenodd'%20stroke-linecap='round'%20stroke-linejoin='round'%20stroke-miterlimit='1.5'%3e%3cpath%20d='M4.7%2021.2s.4%202.3%201.3%203.6C7%2026%209.8%2028%209.8%2028s3.4-2.6%206.4-8.5c0%200%201%20.1%201.9-.4.9-.6.8-.4%201-1.2%200%200%202.9.5%206.6%200%202.1-.3%204.3-1%206.2-2.5%200%200-1.1-1.7-2.5-5.1-.5-1.3-2-1.8-4.6-4.6l-8.2%208.6-11.9%206.9z'%20fill-opacity='.1'/%3e%3cpath%20d='M12.7%2014.8s-4-1.8-12%202.7c0%200%201%203.7%202.5%205.3%201.4%201.5%202.3%203.6%204.6%204.6%200%200%204.7-3%206.9-9.2l3-2s4.7%202.8%2012.6-1.6c0%200-.6-3.3-3-6-2.6-3-3.8-4.7-3.8-4.7s-4.1%202.3-7.5%209.3l-3.3%201.6z'%20fill='%237fbbdd'/%3e%3cpath%20d='M12.4%2015.5c-.7-.5-2.4-.8-4.4-.4-2%20.4-4%201.3-4.8%201.8-.5.3-1.2%201-1.2%201.4%200%20.7.3%201.8.8%202.4.3.3.7.5%201.4.6.8%200%202.5-1.4%203.5-2%201-.6%201.6-.8%202.7-1.2l-2.9%202.4c-1.3%201.2-2.2%201.5-2.4%202.3%200%20.5%200%201.4.5%201.8.4.5.6.8%201.6.8.6%200%201%200%202.6-1.5.9-.9%202.3-3%202.7-3.7.6-1.1%201-2.2.7-3-.2-1-.4-1.4-.8-1.7zM17.4%2014.2c-.3-.5-.9-1.2-.2-2.5l1.9-3c.5-.8%202-2.3%202.6-2.6.6-.4%201.5-.6%202-.2.6.4%201%201%201.3%201.5.4.6.7%201.3.2%202-.7%201-1.6.9-2.8%201.7-1.2.8-1.9%201.2-2.5%201.9l3.8-1.8c1.3-.6%202.7-1.1%203.4-.7.8.5.8.7%201%201.4.3%201-.2%201.9-.8%202.4-.5.6-1.5.9-2.6%201.2-1.4.4-4.5%201-5.8.5-1.3-.5-1.3-1.4-1.5-1.8z'%20fill='%23fff'/%3e%3cpath%20d='M12.7%2014.8s-4-1.8-12%202.7c0%200%201%203.7%202.5%205.3%201.4%201.5%202.3%203.6%204.6%204.6%200%200%204.7-3%206.9-9.2l3-2s4.7%202.8%2012.6-1.6c0%200-.6-3.3-3-6-2.6-3-3.8-4.7-3.8-4.7s-4.1%202.3-7.5%209.3l-3.3%201.6z'%20fill='none'%20stroke='%23000'%20stroke-width='.5'/%3e%3cpath%20d='M12.4%2014.9s2.1-2%203-2c1.1%200%202.3%202.7%202.3%203.5%200%20.8-2.1%202.4-3.1%202.3%200%200%200-1.2-.7-2.6-.8-1.3-1.5-1.2-1.5-1.2z'%20fill='%237fbbdd'/%3e%3cpath%20d='M13.8%2015.3c.9.8.6%202%201.4%201.8%201-.2%201.4-.8%201.3-1.5%200-.7%200-.8-.4-1.6-.3-.7-1-1.1-2-.5-.7.5-1.4%201.3-1.4%201.3s.2-.3%201.1.5z'%20fill='%23fff'/%3e%3cpath%20d='M12.4%2014.9s2.1-2%203-2c1.1%200%202.3%202.7%202.3%203.5%200%20.8-2.1%202.4-3.1%202.3%200%200%200-1.2-.7-2.6-.8-1.3-1.5-1.2-1.5-1.2z'%20fill='none'%20stroke='%23000'%20stroke-width='.5'/%3e%3c/svg%3e",d7="data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%2064%2064'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20xmlns:serif='http://www.serif.com/'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:1.5;'%3e%3cg%20transform='matrix(0.10221,0.00683825,-0.0067136,0.100347,-8.03424,-13.2222)'%3e%3cpath%20d='M208.629,548.17C208.629,548.17%20219.768,594.389%20239.814,619.222C259.86,644.055%20319.119,680.831%20319.119,680.831C319.119,680.831%20385.557,622.915%20437.87,498.346C437.87,498.346%20456.021,499.236%20473.808,486.446C491.594,473.656%20490.239,478.534%20494.883,461.62C494.883,461.62%20551.848,467.937%20625.826,451.863C667.634,442.778%20710.238,425.649%20747.382,393.142C747.382,393.142%20721.992,360.244%20689.422,291.45C677.029,265.275%20647.518,257.098%20590.747,203.309L438.083,391.273L208.629,548.17Z'%20style='fill-opacity:0.11;'/%3e%3c/g%3e%3cg%20transform='matrix(0.081985,-0.0582493,0.0582493,0.081985,-40.4754,34.7668)'%3e%3cpath%20d='M561.588,349.155C561.588,349.155%20516.297,271.341%20328.841,252.044C328.841,252.044%20302.342,325.189%20307.686,368.056C313.031,410.922%20303.001,456.147%20329.132,501.174C329.132,501.174%20443.114,506.743%20554.649,428.469L629.204,432.112C629.204,432.112%20673.755,534.351%20856.964,554.375C856.964,554.375%20886.717,491.768%20879.193,417.478C871.211,338.673%20871.716,293.443%20871.716,293.443C871.716,293.443%20775.485,283.928%20635.418,361.795L561.588,349.155Z'%20style='fill:rgb(127,187,221);'/%3e%3cclipPath%20id='_clip1'%3e%3cpath%20d='M561.588,349.155C561.588,349.155%20516.297,271.341%20328.841,252.044C328.841,252.044%20302.342,325.189%20307.686,368.056C313.031,410.922%20303.001,456.147%20329.132,501.174C329.132,501.174%20443.114,506.743%20554.649,428.469L629.204,432.112C629.204,432.112%20673.755,534.351%20856.964,554.375C856.964,554.375%20886.717,491.768%20879.193,417.478C871.211,338.673%20871.716,293.443%20871.716,293.443C871.716,293.443%20775.485,283.928%20635.418,361.795L561.588,349.155Z'/%3e%3c/clipPath%3e%3cg%20clip-path='url(%23_clip1)'%3e%3cg%20transform='matrix(0.758637,0.45892,-0.45892,0.758637,425.635,-121.213)'%3e%3cpath%20d='M386.873,397.241C371.345,383.628%20335.138,374.782%20290.644,380.543C246.149,386.304%20196.827,402.266%20178.802,412.065C168.202,417.828%20151.494,429.354%20150.682,439.334C149.527,453.528%20153.593,477.066%20165.625,491.284C171.69,498.451%20179.927,503.445%20193.838,505.423C211.701,507.963%20252.714,480.627%20275.399,469.22C299.332,457.187%20313.981,454.56%20338.386,447.014C338.386,447.014%20291.346,478.587%20270.205,494.393C239.61,517.268%20218.575,522.444%20212.859,539.897C209.766,549.34%20212.237,567.767%20220.354,577.538C229.427,588.461%20233.197,595.069%20254.591,597.624C267.303,599.143%20276.685,598.802%20314.37,568.95C336.06,551.767%20370.297,509.817%20381.412,494.616C397.581,472.506%20405.165,451.462%20402.656,435.04C399.045,411.391%20394.259,403.716%20386.873,397.241Z'%20style='fill:white;'/%3e%3c/g%3e%3cg%20transform='matrix(0.752145,0.454993,-0.454993,0.752145,468.36,-108.293)'%3e%3cpath%20d='M484.733,378.934C479.33,367.886%20467.092,350.452%20483.886,325.205C502.172,297.717%20514.898,280.938%20528.117,264.632C541.335,248.326%20574.793,218.447%20587.739,212.53C600.684,206.613%20621.026,203.852%20631.889,212.841C642.874,221.93%20648.416,233.377%20654.92,245.478C662.331,259.267%20667.318,274.808%20656.518,288.278C641.093,307.515%20622.242,305.294%20594.912,319.844C567.244,334.573%20552.644,342.943%20539.244,355.703C539.244,355.703%20591.431,334.114%20621.229,324.474C651.027,314.833%20680.952,304.461%20695.995,315.975C711.038,327.49%20710.631,331.463%20714.425,347.187C719.107,366.59%20707.231,385.165%20694.294,395.838C681.356,406.51%20659.958,411.756%20636.875,416.852C606.42,423.576%20540.278,431.917%20512.819,419.366C485.361,406.815%20488.488,386.613%20484.733,378.934Z'%20style='fill:white;'/%3e%3c/g%3e%3c/g%3e%3cpath%20d='M561.588,349.155C561.588,349.155%20516.297,271.341%20328.841,252.044C328.841,252.044%20302.342,325.189%20307.686,368.056C313.031,410.922%20303.001,456.147%20329.132,501.174C329.132,501.174%20443.114,506.743%20554.649,428.469L629.204,432.112C629.204,432.112%20673.755,534.351%20856.964,554.375C856.964,554.375%20886.717,491.768%20879.193,417.478C871.211,338.673%20871.716,293.443%20871.716,293.443C871.716,293.443%20775.485,283.928%20635.418,361.795L561.588,349.155Z'%20style='fill:none;stroke:black;stroke-width:16.57px;'/%3e%3c/g%3e%3cg%20transform='matrix(0.100298,-0.00740488,0.00740488,0.100298,-15.7457,-5.17528)'%3e%3cpath%20d='M384.916,385.459C384.916,385.459%20430.781,347.868%20450.027,350.093C471.685,352.596%20490.49,407.747%20490.208,424.416C489.927,441.085%20442.948,469.866%20422.537,466.24C422.537,466.24%20425.525,442.129%20412.114,413.335C398.702,384.54%20384.916,385.459%20384.916,385.459Z'%20style='fill:rgb(127,187,221);'/%3e%3cclipPath%20id='_clip2'%3e%3cpath%20d='M384.916,385.459C384.916,385.459%20430.781,347.868%20450.027,350.093C471.685,352.596%20490.49,407.747%20490.208,424.416C489.927,441.085%20442.948,469.866%20422.537,466.24C422.537,466.24%20425.525,442.129%20412.114,413.335C398.702,384.54%20384.916,385.459%20384.916,385.459Z'/%3e%3c/clipPath%3e%3cg%20clip-path='url(%23_clip2)'%3e%3cg%20transform='matrix(0.909069,3.67641e-17,-3.79818e-17,0.85852,37.051,52.1829)'%3e%3cpath%20d='M413.282,402.697C430.77,421.58%20423.307,448.426%20441.683,446.137C463.409,443.431%20472.604,430.356%20473.316,413.402C474.028,396.448%20472.245,393.911%20466.172,375.321C460.099,356.731%20447.953,352.176%20422.842,357.179C401.957,361.339%20405.039,360.215%20398.735,367.228C392.43,374.242%20384.315,393.182%20384.315,393.182C384.315,393.182%20392.715,380.492%20413.282,402.697Z'%20style='fill:white;'/%3e%3c/g%3e%3c/g%3e%3cpath%20d='M384.916,385.459C384.916,385.459%20430.781,347.868%20450.027,350.093C471.685,352.596%20490.49,407.747%20490.208,424.416C489.927,441.085%20442.948,469.866%20422.537,466.24C422.537,466.24%20425.525,442.129%20412.114,413.335C398.702,384.54%20384.916,385.459%20384.916,385.459Z'%20style='fill:none;stroke:black;stroke-width:16.57px;'/%3e%3c/g%3e%3c/svg%3e";async function p7(e,t,n={}){let r;if(Ue(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=kt(t)?t:await gv(t);if(a.baseUrl??(a.baseUrl=""),a.width??(a.width="container"),a.padding??(a.padding=10),r==document.body){const o=document.createElement("div");o.style.position="fixed",o.style.inset="0",o.style.overflow="hidden",r.appendChild(o),r=o}i=new pv(r,a,n),g7(i,n),await i.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 u=s.get(a);u||(u=new Set,s.set(a,u)),u.add(o)},removeEventListener(a,o){var u;(u=i._eventListeners.get(a))==null||u.delete(o)},getScaleResolutionByName(a){return i.getNamedScaleResolutions().get(a)},updateNamedData:i.updateNamedData.bind(i)}}function g7(e,t){t.namedDataProvider&&e.registerNamedDataProvider(t.namedDataProvider)}async function gv(e){let t;try{t=JSON.parse(await Qu().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}var cf=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};function ll(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function m7(e){if(e.__esModule)return e;var t=e.default;if(typeof t=="function"){var n=function r(){return this instanceof r?Reflect.construct(t,arguments,this.constructor):t.apply(this,arguments)};n.prototype=t.prototype}else n={};return Object.defineProperty(n,"__esModule",{value:!0}),Object.keys(e).forEach(function(r){var i=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(n,r,i.get?i:{enumerable:!0,get:function(){return e[r]}})}),n}var me={},ff={};ff.byteLength=w7,ff.toByteArray=x7,ff.fromByteArray=_7;for(var qn=[],an=[],b7=typeof Uint8Array<"u"?Uint8Array:Array,X0="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Qa=0,y7=X0.length;Qa<y7;++Qa)qn[Qa]=X0[Qa],an[X0.charCodeAt(Qa)]=Qa;an["-".charCodeAt(0)]=62,an["_".charCodeAt(0)]=63;function mv(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 w7(e){var t=mv(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 x7(e){var t,n=mv(e),r=n[0],i=n[1],a=new b7(v7(e,r,i)),o=0,s=i>0?r-4:r,u;for(u=0;u<s;u+=4)t=an[e.charCodeAt(u)]<<18|an[e.charCodeAt(u+1)]<<12|an[e.charCodeAt(u+2)]<<6|an[e.charCodeAt(u+3)],a[o++]=t>>16&255,a[o++]=t>>8&255,a[o++]=t&255;return i===2&&(t=an[e.charCodeAt(u)]<<2|an[e.charCodeAt(u+1)]>>4,a[o++]=t&255),i===1&&(t=an[e.charCodeAt(u)]<<10|an[e.charCodeAt(u+1)]<<4|an[e.charCodeAt(u+2)]>>2,a[o++]=t>>8&255,a[o++]=t&255),a}function A7(e){return qn[e>>18&63]+qn[e>>12&63]+qn[e>>6&63]+qn[e&63]}function E7(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(A7(r));return i.join("")}function _7(e){for(var t,n=e.length,r=n%3,i=[],a=16383,o=0,s=n-r;o<s;o+=a)i.push(E7(e,o,o+a>s?s:o+a));return r===1?(t=e[n-1],i.push(qn[t>>2]+qn[t<<4&63]+"==")):r===2&&(t=(e[n-2]<<8)+e[n-1],i.push(qn[t>>10]+qn[t>>4&63]+qn[t<<2&63]+"=")),i.join("")}var K0={};/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */K0.read=function(e,t,n,r,i){var a,o,s=i*8-r-1,u=(1<<s)-1,l=u>>1,c=-7,f=n?i-1:0,h=n?-1:1,d=e[t+f];for(f+=h,a=d&(1<<-c)-1,d>>=-c,c+=s;c>0;a=a*256+e[t+f],f+=h,c-=8);for(o=a&(1<<-c)-1,a>>=-c,c+=r;c>0;o=o*256+e[t+f],f+=h,c-=8);if(a===0)a=1-l;else{if(a===u)return o?NaN:(d?-1:1)*(1/0);o=o+Math.pow(2,r),a=a-l}return(d?-1:1)*o*Math.pow(2,a-r)},K0.write=function(e,t,n,r,i,a){var o,s,u,l=a*8-i-1,c=(1<<l)-1,f=c>>1,h=i===23?Math.pow(2,-24)-Math.pow(2,-77):0,d=r?0:a-1,p=r?1:-1,m=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=c):(o=Math.floor(Math.log(t)/Math.LN2),t*(u=Math.pow(2,-o))<1&&(o--,u*=2),o+f>=1?t+=h/u:t+=h*Math.pow(2,1-f),t*u>=2&&(o++,u/=2),o+f>=c?(s=0,o=c):o+f>=1?(s=(t*u-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,l+=i;l>0;e[n+d]=o&255,d+=p,o/=256,l-=8);e[n+d-p]|=m*128};/*!
|
|
333
445
|
* The buffer module from node.js, for the browser.
|
|
334
446
|
*
|
|
335
447
|
* @author Feross Aboukhadijeh <https://feross.org>
|
|
336
448
|
* @license MIT
|
|
337
|
-
*/(function(e){const t=Of,n=k0,r=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;e.Buffer=s,e.SlowBuffer=A,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 v=new Uint8Array(1),g={foo:function(){return 42}};return Object.setPrototypeOf(g,Uint8Array.prototype),Object.setPrototypeOf(v,g),v.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(v){if(v>i)throw new RangeError('The value "'+v+'" is invalid for option "size"');const g=new Uint8Array(v);return Object.setPrototypeOf(g,s.prototype),g}function s(v,g,m){if(typeof v=="number"){if(typeof g=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return c(v)}return u(v,g,m)}s.poolSize=8192;function u(v,g,m){if(typeof v=="string")return h(v,g);if(ArrayBuffer.isView(v))return p(v);if(v==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof v);if(St(v,ArrayBuffer)||v&&St(v.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(St(v,SharedArrayBuffer)||v&&St(v.buffer,SharedArrayBuffer)))return b(v,g,m);if(typeof v=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');const k=v.valueOf&&v.valueOf();if(k!=null&&k!==v)return s.from(k,g,m);const F=y(v);if(F)return F;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof v[Symbol.toPrimitive]=="function")return s.from(v[Symbol.toPrimitive]("string"),g,m);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof v)}s.from=function(v,g,m){return u(v,g,m)},Object.setPrototypeOf(s.prototype,Uint8Array.prototype),Object.setPrototypeOf(s,Uint8Array);function l(v){if(typeof v!="number")throw new TypeError('"size" argument must be of type number');if(v<0)throw new RangeError('The value "'+v+'" is invalid for option "size"')}function f(v,g,m){return l(v),v<=0?o(v):g!==void 0?typeof m=="string"?o(v).fill(g,m):o(v).fill(g):o(v)}s.alloc=function(v,g,m){return f(v,g,m)};function c(v){return l(v),o(v<0?0:w(v)|0)}s.allocUnsafe=function(v){return c(v)},s.allocUnsafeSlow=function(v){return c(v)};function h(v,g){if((typeof g!="string"||g==="")&&(g="utf8"),!s.isEncoding(g))throw new TypeError("Unknown encoding: "+g);const m=S(v,g)|0;let k=o(m);const F=k.write(v,g);return F!==m&&(k=k.slice(0,F)),k}function d(v){const g=v.length<0?0:w(v.length)|0,m=o(g);for(let k=0;k<g;k+=1)m[k]=v[k]&255;return m}function p(v){if(St(v,Uint8Array)){const g=new Uint8Array(v);return b(g.buffer,g.byteOffset,g.byteLength)}return d(v)}function b(v,g,m){if(g<0||v.byteLength<g)throw new RangeError('"offset" is outside of buffer bounds');if(v.byteLength<g+(m||0))throw new RangeError('"length" is outside of buffer bounds');let k;return g===void 0&&m===void 0?k=new Uint8Array(v):m===void 0?k=new Uint8Array(v,g):k=new Uint8Array(v,g,m),Object.setPrototypeOf(k,s.prototype),k}function y(v){if(s.isBuffer(v)){const g=w(v.length)|0,m=o(g);return m.length===0||v.copy(m,0,0,g),m}if(v.length!==void 0)return typeof v.length!="number"||wr(v.length)?o(0):d(v);if(v.type==="Buffer"&&Array.isArray(v.data))return d(v.data)}function w(v){if(v>=i)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+i.toString(16)+" bytes");return v|0}function A(v){return+v!=v&&(v=0),s.alloc(+v)}s.isBuffer=function(g){return g!=null&&g._isBuffer===!0&&g!==s.prototype},s.compare=function(g,m){if(St(g,Uint8Array)&&(g=s.from(g,g.offset,g.byteLength)),St(m,Uint8Array)&&(m=s.from(m,m.offset,m.byteLength)),!s.isBuffer(g)||!s.isBuffer(m))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(g===m)return 0;let k=g.length,F=m.length;for(let O=0,V=Math.min(k,F);O<V;++O)if(g[O]!==m[O]){k=g[O],F=m[O];break}return k<F?-1:F<k?1:0},s.isEncoding=function(g){switch(String(g).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(g,m){if(!Array.isArray(g))throw new TypeError('"list" argument must be an Array of Buffers');if(g.length===0)return s.alloc(0);let k;if(m===void 0)for(m=0,k=0;k<g.length;++k)m+=g[k].length;const F=s.allocUnsafe(m);let O=0;for(k=0;k<g.length;++k){let V=g[k];if(St(V,Uint8Array))O+V.length>F.length?(s.isBuffer(V)||(V=s.from(V)),V.copy(F,O)):Uint8Array.prototype.set.call(F,V,O);else if(s.isBuffer(V))V.copy(F,O);else throw new TypeError('"list" argument must be an Array of Buffers');O+=V.length}return F};function S(v,g){if(s.isBuffer(v))return v.length;if(ArrayBuffer.isView(v)||St(v,ArrayBuffer))return v.byteLength;if(typeof v!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof v);const m=v.length,k=arguments.length>2&&arguments[2]===!0;if(!k&&m===0)return 0;let F=!1;for(;;)switch(g){case"ascii":case"latin1":case"binary":return m;case"utf8":case"utf-8":return ue(v).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return m*2;case"hex":return m>>>1;case"base64":return ui(v).length;default:if(F)return k?-1:ue(v).length;g=(""+g).toLowerCase(),F=!0}}s.byteLength=S;function _(v,g,m){let k=!1;if((g===void 0||g<0)&&(g=0),g>this.length||((m===void 0||m>this.length)&&(m=this.length),m<=0)||(m>>>=0,g>>>=0,m<=g))return"";for(v||(v="utf8");;)switch(v){case"hex":return Ze(this,g,m);case"utf8":case"utf-8":return ge(this,g,m);case"ascii":return De(this,g,m);case"latin1":case"binary":return Ke(this,g,m);case"base64":return se(this,g,m);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Je(this,g,m);default:if(k)throw new TypeError("Unknown encoding: "+v);v=(v+"").toLowerCase(),k=!0}}s.prototype._isBuffer=!0;function T(v,g,m){const k=v[g];v[g]=v[m],v[m]=k}s.prototype.swap16=function(){const g=this.length;if(g%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let m=0;m<g;m+=2)T(this,m,m+1);return this},s.prototype.swap32=function(){const g=this.length;if(g%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(let m=0;m<g;m+=4)T(this,m,m+3),T(this,m+1,m+2);return this},s.prototype.swap64=function(){const g=this.length;if(g%8!==0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(let m=0;m<g;m+=8)T(this,m,m+7),T(this,m+1,m+6),T(this,m+2,m+5),T(this,m+3,m+4);return this},s.prototype.toString=function(){const g=this.length;return g===0?"":arguments.length===0?ge(this,0,g):_.apply(this,arguments)},s.prototype.toLocaleString=s.prototype.toString,s.prototype.equals=function(g){if(!s.isBuffer(g))throw new TypeError("Argument must be a Buffer");return this===g?!0:s.compare(this,g)===0},s.prototype.inspect=function(){let g="";const m=e.INSPECT_MAX_BYTES;return g=this.toString("hex",0,m).replace(/(.{2})/g,"$1 ").trim(),this.length>m&&(g+=" ... "),"<Buffer "+g+">"},r&&(s.prototype[r]=s.prototype.inspect),s.prototype.compare=function(g,m,k,F,O){if(St(g,Uint8Array)&&(g=s.from(g,g.offset,g.byteLength)),!s.isBuffer(g))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof g);if(m===void 0&&(m=0),k===void 0&&(k=g?g.length:0),F===void 0&&(F=0),O===void 0&&(O=this.length),m<0||k>g.length||F<0||O>this.length)throw new RangeError("out of range index");if(F>=O&&m>=k)return 0;if(F>=O)return-1;if(m>=k)return 1;if(m>>>=0,k>>>=0,F>>>=0,O>>>=0,this===g)return 0;let V=O-F,fe=k-m;const Ge=Math.min(V,fe),Me=this.slice(F,O),We=g.slice(m,k);for(let Se=0;Se<Ge;++Se)if(Me[Se]!==We[Se]){V=Me[Se],fe=We[Se];break}return V<fe?-1:fe<V?1:0};function I(v,g,m,k,F){if(v.length===0)return-1;if(typeof m=="string"?(k=m,m=0):m>2147483647?m=2147483647:m<-2147483648&&(m=-2147483648),m=+m,wr(m)&&(m=F?0:v.length-1),m<0&&(m=v.length+m),m>=v.length){if(F)return-1;m=v.length-1}else if(m<0)if(F)m=0;else return-1;if(typeof g=="string"&&(g=s.from(g,k)),s.isBuffer(g))return g.length===0?-1:B(v,g,m,k,F);if(typeof g=="number")return g=g&255,typeof Uint8Array.prototype.indexOf=="function"?F?Uint8Array.prototype.indexOf.call(v,g,m):Uint8Array.prototype.lastIndexOf.call(v,g,m):B(v,[g],m,k,F);throw new TypeError("val must be string, number or Buffer")}function B(v,g,m,k,F){let O=1,V=v.length,fe=g.length;if(k!==void 0&&(k=String(k).toLowerCase(),k==="ucs2"||k==="ucs-2"||k==="utf16le"||k==="utf-16le")){if(v.length<2||g.length<2)return-1;O=2,V/=2,fe/=2,m/=2}function Ge(We,Se){return O===1?We[Se]:We.readUInt16BE(Se*O)}let Me;if(F){let We=-1;for(Me=m;Me<V;Me++)if(Ge(v,Me)===Ge(g,We===-1?0:Me-We)){if(We===-1&&(We=Me),Me-We+1===fe)return We*O}else We!==-1&&(Me-=Me-We),We=-1}else for(m+fe>V&&(m=V-fe),Me=m;Me>=0;Me--){let We=!0;for(let Se=0;Se<fe;Se++)if(Ge(v,Me+Se)!==Ge(g,Se)){We=!1;break}if(We)return Me}return-1}s.prototype.includes=function(g,m,k){return this.indexOf(g,m,k)!==-1},s.prototype.indexOf=function(g,m,k){return I(this,g,m,k,!0)},s.prototype.lastIndexOf=function(g,m,k){return I(this,g,m,k,!1)};function R(v,g,m,k){m=Number(m)||0;const F=v.length-m;k?(k=Number(k),k>F&&(k=F)):k=F;const O=g.length;k>O/2&&(k=O/2);let V;for(V=0;V<k;++V){const fe=parseInt(g.substr(V*2,2),16);if(wr(fe))return V;v[m+V]=fe}return V}function L(v,g,m,k){return fi(ue(g,v.length-m),v,m,k)}function j(v,g,m,k){return fi(Zt(g),v,m,k)}function M(v,g,m,k){return fi(ui(g),v,m,k)}function ie(v,g,m,k){return fi(li(g,v.length-m),v,m,k)}s.prototype.write=function(g,m,k,F){if(m===void 0)F="utf8",k=this.length,m=0;else if(k===void 0&&typeof m=="string")F=m,k=this.length,m=0;else if(isFinite(m))m=m>>>0,isFinite(k)?(k=k>>>0,F===void 0&&(F="utf8")):(F=k,k=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");const O=this.length-m;if((k===void 0||k>O)&&(k=O),g.length>0&&(k<0||m<0)||m>this.length)throw new RangeError("Attempt to write outside buffer bounds");F||(F="utf8");let V=!1;for(;;)switch(F){case"hex":return R(this,g,m,k);case"utf8":case"utf-8":return L(this,g,m,k);case"ascii":case"latin1":case"binary":return j(this,g,m,k);case"base64":return M(this,g,m,k);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return ie(this,g,m,k);default:if(V)throw new TypeError("Unknown encoding: "+F);F=(""+F).toLowerCase(),V=!0}},s.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function se(v,g,m){return g===0&&m===v.length?t.fromByteArray(v):t.fromByteArray(v.slice(g,m))}function ge(v,g,m){m=Math.min(v.length,m);const k=[];let F=g;for(;F<m;){const O=v[F];let V=null,fe=O>239?4:O>223?3:O>191?2:1;if(F+fe<=m){let Ge,Me,We,Se;switch(fe){case 1:O<128&&(V=O);break;case 2:Ge=v[F+1],(Ge&192)===128&&(Se=(O&31)<<6|Ge&63,Se>127&&(V=Se));break;case 3:Ge=v[F+1],Me=v[F+2],(Ge&192)===128&&(Me&192)===128&&(Se=(O&15)<<12|(Ge&63)<<6|Me&63,Se>2047&&(Se<55296||Se>57343)&&(V=Se));break;case 4:Ge=v[F+1],Me=v[F+2],We=v[F+3],(Ge&192)===128&&(Me&192)===128&&(We&192)===128&&(Se=(O&15)<<18|(Ge&63)<<12|(Me&63)<<6|We&63,Se>65535&&Se<1114112&&(V=Se))}}V===null?(V=65533,fe=1):V>65535&&(V-=65536,k.push(V>>>10&1023|55296),V=56320|V&1023),k.push(V),F+=fe}return $e(k)}const Ie=4096;function $e(v){const g=v.length;if(g<=Ie)return String.fromCharCode.apply(String,v);let m="",k=0;for(;k<g;)m+=String.fromCharCode.apply(String,v.slice(k,k+=Ie));return m}function De(v,g,m){let k="";m=Math.min(v.length,m);for(let F=g;F<m;++F)k+=String.fromCharCode(v[F]&127);return k}function Ke(v,g,m){let k="";m=Math.min(v.length,m);for(let F=g;F<m;++F)k+=String.fromCharCode(v[F]);return k}function Ze(v,g,m){const k=v.length;(!g||g<0)&&(g=0),(!m||m<0||m>k)&&(m=k);let F="";for(let O=g;O<m;++O)F+=ci[v[O]];return F}function Je(v,g,m){const k=v.slice(g,m);let F="";for(let O=0;O<k.length-1;O+=2)F+=String.fromCharCode(k[O]+k[O+1]*256);return F}s.prototype.slice=function(g,m){const k=this.length;g=~~g,m=m===void 0?k:~~m,g<0?(g+=k,g<0&&(g=0)):g>k&&(g=k),m<0?(m+=k,m<0&&(m=0)):m>k&&(m=k),m<g&&(m=g);const F=this.subarray(g,m);return Object.setPrototypeOf(F,s.prototype),F};function Ee(v,g,m){if(v%1!==0||v<0)throw new RangeError("offset is not uint");if(v+g>m)throw new RangeError("Trying to access beyond buffer length")}s.prototype.readUintLE=s.prototype.readUIntLE=function(g,m,k){g=g>>>0,m=m>>>0,k||Ee(g,m,this.length);let F=this[g],O=1,V=0;for(;++V<m&&(O*=256);)F+=this[g+V]*O;return F},s.prototype.readUintBE=s.prototype.readUIntBE=function(g,m,k){g=g>>>0,m=m>>>0,k||Ee(g,m,this.length);let F=this[g+--m],O=1;for(;m>0&&(O*=256);)F+=this[g+--m]*O;return F},s.prototype.readUint8=s.prototype.readUInt8=function(g,m){return g=g>>>0,m||Ee(g,1,this.length),this[g]},s.prototype.readUint16LE=s.prototype.readUInt16LE=function(g,m){return g=g>>>0,m||Ee(g,2,this.length),this[g]|this[g+1]<<8},s.prototype.readUint16BE=s.prototype.readUInt16BE=function(g,m){return g=g>>>0,m||Ee(g,2,this.length),this[g]<<8|this[g+1]},s.prototype.readUint32LE=s.prototype.readUInt32LE=function(g,m){return g=g>>>0,m||Ee(g,4,this.length),(this[g]|this[g+1]<<8|this[g+2]<<16)+this[g+3]*16777216},s.prototype.readUint32BE=s.prototype.readUInt32BE=function(g,m){return g=g>>>0,m||Ee(g,4,this.length),this[g]*16777216+(this[g+1]<<16|this[g+2]<<8|this[g+3])},s.prototype.readBigUInt64LE=Wt(function(g){g=g>>>0,G(g,"offset");const m=this[g],k=this[g+7];(m===void 0||k===void 0)&&Z(g,this.length-8);const F=m+this[++g]*2**8+this[++g]*2**16+this[++g]*2**24,O=this[++g]+this[++g]*2**8+this[++g]*2**16+k*2**24;return BigInt(F)+(BigInt(O)<<BigInt(32))}),s.prototype.readBigUInt64BE=Wt(function(g){g=g>>>0,G(g,"offset");const m=this[g],k=this[g+7];(m===void 0||k===void 0)&&Z(g,this.length-8);const F=m*2**24+this[++g]*2**16+this[++g]*2**8+this[++g],O=this[++g]*2**24+this[++g]*2**16+this[++g]*2**8+k;return(BigInt(F)<<BigInt(32))+BigInt(O)}),s.prototype.readIntLE=function(g,m,k){g=g>>>0,m=m>>>0,k||Ee(g,m,this.length);let F=this[g],O=1,V=0;for(;++V<m&&(O*=256);)F+=this[g+V]*O;return O*=128,F>=O&&(F-=Math.pow(2,8*m)),F},s.prototype.readIntBE=function(g,m,k){g=g>>>0,m=m>>>0,k||Ee(g,m,this.length);let F=m,O=1,V=this[g+--F];for(;F>0&&(O*=256);)V+=this[g+--F]*O;return O*=128,V>=O&&(V-=Math.pow(2,8*m)),V},s.prototype.readInt8=function(g,m){return g=g>>>0,m||Ee(g,1,this.length),this[g]&128?(255-this[g]+1)*-1:this[g]},s.prototype.readInt16LE=function(g,m){g=g>>>0,m||Ee(g,2,this.length);const k=this[g]|this[g+1]<<8;return k&32768?k|4294901760:k},s.prototype.readInt16BE=function(g,m){g=g>>>0,m||Ee(g,2,this.length);const k=this[g+1]|this[g]<<8;return k&32768?k|4294901760:k},s.prototype.readInt32LE=function(g,m){return g=g>>>0,m||Ee(g,4,this.length),this[g]|this[g+1]<<8|this[g+2]<<16|this[g+3]<<24},s.prototype.readInt32BE=function(g,m){return g=g>>>0,m||Ee(g,4,this.length),this[g]<<24|this[g+1]<<16|this[g+2]<<8|this[g+3]},s.prototype.readBigInt64LE=Wt(function(g){g=g>>>0,G(g,"offset");const m=this[g],k=this[g+7];(m===void 0||k===void 0)&&Z(g,this.length-8);const F=this[g+4]+this[g+5]*2**8+this[g+6]*2**16+(k<<24);return(BigInt(F)<<BigInt(32))+BigInt(m+this[++g]*2**8+this[++g]*2**16+this[++g]*2**24)}),s.prototype.readBigInt64BE=Wt(function(g){g=g>>>0,G(g,"offset");const m=this[g],k=this[g+7];(m===void 0||k===void 0)&&Z(g,this.length-8);const F=(m<<24)+this[++g]*2**16+this[++g]*2**8+this[++g];return(BigInt(F)<<BigInt(32))+BigInt(this[++g]*2**24+this[++g]*2**16+this[++g]*2**8+k)}),s.prototype.readFloatLE=function(g,m){return g=g>>>0,m||Ee(g,4,this.length),n.read(this,g,!0,23,4)},s.prototype.readFloatBE=function(g,m){return g=g>>>0,m||Ee(g,4,this.length),n.read(this,g,!1,23,4)},s.prototype.readDoubleLE=function(g,m){return g=g>>>0,m||Ee(g,8,this.length),n.read(this,g,!0,52,8)},s.prototype.readDoubleBE=function(g,m){return g=g>>>0,m||Ee(g,8,this.length),n.read(this,g,!1,52,8)};function _e(v,g,m,k,F,O){if(!s.isBuffer(v))throw new TypeError('"buffer" argument must be a Buffer instance');if(g>F||g<O)throw new RangeError('"value" argument is out of bounds');if(m+k>v.length)throw new RangeError("Index out of range")}s.prototype.writeUintLE=s.prototype.writeUIntLE=function(g,m,k,F){if(g=+g,m=m>>>0,k=k>>>0,!F){const fe=Math.pow(2,8*k)-1;_e(this,g,m,k,fe,0)}let O=1,V=0;for(this[m]=g&255;++V<k&&(O*=256);)this[m+V]=g/O&255;return m+k},s.prototype.writeUintBE=s.prototype.writeUIntBE=function(g,m,k,F){if(g=+g,m=m>>>0,k=k>>>0,!F){const fe=Math.pow(2,8*k)-1;_e(this,g,m,k,fe,0)}let O=k-1,V=1;for(this[m+O]=g&255;--O>=0&&(V*=256);)this[m+O]=g/V&255;return m+k},s.prototype.writeUint8=s.prototype.writeUInt8=function(g,m,k){return g=+g,m=m>>>0,k||_e(this,g,m,1,255,0),this[m]=g&255,m+1},s.prototype.writeUint16LE=s.prototype.writeUInt16LE=function(g,m,k){return g=+g,m=m>>>0,k||_e(this,g,m,2,65535,0),this[m]=g&255,this[m+1]=g>>>8,m+2},s.prototype.writeUint16BE=s.prototype.writeUInt16BE=function(g,m,k){return g=+g,m=m>>>0,k||_e(this,g,m,2,65535,0),this[m]=g>>>8,this[m+1]=g&255,m+2},s.prototype.writeUint32LE=s.prototype.writeUInt32LE=function(g,m,k){return g=+g,m=m>>>0,k||_e(this,g,m,4,4294967295,0),this[m+3]=g>>>24,this[m+2]=g>>>16,this[m+1]=g>>>8,this[m]=g&255,m+4},s.prototype.writeUint32BE=s.prototype.writeUInt32BE=function(g,m,k){return g=+g,m=m>>>0,k||_e(this,g,m,4,4294967295,0),this[m]=g>>>24,this[m+1]=g>>>16,this[m+2]=g>>>8,this[m+3]=g&255,m+4};function pt(v,g,m,k,F){x(g,k,F,v,m,7);let O=Number(g&BigInt(4294967295));v[m++]=O,O=O>>8,v[m++]=O,O=O>>8,v[m++]=O,O=O>>8,v[m++]=O;let V=Number(g>>BigInt(32)&BigInt(4294967295));return v[m++]=V,V=V>>8,v[m++]=V,V=V>>8,v[m++]=V,V=V>>8,v[m++]=V,m}function qt(v,g,m,k,F){x(g,k,F,v,m,7);let O=Number(g&BigInt(4294967295));v[m+7]=O,O=O>>8,v[m+6]=O,O=O>>8,v[m+5]=O,O=O>>8,v[m+4]=O;let V=Number(g>>BigInt(32)&BigInt(4294967295));return v[m+3]=V,V=V>>8,v[m+2]=V,V=V>>8,v[m+1]=V,V=V>>8,v[m]=V,m+8}s.prototype.writeBigUInt64LE=Wt(function(g,m=0){return pt(this,g,m,BigInt(0),BigInt("0xffffffffffffffff"))}),s.prototype.writeBigUInt64BE=Wt(function(g,m=0){return qt(this,g,m,BigInt(0),BigInt("0xffffffffffffffff"))}),s.prototype.writeIntLE=function(g,m,k,F){if(g=+g,m=m>>>0,!F){const Ge=Math.pow(2,8*k-1);_e(this,g,m,k,Ge-1,-Ge)}let O=0,V=1,fe=0;for(this[m]=g&255;++O<k&&(V*=256);)g<0&&fe===0&&this[m+O-1]!==0&&(fe=1),this[m+O]=(g/V>>0)-fe&255;return m+k},s.prototype.writeIntBE=function(g,m,k,F){if(g=+g,m=m>>>0,!F){const Ge=Math.pow(2,8*k-1);_e(this,g,m,k,Ge-1,-Ge)}let O=k-1,V=1,fe=0;for(this[m+O]=g&255;--O>=0&&(V*=256);)g<0&&fe===0&&this[m+O+1]!==0&&(fe=1),this[m+O]=(g/V>>0)-fe&255;return m+k},s.prototype.writeInt8=function(g,m,k){return g=+g,m=m>>>0,k||_e(this,g,m,1,127,-128),g<0&&(g=255+g+1),this[m]=g&255,m+1},s.prototype.writeInt16LE=function(g,m,k){return g=+g,m=m>>>0,k||_e(this,g,m,2,32767,-32768),this[m]=g&255,this[m+1]=g>>>8,m+2},s.prototype.writeInt16BE=function(g,m,k){return g=+g,m=m>>>0,k||_e(this,g,m,2,32767,-32768),this[m]=g>>>8,this[m+1]=g&255,m+2},s.prototype.writeInt32LE=function(g,m,k){return g=+g,m=m>>>0,k||_e(this,g,m,4,2147483647,-2147483648),this[m]=g&255,this[m+1]=g>>>8,this[m+2]=g>>>16,this[m+3]=g>>>24,m+4},s.prototype.writeInt32BE=function(g,m,k){return g=+g,m=m>>>0,k||_e(this,g,m,4,2147483647,-2147483648),g<0&&(g=4294967295+g+1),this[m]=g>>>24,this[m+1]=g>>>16,this[m+2]=g>>>8,this[m+3]=g&255,m+4},s.prototype.writeBigInt64LE=Wt(function(g,m=0){return pt(this,g,m,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),s.prototype.writeBigInt64BE=Wt(function(g,m=0){return qt(this,g,m,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function Oe(v,g,m,k,F,O){if(m+k>v.length)throw new RangeError("Index out of range");if(m<0)throw new RangeError("Index out of range")}function N(v,g,m,k,F){return g=+g,m=m>>>0,F||Oe(v,g,m,4),n.write(v,g,m,k,23,4),m+4}s.prototype.writeFloatLE=function(g,m,k){return N(this,g,m,!0,k)},s.prototype.writeFloatBE=function(g,m,k){return N(this,g,m,!1,k)};function P(v,g,m,k,F){return g=+g,m=m>>>0,F||Oe(v,g,m,8),n.write(v,g,m,k,52,8),m+8}s.prototype.writeDoubleLE=function(g,m,k){return P(this,g,m,!0,k)},s.prototype.writeDoubleBE=function(g,m,k){return P(this,g,m,!1,k)},s.prototype.copy=function(g,m,k,F){if(!s.isBuffer(g))throw new TypeError("argument should be a Buffer");if(k||(k=0),!F&&F!==0&&(F=this.length),m>=g.length&&(m=g.length),m||(m=0),F>0&&F<k&&(F=k),F===k||g.length===0||this.length===0)return 0;if(m<0)throw new RangeError("targetStart out of bounds");if(k<0||k>=this.length)throw new RangeError("Index out of range");if(F<0)throw new RangeError("sourceEnd out of bounds");F>this.length&&(F=this.length),g.length-m<F-k&&(F=g.length-m+k);const O=F-k;return this===g&&typeof Uint8Array.prototype.copyWithin=="function"?this.copyWithin(m,k,F):Uint8Array.prototype.set.call(g,this.subarray(k,F),m),O},s.prototype.fill=function(g,m,k,F){if(typeof g=="string"){if(typeof m=="string"?(F=m,m=0,k=this.length):typeof k=="string"&&(F=k,k=this.length),F!==void 0&&typeof F!="string")throw new TypeError("encoding must be a string");if(typeof F=="string"&&!s.isEncoding(F))throw new TypeError("Unknown encoding: "+F);if(g.length===1){const V=g.charCodeAt(0);(F==="utf8"&&V<128||F==="latin1")&&(g=V)}}else typeof g=="number"?g=g&255:typeof g=="boolean"&&(g=Number(g));if(m<0||this.length<m||this.length<k)throw new RangeError("Out of range index");if(k<=m)return this;m=m>>>0,k=k===void 0?this.length:k>>>0,g||(g=0);let O;if(typeof g=="number")for(O=m;O<k;++O)this[O]=g;else{const V=s.isBuffer(g)?g:s.from(g,F),fe=V.length;if(fe===0)throw new TypeError('The value "'+g+'" is invalid for argument "value"');for(O=0;O<k-m;++O)this[O+m]=V[O%fe]}return this};const q={};function H(v,g,m){q[v]=class extends m{constructor(){super(),Object.defineProperty(this,"message",{value:g.apply(this,arguments),writable:!0,configurable:!0}),this.name=`${this.name} [${v}]`,this.stack,delete this.name}get code(){return v}set code(F){Object.defineProperty(this,"code",{configurable:!0,enumerable:!0,value:F,writable:!0})}toString(){return`${this.name} [${v}]: ${this.message}`}}}H("ERR_BUFFER_OUT_OF_BOUNDS",function(v){return v?`${v} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"},RangeError),H("ERR_INVALID_ARG_TYPE",function(v,g){return`The "${v}" argument must be of type number. Received type ${typeof g}`},TypeError),H("ERR_OUT_OF_RANGE",function(v,g,m){let k=`The value of "${v}" is out of range.`,F=m;return Number.isInteger(m)&&Math.abs(m)>2**32?F=Y(String(m)):typeof m=="bigint"&&(F=String(m),(m>BigInt(2)**BigInt(32)||m<-(BigInt(2)**BigInt(32)))&&(F=Y(F)),F+="n"),k+=` It must be ${g}. Received ${F}`,k},RangeError);function Y(v){let g="",m=v.length;const k=v[0]==="-"?1:0;for(;m>=k+4;m-=3)g=`_${v.slice(m-3,m)}${g}`;return`${v.slice(0,m)}${g}`}function C(v,g,m){G(g,"offset"),(v[g]===void 0||v[g+m]===void 0)&&Z(g,v.length-(m+1))}function x(v,g,m,k,F,O){if(v>m||v<g){const V=typeof g=="bigint"?"n":"";let fe;throw O>3?g===0||g===BigInt(0)?fe=`>= 0${V} and < 2${V} ** ${(O+1)*8}${V}`:fe=`>= -(2${V} ** ${(O+1)*8-1}${V}) and < 2 ** ${(O+1)*8-1}${V}`:fe=`>= ${g}${V} and <= ${m}${V}`,new q.ERR_OUT_OF_RANGE("value",fe,v)}C(k,F,O)}function G(v,g){if(typeof v!="number")throw new q.ERR_INVALID_ARG_TYPE(g,"number",v)}function Z(v,g,m){throw Math.floor(v)!==v?(G(v,m),new q.ERR_OUT_OF_RANGE(m||"offset","an integer",v)):g<0?new q.ERR_BUFFER_OUT_OF_BOUNDS:new q.ERR_OUT_OF_RANGE(m||"offset",`>= ${m?1:0} and <= ${g}`,v)}const le=/[^+/0-9A-Za-z-_]/g;function J(v){if(v=v.split("=")[0],v=v.trim().replace(le,""),v.length<2)return"";for(;v.length%4!==0;)v=v+"=";return v}function ue(v,g){g=g||1/0;let m;const k=v.length;let F=null;const O=[];for(let V=0;V<k;++V){if(m=v.charCodeAt(V),m>55295&&m<57344){if(!F){if(m>56319){(g-=3)>-1&&O.push(239,191,189);continue}else if(V+1===k){(g-=3)>-1&&O.push(239,191,189);continue}F=m;continue}if(m<56320){(g-=3)>-1&&O.push(239,191,189),F=m;continue}m=(F-55296<<10|m-56320)+65536}else F&&(g-=3)>-1&&O.push(239,191,189);if(F=null,m<128){if((g-=1)<0)break;O.push(m)}else if(m<2048){if((g-=2)<0)break;O.push(m>>6|192,m&63|128)}else if(m<65536){if((g-=3)<0)break;O.push(m>>12|224,m>>6&63|128,m&63|128)}else if(m<1114112){if((g-=4)<0)break;O.push(m>>18|240,m>>12&63|128,m>>6&63|128,m&63|128)}else throw new Error("Invalid code point")}return O}function Zt(v){const g=[];for(let m=0;m<v.length;++m)g.push(v.charCodeAt(m)&255);return g}function li(v,g){let m,k,F;const O=[];for(let V=0;V<v.length&&!((g-=2)<0);++V)m=v.charCodeAt(V),k=m>>8,F=m%256,O.push(F),O.push(k);return O}function ui(v){return t.toByteArray(J(v))}function fi(v,g,m,k){let F;for(F=0;F<k&&!(F+m>=g.length||F>=v.length);++F)g[F+m]=v[F];return F}function St(v,g){return v instanceof g||v!=null&&v.constructor!=null&&v.constructor.name!=null&&v.constructor.name===g.name}function wr(v){return v!==v}const ci=function(){const v="0123456789abcdef",g=new Array(256);for(let m=0;m<16;++m){const k=m*16;for(let F=0;F<16;++F)g[k+F]=v[m]+v[F]}return g}();function Wt(v){return typeof BigInt>"u"?Kn:v}function Kn(){throw new Error("BigInt not supported")}})(pe);const Pw=ve({__proto__:null,default:Xs(pe)},[pe]),ht={},wR=Object.freeze(Object.defineProperty({__proto__:null,default:ht},Symbol.toStringTag,{value:"Module"})),T0=typeof window<"u"?window:typeof self<"u"?self:{fetch:void 0};class Wi{async getBufferFromResponse(t){if(typeof t.buffer=="function")return t.buffer();if(typeof t.arrayBuffer=="function"){const n=await t.arrayBuffer();return pe.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||T0.fetch&&T0.fetch.bind(T0);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:u={}}=a;r<1/0?o.range=`bytes=${i}-${i+r}`:r===1/0&&i!==0&&(o.range=`bytes=${i}-`);const l={...this.baseOverrides,...u,headers:{...o,...u.headers,...this.baseOverrides.headers},method:"GET",redirect:"follow",mode:"cors",signal:s},f=await this.fetch(this.url,l);if(!f.ok)throw new Error(`HTTP ${f.status} ${f.statusText} ${this.url}`);if(f.status===200&&i===0||f.status===206){const c=await this.getBufferFromResponse(f),h=c.copy(t,n,0,Math.min(r,c.length)),d=f.headers.get("content-range"),p=/\/(\d+)$/.exec(d||"");return p&&p[1]&&(this._stat={size:parseInt(p[1],10)}),{bytesRead:h,buffer:t}}throw f.status===200?new Error("${this.url} fetch returned status 200, expected 206"):new Error(`HTTP ${f.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},u=await this.fetch(this.url,s);if(!u)throw new Error("generic-filehandle failed to fetch");if(u.status!==200)throw Object.assign(new Error(`HTTP ${u.status} fetching ${this.url}`),{status:u.status});if(n==="utf8")return u.text();if(n)throw new Error(`unsupported encoding: ${n}`);return this.getBufferFromResponse(u)}async stat(){if(!this._stat){const t=pe.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(){}}function Lw(e){const t=new FileReader;return new Promise((n,r)=>{t.onerror=()=>{t.abort(),r(new Error("problem reading blob"))},t.onabort=()=>{r(new Error("blob reading was aborted"))},t.onload=()=>{t.result&&typeof t.result!="string"?n(t.result):r(new Error("unknown error reading blob"))},t.readAsArrayBuffer(e)})}function vR(e){const t=new FileReader;return new Promise((n,r)=>{t.onerror=()=>{t.abort(),r(new Error("problem reading blob"))},t.onabort=()=>{r(new Error("blob reading was aborted"))},t.onload=()=>{t.result&&typeof t.result=="string"?n(t.result):r(new Error("unknown error reading blob"))},t.readAsText(e)})}class xR{constructor(t){this.blob=t,this.size=t.size}async read(t,n=0,r,i=0){if(!r)return{bytesRead:0,buffer:t};const a=i,o=a+r,s=await Lw(this.blob.slice(a,o)),u=pe.Buffer.from(s);return{bytesRead:u.copy(t,n),buffer:u}}async readFile(t){let n;if(typeof t=="string"?n=t:n=t&&t.encoding,n==="utf8")return vR(this.blob);if(n)throw new Error(`unsupported encoding: ${n}`);const r=await Lw(this.blob);return pe.Buffer.from(r)}async stat(){return{size:this.size}}async close(){}}function Nw(e,t={}){return new Wi(e,t)}function AR(e,t,n,r={}){if(n!==void 0)return n;if(e!==void 0)return Nw(e,r);if(t!==void 0)return new ht(t,r);throw new Error("no url, path, or filehandle provided, cannot open")}const Ks=Object.freeze(Object.defineProperty({__proto__:null,BlobFile:xR,LocalFile:ht,RemoteFile:Wi,fromUrl:Nw,open:AR},Symbol.toStringTag,{value:"Module"}));var lr={};(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 u in s)n(s,u)&&(a[u]=s[u])}}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,u,l){if(o.subarray&&a.subarray){a.set(o.subarray(s,s+u),l);return}for(var f=0;f<u;f++)a[l+f]=o[s+f]},flattenChunks:function(a){var o,s,u,l,f,c;for(u=0,o=0,s=a.length;o<s;o++)u+=a[o].length;for(c=new Uint8Array(u),l=0,o=0,s=a.length;o<s;o++)f=a[o],c.set(f,l),l+=f.length;return c}},i={arraySet:function(a,o,s,u,l){for(var f=0;f<u;f++)a[l+f]=o[s+f]},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)})(lr);var Js={},Hn={},Ya={},ER=lr,_R=4,Ow=0,zw=1,SR=2;function Qa(e){for(var t=e.length;--t>=0;)e[t]=0}var CR=0,Uw=1,kR=2,TR=3,IR=258,I0=29,el=256,tl=el+1+I0,$a=30,B0=19,Gw=2*tl+1,Yi=15,D0=16,BR=7,F0=256,Hw=16,Vw=17,jw=18,R0=[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],zf=[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],DR=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],qw=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],FR=512,ur=new Array((tl+2)*2);Qa(ur);var nl=new Array($a*2);Qa(nl);var rl=new Array(FR);Qa(rl);var il=new Array(IR-TR+1);Qa(il);var M0=new Array(I0);Qa(M0);var Uf=new Array($a);Qa(Uf);function P0(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 Zw,Ww,Yw;function L0(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}function Qw(e){return e<256?rl[e]:rl[256+(e>>>7)]}function al(e,t){e.pending_buf[e.pending++]=t&255,e.pending_buf[e.pending++]=t>>>8&255}function Gt(e,t,n){e.bi_valid>D0-n?(e.bi_buf|=t<<e.bi_valid&65535,al(e,e.bi_buf),e.bi_buf=t>>D0-e.bi_valid,e.bi_valid+=n-D0):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=n)}function Vn(e,t,n){Gt(e,n[t*2],n[t*2+1])}function $w(e,t){var n=0;do n|=e&1,e>>>=1,n<<=1;while(--t>0);return n>>>1}function RR(e){e.bi_valid===16?(al(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 MR(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,u=t.stat_desc.max_length,l,f,c,h,d,p,b=0;for(h=0;h<=Yi;h++)e.bl_count[h]=0;for(n[e.heap[e.heap_max]*2+1]=0,l=e.heap_max+1;l<Gw;l++)f=e.heap[l],h=n[n[f*2+1]*2+1]+1,h>u&&(h=u,b++),n[f*2+1]=h,!(f>r)&&(e.bl_count[h]++,d=0,f>=s&&(d=o[f-s]),p=n[f*2],e.opt_len+=p*(h+d),a&&(e.static_len+=p*(i[f*2+1]+d)));if(b!==0){do{for(h=u-1;e.bl_count[h]===0;)h--;e.bl_count[h]--,e.bl_count[h+1]+=2,e.bl_count[u]--,b-=2}while(b>0);for(h=u;h!==0;h--)for(f=e.bl_count[h];f!==0;)c=e.heap[--l],!(c>r)&&(n[c*2+1]!==h&&(e.opt_len+=(h-n[c*2+1])*n[c*2],n[c*2+1]=h),f--)}}function Xw(e,t,n){var r=new Array(Yi+1),i=0,a,o;for(a=1;a<=Yi;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]=$w(r[s]++,s))}}function PR(){var e,t,n,r,i,a=new Array(Yi+1);for(n=0,r=0;r<I0-1;r++)for(M0[r]=n,e=0;e<1<<R0[r];e++)il[n++]=r;for(il[n-1]=r,i=0,r=0;r<16;r++)for(Uf[r]=i,e=0;e<1<<zf[r];e++)rl[i++]=r;for(i>>=7;r<$a;r++)for(Uf[r]=i<<7,e=0;e<1<<zf[r]-7;e++)rl[256+i++]=r;for(t=0;t<=Yi;t++)a[t]=0;for(e=0;e<=143;)ur[e*2+1]=8,e++,a[8]++;for(;e<=255;)ur[e*2+1]=9,e++,a[9]++;for(;e<=279;)ur[e*2+1]=7,e++,a[7]++;for(;e<=287;)ur[e*2+1]=8,e++,a[8]++;for(Xw(ur,tl+1,a),e=0;e<$a;e++)nl[e*2+1]=5,nl[e*2]=$w(e,5);Zw=new P0(ur,R0,el+1,tl,Yi),Ww=new P0(nl,zf,0,$a,Yi),Yw=new P0(new Array(0),DR,0,B0,BR)}function Kw(e){var t;for(t=0;t<tl;t++)e.dyn_ltree[t*2]=0;for(t=0;t<$a;t++)e.dyn_dtree[t*2]=0;for(t=0;t<B0;t++)e.bl_tree[t*2]=0;e.dyn_ltree[F0*2]=1,e.opt_len=e.static_len=0,e.last_lit=e.matches=0}function Jw(e){e.bi_valid>8?al(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 LR(e,t,n,r){Jw(e),r&&(al(e,n),al(e,~n)),ER.arraySet(e.pending_buf,e.window,t,n,e.pending),e.pending+=n}function ev(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 N0(e,t,n){for(var r=e.heap[n],i=n<<1;i<=e.heap_len&&(i<e.heap_len&&ev(t,e.heap[i+1],e.heap[i],e.depth)&&i++,!ev(t,r,e.heap[i],e.depth));)e.heap[n]=e.heap[i],n=i,i<<=1;e.heap[n]=r}function tv(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?Vn(e,i,t):(o=il[i],Vn(e,o+el+1,t),s=R0[o],s!==0&&(i-=M0[o],Gt(e,i,s)),r--,o=Qw(r),Vn(e,o,n),s=zf[o],s!==0&&(r-=Uf[o],Gt(e,r,s)));while(a<e.last_lit);Vn(e,F0,t)}function O0(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,u=-1,l;for(e.heap_len=0,e.heap_max=Gw,o=0;o<a;o++)n[o*2]!==0?(e.heap[++e.heap_len]=u=o,e.depth[o]=0):n[o*2+1]=0;for(;e.heap_len<2;)l=e.heap[++e.heap_len]=u<2?++u:0,n[l*2]=1,e.depth[l]=0,e.opt_len--,i&&(e.static_len-=r[l*2+1]);for(t.max_code=u,o=e.heap_len>>1;o>=1;o--)N0(e,n,o);l=a;do o=e.heap[1],e.heap[1]=e.heap[e.heap_len--],N0(e,n,1),s=e.heap[1],e.heap[--e.heap_max]=o,e.heap[--e.heap_max]=s,n[l*2]=n[o*2]+n[s*2],e.depth[l]=(e.depth[o]>=e.depth[s]?e.depth[o]:e.depth[s])+1,n[o*2+1]=n[s*2+1]=l,e.heap[1]=l++,N0(e,n,1);while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],MR(e,t),Xw(n,u,e.bl_count)}function nv(e,t,n){var r,i=-1,a,o=t[0*2+1],s=0,u=7,l=4;for(o===0&&(u=138,l=3),t[(n+1)*2+1]=65535,r=0;r<=n;r++)a=o,o=t[(r+1)*2+1],!(++s<u&&a===o)&&(s<l?e.bl_tree[a*2]+=s:a!==0?(a!==i&&e.bl_tree[a*2]++,e.bl_tree[Hw*2]++):s<=10?e.bl_tree[Vw*2]++:e.bl_tree[jw*2]++,s=0,i=a,o===0?(u=138,l=3):a===o?(u=6,l=3):(u=7,l=4))}function rv(e,t,n){var r,i=-1,a,o=t[0*2+1],s=0,u=7,l=4;for(o===0&&(u=138,l=3),r=0;r<=n;r++)if(a=o,o=t[(r+1)*2+1],!(++s<u&&a===o)){if(s<l)do Vn(e,a,e.bl_tree);while(--s!==0);else a!==0?(a!==i&&(Vn(e,a,e.bl_tree),s--),Vn(e,Hw,e.bl_tree),Gt(e,s-3,2)):s<=10?(Vn(e,Vw,e.bl_tree),Gt(e,s-3,3)):(Vn(e,jw,e.bl_tree),Gt(e,s-11,7));s=0,i=a,o===0?(u=138,l=3):a===o?(u=6,l=3):(u=7,l=4)}}function NR(e){var t;for(nv(e,e.dyn_ltree,e.l_desc.max_code),nv(e,e.dyn_dtree,e.d_desc.max_code),O0(e,e.bl_desc),t=B0-1;t>=3&&e.bl_tree[qw[t]*2+1]===0;t--);return e.opt_len+=3*(t+1)+5+5+4,t}function OR(e,t,n,r){var i;for(Gt(e,t-257,5),Gt(e,n-1,5),Gt(e,r-4,4),i=0;i<r;i++)Gt(e,e.bl_tree[qw[i]*2+1],3);rv(e,e.dyn_ltree,t-1),rv(e,e.dyn_dtree,n-1)}function zR(e){var t=4093624447,n;for(n=0;n<=31;n++,t>>>=1)if(t&1&&e.dyn_ltree[n*2]!==0)return Ow;if(e.dyn_ltree[9*2]!==0||e.dyn_ltree[10*2]!==0||e.dyn_ltree[13*2]!==0)return zw;for(n=32;n<el;n++)if(e.dyn_ltree[n*2]!==0)return zw;return Ow}var iv=!1;function UR(e){iv||(PR(),iv=!0),e.l_desc=new L0(e.dyn_ltree,Zw),e.d_desc=new L0(e.dyn_dtree,Ww),e.bl_desc=new L0(e.bl_tree,Yw),e.bi_buf=0,e.bi_valid=0,Kw(e)}function av(e,t,n,r){Gt(e,(CR<<1)+(r?1:0),3),LR(e,t,n,!0)}function GR(e){Gt(e,Uw<<1,3),Vn(e,F0,ur),RR(e)}function HR(e,t,n,r){var i,a,o=0;e.level>0?(e.strm.data_type===SR&&(e.strm.data_type=zR(e)),O0(e,e.l_desc),O0(e,e.d_desc),o=NR(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?av(e,t,n,r):e.strategy===_R||a===i?(Gt(e,(Uw<<1)+(r?1:0),3),tv(e,ur,nl)):(Gt(e,(kR<<1)+(r?1:0),3),OR(e,e.l_desc.max_code+1,e.d_desc.max_code+1,o+1),tv(e,e.dyn_ltree,e.dyn_dtree)),Kw(e),r&&Jw(e)}function VR(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[(il[n]+el+1)*2]++,e.dyn_dtree[Qw(t)*2]++),e.last_lit===e.lit_bufsize-1}Ya._tr_init=UR,Ya._tr_stored_block=av,Ya._tr_flush_block=HR,Ya._tr_tally=VR,Ya._tr_align=GR;function jR(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 ov=jR;function qR(){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 ZR=qR();function WR(e,t,n,r){var i=ZR,a=r+n;e^=-1;for(var o=r;o<a;o++)e=e>>>8^i[(e^t[o])&255];return e^-1}var sv=WR,z0={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"},It=lr,nn=Ya,lv=ov,Zr=sv,YR=z0,Qi=0,QR=1,$R=3,Wr=4,uv=5,jn=0,fv=1,rn=-2,XR=-3,U0=-5,KR=-1,JR=1,Gf=2,e7=3,t7=4,n7=0,r7=2,Hf=8,i7=9,a7=15,o7=8,s7=29,l7=256,G0=l7+1+s7,u7=30,f7=19,c7=2*G0+1,h7=15,he=3,Yr=258,En=Yr+he+1,d7=32,Vf=42,H0=69,jf=73,qf=91,Zf=103,$i=113,ol=666,at=1,sl=2,Xi=3,Xa=4,p7=3;function Qr(e,t){return e.msg=YR[t],t}function cv(e){return(e<<1)-(e>4?9:0)}function $r(e){for(var t=e.length;--t>=0;)e[t]=0}function Xr(e){var t=e.state,n=t.pending;n>e.avail_out&&(n=e.avail_out),n!==0&&(It.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 yt(e,t){nn._tr_flush_block(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,Xr(e.strm)}function we(e,t){e.pending_buf[e.pending++]=t}function ll(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=t&255}function g7(e,t,n,r){var i=e.avail_in;return i>r&&(i=r),i===0?0:(e.avail_in-=i,It.arraySet(t,e.input,e.next_in,i,n),e.state.wrap===1?e.adler=lv(e.adler,t,i,n):e.state.wrap===2&&(e.adler=Zr(e.adler,t,i,n)),e.next_in+=i,e.total_in+=i,i)}function hv(e,t){var n=e.max_chain_length,r=e.strstart,i,a,o=e.prev_length,s=e.nice_match,u=e.strstart>e.w_size-En?e.strstart-(e.w_size-En):0,l=e.window,f=e.w_mask,c=e.prev,h=e.strstart+Yr,d=l[r+o-1],p=l[r+o];e.prev_length>=e.good_match&&(n>>=2),s>e.lookahead&&(s=e.lookahead);do if(i=t,!(l[i+o]!==p||l[i+o-1]!==d||l[i]!==l[r]||l[++i]!==l[r+1])){r+=2,i++;do;while(l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&r<h);if(a=Yr-(h-r),r=h-Yr,a>o){if(e.match_start=t,o=a,a>=s)break;d=l[r+o-1],p=l[r+o]}}while((t=c[t&f])>u&&--n!==0);return o<=e.lookahead?o:e.lookahead}function Ki(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-En)){It.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=g7(e.strm,e.window,e.strstart+e.lookahead,a),e.lookahead+=r,e.lookahead+e.insert>=he)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+he-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<he)););}while(e.lookahead<En&&e.strm.avail_in!==0)}function m7(e,t){var n=65535;for(n>e.pending_buf_size-5&&(n=e.pending_buf_size-5);;){if(e.lookahead<=1){if(Ki(e),e.lookahead===0&&t===Qi)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,yt(e,!1),e.strm.avail_out===0)||e.strstart-e.block_start>=e.w_size-En&&(yt(e,!1),e.strm.avail_out===0))return at}return e.insert=0,t===Wr?(yt(e,!0),e.strm.avail_out===0?Xi:Xa):(e.strstart>e.block_start&&(yt(e,!1),e.strm.avail_out===0),at)}function V0(e,t){for(var n,r;;){if(e.lookahead<En){if(Ki(e),e.lookahead<En&&t===Qi)return at;if(e.lookahead===0)break}if(n=0,e.lookahead>=he&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+he-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-En&&(e.match_length=hv(e,n)),e.match_length>=he)if(r=nn._tr_tally(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=(e.ins_h<<e.hash_shift^e.window[e.strstart+he-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=nn._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(r&&(yt(e,!1),e.strm.avail_out===0))return at}return e.insert=e.strstart<he-1?e.strstart:he-1,t===Wr?(yt(e,!0),e.strm.avail_out===0?Xi:Xa):e.last_lit&&(yt(e,!1),e.strm.avail_out===0)?at:sl}function Ka(e,t){for(var n,r,i;;){if(e.lookahead<En){if(Ki(e),e.lookahead<En&&t===Qi)return at;if(e.lookahead===0)break}if(n=0,e.lookahead>=he&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+he-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=he-1,n!==0&&e.prev_length<e.max_lazy_match&&e.strstart-n<=e.w_size-En&&(e.match_length=hv(e,n),e.match_length<=5&&(e.strategy===JR||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=nn._tr_tally(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=(e.ins_h<<e.hash_shift^e.window[e.strstart+he-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=he-1,e.strstart++,r&&(yt(e,!1),e.strm.avail_out===0))return at}else if(e.match_available){if(r=nn._tr_tally(e,0,e.window[e.strstart-1]),r&&yt(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=nn._tr_tally(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<he-1?e.strstart:he-1,t===Wr?(yt(e,!0),e.strm.avail_out===0?Xi:Xa):e.last_lit&&(yt(e,!1),e.strm.avail_out===0)?at:sl}function b7(e,t){for(var n,r,i,a,o=e.window;;){if(e.lookahead<=Yr){if(Ki(e),e.lookahead<=Yr&&t===Qi)return at;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+Yr;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=Yr-(a-i),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=he?(n=nn._tr_tally(e,1,e.match_length-he),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(n=nn._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),n&&(yt(e,!1),e.strm.avail_out===0))return at}return e.insert=0,t===Wr?(yt(e,!0),e.strm.avail_out===0?Xi:Xa):e.last_lit&&(yt(e,!1),e.strm.avail_out===0)?at:sl}function y7(e,t){for(var n;;){if(e.lookahead===0&&(Ki(e),e.lookahead===0)){if(t===Qi)return at;break}if(e.match_length=0,n=nn._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,n&&(yt(e,!1),e.strm.avail_out===0))return at}return e.insert=0,t===Wr?(yt(e,!0),e.strm.avail_out===0?Xi:Xa):e.last_lit&&(yt(e,!1),e.strm.avail_out===0)?at:sl}function qn(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 Ja;Ja=[new qn(0,0,0,0,m7),new qn(4,4,8,4,V0),new qn(4,5,16,8,V0),new qn(4,6,32,32,V0),new qn(4,4,16,16,Ka),new qn(8,16,32,32,Ka),new qn(8,16,128,128,Ka),new qn(8,32,128,256,Ka),new qn(32,128,258,1024,Ka),new qn(32,258,258,4096,Ka)];function w7(e){e.window_size=2*e.w_size,$r(e.head),e.max_lazy_match=Ja[e.level].max_lazy,e.good_match=Ja[e.level].good_length,e.nice_match=Ja[e.level].nice_length,e.max_chain_length=Ja[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 v7(){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=Hf,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 It.Buf16(c7*2),this.dyn_dtree=new It.Buf16((2*u7+1)*2),this.bl_tree=new It.Buf16((2*f7+1)*2),$r(this.dyn_ltree),$r(this.dyn_dtree),$r(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new It.Buf16(h7+1),this.heap=new It.Buf16(2*G0+1),$r(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new It.Buf16(2*G0+1),$r(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 dv(e){var t;return!e||!e.state?Qr(e,rn):(e.total_in=e.total_out=0,e.data_type=r7,t=e.state,t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap?Vf:$i,e.adler=t.wrap===2?0:1,t.last_flush=Qi,nn._tr_init(t),jn)}function pv(e){var t=dv(e);return t===jn&&w7(e.state),t}function x7(e,t){return!e||!e.state||e.state.wrap!==2?rn:(e.state.gzhead=t,jn)}function gv(e,t,n,r,i,a){if(!e)return rn;var o=1;if(t===KR&&(t=6),r<0?(o=0,r=-r):r>15&&(o=2,r-=16),i<1||i>i7||n!==Hf||r<8||r>15||t<0||t>9||a<0||a>t7)return Qr(e,rn);r===8&&(r=9);var s=new v7;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+he-1)/he),s.window=new It.Buf8(s.w_size*2),s.head=new It.Buf16(s.hash_size),s.prev=new It.Buf16(s.w_size),s.lit_bufsize=1<<i+6,s.pending_buf_size=s.lit_bufsize*4,s.pending_buf=new It.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,pv(e)}function A7(e,t){return gv(e,t,Hf,a7,o7,n7)}function E7(e,t){var n,r,i,a;if(!e||!e.state||t>uv||t<0)return e?Qr(e,rn):rn;if(r=e.state,!e.output||!e.input&&e.avail_in!==0||r.status===ol&&t!==Wr)return Qr(e,e.avail_out===0?U0:rn);if(r.strm=e,n=r.last_flush,r.last_flush=t,r.status===Vf)if(r.wrap===2)e.adler=0,we(r,31),we(r,139),we(r,8),r.gzhead?(we(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)),we(r,r.gzhead.time&255),we(r,r.gzhead.time>>8&255),we(r,r.gzhead.time>>16&255),we(r,r.gzhead.time>>24&255),we(r,r.level===9?2:r.strategy>=Gf||r.level<2?4:0),we(r,r.gzhead.os&255),r.gzhead.extra&&r.gzhead.extra.length&&(we(r,r.gzhead.extra.length&255),we(r,r.gzhead.extra.length>>8&255)),r.gzhead.hcrc&&(e.adler=Zr(e.adler,r.pending_buf,r.pending,0)),r.gzindex=0,r.status=H0):(we(r,0),we(r,0),we(r,0),we(r,0),we(r,0),we(r,r.level===9?2:r.strategy>=Gf||r.level<2?4:0),we(r,p7),r.status=$i);else{var o=Hf+(r.w_bits-8<<4)<<8,s=-1;r.strategy>=Gf||r.level<2?s=0:r.level<6?s=1:r.level===6?s=2:s=3,o|=s<<6,r.strstart!==0&&(o|=d7),o+=31-o%31,r.status=$i,ll(r,o),r.strstart!==0&&(ll(r,e.adler>>>16),ll(r,e.adler&65535)),e.adler=1}if(r.status===H0)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=Zr(e.adler,r.pending_buf,r.pending-i,i)),Xr(e),i=r.pending,r.pending===r.pending_buf_size));)we(r,r.gzhead.extra[r.gzindex]&255),r.gzindex++;r.gzhead.hcrc&&r.pending>i&&(e.adler=Zr(e.adler,r.pending_buf,r.pending-i,i)),r.gzindex===r.gzhead.extra.length&&(r.gzindex=0,r.status=jf)}else r.status=jf;if(r.status===jf)if(r.gzhead.name){i=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>i&&(e.adler=Zr(e.adler,r.pending_buf,r.pending-i,i)),Xr(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,we(r,a)}while(a!==0);r.gzhead.hcrc&&r.pending>i&&(e.adler=Zr(e.adler,r.pending_buf,r.pending-i,i)),a===0&&(r.gzindex=0,r.status=qf)}else r.status=qf;if(r.status===qf)if(r.gzhead.comment){i=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>i&&(e.adler=Zr(e.adler,r.pending_buf,r.pending-i,i)),Xr(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,we(r,a)}while(a!==0);r.gzhead.hcrc&&r.pending>i&&(e.adler=Zr(e.adler,r.pending_buf,r.pending-i,i)),a===0&&(r.status=Zf)}else r.status=Zf;if(r.status===Zf&&(r.gzhead.hcrc?(r.pending+2>r.pending_buf_size&&Xr(e),r.pending+2<=r.pending_buf_size&&(we(r,e.adler&255),we(r,e.adler>>8&255),e.adler=0,r.status=$i)):r.status=$i),r.pending!==0){if(Xr(e),e.avail_out===0)return r.last_flush=-1,jn}else if(e.avail_in===0&&cv(t)<=cv(n)&&t!==Wr)return Qr(e,U0);if(r.status===ol&&e.avail_in!==0)return Qr(e,U0);if(e.avail_in!==0||r.lookahead!==0||t!==Qi&&r.status!==ol){var u=r.strategy===Gf?y7(r,t):r.strategy===e7?b7(r,t):Ja[r.level].func(r,t);if((u===Xi||u===Xa)&&(r.status=ol),u===at||u===Xi)return e.avail_out===0&&(r.last_flush=-1),jn;if(u===sl&&(t===QR?nn._tr_align(r):t!==uv&&(nn._tr_stored_block(r,0,0,!1),t===$R&&($r(r.head),r.lookahead===0&&(r.strstart=0,r.block_start=0,r.insert=0))),Xr(e),e.avail_out===0))return r.last_flush=-1,jn}return t!==Wr?jn:r.wrap<=0?fv:(r.wrap===2?(we(r,e.adler&255),we(r,e.adler>>8&255),we(r,e.adler>>16&255),we(r,e.adler>>24&255),we(r,e.total_in&255),we(r,e.total_in>>8&255),we(r,e.total_in>>16&255),we(r,e.total_in>>24&255)):(ll(r,e.adler>>>16),ll(r,e.adler&65535)),Xr(e),r.wrap>0&&(r.wrap=-r.wrap),r.pending!==0?jn:fv)}function _7(e){var t;return!e||!e.state?rn:(t=e.state.status,t!==Vf&&t!==H0&&t!==jf&&t!==qf&&t!==Zf&&t!==$i&&t!==ol?Qr(e,rn):(e.state=null,t===$i?Qr(e,XR):jn))}function S7(e,t){var n=t.length,r,i,a,o,s,u,l,f;if(!e||!e.state||(r=e.state,o=r.wrap,o===2||o===1&&r.status!==Vf||r.lookahead))return rn;for(o===1&&(e.adler=lv(e.adler,t,n,0)),r.wrap=0,n>=r.w_size&&(o===0&&($r(r.head),r.strstart=0,r.block_start=0,r.insert=0),f=new It.Buf8(r.w_size),It.arraySet(f,t,n-r.w_size,r.w_size,0),t=f,n=r.w_size),s=e.avail_in,u=e.next_in,l=e.input,e.avail_in=n,e.next_in=0,e.input=t,Ki(r);r.lookahead>=he;){i=r.strstart,a=r.lookahead-(he-1);do r.ins_h=(r.ins_h<<r.hash_shift^r.window[i+he-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=he-1,Ki(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=u,e.input=l,e.avail_in=s,r.wrap=o,jn}Hn.deflateInit=A7,Hn.deflateInit2=gv,Hn.deflateReset=pv,Hn.deflateResetKeep=dv,Hn.deflateSetHeader=x7,Hn.deflate=E7,Hn.deflateEnd=_7,Hn.deflateSetDictionary=S7,Hn.deflateInfo="pako deflate (from Nodeca project)";var Ji={},Wf=lr,mv=!0,bv=!0;try{String.fromCharCode.apply(null,[0])}catch{mv=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{bv=!1}for(var ul=new Wf.Buf8(256),Kr=0;Kr<256;Kr++)ul[Kr]=Kr>=252?6:Kr>=248?5:Kr>=240?4:Kr>=224?3:Kr>=192?2:1;ul[254]=ul[254]=1,Ji.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 Wf.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 yv(e,t){if(t<65534&&(e.subarray&&bv||!e.subarray&&mv))return String.fromCharCode.apply(null,Wf.shrinkBuf(e,t));for(var n="",r=0;r<t;r++)n+=String.fromCharCode(e[r]);return n}Ji.buf2binstring=function(e){return yv(e,e.length)},Ji.binstring2buf=function(e){for(var t=new Wf.Buf8(e.length),n=0,r=t.length;n<r;n++)t[n]=e.charCodeAt(n);return t},Ji.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=ul[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 yv(s,r)},Ji.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+ul[e[n]]>t?n:t};function C7(){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 wv=C7,fl=Hn,cl=lr,j0=Ji,q0=z0,k7=wv,vv=Object.prototype.toString,T7=0,Z0=4,eo=0,xv=1,Av=2,I7=-1,B7=0,D7=8;function ea(e){if(!(this instanceof ea))return new ea(e);this.options=cl.assign({level:I7,method:D7,chunkSize:16384,windowBits:15,memLevel:8,strategy:B7,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 k7,this.strm.avail_out=0;var n=fl.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(n!==eo)throw new Error(q0[n]);if(t.header&&fl.deflateSetHeader(this.strm,t.header),t.dictionary){var r;if(typeof t.dictionary=="string"?r=j0.string2buf(t.dictionary):vv.call(t.dictionary)==="[object ArrayBuffer]"?r=new Uint8Array(t.dictionary):r=t.dictionary,n=fl.deflateSetDictionary(this.strm,r),n!==eo)throw new Error(q0[n]);this._dict_set=!0}}ea.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?Z0:T7,typeof e=="string"?n.input=j0.string2buf(e):vv.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 cl.Buf8(r),n.next_out=0,n.avail_out=r),i=fl.deflate(n,a),i!==xv&&i!==eo)return this.onEnd(i),this.ended=!0,!1;(n.avail_out===0||n.avail_in===0&&(a===Z0||a===Av))&&(this.options.to==="string"?this.onData(j0.buf2binstring(cl.shrinkBuf(n.output,n.next_out))):this.onData(cl.shrinkBuf(n.output,n.next_out)))}while((n.avail_in>0||n.avail_out===0)&&i!==xv);return a===Z0?(i=fl.deflateEnd(this.strm),this.onEnd(i),this.ended=!0,i===eo):(a===Av&&(this.onEnd(eo),n.avail_out=0),!0)},ea.prototype.onData=function(e){this.chunks.push(e)},ea.prototype.onEnd=function(e){e===eo&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=cl.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function W0(e,t){var n=new ea(t);if(n.push(e,!0),n.err)throw n.msg||q0[n.err];return n.result}function F7(e,t){return t=t||{},t.raw=!0,W0(e,t)}function R7(e,t){return t=t||{},t.gzip=!0,W0(e,t)}Js.Deflate=ea,Js.deflate=W0,Js.deflateRaw=F7,Js.gzip=R7;var hl={},_n={},Yf=30,M7=12,P7=function(t,n){var r,i,a,o,s,u,l,f,c,h,d,p,b,y,w,A,S,_,T,I,B,R,L,j,M;r=t.state,i=t.next_in,j=t.input,a=i+(t.avail_in-5),o=t.next_out,M=t.output,s=o-(n-t.avail_out),u=o+(t.avail_out-257),l=r.dmax,f=r.wsize,c=r.whave,h=r.wnext,d=r.window,p=r.hold,b=r.bits,y=r.lencode,w=r.distcode,A=(1<<r.lenbits)-1,S=(1<<r.distbits)-1;e:do{b<15&&(p+=j[i++]<<b,b+=8,p+=j[i++]<<b,b+=8),_=y[p&A];t:for(;;){if(T=_>>>24,p>>>=T,b-=T,T=_>>>16&255,T===0)M[o++]=_&65535;else if(T&16){I=_&65535,T&=15,T&&(b<T&&(p+=j[i++]<<b,b+=8),I+=p&(1<<T)-1,p>>>=T,b-=T),b<15&&(p+=j[i++]<<b,b+=8,p+=j[i++]<<b,b+=8),_=w[p&S];n:for(;;){if(T=_>>>24,p>>>=T,b-=T,T=_>>>16&255,T&16){if(B=_&65535,T&=15,b<T&&(p+=j[i++]<<b,b+=8,b<T&&(p+=j[i++]<<b,b+=8)),B+=p&(1<<T)-1,B>l){t.msg="invalid distance too far back",r.mode=Yf;break e}if(p>>>=T,b-=T,T=o-s,B>T){if(T=B-T,T>c&&r.sane){t.msg="invalid distance too far back",r.mode=Yf;break e}if(R=0,L=d,h===0){if(R+=f-T,T<I){I-=T;do M[o++]=d[R++];while(--T);R=o-B,L=M}}else if(h<T){if(R+=f+h-T,T-=h,T<I){I-=T;do M[o++]=d[R++];while(--T);if(R=0,h<I){T=h,I-=T;do M[o++]=d[R++];while(--T);R=o-B,L=M}}}else if(R+=h-T,T<I){I-=T;do M[o++]=d[R++];while(--T);R=o-B,L=M}for(;I>2;)M[o++]=L[R++],M[o++]=L[R++],M[o++]=L[R++],I-=3;I&&(M[o++]=L[R++],I>1&&(M[o++]=L[R++]))}else{R=o-B;do M[o++]=M[R++],M[o++]=M[R++],M[o++]=M[R++],I-=3;while(I>2);I&&(M[o++]=M[R++],I>1&&(M[o++]=M[R++]))}}else if(T&64){t.msg="invalid distance code",r.mode=Yf;break e}else{_=w[(_&65535)+(p&(1<<T)-1)];continue n}break}}else if(T&64)if(T&32){r.mode=M7;break e}else{t.msg="invalid literal/length code",r.mode=Yf;break e}else{_=y[(_&65535)+(p&(1<<T)-1)];continue t}break}}while(i<a&&o<u);I=b>>3,i-=I,b-=I<<3,p&=(1<<b)-1,t.next_in=i,t.next_out=o,t.avail_in=i<a?5+(a-i):5-(i-a),t.avail_out=o<u?257+(u-o):257-(o-u),r.hold=p,r.bits=b},Ev=lr,to=15,_v=852,Sv=592,Cv=0,Y0=1,kv=2,L7=[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],N7=[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],O7=[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],z7=[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],U7=function(t,n,r,i,a,o,s,u){var l=u.bits,f=0,c=0,h=0,d=0,p=0,b=0,y=0,w=0,A=0,S=0,_,T,I,B,R,L=null,j=0,M,ie=new Ev.Buf16(to+1),se=new Ev.Buf16(to+1),ge=null,Ie=0,$e,De,Ke;for(f=0;f<=to;f++)ie[f]=0;for(c=0;c<i;c++)ie[n[r+c]]++;for(p=l,d=to;d>=1&&ie[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,u.bits=1,0;for(h=1;h<d&&ie[h]===0;h++);for(p<h&&(p=h),w=1,f=1;f<=to;f++)if(w<<=1,w-=ie[f],w<0)return-1;if(w>0&&(t===Cv||d!==1))return-1;for(se[1]=0,f=1;f<to;f++)se[f+1]=se[f]+ie[f];for(c=0;c<i;c++)n[r+c]!==0&&(s[se[n[r+c]]++]=c);if(t===Cv?(L=ge=s,M=19):t===Y0?(L=L7,j-=257,ge=N7,Ie-=257,M=256):(L=O7,ge=z7,M=-1),S=0,c=0,f=h,R=o,b=p,y=0,I=-1,A=1<<p,B=A-1,t===Y0&&A>_v||t===kv&&A>Sv)return 1;for(;;){$e=f-y,s[c]<M?(De=0,Ke=s[c]):s[c]>M?(De=ge[Ie+s[c]],Ke=L[j+s[c]]):(De=32+64,Ke=0),_=1<<f-y,T=1<<b,h=T;do T-=_,a[R+(S>>y)+T]=$e<<24|De<<16|Ke|0;while(T!==0);for(_=1<<f-1;S&_;)_>>=1;if(_!==0?(S&=_-1,S+=_):S=0,c++,--ie[f]===0){if(f===d)break;f=n[r+s[c]]}if(f>p&&(S&B)!==I){for(y===0&&(y=p),R+=h,b=f-y,w=1<<b;b+y<d&&(w-=ie[b+y],!(w<=0));)b++,w<<=1;if(A+=1<<b,t===Y0&&A>_v||t===kv&&A>Sv)return 1;I=S&B,a[I]=p<<24|b<<16|R-o|0}}return S!==0&&(a[R+S]=f-y<<24|64<<16|0),u.bits=p,0},Qt=lr,Q0=ov,Zn=sv,G7=P7,dl=U7,H7=0,Tv=1,Iv=2,Bv=4,V7=5,Qf=6,ta=0,j7=1,q7=2,an=-2,Dv=-3,Fv=-4,Z7=-5,Rv=8,Mv=1,Pv=2,Lv=3,Nv=4,Ov=5,zv=6,Uv=7,Gv=8,Hv=9,Vv=10,$f=11,fr=12,$0=13,jv=14,X0=15,qv=16,Zv=17,Wv=18,Yv=19,Xf=20,Kf=21,Qv=22,$v=23,Xv=24,Kv=25,Jv=26,K0=27,ex=28,tx=29,je=30,nx=31,W7=32,Y7=852,Q7=592,$7=15,X7=$7;function rx(e){return(e>>>24&255)+(e>>>8&65280)+((e&65280)<<8)+((e&255)<<24)}function K7(){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 Qt.Buf16(320),this.work=new Qt.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function ix(e){var t;return!e||!e.state?an:(t=e.state,e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=t.wrap&1),t.mode=Mv,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Qt.Buf32(Y7),t.distcode=t.distdyn=new Qt.Buf32(Q7),t.sane=1,t.back=-1,ta)}function ax(e){var t;return!e||!e.state?an:(t=e.state,t.wsize=0,t.whave=0,t.wnext=0,ix(e))}function ox(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))?an:(r.window!==null&&r.wbits!==t&&(r.window=null),r.wrap=n,r.wbits=t,ax(e))}function sx(e,t){var n,r;return e?(r=new K7,e.state=r,r.window=null,n=ox(e,t),n!==ta&&(e.state=null),n):an}function J7(e){return sx(e,X7)}var lx=!0,J0,ep;function eM(e){if(lx){var t;for(J0=new Qt.Buf32(512),ep=new Qt.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(dl(Tv,e.lens,0,288,J0,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;dl(Iv,e.lens,0,32,ep,0,e.work,{bits:5}),lx=!1}e.lencode=J0,e.lenbits=9,e.distcode=ep,e.distbits=5}function ux(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 Qt.Buf8(a.wsize)),r>=a.wsize?(Qt.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),Qt.arraySet(a.window,t,n-r,i,a.wnext),r-=i,r?(Qt.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 tM(e,t){var n,r,i,a,o,s,u,l,f,c,h,d,p,b,y=0,w,A,S,_,T,I,B,R,L=new Qt.Buf8(4),j,M,ie=[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 an;n=e.state,n.mode===fr&&(n.mode=$0),o=e.next_out,i=e.output,u=e.avail_out,a=e.next_in,r=e.input,s=e.avail_in,l=n.hold,f=n.bits,c=s,h=u,R=ta;e:for(;;)switch(n.mode){case Mv:if(n.wrap===0){n.mode=$0;break}for(;f<16;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}if(n.wrap&2&&l===35615){n.check=0,L[0]=l&255,L[1]=l>>>8&255,n.check=Zn(n.check,L,2,0),l=0,f=0,n.mode=Pv;break}if(n.flags=0,n.head&&(n.head.done=!1),!(n.wrap&1)||(((l&255)<<8)+(l>>8))%31){e.msg="incorrect header check",n.mode=je;break}if((l&15)!==Rv){e.msg="unknown compression method",n.mode=je;break}if(l>>>=4,f-=4,B=(l&15)+8,n.wbits===0)n.wbits=B;else if(B>n.wbits){e.msg="invalid window size",n.mode=je;break}n.dmax=1<<B,e.adler=n.check=1,n.mode=l&512?Vv:fr,l=0,f=0;break;case Pv:for(;f<16;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}if(n.flags=l,(n.flags&255)!==Rv){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=l>>8&1),n.flags&512&&(L[0]=l&255,L[1]=l>>>8&255,n.check=Zn(n.check,L,2,0)),l=0,f=0,n.mode=Lv;case Lv:for(;f<32;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}n.head&&(n.head.time=l),n.flags&512&&(L[0]=l&255,L[1]=l>>>8&255,L[2]=l>>>16&255,L[3]=l>>>24&255,n.check=Zn(n.check,L,4,0)),l=0,f=0,n.mode=Nv;case Nv:for(;f<16;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}n.head&&(n.head.xflags=l&255,n.head.os=l>>8),n.flags&512&&(L[0]=l&255,L[1]=l>>>8&255,n.check=Zn(n.check,L,2,0)),l=0,f=0,n.mode=Ov;case Ov:if(n.flags&1024){for(;f<16;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}n.length=l,n.head&&(n.head.extra_len=l),n.flags&512&&(L[0]=l&255,L[1]=l>>>8&255,n.check=Zn(n.check,L,2,0)),l=0,f=0}else n.head&&(n.head.extra=null);n.mode=zv;case zv:if(n.flags&1024&&(d=n.length,d>s&&(d=s),d&&(n.head&&(B=n.head.extra_len-n.length,n.head.extra||(n.head.extra=new Array(n.head.extra_len)),Qt.arraySet(n.head.extra,r,a,d,B)),n.flags&512&&(n.check=Zn(n.check,r,d,a)),s-=d,a+=d,n.length-=d),n.length))break e;n.length=0,n.mode=Uv;case Uv:if(n.flags&2048){if(s===0)break e;d=0;do B=r[a+d++],n.head&&B&&n.length<65536&&(n.head.name+=String.fromCharCode(B));while(B&&d<s);if(n.flags&512&&(n.check=Zn(n.check,r,d,a)),s-=d,a+=d,B)break e}else n.head&&(n.head.name=null);n.length=0,n.mode=Gv;case Gv:if(n.flags&4096){if(s===0)break e;d=0;do B=r[a+d++],n.head&&B&&n.length<65536&&(n.head.comment+=String.fromCharCode(B));while(B&&d<s);if(n.flags&512&&(n.check=Zn(n.check,r,d,a)),s-=d,a+=d,B)break e}else n.head&&(n.head.comment=null);n.mode=Hv;case Hv:if(n.flags&512){for(;f<16;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}if(l!==(n.check&65535)){e.msg="header crc mismatch",n.mode=je;break}l=0,f=0}n.head&&(n.head.hcrc=n.flags>>9&1,n.head.done=!0),e.adler=n.check=0,n.mode=fr;break;case Vv:for(;f<32;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}e.adler=n.check=rx(l),l=0,f=0,n.mode=$f;case $f:if(n.havedict===0)return e.next_out=o,e.avail_out=u,e.next_in=a,e.avail_in=s,n.hold=l,n.bits=f,q7;e.adler=n.check=1,n.mode=fr;case fr:if(t===V7||t===Qf)break e;case $0:if(n.last){l>>>=f&7,f-=f&7,n.mode=K0;break}for(;f<3;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}switch(n.last=l&1,l>>>=1,f-=1,l&3){case 0:n.mode=jv;break;case 1:if(eM(n),n.mode=Xf,t===Qf){l>>>=2,f-=2;break e}break;case 2:n.mode=Zv;break;case 3:e.msg="invalid block type",n.mode=je}l>>>=2,f-=2;break;case jv:for(l>>>=f&7,f-=f&7;f<32;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}if((l&65535)!==(l>>>16^65535)){e.msg="invalid stored block lengths",n.mode=je;break}if(n.length=l&65535,l=0,f=0,n.mode=X0,t===Qf)break e;case X0:n.mode=qv;case qv:if(d=n.length,d){if(d>s&&(d=s),d>u&&(d=u),d===0)break e;Qt.arraySet(i,r,a,d,o),s-=d,a+=d,u-=d,o+=d,n.length-=d;break}n.mode=fr;break;case Zv:for(;f<14;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}if(n.nlen=(l&31)+257,l>>>=5,f-=5,n.ndist=(l&31)+1,l>>>=5,f-=5,n.ncode=(l&15)+4,l>>>=4,f-=4,n.nlen>286||n.ndist>30){e.msg="too many length or distance symbols",n.mode=je;break}n.have=0,n.mode=Wv;case Wv:for(;n.have<n.ncode;){for(;f<3;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}n.lens[ie[n.have++]]=l&7,l>>>=3,f-=3}for(;n.have<19;)n.lens[ie[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,j={bits:n.lenbits},R=dl(H7,n.lens,0,19,n.lencode,0,n.work,j),n.lenbits=j.bits,R){e.msg="invalid code lengths set",n.mode=je;break}n.have=0,n.mode=Yv;case Yv:for(;n.have<n.nlen+n.ndist;){for(;y=n.lencode[l&(1<<n.lenbits)-1],w=y>>>24,A=y>>>16&255,S=y&65535,!(w<=f);){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}if(S<16)l>>>=w,f-=w,n.lens[n.have++]=S;else{if(S===16){for(M=w+2;f<M;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}if(l>>>=w,f-=w,n.have===0){e.msg="invalid bit length repeat",n.mode=je;break}B=n.lens[n.have-1],d=3+(l&3),l>>>=2,f-=2}else if(S===17){for(M=w+3;f<M;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}l>>>=w,f-=w,B=0,d=3+(l&7),l>>>=3,f-=3}else{for(M=w+7;f<M;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}l>>>=w,f-=w,B=0,d=11+(l&127),l>>>=7,f-=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++]=B}}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,j={bits:n.lenbits},R=dl(Tv,n.lens,0,n.nlen,n.lencode,0,n.work,j),n.lenbits=j.bits,R){e.msg="invalid literal/lengths set",n.mode=je;break}if(n.distbits=6,n.distcode=n.distdyn,j={bits:n.distbits},R=dl(Iv,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,j),n.distbits=j.bits,R){e.msg="invalid distances set",n.mode=je;break}if(n.mode=Xf,t===Qf)break e;case Xf:n.mode=Kf;case Kf:if(s>=6&&u>=258){e.next_out=o,e.avail_out=u,e.next_in=a,e.avail_in=s,n.hold=l,n.bits=f,G7(e,h),o=e.next_out,i=e.output,u=e.avail_out,a=e.next_in,r=e.input,s=e.avail_in,l=n.hold,f=n.bits,n.mode===fr&&(n.back=-1);break}for(n.back=0;y=n.lencode[l&(1<<n.lenbits)-1],w=y>>>24,A=y>>>16&255,S=y&65535,!(w<=f);){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}if(A&&!(A&240)){for(_=w,T=A,I=S;y=n.lencode[I+((l&(1<<_+T)-1)>>_)],w=y>>>24,A=y>>>16&255,S=y&65535,!(_+w<=f);){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}l>>>=_,f-=_,n.back+=_}if(l>>>=w,f-=w,n.back+=w,n.length=S,A===0){n.mode=Jv;break}if(A&32){n.back=-1,n.mode=fr;break}if(A&64){e.msg="invalid literal/length code",n.mode=je;break}n.extra=A&15,n.mode=Qv;case Qv:if(n.extra){for(M=n.extra;f<M;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}n.length+=l&(1<<n.extra)-1,l>>>=n.extra,f-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=$v;case $v:for(;y=n.distcode[l&(1<<n.distbits)-1],w=y>>>24,A=y>>>16&255,S=y&65535,!(w<=f);){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}if(!(A&240)){for(_=w,T=A,I=S;y=n.distcode[I+((l&(1<<_+T)-1)>>_)],w=y>>>24,A=y>>>16&255,S=y&65535,!(_+w<=f);){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}l>>>=_,f-=_,n.back+=_}if(l>>>=w,f-=w,n.back+=w,A&64){e.msg="invalid distance code",n.mode=je;break}n.offset=S,n.extra=A&15,n.mode=Xv;case Xv:if(n.extra){for(M=n.extra;f<M;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}n.offset+=l&(1<<n.extra)-1,l>>>=n.extra,f-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){e.msg="invalid distance too far back",n.mode=je;break}n.mode=Kv;case Kv:if(u===0)break e;if(d=h-u,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),b=n.window}else b=i,p=o-n.offset,d=n.length;d>u&&(d=u),u-=d,n.length-=d;do i[o++]=b[p++];while(--d);n.length===0&&(n.mode=Kf);break;case Jv:if(u===0)break e;i[o++]=n.length,u--,n.mode=Kf;break;case K0:if(n.wrap){for(;f<32;){if(s===0)break e;s--,l|=r[a++]<<f,f+=8}if(h-=u,e.total_out+=h,n.total+=h,h&&(e.adler=n.check=n.flags?Zn(n.check,i,h,o-h):Q0(n.check,i,h,o-h)),h=u,(n.flags?l:rx(l))!==n.check){e.msg="incorrect data check",n.mode=je;break}l=0,f=0}n.mode=ex;case ex:if(n.wrap&&n.flags){for(;f<32;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}if(l!==(n.total&4294967295)){e.msg="incorrect length check",n.mode=je;break}l=0,f=0}n.mode=tx;case tx:R=j7;break e;case je:R=Dv;break e;case nx:return Fv;case W7:default:return an}return e.next_out=o,e.avail_out=u,e.next_in=a,e.avail_in=s,n.hold=l,n.bits=f,(n.wsize||h!==e.avail_out&&n.mode<je&&(n.mode<K0||t!==Bv))&&ux(e,e.output,e.next_out,h-e.avail_out),c-=e.avail_in,h-=e.avail_out,e.total_in+=c,e.total_out+=h,n.total+=h,n.wrap&&h&&(e.adler=n.check=n.flags?Zn(n.check,i,h,e.next_out-h):Q0(n.check,i,h,e.next_out-h)),e.data_type=n.bits+(n.last?64:0)+(n.mode===fr?128:0)+(n.mode===Xf||n.mode===X0?256:0),(c===0&&h===0||t===Bv)&&R===ta&&(R=Z7),R}function nM(e){if(!e||!e.state)return an;var t=e.state;return t.window&&(t.window=null),e.state=null,ta}function rM(e,t){var n;return!e||!e.state||(n=e.state,!(n.wrap&2))?an:(n.head=t,t.done=!1,ta)}function iM(e,t){var n=t.length,r,i,a;return!e||!e.state||(r=e.state,r.wrap!==0&&r.mode!==$f)?an:r.mode===$f&&(i=1,i=Q0(i,t,n,0),i!==r.check)?Dv:(a=ux(e,t,n,n),a?(r.mode=nx,Fv):(r.havedict=1,ta))}_n.inflateReset=ax,_n.inflateReset2=ox,_n.inflateResetKeep=ix,_n.inflateInit=J7,_n.inflateInit2=sx,_n.inflate=tM,_n.inflateEnd=nM,_n.inflateGetHeader=rM,_n.inflateSetDictionary=iM,_n.inflateInfo="pako inflate (from Nodeca project)";var fx={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 aM(){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 oM=aM,no=_n,pl=lr,Jf=Ji,tt=fx,tp=z0,sM=wv,lM=oM,cx=Object.prototype.toString;function na(e){if(!(this instanceof na))return new na(e);this.options=pl.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 sM,this.strm.avail_out=0;var n=no.inflateInit2(this.strm,t.windowBits);if(n!==tt.Z_OK)throw new Error(tp[n]);if(this.header=new lM,no.inflateGetHeader(this.strm,this.header),t.dictionary&&(typeof t.dictionary=="string"?t.dictionary=Jf.string2buf(t.dictionary):cx.call(t.dictionary)==="[object ArrayBuffer]"&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(n=no.inflateSetDictionary(this.strm,t.dictionary),n!==tt.Z_OK)))throw new Error(tp[n])}na.prototype.push=function(e,t){var n=this.strm,r=this.options.chunkSize,i=this.options.dictionary,a,o,s,u,l,f=!1;if(this.ended)return!1;o=t===~~t?t:t===!0?tt.Z_FINISH:tt.Z_NO_FLUSH,typeof e=="string"?n.input=Jf.binstring2buf(e):cx.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 pl.Buf8(r),n.next_out=0,n.avail_out=r),a=no.inflate(n,tt.Z_NO_FLUSH),a===tt.Z_NEED_DICT&&i&&(a=no.inflateSetDictionary(this.strm,i)),a===tt.Z_BUF_ERROR&&f===!0&&(a=tt.Z_OK,f=!1),a!==tt.Z_STREAM_END&&a!==tt.Z_OK)return this.onEnd(a),this.ended=!0,!1;n.next_out&&(n.avail_out===0||a===tt.Z_STREAM_END||n.avail_in===0&&(o===tt.Z_FINISH||o===tt.Z_SYNC_FLUSH))&&(this.options.to==="string"?(s=Jf.utf8border(n.output,n.next_out),u=n.next_out-s,l=Jf.buf2string(n.output,s),n.next_out=u,n.avail_out=r-u,u&&pl.arraySet(n.output,n.output,s,u,0),this.onData(l)):this.onData(pl.shrinkBuf(n.output,n.next_out))),n.avail_in===0&&n.avail_out===0&&(f=!0)}while((n.avail_in>0||n.avail_out===0)&&a!==tt.Z_STREAM_END);return a===tt.Z_STREAM_END&&(o=tt.Z_FINISH),o===tt.Z_FINISH?(a=no.inflateEnd(this.strm),this.onEnd(a),this.ended=!0,a===tt.Z_OK):(o===tt.Z_SYNC_FLUSH&&(this.onEnd(tt.Z_OK),n.avail_out=0),!0)},na.prototype.onData=function(e){this.chunks.push(e)},na.prototype.onEnd=function(e){e===tt.Z_OK&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=pl.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function np(e,t){var n=new na(t);if(n.push(e,!0),n.err)throw n.msg||tp[n.err];return n.result}function uM(e,t){return t=t||{},t.raw=!0,np(e,t)}hl.Inflate=na,hl.inflate=np,hl.inflateRaw=uM,hl.ungzip=np;var fM=lr.assign,cM=Js,hM=hl,dM=fx,hx={};fM(hx,cM,hM,dM);var ec=hx;async function Jr(e){try{let t,n=0,r=0;const i=[];let a=0,o;do{const u=e.subarray(n);if(o=new ec.Inflate,{strm:t}=o,o.push(u,ec.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 u=0,l=0;u<i.length;u++)s.set(i[u],l),l+=i[u].length;return pe.Buffer.from(s)}catch(t){throw`${t}`.match(/incorrect header check/)?new Error("problem decompressing block: incorrect gzip header check"):t}}async function dx(e,t){try{let n;const{minv:r,maxv:i}=t;let a=r.blockPosition,o=r.dataPosition;const s=[],u=[],l=[];let f=0,c=0;do{const p=e.subarray(a-r.blockPosition),b=new ec.Inflate;if({strm:n}=b,b.push(p,ec.Z_SYNC_FLUSH),b.err)throw new Error(b.msg);const y=b.result;s.push(y);let w=y.length;u.push(a),l.push(o),s.length===1&&r.dataPosition&&(s[0]=s[0].subarray(r.dataPosition),w=s[0].length);const A=a;if(a+=n.next_in,o+=w,A>=i.blockPosition){s[c]=s[c].subarray(0,i.blockPosition===r.blockPosition?i.dataPosition-r.dataPosition+1:i.dataPosition+1),u.push(a),l.push(o),f+=s[c].length;break}f+=s[c].length,c++}while(n.avail_in);const h=new Uint8Array(f);for(let p=0,b=0;p<s.length;p++)h.set(s[p],b),b+=s[p].length;return{buffer:pe.Buffer.from(h),cpositions:u,dpositions:l}}catch(n){throw`${n}`.match(/incorrect header check/)?new Error("problem decompressing block: incorrect gzip header check"):n}}var pM=Le,on=null;try{on=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 Ht(e){return(e&&e.__isLong__)===!0}Le.isLong=Ht;var px={},gx={};function ra(e,t){var n,r,i;return t?(e>>>=0,(i=0<=e&&e<256)&&(r=gx[e],r)?r:(n=Ne(e,(e|0)<0?-1:0,!0),i&&(gx[e]=n),n)):(e|=0,(i=-128<=e&&e<128)&&(r=px[e],r)?r:(n=Ne(e,e<0?-1:0,!1),i&&(px[e]=n),n))}Le.fromInt=ra;function sn(e,t){if(isNaN(e))return t?ia:ln;if(t){if(e<0)return ia;if(e>=bx)return Ax}else{if(e<=-yx)return Vt;if(e+1>=yx)return xx}return e<0?sn(-e,t).neg():Ne(e%ro|0,e/ro|0,t)}Le.fromNumber=sn;function Ne(e,t,n){return new Le(e,t,n)}Le.fromBits=Ne;var tc=Math.pow;function rp(e,t,n){if(e.length===0)throw Error("empty string");if(e==="NaN"||e==="Infinity"||e==="+Infinity"||e==="-Infinity")return ln;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 rp(e.substring(1),t,n).neg();for(var i=sn(tc(n,8)),a=ln,o=0;o<e.length;o+=8){var s=Math.min(8,e.length-o),u=parseInt(e.substring(o,o+s),n);if(s<8){var l=sn(tc(n,s));a=a.mul(l).add(sn(u))}else a=a.mul(i),a=a.add(sn(u))}return a.unsigned=t,a}Le.fromString=rp;function Sn(e,t){return typeof e=="number"?sn(e,t):typeof e=="string"?rp(e,t):Ne(e.low,e.high,typeof t=="boolean"?t:e.unsigned)}Le.fromValue=Sn;var mx=65536,gM=1<<24,ro=mx*mx,bx=ro*ro,yx=bx/2,wx=ra(gM),ln=ra(0);Le.ZERO=ln;var ia=ra(0,!0);Le.UZERO=ia;var io=ra(1);Le.ONE=io;var vx=ra(1,!0);Le.UONE=vx;var ip=ra(-1);Le.NEG_ONE=ip;var xx=Ne(-1,2147483647,!1);Le.MAX_VALUE=xx;var Ax=Ne(-1,-1,!0);Le.MAX_UNSIGNED_VALUE=Ax;var Vt=Ne(0,-2147483648,!1);Le.MIN_VALUE=Vt;var Q=Le.prototype;Q.toInt=function(){return this.unsigned?this.low>>>0:this.low},Q.toNumber=function(){return this.unsigned?(this.high>>>0)*ro+(this.low>>>0):this.high*ro+(this.low>>>0)},Q.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(Vt)){var n=sn(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=sn(tc(t,6),this.unsigned),o=this,s="";;){var u=o.div(a),l=o.sub(u.mul(a)).toInt()>>>0,f=l.toString(t);if(o=u,o.isZero())return f+s;for(;f.length<6;)f="0"+f;s=""+f+s}},Q.getHighBits=function(){return this.high},Q.getHighBitsUnsigned=function(){return this.high>>>0},Q.getLowBits=function(){return this.low},Q.getLowBitsUnsigned=function(){return this.low>>>0},Q.getNumBitsAbs=function(){if(this.isNegative())return this.eq(Vt)?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},Q.isZero=function(){return this.high===0&&this.low===0},Q.eqz=Q.isZero,Q.isNegative=function(){return!this.unsigned&&this.high<0},Q.isPositive=function(){return this.unsigned||this.high>=0},Q.isOdd=function(){return(this.low&1)===1},Q.isEven=function(){return(this.low&1)===0},Q.equals=function(t){return Ht(t)||(t=Sn(t)),this.unsigned!==t.unsigned&&this.high>>>31===1&&t.high>>>31===1?!1:this.high===t.high&&this.low===t.low},Q.eq=Q.equals,Q.notEquals=function(t){return!this.eq(t)},Q.neq=Q.notEquals,Q.ne=Q.notEquals,Q.lessThan=function(t){return this.comp(t)<0},Q.lt=Q.lessThan,Q.lessThanOrEqual=function(t){return this.comp(t)<=0},Q.lte=Q.lessThanOrEqual,Q.le=Q.lessThanOrEqual,Q.greaterThan=function(t){return this.comp(t)>0},Q.gt=Q.greaterThan,Q.greaterThanOrEqual=function(t){return this.comp(t)>=0},Q.gte=Q.greaterThanOrEqual,Q.ge=Q.greaterThanOrEqual,Q.compare=function(t){if(Ht(t)||(t=Sn(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},Q.comp=Q.compare,Q.negate=function(){return!this.unsigned&&this.eq(Vt)?Vt:this.not().add(io)},Q.neg=Q.negate,Q.add=function(t){Ht(t)||(t=Sn(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,u=t.low>>>16,l=t.low&65535,f=0,c=0,h=0,d=0;return d+=a+l,h+=d>>>16,d&=65535,h+=i+u,c+=h>>>16,h&=65535,c+=r+s,f+=c>>>16,c&=65535,f+=n+o,f&=65535,Ne(h<<16|d,f<<16|c,this.unsigned)},Q.subtract=function(t){return Ht(t)||(t=Sn(t)),this.add(t.neg())},Q.sub=Q.subtract,Q.multiply=function(t){if(this.isZero())return ln;if(Ht(t)||(t=Sn(t)),on){var n=on.mul(this.low,this.high,t.low,t.high);return Ne(n,on.get_high(),this.unsigned)}if(t.isZero())return ln;if(this.eq(Vt))return t.isOdd()?Vt:ln;if(t.eq(Vt))return this.isOdd()?Vt: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(wx)&&t.lt(wx))return sn(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,u=t.high&65535,l=t.low>>>16,f=t.low&65535,c=0,h=0,d=0,p=0;return p+=o*f,d+=p>>>16,p&=65535,d+=a*f,h+=d>>>16,d&=65535,d+=o*l,h+=d>>>16,d&=65535,h+=i*f,c+=h>>>16,h&=65535,h+=a*l,c+=h>>>16,h&=65535,h+=o*u,c+=h>>>16,h&=65535,c+=r*f+i*l+a*u+o*s,c&=65535,Ne(d<<16|p,c<<16|h,this.unsigned)},Q.mul=Q.multiply,Q.divide=function(t){if(Ht(t)||(t=Sn(t)),t.isZero())throw Error("division by zero");if(on){if(!this.unsigned&&this.high===-2147483648&&t.low===-1&&t.high===-1)return this;var n=(this.unsigned?on.div_u:on.div_s)(this.low,this.high,t.low,t.high);return Ne(n,on.get_high(),this.unsigned)}if(this.isZero())return this.unsigned?ia:ln;var r,i,a;if(this.unsigned){if(t.unsigned||(t=t.toUnsigned()),t.gt(this))return ia;if(t.gt(this.shru(1)))return vx;a=ia}else{if(this.eq(Vt)){if(t.eq(io)||t.eq(ip))return Vt;if(t.eq(Vt))return io;var o=this.shr(1);return r=o.div(t).shl(1),r.eq(ln)?t.isNegative()?io:ip:(i=this.sub(t.mul(r)),a=r.add(i.div(t)),a)}else if(t.eq(Vt))return this.unsigned?ia: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),u=s<=48?1:tc(2,s-48),l=sn(r),f=l.mul(t);f.isNegative()||f.gt(i);)r-=u,l=sn(r,this.unsigned),f=l.mul(t);l.isZero()&&(l=io),a=a.add(l),i=i.sub(f)}return a},Q.div=Q.divide,Q.modulo=function(t){if(Ht(t)||(t=Sn(t)),on){var n=(this.unsigned?on.rem_u:on.rem_s)(this.low,this.high,t.low,t.high);return Ne(n,on.get_high(),this.unsigned)}return this.sub(this.div(t).mul(t))},Q.mod=Q.modulo,Q.rem=Q.modulo,Q.not=function(){return Ne(~this.low,~this.high,this.unsigned)},Q.and=function(t){return Ht(t)||(t=Sn(t)),Ne(this.low&t.low,this.high&t.high,this.unsigned)},Q.or=function(t){return Ht(t)||(t=Sn(t)),Ne(this.low|t.low,this.high|t.high,this.unsigned)},Q.xor=function(t){return Ht(t)||(t=Sn(t)),Ne(this.low^t.low,this.high^t.high,this.unsigned)},Q.shiftLeft=function(t){return Ht(t)&&(t=t.toInt()),(t&=63)===0?this:t<32?Ne(this.low<<t,this.high<<t|this.low>>>32-t,this.unsigned):Ne(0,this.low<<t-32,this.unsigned)},Q.shl=Q.shiftLeft,Q.shiftRight=function(t){return Ht(t)&&(t=t.toInt()),(t&=63)===0?this:t<32?Ne(this.low>>>t|this.high<<32-t,this.high>>t,this.unsigned):Ne(this.high>>t-32,this.high>=0?0:-1,this.unsigned)},Q.shr=Q.shiftRight,Q.shiftRightUnsigned=function(t){if(Ht(t)&&(t=t.toInt()),t&=63,t===0)return this;var n=this.high;if(t<32){var r=this.low;return Ne(r>>>t|n<<32-t,n>>>t,this.unsigned)}else return t===32?Ne(n,0,this.unsigned):Ne(n>>>t-32,0,this.unsigned)},Q.shru=Q.shiftRightUnsigned,Q.shr_u=Q.shiftRightUnsigned,Q.toSigned=function(){return this.unsigned?Ne(this.low,this.high,!1):this},Q.toUnsigned=function(){return this.unsigned?this:Ne(this.low,this.high,!0)},Q.toBytes=function(t){return t?this.toBytesLE():this.toBytesBE()},Q.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]},Q.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)};const nc=Xs(pM),rc=1;class mM{constructor({filehandle:t,path:n}){if(t)this.filehandle=t;else if(n)this.filehandle=new ht(n);else throw new TypeError("either filehandle or path must be defined")}_readLongWithOverflow(t,n=0,r=!0){const i=nc.fromBytesLE(t.slice(n,n+8),r);if(i.greaterThan(Number.MAX_SAFE_INTEGER)||i.lessThan(Number.MIN_SAFE_INTEGER))throw new TypeError("integer overflow");return i.toNumber()}_getIndex(){return this.index||(this.index=this._readIndex()),this.index}async _readIndex(){let t=pe.Buffer.allocUnsafe(8);await this.filehandle.read(t,0,8,0);const n=this._readLongWithOverflow(t,0,!0);if(!n)return[[0,0]];const r=new Array(n+1);r[0]=[0,0];const i=8*2*n;if(i>Number.MAX_SAFE_INTEGER)throw new TypeError("integer overflow");t=pe.Buffer.allocUnsafe(i),await this.filehandle.read(t,0,i,8);for(let a=0;a<n;a+=1){const o=this._readLongWithOverflow(t,a*16),s=this._readLongWithOverflow(t,a*16+8);r[a+1]=[o,s]}return r}async getLastBlock(){const t=await this._getIndex();if(t.length)return t[t.length-1]}async getRelevantBlocksForRead(t,n){const r=n+t;if(t===0)return[];const i=await this._getIndex(),a=[],o=(h,d)=>{const p=h[rc],b=d?d[rc]:1/0;return p<=n&&b>n?0:p<n?-1:1};let s=0,u=i.length-1,l=Math.floor(i.length/2),f=o(i[l],i[l+1]);for(;f!==0;)f>0?u=l-1:f<0&&(s=l+1),l=Math.ceil((u-s)/2)+s,f=o(i[l],i[l+1]);a.push(i[l]);let c=l+1;for(;c<i.length&&(a.push(i[c]),!(i[c][rc]>=r));c+=1);return a[a.length-1][rc]<r&&a.push([]),a}}class Ex{constructor({filehandle:t,path:n,gziFilehandle:r,gziPath:i}){if(t)this.filehandle=t;else if(n)this.filehandle=new ht(n);else throw new TypeError("either filehandle or path must be defined");if(!r&&!i&&!n)throw new TypeError("either gziFilehandle or gziPath must be defined");this.gzi=new mM({filehandle:r,path:!r&&!i&&n?i:`${n}.gzi`})}async stat(){const t=await this.filehandle.stat();return Object.assign(t,{size:await this.getUncompressedFileSize(),blocks:void 0,blksize:void 0})}async getUncompressedFileSize(){const[,t]=await this.gzi.getLastBlock(),{size:n}=await this.filehandle.stat(),r=pe.Buffer.allocUnsafe(4),{bytesRead:i}=await this.filehandle.read(r,0,4,n-28-4);if(i!==4)throw new Error("read error");const a=r.readUInt32LE(0);return t+a}async _readAndUncompressBlock(t,[n],[r]){let i=r;i||(i=(await this.filehandle.stat()).size);const a=i-n;return await this.filehandle.read(t,0,a,n),await Jr(t.slice(0,a))}async read(t,n,r,i){const a=await this.gzi.getRelevantBlocksForRead(r,i),o=pe.Buffer.allocUnsafe(32768*2);let s=n,u=0;for(let l=0;l<a.length-1;l+=1){const f=await this._readAndUncompressBlock(o,a[l],a[l+1]),[,c]=a[l],h=c>=i?0:i-c,d=Math.min(i+r,c+f.length)-c;h>=0&&h<f.length&&(f.copy(t,s,h,d),s+=d-h,u+=d-h)}return{bytesRead:u,buffer:t}}}function _x(e,t){return e.offset+e.lineBytes*Math.floor(t/e.lineLength)+t%e.lineLength}async function bM(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 Sx{constructor({fasta:t,fai:n,path:r,faiPath:i,chunkSizeLimit:a=1e6}){if(t)this.fasta=t;else if(r)this.fasta=new ht(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 ht(i);else if(r)this.fai=new ht(`${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=bM(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=_x(t,n),s=_x(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 u=Buffer.allocUnsafe(s);return await this.fasta.read(u,0,s,o,i),u.toString("utf8").replace(/\s+/g,"")}}class yM extends Sx{constructor({fasta:t,path:n,fai:r,faiPath:i,gzi:a,gziPath:o,chunkSizeLimit:s}){super({fasta:t,path:n,fai:r,faiPath:i,chunkSizeLimit:s}),t&&a?this.fasta=new Ex({filehandle:t,gziFilehandle:a}):n&&o&&(this.fasta=new Ex({path:n,gziPath:o}))}}function Cx(e){return e.split(">").filter(t=>/\S/.test(t)).map(t=>{const[n,...r]=t.split(`
|
|
338
|
-
`),[i,...a]=n.split(" "),o=r.join("").replace(/\s/g,"");return{id:i,description:a.join(" "),sequence:o}})}class
|
|
339
|
-
`}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 Cn=new Map,aa="___parser_",kn={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},ac={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"},oc={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};let Te=class Dn{constructor(){this.varName="",this.type="",this.options={},this.endian="be",this.useContextVariables=!1}static start(){return new Dn}primitiveGenerateN(t,n){const r=ac[t],i=oc[t];n.pushCode(`${n.generateVariable(this.varName)} = dataView.get${r}(offset, ${i});`),n.pushCode(`offset += ${kn[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 Cn.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"&&!Cn.has(n.type)&&!(n.type in kn))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"&&!Cn.has(a)&&!(a in kn))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 Dn)&&!Cn.has(n.type))throw new Error("type must be a known parser name or a Parser object.");if(!(n.type instanceof Dn)&&!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 kn)&&!Cn.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 SM(t,this.useContextVariables);return n.pushCode("var dataView = new DataView(buffer.buffer, buffer.byteOffset, buffer.length);"),this.alias?(this.addAliasedCode(n),n.pushCode(`return ${aa+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 ${aa+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=Cn.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(kn).indexOf(this.type)>=0)t=kn[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=kn[this.options.type]:this.options.type instanceof Dn&&(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 Dn;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=(f=0)=>{let c=0;for(let h=f;h<t.bitFields.length;h++){const d=t.bitFields[h].options.length;if(c+d>32)break;c+=d}return c},a=f=>(f<=8?(t.pushCode(`${r} = dataView.getUint8(offset);`),f=8):f<=16?(t.pushCode(`${r} = dataView.getUint16(offset);`),f=16):f<=24?(t.pushCode(`${r} = (dataView.getUint16(offset) << 8) | dataView.getUint8(offset + 2);`),f=24):(t.pushCode(`${r} = dataView.getUint32(offset);`),f=32),t.pushCode(`offset += ${f/8};`),f);let o=0;const s=this.endian==="be";let u=0,l=0;t.bitFields.forEach((f,c)=>{let h=f.options.length;if(h>l){if(l){const b=-1>>>32-l;t.pushCode(`${f.varName} = (${r} & 0x${b.toString(16)}) << ${h-l};`),h-=l}o=0,l=u=a(i(c)-l)}const d=s?u-o-h:o,p=-1>>>32-h;t.pushCode(`${f.varName} ${h<f.options.length?"|=":"="} ${r} >> ${d} & 0x${p.toString(16)};`),f.options.length===32&&t.pushCode(`${f.varName} >>>= 0`),f.options.assert&&f.generateAssert(t),f.options.formatter&&f.generateFormatter(t,f.varName,f.options.formatter),o+=h,l-=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 u=`offset - ${r} < ${s} ? offset - 1 : offset`;t.pushCode(a?`${n} = Array.from(buffer.subarray(${r}, ${u}), ${o}).join('');`:`${n} = new TextDecoder('${i}').decode(buffer.subarray(${r}, ${u}));`)}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(),u=this.options.key,l=typeof u=="string";if(l?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(Cn.get(i)){const f=t.generateTmpVariable();if(t.pushCode(`var ${f} = ${aa+i}(offset, {`),t.useContextVariables){const c=t.generateVariable();t.pushCode(`$parent: ${c},`),t.pushCode(`$root: ${c}.$root,`),!this.options.readUntil&&r===void 0&&t.pushCode(`$index: ${n} - ${a},`)}t.pushCode("});"),t.pushCode(`var ${s} = ${f}.result; offset = ${f}.offset;`),i!==this.alias&&t.addReference(i)}else{const f=ac[i],c=oc[i];t.pushCode(`var ${s} = dataView.get${f}(offset, ${c});`),t.pushCode(`offset += ${kn[i]};`)}else if(i instanceof Dn){t.pushCode(`var ${s} = {};`);const f=t.generateVariable();t.pushScope(s),t.useContextVariables&&(t.pushCode(`${s}.$parent = ${f};`),t.pushCode(`${s}.$root = ${f}.$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(l?t.pushCode(`${o}[${s}.${u}] = ${s};`):t.pushCode(`${o}.push(${s});`),t.pushCode("}"),typeof this.options.readUntil=="function"){const f=this.options.readUntil,c=t.addImport(f);t.pushCode(`while (!${c}.call(${t.generateVariable()}, ${s}, buffer.subarray(offset)));`)}}generateChoiceCase(t,n,r){if(typeof r=="string"){const i=t.generateVariable(this.varName);if(Cn.has(r)){const a=t.generateTmpVariable();t.pushCode(`var ${a} = ${aa+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=ac[r],o=oc[r];t.pushCode(`${i} = dataView.get${a}(offset, ${o});`),t.pushCode(`offset += ${kn[r]}`)}}else r instanceof Dn&&(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 Dn){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(Cn.has(this.options.type)){const r=t.generateTmpVariable();if(t.pushCode(`var ${r} = ${aa+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 u=this.options.readUntil,l=t.generateTmpVariable(),f=t.generateTmpVariable();t.pushCode(`var ${l} = offset;`),t.pushCode(`var ${f} = 0;`),t.pushCode("while (offset < buffer.length) {"),t.pushCode(`${f} = dataView.getUint8(offset);`);const c=t.addImport(u);t.pushCode(`if (${c}.call(${t.generateVariable()}, ${f}, buffer.subarray(offset))) break;`),t.pushCode("offset += 1;"),t.pushCode("}"),t.pushCode(`${r} = buffer.subarray(${l}, offset);`)}else if(this.options.readUntil==="eof")t.pushCode(`${r} = buffer.subarray(offset);`);else{const u=t.generateOption(this.options.length);t.pushCode(`${r} = buffer.subarray(offset, offset + ${u});`),t.pushCode(`offset += ${u};`)}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 Dn)this.varName&&t.pushCode(`${n} = {};`),t.pushPath(this.varName),this.options.type.generate(t),t.popPath(this.varName);else if(Cn.has(this.options.type)){const u=t.generateTmpVariable();t.pushCode(`var ${u} = ${aa+this.options.type}(0);`),t.pushCode(`${n} = ${u}.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 Dn){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(Cn.has(this.options.type)){const o=t.generateTmpVariable();if(t.pushCode(`var ${o} = ${aa+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(kn).indexOf(this.options.type)>=0){const o=ac[n],s=oc[n];t.pushCode(`${a} = dataView.get${o}(offset, ${s});`),t.pushCode(`offset += ${kn[n]};`)}t.pushCode(`offset = ${i};`)}generateSaveOffset(t){const n=t.generateVariable(this.varName);t.pushCode(`${n} = offset`)}};var kx={},ap={},oa={},gl={};Object.defineProperty(gl,"__esModule",{value:!0});function op(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Tx(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 sp(e,t,n){return t&&Tx(e.prototype,t),n&&Tx(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function CM(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&&lp(e,t)}function ao(e){return ao=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},ao(e)}function lp(e,t){return lp=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,i){return r.__proto__=i,r},lp(e,t)}function kM(){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 ml(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function TM(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 ml(e)}function IM(e){var t=kM();return function(){var r=ao(e),i;if(t){var a=ao(this).constructor;i=Reflect.construct(r,arguments,a)}else i=r.apply(this,arguments);return TM(this,i)}}function BM(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&(e=ao(e),e!==null););return e}function sc(){return typeof Reflect<"u"&&Reflect.get?sc=Reflect.get.bind():sc=function(t,n,r){var i=BM(t,n);if(i){var a=Object.getOwnPropertyDescriptor(i,n);return a.get?a.get.call(arguments.length<3?t:r):a.value}},sc.apply(this,arguments)}var Ix=function(){function e(){op(this,e),Object.defineProperty(this,"listeners",{value:{},writable:!0,configurable:!0})}return sp(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(u){Promise.resolve().then(function(){throw u})}s.options&&s.options.once&&this.removeEventListener(n.type,s.callback)}return!n.defaultPrevented}}}]),e}(),up=function(e){CM(n,e);var t=IM(n);function n(){var r;return op(this,n),r=t.call(this),r.listeners||Ix.call(ml(r)),Object.defineProperty(ml(r),"aborted",{value:!1,writable:!0,configurable:!0}),Object.defineProperty(ml(r),"onabort",{value:null,writable:!0,configurable:!0}),Object.defineProperty(ml(r),"reason",{value:void 0,writable:!0,configurable:!0}),r}return sp(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)),sc(ao(n.prototype),"dispatchEvent",this).call(this,i)}}]),n}(Ix),Bx=function(){function e(){op(this,e),Object.defineProperty(this,"signal",{value:new up,writable:!0,configurable:!0})}return sp(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&&(Bx.prototype[Symbol.toStringTag]="AbortController",up.prototype[Symbol.toStringTag]="AbortSignal");function DM(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 FM(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(!DM({fetch:n,Request:i,AbortController:a,__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL:s}))return{fetch:n,Request:u};var u=i;(u&&!u.prototype.hasOwnProperty("signal")||s)&&(u=function(h,d){var p;d&&d.signal&&(p=d.signal,delete d.signal);var b=new i(h,d);return p&&Object.defineProperty(b,"signal",{writable:!1,enumerable:!1,configurable:!0,value:p}),b},u.prototype=i.prototype);var l=n,f=function(h,d){var p=u&&u.prototype.isPrototypeOf(h)?h.signal:d?d.signal:void 0;if(p){var b;try{b=new DOMException("Aborted","AbortError")}catch{b=new Error("Aborted"),b.name="AbortError"}if(p.aborted)return Promise.reject(b);var y=new Promise(function(w,A){p.addEventListener("abort",function(){return A(b)},{once:!0})});return d&&d.signal&&delete d.signal,Promise.race([y,l(h,d)])}return l(h,d)};return{fetch:f,Request:u}}gl.AbortController=Bx,gl.AbortSignal=up,gl.abortableFetch=FM,Object.defineProperty(oa,"__esModule",{value:!0}),oa.AbortSignal=oa.AbortController=void 0;const Dx=gl;var lc=function(){if(typeof self<"u")return self;if(typeof window<"u")return window;if(typeof globalThis<"u")return globalThis;throw new Error("unable to locate global object")};let RM=typeof lc().AbortController>"u"?Dx.AbortController:lc().AbortController;oa.AbortController=RM;let MM=typeof lc().AbortController>"u"?Dx.AbortSignal:lc().AbortSignal;oa.AbortSignal=MM;var fp={};Object.defineProperty(fp,"__esModule",{value:!0});const PM=oa;class LM{}class NM{constructor(){this.signals=new Set,this.abortController=new PM.AbortController}addSignal(t=new LM){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()}}fp.default=NM;var cp={};Object.defineProperty(cp,"__esModule",{value:!0});class OM{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)})}}cp.default=OM;var Fx=Nf&&Nf.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(ap,"__esModule",{value:!0});const zM=oa,UM=Fx(fp),GM=Fx(cp);class uc{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 UM.default,o=new GM.default;o.addCallback(i);const s={aborter:a,promise:this.fillCallback(n,a.signal,u=>{o.callback(u)}),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(u=>{throw console.error(u),u}),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 zM.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),uc.checkSinglePromise(a.promise,r)):(this.fill(t,n,r,i),uc.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}}ap.default=uc;var HM=Nf&&Nf.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(kx,"__esModule",{value:!0});const VM=HM(ap);var fc=kx.default=VM.default;class jM{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}}var qM=jM;const cc=Xs(qM);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 u=0,l=0;const f=[];for(;u<o&&l<s;){n=i[u],r=a[l];const c=Math.max(n.min(),r.min()),h=Math.min(n.max(),r.max());h>=c&&f.push(new ei(c,h)),n.max()>r.max()?l+=1:u+=1}if(f.length===0)throw new Error("found range of length 0");return f.length===1?f[0]:new ei(f)}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 ZM=4,Rx=0,Mx=1,WM=2;function oo(e){let t=e.length;for(;--t>=0;)e[t]=0}const YM=0,Px=1,QM=2,$M=3,XM=258,hp=29,bl=256,yl=bl+1+hp,so=30,dp=19,Lx=2*yl+1,sa=15,pp=16,KM=7,gp=256,Nx=16,Ox=17,zx=18,mp=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]),hc=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]),JM=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),Ux=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),eP=512,cr=new Array((yl+2)*2);oo(cr);const wl=new Array(so*2);oo(wl);const vl=new Array(eP);oo(vl);const xl=new Array(XM-$M+1);oo(xl);const bp=new Array(hp);oo(bp);const dc=new Array(so);oo(dc);function yp(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 Gx,Hx,Vx;function wp(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}const jx=e=>e<256?vl[e]:vl[256+(e>>>7)],Al=(e,t)=>{e.pending_buf[e.pending++]=t&255,e.pending_buf[e.pending++]=t>>>8&255},jt=(e,t,n)=>{e.bi_valid>pp-n?(e.bi_buf|=t<<e.bi_valid&65535,Al(e,e.bi_buf),e.bi_buf=t>>pp-e.bi_valid,e.bi_valid+=n-pp):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=n)},Wn=(e,t,n)=>{jt(e,n[t*2],n[t*2+1])},qx=(e,t)=>{let n=0;do n|=e&1,e>>>=1,n<<=1;while(--t>0);return n>>>1},tP=e=>{e.bi_valid===16?(Al(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)},nP=(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,u=t.stat_desc.max_length;let l,f,c,h,d,p,b=0;for(h=0;h<=sa;h++)e.bl_count[h]=0;for(n[e.heap[e.heap_max]*2+1]=0,l=e.heap_max+1;l<Lx;l++)f=e.heap[l],h=n[n[f*2+1]*2+1]+1,h>u&&(h=u,b++),n[f*2+1]=h,!(f>r)&&(e.bl_count[h]++,d=0,f>=s&&(d=o[f-s]),p=n[f*2],e.opt_len+=p*(h+d),a&&(e.static_len+=p*(i[f*2+1]+d)));if(b!==0){do{for(h=u-1;e.bl_count[h]===0;)h--;e.bl_count[h]--,e.bl_count[h+1]+=2,e.bl_count[u]--,b-=2}while(b>0);for(h=u;h!==0;h--)for(f=e.bl_count[h];f!==0;)c=e.heap[--l],!(c>r)&&(n[c*2+1]!==h&&(e.opt_len+=(h-n[c*2+1])*n[c*2],n[c*2+1]=h),f--)}},Zx=(e,t,n)=>{const r=new Array(sa+1);let i=0,a,o;for(a=1;a<=sa;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]=qx(r[s]++,s))}},rP=()=>{let e,t,n,r,i;const a=new Array(sa+1);for(n=0,r=0;r<hp-1;r++)for(bp[r]=n,e=0;e<1<<mp[r];e++)xl[n++]=r;for(xl[n-1]=r,i=0,r=0;r<16;r++)for(dc[r]=i,e=0;e<1<<hc[r];e++)vl[i++]=r;for(i>>=7;r<so;r++)for(dc[r]=i<<7,e=0;e<1<<hc[r]-7;e++)vl[256+i++]=r;for(t=0;t<=sa;t++)a[t]=0;for(e=0;e<=143;)cr[e*2+1]=8,e++,a[8]++;for(;e<=255;)cr[e*2+1]=9,e++,a[9]++;for(;e<=279;)cr[e*2+1]=7,e++,a[7]++;for(;e<=287;)cr[e*2+1]=8,e++,a[8]++;for(Zx(cr,yl+1,a),e=0;e<so;e++)wl[e*2+1]=5,wl[e*2]=qx(e,5);Gx=new yp(cr,mp,bl+1,yl,sa),Hx=new yp(wl,hc,0,so,sa),Vx=new yp(new Array(0),JM,0,dp,KM)},Wx=e=>{let t;for(t=0;t<yl;t++)e.dyn_ltree[t*2]=0;for(t=0;t<so;t++)e.dyn_dtree[t*2]=0;for(t=0;t<dp;t++)e.bl_tree[t*2]=0;e.dyn_ltree[gp*2]=1,e.opt_len=e.static_len=0,e.sym_next=e.matches=0},Yx=e=>{e.bi_valid>8?Al(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0},Qx=(e,t,n,r)=>{const i=t*2,a=n*2;return e[i]<e[a]||e[i]===e[a]&&r[t]<=r[n]},vp=(e,t,n)=>{const r=e.heap[n];let i=n<<1;for(;i<=e.heap_len&&(i<e.heap_len&&Qx(t,e.heap[i+1],e.heap[i],e.depth)&&i++,!Qx(t,r,e.heap[i],e.depth));)e.heap[n]=e.heap[i],n=i,i<<=1;e.heap[n]=r},$x=(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?Wn(e,i,t):(o=xl[i],Wn(e,o+bl+1,t),s=mp[o],s!==0&&(i-=bp[o],jt(e,i,s)),r--,o=jx(r),Wn(e,o,n),s=hc[o],s!==0&&(r-=dc[o],jt(e,r,s)));while(a<e.sym_next);Wn(e,gp,t)},xp=(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,u=-1,l;for(e.heap_len=0,e.heap_max=Lx,o=0;o<a;o++)n[o*2]!==0?(e.heap[++e.heap_len]=u=o,e.depth[o]=0):n[o*2+1]=0;for(;e.heap_len<2;)l=e.heap[++e.heap_len]=u<2?++u:0,n[l*2]=1,e.depth[l]=0,e.opt_len--,i&&(e.static_len-=r[l*2+1]);for(t.max_code=u,o=e.heap_len>>1;o>=1;o--)vp(e,n,o);l=a;do o=e.heap[1],e.heap[1]=e.heap[e.heap_len--],vp(e,n,1),s=e.heap[1],e.heap[--e.heap_max]=o,e.heap[--e.heap_max]=s,n[l*2]=n[o*2]+n[s*2],e.depth[l]=(e.depth[o]>=e.depth[s]?e.depth[o]:e.depth[s])+1,n[o*2+1]=n[s*2+1]=l,e.heap[1]=l++,vp(e,n,1);while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],nP(e,t),Zx(n,u,e.bl_count)},Xx=(e,t,n)=>{let r,i=-1,a,o=t[0*2+1],s=0,u=7,l=4;for(o===0&&(u=138,l=3),t[(n+1)*2+1]=65535,r=0;r<=n;r++)a=o,o=t[(r+1)*2+1],!(++s<u&&a===o)&&(s<l?e.bl_tree[a*2]+=s:a!==0?(a!==i&&e.bl_tree[a*2]++,e.bl_tree[Nx*2]++):s<=10?e.bl_tree[Ox*2]++:e.bl_tree[zx*2]++,s=0,i=a,o===0?(u=138,l=3):a===o?(u=6,l=3):(u=7,l=4))},Kx=(e,t,n)=>{let r,i=-1,a,o=t[0*2+1],s=0,u=7,l=4;for(o===0&&(u=138,l=3),r=0;r<=n;r++)if(a=o,o=t[(r+1)*2+1],!(++s<u&&a===o)){if(s<l)do Wn(e,a,e.bl_tree);while(--s!==0);else a!==0?(a!==i&&(Wn(e,a,e.bl_tree),s--),Wn(e,Nx,e.bl_tree),jt(e,s-3,2)):s<=10?(Wn(e,Ox,e.bl_tree),jt(e,s-3,3)):(Wn(e,zx,e.bl_tree),jt(e,s-11,7));s=0,i=a,o===0?(u=138,l=3):a===o?(u=6,l=3):(u=7,l=4)}},iP=e=>{let t;for(Xx(e,e.dyn_ltree,e.l_desc.max_code),Xx(e,e.dyn_dtree,e.d_desc.max_code),xp(e,e.bl_desc),t=dp-1;t>=3&&e.bl_tree[Ux[t]*2+1]===0;t--);return e.opt_len+=3*(t+1)+5+5+4,t},aP=(e,t,n,r)=>{let i;for(jt(e,t-257,5),jt(e,n-1,5),jt(e,r-4,4),i=0;i<r;i++)jt(e,e.bl_tree[Ux[i]*2+1],3);Kx(e,e.dyn_ltree,t-1),Kx(e,e.dyn_dtree,n-1)},oP=e=>{let t=4093624447,n;for(n=0;n<=31;n++,t>>>=1)if(t&1&&e.dyn_ltree[n*2]!==0)return Rx;if(e.dyn_ltree[9*2]!==0||e.dyn_ltree[10*2]!==0||e.dyn_ltree[13*2]!==0)return Mx;for(n=32;n<bl;n++)if(e.dyn_ltree[n*2]!==0)return Mx;return Rx};let Jx=!1;const sP=e=>{Jx||(rP(),Jx=!0),e.l_desc=new wp(e.dyn_ltree,Gx),e.d_desc=new wp(e.dyn_dtree,Hx),e.bl_desc=new wp(e.bl_tree,Vx),e.bi_buf=0,e.bi_valid=0,Wx(e)},eA=(e,t,n,r)=>{jt(e,(YM<<1)+(r?1:0),3),Yx(e),Al(e,n),Al(e,~n),n&&e.pending_buf.set(e.window.subarray(t,t+n),e.pending),e.pending+=n},lP=e=>{jt(e,Px<<1,3),Wn(e,gp,cr),tP(e)},uP=(e,t,n,r)=>{let i,a,o=0;e.level>0?(e.strm.data_type===WM&&(e.strm.data_type=oP(e)),xp(e,e.l_desc),xp(e,e.d_desc),o=iP(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?eA(e,t,n,r):e.strategy===ZM||a===i?(jt(e,(Px<<1)+(r?1:0),3),$x(e,cr,wl)):(jt(e,(QM<<1)+(r?1:0),3),aP(e,e.l_desc.max_code+1,e.d_desc.max_code+1,o+1),$x(e,e.dyn_ltree,e.dyn_dtree)),Wx(e),r&&Yx(e)},fP=(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[(xl[n]+bl+1)*2]++,e.dyn_dtree[jx(t)*2]++),e.sym_next===e.sym_end);var cP=sP,hP=eA,dP=uP,pP=fP,gP=lP,mP={_tr_init:cP,_tr_stored_block:hP,_tr_flush_block:dP,_tr_tally:pP,_tr_align:gP},El=(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 bP=()=>{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},yP=new Uint32Array(bP());var dt=(e,t,n,r)=>{const i=yP,a=r+n;e^=-1;for(let o=r;o<a;o++)e=e>>>8^i[(e^t[o])&255];return e^-1},lo={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"},_l={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:wP,_tr_stored_block:Ap,_tr_flush_block:vP,_tr_tally:ti,_tr_align:xP}=mP,{Z_NO_FLUSH:ni,Z_PARTIAL_FLUSH:AP,Z_FULL_FLUSH:EP,Z_FINISH:un,Z_BLOCK:tA,Z_OK:wt,Z_STREAM_END:nA,Z_STREAM_ERROR:Yn,Z_DATA_ERROR:_P,Z_BUF_ERROR:Ep,Z_DEFAULT_COMPRESSION:SP,Z_FILTERED:CP,Z_HUFFMAN_ONLY:pc,Z_RLE:kP,Z_FIXED:TP,Z_DEFAULT_STRATEGY:IP,Z_UNKNOWN:BP,Z_DEFLATED:gc}=_l,DP=9,FP=15,RP=8,MP=29,_p=256+1+MP,PP=30,LP=19,NP=2*_p+1,OP=15,de=3,ri=258,Qn=ri+de+1,zP=32,uo=42,Sp=57,Cp=69,kp=73,Tp=91,Ip=103,la=113,Sl=666,Bt=1,fo=2,ua=3,co=4,UP=3,fa=(e,t)=>(e.msg=lo[t],t),rA=e=>e*2-(e>4?9:0),ii=e=>{let t=e.length;for(;--t>=0;)e[t]=0},GP=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 ai=(e,t,n)=>(t<<e.hash_shift^n)&e.hash_mask;const $t=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))},Xt=(e,t)=>{vP(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,$t(e.strm)},xe=(e,t)=>{e.pending_buf[e.pending++]=t},Cl=(e,t)=>{e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=t&255},Bp=(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=El(e.adler,t,i,n):e.state.wrap===2&&(e.adler=dt(e.adler,t,i,n)),e.next_in+=i,e.total_in+=i,i)},iA=(e,t)=>{let n=e.max_chain_length,r=e.strstart,i,a,o=e.prev_length,s=e.nice_match;const u=e.strstart>e.w_size-Qn?e.strstart-(e.w_size-Qn):0,l=e.window,f=e.w_mask,c=e.prev,h=e.strstart+ri;let d=l[r+o-1],p=l[r+o];e.prev_length>=e.good_match&&(n>>=2),s>e.lookahead&&(s=e.lookahead);do if(i=t,!(l[i+o]!==p||l[i+o-1]!==d||l[i]!==l[r]||l[++i]!==l[r+1])){r+=2,i++;do;while(l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&r<h);if(a=ri-(h-r),r=h-ri,a>o){if(e.match_start=t,o=a,a>=s)break;d=l[r+o-1],p=l[r+o]}}while((t=c[t&f])>u&&--n!==0);return o<=e.lookahead?o:e.lookahead},ho=e=>{const t=e.w_size;let n,r,i;do{if(r=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-Qn)&&(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),GP(e),r+=t),e.strm.avail_in===0)break;if(n=Bp(e.strm,e.window,e.strstart+e.lookahead,r),e.lookahead+=n,e.lookahead+e.insert>=de)for(i=e.strstart-e.insert,e.ins_h=e.window[i],e.ins_h=ai(e,e.ins_h,e.window[i+1]);e.insert&&(e.ins_h=ai(e,e.ins_h,e.window[i+de-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<de)););}while(e.lookahead<Qn&&e.strm.avail_in!==0)},aA=(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!==un||t===ni||r!==i+e.strm.avail_in)))break;o=t===un&&r===i+e.strm.avail_in?1:0,Ap(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,$t(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&&(Bp(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?co:t!==ni&&t!==un&&e.strm.avail_in===0&&e.strstart===e.block_start?fo:(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&&(Bp(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===un)&&t!==ni&&e.strm.avail_in===0&&i<=a)&&(r=i>a?a:i,o=t===un&&e.strm.avail_in===0&&r===i?1:0,Ap(e,e.block_start,r,o),e.block_start+=r,$t(e.strm)),o?ua:Bt)},Dp=(e,t)=>{let n,r;for(;;){if(e.lookahead<Qn){if(ho(e),e.lookahead<Qn&&t===ni)return Bt;if(e.lookahead===0)break}if(n=0,e.lookahead>=de&&(e.ins_h=ai(e,e.ins_h,e.window[e.strstart+de-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-Qn&&(e.match_length=iA(e,n)),e.match_length>=de)if(r=ti(e,e.strstart-e.match_start,e.match_length-de),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=de){e.match_length--;do e.strstart++,e.ins_h=ai(e,e.ins_h,e.window[e.strstart+de-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=ai(e,e.ins_h,e.window[e.strstart+1]);else r=ti(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(r&&(Xt(e,!1),e.strm.avail_out===0))return Bt}return e.insert=e.strstart<de-1?e.strstart:de-1,t===un?(Xt(e,!0),e.strm.avail_out===0?ua:co):e.sym_next&&(Xt(e,!1),e.strm.avail_out===0)?Bt:fo},po=(e,t)=>{let n,r,i;for(;;){if(e.lookahead<Qn){if(ho(e),e.lookahead<Qn&&t===ni)return Bt;if(e.lookahead===0)break}if(n=0,e.lookahead>=de&&(e.ins_h=ai(e,e.ins_h,e.window[e.strstart+de-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=de-1,n!==0&&e.prev_length<e.max_lazy_match&&e.strstart-n<=e.w_size-Qn&&(e.match_length=iA(e,n),e.match_length<=5&&(e.strategy===CP||e.match_length===de&&e.strstart-e.match_start>4096)&&(e.match_length=de-1)),e.prev_length>=de&&e.match_length<=e.prev_length){i=e.strstart+e.lookahead-de,r=ti(e,e.strstart-1-e.prev_match,e.prev_length-de),e.lookahead-=e.prev_length-1,e.prev_length-=2;do++e.strstart<=i&&(e.ins_h=ai(e,e.ins_h,e.window[e.strstart+de-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=de-1,e.strstart++,r&&(Xt(e,!1),e.strm.avail_out===0))return Bt}else if(e.match_available){if(r=ti(e,0,e.window[e.strstart-1]),r&&Xt(e,!1),e.strstart++,e.lookahead--,e.strm.avail_out===0)return Bt}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(r=ti(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<de-1?e.strstart:de-1,t===un?(Xt(e,!0),e.strm.avail_out===0?ua:co):e.sym_next&&(Xt(e,!1),e.strm.avail_out===0)?Bt:fo},HP=(e,t)=>{let n,r,i,a;const o=e.window;for(;;){if(e.lookahead<=ri){if(ho(e),e.lookahead<=ri&&t===ni)return Bt;if(e.lookahead===0)break}if(e.match_length=0,e.lookahead>=de&&e.strstart>0&&(i=e.strstart-1,r=o[i],r===o[++i]&&r===o[++i]&&r===o[++i])){a=e.strstart+ri;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=ri-(a-i),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=de?(n=ti(e,1,e.match_length-de),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(n=ti(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),n&&(Xt(e,!1),e.strm.avail_out===0))return Bt}return e.insert=0,t===un?(Xt(e,!0),e.strm.avail_out===0?ua:co):e.sym_next&&(Xt(e,!1),e.strm.avail_out===0)?Bt:fo},VP=(e,t)=>{let n;for(;;){if(e.lookahead===0&&(ho(e),e.lookahead===0)){if(t===ni)return Bt;break}if(e.match_length=0,n=ti(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,n&&(Xt(e,!1),e.strm.avail_out===0))return Bt}return e.insert=0,t===un?(Xt(e,!0),e.strm.avail_out===0?ua:co):e.sym_next&&(Xt(e,!1),e.strm.avail_out===0)?Bt:fo};function $n(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 kl=[new $n(0,0,0,0,aA),new $n(4,4,8,4,Dp),new $n(4,5,16,8,Dp),new $n(4,6,32,32,Dp),new $n(4,4,16,16,po),new $n(8,16,32,32,po),new $n(8,16,128,128,po),new $n(8,32,128,256,po),new $n(32,128,258,1024,po),new $n(32,258,258,4096,po)],jP=e=>{e.window_size=2*e.w_size,ii(e.head),e.max_lazy_match=kl[e.level].max_lazy,e.good_match=kl[e.level].good_length,e.nice_match=kl[e.level].nice_length,e.max_chain_length=kl[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=de-1,e.match_available=0,e.ins_h=0};function qP(){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=gc,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(NP*2),this.dyn_dtree=new Uint16Array((2*PP+1)*2),this.bl_tree=new Uint16Array((2*LP+1)*2),ii(this.dyn_ltree),ii(this.dyn_dtree),ii(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(OP+1),this.heap=new Uint16Array(2*_p+1),ii(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*_p+1),ii(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 Tl=e=>{if(!e)return 1;const t=e.state;return!t||t.strm!==e||t.status!==uo&&t.status!==Sp&&t.status!==Cp&&t.status!==kp&&t.status!==Tp&&t.status!==Ip&&t.status!==la&&t.status!==Sl?1:0},oA=e=>{if(Tl(e))return fa(e,Yn);e.total_in=e.total_out=0,e.data_type=BP;const t=e.state;return t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap===2?Sp:t.wrap?uo:la,e.adler=t.wrap===2?0:1,t.last_flush=-2,wP(t),wt},sA=e=>{const t=oA(e);return t===wt&&jP(e.state),t},ZP=(e,t)=>Tl(e)||e.state.wrap!==2?Yn:(e.state.gzhead=t,wt),lA=(e,t,n,r,i,a)=>{if(!e)return Yn;let o=1;if(t===SP&&(t=6),r<0?(o=0,r=-r):r>15&&(o=2,r-=16),i<1||i>DP||n!==gc||r<8||r>15||t<0||t>9||a<0||a>TP||r===8&&o!==1)return fa(e,Yn);r===8&&(r=9);const s=new qP;return e.state=s,s.strm=e,s.status=uo,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+de-1)/de),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,sA(e)},WP=(e,t)=>lA(e,t,gc,FP,RP,IP),YP=(e,t)=>{if(Tl(e)||t>tA||t<0)return e?fa(e,Yn):Yn;const n=e.state;if(!e.output||e.avail_in!==0&&!e.input||n.status===Sl&&t!==un)return fa(e,e.avail_out===0?Ep:Yn);const r=n.last_flush;if(n.last_flush=t,n.pending!==0){if($t(e),e.avail_out===0)return n.last_flush=-1,wt}else if(e.avail_in===0&&rA(t)<=rA(r)&&t!==un)return fa(e,Ep);if(n.status===Sl&&e.avail_in!==0)return fa(e,Ep);if(n.status===uo&&n.wrap===0&&(n.status=la),n.status===uo){let i=gc+(n.w_bits-8<<4)<<8,a=-1;if(n.strategy>=pc||n.level<2?a=0:n.level<6?a=1:n.level===6?a=2:a=3,i|=a<<6,n.strstart!==0&&(i|=zP),i+=31-i%31,Cl(n,i),n.strstart!==0&&(Cl(n,e.adler>>>16),Cl(n,e.adler&65535)),e.adler=1,n.status=la,$t(e),n.pending!==0)return n.last_flush=-1,wt}if(n.status===Sp){if(e.adler=0,xe(n,31),xe(n,139),xe(n,8),n.gzhead)xe(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)),xe(n,n.gzhead.time&255),xe(n,n.gzhead.time>>8&255),xe(n,n.gzhead.time>>16&255),xe(n,n.gzhead.time>>24&255),xe(n,n.level===9?2:n.strategy>=pc||n.level<2?4:0),xe(n,n.gzhead.os&255),n.gzhead.extra&&n.gzhead.extra.length&&(xe(n,n.gzhead.extra.length&255),xe(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(e.adler=dt(e.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=Cp;else if(xe(n,0),xe(n,0),xe(n,0),xe(n,0),xe(n,0),xe(n,n.level===9?2:n.strategy>=pc||n.level<2?4:0),xe(n,UP),n.status=la,$t(e),n.pending!==0)return n.last_flush=-1,wt}if(n.status===Cp){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=dt(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex+=s,$t(e),n.pending!==0)return n.last_flush=-1,wt;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=dt(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex=0}n.status=kp}if(n.status===kp){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=dt(e.adler,n.pending_buf,n.pending-i,i)),$t(e),n.pending!==0)return n.last_flush=-1,wt;i=0}n.gzindex<n.gzhead.name.length?a=n.gzhead.name.charCodeAt(n.gzindex++)&255:a=0,xe(n,a)}while(a!==0);n.gzhead.hcrc&&n.pending>i&&(e.adler=dt(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex=0}n.status=Tp}if(n.status===Tp){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=dt(e.adler,n.pending_buf,n.pending-i,i)),$t(e),n.pending!==0)return n.last_flush=-1,wt;i=0}n.gzindex<n.gzhead.comment.length?a=n.gzhead.comment.charCodeAt(n.gzindex++)&255:a=0,xe(n,a)}while(a!==0);n.gzhead.hcrc&&n.pending>i&&(e.adler=dt(e.adler,n.pending_buf,n.pending-i,i))}n.status=Ip}if(n.status===Ip){if(n.gzhead.hcrc){if(n.pending+2>n.pending_buf_size&&($t(e),n.pending!==0))return n.last_flush=-1,wt;xe(n,e.adler&255),xe(n,e.adler>>8&255),e.adler=0}if(n.status=la,$t(e),n.pending!==0)return n.last_flush=-1,wt}if(e.avail_in!==0||n.lookahead!==0||t!==ni&&n.status!==Sl){let i=n.level===0?aA(n,t):n.strategy===pc?VP(n,t):n.strategy===kP?HP(n,t):kl[n.level].func(n,t);if((i===ua||i===co)&&(n.status=Sl),i===Bt||i===ua)return e.avail_out===0&&(n.last_flush=-1),wt;if(i===fo&&(t===AP?xP(n):t!==tA&&(Ap(n,0,0,!1),t===EP&&(ii(n.head),n.lookahead===0&&(n.strstart=0,n.block_start=0,n.insert=0))),$t(e),e.avail_out===0))return n.last_flush=-1,wt}return t!==un?wt:n.wrap<=0?nA:(n.wrap===2?(xe(n,e.adler&255),xe(n,e.adler>>8&255),xe(n,e.adler>>16&255),xe(n,e.adler>>24&255),xe(n,e.total_in&255),xe(n,e.total_in>>8&255),xe(n,e.total_in>>16&255),xe(n,e.total_in>>24&255)):(Cl(n,e.adler>>>16),Cl(n,e.adler&65535)),$t(e),n.wrap>0&&(n.wrap=-n.wrap),n.pending!==0?wt:nA)},QP=e=>{if(Tl(e))return Yn;const t=e.state.status;return e.state=null,t===la?fa(e,_P):wt},$P=(e,t)=>{let n=t.length;if(Tl(e))return Yn;const r=e.state,i=r.wrap;if(i===2||i===1&&r.status!==uo||r.lookahead)return Yn;if(i===1&&(e.adler=El(e.adler,t,n,0)),r.wrap=0,n>=r.w_size){i===0&&(ii(r.head),r.strstart=0,r.block_start=0,r.insert=0);let u=new Uint8Array(r.w_size);u.set(t.subarray(n-r.w_size,n),0),t=u,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,ho(r);r.lookahead>=de;){let u=r.strstart,l=r.lookahead-(de-1);do r.ins_h=ai(r,r.ins_h,r.window[u+de-1]),r.prev[u&r.w_mask]=r.head[r.ins_h],r.head[r.ins_h]=u,u++;while(--l);r.strstart=u,r.lookahead=de-1,ho(r)}return r.strstart+=r.lookahead,r.block_start=r.strstart,r.insert=r.lookahead,r.lookahead=0,r.match_length=r.prev_length=de-1,r.match_available=0,e.next_in=o,e.input=s,e.avail_in=a,r.wrap=i,wt};var XP=WP,KP=lA,JP=sA,eL=oA,tL=ZP,nL=YP,rL=QP,iL=$P,aL="pako deflate (from Nodeca project)",Il={deflateInit:XP,deflateInit2:KP,deflateReset:JP,deflateResetKeep:eL,deflateSetHeader:tL,deflate:nL,deflateEnd:rL,deflateSetDictionary:iL,deflateInfo:aL};const oL=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var sL=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)oL(n,r)&&(e[r]=n[r])}}return e},lL=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},mc={assign:sL,flattenChunks:lL};let uA=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{uA=!1}const Bl=new Uint8Array(256);for(let e=0;e<256;e++)Bl[e]=e>=252?6:e>=248?5:e>=240?4:e>=224?3:e>=192?2:1;Bl[254]=Bl[254]=1;var uL=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 fL=(e,t)=>{if(t<65534&&e.subarray&&uA)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 cL=(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=Bl[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 fL(a,i)},hL=(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+Bl[e[n]]>t?n:t},Dl={string2buf:uL,buf2string:cL,utf8border:hL};function dL(){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 fA=dL;const cA=Object.prototype.toString,{Z_NO_FLUSH:pL,Z_SYNC_FLUSH:gL,Z_FULL_FLUSH:mL,Z_FINISH:bL,Z_OK:bc,Z_STREAM_END:yL,Z_DEFAULT_COMPRESSION:wL,Z_DEFAULT_STRATEGY:vL,Z_DEFLATED:xL}=_l;function Fp(e){this.options=mc.assign({level:wL,method:xL,chunkSize:16384,windowBits:15,memLevel:8,strategy:vL},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 fA,this.strm.avail_out=0;let n=Il.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(n!==bc)throw new Error(lo[n]);if(t.header&&Il.deflateSetHeader(this.strm,t.header),t.dictionary){let r;if(typeof t.dictionary=="string"?r=Dl.string2buf(t.dictionary):cA.call(t.dictionary)==="[object ArrayBuffer]"?r=new Uint8Array(t.dictionary):r=t.dictionary,n=Il.deflateSetDictionary(this.strm,r),n!==bc)throw new Error(lo[n]);this._dict_set=!0}}Fp.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?bL:pL,typeof e=="string"?n.input=Dl.string2buf(e):cA.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===gL||a===mL)&&n.avail_out<=6){this.onData(n.output.subarray(0,n.next_out)),n.avail_out=0;continue}if(i=Il.deflate(n,a),i===yL)return n.next_out>0&&this.onData(n.output.subarray(0,n.next_out)),i=Il.deflateEnd(this.strm),this.onEnd(i),this.ended=!0,i===bc;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},Fp.prototype.onData=function(e){this.chunks.push(e)},Fp.prototype.onEnd=function(e){e===bc&&(this.result=mc.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};const yc=16209,AL=16191;var EL=function(t,n){let r,i,a,o,s,u,l,f,c,h,d,p,b,y,w,A,S,_,T,I,B,R,L,j;const M=t.state;r=t.next_in,L=t.input,i=r+(t.avail_in-5),a=t.next_out,j=t.output,o=a-(n-t.avail_out),s=a+(t.avail_out-257),u=M.dmax,l=M.wsize,f=M.whave,c=M.wnext,h=M.window,d=M.hold,p=M.bits,b=M.lencode,y=M.distcode,w=(1<<M.lenbits)-1,A=(1<<M.distbits)-1;e:do{p<15&&(d+=L[r++]<<p,p+=8,d+=L[r++]<<p,p+=8),S=b[d&w];t:for(;;){if(_=S>>>24,d>>>=_,p-=_,_=S>>>16&255,_===0)j[a++]=S&65535;else if(_&16){T=S&65535,_&=15,_&&(p<_&&(d+=L[r++]<<p,p+=8),T+=d&(1<<_)-1,d>>>=_,p-=_),p<15&&(d+=L[r++]<<p,p+=8,d+=L[r++]<<p,p+=8),S=y[d&A];n:for(;;){if(_=S>>>24,d>>>=_,p-=_,_=S>>>16&255,_&16){if(I=S&65535,_&=15,p<_&&(d+=L[r++]<<p,p+=8,p<_&&(d+=L[r++]<<p,p+=8)),I+=d&(1<<_)-1,I>u){t.msg="invalid distance too far back",M.mode=yc;break e}if(d>>>=_,p-=_,_=a-o,I>_){if(_=I-_,_>f&&M.sane){t.msg="invalid distance too far back",M.mode=yc;break e}if(B=0,R=h,c===0){if(B+=l-_,_<T){T-=_;do j[a++]=h[B++];while(--_);B=a-I,R=j}}else if(c<_){if(B+=l+c-_,_-=c,_<T){T-=_;do j[a++]=h[B++];while(--_);if(B=0,c<T){_=c,T-=_;do j[a++]=h[B++];while(--_);B=a-I,R=j}}}else if(B+=c-_,_<T){T-=_;do j[a++]=h[B++];while(--_);B=a-I,R=j}for(;T>2;)j[a++]=R[B++],j[a++]=R[B++],j[a++]=R[B++],T-=3;T&&(j[a++]=R[B++],T>1&&(j[a++]=R[B++]))}else{B=a-I;do j[a++]=j[B++],j[a++]=j[B++],j[a++]=j[B++],T-=3;while(T>2);T&&(j[a++]=j[B++],T>1&&(j[a++]=j[B++]))}}else if(_&64){t.msg="invalid distance code",M.mode=yc;break e}else{S=y[(S&65535)+(d&(1<<_)-1)];continue n}break}}else if(_&64)if(_&32){M.mode=AL;break e}else{t.msg="invalid literal/length code",M.mode=yc;break e}else{S=b[(S&65535)+(d&(1<<_)-1)];continue t}break}}while(r<i&&a<s);T=p>>3,r-=T,p-=T<<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),M.hold=d,M.bits=p};const go=15,hA=852,dA=592,pA=0,Rp=1,gA=2,_L=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]),SL=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]),CL=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]),kL=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 Fl=(e,t,n,r,i,a,o,s)=>{const u=s.bits;let l=0,f=0,c=0,h=0,d=0,p=0,b=0,y=0,w=0,A=0,S,_,T,I,B,R=null,L;const j=new Uint16Array(go+1),M=new Uint16Array(go+1);let ie=null,se,ge,Ie;for(l=0;l<=go;l++)j[l]=0;for(f=0;f<r;f++)j[t[n+f]]++;for(d=u,h=go;h>=1&&j[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(c=1;c<h&&j[c]===0;c++);for(d<c&&(d=c),y=1,l=1;l<=go;l++)if(y<<=1,y-=j[l],y<0)return-1;if(y>0&&(e===pA||h!==1))return-1;for(M[1]=0,l=1;l<go;l++)M[l+1]=M[l]+j[l];for(f=0;f<r;f++)t[n+f]!==0&&(o[M[t[n+f]]++]=f);if(e===pA?(R=ie=o,L=20):e===Rp?(R=_L,ie=SL,L=257):(R=CL,ie=kL,L=0),A=0,f=0,l=c,B=a,p=d,b=0,T=-1,w=1<<d,I=w-1,e===Rp&&w>hA||e===gA&&w>dA)return 1;for(;;){se=l-b,o[f]+1<L?(ge=0,Ie=o[f]):o[f]>=L?(ge=ie[o[f]-L],Ie=R[o[f]-L]):(ge=32+64,Ie=0),S=1<<l-b,_=1<<p,c=_;do _-=S,i[B+(A>>b)+_]=se<<24|ge<<16|Ie|0;while(_!==0);for(S=1<<l-1;A&S;)S>>=1;if(S!==0?(A&=S-1,A+=S):A=0,f++,--j[l]===0){if(l===h)break;l=t[n+o[f]]}if(l>d&&(A&I)!==T){for(b===0&&(b=d),B+=c,p=l-b,y=1<<p;p+b<h&&(y-=j[p+b],!(y<=0));)p++,y<<=1;if(w+=1<<p,e===Rp&&w>hA||e===gA&&w>dA)return 1;T=A&I,i[T]=d<<24|p<<16|B-a|0}}return A!==0&&(i[B+A]=l-b<<24|64<<16|0),s.bits=d,0};const TL=0,mA=1,bA=2,{Z_FINISH:yA,Z_BLOCK:IL,Z_TREES:wc,Z_OK:ca,Z_STREAM_END:BL,Z_NEED_DICT:DL,Z_STREAM_ERROR:fn,Z_DATA_ERROR:wA,Z_MEM_ERROR:vA,Z_BUF_ERROR:FL,Z_DEFLATED:xA}=_l,vc=16180,AA=16181,EA=16182,_A=16183,SA=16184,CA=16185,kA=16186,TA=16187,IA=16188,BA=16189,xc=16190,hr=16191,Mp=16192,DA=16193,Pp=16194,FA=16195,RA=16196,MA=16197,PA=16198,Ac=16199,Ec=16200,LA=16201,NA=16202,OA=16203,zA=16204,UA=16205,Lp=16206,GA=16207,HA=16208,qe=16209,VA=16210,jA=16211,RL=852,ML=592,PL=15,qA=e=>(e>>>24&255)+(e>>>8&65280)+((e&65280)<<8)+((e&255)<<24);function LL(){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 ha=e=>{if(!e)return 1;const t=e.state;return!t||t.strm!==e||t.mode<vc||t.mode>jA?1:0},ZA=e=>{if(ha(e))return fn;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=vc,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(RL),t.distcode=t.distdyn=new Int32Array(ML),t.sane=1,t.back=-1,ca},WA=e=>{if(ha(e))return fn;const t=e.state;return t.wsize=0,t.whave=0,t.wnext=0,ZA(e)},YA=(e,t)=>{let n;if(ha(e))return fn;const r=e.state;return t<0?(n=0,t=-t):(n=(t>>4)+5,t<48&&(t&=15)),t&&(t<8||t>15)?fn:(r.window!==null&&r.wbits!==t&&(r.window=null),r.wrap=n,r.wbits=t,WA(e))},QA=(e,t)=>{if(!e)return fn;const n=new LL;e.state=n,n.strm=e,n.window=null,n.mode=vc;const r=YA(e,t);return r!==ca&&(e.state=null),r},NL=e=>QA(e,PL);let $A=!0,Np,Op;const OL=e=>{if($A){Np=new Int32Array(512),Op=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(Fl(mA,e.lens,0,288,Np,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;Fl(bA,e.lens,0,32,Op,0,e.work,{bits:5}),$A=!1}e.lencode=Np,e.lenbits=9,e.distcode=Op,e.distbits=5},XA=(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},zL=(e,t)=>{let n,r,i,a,o,s,u,l,f,c,h,d,p,b,y=0,w,A,S,_,T,I,B,R;const L=new Uint8Array(4);let j,M;const ie=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(ha(e)||!e.output||!e.input&&e.avail_in!==0)return fn;n=e.state,n.mode===hr&&(n.mode=Mp),o=e.next_out,i=e.output,u=e.avail_out,a=e.next_in,r=e.input,s=e.avail_in,l=n.hold,f=n.bits,c=s,h=u,R=ca;e:for(;;)switch(n.mode){case vc:if(n.wrap===0){n.mode=Mp;break}for(;f<16;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}if(n.wrap&2&&l===35615){n.wbits===0&&(n.wbits=15),n.check=0,L[0]=l&255,L[1]=l>>>8&255,n.check=dt(n.check,L,2,0),l=0,f=0,n.mode=AA;break}if(n.head&&(n.head.done=!1),!(n.wrap&1)||(((l&255)<<8)+(l>>8))%31){e.msg="incorrect header check",n.mode=qe;break}if((l&15)!==xA){e.msg="unknown compression method",n.mode=qe;break}if(l>>>=4,f-=4,B=(l&15)+8,n.wbits===0&&(n.wbits=B),B>15||B>n.wbits){e.msg="invalid window size",n.mode=qe;break}n.dmax=1<<n.wbits,n.flags=0,e.adler=n.check=1,n.mode=l&512?BA:hr,l=0,f=0;break;case AA:for(;f<16;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}if(n.flags=l,(n.flags&255)!==xA){e.msg="unknown compression method",n.mode=qe;break}if(n.flags&57344){e.msg="unknown header flags set",n.mode=qe;break}n.head&&(n.head.text=l>>8&1),n.flags&512&&n.wrap&4&&(L[0]=l&255,L[1]=l>>>8&255,n.check=dt(n.check,L,2,0)),l=0,f=0,n.mode=EA;case EA:for(;f<32;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}n.head&&(n.head.time=l),n.flags&512&&n.wrap&4&&(L[0]=l&255,L[1]=l>>>8&255,L[2]=l>>>16&255,L[3]=l>>>24&255,n.check=dt(n.check,L,4,0)),l=0,f=0,n.mode=_A;case _A:for(;f<16;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}n.head&&(n.head.xflags=l&255,n.head.os=l>>8),n.flags&512&&n.wrap&4&&(L[0]=l&255,L[1]=l>>>8&255,n.check=dt(n.check,L,2,0)),l=0,f=0,n.mode=SA;case SA:if(n.flags&1024){for(;f<16;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}n.length=l,n.head&&(n.head.extra_len=l),n.flags&512&&n.wrap&4&&(L[0]=l&255,L[1]=l>>>8&255,n.check=dt(n.check,L,2,0)),l=0,f=0}else n.head&&(n.head.extra=null);n.mode=CA;case CA:if(n.flags&1024&&(d=n.length,d>s&&(d=s),d&&(n.head&&(B=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),B)),n.flags&512&&n.wrap&4&&(n.check=dt(n.check,r,d,a)),s-=d,a+=d,n.length-=d),n.length))break e;n.length=0,n.mode=kA;case kA:if(n.flags&2048){if(s===0)break e;d=0;do B=r[a+d++],n.head&&B&&n.length<65536&&(n.head.name+=String.fromCharCode(B));while(B&&d<s);if(n.flags&512&&n.wrap&4&&(n.check=dt(n.check,r,d,a)),s-=d,a+=d,B)break e}else n.head&&(n.head.name=null);n.length=0,n.mode=TA;case TA:if(n.flags&4096){if(s===0)break e;d=0;do B=r[a+d++],n.head&&B&&n.length<65536&&(n.head.comment+=String.fromCharCode(B));while(B&&d<s);if(n.flags&512&&n.wrap&4&&(n.check=dt(n.check,r,d,a)),s-=d,a+=d,B)break e}else n.head&&(n.head.comment=null);n.mode=IA;case IA:if(n.flags&512){for(;f<16;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}if(n.wrap&4&&l!==(n.check&65535)){e.msg="header crc mismatch",n.mode=qe;break}l=0,f=0}n.head&&(n.head.hcrc=n.flags>>9&1,n.head.done=!0),e.adler=n.check=0,n.mode=hr;break;case BA:for(;f<32;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}e.adler=n.check=qA(l),l=0,f=0,n.mode=xc;case xc:if(n.havedict===0)return e.next_out=o,e.avail_out=u,e.next_in=a,e.avail_in=s,n.hold=l,n.bits=f,DL;e.adler=n.check=1,n.mode=hr;case hr:if(t===IL||t===wc)break e;case Mp:if(n.last){l>>>=f&7,f-=f&7,n.mode=Lp;break}for(;f<3;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}switch(n.last=l&1,l>>>=1,f-=1,l&3){case 0:n.mode=DA;break;case 1:if(OL(n),n.mode=Ac,t===wc){l>>>=2,f-=2;break e}break;case 2:n.mode=RA;break;case 3:e.msg="invalid block type",n.mode=qe}l>>>=2,f-=2;break;case DA:for(l>>>=f&7,f-=f&7;f<32;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}if((l&65535)!==(l>>>16^65535)){e.msg="invalid stored block lengths",n.mode=qe;break}if(n.length=l&65535,l=0,f=0,n.mode=Pp,t===wc)break e;case Pp:n.mode=FA;case FA:if(d=n.length,d){if(d>s&&(d=s),d>u&&(d=u),d===0)break e;i.set(r.subarray(a,a+d),o),s-=d,a+=d,u-=d,o+=d,n.length-=d;break}n.mode=hr;break;case RA:for(;f<14;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}if(n.nlen=(l&31)+257,l>>>=5,f-=5,n.ndist=(l&31)+1,l>>>=5,f-=5,n.ncode=(l&15)+4,l>>>=4,f-=4,n.nlen>286||n.ndist>30){e.msg="too many length or distance symbols",n.mode=qe;break}n.have=0,n.mode=MA;case MA:for(;n.have<n.ncode;){for(;f<3;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}n.lens[ie[n.have++]]=l&7,l>>>=3,f-=3}for(;n.have<19;)n.lens[ie[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,j={bits:n.lenbits},R=Fl(TL,n.lens,0,19,n.lencode,0,n.work,j),n.lenbits=j.bits,R){e.msg="invalid code lengths set",n.mode=qe;break}n.have=0,n.mode=PA;case PA:for(;n.have<n.nlen+n.ndist;){for(;y=n.lencode[l&(1<<n.lenbits)-1],w=y>>>24,A=y>>>16&255,S=y&65535,!(w<=f);){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}if(S<16)l>>>=w,f-=w,n.lens[n.have++]=S;else{if(S===16){for(M=w+2;f<M;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}if(l>>>=w,f-=w,n.have===0){e.msg="invalid bit length repeat",n.mode=qe;break}B=n.lens[n.have-1],d=3+(l&3),l>>>=2,f-=2}else if(S===17){for(M=w+3;f<M;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}l>>>=w,f-=w,B=0,d=3+(l&7),l>>>=3,f-=3}else{for(M=w+7;f<M;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}l>>>=w,f-=w,B=0,d=11+(l&127),l>>>=7,f-=7}if(n.have+d>n.nlen+n.ndist){e.msg="invalid bit length repeat",n.mode=qe;break}for(;d--;)n.lens[n.have++]=B}}if(n.mode===qe)break;if(n.lens[256]===0){e.msg="invalid code -- missing end-of-block",n.mode=qe;break}if(n.lenbits=9,j={bits:n.lenbits},R=Fl(mA,n.lens,0,n.nlen,n.lencode,0,n.work,j),n.lenbits=j.bits,R){e.msg="invalid literal/lengths set",n.mode=qe;break}if(n.distbits=6,n.distcode=n.distdyn,j={bits:n.distbits},R=Fl(bA,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,j),n.distbits=j.bits,R){e.msg="invalid distances set",n.mode=qe;break}if(n.mode=Ac,t===wc)break e;case Ac:n.mode=Ec;case Ec:if(s>=6&&u>=258){e.next_out=o,e.avail_out=u,e.next_in=a,e.avail_in=s,n.hold=l,n.bits=f,EL(e,h),o=e.next_out,i=e.output,u=e.avail_out,a=e.next_in,r=e.input,s=e.avail_in,l=n.hold,f=n.bits,n.mode===hr&&(n.back=-1);break}for(n.back=0;y=n.lencode[l&(1<<n.lenbits)-1],w=y>>>24,A=y>>>16&255,S=y&65535,!(w<=f);){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}if(A&&!(A&240)){for(_=w,T=A,I=S;y=n.lencode[I+((l&(1<<_+T)-1)>>_)],w=y>>>24,A=y>>>16&255,S=y&65535,!(_+w<=f);){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}l>>>=_,f-=_,n.back+=_}if(l>>>=w,f-=w,n.back+=w,n.length=S,A===0){n.mode=UA;break}if(A&32){n.back=-1,n.mode=hr;break}if(A&64){e.msg="invalid literal/length code",n.mode=qe;break}n.extra=A&15,n.mode=LA;case LA:if(n.extra){for(M=n.extra;f<M;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}n.length+=l&(1<<n.extra)-1,l>>>=n.extra,f-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=NA;case NA:for(;y=n.distcode[l&(1<<n.distbits)-1],w=y>>>24,A=y>>>16&255,S=y&65535,!(w<=f);){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}if(!(A&240)){for(_=w,T=A,I=S;y=n.distcode[I+((l&(1<<_+T)-1)>>_)],w=y>>>24,A=y>>>16&255,S=y&65535,!(_+w<=f);){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}l>>>=_,f-=_,n.back+=_}if(l>>>=w,f-=w,n.back+=w,A&64){e.msg="invalid distance code",n.mode=qe;break}n.offset=S,n.extra=A&15,n.mode=OA;case OA:if(n.extra){for(M=n.extra;f<M;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}n.offset+=l&(1<<n.extra)-1,l>>>=n.extra,f-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){e.msg="invalid distance too far back",n.mode=qe;break}n.mode=zA;case zA:if(u===0)break e;if(d=h-u,n.offset>d){if(d=n.offset-d,d>n.whave&&n.sane){e.msg="invalid distance too far back",n.mode=qe;break}d>n.wnext?(d-=n.wnext,p=n.wsize-d):p=n.wnext-d,d>n.length&&(d=n.length),b=n.window}else b=i,p=o-n.offset,d=n.length;d>u&&(d=u),u-=d,n.length-=d;do i[o++]=b[p++];while(--d);n.length===0&&(n.mode=Ec);break;case UA:if(u===0)break e;i[o++]=n.length,u--,n.mode=Ec;break;case Lp:if(n.wrap){for(;f<32;){if(s===0)break e;s--,l|=r[a++]<<f,f+=8}if(h-=u,e.total_out+=h,n.total+=h,n.wrap&4&&h&&(e.adler=n.check=n.flags?dt(n.check,i,h,o-h):El(n.check,i,h,o-h)),h=u,n.wrap&4&&(n.flags?l:qA(l))!==n.check){e.msg="incorrect data check",n.mode=qe;break}l=0,f=0}n.mode=GA;case GA:if(n.wrap&&n.flags){for(;f<32;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}if(n.wrap&4&&l!==(n.total&4294967295)){e.msg="incorrect length check",n.mode=qe;break}l=0,f=0}n.mode=HA;case HA:R=BL;break e;case qe:R=wA;break e;case VA:return vA;case jA:default:return fn}return e.next_out=o,e.avail_out=u,e.next_in=a,e.avail_in=s,n.hold=l,n.bits=f,(n.wsize||h!==e.avail_out&&n.mode<qe&&(n.mode<Lp||t!==yA))&&XA(e,e.output,e.next_out,h-e.avail_out),c-=e.avail_in,h-=e.avail_out,e.total_in+=c,e.total_out+=h,n.total+=h,n.wrap&4&&h&&(e.adler=n.check=n.flags?dt(n.check,i,h,e.next_out-h):El(n.check,i,h,e.next_out-h)),e.data_type=n.bits+(n.last?64:0)+(n.mode===hr?128:0)+(n.mode===Ac||n.mode===Pp?256:0),(c===0&&h===0||t===yA)&&R===ca&&(R=FL),R},UL=e=>{if(ha(e))return fn;let t=e.state;return t.window&&(t.window=null),e.state=null,ca},GL=(e,t)=>{if(ha(e))return fn;const n=e.state;return n.wrap&2?(n.head=t,t.done=!1,ca):fn},HL=(e,t)=>{const n=t.length;let r,i,a;return ha(e)||(r=e.state,r.wrap!==0&&r.mode!==xc)?fn:r.mode===xc&&(i=1,i=El(i,t,n,0),i!==r.check)?wA:(a=XA(e,t,n,n),a?(r.mode=VA,vA):(r.havedict=1,ca))};var VL=WA,jL=YA,qL=ZA,ZL=NL,WL=QA,YL=zL,QL=UL,$L=GL,XL=HL,KL="pako inflate (from Nodeca project)",dr={inflateReset:VL,inflateReset2:jL,inflateResetKeep:qL,inflateInit:ZL,inflateInit2:WL,inflate:YL,inflateEnd:QL,inflateGetHeader:$L,inflateSetDictionary:XL,inflateInfo:KL};function JL(){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 eN=JL;const KA=Object.prototype.toString,{Z_NO_FLUSH:tN,Z_FINISH:nN,Z_OK:Rl,Z_STREAM_END:zp,Z_NEED_DICT:Up,Z_STREAM_ERROR:rN,Z_DATA_ERROR:JA,Z_MEM_ERROR:iN}=_l;function Ml(e){this.options=mc.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 fA,this.strm.avail_out=0;let n=dr.inflateInit2(this.strm,t.windowBits);if(n!==Rl)throw new Error(lo[n]);if(this.header=new eN,dr.inflateGetHeader(this.strm,this.header),t.dictionary&&(typeof t.dictionary=="string"?t.dictionary=Dl.string2buf(t.dictionary):KA.call(t.dictionary)==="[object ArrayBuffer]"&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(n=dr.inflateSetDictionary(this.strm,t.dictionary),n!==Rl)))throw new Error(lo[n])}Ml.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?nN:tN,KA.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=dr.inflate(n,o),a===Up&&i&&(a=dr.inflateSetDictionary(n,i),a===Rl?a=dr.inflate(n,o):a===JA&&(a=Up));n.avail_in>0&&a===zp&&n.state.wrap>0&&e[n.next_in]!==0;)dr.inflateReset(n),a=dr.inflate(n,o);switch(a){case rN:case JA:case Up:case iN:return this.onEnd(a),this.ended=!0,!1}if(s=n.avail_out,n.next_out&&(n.avail_out===0||a===zp))if(this.options.to==="string"){let u=Dl.utf8border(n.output,n.next_out),l=n.next_out-u,f=Dl.buf2string(n.output,u);n.next_out=l,n.avail_out=r-l,l&&n.output.set(n.output.subarray(u,u+l),0),this.onData(f)}else this.onData(n.output.length===n.next_out?n.output:n.output.subarray(0,n.next_out));if(!(a===Rl&&s===0)){if(a===zp)return a=dr.inflateEnd(this.strm),this.onEnd(a),this.ended=!0,!0;if(n.avail_in===0)break}}return!0},Ml.prototype.onData=function(e){this.chunks.push(e)},Ml.prototype.onEnd=function(e){e===Rl&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=mc.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function Gp(e,t){const n=new Ml(t);if(n.push(e),n.err)throw n.msg||lo[n.err];return n.result}function aN(e,t){return t=t||{},t.raw=!0,Gp(e,t)}var oN=Ml,sN=Gp,lN=aN,uN=Gp,fN=_l,cN={Inflate:oN,inflate:sN,inflateRaw:lN,ungzip:uN,constants:fN};const{Inflate:aU,inflate:oU,inflateRaw:hN,ungzip:sU}=cN;var dN=hN;function pN(e){return dN(e.subarray(2))}let gN=class extends Error{constructor(t){super(t),this.code="ERR_ABORTED"}};function mN(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 _c(e){if(e&&e.aborted)if(typeof DOMException>"u"){const t=new gN("aborted");throw t.code="ERR_ABORTED",t}else throw new DOMException("aborted","AbortError")}const bN=1,yN=2,wN=3;function Hp(e,t,n,r){return e<r&&t>=n}function vN(e){const t=e?"big":"little",n=new Te().endianess(t).uint32("chromId").uint32("start").uint32("end").uint32("validCnt").floatle("minScore").floatle("maxScore").floatle("sumData").floatle("sumSqData").saveOffset("offset"),r=new Te().endianess(t).uint8("isLeaf").skip(1).uint16("cnt").choice({tag:"isLeaf",choices:{1:new Te().endianess(t).array("blocksToFetch",{length:"cnt",type:new Te().endianess(t).uint32("startChrom").uint32("startBase").uint32("endChrom").uint32("endBase").uint64("blockOffset").uint64("blockSize").saveOffset("offset")}),0:new Te().array("recurOffsets",{length:"cnt",type:new Te().endianess(t).uint32("startChrom").uint32("startBase").uint32("endChrom").uint32("endBase").uint64("blockOffset").saveOffset("offset")})}}),i=new Te().endianess(t).uint32("chromId").int32("start").int32("end").string("rest",{zeroTerminated:!0}).saveOffset("offset");return{bigWigParser:new Te().endianess(t).skip(4).int32("blockStart").skip(4).uint32("itemStep").uint32("itemSpan").uint8("blockType").skip(1).uint16("itemCount").choice({tag:"blockType",choices:{[wN]:new Te().array("items",{length:"itemCount",type:new Te().floatle("score")}),[yN]:new Te().array("items",{length:"itemCount",type:new Te().endianess(t).int32("start").floatle("score")}),[bN]:new Te().array("items",{length:"itemCount",type:new Te().endianess(t).int32("start").int32("end").floatle("score")})}}),bigBedParser:i,summaryParser:n,leafParser:r}}class e3{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 fc({cache:new cc({maxSize:1e3}),fill:async(u,l)=>{const f=Number(u.length),c=Number(u.offset),{buffer:h}=await this.bbi.read(pe.Buffer.alloc(f),0,f,c,{signal:l});return h}}),!(r>=0))throw new Error("invalid cirTreeOffset!");const s=vN(i);this.leafParser=s.leafParser,this.bigBedParser=s.bigBedParser}async readWigData(t,n,r,i,a){try{const{refsByName:o,bbi:s,cirTreeOffset:u,isBigEndian:l}=this,f=o[t];f===void 0&&i.complete();const c={chrId:f,start:n,end:r};this.cirTreePromise||(this.cirTreePromise=s.read(pe.Buffer.alloc(48),0,48,Number(u),a));const{buffer:h}=await this.cirTreePromise,d=l?h.readUInt32BE(4):h.readUInt32LE(4);let p=[],b=0;const y=(_,T,I)=>{try{const B=_.subarray(T),R=this.leafParser.parse(B);if(R.blocksToFetch&&(p=p.concat(R.blocksToFetch.filter(L=>w(L)).map(L=>({offset:L.blockOffset,length:L.blockSize})))),R.recurOffsets){const L=R.recurOffsets.filter(j=>w(j)).map(j=>Number(j.blockOffset));L.length>0&&S(L,I+1)}}catch(B){i.error(B)}},w=_=>{const{startChrom:T,startBase:I,endChrom:B,endBase:R}=_;return(T<f||T===f&&I<=r)&&(B>f||B===f&&R>=n)},A=async(_,T,I)=>{try{const B=T.max()-T.min(),R=T.min(),L=await this.featureCache.get(`${B}_${R}`,{length:B,offset:R},a==null?void 0:a.signal);for(const j of _)T.contains(j)&&(y(L,j-R,I),b-=1,b===0&&this.readFeatures(i,p,{...a,request:c}))}catch(B){i.error(B)}},S=(_,T)=>{try{b+=_.length;const I=4+Number(d)*32;let B=new ei(_[0],_[0]+I);for(let R=1;R<_.length;R+=1){const L=new ei(_[R],_[R]+I);B=B.union(L)}B.getRanges().map(R=>A(_,R,T))}catch(I){i.error(I)}};return S([Number(u)+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 u=o.getUint32(a,!0);a+=4;const l=o.getUint32(a,!0);a+=4;const f=o.getUint32(a,!0);a+=4;const c=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&&Hp(u,l,r.start,r.end))&&i.push({start:u,end:l,maxScore:h,minScore:c,summary:!0,score:d/(f||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));s.uniqueId=`bb-${r+o}`,a.push(s),o+=s.offset}return i?a.filter(s=>Hp(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 u=a.getUint32(o,!0);o+=4;const l=a.getUint32(o,!0);o+=4;const f=a.getUint8(o);o+=2;const c=a.getUint16(o,!0);o+=2;const h=new Array(c);switch(f){case 1:{for(let d=0;d<c;d++){const p=a.getInt32(o,!0);o+=4;const b=a.getInt32(o,!0);o+=4;const y=a.getFloat32(o,!0);o+=4,h[d]={start:p,end:b,score:y}}break}case 2:{for(let d=0;d<c;d++){const p=a.getInt32(o,!0);o+=4;const b=a.getFloat32(o,!0);o+=4,h[d]={score:b,start:p,end:p+l}}break}case 3:{for(let d=0;d<c;d++){const p=a.getFloat32(o,!0);o+=4;const b=s+d*u;h[d]={score:p,start:b,end:b+l}}break}}return r?h.filter(d=>Hp(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,u=mN(n);_c(o),await Promise.all(u.map(async l=>{_c(o);const{length:f,offset:c}=l,h=await this.featureCache.get(`${f}_${c}`,l,o);for(const d of l.blocks){_c(o);let p=Number(d.offset)-Number(l.offset),b=h;switch(a&&(b=pN(h.subarray(p)),p=0),_c(o),i){case"summary":{t.next(this.parseSummaryBlock(b,p,s));break}case"bigwig":{t.next(this.parseBigWigBlock(b,p,s));break}case"bigbed":{t.next(this.parseBigBedBlock(b,p,Number(d.offset)*256,s));break}default:console.warn(`Don't know what to do with ${i}`)}}})),t.complete()}catch(i){t.error(i)}}}var Vp=function(e,t){return Vp=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])},Vp(e,t)};function jp(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");Vp(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}function xN(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(f){try{l(r.next(f))}catch(c){o(c)}}function u(f){try{l(r.throw(f))}catch(c){o(c)}}function l(f){f.done?a(f.value):i(f.value).then(s,u)}l((r=r.apply(e,t||[])).next())})}function t3(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(l){return function(f){return u([l,f])}}function u(l){if(r)throw new TypeError("Generator is already executing.");for(;o&&(o=0,l[0]&&(n=0)),n;)try{if(r=1,i&&(a=l[0]&2?i.return:l[0]?i.throw||((a=i.return)&&a.call(i),0):i.next)&&!(a=a.call(i,l[1])).done)return a;switch(i=0,a&&(l=[l[0]&2,a.value]),l[0]){case 0:case 1:a=l;break;case 4:return n.label++,{value:l[1],done:!1};case 5:n.label++,i=l[1],l=[0];continue;case 7:l=n.ops.pop(),n.trys.pop();continue;default:if(a=n.trys,!(a=a.length>0&&a[a.length-1])&&(l[0]===6||l[0]===2)){n=0;continue}if(l[0]===3&&(!a||l[1]>a[0]&&l[1]<a[3])){n.label=l[1];break}if(l[0]===6&&n.label<a[1]){n.label=a[1],a=l;break}if(a&&n.label<a[2]){n.label=a[2],n.ops.push(l);break}a[2]&&n.ops.pop(),n.trys.pop();continue}l=t.call(e,n)}catch(f){l=[6,f],i=0}finally{r=a=0}if(l[0]&5)throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}}function Pl(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 qp(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 Zp(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 mo(e){return this instanceof mo?(this.v=e,this):new mo(e)}function AN(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,b){a.push([h,d,p,b])>1||s(h,d)})})}function s(h,d){try{u(r[h](d))}catch(p){c(a[0][3],p)}}function u(h){h.value instanceof mo?Promise.resolve(h.value.v).then(l,f):c(a[0][2],h)}function l(h){s("next",h)}function f(h){s("throw",h)}function c(h,d){h(d),a.shift(),a.length&&s(a[0][0],a[0][1])}}function EN(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 Pl=="function"?Pl(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,u){o=e[a](o),i(s,u,o.done,o.value)})}}function i(a,o,s,u){Promise.resolve(u).then(function(l){a({value:l,done:s})},o)}}typeof SuppressedError=="function"&&SuppressedError;function ot(e){return typeof e=="function"}function n3(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 Wp=n3(function(e){return function(n){e(this),this.message=n?n.length+` errors occurred during unsubscription:
|
|
449
|
+
*/(function(e){const t=ff,n=K0,r=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;e.Buffer=s,e.SlowBuffer=A,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 v=new Uint8Array(1),g={foo:function(){return 42}};return Object.setPrototypeOf(g,Uint8Array.prototype),Object.setPrototypeOf(v,g),v.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(v){if(v>i)throw new RangeError('The value "'+v+'" is invalid for option "size"');const g=new Uint8Array(v);return Object.setPrototypeOf(g,s.prototype),g}function s(v,g,b){if(typeof v=="number"){if(typeof g=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return f(v)}return u(v,g,b)}s.poolSize=8192;function u(v,g,b){if(typeof v=="string")return h(v,g);if(ArrayBuffer.isView(v))return p(v);if(v==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof v);if(Ct(v,ArrayBuffer)||v&&Ct(v.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(Ct(v,SharedArrayBuffer)||v&&Ct(v.buffer,SharedArrayBuffer)))return m(v,g,b);if(typeof v=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');const k=v.valueOf&&v.valueOf();if(k!=null&&k!==v)return s.from(k,g,b);const F=y(v);if(F)return F;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof v[Symbol.toPrimitive]=="function")return s.from(v[Symbol.toPrimitive]("string"),g,b);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof v)}s.from=function(v,g,b){return u(v,g,b)},Object.setPrototypeOf(s.prototype,Uint8Array.prototype),Object.setPrototypeOf(s,Uint8Array);function l(v){if(typeof v!="number")throw new TypeError('"size" argument must be of type number');if(v<0)throw new RangeError('The value "'+v+'" is invalid for option "size"')}function c(v,g,b){return l(v),v<=0?o(v):g!==void 0?typeof b=="string"?o(v).fill(g,b):o(v).fill(g):o(v)}s.alloc=function(v,g,b){return c(v,g,b)};function f(v){return l(v),o(v<0?0:w(v)|0)}s.allocUnsafe=function(v){return f(v)},s.allocUnsafeSlow=function(v){return f(v)};function h(v,g){if((typeof g!="string"||g==="")&&(g="utf8"),!s.isEncoding(g))throw new TypeError("Unknown encoding: "+g);const b=S(v,g)|0;let k=o(b);const F=k.write(v,g);return F!==b&&(k=k.slice(0,F)),k}function d(v){const g=v.length<0?0:w(v.length)|0,b=o(g);for(let k=0;k<g;k+=1)b[k]=v[k]&255;return b}function p(v){if(Ct(v,Uint8Array)){const g=new Uint8Array(v);return m(g.buffer,g.byteOffset,g.byteLength)}return d(v)}function m(v,g,b){if(g<0||v.byteLength<g)throw new RangeError('"offset" is outside of buffer bounds');if(v.byteLength<g+(b||0))throw new RangeError('"length" is outside of buffer bounds');let k;return g===void 0&&b===void 0?k=new Uint8Array(v):b===void 0?k=new Uint8Array(v,g):k=new Uint8Array(v,g,b),Object.setPrototypeOf(k,s.prototype),k}function y(v){if(s.isBuffer(v)){const g=w(v.length)|0,b=o(g);return b.length===0||v.copy(b,0,0,g),b}if(v.length!==void 0)return typeof v.length!="number"||Cr(v.length)?o(0):d(v);if(v.type==="Buffer"&&Array.isArray(v.data))return d(v.data)}function w(v){if(v>=i)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+i.toString(16)+" bytes");return v|0}function A(v){return+v!=v&&(v=0),s.alloc(+v)}s.isBuffer=function(g){return g!=null&&g._isBuffer===!0&&g!==s.prototype},s.compare=function(g,b){if(Ct(g,Uint8Array)&&(g=s.from(g,g.offset,g.byteLength)),Ct(b,Uint8Array)&&(b=s.from(b,b.offset,b.byteLength)),!s.isBuffer(g)||!s.isBuffer(b))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(g===b)return 0;let k=g.length,F=b.length;for(let O=0,j=Math.min(k,F);O<j;++O)if(g[O]!==b[O]){k=g[O],F=b[O];break}return k<F?-1:F<k?1:0},s.isEncoding=function(g){switch(String(g).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(g,b){if(!Array.isArray(g))throw new TypeError('"list" argument must be an Array of Buffers');if(g.length===0)return s.alloc(0);let k;if(b===void 0)for(b=0,k=0;k<g.length;++k)b+=g[k].length;const F=s.allocUnsafe(b);let O=0;for(k=0;k<g.length;++k){let j=g[k];if(Ct(j,Uint8Array))O+j.length>F.length?(s.isBuffer(j)||(j=s.from(j)),j.copy(F,O)):Uint8Array.prototype.set.call(F,j,O);else if(s.isBuffer(j))j.copy(F,O);else throw new TypeError('"list" argument must be an Array of Buffers');O+=j.length}return F};function S(v,g){if(s.isBuffer(v))return v.length;if(ArrayBuffer.isView(v)||Ct(v,ArrayBuffer))return v.byteLength;if(typeof v!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof v);const b=v.length,k=arguments.length>2&&arguments[2]===!0;if(!k&&b===0)return 0;let F=!1;for(;;)switch(g){case"ascii":case"latin1":case"binary":return b;case"utf8":case"utf-8":return ce(v).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return b*2;case"hex":return b>>>1;case"base64":return wi(v).length;default:if(F)return k?-1:ce(v).length;g=(""+g).toLowerCase(),F=!0}}s.byteLength=S;function _(v,g,b){let k=!1;if((g===void 0||g<0)&&(g=0),g>this.length||((b===void 0||b>this.length)&&(b=this.length),b<=0)||(b>>>=0,g>>>=0,b<=g))return"";for(v||(v="utf8");;)switch(v){case"hex":return We(this,g,b);case"utf8":case"utf-8":return te(this,g,b);case"ascii":return De(this,g,b);case"latin1":case"binary":return Ke(this,g,b);case"base64":return se(this,g,b);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Je(this,g,b);default:if(k)throw new TypeError("Unknown encoding: "+v);v=(v+"").toLowerCase(),k=!0}}s.prototype._isBuffer=!0;function T(v,g,b){const k=v[g];v[g]=v[b],v[b]=k}s.prototype.swap16=function(){const g=this.length;if(g%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let b=0;b<g;b+=2)T(this,b,b+1);return this},s.prototype.swap32=function(){const g=this.length;if(g%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(let b=0;b<g;b+=4)T(this,b,b+3),T(this,b+1,b+2);return this},s.prototype.swap64=function(){const g=this.length;if(g%8!==0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(let b=0;b<g;b+=8)T(this,b,b+7),T(this,b+1,b+6),T(this,b+2,b+5),T(this,b+3,b+4);return this},s.prototype.toString=function(){const g=this.length;return g===0?"":arguments.length===0?te(this,0,g):_.apply(this,arguments)},s.prototype.toLocaleString=s.prototype.toString,s.prototype.equals=function(g){if(!s.isBuffer(g))throw new TypeError("Argument must be a Buffer");return this===g?!0:s.compare(this,g)===0},s.prototype.inspect=function(){let g="";const b=e.INSPECT_MAX_BYTES;return g=this.toString("hex",0,b).replace(/(.{2})/g,"$1 ").trim(),this.length>b&&(g+=" ... "),"<Buffer "+g+">"},r&&(s.prototype[r]=s.prototype.inspect),s.prototype.compare=function(g,b,k,F,O){if(Ct(g,Uint8Array)&&(g=s.from(g,g.offset,g.byteLength)),!s.isBuffer(g))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof g);if(b===void 0&&(b=0),k===void 0&&(k=g?g.length:0),F===void 0&&(F=0),O===void 0&&(O=this.length),b<0||k>g.length||F<0||O>this.length)throw new RangeError("out of range index");if(F>=O&&b>=k)return 0;if(F>=O)return-1;if(b>=k)return 1;if(b>>>=0,k>>>=0,F>>>=0,O>>>=0,this===g)return 0;let j=O-F,fe=k-b;const He=Math.min(j,fe),Pe=this.slice(F,O),Ze=g.slice(b,k);for(let Ce=0;Ce<He;++Ce)if(Pe[Ce]!==Ze[Ce]){j=Pe[Ce],fe=Ze[Ce];break}return j<fe?-1:fe<j?1:0};function I(v,g,b,k,F){if(v.length===0)return-1;if(typeof b=="string"?(k=b,b=0):b>2147483647?b=2147483647:b<-2147483648&&(b=-2147483648),b=+b,Cr(b)&&(b=F?0:v.length-1),b<0&&(b=v.length+b),b>=v.length){if(F)return-1;b=v.length-1}else if(b<0)if(F)b=0;else return-1;if(typeof g=="string"&&(g=s.from(g,k)),s.isBuffer(g))return g.length===0?-1:B(v,g,b,k,F);if(typeof g=="number")return g=g&255,typeof Uint8Array.prototype.indexOf=="function"?F?Uint8Array.prototype.indexOf.call(v,g,b):Uint8Array.prototype.lastIndexOf.call(v,g,b):B(v,[g],b,k,F);throw new TypeError("val must be string, number or Buffer")}function B(v,g,b,k,F){let O=1,j=v.length,fe=g.length;if(k!==void 0&&(k=String(k).toLowerCase(),k==="ucs2"||k==="ucs-2"||k==="utf16le"||k==="utf-16le")){if(v.length<2||g.length<2)return-1;O=2,j/=2,fe/=2,b/=2}function He(Ze,Ce){return O===1?Ze[Ce]:Ze.readUInt16BE(Ce*O)}let Pe;if(F){let Ze=-1;for(Pe=b;Pe<j;Pe++)if(He(v,Pe)===He(g,Ze===-1?0:Pe-Ze)){if(Ze===-1&&(Ze=Pe),Pe-Ze+1===fe)return Ze*O}else Ze!==-1&&(Pe-=Pe-Ze),Ze=-1}else for(b+fe>j&&(b=j-fe),Pe=b;Pe>=0;Pe--){let Ze=!0;for(let Ce=0;Ce<fe;Ce++)if(He(v,Pe+Ce)!==He(g,Ce)){Ze=!1;break}if(Ze)return Pe}return-1}s.prototype.includes=function(g,b,k){return this.indexOf(g,b,k)!==-1},s.prototype.indexOf=function(g,b,k){return I(this,g,b,k,!0)},s.prototype.lastIndexOf=function(g,b,k){return I(this,g,b,k,!1)};function R(v,g,b,k){b=Number(b)||0;const F=v.length-b;k?(k=Number(k),k>F&&(k=F)):k=F;const O=g.length;k>O/2&&(k=O/2);let j;for(j=0;j<k;++j){const fe=parseInt(g.substr(j*2,2),16);if(Cr(fe))return j;v[b+j]=fe}return j}function M(v,g,b,k){return vi(ce(g,v.length-b),v,b,k)}function G(v,g,b,k){return vi(qt(g),v,b,k)}function N(v,g,b,k){return vi(wi(g),v,b,k)}function re(v,g,b,k){return vi(yi(g,v.length-b),v,b,k)}s.prototype.write=function(g,b,k,F){if(b===void 0)F="utf8",k=this.length,b=0;else if(k===void 0&&typeof b=="string")F=b,k=this.length,b=0;else if(isFinite(b))b=b>>>0,isFinite(k)?(k=k>>>0,F===void 0&&(F="utf8")):(F=k,k=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");const O=this.length-b;if((k===void 0||k>O)&&(k=O),g.length>0&&(k<0||b<0)||b>this.length)throw new RangeError("Attempt to write outside buffer bounds");F||(F="utf8");let j=!1;for(;;)switch(F){case"hex":return R(this,g,b,k);case"utf8":case"utf-8":return M(this,g,b,k);case"ascii":case"latin1":case"binary":return G(this,g,b,k);case"base64":return N(this,g,b,k);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return re(this,g,b,k);default:if(j)throw new TypeError("Unknown encoding: "+F);F=(""+F).toLowerCase(),j=!0}},s.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function se(v,g,b){return g===0&&b===v.length?t.fromByteArray(v):t.fromByteArray(v.slice(g,b))}function te(v,g,b){b=Math.min(v.length,b);const k=[];let F=g;for(;F<b;){const O=v[F];let j=null,fe=O>239?4:O>223?3:O>191?2:1;if(F+fe<=b){let He,Pe,Ze,Ce;switch(fe){case 1:O<128&&(j=O);break;case 2:He=v[F+1],(He&192)===128&&(Ce=(O&31)<<6|He&63,Ce>127&&(j=Ce));break;case 3:He=v[F+1],Pe=v[F+2],(He&192)===128&&(Pe&192)===128&&(Ce=(O&15)<<12|(He&63)<<6|Pe&63,Ce>2047&&(Ce<55296||Ce>57343)&&(j=Ce));break;case 4:He=v[F+1],Pe=v[F+2],Ze=v[F+3],(He&192)===128&&(Pe&192)===128&&(Ze&192)===128&&(Ce=(O&15)<<18|(He&63)<<12|(Pe&63)<<6|Ze&63,Ce>65535&&Ce<1114112&&(j=Ce))}}j===null?(j=65533,fe=1):j>65535&&(j-=65536,k.push(j>>>10&1023|55296),j=56320|j&1023),k.push(j),F+=fe}return Xe(k)}const ge=4096;function Xe(v){const g=v.length;if(g<=ge)return String.fromCharCode.apply(String,v);let b="",k=0;for(;k<g;)b+=String.fromCharCode.apply(String,v.slice(k,k+=ge));return b}function De(v,g,b){let k="";b=Math.min(v.length,b);for(let F=g;F<b;++F)k+=String.fromCharCode(v[F]&127);return k}function Ke(v,g,b){let k="";b=Math.min(v.length,b);for(let F=g;F<b;++F)k+=String.fromCharCode(v[F]);return k}function We(v,g,b){const k=v.length;(!g||g<0)&&(g=0),(!b||b<0||b>k)&&(b=k);let F="";for(let O=g;O<b;++O)F+=xi[v[O]];return F}function Je(v,g,b){const k=v.slice(g,b);let F="";for(let O=0;O<k.length-1;O+=2)F+=String.fromCharCode(k[O]+k[O+1]*256);return F}s.prototype.slice=function(g,b){const k=this.length;g=~~g,b=b===void 0?k:~~b,g<0?(g+=k,g<0&&(g=0)):g>k&&(g=k),b<0?(b+=k,b<0&&(b=0)):b>k&&(b=k),b<g&&(b=g);const F=this.subarray(g,b);return Object.setPrototypeOf(F,s.prototype),F};function _e(v,g,b){if(v%1!==0||v<0)throw new RangeError("offset is not uint");if(v+g>b)throw new RangeError("Trying to access beyond buffer length")}s.prototype.readUintLE=s.prototype.readUIntLE=function(g,b,k){g=g>>>0,b=b>>>0,k||_e(g,b,this.length);let F=this[g],O=1,j=0;for(;++j<b&&(O*=256);)F+=this[g+j]*O;return F},s.prototype.readUintBE=s.prototype.readUIntBE=function(g,b,k){g=g>>>0,b=b>>>0,k||_e(g,b,this.length);let F=this[g+--b],O=1;for(;b>0&&(O*=256);)F+=this[g+--b]*O;return F},s.prototype.readUint8=s.prototype.readUInt8=function(g,b){return g=g>>>0,b||_e(g,1,this.length),this[g]},s.prototype.readUint16LE=s.prototype.readUInt16LE=function(g,b){return g=g>>>0,b||_e(g,2,this.length),this[g]|this[g+1]<<8},s.prototype.readUint16BE=s.prototype.readUInt16BE=function(g,b){return g=g>>>0,b||_e(g,2,this.length),this[g]<<8|this[g+1]},s.prototype.readUint32LE=s.prototype.readUInt32LE=function(g,b){return g=g>>>0,b||_e(g,4,this.length),(this[g]|this[g+1]<<8|this[g+2]<<16)+this[g+3]*16777216},s.prototype.readUint32BE=s.prototype.readUInt32BE=function(g,b){return g=g>>>0,b||_e(g,4,this.length),this[g]*16777216+(this[g+1]<<16|this[g+2]<<8|this[g+3])},s.prototype.readBigUInt64LE=Wt(function(g){g=g>>>0,H(g,"offset");const b=this[g],k=this[g+7];(b===void 0||k===void 0)&&q(g,this.length-8);const F=b+this[++g]*2**8+this[++g]*2**16+this[++g]*2**24,O=this[++g]+this[++g]*2**8+this[++g]*2**16+k*2**24;return BigInt(F)+(BigInt(O)<<BigInt(32))}),s.prototype.readBigUInt64BE=Wt(function(g){g=g>>>0,H(g,"offset");const b=this[g],k=this[g+7];(b===void 0||k===void 0)&&q(g,this.length-8);const F=b*2**24+this[++g]*2**16+this[++g]*2**8+this[++g],O=this[++g]*2**24+this[++g]*2**16+this[++g]*2**8+k;return(BigInt(F)<<BigInt(32))+BigInt(O)}),s.prototype.readIntLE=function(g,b,k){g=g>>>0,b=b>>>0,k||_e(g,b,this.length);let F=this[g],O=1,j=0;for(;++j<b&&(O*=256);)F+=this[g+j]*O;return O*=128,F>=O&&(F-=Math.pow(2,8*b)),F},s.prototype.readIntBE=function(g,b,k){g=g>>>0,b=b>>>0,k||_e(g,b,this.length);let F=b,O=1,j=this[g+--F];for(;F>0&&(O*=256);)j+=this[g+--F]*O;return O*=128,j>=O&&(j-=Math.pow(2,8*b)),j},s.prototype.readInt8=function(g,b){return g=g>>>0,b||_e(g,1,this.length),this[g]&128?(255-this[g]+1)*-1:this[g]},s.prototype.readInt16LE=function(g,b){g=g>>>0,b||_e(g,2,this.length);const k=this[g]|this[g+1]<<8;return k&32768?k|4294901760:k},s.prototype.readInt16BE=function(g,b){g=g>>>0,b||_e(g,2,this.length);const k=this[g+1]|this[g]<<8;return k&32768?k|4294901760:k},s.prototype.readInt32LE=function(g,b){return g=g>>>0,b||_e(g,4,this.length),this[g]|this[g+1]<<8|this[g+2]<<16|this[g+3]<<24},s.prototype.readInt32BE=function(g,b){return g=g>>>0,b||_e(g,4,this.length),this[g]<<24|this[g+1]<<16|this[g+2]<<8|this[g+3]},s.prototype.readBigInt64LE=Wt(function(g){g=g>>>0,H(g,"offset");const b=this[g],k=this[g+7];(b===void 0||k===void 0)&&q(g,this.length-8);const F=this[g+4]+this[g+5]*2**8+this[g+6]*2**16+(k<<24);return(BigInt(F)<<BigInt(32))+BigInt(b+this[++g]*2**8+this[++g]*2**16+this[++g]*2**24)}),s.prototype.readBigInt64BE=Wt(function(g){g=g>>>0,H(g,"offset");const b=this[g],k=this[g+7];(b===void 0||k===void 0)&&q(g,this.length-8);const F=(b<<24)+this[++g]*2**16+this[++g]*2**8+this[++g];return(BigInt(F)<<BigInt(32))+BigInt(this[++g]*2**24+this[++g]*2**16+this[++g]*2**8+k)}),s.prototype.readFloatLE=function(g,b){return g=g>>>0,b||_e(g,4,this.length),n.read(this,g,!0,23,4)},s.prototype.readFloatBE=function(g,b){return g=g>>>0,b||_e(g,4,this.length),n.read(this,g,!1,23,4)},s.prototype.readDoubleLE=function(g,b){return g=g>>>0,b||_e(g,8,this.length),n.read(this,g,!0,52,8)},s.prototype.readDoubleBE=function(g,b){return g=g>>>0,b||_e(g,8,this.length),n.read(this,g,!1,52,8)};function Se(v,g,b,k,F,O){if(!s.isBuffer(v))throw new TypeError('"buffer" argument must be a Buffer instance');if(g>F||g<O)throw new RangeError('"value" argument is out of bounds');if(b+k>v.length)throw new RangeError("Index out of range")}s.prototype.writeUintLE=s.prototype.writeUIntLE=function(g,b,k,F){if(g=+g,b=b>>>0,k=k>>>0,!F){const fe=Math.pow(2,8*k)-1;Se(this,g,b,k,fe,0)}let O=1,j=0;for(this[b]=g&255;++j<k&&(O*=256);)this[b+j]=g/O&255;return b+k},s.prototype.writeUintBE=s.prototype.writeUIntBE=function(g,b,k,F){if(g=+g,b=b>>>0,k=k>>>0,!F){const fe=Math.pow(2,8*k)-1;Se(this,g,b,k,fe,0)}let O=k-1,j=1;for(this[b+O]=g&255;--O>=0&&(j*=256);)this[b+O]=g/j&255;return b+k},s.prototype.writeUint8=s.prototype.writeUInt8=function(g,b,k){return g=+g,b=b>>>0,k||Se(this,g,b,1,255,0),this[b]=g&255,b+1},s.prototype.writeUint16LE=s.prototype.writeUInt16LE=function(g,b,k){return g=+g,b=b>>>0,k||Se(this,g,b,2,65535,0),this[b]=g&255,this[b+1]=g>>>8,b+2},s.prototype.writeUint16BE=s.prototype.writeUInt16BE=function(g,b,k){return g=+g,b=b>>>0,k||Se(this,g,b,2,65535,0),this[b]=g>>>8,this[b+1]=g&255,b+2},s.prototype.writeUint32LE=s.prototype.writeUInt32LE=function(g,b,k){return g=+g,b=b>>>0,k||Se(this,g,b,4,4294967295,0),this[b+3]=g>>>24,this[b+2]=g>>>16,this[b+1]=g>>>8,this[b]=g&255,b+4},s.prototype.writeUint32BE=s.prototype.writeUInt32BE=function(g,b,k){return g=+g,b=b>>>0,k||Se(this,g,b,4,4294967295,0),this[b]=g>>>24,this[b+1]=g>>>16,this[b+2]=g>>>8,this[b+3]=g&255,b+4};function gt(v,g,b,k,F){x(g,k,F,v,b,7);let O=Number(g&BigInt(4294967295));v[b++]=O,O=O>>8,v[b++]=O,O=O>>8,v[b++]=O,O=O>>8,v[b++]=O;let j=Number(g>>BigInt(32)&BigInt(4294967295));return v[b++]=j,j=j>>8,v[b++]=j,j=j>>8,v[b++]=j,j=j>>8,v[b++]=j,b}function $t(v,g,b,k,F){x(g,k,F,v,b,7);let O=Number(g&BigInt(4294967295));v[b+7]=O,O=O>>8,v[b+6]=O,O=O>>8,v[b+5]=O,O=O>>8,v[b+4]=O;let j=Number(g>>BigInt(32)&BigInt(4294967295));return v[b+3]=j,j=j>>8,v[b+2]=j,j=j>>8,v[b+1]=j,j=j>>8,v[b]=j,b+8}s.prototype.writeBigUInt64LE=Wt(function(g,b=0){return gt(this,g,b,BigInt(0),BigInt("0xffffffffffffffff"))}),s.prototype.writeBigUInt64BE=Wt(function(g,b=0){return $t(this,g,b,BigInt(0),BigInt("0xffffffffffffffff"))}),s.prototype.writeIntLE=function(g,b,k,F){if(g=+g,b=b>>>0,!F){const He=Math.pow(2,8*k-1);Se(this,g,b,k,He-1,-He)}let O=0,j=1,fe=0;for(this[b]=g&255;++O<k&&(j*=256);)g<0&&fe===0&&this[b+O-1]!==0&&(fe=1),this[b+O]=(g/j>>0)-fe&255;return b+k},s.prototype.writeIntBE=function(g,b,k,F){if(g=+g,b=b>>>0,!F){const He=Math.pow(2,8*k-1);Se(this,g,b,k,He-1,-He)}let O=k-1,j=1,fe=0;for(this[b+O]=g&255;--O>=0&&(j*=256);)g<0&&fe===0&&this[b+O+1]!==0&&(fe=1),this[b+O]=(g/j>>0)-fe&255;return b+k},s.prototype.writeInt8=function(g,b,k){return g=+g,b=b>>>0,k||Se(this,g,b,1,127,-128),g<0&&(g=255+g+1),this[b]=g&255,b+1},s.prototype.writeInt16LE=function(g,b,k){return g=+g,b=b>>>0,k||Se(this,g,b,2,32767,-32768),this[b]=g&255,this[b+1]=g>>>8,b+2},s.prototype.writeInt16BE=function(g,b,k){return g=+g,b=b>>>0,k||Se(this,g,b,2,32767,-32768),this[b]=g>>>8,this[b+1]=g&255,b+2},s.prototype.writeInt32LE=function(g,b,k){return g=+g,b=b>>>0,k||Se(this,g,b,4,2147483647,-2147483648),this[b]=g&255,this[b+1]=g>>>8,this[b+2]=g>>>16,this[b+3]=g>>>24,b+4},s.prototype.writeInt32BE=function(g,b,k){return g=+g,b=b>>>0,k||Se(this,g,b,4,2147483647,-2147483648),g<0&&(g=4294967295+g+1),this[b]=g>>>24,this[b+1]=g>>>16,this[b+2]=g>>>8,this[b+3]=g&255,b+4},s.prototype.writeBigInt64LE=Wt(function(g,b=0){return gt(this,g,b,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),s.prototype.writeBigInt64BE=Wt(function(g,b=0){return $t(this,g,b,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function Ne(v,g,b,k,F,O){if(b+k>v.length)throw new RangeError("Index out of range");if(b<0)throw new RangeError("Index out of range")}function L(v,g,b,k,F){return g=+g,b=b>>>0,F||Ne(v,g,b,4),n.write(v,g,b,k,23,4),b+4}s.prototype.writeFloatLE=function(g,b,k){return L(this,g,b,!0,k)},s.prototype.writeFloatBE=function(g,b,k){return L(this,g,b,!1,k)};function P(v,g,b,k,F){return g=+g,b=b>>>0,F||Ne(v,g,b,8),n.write(v,g,b,k,52,8),b+8}s.prototype.writeDoubleLE=function(g,b,k){return P(this,g,b,!0,k)},s.prototype.writeDoubleBE=function(g,b,k){return P(this,g,b,!1,k)},s.prototype.copy=function(g,b,k,F){if(!s.isBuffer(g))throw new TypeError("argument should be a Buffer");if(k||(k=0),!F&&F!==0&&(F=this.length),b>=g.length&&(b=g.length),b||(b=0),F>0&&F<k&&(F=k),F===k||g.length===0||this.length===0)return 0;if(b<0)throw new RangeError("targetStart out of bounds");if(k<0||k>=this.length)throw new RangeError("Index out of range");if(F<0)throw new RangeError("sourceEnd out of bounds");F>this.length&&(F=this.length),g.length-b<F-k&&(F=g.length-b+k);const O=F-k;return this===g&&typeof Uint8Array.prototype.copyWithin=="function"?this.copyWithin(b,k,F):Uint8Array.prototype.set.call(g,this.subarray(k,F),b),O},s.prototype.fill=function(g,b,k,F){if(typeof g=="string"){if(typeof b=="string"?(F=b,b=0,k=this.length):typeof k=="string"&&(F=k,k=this.length),F!==void 0&&typeof F!="string")throw new TypeError("encoding must be a string");if(typeof F=="string"&&!s.isEncoding(F))throw new TypeError("Unknown encoding: "+F);if(g.length===1){const j=g.charCodeAt(0);(F==="utf8"&&j<128||F==="latin1")&&(g=j)}}else typeof g=="number"?g=g&255:typeof g=="boolean"&&(g=Number(g));if(b<0||this.length<b||this.length<k)throw new RangeError("Out of range index");if(k<=b)return this;b=b>>>0,k=k===void 0?this.length:k>>>0,g||(g=0);let O;if(typeof g=="number")for(O=b;O<k;++O)this[O]=g;else{const j=s.isBuffer(g)?g:s.from(g,F),fe=j.length;if(fe===0)throw new TypeError('The value "'+g+'" is invalid for argument "value"');for(O=0;O<k-b;++O)this[O+b]=j[O%fe]}return this};const $={};function V(v,g,b){$[v]=class extends b{constructor(){super(),Object.defineProperty(this,"message",{value:g.apply(this,arguments),writable:!0,configurable:!0}),this.name=`${this.name} [${v}]`,this.stack,delete this.name}get code(){return v}set code(F){Object.defineProperty(this,"code",{configurable:!0,enumerable:!0,value:F,writable:!0})}toString(){return`${this.name} [${v}]: ${this.message}`}}}V("ERR_BUFFER_OUT_OF_BOUNDS",function(v){return v?`${v} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"},RangeError),V("ERR_INVALID_ARG_TYPE",function(v,g){return`The "${v}" argument must be of type number. Received type ${typeof g}`},TypeError),V("ERR_OUT_OF_RANGE",function(v,g,b){let k=`The value of "${v}" is out of range.`,F=b;return Number.isInteger(b)&&Math.abs(b)>2**32?F=Z(String(b)):typeof b=="bigint"&&(F=String(b),(b>BigInt(2)**BigInt(32)||b<-(BigInt(2)**BigInt(32)))&&(F=Z(F)),F+="n"),k+=` It must be ${g}. Received ${F}`,k},RangeError);function Z(v){let g="",b=v.length;const k=v[0]==="-"?1:0;for(;b>=k+4;b-=3)g=`_${v.slice(b-3,b)}${g}`;return`${v.slice(0,b)}${g}`}function C(v,g,b){H(g,"offset"),(v[g]===void 0||v[g+b]===void 0)&&q(g,v.length-(b+1))}function x(v,g,b,k,F,O){if(v>b||v<g){const j=typeof g=="bigint"?"n":"";let fe;throw O>3?g===0||g===BigInt(0)?fe=`>= 0${j} and < 2${j} ** ${(O+1)*8}${j}`:fe=`>= -(2${j} ** ${(O+1)*8-1}${j}) and < 2 ** ${(O+1)*8-1}${j}`:fe=`>= ${g}${j} and <= ${b}${j}`,new $.ERR_OUT_OF_RANGE("value",fe,v)}C(k,F,O)}function H(v,g){if(typeof v!="number")throw new $.ERR_INVALID_ARG_TYPE(g,"number",v)}function q(v,g,b){throw Math.floor(v)!==v?(H(v,b),new $.ERR_OUT_OF_RANGE(b||"offset","an integer",v)):g<0?new $.ERR_BUFFER_OUT_OF_BOUNDS:new $.ERR_OUT_OF_RANGE(b||"offset",`>= ${b?1:0} and <= ${g}`,v)}const ue=/[^+/0-9A-Za-z-_]/g;function ne(v){if(v=v.split("=")[0],v=v.trim().replace(ue,""),v.length<2)return"";for(;v.length%4!==0;)v=v+"=";return v}function ce(v,g){g=g||1/0;let b;const k=v.length;let F=null;const O=[];for(let j=0;j<k;++j){if(b=v.charCodeAt(j),b>55295&&b<57344){if(!F){if(b>56319){(g-=3)>-1&&O.push(239,191,189);continue}else if(j+1===k){(g-=3)>-1&&O.push(239,191,189);continue}F=b;continue}if(b<56320){(g-=3)>-1&&O.push(239,191,189),F=b;continue}b=(F-55296<<10|b-56320)+65536}else F&&(g-=3)>-1&&O.push(239,191,189);if(F=null,b<128){if((g-=1)<0)break;O.push(b)}else if(b<2048){if((g-=2)<0)break;O.push(b>>6|192,b&63|128)}else if(b<65536){if((g-=3)<0)break;O.push(b>>12|224,b>>6&63|128,b&63|128)}else if(b<1114112){if((g-=4)<0)break;O.push(b>>18|240,b>>12&63|128,b>>6&63|128,b&63|128)}else throw new Error("Invalid code point")}return O}function qt(v){const g=[];for(let b=0;b<v.length;++b)g.push(v.charCodeAt(b)&255);return g}function yi(v,g){let b,k,F;const O=[];for(let j=0;j<v.length&&!((g-=2)<0);++j)b=v.charCodeAt(j),k=b>>8,F=b%256,O.push(F),O.push(k);return O}function wi(v){return t.toByteArray(ne(v))}function vi(v,g,b,k){let F;for(F=0;F<k&&!(F+b>=g.length||F>=v.length);++F)g[F+b]=v[F];return F}function Ct(v,g){return v instanceof g||v!=null&&v.constructor!=null&&v.constructor.name!=null&&v.constructor.name===g.name}function Cr(v){return v!==v}const xi=function(){const v="0123456789abcdef",g=new Array(256);for(let b=0;b<16;++b){const k=b*16;for(let F=0;F<16;++F)g[k+F]=v[b]+v[F]}return g}();function Wt(v){return typeof BigInt>"u"?nr:v}function nr(){throw new Error("BigInt not supported")}})(me);const bv=xe({__proto__:null,default:ll(me)},[me]),dt={},S7=Object.freeze(Object.defineProperty({__proto__:null,default:dt},Symbol.toStringTag,{value:"Module"})),J0=typeof window<"u"?window:typeof self<"u"?self:{fetch:void 0};class Qi{async getBufferFromResponse(t){if(typeof t.buffer=="function")return t.buffer();if(typeof t.arrayBuffer=="function"){const n=await t.arrayBuffer();return me.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||J0.fetch&&J0.fetch.bind(J0);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:u={}}=a;r<1/0?o.range=`bytes=${i}-${i+r}`:r===1/0&&i!==0&&(o.range=`bytes=${i}-`);const l={...this.baseOverrides,...u,headers:{...o,...u.headers,...this.baseOverrides.headers},method:"GET",redirect:"follow",mode:"cors",signal:s},c=await this.fetch(this.url,l);if(!c.ok)throw new Error(`HTTP ${c.status} ${c.statusText} ${this.url}`);if(c.status===200&&i===0||c.status===206){const f=await this.getBufferFromResponse(c),h=f.copy(t,n,0,Math.min(r,f.length)),d=c.headers.get("content-range"),p=/\/(\d+)$/.exec(d||"");return p&&p[1]&&(this._stat={size:parseInt(p[1],10)}),{bytesRead:h,buffer:t}}throw c.status===200?new Error("${this.url} fetch returned status 200, expected 206"):new Error(`HTTP ${c.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},u=await this.fetch(this.url,s);if(!u)throw new Error("generic-filehandle failed to fetch");if(u.status!==200)throw Object.assign(new Error(`HTTP ${u.status} fetching ${this.url}`),{status:u.status});if(n==="utf8")return u.text();if(n)throw new Error(`unsupported encoding: ${n}`);return this.getBufferFromResponse(u)}async stat(){if(!this._stat){const t=me.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(){}}function yv(e){const t=new FileReader;return new Promise((n,r)=>{t.onerror=()=>{t.abort(),r(new Error("problem reading blob"))},t.onabort=()=>{r(new Error("blob reading was aborted"))},t.onload=()=>{t.result&&typeof t.result!="string"?n(t.result):r(new Error("unknown error reading blob"))},t.readAsArrayBuffer(e)})}function C7(e){const t=new FileReader;return new Promise((n,r)=>{t.onerror=()=>{t.abort(),r(new Error("problem reading blob"))},t.onabort=()=>{r(new Error("blob reading was aborted"))},t.onload=()=>{t.result&&typeof t.result=="string"?n(t.result):r(new Error("unknown error reading blob"))},t.readAsText(e)})}class k7{constructor(t){this.blob=t,this.size=t.size}async read(t,n=0,r,i=0){if(!r)return{bytesRead:0,buffer:t};const a=i,o=a+r,s=await yv(this.blob.slice(a,o)),u=me.Buffer.from(s);return{bytesRead:u.copy(t,n),buffer:u}}async readFile(t){let n;if(typeof t=="string"?n=t:n=t&&t.encoding,n==="utf8")return C7(this.blob);if(n)throw new Error(`unsupported encoding: ${n}`);const r=await yv(this.blob);return me.Buffer.from(r)}async stat(){return{size:this.size}}async close(){}}function wv(e,t={}){return new Qi(e,t)}function T7(e,t,n,r={}){if(n!==void 0)return n;if(e!==void 0)return wv(e,r);if(t!==void 0)return new dt(t,r);throw new Error("no url, path, or filehandle provided, cannot open")}const ul=Object.freeze(Object.defineProperty({__proto__:null,BlobFile:k7,LocalFile:dt,RemoteFile:Qi,fromUrl:wv,open:T7},Symbol.toStringTag,{value:"Module"}));var pr={};(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 u in s)n(s,u)&&(a[u]=s[u])}}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,u,l){if(o.subarray&&a.subarray){a.set(o.subarray(s,s+u),l);return}for(var c=0;c<u;c++)a[l+c]=o[s+c]},flattenChunks:function(a){var o,s,u,l,c,f;for(u=0,o=0,s=a.length;o<s;o++)u+=a[o].length;for(f=new Uint8Array(u),l=0,o=0,s=a.length;o<s;o++)c=a[o],f.set(c,l),l+=c.length;return f}},i={arraySet:function(a,o,s,u,l){for(var c=0;c<u;c++)a[l+c]=o[s+c]},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)})(pr);var cl={},Wn={},Xa={},I7=pr,B7=4,vv=0,xv=1,D7=2;function Ka(e){for(var t=e.length;--t>=0;)e[t]=0}var R7=0,Av=1,F7=2,M7=3,P7=258,ep=29,fl=256,hl=fl+1+ep,Ja=30,tp=19,Ev=2*hl+1,Xi=15,np=16,L7=7,rp=256,_v=16,Sv=17,Cv=18,ip=[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],hf=[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],O7=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],kv=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],N7=512,gr=new Array((hl+2)*2);Ka(gr);var dl=new Array(Ja*2);Ka(dl);var pl=new Array(N7);Ka(pl);var gl=new Array(P7-M7+1);Ka(gl);var ap=new Array(ep);Ka(ap);var df=new Array(Ja);Ka(df);function op(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 Tv,Iv,Bv;function sp(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}function Dv(e){return e<256?pl[e]:pl[256+(e>>>7)]}function ml(e,t){e.pending_buf[e.pending++]=t&255,e.pending_buf[e.pending++]=t>>>8&255}function Gt(e,t,n){e.bi_valid>np-n?(e.bi_buf|=t<<e.bi_valid&65535,ml(e,e.bi_buf),e.bi_buf=t>>np-e.bi_valid,e.bi_valid+=n-np):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=n)}function Zn(e,t,n){Gt(e,n[t*2],n[t*2+1])}function Rv(e,t){var n=0;do n|=e&1,e>>>=1,n<<=1;while(--t>0);return n>>>1}function z7(e){e.bi_valid===16?(ml(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 U7(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,u=t.stat_desc.max_length,l,c,f,h,d,p,m=0;for(h=0;h<=Xi;h++)e.bl_count[h]=0;for(n[e.heap[e.heap_max]*2+1]=0,l=e.heap_max+1;l<Ev;l++)c=e.heap[l],h=n[n[c*2+1]*2+1]+1,h>u&&(h=u,m++),n[c*2+1]=h,!(c>r)&&(e.bl_count[h]++,d=0,c>=s&&(d=o[c-s]),p=n[c*2],e.opt_len+=p*(h+d),a&&(e.static_len+=p*(i[c*2+1]+d)));if(m!==0){do{for(h=u-1;e.bl_count[h]===0;)h--;e.bl_count[h]--,e.bl_count[h+1]+=2,e.bl_count[u]--,m-=2}while(m>0);for(h=u;h!==0;h--)for(c=e.bl_count[h];c!==0;)f=e.heap[--l],!(f>r)&&(n[f*2+1]!==h&&(e.opt_len+=(h-n[f*2+1])*n[f*2],n[f*2+1]=h),c--)}}function Fv(e,t,n){var r=new Array(Xi+1),i=0,a,o;for(a=1;a<=Xi;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]=Rv(r[s]++,s))}}function G7(){var e,t,n,r,i,a=new Array(Xi+1);for(n=0,r=0;r<ep-1;r++)for(ap[r]=n,e=0;e<1<<ip[r];e++)gl[n++]=r;for(gl[n-1]=r,i=0,r=0;r<16;r++)for(df[r]=i,e=0;e<1<<hf[r];e++)pl[i++]=r;for(i>>=7;r<Ja;r++)for(df[r]=i<<7,e=0;e<1<<hf[r]-7;e++)pl[256+i++]=r;for(t=0;t<=Xi;t++)a[t]=0;for(e=0;e<=143;)gr[e*2+1]=8,e++,a[8]++;for(;e<=255;)gr[e*2+1]=9,e++,a[9]++;for(;e<=279;)gr[e*2+1]=7,e++,a[7]++;for(;e<=287;)gr[e*2+1]=8,e++,a[8]++;for(Fv(gr,hl+1,a),e=0;e<Ja;e++)dl[e*2+1]=5,dl[e*2]=Rv(e,5);Tv=new op(gr,ip,fl+1,hl,Xi),Iv=new op(dl,hf,0,Ja,Xi),Bv=new op(new Array(0),O7,0,tp,L7)}function Mv(e){var t;for(t=0;t<hl;t++)e.dyn_ltree[t*2]=0;for(t=0;t<Ja;t++)e.dyn_dtree[t*2]=0;for(t=0;t<tp;t++)e.bl_tree[t*2]=0;e.dyn_ltree[rp*2]=1,e.opt_len=e.static_len=0,e.last_lit=e.matches=0}function Pv(e){e.bi_valid>8?ml(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 H7(e,t,n,r){Pv(e),r&&(ml(e,n),ml(e,~n)),I7.arraySet(e.pending_buf,e.window,t,n,e.pending),e.pending+=n}function Lv(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 lp(e,t,n){for(var r=e.heap[n],i=n<<1;i<=e.heap_len&&(i<e.heap_len&&Lv(t,e.heap[i+1],e.heap[i],e.depth)&&i++,!Lv(t,r,e.heap[i],e.depth));)e.heap[n]=e.heap[i],n=i,i<<=1;e.heap[n]=r}function Ov(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?Zn(e,i,t):(o=gl[i],Zn(e,o+fl+1,t),s=ip[o],s!==0&&(i-=ap[o],Gt(e,i,s)),r--,o=Dv(r),Zn(e,o,n),s=hf[o],s!==0&&(r-=df[o],Gt(e,r,s)));while(a<e.last_lit);Zn(e,rp,t)}function up(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,u=-1,l;for(e.heap_len=0,e.heap_max=Ev,o=0;o<a;o++)n[o*2]!==0?(e.heap[++e.heap_len]=u=o,e.depth[o]=0):n[o*2+1]=0;for(;e.heap_len<2;)l=e.heap[++e.heap_len]=u<2?++u:0,n[l*2]=1,e.depth[l]=0,e.opt_len--,i&&(e.static_len-=r[l*2+1]);for(t.max_code=u,o=e.heap_len>>1;o>=1;o--)lp(e,n,o);l=a;do o=e.heap[1],e.heap[1]=e.heap[e.heap_len--],lp(e,n,1),s=e.heap[1],e.heap[--e.heap_max]=o,e.heap[--e.heap_max]=s,n[l*2]=n[o*2]+n[s*2],e.depth[l]=(e.depth[o]>=e.depth[s]?e.depth[o]:e.depth[s])+1,n[o*2+1]=n[s*2+1]=l,e.heap[1]=l++,lp(e,n,1);while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],U7(e,t),Fv(n,u,e.bl_count)}function Nv(e,t,n){var r,i=-1,a,o=t[0*2+1],s=0,u=7,l=4;for(o===0&&(u=138,l=3),t[(n+1)*2+1]=65535,r=0;r<=n;r++)a=o,o=t[(r+1)*2+1],!(++s<u&&a===o)&&(s<l?e.bl_tree[a*2]+=s:a!==0?(a!==i&&e.bl_tree[a*2]++,e.bl_tree[_v*2]++):s<=10?e.bl_tree[Sv*2]++:e.bl_tree[Cv*2]++,s=0,i=a,o===0?(u=138,l=3):a===o?(u=6,l=3):(u=7,l=4))}function zv(e,t,n){var r,i=-1,a,o=t[0*2+1],s=0,u=7,l=4;for(o===0&&(u=138,l=3),r=0;r<=n;r++)if(a=o,o=t[(r+1)*2+1],!(++s<u&&a===o)){if(s<l)do Zn(e,a,e.bl_tree);while(--s!==0);else a!==0?(a!==i&&(Zn(e,a,e.bl_tree),s--),Zn(e,_v,e.bl_tree),Gt(e,s-3,2)):s<=10?(Zn(e,Sv,e.bl_tree),Gt(e,s-3,3)):(Zn(e,Cv,e.bl_tree),Gt(e,s-11,7));s=0,i=a,o===0?(u=138,l=3):a===o?(u=6,l=3):(u=7,l=4)}}function V7(e){var t;for(Nv(e,e.dyn_ltree,e.l_desc.max_code),Nv(e,e.dyn_dtree,e.d_desc.max_code),up(e,e.bl_desc),t=tp-1;t>=3&&e.bl_tree[kv[t]*2+1]===0;t--);return e.opt_len+=3*(t+1)+5+5+4,t}function j7(e,t,n,r){var i;for(Gt(e,t-257,5),Gt(e,n-1,5),Gt(e,r-4,4),i=0;i<r;i++)Gt(e,e.bl_tree[kv[i]*2+1],3);zv(e,e.dyn_ltree,t-1),zv(e,e.dyn_dtree,n-1)}function $7(e){var t=4093624447,n;for(n=0;n<=31;n++,t>>>=1)if(t&1&&e.dyn_ltree[n*2]!==0)return vv;if(e.dyn_ltree[9*2]!==0||e.dyn_ltree[10*2]!==0||e.dyn_ltree[13*2]!==0)return xv;for(n=32;n<fl;n++)if(e.dyn_ltree[n*2]!==0)return xv;return vv}var Uv=!1;function q7(e){Uv||(G7(),Uv=!0),e.l_desc=new sp(e.dyn_ltree,Tv),e.d_desc=new sp(e.dyn_dtree,Iv),e.bl_desc=new sp(e.bl_tree,Bv),e.bi_buf=0,e.bi_valid=0,Mv(e)}function Gv(e,t,n,r){Gt(e,(R7<<1)+(r?1:0),3),H7(e,t,n,!0)}function W7(e){Gt(e,Av<<1,3),Zn(e,rp,gr),z7(e)}function Z7(e,t,n,r){var i,a,o=0;e.level>0?(e.strm.data_type===D7&&(e.strm.data_type=$7(e)),up(e,e.l_desc),up(e,e.d_desc),o=V7(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?Gv(e,t,n,r):e.strategy===B7||a===i?(Gt(e,(Av<<1)+(r?1:0),3),Ov(e,gr,dl)):(Gt(e,(F7<<1)+(r?1:0),3),j7(e,e.l_desc.max_code+1,e.d_desc.max_code+1,o+1),Ov(e,e.dyn_ltree,e.dyn_dtree)),Mv(e),r&&Pv(e)}function Y7(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[(gl[n]+fl+1)*2]++,e.dyn_dtree[Dv(t)*2]++),e.last_lit===e.lit_bufsize-1}Xa._tr_init=q7,Xa._tr_stored_block=Gv,Xa._tr_flush_block=Z7,Xa._tr_tally=Y7,Xa._tr_align=W7;function Q7(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 Hv=Q7;function X7(){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 K7=X7();function J7(e,t,n,r){var i=K7,a=r+n;e^=-1;for(var o=r;o<a;o++)e=e>>>8^i[(e^t[o])&255];return e^-1}var Vv=J7,cp={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"},Rt=pr,on=Xa,jv=Hv,ti=Vv,eM=cp,Ki=0,tM=1,nM=3,ni=4,$v=5,Yn=0,qv=1,sn=-2,rM=-3,fp=-5,iM=-1,aM=1,pf=2,oM=3,sM=4,lM=0,uM=2,gf=8,cM=9,fM=15,hM=8,dM=29,pM=256,hp=pM+1+dM,gM=30,mM=19,bM=2*hp+1,yM=15,de=3,ri=258,Cn=ri+de+1,wM=32,mf=42,dp=69,bf=73,yf=91,wf=103,Ji=113,bl=666,st=1,yl=2,ea=3,eo=4,vM=3;function ii(e,t){return e.msg=eM[t],t}function Wv(e){return(e<<1)-(e>4?9:0)}function ai(e){for(var t=e.length;--t>=0;)e[t]=0}function oi(e){var t=e.state,n=t.pending;n>e.avail_out&&(n=e.avail_out),n!==0&&(Rt.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 wt(e,t){on._tr_flush_block(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,oi(e.strm)}function ve(e,t){e.pending_buf[e.pending++]=t}function wl(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=t&255}function xM(e,t,n,r){var i=e.avail_in;return i>r&&(i=r),i===0?0:(e.avail_in-=i,Rt.arraySet(t,e.input,e.next_in,i,n),e.state.wrap===1?e.adler=jv(e.adler,t,i,n):e.state.wrap===2&&(e.adler=ti(e.adler,t,i,n)),e.next_in+=i,e.total_in+=i,i)}function Zv(e,t){var n=e.max_chain_length,r=e.strstart,i,a,o=e.prev_length,s=e.nice_match,u=e.strstart>e.w_size-Cn?e.strstart-(e.w_size-Cn):0,l=e.window,c=e.w_mask,f=e.prev,h=e.strstart+ri,d=l[r+o-1],p=l[r+o];e.prev_length>=e.good_match&&(n>>=2),s>e.lookahead&&(s=e.lookahead);do if(i=t,!(l[i+o]!==p||l[i+o-1]!==d||l[i]!==l[r]||l[++i]!==l[r+1])){r+=2,i++;do;while(l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&r<h);if(a=ri-(h-r),r=h-ri,a>o){if(e.match_start=t,o=a,a>=s)break;d=l[r+o-1],p=l[r+o]}}while((t=f[t&c])>u&&--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-Cn)){Rt.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=xM(e.strm,e.window,e.strstart+e.lookahead,a),e.lookahead+=r,e.lookahead+e.insert>=de)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+de-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<de)););}while(e.lookahead<Cn&&e.strm.avail_in!==0)}function AM(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===Ki)return st;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,wt(e,!1),e.strm.avail_out===0)||e.strstart-e.block_start>=e.w_size-Cn&&(wt(e,!1),e.strm.avail_out===0))return st}return e.insert=0,t===ni?(wt(e,!0),e.strm.avail_out===0?ea:eo):(e.strstart>e.block_start&&(wt(e,!1),e.strm.avail_out===0),st)}function pp(e,t){for(var n,r;;){if(e.lookahead<Cn){if(ta(e),e.lookahead<Cn&&t===Ki)return st;if(e.lookahead===0)break}if(n=0,e.lookahead>=de&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+de-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-Cn&&(e.match_length=Zv(e,n)),e.match_length>=de)if(r=on._tr_tally(e,e.strstart-e.match_start,e.match_length-de),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=de){e.match_length--;do e.strstart++,e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+de-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=on._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(r&&(wt(e,!1),e.strm.avail_out===0))return st}return e.insert=e.strstart<de-1?e.strstart:de-1,t===ni?(wt(e,!0),e.strm.avail_out===0?ea:eo):e.last_lit&&(wt(e,!1),e.strm.avail_out===0)?st:yl}function to(e,t){for(var n,r,i;;){if(e.lookahead<Cn){if(ta(e),e.lookahead<Cn&&t===Ki)return st;if(e.lookahead===0)break}if(n=0,e.lookahead>=de&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+de-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=de-1,n!==0&&e.prev_length<e.max_lazy_match&&e.strstart-n<=e.w_size-Cn&&(e.match_length=Zv(e,n),e.match_length<=5&&(e.strategy===aM||e.match_length===de&&e.strstart-e.match_start>4096)&&(e.match_length=de-1)),e.prev_length>=de&&e.match_length<=e.prev_length){i=e.strstart+e.lookahead-de,r=on._tr_tally(e,e.strstart-1-e.prev_match,e.prev_length-de),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+de-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=de-1,e.strstart++,r&&(wt(e,!1),e.strm.avail_out===0))return st}else if(e.match_available){if(r=on._tr_tally(e,0,e.window[e.strstart-1]),r&&wt(e,!1),e.strstart++,e.lookahead--,e.strm.avail_out===0)return st}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(r=on._tr_tally(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<de-1?e.strstart:de-1,t===ni?(wt(e,!0),e.strm.avail_out===0?ea:eo):e.last_lit&&(wt(e,!1),e.strm.avail_out===0)?st:yl}function EM(e,t){for(var n,r,i,a,o=e.window;;){if(e.lookahead<=ri){if(ta(e),e.lookahead<=ri&&t===Ki)return st;if(e.lookahead===0)break}if(e.match_length=0,e.lookahead>=de&&e.strstart>0&&(i=e.strstart-1,r=o[i],r===o[++i]&&r===o[++i]&&r===o[++i])){a=e.strstart+ri;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=ri-(a-i),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=de?(n=on._tr_tally(e,1,e.match_length-de),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(n=on._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),n&&(wt(e,!1),e.strm.avail_out===0))return st}return e.insert=0,t===ni?(wt(e,!0),e.strm.avail_out===0?ea:eo):e.last_lit&&(wt(e,!1),e.strm.avail_out===0)?st:yl}function _M(e,t){for(var n;;){if(e.lookahead===0&&(ta(e),e.lookahead===0)){if(t===Ki)return st;break}if(e.match_length=0,n=on._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,n&&(wt(e,!1),e.strm.avail_out===0))return st}return e.insert=0,t===ni?(wt(e,!0),e.strm.avail_out===0?ea:eo):e.last_lit&&(wt(e,!1),e.strm.avail_out===0)?st:yl}function Qn(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 no;no=[new Qn(0,0,0,0,AM),new Qn(4,4,8,4,pp),new Qn(4,5,16,8,pp),new Qn(4,6,32,32,pp),new Qn(4,4,16,16,to),new Qn(8,16,32,32,to),new Qn(8,16,128,128,to),new Qn(8,32,128,256,to),new Qn(32,128,258,1024,to),new Qn(32,258,258,4096,to)];function SM(e){e.window_size=2*e.w_size,ai(e.head),e.max_lazy_match=no[e.level].max_lazy,e.good_match=no[e.level].good_length,e.nice_match=no[e.level].nice_length,e.max_chain_length=no[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=de-1,e.match_available=0,e.ins_h=0}function CM(){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=gf,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 Rt.Buf16(bM*2),this.dyn_dtree=new Rt.Buf16((2*gM+1)*2),this.bl_tree=new Rt.Buf16((2*mM+1)*2),ai(this.dyn_ltree),ai(this.dyn_dtree),ai(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Rt.Buf16(yM+1),this.heap=new Rt.Buf16(2*hp+1),ai(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Rt.Buf16(2*hp+1),ai(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 Yv(e){var t;return!e||!e.state?ii(e,sn):(e.total_in=e.total_out=0,e.data_type=uM,t=e.state,t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap?mf:Ji,e.adler=t.wrap===2?0:1,t.last_flush=Ki,on._tr_init(t),Yn)}function Qv(e){var t=Yv(e);return t===Yn&&SM(e.state),t}function kM(e,t){return!e||!e.state||e.state.wrap!==2?sn:(e.state.gzhead=t,Yn)}function Xv(e,t,n,r,i,a){if(!e)return sn;var o=1;if(t===iM&&(t=6),r<0?(o=0,r=-r):r>15&&(o=2,r-=16),i<1||i>cM||n!==gf||r<8||r>15||t<0||t>9||a<0||a>sM)return ii(e,sn);r===8&&(r=9);var s=new CM;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+de-1)/de),s.window=new Rt.Buf8(s.w_size*2),s.head=new Rt.Buf16(s.hash_size),s.prev=new Rt.Buf16(s.w_size),s.lit_bufsize=1<<i+6,s.pending_buf_size=s.lit_bufsize*4,s.pending_buf=new Rt.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,Qv(e)}function TM(e,t){return Xv(e,t,gf,fM,hM,lM)}function IM(e,t){var n,r,i,a;if(!e||!e.state||t>$v||t<0)return e?ii(e,sn):sn;if(r=e.state,!e.output||!e.input&&e.avail_in!==0||r.status===bl&&t!==ni)return ii(e,e.avail_out===0?fp:sn);if(r.strm=e,n=r.last_flush,r.last_flush=t,r.status===mf)if(r.wrap===2)e.adler=0,ve(r,31),ve(r,139),ve(r,8),r.gzhead?(ve(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)),ve(r,r.gzhead.time&255),ve(r,r.gzhead.time>>8&255),ve(r,r.gzhead.time>>16&255),ve(r,r.gzhead.time>>24&255),ve(r,r.level===9?2:r.strategy>=pf||r.level<2?4:0),ve(r,r.gzhead.os&255),r.gzhead.extra&&r.gzhead.extra.length&&(ve(r,r.gzhead.extra.length&255),ve(r,r.gzhead.extra.length>>8&255)),r.gzhead.hcrc&&(e.adler=ti(e.adler,r.pending_buf,r.pending,0)),r.gzindex=0,r.status=dp):(ve(r,0),ve(r,0),ve(r,0),ve(r,0),ve(r,0),ve(r,r.level===9?2:r.strategy>=pf||r.level<2?4:0),ve(r,vM),r.status=Ji);else{var o=gf+(r.w_bits-8<<4)<<8,s=-1;r.strategy>=pf||r.level<2?s=0:r.level<6?s=1:r.level===6?s=2:s=3,o|=s<<6,r.strstart!==0&&(o|=wM),o+=31-o%31,r.status=Ji,wl(r,o),r.strstart!==0&&(wl(r,e.adler>>>16),wl(r,e.adler&65535)),e.adler=1}if(r.status===dp)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=ti(e.adler,r.pending_buf,r.pending-i,i)),oi(e),i=r.pending,r.pending===r.pending_buf_size));)ve(r,r.gzhead.extra[r.gzindex]&255),r.gzindex++;r.gzhead.hcrc&&r.pending>i&&(e.adler=ti(e.adler,r.pending_buf,r.pending-i,i)),r.gzindex===r.gzhead.extra.length&&(r.gzindex=0,r.status=bf)}else r.status=bf;if(r.status===bf)if(r.gzhead.name){i=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>i&&(e.adler=ti(e.adler,r.pending_buf,r.pending-i,i)),oi(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,ve(r,a)}while(a!==0);r.gzhead.hcrc&&r.pending>i&&(e.adler=ti(e.adler,r.pending_buf,r.pending-i,i)),a===0&&(r.gzindex=0,r.status=yf)}else r.status=yf;if(r.status===yf)if(r.gzhead.comment){i=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>i&&(e.adler=ti(e.adler,r.pending_buf,r.pending-i,i)),oi(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,ve(r,a)}while(a!==0);r.gzhead.hcrc&&r.pending>i&&(e.adler=ti(e.adler,r.pending_buf,r.pending-i,i)),a===0&&(r.status=wf)}else r.status=wf;if(r.status===wf&&(r.gzhead.hcrc?(r.pending+2>r.pending_buf_size&&oi(e),r.pending+2<=r.pending_buf_size&&(ve(r,e.adler&255),ve(r,e.adler>>8&255),e.adler=0,r.status=Ji)):r.status=Ji),r.pending!==0){if(oi(e),e.avail_out===0)return r.last_flush=-1,Yn}else if(e.avail_in===0&&Wv(t)<=Wv(n)&&t!==ni)return ii(e,fp);if(r.status===bl&&e.avail_in!==0)return ii(e,fp);if(e.avail_in!==0||r.lookahead!==0||t!==Ki&&r.status!==bl){var u=r.strategy===pf?_M(r,t):r.strategy===oM?EM(r,t):no[r.level].func(r,t);if((u===ea||u===eo)&&(r.status=bl),u===st||u===ea)return e.avail_out===0&&(r.last_flush=-1),Yn;if(u===yl&&(t===tM?on._tr_align(r):t!==$v&&(on._tr_stored_block(r,0,0,!1),t===nM&&(ai(r.head),r.lookahead===0&&(r.strstart=0,r.block_start=0,r.insert=0))),oi(e),e.avail_out===0))return r.last_flush=-1,Yn}return t!==ni?Yn:r.wrap<=0?qv:(r.wrap===2?(ve(r,e.adler&255),ve(r,e.adler>>8&255),ve(r,e.adler>>16&255),ve(r,e.adler>>24&255),ve(r,e.total_in&255),ve(r,e.total_in>>8&255),ve(r,e.total_in>>16&255),ve(r,e.total_in>>24&255)):(wl(r,e.adler>>>16),wl(r,e.adler&65535)),oi(e),r.wrap>0&&(r.wrap=-r.wrap),r.pending!==0?Yn:qv)}function BM(e){var t;return!e||!e.state?sn:(t=e.state.status,t!==mf&&t!==dp&&t!==bf&&t!==yf&&t!==wf&&t!==Ji&&t!==bl?ii(e,sn):(e.state=null,t===Ji?ii(e,rM):Yn))}function DM(e,t){var n=t.length,r,i,a,o,s,u,l,c;if(!e||!e.state||(r=e.state,o=r.wrap,o===2||o===1&&r.status!==mf||r.lookahead))return sn;for(o===1&&(e.adler=jv(e.adler,t,n,0)),r.wrap=0,n>=r.w_size&&(o===0&&(ai(r.head),r.strstart=0,r.block_start=0,r.insert=0),c=new Rt.Buf8(r.w_size),Rt.arraySet(c,t,n-r.w_size,r.w_size,0),t=c,n=r.w_size),s=e.avail_in,u=e.next_in,l=e.input,e.avail_in=n,e.next_in=0,e.input=t,ta(r);r.lookahead>=de;){i=r.strstart,a=r.lookahead-(de-1);do r.ins_h=(r.ins_h<<r.hash_shift^r.window[i+de-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=de-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=de-1,r.match_available=0,e.next_in=u,e.input=l,e.avail_in=s,r.wrap=o,Yn}Wn.deflateInit=TM,Wn.deflateInit2=Xv,Wn.deflateReset=Qv,Wn.deflateResetKeep=Yv,Wn.deflateSetHeader=kM,Wn.deflate=IM,Wn.deflateEnd=BM,Wn.deflateSetDictionary=DM,Wn.deflateInfo="pako deflate (from Nodeca project)";var na={},vf=pr,Kv=!0,Jv=!0;try{String.fromCharCode.apply(null,[0])}catch{Kv=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{Jv=!1}for(var vl=new vf.Buf8(256),si=0;si<256;si++)vl[si]=si>=252?6:si>=248?5:si>=240?4:si>=224?3:si>=192?2:1;vl[254]=vl[254]=1,na.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 vf.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 ex(e,t){if(t<65534&&(e.subarray&&Jv||!e.subarray&&Kv))return String.fromCharCode.apply(null,vf.shrinkBuf(e,t));for(var n="",r=0;r<t;r++)n+=String.fromCharCode(e[r]);return n}na.buf2binstring=function(e){return ex(e,e.length)},na.binstring2buf=function(e){for(var t=new vf.Buf8(e.length),n=0,r=t.length;n<r;n++)t[n]=e.charCodeAt(n);return t},na.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=vl[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 ex(s,r)},na.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+vl[e[n]]>t?n:t};function RM(){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 tx=RM,xl=Wn,Al=pr,gp=na,mp=cp,FM=tx,nx=Object.prototype.toString,MM=0,bp=4,ro=0,rx=1,ix=2,PM=-1,LM=0,OM=8;function ra(e){if(!(this instanceof ra))return new ra(e);this.options=Al.assign({level:PM,method:OM,chunkSize:16384,windowBits:15,memLevel:8,strategy:LM,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 FM,this.strm.avail_out=0;var n=xl.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(n!==ro)throw new Error(mp[n]);if(t.header&&xl.deflateSetHeader(this.strm,t.header),t.dictionary){var r;if(typeof t.dictionary=="string"?r=gp.string2buf(t.dictionary):nx.call(t.dictionary)==="[object ArrayBuffer]"?r=new Uint8Array(t.dictionary):r=t.dictionary,n=xl.deflateSetDictionary(this.strm,r),n!==ro)throw new Error(mp[n]);this._dict_set=!0}}ra.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?bp:MM,typeof e=="string"?n.input=gp.string2buf(e):nx.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 Al.Buf8(r),n.next_out=0,n.avail_out=r),i=xl.deflate(n,a),i!==rx&&i!==ro)return this.onEnd(i),this.ended=!0,!1;(n.avail_out===0||n.avail_in===0&&(a===bp||a===ix))&&(this.options.to==="string"?this.onData(gp.buf2binstring(Al.shrinkBuf(n.output,n.next_out))):this.onData(Al.shrinkBuf(n.output,n.next_out)))}while((n.avail_in>0||n.avail_out===0)&&i!==rx);return a===bp?(i=xl.deflateEnd(this.strm),this.onEnd(i),this.ended=!0,i===ro):(a===ix&&(this.onEnd(ro),n.avail_out=0),!0)},ra.prototype.onData=function(e){this.chunks.push(e)},ra.prototype.onEnd=function(e){e===ro&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=Al.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function yp(e,t){var n=new ra(t);if(n.push(e,!0),n.err)throw n.msg||mp[n.err];return n.result}function NM(e,t){return t=t||{},t.raw=!0,yp(e,t)}function zM(e,t){return t=t||{},t.gzip=!0,yp(e,t)}cl.Deflate=ra,cl.deflate=yp,cl.deflateRaw=NM,cl.gzip=zM;var El={},kn={},xf=30,UM=12,GM=function(t,n){var r,i,a,o,s,u,l,c,f,h,d,p,m,y,w,A,S,_,T,I,B,R,M,G,N;r=t.state,i=t.next_in,G=t.input,a=i+(t.avail_in-5),o=t.next_out,N=t.output,s=o-(n-t.avail_out),u=o+(t.avail_out-257),l=r.dmax,c=r.wsize,f=r.whave,h=r.wnext,d=r.window,p=r.hold,m=r.bits,y=r.lencode,w=r.distcode,A=(1<<r.lenbits)-1,S=(1<<r.distbits)-1;e:do{m<15&&(p+=G[i++]<<m,m+=8,p+=G[i++]<<m,m+=8),_=y[p&A];t:for(;;){if(T=_>>>24,p>>>=T,m-=T,T=_>>>16&255,T===0)N[o++]=_&65535;else if(T&16){I=_&65535,T&=15,T&&(m<T&&(p+=G[i++]<<m,m+=8),I+=p&(1<<T)-1,p>>>=T,m-=T),m<15&&(p+=G[i++]<<m,m+=8,p+=G[i++]<<m,m+=8),_=w[p&S];n:for(;;){if(T=_>>>24,p>>>=T,m-=T,T=_>>>16&255,T&16){if(B=_&65535,T&=15,m<T&&(p+=G[i++]<<m,m+=8,m<T&&(p+=G[i++]<<m,m+=8)),B+=p&(1<<T)-1,B>l){t.msg="invalid distance too far back",r.mode=xf;break e}if(p>>>=T,m-=T,T=o-s,B>T){if(T=B-T,T>f&&r.sane){t.msg="invalid distance too far back",r.mode=xf;break e}if(R=0,M=d,h===0){if(R+=c-T,T<I){I-=T;do N[o++]=d[R++];while(--T);R=o-B,M=N}}else if(h<T){if(R+=c+h-T,T-=h,T<I){I-=T;do N[o++]=d[R++];while(--T);if(R=0,h<I){T=h,I-=T;do N[o++]=d[R++];while(--T);R=o-B,M=N}}}else if(R+=h-T,T<I){I-=T;do N[o++]=d[R++];while(--T);R=o-B,M=N}for(;I>2;)N[o++]=M[R++],N[o++]=M[R++],N[o++]=M[R++],I-=3;I&&(N[o++]=M[R++],I>1&&(N[o++]=M[R++]))}else{R=o-B;do N[o++]=N[R++],N[o++]=N[R++],N[o++]=N[R++],I-=3;while(I>2);I&&(N[o++]=N[R++],I>1&&(N[o++]=N[R++]))}}else if(T&64){t.msg="invalid distance code",r.mode=xf;break e}else{_=w[(_&65535)+(p&(1<<T)-1)];continue n}break}}else if(T&64)if(T&32){r.mode=UM;break e}else{t.msg="invalid literal/length code",r.mode=xf;break e}else{_=y[(_&65535)+(p&(1<<T)-1)];continue t}break}}while(i<a&&o<u);I=m>>3,i-=I,m-=I<<3,p&=(1<<m)-1,t.next_in=i,t.next_out=o,t.avail_in=i<a?5+(a-i):5-(i-a),t.avail_out=o<u?257+(u-o):257-(o-u),r.hold=p,r.bits=m},ax=pr,io=15,ox=852,sx=592,lx=0,wp=1,ux=2,HM=[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],VM=[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],jM=[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],$M=[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],qM=function(t,n,r,i,a,o,s,u){var l=u.bits,c=0,f=0,h=0,d=0,p=0,m=0,y=0,w=0,A=0,S=0,_,T,I,B,R,M=null,G=0,N,re=new ax.Buf16(io+1),se=new ax.Buf16(io+1),te=null,ge=0,Xe,De,Ke;for(c=0;c<=io;c++)re[c]=0;for(f=0;f<i;f++)re[n[r+f]]++;for(p=l,d=io;d>=1&&re[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,u.bits=1,0;for(h=1;h<d&&re[h]===0;h++);for(p<h&&(p=h),w=1,c=1;c<=io;c++)if(w<<=1,w-=re[c],w<0)return-1;if(w>0&&(t===lx||d!==1))return-1;for(se[1]=0,c=1;c<io;c++)se[c+1]=se[c]+re[c];for(f=0;f<i;f++)n[r+f]!==0&&(s[se[n[r+f]]++]=f);if(t===lx?(M=te=s,N=19):t===wp?(M=HM,G-=257,te=VM,ge-=257,N=256):(M=jM,te=$M,N=-1),S=0,f=0,c=h,R=o,m=p,y=0,I=-1,A=1<<p,B=A-1,t===wp&&A>ox||t===ux&&A>sx)return 1;for(;;){Xe=c-y,s[f]<N?(De=0,Ke=s[f]):s[f]>N?(De=te[ge+s[f]],Ke=M[G+s[f]]):(De=32+64,Ke=0),_=1<<c-y,T=1<<m,h=T;do T-=_,a[R+(S>>y)+T]=Xe<<24|De<<16|Ke|0;while(T!==0);for(_=1<<c-1;S&_;)_>>=1;if(_!==0?(S&=_-1,S+=_):S=0,f++,--re[c]===0){if(c===d)break;c=n[r+s[f]]}if(c>p&&(S&B)!==I){for(y===0&&(y=p),R+=h,m=c-y,w=1<<m;m+y<d&&(w-=re[m+y],!(w<=0));)m++,w<<=1;if(A+=1<<m,t===wp&&A>ox||t===ux&&A>sx)return 1;I=S&B,a[I]=p<<24|m<<16|R-o|0}}return S!==0&&(a[R+S]=c-y<<24|64<<16|0),u.bits=p,0},Qt=pr,vp=Hv,Xn=Vv,WM=GM,_l=qM,ZM=0,cx=1,fx=2,hx=4,YM=5,Af=6,ia=0,QM=1,XM=2,ln=-2,dx=-3,px=-4,KM=-5,gx=8,mx=1,bx=2,yx=3,wx=4,vx=5,xx=6,Ax=7,Ex=8,_x=9,Sx=10,Ef=11,mr=12,xp=13,Cx=14,Ap=15,kx=16,Tx=17,Ix=18,Bx=19,_f=20,Sf=21,Dx=22,Rx=23,Fx=24,Mx=25,Px=26,Ep=27,Lx=28,Ox=29,$e=30,Nx=31,JM=32,eP=852,tP=592,nP=15,rP=nP;function zx(e){return(e>>>24&255)+(e>>>8&65280)+((e&65280)<<8)+((e&255)<<24)}function iP(){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 Qt.Buf16(320),this.work=new Qt.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function Ux(e){var t;return!e||!e.state?ln:(t=e.state,e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=t.wrap&1),t.mode=mx,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Qt.Buf32(eP),t.distcode=t.distdyn=new Qt.Buf32(tP),t.sane=1,t.back=-1,ia)}function Gx(e){var t;return!e||!e.state?ln:(t=e.state,t.wsize=0,t.whave=0,t.wnext=0,Ux(e))}function Hx(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))?ln:(r.window!==null&&r.wbits!==t&&(r.window=null),r.wrap=n,r.wbits=t,Gx(e))}function Vx(e,t){var n,r;return e?(r=new iP,e.state=r,r.window=null,n=Hx(e,t),n!==ia&&(e.state=null),n):ln}function aP(e){return Vx(e,rP)}var jx=!0,_p,Sp;function oP(e){if(jx){var t;for(_p=new Qt.Buf32(512),Sp=new Qt.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(_l(cx,e.lens,0,288,_p,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;_l(fx,e.lens,0,32,Sp,0,e.work,{bits:5}),jx=!1}e.lencode=_p,e.lenbits=9,e.distcode=Sp,e.distbits=5}function $x(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 Qt.Buf8(a.wsize)),r>=a.wsize?(Qt.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),Qt.arraySet(a.window,t,n-r,i,a.wnext),r-=i,r?(Qt.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 sP(e,t){var n,r,i,a,o,s,u,l,c,f,h,d,p,m,y=0,w,A,S,_,T,I,B,R,M=new Qt.Buf8(4),G,N,re=[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 ln;n=e.state,n.mode===mr&&(n.mode=xp),o=e.next_out,i=e.output,u=e.avail_out,a=e.next_in,r=e.input,s=e.avail_in,l=n.hold,c=n.bits,f=s,h=u,R=ia;e:for(;;)switch(n.mode){case mx:if(n.wrap===0){n.mode=xp;break}for(;c<16;){if(s===0)break e;s--,l+=r[a++]<<c,c+=8}if(n.wrap&2&&l===35615){n.check=0,M[0]=l&255,M[1]=l>>>8&255,n.check=Xn(n.check,M,2,0),l=0,c=0,n.mode=bx;break}if(n.flags=0,n.head&&(n.head.done=!1),!(n.wrap&1)||(((l&255)<<8)+(l>>8))%31){e.msg="incorrect header check",n.mode=$e;break}if((l&15)!==gx){e.msg="unknown compression method",n.mode=$e;break}if(l>>>=4,c-=4,B=(l&15)+8,n.wbits===0)n.wbits=B;else if(B>n.wbits){e.msg="invalid window size",n.mode=$e;break}n.dmax=1<<B,e.adler=n.check=1,n.mode=l&512?Sx:mr,l=0,c=0;break;case bx:for(;c<16;){if(s===0)break e;s--,l+=r[a++]<<c,c+=8}if(n.flags=l,(n.flags&255)!==gx){e.msg="unknown compression method",n.mode=$e;break}if(n.flags&57344){e.msg="unknown header flags set",n.mode=$e;break}n.head&&(n.head.text=l>>8&1),n.flags&512&&(M[0]=l&255,M[1]=l>>>8&255,n.check=Xn(n.check,M,2,0)),l=0,c=0,n.mode=yx;case yx:for(;c<32;){if(s===0)break e;s--,l+=r[a++]<<c,c+=8}n.head&&(n.head.time=l),n.flags&512&&(M[0]=l&255,M[1]=l>>>8&255,M[2]=l>>>16&255,M[3]=l>>>24&255,n.check=Xn(n.check,M,4,0)),l=0,c=0,n.mode=wx;case wx:for(;c<16;){if(s===0)break e;s--,l+=r[a++]<<c,c+=8}n.head&&(n.head.xflags=l&255,n.head.os=l>>8),n.flags&512&&(M[0]=l&255,M[1]=l>>>8&255,n.check=Xn(n.check,M,2,0)),l=0,c=0,n.mode=vx;case vx:if(n.flags&1024){for(;c<16;){if(s===0)break e;s--,l+=r[a++]<<c,c+=8}n.length=l,n.head&&(n.head.extra_len=l),n.flags&512&&(M[0]=l&255,M[1]=l>>>8&255,n.check=Xn(n.check,M,2,0)),l=0,c=0}else n.head&&(n.head.extra=null);n.mode=xx;case xx:if(n.flags&1024&&(d=n.length,d>s&&(d=s),d&&(n.head&&(B=n.head.extra_len-n.length,n.head.extra||(n.head.extra=new Array(n.head.extra_len)),Qt.arraySet(n.head.extra,r,a,d,B)),n.flags&512&&(n.check=Xn(n.check,r,d,a)),s-=d,a+=d,n.length-=d),n.length))break e;n.length=0,n.mode=Ax;case Ax:if(n.flags&2048){if(s===0)break e;d=0;do B=r[a+d++],n.head&&B&&n.length<65536&&(n.head.name+=String.fromCharCode(B));while(B&&d<s);if(n.flags&512&&(n.check=Xn(n.check,r,d,a)),s-=d,a+=d,B)break e}else n.head&&(n.head.name=null);n.length=0,n.mode=Ex;case Ex:if(n.flags&4096){if(s===0)break e;d=0;do B=r[a+d++],n.head&&B&&n.length<65536&&(n.head.comment+=String.fromCharCode(B));while(B&&d<s);if(n.flags&512&&(n.check=Xn(n.check,r,d,a)),s-=d,a+=d,B)break e}else n.head&&(n.head.comment=null);n.mode=_x;case _x:if(n.flags&512){for(;c<16;){if(s===0)break e;s--,l+=r[a++]<<c,c+=8}if(l!==(n.check&65535)){e.msg="header crc mismatch",n.mode=$e;break}l=0,c=0}n.head&&(n.head.hcrc=n.flags>>9&1,n.head.done=!0),e.adler=n.check=0,n.mode=mr;break;case Sx:for(;c<32;){if(s===0)break e;s--,l+=r[a++]<<c,c+=8}e.adler=n.check=zx(l),l=0,c=0,n.mode=Ef;case Ef:if(n.havedict===0)return e.next_out=o,e.avail_out=u,e.next_in=a,e.avail_in=s,n.hold=l,n.bits=c,XM;e.adler=n.check=1,n.mode=mr;case mr:if(t===YM||t===Af)break e;case xp:if(n.last){l>>>=c&7,c-=c&7,n.mode=Ep;break}for(;c<3;){if(s===0)break e;s--,l+=r[a++]<<c,c+=8}switch(n.last=l&1,l>>>=1,c-=1,l&3){case 0:n.mode=Cx;break;case 1:if(oP(n),n.mode=_f,t===Af){l>>>=2,c-=2;break e}break;case 2:n.mode=Tx;break;case 3:e.msg="invalid block type",n.mode=$e}l>>>=2,c-=2;break;case Cx:for(l>>>=c&7,c-=c&7;c<32;){if(s===0)break e;s--,l+=r[a++]<<c,c+=8}if((l&65535)!==(l>>>16^65535)){e.msg="invalid stored block lengths",n.mode=$e;break}if(n.length=l&65535,l=0,c=0,n.mode=Ap,t===Af)break e;case Ap:n.mode=kx;case kx:if(d=n.length,d){if(d>s&&(d=s),d>u&&(d=u),d===0)break e;Qt.arraySet(i,r,a,d,o),s-=d,a+=d,u-=d,o+=d,n.length-=d;break}n.mode=mr;break;case Tx:for(;c<14;){if(s===0)break e;s--,l+=r[a++]<<c,c+=8}if(n.nlen=(l&31)+257,l>>>=5,c-=5,n.ndist=(l&31)+1,l>>>=5,c-=5,n.ncode=(l&15)+4,l>>>=4,c-=4,n.nlen>286||n.ndist>30){e.msg="too many length or distance symbols",n.mode=$e;break}n.have=0,n.mode=Ix;case Ix:for(;n.have<n.ncode;){for(;c<3;){if(s===0)break e;s--,l+=r[a++]<<c,c+=8}n.lens[re[n.have++]]=l&7,l>>>=3,c-=3}for(;n.have<19;)n.lens[re[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,G={bits:n.lenbits},R=_l(ZM,n.lens,0,19,n.lencode,0,n.work,G),n.lenbits=G.bits,R){e.msg="invalid code lengths set",n.mode=$e;break}n.have=0,n.mode=Bx;case Bx:for(;n.have<n.nlen+n.ndist;){for(;y=n.lencode[l&(1<<n.lenbits)-1],w=y>>>24,A=y>>>16&255,S=y&65535,!(w<=c);){if(s===0)break e;s--,l+=r[a++]<<c,c+=8}if(S<16)l>>>=w,c-=w,n.lens[n.have++]=S;else{if(S===16){for(N=w+2;c<N;){if(s===0)break e;s--,l+=r[a++]<<c,c+=8}if(l>>>=w,c-=w,n.have===0){e.msg="invalid bit length repeat",n.mode=$e;break}B=n.lens[n.have-1],d=3+(l&3),l>>>=2,c-=2}else if(S===17){for(N=w+3;c<N;){if(s===0)break e;s--,l+=r[a++]<<c,c+=8}l>>>=w,c-=w,B=0,d=3+(l&7),l>>>=3,c-=3}else{for(N=w+7;c<N;){if(s===0)break e;s--,l+=r[a++]<<c,c+=8}l>>>=w,c-=w,B=0,d=11+(l&127),l>>>=7,c-=7}if(n.have+d>n.nlen+n.ndist){e.msg="invalid bit length repeat",n.mode=$e;break}for(;d--;)n.lens[n.have++]=B}}if(n.mode===$e)break;if(n.lens[256]===0){e.msg="invalid code -- missing end-of-block",n.mode=$e;break}if(n.lenbits=9,G={bits:n.lenbits},R=_l(cx,n.lens,0,n.nlen,n.lencode,0,n.work,G),n.lenbits=G.bits,R){e.msg="invalid literal/lengths set",n.mode=$e;break}if(n.distbits=6,n.distcode=n.distdyn,G={bits:n.distbits},R=_l(fx,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,G),n.distbits=G.bits,R){e.msg="invalid distances set",n.mode=$e;break}if(n.mode=_f,t===Af)break e;case _f:n.mode=Sf;case Sf:if(s>=6&&u>=258){e.next_out=o,e.avail_out=u,e.next_in=a,e.avail_in=s,n.hold=l,n.bits=c,WM(e,h),o=e.next_out,i=e.output,u=e.avail_out,a=e.next_in,r=e.input,s=e.avail_in,l=n.hold,c=n.bits,n.mode===mr&&(n.back=-1);break}for(n.back=0;y=n.lencode[l&(1<<n.lenbits)-1],w=y>>>24,A=y>>>16&255,S=y&65535,!(w<=c);){if(s===0)break e;s--,l+=r[a++]<<c,c+=8}if(A&&!(A&240)){for(_=w,T=A,I=S;y=n.lencode[I+((l&(1<<_+T)-1)>>_)],w=y>>>24,A=y>>>16&255,S=y&65535,!(_+w<=c);){if(s===0)break e;s--,l+=r[a++]<<c,c+=8}l>>>=_,c-=_,n.back+=_}if(l>>>=w,c-=w,n.back+=w,n.length=S,A===0){n.mode=Px;break}if(A&32){n.back=-1,n.mode=mr;break}if(A&64){e.msg="invalid literal/length code",n.mode=$e;break}n.extra=A&15,n.mode=Dx;case Dx:if(n.extra){for(N=n.extra;c<N;){if(s===0)break e;s--,l+=r[a++]<<c,c+=8}n.length+=l&(1<<n.extra)-1,l>>>=n.extra,c-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=Rx;case Rx:for(;y=n.distcode[l&(1<<n.distbits)-1],w=y>>>24,A=y>>>16&255,S=y&65535,!(w<=c);){if(s===0)break e;s--,l+=r[a++]<<c,c+=8}if(!(A&240)){for(_=w,T=A,I=S;y=n.distcode[I+((l&(1<<_+T)-1)>>_)],w=y>>>24,A=y>>>16&255,S=y&65535,!(_+w<=c);){if(s===0)break e;s--,l+=r[a++]<<c,c+=8}l>>>=_,c-=_,n.back+=_}if(l>>>=w,c-=w,n.back+=w,A&64){e.msg="invalid distance code",n.mode=$e;break}n.offset=S,n.extra=A&15,n.mode=Fx;case Fx:if(n.extra){for(N=n.extra;c<N;){if(s===0)break e;s--,l+=r[a++]<<c,c+=8}n.offset+=l&(1<<n.extra)-1,l>>>=n.extra,c-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){e.msg="invalid distance too far back",n.mode=$e;break}n.mode=Mx;case Mx:if(u===0)break e;if(d=h-u,n.offset>d){if(d=n.offset-d,d>n.whave&&n.sane){e.msg="invalid distance too far back",n.mode=$e;break}d>n.wnext?(d-=n.wnext,p=n.wsize-d):p=n.wnext-d,d>n.length&&(d=n.length),m=n.window}else m=i,p=o-n.offset,d=n.length;d>u&&(d=u),u-=d,n.length-=d;do i[o++]=m[p++];while(--d);n.length===0&&(n.mode=Sf);break;case Px:if(u===0)break e;i[o++]=n.length,u--,n.mode=Sf;break;case Ep:if(n.wrap){for(;c<32;){if(s===0)break e;s--,l|=r[a++]<<c,c+=8}if(h-=u,e.total_out+=h,n.total+=h,h&&(e.adler=n.check=n.flags?Xn(n.check,i,h,o-h):vp(n.check,i,h,o-h)),h=u,(n.flags?l:zx(l))!==n.check){e.msg="incorrect data check",n.mode=$e;break}l=0,c=0}n.mode=Lx;case Lx:if(n.wrap&&n.flags){for(;c<32;){if(s===0)break e;s--,l+=r[a++]<<c,c+=8}if(l!==(n.total&4294967295)){e.msg="incorrect length check",n.mode=$e;break}l=0,c=0}n.mode=Ox;case Ox:R=QM;break e;case $e:R=dx;break e;case Nx:return px;case JM:default:return ln}return e.next_out=o,e.avail_out=u,e.next_in=a,e.avail_in=s,n.hold=l,n.bits=c,(n.wsize||h!==e.avail_out&&n.mode<$e&&(n.mode<Ep||t!==hx))&&$x(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?Xn(n.check,i,h,e.next_out-h):vp(n.check,i,h,e.next_out-h)),e.data_type=n.bits+(n.last?64:0)+(n.mode===mr?128:0)+(n.mode===_f||n.mode===Ap?256:0),(f===0&&h===0||t===hx)&&R===ia&&(R=KM),R}function lP(e){if(!e||!e.state)return ln;var t=e.state;return t.window&&(t.window=null),e.state=null,ia}function uP(e,t){var n;return!e||!e.state||(n=e.state,!(n.wrap&2))?ln:(n.head=t,t.done=!1,ia)}function cP(e,t){var n=t.length,r,i,a;return!e||!e.state||(r=e.state,r.wrap!==0&&r.mode!==Ef)?ln:r.mode===Ef&&(i=1,i=vp(i,t,n,0),i!==r.check)?dx:(a=$x(e,t,n,n),a?(r.mode=Nx,px):(r.havedict=1,ia))}kn.inflateReset=Gx,kn.inflateReset2=Hx,kn.inflateResetKeep=Ux,kn.inflateInit=aP,kn.inflateInit2=Vx,kn.inflate=sP,kn.inflateEnd=lP,kn.inflateGetHeader=uP,kn.inflateSetDictionary=cP,kn.inflateInfo="pako inflate (from Nodeca project)";var qx={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 fP(){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 hP=fP,ao=kn,Sl=pr,Cf=na,tt=qx,Cp=cp,dP=tx,pP=hP,Wx=Object.prototype.toString;function aa(e){if(!(this instanceof aa))return new aa(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 dP,this.strm.avail_out=0;var n=ao.inflateInit2(this.strm,t.windowBits);if(n!==tt.Z_OK)throw new Error(Cp[n]);if(this.header=new pP,ao.inflateGetHeader(this.strm,this.header),t.dictionary&&(typeof t.dictionary=="string"?t.dictionary=Cf.string2buf(t.dictionary):Wx.call(t.dictionary)==="[object ArrayBuffer]"&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(n=ao.inflateSetDictionary(this.strm,t.dictionary),n!==tt.Z_OK)))throw new Error(Cp[n])}aa.prototype.push=function(e,t){var n=this.strm,r=this.options.chunkSize,i=this.options.dictionary,a,o,s,u,l,c=!1;if(this.ended)return!1;o=t===~~t?t:t===!0?tt.Z_FINISH:tt.Z_NO_FLUSH,typeof e=="string"?n.input=Cf.binstring2buf(e):Wx.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=ao.inflate(n,tt.Z_NO_FLUSH),a===tt.Z_NEED_DICT&&i&&(a=ao.inflateSetDictionary(this.strm,i)),a===tt.Z_BUF_ERROR&&c===!0&&(a=tt.Z_OK,c=!1),a!==tt.Z_STREAM_END&&a!==tt.Z_OK)return this.onEnd(a),this.ended=!0,!1;n.next_out&&(n.avail_out===0||a===tt.Z_STREAM_END||n.avail_in===0&&(o===tt.Z_FINISH||o===tt.Z_SYNC_FLUSH))&&(this.options.to==="string"?(s=Cf.utf8border(n.output,n.next_out),u=n.next_out-s,l=Cf.buf2string(n.output,s),n.next_out=u,n.avail_out=r-u,u&&Sl.arraySet(n.output,n.output,s,u,0),this.onData(l)):this.onData(Sl.shrinkBuf(n.output,n.next_out))),n.avail_in===0&&n.avail_out===0&&(c=!0)}while((n.avail_in>0||n.avail_out===0)&&a!==tt.Z_STREAM_END);return a===tt.Z_STREAM_END&&(o=tt.Z_FINISH),o===tt.Z_FINISH?(a=ao.inflateEnd(this.strm),this.onEnd(a),this.ended=!0,a===tt.Z_OK):(o===tt.Z_SYNC_FLUSH&&(this.onEnd(tt.Z_OK),n.avail_out=0),!0)},aa.prototype.onData=function(e){this.chunks.push(e)},aa.prototype.onEnd=function(e){e===tt.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 kp(e,t){var n=new aa(t);if(n.push(e,!0),n.err)throw n.msg||Cp[n.err];return n.result}function gP(e,t){return t=t||{},t.raw=!0,kp(e,t)}El.Inflate=aa,El.inflate=kp,El.inflateRaw=gP,El.ungzip=kp;var mP=pr.assign,bP=cl,yP=El,wP=qx,Zx={};mP(Zx,bP,yP,wP);var kf=Zx;async function li(e){try{let t,n=0,r=0;const i=[];let a=0,o;do{const u=e.subarray(n);if(o=new kf.Inflate,{strm:t}=o,o.push(u,kf.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 u=0,l=0;u<i.length;u++)s.set(i[u],l),l+=i[u].length;return me.Buffer.from(s)}catch(t){throw`${t}`.match(/incorrect header check/)?new Error("problem decompressing block: incorrect gzip header check"):t}}async function Yx(e,t){try{let n;const{minv:r,maxv:i}=t;let a=r.blockPosition,o=r.dataPosition;const s=[],u=[],l=[];let c=0,f=0;do{const p=e.subarray(a-r.blockPosition),m=new kf.Inflate;if({strm:n}=m,m.push(p,kf.Z_SYNC_FLUSH),m.err)throw new Error(m.msg);const y=m.result;s.push(y);let w=y.length;u.push(a),l.push(o),s.length===1&&r.dataPosition&&(s[0]=s[0].subarray(r.dataPosition),w=s[0].length);const A=a;if(a+=n.next_in,o+=w,A>=i.blockPosition){s[f]=s[f].subarray(0,i.blockPosition===r.blockPosition?i.dataPosition-r.dataPosition+1:i.dataPosition+1),u.push(a),l.push(o),c+=s[f].length;break}c+=s[f].length,f++}while(n.avail_in);const h=new Uint8Array(c);for(let p=0,m=0;p<s.length;p++)h.set(s[p],m),m+=s[p].length;return{buffer:me.Buffer.from(h),cpositions:u,dpositions:l}}catch(n){throw`${n}`.match(/incorrect header check/)?new Error("problem decompressing block: incorrect gzip header check"):n}}var vP=Le,un=null;try{un=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 Ht(e){return(e&&e.__isLong__)===!0}Le.isLong=Ht;var Qx={},Xx={};function oa(e,t){var n,r,i;return t?(e>>>=0,(i=0<=e&&e<256)&&(r=Xx[e],r)?r:(n=Oe(e,(e|0)<0?-1:0,!0),i&&(Xx[e]=n),n)):(e|=0,(i=-128<=e&&e<128)&&(r=Qx[e],r)?r:(n=Oe(e,e<0?-1:0,!1),i&&(Qx[e]=n),n))}Le.fromInt=oa;function cn(e,t){if(isNaN(e))return t?sa:fn;if(t){if(e<0)return sa;if(e>=Jx)return iA}else{if(e<=-eA)return Vt;if(e+1>=eA)return rA}return e<0?cn(-e,t).neg():Oe(e%oo|0,e/oo|0,t)}Le.fromNumber=cn;function Oe(e,t,n){return new Le(e,t,n)}Le.fromBits=Oe;var Tf=Math.pow;function Tp(e,t,n){if(e.length===0)throw Error("empty string");if(e==="NaN"||e==="Infinity"||e==="+Infinity"||e==="-Infinity")return fn;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 Tp(e.substring(1),t,n).neg();for(var i=cn(Tf(n,8)),a=fn,o=0;o<e.length;o+=8){var s=Math.min(8,e.length-o),u=parseInt(e.substring(o,o+s),n);if(s<8){var l=cn(Tf(n,s));a=a.mul(l).add(cn(u))}else a=a.mul(i),a=a.add(cn(u))}return a.unsigned=t,a}Le.fromString=Tp;function Tn(e,t){return typeof e=="number"?cn(e,t):typeof e=="string"?Tp(e,t):Oe(e.low,e.high,typeof t=="boolean"?t:e.unsigned)}Le.fromValue=Tn;var Kx=65536,xP=1<<24,oo=Kx*Kx,Jx=oo*oo,eA=Jx/2,tA=oa(xP),fn=oa(0);Le.ZERO=fn;var sa=oa(0,!0);Le.UZERO=sa;var so=oa(1);Le.ONE=so;var nA=oa(1,!0);Le.UONE=nA;var Ip=oa(-1);Le.NEG_ONE=Ip;var rA=Oe(-1,2147483647,!1);Le.MAX_VALUE=rA;var iA=Oe(-1,-1,!0);Le.MAX_UNSIGNED_VALUE=iA;var Vt=Oe(0,-2147483648,!1);Le.MIN_VALUE=Vt;var Y=Le.prototype;Y.toInt=function(){return this.unsigned?this.low>>>0:this.low},Y.toNumber=function(){return this.unsigned?(this.high>>>0)*oo+(this.low>>>0):this.high*oo+(this.low>>>0)},Y.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(Vt)){var n=cn(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=cn(Tf(t,6),this.unsigned),o=this,s="";;){var u=o.div(a),l=o.sub(u.mul(a)).toInt()>>>0,c=l.toString(t);if(o=u,o.isZero())return c+s;for(;c.length<6;)c="0"+c;s=""+c+s}},Y.getHighBits=function(){return this.high},Y.getHighBitsUnsigned=function(){return this.high>>>0},Y.getLowBits=function(){return this.low},Y.getLowBitsUnsigned=function(){return this.low>>>0},Y.getNumBitsAbs=function(){if(this.isNegative())return this.eq(Vt)?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},Y.isZero=function(){return this.high===0&&this.low===0},Y.eqz=Y.isZero,Y.isNegative=function(){return!this.unsigned&&this.high<0},Y.isPositive=function(){return this.unsigned||this.high>=0},Y.isOdd=function(){return(this.low&1)===1},Y.isEven=function(){return(this.low&1)===0},Y.equals=function(t){return Ht(t)||(t=Tn(t)),this.unsigned!==t.unsigned&&this.high>>>31===1&&t.high>>>31===1?!1:this.high===t.high&&this.low===t.low},Y.eq=Y.equals,Y.notEquals=function(t){return!this.eq(t)},Y.neq=Y.notEquals,Y.ne=Y.notEquals,Y.lessThan=function(t){return this.comp(t)<0},Y.lt=Y.lessThan,Y.lessThanOrEqual=function(t){return this.comp(t)<=0},Y.lte=Y.lessThanOrEqual,Y.le=Y.lessThanOrEqual,Y.greaterThan=function(t){return this.comp(t)>0},Y.gt=Y.greaterThan,Y.greaterThanOrEqual=function(t){return this.comp(t)>=0},Y.gte=Y.greaterThanOrEqual,Y.ge=Y.greaterThanOrEqual,Y.compare=function(t){if(Ht(t)||(t=Tn(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},Y.comp=Y.compare,Y.negate=function(){return!this.unsigned&&this.eq(Vt)?Vt:this.not().add(so)},Y.neg=Y.negate,Y.add=function(t){Ht(t)||(t=Tn(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,u=t.low>>>16,l=t.low&65535,c=0,f=0,h=0,d=0;return d+=a+l,h+=d>>>16,d&=65535,h+=i+u,f+=h>>>16,h&=65535,f+=r+s,c+=f>>>16,f&=65535,c+=n+o,c&=65535,Oe(h<<16|d,c<<16|f,this.unsigned)},Y.subtract=function(t){return Ht(t)||(t=Tn(t)),this.add(t.neg())},Y.sub=Y.subtract,Y.multiply=function(t){if(this.isZero())return fn;if(Ht(t)||(t=Tn(t)),un){var n=un.mul(this.low,this.high,t.low,t.high);return Oe(n,un.get_high(),this.unsigned)}if(t.isZero())return fn;if(this.eq(Vt))return t.isOdd()?Vt:fn;if(t.eq(Vt))return this.isOdd()?Vt:fn;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(tA)&&t.lt(tA))return cn(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,u=t.high&65535,l=t.low>>>16,c=t.low&65535,f=0,h=0,d=0,p=0;return p+=o*c,d+=p>>>16,p&=65535,d+=a*c,h+=d>>>16,d&=65535,d+=o*l,h+=d>>>16,d&=65535,h+=i*c,f+=h>>>16,h&=65535,h+=a*l,f+=h>>>16,h&=65535,h+=o*u,f+=h>>>16,h&=65535,f+=r*c+i*l+a*u+o*s,f&=65535,Oe(d<<16|p,f<<16|h,this.unsigned)},Y.mul=Y.multiply,Y.divide=function(t){if(Ht(t)||(t=Tn(t)),t.isZero())throw Error("division by zero");if(un){if(!this.unsigned&&this.high===-2147483648&&t.low===-1&&t.high===-1)return this;var n=(this.unsigned?un.div_u:un.div_s)(this.low,this.high,t.low,t.high);return Oe(n,un.get_high(),this.unsigned)}if(this.isZero())return this.unsigned?sa:fn;var r,i,a;if(this.unsigned){if(t.unsigned||(t=t.toUnsigned()),t.gt(this))return sa;if(t.gt(this.shru(1)))return nA;a=sa}else{if(this.eq(Vt)){if(t.eq(so)||t.eq(Ip))return Vt;if(t.eq(Vt))return so;var o=this.shr(1);return r=o.div(t).shl(1),r.eq(fn)?t.isNegative()?so:Ip:(i=this.sub(t.mul(r)),a=r.add(i.div(t)),a)}else if(t.eq(Vt))return this.unsigned?sa:fn;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=fn}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),u=s<=48?1:Tf(2,s-48),l=cn(r),c=l.mul(t);c.isNegative()||c.gt(i);)r-=u,l=cn(r,this.unsigned),c=l.mul(t);l.isZero()&&(l=so),a=a.add(l),i=i.sub(c)}return a},Y.div=Y.divide,Y.modulo=function(t){if(Ht(t)||(t=Tn(t)),un){var n=(this.unsigned?un.rem_u:un.rem_s)(this.low,this.high,t.low,t.high);return Oe(n,un.get_high(),this.unsigned)}return this.sub(this.div(t).mul(t))},Y.mod=Y.modulo,Y.rem=Y.modulo,Y.not=function(){return Oe(~this.low,~this.high,this.unsigned)},Y.and=function(t){return Ht(t)||(t=Tn(t)),Oe(this.low&t.low,this.high&t.high,this.unsigned)},Y.or=function(t){return Ht(t)||(t=Tn(t)),Oe(this.low|t.low,this.high|t.high,this.unsigned)},Y.xor=function(t){return Ht(t)||(t=Tn(t)),Oe(this.low^t.low,this.high^t.high,this.unsigned)},Y.shiftLeft=function(t){return Ht(t)&&(t=t.toInt()),(t&=63)===0?this:t<32?Oe(this.low<<t,this.high<<t|this.low>>>32-t,this.unsigned):Oe(0,this.low<<t-32,this.unsigned)},Y.shl=Y.shiftLeft,Y.shiftRight=function(t){return Ht(t)&&(t=t.toInt()),(t&=63)===0?this:t<32?Oe(this.low>>>t|this.high<<32-t,this.high>>t,this.unsigned):Oe(this.high>>t-32,this.high>=0?0:-1,this.unsigned)},Y.shr=Y.shiftRight,Y.shiftRightUnsigned=function(t){if(Ht(t)&&(t=t.toInt()),t&=63,t===0)return this;var n=this.high;if(t<32){var r=this.low;return Oe(r>>>t|n<<32-t,n>>>t,this.unsigned)}else return t===32?Oe(n,0,this.unsigned):Oe(n>>>t-32,0,this.unsigned)},Y.shru=Y.shiftRightUnsigned,Y.shr_u=Y.shiftRightUnsigned,Y.toSigned=function(){return this.unsigned?Oe(this.low,this.high,!1):this},Y.toUnsigned=function(){return this.unsigned?this:Oe(this.low,this.high,!0)},Y.toBytes=function(t){return t?this.toBytesLE():this.toBytesBE()},Y.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]},Y.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)};const If=ll(vP),Bf=1;class AP{constructor({filehandle:t,path:n}){if(t)this.filehandle=t;else if(n)this.filehandle=new dt(n);else throw new TypeError("either filehandle or path must be defined")}_readLongWithOverflow(t,n=0,r=!0){const i=If.fromBytesLE(t.slice(n,n+8),r);if(i.greaterThan(Number.MAX_SAFE_INTEGER)||i.lessThan(Number.MIN_SAFE_INTEGER))throw new TypeError("integer overflow");return i.toNumber()}_getIndex(){return this.index||(this.index=this._readIndex()),this.index}async _readIndex(){let t=me.Buffer.allocUnsafe(8);await this.filehandle.read(t,0,8,0);const n=this._readLongWithOverflow(t,0,!0);if(!n)return[[0,0]];const r=new Array(n+1);r[0]=[0,0];const i=8*2*n;if(i>Number.MAX_SAFE_INTEGER)throw new TypeError("integer overflow");t=me.Buffer.allocUnsafe(i),await this.filehandle.read(t,0,i,8);for(let a=0;a<n;a+=1){const o=this._readLongWithOverflow(t,a*16),s=this._readLongWithOverflow(t,a*16+8);r[a+1]=[o,s]}return r}async getLastBlock(){const t=await this._getIndex();if(t.length)return t[t.length-1]}async getRelevantBlocksForRead(t,n){const r=n+t;if(t===0)return[];const i=await this._getIndex(),a=[],o=(h,d)=>{const p=h[Bf],m=d?d[Bf]:1/0;return p<=n&&m>n?0:p<n?-1:1};let s=0,u=i.length-1,l=Math.floor(i.length/2),c=o(i[l],i[l+1]);for(;c!==0;)c>0?u=l-1:c<0&&(s=l+1),l=Math.ceil((u-s)/2)+s,c=o(i[l],i[l+1]);a.push(i[l]);let f=l+1;for(;f<i.length&&(a.push(i[f]),!(i[f][Bf]>=r));f+=1);return a[a.length-1][Bf]<r&&a.push([]),a}}class aA{constructor({filehandle:t,path:n,gziFilehandle:r,gziPath:i}){if(t)this.filehandle=t;else if(n)this.filehandle=new dt(n);else throw new TypeError("either filehandle or path must be defined");if(!r&&!i&&!n)throw new TypeError("either gziFilehandle or gziPath must be defined");this.gzi=new AP({filehandle:r,path:!r&&!i&&n?i:`${n}.gzi`})}async stat(){const t=await this.filehandle.stat();return Object.assign(t,{size:await this.getUncompressedFileSize(),blocks:void 0,blksize:void 0})}async getUncompressedFileSize(){const[,t]=await this.gzi.getLastBlock(),{size:n}=await this.filehandle.stat(),r=me.Buffer.allocUnsafe(4),{bytesRead:i}=await this.filehandle.read(r,0,4,n-28-4);if(i!==4)throw new Error("read error");const a=r.readUInt32LE(0);return t+a}async _readAndUncompressBlock(t,[n],[r]){let i=r;i||(i=(await this.filehandle.stat()).size);const a=i-n;return await this.filehandle.read(t,0,a,n),await li(t.slice(0,a))}async read(t,n,r,i){const a=await this.gzi.getRelevantBlocksForRead(r,i),o=me.Buffer.allocUnsafe(32768*2);let s=n,u=0;for(let l=0;l<a.length-1;l+=1){const c=await this._readAndUncompressBlock(o,a[l],a[l+1]),[,f]=a[l],h=f>=i?0:i-f,d=Math.min(i+r,f+c.length)-f;h>=0&&h<c.length&&(c.copy(t,s,h,d),s+=d-h,u+=d-h)}return{bytesRead:u,buffer:t}}}function oA(e,t){return e.offset+e.lineBytes*Math.floor(t/e.lineLength)+t%e.lineLength}async function EP(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 sA{constructor({fasta:t,fai:n,path:r,faiPath:i,chunkSizeLimit:a=1e6}){if(t)this.fasta=t;else if(r)this.fasta=new dt(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 dt(i);else if(r)this.fai=new dt(`${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=EP(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=oA(t,n),s=oA(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 u=Buffer.allocUnsafe(s);return await this.fasta.read(u,0,s,o,i),u.toString("utf8").replace(/\s+/g,"")}}class _P extends sA{constructor({fasta:t,path:n,fai:r,faiPath:i,gzi:a,gziPath:o,chunkSizeLimit:s}){super({fasta:t,path:n,fai:r,faiPath:i,chunkSizeLimit:s}),t&&a?this.fasta=new aA({filehandle:t,gziFilehandle:a}):n&&o&&(this.fasta=new aA({path:n,gziPath:o}))}}function lA(e){return e.split(">").filter(t=>/\S/.test(t)).map(t=>{const[n,...r]=t.split(`
|
|
450
|
+
`),[i,...a]=n.split(" "),o=r.join("").replace(/\s/g,"");return{id:i,description:a.join(" "),sequence:o}})}class SP{constructor({fasta:t,path:n}){if(t)this.fasta=t;else if(n)this.fasta=new dt(n);else throw new Error("Need to pass fasta or path");this.data=this.fasta.readFile().then(r=>{const i=r.toString("utf8");return lA(i)})}async fetch(t,n,r){const a=(await this.data).find(s=>s.id===t),o=r-n;if(!a)throw new Error(`no sequence with id ${t} exists`);return a.sequence.substr(n,o)}async getSequenceNames(){return(await this.data).map(n=>n.id)}}const CP=Object.freeze(Object.defineProperty({__proto__:null,BgzipIndexedFasta:_P,FetchableSmallFasta:SP,IndexedFasta:sA,parseSmallFasta:lA},Symbol.toStringTag,{value:"Module"})),Df=BigInt(32);function kP(e,t,n){const r=+!!n,i=+!n;return BigInt(e.getInt32(t,n)*i+e.getInt32(t+4,n)*r)<<Df|BigInt(e.getUint32(t,n)*r+e.getUint32(t+4,n)*i)}function TP(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)<<Df|BigInt(r*a+i*o)}function IP(e,t,n,r){const i=Number(n>>Df),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 BP(e,t,n,r){const i=Number(n>>Df),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 kP(this,e,t)}),"getBigUint64"in DataView||(DataView.prototype.getBigUint64=function(e,t){return TP(this,e,t)}),"setBigInt64"in DataView||(DataView.prototype.setBigInt64=function(e,t,n){IP(this,e,t,n)}),"setBigUint64"in DataView||(DataView.prototype.setBigUint64=function(e,t,n){BP(this,e,t,n)});class DP{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+`
|
|
451
|
+
`}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 In=new Map,la="___parser_",Bn={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},Rf={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"},Ff={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};let Ie=class Mn{constructor(){this.varName="",this.type="",this.options={},this.endian="be",this.useContextVariables=!1}static start(){return new Mn}primitiveGenerateN(t,n){const r=Rf[t],i=Ff[t];n.pushCode(`${n.generateVariable(this.varName)} = dataView.get${r}(offset, ${i});`),n.pushCode(`offset += ${Bn[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 In.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"&&!In.has(n.type)&&!(n.type in Bn))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"&&!In.has(a)&&!(a in Bn))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 Mn)&&!In.has(n.type))throw new Error("type must be a known parser name or a Parser object.");if(!(n.type instanceof Mn)&&!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 Bn)&&!In.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 DP(t,this.useContextVariables);return n.pushCode("var dataView = new DataView(buffer.buffer, buffer.byteOffset, buffer.length);"),this.alias?(this.addAliasedCode(n),n.pushCode(`return ${la+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 ${la+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=In.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(Bn).indexOf(this.type)>=0)t=Bn[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=Bn[this.options.type]:this.options.type instanceof Mn&&(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 Mn;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=(c=0)=>{let f=0;for(let h=c;h<t.bitFields.length;h++){const d=t.bitFields[h].options.length;if(f+d>32)break;f+=d}return f},a=c=>(c<=8?(t.pushCode(`${r} = dataView.getUint8(offset);`),c=8):c<=16?(t.pushCode(`${r} = dataView.getUint16(offset);`),c=16):c<=24?(t.pushCode(`${r} = (dataView.getUint16(offset) << 8) | dataView.getUint8(offset + 2);`),c=24):(t.pushCode(`${r} = dataView.getUint32(offset);`),c=32),t.pushCode(`offset += ${c/8};`),c);let o=0;const s=this.endian==="be";let u=0,l=0;t.bitFields.forEach((c,f)=>{let h=c.options.length;if(h>l){if(l){const m=-1>>>32-l;t.pushCode(`${c.varName} = (${r} & 0x${m.toString(16)}) << ${h-l};`),h-=l}o=0,l=u=a(i(f)-l)}const d=s?u-o-h:o,p=-1>>>32-h;t.pushCode(`${c.varName} ${h<c.options.length?"|=":"="} ${r} >> ${d} & 0x${p.toString(16)};`),c.options.length===32&&t.pushCode(`${c.varName} >>>= 0`),c.options.assert&&c.generateAssert(t),c.options.formatter&&c.generateFormatter(t,c.varName,c.options.formatter),o+=h,l-=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 u=`offset - ${r} < ${s} ? offset - 1 : offset`;t.pushCode(a?`${n} = Array.from(buffer.subarray(${r}, ${u}), ${o}).join('');`:`${n} = new TextDecoder('${i}').decode(buffer.subarray(${r}, ${u}));`)}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(),u=this.options.key,l=typeof u=="string";if(l?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(In.get(i)){const c=t.generateTmpVariable();if(t.pushCode(`var ${c} = ${la+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} = ${c}.result; offset = ${c}.offset;`),i!==this.alias&&t.addReference(i)}else{const c=Rf[i],f=Ff[i];t.pushCode(`var ${s} = dataView.get${c}(offset, ${f});`),t.pushCode(`offset += ${Bn[i]};`)}else if(i instanceof Mn){t.pushCode(`var ${s} = {};`);const c=t.generateVariable();t.pushScope(s),t.useContextVariables&&(t.pushCode(`${s}.$parent = ${c};`),t.pushCode(`${s}.$root = ${c}.$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(l?t.pushCode(`${o}[${s}.${u}] = ${s};`):t.pushCode(`${o}.push(${s});`),t.pushCode("}"),typeof this.options.readUntil=="function"){const c=this.options.readUntil,f=t.addImport(c);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(In.has(r)){const a=t.generateTmpVariable();t.pushCode(`var ${a} = ${la+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=Rf[r],o=Ff[r];t.pushCode(`${i} = dataView.get${a}(offset, ${o});`),t.pushCode(`offset += ${Bn[r]}`)}}else r instanceof Mn&&(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 Mn){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(In.has(this.options.type)){const r=t.generateTmpVariable();if(t.pushCode(`var ${r} = ${la+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 u=this.options.readUntil,l=t.generateTmpVariable(),c=t.generateTmpVariable();t.pushCode(`var ${l} = offset;`),t.pushCode(`var ${c} = 0;`),t.pushCode("while (offset < buffer.length) {"),t.pushCode(`${c} = dataView.getUint8(offset);`);const f=t.addImport(u);t.pushCode(`if (${f}.call(${t.generateVariable()}, ${c}, buffer.subarray(offset))) break;`),t.pushCode("offset += 1;"),t.pushCode("}"),t.pushCode(`${r} = buffer.subarray(${l}, offset);`)}else if(this.options.readUntil==="eof")t.pushCode(`${r} = buffer.subarray(offset);`);else{const u=t.generateOption(this.options.length);t.pushCode(`${r} = buffer.subarray(offset, offset + ${u});`),t.pushCode(`offset += ${u};`)}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 Mn)this.varName&&t.pushCode(`${n} = {};`),t.pushPath(this.varName),this.options.type.generate(t),t.popPath(this.varName);else if(In.has(this.options.type)){const u=t.generateTmpVariable();t.pushCode(`var ${u} = ${la+this.options.type}(0);`),t.pushCode(`${n} = ${u}.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 Mn){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(In.has(this.options.type)){const o=t.generateTmpVariable();if(t.pushCode(`var ${o} = ${la+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(Bn).indexOf(this.options.type)>=0){const o=Rf[n],s=Ff[n];t.pushCode(`${a} = dataView.get${o}(offset, ${s});`),t.pushCode(`offset += ${Bn[n]};`)}t.pushCode(`offset = ${i};`)}generateSaveOffset(t){const n=t.generateVariable(this.varName);t.pushCode(`${n} = offset`)}};var uA={},Bp={},ua={},Cl={};Object.defineProperty(Cl,"__esModule",{value:!0});function Dp(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function cA(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 Rp(e,t,n){return t&&cA(e.prototype,t),n&&cA(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function RP(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&&Fp(e,t)}function lo(e){return lo=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},lo(e)}function Fp(e,t){return Fp=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,i){return r.__proto__=i,r},Fp(e,t)}function FP(){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 kl(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function MP(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 kl(e)}function PP(e){var t=FP();return function(){var r=lo(e),i;if(t){var a=lo(this).constructor;i=Reflect.construct(r,arguments,a)}else i=r.apply(this,arguments);return MP(this,i)}}function LP(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&(e=lo(e),e!==null););return e}function Mf(){return typeof Reflect<"u"&&Reflect.get?Mf=Reflect.get.bind():Mf=function(t,n,r){var i=LP(t,n);if(i){var a=Object.getOwnPropertyDescriptor(i,n);return a.get?a.get.call(arguments.length<3?t:r):a.value}},Mf.apply(this,arguments)}var fA=function(){function e(){Dp(this,e),Object.defineProperty(this,"listeners",{value:{},writable:!0,configurable:!0})}return Rp(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(u){Promise.resolve().then(function(){throw u})}s.options&&s.options.once&&this.removeEventListener(n.type,s.callback)}return!n.defaultPrevented}}}]),e}(),Mp=function(e){RP(n,e);var t=PP(n);function n(){var r;return Dp(this,n),r=t.call(this),r.listeners||fA.call(kl(r)),Object.defineProperty(kl(r),"aborted",{value:!1,writable:!0,configurable:!0}),Object.defineProperty(kl(r),"onabort",{value:null,writable:!0,configurable:!0}),Object.defineProperty(kl(r),"reason",{value:void 0,writable:!0,configurable:!0}),r}return Rp(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)),Mf(lo(n.prototype),"dispatchEvent",this).call(this,i)}}]),n}(fA),hA=function(){function e(){Dp(this,e),Object.defineProperty(this,"signal",{value:new Mp,writable:!0,configurable:!0})}return Rp(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&&(hA.prototype[Symbol.toStringTag]="AbortController",Mp.prototype[Symbol.toStringTag]="AbortSignal");function OP(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 NP(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(!OP({fetch:n,Request:i,AbortController:a,__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL:s}))return{fetch:n,Request:u};var u=i;(u&&!u.prototype.hasOwnProperty("signal")||s)&&(u=function(h,d){var p;d&&d.signal&&(p=d.signal,delete d.signal);var m=new i(h,d);return p&&Object.defineProperty(m,"signal",{writable:!1,enumerable:!1,configurable:!0,value:p}),m},u.prototype=i.prototype);var l=n,c=function(h,d){var p=u&&u.prototype.isPrototypeOf(h)?h.signal:d?d.signal:void 0;if(p){var m;try{m=new DOMException("Aborted","AbortError")}catch{m=new Error("Aborted"),m.name="AbortError"}if(p.aborted)return Promise.reject(m);var y=new Promise(function(w,A){p.addEventListener("abort",function(){return A(m)},{once:!0})});return d&&d.signal&&delete d.signal,Promise.race([y,l(h,d)])}return l(h,d)};return{fetch:c,Request:u}}Cl.AbortController=hA,Cl.AbortSignal=Mp,Cl.abortableFetch=NP,Object.defineProperty(ua,"__esModule",{value:!0}),ua.AbortSignal=ua.AbortController=void 0;const dA=Cl;var Pf=function(){if(typeof self<"u")return self;if(typeof window<"u")return window;if(typeof globalThis<"u")return globalThis;throw new Error("unable to locate global object")};let zP=typeof Pf().AbortController>"u"?dA.AbortController:Pf().AbortController;ua.AbortController=zP;let UP=typeof Pf().AbortController>"u"?dA.AbortSignal:Pf().AbortSignal;ua.AbortSignal=UP;var Pp={};Object.defineProperty(Pp,"__esModule",{value:!0});const GP=ua;class HP{}class VP{constructor(){this.signals=new Set,this.abortController=new GP.AbortController}addSignal(t=new HP){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()}}Pp.default=VP;var Lp={};Object.defineProperty(Lp,"__esModule",{value:!0});class jP{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)})}}Lp.default=jP;var pA=cf&&cf.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Bp,"__esModule",{value:!0});const $P=ua,qP=pA(Pp),WP=pA(Lp);class Lf{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 qP.default,o=new WP.default;o.addCallback(i);const s={aborter:a,promise:this.fillCallback(n,a.signal,u=>{o.callback(u)}),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(u=>{throw console.error(u),u}),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 $P.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),Lf.checkSinglePromise(a.promise,r)):(this.fill(t,n,r,i),Lf.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}}Bp.default=Lf;var ZP=cf&&cf.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(uA,"__esModule",{value:!0});const YP=ZP(Bp);var Of=uA.default=YP.default;class QP{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}}var XP=QP;const Nf=ll(XP);class ui{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 ui(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 ui(i.min(),o.max()))}return r.push(i),r.length===1?r[0]:new ui(r)}intersection(t){let n=this,r=t;const i=this.ranges(),a=r.ranges(),o=i.length,s=a.length;let u=0,l=0;const c=[];for(;u<o&&l<s;){n=i[u],r=a[l];const f=Math.max(n.min(),r.min()),h=Math.min(n.max(),r.max());h>=f&&c.push(new ui(f,h)),n.max()>r.max()?l+=1:u+=1}if(c.length===0)throw new Error("found range of length 0");return c.length===1?c[0]:new ui(c)}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 KP=4,gA=0,mA=1,JP=2;function uo(e){let t=e.length;for(;--t>=0;)e[t]=0}const eL=0,bA=1,tL=2,nL=3,rL=258,Op=29,Tl=256,Il=Tl+1+Op,co=30,Np=19,yA=2*Il+1,ca=15,zp=16,iL=7,Up=256,wA=16,vA=17,xA=18,Gp=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]),zf=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]),aL=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),AA=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),oL=512,br=new Array((Il+2)*2);uo(br);const Bl=new Array(co*2);uo(Bl);const Dl=new Array(oL);uo(Dl);const Rl=new Array(rL-nL+1);uo(Rl);const Hp=new Array(Op);uo(Hp);const Uf=new Array(co);uo(Uf);function Vp(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 EA,_A,SA;function jp(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}const CA=e=>e<256?Dl[e]:Dl[256+(e>>>7)],Fl=(e,t)=>{e.pending_buf[e.pending++]=t&255,e.pending_buf[e.pending++]=t>>>8&255},jt=(e,t,n)=>{e.bi_valid>zp-n?(e.bi_buf|=t<<e.bi_valid&65535,Fl(e,e.bi_buf),e.bi_buf=t>>zp-e.bi_valid,e.bi_valid+=n-zp):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=n)},Kn=(e,t,n)=>{jt(e,n[t*2],n[t*2+1])},kA=(e,t)=>{let n=0;do n|=e&1,e>>>=1,n<<=1;while(--t>0);return n>>>1},sL=e=>{e.bi_valid===16?(Fl(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)},lL=(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,u=t.stat_desc.max_length;let l,c,f,h,d,p,m=0;for(h=0;h<=ca;h++)e.bl_count[h]=0;for(n[e.heap[e.heap_max]*2+1]=0,l=e.heap_max+1;l<yA;l++)c=e.heap[l],h=n[n[c*2+1]*2+1]+1,h>u&&(h=u,m++),n[c*2+1]=h,!(c>r)&&(e.bl_count[h]++,d=0,c>=s&&(d=o[c-s]),p=n[c*2],e.opt_len+=p*(h+d),a&&(e.static_len+=p*(i[c*2+1]+d)));if(m!==0){do{for(h=u-1;e.bl_count[h]===0;)h--;e.bl_count[h]--,e.bl_count[h+1]+=2,e.bl_count[u]--,m-=2}while(m>0);for(h=u;h!==0;h--)for(c=e.bl_count[h];c!==0;)f=e.heap[--l],!(f>r)&&(n[f*2+1]!==h&&(e.opt_len+=(h-n[f*2+1])*n[f*2],n[f*2+1]=h),c--)}},TA=(e,t,n)=>{const r=new Array(ca+1);let i=0,a,o;for(a=1;a<=ca;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]=kA(r[s]++,s))}},uL=()=>{let e,t,n,r,i;const a=new Array(ca+1);for(n=0,r=0;r<Op-1;r++)for(Hp[r]=n,e=0;e<1<<Gp[r];e++)Rl[n++]=r;for(Rl[n-1]=r,i=0,r=0;r<16;r++)for(Uf[r]=i,e=0;e<1<<zf[r];e++)Dl[i++]=r;for(i>>=7;r<co;r++)for(Uf[r]=i<<7,e=0;e<1<<zf[r]-7;e++)Dl[256+i++]=r;for(t=0;t<=ca;t++)a[t]=0;for(e=0;e<=143;)br[e*2+1]=8,e++,a[8]++;for(;e<=255;)br[e*2+1]=9,e++,a[9]++;for(;e<=279;)br[e*2+1]=7,e++,a[7]++;for(;e<=287;)br[e*2+1]=8,e++,a[8]++;for(TA(br,Il+1,a),e=0;e<co;e++)Bl[e*2+1]=5,Bl[e*2]=kA(e,5);EA=new Vp(br,Gp,Tl+1,Il,ca),_A=new Vp(Bl,zf,0,co,ca),SA=new Vp(new Array(0),aL,0,Np,iL)},IA=e=>{let t;for(t=0;t<Il;t++)e.dyn_ltree[t*2]=0;for(t=0;t<co;t++)e.dyn_dtree[t*2]=0;for(t=0;t<Np;t++)e.bl_tree[t*2]=0;e.dyn_ltree[Up*2]=1,e.opt_len=e.static_len=0,e.sym_next=e.matches=0},BA=e=>{e.bi_valid>8?Fl(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0},DA=(e,t,n,r)=>{const i=t*2,a=n*2;return e[i]<e[a]||e[i]===e[a]&&r[t]<=r[n]},$p=(e,t,n)=>{const r=e.heap[n];let i=n<<1;for(;i<=e.heap_len&&(i<e.heap_len&&DA(t,e.heap[i+1],e.heap[i],e.depth)&&i++,!DA(t,r,e.heap[i],e.depth));)e.heap[n]=e.heap[i],n=i,i<<=1;e.heap[n]=r},RA=(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?Kn(e,i,t):(o=Rl[i],Kn(e,o+Tl+1,t),s=Gp[o],s!==0&&(i-=Hp[o],jt(e,i,s)),r--,o=CA(r),Kn(e,o,n),s=zf[o],s!==0&&(r-=Uf[o],jt(e,r,s)));while(a<e.sym_next);Kn(e,Up,t)},qp=(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,u=-1,l;for(e.heap_len=0,e.heap_max=yA,o=0;o<a;o++)n[o*2]!==0?(e.heap[++e.heap_len]=u=o,e.depth[o]=0):n[o*2+1]=0;for(;e.heap_len<2;)l=e.heap[++e.heap_len]=u<2?++u:0,n[l*2]=1,e.depth[l]=0,e.opt_len--,i&&(e.static_len-=r[l*2+1]);for(t.max_code=u,o=e.heap_len>>1;o>=1;o--)$p(e,n,o);l=a;do o=e.heap[1],e.heap[1]=e.heap[e.heap_len--],$p(e,n,1),s=e.heap[1],e.heap[--e.heap_max]=o,e.heap[--e.heap_max]=s,n[l*2]=n[o*2]+n[s*2],e.depth[l]=(e.depth[o]>=e.depth[s]?e.depth[o]:e.depth[s])+1,n[o*2+1]=n[s*2+1]=l,e.heap[1]=l++,$p(e,n,1);while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],lL(e,t),TA(n,u,e.bl_count)},FA=(e,t,n)=>{let r,i=-1,a,o=t[0*2+1],s=0,u=7,l=4;for(o===0&&(u=138,l=3),t[(n+1)*2+1]=65535,r=0;r<=n;r++)a=o,o=t[(r+1)*2+1],!(++s<u&&a===o)&&(s<l?e.bl_tree[a*2]+=s:a!==0?(a!==i&&e.bl_tree[a*2]++,e.bl_tree[wA*2]++):s<=10?e.bl_tree[vA*2]++:e.bl_tree[xA*2]++,s=0,i=a,o===0?(u=138,l=3):a===o?(u=6,l=3):(u=7,l=4))},MA=(e,t,n)=>{let r,i=-1,a,o=t[0*2+1],s=0,u=7,l=4;for(o===0&&(u=138,l=3),r=0;r<=n;r++)if(a=o,o=t[(r+1)*2+1],!(++s<u&&a===o)){if(s<l)do Kn(e,a,e.bl_tree);while(--s!==0);else a!==0?(a!==i&&(Kn(e,a,e.bl_tree),s--),Kn(e,wA,e.bl_tree),jt(e,s-3,2)):s<=10?(Kn(e,vA,e.bl_tree),jt(e,s-3,3)):(Kn(e,xA,e.bl_tree),jt(e,s-11,7));s=0,i=a,o===0?(u=138,l=3):a===o?(u=6,l=3):(u=7,l=4)}},cL=e=>{let t;for(FA(e,e.dyn_ltree,e.l_desc.max_code),FA(e,e.dyn_dtree,e.d_desc.max_code),qp(e,e.bl_desc),t=Np-1;t>=3&&e.bl_tree[AA[t]*2+1]===0;t--);return e.opt_len+=3*(t+1)+5+5+4,t},fL=(e,t,n,r)=>{let i;for(jt(e,t-257,5),jt(e,n-1,5),jt(e,r-4,4),i=0;i<r;i++)jt(e,e.bl_tree[AA[i]*2+1],3);MA(e,e.dyn_ltree,t-1),MA(e,e.dyn_dtree,n-1)},hL=e=>{let t=4093624447,n;for(n=0;n<=31;n++,t>>>=1)if(t&1&&e.dyn_ltree[n*2]!==0)return gA;if(e.dyn_ltree[9*2]!==0||e.dyn_ltree[10*2]!==0||e.dyn_ltree[13*2]!==0)return mA;for(n=32;n<Tl;n++)if(e.dyn_ltree[n*2]!==0)return mA;return gA};let PA=!1;const dL=e=>{PA||(uL(),PA=!0),e.l_desc=new jp(e.dyn_ltree,EA),e.d_desc=new jp(e.dyn_dtree,_A),e.bl_desc=new jp(e.bl_tree,SA),e.bi_buf=0,e.bi_valid=0,IA(e)},LA=(e,t,n,r)=>{jt(e,(eL<<1)+(r?1:0),3),BA(e),Fl(e,n),Fl(e,~n),n&&e.pending_buf.set(e.window.subarray(t,t+n),e.pending),e.pending+=n},pL=e=>{jt(e,bA<<1,3),Kn(e,Up,br),sL(e)},gL=(e,t,n,r)=>{let i,a,o=0;e.level>0?(e.strm.data_type===JP&&(e.strm.data_type=hL(e)),qp(e,e.l_desc),qp(e,e.d_desc),o=cL(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?LA(e,t,n,r):e.strategy===KP||a===i?(jt(e,(bA<<1)+(r?1:0),3),RA(e,br,Bl)):(jt(e,(tL<<1)+(r?1:0),3),fL(e,e.l_desc.max_code+1,e.d_desc.max_code+1,o+1),RA(e,e.dyn_ltree,e.dyn_dtree)),IA(e),r&&BA(e)},mL=(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[(Rl[n]+Tl+1)*2]++,e.dyn_dtree[CA(t)*2]++),e.sym_next===e.sym_end);var bL=dL,yL=LA,wL=gL,vL=mL,xL=pL,AL={_tr_init:bL,_tr_stored_block:yL,_tr_flush_block:wL,_tr_tally:vL,_tr_align:xL},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 EL=()=>{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},_L=new Uint32Array(EL());var pt=(e,t,n,r)=>{const i=_L,a=r+n;e^=-1;for(let o=r;o<a;o++)e=e>>>8^i[(e^t[o])&255];return e^-1},fo={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"},Pl={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:SL,_tr_stored_block:Wp,_tr_flush_block:CL,_tr_tally:ci,_tr_align:kL}=AL,{Z_NO_FLUSH:fi,Z_PARTIAL_FLUSH:TL,Z_FULL_FLUSH:IL,Z_FINISH:hn,Z_BLOCK:OA,Z_OK:vt,Z_STREAM_END:NA,Z_STREAM_ERROR:Jn,Z_DATA_ERROR:BL,Z_BUF_ERROR:Zp,Z_DEFAULT_COMPRESSION:DL,Z_FILTERED:RL,Z_HUFFMAN_ONLY:Gf,Z_RLE:FL,Z_FIXED:ML,Z_DEFAULT_STRATEGY:PL,Z_UNKNOWN:LL,Z_DEFLATED:Hf}=Pl,OL=9,NL=15,zL=8,UL=29,Yp=256+1+UL,GL=30,HL=19,VL=2*Yp+1,jL=15,pe=3,hi=258,er=hi+pe+1,$L=32,ho=42,Qp=57,Xp=69,Kp=73,Jp=91,eg=103,fa=113,Ll=666,Ft=1,po=2,ha=3,go=4,qL=3,da=(e,t)=>(e.msg=fo[t],t),zA=e=>e*2-(e>4?9:0),di=e=>{let t=e.length;for(;--t>=0;)e[t]=0},WL=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 pi=(e,t,n)=>(t<<e.hash_shift^n)&e.hash_mask;const Xt=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))},Kt=(e,t)=>{CL(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,Xt(e.strm)},Ae=(e,t)=>{e.pending_buf[e.pending++]=t},Ol=(e,t)=>{e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=t&255},tg=(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=pt(e.adler,t,i,n)),e.next_in+=i,e.total_in+=i,i)},UA=(e,t)=>{let n=e.max_chain_length,r=e.strstart,i,a,o=e.prev_length,s=e.nice_match;const u=e.strstart>e.w_size-er?e.strstart-(e.w_size-er):0,l=e.window,c=e.w_mask,f=e.prev,h=e.strstart+hi;let d=l[r+o-1],p=l[r+o];e.prev_length>=e.good_match&&(n>>=2),s>e.lookahead&&(s=e.lookahead);do if(i=t,!(l[i+o]!==p||l[i+o-1]!==d||l[i]!==l[r]||l[++i]!==l[r+1])){r+=2,i++;do;while(l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&r<h);if(a=hi-(h-r),r=h-hi,a>o){if(e.match_start=t,o=a,a>=s)break;d=l[r+o-1],p=l[r+o]}}while((t=f[t&c])>u&&--n!==0);return o<=e.lookahead?o:e.lookahead},mo=e=>{const t=e.w_size;let n,r,i;do{if(r=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-er)&&(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),WL(e),r+=t),e.strm.avail_in===0)break;if(n=tg(e.strm,e.window,e.strstart+e.lookahead,r),e.lookahead+=n,e.lookahead+e.insert>=pe)for(i=e.strstart-e.insert,e.ins_h=e.window[i],e.ins_h=pi(e,e.ins_h,e.window[i+1]);e.insert&&(e.ins_h=pi(e,e.ins_h,e.window[i+pe-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<pe)););}while(e.lookahead<er&&e.strm.avail_in!==0)},GA=(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!==hn||t===fi||r!==i+e.strm.avail_in)))break;o=t===hn&&r===i+e.strm.avail_in?1:0,Wp(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,Xt(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&&(tg(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?go:t!==fi&&t!==hn&&e.strm.avail_in===0&&e.strstart===e.block_start?po:(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&&(tg(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===hn)&&t!==fi&&e.strm.avail_in===0&&i<=a)&&(r=i>a?a:i,o=t===hn&&e.strm.avail_in===0&&r===i?1:0,Wp(e,e.block_start,r,o),e.block_start+=r,Xt(e.strm)),o?ha:Ft)},ng=(e,t)=>{let n,r;for(;;){if(e.lookahead<er){if(mo(e),e.lookahead<er&&t===fi)return Ft;if(e.lookahead===0)break}if(n=0,e.lookahead>=pe&&(e.ins_h=pi(e,e.ins_h,e.window[e.strstart+pe-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-er&&(e.match_length=UA(e,n)),e.match_length>=pe)if(r=ci(e,e.strstart-e.match_start,e.match_length-pe),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=pe){e.match_length--;do e.strstart++,e.ins_h=pi(e,e.ins_h,e.window[e.strstart+pe-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=pi(e,e.ins_h,e.window[e.strstart+1]);else r=ci(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(r&&(Kt(e,!1),e.strm.avail_out===0))return Ft}return e.insert=e.strstart<pe-1?e.strstart:pe-1,t===hn?(Kt(e,!0),e.strm.avail_out===0?ha:go):e.sym_next&&(Kt(e,!1),e.strm.avail_out===0)?Ft:po},bo=(e,t)=>{let n,r,i;for(;;){if(e.lookahead<er){if(mo(e),e.lookahead<er&&t===fi)return Ft;if(e.lookahead===0)break}if(n=0,e.lookahead>=pe&&(e.ins_h=pi(e,e.ins_h,e.window[e.strstart+pe-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=pe-1,n!==0&&e.prev_length<e.max_lazy_match&&e.strstart-n<=e.w_size-er&&(e.match_length=UA(e,n),e.match_length<=5&&(e.strategy===RL||e.match_length===pe&&e.strstart-e.match_start>4096)&&(e.match_length=pe-1)),e.prev_length>=pe&&e.match_length<=e.prev_length){i=e.strstart+e.lookahead-pe,r=ci(e,e.strstart-1-e.prev_match,e.prev_length-pe),e.lookahead-=e.prev_length-1,e.prev_length-=2;do++e.strstart<=i&&(e.ins_h=pi(e,e.ins_h,e.window[e.strstart+pe-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=pe-1,e.strstart++,r&&(Kt(e,!1),e.strm.avail_out===0))return Ft}else if(e.match_available){if(r=ci(e,0,e.window[e.strstart-1]),r&&Kt(e,!1),e.strstart++,e.lookahead--,e.strm.avail_out===0)return Ft}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(r=ci(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<pe-1?e.strstart:pe-1,t===hn?(Kt(e,!0),e.strm.avail_out===0?ha:go):e.sym_next&&(Kt(e,!1),e.strm.avail_out===0)?Ft:po},ZL=(e,t)=>{let n,r,i,a;const o=e.window;for(;;){if(e.lookahead<=hi){if(mo(e),e.lookahead<=hi&&t===fi)return Ft;if(e.lookahead===0)break}if(e.match_length=0,e.lookahead>=pe&&e.strstart>0&&(i=e.strstart-1,r=o[i],r===o[++i]&&r===o[++i]&&r===o[++i])){a=e.strstart+hi;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=hi-(a-i),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=pe?(n=ci(e,1,e.match_length-pe),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(n=ci(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),n&&(Kt(e,!1),e.strm.avail_out===0))return Ft}return e.insert=0,t===hn?(Kt(e,!0),e.strm.avail_out===0?ha:go):e.sym_next&&(Kt(e,!1),e.strm.avail_out===0)?Ft:po},YL=(e,t)=>{let n;for(;;){if(e.lookahead===0&&(mo(e),e.lookahead===0)){if(t===fi)return Ft;break}if(e.match_length=0,n=ci(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,n&&(Kt(e,!1),e.strm.avail_out===0))return Ft}return e.insert=0,t===hn?(Kt(e,!0),e.strm.avail_out===0?ha:go):e.sym_next&&(Kt(e,!1),e.strm.avail_out===0)?Ft:po};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}const Nl=[new tr(0,0,0,0,GA),new tr(4,4,8,4,ng),new tr(4,5,16,8,ng),new tr(4,6,32,32,ng),new tr(4,4,16,16,bo),new tr(8,16,32,32,bo),new tr(8,16,128,128,bo),new tr(8,32,128,256,bo),new tr(32,128,258,1024,bo),new tr(32,258,258,4096,bo)],QL=e=>{e.window_size=2*e.w_size,di(e.head),e.max_lazy_match=Nl[e.level].max_lazy,e.good_match=Nl[e.level].good_length,e.nice_match=Nl[e.level].nice_length,e.max_chain_length=Nl[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=pe-1,e.match_available=0,e.ins_h=0};function XL(){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=Hf,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(VL*2),this.dyn_dtree=new Uint16Array((2*GL+1)*2),this.bl_tree=new Uint16Array((2*HL+1)*2),di(this.dyn_ltree),di(this.dyn_dtree),di(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(jL+1),this.heap=new Uint16Array(2*Yp+1),di(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*Yp+1),di(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 zl=e=>{if(!e)return 1;const t=e.state;return!t||t.strm!==e||t.status!==ho&&t.status!==Qp&&t.status!==Xp&&t.status!==Kp&&t.status!==Jp&&t.status!==eg&&t.status!==fa&&t.status!==Ll?1:0},HA=e=>{if(zl(e))return da(e,Jn);e.total_in=e.total_out=0,e.data_type=LL;const t=e.state;return t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap===2?Qp:t.wrap?ho:fa,e.adler=t.wrap===2?0:1,t.last_flush=-2,SL(t),vt},VA=e=>{const t=HA(e);return t===vt&&QL(e.state),t},KL=(e,t)=>zl(e)||e.state.wrap!==2?Jn:(e.state.gzhead=t,vt),jA=(e,t,n,r,i,a)=>{if(!e)return Jn;let o=1;if(t===DL&&(t=6),r<0?(o=0,r=-r):r>15&&(o=2,r-=16),i<1||i>OL||n!==Hf||r<8||r>15||t<0||t>9||a<0||a>ML||r===8&&o!==1)return da(e,Jn);r===8&&(r=9);const s=new XL;return e.state=s,s.strm=e,s.status=ho,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+pe-1)/pe),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,VA(e)},JL=(e,t)=>jA(e,t,Hf,NL,zL,PL),eO=(e,t)=>{if(zl(e)||t>OA||t<0)return e?da(e,Jn):Jn;const n=e.state;if(!e.output||e.avail_in!==0&&!e.input||n.status===Ll&&t!==hn)return da(e,e.avail_out===0?Zp:Jn);const r=n.last_flush;if(n.last_flush=t,n.pending!==0){if(Xt(e),e.avail_out===0)return n.last_flush=-1,vt}else if(e.avail_in===0&&zA(t)<=zA(r)&&t!==hn)return da(e,Zp);if(n.status===Ll&&e.avail_in!==0)return da(e,Zp);if(n.status===ho&&n.wrap===0&&(n.status=fa),n.status===ho){let i=Hf+(n.w_bits-8<<4)<<8,a=-1;if(n.strategy>=Gf||n.level<2?a=0:n.level<6?a=1:n.level===6?a=2:a=3,i|=a<<6,n.strstart!==0&&(i|=$L),i+=31-i%31,Ol(n,i),n.strstart!==0&&(Ol(n,e.adler>>>16),Ol(n,e.adler&65535)),e.adler=1,n.status=fa,Xt(e),n.pending!==0)return n.last_flush=-1,vt}if(n.status===Qp){if(e.adler=0,Ae(n,31),Ae(n,139),Ae(n,8),n.gzhead)Ae(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)),Ae(n,n.gzhead.time&255),Ae(n,n.gzhead.time>>8&255),Ae(n,n.gzhead.time>>16&255),Ae(n,n.gzhead.time>>24&255),Ae(n,n.level===9?2:n.strategy>=Gf||n.level<2?4:0),Ae(n,n.gzhead.os&255),n.gzhead.extra&&n.gzhead.extra.length&&(Ae(n,n.gzhead.extra.length&255),Ae(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(e.adler=pt(e.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=Xp;else if(Ae(n,0),Ae(n,0),Ae(n,0),Ae(n,0),Ae(n,0),Ae(n,n.level===9?2:n.strategy>=Gf||n.level<2?4:0),Ae(n,qL),n.status=fa,Xt(e),n.pending!==0)return n.last_flush=-1,vt}if(n.status===Xp){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=pt(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex+=s,Xt(e),n.pending!==0)return n.last_flush=-1,vt;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=pt(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex=0}n.status=Kp}if(n.status===Kp){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=pt(e.adler,n.pending_buf,n.pending-i,i)),Xt(e),n.pending!==0)return n.last_flush=-1,vt;i=0}n.gzindex<n.gzhead.name.length?a=n.gzhead.name.charCodeAt(n.gzindex++)&255:a=0,Ae(n,a)}while(a!==0);n.gzhead.hcrc&&n.pending>i&&(e.adler=pt(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex=0}n.status=Jp}if(n.status===Jp){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=pt(e.adler,n.pending_buf,n.pending-i,i)),Xt(e),n.pending!==0)return n.last_flush=-1,vt;i=0}n.gzindex<n.gzhead.comment.length?a=n.gzhead.comment.charCodeAt(n.gzindex++)&255:a=0,Ae(n,a)}while(a!==0);n.gzhead.hcrc&&n.pending>i&&(e.adler=pt(e.adler,n.pending_buf,n.pending-i,i))}n.status=eg}if(n.status===eg){if(n.gzhead.hcrc){if(n.pending+2>n.pending_buf_size&&(Xt(e),n.pending!==0))return n.last_flush=-1,vt;Ae(n,e.adler&255),Ae(n,e.adler>>8&255),e.adler=0}if(n.status=fa,Xt(e),n.pending!==0)return n.last_flush=-1,vt}if(e.avail_in!==0||n.lookahead!==0||t!==fi&&n.status!==Ll){let i=n.level===0?GA(n,t):n.strategy===Gf?YL(n,t):n.strategy===FL?ZL(n,t):Nl[n.level].func(n,t);if((i===ha||i===go)&&(n.status=Ll),i===Ft||i===ha)return e.avail_out===0&&(n.last_flush=-1),vt;if(i===po&&(t===TL?kL(n):t!==OA&&(Wp(n,0,0,!1),t===IL&&(di(n.head),n.lookahead===0&&(n.strstart=0,n.block_start=0,n.insert=0))),Xt(e),e.avail_out===0))return n.last_flush=-1,vt}return t!==hn?vt:n.wrap<=0?NA:(n.wrap===2?(Ae(n,e.adler&255),Ae(n,e.adler>>8&255),Ae(n,e.adler>>16&255),Ae(n,e.adler>>24&255),Ae(n,e.total_in&255),Ae(n,e.total_in>>8&255),Ae(n,e.total_in>>16&255),Ae(n,e.total_in>>24&255)):(Ol(n,e.adler>>>16),Ol(n,e.adler&65535)),Xt(e),n.wrap>0&&(n.wrap=-n.wrap),n.pending!==0?vt:NA)},tO=e=>{if(zl(e))return Jn;const t=e.state.status;return e.state=null,t===fa?da(e,BL):vt},nO=(e,t)=>{let n=t.length;if(zl(e))return Jn;const r=e.state,i=r.wrap;if(i===2||i===1&&r.status!==ho||r.lookahead)return Jn;if(i===1&&(e.adler=Ml(e.adler,t,n,0)),r.wrap=0,n>=r.w_size){i===0&&(di(r.head),r.strstart=0,r.block_start=0,r.insert=0);let u=new Uint8Array(r.w_size);u.set(t.subarray(n-r.w_size,n),0),t=u,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,mo(r);r.lookahead>=pe;){let u=r.strstart,l=r.lookahead-(pe-1);do r.ins_h=pi(r,r.ins_h,r.window[u+pe-1]),r.prev[u&r.w_mask]=r.head[r.ins_h],r.head[r.ins_h]=u,u++;while(--l);r.strstart=u,r.lookahead=pe-1,mo(r)}return r.strstart+=r.lookahead,r.block_start=r.strstart,r.insert=r.lookahead,r.lookahead=0,r.match_length=r.prev_length=pe-1,r.match_available=0,e.next_in=o,e.input=s,e.avail_in=a,r.wrap=i,vt};var rO=JL,iO=jA,aO=VA,oO=HA,sO=KL,lO=eO,uO=tO,cO=nO,fO="pako deflate (from Nodeca project)",Ul={deflateInit:rO,deflateInit2:iO,deflateReset:aO,deflateResetKeep:oO,deflateSetHeader:sO,deflate:lO,deflateEnd:uO,deflateSetDictionary:cO,deflateInfo:fO};const hO=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var dO=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)hO(n,r)&&(e[r]=n[r])}}return e},pO=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},Vf={assign:dO,flattenChunks:pO};let $A=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{$A=!1}const Gl=new Uint8Array(256);for(let e=0;e<256;e++)Gl[e]=e>=252?6:e>=248?5:e>=240?4:e>=224?3:e>=192?2:1;Gl[254]=Gl[254]=1;var gO=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 mO=(e,t)=>{if(t<65534&&e.subarray&&$A)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 bO=(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=Gl[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 mO(a,i)},yO=(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+Gl[e[n]]>t?n:t},Hl={string2buf:gO,buf2string:bO,utf8border:yO};function wO(){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 qA=wO;const WA=Object.prototype.toString,{Z_NO_FLUSH:vO,Z_SYNC_FLUSH:xO,Z_FULL_FLUSH:AO,Z_FINISH:EO,Z_OK:jf,Z_STREAM_END:_O,Z_DEFAULT_COMPRESSION:SO,Z_DEFAULT_STRATEGY:CO,Z_DEFLATED:kO}=Pl;function rg(e){this.options=Vf.assign({level:SO,method:kO,chunkSize:16384,windowBits:15,memLevel:8,strategy:CO},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 qA,this.strm.avail_out=0;let n=Ul.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(n!==jf)throw new Error(fo[n]);if(t.header&&Ul.deflateSetHeader(this.strm,t.header),t.dictionary){let r;if(typeof t.dictionary=="string"?r=Hl.string2buf(t.dictionary):WA.call(t.dictionary)==="[object ArrayBuffer]"?r=new Uint8Array(t.dictionary):r=t.dictionary,n=Ul.deflateSetDictionary(this.strm,r),n!==jf)throw new Error(fo[n]);this._dict_set=!0}}rg.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?EO:vO,typeof e=="string"?n.input=Hl.string2buf(e):WA.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===xO||a===AO)&&n.avail_out<=6){this.onData(n.output.subarray(0,n.next_out)),n.avail_out=0;continue}if(i=Ul.deflate(n,a),i===_O)return n.next_out>0&&this.onData(n.output.subarray(0,n.next_out)),i=Ul.deflateEnd(this.strm),this.onEnd(i),this.ended=!0,i===jf;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},rg.prototype.onData=function(e){this.chunks.push(e)},rg.prototype.onEnd=function(e){e===jf&&(this.result=Vf.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};const $f=16209,TO=16191;var IO=function(t,n){let r,i,a,o,s,u,l,c,f,h,d,p,m,y,w,A,S,_,T,I,B,R,M,G;const N=t.state;r=t.next_in,M=t.input,i=r+(t.avail_in-5),a=t.next_out,G=t.output,o=a-(n-t.avail_out),s=a+(t.avail_out-257),u=N.dmax,l=N.wsize,c=N.whave,f=N.wnext,h=N.window,d=N.hold,p=N.bits,m=N.lencode,y=N.distcode,w=(1<<N.lenbits)-1,A=(1<<N.distbits)-1;e:do{p<15&&(d+=M[r++]<<p,p+=8,d+=M[r++]<<p,p+=8),S=m[d&w];t:for(;;){if(_=S>>>24,d>>>=_,p-=_,_=S>>>16&255,_===0)G[a++]=S&65535;else if(_&16){T=S&65535,_&=15,_&&(p<_&&(d+=M[r++]<<p,p+=8),T+=d&(1<<_)-1,d>>>=_,p-=_),p<15&&(d+=M[r++]<<p,p+=8,d+=M[r++]<<p,p+=8),S=y[d&A];n:for(;;){if(_=S>>>24,d>>>=_,p-=_,_=S>>>16&255,_&16){if(I=S&65535,_&=15,p<_&&(d+=M[r++]<<p,p+=8,p<_&&(d+=M[r++]<<p,p+=8)),I+=d&(1<<_)-1,I>u){t.msg="invalid distance too far back",N.mode=$f;break e}if(d>>>=_,p-=_,_=a-o,I>_){if(_=I-_,_>c&&N.sane){t.msg="invalid distance too far back",N.mode=$f;break e}if(B=0,R=h,f===0){if(B+=l-_,_<T){T-=_;do G[a++]=h[B++];while(--_);B=a-I,R=G}}else if(f<_){if(B+=l+f-_,_-=f,_<T){T-=_;do G[a++]=h[B++];while(--_);if(B=0,f<T){_=f,T-=_;do G[a++]=h[B++];while(--_);B=a-I,R=G}}}else if(B+=f-_,_<T){T-=_;do G[a++]=h[B++];while(--_);B=a-I,R=G}for(;T>2;)G[a++]=R[B++],G[a++]=R[B++],G[a++]=R[B++],T-=3;T&&(G[a++]=R[B++],T>1&&(G[a++]=R[B++]))}else{B=a-I;do G[a++]=G[B++],G[a++]=G[B++],G[a++]=G[B++],T-=3;while(T>2);T&&(G[a++]=G[B++],T>1&&(G[a++]=G[B++]))}}else if(_&64){t.msg="invalid distance code",N.mode=$f;break e}else{S=y[(S&65535)+(d&(1<<_)-1)];continue n}break}}else if(_&64)if(_&32){N.mode=TO;break e}else{t.msg="invalid literal/length code",N.mode=$f;break e}else{S=m[(S&65535)+(d&(1<<_)-1)];continue t}break}}while(r<i&&a<s);T=p>>3,r-=T,p-=T<<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),N.hold=d,N.bits=p};const yo=15,ZA=852,YA=592,QA=0,ig=1,XA=2,BO=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]),DO=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]),RO=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]),FO=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 Vl=(e,t,n,r,i,a,o,s)=>{const u=s.bits;let l=0,c=0,f=0,h=0,d=0,p=0,m=0,y=0,w=0,A=0,S,_,T,I,B,R=null,M;const G=new Uint16Array(yo+1),N=new Uint16Array(yo+1);let re=null,se,te,ge;for(l=0;l<=yo;l++)G[l]=0;for(c=0;c<r;c++)G[t[n+c]]++;for(d=u,h=yo;h>=1&&G[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&&G[f]===0;f++);for(d<f&&(d=f),y=1,l=1;l<=yo;l++)if(y<<=1,y-=G[l],y<0)return-1;if(y>0&&(e===QA||h!==1))return-1;for(N[1]=0,l=1;l<yo;l++)N[l+1]=N[l]+G[l];for(c=0;c<r;c++)t[n+c]!==0&&(o[N[t[n+c]]++]=c);if(e===QA?(R=re=o,M=20):e===ig?(R=BO,re=DO,M=257):(R=RO,re=FO,M=0),A=0,c=0,l=f,B=a,p=d,m=0,T=-1,w=1<<d,I=w-1,e===ig&&w>ZA||e===XA&&w>YA)return 1;for(;;){se=l-m,o[c]+1<M?(te=0,ge=o[c]):o[c]>=M?(te=re[o[c]-M],ge=R[o[c]-M]):(te=32+64,ge=0),S=1<<l-m,_=1<<p,f=_;do _-=S,i[B+(A>>m)+_]=se<<24|te<<16|ge|0;while(_!==0);for(S=1<<l-1;A&S;)S>>=1;if(S!==0?(A&=S-1,A+=S):A=0,c++,--G[l]===0){if(l===h)break;l=t[n+o[c]]}if(l>d&&(A&I)!==T){for(m===0&&(m=d),B+=f,p=l-m,y=1<<p;p+m<h&&(y-=G[p+m],!(y<=0));)p++,y<<=1;if(w+=1<<p,e===ig&&w>ZA||e===XA&&w>YA)return 1;T=A&I,i[T]=d<<24|p<<16|B-a|0}}return A!==0&&(i[B+A]=l-m<<24|64<<16|0),s.bits=d,0};const MO=0,KA=1,JA=2,{Z_FINISH:e3,Z_BLOCK:PO,Z_TREES:qf,Z_OK:pa,Z_STREAM_END:LO,Z_NEED_DICT:OO,Z_STREAM_ERROR:dn,Z_DATA_ERROR:t3,Z_MEM_ERROR:n3,Z_BUF_ERROR:NO,Z_DEFLATED:r3}=Pl,Wf=16180,i3=16181,a3=16182,o3=16183,s3=16184,l3=16185,u3=16186,c3=16187,f3=16188,h3=16189,Zf=16190,yr=16191,ag=16192,d3=16193,og=16194,p3=16195,g3=16196,m3=16197,b3=16198,Yf=16199,Qf=16200,y3=16201,w3=16202,v3=16203,x3=16204,A3=16205,sg=16206,E3=16207,_3=16208,qe=16209,S3=16210,C3=16211,zO=852,UO=592,GO=15,k3=e=>(e>>>24&255)+(e>>>8&65280)+((e&65280)<<8)+((e&255)<<24);function HO(){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<Wf||t.mode>C3?1:0},T3=e=>{if(ga(e))return dn;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=Wf,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(zO),t.distcode=t.distdyn=new Int32Array(UO),t.sane=1,t.back=-1,pa},I3=e=>{if(ga(e))return dn;const t=e.state;return t.wsize=0,t.whave=0,t.wnext=0,T3(e)},B3=(e,t)=>{let n;if(ga(e))return dn;const r=e.state;return t<0?(n=0,t=-t):(n=(t>>4)+5,t<48&&(t&=15)),t&&(t<8||t>15)?dn:(r.window!==null&&r.wbits!==t&&(r.window=null),r.wrap=n,r.wbits=t,I3(e))},D3=(e,t)=>{if(!e)return dn;const n=new HO;e.state=n,n.strm=e,n.window=null,n.mode=Wf;const r=B3(e,t);return r!==pa&&(e.state=null),r},VO=e=>D3(e,GO);let R3=!0,lg,ug;const jO=e=>{if(R3){lg=new Int32Array(512),ug=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(Vl(KA,e.lens,0,288,lg,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;Vl(JA,e.lens,0,32,ug,0,e.work,{bits:5}),R3=!1}e.lencode=lg,e.lenbits=9,e.distcode=ug,e.distbits=5},F3=(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},$O=(e,t)=>{let n,r,i,a,o,s,u,l,c,f,h,d,p,m,y=0,w,A,S,_,T,I,B,R;const M=new Uint8Array(4);let G,N;const re=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 dn;n=e.state,n.mode===yr&&(n.mode=ag),o=e.next_out,i=e.output,u=e.avail_out,a=e.next_in,r=e.input,s=e.avail_in,l=n.hold,c=n.bits,f=s,h=u,R=pa;e:for(;;)switch(n.mode){case Wf:if(n.wrap===0){n.mode=ag;break}for(;c<16;){if(s===0)break e;s--,l+=r[a++]<<c,c+=8}if(n.wrap&2&&l===35615){n.wbits===0&&(n.wbits=15),n.check=0,M[0]=l&255,M[1]=l>>>8&255,n.check=pt(n.check,M,2,0),l=0,c=0,n.mode=i3;break}if(n.head&&(n.head.done=!1),!(n.wrap&1)||(((l&255)<<8)+(l>>8))%31){e.msg="incorrect header check",n.mode=qe;break}if((l&15)!==r3){e.msg="unknown compression method",n.mode=qe;break}if(l>>>=4,c-=4,B=(l&15)+8,n.wbits===0&&(n.wbits=B),B>15||B>n.wbits){e.msg="invalid window size",n.mode=qe;break}n.dmax=1<<n.wbits,n.flags=0,e.adler=n.check=1,n.mode=l&512?h3:yr,l=0,c=0;break;case i3:for(;c<16;){if(s===0)break e;s--,l+=r[a++]<<c,c+=8}if(n.flags=l,(n.flags&255)!==r3){e.msg="unknown compression method",n.mode=qe;break}if(n.flags&57344){e.msg="unknown header flags set",n.mode=qe;break}n.head&&(n.head.text=l>>8&1),n.flags&512&&n.wrap&4&&(M[0]=l&255,M[1]=l>>>8&255,n.check=pt(n.check,M,2,0)),l=0,c=0,n.mode=a3;case a3:for(;c<32;){if(s===0)break e;s--,l+=r[a++]<<c,c+=8}n.head&&(n.head.time=l),n.flags&512&&n.wrap&4&&(M[0]=l&255,M[1]=l>>>8&255,M[2]=l>>>16&255,M[3]=l>>>24&255,n.check=pt(n.check,M,4,0)),l=0,c=0,n.mode=o3;case o3:for(;c<16;){if(s===0)break e;s--,l+=r[a++]<<c,c+=8}n.head&&(n.head.xflags=l&255,n.head.os=l>>8),n.flags&512&&n.wrap&4&&(M[0]=l&255,M[1]=l>>>8&255,n.check=pt(n.check,M,2,0)),l=0,c=0,n.mode=s3;case s3:if(n.flags&1024){for(;c<16;){if(s===0)break e;s--,l+=r[a++]<<c,c+=8}n.length=l,n.head&&(n.head.extra_len=l),n.flags&512&&n.wrap&4&&(M[0]=l&255,M[1]=l>>>8&255,n.check=pt(n.check,M,2,0)),l=0,c=0}else n.head&&(n.head.extra=null);n.mode=l3;case l3:if(n.flags&1024&&(d=n.length,d>s&&(d=s),d&&(n.head&&(B=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),B)),n.flags&512&&n.wrap&4&&(n.check=pt(n.check,r,d,a)),s-=d,a+=d,n.length-=d),n.length))break e;n.length=0,n.mode=u3;case u3:if(n.flags&2048){if(s===0)break e;d=0;do B=r[a+d++],n.head&&B&&n.length<65536&&(n.head.name+=String.fromCharCode(B));while(B&&d<s);if(n.flags&512&&n.wrap&4&&(n.check=pt(n.check,r,d,a)),s-=d,a+=d,B)break e}else n.head&&(n.head.name=null);n.length=0,n.mode=c3;case c3:if(n.flags&4096){if(s===0)break e;d=0;do B=r[a+d++],n.head&&B&&n.length<65536&&(n.head.comment+=String.fromCharCode(B));while(B&&d<s);if(n.flags&512&&n.wrap&4&&(n.check=pt(n.check,r,d,a)),s-=d,a+=d,B)break e}else n.head&&(n.head.comment=null);n.mode=f3;case f3:if(n.flags&512){for(;c<16;){if(s===0)break e;s--,l+=r[a++]<<c,c+=8}if(n.wrap&4&&l!==(n.check&65535)){e.msg="header crc mismatch",n.mode=qe;break}l=0,c=0}n.head&&(n.head.hcrc=n.flags>>9&1,n.head.done=!0),e.adler=n.check=0,n.mode=yr;break;case h3:for(;c<32;){if(s===0)break e;s--,l+=r[a++]<<c,c+=8}e.adler=n.check=k3(l),l=0,c=0,n.mode=Zf;case Zf:if(n.havedict===0)return e.next_out=o,e.avail_out=u,e.next_in=a,e.avail_in=s,n.hold=l,n.bits=c,OO;e.adler=n.check=1,n.mode=yr;case yr:if(t===PO||t===qf)break e;case ag:if(n.last){l>>>=c&7,c-=c&7,n.mode=sg;break}for(;c<3;){if(s===0)break e;s--,l+=r[a++]<<c,c+=8}switch(n.last=l&1,l>>>=1,c-=1,l&3){case 0:n.mode=d3;break;case 1:if(jO(n),n.mode=Yf,t===qf){l>>>=2,c-=2;break e}break;case 2:n.mode=g3;break;case 3:e.msg="invalid block type",n.mode=qe}l>>>=2,c-=2;break;case d3:for(l>>>=c&7,c-=c&7;c<32;){if(s===0)break e;s--,l+=r[a++]<<c,c+=8}if((l&65535)!==(l>>>16^65535)){e.msg="invalid stored block lengths",n.mode=qe;break}if(n.length=l&65535,l=0,c=0,n.mode=og,t===qf)break e;case og:n.mode=p3;case p3:if(d=n.length,d){if(d>s&&(d=s),d>u&&(d=u),d===0)break e;i.set(r.subarray(a,a+d),o),s-=d,a+=d,u-=d,o+=d,n.length-=d;break}n.mode=yr;break;case g3:for(;c<14;){if(s===0)break e;s--,l+=r[a++]<<c,c+=8}if(n.nlen=(l&31)+257,l>>>=5,c-=5,n.ndist=(l&31)+1,l>>>=5,c-=5,n.ncode=(l&15)+4,l>>>=4,c-=4,n.nlen>286||n.ndist>30){e.msg="too many length or distance symbols",n.mode=qe;break}n.have=0,n.mode=m3;case m3:for(;n.have<n.ncode;){for(;c<3;){if(s===0)break e;s--,l+=r[a++]<<c,c+=8}n.lens[re[n.have++]]=l&7,l>>>=3,c-=3}for(;n.have<19;)n.lens[re[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,G={bits:n.lenbits},R=Vl(MO,n.lens,0,19,n.lencode,0,n.work,G),n.lenbits=G.bits,R){e.msg="invalid code lengths set",n.mode=qe;break}n.have=0,n.mode=b3;case b3:for(;n.have<n.nlen+n.ndist;){for(;y=n.lencode[l&(1<<n.lenbits)-1],w=y>>>24,A=y>>>16&255,S=y&65535,!(w<=c);){if(s===0)break e;s--,l+=r[a++]<<c,c+=8}if(S<16)l>>>=w,c-=w,n.lens[n.have++]=S;else{if(S===16){for(N=w+2;c<N;){if(s===0)break e;s--,l+=r[a++]<<c,c+=8}if(l>>>=w,c-=w,n.have===0){e.msg="invalid bit length repeat",n.mode=qe;break}B=n.lens[n.have-1],d=3+(l&3),l>>>=2,c-=2}else if(S===17){for(N=w+3;c<N;){if(s===0)break e;s--,l+=r[a++]<<c,c+=8}l>>>=w,c-=w,B=0,d=3+(l&7),l>>>=3,c-=3}else{for(N=w+7;c<N;){if(s===0)break e;s--,l+=r[a++]<<c,c+=8}l>>>=w,c-=w,B=0,d=11+(l&127),l>>>=7,c-=7}if(n.have+d>n.nlen+n.ndist){e.msg="invalid bit length repeat",n.mode=qe;break}for(;d--;)n.lens[n.have++]=B}}if(n.mode===qe)break;if(n.lens[256]===0){e.msg="invalid code -- missing end-of-block",n.mode=qe;break}if(n.lenbits=9,G={bits:n.lenbits},R=Vl(KA,n.lens,0,n.nlen,n.lencode,0,n.work,G),n.lenbits=G.bits,R){e.msg="invalid literal/lengths set",n.mode=qe;break}if(n.distbits=6,n.distcode=n.distdyn,G={bits:n.distbits},R=Vl(JA,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,G),n.distbits=G.bits,R){e.msg="invalid distances set",n.mode=qe;break}if(n.mode=Yf,t===qf)break e;case Yf:n.mode=Qf;case Qf:if(s>=6&&u>=258){e.next_out=o,e.avail_out=u,e.next_in=a,e.avail_in=s,n.hold=l,n.bits=c,IO(e,h),o=e.next_out,i=e.output,u=e.avail_out,a=e.next_in,r=e.input,s=e.avail_in,l=n.hold,c=n.bits,n.mode===yr&&(n.back=-1);break}for(n.back=0;y=n.lencode[l&(1<<n.lenbits)-1],w=y>>>24,A=y>>>16&255,S=y&65535,!(w<=c);){if(s===0)break e;s--,l+=r[a++]<<c,c+=8}if(A&&!(A&240)){for(_=w,T=A,I=S;y=n.lencode[I+((l&(1<<_+T)-1)>>_)],w=y>>>24,A=y>>>16&255,S=y&65535,!(_+w<=c);){if(s===0)break e;s--,l+=r[a++]<<c,c+=8}l>>>=_,c-=_,n.back+=_}if(l>>>=w,c-=w,n.back+=w,n.length=S,A===0){n.mode=A3;break}if(A&32){n.back=-1,n.mode=yr;break}if(A&64){e.msg="invalid literal/length code",n.mode=qe;break}n.extra=A&15,n.mode=y3;case y3:if(n.extra){for(N=n.extra;c<N;){if(s===0)break e;s--,l+=r[a++]<<c,c+=8}n.length+=l&(1<<n.extra)-1,l>>>=n.extra,c-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=w3;case w3:for(;y=n.distcode[l&(1<<n.distbits)-1],w=y>>>24,A=y>>>16&255,S=y&65535,!(w<=c);){if(s===0)break e;s--,l+=r[a++]<<c,c+=8}if(!(A&240)){for(_=w,T=A,I=S;y=n.distcode[I+((l&(1<<_+T)-1)>>_)],w=y>>>24,A=y>>>16&255,S=y&65535,!(_+w<=c);){if(s===0)break e;s--,l+=r[a++]<<c,c+=8}l>>>=_,c-=_,n.back+=_}if(l>>>=w,c-=w,n.back+=w,A&64){e.msg="invalid distance code",n.mode=qe;break}n.offset=S,n.extra=A&15,n.mode=v3;case v3:if(n.extra){for(N=n.extra;c<N;){if(s===0)break e;s--,l+=r[a++]<<c,c+=8}n.offset+=l&(1<<n.extra)-1,l>>>=n.extra,c-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){e.msg="invalid distance too far back",n.mode=qe;break}n.mode=x3;case x3:if(u===0)break e;if(d=h-u,n.offset>d){if(d=n.offset-d,d>n.whave&&n.sane){e.msg="invalid distance too far back",n.mode=qe;break}d>n.wnext?(d-=n.wnext,p=n.wsize-d):p=n.wnext-d,d>n.length&&(d=n.length),m=n.window}else m=i,p=o-n.offset,d=n.length;d>u&&(d=u),u-=d,n.length-=d;do i[o++]=m[p++];while(--d);n.length===0&&(n.mode=Qf);break;case A3:if(u===0)break e;i[o++]=n.length,u--,n.mode=Qf;break;case sg:if(n.wrap){for(;c<32;){if(s===0)break e;s--,l|=r[a++]<<c,c+=8}if(h-=u,e.total_out+=h,n.total+=h,n.wrap&4&&h&&(e.adler=n.check=n.flags?pt(n.check,i,h,o-h):Ml(n.check,i,h,o-h)),h=u,n.wrap&4&&(n.flags?l:k3(l))!==n.check){e.msg="incorrect data check",n.mode=qe;break}l=0,c=0}n.mode=E3;case E3:if(n.wrap&&n.flags){for(;c<32;){if(s===0)break e;s--,l+=r[a++]<<c,c+=8}if(n.wrap&4&&l!==(n.total&4294967295)){e.msg="incorrect length check",n.mode=qe;break}l=0,c=0}n.mode=_3;case _3:R=LO;break e;case qe:R=t3;break e;case S3:return n3;case C3:default:return dn}return e.next_out=o,e.avail_out=u,e.next_in=a,e.avail_in=s,n.hold=l,n.bits=c,(n.wsize||h!==e.avail_out&&n.mode<qe&&(n.mode<sg||t!==e3))&&F3(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?pt(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===yr?128:0)+(n.mode===Yf||n.mode===og?256:0),(f===0&&h===0||t===e3)&&R===pa&&(R=NO),R},qO=e=>{if(ga(e))return dn;let t=e.state;return t.window&&(t.window=null),e.state=null,pa},WO=(e,t)=>{if(ga(e))return dn;const n=e.state;return n.wrap&2?(n.head=t,t.done=!1,pa):dn},ZO=(e,t)=>{const n=t.length;let r,i,a;return ga(e)||(r=e.state,r.wrap!==0&&r.mode!==Zf)?dn:r.mode===Zf&&(i=1,i=Ml(i,t,n,0),i!==r.check)?t3:(a=F3(e,t,n,n),a?(r.mode=S3,n3):(r.havedict=1,pa))};var YO=I3,QO=B3,XO=T3,KO=VO,JO=D3,eN=$O,tN=qO,nN=WO,rN=ZO,iN="pako inflate (from Nodeca project)",wr={inflateReset:YO,inflateReset2:QO,inflateResetKeep:XO,inflateInit:KO,inflateInit2:JO,inflate:eN,inflateEnd:tN,inflateGetHeader:nN,inflateSetDictionary:rN,inflateInfo:iN};function aN(){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 oN=aN;const M3=Object.prototype.toString,{Z_NO_FLUSH:sN,Z_FINISH:lN,Z_OK:jl,Z_STREAM_END:cg,Z_NEED_DICT:fg,Z_STREAM_ERROR:uN,Z_DATA_ERROR:P3,Z_MEM_ERROR:cN}=Pl;function $l(e){this.options=Vf.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 qA,this.strm.avail_out=0;let n=wr.inflateInit2(this.strm,t.windowBits);if(n!==jl)throw new Error(fo[n]);if(this.header=new oN,wr.inflateGetHeader(this.strm,this.header),t.dictionary&&(typeof t.dictionary=="string"?t.dictionary=Hl.string2buf(t.dictionary):M3.call(t.dictionary)==="[object ArrayBuffer]"&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(n=wr.inflateSetDictionary(this.strm,t.dictionary),n!==jl)))throw new Error(fo[n])}$l.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?lN:sN,M3.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=wr.inflate(n,o),a===fg&&i&&(a=wr.inflateSetDictionary(n,i),a===jl?a=wr.inflate(n,o):a===P3&&(a=fg));n.avail_in>0&&a===cg&&n.state.wrap>0&&e[n.next_in]!==0;)wr.inflateReset(n),a=wr.inflate(n,o);switch(a){case uN:case P3:case fg:case cN:return this.onEnd(a),this.ended=!0,!1}if(s=n.avail_out,n.next_out&&(n.avail_out===0||a===cg))if(this.options.to==="string"){let u=Hl.utf8border(n.output,n.next_out),l=n.next_out-u,c=Hl.buf2string(n.output,u);n.next_out=l,n.avail_out=r-l,l&&n.output.set(n.output.subarray(u,u+l),0),this.onData(c)}else this.onData(n.output.length===n.next_out?n.output:n.output.subarray(0,n.next_out));if(!(a===jl&&s===0)){if(a===cg)return a=wr.inflateEnd(this.strm),this.onEnd(a),this.ended=!0,!0;if(n.avail_in===0)break}}return!0},$l.prototype.onData=function(e){this.chunks.push(e)},$l.prototype.onEnd=function(e){e===jl&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=Vf.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function hg(e,t){const n=new $l(t);if(n.push(e),n.err)throw n.msg||fo[n.err];return n.result}function fN(e,t){return t=t||{},t.raw=!0,hg(e,t)}var hN=$l,dN=hg,pN=fN,gN=hg,mN=Pl,bN={Inflate:hN,inflate:dN,inflateRaw:pN,ungzip:gN,constants:mN};const{Inflate:hG,inflate:dG,inflateRaw:yN,ungzip:pG}=bN;var wN=yN;function vN(e){return wN(e.subarray(2))}let xN=class extends Error{constructor(t){super(t),this.code="ERR_ABORTED"}};function AN(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 Xf(e){if(e&&e.aborted)if(typeof DOMException>"u"){const t=new xN("aborted");throw t.code="ERR_ABORTED",t}else throw new DOMException("aborted","AbortError")}const EN=1,_N=2,SN=3;function dg(e,t,n,r){return e<r&&t>=n}function CN(e){const t=e?"big":"little",n=new Ie().endianess(t).uint32("chromId").uint32("start").uint32("end").uint32("validCnt").floatle("minScore").floatle("maxScore").floatle("sumData").floatle("sumSqData").saveOffset("offset"),r=new Ie().endianess(t).uint8("isLeaf").skip(1).uint16("cnt").choice({tag:"isLeaf",choices:{1:new Ie().endianess(t).array("blocksToFetch",{length:"cnt",type:new Ie().endianess(t).uint32("startChrom").uint32("startBase").uint32("endChrom").uint32("endBase").uint64("blockOffset").uint64("blockSize").saveOffset("offset")}),0:new Ie().array("recurOffsets",{length:"cnt",type:new Ie().endianess(t).uint32("startChrom").uint32("startBase").uint32("endChrom").uint32("endBase").uint64("blockOffset").saveOffset("offset")})}}),i=new Ie().endianess(t).uint32("chromId").int32("start").int32("end").string("rest",{zeroTerminated:!0}).saveOffset("offset");return{bigWigParser:new Ie().endianess(t).skip(4).int32("blockStart").skip(4).uint32("itemStep").uint32("itemSpan").uint8("blockType").skip(1).uint16("itemCount").choice({tag:"blockType",choices:{[SN]:new Ie().array("items",{length:"itemCount",type:new Ie().floatle("score")}),[_N]:new Ie().array("items",{length:"itemCount",type:new Ie().endianess(t).int32("start").floatle("score")}),[EN]:new Ie().array("items",{length:"itemCount",type:new Ie().endianess(t).int32("start").int32("end").floatle("score")})}}),bigBedParser:i,summaryParser:n,leafParser:r}}class L3{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 Of({cache:new Nf({maxSize:1e3}),fill:async(u,l)=>{const c=Number(u.length),f=Number(u.offset),{buffer:h}=await this.bbi.read(me.Buffer.alloc(c),0,c,f,{signal:l});return h}}),!(r>=0))throw new Error("invalid cirTreeOffset!");const s=CN(i);this.leafParser=s.leafParser,this.bigBedParser=s.bigBedParser}async readWigData(t,n,r,i,a){try{const{refsByName:o,bbi:s,cirTreeOffset:u,isBigEndian:l}=this,c=o[t];c===void 0&&i.complete();const f={chrId:c,start:n,end:r};this.cirTreePromise||(this.cirTreePromise=s.read(me.Buffer.alloc(48),0,48,Number(u),a));const{buffer:h}=await this.cirTreePromise,d=l?h.readUInt32BE(4):h.readUInt32LE(4);let p=[],m=0;const y=(_,T,I)=>{try{const B=_.subarray(T),R=this.leafParser.parse(B);if(R.blocksToFetch&&(p=p.concat(R.blocksToFetch.filter(M=>w(M)).map(M=>({offset:M.blockOffset,length:M.blockSize})))),R.recurOffsets){const M=R.recurOffsets.filter(G=>w(G)).map(G=>Number(G.blockOffset));M.length>0&&S(M,I+1)}}catch(B){i.error(B)}},w=_=>{const{startChrom:T,startBase:I,endChrom:B,endBase:R}=_;return(T<c||T===c&&I<=r)&&(B>c||B===c&&R>=n)},A=async(_,T,I)=>{try{const B=T.max()-T.min(),R=T.min(),M=await this.featureCache.get(`${B}_${R}`,{length:B,offset:R},a==null?void 0:a.signal);for(const G of _)T.contains(G)&&(y(M,G-R,I),m-=1,m===0&&this.readFeatures(i,p,{...a,request:f}))}catch(B){i.error(B)}},S=(_,T)=>{try{m+=_.length;const I=4+Number(d)*32;let B=new ui(_[0],_[0]+I);for(let R=1;R<_.length;R+=1){const M=new ui(_[R],_[R]+I);B=B.union(M)}B.getRanges().map(R=>A(_,R,T))}catch(I){i.error(I)}};return S([Number(u)+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 u=o.getUint32(a,!0);a+=4;const l=o.getUint32(a,!0);a+=4;const c=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&&dg(u,l,r.start,r.end))&&i.push({start:u,end:l,maxScore:h,minScore:f,summary:!0,score:d/(c||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));s.uniqueId=`bb-${r+o}`,a.push(s),o+=s.offset}return i?a.filter(s=>dg(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 u=a.getUint32(o,!0);o+=4;const l=a.getUint32(o,!0);o+=4;const c=a.getUint8(o);o+=2;const f=a.getUint16(o,!0);o+=2;const h=new Array(f);switch(c){case 1:{for(let d=0;d<f;d++){const p=a.getInt32(o,!0);o+=4;const m=a.getInt32(o,!0);o+=4;const y=a.getFloat32(o,!0);o+=4,h[d]={start:p,end:m,score:y}}break}case 2:{for(let d=0;d<f;d++){const p=a.getInt32(o,!0);o+=4;const m=a.getFloat32(o,!0);o+=4,h[d]={score:m,start:p,end:p+l}}break}case 3:{for(let d=0;d<f;d++){const p=a.getFloat32(o,!0);o+=4;const m=s+d*u;h[d]={score:p,start:m,end:m+l}}break}}return r?h.filter(d=>dg(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,u=AN(n);Xf(o),await Promise.all(u.map(async l=>{Xf(o);const{length:c,offset:f}=l,h=await this.featureCache.get(`${c}_${f}`,l,o);for(const d of l.blocks){Xf(o);let p=Number(d.offset)-Number(l.offset),m=h;switch(a&&(m=vN(h.subarray(p)),p=0),Xf(o),i){case"summary":{t.next(this.parseSummaryBlock(m,p,s));break}case"bigwig":{t.next(this.parseBigWigBlock(m,p,s));break}case"bigbed":{t.next(this.parseBigBedBlock(m,p,Number(d.offset)*256,s));break}default:console.warn(`Don't know what to do with ${i}`)}}})),t.complete()}catch(i){t.error(i)}}}var pg=function(e,t){return pg=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])},pg(e,t)};function gg(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");pg(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}function kN(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(c){try{l(r.next(c))}catch(f){o(f)}}function u(c){try{l(r.throw(c))}catch(f){o(f)}}function l(c){c.done?a(c.value):i(c.value).then(s,u)}l((r=r.apply(e,t||[])).next())})}function O3(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(l){return function(c){return u([l,c])}}function u(l){if(r)throw new TypeError("Generator is already executing.");for(;o&&(o=0,l[0]&&(n=0)),n;)try{if(r=1,i&&(a=l[0]&2?i.return:l[0]?i.throw||((a=i.return)&&a.call(i),0):i.next)&&!(a=a.call(i,l[1])).done)return a;switch(i=0,a&&(l=[l[0]&2,a.value]),l[0]){case 0:case 1:a=l;break;case 4:return n.label++,{value:l[1],done:!1};case 5:n.label++,i=l[1],l=[0];continue;case 7:l=n.ops.pop(),n.trys.pop();continue;default:if(a=n.trys,!(a=a.length>0&&a[a.length-1])&&(l[0]===6||l[0]===2)){n=0;continue}if(l[0]===3&&(!a||l[1]>a[0]&&l[1]<a[3])){n.label=l[1];break}if(l[0]===6&&n.label<a[1]){n.label=a[1],a=l;break}if(a&&n.label<a[2]){n.label=a[2],n.ops.push(l);break}a[2]&&n.ops.pop(),n.trys.pop();continue}l=t.call(e,n)}catch(c){l=[6,c],i=0}finally{r=a=0}if(l[0]&5)throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}}function ql(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 mg(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 bg(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 wo(e){return this instanceof wo?(this.v=e,this):new wo(e)}function TN(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,m){a.push([h,d,p,m])>1||s(h,d)})})}function s(h,d){try{u(r[h](d))}catch(p){f(a[0][3],p)}}function u(h){h.value instanceof wo?Promise.resolve(h.value.v).then(l,c):f(a[0][2],h)}function l(h){s("next",h)}function c(h){s("throw",h)}function f(h,d){h(d),a.shift(),a.length&&s(a[0][0],a[0][1])}}function IN(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 ql=="function"?ql(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,u){o=e[a](o),i(s,u,o.done,o.value)})}}function i(a,o,s,u){Promise.resolve(u).then(function(l){a({value:l,done:s})},o)}}typeof SuppressedError=="function"&&SuppressedError;function lt(e){return typeof e=="function"}function N3(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 yg=N3(function(e){return function(n){e(this),this.message=n?n.length+` errors occurred during unsubscription:
|
|
340
452
|
`+n.map(function(r,i){return i+1+") "+r.toString()}).join(`
|
|
341
|
-
`):"",this.name="UnsubscriptionError",this.errors=n}});function r3(e,t){if(e){var n=e.indexOf(t);0<=n&&e.splice(n,1)}}var Yp=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=Pl(o),u=s.next();!u.done;u=s.next()){var l=u.value;l.remove(this)}}catch(b){t={error:b}}finally{try{u&&!u.done&&(n=s.return)&&n.call(s)}finally{if(t)throw t.error}}else o.remove(this);var f=this.initialTeardown;if(ot(f))try{f()}catch(b){a=b instanceof Wp?b.errors:[b]}var c=this._finalizers;if(c){this._finalizers=null;try{for(var h=Pl(c),d=h.next();!d.done;d=h.next()){var p=d.value;try{a3(p)}catch(b){a=a??[],b instanceof Wp?a=Zp(Zp([],qp(a)),qp(b.errors)):a.push(b)}}}catch(b){r={error:b}}finally{try{d&&!d.done&&(i=h.return)&&i.call(h)}finally{if(r)throw r.error}}}if(a)throw new Wp(a)}},e.prototype.add=function(t){var n;if(t&&t!==this)if(this.closed)a3(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)&&r3(n,t)},e.prototype.remove=function(t){var n=this._finalizers;n&&r3(n,t),t instanceof e&&t._removeParent(this)},e.EMPTY=function(){var t=new e;return t.closed=!0,t}(),e}();Yp.EMPTY;function i3(e){return e instanceof Yp||e&&"closed"in e&&ot(e.remove)&&ot(e.add)&&ot(e.unsubscribe)}function a3(e){ot(e)?e():e.unsubscribe()}var o3={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},s3={setTimeout:function(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];return setTimeout.apply(void 0,Zp([e,t],qp(n)))},clearTimeout:function(e){var t=s3.delegate;return((t==null?void 0:t.clearTimeout)||clearTimeout)(e)},delegate:void 0};function l3(e){s3.setTimeout(function(){throw e})}function u3(){}function _N(e){e()}var Qp=function(e){jp(t,e);function t(n){var r=e.call(this)||this;return r.isStopped=!1,n?(r.destination=n,i3(n)&&n.add(r)):r.destination=TN,r}return t.create=function(n,r,i){return new Sc(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}(Yp),SN=Function.prototype.bind;function $p(e,t){return SN.call(e,t)}var CN=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){Cc(r)}},e.prototype.error=function(t){var n=this.partialObserver;if(n.error)try{n.error(t)}catch(r){Cc(r)}else Cc(t)},e.prototype.complete=function(){var t=this.partialObserver;if(t.complete)try{t.complete()}catch(n){Cc(n)}},e}(),Sc=function(e){jp(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&&o3.useDeprecatedNextContext?(s=Object.create(n),s.unsubscribe=function(){return a.unsubscribe()},o={next:n.next&&$p(n.next,s),error:n.error&&$p(n.error,s),complete:n.complete&&$p(n.complete,s)}):o=n}return a.destination=new CN(o),a}return t}(Qp);function Cc(e){l3(e)}function kN(e){throw e}var TN={closed:!0,next:u3,error:kN,complete:u3},Xp=function(){return typeof Symbol=="function"&&Symbol.observable||"@@observable"}();function f3(e){return e}function IN(e){return e.length===0?f3:e.length===1?e[0]:function(n){return e.reduce(function(r,i){return i(r)},n)}}var cn=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=DN(t)?t:new Sc(t,n,r);return _N(function(){var o=i,s=o.operator,u=o.source;a.add(s?s.call(a,u):u?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=c3(n),new n(function(i,a){var o=new Sc({next:function(s){try{t(s)}catch(u){a(u),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[Xp]=function(){return this},e.prototype.pipe=function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return IN(t)(this)},e.prototype.toPromise=function(t){var n=this;return t=c3(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 c3(e){var t;return(t=e??o3.Promise)!==null&&t!==void 0?t:Promise}function BN(e){return e&&ot(e.next)&&ot(e.error)&&ot(e.complete)}function DN(e){return e&&e instanceof Qp||BN(e)&&i3(e)}function FN(e){return ot(e==null?void 0:e.lift)}function bo(e){return function(t){if(FN(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 Ll(e,t,n,r,i){return new RN(e,t,n,r,i)}var RN=function(e){jp(t,e);function t(n,r,i,a,o,s){var u=e.call(this,n)||this;return u.onFinalize=o,u.shouldUnsubscribe=s,u._next=r?function(l){try{r(l)}catch(f){n.error(f)}}:e.prototype._next,u._error=a?function(l){try{a(l)}catch(f){n.error(f)}finally{this.unsubscribe()}}:e.prototype._error,u._complete=i?function(){try{i()}catch(l){n.error(l)}finally{this.unsubscribe()}}:e.prototype._complete,u}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}(Qp),MN=new cn(function(e){return e.complete()});function PN(e){return e&&ot(e.schedule)}function h3(e){return e[e.length-1]}function LN(e){return PN(h3(e))?e.pop():void 0}function NN(e,t){return typeof h3(e)=="number"?e.pop():t}var d3=function(e){return e&&typeof e.length=="number"&&typeof e!="function"};function p3(e){return ot(e==null?void 0:e.then)}function g3(e){return ot(e[Xp])}function m3(e){return Symbol.asyncIterator&&ot(e==null?void 0:e[Symbol.asyncIterator])}function b3(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 ON(){return typeof Symbol!="function"||!Symbol.iterator?"@@iterator":Symbol.iterator}var y3=ON();function w3(e){return ot(e==null?void 0:e[y3])}function v3(e){return AN(this,arguments,function(){var n,r,i,a;return t3(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,mo(n.read())];case 3:return r=o.sent(),i=r.value,a=r.done,a?[4,mo(void 0)]:[3,5];case 4:return[2,o.sent()];case 5:return[4,mo(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 x3(e){return ot(e==null?void 0:e.getReader)}function yo(e){if(e instanceof cn)return e;if(e!=null){if(g3(e))return zN(e);if(d3(e))return UN(e);if(p3(e))return GN(e);if(m3(e))return A3(e);if(w3(e))return HN(e);if(x3(e))return VN(e)}throw b3(e)}function zN(e){return new cn(function(t){var n=e[Xp]();if(ot(n.subscribe))return n.subscribe(t);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}function UN(e){return new cn(function(t){for(var n=0;n<e.length&&!t.closed;n++)t.next(e[n]);t.complete()})}function GN(e){return new cn(function(t){e.then(function(n){t.closed||(t.next(n),t.complete())},function(n){return t.error(n)}).then(null,l3)})}function HN(e){return new cn(function(t){var n,r;try{for(var i=Pl(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 A3(e){return new cn(function(t){jN(e,t).catch(function(n){return t.error(n)})})}function VN(e){return A3(v3(e))}function jN(e,t){var n,r,i,a;return xN(this,void 0,void 0,function(){var o,s;return t3(this,function(u){switch(u.label){case 0:u.trys.push([0,5,6,11]),n=EN(e),u.label=1;case 1:return[4,n.next()];case 2:if(r=u.sent(),!!r.done)return[3,4];if(o=r.value,t.next(o),t.closed)return[2];u.label=3;case 3:return[3,1];case 4:return[3,11];case 5:return s=u.sent(),i={error:s},[3,11];case 6:return u.trys.push([6,,9,10]),r&&!r.done&&(a=n.return)?[4,a.call(n)]:[3,8];case 7:u.sent(),u.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 oi(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 E3(e,t){return t===void 0&&(t=0),bo(function(n,r){n.subscribe(Ll(r,function(i){return oi(r,e,function(){return r.next(i)},t)},function(){return oi(r,e,function(){return r.complete()},t)},function(i){return oi(r,e,function(){return r.error(i)},t)}))})}function _3(e,t){return t===void 0&&(t=0),bo(function(n,r){r.add(e.schedule(function(){return n.subscribe(r)},t))})}function qN(e,t){return yo(e).pipe(_3(t),E3(t))}function ZN(e,t){return yo(e).pipe(_3(t),E3(t))}function WN(e,t){return new cn(function(n){var r=0;return t.schedule(function(){r===e.length?n.complete():(n.next(e[r++]),n.closed||this.schedule())})})}function YN(e,t){return new cn(function(n){var r;return oi(n,t,function(){r=e[y3](),oi(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 S3(e,t){if(!e)throw new Error("Iterable cannot be null");return new cn(function(n){oi(n,t,function(){var r=e[Symbol.asyncIterator]();oi(n,t,function(){r.next().then(function(i){i.done?n.complete():n.next(i.value)})},0,!0)})})}function QN(e,t){return S3(v3(e),t)}function $N(e,t){if(e!=null){if(g3(e))return qN(e,t);if(d3(e))return WN(e,t);if(p3(e))return ZN(e,t);if(m3(e))return S3(e,t);if(w3(e))return YN(e,t);if(x3(e))return QN(e,t)}throw b3(e)}function XN(e,t){return t?$N(e,t):yo(e)}var KN=n3(function(e){return function(){e(this),this.name="EmptyError",this.message="no elements in sequence"}});function C3(e,t){var n=typeof t=="object";return new Promise(function(r,i){var a=new Sc({next:function(o){r(o),a.unsubscribe()},error:i,complete:function(){n?r(t.defaultValue):i(new KN)}});e.subscribe(a)})}function k3(e,t){return bo(function(n,r){var i=0;n.subscribe(Ll(r,function(a){r.next(e.call(t,a,i++))}))})}function JN(e,t,n,r,i,a,o,s){var u=[],l=0,f=0,c=!1,h=function(){c&&!u.length&&!l&&t.complete()},d=function(b){return l<r?p(b):u.push(b)},p=function(b){a&&t.next(b),l++;var y=!1;yo(n(b,f++)).subscribe(Ll(t,function(w){i==null||i(w),a?d(w):t.next(w)},function(){y=!0},void 0,function(){if(y)try{l--;for(var w=function(){var A=u.shift();o?oi(t,o,function(){return p(A)}):p(A)};u.length&&l<r;)w();h()}catch(A){t.error(A)}}))};return e.subscribe(Ll(t,d,function(){c=!0,h()})),function(){s==null||s()}}function T3(e,t,n){return n===void 0&&(n=1/0),ot(t)?T3(function(r,i){return k3(function(a,o){return t(r,a,i,o)})(yo(e(r,i)))},n):(typeof t=="number"&&(n=t),bo(function(r,i){return JN(r,i,e,n)}))}function eO(e){return e===void 0&&(e=1/0),T3(f3,e)}function tO(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n=LN(e),r=NN(e,1/0),i=e;return i.length?i.length===1?yo(i[0]):eO(r)(XN(i,n)):MN}function nO(e,t,n,r,i){return function(a,o){var s=n,u=t,l=0;a.subscribe(Ll(o,function(f){var c=l++;u=s?e(u,f,c):(s=!0,f),r&&o.next(u)},i&&function(){s&&o.next(u),o.complete()}))}}function I3(e,t){return bo(nO(e,t,arguments.length>=2,!1,!0))}var rO=function(e,t){return e.push(t),e};function iO(){return bo(function(e,t){I3(rO,[])(e).subscribe(t)})}const B3=-2003829722,Kp=-2021002517;function aO(e){return new TextDecoder().decode(e)}function D3(e){const t=e?"big":"little",n=new Te().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 Te().endianess(t).uint32("reductionLevel").uint32("reserved").uint64("dataOffset").uint64("indexOffset")}),r=new Te().endianess(t).uint64("basesCovered").doublele("scoreMin").doublele("scoreMax").doublele("scoreSum").doublele("scoreSumSquares"),i=new Te().endianess(t).uint32("magic").uint32("blockSize").uint32("keySize").uint32("valSize").uint64("itemCount"),a=new Te().endianess(t).uint8("isLeafNode").skip(1).uint16("cnt").saveOffset("offset");return{chromTreeParser:i,totalSummaryParser:r,headerParser:n,isLeafNode:a}}class F3{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 Wi(a);else if(i)this.bbi=new ht(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(pe.Buffer.alloc(n),0,n,0,t),i=this._isBigEndian(r),a=D3(i),o=a.headerParser.parse(r),{magic:s,asOffset:u,totalSummaryOffset:l}=o;if(o.fileType=s===Kp?"bigbed":"bigwig",u>n||l>n)return this._getMainHeader(t,n*2);if(u){const f=Number(o.asOffset);o.autoSql=aO(r.subarray(f,r.indexOf(0,f)))}if(o.totalSummaryOffset>n-8*5)return this._getMainHeader(t,n*2);if(o.totalSummaryOffset){const f=r.subarray(Number(o.totalSummaryOffset)),c=a.totalSummaryParser.parse(f);o.totalSummary={...c,basesCovered:Number(c.basesCovered)}}return{...o,isBigEndian:i}}_isBigEndian(t){let n=t.readInt32LE(0);if(n===B3||n===Kp)return!1;if(n=t.readInt32BE(0),n===B3||n===Kp)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 u=Number(t.chromTreeOffset);for(;s%4!==0;)s+=1;const l=s-u,{buffer:f}=await this.bbi.read(pe.Buffer.alloc(l),0,l,Number(u),n),c=D3(r),{keySize:h}=c.chromTreeParser.parse(f),d=new Te().endianess(i).string("key",{stripNull:!0,length:h}).uint32("refId").uint32("refSize").saveOffset("offset"),p=new Te().endianess(i).skip(h).uint64("childOffset").saveOffset("offset"),b=32,y=async w=>{let A=w;if(A>=f.length)throw new Error("reading beyond end of buffer");const S=c.isLeafNode.parse(f.subarray(A)),{isLeafNode:_,cnt:T}=S;if(A+=S.offset,_)for(let I=0;I<T;I+=1){const B=d.parse(f.subarray(A));A+=B.offset;const{key:R,refId:L,refSize:j}=B,M={name:R,id:L,length:j};o[this.renameRefSeqs(R)]=L,a[L]=M}else{const I=[];for(let B=0;B<T;B+=1){const R=p.parse(f.subarray(A)),{childOffset:L}=R;A+=R.offset,I.push(y(Number(L)-Number(u)))}await Promise.all(I)}};return await y(b),{refsByName:o,refsByNumber:a}}async getUnzoomedView(t){const{unzoomedIndexOffset:n,refsByName:r,uncompressBufSize:i,isBigEndian:a,fileType:o}=await this.getHeader(t);return new e3(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:u}=i||{};return s?o=await this.getView(1/s,i):u?o=await this.getView(u,i):o=await this.getView(1,i),new cn(l=>{o.readWigData(a,n,r,l,i)})}async getFeatures(t,n,r,i){const a=await this.getFeatureStream(t,n,r,i);return(await C3(a.pipe(iO()))).flat()}}class oO extends F3{async getView(t,n){const{zoomLevels:r,refsByName:i,fileSize:a,isBigEndian:o,uncompressBufSize:s}=await this.getHeader(n),u=1/t;let l=r.length;a||(l-=1);for(let f=l;f>=0;f-=1){const c=r[f];if(c&&c.reductionLevel<=2*u){const h=Number(c.indexOffset);return new e3(this.bbi,i,h,o,s>0,"summary")}}return this.getUnzoomedView(n)}}function sO(e){return e.filter(t=>!!t)}class lO extends F3{constructor(){super(...arguments),this.readIndicesCache=new fc({cache:new cc({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(pe.Buffer.alloc(64),0,64,Number(n)),a=r?"big":"little",o=new Te().endianess(a).uint16("size").uint16("count").uint64("offset").parse(i),{count:s,offset:u}=o;if(s===0)return[];const l=20,f=l*s,{buffer:c}=await this.bbi.read(pe.Buffer.alloc(f),0,f,Number(u)),h=new Te().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(c.subarray(p*l)));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:u}=o,{buffer:l}=await this.bbi.read(pe.Buffer.alloc(32),0,32,Number(s),n),f=r?"big":"little",c=new Te().endianess(f).int32("magic").int32("blockSize").int32("keySize").int32("valSize").uint64("itemCount"),{blockSize:h,keySize:d,valSize:p}=c.parse(l),b=new Te().endianess(f).int8("nodeType").skip(1).int16("cnt").choice({tag:"nodeType",choices:{0:new Te().array("leafkeys",{length:"cnt",type:new Te().endianess(f).string("key",{length:d,stripNull:!0}).uint64("offset")}),1:new Te().array("keys",{length:"cnt",type:new Te().endianess(f).string("key",{length:d,stripNull:!0}).uint64("offset").uint32("length").uint32("reserved")})}}),y=async A=>{const S=Number(A),_=4+h*(d+p),{buffer:T}=await this.bbi.read(pe.Buffer.alloc(_),0,_,S,n),I=b.parse(T);if(I.leafkeys){let B;for(let R=0;R<I.leafkeys.length;R+=1){const{key:L}=I.leafkeys[R];if(t.localeCompare(L)<0&&B)return y(B);B=I.leafkeys[R].offset}return y(B)}for(let B=0;B<I.keys.length;B+=1)if(I.keys[B].key===t)return{...I.keys[B],field:u}},w=32;return y(Number(s)+w)});return sO(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 cn(u=>{i.readFeatures(u,[s],n)}).pipe(I3((u,l)=>u.concat(l)),k3(u=>{for(const l of u)l.field=s.field;return u})));return(await C3(tO(...a))).filter(s=>{var u;return((u=s.rest)===null||u===void 0?void 0:u.split(" ")[(s.field||0)-3])===t})}}const R3=Object.freeze(Object.defineProperty({__proto__:null,BigBed:lO,BigWig:oO},Symbol.toStringTag,{value:"Module"}));function uO(e,t){function n(){this.constructor=e}n.prototype=t.prototype,e.prototype=new n}function wo(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,wo)}uO(wo,Error),wo.buildMessage=function(e,t){var n={literal:function(l){return'"'+i(l.text)+'"'},class:function(l){var f="",c;for(c=0;c<l.parts.length;c++)f+=l.parts[c]instanceof Array?a(l.parts[c][0])+"-"+a(l.parts[c][1]):a(l.parts[c]);return"["+(l.inverted?"^":"")+f+"]"},any:function(l){return"any character"},end:function(l){return"end of input"},other:function(l){return l.description}};function r(l){return l.charCodeAt(0).toString(16).toUpperCase()}function i(l){return l.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(f){return"\\x0"+r(f)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(f){return"\\x"+r(f)})}function a(l){return l.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(f){return"\\x0"+r(f)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(f){return"\\x"+r(f)})}function o(l){return n[l.type](l)}function s(l){var f=new Array(l.length),c,h;for(c=0;c<l.length;c++)f[c]=o(l[c]);if(f.sort(),f.length>0){for(c=1,h=1;c<f.length;c++)f[c-1]!==f[c]&&(f[h]=f[c],h++);f.length=h}switch(f.length){case 1:return f[0];case 2:return f[0]+" or "+f[1];default:return f.slice(0,-1).join(", ")+", or "+f[f.length-1]}}function u(l){return l?'"'+i(l)+'"':"end of input"}return"Expected "+s(e)+" but "+u(t)+" found."};function fO(e,t){t=t!==void 0?t:{};var n={},r={declaration:n_},i=n_,a="(",o=Fe("(",!1),s=")",u=Fe(")",!1),l=function(E,z,$,X){return{type:E,name:z,comment:$,fields:X}},f="simple",c=Fe("simple",!1),h="object",d=Fe("object",!1),p="table",b=Fe("table",!1),y="auto",w=Fe("auto",!1),A="primary",S=Fe("primary",!1),_="index",T=Fe("index",!1),I="unique",B=Fe("unique",!1),R=function(E,z){return z},L=function(E,z){return E.name&&z.unshift(E),z},j="#",M=Fe("#",!1),ie=";",se=Fe(";",!1),ge=function(E,z,$){return{type:E,name:z,comment:$}},Ie="[",$e=Fe("[",!1),De="]",Ke=Fe("]",!1),Ze=function(E,z,$,X){return{type:E,size:z,name:$,comment:X}},Je=function(E,z,$,X){return{type:E,vals:z,name:$,comment:X}},Ee=",",_e=Fe(",",!1),pt=function(E,z){return z.unshift(E),z},qt="int",Oe=Fe("int",!1),N="uint",P=Fe("uint",!1),q="short",H=Fe("short",!1),Y="ushort",C=Fe("ushort",!1),x="byte",G=Fe("byte",!1),Z="ubyte",le=Fe("ubyte",!1),J="float",ue=Fe("float",!1),Zt="char",li=Fe("char",!1),ui="string",fi=Fe("string",!1),St="lstring",wr=Fe("lstring",!1),ci="enum",Wt=Fe("enum",!1),Kn="double",v=Fe("double",!1),g="bigint",m=Fe("bigint",!1),k="set",F=Fe("set",!1),O=function(E,z){return E+" "+z},V=/^[a-zA-Z_]/,fe=iu([["a","z"],["A","Z"],"_"],!1,!1),Ge=/^[a-zA-Z0-9_]/,Me=iu([["a","z"],["A","Z"],["0","9"],"_"],!1,!1),We=function(E){return KE()},Se=/^[^\n\r]/,WE=iu([`
|
|
342
|
-
`,"\r"],!0,!1),
|
|
343
|
-
`,"\r"],!1,!1),D=0,
|
|
453
|
+
`):"",this.name="UnsubscriptionError",this.errors=n}});function z3(e,t){if(e){var n=e.indexOf(t);0<=n&&e.splice(n,1)}}var wg=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=ql(o),u=s.next();!u.done;u=s.next()){var l=u.value;l.remove(this)}}catch(m){t={error:m}}finally{try{u&&!u.done&&(n=s.return)&&n.call(s)}finally{if(t)throw t.error}}else o.remove(this);var c=this.initialTeardown;if(lt(c))try{c()}catch(m){a=m instanceof yg?m.errors:[m]}var f=this._finalizers;if(f){this._finalizers=null;try{for(var h=ql(f),d=h.next();!d.done;d=h.next()){var p=d.value;try{G3(p)}catch(m){a=a??[],m instanceof yg?a=bg(bg([],mg(a)),mg(m.errors)):a.push(m)}}}catch(m){r={error:m}}finally{try{d&&!d.done&&(i=h.return)&&i.call(h)}finally{if(r)throw r.error}}}if(a)throw new yg(a)}},e.prototype.add=function(t){var n;if(t&&t!==this)if(this.closed)G3(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)&&z3(n,t)},e.prototype.remove=function(t){var n=this._finalizers;n&&z3(n,t),t instanceof e&&t._removeParent(this)},e.EMPTY=function(){var t=new e;return t.closed=!0,t}(),e}();wg.EMPTY;function U3(e){return e instanceof wg||e&&"closed"in e&<(e.remove)&<(e.add)&<(e.unsubscribe)}function G3(e){lt(e)?e():e.unsubscribe()}var H3={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},V3={setTimeout:function(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];return setTimeout.apply(void 0,bg([e,t],mg(n)))},clearTimeout:function(e){var t=V3.delegate;return((t==null?void 0:t.clearTimeout)||clearTimeout)(e)},delegate:void 0};function j3(e){V3.setTimeout(function(){throw e})}function $3(){}function BN(e){e()}var vg=function(e){gg(t,e);function t(n){var r=e.call(this)||this;return r.isStopped=!1,n?(r.destination=n,U3(n)&&n.add(r)):r.destination=MN,r}return t.create=function(n,r,i){return new Kf(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}(wg),DN=Function.prototype.bind;function xg(e,t){return DN.call(e,t)}var RN=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){Jf(r)}},e.prototype.error=function(t){var n=this.partialObserver;if(n.error)try{n.error(t)}catch(r){Jf(r)}else Jf(t)},e.prototype.complete=function(){var t=this.partialObserver;if(t.complete)try{t.complete()}catch(n){Jf(n)}},e}(),Kf=function(e){gg(t,e);function t(n,r,i){var a=e.call(this)||this,o;if(lt(n)||!n)o={next:n??void 0,error:r??void 0,complete:i??void 0};else{var s;a&&H3.useDeprecatedNextContext?(s=Object.create(n),s.unsubscribe=function(){return a.unsubscribe()},o={next:n.next&&xg(n.next,s),error:n.error&&xg(n.error,s),complete:n.complete&&xg(n.complete,s)}):o=n}return a.destination=new RN(o),a}return t}(vg);function Jf(e){j3(e)}function FN(e){throw e}var MN={closed:!0,next:$3,error:FN,complete:$3},Ag=function(){return typeof Symbol=="function"&&Symbol.observable||"@@observable"}();function q3(e){return e}function PN(e){return e.length===0?q3:e.length===1?e[0]:function(n){return e.reduce(function(r,i){return i(r)},n)}}var pn=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=ON(t)?t:new Kf(t,n,r);return BN(function(){var o=i,s=o.operator,u=o.source;a.add(s?s.call(a,u):u?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=W3(n),new n(function(i,a){var o=new Kf({next:function(s){try{t(s)}catch(u){a(u),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[Ag]=function(){return this},e.prototype.pipe=function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return PN(t)(this)},e.prototype.toPromise=function(t){var n=this;return t=W3(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 W3(e){var t;return(t=e??H3.Promise)!==null&&t!==void 0?t:Promise}function LN(e){return e&<(e.next)&<(e.error)&<(e.complete)}function ON(e){return e&&e instanceof vg||LN(e)&&U3(e)}function NN(e){return lt(e==null?void 0:e.lift)}function vo(e){return function(t){if(NN(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 Wl(e,t,n,r,i){return new zN(e,t,n,r,i)}var zN=function(e){gg(t,e);function t(n,r,i,a,o,s){var u=e.call(this,n)||this;return u.onFinalize=o,u.shouldUnsubscribe=s,u._next=r?function(l){try{r(l)}catch(c){n.error(c)}}:e.prototype._next,u._error=a?function(l){try{a(l)}catch(c){n.error(c)}finally{this.unsubscribe()}}:e.prototype._error,u._complete=i?function(){try{i()}catch(l){n.error(l)}finally{this.unsubscribe()}}:e.prototype._complete,u}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}(vg),UN=new pn(function(e){return e.complete()});function GN(e){return e&<(e.schedule)}function Z3(e){return e[e.length-1]}function HN(e){return GN(Z3(e))?e.pop():void 0}function VN(e,t){return typeof Z3(e)=="number"?e.pop():t}var Y3=function(e){return e&&typeof e.length=="number"&&typeof e!="function"};function Q3(e){return lt(e==null?void 0:e.then)}function X3(e){return lt(e[Ag])}function K3(e){return Symbol.asyncIterator&<(e==null?void 0:e[Symbol.asyncIterator])}function J3(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 jN(){return typeof Symbol!="function"||!Symbol.iterator?"@@iterator":Symbol.iterator}var eE=jN();function tE(e){return lt(e==null?void 0:e[eE])}function nE(e){return TN(this,arguments,function(){var n,r,i,a;return O3(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,wo(n.read())];case 3:return r=o.sent(),i=r.value,a=r.done,a?[4,wo(void 0)]:[3,5];case 4:return[2,o.sent()];case 5:return[4,wo(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 rE(e){return lt(e==null?void 0:e.getReader)}function xo(e){if(e instanceof pn)return e;if(e!=null){if(X3(e))return $N(e);if(Y3(e))return qN(e);if(Q3(e))return WN(e);if(K3(e))return iE(e);if(tE(e))return ZN(e);if(rE(e))return YN(e)}throw J3(e)}function $N(e){return new pn(function(t){var n=e[Ag]();if(lt(n.subscribe))return n.subscribe(t);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}function qN(e){return new pn(function(t){for(var n=0;n<e.length&&!t.closed;n++)t.next(e[n]);t.complete()})}function WN(e){return new pn(function(t){e.then(function(n){t.closed||(t.next(n),t.complete())},function(n){return t.error(n)}).then(null,j3)})}function ZN(e){return new pn(function(t){var n,r;try{for(var i=ql(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 iE(e){return new pn(function(t){QN(e,t).catch(function(n){return t.error(n)})})}function YN(e){return iE(nE(e))}function QN(e,t){var n,r,i,a;return kN(this,void 0,void 0,function(){var o,s;return O3(this,function(u){switch(u.label){case 0:u.trys.push([0,5,6,11]),n=IN(e),u.label=1;case 1:return[4,n.next()];case 2:if(r=u.sent(),!!r.done)return[3,4];if(o=r.value,t.next(o),t.closed)return[2];u.label=3;case 3:return[3,1];case 4:return[3,11];case 5:return s=u.sent(),i={error:s},[3,11];case 6:return u.trys.push([6,,9,10]),r&&!r.done&&(a=n.return)?[4,a.call(n)]:[3,8];case 7:u.sent(),u.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 gi(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 aE(e,t){return t===void 0&&(t=0),vo(function(n,r){n.subscribe(Wl(r,function(i){return gi(r,e,function(){return r.next(i)},t)},function(){return gi(r,e,function(){return r.complete()},t)},function(i){return gi(r,e,function(){return r.error(i)},t)}))})}function oE(e,t){return t===void 0&&(t=0),vo(function(n,r){r.add(e.schedule(function(){return n.subscribe(r)},t))})}function XN(e,t){return xo(e).pipe(oE(t),aE(t))}function KN(e,t){return xo(e).pipe(oE(t),aE(t))}function JN(e,t){return new pn(function(n){var r=0;return t.schedule(function(){r===e.length?n.complete():(n.next(e[r++]),n.closed||this.schedule())})})}function ez(e,t){return new pn(function(n){var r;return gi(n,t,function(){r=e[eE](),gi(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 lt(r==null?void 0:r.return)&&r.return()}})}function sE(e,t){if(!e)throw new Error("Iterable cannot be null");return new pn(function(n){gi(n,t,function(){var r=e[Symbol.asyncIterator]();gi(n,t,function(){r.next().then(function(i){i.done?n.complete():n.next(i.value)})},0,!0)})})}function tz(e,t){return sE(nE(e),t)}function nz(e,t){if(e!=null){if(X3(e))return XN(e,t);if(Y3(e))return JN(e,t);if(Q3(e))return KN(e,t);if(K3(e))return sE(e,t);if(tE(e))return ez(e,t);if(rE(e))return tz(e,t)}throw J3(e)}function rz(e,t){return t?nz(e,t):xo(e)}var iz=N3(function(e){return function(){e(this),this.name="EmptyError",this.message="no elements in sequence"}});function lE(e,t){var n=typeof t=="object";return new Promise(function(r,i){var a=new Kf({next:function(o){r(o),a.unsubscribe()},error:i,complete:function(){n?r(t.defaultValue):i(new iz)}});e.subscribe(a)})}function uE(e,t){return vo(function(n,r){var i=0;n.subscribe(Wl(r,function(a){r.next(e.call(t,a,i++))}))})}function az(e,t,n,r,i,a,o,s){var u=[],l=0,c=0,f=!1,h=function(){f&&!u.length&&!l&&t.complete()},d=function(m){return l<r?p(m):u.push(m)},p=function(m){a&&t.next(m),l++;var y=!1;xo(n(m,c++)).subscribe(Wl(t,function(w){i==null||i(w),a?d(w):t.next(w)},function(){y=!0},void 0,function(){if(y)try{l--;for(var w=function(){var A=u.shift();o?gi(t,o,function(){return p(A)}):p(A)};u.length&&l<r;)w();h()}catch(A){t.error(A)}}))};return e.subscribe(Wl(t,d,function(){f=!0,h()})),function(){s==null||s()}}function cE(e,t,n){return n===void 0&&(n=1/0),lt(t)?cE(function(r,i){return uE(function(a,o){return t(r,a,i,o)})(xo(e(r,i)))},n):(typeof t=="number"&&(n=t),vo(function(r,i){return az(r,i,e,n)}))}function oz(e){return e===void 0&&(e=1/0),cE(q3,e)}function sz(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n=HN(e),r=VN(e,1/0),i=e;return i.length?i.length===1?xo(i[0]):oz(r)(rz(i,n)):UN}function lz(e,t,n,r,i){return function(a,o){var s=n,u=t,l=0;a.subscribe(Wl(o,function(c){var f=l++;u=s?e(u,c,f):(s=!0,c),r&&o.next(u)},i&&function(){s&&o.next(u),o.complete()}))}}function fE(e,t){return vo(lz(e,t,arguments.length>=2,!1,!0))}var uz=function(e,t){return e.push(t),e};function cz(){return vo(function(e,t){fE(uz,[])(e).subscribe(t)})}const hE=-2003829722,Eg=-2021002517;function fz(e){return new TextDecoder().decode(e)}function dE(e){const t=e?"big":"little",n=new Ie().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 Ie().endianess(t).uint32("reductionLevel").uint32("reserved").uint64("dataOffset").uint64("indexOffset")}),r=new Ie().endianess(t).uint64("basesCovered").doublele("scoreMin").doublele("scoreMax").doublele("scoreSum").doublele("scoreSumSquares"),i=new Ie().endianess(t).uint32("magic").uint32("blockSize").uint32("keySize").uint32("valSize").uint64("itemCount"),a=new Ie().endianess(t).uint8("isLeafNode").skip(1).uint16("cnt").saveOffset("offset");return{chromTreeParser:i,totalSummaryParser:r,headerParser:n,isLeafNode:a}}class pE{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 Qi(a);else if(i)this.bbi=new dt(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(me.Buffer.alloc(n),0,n,0,t),i=this._isBigEndian(r),a=dE(i),o=a.headerParser.parse(r),{magic:s,asOffset:u,totalSummaryOffset:l}=o;if(o.fileType=s===Eg?"bigbed":"bigwig",u>n||l>n)return this._getMainHeader(t,n*2);if(u){const c=Number(o.asOffset);o.autoSql=fz(r.subarray(c,r.indexOf(0,c)))}if(o.totalSummaryOffset>n-8*5)return this._getMainHeader(t,n*2);if(o.totalSummaryOffset){const c=r.subarray(Number(o.totalSummaryOffset)),f=a.totalSummaryParser.parse(c);o.totalSummary={...f,basesCovered:Number(f.basesCovered)}}return{...o,isBigEndian:i}}_isBigEndian(t){let n=t.readInt32LE(0);if(n===hE||n===Eg)return!1;if(n=t.readInt32BE(0),n===hE||n===Eg)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 u=Number(t.chromTreeOffset);for(;s%4!==0;)s+=1;const l=s-u,{buffer:c}=await this.bbi.read(me.Buffer.alloc(l),0,l,Number(u),n),f=dE(r),{keySize:h}=f.chromTreeParser.parse(c),d=new Ie().endianess(i).string("key",{stripNull:!0,length:h}).uint32("refId").uint32("refSize").saveOffset("offset"),p=new Ie().endianess(i).skip(h).uint64("childOffset").saveOffset("offset"),m=32,y=async w=>{let A=w;if(A>=c.length)throw new Error("reading beyond end of buffer");const S=f.isLeafNode.parse(c.subarray(A)),{isLeafNode:_,cnt:T}=S;if(A+=S.offset,_)for(let I=0;I<T;I+=1){const B=d.parse(c.subarray(A));A+=B.offset;const{key:R,refId:M,refSize:G}=B,N={name:R,id:M,length:G};o[this.renameRefSeqs(R)]=M,a[M]=N}else{const I=[];for(let B=0;B<T;B+=1){const R=p.parse(c.subarray(A)),{childOffset:M}=R;A+=R.offset,I.push(y(Number(M)-Number(u)))}await Promise.all(I)}};return await y(m),{refsByName:o,refsByNumber:a}}async getUnzoomedView(t){const{unzoomedIndexOffset:n,refsByName:r,uncompressBufSize:i,isBigEndian:a,fileType:o}=await this.getHeader(t);return new L3(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:u}=i||{};return s?o=await this.getView(1/s,i):u?o=await this.getView(u,i):o=await this.getView(1,i),new pn(l=>{o.readWigData(a,n,r,l,i)})}async getFeatures(t,n,r,i){const a=await this.getFeatureStream(t,n,r,i);return(await lE(a.pipe(cz()))).flat()}}class hz extends pE{async getView(t,n){const{zoomLevels:r,refsByName:i,fileSize:a,isBigEndian:o,uncompressBufSize:s}=await this.getHeader(n),u=1/t;let l=r.length;a||(l-=1);for(let c=l;c>=0;c-=1){const f=r[c];if(f&&f.reductionLevel<=2*u){const h=Number(f.indexOffset);return new L3(this.bbi,i,h,o,s>0,"summary")}}return this.getUnzoomedView(n)}}function dz(e){return e.filter(t=>!!t)}class pz extends pE{constructor(){super(...arguments),this.readIndicesCache=new Of({cache:new Nf({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(me.Buffer.alloc(64),0,64,Number(n)),a=r?"big":"little",o=new Ie().endianess(a).uint16("size").uint16("count").uint64("offset").parse(i),{count:s,offset:u}=o;if(s===0)return[];const l=20,c=l*s,{buffer:f}=await this.bbi.read(me.Buffer.alloc(c),0,c,Number(u)),h=new Ie().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*l)));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:u}=o,{buffer:l}=await this.bbi.read(me.Buffer.alloc(32),0,32,Number(s),n),c=r?"big":"little",f=new Ie().endianess(c).int32("magic").int32("blockSize").int32("keySize").int32("valSize").uint64("itemCount"),{blockSize:h,keySize:d,valSize:p}=f.parse(l),m=new Ie().endianess(c).int8("nodeType").skip(1).int16("cnt").choice({tag:"nodeType",choices:{0:new Ie().array("leafkeys",{length:"cnt",type:new Ie().endianess(c).string("key",{length:d,stripNull:!0}).uint64("offset")}),1:new Ie().array("keys",{length:"cnt",type:new Ie().endianess(c).string("key",{length:d,stripNull:!0}).uint64("offset").uint32("length").uint32("reserved")})}}),y=async A=>{const S=Number(A),_=4+h*(d+p),{buffer:T}=await this.bbi.read(me.Buffer.alloc(_),0,_,S,n),I=m.parse(T);if(I.leafkeys){let B;for(let R=0;R<I.leafkeys.length;R+=1){const{key:M}=I.leafkeys[R];if(t.localeCompare(M)<0&&B)return y(B);B=I.leafkeys[R].offset}return y(B)}for(let B=0;B<I.keys.length;B+=1)if(I.keys[B].key===t)return{...I.keys[B],field:u}},w=32;return y(Number(s)+w)});return dz(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 pn(u=>{i.readFeatures(u,[s],n)}).pipe(fE((u,l)=>u.concat(l)),uE(u=>{for(const l of u)l.field=s.field;return u})));return(await lE(sz(...a))).filter(s=>{var u;return((u=s.rest)===null||u===void 0?void 0:u.split(" ")[(s.field||0)-3])===t})}}const gE=Object.freeze(Object.defineProperty({__proto__:null,BigBed:pz,BigWig:hz},Symbol.toStringTag,{value:"Module"}));function gz(e,t){function n(){this.constructor=e}n.prototype=t.prototype,e.prototype=new n}function Ao(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,Ao)}gz(Ao,Error),Ao.buildMessage=function(e,t){var n={literal:function(l){return'"'+i(l.text)+'"'},class:function(l){var c="",f;for(f=0;f<l.parts.length;f++)c+=l.parts[f]instanceof Array?a(l.parts[f][0])+"-"+a(l.parts[f][1]):a(l.parts[f]);return"["+(l.inverted?"^":"")+c+"]"},any:function(l){return"any character"},end:function(l){return"end of input"},other:function(l){return l.description}};function r(l){return l.charCodeAt(0).toString(16).toUpperCase()}function i(l){return l.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(c){return"\\x0"+r(c)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(c){return"\\x"+r(c)})}function a(l){return l.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(c){return"\\x0"+r(c)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(c){return"\\x"+r(c)})}function o(l){return n[l.type](l)}function s(l){var c=new Array(l.length),f,h;for(f=0;f<l.length;f++)c[f]=o(l[f]);if(c.sort(),c.length>0){for(f=1,h=1;f<c.length;f++)c[f-1]!==c[f]&&(c[h]=c[f],h++);c.length=h}switch(c.length){case 1:return c[0];case 2:return c[0]+" or "+c[1];default:return c.slice(0,-1).join(", ")+", or "+c[c.length-1]}}function u(l){return l?'"'+i(l)+'"':"end of input"}return"Expected "+s(e)+" but "+u(t)+" found."};function mz(e,t){t=t!==void 0?t:{};var n={},r={declaration:z_},i=z_,a="(",o=Re("(",!1),s=")",u=Re(")",!1),l=function(E,z,Q,X){return{type:E,name:z,comment:Q,fields:X}},c="simple",f=Re("simple",!1),h="object",d=Re("object",!1),p="table",m=Re("table",!1),y="auto",w=Re("auto",!1),A="primary",S=Re("primary",!1),_="index",T=Re("index",!1),I="unique",B=Re("unique",!1),R=function(E,z){return z},M=function(E,z){return E.name&&z.unshift(E),z},G="#",N=Re("#",!1),re=";",se=Re(";",!1),te=function(E,z,Q){return{type:E,name:z,comment:Q}},ge="[",Xe=Re("[",!1),De="]",Ke=Re("]",!1),We=function(E,z,Q,X){return{type:E,size:z,name:Q,comment:X}},Je=function(E,z,Q,X){return{type:E,vals:z,name:Q,comment:X}},_e=",",Se=Re(",",!1),gt=function(E,z){return z.unshift(E),z},$t="int",Ne=Re("int",!1),L="uint",P=Re("uint",!1),$="short",V=Re("short",!1),Z="ushort",C=Re("ushort",!1),x="byte",H=Re("byte",!1),q="ubyte",ue=Re("ubyte",!1),ne="float",ce=Re("float",!1),qt="char",yi=Re("char",!1),wi="string",vi=Re("string",!1),Ct="lstring",Cr=Re("lstring",!1),xi="enum",Wt=Re("enum",!1),nr="double",v=Re("double",!1),g="bigint",b=Re("bigint",!1),k="set",F=Re("set",!1),O=function(E,z){return E+" "+z},j=/^[a-zA-Z_]/,fe=Eu([["a","z"],["A","Z"],"_"],!1,!1),He=/^[a-zA-Z0-9_]/,Pe=Eu([["a","z"],["A","Z"],["0","9"],"_"],!1,!1),Ze=function(E){return P_()},Ce=/^[^\n\r]/,B_=Eu([`
|
|
454
|
+
`,"\r"],!0,!1),LU=function(E){return E.join("").replace(/^"/,"").replace(/"$/,"")},OU=L_("integer"),D_=/^[0-9]/,R_=Eu([["0","9"]],!1,!1),NU=function(){return parseInt(P_(),10)},zU=L_("whitespace"),F_=/^[ \t\n\r]/,M_=Eu([" "," ",`
|
|
455
|
+
`,"\r"],!1,!1),D=0,Mt=0,wh=[{line:1,column:1}],rr=0,sm=[],ae=0,vh;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 P_(){return e.substring(Mt,D)}function Re(E,z){return{type:"literal",text:E,ignoreCase:z}}function Eu(E,z,Q){return{type:"class",parts:E,inverted:z,ignoreCase:Q}}function UU(){return{type:"end"}}function L_(E){return{type:"other",description:E}}function O_(E){var z=wh[E],Q;if(z)return z;for(Q=E-1;!wh[Q];)Q--;for(z=wh[Q],z={line:z.line,column:z.column};Q<E;)e.charCodeAt(Q)===10?(z.line++,z.column=1):z.column++,Q++;return wh[E]=z,z}function N_(E,z){var Q=O_(E),X=O_(z);return{start:{offset:E,line:Q.line,column:Q.column},end:{offset:z,line:X.line,column:X.column}}}function oe(E){D<rr||(D>rr&&(rr=D,sm=[]),sm.push(E))}function GU(E,z,Q){return new Ao(Ao.buildMessage(E,z),E,z,Q)}function z_(){var E,z,Q,X,ie,ze,Ye,bn,Ai,kr,Ei,Tr,_i,Ir;return E=D,z=be(),z!==n?(Q=U_(),Q!==n?(X=be(),X!==n?(ie=G_(),ie!==n?(ze=be(),ze!==n?(Ye=xh(),Ye!==n?(bn=be(),bn!==n?(e.charCodeAt(D)===40?(Ai=a,D++):(Ai=n,ae===0&&oe(o)),Ai!==n?(kr=be(),kr!==n?(Ei=HU(),Ei!==n?(Tr=be(),Tr!==n?(e.charCodeAt(D)===41?(_i=s,D++):(_i=n,ae===0&&oe(u)),_i!==n?(Ir=be(),Ir!==n?(Mt=E,z=l(Q,ie,Ye,Ei),E=z):(D=E,E=n)):(D=E,E=n)):(D=E,E=n)):(D=E,E=n)):(D=E,E=n)):(D=E,E=n)):(D=E,E=n)):(D=E,E=n)):(D=E,E=n)):(D=E,E=n)):(D=E,E=n)):(D=E,E=n)):(D=E,E=n),E}function U_(){var E;return e.substr(D,6)===c?(E=c,D+=6):(E=n,ae===0&&oe(f)),E===n&&(e.substr(D,6)===h?(E=h,D+=6):(E=n,ae===0&&oe(d)),E===n&&(e.substr(D,5)===p?(E=p,D+=5):(E=n,ae===0&&oe(m)))),E}function G_(){var E,z,Q,X;return E=Fn(),E===n&&(E=D,z=Fn(),z!==n?(Q=H_(),Q!==n?(z=[z,Q],E=z):(D=E,E=n)):(D=E,E=n),E===n&&(E=D,z=Fn(),z!==n?(e.substr(D,4)===y?(Q=y,D+=4):(Q=n,ae===0&&oe(w)),Q!==n?(z=[z,Q],E=z):(D=E,E=n)):(D=E,E=n),E===n&&(E=D,z=Fn(),z!==n?(Q=H_(),Q!==n?(e.substr(D,4)===y?(X=y,D+=4):(X=n,ae===0&&oe(w)),X!==n?(z=[z,Q,X],E=z):(D=E,E=n)):(D=E,E=n)):(D=E,E=n)))),E}function H_(){var E;return e.substr(D,7)===A?(E=A,D+=7):(E=n,ae===0&&oe(S)),E===n&&(e.substr(D,5)===_?(E=_,D+=5):(E=n,ae===0&&oe(T)),E===n&&(e.substr(D,6)===I?(E=I,D+=6):(E=n,ae===0&&oe(B)))),E}function xh(){var E;return E=V_(),E===n&&(E=be()),E}function HU(){var E,z,Q,X,ie,ze,Ye;if(E=D,z=lm(),z!==n)if(Q=be(),Q!==n){for(X=[],ie=D,ze=be(),ze!==n?(Ye=lm(),Ye!==n?(Mt=ie,ze=R(z,Ye),ie=ze):(D=ie,ie=n)):(D=ie,ie=n);ie!==n;)X.push(ie),ie=D,ze=be(),ze!==n?(Ye=lm(),Ye!==n?(Mt=ie,ze=R(z,Ye),ie=ze):(D=ie,ie=n)):(D=ie,ie=n);X!==n?(ie=be(),ie!==n?(Mt=E,z=M(z,X),E=z):(D=E,E=n)):(D=E,E=n)}else D=E,E=n;else D=E,E=n;return E}function VU(){var E;return e.charCodeAt(D)===35?(E=G,D++):(E=n,ae===0&&oe(N)),E}function jU(){var E,z,Q,X,ie;return E=D,z=be(),z!==n?(Q=VU(),Q!==n?(X=V_(),X!==n?(ie=be(),ie!==n?(z=[z,Q,X,ie],E=z):(D=E,E=n)):(D=E,E=n)):(D=E,E=n)):(D=E,E=n),E}function lm(){var E,z,Q,X,ie,ze,Ye,bn,Ai,kr,Ei,Tr,_i,Ir;return E=D,z=um(),z!==n?(Q=be(),Q!==n?(X=Fn(),X!==n?(ie=be(),ie!==n?(e.charCodeAt(D)===59?(ze=re,D++):(ze=n,ae===0&&oe(se)),ze!==n?(Ye=be(),Ye!==n?(bn=xh(),bn!==n?(Mt=E,z=te(z,X,bn),E=z):(D=E,E=n)):(D=E,E=n)):(D=E,E=n)):(D=E,E=n)):(D=E,E=n)):(D=E,E=n)):(D=E,E=n),E===n&&(E=D,z=um(),z!==n?(Q=be(),Q!==n?(e.charCodeAt(D)===91?(X=ge,D++):(X=n,ae===0&&oe(Xe)),X!==n?(ie=be(),ie!==n?(ze=qU(),ze!==n?(Ye=be(),Ye!==n?(e.charCodeAt(D)===93?(bn=De,D++):(bn=n,ae===0&&oe(Ke)),bn!==n?(Ai=be(),Ai!==n?(kr=Fn(),kr!==n?(Ei=be(),Ei!==n?(e.charCodeAt(D)===59?(Tr=re,D++):(Tr=n,ae===0&&oe(se)),Tr!==n?(_i=be(),_i!==n?(Ir=xh(),Ir!==n?(Mt=E,z=We(z,ze,kr,Ir),E=z):(D=E,E=n)):(D=E,E=n)):(D=E,E=n)):(D=E,E=n)):(D=E,E=n)):(D=E,E=n)):(D=E,E=n)):(D=E,E=n)):(D=E,E=n)):(D=E,E=n)):(D=E,E=n)):(D=E,E=n)):(D=E,E=n),E===n&&(E=D,z=um(),z!==n?(Q=be(),Q!==n?(e.charCodeAt(D)===40?(X=a,D++):(X=n,ae===0&&oe(o)),X!==n?(ie=be(),ie!==n?(ze=$U(),ze!==n?(Ye=be(),Ye!==n?(e.charCodeAt(D)===41?(bn=s,D++):(bn=n,ae===0&&oe(u)),bn!==n?(Ai=be(),Ai!==n?(kr=Fn(),kr!==n?(Ei=be(),Ei!==n?(e.charCodeAt(D)===59?(Tr=re,D++):(Tr=n,ae===0&&oe(se)),Tr!==n?(_i=be(),_i!==n?(Ir=xh(),Ir!==n?(Mt=E,z=Je(z,ze,kr,Ir),E=z):(D=E,E=n)):(D=E,E=n)):(D=E,E=n)):(D=E,E=n)):(D=E,E=n)):(D=E,E=n)):(D=E,E=n)):(D=E,E=n)):(D=E,E=n)):(D=E,E=n)):(D=E,E=n)):(D=E,E=n)):(D=E,E=n),E===n&&(E=jU()))),E}function $U(){var E,z,Q,X,ie,ze,Ye;if(E=D,z=Fn(),z!==n){for(Q=[],X=D,e.charCodeAt(D)===44?(ie=_e,D++):(ie=n,ae===0&&oe(Se)),ie!==n?(ze=be(),ze!==n?(Ye=Fn(),Ye!==n?(Mt=X,ie=R(z,Ye),X=ie):(D=X,X=n)):(D=X,X=n)):(D=X,X=n);X!==n;)Q.push(X),X=D,e.charCodeAt(D)===44?(ie=_e,D++):(ie=n,ae===0&&oe(Se)),ie!==n?(ze=be(),ze!==n?(Ye=Fn(),Ye!==n?(Mt=X,ie=R(z,Ye),X=ie):(D=X,X=n)):(D=X,X=n)):(D=X,X=n);Q!==n?(Mt=E,z=gt(z,Q),E=z):(D=E,E=n)}else D=E,E=n;return E}function um(){var E,z,Q,X;return e.substr(D,3)===$t?(E=$t,D+=3):(E=n,ae===0&&oe(Ne)),E===n&&(e.substr(D,4)===L?(E=L,D+=4):(E=n,ae===0&&oe(P)),E===n&&(e.substr(D,5)===$?(E=$,D+=5):(E=n,ae===0&&oe(V)),E===n&&(e.substr(D,6)===Z?(E=Z,D+=6):(E=n,ae===0&&oe(C)),E===n&&(e.substr(D,4)===x?(E=x,D+=4):(E=n,ae===0&&oe(H)),E===n&&(e.substr(D,5)===q?(E=q,D+=5):(E=n,ae===0&&oe(ue)),E===n&&(e.substr(D,5)===ne?(E=ne,D+=5):(E=n,ae===0&&oe(ce)),E===n&&(e.substr(D,4)===qt?(E=qt,D+=4):(E=n,ae===0&&oe(yi)),E===n&&(e.substr(D,6)===wi?(E=wi,D+=6):(E=n,ae===0&&oe(vi)),E===n&&(e.substr(D,7)===Ct?(E=Ct,D+=7):(E=n,ae===0&&oe(Cr)),E===n&&(e.substr(D,4)===xi?(E=xi,D+=4):(E=n,ae===0&&oe(Wt)),E===n&&(e.substr(D,6)===nr?(E=nr,D+=6):(E=n,ae===0&&oe(v)),E===n&&(e.substr(D,6)===g?(E=g,D+=6):(E=n,ae===0&&oe(b)),E===n&&(e.substr(D,3)===k?(E=k,D+=3):(E=n,ae===0&&oe(F)),E===n&&(E=D,z=U_(),z!==n?(Q=be(),Q!==n?(X=G_(),X!==n?(Mt=E,z=O(z,X),E=z):(D=E,E=n)):(D=E,E=n)):(D=E,E=n))))))))))))))),E}function qU(){var E;return E=WU(),E===n&&(E=Fn()),E}function Fn(){var E,z,Q,X,ie;if(E=D,z=D,j.test(e.charAt(D))?(Q=e.charAt(D),D++):(Q=n,ae===0&&oe(fe)),Q!==n){for(X=[],He.test(e.charAt(D))?(ie=e.charAt(D),D++):(ie=n,ae===0&&oe(Pe));ie!==n;)X.push(ie),He.test(e.charAt(D))?(ie=e.charAt(D),D++):(ie=n,ae===0&&oe(Pe));X!==n?(Q=[Q,X],z=Q):(D=z,z=n)}else D=z,z=n;return z!==n&&(Mt=E,z=Ze()),E=z,E}function V_(){var E,z,Q;for(E=D,z=[],Ce.test(e.charAt(D))?(Q=e.charAt(D),D++):(Q=n,ae===0&&oe(B_));Q!==n;)z.push(Q),Ce.test(e.charAt(D))?(Q=e.charAt(D),D++):(Q=n,ae===0&&oe(B_));return z!==n&&(Mt=E,z=LU(z)),E=z,E}function WU(){var E,z,Q,X;if(ae++,E=D,z=be(),z!==n){if(Q=[],D_.test(e.charAt(D))?(X=e.charAt(D),D++):(X=n,ae===0&&oe(R_)),X!==n)for(;X!==n;)Q.push(X),D_.test(e.charAt(D))?(X=e.charAt(D),D++):(X=n,ae===0&&oe(R_));else Q=n;Q!==n?(Mt=E,z=NU(),E=z):(D=E,E=n)}else D=E,E=n;return ae--,E===n&&(z=n,ae===0&&oe(OU)),E}function be(){var E,z;for(ae++,E=[],F_.test(e.charAt(D))?(z=e.charAt(D),D++):(z=n,ae===0&&oe(M_));z!==n;)E.push(z),F_.test(e.charAt(D))?(z=e.charAt(D),D++):(z=n,ae===0&&oe(M_));return ae--,E===n&&(z=n,ae===0&&oe(zU)),E}if(vh=i(),vh!==n&&D===e.length)return vh;throw vh!==n&&D<e.length&&oe(UU()),GU(sm,rr<e.length?e.charAt(rr):null,rr<e.length?N_(rr,rr+1):N_(rr,rr))}var mE={SyntaxError:Ao,parse:mz};const bz=ll(mE),_g=Object.fromEntries(Object.entries(Object.freeze(Object.defineProperty({__proto__:null,bigChain:`table bigChain
|
|
344
456
|
"bigChain pairwise alignment"
|
|
345
457
|
(
|
|
346
458
|
string chrom; "Reference sequence chromosome or scaffold"
|
|
@@ -499,17 +611,17 @@ Reason: ${s.message}`)}));if(n.isViewSpec(a))return a.baseUrl=(o=i.match(/^[^?#]
|
|
|
499
611
|
float score; "Floating point score."
|
|
500
612
|
char[1] leftStatus; "Gap/break annotation for preceding block"
|
|
501
613
|
char[1] rightStatus; "Gap/break annotation for following block"
|
|
502
|
-
)`},Symbol.toStringTag,{value:"Module"}))).map(([e,t])=>[e,M3.parse(t.trim())]));function eg(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 hO={".":0,"-":-1,"+":1};function dO(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 pO{constructor(t={}){if(t.autoSql)this.autoSql=eg(cO.parse(t.autoSql));else if(t.type){if(!Jp[t.type])throw new Error("Type not found");this.autoSql=eg(Jp[t.type])}else this.autoSql=eg(Jp.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&&dO(a))for(let s=0;s<r.fields.length;s++){const u=r.fields[s];let l=a[s];const{isNumeric:f,isArray:c,arrayIsNumeric:h,name:d}=u;if(l==null)break;if(l!=="."){if(f){const p=Number(l);l=Number.isNaN(p)?l:p}else c&&(l=l.split(","),l[l.length-1]===""&&l.pop(),h&&(l=l.map(p=>Number(p))));o[d]=l}}else{const s=["chrom","chromStart","chromEnd","name"];o=Object.fromEntries(a.map((u,l)=>[s[l]||"field"+l,u])),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=hO[o.strand]||0,o.chrom=decodeURIComponent(o.chrom),o}}const gO=Object.freeze(Object.defineProperty({__proto__:null,default:pO},Symbol.toStringTag,{value:"Module"}));let P3=class{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 vo(e,t=0,n=!1){if(n)throw new Error("big-endian virtual file offsets not implemented");return new P3(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])}let L3=class{constructor(t,n,r,i){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+65536-this.minv.blockPosition}};function mO(e){return new Promise(t=>setTimeout(t,e))}function bO(e){if(e.greaterThan(Number.MAX_SAFE_INTEGER)||e.lessThan(Number.MIN_SAFE_INTEGER))throw new Error("integer overflow");return e.toNumber()}function yO(e){if(e&&e.aborted)if(typeof DOMException>"u"){const t=new Error("aborted");throw t.code="ERR_ABORTED",t}else throw new DOMException("aborted","AbortError")}function wO(e,t){return t.minv.blockPosition-e.maxv.blockPosition<65e3&&t.maxv.blockPosition-e.minv.blockPosition<5e6}function vO(e={}){return"aborted"in e?{signal:e}:e}function N3(e,t){const n=[];let r;if(e.length===0)return e;e.sort((i,a)=>{const o=i.minv.blockPosition-a.minv.blockPosition;return o===0?i.minv.dataPosition-a.minv.dataPosition:o});for(const i of e)(!t||i.maxv.compareTo(t)>0)&&(r===void 0?(n.push(i),r=i):wO(r,i)?i.maxv.compareTo(r.maxv)>0&&(r.maxv=i.maxv):(n.push(i),r=i));return n}function O3(e,t){return{lineCount:bO(nc.fromBytesLE(Array.prototype.slice.call(e,t,t+8),!0))}}function kc(e,t){return e?e.compareTo(t)>0?t:e:t}function xO(e,t=n=>n){let n=0,r=0;const i=[],a={};for(let o=0;o<e.length;o+=1)if(!e[o]){if(r<o){let s=e.toString("utf8",r,o);s=t(s),i[n]=s,a[s]=n}r=o+1,n+=1}return{refNameToId:a,refIdToName:i}}let z3=class{constructor({filehandle:t,renameRefSeq:n=r=>r}){this.filehandle=t,this.renameRefSeq=n}};const AO=21578050;function EO(e,t){return e-e%t}function _O(e,t){return e-e%t+t}function SO(e,t){return t-=1,[[0,0],[1+(e>>26),1+(t>>26)],[9+(e>>23),9+(t>>23)],[73+(e>>20),73+(t>>20)],[585+(e>>17),585+(t>>17)],[4681+(e>>14),4681+(t>>14)]]}class xo extends z3{async lineCount(t,n){var r,i;return((i=(r=(await this.parse(n)).indices[t])===null||r===void 0?void 0:r.stats)===null||i===void 0?void 0:i.lineCount)||0}async _parse(t){const n=await this.filehandle.readFile(t);if(n.readUInt32LE(0)!==AO)throw new Error("Not a BAI file");const r=n.readInt32LE(4),a=((1<<(5+1)*3)-1)/7;let o=8,s;const u=new Array(r);for(let l=0;l<r;l++){const f=n.readInt32LE(o);let c;o+=4;const h={};for(let b=0;b<f;b+=1){const y=n.readUInt32LE(o);if(o+=4,y===a+1)o+=4,c=O3(n,o+16),o+=32;else{if(y>a+1)throw new Error("bai index contains too many bins, please use CSI");{const w=n.readInt32LE(o);o+=4;const A=new Array(w);for(let S=0;S<w;S++){const _=vo(n,o);o+=8;const T=vo(n,o);o+=8,s=kc(s,_),A[S]=new L3(_,T,y)}h[y]=A}}}const d=n.readInt32LE(o);o+=4;const p=new Array(d);for(let b=0;b<d;b++){const y=vo(n,o);o+=8,s=kc(s,y),p[b]=y}u[l]={binIndex:h,linearIndex:p,stats:c}}return{bai:!0,firstDataLine:s,maxBlockSize:65536,indices:u,refCount:r}}async indexCov(t,n,r,i={}){const o=n!==void 0,u=(await this.parse(i)).indices[t];if(!u)return[];const{linearIndex:l=[],stats:f}=u;if(l.length===0)return[];const c=r===void 0?(l.length-1)*16384:_O(r,16384),h=n===void 0?0:EO(n,16384),d=o?new Array((c-h)/16384):new Array(l.length-1),p=l[l.length-1].blockPosition;if(c>(l.length-1)*16384)throw new Error("query outside of range of linear index");let b=l[h/16384].blockPosition;for(let y=h/16384,w=0;y<c/16384;y++,w++)d[w]={score:l[y+1].blockPosition-b,start:y*16384,end:y*16384+16384},b=l[y+1].blockPosition;return d.map(y=>({...y,score:y.score*((f==null?void 0:f.lineCount)||0)/p}))}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=SO(n,r),u=[];for(const[d,p]of s)for(let b=d;b<=p;b++)if(o.binIndex[b]){const y=o.binIndex[b];for(const w of y)u.push(w)}const l=o.linearIndex.length;let f;const c=Math.min(n>>14,l-1),h=Math.min(r>>14,l-1);for(let d=c;d<=h;++d){const p=o.linearIndex[d];p&&(!f||p.compareTo(f)<0)&&(f=p)}return N3(u,f)}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={}){var r;return!!(!((r=(await this.parse(n)).indices[t])===null||r===void 0)&&r.binIndex)}}var si=pe.Buffer,tg=[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"&&(tg=new Int32Array(tg));function U3(e){if(si.isBuffer(e))return e;var t=typeof si.alloc=="function"&&typeof si.from=="function";if(typeof e=="number")return t?si.alloc(e):new si(e);if(typeof e=="string")return t?si.from(e):new si(e);throw new Error("input must be buffer, number, or string, received "+typeof e)}function CO(e){var t=U3(4);return t.writeInt32BE(e,0),t}function ng(e,t){e=U3(e),si.isBuffer(t)&&(t=t.readUInt32BE(0));for(var n=~~t^-1,r=0;r<e.length;r++)n=tg[(n^e[r])&255]^n>>>8;return n^-1}function rg(){return CO(ng.apply(null,arguments))}rg.signed=function(){return ng.apply(null,arguments)},rg.unsigned=function(){return ng.apply(null,arguments)>>>0};var kO=rg;const TO=Xs(kO),IO=21582659,BO=38359875;function DO(e,t){return e*2**t}function G3(e,t){return Math.floor(e/2**t)}let Tc=class extends z3{constructor(){super(...arguments),this.maxBinNumber=0,this.depth=0,this.minShift=0}async lineCount(t,n){var r,i;return((i=(r=(await this.parse(n)).indices[t])===null||r===void 0?void 0:r.stats)===null||i===void 0?void 0:i.lineCount)||0}async indexCov(){return[]}parseAuxData(t,n){const r=t.readInt32LE(n),i=r&65536?"zero-based-half-open":"1-based-closed",a={0:"generic",1:"SAM",2:"VCF"}[r&15];if(!a)throw new Error(`invalid Tabix preset format flags ${r}`);const o={ref:t.readInt32LE(n+4),start:t.readInt32LE(n+8),end:t.readInt32LE(n+12)},s=t.readInt32LE(n+16),u=s?String.fromCharCode(s):"",l=t.readInt32LE(n+20),f=t.readInt32LE(n+24);return{columnNumbers:o,coordinateType:i,metaValue:s,metaChar:u,skipLines:l,format:a,formatFlags:r,...xO(t.subarray(n+28,n+28+f),this.renameRefSeq)}}async _parse(t){const n=await this.filehandle.readFile(t),r=await Jr(n);let i;if(r.readUInt32LE(0)===IO)i=1;else if(r.readUInt32LE(0)===BO)i=2;else throw new Error("Not a CSI file");this.minShift=r.readInt32LE(4),this.depth=r.readInt32LE(8),this.maxBinNumber=((1<<(this.depth+1)*3)-1)/7;const a=r.readInt32LE(12),o=a>=30?this.parseAuxData(r,16):void 0,s=r.readInt32LE(16+a);let u=16+a+4,l;const f=new Array(s);for(let c=0;c<s;c++){const h=r.readInt32LE(u);u+=4;const d={};let p;for(let b=0;b<h;b++){const y=r.readUInt32LE(u);if(u+=4,y>this.maxBinNumber)p=O3(r,u+28),u+=28+16;else{l=kc(l,vo(r,u)),u+=8;const w=r.readInt32LE(u);u+=4;const A=new Array(w);for(let S=0;S<w;S+=1){const _=vo(r,u);u+=8;const T=vo(r,u);u+=8,l=kc(l,_),A[S]=new L3(_,T,y)}d[y]=A}}f[c]={binIndex:d,stats:p}}return{csiVersion:i,firstDataLine:l,indices:f,refCount:s,csi:!0,maxBlockSize:65536,...o}}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);if(s.length===0)return[];const u=[];for(const[l,f]of s)for(let c=l;c<=f;c++)if(o.binIndex[c]){const h=o.binIndex[c];for(const d of h)u.push(d)}return N3(u,new P3(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+=DO(1,r*3),r+=1){const s=i+G3(t,a),u=i+G3(n,a);if(u-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,u])}return o}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={}){var r;return!!(!((r=(await this.parse(n)).indices[t])===null||r===void 0)&&r.binIndex)}};const hn={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},H3="=ACMGRSVTWYHKDBN".split(""),Nl="MIDNSHP=X???????".split("");class V3{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||[]);for(const r of Object.keys(this.data))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 u=String.fromCharCode(n[i+2]);i+=3;let l;switch(u){case"A":{l=String.fromCharCode(n[i]),i+=1;break}case"i":{l=n.readInt32LE(i),i+=4;break}case"I":{l=n.readUInt32LE(i),i+=4;break}case"c":{l=n.readInt8(i),i+=1;break}case"C":{l=n.readUInt8(i),i+=1;break}case"s":{l=n.readInt16LE(i),i+=2;break}case"S":{l=n.readUInt16LE(i),i+=2;break}case"f":{l=n.readFloatLE(i),i+=4;break}case"Z":case"H":{for(l="";i<=a;){const f=n[i++];if(f===0)break;l+=String.fromCharCode(f)}break}case"B":{l="";const f=n[i++],c=String.fromCharCode(f),h=n.readInt32LE(i);if(i+=4,c==="i")if(s==="CG")for(let d=0;d<h;d++){const p=n.readInt32LE(i),b=p>>4,y=Nl[p&15];l+=b+y,i+=4}else for(let d=0;d<h;d++)l+=n.readInt32LE(i),d+1<h&&(l+=","),i+=4;if(c==="I")if(s==="CG")for(let d=0;d<h;d++){const p=n.readUInt32LE(i),b=p>>4,y=Nl[p&15];l+=b+y,i+=4}else for(let d=0;d<h;d++)l+=n.readUInt32LE(i),d+1<h&&(l+=","),i+=4;if(c==="s")for(let d=0;d<h;d++)l+=n.readInt16LE(i),d+1<h&&(l+=","),i+=2;if(c==="S")for(let d=0;d<h;d++)l+=n.readUInt16LE(i),d+1<h&&(l+=","),i+=2;if(c==="c")for(let d=0;d<h;d++)l+=n.readInt8(i),d+1<h&&(l+=","),i+=1;if(c==="C")for(let d=0;d<h;d++)l+=n.readUInt8(i),d+1<h&&(l+=","),i+=1;if(c==="f")for(let d=0;d<h;d++)l+=n.readFloatLE(i),d+1<h&&(l+=","),i+=4;break}default:console.warn(`Unknown BAM tag type '${u}', tags may be incomplete`),l=void 0,i=a}if(this._tagOffset=i,this._tagList.push(s),o===t)return l;this.data[o]=l}this._allTagsParsed=!0}_parseAllTags(){this._parseTag("")}_parseCigar(t){return t.match(/\d+\D/g).map(n=>[n.match(/\D/)[0].toUpperCase(),Number.parseInt(n,10)])}isPaired(){return!!(this.flags&hn.BAM_FPAIRED)}isProperlyPaired(){return!!(this.flags&hn.BAM_FPROPER_PAIR)}isSegmentUnmapped(){return!!(this.flags&hn.BAM_FUNMAP)}isMateUnmapped(){return!!(this.flags&hn.BAM_FMUNMAP)}isReverseComplemented(){return!!(this.flags&hn.BAM_FREVERSE)}isMateReverseComplemented(){return!!(this.flags&hn.BAM_FMREVERSE)}isRead1(){return!!(this.flags&hn.BAM_FREAD1)}isRead2(){return!!(this.flags&hn.BAM_FREAD2)}isSecondary(){return!!(this.flags&hn.BAM_FSECONDARY)}isFailedQc(){return!!(this.flags&hn.BAM_FQCFAIL)}isDuplicate(){return!!(this.flags&hn.BAM_FDUP)}isSupplementary(){return!!(this.flags&hn.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,u=t.readInt32LE(i),l=u>>4,f=Nl[u&15];if(f==="S"&&l===a)return i+=4,u=t.readInt32LE(i),l=u>>4,f=Nl[u&15],f!=="N"&&console.warn("CG tag with no N tag"),this.data.length_on_ref=l,this.get("CG");for(let c=0;c<r;++c)u=t.readInt32LE(i),l=u>>4,f=Nl[u&15],o+=l+f,f!=="H"&&f!=="S"&&f!=="I"&&(s+=l),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 u=0;u<i;++u){const l=t[r+u];o+=H3[(l&240)>>4],s++,s<a&&(o+=H3[l&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""}_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={};for(const n of Object.keys(this))n.charAt(0)==="_"||n==="bytes"||(t[n]=this[n]);return t}}function j3(e){const t=e.split(/\r?\n/),n=[];for(const r of t){const[i,...a]=r.split(/\t/);i&&n.push({tag:i.slice(1),data:a.map(o=>{const[s,u]=o.split(":",2);return{tag:s,value:u}})})}return n}const q3=21840194,Z3=65536;async function FO(e){let t=[];for await(const n of e)t=t.concat(n);return t}class RO{read(){throw new Error("never called")}stat(){throw new Error("never called")}readFile(){throw new Error("never called")}close(){throw new Error("never called")}}class W3{constructor({bamFilehandle:t,bamPath:n,bamUrl:r,baiPath:i,baiFilehandle:a,baiUrl:o,csiPath:s,csiFilehandle:u,csiUrl:l,htsget:f,yieldThreadTime:c=100,renameRefSeqs:h=d=>d}){if(this.htsget=!1,this.featureCache=new fc({cache:new cc({maxSize:50}),fill:async(d,p)=>{const{chunk:b,opts:y}=d,{data:w,cpositions:A,dpositions:S}=await this._readChunk({chunk:b,opts:{...y,signal:p}});return this.readBamFeatures(w,A,S,b)}}),this.renameRefSeq=h,t)this.bam=t;else if(n)this.bam=new ht(n);else if(r)this.bam=new Wi(r);else if(f)this.htsget=!0,this.bam=new RO;else throw new Error("unable to initialize bam");if(u)this.index=new Tc({filehandle:u});else if(s)this.index=new Tc({filehandle:new ht(s)});else if(l)this.index=new Tc({filehandle:new Wi(l)});else if(a)this.index=new xo({filehandle:a});else if(i)this.index=new xo({filehandle:new ht(i)});else if(o)this.index=new xo({filehandle:new Wi(o)});else if(n)this.index=new xo({filehandle:new ht(`${n}.bai`)});else if(r)this.index=new xo({filehandle:new Wi(`${r}.bai`)});else if(f)this.htsget=!0;else throw new Error("unable to infer index format");this.yieldThreadTime=c}async getHeaderPre(t){const n=vO(t);if(!this.index)return;const r=await this.index.parse(n),i=r.firstDataLine?r.firstDataLine.blockPosition+65535:void 0;let a;if(i){const f=i+Z3,c=await this.bam.read(pe.Buffer.alloc(f),0,f,0,n);if(!c.bytesRead)throw new Error("Error reading header");a=c.buffer.subarray(0,Math.min(c.bytesRead,i))}else a=await this.bam.readFile(n);const o=await Jr(a);if(o.readInt32LE(0)!==q3)throw new Error("Not a BAM file");const s=o.readInt32LE(4);this.header=o.toString("utf8",8,8+s);const{chrToIndex:u,indexToChr:l}=await this._readRefSeqs(s+8,65535,n);return this.chrToIndex=u,this.indexToChr=l,j3(this.header)}getHeader(t){return this.headerP||(this.headerP=this.getHeaderPre(t).catch(n=>{throw this.headerP=void 0,n})),this.headerP}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+Z3,{bytesRead:a,buffer:o}=await this.bam.read(pe.Buffer.alloc(i),0,n,0,r);if(!a)throw new Error("Error reading refseqs from header");const s=await Jr(o.subarray(0,Math.min(a,n))),u=s.readInt32LE(t);let l=t+4;const f={},c=[];for(let h=0;h<u;h+=1){const d=s.readInt32LE(l),p=this.renameRefSeq(s.toString("utf8",l+4,l+4+d-1)),b=s.readInt32LE(l+d+4);if(f[p]=h,c.push({refName:p,length:b}),l=l+8+d,l>s.length)return console.warn(`BAM header is very big. Re-fetching ${n} bytes.`),this._readRefSeqs(t,n*2,r)}return{chrToIndex:f,indexToChr:c}}async getRecordsForRange(t,n,r,i){return FO(this.streamRecordsForRange(t,n,r,i))}async*streamRecordsForRange(t,n,r,i){var a;await this.getHeader(i);const o=(a=this.chrToIndex)===null||a===void 0?void 0:a[t];if(o===void 0||!this.index)yield[];else{const s=await this.index.blocksForRange(o,n-1,r,i);yield*this._fetchChunkFeatures(s,o,n,r,i)}}async*_fetchChunkFeatures(t,n,r,i,a={}){const{viewAsPairs:o}=a,s=[];let u=!1;for(const l of t){const f=await this.featureCache.get(l.toString(),{chunk:l,opts:a},a.signal),c=[];for(const h of f)if(h.seq_id()===n)if(h.get("start")>=i){u=!0;break}else h.get("end")>=r&&c.push(h);if(s.push(c),yield c,u)break}yO(a.signal),o&&(yield this.fetchPairs(n,s,a))}async fetchPairs(t,n,r){const{pairAcrossChr:i,maxInsertSize:a=2e5}=r,o={},s={};n.map(h=>{const d={};for(const p of h){const b=p.name(),y=p.id();d[b]||(d[b]=0),d[b]++,s[y]=1}for(const[p,b]of Object.entries(d))b===1&&(o[p]=!0)});const u=[];n.map(h=>{for(const d of h){const p=d.name(),b=d.get("start"),y=d._next_pos(),w=d._next_refid();this.index&&o[p]&&(i||w===t&&Math.abs(b-y)<a)&&u.push(this.index.blocksForRange(w,y,y+1,r))}});const l=new Map,f=await Promise.all(u);for(const h of f.flat())l.has(h.toString())||l.set(h.toString(),h);return(await Promise.all([...l.values()].map(async h=>{const{data:d,cpositions:p,dpositions:b,chunk:y}=await this._readChunk({chunk:h,opts:r}),w=[];for(const A of await this.readBamFeatures(d,p,b,y))o[A.get("name")]&&!s[A.id()]&&w.push(A);return w}))).flat()}async _readRegion(t,n,r={}){const{bytesRead:i,buffer:a}=await this.bam.read(pe.Buffer.alloc(n),0,n,t,r);return a.subarray(0,Math.min(i,n))}async _readChunk({chunk:t,opts:n}){const r=await this._readRegion(t.minv.blockPosition,t.fetchedSize(),n),{buffer:i,cpositions:a,dpositions:o}=await dx(r,t);return{data:i,cpositions:a,dpositions:o,chunk:t}}async readBamFeatures(t,n,r,i){let a=0;const o=[];let s=0,u=+Date.now();for(;a+4<t.length;){const l=t.readInt32LE(a),f=a+4+l-1;if(r){for(;a+i.minv.dataPosition>=r[s++];);s--}if(f<t.length){const c=new V3({bytes:{byteArray:t,start:a,end:f},fileOffset:n.length>0?n[s]*256+(a-r[s])+i.minv.dataPosition+1:TO.signed(t.slice(a,f))});o.push(c),this.yieldThreadTime&&+Date.now()-u>this.yieldThreadTime&&(await mO(1),u=+Date.now())}a=f+1}return o}async hasRefSeq(t){var n,r;const i=(n=this.chrToIndex)===null||n===void 0?void 0:n[t];return i===void 0?!1:(r=this.index)===null||r===void 0?void 0:r.hasRefSeq(i)}async lineCount(t){var n;const r=(n=this.chrToIndex)===null||n===void 0?void 0:n[t];return r===void 0||!this.index?0:this.index.lineCount(r)}async indexCov(t,n,r){var i;if(!this.index)return[];await this.index.parse();const a=(i=this.chrToIndex)===null||i===void 0?void 0:i[t];return a===void 0?[]:this.index.indexCov(a,n,r)}async blocksForRange(t,n,r,i){var a;if(!this.index)return[];await this.index.parse();const o=(a=this.chrToIndex)===null||a===void 0?void 0:a[t];return o===void 0?[]:this.index.blocksForRange(o,n,r,i)}}async function Y3(e,t){const n=await Promise.all(e.map(async r=>{const{url:i,headers:a}=r;if(i.startsWith("data:"))return pe.Buffer.from(i.split(",")[1],"base64");{const{referer:o,...s}=a,u=await fetch(i,{...t,headers:{...t==null?void 0:t.headers,...s}});if(!u.ok)throw new Error(`HTTP ${u.status} fetching ${i}: ${await u.text()}`);return pe.Buffer.from(await u.arrayBuffer())}}));return pe.Buffer.concat(await Promise.all(n.map(r=>Jr(r))))}class MO extends W3{constructor(t){super({htsget:!0}),this.baseUrl=t.baseUrl,this.trackId=t.trackId}async*streamRecordsForRange(t,n,r,i){var a;const s=`${`${this.baseUrl}/${this.trackId}`}?referenceName=${t}&start=${n}&end=${r}&format=BAM`,u=(a=this.chrToIndex)===null||a===void 0?void 0:a[t];if(u===void 0)yield[];else{const l=await fetch(s,{...i});if(!l.ok)throw new Error(`HTTP ${l.status} fetching ${s}: ${await l.text()}`);const f=await l.json(),c=await Y3(f.htsget.urls.slice(1),i);yield*this._fetchChunkFeatures([{buffer:c,_fetchedSize:void 0,bin:0,compareTo(){return 0},toUniqueString(){return`${t}_${n}_${r}`},fetchedSize(){return 0},minv:{dataPosition:0,blockPosition:0,compareTo:()=>0},maxv:{dataPosition:Number.MAX_SAFE_INTEGER,blockPosition:0,compareTo:()=>0},toString(){return`${t}_${n}_${r}`}}],u,n,r,i)}}async _readChunk({chunk:t}){if(!t.buffer)throw new Error("expected chunk.buffer in htsget");return{data:t.buffer,cpositions:[],dpositions:[],chunk:t}}async getHeader(t={}){const n=`${this.baseUrl}/${this.trackId}?referenceName=na&class=header`,r=await fetch(n,t);if(!r.ok)throw new Error(`HTTP ${r.status} fetching ${n}: ${await r.text()}`);const i=await r.json(),a=await Y3(i.htsget.urls,t);if(a.readInt32LE(0)!==q3)throw new Error("Not a BAM file");const o=a.readInt32LE(4),s=a.toString("utf8",8,8+o),u=j3(s),l=[],f={},c=u.filter(h=>h.tag==="SQ");for(const[h,d]of c.entries()){let p="",b=0;for(const y of d.data)y.tag==="SN"?p=y.value:y.tag==="LN"&&(b=+y.value);f[p]=h,l[h]={refName:p,length:b}}return this.chrToIndex=f,this.indexToChr=l,u}}const PO=Object.freeze(Object.defineProperty({__proto__:null,BAI:xo,BamFile:W3,BamRecord:V3,CSI:Tc,HtsgetFile:MO},Symbol.toStringTag,{value:"Module"}));function Q3(e){if(e.greaterThan(Number.MAX_SAFE_INTEGER)||e.lessThan(Number.MIN_SAFE_INTEGER))throw new Error("integer overflow");return e.toNumber()}class LO extends Error{}function Ao(e){if(e&&e.aborted){if(typeof DOMException<"u")throw new DOMException("aborted","AbortError");{const t=new LO("aborted");throw t.code="ERR_ABORTED",t}}}function NO(e,t){return t.minv.blockPosition-e.maxv.blockPosition<65e3&&t.maxv.blockPosition-e.minv.blockPosition<5e6}function $3(e,t){const n=[];let r=null;return e.length===0?e:(e.sort(function(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):NO(r,i)?i.maxv.compareTo(r.maxv)>0&&(r.maxv=i.maxv):(n.push(i),r=i))}),n)}class ig{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 Eo(e,t=0,n=!1){if(n)throw new Error("big-endian virtual file offsets not implemented");return new ig(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 Ic{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+65536-this.minv.blockPosition}}class X3{constructor({filehandle:t,renameRefSeqs:n=r=>r}){this.filehandle=t,this.renameRefSeq=n}async getMetadata(t={}){const{indices:n,...r}=await this.parse(t);return r}_findFirstData(t,n){return t?t.compareTo(n)>0?n:t:n}async parse(t={}){return this.parseP||(this.parseP=this._parse(t).catch(n=>{throw this.parseP=void 0,n})),this.parseP}async hasRefSeq(t,n={}){var r;return!!(!((r=(await this.parse(n)).indices[t])===null||r===void 0)&&r.binIndex)}}const OO=21578324,K3=14;function zO(e,t){return e+=1,t-=1,[[0,0],[1+(e>>26),1+(t>>26)],[9+(e>>23),9+(t>>23)],[73+(e>>20),73+(t>>20)],[585+(e>>17),585+(t>>17)],[4681+(e>>14),4681+(t>>14)]]}class Bc extends X3{async lineCount(t,n={}){const r=await this.parse(n);if(!r)return-1;const i=r.refNameToId[t];if(!r.indices[i])return-1;const{stats:o}=r.indices[i];return o?o.lineCount:-1}async _parse(t={}){const n=await this.filehandle.readFile(t),r=await Jr(n);if(Ao(t.signal),r.readUInt32LE(0)!==OO)throw new Error("Not a TBI file");const i=r.readInt32LE(4),a=r.readInt32LE(8),o=a&65536?"zero-based-half-open":"1-based-closed",u={0:"generic",1:"SAM",2:"VCF"}[a&15];if(!u)throw new Error(`invalid Tabix preset format flags ${a}`);const l={ref:r.readInt32LE(12),start:r.readInt32LE(16),end:r.readInt32LE(20)},f=r.readInt32LE(24),c=5,h=((1<<(c+1)*3)-1)/7,d=2**(14+c*3),p=f?String.fromCharCode(f):null,b=r.readInt32LE(28),y=r.readInt32LE(32),{refNameToId:w,refIdToName:A}=this._parseNameBytes(r.slice(36,36+y));let S=36+y,_;return{indices:new Array(i).fill(0).map(()=>{const I=r.readInt32LE(S);S+=4;const B={};let R;for(let M=0;M<I;M+=1){const ie=r.readUInt32LE(S);if(S+=4,ie>h+1)throw new Error("tabix index contains too many bins, please use a CSI index");if(ie===h+1){const se=r.readInt32LE(S);S+=4,se===2&&(R=this.parsePseudoBin(r,S)),S+=16*se}else{const se=r.readInt32LE(S);S+=4;const ge=new Array(se);for(let Ie=0;Ie<se;Ie+=1){const $e=Eo(r,S),De=Eo(r,S+8);S+=16,_=this._findFirstData(_,$e),ge[Ie]=new Ic($e,De,ie)}B[ie]=ge}}const L=r.readInt32LE(S);S+=4;const j=new Array(L);for(let M=0;M<L;M+=1)j[M]=Eo(r,S),S+=8,_=this._findFirstData(_,j[M]);return{binIndex:B,linearIndex:j,stats:R}}),metaChar:p,maxBinNumber:h,maxRefLength:d,skipLines:b,firstDataLine:_,columnNumbers:l,coordinateType:o,format:u,refIdToName:A,refNameToId:w,maxBlockSize:65536}}parsePseudoBin(t,n){return{lineCount:Q3(nc.fromBytesLE(t.slice(n+16,n+24),!0))}}_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 blocksForRange(t,n,r,i={}){n<0&&(n=0);const a=await this.parse(i);if(!a)return[];const o=a.refNameToId[t],s=a.indices[o];if(!s)return[];(s.linearIndex.length?s.linearIndex[n>>K3>=s.linearIndex.length?s.linearIndex.length-1:n>>K3]:new ig(0,0))||console.warn("querying outside of possible tabix range");const l=zO(n,r),f=[];for(const[b,y]of l)for(let w=b;w<=y;w++)if(s.binIndex[w])for(const A of s.binIndex[w])f.push(new Ic(A.minv,A.maxv,w));const c=s.linearIndex.length;let h=null;const d=Math.min(n>>14,c-1),p=Math.min(r>>14,c-1);for(let b=d;b<=p;++b){const y=s.linearIndex[b];y&&(!h||y.compareTo(h)<0)&&(h=y)}return $3(f,h)}}const UO=21582659,GO=38359875;function HO(e,t){return e*2**t}function J3(e,t){return Math.floor(e/2**t)}class ag extends X3{constructor(t){super(t),this.maxBinNumber=0,this.depth=0,this.minShift=0}async lineCount(t,n={}){const r=await this.parse(n);if(!r)return-1;const i=r.refNameToId[t];if(!r.indices[i])return-1;const{stats:o}=r.indices[i];return o?o.lineCount:-1}indexCov(){throw new Error("CSI indexes do not support indexcov")}parseAuxData(t,n){const r=t.readInt32LE(n),i=r&65536?"zero-based-half-open":"1-based-closed",a={0:"generic",1:"SAM",2:"VCF"}[r&15];if(!a)throw new Error(`invalid Tabix preset format flags ${r}`);const o={ref:t.readInt32LE(n+4),start:t.readInt32LE(n+8),end:t.readInt32LE(n+12)},s=t.readInt32LE(n+16),u=s?String.fromCharCode(s):null,l=t.readInt32LE(n+20),f=t.readInt32LE(n+24),{refIdToName:c,refNameToId:h}=this._parseNameBytes(t.slice(n+28,n+28+f));return{refIdToName:c,refNameToId:h,skipLines:l,metaChar:u,columnNumbers:o,format:a,coordinateType: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=await Jr(await this.filehandle.readFile(t));let r;if(n.readUInt32LE(0)===UO)r=1;else if(n.readUInt32LE(0)===GO)r=2;else throw new Error("Not a CSI file");this.minShift=n.readInt32LE(4),this.depth=n.readInt32LE(8),this.maxBinNumber=((1<<(this.depth+1)*3)-1)/7;const i=2**(this.minShift+this.depth*3),a=n.readInt32LE(12),o=a&&a>=30?this.parseAuxData(n,16):{refIdToName:[],refNameToId:{},metaChar:null,columnNumbers:{ref:0,start:1,end:2},coordinateType:"zero-based-half-open",format:"generic"},s=n.readInt32LE(16+a);let u,l=16+a+4;const f=new Array(s).fill(0).map(()=>{const c=n.readInt32LE(l);l+=4;const h={};let d;for(let p=0;p<c;p+=1){const b=n.readUInt32LE(l);if(b>this.maxBinNumber)d=this.parsePseudoBin(n,l+4),l+=4+8+4+16+16;else{const y=Eo(n,l+4);u=this._findFirstData(u,y);const w=n.readInt32LE(l+12);l+=16;const A=new Array(w);for(let S=0;S<w;S+=1){const _=Eo(n,l),T=Eo(n,l+8);l+=16,A[S]=new Ic(_,T,b)}h[b]=A}}return{binIndex:h,stats:d}});return{...o,csi:!0,refCount:s,maxBlockSize:65536,firstDataLine:u,csiVersion:r,indices:f,depth:this.depth,maxBinNumber:this.maxBinNumber,maxRefLength:i}}parsePseudoBin(t,n){return{lineCount:Q3(nc.fromBytesLE(t.slice(n+28,n+36),!0))}}async blocksForRange(t,n,r,i={}){n<0&&(n=0);const a=await this.parse(i);if(!a)return[];const o=a.refNameToId[t],s=a.indices[o];if(!s)return[];const u=this.reg2bins(n,r),l=[];for(const[f,c]of u)for(let h=f;h<=c;h++)if(s.binIndex[h])for(const d of s.binIndex[h])l.push(new Ic(d.minv,d.maxv,h));return $3(l,new ig(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+=HO(1,r*3),r+=1){const s=i+J3(t,a),u=i+J3(n,a);if(u-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,u])}return o}}const og=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0;function VO(e){return new Promise(t=>setTimeout(t,e))}class jO{constructor({path:t,filehandle:n,tbiPath:r,tbiFilehandle:i,csiPath:a,csiFilehandle:o,yieldTime:s=500,chunkSizeLimit:u=5e7,renameRefSeqs:l=c=>c,chunkCacheSize:f=5*2**20}){if(n)this.filehandle=n;else if(t)this.filehandle=new ht(t);else throw new TypeError("must provide either filehandle or path");if(i)this.index=new Bc({filehandle:i,renameRefSeqs:l});else if(o)this.index=new ag({filehandle:o,renameRefSeqs:l});else if(r)this.index=new Bc({filehandle:new ht(r),renameRefSeqs:l});else if(a)this.index=new ag({filehandle:new ht(a),renameRefSeqs:l});else if(t)this.index=new Bc({filehandle:new ht(`${t}.tbi`),renameRefSeqs:l});else throw new TypeError("must provide one of tbiFilehandle, tbiPath, csiFilehandle, or csiPath");this.chunkSizeLimit=u,this.renameRefSeq=l,this.yieldTime=s,this.chunkCache=new fc({cache:new cc({maxSize:Math.floor(f/65536)}),fill:(c,h)=>this.readChunk(c,{signal:h})})}async getLines(t,n,r,i){var a;let o,s={},u;if(i===void 0)throw new TypeError("line callback must be provided");if(typeof i=="function"?u=i:(s=i,u=i.lineCallback,o=i.signal),t===void 0)throw new TypeError("must provide a reference sequence name");if(!u)throw new TypeError("line callback must be provided");const l=await this.index.getMetadata(s);Ao(o);const f=n??0,c=r??l.maxRefLength;if(!(f<=c))throw new TypeError("invalid start and end coordinates. start must be less than or equal to end");if(f===c)return;const h=await this.index.blocksForRange(t,f,c,s);Ao(o);for(const p of h){const b=p.fetchedSize();if(b>this.chunkSizeLimit)throw new Error(`Too much data. Chunk size ${b.toLocaleString()} bytes exceeds chunkSizeLimit of ${this.chunkSizeLimit.toLocaleString()}.`)}let d=Date.now();for(const p of h){let b;const{buffer:y,cpositions:w,dpositions:A}=await this.chunkCache.get(p.toString(),p,o);Ao(o);let S=0,_=0;for(;S<y.length;){const T=y.indexOf(`
|
|
503
|
-
`,S);if(T===-1)break;const I=y.slice(S,T),B=(a=
|
|
504
|
-
`.charCodeAt(0),f=r.charCodeAt(0);for(let c=0;c<s.length&&!(c===u+1&&s[c]!==f);c+=1)s[c]===l&&(u=c);return s.slice(0,u+1)}return s}async getHeader(t={}){return(await this.getHeaderBuffer(t)).toString("utf8")}async getReferenceSequenceNames(t={}){return(await this.getMetadata(t)).refIdToName}checkLine(t,n,r,i,a){const{columnNumbers:o,metaChar:s,coordinateType:u,format:l}=t;if(s&&a.startsWith(s))return{overlaps:!1};let{ref:f,start:c,end:h}=o;f||(f=0),c||(c=0),h||(h=0),l==="VCF"&&(h=8);const d=Math.max(f,c,h);let p=1,b=0,y="",w=-1/0;for(let A=0;A<a.length+1;A+=1)if(a[A]===" "||A===a.length){if(p===f){if(this.renameRefSeq(a.slice(b,A))!==n)return{overlaps:!1}}else if(p===c){if(w=parseInt(a.slice(b,A),10),u==="1-based-closed"&&(w-=1),w>=i)return{startCoordinate:w,overlaps:!1};if((h===0||h===c)&&w+1<=r)return{startCoordinate:w,overlaps:!1}}else if(l==="VCF"&&p===4)y=a.slice(b,A);else if(p===h&&(l==="VCF"?this._getVcfEnd(w,y,a.slice(b,A)):parseInt(a.slice(b,A),10))<=r)return{overlaps:!1};if(b=A+1,p+=1,p>d)break}return{startCoordinate:w,overlaps:!0}}_getVcfEnd(t,n,r){let i=t+n.length;const a=r.includes("SVTYPE=TRA");if(r[0]!=="."&&!a){let o=";";for(let s=0;s<r.length;s+=1){if(o===";"&&r.slice(s,s+4)==="END="){let u=r.indexOf(";",s);u===-1&&(u=r.length),i=parseInt(r.slice(s+4,u),10);break}o=r[s]}}else if(a)return t+1;return i}async lineCount(t,n={}){return this.index.lineCount(t,n)}async _readRegion(t,n,r={}){const i=pe.Buffer.alloc(n),{bytesRead:a,buffer:o}=await this.filehandle.read(i,0,n,t,r);return o.slice(0,a)}async readChunk(t,n={}){const r=await this._readRegion(t.minv.blockPosition,t.fetchedSize(),n);return dx(r,t)}}const qO=Object.freeze(Object.defineProperty({__proto__:null,CSI:ag,TBI:Bc,TabixIndexedFile:jO},Symbol.toStringTag,{value:"Module"}));var sg={exports:{}},_o=typeof Reflect=="object"?Reflect:null,eE=_o&&typeof _o.apply=="function"?_o.apply:function(t,n,r){return Function.prototype.apply.call(t,n,r)},Dc;_o&&typeof _o.ownKeys=="function"?Dc=_o.ownKeys:Object.getOwnPropertySymbols?Dc=function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:Dc=function(t){return Object.getOwnPropertyNames(t)};function ZO(e){console&&console.warn&&console.warn(e)}var tE=Number.isNaN||function(t){return t!==t};function Be(){Be.init.call(this)}sg.exports=Be,sg.exports.once=$O,Be.EventEmitter=Be,Be.prototype._events=void 0,Be.prototype._eventsCount=0,Be.prototype._maxListeners=void 0;var nE=10;function Fc(e){if(typeof e!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}Object.defineProperty(Be,"defaultMaxListeners",{enumerable:!0,get:function(){return nE},set:function(e){if(typeof e!="number"||e<0||tE(e))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+e+".");nE=e}}),Be.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},Be.prototype.setMaxListeners=function(t){if(typeof t!="number"||t<0||tE(t))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+t+".");return this._maxListeners=t,this};function rE(e){return e._maxListeners===void 0?Be.defaultMaxListeners:e._maxListeners}Be.prototype.getMaxListeners=function(){return rE(this)},Be.prototype.emit=function(t){for(var n=[],r=1;r<arguments.length;r++)n.push(arguments[r]);var i=t==="error",a=this._events;if(a!==void 0)i=i&&a.error===void 0;else if(!i)return!1;if(i){var o;if(n.length>0&&(o=n[0]),o instanceof Error)throw o;var s=new Error("Unhandled error."+(o?" ("+o.message+")":""));throw s.context=o,s}var u=a[t];if(u===void 0)return!1;if(typeof u=="function")eE(u,this,n);else for(var l=u.length,f=lE(u,l),r=0;r<l;++r)eE(f[r],this,n);return!0};function iE(e,t,n,r){var i,a,o;if(Fc(n),a=e._events,a===void 0?(a=e._events=Object.create(null),e._eventsCount=0):(a.newListener!==void 0&&(e.emit("newListener",t,n.listener?n.listener:n),a=e._events),o=a[t]),o===void 0)o=a[t]=n,++e._eventsCount;else if(typeof o=="function"?o=a[t]=r?[n,o]:[o,n]:r?o.unshift(n):o.push(n),i=rE(e),i>0&&o.length>i&&!o.warned){o.warned=!0;var s=new Error("Possible EventEmitter memory leak detected. "+o.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");s.name="MaxListenersExceededWarning",s.emitter=e,s.type=t,s.count=o.length,ZO(s)}return e}Be.prototype.addListener=function(t,n){return iE(this,t,n,!1)},Be.prototype.on=Be.prototype.addListener,Be.prototype.prependListener=function(t,n){return iE(this,t,n,!0)};function WO(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function aE(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},i=WO.bind(r);return i.listener=n,r.wrapFn=i,i}Be.prototype.once=function(t,n){return Fc(n),this.on(t,aE(this,t,n)),this},Be.prototype.prependOnceListener=function(t,n){return Fc(n),this.prependListener(t,aE(this,t,n)),this},Be.prototype.removeListener=function(t,n){var r,i,a,o,s;if(Fc(n),i=this._events,i===void 0)return this;if(r=i[t],r===void 0)return this;if(r===n||r.listener===n)--this._eventsCount===0?this._events=Object.create(null):(delete i[t],i.removeListener&&this.emit("removeListener",t,r.listener||n));else if(typeof r!="function"){for(a=-1,o=r.length-1;o>=0;o--)if(r[o]===n||r[o].listener===n){s=r[o].listener,a=o;break}if(a<0)return this;a===0?r.shift():YO(r,a),r.length===1&&(i[t]=r[0]),i.removeListener!==void 0&&this.emit("removeListener",t,s||n)}return this},Be.prototype.off=Be.prototype.removeListener,Be.prototype.removeAllListeners=function(t){var n,r,i;if(r=this._events,r===void 0)return this;if(r.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):r[t]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete r[t]),this;if(arguments.length===0){var a=Object.keys(r),o;for(i=0;i<a.length;++i)o=a[i],o!=="removeListener"&&this.removeAllListeners(o);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if(n=r[t],typeof n=="function")this.removeListener(t,n);else if(n!==void 0)for(i=n.length-1;i>=0;i--)this.removeListener(t,n[i]);return this};function oE(e,t,n){var r=e._events;if(r===void 0)return[];var i=r[t];return i===void 0?[]:typeof i=="function"?n?[i.listener||i]:[i]:n?QO(i):lE(i,i.length)}Be.prototype.listeners=function(t){return oE(this,t,!0)},Be.prototype.rawListeners=function(t){return oE(this,t,!1)},Be.listenerCount=function(e,t){return typeof e.listenerCount=="function"?e.listenerCount(t):sE.call(e,t)},Be.prototype.listenerCount=sE;function sE(e){var t=this._events;if(t!==void 0){var n=t[e];if(typeof n=="function")return 1;if(n!==void 0)return n.length}return 0}Be.prototype.eventNames=function(){return this._eventsCount>0?Dc(this._events):[]};function lE(e,t){for(var n=new Array(t),r=0;r<t;++r)n[r]=e[r];return n}function YO(e,t){for(;t+1<e.length;t++)e[t]=e[t+1];e.pop()}function QO(e){for(var t=new Array(e.length),n=0;n<t.length;++n)t[n]=e[n].listener||e[n];return t}function $O(e,t){return new Promise(function(n,r){function i(o){e.removeListener(t,a),r(o)}function a(){typeof e.removeListener=="function"&&e.removeListener("error",i),n([].slice.call(arguments))}uE(e,t,a,{once:!0}),t!=="error"&&XO(e,i,{once:!0})})}function XO(e,t,n){typeof e.on=="function"&&uE(e,"error",t,n)}function uE(e,t,n,r){if(typeof e.on=="function")r.once?e.once(t,n):e.on(t,n);else if(typeof e.addEventListener=="function")e.addEventListener(t,function i(a){r.once&&e.removeEventListener(t,i),n(a)});else throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof e)}var lg=sg.exports,ug={exports:{}};typeof Object.create=="function"?ug.exports=function(t,n){n&&(t.super_=n,t.prototype=Object.create(n.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}))}:ug.exports=function(t,n){if(n){t.super_=n;var r=function(){};r.prototype=n.prototype,t.prototype=new r,t.prototype.constructor=t}};var So=ug.exports,fg,fE;function cE(){return fE||(fE=1,fg=lg.EventEmitter),fg}const hE=fR(wR);var cg,dE;function KO(){if(dE)return cg;dE=1;function e(p,b){var y=Object.keys(p);if(Object.getOwnPropertySymbols){var w=Object.getOwnPropertySymbols(p);b&&(w=w.filter(function(A){return Object.getOwnPropertyDescriptor(p,A).enumerable})),y.push.apply(y,w)}return y}function t(p){for(var b=1;b<arguments.length;b++){var y=arguments[b]!=null?arguments[b]:{};b%2?e(Object(y),!0).forEach(function(w){n(p,w,y[w])}):Object.getOwnPropertyDescriptors?Object.defineProperties(p,Object.getOwnPropertyDescriptors(y)):e(Object(y)).forEach(function(w){Object.defineProperty(p,w,Object.getOwnPropertyDescriptor(y,w))})}return p}function n(p,b,y){return b=o(b),b in p?Object.defineProperty(p,b,{value:y,enumerable:!0,configurable:!0,writable:!0}):p[b]=y,p}function r(p,b){if(!(p instanceof b))throw new TypeError("Cannot call a class as a function")}function i(p,b){for(var y=0;y<b.length;y++){var w=b[y];w.enumerable=w.enumerable||!1,w.configurable=!0,"value"in w&&(w.writable=!0),Object.defineProperty(p,o(w.key),w)}}function a(p,b,y){return b&&i(p.prototype,b),y&&i(p,y),Object.defineProperty(p,"prototype",{writable:!1}),p}function o(p){var b=s(p,"string");return typeof b=="symbol"?b:String(b)}function s(p,b){if(typeof p!="object"||p===null)return p;var y=p[Symbol.toPrimitive];if(y!==void 0){var w=y.call(p,b||"default");if(typeof w!="object")return w;throw new TypeError("@@toPrimitive must return a primitive value.")}return(b==="string"?String:Number)(p)}var u=pe,l=u.Buffer,f=hE,c=f.inspect,h=c&&c.custom||"inspect";function d(p,b,y){l.prototype.copy.call(p,b,y)}return cg=function(){function p(){r(this,p),this.head=null,this.tail=null,this.length=0}return a(p,[{key:"push",value:function(y){var w={data:y,next:null};this.length>0?this.tail.next=w:this.head=w,this.tail=w,++this.length}},{key:"unshift",value:function(y){var w={data:y,next:this.head};this.length===0&&(this.tail=w),this.head=w,++this.length}},{key:"shift",value:function(){if(this.length!==0){var y=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,y}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(y){if(this.length===0)return"";for(var w=this.head,A=""+w.data;w=w.next;)A+=y+w.data;return A}},{key:"concat",value:function(y){if(this.length===0)return l.alloc(0);for(var w=l.allocUnsafe(y>>>0),A=this.head,S=0;A;)d(A.data,w,S),S+=A.data.length,A=A.next;return w}},{key:"consume",value:function(y,w){var A;return y<this.head.data.length?(A=this.head.data.slice(0,y),this.head.data=this.head.data.slice(y)):y===this.head.data.length?A=this.shift():A=w?this._getString(y):this._getBuffer(y),A}},{key:"first",value:function(){return this.head.data}},{key:"_getString",value:function(y){var w=this.head,A=1,S=w.data;for(y-=S.length;w=w.next;){var _=w.data,T=y>_.length?_.length:y;if(T===_.length?S+=_:S+=_.slice(0,y),y-=T,y===0){T===_.length?(++A,w.next?this.head=w.next:this.head=this.tail=null):(this.head=w,w.data=_.slice(T));break}++A}return this.length-=A,S}},{key:"_getBuffer",value:function(y){var w=l.allocUnsafe(y),A=this.head,S=1;for(A.data.copy(w),y-=A.data.length;A=A.next;){var _=A.data,T=y>_.length?_.length:y;if(_.copy(w,w.length-y,0,T),y-=T,y===0){T===_.length?(++S,A.next?this.head=A.next:this.head=this.tail=null):(this.head=A,A.data=_.slice(T));break}++S}return this.length-=S,w}},{key:h,value:function(y,w){return c(this,t(t({},w),{},{depth:0,customInspect:!1}))}}]),p}(),cg}var hg,pE;function gE(){if(pE)return hg;pE=1;function e(o,s){var u=this,l=this._readableState&&this._readableState.destroyed,f=this._writableState&&this._writableState.destroyed;return l||f?(s?s(o):o&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,process.nextTick(i,this,o)):process.nextTick(i,this,o)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(o||null,function(c){!s&&c?u._writableState?u._writableState.errorEmitted?process.nextTick(n,u):(u._writableState.errorEmitted=!0,process.nextTick(t,u,c)):process.nextTick(t,u,c):s?(process.nextTick(n,u),s(c)):process.nextTick(n,u)}),this)}function t(o,s){i(o,s),n(o)}function n(o){o._writableState&&!o._writableState.emitClose||o._readableState&&!o._readableState.emitClose||o.emit("close")}function r(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function i(o,s){o.emit("error",s)}function a(o,s){var u=o._readableState,l=o._writableState;u&&u.autoDestroy||l&&l.autoDestroy?o.destroy(s):o.emit("error",s)}return hg={destroy:e,undestroy:r,errorOrDestroy:a},hg}var dg={},mE;function Co(){if(mE)return dg;mE=1;function e(s,u){s.prototype=Object.create(u.prototype),s.prototype.constructor=s,s.__proto__=u}var t={};function n(s,u,l){l||(l=Error);function f(h,d,p){return typeof u=="string"?u:u(h,d,p)}var c=function(h){e(d,h);function d(p,b,y){return h.call(this,f(p,b,y))||this}return d}(l);c.prototype.name=l.name,c.prototype.code=s,t[s]=c}function r(s,u){if(Array.isArray(s)){var l=s.length;return s=s.map(function(f){return String(f)}),l>2?"one of ".concat(u," ").concat(s.slice(0,l-1).join(", "),", or ")+s[l-1]:l===2?"one of ".concat(u," ").concat(s[0]," or ").concat(s[1]):"of ".concat(u," ").concat(s[0])}else return"of ".concat(u," ").concat(String(s))}function i(s,u,l){return s.substr(!l||l<0?0:+l,u.length)===u}function a(s,u,l){return(l===void 0||l>s.length)&&(l=s.length),s.substring(l-u.length,l)===u}function o(s,u,l){return typeof l!="number"&&(l=0),l+u.length>s.length?!1:s.indexOf(u,l)!==-1}return n("ERR_INVALID_OPT_VALUE",function(s,u){return'The value "'+u+'" is invalid for option "'+s+'"'},TypeError),n("ERR_INVALID_ARG_TYPE",function(s,u,l){var f;typeof u=="string"&&i(u,"not ")?(f="must not be",u=u.replace(/^not /,"")):f="must be";var c;if(a(s," argument"))c="The ".concat(s," ").concat(f," ").concat(r(u,"type"));else{var h=o(s,".")?"property":"argument";c='The "'.concat(s,'" ').concat(h," ").concat(f," ").concat(r(u,"type"))}return c+=". Received type ".concat(typeof l),c},TypeError),n("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),n("ERR_METHOD_NOT_IMPLEMENTED",function(s){return"The "+s+" method is not implemented"}),n("ERR_STREAM_PREMATURE_CLOSE","Premature close"),n("ERR_STREAM_DESTROYED",function(s){return"Cannot call "+s+" after a stream was destroyed"}),n("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),n("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),n("ERR_STREAM_WRITE_AFTER_END","write after end"),n("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),n("ERR_UNKNOWN_ENCODING",function(s){return"Unknown encoding: "+s},TypeError),n("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),dg.codes=t,dg}var pg,bE;function yE(){if(bE)return pg;bE=1;var e=Co().codes.ERR_INVALID_OPT_VALUE;function t(r,i,a){return r.highWaterMark!=null?r.highWaterMark:i?r[a]:null}function n(r,i,a,o){var s=t(i,o,a);if(s!=null){if(!(isFinite(s)&&Math.floor(s)===s)||s<0){var u=o?a:"highWaterMark";throw new e(u,s)}return Math.floor(s)}return r.objectMode?16:16*1024}return pg={getHighWaterMark:n},pg}var gg,wE;function JO(){if(wE)return gg;wE=1,gg=e;function e(n,r){if(t("noDeprecation"))return n;var i=!1;function a(){if(!i){if(t("throwDeprecation"))throw new Error(r);t("traceDeprecation")?console.trace(r):console.warn(r),i=!0}return n.apply(this,arguments)}return a}function t(n){try{if(!globalThis.localStorage)return!1}catch{return!1}var r=globalThis.localStorage[n];return r==null?!1:String(r).toLowerCase()==="true"}return gg}var mg,vE;function xE(){if(vE)return mg;vE=1,mg=R;function e(N){var P=this;this.next=null,this.entry=null,this.finish=function(){Oe(P,N)}}var t;R.WritableState=I;var n={deprecate:JO()},r=cE(),i=pe.Buffer,a=(typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function o(N){return i.from(N)}function s(N){return i.isBuffer(N)||N instanceof a}var u=gE(),l=yE(),f=l.getHighWaterMark,c=Co().codes,h=c.ERR_INVALID_ARG_TYPE,d=c.ERR_METHOD_NOT_IMPLEMENTED,p=c.ERR_MULTIPLE_CALLBACK,b=c.ERR_STREAM_CANNOT_PIPE,y=c.ERR_STREAM_DESTROYED,w=c.ERR_STREAM_NULL_VALUES,A=c.ERR_STREAM_WRITE_AFTER_END,S=c.ERR_UNKNOWN_ENCODING,_=u.errorOrDestroy;So(R,r);function T(){}function I(N,P,q){t=t||ko(),N=N||{},typeof q!="boolean"&&(q=P instanceof t),this.objectMode=!!N.objectMode,q&&(this.objectMode=this.objectMode||!!N.writableObjectMode),this.highWaterMark=f(this,N,"writableHighWaterMark",q),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var H=N.decodeStrings===!1;this.decodeStrings=!H,this.defaultEncoding=N.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(Y){$e(P,Y)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=N.emitClose!==!1,this.autoDestroy=!!N.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new e(this)}I.prototype.getBuffer=function(){for(var P=this.bufferedRequest,q=[];P;)q.push(P),P=P.next;return q},function(){try{Object.defineProperty(I.prototype,"buffer",{get:n.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}}();var B;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(B=Function.prototype[Symbol.hasInstance],Object.defineProperty(R,Symbol.hasInstance,{value:function(P){return B.call(this,P)?!0:this!==R?!1:P&&P._writableState instanceof I}})):B=function(P){return P instanceof this};function R(N){t=t||ko();var P=this instanceof t;if(!P&&!B.call(R,this))return new R(N);this._writableState=new I(N,this,P),this.writable=!0,N&&(typeof N.write=="function"&&(this._write=N.write),typeof N.writev=="function"&&(this._writev=N.writev),typeof N.destroy=="function"&&(this._destroy=N.destroy),typeof N.final=="function"&&(this._final=N.final)),r.call(this)}R.prototype.pipe=function(){_(this,new b)};function L(N,P){var q=new A;_(N,q),process.nextTick(P,q)}function j(N,P,q,H){var Y;return q===null?Y=new w:typeof q!="string"&&!P.objectMode&&(Y=new h("chunk",["string","Buffer"],q)),Y?(_(N,Y),process.nextTick(H,Y),!1):!0}R.prototype.write=function(N,P,q){var H=this._writableState,Y=!1,C=!H.objectMode&&s(N);return C&&!i.isBuffer(N)&&(N=o(N)),typeof P=="function"&&(q=P,P=null),C?P="buffer":P||(P=H.defaultEncoding),typeof q!="function"&&(q=T),H.ending?L(this,q):(C||j(this,H,N,q))&&(H.pendingcb++,Y=ie(this,H,C,N,P,q)),Y},R.prototype.cork=function(){this._writableState.corked++},R.prototype.uncork=function(){var N=this._writableState;N.corked&&(N.corked--,!N.writing&&!N.corked&&!N.bufferProcessing&&N.bufferedRequest&&Ze(this,N))},R.prototype.setDefaultEncoding=function(P){if(typeof P=="string"&&(P=P.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((P+"").toLowerCase())>-1))throw new S(P);return this._writableState.defaultEncoding=P,this},Object.defineProperty(R.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});function M(N,P,q){return!N.objectMode&&N.decodeStrings!==!1&&typeof P=="string"&&(P=i.from(P,q)),P}Object.defineProperty(R.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function ie(N,P,q,H,Y,C){if(!q){var x=M(P,H,Y);H!==x&&(q=!0,Y="buffer",H=x)}var G=P.objectMode?1:H.length;P.length+=G;var Z=P.length<P.highWaterMark;if(Z||(P.needDrain=!0),P.writing||P.corked){var le=P.lastBufferedRequest;P.lastBufferedRequest={chunk:H,encoding:Y,isBuf:q,callback:C,next:null},le?le.next=P.lastBufferedRequest:P.bufferedRequest=P.lastBufferedRequest,P.bufferedRequestCount+=1}else se(N,P,!1,G,H,Y,C);return Z}function se(N,P,q,H,Y,C,x){P.writelen=H,P.writecb=x,P.writing=!0,P.sync=!0,P.destroyed?P.onwrite(new y("write")):q?N._writev(Y,P.onwrite):N._write(Y,C,P.onwrite),P.sync=!1}function ge(N,P,q,H,Y){--P.pendingcb,q?(process.nextTick(Y,H),process.nextTick(pt,N,P),N._writableState.errorEmitted=!0,_(N,H)):(Y(H),N._writableState.errorEmitted=!0,_(N,H),pt(N,P))}function Ie(N){N.writing=!1,N.writecb=null,N.length-=N.writelen,N.writelen=0}function $e(N,P){var q=N._writableState,H=q.sync,Y=q.writecb;if(typeof Y!="function")throw new p;if(Ie(q),P)ge(N,q,H,P,Y);else{var C=Je(q)||N.destroyed;!C&&!q.corked&&!q.bufferProcessing&&q.bufferedRequest&&Ze(N,q),H?process.nextTick(De,N,q,C,Y):De(N,q,C,Y)}}function De(N,P,q,H){q||Ke(N,P),P.pendingcb--,H(),pt(N,P)}function Ke(N,P){P.length===0&&P.needDrain&&(P.needDrain=!1,N.emit("drain"))}function Ze(N,P){P.bufferProcessing=!0;var q=P.bufferedRequest;if(N._writev&&q&&q.next){var H=P.bufferedRequestCount,Y=new Array(H),C=P.corkedRequestsFree;C.entry=q;for(var x=0,G=!0;q;)Y[x]=q,q.isBuf||(G=!1),q=q.next,x+=1;Y.allBuffers=G,se(N,P,!0,P.length,Y,"",C.finish),P.pendingcb++,P.lastBufferedRequest=null,C.next?(P.corkedRequestsFree=C.next,C.next=null):P.corkedRequestsFree=new e(P),P.bufferedRequestCount=0}else{for(;q;){var Z=q.chunk,le=q.encoding,J=q.callback,ue=P.objectMode?1:Z.length;if(se(N,P,!1,ue,Z,le,J),q=q.next,P.bufferedRequestCount--,P.writing)break}q===null&&(P.lastBufferedRequest=null)}P.bufferedRequest=q,P.bufferProcessing=!1}R.prototype._write=function(N,P,q){q(new d("_write()"))},R.prototype._writev=null,R.prototype.end=function(N,P,q){var H=this._writableState;return typeof N=="function"?(q=N,N=null,P=null):typeof P=="function"&&(q=P,P=null),N!=null&&this.write(N,P),H.corked&&(H.corked=1,this.uncork()),H.ending||qt(this,H,q),this},Object.defineProperty(R.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}});function Je(N){return N.ending&&N.length===0&&N.bufferedRequest===null&&!N.finished&&!N.writing}function Ee(N,P){N._final(function(q){P.pendingcb--,q&&_(N,q),P.prefinished=!0,N.emit("prefinish"),pt(N,P)})}function _e(N,P){!P.prefinished&&!P.finalCalled&&(typeof N._final=="function"&&!P.destroyed?(P.pendingcb++,P.finalCalled=!0,process.nextTick(Ee,N,P)):(P.prefinished=!0,N.emit("prefinish")))}function pt(N,P){var q=Je(P);if(q&&(_e(N,P),P.pendingcb===0&&(P.finished=!0,N.emit("finish"),P.autoDestroy))){var H=N._readableState;(!H||H.autoDestroy&&H.endEmitted)&&N.destroy()}return q}function qt(N,P,q){P.ending=!0,pt(N,P),q&&(P.finished?process.nextTick(q):N.once("finish",q)),P.ended=!0,N.writable=!1}function Oe(N,P,q){var H=N.entry;for(N.entry=null;H;){var Y=H.callback;P.pendingcb--,Y(q),H=H.next}P.corkedRequestsFree.next=N}return Object.defineProperty(R.prototype,"destroyed",{enumerable:!1,get:function(){return this._writableState===void 0?!1:this._writableState.destroyed},set:function(P){this._writableState&&(this._writableState.destroyed=P)}}),R.prototype.destroy=u.destroy,R.prototype._undestroy=u.undestroy,R.prototype._destroy=function(N,P){P(N)},mg}var bg,AE;function ko(){if(AE)return bg;AE=1;var e=Object.keys||function(l){var f=[];for(var c in l)f.push(c);return f};bg=o;var t=TE(),n=xE();So(o,t);for(var r=e(n.prototype),i=0;i<r.length;i++){var a=r[i];o.prototype[a]||(o.prototype[a]=n.prototype[a])}function o(l){if(!(this instanceof o))return new o(l);t.call(this,l),n.call(this,l),this.allowHalfOpen=!0,l&&(l.readable===!1&&(this.readable=!1),l.writable===!1&&(this.writable=!1),l.allowHalfOpen===!1&&(this.allowHalfOpen=!1,this.once("end",s)))}Object.defineProperty(o.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),Object.defineProperty(o.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(o.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}});function s(){this._writableState.ended||process.nextTick(u,this)}function u(l){l.end()}return Object.defineProperty(o.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0||this._writableState===void 0?!1:this._readableState.destroyed&&this._writableState.destroyed},set:function(f){this._readableState===void 0||this._writableState===void 0||(this._readableState.destroyed=f,this._writableState.destroyed=f)}}),bg}var yg={},wg={exports:{}};(function(e,t){var n=pe,r=n.Buffer;function i(o,s){for(var u in o)s[u]=o[u]}r.from&&r.alloc&&r.allocUnsafe&&r.allocUnsafeSlow?e.exports=n:(i(n,t),t.Buffer=a);function a(o,s,u){return r(o,s,u)}i(r,a),a.from=function(o,s,u){if(typeof o=="number")throw new TypeError("Argument must not be a number");return r(o,s,u)},a.alloc=function(o,s,u){if(typeof o!="number")throw new TypeError("Argument must be a number");var l=r(o);return s!==void 0?typeof u=="string"?l.fill(s,u):l.fill(s):l.fill(0),l},a.allocUnsafe=function(o){if(typeof o!="number")throw new TypeError("Argument must be a number");return r(o)},a.allocUnsafeSlow=function(o){if(typeof o!="number")throw new TypeError("Argument must be a number");return n.SlowBuffer(o)}})(wg,wg.exports);var ez=wg.exports,vg=ez.Buffer,EE=vg.isEncoding||function(e){switch(e=""+e,e&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function tz(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}function nz(e){var t=tz(e);if(typeof t!="string"&&(vg.isEncoding===EE||!EE(e)))throw new Error("Unknown encoding: "+e);return t||e}var rz=yg.StringDecoder=Ol;function Ol(e){this.encoding=nz(e);var t;switch(this.encoding){case"utf16le":this.text=uz,this.end=fz,t=4;break;case"utf8":this.fillLast=oz,t=4;break;case"base64":this.text=cz,this.end=hz,t=3;break;default:this.write=dz,this.end=pz;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=vg.allocUnsafe(t)}Ol.prototype.write=function(e){if(e.length===0)return"";var t,n;if(this.lastNeed){if(t=this.fillLast(e),t===void 0)return"";n=this.lastNeed,this.lastNeed=0}else n=0;return n<e.length?t?t+this.text(e,n):this.text(e,n):t||""},Ol.prototype.end=lz,Ol.prototype.text=sz,Ol.prototype.fillLast=function(e){if(this.lastNeed<=e.length)return e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length),this.lastNeed-=e.length};function xg(e){return e<=127?0:e>>5===6?2:e>>4===14?3:e>>3===30?4:e>>6===2?-1:-2}function iz(e,t,n){var r=t.length-1;if(r<n)return 0;var i=xg(t[r]);return i>=0?(i>0&&(e.lastNeed=i-1),i):--r<n||i===-2?0:(i=xg(t[r]),i>=0?(i>0&&(e.lastNeed=i-2),i):--r<n||i===-2?0:(i=xg(t[r]),i>=0?(i>0&&(i===2?i=0:e.lastNeed=i-3),i):0))}function az(e,t,n){if((t[0]&192)!==128)return e.lastNeed=0,"�";if(e.lastNeed>1&&t.length>1){if((t[1]&192)!==128)return e.lastNeed=1,"�";if(e.lastNeed>2&&t.length>2&&(t[2]&192)!==128)return e.lastNeed=2,"�"}}function oz(e){var t=this.lastTotal-this.lastNeed,n=az(this,e);if(n!==void 0)return n;if(this.lastNeed<=e.length)return e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,t,0,e.length),this.lastNeed-=e.length}function sz(e,t){var n=iz(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=n;var r=e.length-(n-this.lastNeed);return e.copy(this.lastChar,0,r),e.toString("utf8",t,r)}function lz(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+"�":t}function uz(e,t){if((e.length-t)%2===0){var n=e.toString("utf16le",t);if(n){var r=n.charCodeAt(n.length-1);if(r>=55296&&r<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],n.slice(0,-1)}return n}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function fz(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var n=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,n)}return t}function cz(e,t){var n=(e.length-t)%3;return n===0?e.toString("base64",t):(this.lastNeed=3-n,this.lastTotal=3,n===1?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-n))}function hz(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function dz(e){return e.toString(this.encoding)}function pz(e){return e&&e.length?this.write(e):""}var Ag,_E;function Eg(){if(_E)return Ag;_E=1;var e=Co().codes.ERR_STREAM_PREMATURE_CLOSE;function t(a){var o=!1;return function(){if(!o){o=!0;for(var s=arguments.length,u=new Array(s),l=0;l<s;l++)u[l]=arguments[l];a.apply(this,u)}}}function n(){}function r(a){return a.setHeader&&typeof a.abort=="function"}function i(a,o,s){if(typeof o=="function")return i(a,null,o);o||(o={}),s=t(s||n);var u=o.readable||o.readable!==!1&&a.readable,l=o.writable||o.writable!==!1&&a.writable,f=function(){a.writable||h()},c=a._writableState&&a._writableState.finished,h=function(){l=!1,c=!0,u||s.call(a)},d=a._readableState&&a._readableState.endEmitted,p=function(){u=!1,d=!0,l||s.call(a)},b=function(S){s.call(a,S)},y=function(){var S;if(u&&!d)return(!a._readableState||!a._readableState.ended)&&(S=new e),s.call(a,S);if(l&&!c)return(!a._writableState||!a._writableState.ended)&&(S=new e),s.call(a,S)},w=function(){a.req.on("finish",h)};return r(a)?(a.on("complete",h),a.on("abort",y),a.req?w():a.on("request",w)):l&&!a._writableState&&(a.on("end",f),a.on("close",f)),a.on("end",p),a.on("finish",h),o.error!==!1&&a.on("error",b),a.on("close",y),function(){a.removeListener("complete",h),a.removeListener("abort",y),a.removeListener("request",w),a.req&&a.req.removeListener("finish",h),a.removeListener("end",f),a.removeListener("close",f),a.removeListener("finish",h),a.removeListener("end",p),a.removeListener("error",b),a.removeListener("close",y)}}return Ag=i,Ag}var _g,SE;function gz(){if(SE)return _g;SE=1;var e;function t(S,_,T){return _=n(_),_ in S?Object.defineProperty(S,_,{value:T,enumerable:!0,configurable:!0,writable:!0}):S[_]=T,S}function n(S){var _=r(S,"string");return typeof _=="symbol"?_:String(_)}function r(S,_){if(typeof S!="object"||S===null)return S;var T=S[Symbol.toPrimitive];if(T!==void 0){var I=T.call(S,_||"default");if(typeof I!="object")return I;throw new TypeError("@@toPrimitive must return a primitive value.")}return(_==="string"?String:Number)(S)}var i=Eg(),a=Symbol("lastResolve"),o=Symbol("lastReject"),s=Symbol("error"),u=Symbol("ended"),l=Symbol("lastPromise"),f=Symbol("handlePromise"),c=Symbol("stream");function h(S,_){return{value:S,done:_}}function d(S){var _=S[a];if(_!==null){var T=S[c].read();T!==null&&(S[l]=null,S[a]=null,S[o]=null,_(h(T,!1)))}}function p(S){process.nextTick(d,S)}function b(S,_){return function(T,I){S.then(function(){if(_[u]){T(h(void 0,!0));return}_[f](T,I)},I)}}var y=Object.getPrototypeOf(function(){}),w=Object.setPrototypeOf((e={get stream(){return this[c]},next:function(){var _=this,T=this[s];if(T!==null)return Promise.reject(T);if(this[u])return Promise.resolve(h(void 0,!0));if(this[c].destroyed)return new Promise(function(L,j){process.nextTick(function(){_[s]?j(_[s]):L(h(void 0,!0))})});var I=this[l],B;if(I)B=new Promise(b(I,this));else{var R=this[c].read();if(R!==null)return Promise.resolve(h(R,!1));B=new Promise(this[f])}return this[l]=B,B}},t(e,Symbol.asyncIterator,function(){return this}),t(e,"return",function(){var _=this;return new Promise(function(T,I){_[c].destroy(null,function(B){if(B){I(B);return}T(h(void 0,!0))})})}),e),y),A=function(_){var T,I=Object.create(w,(T={},t(T,c,{value:_,writable:!0}),t(T,a,{value:null,writable:!0}),t(T,o,{value:null,writable:!0}),t(T,s,{value:null,writable:!0}),t(T,u,{value:_._readableState.endEmitted,writable:!0}),t(T,f,{value:function(R,L){var j=I[c].read();j?(I[l]=null,I[a]=null,I[o]=null,R(h(j,!1))):(I[a]=R,I[o]=L)},writable:!0}),T));return I[l]=null,i(_,function(B){if(B&&B.code!=="ERR_STREAM_PREMATURE_CLOSE"){var R=I[o];R!==null&&(I[l]=null,I[a]=null,I[o]=null,R(B)),I[s]=B;return}var L=I[a];L!==null&&(I[l]=null,I[a]=null,I[o]=null,L(h(void 0,!0))),I[u]=!0}),_.on("readable",p.bind(null,I)),I};return _g=A,_g}var Sg,CE;function mz(){return CE||(CE=1,Sg=function(){throw new Error("Readable.from is not available in the browser")}),Sg}var Cg,kE;function TE(){if(kE)return Cg;kE=1,Cg=L;var e;L.ReadableState=R,lg.EventEmitter;var t=function(x,G){return x.listeners(G).length},n=cE(),r=pe.Buffer,i=(typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function a(C){return r.from(C)}function o(C){return r.isBuffer(C)||C instanceof i}var s=hE,u;s&&s.debuglog?u=s.debuglog("stream"):u=function(){};var l=KO(),f=gE(),c=yE(),h=c.getHighWaterMark,d=Co().codes,p=d.ERR_INVALID_ARG_TYPE,b=d.ERR_STREAM_PUSH_AFTER_EOF,y=d.ERR_METHOD_NOT_IMPLEMENTED,w=d.ERR_STREAM_UNSHIFT_AFTER_END_EVENT,A,S,_;So(L,n);var T=f.errorOrDestroy,I=["error","close","destroy","pause","resume"];function B(C,x,G){if(typeof C.prependListener=="function")return C.prependListener(x,G);!C._events||!C._events[x]?C.on(x,G):Array.isArray(C._events[x])?C._events[x].unshift(G):C._events[x]=[G,C._events[x]]}function R(C,x,G){e=e||ko(),C=C||{},typeof G!="boolean"&&(G=x instanceof e),this.objectMode=!!C.objectMode,G&&(this.objectMode=this.objectMode||!!C.readableObjectMode),this.highWaterMark=h(this,C,"readableHighWaterMark",G),this.buffer=new l,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=C.emitClose!==!1,this.autoDestroy=!!C.autoDestroy,this.destroyed=!1,this.defaultEncoding=C.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,C.encoding&&(A||(A=yg.StringDecoder),this.decoder=new A(C.encoding),this.encoding=C.encoding)}function L(C){if(e=e||ko(),!(this instanceof L))return new L(C);var x=this instanceof e;this._readableState=new R(C,this,x),this.readable=!0,C&&(typeof C.read=="function"&&(this._read=C.read),typeof C.destroy=="function"&&(this._destroy=C.destroy)),n.call(this)}Object.defineProperty(L.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0?!1:this._readableState.destroyed},set:function(x){this._readableState&&(this._readableState.destroyed=x)}}),L.prototype.destroy=f.destroy,L.prototype._undestroy=f.undestroy,L.prototype._destroy=function(C,x){x(C)},L.prototype.push=function(C,x){var G=this._readableState,Z;return G.objectMode?Z=!0:typeof C=="string"&&(x=x||G.defaultEncoding,x!==G.encoding&&(C=r.from(C,x),x=""),Z=!0),j(this,C,x,!1,Z)},L.prototype.unshift=function(C){return j(this,C,null,!0,!1)};function j(C,x,G,Z,le){u("readableAddChunk",x);var J=C._readableState;if(x===null)J.reading=!1,$e(C,J);else{var ue;if(le||(ue=ie(J,x)),ue)T(C,ue);else if(J.objectMode||x&&x.length>0)if(typeof x!="string"&&!J.objectMode&&Object.getPrototypeOf(x)!==r.prototype&&(x=a(x)),Z)J.endEmitted?T(C,new w):M(C,J,x,!0);else if(J.ended)T(C,new b);else{if(J.destroyed)return!1;J.reading=!1,J.decoder&&!G?(x=J.decoder.write(x),J.objectMode||x.length!==0?M(C,J,x,!1):Ze(C,J)):M(C,J,x,!1)}else Z||(J.reading=!1,Ze(C,J))}return!J.ended&&(J.length<J.highWaterMark||J.length===0)}function M(C,x,G,Z){x.flowing&&x.length===0&&!x.sync?(x.awaitDrain=0,C.emit("data",G)):(x.length+=x.objectMode?1:G.length,Z?x.buffer.unshift(G):x.buffer.push(G),x.needReadable&&De(C)),Ze(C,x)}function ie(C,x){var G;return!o(x)&&typeof x!="string"&&x!==void 0&&!C.objectMode&&(G=new p("chunk",["string","Buffer","Uint8Array"],x)),G}L.prototype.isPaused=function(){return this._readableState.flowing===!1},L.prototype.setEncoding=function(C){A||(A=yg.StringDecoder);var x=new A(C);this._readableState.decoder=x,this._readableState.encoding=this._readableState.decoder.encoding;for(var G=this._readableState.buffer.head,Z="";G!==null;)Z+=x.write(G.data),G=G.next;return this._readableState.buffer.clear(),Z!==""&&this._readableState.buffer.push(Z),this._readableState.length=Z.length,this};var se=1073741824;function ge(C){return C>=se?C=se:(C--,C|=C>>>1,C|=C>>>2,C|=C>>>4,C|=C>>>8,C|=C>>>16,C++),C}function Ie(C,x){return C<=0||x.length===0&&x.ended?0:x.objectMode?1:C!==C?x.flowing&&x.length?x.buffer.head.data.length:x.length:(C>x.highWaterMark&&(x.highWaterMark=ge(C)),C<=x.length?C:x.ended?x.length:(x.needReadable=!0,0))}L.prototype.read=function(C){u("read",C),C=parseInt(C,10);var x=this._readableState,G=C;if(C!==0&&(x.emittedReadable=!1),C===0&&x.needReadable&&((x.highWaterMark!==0?x.length>=x.highWaterMark:x.length>0)||x.ended))return u("read: emitReadable",x.length,x.ended),x.length===0&&x.ended?q(this):De(this),null;if(C=Ie(C,x),C===0&&x.ended)return x.length===0&&q(this),null;var Z=x.needReadable;u("need readable",Z),(x.length===0||x.length-C<x.highWaterMark)&&(Z=!0,u("length less than watermark",Z)),x.ended||x.reading?(Z=!1,u("reading or ended",Z)):Z&&(u("do read"),x.reading=!0,x.sync=!0,x.length===0&&(x.needReadable=!0),this._read(x.highWaterMark),x.sync=!1,x.reading||(C=Ie(G,x)));var le;return C>0?le=P(C,x):le=null,le===null?(x.needReadable=x.length<=x.highWaterMark,C=0):(x.length-=C,x.awaitDrain=0),x.length===0&&(x.ended||(x.needReadable=!0),G!==C&&x.ended&&q(this)),le!==null&&this.emit("data",le),le};function $e(C,x){if(u("onEofChunk"),!x.ended){if(x.decoder){var G=x.decoder.end();G&&G.length&&(x.buffer.push(G),x.length+=x.objectMode?1:G.length)}x.ended=!0,x.sync?De(C):(x.needReadable=!1,x.emittedReadable||(x.emittedReadable=!0,Ke(C)))}}function De(C){var x=C._readableState;u("emitReadable",x.needReadable,x.emittedReadable),x.needReadable=!1,x.emittedReadable||(u("emitReadable",x.flowing),x.emittedReadable=!0,process.nextTick(Ke,C))}function Ke(C){var x=C._readableState;u("emitReadable_",x.destroyed,x.length,x.ended),!x.destroyed&&(x.length||x.ended)&&(C.emit("readable"),x.emittedReadable=!1),x.needReadable=!x.flowing&&!x.ended&&x.length<=x.highWaterMark,N(C)}function Ze(C,x){x.readingMore||(x.readingMore=!0,process.nextTick(Je,C,x))}function Je(C,x){for(;!x.reading&&!x.ended&&(x.length<x.highWaterMark||x.flowing&&x.length===0);){var G=x.length;if(u("maybeReadMore read 0"),C.read(0),G===x.length)break}x.readingMore=!1}L.prototype._read=function(C){T(this,new y("_read()"))},L.prototype.pipe=function(C,x){var G=this,Z=this._readableState;switch(Z.pipesCount){case 0:Z.pipes=C;break;case 1:Z.pipes=[Z.pipes,C];break;default:Z.pipes.push(C);break}Z.pipesCount+=1,u("pipe count=%d opts=%j",Z.pipesCount,x);var le=(!x||x.end!==!1)&&C!==process.stdout&&C!==process.stderr,J=le?Zt:Kn;Z.endEmitted?process.nextTick(J):G.once("end",J),C.on("unpipe",ue);function ue(v,g){u("onunpipe"),v===G&&g&&g.hasUnpiped===!1&&(g.hasUnpiped=!0,fi())}function Zt(){u("onend"),C.end()}var li=Ee(G);C.on("drain",li);var ui=!1;function fi(){u("cleanup"),C.removeListener("close",ci),C.removeListener("finish",Wt),C.removeListener("drain",li),C.removeListener("error",wr),C.removeListener("unpipe",ue),G.removeListener("end",Zt),G.removeListener("end",Kn),G.removeListener("data",St),ui=!0,Z.awaitDrain&&(!C._writableState||C._writableState.needDrain)&&li()}G.on("data",St);function St(v){u("ondata");var g=C.write(v);u("dest.write",g),g===!1&&((Z.pipesCount===1&&Z.pipes===C||Z.pipesCount>1&&Y(Z.pipes,C)!==-1)&&!ui&&(u("false write response, pause",Z.awaitDrain),Z.awaitDrain++),G.pause())}function wr(v){u("onerror",v),Kn(),C.removeListener("error",wr),t(C,"error")===0&&T(C,v)}B(C,"error",wr);function ci(){C.removeListener("finish",Wt),Kn()}C.once("close",ci);function Wt(){u("onfinish"),C.removeListener("close",ci),Kn()}C.once("finish",Wt);function Kn(){u("unpipe"),G.unpipe(C)}return C.emit("pipe",G),Z.flowing||(u("pipe resume"),G.resume()),C};function Ee(C){return function(){var G=C._readableState;u("pipeOnDrain",G.awaitDrain),G.awaitDrain&&G.awaitDrain--,G.awaitDrain===0&&t(C,"data")&&(G.flowing=!0,N(C))}}L.prototype.unpipe=function(C){var x=this._readableState,G={hasUnpiped:!1};if(x.pipesCount===0)return this;if(x.pipesCount===1)return C&&C!==x.pipes?this:(C||(C=x.pipes),x.pipes=null,x.pipesCount=0,x.flowing=!1,C&&C.emit("unpipe",this,G),this);if(!C){var Z=x.pipes,le=x.pipesCount;x.pipes=null,x.pipesCount=0,x.flowing=!1;for(var J=0;J<le;J++)Z[J].emit("unpipe",this,{hasUnpiped:!1});return this}var ue=Y(x.pipes,C);return ue===-1?this:(x.pipes.splice(ue,1),x.pipesCount-=1,x.pipesCount===1&&(x.pipes=x.pipes[0]),C.emit("unpipe",this,G),this)},L.prototype.on=function(C,x){var G=n.prototype.on.call(this,C,x),Z=this._readableState;return C==="data"?(Z.readableListening=this.listenerCount("readable")>0,Z.flowing!==!1&&this.resume()):C==="readable"&&!Z.endEmitted&&!Z.readableListening&&(Z.readableListening=Z.needReadable=!0,Z.flowing=!1,Z.emittedReadable=!1,u("on readable",Z.length,Z.reading),Z.length?De(this):Z.reading||process.nextTick(pt,this)),G},L.prototype.addListener=L.prototype.on,L.prototype.removeListener=function(C,x){var G=n.prototype.removeListener.call(this,C,x);return C==="readable"&&process.nextTick(_e,this),G},L.prototype.removeAllListeners=function(C){var x=n.prototype.removeAllListeners.apply(this,arguments);return(C==="readable"||C===void 0)&&process.nextTick(_e,this),x};function _e(C){var x=C._readableState;x.readableListening=C.listenerCount("readable")>0,x.resumeScheduled&&!x.paused?x.flowing=!0:C.listenerCount("data")>0&&C.resume()}function pt(C){u("readable nexttick read 0"),C.read(0)}L.prototype.resume=function(){var C=this._readableState;return C.flowing||(u("resume"),C.flowing=!C.readableListening,qt(this,C)),C.paused=!1,this};function qt(C,x){x.resumeScheduled||(x.resumeScheduled=!0,process.nextTick(Oe,C,x))}function Oe(C,x){u("resume",x.reading),x.reading||C.read(0),x.resumeScheduled=!1,C.emit("resume"),N(C),x.flowing&&!x.reading&&C.read(0)}L.prototype.pause=function(){return u("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(u("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this};function N(C){var x=C._readableState;for(u("flow",x.flowing);x.flowing&&C.read()!==null;);}L.prototype.wrap=function(C){var x=this,G=this._readableState,Z=!1;C.on("end",function(){if(u("wrapped end"),G.decoder&&!G.ended){var ue=G.decoder.end();ue&&ue.length&&x.push(ue)}x.push(null)}),C.on("data",function(ue){if(u("wrapped data"),G.decoder&&(ue=G.decoder.write(ue)),!(G.objectMode&&ue==null)&&!(!G.objectMode&&(!ue||!ue.length))){var Zt=x.push(ue);Zt||(Z=!0,C.pause())}});for(var le in C)this[le]===void 0&&typeof C[le]=="function"&&(this[le]=function(Zt){return function(){return C[Zt].apply(C,arguments)}}(le));for(var J=0;J<I.length;J++)C.on(I[J],this.emit.bind(this,I[J]));return this._read=function(ue){u("wrapped _read",ue),Z&&(Z=!1,C.resume())},this},typeof Symbol=="function"&&(L.prototype[Symbol.asyncIterator]=function(){return S===void 0&&(S=gz()),S(this)}),Object.defineProperty(L.prototype,"readableHighWaterMark",{enumerable:!1,get:function(){return this._readableState.highWaterMark}}),Object.defineProperty(L.prototype,"readableBuffer",{enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}}),Object.defineProperty(L.prototype,"readableFlowing",{enumerable:!1,get:function(){return this._readableState.flowing},set:function(x){this._readableState&&(this._readableState.flowing=x)}}),L._fromList=P,Object.defineProperty(L.prototype,"readableLength",{enumerable:!1,get:function(){return this._readableState.length}});function P(C,x){if(x.length===0)return null;var G;return x.objectMode?G=x.buffer.shift():!C||C>=x.length?(x.decoder?G=x.buffer.join(""):x.buffer.length===1?G=x.buffer.first():G=x.buffer.concat(x.length),x.buffer.clear()):G=x.buffer.consume(C,x.decoder),G}function q(C){var x=C._readableState;u("endReadable",x.endEmitted),x.endEmitted||(x.ended=!0,process.nextTick(H,x,C))}function H(C,x){if(u("endReadableNT",C.endEmitted,C.length),!C.endEmitted&&C.length===0&&(C.endEmitted=!0,x.readable=!1,x.emit("end"),C.autoDestroy)){var G=x._writableState;(!G||G.autoDestroy&&G.finished)&&x.destroy()}}typeof Symbol=="function"&&(L.from=function(C,x){return _===void 0&&(_=mz()),_(L,C,x)});function Y(C,x){for(var G=0,Z=C.length;G<Z;G++)if(C[G]===x)return G;return-1}return Cg}var kg,IE;function BE(){if(IE)return kg;IE=1,kg=s;var e=Co().codes,t=e.ERR_METHOD_NOT_IMPLEMENTED,n=e.ERR_MULTIPLE_CALLBACK,r=e.ERR_TRANSFORM_ALREADY_TRANSFORMING,i=e.ERR_TRANSFORM_WITH_LENGTH_0,a=ko();So(s,a);function o(f,c){var h=this._transformState;h.transforming=!1;var d=h.writecb;if(d===null)return this.emit("error",new n);h.writechunk=null,h.writecb=null,c!=null&&this.push(c),d(f);var p=this._readableState;p.reading=!1,(p.needReadable||p.length<p.highWaterMark)&&this._read(p.highWaterMark)}function s(f){if(!(this instanceof s))return new s(f);a.call(this,f),this._transformState={afterTransform:o.bind(this),needTransform:!1,transforming:!1,writecb:null,writechunk:null,writeencoding:null},this._readableState.needReadable=!0,this._readableState.sync=!1,f&&(typeof f.transform=="function"&&(this._transform=f.transform),typeof f.flush=="function"&&(this._flush=f.flush)),this.on("prefinish",u)}function u(){var f=this;typeof this._flush=="function"&&!this._readableState.destroyed?this._flush(function(c,h){l(f,c,h)}):l(this,null,null)}s.prototype.push=function(f,c){return this._transformState.needTransform=!1,a.prototype.push.call(this,f,c)},s.prototype._transform=function(f,c,h){h(new t("_transform()"))},s.prototype._write=function(f,c,h){var d=this._transformState;if(d.writecb=h,d.writechunk=f,d.writeencoding=c,!d.transforming){var p=this._readableState;(d.needTransform||p.needReadable||p.length<p.highWaterMark)&&this._read(p.highWaterMark)}},s.prototype._read=function(f){var c=this._transformState;c.writechunk!==null&&!c.transforming?(c.transforming=!0,this._transform(c.writechunk,c.writeencoding,c.afterTransform)):c.needTransform=!0},s.prototype._destroy=function(f,c){a.prototype._destroy.call(this,f,function(h){c(h)})};function l(f,c,h){if(c)return f.emit("error",c);if(h!=null&&f.push(h),f._writableState.length)throw new i;if(f._transformState.transforming)throw new r;return f.push(null)}return kg}var Tg,DE;function bz(){if(DE)return Tg;DE=1,Tg=t;var e=BE();So(t,e);function t(n){if(!(this instanceof t))return new t(n);e.call(this,n)}return t.prototype._transform=function(n,r,i){i(null,n)},Tg}var Ig,FE;function yz(){if(FE)return Ig;FE=1;var e;function t(h){var d=!1;return function(){d||(d=!0,h.apply(void 0,arguments))}}var n=Co().codes,r=n.ERR_MISSING_ARGS,i=n.ERR_STREAM_DESTROYED;function a(h){if(h)throw h}function o(h){return h.setHeader&&typeof h.abort=="function"}function s(h,d,p,b){b=t(b);var y=!1;h.on("close",function(){y=!0}),e===void 0&&(e=Eg()),e(h,{readable:d,writable:p},function(A){if(A)return b(A);y=!0,b()});var w=!1;return function(A){if(!y&&!w){if(w=!0,o(h))return h.abort();if(typeof h.destroy=="function")return h.destroy();b(A||new i("pipe"))}}}function u(h){h()}function l(h,d){return h.pipe(d)}function f(h){return!h.length||typeof h[h.length-1]!="function"?a:h.pop()}function c(){for(var h=arguments.length,d=new Array(h),p=0;p<h;p++)d[p]=arguments[p];var b=f(d);if(Array.isArray(d[0])&&(d=d[0]),d.length<2)throw new r("streams");var y,w=d.map(function(A,S){var _=S<d.length-1,T=S>0;return s(A,_,T,function(I){y||(y=I),I&&w.forEach(u),!_&&(w.forEach(u),b(y))})});return d.reduce(l)}return Ig=c,Ig}var RE=dn,Bg=lg.EventEmitter,wz=So;wz(dn,Bg),dn.Readable=TE(),dn.Writable=xE(),dn.Duplex=ko(),dn.Transform=BE(),dn.PassThrough=bz(),dn.finished=Eg(),dn.pipeline=yz(),dn.Stream=dn;function dn(){Bg.call(this)}dn.prototype.pipe=function(e,t){var n=this;function r(f){e.writable&&e.write(f)===!1&&n.pause&&n.pause()}n.on("data",r);function i(){n.readable&&n.resume&&n.resume()}e.on("drain",i),!e._isStdio&&(!t||t.end!==!1)&&(n.on("end",o),n.on("close",s));var a=!1;function o(){a||(a=!0,e.end())}function s(){a||(a=!0,typeof e.destroy=="function"&&e.destroy())}function u(f){if(l(),Bg.listenerCount(this,"error")===0)throw f}n.on("error",u),e.on("error",u);function l(){n.removeListener("data",r),e.removeListener("drain",i),n.removeListener("end",o),n.removeListener("close",s),n.removeListener("error",u),e.removeListener("error",u),n.removeListener("end",l),n.removeListener("close",l),e.removeListener("close",l)}return n.on("end",l),n.on("close",l),e.on("close",l),e.emit("pipe",n),e};function zl(e){return e.replace(/%([0-9A-Fa-f]{2})/g,(t,n)=>String.fromCharCode(parseInt(n,16)))}function ME(e,t){return String(t).replace(e,n=>`%${n.charCodeAt(0).toString(16).toUpperCase().padStart(2,"0")}`)}function Ul(e){return ME(/[\n;\r\t=%&,\x00-\x1f\x7f-\xff]/g,e)}function pr(e){return ME(/[\n\r\t%\x00-\x1f\x7f-\xff]/g,e)}function PE(e){if(!(e&&e.length)||e===".")return{};const t={};return e.replace(/\r?\n$/,"").split(";").forEach(n=>{const r=n.split("=",2);if(!(r[1]&&r[1].length))return;r[0]=r[0].trim();let i=t[r[0].trim()];i||(i=[],t[r[0]]=i),i.push(...r[1].split(",").map(a=>a.trim()).map(zl))}),t}function LE(e){const t=e.split(" ").map(r=>r==="."||r===""?null:r);return{seq_id:t[0]&&zl(t[0]),source:t[1]&&zl(t[1]),type:t[2]&&zl(t[2]),start:t[3]===null?null:parseInt(t[3],10),end:t[4]===null?null:parseInt(t[4],10),score:t[5]===null?null:parseFloat(t[5]),strand:t[6],phase:t[7],attributes:t[8]===null?null:PE(t[8])}}function NE(e){const t=/^\s*##\s*(\S+)\s*(.*)/.exec(e);if(!t)return null;const[,n]=t;let[,,r]=t;const i={directive:n};if(r.length&&(r=r.replace(/\r?\n$/,""),i.value=r),n==="sequence-region"){const a=r.split(/\s+/,3);return{...i,seq_id:a[0],start:a[1]&&a[1].replace(/\D/g,""),end:a[2]&&a[2].replace(/\D/g,"")}}else if(n==="genome-build"){const[a,o]=r.split(/\s+/,2);return{...i,source:a,buildName:o}}return i}function OE(e){const t=[];return Object.entries(e).forEach(([n,r])=>{if(!r)return;let i;r.hasOwnProperty("toString")?i=Ul(r.toString()):Array.isArray(r)?i=r.map(Ul).join(","):i=Ul(r),t.push(`${Ul(n)}=${i}`)}),t.length?t.join(";"):"."}function vz(e,t){const n=e.attributes===null||e.attributes===void 0?".":OE(e.attributes),i=`${[e.seq_id===null?".":pr(e.seq_id),e.source===null?".":pr(e.source),e.type===null?".":pr(e.type),e.start===null?".":pr(e.start),e.end===null?".":pr(e.end),e.score===null?".":pr(e.score),e.strand===null?".":pr(e.strand),e.phase===null?".":pr(e.phase),n].join(" ")}
|
|
505
|
-
`;return t[i]?"":(t[i]=!0,i)}function
|
|
506
|
-
`,t}function
|
|
507
|
-
`}function
|
|
614
|
+
)`},Symbol.toStringTag,{value:"Module"}))).map(([e,t])=>[e,mE.parse(t.trim())]));function Sg(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 yz={".":0,"-":-1,"+":1};function wz(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 vz{constructor(t={}){if(t.autoSql)this.autoSql=Sg(bz.parse(t.autoSql));else if(t.type){if(!_g[t.type])throw new Error("Type not found");this.autoSql=Sg(_g[t.type])}else this.autoSql=Sg(_g.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&&wz(a))for(let s=0;s<r.fields.length;s++){const u=r.fields[s];let l=a[s];const{isNumeric:c,isArray:f,arrayIsNumeric:h,name:d}=u;if(l==null)break;if(l!=="."){if(c){const p=Number(l);l=Number.isNaN(p)?l:p}else f&&(l=l.split(","),l[l.length-1]===""&&l.pop(),h&&(l=l.map(p=>Number(p))));o[d]=l}}else{const s=["chrom","chromStart","chromEnd","name"];o=Object.fromEntries(a.map((u,l)=>[s[l]||"field"+l,u])),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=yz[o.strand]||0,o.chrom=decodeURIComponent(o.chrom),o}}const xz=Object.freeze(Object.defineProperty({__proto__:null,default:vz},Symbol.toStringTag,{value:"Module"}));let bE=class{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 Eo(e,t=0,n=!1){if(n)throw new Error("big-endian virtual file offsets not implemented");return new bE(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])}let yE=class{constructor(t,n,r,i){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+65536-this.minv.blockPosition}};function Az(e){return new Promise(t=>setTimeout(t,e))}function Ez(e){if(e.greaterThan(Number.MAX_SAFE_INTEGER)||e.lessThan(Number.MIN_SAFE_INTEGER))throw new Error("integer overflow");return e.toNumber()}function _z(e){if(e&&e.aborted)if(typeof DOMException>"u"){const t=new Error("aborted");throw t.code="ERR_ABORTED",t}else throw new DOMException("aborted","AbortError")}function Sz(e,t){return t.minv.blockPosition-e.maxv.blockPosition<65e3&&t.maxv.blockPosition-e.minv.blockPosition<5e6}function Cz(e={}){return"aborted"in e?{signal:e}:e}function wE(e,t){const n=[];let r;if(e.length===0)return e;e.sort((i,a)=>{const o=i.minv.blockPosition-a.minv.blockPosition;return o===0?i.minv.dataPosition-a.minv.dataPosition:o});for(const i of e)(!t||i.maxv.compareTo(t)>0)&&(r===void 0?(n.push(i),r=i):Sz(r,i)?i.maxv.compareTo(r.maxv)>0&&(r.maxv=i.maxv):(n.push(i),r=i));return n}function vE(e,t){return{lineCount:Ez(If.fromBytesLE(Array.prototype.slice.call(e,t,t+8),!0))}}function eh(e,t){return e?e.compareTo(t)>0?t:e:t}function kz(e,t=n=>n){let n=0,r=0;const i=[],a={};for(let o=0;o<e.length;o+=1)if(!e[o]){if(r<o){let s=e.toString("utf8",r,o);s=t(s),i[n]=s,a[s]=n}r=o+1,n+=1}return{refNameToId:a,refIdToName:i}}let xE=class{constructor({filehandle:t,renameRefSeq:n=r=>r}){this.filehandle=t,this.renameRefSeq=n}};const Tz=21578050;function Iz(e,t){return e-e%t}function Bz(e,t){return e-e%t+t}function Dz(e,t){return t-=1,[[0,0],[1+(e>>26),1+(t>>26)],[9+(e>>23),9+(t>>23)],[73+(e>>20),73+(t>>20)],[585+(e>>17),585+(t>>17)],[4681+(e>>14),4681+(t>>14)]]}class _o extends xE{async lineCount(t,n){var r,i;return((i=(r=(await this.parse(n)).indices[t])===null||r===void 0?void 0:r.stats)===null||i===void 0?void 0:i.lineCount)||0}async _parse(t){const n=await this.filehandle.readFile(t);if(n.readUInt32LE(0)!==Tz)throw new Error("Not a BAI file");const r=n.readInt32LE(4),a=((1<<(5+1)*3)-1)/7;let o=8,s;const u=new Array(r);for(let l=0;l<r;l++){const c=n.readInt32LE(o);let f;o+=4;const h={};for(let m=0;m<c;m+=1){const y=n.readUInt32LE(o);if(o+=4,y===a+1)o+=4,f=vE(n,o+16),o+=32;else{if(y>a+1)throw new Error("bai index contains too many bins, please use CSI");{const w=n.readInt32LE(o);o+=4;const A=new Array(w);for(let S=0;S<w;S++){const _=Eo(n,o);o+=8;const T=Eo(n,o);o+=8,s=eh(s,_),A[S]=new yE(_,T,y)}h[y]=A}}}const d=n.readInt32LE(o);o+=4;const p=new Array(d);for(let m=0;m<d;m++){const y=Eo(n,o);o+=8,s=eh(s,y),p[m]=y}u[l]={binIndex:h,linearIndex:p,stats:f}}return{bai:!0,firstDataLine:s,maxBlockSize:65536,indices:u,refCount:r}}async indexCov(t,n,r,i={}){const o=n!==void 0,u=(await this.parse(i)).indices[t];if(!u)return[];const{linearIndex:l=[],stats:c}=u;if(l.length===0)return[];const f=r===void 0?(l.length-1)*16384:Bz(r,16384),h=n===void 0?0:Iz(n,16384),d=o?new Array((f-h)/16384):new Array(l.length-1),p=l[l.length-1].blockPosition;if(f>(l.length-1)*16384)throw new Error("query outside of range of linear index");let m=l[h/16384].blockPosition;for(let y=h/16384,w=0;y<f/16384;y++,w++)d[w]={score:l[y+1].blockPosition-m,start:y*16384,end:y*16384+16384},m=l[y+1].blockPosition;return d.map(y=>({...y,score:y.score*((c==null?void 0:c.lineCount)||0)/p}))}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=Dz(n,r),u=[];for(const[d,p]of s)for(let m=d;m<=p;m++)if(o.binIndex[m]){const y=o.binIndex[m];for(const w of y)u.push(w)}const l=o.linearIndex.length;let c;const f=Math.min(n>>14,l-1),h=Math.min(r>>14,l-1);for(let d=f;d<=h;++d){const p=o.linearIndex[d];p&&(!c||p.compareTo(c)<0)&&(c=p)}return wE(u,c)}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={}){var r;return!!(!((r=(await this.parse(n)).indices[t])===null||r===void 0)&&r.binIndex)}}var mi=me.Buffer,Cg=[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"&&(Cg=new Int32Array(Cg));function AE(e){if(mi.isBuffer(e))return e;var t=typeof mi.alloc=="function"&&typeof mi.from=="function";if(typeof e=="number")return t?mi.alloc(e):new mi(e);if(typeof e=="string")return t?mi.from(e):new mi(e);throw new Error("input must be buffer, number, or string, received "+typeof e)}function Rz(e){var t=AE(4);return t.writeInt32BE(e,0),t}function kg(e,t){e=AE(e),mi.isBuffer(t)&&(t=t.readUInt32BE(0));for(var n=~~t^-1,r=0;r<e.length;r++)n=Cg[(n^e[r])&255]^n>>>8;return n^-1}function Tg(){return Rz(kg.apply(null,arguments))}Tg.signed=function(){return kg.apply(null,arguments)},Tg.unsigned=function(){return kg.apply(null,arguments)>>>0};var Fz=Tg;const Mz=ll(Fz),Pz=21582659,Lz=38359875;function Oz(e,t){return e*2**t}function EE(e,t){return Math.floor(e/2**t)}let th=class extends xE{constructor(){super(...arguments),this.maxBinNumber=0,this.depth=0,this.minShift=0}async lineCount(t,n){var r,i;return((i=(r=(await this.parse(n)).indices[t])===null||r===void 0?void 0:r.stats)===null||i===void 0?void 0:i.lineCount)||0}async indexCov(){return[]}parseAuxData(t,n){const r=t.readInt32LE(n),i=r&65536?"zero-based-half-open":"1-based-closed",a={0:"generic",1:"SAM",2:"VCF"}[r&15];if(!a)throw new Error(`invalid Tabix preset format flags ${r}`);const o={ref:t.readInt32LE(n+4),start:t.readInt32LE(n+8),end:t.readInt32LE(n+12)},s=t.readInt32LE(n+16),u=s?String.fromCharCode(s):"",l=t.readInt32LE(n+20),c=t.readInt32LE(n+24);return{columnNumbers:o,coordinateType:i,metaValue:s,metaChar:u,skipLines:l,format:a,formatFlags:r,...kz(t.subarray(n+28,n+28+c),this.renameRefSeq)}}async _parse(t){const n=await this.filehandle.readFile(t),r=await li(n);let i;if(r.readUInt32LE(0)===Pz)i=1;else if(r.readUInt32LE(0)===Lz)i=2;else throw new Error("Not a CSI file");this.minShift=r.readInt32LE(4),this.depth=r.readInt32LE(8),this.maxBinNumber=((1<<(this.depth+1)*3)-1)/7;const a=r.readInt32LE(12),o=a>=30?this.parseAuxData(r,16):void 0,s=r.readInt32LE(16+a);let u=16+a+4,l;const c=new Array(s);for(let f=0;f<s;f++){const h=r.readInt32LE(u);u+=4;const d={};let p;for(let m=0;m<h;m++){const y=r.readUInt32LE(u);if(u+=4,y>this.maxBinNumber)p=vE(r,u+28),u+=28+16;else{l=eh(l,Eo(r,u)),u+=8;const w=r.readInt32LE(u);u+=4;const A=new Array(w);for(let S=0;S<w;S+=1){const _=Eo(r,u);u+=8;const T=Eo(r,u);u+=8,l=eh(l,_),A[S]=new yE(_,T,y)}d[y]=A}}c[f]={binIndex:d,stats:p}}return{csiVersion:i,firstDataLine:l,indices:c,refCount:s,csi:!0,maxBlockSize:65536,...o}}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);if(s.length===0)return[];const u=[];for(const[l,c]of s)for(let f=l;f<=c;f++)if(o.binIndex[f]){const h=o.binIndex[f];for(const d of h)u.push(d)}return wE(u,new bE(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+=Oz(1,r*3),r+=1){const s=i+EE(t,a),u=i+EE(n,a);if(u-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,u])}return o}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={}){var r;return!!(!((r=(await this.parse(n)).indices[t])===null||r===void 0)&&r.binIndex)}};const gn={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},_E="=ACMGRSVTWYHKDBN".split(""),Zl="MIDNSHP=X???????".split("");class SE{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||[]);for(const r of Object.keys(this.data))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 u=String.fromCharCode(n[i+2]);i+=3;let l;switch(u){case"A":{l=String.fromCharCode(n[i]),i+=1;break}case"i":{l=n.readInt32LE(i),i+=4;break}case"I":{l=n.readUInt32LE(i),i+=4;break}case"c":{l=n.readInt8(i),i+=1;break}case"C":{l=n.readUInt8(i),i+=1;break}case"s":{l=n.readInt16LE(i),i+=2;break}case"S":{l=n.readUInt16LE(i),i+=2;break}case"f":{l=n.readFloatLE(i),i+=4;break}case"Z":case"H":{for(l="";i<=a;){const c=n[i++];if(c===0)break;l+=String.fromCharCode(c)}break}case"B":{l="";const c=n[i++],f=String.fromCharCode(c),h=n.readInt32LE(i);if(i+=4,f==="i")if(s==="CG")for(let d=0;d<h;d++){const p=n.readInt32LE(i),m=p>>4,y=Zl[p&15];l+=m+y,i+=4}else for(let d=0;d<h;d++)l+=n.readInt32LE(i),d+1<h&&(l+=","),i+=4;if(f==="I")if(s==="CG")for(let d=0;d<h;d++){const p=n.readUInt32LE(i),m=p>>4,y=Zl[p&15];l+=m+y,i+=4}else for(let d=0;d<h;d++)l+=n.readUInt32LE(i),d+1<h&&(l+=","),i+=4;if(f==="s")for(let d=0;d<h;d++)l+=n.readInt16LE(i),d+1<h&&(l+=","),i+=2;if(f==="S")for(let d=0;d<h;d++)l+=n.readUInt16LE(i),d+1<h&&(l+=","),i+=2;if(f==="c")for(let d=0;d<h;d++)l+=n.readInt8(i),d+1<h&&(l+=","),i+=1;if(f==="C")for(let d=0;d<h;d++)l+=n.readUInt8(i),d+1<h&&(l+=","),i+=1;if(f==="f")for(let d=0;d<h;d++)l+=n.readFloatLE(i),d+1<h&&(l+=","),i+=4;break}default:console.warn(`Unknown BAM tag type '${u}', tags may be incomplete`),l=void 0,i=a}if(this._tagOffset=i,this._tagList.push(s),o===t)return l;this.data[o]=l}this._allTagsParsed=!0}_parseAllTags(){this._parseTag("")}_parseCigar(t){return t.match(/\d+\D/g).map(n=>[n.match(/\D/)[0].toUpperCase(),Number.parseInt(n,10)])}isPaired(){return!!(this.flags&gn.BAM_FPAIRED)}isProperlyPaired(){return!!(this.flags&gn.BAM_FPROPER_PAIR)}isSegmentUnmapped(){return!!(this.flags&gn.BAM_FUNMAP)}isMateUnmapped(){return!!(this.flags&gn.BAM_FMUNMAP)}isReverseComplemented(){return!!(this.flags&gn.BAM_FREVERSE)}isMateReverseComplemented(){return!!(this.flags&gn.BAM_FMREVERSE)}isRead1(){return!!(this.flags&gn.BAM_FREAD1)}isRead2(){return!!(this.flags&gn.BAM_FREAD2)}isSecondary(){return!!(this.flags&gn.BAM_FSECONDARY)}isFailedQc(){return!!(this.flags&gn.BAM_FQCFAIL)}isDuplicate(){return!!(this.flags&gn.BAM_FDUP)}isSupplementary(){return!!(this.flags&gn.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,u=t.readInt32LE(i),l=u>>4,c=Zl[u&15];if(c==="S"&&l===a)return i+=4,u=t.readInt32LE(i),l=u>>4,c=Zl[u&15],c!=="N"&&console.warn("CG tag with no N tag"),this.data.length_on_ref=l,this.get("CG");for(let f=0;f<r;++f)u=t.readInt32LE(i),l=u>>4,c=Zl[u&15],o+=l+c,c!=="H"&&c!=="S"&&c!=="I"&&(s+=l),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 u=0;u<i;++u){const l=t[r+u];o+=_E[(l&240)>>4],s++,s<a&&(o+=_E[l&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""}_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={};for(const n of Object.keys(this))n.charAt(0)==="_"||n==="bytes"||(t[n]=this[n]);return t}}function CE(e){const t=e.split(/\r?\n/),n=[];for(const r of t){const[i,...a]=r.split(/\t/);i&&n.push({tag:i.slice(1),data:a.map(o=>{const[s,u]=o.split(":",2);return{tag:s,value:u}})})}return n}const kE=21840194,TE=65536;async function Nz(e){let t=[];for await(const n of e)t=t.concat(n);return t}class zz{read(){throw new Error("never called")}stat(){throw new Error("never called")}readFile(){throw new Error("never called")}close(){throw new Error("never called")}}class IE{constructor({bamFilehandle:t,bamPath:n,bamUrl:r,baiPath:i,baiFilehandle:a,baiUrl:o,csiPath:s,csiFilehandle:u,csiUrl:l,htsget:c,yieldThreadTime:f=100,renameRefSeqs:h=d=>d}){if(this.htsget=!1,this.featureCache=new Of({cache:new Nf({maxSize:50}),fill:async(d,p)=>{const{chunk:m,opts:y}=d,{data:w,cpositions:A,dpositions:S}=await this._readChunk({chunk:m,opts:{...y,signal:p}});return this.readBamFeatures(w,A,S,m)}}),this.renameRefSeq=h,t)this.bam=t;else if(n)this.bam=new dt(n);else if(r)this.bam=new Qi(r);else if(c)this.htsget=!0,this.bam=new zz;else throw new Error("unable to initialize bam");if(u)this.index=new th({filehandle:u});else if(s)this.index=new th({filehandle:new dt(s)});else if(l)this.index=new th({filehandle:new Qi(l)});else if(a)this.index=new _o({filehandle:a});else if(i)this.index=new _o({filehandle:new dt(i)});else if(o)this.index=new _o({filehandle:new Qi(o)});else if(n)this.index=new _o({filehandle:new dt(`${n}.bai`)});else if(r)this.index=new _o({filehandle:new Qi(`${r}.bai`)});else if(c)this.htsget=!0;else throw new Error("unable to infer index format");this.yieldThreadTime=f}async getHeaderPre(t){const n=Cz(t);if(!this.index)return;const r=await this.index.parse(n),i=r.firstDataLine?r.firstDataLine.blockPosition+65535:void 0;let a;if(i){const c=i+TE,f=await this.bam.read(me.Buffer.alloc(c),0,c,0,n);if(!f.bytesRead)throw new Error("Error reading header");a=f.buffer.subarray(0,Math.min(f.bytesRead,i))}else a=await this.bam.readFile(n);const o=await li(a);if(o.readInt32LE(0)!==kE)throw new Error("Not a BAM file");const s=o.readInt32LE(4);this.header=o.toString("utf8",8,8+s);const{chrToIndex:u,indexToChr:l}=await this._readRefSeqs(s+8,65535,n);return this.chrToIndex=u,this.indexToChr=l,CE(this.header)}getHeader(t){return this.headerP||(this.headerP=this.getHeaderPre(t).catch(n=>{throw this.headerP=void 0,n})),this.headerP}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+TE,{bytesRead:a,buffer:o}=await this.bam.read(me.Buffer.alloc(i),0,n,0,r);if(!a)throw new Error("Error reading refseqs from header");const s=await li(o.subarray(0,Math.min(a,n))),u=s.readInt32LE(t);let l=t+4;const c={},f=[];for(let h=0;h<u;h+=1){const d=s.readInt32LE(l),p=this.renameRefSeq(s.toString("utf8",l+4,l+4+d-1)),m=s.readInt32LE(l+d+4);if(c[p]=h,f.push({refName:p,length:m}),l=l+8+d,l>s.length)return console.warn(`BAM header is very big. Re-fetching ${n} bytes.`),this._readRefSeqs(t,n*2,r)}return{chrToIndex:c,indexToChr:f}}async getRecordsForRange(t,n,r,i){return Nz(this.streamRecordsForRange(t,n,r,i))}async*streamRecordsForRange(t,n,r,i){var a;await this.getHeader(i);const o=(a=this.chrToIndex)===null||a===void 0?void 0:a[t];if(o===void 0||!this.index)yield[];else{const s=await this.index.blocksForRange(o,n-1,r,i);yield*this._fetchChunkFeatures(s,o,n,r,i)}}async*_fetchChunkFeatures(t,n,r,i,a={}){const{viewAsPairs:o}=a,s=[];let u=!1;for(const l of t){const c=await this.featureCache.get(l.toString(),{chunk:l,opts:a},a.signal),f=[];for(const h of c)if(h.seq_id()===n)if(h.get("start")>=i){u=!0;break}else h.get("end")>=r&&f.push(h);if(s.push(f),yield f,u)break}_z(a.signal),o&&(yield this.fetchPairs(n,s,a))}async fetchPairs(t,n,r){const{pairAcrossChr:i,maxInsertSize:a=2e5}=r,o={},s={};n.map(h=>{const d={};for(const p of h){const m=p.name(),y=p.id();d[m]||(d[m]=0),d[m]++,s[y]=1}for(const[p,m]of Object.entries(d))m===1&&(o[p]=!0)});const u=[];n.map(h=>{for(const d of h){const p=d.name(),m=d.get("start"),y=d._next_pos(),w=d._next_refid();this.index&&o[p]&&(i||w===t&&Math.abs(m-y)<a)&&u.push(this.index.blocksForRange(w,y,y+1,r))}});const l=new Map,c=await Promise.all(u);for(const h of c.flat())l.has(h.toString())||l.set(h.toString(),h);return(await Promise.all([...l.values()].map(async h=>{const{data:d,cpositions:p,dpositions:m,chunk:y}=await this._readChunk({chunk:h,opts:r}),w=[];for(const A of await this.readBamFeatures(d,p,m,y))o[A.get("name")]&&!s[A.id()]&&w.push(A);return w}))).flat()}async _readRegion(t,n,r={}){const{bytesRead:i,buffer:a}=await this.bam.read(me.Buffer.alloc(n),0,n,t,r);return a.subarray(0,Math.min(i,n))}async _readChunk({chunk:t,opts:n}){const r=await this._readRegion(t.minv.blockPosition,t.fetchedSize(),n),{buffer:i,cpositions:a,dpositions:o}=await Yx(r,t);return{data:i,cpositions:a,dpositions:o,chunk:t}}async readBamFeatures(t,n,r,i){let a=0;const o=[];let s=0,u=+Date.now();for(;a+4<t.length;){const l=t.readInt32LE(a),c=a+4+l-1;if(r){for(;a+i.minv.dataPosition>=r[s++];);s--}if(c<t.length){const f=new SE({bytes:{byteArray:t,start:a,end:c},fileOffset:n.length>0?n[s]*256+(a-r[s])+i.minv.dataPosition+1:Mz.signed(t.slice(a,c))});o.push(f),this.yieldThreadTime&&+Date.now()-u>this.yieldThreadTime&&(await Az(1),u=+Date.now())}a=c+1}return o}async hasRefSeq(t){var n,r;const i=(n=this.chrToIndex)===null||n===void 0?void 0:n[t];return i===void 0?!1:(r=this.index)===null||r===void 0?void 0:r.hasRefSeq(i)}async lineCount(t){var n;const r=(n=this.chrToIndex)===null||n===void 0?void 0:n[t];return r===void 0||!this.index?0:this.index.lineCount(r)}async indexCov(t,n,r){var i;if(!this.index)return[];await this.index.parse();const a=(i=this.chrToIndex)===null||i===void 0?void 0:i[t];return a===void 0?[]:this.index.indexCov(a,n,r)}async blocksForRange(t,n,r,i){var a;if(!this.index)return[];await this.index.parse();const o=(a=this.chrToIndex)===null||a===void 0?void 0:a[t];return o===void 0?[]:this.index.blocksForRange(o,n,r,i)}}async function BE(e,t){const n=await Promise.all(e.map(async r=>{const{url:i,headers:a}=r;if(i.startsWith("data:"))return me.Buffer.from(i.split(",")[1],"base64");{const{referer:o,...s}=a,u=await fetch(i,{...t,headers:{...t==null?void 0:t.headers,...s}});if(!u.ok)throw new Error(`HTTP ${u.status} fetching ${i}: ${await u.text()}`);return me.Buffer.from(await u.arrayBuffer())}}));return me.Buffer.concat(await Promise.all(n.map(r=>li(r))))}class Uz extends IE{constructor(t){super({htsget:!0}),this.baseUrl=t.baseUrl,this.trackId=t.trackId}async*streamRecordsForRange(t,n,r,i){var a;const s=`${`${this.baseUrl}/${this.trackId}`}?referenceName=${t}&start=${n}&end=${r}&format=BAM`,u=(a=this.chrToIndex)===null||a===void 0?void 0:a[t];if(u===void 0)yield[];else{const l=await fetch(s,{...i});if(!l.ok)throw new Error(`HTTP ${l.status} fetching ${s}: ${await l.text()}`);const c=await l.json(),f=await BE(c.htsget.urls.slice(1),i);yield*this._fetchChunkFeatures([{buffer:f,_fetchedSize:void 0,bin:0,compareTo(){return 0},toUniqueString(){return`${t}_${n}_${r}`},fetchedSize(){return 0},minv:{dataPosition:0,blockPosition:0,compareTo:()=>0},maxv:{dataPosition:Number.MAX_SAFE_INTEGER,blockPosition:0,compareTo:()=>0},toString(){return`${t}_${n}_${r}`}}],u,n,r,i)}}async _readChunk({chunk:t}){if(!t.buffer)throw new Error("expected chunk.buffer in htsget");return{data:t.buffer,cpositions:[],dpositions:[],chunk:t}}async getHeader(t={}){const n=`${this.baseUrl}/${this.trackId}?referenceName=na&class=header`,r=await fetch(n,t);if(!r.ok)throw new Error(`HTTP ${r.status} fetching ${n}: ${await r.text()}`);const i=await r.json(),a=await BE(i.htsget.urls,t);if(a.readInt32LE(0)!==kE)throw new Error("Not a BAM file");const o=a.readInt32LE(4),s=a.toString("utf8",8,8+o),u=CE(s),l=[],c={},f=u.filter(h=>h.tag==="SQ");for(const[h,d]of f.entries()){let p="",m=0;for(const y of d.data)y.tag==="SN"?p=y.value:y.tag==="LN"&&(m=+y.value);c[p]=h,l[h]={refName:p,length:m}}return this.chrToIndex=c,this.indexToChr=l,u}}const Gz=Object.freeze(Object.defineProperty({__proto__:null,BAI:_o,BamFile:IE,BamRecord:SE,CSI:th,HtsgetFile:Uz},Symbol.toStringTag,{value:"Module"}));function DE(e){if(e.greaterThan(Number.MAX_SAFE_INTEGER)||e.lessThan(Number.MIN_SAFE_INTEGER))throw new Error("integer overflow");return e.toNumber()}class Hz extends Error{}function So(e){if(e&&e.aborted){if(typeof DOMException<"u")throw new DOMException("aborted","AbortError");{const t=new Hz("aborted");throw t.code="ERR_ABORTED",t}}}function Vz(e,t){return t.minv.blockPosition-e.maxv.blockPosition<65e3&&t.maxv.blockPosition-e.minv.blockPosition<5e6}function RE(e,t){const n=[];let r=null;return e.length===0?e:(e.sort(function(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):Vz(r,i)?i.maxv.compareTo(r.maxv)>0&&(r.maxv=i.maxv):(n.push(i),r=i))}),n)}class Ig{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 Co(e,t=0,n=!1){if(n)throw new Error("big-endian virtual file offsets not implemented");return new Ig(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 nh{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+65536-this.minv.blockPosition}}class FE{constructor({filehandle:t,renameRefSeqs:n=r=>r}){this.filehandle=t,this.renameRefSeq=n}async getMetadata(t={}){const{indices:n,...r}=await this.parse(t);return r}_findFirstData(t,n){return t?t.compareTo(n)>0?n:t:n}async parse(t={}){return this.parseP||(this.parseP=this._parse(t).catch(n=>{throw this.parseP=void 0,n})),this.parseP}async hasRefSeq(t,n={}){var r;return!!(!((r=(await this.parse(n)).indices[t])===null||r===void 0)&&r.binIndex)}}const jz=21578324,ME=14;function $z(e,t){return e+=1,t-=1,[[0,0],[1+(e>>26),1+(t>>26)],[9+(e>>23),9+(t>>23)],[73+(e>>20),73+(t>>20)],[585+(e>>17),585+(t>>17)],[4681+(e>>14),4681+(t>>14)]]}class rh extends FE{async lineCount(t,n={}){const r=await this.parse(n);if(!r)return-1;const i=r.refNameToId[t];if(!r.indices[i])return-1;const{stats:o}=r.indices[i];return o?o.lineCount:-1}async _parse(t={}){const n=await this.filehandle.readFile(t),r=await li(n);if(So(t.signal),r.readUInt32LE(0)!==jz)throw new Error("Not a TBI file");const i=r.readInt32LE(4),a=r.readInt32LE(8),o=a&65536?"zero-based-half-open":"1-based-closed",u={0:"generic",1:"SAM",2:"VCF"}[a&15];if(!u)throw new Error(`invalid Tabix preset format flags ${a}`);const l={ref:r.readInt32LE(12),start:r.readInt32LE(16),end:r.readInt32LE(20)},c=r.readInt32LE(24),f=5,h=((1<<(f+1)*3)-1)/7,d=2**(14+f*3),p=c?String.fromCharCode(c):null,m=r.readInt32LE(28),y=r.readInt32LE(32),{refNameToId:w,refIdToName:A}=this._parseNameBytes(r.slice(36,36+y));let S=36+y,_;return{indices:new Array(i).fill(0).map(()=>{const I=r.readInt32LE(S);S+=4;const B={};let R;for(let N=0;N<I;N+=1){const re=r.readUInt32LE(S);if(S+=4,re>h+1)throw new Error("tabix index contains too many bins, please use a CSI index");if(re===h+1){const se=r.readInt32LE(S);S+=4,se===2&&(R=this.parsePseudoBin(r,S)),S+=16*se}else{const se=r.readInt32LE(S);S+=4;const te=new Array(se);for(let ge=0;ge<se;ge+=1){const Xe=Co(r,S),De=Co(r,S+8);S+=16,_=this._findFirstData(_,Xe),te[ge]=new nh(Xe,De,re)}B[re]=te}}const M=r.readInt32LE(S);S+=4;const G=new Array(M);for(let N=0;N<M;N+=1)G[N]=Co(r,S),S+=8,_=this._findFirstData(_,G[N]);return{binIndex:B,linearIndex:G,stats:R}}),metaChar:p,maxBinNumber:h,maxRefLength:d,skipLines:m,firstDataLine:_,columnNumbers:l,coordinateType:o,format:u,refIdToName:A,refNameToId:w,maxBlockSize:65536}}parsePseudoBin(t,n){return{lineCount:DE(If.fromBytesLE(t.slice(n+16,n+24),!0))}}_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 blocksForRange(t,n,r,i={}){n<0&&(n=0);const a=await this.parse(i);if(!a)return[];const o=a.refNameToId[t],s=a.indices[o];if(!s)return[];(s.linearIndex.length?s.linearIndex[n>>ME>=s.linearIndex.length?s.linearIndex.length-1:n>>ME]:new Ig(0,0))||console.warn("querying outside of possible tabix range");const l=$z(n,r),c=[];for(const[m,y]of l)for(let w=m;w<=y;w++)if(s.binIndex[w])for(const A of s.binIndex[w])c.push(new nh(A.minv,A.maxv,w));const f=s.linearIndex.length;let h=null;const d=Math.min(n>>14,f-1),p=Math.min(r>>14,f-1);for(let m=d;m<=p;++m){const y=s.linearIndex[m];y&&(!h||y.compareTo(h)<0)&&(h=y)}return RE(c,h)}}const qz=21582659,Wz=38359875;function Zz(e,t){return e*2**t}function PE(e,t){return Math.floor(e/2**t)}class Bg extends FE{constructor(t){super(t),this.maxBinNumber=0,this.depth=0,this.minShift=0}async lineCount(t,n={}){const r=await this.parse(n);if(!r)return-1;const i=r.refNameToId[t];if(!r.indices[i])return-1;const{stats:o}=r.indices[i];return o?o.lineCount:-1}indexCov(){throw new Error("CSI indexes do not support indexcov")}parseAuxData(t,n){const r=t.readInt32LE(n),i=r&65536?"zero-based-half-open":"1-based-closed",a={0:"generic",1:"SAM",2:"VCF"}[r&15];if(!a)throw new Error(`invalid Tabix preset format flags ${r}`);const o={ref:t.readInt32LE(n+4),start:t.readInt32LE(n+8),end:t.readInt32LE(n+12)},s=t.readInt32LE(n+16),u=s?String.fromCharCode(s):null,l=t.readInt32LE(n+20),c=t.readInt32LE(n+24),{refIdToName:f,refNameToId:h}=this._parseNameBytes(t.slice(n+28,n+28+c));return{refIdToName:f,refNameToId:h,skipLines:l,metaChar:u,columnNumbers:o,format:a,coordinateType: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=await li(await this.filehandle.readFile(t));let r;if(n.readUInt32LE(0)===qz)r=1;else if(n.readUInt32LE(0)===Wz)r=2;else throw new Error("Not a CSI file");this.minShift=n.readInt32LE(4),this.depth=n.readInt32LE(8),this.maxBinNumber=((1<<(this.depth+1)*3)-1)/7;const i=2**(this.minShift+this.depth*3),a=n.readInt32LE(12),o=a&&a>=30?this.parseAuxData(n,16):{refIdToName:[],refNameToId:{},metaChar:null,columnNumbers:{ref:0,start:1,end:2},coordinateType:"zero-based-half-open",format:"generic"},s=n.readInt32LE(16+a);let u,l=16+a+4;const c=new Array(s).fill(0).map(()=>{const f=n.readInt32LE(l);l+=4;const h={};let d;for(let p=0;p<f;p+=1){const m=n.readUInt32LE(l);if(m>this.maxBinNumber)d=this.parsePseudoBin(n,l+4),l+=4+8+4+16+16;else{const y=Co(n,l+4);u=this._findFirstData(u,y);const w=n.readInt32LE(l+12);l+=16;const A=new Array(w);for(let S=0;S<w;S+=1){const _=Co(n,l),T=Co(n,l+8);l+=16,A[S]=new nh(_,T,m)}h[m]=A}}return{binIndex:h,stats:d}});return{...o,csi:!0,refCount:s,maxBlockSize:65536,firstDataLine:u,csiVersion:r,indices:c,depth:this.depth,maxBinNumber:this.maxBinNumber,maxRefLength:i}}parsePseudoBin(t,n){return{lineCount:DE(If.fromBytesLE(t.slice(n+28,n+36),!0))}}async blocksForRange(t,n,r,i={}){n<0&&(n=0);const a=await this.parse(i);if(!a)return[];const o=a.refNameToId[t],s=a.indices[o];if(!s)return[];const u=this.reg2bins(n,r),l=[];for(const[c,f]of u)for(let h=c;h<=f;h++)if(s.binIndex[h])for(const d of s.binIndex[h])l.push(new nh(d.minv,d.maxv,h));return RE(l,new Ig(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+=Zz(1,r*3),r+=1){const s=i+PE(t,a),u=i+PE(n,a);if(u-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,u])}return o}}const Dg=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0;function Yz(e){return new Promise(t=>setTimeout(t,e))}class Qz{constructor({path:t,filehandle:n,tbiPath:r,tbiFilehandle:i,csiPath:a,csiFilehandle:o,yieldTime:s=500,chunkSizeLimit:u=5e7,renameRefSeqs:l=f=>f,chunkCacheSize:c=5*2**20}){if(n)this.filehandle=n;else if(t)this.filehandle=new dt(t);else throw new TypeError("must provide either filehandle or path");if(i)this.index=new rh({filehandle:i,renameRefSeqs:l});else if(o)this.index=new Bg({filehandle:o,renameRefSeqs:l});else if(r)this.index=new rh({filehandle:new dt(r),renameRefSeqs:l});else if(a)this.index=new Bg({filehandle:new dt(a),renameRefSeqs:l});else if(t)this.index=new rh({filehandle:new dt(`${t}.tbi`),renameRefSeqs:l});else throw new TypeError("must provide one of tbiFilehandle, tbiPath, csiFilehandle, or csiPath");this.chunkSizeLimit=u,this.renameRefSeq=l,this.yieldTime=s,this.chunkCache=new Of({cache:new Nf({maxSize:Math.floor(c/65536)}),fill:(f,h)=>this.readChunk(f,{signal:h})})}async getLines(t,n,r,i){var a;let o,s={},u;if(i===void 0)throw new TypeError("line callback must be provided");if(typeof i=="function"?u=i:(s=i,u=i.lineCallback,o=i.signal),t===void 0)throw new TypeError("must provide a reference sequence name");if(!u)throw new TypeError("line callback must be provided");const l=await this.index.getMetadata(s);So(o);const c=n??0,f=r??l.maxRefLength;if(!(c<=f))throw new TypeError("invalid start and end coordinates. start must be less than or equal to end");if(c===f)return;const h=await this.index.blocksForRange(t,c,f,s);So(o);for(const p of h){const m=p.fetchedSize();if(m>this.chunkSizeLimit)throw new Error(`Too much data. Chunk size ${m.toLocaleString()} bytes exceeds chunkSizeLimit of ${this.chunkSizeLimit.toLocaleString()}.`)}let d=Date.now();for(const p of h){let m;const{buffer:y,cpositions:w,dpositions:A}=await this.chunkCache.get(p.toString(),p,o);So(o);let S=0,_=0;for(;S<y.length;){const T=y.indexOf(`
|
|
615
|
+
`,S);if(T===-1)break;const I=y.slice(S,T),B=(a=Dg==null?void 0:Dg.decode(I))!==null&&a!==void 0?a:I.toString();if(A){for(;S+p.minv.dataPosition>=A[_++];);_--}const{startCoordinate:R,overlaps:M}=this.checkLine(l,t,c,f,B);if(m!==void 0&&R!==void 0&&m>R)throw new Error(`Lines not sorted by start coordinate (${m} > ${R}), this file is not usable with Tabix.`);if(m=R,M)u(B.trim(),w[_]*256+(S-A[_])+p.minv.dataPosition+1);else if(R!==void 0&&R>=f)return;this.yieldTime&&d-Date.now()>this.yieldTime&&(d=Date.now(),So(o),await Yz(1)),S=T+1}}}async getMetadata(t={}){return this.index.getMetadata(t)}async getHeaderBuffer(t={}){const{firstDataLine:n,metaChar:r,maxBlockSize:i}=await this.getMetadata(t);So(t.signal);const a=((n==null?void 0:n.blockPosition)||0)+i,o=await this._readRegion(0,a,t),s=await li(o);if(r){let u=-1;const l=`
|
|
616
|
+
`.charCodeAt(0),c=r.charCodeAt(0);for(let f=0;f<s.length&&!(f===u+1&&s[f]!==c);f+=1)s[f]===l&&(u=f);return s.slice(0,u+1)}return s}async getHeader(t={}){return(await this.getHeaderBuffer(t)).toString("utf8")}async getReferenceSequenceNames(t={}){return(await this.getMetadata(t)).refIdToName}checkLine(t,n,r,i,a){const{columnNumbers:o,metaChar:s,coordinateType:u,format:l}=t;if(s&&a.startsWith(s))return{overlaps:!1};let{ref:c,start:f,end:h}=o;c||(c=0),f||(f=0),h||(h=0),l==="VCF"&&(h=8);const d=Math.max(c,f,h);let p=1,m=0,y="",w=-1/0;for(let A=0;A<a.length+1;A+=1)if(a[A]===" "||A===a.length){if(p===c){if(this.renameRefSeq(a.slice(m,A))!==n)return{overlaps:!1}}else if(p===f){if(w=parseInt(a.slice(m,A),10),u==="1-based-closed"&&(w-=1),w>=i)return{startCoordinate:w,overlaps:!1};if((h===0||h===f)&&w+1<=r)return{startCoordinate:w,overlaps:!1}}else if(l==="VCF"&&p===4)y=a.slice(m,A);else if(p===h&&(l==="VCF"?this._getVcfEnd(w,y,a.slice(m,A)):parseInt(a.slice(m,A),10))<=r)return{overlaps:!1};if(m=A+1,p+=1,p>d)break}return{startCoordinate:w,overlaps:!0}}_getVcfEnd(t,n,r){let i=t+n.length;const a=r.includes("SVTYPE=TRA");if(r[0]!=="."&&!a){let o=";";for(let s=0;s<r.length;s+=1){if(o===";"&&r.slice(s,s+4)==="END="){let u=r.indexOf(";",s);u===-1&&(u=r.length),i=parseInt(r.slice(s+4,u),10);break}o=r[s]}}else if(a)return t+1;return i}async lineCount(t,n={}){return this.index.lineCount(t,n)}async _readRegion(t,n,r={}){const i=me.Buffer.alloc(n),{bytesRead:a,buffer:o}=await this.filehandle.read(i,0,n,t,r);return o.slice(0,a)}async readChunk(t,n={}){const r=await this._readRegion(t.minv.blockPosition,t.fetchedSize(),n);return Yx(r,t)}}const Xz=Object.freeze(Object.defineProperty({__proto__:null,CSI:Bg,TBI:rh,TabixIndexedFile:Qz},Symbol.toStringTag,{value:"Module"}));var Rg={exports:{}},ko=typeof Reflect=="object"?Reflect:null,LE=ko&&typeof ko.apply=="function"?ko.apply:function(t,n,r){return Function.prototype.apply.call(t,n,r)},ih;ko&&typeof ko.ownKeys=="function"?ih=ko.ownKeys:Object.getOwnPropertySymbols?ih=function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:ih=function(t){return Object.getOwnPropertyNames(t)};function Kz(e){console&&console.warn&&console.warn(e)}var OE=Number.isNaN||function(t){return t!==t};function Be(){Be.init.call(this)}Rg.exports=Be,Rg.exports.once=nU,Be.EventEmitter=Be,Be.prototype._events=void 0,Be.prototype._eventsCount=0,Be.prototype._maxListeners=void 0;var NE=10;function ah(e){if(typeof e!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}Object.defineProperty(Be,"defaultMaxListeners",{enumerable:!0,get:function(){return NE},set:function(e){if(typeof e!="number"||e<0||OE(e))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+e+".");NE=e}}),Be.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},Be.prototype.setMaxListeners=function(t){if(typeof t!="number"||t<0||OE(t))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+t+".");return this._maxListeners=t,this};function zE(e){return e._maxListeners===void 0?Be.defaultMaxListeners:e._maxListeners}Be.prototype.getMaxListeners=function(){return zE(this)},Be.prototype.emit=function(t){for(var n=[],r=1;r<arguments.length;r++)n.push(arguments[r]);var i=t==="error",a=this._events;if(a!==void 0)i=i&&a.error===void 0;else if(!i)return!1;if(i){var o;if(n.length>0&&(o=n[0]),o instanceof Error)throw o;var s=new Error("Unhandled error."+(o?" ("+o.message+")":""));throw s.context=o,s}var u=a[t];if(u===void 0)return!1;if(typeof u=="function")LE(u,this,n);else for(var l=u.length,c=jE(u,l),r=0;r<l;++r)LE(c[r],this,n);return!0};function UE(e,t,n,r){var i,a,o;if(ah(n),a=e._events,a===void 0?(a=e._events=Object.create(null),e._eventsCount=0):(a.newListener!==void 0&&(e.emit("newListener",t,n.listener?n.listener:n),a=e._events),o=a[t]),o===void 0)o=a[t]=n,++e._eventsCount;else if(typeof o=="function"?o=a[t]=r?[n,o]:[o,n]:r?o.unshift(n):o.push(n),i=zE(e),i>0&&o.length>i&&!o.warned){o.warned=!0;var s=new Error("Possible EventEmitter memory leak detected. "+o.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");s.name="MaxListenersExceededWarning",s.emitter=e,s.type=t,s.count=o.length,Kz(s)}return e}Be.prototype.addListener=function(t,n){return UE(this,t,n,!1)},Be.prototype.on=Be.prototype.addListener,Be.prototype.prependListener=function(t,n){return UE(this,t,n,!0)};function Jz(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function GE(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},i=Jz.bind(r);return i.listener=n,r.wrapFn=i,i}Be.prototype.once=function(t,n){return ah(n),this.on(t,GE(this,t,n)),this},Be.prototype.prependOnceListener=function(t,n){return ah(n),this.prependListener(t,GE(this,t,n)),this},Be.prototype.removeListener=function(t,n){var r,i,a,o,s;if(ah(n),i=this._events,i===void 0)return this;if(r=i[t],r===void 0)return this;if(r===n||r.listener===n)--this._eventsCount===0?this._events=Object.create(null):(delete i[t],i.removeListener&&this.emit("removeListener",t,r.listener||n));else if(typeof r!="function"){for(a=-1,o=r.length-1;o>=0;o--)if(r[o]===n||r[o].listener===n){s=r[o].listener,a=o;break}if(a<0)return this;a===0?r.shift():eU(r,a),r.length===1&&(i[t]=r[0]),i.removeListener!==void 0&&this.emit("removeListener",t,s||n)}return this},Be.prototype.off=Be.prototype.removeListener,Be.prototype.removeAllListeners=function(t){var n,r,i;if(r=this._events,r===void 0)return this;if(r.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):r[t]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete r[t]),this;if(arguments.length===0){var a=Object.keys(r),o;for(i=0;i<a.length;++i)o=a[i],o!=="removeListener"&&this.removeAllListeners(o);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if(n=r[t],typeof n=="function")this.removeListener(t,n);else if(n!==void 0)for(i=n.length-1;i>=0;i--)this.removeListener(t,n[i]);return this};function HE(e,t,n){var r=e._events;if(r===void 0)return[];var i=r[t];return i===void 0?[]:typeof i=="function"?n?[i.listener||i]:[i]:n?tU(i):jE(i,i.length)}Be.prototype.listeners=function(t){return HE(this,t,!0)},Be.prototype.rawListeners=function(t){return HE(this,t,!1)},Be.listenerCount=function(e,t){return typeof e.listenerCount=="function"?e.listenerCount(t):VE.call(e,t)},Be.prototype.listenerCount=VE;function VE(e){var t=this._events;if(t!==void 0){var n=t[e];if(typeof n=="function")return 1;if(n!==void 0)return n.length}return 0}Be.prototype.eventNames=function(){return this._eventsCount>0?ih(this._events):[]};function jE(e,t){for(var n=new Array(t),r=0;r<t;++r)n[r]=e[r];return n}function eU(e,t){for(;t+1<e.length;t++)e[t]=e[t+1];e.pop()}function tU(e){for(var t=new Array(e.length),n=0;n<t.length;++n)t[n]=e[n].listener||e[n];return t}function nU(e,t){return new Promise(function(n,r){function i(o){e.removeListener(t,a),r(o)}function a(){typeof e.removeListener=="function"&&e.removeListener("error",i),n([].slice.call(arguments))}$E(e,t,a,{once:!0}),t!=="error"&&rU(e,i,{once:!0})})}function rU(e,t,n){typeof e.on=="function"&&$E(e,"error",t,n)}function $E(e,t,n,r){if(typeof e.on=="function")r.once?e.once(t,n):e.on(t,n);else if(typeof e.addEventListener=="function")e.addEventListener(t,function i(a){r.once&&e.removeEventListener(t,i),n(a)});else throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof e)}var Fg=Rg.exports,Mg={exports:{}};typeof Object.create=="function"?Mg.exports=function(t,n){n&&(t.super_=n,t.prototype=Object.create(n.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}))}:Mg.exports=function(t,n){if(n){t.super_=n;var r=function(){};r.prototype=n.prototype,t.prototype=new r,t.prototype.constructor=t}};var To=Mg.exports,Pg,qE;function WE(){return qE||(qE=1,Pg=Fg.EventEmitter),Pg}const ZE=m7(S7);var Lg,YE;function iU(){if(YE)return Lg;YE=1;function e(p,m){var y=Object.keys(p);if(Object.getOwnPropertySymbols){var w=Object.getOwnPropertySymbols(p);m&&(w=w.filter(function(A){return Object.getOwnPropertyDescriptor(p,A).enumerable})),y.push.apply(y,w)}return y}function t(p){for(var m=1;m<arguments.length;m++){var y=arguments[m]!=null?arguments[m]:{};m%2?e(Object(y),!0).forEach(function(w){n(p,w,y[w])}):Object.getOwnPropertyDescriptors?Object.defineProperties(p,Object.getOwnPropertyDescriptors(y)):e(Object(y)).forEach(function(w){Object.defineProperty(p,w,Object.getOwnPropertyDescriptor(y,w))})}return p}function n(p,m,y){return m=o(m),m in p?Object.defineProperty(p,m,{value:y,enumerable:!0,configurable:!0,writable:!0}):p[m]=y,p}function r(p,m){if(!(p instanceof m))throw new TypeError("Cannot call a class as a function")}function i(p,m){for(var y=0;y<m.length;y++){var w=m[y];w.enumerable=w.enumerable||!1,w.configurable=!0,"value"in w&&(w.writable=!0),Object.defineProperty(p,o(w.key),w)}}function a(p,m,y){return m&&i(p.prototype,m),y&&i(p,y),Object.defineProperty(p,"prototype",{writable:!1}),p}function o(p){var m=s(p,"string");return typeof m=="symbol"?m:String(m)}function s(p,m){if(typeof p!="object"||p===null)return p;var y=p[Symbol.toPrimitive];if(y!==void 0){var w=y.call(p,m||"default");if(typeof w!="object")return w;throw new TypeError("@@toPrimitive must return a primitive value.")}return(m==="string"?String:Number)(p)}var u=me,l=u.Buffer,c=ZE,f=c.inspect,h=f&&f.custom||"inspect";function d(p,m,y){l.prototype.copy.call(p,m,y)}return Lg=function(){function p(){r(this,p),this.head=null,this.tail=null,this.length=0}return a(p,[{key:"push",value:function(y){var w={data:y,next:null};this.length>0?this.tail.next=w:this.head=w,this.tail=w,++this.length}},{key:"unshift",value:function(y){var w={data:y,next:this.head};this.length===0&&(this.tail=w),this.head=w,++this.length}},{key:"shift",value:function(){if(this.length!==0){var y=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,y}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(y){if(this.length===0)return"";for(var w=this.head,A=""+w.data;w=w.next;)A+=y+w.data;return A}},{key:"concat",value:function(y){if(this.length===0)return l.alloc(0);for(var w=l.allocUnsafe(y>>>0),A=this.head,S=0;A;)d(A.data,w,S),S+=A.data.length,A=A.next;return w}},{key:"consume",value:function(y,w){var A;return y<this.head.data.length?(A=this.head.data.slice(0,y),this.head.data=this.head.data.slice(y)):y===this.head.data.length?A=this.shift():A=w?this._getString(y):this._getBuffer(y),A}},{key:"first",value:function(){return this.head.data}},{key:"_getString",value:function(y){var w=this.head,A=1,S=w.data;for(y-=S.length;w=w.next;){var _=w.data,T=y>_.length?_.length:y;if(T===_.length?S+=_:S+=_.slice(0,y),y-=T,y===0){T===_.length?(++A,w.next?this.head=w.next:this.head=this.tail=null):(this.head=w,w.data=_.slice(T));break}++A}return this.length-=A,S}},{key:"_getBuffer",value:function(y){var w=l.allocUnsafe(y),A=this.head,S=1;for(A.data.copy(w),y-=A.data.length;A=A.next;){var _=A.data,T=y>_.length?_.length:y;if(_.copy(w,w.length-y,0,T),y-=T,y===0){T===_.length?(++S,A.next?this.head=A.next:this.head=this.tail=null):(this.head=A,A.data=_.slice(T));break}++S}return this.length-=S,w}},{key:h,value:function(y,w){return f(this,t(t({},w),{},{depth:0,customInspect:!1}))}}]),p}(),Lg}var Og,QE;function XE(){if(QE)return Og;QE=1;function e(o,s){var u=this,l=this._readableState&&this._readableState.destroyed,c=this._writableState&&this._writableState.destroyed;return l||c?(s?s(o):o&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,process.nextTick(i,this,o)):process.nextTick(i,this,o)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(o||null,function(f){!s&&f?u._writableState?u._writableState.errorEmitted?process.nextTick(n,u):(u._writableState.errorEmitted=!0,process.nextTick(t,u,f)):process.nextTick(t,u,f):s?(process.nextTick(n,u),s(f)):process.nextTick(n,u)}),this)}function t(o,s){i(o,s),n(o)}function n(o){o._writableState&&!o._writableState.emitClose||o._readableState&&!o._readableState.emitClose||o.emit("close")}function r(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function i(o,s){o.emit("error",s)}function a(o,s){var u=o._readableState,l=o._writableState;u&&u.autoDestroy||l&&l.autoDestroy?o.destroy(s):o.emit("error",s)}return Og={destroy:e,undestroy:r,errorOrDestroy:a},Og}var Ng={},KE;function Io(){if(KE)return Ng;KE=1;function e(s,u){s.prototype=Object.create(u.prototype),s.prototype.constructor=s,s.__proto__=u}var t={};function n(s,u,l){l||(l=Error);function c(h,d,p){return typeof u=="string"?u:u(h,d,p)}var f=function(h){e(d,h);function d(p,m,y){return h.call(this,c(p,m,y))||this}return d}(l);f.prototype.name=l.name,f.prototype.code=s,t[s]=f}function r(s,u){if(Array.isArray(s)){var l=s.length;return s=s.map(function(c){return String(c)}),l>2?"one of ".concat(u," ").concat(s.slice(0,l-1).join(", "),", or ")+s[l-1]:l===2?"one of ".concat(u," ").concat(s[0]," or ").concat(s[1]):"of ".concat(u," ").concat(s[0])}else return"of ".concat(u," ").concat(String(s))}function i(s,u,l){return s.substr(!l||l<0?0:+l,u.length)===u}function a(s,u,l){return(l===void 0||l>s.length)&&(l=s.length),s.substring(l-u.length,l)===u}function o(s,u,l){return typeof l!="number"&&(l=0),l+u.length>s.length?!1:s.indexOf(u,l)!==-1}return n("ERR_INVALID_OPT_VALUE",function(s,u){return'The value "'+u+'" is invalid for option "'+s+'"'},TypeError),n("ERR_INVALID_ARG_TYPE",function(s,u,l){var c;typeof u=="string"&&i(u,"not ")?(c="must not be",u=u.replace(/^not /,"")):c="must be";var f;if(a(s," argument"))f="The ".concat(s," ").concat(c," ").concat(r(u,"type"));else{var h=o(s,".")?"property":"argument";f='The "'.concat(s,'" ').concat(h," ").concat(c," ").concat(r(u,"type"))}return f+=". Received type ".concat(typeof l),f},TypeError),n("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),n("ERR_METHOD_NOT_IMPLEMENTED",function(s){return"The "+s+" method is not implemented"}),n("ERR_STREAM_PREMATURE_CLOSE","Premature close"),n("ERR_STREAM_DESTROYED",function(s){return"Cannot call "+s+" after a stream was destroyed"}),n("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),n("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),n("ERR_STREAM_WRITE_AFTER_END","write after end"),n("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),n("ERR_UNKNOWN_ENCODING",function(s){return"Unknown encoding: "+s},TypeError),n("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),Ng.codes=t,Ng}var zg,JE;function e_(){if(JE)return zg;JE=1;var e=Io().codes.ERR_INVALID_OPT_VALUE;function t(r,i,a){return r.highWaterMark!=null?r.highWaterMark:i?r[a]:null}function n(r,i,a,o){var s=t(i,o,a);if(s!=null){if(!(isFinite(s)&&Math.floor(s)===s)||s<0){var u=o?a:"highWaterMark";throw new e(u,s)}return Math.floor(s)}return r.objectMode?16:16*1024}return zg={getHighWaterMark:n},zg}var Ug,t_;function aU(){if(t_)return Ug;t_=1,Ug=e;function e(n,r){if(t("noDeprecation"))return n;var i=!1;function a(){if(!i){if(t("throwDeprecation"))throw new Error(r);t("traceDeprecation")?console.trace(r):console.warn(r),i=!0}return n.apply(this,arguments)}return a}function t(n){try{if(!globalThis.localStorage)return!1}catch{return!1}var r=globalThis.localStorage[n];return r==null?!1:String(r).toLowerCase()==="true"}return Ug}var Gg,n_;function r_(){if(n_)return Gg;n_=1,Gg=R;function e(L){var P=this;this.next=null,this.entry=null,this.finish=function(){Ne(P,L)}}var t;R.WritableState=I;var n={deprecate:aU()},r=WE(),i=me.Buffer,a=(typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function o(L){return i.from(L)}function s(L){return i.isBuffer(L)||L instanceof a}var u=XE(),l=e_(),c=l.getHighWaterMark,f=Io().codes,h=f.ERR_INVALID_ARG_TYPE,d=f.ERR_METHOD_NOT_IMPLEMENTED,p=f.ERR_MULTIPLE_CALLBACK,m=f.ERR_STREAM_CANNOT_PIPE,y=f.ERR_STREAM_DESTROYED,w=f.ERR_STREAM_NULL_VALUES,A=f.ERR_STREAM_WRITE_AFTER_END,S=f.ERR_UNKNOWN_ENCODING,_=u.errorOrDestroy;To(R,r);function T(){}function I(L,P,$){t=t||Bo(),L=L||{},typeof $!="boolean"&&($=P instanceof t),this.objectMode=!!L.objectMode,$&&(this.objectMode=this.objectMode||!!L.writableObjectMode),this.highWaterMark=c(this,L,"writableHighWaterMark",$),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var V=L.decodeStrings===!1;this.decodeStrings=!V,this.defaultEncoding=L.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(Z){Xe(P,Z)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=L.emitClose!==!1,this.autoDestroy=!!L.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new e(this)}I.prototype.getBuffer=function(){for(var P=this.bufferedRequest,$=[];P;)$.push(P),P=P.next;return $},function(){try{Object.defineProperty(I.prototype,"buffer",{get:n.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}}();var B;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(B=Function.prototype[Symbol.hasInstance],Object.defineProperty(R,Symbol.hasInstance,{value:function(P){return B.call(this,P)?!0:this!==R?!1:P&&P._writableState instanceof I}})):B=function(P){return P instanceof this};function R(L){t=t||Bo();var P=this instanceof t;if(!P&&!B.call(R,this))return new R(L);this._writableState=new I(L,this,P),this.writable=!0,L&&(typeof L.write=="function"&&(this._write=L.write),typeof L.writev=="function"&&(this._writev=L.writev),typeof L.destroy=="function"&&(this._destroy=L.destroy),typeof L.final=="function"&&(this._final=L.final)),r.call(this)}R.prototype.pipe=function(){_(this,new m)};function M(L,P){var $=new A;_(L,$),process.nextTick(P,$)}function G(L,P,$,V){var Z;return $===null?Z=new w:typeof $!="string"&&!P.objectMode&&(Z=new h("chunk",["string","Buffer"],$)),Z?(_(L,Z),process.nextTick(V,Z),!1):!0}R.prototype.write=function(L,P,$){var V=this._writableState,Z=!1,C=!V.objectMode&&s(L);return C&&!i.isBuffer(L)&&(L=o(L)),typeof P=="function"&&($=P,P=null),C?P="buffer":P||(P=V.defaultEncoding),typeof $!="function"&&($=T),V.ending?M(this,$):(C||G(this,V,L,$))&&(V.pendingcb++,Z=re(this,V,C,L,P,$)),Z},R.prototype.cork=function(){this._writableState.corked++},R.prototype.uncork=function(){var L=this._writableState;L.corked&&(L.corked--,!L.writing&&!L.corked&&!L.bufferProcessing&&L.bufferedRequest&&We(this,L))},R.prototype.setDefaultEncoding=function(P){if(typeof P=="string"&&(P=P.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((P+"").toLowerCase())>-1))throw new S(P);return this._writableState.defaultEncoding=P,this},Object.defineProperty(R.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});function N(L,P,$){return!L.objectMode&&L.decodeStrings!==!1&&typeof P=="string"&&(P=i.from(P,$)),P}Object.defineProperty(R.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function re(L,P,$,V,Z,C){if(!$){var x=N(P,V,Z);V!==x&&($=!0,Z="buffer",V=x)}var H=P.objectMode?1:V.length;P.length+=H;var q=P.length<P.highWaterMark;if(q||(P.needDrain=!0),P.writing||P.corked){var ue=P.lastBufferedRequest;P.lastBufferedRequest={chunk:V,encoding:Z,isBuf:$,callback:C,next:null},ue?ue.next=P.lastBufferedRequest:P.bufferedRequest=P.lastBufferedRequest,P.bufferedRequestCount+=1}else se(L,P,!1,H,V,Z,C);return q}function se(L,P,$,V,Z,C,x){P.writelen=V,P.writecb=x,P.writing=!0,P.sync=!0,P.destroyed?P.onwrite(new y("write")):$?L._writev(Z,P.onwrite):L._write(Z,C,P.onwrite),P.sync=!1}function te(L,P,$,V,Z){--P.pendingcb,$?(process.nextTick(Z,V),process.nextTick(gt,L,P),L._writableState.errorEmitted=!0,_(L,V)):(Z(V),L._writableState.errorEmitted=!0,_(L,V),gt(L,P))}function ge(L){L.writing=!1,L.writecb=null,L.length-=L.writelen,L.writelen=0}function Xe(L,P){var $=L._writableState,V=$.sync,Z=$.writecb;if(typeof Z!="function")throw new p;if(ge($),P)te(L,$,V,P,Z);else{var C=Je($)||L.destroyed;!C&&!$.corked&&!$.bufferProcessing&&$.bufferedRequest&&We(L,$),V?process.nextTick(De,L,$,C,Z):De(L,$,C,Z)}}function De(L,P,$,V){$||Ke(L,P),P.pendingcb--,V(),gt(L,P)}function Ke(L,P){P.length===0&&P.needDrain&&(P.needDrain=!1,L.emit("drain"))}function We(L,P){P.bufferProcessing=!0;var $=P.bufferedRequest;if(L._writev&&$&&$.next){var V=P.bufferedRequestCount,Z=new Array(V),C=P.corkedRequestsFree;C.entry=$;for(var x=0,H=!0;$;)Z[x]=$,$.isBuf||(H=!1),$=$.next,x+=1;Z.allBuffers=H,se(L,P,!0,P.length,Z,"",C.finish),P.pendingcb++,P.lastBufferedRequest=null,C.next?(P.corkedRequestsFree=C.next,C.next=null):P.corkedRequestsFree=new e(P),P.bufferedRequestCount=0}else{for(;$;){var q=$.chunk,ue=$.encoding,ne=$.callback,ce=P.objectMode?1:q.length;if(se(L,P,!1,ce,q,ue,ne),$=$.next,P.bufferedRequestCount--,P.writing)break}$===null&&(P.lastBufferedRequest=null)}P.bufferedRequest=$,P.bufferProcessing=!1}R.prototype._write=function(L,P,$){$(new d("_write()"))},R.prototype._writev=null,R.prototype.end=function(L,P,$){var V=this._writableState;return typeof L=="function"?($=L,L=null,P=null):typeof P=="function"&&($=P,P=null),L!=null&&this.write(L,P),V.corked&&(V.corked=1,this.uncork()),V.ending||$t(this,V,$),this},Object.defineProperty(R.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}});function Je(L){return L.ending&&L.length===0&&L.bufferedRequest===null&&!L.finished&&!L.writing}function _e(L,P){L._final(function($){P.pendingcb--,$&&_(L,$),P.prefinished=!0,L.emit("prefinish"),gt(L,P)})}function Se(L,P){!P.prefinished&&!P.finalCalled&&(typeof L._final=="function"&&!P.destroyed?(P.pendingcb++,P.finalCalled=!0,process.nextTick(_e,L,P)):(P.prefinished=!0,L.emit("prefinish")))}function gt(L,P){var $=Je(P);if($&&(Se(L,P),P.pendingcb===0&&(P.finished=!0,L.emit("finish"),P.autoDestroy))){var V=L._readableState;(!V||V.autoDestroy&&V.endEmitted)&&L.destroy()}return $}function $t(L,P,$){P.ending=!0,gt(L,P),$&&(P.finished?process.nextTick($):L.once("finish",$)),P.ended=!0,L.writable=!1}function Ne(L,P,$){var V=L.entry;for(L.entry=null;V;){var Z=V.callback;P.pendingcb--,Z($),V=V.next}P.corkedRequestsFree.next=L}return Object.defineProperty(R.prototype,"destroyed",{enumerable:!1,get:function(){return this._writableState===void 0?!1:this._writableState.destroyed},set:function(P){this._writableState&&(this._writableState.destroyed=P)}}),R.prototype.destroy=u.destroy,R.prototype._undestroy=u.undestroy,R.prototype._destroy=function(L,P){P(L)},Gg}var Hg,i_;function Bo(){if(i_)return Hg;i_=1;var e=Object.keys||function(l){var c=[];for(var f in l)c.push(f);return c};Hg=o;var t=c_(),n=r_();To(o,t);for(var r=e(n.prototype),i=0;i<r.length;i++){var a=r[i];o.prototype[a]||(o.prototype[a]=n.prototype[a])}function o(l){if(!(this instanceof o))return new o(l);t.call(this,l),n.call(this,l),this.allowHalfOpen=!0,l&&(l.readable===!1&&(this.readable=!1),l.writable===!1&&(this.writable=!1),l.allowHalfOpen===!1&&(this.allowHalfOpen=!1,this.once("end",s)))}Object.defineProperty(o.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),Object.defineProperty(o.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(o.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}});function s(){this._writableState.ended||process.nextTick(u,this)}function u(l){l.end()}return Object.defineProperty(o.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0||this._writableState===void 0?!1:this._readableState.destroyed&&this._writableState.destroyed},set:function(c){this._readableState===void 0||this._writableState===void 0||(this._readableState.destroyed=c,this._writableState.destroyed=c)}}),Hg}var Vg={},jg={exports:{}};(function(e,t){var n=me,r=n.Buffer;function i(o,s){for(var u in o)s[u]=o[u]}r.from&&r.alloc&&r.allocUnsafe&&r.allocUnsafeSlow?e.exports=n:(i(n,t),t.Buffer=a);function a(o,s,u){return r(o,s,u)}i(r,a),a.from=function(o,s,u){if(typeof o=="number")throw new TypeError("Argument must not be a number");return r(o,s,u)},a.alloc=function(o,s,u){if(typeof o!="number")throw new TypeError("Argument must be a number");var l=r(o);return s!==void 0?typeof u=="string"?l.fill(s,u):l.fill(s):l.fill(0),l},a.allocUnsafe=function(o){if(typeof o!="number")throw new TypeError("Argument must be a number");return r(o)},a.allocUnsafeSlow=function(o){if(typeof o!="number")throw new TypeError("Argument must be a number");return n.SlowBuffer(o)}})(jg,jg.exports);var oU=jg.exports,$g=oU.Buffer,a_=$g.isEncoding||function(e){switch(e=""+e,e&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function sU(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}function lU(e){var t=sU(e);if(typeof t!="string"&&($g.isEncoding===a_||!a_(e)))throw new Error("Unknown encoding: "+e);return t||e}var uU=Vg.StringDecoder=Yl;function Yl(e){this.encoding=lU(e);var t;switch(this.encoding){case"utf16le":this.text=gU,this.end=mU,t=4;break;case"utf8":this.fillLast=hU,t=4;break;case"base64":this.text=bU,this.end=yU,t=3;break;default:this.write=wU,this.end=vU;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=$g.allocUnsafe(t)}Yl.prototype.write=function(e){if(e.length===0)return"";var t,n;if(this.lastNeed){if(t=this.fillLast(e),t===void 0)return"";n=this.lastNeed,this.lastNeed=0}else n=0;return n<e.length?t?t+this.text(e,n):this.text(e,n):t||""},Yl.prototype.end=pU,Yl.prototype.text=dU,Yl.prototype.fillLast=function(e){if(this.lastNeed<=e.length)return e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length),this.lastNeed-=e.length};function qg(e){return e<=127?0:e>>5===6?2:e>>4===14?3:e>>3===30?4:e>>6===2?-1:-2}function cU(e,t,n){var r=t.length-1;if(r<n)return 0;var i=qg(t[r]);return i>=0?(i>0&&(e.lastNeed=i-1),i):--r<n||i===-2?0:(i=qg(t[r]),i>=0?(i>0&&(e.lastNeed=i-2),i):--r<n||i===-2?0:(i=qg(t[r]),i>=0?(i>0&&(i===2?i=0:e.lastNeed=i-3),i):0))}function fU(e,t,n){if((t[0]&192)!==128)return e.lastNeed=0,"�";if(e.lastNeed>1&&t.length>1){if((t[1]&192)!==128)return e.lastNeed=1,"�";if(e.lastNeed>2&&t.length>2&&(t[2]&192)!==128)return e.lastNeed=2,"�"}}function hU(e){var t=this.lastTotal-this.lastNeed,n=fU(this,e);if(n!==void 0)return n;if(this.lastNeed<=e.length)return e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,t,0,e.length),this.lastNeed-=e.length}function dU(e,t){var n=cU(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=n;var r=e.length-(n-this.lastNeed);return e.copy(this.lastChar,0,r),e.toString("utf8",t,r)}function pU(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+"�":t}function gU(e,t){if((e.length-t)%2===0){var n=e.toString("utf16le",t);if(n){var r=n.charCodeAt(n.length-1);if(r>=55296&&r<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],n.slice(0,-1)}return n}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function mU(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var n=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,n)}return t}function bU(e,t){var n=(e.length-t)%3;return n===0?e.toString("base64",t):(this.lastNeed=3-n,this.lastTotal=3,n===1?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-n))}function yU(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function wU(e){return e.toString(this.encoding)}function vU(e){return e&&e.length?this.write(e):""}var Wg,o_;function Zg(){if(o_)return Wg;o_=1;var e=Io().codes.ERR_STREAM_PREMATURE_CLOSE;function t(a){var o=!1;return function(){if(!o){o=!0;for(var s=arguments.length,u=new Array(s),l=0;l<s;l++)u[l]=arguments[l];a.apply(this,u)}}}function n(){}function r(a){return a.setHeader&&typeof a.abort=="function"}function i(a,o,s){if(typeof o=="function")return i(a,null,o);o||(o={}),s=t(s||n);var u=o.readable||o.readable!==!1&&a.readable,l=o.writable||o.writable!==!1&&a.writable,c=function(){a.writable||h()},f=a._writableState&&a._writableState.finished,h=function(){l=!1,f=!0,u||s.call(a)},d=a._readableState&&a._readableState.endEmitted,p=function(){u=!1,d=!0,l||s.call(a)},m=function(S){s.call(a,S)},y=function(){var S;if(u&&!d)return(!a._readableState||!a._readableState.ended)&&(S=new e),s.call(a,S);if(l&&!f)return(!a._writableState||!a._writableState.ended)&&(S=new e),s.call(a,S)},w=function(){a.req.on("finish",h)};return r(a)?(a.on("complete",h),a.on("abort",y),a.req?w():a.on("request",w)):l&&!a._writableState&&(a.on("end",c),a.on("close",c)),a.on("end",p),a.on("finish",h),o.error!==!1&&a.on("error",m),a.on("close",y),function(){a.removeListener("complete",h),a.removeListener("abort",y),a.removeListener("request",w),a.req&&a.req.removeListener("finish",h),a.removeListener("end",c),a.removeListener("close",c),a.removeListener("finish",h),a.removeListener("end",p),a.removeListener("error",m),a.removeListener("close",y)}}return Wg=i,Wg}var Yg,s_;function xU(){if(s_)return Yg;s_=1;var e;function t(S,_,T){return _=n(_),_ in S?Object.defineProperty(S,_,{value:T,enumerable:!0,configurable:!0,writable:!0}):S[_]=T,S}function n(S){var _=r(S,"string");return typeof _=="symbol"?_:String(_)}function r(S,_){if(typeof S!="object"||S===null)return S;var T=S[Symbol.toPrimitive];if(T!==void 0){var I=T.call(S,_||"default");if(typeof I!="object")return I;throw new TypeError("@@toPrimitive must return a primitive value.")}return(_==="string"?String:Number)(S)}var i=Zg(),a=Symbol("lastResolve"),o=Symbol("lastReject"),s=Symbol("error"),u=Symbol("ended"),l=Symbol("lastPromise"),c=Symbol("handlePromise"),f=Symbol("stream");function h(S,_){return{value:S,done:_}}function d(S){var _=S[a];if(_!==null){var T=S[f].read();T!==null&&(S[l]=null,S[a]=null,S[o]=null,_(h(T,!1)))}}function p(S){process.nextTick(d,S)}function m(S,_){return function(T,I){S.then(function(){if(_[u]){T(h(void 0,!0));return}_[c](T,I)},I)}}var y=Object.getPrototypeOf(function(){}),w=Object.setPrototypeOf((e={get stream(){return this[f]},next:function(){var _=this,T=this[s];if(T!==null)return Promise.reject(T);if(this[u])return Promise.resolve(h(void 0,!0));if(this[f].destroyed)return new Promise(function(M,G){process.nextTick(function(){_[s]?G(_[s]):M(h(void 0,!0))})});var I=this[l],B;if(I)B=new Promise(m(I,this));else{var R=this[f].read();if(R!==null)return Promise.resolve(h(R,!1));B=new Promise(this[c])}return this[l]=B,B}},t(e,Symbol.asyncIterator,function(){return this}),t(e,"return",function(){var _=this;return new Promise(function(T,I){_[f].destroy(null,function(B){if(B){I(B);return}T(h(void 0,!0))})})}),e),y),A=function(_){var T,I=Object.create(w,(T={},t(T,f,{value:_,writable:!0}),t(T,a,{value:null,writable:!0}),t(T,o,{value:null,writable:!0}),t(T,s,{value:null,writable:!0}),t(T,u,{value:_._readableState.endEmitted,writable:!0}),t(T,c,{value:function(R,M){var G=I[f].read();G?(I[l]=null,I[a]=null,I[o]=null,R(h(G,!1))):(I[a]=R,I[o]=M)},writable:!0}),T));return I[l]=null,i(_,function(B){if(B&&B.code!=="ERR_STREAM_PREMATURE_CLOSE"){var R=I[o];R!==null&&(I[l]=null,I[a]=null,I[o]=null,R(B)),I[s]=B;return}var M=I[a];M!==null&&(I[l]=null,I[a]=null,I[o]=null,M(h(void 0,!0))),I[u]=!0}),_.on("readable",p.bind(null,I)),I};return Yg=A,Yg}var Qg,l_;function AU(){return l_||(l_=1,Qg=function(){throw new Error("Readable.from is not available in the browser")}),Qg}var Xg,u_;function c_(){if(u_)return Xg;u_=1,Xg=M;var e;M.ReadableState=R,Fg.EventEmitter;var t=function(x,H){return x.listeners(H).length},n=WE(),r=me.Buffer,i=(typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function a(C){return r.from(C)}function o(C){return r.isBuffer(C)||C instanceof i}var s=ZE,u;s&&s.debuglog?u=s.debuglog("stream"):u=function(){};var l=iU(),c=XE(),f=e_(),h=f.getHighWaterMark,d=Io().codes,p=d.ERR_INVALID_ARG_TYPE,m=d.ERR_STREAM_PUSH_AFTER_EOF,y=d.ERR_METHOD_NOT_IMPLEMENTED,w=d.ERR_STREAM_UNSHIFT_AFTER_END_EVENT,A,S,_;To(M,n);var T=c.errorOrDestroy,I=["error","close","destroy","pause","resume"];function B(C,x,H){if(typeof C.prependListener=="function")return C.prependListener(x,H);!C._events||!C._events[x]?C.on(x,H):Array.isArray(C._events[x])?C._events[x].unshift(H):C._events[x]=[H,C._events[x]]}function R(C,x,H){e=e||Bo(),C=C||{},typeof H!="boolean"&&(H=x instanceof e),this.objectMode=!!C.objectMode,H&&(this.objectMode=this.objectMode||!!C.readableObjectMode),this.highWaterMark=h(this,C,"readableHighWaterMark",H),this.buffer=new l,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=C.emitClose!==!1,this.autoDestroy=!!C.autoDestroy,this.destroyed=!1,this.defaultEncoding=C.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,C.encoding&&(A||(A=Vg.StringDecoder),this.decoder=new A(C.encoding),this.encoding=C.encoding)}function M(C){if(e=e||Bo(),!(this instanceof M))return new M(C);var x=this instanceof e;this._readableState=new R(C,this,x),this.readable=!0,C&&(typeof C.read=="function"&&(this._read=C.read),typeof C.destroy=="function"&&(this._destroy=C.destroy)),n.call(this)}Object.defineProperty(M.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0?!1:this._readableState.destroyed},set:function(x){this._readableState&&(this._readableState.destroyed=x)}}),M.prototype.destroy=c.destroy,M.prototype._undestroy=c.undestroy,M.prototype._destroy=function(C,x){x(C)},M.prototype.push=function(C,x){var H=this._readableState,q;return H.objectMode?q=!0:typeof C=="string"&&(x=x||H.defaultEncoding,x!==H.encoding&&(C=r.from(C,x),x=""),q=!0),G(this,C,x,!1,q)},M.prototype.unshift=function(C){return G(this,C,null,!0,!1)};function G(C,x,H,q,ue){u("readableAddChunk",x);var ne=C._readableState;if(x===null)ne.reading=!1,Xe(C,ne);else{var ce;if(ue||(ce=re(ne,x)),ce)T(C,ce);else if(ne.objectMode||x&&x.length>0)if(typeof x!="string"&&!ne.objectMode&&Object.getPrototypeOf(x)!==r.prototype&&(x=a(x)),q)ne.endEmitted?T(C,new w):N(C,ne,x,!0);else if(ne.ended)T(C,new m);else{if(ne.destroyed)return!1;ne.reading=!1,ne.decoder&&!H?(x=ne.decoder.write(x),ne.objectMode||x.length!==0?N(C,ne,x,!1):We(C,ne)):N(C,ne,x,!1)}else q||(ne.reading=!1,We(C,ne))}return!ne.ended&&(ne.length<ne.highWaterMark||ne.length===0)}function N(C,x,H,q){x.flowing&&x.length===0&&!x.sync?(x.awaitDrain=0,C.emit("data",H)):(x.length+=x.objectMode?1:H.length,q?x.buffer.unshift(H):x.buffer.push(H),x.needReadable&&De(C)),We(C,x)}function re(C,x){var H;return!o(x)&&typeof x!="string"&&x!==void 0&&!C.objectMode&&(H=new p("chunk",["string","Buffer","Uint8Array"],x)),H}M.prototype.isPaused=function(){return this._readableState.flowing===!1},M.prototype.setEncoding=function(C){A||(A=Vg.StringDecoder);var x=new A(C);this._readableState.decoder=x,this._readableState.encoding=this._readableState.decoder.encoding;for(var H=this._readableState.buffer.head,q="";H!==null;)q+=x.write(H.data),H=H.next;return this._readableState.buffer.clear(),q!==""&&this._readableState.buffer.push(q),this._readableState.length=q.length,this};var se=1073741824;function te(C){return C>=se?C=se:(C--,C|=C>>>1,C|=C>>>2,C|=C>>>4,C|=C>>>8,C|=C>>>16,C++),C}function ge(C,x){return C<=0||x.length===0&&x.ended?0:x.objectMode?1:C!==C?x.flowing&&x.length?x.buffer.head.data.length:x.length:(C>x.highWaterMark&&(x.highWaterMark=te(C)),C<=x.length?C:x.ended?x.length:(x.needReadable=!0,0))}M.prototype.read=function(C){u("read",C),C=parseInt(C,10);var x=this._readableState,H=C;if(C!==0&&(x.emittedReadable=!1),C===0&&x.needReadable&&((x.highWaterMark!==0?x.length>=x.highWaterMark:x.length>0)||x.ended))return u("read: emitReadable",x.length,x.ended),x.length===0&&x.ended?$(this):De(this),null;if(C=ge(C,x),C===0&&x.ended)return x.length===0&&$(this),null;var q=x.needReadable;u("need readable",q),(x.length===0||x.length-C<x.highWaterMark)&&(q=!0,u("length less than watermark",q)),x.ended||x.reading?(q=!1,u("reading or ended",q)):q&&(u("do read"),x.reading=!0,x.sync=!0,x.length===0&&(x.needReadable=!0),this._read(x.highWaterMark),x.sync=!1,x.reading||(C=ge(H,x)));var ue;return C>0?ue=P(C,x):ue=null,ue===null?(x.needReadable=x.length<=x.highWaterMark,C=0):(x.length-=C,x.awaitDrain=0),x.length===0&&(x.ended||(x.needReadable=!0),H!==C&&x.ended&&$(this)),ue!==null&&this.emit("data",ue),ue};function Xe(C,x){if(u("onEofChunk"),!x.ended){if(x.decoder){var H=x.decoder.end();H&&H.length&&(x.buffer.push(H),x.length+=x.objectMode?1:H.length)}x.ended=!0,x.sync?De(C):(x.needReadable=!1,x.emittedReadable||(x.emittedReadable=!0,Ke(C)))}}function De(C){var x=C._readableState;u("emitReadable",x.needReadable,x.emittedReadable),x.needReadable=!1,x.emittedReadable||(u("emitReadable",x.flowing),x.emittedReadable=!0,process.nextTick(Ke,C))}function Ke(C){var x=C._readableState;u("emitReadable_",x.destroyed,x.length,x.ended),!x.destroyed&&(x.length||x.ended)&&(C.emit("readable"),x.emittedReadable=!1),x.needReadable=!x.flowing&&!x.ended&&x.length<=x.highWaterMark,L(C)}function We(C,x){x.readingMore||(x.readingMore=!0,process.nextTick(Je,C,x))}function Je(C,x){for(;!x.reading&&!x.ended&&(x.length<x.highWaterMark||x.flowing&&x.length===0);){var H=x.length;if(u("maybeReadMore read 0"),C.read(0),H===x.length)break}x.readingMore=!1}M.prototype._read=function(C){T(this,new y("_read()"))},M.prototype.pipe=function(C,x){var H=this,q=this._readableState;switch(q.pipesCount){case 0:q.pipes=C;break;case 1:q.pipes=[q.pipes,C];break;default:q.pipes.push(C);break}q.pipesCount+=1,u("pipe count=%d opts=%j",q.pipesCount,x);var ue=(!x||x.end!==!1)&&C!==process.stdout&&C!==process.stderr,ne=ue?qt:nr;q.endEmitted?process.nextTick(ne):H.once("end",ne),C.on("unpipe",ce);function ce(v,g){u("onunpipe"),v===H&&g&&g.hasUnpiped===!1&&(g.hasUnpiped=!0,vi())}function qt(){u("onend"),C.end()}var yi=_e(H);C.on("drain",yi);var wi=!1;function vi(){u("cleanup"),C.removeListener("close",xi),C.removeListener("finish",Wt),C.removeListener("drain",yi),C.removeListener("error",Cr),C.removeListener("unpipe",ce),H.removeListener("end",qt),H.removeListener("end",nr),H.removeListener("data",Ct),wi=!0,q.awaitDrain&&(!C._writableState||C._writableState.needDrain)&&yi()}H.on("data",Ct);function Ct(v){u("ondata");var g=C.write(v);u("dest.write",g),g===!1&&((q.pipesCount===1&&q.pipes===C||q.pipesCount>1&&Z(q.pipes,C)!==-1)&&!wi&&(u("false write response, pause",q.awaitDrain),q.awaitDrain++),H.pause())}function Cr(v){u("onerror",v),nr(),C.removeListener("error",Cr),t(C,"error")===0&&T(C,v)}B(C,"error",Cr);function xi(){C.removeListener("finish",Wt),nr()}C.once("close",xi);function Wt(){u("onfinish"),C.removeListener("close",xi),nr()}C.once("finish",Wt);function nr(){u("unpipe"),H.unpipe(C)}return C.emit("pipe",H),q.flowing||(u("pipe resume"),H.resume()),C};function _e(C){return function(){var H=C._readableState;u("pipeOnDrain",H.awaitDrain),H.awaitDrain&&H.awaitDrain--,H.awaitDrain===0&&t(C,"data")&&(H.flowing=!0,L(C))}}M.prototype.unpipe=function(C){var x=this._readableState,H={hasUnpiped:!1};if(x.pipesCount===0)return this;if(x.pipesCount===1)return C&&C!==x.pipes?this:(C||(C=x.pipes),x.pipes=null,x.pipesCount=0,x.flowing=!1,C&&C.emit("unpipe",this,H),this);if(!C){var q=x.pipes,ue=x.pipesCount;x.pipes=null,x.pipesCount=0,x.flowing=!1;for(var ne=0;ne<ue;ne++)q[ne].emit("unpipe",this,{hasUnpiped:!1});return this}var ce=Z(x.pipes,C);return ce===-1?this:(x.pipes.splice(ce,1),x.pipesCount-=1,x.pipesCount===1&&(x.pipes=x.pipes[0]),C.emit("unpipe",this,H),this)},M.prototype.on=function(C,x){var H=n.prototype.on.call(this,C,x),q=this._readableState;return C==="data"?(q.readableListening=this.listenerCount("readable")>0,q.flowing!==!1&&this.resume()):C==="readable"&&!q.endEmitted&&!q.readableListening&&(q.readableListening=q.needReadable=!0,q.flowing=!1,q.emittedReadable=!1,u("on readable",q.length,q.reading),q.length?De(this):q.reading||process.nextTick(gt,this)),H},M.prototype.addListener=M.prototype.on,M.prototype.removeListener=function(C,x){var H=n.prototype.removeListener.call(this,C,x);return C==="readable"&&process.nextTick(Se,this),H},M.prototype.removeAllListeners=function(C){var x=n.prototype.removeAllListeners.apply(this,arguments);return(C==="readable"||C===void 0)&&process.nextTick(Se,this),x};function Se(C){var x=C._readableState;x.readableListening=C.listenerCount("readable")>0,x.resumeScheduled&&!x.paused?x.flowing=!0:C.listenerCount("data")>0&&C.resume()}function gt(C){u("readable nexttick read 0"),C.read(0)}M.prototype.resume=function(){var C=this._readableState;return C.flowing||(u("resume"),C.flowing=!C.readableListening,$t(this,C)),C.paused=!1,this};function $t(C,x){x.resumeScheduled||(x.resumeScheduled=!0,process.nextTick(Ne,C,x))}function Ne(C,x){u("resume",x.reading),x.reading||C.read(0),x.resumeScheduled=!1,C.emit("resume"),L(C),x.flowing&&!x.reading&&C.read(0)}M.prototype.pause=function(){return u("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(u("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this};function L(C){var x=C._readableState;for(u("flow",x.flowing);x.flowing&&C.read()!==null;);}M.prototype.wrap=function(C){var x=this,H=this._readableState,q=!1;C.on("end",function(){if(u("wrapped end"),H.decoder&&!H.ended){var ce=H.decoder.end();ce&&ce.length&&x.push(ce)}x.push(null)}),C.on("data",function(ce){if(u("wrapped data"),H.decoder&&(ce=H.decoder.write(ce)),!(H.objectMode&&ce==null)&&!(!H.objectMode&&(!ce||!ce.length))){var qt=x.push(ce);qt||(q=!0,C.pause())}});for(var ue in C)this[ue]===void 0&&typeof C[ue]=="function"&&(this[ue]=function(qt){return function(){return C[qt].apply(C,arguments)}}(ue));for(var ne=0;ne<I.length;ne++)C.on(I[ne],this.emit.bind(this,I[ne]));return this._read=function(ce){u("wrapped _read",ce),q&&(q=!1,C.resume())},this},typeof Symbol=="function"&&(M.prototype[Symbol.asyncIterator]=function(){return S===void 0&&(S=xU()),S(this)}),Object.defineProperty(M.prototype,"readableHighWaterMark",{enumerable:!1,get:function(){return this._readableState.highWaterMark}}),Object.defineProperty(M.prototype,"readableBuffer",{enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}}),Object.defineProperty(M.prototype,"readableFlowing",{enumerable:!1,get:function(){return this._readableState.flowing},set:function(x){this._readableState&&(this._readableState.flowing=x)}}),M._fromList=P,Object.defineProperty(M.prototype,"readableLength",{enumerable:!1,get:function(){return this._readableState.length}});function P(C,x){if(x.length===0)return null;var H;return x.objectMode?H=x.buffer.shift():!C||C>=x.length?(x.decoder?H=x.buffer.join(""):x.buffer.length===1?H=x.buffer.first():H=x.buffer.concat(x.length),x.buffer.clear()):H=x.buffer.consume(C,x.decoder),H}function $(C){var x=C._readableState;u("endReadable",x.endEmitted),x.endEmitted||(x.ended=!0,process.nextTick(V,x,C))}function V(C,x){if(u("endReadableNT",C.endEmitted,C.length),!C.endEmitted&&C.length===0&&(C.endEmitted=!0,x.readable=!1,x.emit("end"),C.autoDestroy)){var H=x._writableState;(!H||H.autoDestroy&&H.finished)&&x.destroy()}}typeof Symbol=="function"&&(M.from=function(C,x){return _===void 0&&(_=AU()),_(M,C,x)});function Z(C,x){for(var H=0,q=C.length;H<q;H++)if(C[H]===x)return H;return-1}return Xg}var Kg,f_;function h_(){if(f_)return Kg;f_=1,Kg=s;var e=Io().codes,t=e.ERR_METHOD_NOT_IMPLEMENTED,n=e.ERR_MULTIPLE_CALLBACK,r=e.ERR_TRANSFORM_ALREADY_TRANSFORMING,i=e.ERR_TRANSFORM_WITH_LENGTH_0,a=Bo();To(s,a);function o(c,f){var h=this._transformState;h.transforming=!1;var d=h.writecb;if(d===null)return this.emit("error",new n);h.writechunk=null,h.writecb=null,f!=null&&this.push(f),d(c);var p=this._readableState;p.reading=!1,(p.needReadable||p.length<p.highWaterMark)&&this._read(p.highWaterMark)}function s(c){if(!(this instanceof s))return new s(c);a.call(this,c),this._transformState={afterTransform:o.bind(this),needTransform:!1,transforming:!1,writecb:null,writechunk:null,writeencoding:null},this._readableState.needReadable=!0,this._readableState.sync=!1,c&&(typeof c.transform=="function"&&(this._transform=c.transform),typeof c.flush=="function"&&(this._flush=c.flush)),this.on("prefinish",u)}function u(){var c=this;typeof this._flush=="function"&&!this._readableState.destroyed?this._flush(function(f,h){l(c,f,h)}):l(this,null,null)}s.prototype.push=function(c,f){return this._transformState.needTransform=!1,a.prototype.push.call(this,c,f)},s.prototype._transform=function(c,f,h){h(new t("_transform()"))},s.prototype._write=function(c,f,h){var d=this._transformState;if(d.writecb=h,d.writechunk=c,d.writeencoding=f,!d.transforming){var p=this._readableState;(d.needTransform||p.needReadable||p.length<p.highWaterMark)&&this._read(p.highWaterMark)}},s.prototype._read=function(c){var f=this._transformState;f.writechunk!==null&&!f.transforming?(f.transforming=!0,this._transform(f.writechunk,f.writeencoding,f.afterTransform)):f.needTransform=!0},s.prototype._destroy=function(c,f){a.prototype._destroy.call(this,c,function(h){f(h)})};function l(c,f,h){if(f)return c.emit("error",f);if(h!=null&&c.push(h),c._writableState.length)throw new i;if(c._transformState.transforming)throw new r;return c.push(null)}return Kg}var Jg,d_;function EU(){if(d_)return Jg;d_=1,Jg=t;var e=h_();To(t,e);function t(n){if(!(this instanceof t))return new t(n);e.call(this,n)}return t.prototype._transform=function(n,r,i){i(null,n)},Jg}var em,p_;function _U(){if(p_)return em;p_=1;var e;function t(h){var d=!1;return function(){d||(d=!0,h.apply(void 0,arguments))}}var n=Io().codes,r=n.ERR_MISSING_ARGS,i=n.ERR_STREAM_DESTROYED;function a(h){if(h)throw h}function o(h){return h.setHeader&&typeof h.abort=="function"}function s(h,d,p,m){m=t(m);var y=!1;h.on("close",function(){y=!0}),e===void 0&&(e=Zg()),e(h,{readable:d,writable:p},function(A){if(A)return m(A);y=!0,m()});var w=!1;return function(A){if(!y&&!w){if(w=!0,o(h))return h.abort();if(typeof h.destroy=="function")return h.destroy();m(A||new i("pipe"))}}}function u(h){h()}function l(h,d){return h.pipe(d)}function c(h){return!h.length||typeof h[h.length-1]!="function"?a:h.pop()}function f(){for(var h=arguments.length,d=new Array(h),p=0;p<h;p++)d[p]=arguments[p];var m=c(d);if(Array.isArray(d[0])&&(d=d[0]),d.length<2)throw new r("streams");var y,w=d.map(function(A,S){var _=S<d.length-1,T=S>0;return s(A,_,T,function(I){y||(y=I),I&&w.forEach(u),!_&&(w.forEach(u),m(y))})});return d.reduce(l)}return em=f,em}var g_=mn,tm=Fg.EventEmitter,SU=To;SU(mn,tm),mn.Readable=c_(),mn.Writable=r_(),mn.Duplex=Bo(),mn.Transform=h_(),mn.PassThrough=EU(),mn.finished=Zg(),mn.pipeline=_U(),mn.Stream=mn;function mn(){tm.call(this)}mn.prototype.pipe=function(e,t){var n=this;function r(c){e.writable&&e.write(c)===!1&&n.pause&&n.pause()}n.on("data",r);function i(){n.readable&&n.resume&&n.resume()}e.on("drain",i),!e._isStdio&&(!t||t.end!==!1)&&(n.on("end",o),n.on("close",s));var a=!1;function o(){a||(a=!0,e.end())}function s(){a||(a=!0,typeof e.destroy=="function"&&e.destroy())}function u(c){if(l(),tm.listenerCount(this,"error")===0)throw c}n.on("error",u),e.on("error",u);function l(){n.removeListener("data",r),e.removeListener("drain",i),n.removeListener("end",o),n.removeListener("close",s),n.removeListener("error",u),e.removeListener("error",u),n.removeListener("end",l),n.removeListener("close",l),e.removeListener("close",l)}return n.on("end",l),n.on("close",l),e.on("close",l),e.emit("pipe",n),e};function Ql(e){return e.replace(/%([0-9A-Fa-f]{2})/g,(t,n)=>String.fromCharCode(parseInt(n,16)))}function m_(e,t){return String(t).replace(e,n=>`%${n.charCodeAt(0).toString(16).toUpperCase().padStart(2,"0")}`)}function Xl(e){return m_(/[\n;\r\t=%&,\x00-\x1f\x7f-\xff]/g,e)}function vr(e){return m_(/[\n\r\t%\x00-\x1f\x7f-\xff]/g,e)}function b_(e){if(!(e&&e.length)||e===".")return{};const t={};return e.replace(/\r?\n$/,"").split(";").forEach(n=>{const r=n.split("=",2);if(!(r[1]&&r[1].length))return;r[0]=r[0].trim();let i=t[r[0].trim()];i||(i=[],t[r[0]]=i),i.push(...r[1].split(",").map(a=>a.trim()).map(Ql))}),t}function y_(e){const t=e.split(" ").map(r=>r==="."||r===""?null:r);return{seq_id:t[0]&&Ql(t[0]),source:t[1]&&Ql(t[1]),type:t[2]&&Ql(t[2]),start:t[3]===null?null:parseInt(t[3],10),end:t[4]===null?null:parseInt(t[4],10),score:t[5]===null?null:parseFloat(t[5]),strand:t[6],phase:t[7],attributes:t[8]===null?null:b_(t[8])}}function w_(e){const t=/^\s*##\s*(\S+)\s*(.*)/.exec(e);if(!t)return null;const[,n]=t;let[,,r]=t;const i={directive:n};if(r.length&&(r=r.replace(/\r?\n$/,""),i.value=r),n==="sequence-region"){const a=r.split(/\s+/,3);return{...i,seq_id:a[0],start:a[1]&&a[1].replace(/\D/g,""),end:a[2]&&a[2].replace(/\D/g,"")}}else if(n==="genome-build"){const[a,o]=r.split(/\s+/,2);return{...i,source:a,buildName:o}}return i}function v_(e){const t=[];return Object.entries(e).forEach(([n,r])=>{if(!r)return;let i;r.hasOwnProperty("toString")?i=Xl(r.toString()):Array.isArray(r)?i=r.map(Xl).join(","):i=Xl(r),t.push(`${Xl(n)}=${i}`)}),t.length?t.join(";"):"."}function CU(e,t){const n=e.attributes===null||e.attributes===void 0?".":v_(e.attributes),i=`${[e.seq_id===null?".":vr(e.seq_id),e.source===null?".":vr(e.source),e.type===null?".":vr(e.type),e.start===null?".":vr(e.start),e.end===null?".":vr(e.end),e.score===null?".":vr(e.score),e.strand===null?".":vr(e.strand),e.phase===null?".":vr(e.phase),n].join(" ")}
|
|
617
|
+
`;return t[i]?"":(t[i]=!0,i)}function oh(e,t){if(Array.isArray(e))return e.map(r=>oh(r,t)).join("");const n=[CU(e,t)];return kU(e)&&n.push(...e.child_features.map(r=>oh(r,t)),...e.derived_features.map(r=>oh(r,t))),n.join("")}function x_(e){return oh(e,{})}function A_(e){let t=`##${e.directive}`;return e.value&&(t+=` ${e.value}`),t+=`
|
|
618
|
+
`,t}function E_(e){return`# ${e.comment}
|
|
619
|
+
`}function nm(e){return`>${e.id}${e.description?` ${e.description}`:""}
|
|
508
620
|
${e.sequence}
|
|
509
|
-
`}function
|
|
510
|
-
`}return Array.isArray(e)?e.map(t):t(e)}function
|
|
511
|
-
`,r+=n.map(
|
|
621
|
+
`}function sh(e){function t(n){return"attributes"in n?x_(n):"directive"in n?A_(n):"sequence"in n?nm(n):"comment"in n?E_(n):`# (invalid item found during format)
|
|
622
|
+
`}return Array.isArray(e)?e.map(t):t(e)}function kU(e){return e.child_features!==void 0&&e.derived_features!==void 0}const TU=Object.freeze(Object.defineProperty({__proto__:null,escape:Xl,escapeColumn:vr,formatAttributes:v_,formatComment:E_,formatDirective:A_,formatFeature:x_,formatItem:sh,formatSequence:nm,parseAttributes:b_,parseDirective:w_,parseFeature:y_,unescape:Ql},Symbol.toStringTag,{value:"Module"})),__={Parent:"child_features",Derives_from:"derived_features"};class S_{constructor(t){this.seqCallback=t,this.currentSequence=void 0}addLine(t){const n=/^>\s*(\S+)\s*(.*)/.exec(t);n?(this._flush(),this.currentSequence={id:n[1],sequence:""},n[2]&&(this.currentSequence.description=n[2].trim())):this.currentSequence&&/\S/.test(t)&&(this.currentSequence.sequence+=t.replace(/\s/g,""))}_flush(){this.currentSequence&&this.seqCallback(this.currentSequence)}finish(){this._flush()}}class C_{constructor(t){this.fastaParser=void 0,this.eof=!1,this.lineNumber=0,this._underConstructionTopLevel=[],this._underConstructionById={},this._completedReferences={},this._underConstructionOrphans={};const n=()=>{};this.featureCallback=t.featureCallback||n,this.endCallback=t.endCallback||n,this.commentCallback=t.commentCallback||n,this.errorCallback=t.errorCallback||n,this.directiveCallback=t.directiveCallback||n,this.sequenceCallback=t.sequenceCallback||n,this.disableDerivesFromReferences=t.disableDerivesFromReferences||!1,this.bufferSize=t.bufferSize===void 0?1e3:t.bufferSize}addLine(t){if(this.fastaParser){this.fastaParser.addLine(t);return}if(this.eof)return;if(this.lineNumber+=1,/^\s*[^#\s>]/.test(t)){this._bufferLine(t);return}const n=/^\s*(#+)(.*)/.exec(t);if(n){const[,r]=n;let[,,i]=n;if(r.length===3)this._emitAllUnderConstructionFeatures();else if(r.length===2){const a=w_(t);a&&(a.directive==="FASTA"?(this._emitAllUnderConstructionFeatures(),this.eof=!0,this.fastaParser=new S_(this.sequenceCallback)):this._emitItem(a))}else i=i.replace(/\s*/,""),this._emitItem({comment:i})}else if(!/^\s*$/.test(t))if(/^\s*>/.test(t))this._emitAllUnderConstructionFeatures(),this.eof=!0,this.fastaParser=new S_(this.sequenceCallback),this.fastaParser.addLine(t);else{const r=t.replace(/\r?\n?$/g,"");throw new Error(`GFF3 parse error. Cannot parse '${r}'.`)}}finish(){this._emitAllUnderConstructionFeatures(),this.fastaParser&&this.fastaParser.finish(),this.endCallback()}_emitItem(t){Array.isArray(t)?this.featureCallback(t):"directive"in t?this.directiveCallback(t):"comment"in t&&this.commentCallback(t)}_enforceBufferSizeLimit(t=0){const n=r=>{r&&Array.isArray(r)&&r[0].attributes&&r[0].attributes.ID&&r[0].attributes.ID[0]&&(r[0].attributes.ID.forEach(a=>{delete this._underConstructionById[a],delete this._completedReferences[a]}),r.forEach(a=>{a.child_features&&a.child_features.forEach(o=>n(o)),a.derived_features&&a.derived_features.forEach(o=>n(o))}))};for(;this._underConstructionTopLevel.length+t>this.bufferSize;){const r=this._underConstructionTopLevel.shift();r&&(this._emitItem(r),n(r))}}_emitAllUnderConstructionFeatures(){if(this._underConstructionTopLevel.forEach(this._emitItem.bind(this)),this._underConstructionTopLevel=[],this._underConstructionById={},this._completedReferences={},Array.from(Object.values(this._underConstructionOrphans)).length)throw new Error(`some features reference other features that do not exist in the file (or in the same '###' scope). ${Object.keys(this._underConstructionOrphans)}`)}_bufferLine(t){var n,r,i;const o={...y_(t),child_features:[],derived_features:[]},s=((n=o.attributes)===null||n===void 0?void 0:n.ID)||[],u=((r=o.attributes)===null||r===void 0?void 0:r.Parent)||[],l=this.disableDerivesFromReferences?[]:((i=o.attributes)===null||i===void 0?void 0:i.Derives_from)||[];if(!s.length&&!u.length&&!l.length){this._emitItem([o]);return}let c;s.forEach(f=>{const h=this._underConstructionById[f];h?(h[h.length-1].type!==o.type&&this._parseError(`multi-line feature "${f}" has inconsistent types: "${o.type}", "${h[h.length-1].type}"`),h.push(o),c=h):(c=[o],this._enforceBufferSizeLimit(1),!u.length&&!l.length&&this._underConstructionTopLevel.push(c),this._underConstructionById[f]=c,this._resolveReferencesTo(c,f))}),this._resolveReferencesFrom(c||[o],{Parent:u,Derives_from:l},s)}_resolveReferencesTo(t,n){const r=this._underConstructionOrphans[n];r&&(t.forEach(i=>{i.child_features.push(...r.Parent)}),t.forEach(i=>{i.derived_features.push(...r.Derives_from)}),delete this._underConstructionOrphans[n])}_parseError(t){this.eof=!0,this.errorCallback(`${this.lineNumber}: ${t}`)}_resolveReferencesFrom(t,n,r){function i(a,o,s){let u=a[o];u||(u={},a[o]=u);const l=u[s]||!1;return u[s]=!0,l}n.Parent.forEach(a=>{const o=this._underConstructionById[a];if(o){const s=__.Parent;r.filter(u=>i(this._completedReferences,u,`Parent,${a}`)).length||o.forEach(u=>{u[s].push(t)})}else{let s=this._underConstructionOrphans[a];s||(s={Parent:[],Derives_from:[]},this._underConstructionOrphans[a]=s),s.Parent.push(t)}}),n.Derives_from.forEach(a=>{const o=this._underConstructionById[a];if(o){const s=__.Derives_from;r.filter(u=>i(this._completedReferences,u,`Derives_from,${a}`)).length||o.forEach(u=>{u[s].push(t)})}else{let s=this._underConstructionOrphans[a];s||(s={Parent:[],Derives_from:[]},this._underConstructionOrphans[a]=s),s.Derives_from.push(t)}})}}function rm(e){process&&process.nextTick?process.nextTick(e):e()}function k_(e){const t={encoding:"utf8",parseFeatures:!0,parseDirectives:!1,parseSequences:!0,parseComments:!1,bufferSize:1e3,disableDerivesFromReferences:!1,...e};return e.parseAll&&(t.parseFeatures=!0,t.parseDirectives=!0,t.parseComments=!0,t.parseSequences=!0),t}class IU extends g_.Transform{constructor(t={}){super({objectMode:!0}),this.textBuffer="";const n=k_(t);this.encoding=t.encoding||"utf8",this.decoder=new uU;const r=this.push.bind(this);this.parser=new C_({featureCallback:n.parseFeatures?r:void 0,directiveCallback:n.parseDirectives?r:void 0,commentCallback:n.parseComments?r:void 0,sequenceCallback:n.parseSequences?r:void 0,errorCallback:i=>this.emit("error",i),bufferSize:n.bufferSize,disableDerivesFromReferences:n.disableDerivesFromReferences})}_addLine(t){t&&this.parser.addLine(t)}_nextText(t){const n=(this.textBuffer+t).split(/\r?\n/);this.textBuffer=n.pop()||"",n.forEach(r=>this._addLine(r))}_transform(t,n,r){this._nextText(this.decoder.write(t)),rm(r)}_flush(t){this.decoder.end&&this._nextText(this.decoder.end()),this.textBuffer!=null&&this._addLine(this.textBuffer),this.parser.finish(),rm(t)}}function BU(e={}){return new IU(e)}function DU(e,t={}){if(!e)return[];const n=k_(t),r=[],i=r.push.bind(r),a=new C_({featureCallback:n.parseFeatures?i:void 0,directiveCallback:n.parseDirectives?i:void 0,commentCallback:n.parseComments?i:void 0,sequenceCallback:n.parseSequences?i:void 0,disableDerivesFromReferences:n.disableDerivesFromReferences||!1,bufferSize:1/0,errorCallback:o=>{throw o}});return e.split(/\r?\n/).forEach(a.addLine.bind(a)),a.finish(),r}function RU(e){const t=[],n=[];e.forEach(i=>{"sequence"in i?n.push(i):t.push(i)});let r=t.map(sh).join("");return n.length&&(r+=`##FASTA
|
|
623
|
+
`,r+=n.map(nm).join("")),r}class T_ extends g_.Transform{constructor(t={}){super(Object.assign(t,{objectMode:!0})),this.linesSinceLastSyncMark=0,this.haveWeEmittedData=!1,this.fastaMode=!1,this.minLinesBetweenSyncMarks=t.minSyncLines||100,this.insertVersionDirective=t.insertVersionDirective||!1}_transform(t,n,r){let i;if(!this.haveWeEmittedData&&this.insertVersionDirective){const a=Array.isArray(t)?t[0]:t;"directive"in a&&a.directive!=="gff-version"&&this.push(`##gff-version 3
|
|
512
624
|
`)}if("sequence"in t&&!this.fastaMode&&(this.push(`##FASTA
|
|
513
|
-
`),this.fastaMode=!0),Array.isArray(t)?i=t.map(
|
|
625
|
+
`),this.fastaMode=!0),Array.isArray(t)?i=t.map(sh).join(""):i=sh(t),this.push(i),this.linesSinceLastSyncMark>=this.minLinesBetweenSyncMarks)this.push(`###
|
|
514
626
|
`),this.linesSinceLastSyncMark=0;else{let a=0;for(let o=0;o<i.length;o+=1)i[o]===`
|
|
515
|
-
`&&(a+=1);this.linesSinceLastSyncMark+=a}this.haveWeEmittedData=!0,
|
|
627
|
+
`&&(a+=1);this.linesSinceLastSyncMark+=a}this.haveWeEmittedData=!0,rm(r)}}function FU(e={}){return new T_(e)}function MU(e,t,n={}){const r={insertVersionDirective:!0,...n};return new Promise((i,a)=>{e.pipe(new T_(r)).on("end",()=>i(null)).on("error",a).pipe(t)})}const PU=Object.freeze(Object.defineProperty({__proto__:null,default:{parseStream:BU,parseStringSync:DU,formatSync:RU,formatStream:FU,formatFile:MU,util:TU}},Symbol.toStringTag,{value:"Module"}));he.GenomeSpy=pv,he.embed=p7,he.favIcon=d7,he.html=it,he.icon=h7,he.loadSpec=gv,Object.defineProperty(he,Symbol.toStringTag,{value:"Module"})});
|