jbrowse-plugin-graphgenomeviewer 8.8.2 → 8.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/README.md +1 -1
  2. package/dist/chunks/{GbzBaseSyntenyAdapter-NAXISJUH.js → GbzBaseSyntenyAdapter-7SUMECKQ.js} +2 -2
  3. package/dist/chunks/{GraphGenomeView-PPOVN5LA.js → GraphGenomeView-XIZVEDCF.js} +2 -2
  4. package/dist/chunks/{GraphTrackSettingsDialog-BRTDTVOJ.js → GraphTrackSettingsDialog-GHTWJVWE.js} +2 -2
  5. package/dist/chunks/{LinearGraphDisplay-2AZ7X7TK.js → LinearGraphDisplay-CA2GSNK3.js} +2 -2
  6. package/dist/chunks/{MinigraphBubbleAdapter-NR3MMUUG.js → MinigraphBubbleAdapter-YOIBRCD3.js} +2 -2
  7. package/dist/chunks/{RgfaTabixAdapter-JDQLVQVP.js → RgfaTabixAdapter-AOOEVRF6.js} +2 -2
  8. package/dist/chunks/{TrackWarningsDialog-23WL6FPV.js → TrackWarningsDialog-V5YSUFRO.js} +1 -1
  9. package/dist/chunks/{TrackWarningsDialog-23WL6FPV.js.map → TrackWarningsDialog-V5YSUFRO.js.map} +1 -1
  10. package/dist/chunks/WalkFormsAdapter-5ALR4RU4.js +2 -0
  11. package/dist/chunks/WalkFormsAdapter-5ALR4RU4.js.map +7 -0
  12. package/dist/chunks/{WalkTabixSyntenyAdapter-PBWN53PE.js → WalkTabixSyntenyAdapter-2SGCZXRI.js} +2 -2
  13. package/dist/chunks/{chunk-GLSUAMGV.js → chunk-3WUOWIYO.js} +2 -2
  14. package/dist/chunks/{chunk-LFQFVYNY.js → chunk-BHRMUIK6.js} +3 -3
  15. package/dist/chunks/chunk-BHRMUIK6.js.map +7 -0
  16. package/dist/chunks/{chunk-AGUEPVOR.js → chunk-FQI75MV6.js} +1 -1
  17. package/dist/chunks/{chunk-AGUEPVOR.js.map → chunk-FQI75MV6.js.map} +1 -1
  18. package/dist/chunks/chunk-LZUH4IUR.js +2 -0
  19. package/dist/chunks/{chunk-EEWEXRY6.js.map → chunk-LZUH4IUR.js.map} +3 -3
  20. package/dist/chunks/{chunk-NSQ4VXKR.js → chunk-MTMW4HY6.js} +2 -2
  21. package/dist/chunks/{chunk-RS274NAD.js → chunk-MURQDZ33.js} +2 -2
  22. package/dist/chunks/{chunk-5HDIVUAZ.js → chunk-RJZG46KB.js} +2 -2
  23. package/dist/chunks/{chunk-MWQGJP3J.js → chunk-RU3HHR5K.js} +2 -2
  24. package/dist/chunks/chunk-T7NMFIRW.js +2 -0
  25. package/dist/chunks/chunk-T7NMFIRW.js.map +7 -0
  26. package/dist/chunks/{chunk-HKGTCZOL.js → chunk-TFJLUI7X.js} +4 -4
  27. package/dist/chunks/{chunk-HKGTCZOL.js.map → chunk-TFJLUI7X.js.map} +2 -2
  28. package/dist/chunks/{chunk-ZBFIEBO6.js → chunk-VQVV42DS.js} +2 -2
  29. package/dist/chunks/{chunk-EH5OCKSE.js → chunk-ZNDMFZLV.js} +2 -2
  30. package/dist/chunks/{chunk-EH5OCKSE.js.map → chunk-ZNDMFZLV.js.map} +3 -3
  31. package/dist/chunks/{executeDiagonalize-HZFFXMG4.js → executeDiagonalize-ZMW5BLEJ.js} +2 -2
  32. package/dist/chunks/{executeDiagonalize-HZFFXMG4.js.map → executeDiagonalize-ZMW5BLEJ.js.map} +1 -1
  33. package/dist/chunks/{renderSvg-UKXPWKKV.js → renderSvg-DKGTDQU4.js} +2 -2
  34. package/dist/jbrowse-plugin-graphgenomeviewer.esm.js +5 -5
  35. package/dist/jbrowse-plugin-graphgenomeviewer.esm.js.map +4 -4
  36. package/package.json +10 -10
  37. package/src/GraphGenomeView/pane/loadActions.ts +7 -2
  38. package/src/GraphGenomeView/walkRowGroups.test.ts +14 -3
  39. package/src/GraphGenomeView/walkRowGroups.ts +0 -22
  40. package/src/WalkFormsAdapter/WalkFormsAdapter.test.ts +4 -25
  41. package/src/WalkFormsAdapter/WalkFormsAdapter.ts +1 -23
  42. package/src/WalkFormsAdapter/configSchema.ts +1 -1
  43. package/src/WalkFormsAdapter/formRows.test.ts +0 -6
  44. package/src/WalkFormsAdapter/formRows.ts +0 -12
  45. package/src/launchFromGraph/syntenyTracks.test.ts +1 -1
  46. package/src/version.ts +1 -1
  47. package/dist/chunks/WalkFormsAdapter-YMQC3NLG.js +0 -2
  48. package/dist/chunks/WalkFormsAdapter-YMQC3NLG.js.map +0 -7
  49. package/dist/chunks/chunk-EEWEXRY6.js +0 -2
  50. package/dist/chunks/chunk-LFQFVYNY.js.map +0 -7
  51. package/dist/chunks/chunk-QUDJ7AM3.js +0 -2
  52. package/dist/chunks/chunk-QUDJ7AM3.js.map +0 -7
  53. /package/dist/chunks/{GbzBaseSyntenyAdapter-NAXISJUH.js.map → GbzBaseSyntenyAdapter-7SUMECKQ.js.map} +0 -0
  54. /package/dist/chunks/{GraphGenomeView-PPOVN5LA.js.map → GraphGenomeView-XIZVEDCF.js.map} +0 -0
  55. /package/dist/chunks/{GraphTrackSettingsDialog-BRTDTVOJ.js.map → GraphTrackSettingsDialog-GHTWJVWE.js.map} +0 -0
  56. /package/dist/chunks/{LinearGraphDisplay-2AZ7X7TK.js.map → LinearGraphDisplay-CA2GSNK3.js.map} +0 -0
  57. /package/dist/chunks/{MinigraphBubbleAdapter-NR3MMUUG.js.map → MinigraphBubbleAdapter-YOIBRCD3.js.map} +0 -0
  58. /package/dist/chunks/{RgfaTabixAdapter-JDQLVQVP.js.map → RgfaTabixAdapter-AOOEVRF6.js.map} +0 -0
  59. /package/dist/chunks/{WalkTabixSyntenyAdapter-PBWN53PE.js.map → WalkTabixSyntenyAdapter-2SGCZXRI.js.map} +0 -0
  60. /package/dist/chunks/{chunk-GLSUAMGV.js.map → chunk-3WUOWIYO.js.map} +0 -0
  61. /package/dist/chunks/{chunk-NSQ4VXKR.js.map → chunk-MTMW4HY6.js.map} +0 -0
  62. /package/dist/chunks/{chunk-RS274NAD.js.map → chunk-MURQDZ33.js.map} +0 -0
  63. /package/dist/chunks/{chunk-5HDIVUAZ.js.map → chunk-RJZG46KB.js.map} +0 -0
  64. /package/dist/chunks/{chunk-MWQGJP3J.js.map → chunk-RU3HHR5K.js.map} +0 -0
  65. /package/dist/chunks/{chunk-ZBFIEBO6.js.map → chunk-VQVV42DS.js.map} +0 -0
  66. /package/dist/chunks/{renderSvg-UKXPWKKV.js.map → renderSvg-DKGTDQU4.js.map} +0 -0
@@ -1,3 +1,3 @@
1
- import{b as gn}from"./chunk-QUDJ7AM3.js";import{d as an,g as Xe,h as Ie}from"./chunk-KBOVZ3GI.js";import{a as fn,b as In}from"./chunk-D6TY2QEG.js";import{f as cn}from"./chunk-FLKXKTS2.js";var DA=JBrowseExports["@jbrowse/core/data_adapters/BaseAdapter"],Cn=t=>DA!=null&&t in Object(DA)?DA[t]:Object.assign(function(){throw new Error("This JBrowse does not provide '"+t+"' from '@jbrowse/core/data_adapters/BaseAdapter' to plugins: GraphGenomeView was built for a different JBrowse version, so update the plugin or JBrowse")},{jbrowseHostMissing:t});var Vs=Cn("BaseFeatureDataAdapter");var Qn=Cn("cachedSetup");var $s=DA&&DA.__esModule?DA.default:DA;var fA=class extends Error{constructor(e,A,n,r,i){super(e),this.regionTooLarge=!0,this.name="NodeLimitError",this.limit=A,this.windowBp=n,this.fitsBp=r,this.zoomHelps=i===void 0||i.zoomHelps===!0,i&&(this.bytes=i.bytes)}},YA="#";function WA(t){return t.split(YA)[0]}function je(t){let e=t.split(YA);return e.length>=3?e.slice(2).join(YA):e.length===2?e[1]:t}function wA(t){let e=t.split(YA);return e.length>=3?`${e[0]}${YA}${e[1]}`:void 0}function HA(t,e){return e!==void 0&&(t===e||t.startsWith(e+YA))}var ln=t=>Number.parseFloat(t.toPrecision(3));function SA(t){let e=ln(t/1e6);return e>=1?`${e.toLocaleString("en-US")}Mbp`:t>=1e3?`${ln(t/1e3).toLocaleString("en-US")}Kbp`:`${Math.floor(t)}bp`}var tA=t=>(t-(t&1))/2,lA=t=>t&1?t-1:t+1;function KA(t,e,A){if(t===".")return A;let n=0,r=!1;for(let i=0;i<=t.length;i++){let o=i<t.length?t.charCodeAt(i):44;if(o===44){let s=r?-n:n,c=s&1;e.id+=(s-c)/2,A.push(e.id*2+c),n=0,r=!1}else o===45?r=!0:n=n*10+(o-48)}return A}function TA(t){return t==="."?[]:t.split(",").map(Number)}function dn(t,e){return t>lA(e)?[lA(e),lA(t)]:[t,e]}function We(t,e){let A=t.lastIndexOf(":");return{refName:t[3]==="Z"?t.slice(5,A):e,start:+t.slice(A+1)}}function Ve(t,e,A){let n={};for(let r=e;r<t.length;r++){let i=t[r],o=i.slice(0,2);if(o==="pv")n.prev=We(i,A);else if(o==="nx")n.next=We(i,A);else if(o==="pg"||o==="ng"){let s=o==="pg"?"prevRecord":"nextRecord";n[s]={...n[s],bp:+i.slice(5)}}else if(o==="pr"||o==="nr"){let s=o==="pr"?"prevRecord":"nextRecord";n[s]={bp:0,...n[s],chunk:We(i,A)}}}return n}var Ce=class{constructor(){this.handles=[],this.before=[0],this.starts=[],this.occurrences=new Map}add(e,A,n){for(let r=0;r<e.length;r++){let i=e[r],o=this.handles.length;this.handles.push(i),this.before.push(this.before[o]+A[r]),this.starts.push(n),n+=A[r];let s=tA(i),c=this.occurrences.get(s);c?c.push(o):this.occurrences.set(s,[o])}}bp(e){return this.before[e]}first(e){var A;return(A=this.occurrences.get(tA(e)))===null||A===void 0?void 0:A[0]}nearest(e,A){let n=this.occurrences.get(tA(e));if(!n)return;let r=0,i=n.length;for(;r<i;){let c=r+i>>1;n[c]<=A?r=c+1:i=c}let o=n[r-1],s=n[r];return o===void 0||s===void 0?o??s:s-A<=A-o?s:o}reach(e,A,n){var r;let i=this.handles[e]===A,o;for(let s of(r=this.occurrences.get(tA(n)))!==null&&r!==void 0?r:[])i&&s>=e&&this.handles[s]===n?(o===void 0||s<o)&&(o=s):!i&&s<=e&&lA(this.handles[s])===n&&(o===void 0||s>o)&&(o=s);return o}handleAt(e,A){return A?this.handles[e]:lA(this.handles[e])}},gA=class extends Error{},$e=(t,e)=>e?t.exit===-1?-1:lA(t.exit):t.entry,En=(t,e)=>e?t.entry===-1?-1:lA(t.entry):t.exit,Qe=(t,e,A)=>e?lA(t.interior[t.interior.length-1-A]):t.interior[A];function Hi(t){let e=[];if(t!=="."){let A=0,n=0,r=!1,i=0,o=!1;for(let s=0;s<=t.length;s++){let c=s<t.length?t.charCodeAt(s):44;if(c===44){let a=r?-n:n,g=o?i:a,C=g&1;A+=(g-C)/2,e.push(A,C,o?a:0),n=0,r=!1,o=!1}else c===58?(i=r?-n:n,n=0,r=!1,o=!0):c===45?r=!0:n=n*10+(c-48)}}return e}function hn(t,e,A,n,r,i){let o=n.indexOf(":"),s=A+ +(o<0?n:n.slice(0,o)),c=o>=0,a=c?+n.slice(o+1):0,g=E=>{let u=e[E];if(!u)throw new gA(`route ${E} is not in the chunk`);return u},C=0;if(r.length>0&&$e(g(r[0]),r[1]===1)===-1){if(!i.route(r[0],r[1]===1))return;C=3}let B=A,I=t.first(B);if(I===void 0)throw new gA("a walk row starts off its chunk");i.step(B,I);let d=(E,u)=>{let p=t.handles[I]===B,w=c?I+(p?u:-u):t.reach(I,B,E);if(w===void 0||w<0||w>=t.handles.length)throw new gA("a walk row runs off its chunk");w!==I&&i.stretch(I,w,p),I=w,B=t.handleAt(w,p)};for(;C<r.length;C+=3){let E=r[C],u=r[C+1]===1,p=g(E),w=$e(p,u);if(w===-1)throw new gA("an open route after the first choice");if(d(w,r[C+2]),!i.route(E,u))return;let N=En(p,u);if(N===-1)return;if(B=N,I=t.nearest(B,I),I===void 0)throw new gA("a route lands off its chunk");i.step(B,I)}if(d(s,a),B!==s)throw new gA("a walk row misses its last handle")}function Ki(t,e,A,n,r){let i=new Int32Array(r),o=new Uint8Array(r),s=new Float64Array(r).fill(Number.NaN),c=0,a=(g,C)=>{if(c>=r)throw new gA("a walk row decodes to more steps than it states");C!==void 0&&(s[c]=t.starts[C]),i[c]=tA(g),o[c++]=g&1};if(hn(t,e,+A[9],A[10],n,{step:a,stretch(g,C,B){if(B)for(let I=g+1;I<=C;I++)a(t.handles[I],I);else for(let I=g-1;I>=C;I--)a(lA(t.handles[I]),I)},route(g,C){let B=e[g];for(let I=0;I<B.interior.length;I++)a(Qe(B,C,I));return!0}}),c!==r)throw new gA(`a walk row decodes to ${c} steps, not ${r}`);return{ids:i,rev:o,refStarts:s}}function un(t,e,A,n=[]){let r=new Set(e.map(c=>c.name)),i=new Set(n),o=new Set,s=[];for(let c of[...n,...t]){let a=`${c.name} ${c.fragStart} ${c.piece}`;(i.has(c)||!r.has(c.name))&&!o.has(a)&&c.refStart<A.end&&c.refEnd>A.start&&(o.add(a),s.push(c))}return s.sort((c,a)=>c.name<a.name?-1:c.name>a.name?1:c.fragStart-a.fragStart||c.piece-a.piece)}function Bn(t,e,A,n,r){let i=t.slice(e).find(s=>s.startsWith("SQ:Z:"));if(i===void 0)return;let o=5;for(let s=0;s<A.length;s++){let c=n[s];r.set(A[s],i.slice(o,o+c)),o+=c}}var Ti=16384;function Oi(t){let e=t[0],A=[+t[10],+t[11]],n=TA(t[7]);for(let r=1;r<n.length;r++)n[r]+=n[r-1];return{chunkStart:+t[1],name:t[4],fragStart:+t[5],hapOffset:+t[6],piece:n[0],n:A.length,steps:{ids:Int32Array.from(A,tA),rev:Uint8Array.from(A,r=>r&1)},...Ve(t,13,e),abridged:{pieces:n,steps:+t[8],bp:+t[9],detail:{refName:`${e}~${t[1]}`,start:+t[12]*Ti}}}}var pn=t=>t.filter(e=>e[3]==="ref").sort((e,A)=>+e[6]-+A[6]);function wn(t){let e=new Ce,A=new Map;for(let n of pn(t)){let r=KA(n[9],{id:0},[]),i=TA(n[10]);e.add(r,i,+n[6]);for(let o=0;o<r.length;o++)A.set(tA(r[o]),i[o])}return{path:e,lengths:A}}function At(t,e,A=!1,n){var r,i,o,s;let c=(r=n?.path)!==null&&r!==void 0?r:new Ce,a=new Map,g=[],C={sequences:new Map,rows:[],nodes:new Map,revisits:[],ends:[],chunk:{path:c,routes:g,walks:[],lengths:a,refLengths:n?.lengths},skips:[]},B=E=>C.nodes.has(E)||n?.lengths.has(E)===!0,I={id:0};for(let E of n?[]:pn(t)){let u=E[0],p=KA(E[9],{id:0},[]),w=TA(E[10]),N=+E[6],l=c.starts.length;c.add(p,w,N),A&&Bn(E,11,p.map(tA),w,C.sequences);let S=N;for(let x=0;x<p.length;x++){let Q=tA(p[x]),h=w[x];a.set(Q,h);let y={refName:E[4],start:S,end:S+h,rank:0};C.nodes.has(Q)?C.revisits.push({id:Q,...y}):C.nodes.set(Q,y),S+=h}C.ends.push({name:E[4],fragStart:+E[5],piece:+E[7],first:p[0],last:p.at(-1)}),(e===void 0||e(E[4]))&&C.rows.push({chunkStart:+E[1],name:E[4],fragStart:+E[5],hapOffset:N,piece:+E[7],n:p.length,steps:{ids:Int32Array.from(p,tA),rev:Uint8Array.from(p,x=>x&1),refStarts:Float64Array.from(c.starts.slice(l))},...Ve(E,11,u)})}for(let E of t)if(E[3]==="nodes"){let u=TA(E[4]),p=TA(E[5]),w=0;for(let N=0;N<u.length;N++)w+=u[N],u[N]=w,a.set(w,p[N]);A&&Bn(E,6,u,p,C.sequences)}else if(E[3]==="route"){let u=KA(E[4],I,[]),p=KA(E[5],I,[]),w=KA(E[6],I,[]);g.push({entry:(i=u[0])!==null&&i!==void 0?i:-1,interior:p,exit:(o=w[0])!==null&&o!==void 0?o:-1})}let d=E=>{let u=g[E];if(!u)throw new gA(`route ${E} is not in the chunk`);return u};for(let E of t){if(E[3]==="skip"){(e===void 0||e(E[4]))&&C.skips.push({name:E[4],fragStart:+E[5],piece:+E[6],refStart:+E[9],refEnd:+E[10]});continue}if(E[3]==="abridged"){let Q=E[4];(e===void 0||e(Q))&&C.rows.push(Oi(E));continue}if(E[3]!=="walk")continue;let u=Hi(E[11]);C.chunk.walks.push({cols:E,choices:u});let p=E[4],w=+E[9],N=E[10],l=N.indexOf(":"),S=w,x=w+ +(l<0?N:N.slice(0,l));if(u.length>0){let Q=d(u[0]),h=u[1]===1;$e(Q,h)===-1&&(S=Qe(Q,h,0));let y=u.length-3,b=d(u[y]),v=u[y+1]===1;En(b,v)===-1&&(x=Qe(b,v,b.interior.length-1))}if(C.ends.push({name:p,fragStart:+E[5],piece:+E[7],first:S,last:x}),e===void 0||e(p)){let Q=+E[8],h=0;for(let y=0;y<u.length;y+=3){h+=d(u[y]).interior.length;for(let b of d(u[y]).interior){let v=tA(b);if(!B(v)){let K=(s=a.get(v))!==null&&s!==void 0?s:0;C.nodes.set(v,{refName:p,start:0,end:K,rank:1})}}}C.rows.push({chunkStart:+E[1],name:p,fragStart:+E[5],hapOffset:+E[6],piece:+E[7],n:Q,interior:h,steps:Ki(c,g,E,u,Q),...Ve(E,12,E[0])})}}return C}function mn(t,e,A,n){let r=new Set;for(let s of e)t.some(({path:c})=>c.occurrences.has(s))||r.add(s);let i=(s,c)=>{let[a,g]=dn(s,c);n(a,g)},o=new Map;for(let{path:s,routes:c,walks:a,lengths:g,refLengths:C}of t){let B=s.handles;for(let w=1;w<B.length;w++)e.has(tA(B[w-1]))&&e.has(tA(B[w]))&&i(B[w-1],B[w]);let I=new Uint8Array(c.length);for(let w=0;w<c.length;w++){let{entry:N,interior:l,exit:S}=c[w],x=!1,Q=N;for(let h of l){let y=e.has(tA(h));x||(x=r.has(tA(h))),y&&Q!==-1&&e.has(tA(Q))&&i(Q,h),Q=h}Q!==-1&&S!==-1&&e.has(tA(Q))&&e.has(tA(S))&&i(Q,S),I[w]=x?1:0}let d=w=>{var N,l;return(l=(N=g.get(tA(w)))!==null&&N!==void 0?N:C?.get(tA(w)))!==null&&l!==void 0?l:0},E=new Float64Array(c.length).fill(-1),u=w=>(E[w]<0&&(E[w]=c[w].interior.reduce((N,l)=>N+d(l),0)),E[w]),p=new Uint8Array(c.length);for(let{cols:w,choices:N}of a){let l=0;for(let Q=0;Q<N.length;Q+=3){let h=N[Q];I[h]&&!p[h]&&l++}if(l===0)continue;let S=w[4],x=+w[6];hn(s,c,+w[9],w[10],N,{step(Q){x+=d(Q)},stretch(Q,h,y){x+=y?s.bp(h+1)-s.bp(Q+1):s.bp(Q)-s.bp(h)},route(Q,h){if(!I[Q]||p[Q])return x+=u(Q),!0;p[Q]=1;let y=c[Q];for(let b=0;b<y.interior.length;b++){let v=Qe(y,h,b),K=tA(v),Z=d(v);if(r.has(K)){let V=o.get(K);(!V||S<V.refName||S===V.refName&&x<V.start)&&o.set(K,{refName:S,start:x,end:x+Z,rank:1})}x+=Z}return l--,l>0}})}}for(let[s,c]of o)A(s,c)}function qi(t){let e=[];for(let A of t){if(A[3]!=="ref")continue;let n=KA(A[9],{id:0},[]),r=TA(A[10]),i=+A[6];for(let o=0;o<n.length;o++){let s=r[o];e.push({id:tA(n[o]),refName:A[4],start:i,end:i+s,rank:0}),i+=s}}return e}function kn(t){let e=new Map;for(let n of t){let r=`${n.name} ${n.fragStart}`,i=e.get(r);i||(i=new Map,e.set(r,i)),i.set(n.piece,n)}let A=[];for(let n of e.values())for(let[r,i]of n){let o=n.get(r+1);o&&A.push(dn(i.last,o.first))}return A}var Nn=["elsewhere","break","end"];function et(t,e){let A=new RegExp(`(?:^|\\t)${e}:i:(\\d+)`).exec(t);return A?+A[1]:void 0}function tt(t){var e,A,n;let r={references:[],haplotypes:[],long:[]};for(let i of t){let[o,s="",c="",a=""]=i.split(" ");o==="#reference"?r.references.push(s):o==="#haplotype"?r.haplotypes.push(s):o==="#long"?r.long.push({refName:s,start:+c,end:+a}):((e=r.format)!==null&&e!==void 0||(r.format=et(i,"format")),(A=r.chunk)!==null&&A!==void 0||(r.chunk=et(i,"chunk")),(n=r.maxNode)!==null&&n!==void 0||(r.maxNode=et(i,"maxnode")))}return r}function Dn(t,e){return t===void 0?1:Math.max(1,Math.ceil(t/e))}function le(t,e,A=1){return Math.max(0,(Math.floor(t/e)-A)*e)}function Be(t,e,A,n){let{chunk:r,long:i}=t;if(i.length===0)return le(A,r,Dn(t.maxNode,r));let o=le(A,r);for(let s of i)s.refName===e&&s.start<n&&s.end>A&&(o=Math.min(o,le(s.start,r)));return o}function Sn(t,e){return t===void 0||t.length===0?void 0:A=>HA(A,e)||t.some(n=>HA(A,n))}function nt(t,e){var A;return Sn(t,(A=wA(e))!==null&&A!==void 0?A:e)}function rt(t){let e=new Map,A=[];for(let n of t){if(n.abridged){A.push(yn([n]));continue}let r=`${n.name} ${n.fragStart}`,i=e.get(r);i?i.push(n):e.set(r,[n])}for(let n of e.values()){n.sort((i,o)=>i.piece-o.piece);let r=0;for(let i=1;i<=n.length;i++)(i===n.length||n[i].piece!==n[i-1].piece+1)&&(A.push(yn(n.slice(r,i))),r=i)}return A}function yn(t){let e=t.reduce((g,C)=>g+C.n,0),A=new Int32Array(e),n=new Uint8Array(e),r=new Float64Array(e).fill(Number.NaN),i=[],o=[],s=0;for(let g of t)s>0&&i.push(s),o.push(g.chunkStart),A.set(g.steps.ids,s),n.set(g.steps.rev,s),g.steps.refStarts&&r.set(g.steps.refStarts,s),s+=g.n;let c=t[0],a=t.at(-1);return{name:c.name,fragStart:c.fragStart,hapOffset:c.hapOffset,firstPiece:c.piece,pieceStarts:i,pieceChunks:o,ids:A,rev:n,refStarts:r,prev:c.prev,next:a.next,prevRecord:c.prevRecord,nextRecord:a.nextRecord,...c.abridged?{abridged:c.abridged}:{}}}function it(t,e,A,{contained:n=!1,context:r=0,crossingBp:i=$A}={}){let o=f=>{let m=e.get(f);return m?.rank===0?m:void 0},s=1/0,c=-1/0;for(let f of e.values())f.onWindow&&(s=Math.min(s,f.start),c=Math.max(c,f.end));let a=(f,m,k)=>{var D;return vn(k,(D=f.refStarts)===null||D===void 0?void 0:D[m])},g=(f,m)=>{var k;return Fn(e.get(f.ids[m]),(k=f.refStarts)===null||k===void 0?void 0:k[m],s,c)},C=new Map,B=f=>{f&&C.set(`${f.refName}:${f.start}`,f)},I=(f,m,k)=>{let{ids:D}=f,F=m+k;for(;F>=0&&F<D.length&&o(D[F])===void 0;)F+=k;if(F<0||F>=D.length)return B(k<0?f.prev:f.next),F-k;let U=o(D[m]),L=o(D[F]);if(L.refName!==A)return F-k;let J=a(f,m,U),M=a(f,F,L);return F===m+k&&(M===J+U.end-U.start||M+L.end-L.start===J)?m:F},d=1/0,E=-1/0,u=[],p=f=>{let m=e.get(f);return m===void 0?0:m.end-m.start},w=f=>{let{ids:m}=f,k=0,D=-1,F=-1;for(let U=0;U<=m.length;U++){let L=U<m.length?e.get(m[U]):void 0,J=U<m.length&&g(f,U);if(U===m.length||L?.rank===0&&!J){if(D>=0){for(let M=0;D>k&&M<r;)M+=p(m[--D]);for(let M=0;F<U-1&&M<r;)M+=p(m[++F]);D===0&&B(f.prev),F===m.length-1&&B(f.next),u.push({run:f,first:D,last:F})}k=U+1,D=-1}else J&&(D<0&&(D=U),F=U)}},N=f=>{let{ids:m}=f,k=-1,D=-1;for(let F=0;F<m.length;F++)g(f,F)&&(k<0&&(k=F),D=F);if(k>=0){if(f.name!==A){k=I(f,k,-1),D=I(f,D,1);for(let F of[k,D]){let U=o(m[F]);if(U){let L=a(f,F,U);d=Math.min(d,L),E=Math.max(E,L+U.end-U.start)}}}u.push({run:f,first:k,last:D})}},l=new Map,S=f=>{l.set(`${f.refName}:${f.start}`,f)},x=new Map;for(let f of t){let m=`${f.name} ${f.fragStart}`,k=x.get(m);k?k.push(f):x.set(m,[f])}let Q=new Map;for(let f of x.values())f.sort((m,k)=>m.firstPiece-k.firstPiece),f.forEach((m,k)=>{Q.set(m,[f[k-1],f[k+1]])});let h=[],y=(f,m)=>{let k=o(f.ids[m]);if(k?.refName!==A)return 0;let D=a(f,m,k);return D+k.end-k.start<=s?-1:D>=c?1:0},b=f=>f?.refName!==A?0:f.start>=c?1:f.start<s?-1:0,v=(f,m)=>{var k;return f.abridged?m===0?f.firstPiece:f.abridged.pieces.at(-1):f.firstPiece+((k=f.pieceStarts)!==null&&k!==void 0?k:[]).filter(D=>D<=m).length},K=(f,m)=>{let[k,D]=[f,m].map(([L,J])=>{let M=o(L.ids[J]),P=a(L,J,M);return[P,P+M.end-M.start]}),[F,U]=f;return{name:F.name,fragStart:F.fragStart,piece:v(F,U),refStart:Math.min(k[1],D[1]),refEnd:Math.max(k[0],D[0])}},Z=(f,m,k)=>f?.abridged&&v(f,k)===m?[f,k]:void 0,V=(f,m,k)=>{let D=0;for(let F=m;F<k;F++)D+=p(f.ids[F]);return D},X=(f,m,k)=>{var D;let F=new Set;for(let U=v(f,m);U<=v(f,k);U++){let L=(D=f.pieceChunks)===null||D===void 0?void 0:D[U-f.firstPiece];L!==void 0&&F.add(L)}return[...F].map(U=>({refName:A,start:U}))},nA=f=>{var m;let{ids:k}=f,D=k.length-1,[F,U]=(m=Q.get(f))!==null&&m!==void 0?m:[],L=-1;for(let M=0;M<=D;M++)if(o(k[M])!==void 0){if(L>=0){if(y(f,L)*y(f,M)<0){let P=V(f,L+1,M);if(M>L+1&&P<=i){let{refStart:j,refEnd:W}=K([f,L],[f,M]);u.push({run:f,first:L+1,last:M-1,crossing:{refStart:j,refEnd:W,reverse:y(f,L)>0}})}else M>L+1?h.push({...K([f,L],[f,M]),offBp:P,offSteps:M-L-1,chunks:X(f,L+1,M-1)}):h.push(K([f,L],[f,M]))}}else{y(f,M)*b(f.prev)<0&&S(f.prev);let P=M===0?Z(F,f.firstPiece-1,1):void 0;P&&y(P[0],P[1])*y(f,0)<0&&h.push(K(P,[f,0]))}L=M}if(L<0)return;y(f,L)*b(f.next)<0&&S(f.next);let J=L===D?Z(U,v(f,D)+1,0):void 0;J&&y(f,D)*y(J[0],J[1])<0&&h.push(K([f,D],J))},_=f=>f.ids.some((m,k)=>g(f,k)),T=f=>{let m=o(f.ids[0]),k=o(f.ids.at(-1));m?.refName!==A||k?.refName!==A||Math.max(m.end,k.end)>s&&Math.min(m.start,k.start)<c&&u.push({run:f,first:0,last:f.ids.length-1})};for(let f of t)f.abridged?T(f):f.name!==A&&!_(f)?nA(f):n?w(f):N(f);let Y=(f,m)=>{if(g(f,m))return!0;let k=o(f.ids[m]);if(k?.refName!==A)return!1;let D=a(f,m,k);return D+k.end-k.start>d&&D<E},O=new Set;for(let[f,m]of e)m.onWindow&&O.add(f);for(let f of u){let{run:m}=f,{ids:k}=m;if(m.name===A){for(;f.first>0&&Y(m,f.first-1);)f.first--;for(;f.last<k.length-1&&Y(m,f.last+1);)f.last++}for(let D=f.first;D<=f.last;D++)O.add(k[D])}let $=new Set(u.filter(f=>f.run.abridged).map(f=>f.run)),AA=(f,m,k)=>{let D=0;for(let F=m;F<k;F++)D+=p(f[F]);return D},G=new Map,q=f=>{var m,k;let D=G.get(f);return D===void 0&&(D=f.hapOffset+((k=(m=f.abridged)===null||m===void 0?void 0:m.bp)!==null&&k!==void 0?k:AA(f.ids,0,f.ids.length)),G.set(f,D)),D},R=(f,m,k)=>{var D;let F=k>0?{trimmed:k}:{},U=m?f.next:f.prev;if(U){let J=(D=Q.get(f))===null||D===void 0?void 0:D[m?1:0];return J?{kind:"elsewhere",chunk:U,bp:m?J.hapOffset-q(f):f.hapOffset-q(J),...F}:{kind:"elsewhere",chunk:U,...F}}let L=m?f.nextRecord:f.prevRecord;return L?{kind:"break",...L,...F}:{kind:"end",...F}},H=[];for(let{run:f,first:m,last:k,crossing:D}of u){let{ids:F,rev:U}=f;if($.has(f)){H.push({name:f.name,fragStart:f.fragStart,hapStart:f.hapOffset,hapEnd:q(f),ids:F,rev:U,before:R(f,!1,0),after:R(f,!0,0),abridged:f.abridged});continue}let L=m,J=k;for(;L>0&&O.has(F[L-1]);)L--;for(;J<F.length-1&&O.has(F[J+1]);)J++;let M=f.hapOffset+AA(F,0,L),P=M+AA(F,L,J+1);H.push({name:f.name,fragStart:f.fragStart,hapStart:M,hapEnd:P,ids:F.subarray(L,J+1),rev:U.subarray(L,J+1),before:R(f,!1,M-f.hapOffset),after:R(f,!0,q(f)-P),...D?{crossing:D}:{}})}return{kept:O,fragments:H,open:[...C.values()],across:[...l.values()],skips:h}}var $A=65536,vn=(t,e=Number.NaN)=>Number.isNaN(e)?t.start:e;function Fn(t,e,A,n){if(!t?.onWindow)return!1;let r=vn(t,e);return r<n&&r+t.end-t.start>A}function ot(t,e,{contained:A,start:n,end:r},i){var o;for(let s of t.nodes.keys())!((o=e.get(s))===null||o===void 0)&&o.onWindow&&i.add(s);for(let{steps:s}of t.rows){let{ids:c,refStarts:a}=s,g=-1;for(let C=0;C<c.length;C++){let B=e.get(c[C]);if(Fn(B,a?.[C],n,r)){for(let I=g+1;g>=0&&I<C;I++)i.add(c[I]);g=C}else A&&B?.rank===0&&(g=-1)}}}function bn(t){let e=[],A=new Map,n={kinds:new Uint8Array(t.length),kindNames:[...Nn],bp:new Float64Array(t.length).fill(Number.NaN),trimmed:new Float64Array(t.length),chunkRefs:new Int32Array(t.length).fill(-1),chunkStarts:new Float64Array(t.length).fill(Number.NaN),chunkRefNames:e};return t.forEach((r,i)=>{var o;if(n.kinds[i]=Nn.indexOf(r.kind),n.trimmed[i]=(o=r.trimmed)!==null&&o!==void 0?o:0,"bp"in r&&r.bp!==void 0&&(n.bp[i]=r.bp),"chunk"in r&&r.chunk){let{refName:s,start:c}=r.chunk,a=A.get(s);a===void 0&&(a=e.length,A.set(s,a),e.push(s)),n.chunkRefs[i]=a,n.chunkStarts[i]=c}}),n}var Zi=(t,e)=>t.onWindow!==e.onWindow?t.onWindow:t.rank===0&&(e.rank!==0||t.refName<e.refName||t.refName===e.refName&&t.start<e.start),VA=class{constructor(e){this.nodes=new Map,this.sequences=new Map,this.links=[],this.chunks=[],this.window=e}placeNode(e,A){let{window:n}=this,r={...A,onWindow:A.rank===0&&A.refName===n.refName&&A.end>n.start-n.context&&A.start<n.end+n.context},i=this.nodes.get(e);(!i||Zi(r,i))&&this.nodes.set(e,r)}addLinkEnds(e,A){this.links.push(e,A)}addChunk(e){this.chunks.push(e)}addSequences(e){if(this.window.sequences)for(let[A,n]of e)this.sequences.set(A,n)}tables(e,A,n=[]){this.chunks.length>0&&mn(this.chunks,e,(Q,h)=>{let y=this.nodes.get(Q);y&&this.nodes.set(Q,{...y,...h})},(Q,h)=>{this.links.push(Q,h)});let r=[];for(let Q of e){let h=this.nodes.get(Q);h&&r.push({...h,id:Q})}r.sort((Q,h)=>Q.refName<h.refName?-1:Q.refName>h.refName?1:Q.start-h.start||Q.id-h.id);let i=new Map,o=[],s=[],c=new Map,a=new Int32Array(r.length),g=new Int32Array(r.length),C=new Float64Array(r.length),B=new Int32Array(r.length);r.forEach(({id:Q,refName:h,start:y,end:b,rank:v},K)=>{i.set(Q,K),o.push(String(Q));let Z=c.get(h);Z===void 0&&(Z=s.length,c.set(h,Z),s.push(h)),a[K]=b-y,g[K]=Z,C[K]=y,B[K]=v});let I=Q=>{let h=i.get(Q);return h===void 0&&(h=o.length,i.set(Q,h),o.push(String(Q))),h},d=new Map;for(let Q=0;Q<this.links.length;Q+=2){let h=this.links[Q],y=this.links[Q+1],b=Math.floor(h/2),v=Math.floor(y/2);e.has(b)&&e.has(v)&&d.set(`${b} ${h%2?"-":"+"} ${v} ${y%2?"-":"+"}`,Q)}let E=[...d.keys()].sort(),u=new Int32Array(E.length),p=new Int32Array(E.length),w=new Uint8Array(E.length);E.forEach((Q,h)=>{let y=d.get(Q),b=this.links[y],v=this.links[y+1];u[h]=I(Math.floor(b/2)),p[h]=I(Math.floor(v/2)),w[h]=b%2|v%2<<1});let N=this.referenceFirst(A),l=new Int32Array(N.length+1);N.forEach(({ids:Q},h)=>{l[h+1]=l[h]+Q.length});let S=new Int32Array(l[N.length]),x=new Uint8Array(S.length);return N.forEach(({ids:Q,rev:h},y)=>{let b=l[y];for(let v=0;v<Q.length;v++)S[b+v]=I(Q[v]);x.set(h,b)}),{nodes:{names:o,lengths:a,refs:g,starts:C,ranks:B,refNames:s},links:{from:u,to:p,strands:w},walks:{names:N.map(Q=>Q.name),starts:Float64Array.from(N,Q=>Q.hapStart),ends:Float64Array.from(N,Q=>Q.hapEnd),offsets:l,steps:S,reversed:x,before:bn(N.map(Q=>Q.before)),after:bn(N.map(Q=>Q.after)),abridgedSteps:Float64Array.from(N,Q=>{var h,y;return(y=(h=Q.abridged)===null||h===void 0?void 0:h.steps)!==null&&y!==void 0?y:NaN}),abridgedBp:Float64Array.from(N,Q=>{var h,y;return(y=(h=Q.abridged)===null||h===void 0?void 0:h.bp)!==null&&y!==void 0?y:NaN})},skips:{names:n.map(Q=>Q.name),starts:Float64Array.from(n,Q=>Q.refStart),ends:Float64Array.from(n,Q=>Q.refEnd),offBp:Float64Array.from(n,Q=>{var h;return(h=Q.offBp)!==null&&h!==void 0?h:NaN}),offSteps:Float64Array.from(n,Q=>{var h;return(h=Q.offSteps)!==null&&h!==void 0?h:NaN})}}}referenceFirst(e){let{refName:A}=this.window;return[...e].sort((n,r)=>+(r.name===A)-+(n.name===A)||(n.name<r.name?-1:n.name>r.name?1:n.hapStart-r.hapStart))}},st={steps:"the step budget",bytes:"a byte budget of"},Pi=4,zi=t=>{var e;let A=(e=t.interior)!==null&&e!==void 0?e:0;return A+(t.n-A)/Pi};function at(t,e,A,n,r,i,o=st){var s;let c=0,a=new Map,g=new Set;for(let u of t){let p=zi(u);c+=p,a.set(u.chunkStart,((s=a.get(u.chunkStart))!==null&&s!==void 0?s:0)+p),g.add(u.name)}let C=e*A;if(c<=C)return;let B=n.end-n.start,I=0,d=0;for(let u of[...a.keys()].sort((p,w)=>p-w)){if(I+=a.get(u),I>C)break;d=Math.max(d,u+r-n.start)}let E=!i&&g.size>2&&2*c/g.size<=C;return new fA(d>0?`Zoom in to about ${SA(d)}${E?", or choose fewer haplotypes,":""} to see the graph`:`Too many haplotype steps here to draw ${i?"these haplotypes":"every haplotype"} (${Math.round(I).toLocaleString()} steps read, a step along the reference counting a quarter, over ${A} \xD7 ${o.steps} of ${e.toLocaleString()}); choose fewer haplotypes`,C,B,Math.max(d,1))}function gt(t,e,A,n){let r=t.reduce((i,o)=>i+o.ids.length,0);return Rn(r,e,A,n)}function de(t,e,A,n,r=A.end){return Rn(t,e,A,n,r)}function Rn(t,e,A,n,r=A.end){if(t<=e)return;let i=A.end-A.start,o=Math.min(r,A.end)-A.start,s=Math.max(1,Math.floor(o*e/t));return new fA(`Zoom in to about ${SA(s)}${n?"":", or choose fewer haplotypes,"} to see the graph`,e,i,s)}async function ct(t,e,A,n,r=st){let i=await t(A.end);if(i<=e)return;let o=0,s;for(let a=Math.floor(A.start/n)*n;a<A.end;a+=n){let g=await t(a+1);if(s??(s=g),g>e)break;o=a+n-A.start}let c=A.end-A.start;return o>0?new fA(`Zoom in to about ${SA(o)} to see the graph`,e,c,o,{bytes:i,zoomHelps:!0}):new fA(`Too much graph here to fetch, even zoomed in (${xn(s??i)} against ${r.bytes} ${xn(e)}). A satellite or rDNA array usually causes this: the graph folds the repeat into a few nodes that each haplotype loops through many times`,e,c,1,{bytes:i})}var xn=t=>`${(t/1e6).toFixed(1)} MB`;function ft(t,e){return`${t} ${e}`}function Ae(t){let e=new Map;for(let A of t){e.set(A,A);let n=WA(A);if(n!==A){let r=je(A);e.set(ft(n,r),A);let i=wA(A);i!==void 0&&e.set(ft(i,r),A)}}return e}function ee(t,e,A){var n;return(n=t.get(ft(e,A)))!==null&&n!==void 0?n:t.get(A)}var Xi=8,ji=3,Wi=4,Vi=1e3,$i=16,Ao={stepBudget:4e6,byteBudget:8e6,crossingBp:$A},Ee=class extends Error{constructor(){super(...arguments),this.name="WalkFormatError"}};function BA(t,e,A){if(!Number.isFinite(e)||!Number.isFinite(A))throw new Error(`${t}:${e}-${A} is not a finite range to query the graph's index for`)}function _n(t){return t.filter(e=>!e.includes("~"))}async function eo(t,e,A,n,r){let i=[],o=()=>{if(i.length<t.length&&!A.aborted){let s=n(t[i.length]);i.push(s),s.then(o,()=>{})}};for(let s=0;s<e;s++)o();for(let s=0;s<t.length;s++)A.throwIfAborted(),r(t[s],await i[s])}function Mn(t,e){return e?(e.throwIfAborted(),new Promise((A,n)=>{let r=()=>{n(e.reason instanceof Error?e.reason:new Error(String(e.reason)))};e.addEventListener("abort",r,{once:!0}),t.then(A,n).finally(()=>{e.removeEventListener("abort",r)})})):t}var It=class{constructor(e){this.walks=e}header(e={}){if(!this.headerRead){let A=this.walks.getHeaderLines().then(n=>{var r,i;let o=tt(n);if(o.format!==5)throw new Ee(`This walk file is format ${(r=o.format)!==null&&r!==void 0?r:1}; @jbrowse/graph-walks reads format 5, so rebuild it with gfa-to-tabix 1.4 or later`);return{...o,chunk:(i=o.chunk)!==null&&i!==void 0?i:65536}});A.catch(()=>{this.headerRead===A&&(this.headerRead=void 0)}),this.headerRead=A}return Mn(this.headerRead,e.signal)}async referenceSequences(e={}){return _n(await this.walks.getReferenceSequenceNames(e))}async sequenceFor(e,A,n={}){if(!this.lookupRead){let i=this.walks.getReferenceSequenceNames().then(o=>Ae(_n(o)));i.catch(()=>{this.lookupRead===i&&(this.lookupRead=void 0)}),this.lookupRead=i}let r=await Mn(this.lookupRead,n.signal);return ee(r,e,A)}async queryStart(e,A={}){let{refName:n="",end:r=e+1}=A;return Be(await this.header(A),n,e,r)}async cut(e,A,n={}){var r,i;let{signal:o,keep:s,context:c=Vi,stepBudget:a=1/0,byteBudget:g=1/0,crossingBp:C=$A,links:B=!0,contained:I=!1,nodeLimit:d=1/0,expand:E}=n,u=await this.header({signal:o}),{chunk:p}=u,w=Be(u,e,A.start,A.end),N=(r=this.walks.bytesForRegions)===null||r===void 0?void 0:r.bind(this.walks),l=Number.isFinite(g)&&N!==void 0,S=async R=>l?N(R.map(H=>({refName:e,...H})),{signal:o}):0,x=l?await ct(async R=>(BA(e,w,R),S([{start:w,end:R}])),g,A,p,n.budgetNames):void 0;if(x)throw x;let Q=new AbortController,h=()=>{Q.abort(o?.reason)};o?.throwIfAborted(),o?.addEventListener("abort",h,{once:!0});let y=[],b,v=new VA({refName:e,start:A.start,end:A.end,context:c,sequences:n.sequences}),K=new Set,Z=[],V=[],X=new Set,nA={contained:I,start:A.start-c,end:A.end+c},_=s!==void 0,T=[],Y=(R,H)=>{if(K.has(R))return;K.add(R);let f=At(H,s,n.sequences);for(let k of f.skips)V.push(k);let m;for(let k of f.rows)k.abridged&&E?.(k.name)?(m??(m=wn(H)),T.push({ref:m,row:k})):y.push(k);AA(f,R)},O=async({row:R})=>{let{refName:H,start:f}=R.abridged.detail;BA(H,f,f+1);let m=[];return await this.walks.getLines(H,f,f+1,{signal:Q.signal,lineCallback:k=>{let D=k.split(" ");D[0]=e,D[1]=String(R.chunkStart),m.push(D)}}),m},$=({ref:R,row:H},f)=>{let m=At(f,k=>k===H.name,n.sequences,R);for(let k of m.rows)k.name===H.name&&y.push(k);AA(m,H.chunkStart)},AA=(R,H)=>{for(let[f,m]of R.nodes)v.placeNode(f,m);for(let{id:f,...m}of R.revisits)v.placeNode(f,m);v.addSequences(R.sequences),v.addChunk(R.chunk);for(let f of R.ends)Z.push(f);if(Number.isFinite(d)){ot(R,v.nodes,nA,X),X.size>d&&(X.clear(),ot({nodes:v.nodes,rows:y},v.nodes,nA,X));let f=de(X.size,d,A,_,H+p);if(f)throw f}},G=async(R,H)=>{BA(e,R,H);let f,m=[];await this.walks.getLines(e,R,H,{signal:Q.signal,lineCallback:D=>{let F=D.split(" "),U=+F[1];U!==f&&(f!==void 0&&Y(f,m),f=U,m=[]),m.push(F)}}),f!==void 0&&Y(f,m);let k=T;if(T=[],await eo(k,$i,Q.signal,O,$),B)for(let[D,F]of kn(Z))v.addLinkEnds(D,F)};try{await G(w,A.end);let R=at(y,a,Xi,A,p,_,n.budgetNames);if(R)throw R;let H=w,f=Math.floor((A.end-1)/p)*p,m=Wi*p,[k,D]=[H-m,f+m],[F,U]=I?[Math.floor((A.start-c)/p)*p,Math.floor((A.end+c-1)/p)*p]:[k,D],L=(P,j,W)=>P.refName===e&&P.start>=j&&P.start<=W,J=()=>it(rt(y),v.nodes,e,{contained:I,context:c,crossingBp:C});b=J();let M=await S([{start:w,end:A.end}]);for(let P=0;P<ji;P++){let j=H,W=f;for(let QA of[...b.open.filter(xA=>L(xA,F,U)),...b.across.filter(xA=>L(xA,k,D))])j=Math.min(j,QA.start),W=Math.max(W,QA.start);let rA=[{start:j,end:H},{start:f+p,end:W+1}].filter(QA=>QA.end>QA.start);if(rA.length===0||(M+=await S(rA),M>g))break;H=j,f=W,await Promise.all(rA.map(({start:QA,end:xA})=>G(QA,xA))),b=J()}}catch(R){throw Q.abort(),R}finally{o?.removeEventListener("abort",h)}let q=(i=gt(b.fragments,a,A,_))!==null&&i!==void 0?i:de(b.kept.size,d,A,_);if(q)throw q;return{graph:v,...b,skips:un(V,b.fragments,A,b.skips)}}async cutRegion(e,A={}){var n;let{haplotypes:r,referenceSample:i,...o}=A,{signal:s}=A,c=await this.header({signal:s}),a=(n=i??c.references[0])!==null&&n!==void 0?n:"",g=await this.sequenceFor(a,e.refName,{signal:s});if(g===void 0){let E=await this.referenceSequences({signal:s});throw new Error(`The walk file has no sequence ${e.refName} on ${a}; it holds ${E.slice(0,5).join(", ")}${E.length>5?", \u2026":""}`)}let{graph:C,kept:B,fragments:I,skips:d}=await this.cut(g,e,{...o,keep:nt(r,g)});return{tables:C.tables(B,I,d),refName:g,sample:a}}};var vA=50,Kn=[50,1e3,1e4],Qt=.05,to=1e3,no=.1,he="0",cA=".",ue="~";function Tn(t){let e=t/100,[A,n,r]=Kn;return e<250?A:e<3e3?n:r}var On=t=>Math.max(1,Math.round(t/100));function lt(t,e){return e>t&&t<vA?"insertion":e<t&&e<vA?"deletion":"replacement"}function Bt(t,e){return e<Qt*t?"deletion":t<Qt*e?"insertion":void 0}var qn=(t,e,A)=>{let n=t==="replacement"?Bt(e,A):void 0;return n?{lopsided:n}:{}},Zn=t=>10**(Math.floor(Math.log10(t))-1),OA=t=>{let e=Zn(t);return Math.round(Math.round(t/e)*e)},Pn=(t,e=0)=>Math.abs(t.delta)>=Math.max(e,Zn(t.shiftedBp));function zn(t,e=vA){let A=t.delta>0?"+":"-";switch(t.kind){case"inversion":return`v${OA(Math.max(Math.abs(t.delta),t.refEnd-t.refStart,1))}`;case"shift":return Pn(t,e)?`s${OA(t.shiftedBp)}${A}${OA(Math.abs(t.delta))}`:`s${OA(t.shiftedBp)}`;case"net":return`n${A}${OA(Math.abs(t.delta))}`;default:return`${A}${OA(Math.abs(t.delta))}`}}var Ln=t=>t.altLength-(t.refEnd-t.refStart);function ro(t,e){let A=[];for(let n of t){let r=A.at(-1);r&&!r.abridged&&!n.abridged&&n.refStart-r.refEnd<e?(r.refEnd=Math.max(r.refEnd,n.refEnd),r.delta+=Ln(n),r.invertedBp+=n.invertedBp,r.repeatedBp+=n.repeatedBp,n.copied&&(r.copied=r.copied?[Math.min(r.copied[0],n.copied[0]),Math.max(r.copied[1],n.copied[1])]:n.copied)):A.push({refStart:n.refStart,refEnd:n.refEnd,delta:Ln(n),invertedBp:n.invertedBp,repeatedBp:n.repeatedBp,...n.copied?{copied:n.copied}:{},...n.abridged?{abridged:!0}:{}})}return A}function io(t,e){let A=t.refEnd-t.refStart,n=Math.max(0,A+t.delta),r=Math.abs(t.delta),i=t.abridged?r>=e?"net":void 0:r<e?t.invertedBp>=e?"inversion":void 0:t.repeatedBp>=vA&&t.delta>0?"duplication":lt(A,n);return i&&{kind:i,refStart:t.refStart,refEnd:t.refEnd,altLength:n,delta:t.delta,...i==="duplication"?{repeatedBp:t.repeatedBp}:{},...i==="duplication"&&t.copied?{copied:t.copied}:{},...qn(i,A,n)}}function Xn(t){let e=new Set,A=[],n=t.filter(r=>r.kind==="deletion"&&-r.delta>=to).sort((r,i)=>r.delta-i.delta);for(let r of n){let i=-r.delta,o=t.find(s=>!e.has(s)&&(s.kind==="insertion"||s.kind==="duplication")&&Math.abs(s.delta-i)<=no*Math.max(s.delta,i)&&Math.max(s.refStart-r.refEnd,r.refStart-s.refEnd)<=2*i);if(o){e.add(o),e.add(r);let s=Math.min(r.refStart,o.refStart),c=Math.max(r.refEnd,o.refEnd),a=r.delta+o.delta;A.push({kind:"shift",refStart:s,refEnd:c,altLength:c-s+a,delta:a,shiftedBp:i})}}return[...t.filter(r=>!e.has(r)),...A].sort((r,i)=>r.refStart-i.refStart)}var jn=new Set(["insertion","deletion","replacement"]),oo=1e3;function so(t,e,A,n){let r=ro(t,A).filter(a=>!n||a.refEnd>=n.start&&a.refStart<=n.end),i=new Map;for(let a of r){let g=io(a,e);g&&i.set(g,a)}let o=Xn([...i.keys()]),s=new Set(o),c=new Set([...i].flatMap(([a,g])=>s.has(a)&&jn.has(a.kind)?[]:[g]));return{marks:o,plain:r.filter(a=>!a.abridged&&!c.has(a))}}function ao(t,e){let A=t.reduce((g,C)=>g+C.delta,0);if(Math.abs(A)<e)return;let n=t.filter(g=>Math.abs(g.delta)>=e),r=n.length>0?n:t.filter(g=>g.delta!==0),i=1/0,o=-1/0;for(let g of r)i=Math.min(i,g.refStart),o=Math.max(o,g.refEnd);let s=o-i,c=Math.max(0,s+A),a=lt(s,c);return{kind:a,refStart:i,refEnd:o,altLength:c,delta:A,...qn(a,s,c)}}var Ct=t=>t.reduce((e,A)=>e+A.delta,0),go=(t,e,A)=>t.covered.some(([n,r])=>n<=e&&r>=A),co=(t,e,A)=>t.covered.some(([n,r])=>n<=A&&r>=e);function fo(t){let e=t.flat().map(n=>[n.refStart,n.refEnd]).sort((n,r)=>n[0]-r[0]),A=[];for(let[n,r]of e){let i=A.at(-1);i&&n<=i[1]?i[1]=Math.max(i[1],r):A.push([n,r])}return A}function Jn(t,e){let A=0,n=t.length-1;for(;A<n;){let r=A+n+1>>1;t[r][0]<=e.refStart?A=r:n=r-1}return A}function Io(t,e={}){var A,n,r,i;let o=(A=e.exclude)!==null&&A!==void 0?A:[],s=t.filter(_=>!o.some(T=>HA(_.haplotype,T))),c=(n=e.minCarriers)!==null&&n!==void 0?n:On(s.length),a=(r=e.window)!==null&&r!==void 0?r:Co(s),g=e.floorBp===void 0||e.floorBp==="auto"?Tn(a.end-a.start):Math.max(vA,e.floorBp),C=(i=e.joinBp)!==null&&i!==void 0?i:vA,B=e.foldRareForms===!1,I=s.map(_=>so(_.departures,g,C,e.window)),d=fo(I.map(_=>_.marks)),E=d.map(([_,T])=>T-_<=oo),u=I.map(({marks:_,plain:T})=>{var Y;let O=new Map,$=(G,q)=>{var R;O.set(G,[...(R=O.get(G))!==null&&R!==void 0?R:[],q])};for(let G of _){let q=Jn(d,G);(!jn.has(G.kind)||!E[q])&&$(q,G)}let AA=new Map;for(let G of T){let q=Jn(d,{refStart:G.refEnd});E[q]&&d[q][0]<=G.refEnd&&d[q][1]>=G.refStart&&AA.set(q,[...(Y=AA.get(q))!==null&&Y!==void 0?Y:[],G])}for(let[G,q]of AA){let R=ao(q,g);R&&$(G,R)}return new Map([...O].map(([G,q])=>{q.sort((H,f)=>H.refStart-f.refStart||H.refEnd-f.refEnd);let R=q.map(H=>zn(H,g)).join(";");return[G,q.map(H=>({...H,site:G,state:R}))]}))});for(let _ of u)for(let[T,Y]of _){let O=d[T];for(let $ of Y)O[0]=Math.min(O[0],$.refStart),O[1]=Math.max(O[1],$.refEnd)}let p=d.map(([_,T],Y)=>s.map((O,$)=>{var AA,G;return go(O,Math.max(_,a.start),Math.min(T,a.end))?(G=(AA=u[$].get(Y))===null||AA===void 0?void 0:AA[0].state)!==null&&G!==void 0?G:he:cA})),w=s.map(_=>co(_,a.start,a.end)),N=w.filter(Boolean).length,l=p.map(_=>2*_.filter((T,Y)=>w[Y]&&T!==cA).length<N),S=s.map((_,T)=>w[T]&&(l.every(Boolean)||p.some((Y,O)=>!l[O]&&Y[T]!==cA))),x=s.flatMap((_,T)=>S[T]?[T]:[]),Q=new Set,h=[],y=[],b=[],v=[];d.forEach(([_,T],Y)=>{var O,$,AA,G,q,R;let H=p[Y],f=new Map;for(let J of x){let M=f.get(H[J]);M?M.push(J):f.set(H[J],[J])}let m=[...f].sort((J,M)=>M[1].length-J[1].length||(J[0]<M[0]?-1:1)),k=m.flatMap(([J,M])=>{if(J===cA)return[];let P=M.map(W=>{var rA;return{j:W,marks:(rA=u[W].get(Y))!==null&&rA!==void 0?rA:[]}}).map(W=>({...W,delta:Ct(W.marks)})).sort((W,rA)=>W.delta-rA.delta),j=P[Math.floor(P.length/2)];return[{key:J,delta:j.delta,marks:j.marks,carriers:M.map(W=>s[W].haplotype)}]}),D=!l[Y]&&m.length>1&&m[1][1].length>=c;if(h.push({refStart:_,refEnd:T,edge:l[Y],shared:!l[Y]&&!D,covered:x.length-(($=(O=f.get(cA))===null||O===void 0?void 0:O.length)!==null&&$!==void 0?$:0),states:k}),l[Y])return;let F=(G=(AA=m[0])===null||AA===void 0?void 0:AA[0])!==null&&G!==void 0?G:he,U=k.filter(J=>J.carriers.length>=c),L=H.map((J,M)=>{var P,j,W;if(((j=(P=f.get(J))===null||P===void 0?void 0:P.length)!==null&&j!==void 0?j:0)>=c||!S[M]||B&&D)return J;if(J!==F&&Q.add(s[M].haplotype),J!==cA&&F===cA)return ue;if(J!==cA&&U.length>0){let QA=Ct((W=u[M].get(Y))!==null&&W!==void 0?W:[]);return Gn(U,xA=>xA.delta,QA).key}return F});if(D)y.push(Y),b.push(L);else for(let J of(R=(q=k.find(M=>M.key===F))===null||q===void 0?void 0:q.marks)!==null&&R!==void 0?R:[])v.push(J)});let K=(_,T)=>h[y[_]].states.find(Y=>Y.key===T),Z=new Map;for(let _ of x){let T=b.map($=>$[_]),Y=T.join("|"),O=Z.get(Y);O?O.members.push(s[_].haplotype):Z.set(Y,{states:T,members:[s[_].haplotype]})}let V=[...Z].map(([_,{states:T,members:Y}])=>{let O=T.flatMap((G,q)=>{var R,H;return(H=(R=K(q,G))===null||R===void 0?void 0:R.marks)!==null&&H!==void 0?H:[]}).concat(v).sort((G,q)=>G.refStart-q.refStart),$=O.filter(G=>!h[G.site].shared),AA=$.length>0&&$.every(G=>G.kind==="shift")&&!T.some(G=>G===cA||G===ue);return{members:Y,key:_,states:T,marks:O,net:Ct(O),onlyShifts:AA}}),X=B?V:V.filter(_=>_.members.length>=c),nA=X.length>0?X:V;if(X.length>0&&X!==V){for(let _ of Un(V))if(_.members.length<c){let T=Gn(X,Y=>Y.net,_.net);for(let Y of _.members)T.members.push(Y),Q.add(Y)}}return{sites:h,informative:y,forms:Un(nA),placed:x.length,unplaced:s.flatMap((_,T)=>S[T]?[]:[_.haplotype]),rareCarriers:s.filter(_=>Q.has(_.haplotype)).map(_=>_.haplotype),abridged:s.filter((_,T)=>I[T].marks.some(Y=>Y.kind==="net")).map(_=>_.haplotype),minCarriers:c,floorBp:g}}function Co(t){let e=1/0,A=-1/0;for(let n of t)for(let[r,i]of n.covered)e=Math.min(e,r),A=Math.max(A,i);return e<=A?{start:e,end:A}:{start:0,end:0}}function Gn(t,e,A){let n=t[0];for(let r of t)Math.abs(e(r)-A)<Math.abs(e(n)-A)&&(n=r);return n}var Un=t=>t.toSorted((e,A)=>A.members.length-e.members.length||Math.abs(e.net)-Math.abs(A.net)||(e.key<A.key?-1:1));function IA(t){let e=Number(t.toPrecision(3));return e>=1e6?`${Number((e/1e6).toPrecision(3))}Mb`:e>=1e3?`${Number((e/1e3).toPrecision(3))}kb`:`${e}bp`}var Yn=t=>`${t<0?"-":"+"}${IA(Math.abs(t))}`,Qo={deletion:"del",insertion:"ins",none:"repl"};function Wn(t){var e;let A=t.refEnd-t.refStart;switch(t.kind){case"insertion":return`ins ${IA(t.delta)}`;case"deletion":return`del ${IA(-t.delta)}`;case"duplication":return`dup ${IA(t.delta)}`;case"inversion":return`inv ${IA(A)}`;case"net":return`net ${Yn(t.delta)}`;case"shift":return Pn(t)?`shift ${IA(t.shiftedBp)} net ${Yn(t.delta)}`:`shift ${IA(t.shiftedBp)}`;case"replacement":return`${Qo[(e=Bt(A,t.altLength))!==null&&e!==void 0?e:"none"]} ${IA(A)}->${IA(t.altLength)}`}}var Hn=t=>{var e;return t.kind==="inversion"?t.refEnd-t.refStart:(e=t.shiftedBp)!==null&&e!==void 0?e:Math.abs(t.delta)};function lo(t,e,A){var n,r,i;let o=t.informative.indexOf(A);return o>=0?e.states[o]:!((n=t.sites[A])===null||n===void 0)&&n.shared?(i=(r=e.marks.find(s=>s.site===A))===null||r===void 0?void 0:r.state)!==null&&i!==void 0?i:he:void 0}function Bo(t,e){let A=a=>{var g;return"site"in a&&((g=e?.sites[a.site])===null||g===void 0?void 0:g.shared)===!0},n=t.marks.filter(a=>!A(a)),[r]=n.toSorted((a,g)=>Hn(g)-Hn(a)),i=t.states.filter(a=>a===ue).length,o=t.states.filter(a=>a===cA).length,s=r?Wn(r):i>0?"rarer":o>0?"no call":n.length<t.marks.length?"shared":"ref",c=n.length+i+o-1;return c>0?`${s} +${c}`:s}function Eo(t,e,A){return{walks:t.map(n=>{var r,i,o;return{name:n.name,hapStart:n.hapStart,hapEnd:n.hapEnd,steps:n.ids.length,id:s=>n.ids[s],rev:s=>n.rev[s]===1,abridgedBp:(r=n.abridged)===null||r===void 0?void 0:r.bp,trimmed:[(i=n.before.trimmed)!==null&&i!==void 0?i:0,(o=n.after.trimmed)!==null&&o!==void 0?o:0]}}),refStart:n=>{let r=e.get(n);return r?.rank===0&&r.refName===A?r.start:NaN},length:n=>{let r=e.get(n);return r?r.end-r.start:0}}}function ho({nodes:t,walks:e},A){let n=t.refNames.indexOf(A);return{walks:e.names.map((r,i)=>{var o;let s=e.offsets[i],c=(o=e.abridgedBp)===null||o===void 0?void 0:o[i];return{name:r,hapStart:e.starts[i],hapEnd:e.ends[i],steps:e.offsets[i+1]-s,id:a=>e.steps[s+a],rev:a=>e.reversed[s+a]===1,abridgedBp:c===void 0||Number.isNaN(c)?void 0:c,trimmed:[0,0]}}),refStart:r=>t.ranks[r]===0&&t.refs[r]===n?t.starts[r]:NaN,length:r=>{var i;return(i=t.lengths[r])!==null&&i!==void 0?i:0}}}var te=t=>!Number.isNaN(t);function uo(t){let e=t.toSorted((i,o)=>i.name<o.name?-1:i.name>o.name?1:i.hapStart-o.hapStart),A=[],n=NaN,r=-1/0;for(let i of e){let o=A.at(-1),s=o?.at(-1);if(o&&s?.name===i.name){if(s.abridgedBp!==void 0&&i.hapStart<n){let c=i.hapStart-i.trimmed[0],a=i.hapEnd+i.trimmed[1],g=Math.max(0,a-Math.max(c,r));r=Math.max(r,a),n+=g,o[o.length-1]={...s,abridgedBp:s.abridgedBp+g};continue}if(i.hapStart===n){o.push(i),n=i.hapEnd,r=-1/0;continue}}A.push([i]),n=i.hapEnd,r=-1/0}return A}function Vn(t,e){var A,n;let{walks:r,refStart:i,length:o}="fragments"in t?Eo(t.fragments,t.nodes,e):ho(t,e),s=(A=wA(e))!==null&&A!==void 0?A:e,c=new Map;for(let g of uo(r)){let{name:C}=g[0],B=(n=wA(C))!==null&&n!==void 0?n:WA(C);if(B===s||C===e)continue;let I=c.get(B);I||(I={haplotype:B,covered:[],departures:[],open:!1},c.set(B,I)),po(g,i,o,I)}let a=[...c.values()];for(let g of a)g.departures.sort((C,B)=>C.refStart-B.refStart||C.refEnd-B.refEnd),g.covered=wo(g.covered);return a}function po(t,e,A,n){let r=0,i=0;for(let d of t)for(let E=0;d.abridgedBp===void 0&&E<d.steps;E++){let u=d.id(E);te(e(u))&&(d.rev(E)?i+=A(u):r+=A(u))}let o=i>r,s=NaN,c=NaN,a=-1/0,g=0,C=0,B=NaN,I=0;for(let d of o?t.toReversed():t){let E=d.steps;if(d.abridgedBp!==void 0){let u=d.id(0),p=d.id(E-1),w=e(u),N=e(p);if(!te(w)||!te(N)){n.open=!0;continue}Number.isNaN(c)&&(s=Math.min(w,N),c=s,g=0),g+=d.abridgedBp,B=Math.max(w+A(u),N+A(p)),I=g;continue}for(let u=0;u<E;u++){let p=o?E-1-u:u,w=d.id(p),N=d.rev(p)!==o,l=e(w),S=A(w);if(te(l)&&!N){if(Number.isNaN(c))s=l;else if(!Number.isNaN(B))n.departures.push({refStart:c,refEnd:Math.max(l,c),altLength:g+Math.max(0,c-l),invertedBp:0,repeatedBp:0,abridged:!0}),B=NaN;else if(l!==c||g>0){let x=l<c?c-l:0;n.departures.push({refStart:c,refEnd:x>0?c:l,altLength:g+x,invertedBp:C,repeatedBp:x,...x>0?{copied:[l,c]}:{}})}c=l+S,a=Math.max(a,c),g=0,C=0}else Number.isNaN(c)?n.open=!0:(g+=S,te(l)&&(C+=S))}}Number.isNaN(B)||(n.departures.push({refStart:c,refEnd:Math.max(B,c),altLength:I,invertedBp:0,repeatedBp:0,abridged:!0}),a=Math.max(a,B),g-=I),Number.isNaN(s)?n.open=!0:n.covered.push([s,a]),g>0&&(n.open=!0)}function wo(t){let e=[...new Set(t.flat())].sort((r,i)=>r-i),A=[],n=-1;for(let r=0;r+1<e.length;r++){let i=e[r],o=e[r+1],s=t.flatMap(([a,g],C)=>a<=i&&g>=o?[C]:[]),c=A.at(-1);s.length!==1?n=-1:c&&s[0]===n&&c[1]===i?c[1]=o:(A.push([i,o]),n=s[0])}return A}var $n=16e6,pe=class extends fA{constructor(e,A,n){let r=Math.max(1,Math.floor(n*A/e));super(`Zoom in to about ${SA(r)} to read every walk in full`,A,n,r),this.steps=e}};async function mo(t,e,A={}){var n,r;let{expand:i=!0,partial:o=!0,stepBudget:s=$n,byteBudget:c,signal:a}=A,g=await t.header({signal:a}),C=(n=g.references[0])!==null&&n!==void 0?n:"",B=(r=await t.sequenceFor(C,e.refName,{signal:a}))!==null&&r!==void 0?r:e.refName,I={links:!1,byteBudget:c,signal:a},d=await t.cut(B,e,I);if(i){let p=ko(d.fragments,s,o,e);p.size>0&&(d=await t.cut(B,e,{...I,expand:w=>p.has(w)}))}let E=Vn({fragments:d.fragments,nodes:d.graph.nodes},B),u=new Set(E.map(p=>p.haplotype));for(let p of g.haplotypes)u.has(p)||E.push({haplotype:p,covered:[],departures:[],open:!1});return E}function ko(t,e,A,n){var r;let i=0,o=new Map;for(let c of t)c.abridged?o.set(c.name,((r=o.get(c.name))!==null&&r!==void 0?r:0)+c.abridged.steps):i+=c.ids.length;if(!A){let c=[...o.values()].reduce((a,g)=>a+g,i);if(o.size>0&&c>e)throw new pe(c,e,n.end-n.start);return new Set(o.keys())}let s=new Set;for(let[c,a]of[...o].sort((g,C)=>g[1]-C[1])){if(i+a>e)break;i+=a,s.add(c)}return s}function Et(t){let e=t.split(" ");return tr(e,e.length>=8)}function tr(t,e){var A;let n=e?5:0;return{anchored:e,segment:{refName:t[n],start:+t[n+1],end:+t[n+2],id:t[3],rank:+t[4],tags:(A=t[e?8:5])!==null&&A!==void 0?A:""}}}function No(t){let e=t.tags.split(" ").find(n=>n.startsWith("SM:Z:"));if(e===void 0)return;let A=e.slice(5).split(",").map(n=>n.trim()).filter(Boolean);return A.length>0?A:void 0}function Ar(t){return{id:t.slice(0,-1),strand:t.slice(-1)}}function ht(t){return nr(t.split(" "))}function nr(t){var e,A;let n=Ar(t[3]),r=Ar(t[4]);return{source:n.id,sourceStrand:n.strand,target:r.id,targetStrand:r.strand,sourceSegment:{id:n.id,refName:t[5],start:+t[6],end:+t[7],rank:+t[8],tags:(e=t[13])!==null&&e!==void 0?e:""},targetSegment:{id:r.id,refName:t[9],start:+t[10],end:+t[11],rank:+t[12],tags:(A=t[14])!==null&&A!==void 0?A:""}}}function ut(t){let e=t.find(i=>i.startsWith("#gfa-to-tabix "));if(e===void 0)throw new Error("not a gfa-to-tabix graph file: no #gfa-to-tabix header");let A=new Map(e.split(" ").slice(1).map(i=>[i.slice(0,i.indexOf(":")),i.slice(i.indexOf(":")+3)])),n=A.get("format");if(n!=="2")throw new Error(`gfa-to-tabix format ${n}: this graph-walks reads format 2`);let r=t.find(i=>i.startsWith("#samples "));return{anchored:A.get("layout")==="anchored",samples:r?r.slice(9).split(","):[]}}function rr(t,e){let A=[];for(let n=0;n<t.length;n++){let r=Number.parseInt(t[n],16);for(let i=0;i<4;i++)r&1<<i&&A.push(e[n*4+i])}return A}function pt(t,e){let A=t.split(" "),[n]=A.splice(3,1),r=i=>{var o;!((o=A[i])===null||o===void 0)&&o.startsWith("SB:H:")&&(A[i]=`SM:Z:${rr(A[i].slice(5),e.samples).join(",")}`)};if(n==="N")return r(e.anchored?8:5),{kind:"N",segment:tr(A,e.anchored).segment};if(n==="L")return r(13),r(14),{kind:"L",link:nr(A)}}function wt(t){return`${t.source}${t.sourceStrand}${t.target}${t.targetStrand}`}function ne(t,e,A){e.set(wt(A),A);let n=[];for(let r of[A.sourceSegment,A.targetSegment])t.has(r.id)||(t.set(r.id,r),n.push(r));return n}function ir(t,e,A){let n=o=>o.rank!==0||o.refName!==A.refName?0:o.end<=A.start?-1:o.start>=A.end?1:0,r=new Map(t),i=new Map;for(let o of e)(t.has(o.source)||t.has(o.target)||n(o.sourceSegment)*n(o.targetSegment)===-1)&&ne(r,i,o);for(let o of e)r.has(o.source)&&r.has(o.target)&&i.set(wt(o),o);for(let[o,s]of r)!t.has(o)&&s.rank>0&&r.set(o,{...s,tags:s.tags?`${s.tags} ${dt}`:dt});return{segments:r,links:i}}var dt="mv:i:1";function or(t,e,A){let n=r=>r.refName!==A.refName||r.end<=A.start||r.start>=A.end;return[...er(t.filter(r=>r.rank>0),r=>e.has(r.id),A.end-A.start),...er(t.filter(r=>r.rank===0&&n(r)),()=>!0,0)]}function er(t,e,A){let n=[...t].sort((i,o)=>we(i.refName,o.refName)||i.start-o.start),r=[];for(let i of n){let o=r.at(-1);o?.refName===i.refName&&i.start-o.end<=A?(o.needed||(o.needed=i.start>o.end||e(i)),o.end=Math.max(o.end,i.end)):r.push({refName:i.refName,start:i.start,end:i.end,needed:e(i)})}return r.filter(i=>i.needed).map(({refName:i,start:o,end:s})=>({refName:i,start:o,end:s}))}function sr(t,e,A){let n=r=>e.has(r.id)||A.some(i=>i.refName===r.refName&&r.start>=i.start&&r.end<=i.end);return t.filter(r=>n(r.sourceSegment)&&n(r.targetSegment))}var yo=/^[A-Za-z][A-Za-z0-9]:[AifZJHB]:/;function bo(t){let{id:e,refName:A,start:n,end:r,rank:i,tags:o}=t,s=o.split(" ").filter(a=>yo.test(a)),c=s.length===0?"":` ${s.join(" ")}`;return`S ${e} * LN:i:${r-n} SN:Z:${A} SO:i:${n} SR:i:${i}${c}`}function xo(t){let{source:e,sourceStrand:A,target:n,targetStrand:r}=t;return`L ${e} ${A} ${n} ${r} 0M`}function we(t,e){return t<e?-1:t>e?1:0}function me(t,e){let A=[...t.values()].sort((r,i)=>we(r.refName,i.refName)||r.start-i.start||we(r.id,i.id)),n=[...e.keys()].sort((r,i)=>we(r,i));return["H VN:Z:1.0",...A.map(r=>bo(r)),...n.map(r=>xo(e.get(r)))].join(`
1
+ import{b as gn}from"./chunk-T7NMFIRW.js";import{d as an,g as Xe,h as Ie}from"./chunk-KBOVZ3GI.js";import{a as fn,b as In}from"./chunk-D6TY2QEG.js";import{f as cn}from"./chunk-FLKXKTS2.js";var DA=JBrowseExports["@jbrowse/core/data_adapters/BaseAdapter"],Cn=t=>DA!=null&&t in Object(DA)?DA[t]:Object.assign(function(){throw new Error("This JBrowse does not provide '"+t+"' from '@jbrowse/core/data_adapters/BaseAdapter' to plugins: GraphGenomeView was built for a different JBrowse version, so update the plugin or JBrowse")},{jbrowseHostMissing:t});var Vs=Cn("BaseFeatureDataAdapter");var Qn=Cn("cachedSetup");var $s=DA&&DA.__esModule?DA.default:DA;var fA=class extends Error{constructor(e,A,n,r,i){super(e),this.regionTooLarge=!0,this.name="NodeLimitError",this.limit=A,this.windowBp=n,this.fitsBp=r,this.zoomHelps=i===void 0||i.zoomHelps===!0,i&&(this.bytes=i.bytes)}},YA="#";function WA(t){return t.split(YA)[0]}function je(t){let e=t.split(YA);return e.length>=3?e.slice(2).join(YA):e.length===2?e[1]:t}function wA(t){let e=t.split(YA);return e.length>=3?`${e[0]}${YA}${e[1]}`:void 0}function HA(t,e){return e!==void 0&&(t===e||t.startsWith(e+YA))}var ln=t=>Number.parseFloat(t.toPrecision(3));function SA(t){let e=ln(t/1e6);return e>=1?`${e.toLocaleString("en-US")}Mbp`:t>=1e3?`${ln(t/1e3).toLocaleString("en-US")}Kbp`:`${Math.floor(t)}bp`}var tA=t=>(t-(t&1))/2,lA=t=>t&1?t-1:t+1;function KA(t,e,A){if(t===".")return A;let n=0,r=!1;for(let i=0;i<=t.length;i++){let o=i<t.length?t.charCodeAt(i):44;if(o===44){let s=r?-n:n,c=s&1;e.id+=(s-c)/2,A.push(e.id*2+c),n=0,r=!1}else o===45?r=!0:n=n*10+(o-48)}return A}function TA(t){return t==="."?[]:t.split(",").map(Number)}function dn(t,e){return t>lA(e)?[lA(e),lA(t)]:[t,e]}function We(t,e){let A=t.lastIndexOf(":");return{refName:t[3]==="Z"?t.slice(5,A):e,start:+t.slice(A+1)}}function Ve(t,e,A){let n={};for(let r=e;r<t.length;r++){let i=t[r],o=i.slice(0,2);if(o==="pv")n.prev=We(i,A);else if(o==="nx")n.next=We(i,A);else if(o==="pg"||o==="ng"){let s=o==="pg"?"prevRecord":"nextRecord";n[s]={...n[s],bp:+i.slice(5)}}else if(o==="pr"||o==="nr"){let s=o==="pr"?"prevRecord":"nextRecord";n[s]={bp:0,...n[s],chunk:We(i,A)}}}return n}var Ce=class{constructor(){this.handles=[],this.before=[0],this.starts=[],this.occurrences=new Map}add(e,A,n){for(let r=0;r<e.length;r++){let i=e[r],o=this.handles.length;this.handles.push(i),this.before.push(this.before[o]+A[r]),this.starts.push(n),n+=A[r];let s=tA(i),c=this.occurrences.get(s);c?c.push(o):this.occurrences.set(s,[o])}}bp(e){return this.before[e]}first(e){var A;return(A=this.occurrences.get(tA(e)))===null||A===void 0?void 0:A[0]}nearest(e,A){let n=this.occurrences.get(tA(e));if(!n)return;let r=0,i=n.length;for(;r<i;){let c=r+i>>1;n[c]<=A?r=c+1:i=c}let o=n[r-1],s=n[r];return o===void 0||s===void 0?o??s:s-A<=A-o?s:o}reach(e,A,n){var r;let i=this.handles[e]===A,o;for(let s of(r=this.occurrences.get(tA(n)))!==null&&r!==void 0?r:[])i&&s>=e&&this.handles[s]===n?(o===void 0||s<o)&&(o=s):!i&&s<=e&&lA(this.handles[s])===n&&(o===void 0||s>o)&&(o=s);return o}handleAt(e,A){return A?this.handles[e]:lA(this.handles[e])}},gA=class extends Error{},$e=(t,e)=>e?t.exit===-1?-1:lA(t.exit):t.entry,En=(t,e)=>e?t.entry===-1?-1:lA(t.entry):t.exit,Qe=(t,e,A)=>e?lA(t.interior[t.interior.length-1-A]):t.interior[A];function Hi(t){let e=[];if(t!=="."){let A=0,n=0,r=!1,i=0,o=!1;for(let s=0;s<=t.length;s++){let c=s<t.length?t.charCodeAt(s):44;if(c===44){let a=r?-n:n,g=o?i:a,C=g&1;A+=(g-C)/2,e.push(A,C,o?a:0),n=0,r=!1,o=!1}else c===58?(i=r?-n:n,n=0,r=!1,o=!0):c===45?r=!0:n=n*10+(c-48)}}return e}function hn(t,e,A,n,r,i){let o=n.indexOf(":"),s=A+ +(o<0?n:n.slice(0,o)),c=o>=0,a=c?+n.slice(o+1):0,g=E=>{let u=e[E];if(!u)throw new gA(`route ${E} is not in the chunk`);return u},C=0;if(r.length>0&&$e(g(r[0]),r[1]===1)===-1){if(!i.route(r[0],r[1]===1))return;C=3}let B=A,I=t.first(B);if(I===void 0)throw new gA("a walk row starts off its chunk");i.step(B,I);let d=(E,u)=>{let p=t.handles[I]===B,w=c?I+(p?u:-u):t.reach(I,B,E);if(w===void 0||w<0||w>=t.handles.length)throw new gA("a walk row runs off its chunk");w!==I&&i.stretch(I,w,p),I=w,B=t.handleAt(w,p)};for(;C<r.length;C+=3){let E=r[C],u=r[C+1]===1,p=g(E),w=$e(p,u);if(w===-1)throw new gA("an open route after the first choice");if(d(w,r[C+2]),!i.route(E,u))return;let N=En(p,u);if(N===-1)return;if(B=N,I=t.nearest(B,I),I===void 0)throw new gA("a route lands off its chunk");i.step(B,I)}if(d(s,a),B!==s)throw new gA("a walk row misses its last handle")}function Ki(t,e,A,n,r){let i=new Int32Array(r),o=new Uint8Array(r),s=new Float64Array(r).fill(Number.NaN),c=0,a=(g,C)=>{if(c>=r)throw new gA("a walk row decodes to more steps than it states");C!==void 0&&(s[c]=t.starts[C]),i[c]=tA(g),o[c++]=g&1};if(hn(t,e,+A[9],A[10],n,{step:a,stretch(g,C,B){if(B)for(let I=g+1;I<=C;I++)a(t.handles[I],I);else for(let I=g-1;I>=C;I--)a(lA(t.handles[I]),I)},route(g,C){let B=e[g];for(let I=0;I<B.interior.length;I++)a(Qe(B,C,I));return!0}}),c!==r)throw new gA(`a walk row decodes to ${c} steps, not ${r}`);return{ids:i,rev:o,refStarts:s}}function un(t,e,A,n=[]){let r=new Set(e.map(c=>c.name)),i=new Set(n),o=new Set,s=[];for(let c of[...n,...t]){let a=`${c.name} ${c.fragStart} ${c.piece}`;(i.has(c)||!r.has(c.name))&&!o.has(a)&&c.refStart<A.end&&c.refEnd>A.start&&(o.add(a),s.push(c))}return s.sort((c,a)=>c.name<a.name?-1:c.name>a.name?1:c.fragStart-a.fragStart||c.piece-a.piece)}function Bn(t,e,A,n,r){let i=t.slice(e).find(s=>s.startsWith("SQ:Z:"));if(i===void 0)return;let o=5;for(let s=0;s<A.length;s++){let c=n[s];r.set(A[s],i.slice(o,o+c)),o+=c}}var Ti=16384;function Oi(t){let e=t[0],A=[+t[10],+t[11]],n=TA(t[7]);for(let r=1;r<n.length;r++)n[r]+=n[r-1];return{chunkStart:+t[1],name:t[4],fragStart:+t[5],hapOffset:+t[6],piece:n[0],n:A.length,steps:{ids:Int32Array.from(A,tA),rev:Uint8Array.from(A,r=>r&1)},...Ve(t,13,e),abridged:{pieces:n,steps:+t[8],bp:+t[9],detail:{refName:`${e}~${t[1]}`,start:+t[12]*Ti}}}}var pn=t=>t.filter(e=>e[3]==="ref").sort((e,A)=>+e[6]-+A[6]);function wn(t){let e=new Ce,A=new Map;for(let n of pn(t)){let r=KA(n[9],{id:0},[]),i=TA(n[10]);e.add(r,i,+n[6]);for(let o=0;o<r.length;o++)A.set(tA(r[o]),i[o])}return{path:e,lengths:A}}function At(t,e,A=!1,n){var r,i,o,s;let c=(r=n?.path)!==null&&r!==void 0?r:new Ce,a=new Map,g=[],C={sequences:new Map,rows:[],nodes:new Map,revisits:[],ends:[],chunk:{path:c,routes:g,walks:[],lengths:a,refLengths:n?.lengths},skips:[]},B=E=>C.nodes.has(E)||n?.lengths.has(E)===!0,I={id:0};for(let E of n?[]:pn(t)){let u=E[0],p=KA(E[9],{id:0},[]),w=TA(E[10]),N=+E[6],l=c.starts.length;c.add(p,w,N),A&&Bn(E,11,p.map(tA),w,C.sequences);let S=N;for(let x=0;x<p.length;x++){let Q=tA(p[x]),h=w[x];a.set(Q,h);let y={refName:E[4],start:S,end:S+h,rank:0};C.nodes.has(Q)?C.revisits.push({id:Q,...y}):C.nodes.set(Q,y),S+=h}C.ends.push({name:E[4],fragStart:+E[5],piece:+E[7],first:p[0],last:p.at(-1)}),(e===void 0||e(E[4]))&&C.rows.push({chunkStart:+E[1],name:E[4],fragStart:+E[5],hapOffset:N,piece:+E[7],n:p.length,steps:{ids:Int32Array.from(p,tA),rev:Uint8Array.from(p,x=>x&1),refStarts:Float64Array.from(c.starts.slice(l))},...Ve(E,11,u)})}for(let E of t)if(E[3]==="nodes"){let u=TA(E[4]),p=TA(E[5]),w=0;for(let N=0;N<u.length;N++)w+=u[N],u[N]=w,a.set(w,p[N]);A&&Bn(E,6,u,p,C.sequences)}else if(E[3]==="route"){let u=KA(E[4],I,[]),p=KA(E[5],I,[]),w=KA(E[6],I,[]);g.push({entry:(i=u[0])!==null&&i!==void 0?i:-1,interior:p,exit:(o=w[0])!==null&&o!==void 0?o:-1})}let d=E=>{let u=g[E];if(!u)throw new gA(`route ${E} is not in the chunk`);return u};for(let E of t){if(E[3]==="skip"){(e===void 0||e(E[4]))&&C.skips.push({name:E[4],fragStart:+E[5],piece:+E[6],refStart:+E[9],refEnd:+E[10]});continue}if(E[3]==="abridged"){let Q=E[4];(e===void 0||e(Q))&&C.rows.push(Oi(E));continue}if(E[3]!=="walk")continue;let u=Hi(E[11]);C.chunk.walks.push({cols:E,choices:u});let p=E[4],w=+E[9],N=E[10],l=N.indexOf(":"),S=w,x=w+ +(l<0?N:N.slice(0,l));if(u.length>0){let Q=d(u[0]),h=u[1]===1;$e(Q,h)===-1&&(S=Qe(Q,h,0));let y=u.length-3,b=d(u[y]),v=u[y+1]===1;En(b,v)===-1&&(x=Qe(b,v,b.interior.length-1))}if(C.ends.push({name:p,fragStart:+E[5],piece:+E[7],first:S,last:x}),e===void 0||e(p)){let Q=+E[8],h=0;for(let y=0;y<u.length;y+=3){h+=d(u[y]).interior.length;for(let b of d(u[y]).interior){let v=tA(b);if(!B(v)){let K=(s=a.get(v))!==null&&s!==void 0?s:0;C.nodes.set(v,{refName:p,start:0,end:K,rank:1})}}}C.rows.push({chunkStart:+E[1],name:p,fragStart:+E[5],hapOffset:+E[6],piece:+E[7],n:Q,interior:h,steps:Ki(c,g,E,u,Q),...Ve(E,12,E[0])})}}return C}function mn(t,e,A,n){let r=new Set;for(let s of e)t.some(({path:c})=>c.occurrences.has(s))||r.add(s);let i=(s,c)=>{let[a,g]=dn(s,c);n(a,g)},o=new Map;for(let{path:s,routes:c,walks:a,lengths:g,refLengths:C}of t){let B=s.handles;for(let w=1;w<B.length;w++)e.has(tA(B[w-1]))&&e.has(tA(B[w]))&&i(B[w-1],B[w]);let I=new Uint8Array(c.length);for(let w=0;w<c.length;w++){let{entry:N,interior:l,exit:S}=c[w],x=!1,Q=N;for(let h of l){let y=e.has(tA(h));x||(x=r.has(tA(h))),y&&Q!==-1&&e.has(tA(Q))&&i(Q,h),Q=h}Q!==-1&&S!==-1&&e.has(tA(Q))&&e.has(tA(S))&&i(Q,S),I[w]=x?1:0}let d=w=>{var N,l;return(l=(N=g.get(tA(w)))!==null&&N!==void 0?N:C?.get(tA(w)))!==null&&l!==void 0?l:0},E=new Float64Array(c.length).fill(-1),u=w=>(E[w]<0&&(E[w]=c[w].interior.reduce((N,l)=>N+d(l),0)),E[w]),p=new Uint8Array(c.length);for(let{cols:w,choices:N}of a){let l=0;for(let Q=0;Q<N.length;Q+=3){let h=N[Q];I[h]&&!p[h]&&l++}if(l===0)continue;let S=w[4],x=+w[6];hn(s,c,+w[9],w[10],N,{step(Q){x+=d(Q)},stretch(Q,h,y){x+=y?s.bp(h+1)-s.bp(Q+1):s.bp(Q)-s.bp(h)},route(Q,h){if(!I[Q]||p[Q])return x+=u(Q),!0;p[Q]=1;let y=c[Q];for(let b=0;b<y.interior.length;b++){let v=Qe(y,h,b),K=tA(v),Z=d(v);if(r.has(K)){let V=o.get(K);(!V||S<V.refName||S===V.refName&&x<V.start)&&o.set(K,{refName:S,start:x,end:x+Z,rank:1})}x+=Z}return l--,l>0}})}}for(let[s,c]of o)A(s,c)}function qi(t){let e=[];for(let A of t){if(A[3]!=="ref")continue;let n=KA(A[9],{id:0},[]),r=TA(A[10]),i=+A[6];for(let o=0;o<n.length;o++){let s=r[o];e.push({id:tA(n[o]),refName:A[4],start:i,end:i+s,rank:0}),i+=s}}return e}function kn(t){let e=new Map;for(let n of t){let r=`${n.name} ${n.fragStart}`,i=e.get(r);i||(i=new Map,e.set(r,i)),i.set(n.piece,n)}let A=[];for(let n of e.values())for(let[r,i]of n){let o=n.get(r+1);o&&A.push(dn(i.last,o.first))}return A}var Nn=["elsewhere","break","end"];function et(t,e){let A=new RegExp(`(?:^|\\t)${e}:i:(\\d+)`).exec(t);return A?+A[1]:void 0}function tt(t){var e,A,n;let r={references:[],haplotypes:[],long:[]};for(let i of t){let[o,s="",c="",a=""]=i.split(" ");o==="#reference"?r.references.push(s):o==="#haplotype"?r.haplotypes.push(s):o==="#long"?r.long.push({refName:s,start:+c,end:+a}):((e=r.format)!==null&&e!==void 0||(r.format=et(i,"format")),(A=r.chunk)!==null&&A!==void 0||(r.chunk=et(i,"chunk")),(n=r.maxNode)!==null&&n!==void 0||(r.maxNode=et(i,"maxnode")))}return r}function Dn(t,e){return t===void 0?1:Math.max(1,Math.ceil(t/e))}function le(t,e,A=1){return Math.max(0,(Math.floor(t/e)-A)*e)}function Be(t,e,A,n){let{chunk:r,long:i}=t;if(i.length===0)return le(A,r,Dn(t.maxNode,r));let o=le(A,r);for(let s of i)s.refName===e&&s.start<n&&s.end>A&&(o=Math.min(o,le(s.start,r)));return o}function Sn(t,e){return t===void 0||t.length===0?void 0:A=>HA(A,e)||t.some(n=>HA(A,n))}function nt(t,e){var A;return Sn(t,(A=wA(e))!==null&&A!==void 0?A:e)}function rt(t){let e=new Map,A=[];for(let n of t){if(n.abridged){A.push(yn([n]));continue}let r=`${n.name} ${n.fragStart}`,i=e.get(r);i?i.push(n):e.set(r,[n])}for(let n of e.values()){n.sort((i,o)=>i.piece-o.piece);let r=0;for(let i=1;i<=n.length;i++)(i===n.length||n[i].piece!==n[i-1].piece+1)&&(A.push(yn(n.slice(r,i))),r=i)}return A}function yn(t){let e=t.reduce((g,C)=>g+C.n,0),A=new Int32Array(e),n=new Uint8Array(e),r=new Float64Array(e).fill(Number.NaN),i=[],o=[],s=0;for(let g of t)s>0&&i.push(s),o.push(g.chunkStart),A.set(g.steps.ids,s),n.set(g.steps.rev,s),g.steps.refStarts&&r.set(g.steps.refStarts,s),s+=g.n;let c=t[0],a=t.at(-1);return{name:c.name,fragStart:c.fragStart,hapOffset:c.hapOffset,firstPiece:c.piece,pieceStarts:i,pieceChunks:o,ids:A,rev:n,refStarts:r,prev:c.prev,next:a.next,prevRecord:c.prevRecord,nextRecord:a.nextRecord,...c.abridged?{abridged:c.abridged}:{}}}function it(t,e,A,{contained:n=!1,context:r=0,crossingBp:i=$A}={}){let o=f=>{let m=e.get(f);return m?.rank===0?m:void 0},s=1/0,c=-1/0;for(let f of e.values())f.onWindow&&(s=Math.min(s,f.start),c=Math.max(c,f.end));let a=(f,m,k)=>{var D;return vn(k,(D=f.refStarts)===null||D===void 0?void 0:D[m])},g=(f,m)=>{var k;return Fn(e.get(f.ids[m]),(k=f.refStarts)===null||k===void 0?void 0:k[m],s,c)},C=new Map,B=f=>{f&&C.set(`${f.refName}:${f.start}`,f)},I=(f,m,k)=>{let{ids:D}=f,F=m+k;for(;F>=0&&F<D.length&&o(D[F])===void 0;)F+=k;if(F<0||F>=D.length)return B(k<0?f.prev:f.next),F-k;let U=o(D[m]),L=o(D[F]);if(L.refName!==A)return F-k;let J=a(f,m,U),M=a(f,F,L);return F===m+k&&(M===J+U.end-U.start||M+L.end-L.start===J)?m:F},d=1/0,E=-1/0,u=[],p=f=>{let m=e.get(f);return m===void 0?0:m.end-m.start},w=f=>{let{ids:m}=f,k=0,D=-1,F=-1;for(let U=0;U<=m.length;U++){let L=U<m.length?e.get(m[U]):void 0,J=U<m.length&&g(f,U);if(U===m.length||L?.rank===0&&!J){if(D>=0){for(let M=0;D>k&&M<r;)M+=p(m[--D]);for(let M=0;F<U-1&&M<r;)M+=p(m[++F]);D===0&&B(f.prev),F===m.length-1&&B(f.next),u.push({run:f,first:D,last:F})}k=U+1,D=-1}else J&&(D<0&&(D=U),F=U)}},N=f=>{let{ids:m}=f,k=-1,D=-1;for(let F=0;F<m.length;F++)g(f,F)&&(k<0&&(k=F),D=F);if(k>=0){if(f.name!==A){k=I(f,k,-1),D=I(f,D,1);for(let F of[k,D]){let U=o(m[F]);if(U){let L=a(f,F,U);d=Math.min(d,L),E=Math.max(E,L+U.end-U.start)}}}u.push({run:f,first:k,last:D})}},l=new Map,S=f=>{l.set(`${f.refName}:${f.start}`,f)},x=new Map;for(let f of t){let m=`${f.name} ${f.fragStart}`,k=x.get(m);k?k.push(f):x.set(m,[f])}let Q=new Map;for(let f of x.values())f.sort((m,k)=>m.firstPiece-k.firstPiece),f.forEach((m,k)=>{Q.set(m,[f[k-1],f[k+1]])});let h=[],y=(f,m)=>{let k=o(f.ids[m]);if(k?.refName!==A)return 0;let D=a(f,m,k);return D+k.end-k.start<=s?-1:D>=c?1:0},b=f=>f?.refName!==A?0:f.start>=c?1:f.start<s?-1:0,v=(f,m)=>{var k;return f.abridged?m===0?f.firstPiece:f.abridged.pieces.at(-1):f.firstPiece+((k=f.pieceStarts)!==null&&k!==void 0?k:[]).filter(D=>D<=m).length},K=(f,m)=>{let[k,D]=[f,m].map(([L,J])=>{let M=o(L.ids[J]),P=a(L,J,M);return[P,P+M.end-M.start]}),[F,U]=f;return{name:F.name,fragStart:F.fragStart,piece:v(F,U),refStart:Math.min(k[1],D[1]),refEnd:Math.max(k[0],D[0])}},Z=(f,m,k)=>f?.abridged&&v(f,k)===m?[f,k]:void 0,V=(f,m,k)=>{let D=0;for(let F=m;F<k;F++)D+=p(f.ids[F]);return D},X=(f,m,k)=>{var D;let F=new Set;for(let U=v(f,m);U<=v(f,k);U++){let L=(D=f.pieceChunks)===null||D===void 0?void 0:D[U-f.firstPiece];L!==void 0&&F.add(L)}return[...F].map(U=>({refName:A,start:U}))},nA=f=>{var m;let{ids:k}=f,D=k.length-1,[F,U]=(m=Q.get(f))!==null&&m!==void 0?m:[],L=-1;for(let M=0;M<=D;M++)if(o(k[M])!==void 0){if(L>=0){if(y(f,L)*y(f,M)<0){let P=V(f,L+1,M);if(M>L+1&&P<=i){let{refStart:j,refEnd:W}=K([f,L],[f,M]);u.push({run:f,first:L+1,last:M-1,crossing:{refStart:j,refEnd:W,reverse:y(f,L)>0}})}else M>L+1?h.push({...K([f,L],[f,M]),offBp:P,offSteps:M-L-1,chunks:X(f,L+1,M-1)}):h.push(K([f,L],[f,M]))}}else{y(f,M)*b(f.prev)<0&&S(f.prev);let P=M===0?Z(F,f.firstPiece-1,1):void 0;P&&y(P[0],P[1])*y(f,0)<0&&h.push(K(P,[f,0]))}L=M}if(L<0)return;y(f,L)*b(f.next)<0&&S(f.next);let J=L===D?Z(U,v(f,D)+1,0):void 0;J&&y(f,D)*y(J[0],J[1])<0&&h.push(K([f,D],J))},_=f=>f.ids.some((m,k)=>g(f,k)),T=f=>{let m=o(f.ids[0]),k=o(f.ids.at(-1));m?.refName!==A||k?.refName!==A||Math.max(m.end,k.end)>s&&Math.min(m.start,k.start)<c&&u.push({run:f,first:0,last:f.ids.length-1})};for(let f of t)f.abridged?T(f):f.name!==A&&!_(f)?nA(f):n?w(f):N(f);let Y=(f,m)=>{if(g(f,m))return!0;let k=o(f.ids[m]);if(k?.refName!==A)return!1;let D=a(f,m,k);return D+k.end-k.start>d&&D<E},O=new Set;for(let[f,m]of e)m.onWindow&&O.add(f);for(let f of u){let{run:m}=f,{ids:k}=m;if(m.name===A){for(;f.first>0&&Y(m,f.first-1);)f.first--;for(;f.last<k.length-1&&Y(m,f.last+1);)f.last++}for(let D=f.first;D<=f.last;D++)O.add(k[D])}let $=new Set(u.filter(f=>f.run.abridged).map(f=>f.run)),AA=(f,m,k)=>{let D=0;for(let F=m;F<k;F++)D+=p(f[F]);return D},G=new Map,q=f=>{var m,k;let D=G.get(f);return D===void 0&&(D=f.hapOffset+((k=(m=f.abridged)===null||m===void 0?void 0:m.bp)!==null&&k!==void 0?k:AA(f.ids,0,f.ids.length)),G.set(f,D)),D},R=(f,m,k)=>{var D;let F=k>0?{trimmed:k}:{},U=m?f.next:f.prev;if(U){let J=(D=Q.get(f))===null||D===void 0?void 0:D[m?1:0];return J?{kind:"elsewhere",chunk:U,bp:m?J.hapOffset-q(f):f.hapOffset-q(J),...F}:{kind:"elsewhere",chunk:U,...F}}let L=m?f.nextRecord:f.prevRecord;return L?{kind:"break",...L,...F}:{kind:"end",...F}},H=[];for(let{run:f,first:m,last:k,crossing:D}of u){let{ids:F,rev:U}=f;if($.has(f)){H.push({name:f.name,fragStart:f.fragStart,hapStart:f.hapOffset,hapEnd:q(f),ids:F,rev:U,before:R(f,!1,0),after:R(f,!0,0),abridged:f.abridged});continue}let L=m,J=k;for(;L>0&&O.has(F[L-1]);)L--;for(;J<F.length-1&&O.has(F[J+1]);)J++;let M=f.hapOffset+AA(F,0,L),P=M+AA(F,L,J+1);H.push({name:f.name,fragStart:f.fragStart,hapStart:M,hapEnd:P,ids:F.subarray(L,J+1),rev:U.subarray(L,J+1),before:R(f,!1,M-f.hapOffset),after:R(f,!0,q(f)-P),...D?{crossing:D}:{}})}return{kept:O,fragments:H,open:[...C.values()],across:[...l.values()],skips:h}}var $A=65536,vn=(t,e=Number.NaN)=>Number.isNaN(e)?t.start:e;function Fn(t,e,A,n){if(!t?.onWindow)return!1;let r=vn(t,e);return r<n&&r+t.end-t.start>A}function ot(t,e,{contained:A,start:n,end:r},i){var o;for(let s of t.nodes.keys())!((o=e.get(s))===null||o===void 0)&&o.onWindow&&i.add(s);for(let{steps:s}of t.rows){let{ids:c,refStarts:a}=s,g=-1;for(let C=0;C<c.length;C++){let B=e.get(c[C]);if(Fn(B,a?.[C],n,r)){for(let I=g+1;g>=0&&I<C;I++)i.add(c[I]);g=C}else A&&B?.rank===0&&(g=-1)}}}function bn(t){let e=[],A=new Map,n={kinds:new Uint8Array(t.length),kindNames:[...Nn],bp:new Float64Array(t.length).fill(Number.NaN),trimmed:new Float64Array(t.length),chunkRefs:new Int32Array(t.length).fill(-1),chunkStarts:new Float64Array(t.length).fill(Number.NaN),chunkRefNames:e};return t.forEach((r,i)=>{var o;if(n.kinds[i]=Nn.indexOf(r.kind),n.trimmed[i]=(o=r.trimmed)!==null&&o!==void 0?o:0,"bp"in r&&r.bp!==void 0&&(n.bp[i]=r.bp),"chunk"in r&&r.chunk){let{refName:s,start:c}=r.chunk,a=A.get(s);a===void 0&&(a=e.length,A.set(s,a),e.push(s)),n.chunkRefs[i]=a,n.chunkStarts[i]=c}}),n}var Zi=(t,e)=>t.onWindow!==e.onWindow?t.onWindow:t.rank===0&&(e.rank!==0||t.refName<e.refName||t.refName===e.refName&&t.start<e.start),VA=class{constructor(e){this.nodes=new Map,this.sequences=new Map,this.links=[],this.chunks=[],this.window=e}placeNode(e,A){let{window:n}=this,r={...A,onWindow:A.rank===0&&A.refName===n.refName&&A.end>n.start-n.context&&A.start<n.end+n.context},i=this.nodes.get(e);(!i||Zi(r,i))&&this.nodes.set(e,r)}addLinkEnds(e,A){this.links.push(e,A)}addChunk(e){this.chunks.push(e)}addSequences(e){if(this.window.sequences)for(let[A,n]of e)this.sequences.set(A,n)}tables(e,A,n=[]){this.chunks.length>0&&mn(this.chunks,e,(Q,h)=>{let y=this.nodes.get(Q);y&&this.nodes.set(Q,{...y,...h})},(Q,h)=>{this.links.push(Q,h)});let r=[];for(let Q of e){let h=this.nodes.get(Q);h&&r.push({...h,id:Q})}r.sort((Q,h)=>Q.refName<h.refName?-1:Q.refName>h.refName?1:Q.start-h.start||Q.id-h.id);let i=new Map,o=[],s=[],c=new Map,a=new Int32Array(r.length),g=new Int32Array(r.length),C=new Float64Array(r.length),B=new Int32Array(r.length);r.forEach(({id:Q,refName:h,start:y,end:b,rank:v},K)=>{i.set(Q,K),o.push(String(Q));let Z=c.get(h);Z===void 0&&(Z=s.length,c.set(h,Z),s.push(h)),a[K]=b-y,g[K]=Z,C[K]=y,B[K]=v});let I=Q=>{let h=i.get(Q);return h===void 0&&(h=o.length,i.set(Q,h),o.push(String(Q))),h},d=new Map;for(let Q=0;Q<this.links.length;Q+=2){let h=this.links[Q],y=this.links[Q+1],b=Math.floor(h/2),v=Math.floor(y/2);e.has(b)&&e.has(v)&&d.set(`${b} ${h%2?"-":"+"} ${v} ${y%2?"-":"+"}`,Q)}let E=[...d.keys()].sort(),u=new Int32Array(E.length),p=new Int32Array(E.length),w=new Uint8Array(E.length);E.forEach((Q,h)=>{let y=d.get(Q),b=this.links[y],v=this.links[y+1];u[h]=I(Math.floor(b/2)),p[h]=I(Math.floor(v/2)),w[h]=b%2|v%2<<1});let N=this.referenceFirst(A),l=new Int32Array(N.length+1);N.forEach(({ids:Q},h)=>{l[h+1]=l[h]+Q.length});let S=new Int32Array(l[N.length]),x=new Uint8Array(S.length);return N.forEach(({ids:Q,rev:h},y)=>{let b=l[y];for(let v=0;v<Q.length;v++)S[b+v]=I(Q[v]);x.set(h,b)}),{nodes:{names:o,lengths:a,refs:g,starts:C,ranks:B,refNames:s},links:{from:u,to:p,strands:w},walks:{names:N.map(Q=>Q.name),starts:Float64Array.from(N,Q=>Q.hapStart),ends:Float64Array.from(N,Q=>Q.hapEnd),offsets:l,steps:S,reversed:x,before:bn(N.map(Q=>Q.before)),after:bn(N.map(Q=>Q.after)),abridgedSteps:Float64Array.from(N,Q=>{var h,y;return(y=(h=Q.abridged)===null||h===void 0?void 0:h.steps)!==null&&y!==void 0?y:NaN}),abridgedBp:Float64Array.from(N,Q=>{var h,y;return(y=(h=Q.abridged)===null||h===void 0?void 0:h.bp)!==null&&y!==void 0?y:NaN})},skips:{names:n.map(Q=>Q.name),starts:Float64Array.from(n,Q=>Q.refStart),ends:Float64Array.from(n,Q=>Q.refEnd),offBp:Float64Array.from(n,Q=>{var h;return(h=Q.offBp)!==null&&h!==void 0?h:NaN}),offSteps:Float64Array.from(n,Q=>{var h;return(h=Q.offSteps)!==null&&h!==void 0?h:NaN})}}}referenceFirst(e){let{refName:A}=this.window;return[...e].sort((n,r)=>+(r.name===A)-+(n.name===A)||(n.name<r.name?-1:n.name>r.name?1:n.hapStart-r.hapStart))}},st={steps:"the step budget",bytes:"a byte budget of"},Pi=4,zi=t=>{var e;let A=(e=t.interior)!==null&&e!==void 0?e:0;return A+(t.n-A)/Pi};function at(t,e,A,n,r,i,o=st){var s;let c=0,a=new Map,g=new Set;for(let u of t){let p=zi(u);c+=p,a.set(u.chunkStart,((s=a.get(u.chunkStart))!==null&&s!==void 0?s:0)+p),g.add(u.name)}let C=e*A;if(c<=C)return;let B=n.end-n.start,I=0,d=0;for(let u of[...a.keys()].sort((p,w)=>p-w)){if(I+=a.get(u),I>C)break;d=Math.max(d,u+r-n.start)}let E=!i&&g.size>2&&2*c/g.size<=C;return new fA(d>0?`Zoom in to about ${SA(d)}${E?", or choose fewer haplotypes,":""} to see the graph`:`Too many haplotype steps here to draw ${i?"these haplotypes":"every haplotype"} (${Math.round(I).toLocaleString()} steps read, a step along the reference counting a quarter, over ${A} \xD7 ${o.steps} of ${e.toLocaleString()}); choose fewer haplotypes`,C,B,Math.max(d,1))}function gt(t,e,A,n){let r=t.reduce((i,o)=>i+o.ids.length,0);return Rn(r,e,A,n)}function de(t,e,A,n,r=A.end){return Rn(t,e,A,n,r)}function Rn(t,e,A,n,r=A.end){if(t<=e)return;let i=A.end-A.start,o=Math.min(r,A.end)-A.start,s=Math.max(1,Math.floor(o*e/t));return new fA(`Zoom in to about ${SA(s)}${n?"":", or choose fewer haplotypes,"} to see the graph`,e,i,s)}async function ct(t,e,A,n,r=st){let i=await t(A.end);if(i<=e)return;let o=0,s;for(let a=Math.floor(A.start/n)*n;a<A.end;a+=n){let g=await t(a+1);if(s??(s=g),g>e)break;o=a+n-A.start}let c=A.end-A.start;return o>0?new fA(`Zoom in to about ${SA(o)} to see the graph`,e,c,o,{bytes:i,zoomHelps:!0}):new fA(`Too much graph here to fetch, even zoomed in (${xn(s??i)} against ${r.bytes} ${xn(e)}). A satellite or rDNA array usually causes this: the graph folds the repeat into a few nodes that each haplotype loops through many times`,e,c,1,{bytes:i})}var xn=t=>`${(t/1e6).toFixed(1)} MB`;function ft(t,e){return`${t} ${e}`}function Ae(t){let e=new Map;for(let A of t){e.set(A,A);let n=WA(A);if(n!==A){let r=je(A);e.set(ft(n,r),A);let i=wA(A);i!==void 0&&e.set(ft(i,r),A)}}return e}function ee(t,e,A){var n;return(n=t.get(ft(e,A)))!==null&&n!==void 0?n:t.get(A)}var Xi=8,ji=3,Wi=4,Vi=1e3,$i=16,Ao={stepBudget:4e6,byteBudget:8e6,crossingBp:$A},Ee=class extends Error{constructor(){super(...arguments),this.name="WalkFormatError"}};function BA(t,e,A){if(!Number.isFinite(e)||!Number.isFinite(A))throw new Error(`${t}:${e}-${A} is not a finite range to query the graph's index for`)}function _n(t){return t.filter(e=>!e.includes("~"))}async function eo(t,e,A,n,r){let i=[],o=()=>{if(i.length<t.length&&!A.aborted){let s=n(t[i.length]);i.push(s),s.then(o,()=>{})}};for(let s=0;s<e;s++)o();for(let s=0;s<t.length;s++)A.throwIfAborted(),r(t[s],await i[s])}function Mn(t,e){return e?(e.throwIfAborted(),new Promise((A,n)=>{let r=()=>{n(e.reason instanceof Error?e.reason:new Error(String(e.reason)))};e.addEventListener("abort",r,{once:!0}),t.then(A,n).finally(()=>{e.removeEventListener("abort",r)})})):t}var It=class{constructor(e){this.walks=e}header(e={}){if(!this.headerRead){let A=this.walks.getHeaderLines().then(n=>{var r,i;let o=tt(n);if(o.format!==5)throw new Ee(`This walk file is format ${(r=o.format)!==null&&r!==void 0?r:1}; @jbrowse/graph-walks reads format 5, so rebuild it with gfa-to-tabix 1.4 or later`);return{...o,chunk:(i=o.chunk)!==null&&i!==void 0?i:65536}});A.catch(()=>{this.headerRead===A&&(this.headerRead=void 0)}),this.headerRead=A}return Mn(this.headerRead,e.signal)}async referenceSequences(e={}){return _n(await this.walks.getReferenceSequenceNames(e))}async sequenceFor(e,A,n={}){if(!this.lookupRead){let i=this.walks.getReferenceSequenceNames().then(o=>Ae(_n(o)));i.catch(()=>{this.lookupRead===i&&(this.lookupRead=void 0)}),this.lookupRead=i}let r=await Mn(this.lookupRead,n.signal);return ee(r,e,A)}async queryStart(e,A={}){let{refName:n="",end:r=e+1}=A;return Be(await this.header(A),n,e,r)}async cut(e,A,n={}){var r,i;let{signal:o,keep:s,context:c=Vi,stepBudget:a=1/0,byteBudget:g=1/0,crossingBp:C=$A,links:B=!0,contained:I=!1,nodeLimit:d=1/0,expand:E}=n,u=await this.header({signal:o}),{chunk:p}=u,w=Be(u,e,A.start,A.end),N=(r=this.walks.bytesForRegions)===null||r===void 0?void 0:r.bind(this.walks),l=Number.isFinite(g)&&N!==void 0,S=async R=>l?N(R.map(H=>({refName:e,...H})),{signal:o}):0,x=l?await ct(async R=>(BA(e,w,R),S([{start:w,end:R}])),g,A,p,n.budgetNames):void 0;if(x)throw x;let Q=new AbortController,h=()=>{Q.abort(o?.reason)};o?.throwIfAborted(),o?.addEventListener("abort",h,{once:!0});let y=[],b,v=new VA({refName:e,start:A.start,end:A.end,context:c,sequences:n.sequences}),K=new Set,Z=[],V=[],X=new Set,nA={contained:I,start:A.start-c,end:A.end+c},_=s!==void 0,T=[],Y=(R,H)=>{if(K.has(R))return;K.add(R);let f=At(H,s,n.sequences);for(let k of f.skips)V.push(k);let m;for(let k of f.rows)k.abridged&&E?.(k.name)?(m??(m=wn(H)),T.push({ref:m,row:k})):y.push(k);AA(f,R)},O=async({row:R})=>{let{refName:H,start:f}=R.abridged.detail;BA(H,f,f+1);let m=[];return await this.walks.getLines(H,f,f+1,{signal:Q.signal,lineCallback:k=>{let D=k.split(" ");D[0]=e,D[1]=String(R.chunkStart),m.push(D)}}),m},$=({ref:R,row:H},f)=>{let m=At(f,k=>k===H.name,n.sequences,R);for(let k of m.rows)k.name===H.name&&y.push(k);AA(m,H.chunkStart)},AA=(R,H)=>{for(let[f,m]of R.nodes)v.placeNode(f,m);for(let{id:f,...m}of R.revisits)v.placeNode(f,m);v.addSequences(R.sequences),v.addChunk(R.chunk);for(let f of R.ends)Z.push(f);if(Number.isFinite(d)){ot(R,v.nodes,nA,X),X.size>d&&(X.clear(),ot({nodes:v.nodes,rows:y},v.nodes,nA,X));let f=de(X.size,d,A,_,H+p);if(f)throw f}},G=async(R,H)=>{BA(e,R,H);let f,m=[];await this.walks.getLines(e,R,H,{signal:Q.signal,lineCallback:D=>{let F=D.split(" "),U=+F[1];U!==f&&(f!==void 0&&Y(f,m),f=U,m=[]),m.push(F)}}),f!==void 0&&Y(f,m);let k=T;if(T=[],await eo(k,$i,Q.signal,O,$),B)for(let[D,F]of kn(Z))v.addLinkEnds(D,F)};try{await G(w,A.end);let R=at(y,a,Xi,A,p,_,n.budgetNames);if(R)throw R;let H=w,f=Math.floor((A.end-1)/p)*p,m=Wi*p,[k,D]=[H-m,f+m],[F,U]=I?[Math.floor((A.start-c)/p)*p,Math.floor((A.end+c-1)/p)*p]:[k,D],L=(P,j,W)=>P.refName===e&&P.start>=j&&P.start<=W,J=()=>it(rt(y),v.nodes,e,{contained:I,context:c,crossingBp:C});b=J();let M=await S([{start:w,end:A.end}]);for(let P=0;P<ji;P++){let j=H,W=f;for(let QA of[...b.open.filter(xA=>L(xA,F,U)),...b.across.filter(xA=>L(xA,k,D))])j=Math.min(j,QA.start),W=Math.max(W,QA.start);let rA=[{start:j,end:H},{start:f+p,end:W+1}].filter(QA=>QA.end>QA.start);if(rA.length===0||(M+=await S(rA),M>g))break;H=j,f=W,await Promise.all(rA.map(({start:QA,end:xA})=>G(QA,xA))),b=J()}}catch(R){throw Q.abort(),R}finally{o?.removeEventListener("abort",h)}let q=(i=gt(b.fragments,a,A,_))!==null&&i!==void 0?i:de(b.kept.size,d,A,_);if(q)throw q;return{graph:v,...b,skips:un(V,b.fragments,A,b.skips)}}async cutRegion(e,A={}){var n;let{haplotypes:r,referenceSample:i,...o}=A,{signal:s}=A,c=await this.header({signal:s}),a=(n=i??c.references[0])!==null&&n!==void 0?n:"",g=await this.sequenceFor(a,e.refName,{signal:s});if(g===void 0){let E=await this.referenceSequences({signal:s});throw new Error(`The walk file has no sequence ${e.refName} on ${a}; it holds ${E.slice(0,5).join(", ")}${E.length>5?", \u2026":""}`)}let{graph:C,kept:B,fragments:I,skips:d}=await this.cut(g,e,{...o,keep:nt(r,g)});return{tables:C.tables(B,I,d),refName:g,sample:a}}};var vA=50,Kn=[50,1e3,1e4],Qt=.05,to=1e3,no=.1,he="0",cA=".",ue="~";function Tn(t){let e=t/100,[A,n,r]=Kn;return e<250?A:e<3e3?n:r}var On=t=>Math.max(1,Math.round(t/100));function lt(t,e){return e>t&&t<vA?"insertion":e<t&&e<vA?"deletion":"replacement"}function Bt(t,e){return e<Qt*t?"deletion":t<Qt*e?"insertion":void 0}var qn=(t,e,A)=>{let n=t==="replacement"?Bt(e,A):void 0;return n?{lopsided:n}:{}},Zn=t=>10**(Math.floor(Math.log10(t))-1),OA=t=>{let e=Zn(t);return Math.round(Math.round(t/e)*e)},Pn=(t,e=0)=>Math.abs(t.delta)>=Math.max(e,Zn(t.shiftedBp));function zn(t,e=vA){let A=t.delta>0?"+":"-";switch(t.kind){case"inversion":return`v${OA(Math.max(Math.abs(t.delta),t.refEnd-t.refStart,1))}`;case"shift":return Pn(t,e)?`s${OA(t.shiftedBp)}${A}${OA(Math.abs(t.delta))}`:`s${OA(t.shiftedBp)}`;case"net":return`n${A}${OA(Math.abs(t.delta))}`;default:return`${A}${OA(Math.abs(t.delta))}`}}var Ln=t=>t.altLength-(t.refEnd-t.refStart);function ro(t,e){let A=[];for(let n of t){let r=A.at(-1);r&&!r.abridged&&!n.abridged&&n.refStart-r.refEnd<e?(r.refEnd=Math.max(r.refEnd,n.refEnd),r.delta+=Ln(n),r.invertedBp+=n.invertedBp,r.repeatedBp+=n.repeatedBp,n.copied&&(r.copied=r.copied?[Math.min(r.copied[0],n.copied[0]),Math.max(r.copied[1],n.copied[1])]:n.copied)):A.push({refStart:n.refStart,refEnd:n.refEnd,delta:Ln(n),invertedBp:n.invertedBp,repeatedBp:n.repeatedBp,...n.copied?{copied:n.copied}:{},...n.abridged?{abridged:!0}:{}})}return A}function io(t,e){let A=t.refEnd-t.refStart,n=Math.max(0,A+t.delta),r=Math.abs(t.delta),i=t.abridged?r>=e?"net":void 0:r<e?t.invertedBp>=e?"inversion":void 0:t.repeatedBp>=vA&&t.delta>0?"duplication":lt(A,n);return i&&{kind:i,refStart:t.refStart,refEnd:t.refEnd,altLength:n,delta:t.delta,...i==="duplication"?{repeatedBp:t.repeatedBp}:{},...i==="duplication"&&t.copied?{copied:t.copied}:{},...qn(i,A,n)}}function Xn(t){let e=new Set,A=[],n=t.filter(r=>r.kind==="deletion"&&-r.delta>=to).sort((r,i)=>r.delta-i.delta);for(let r of n){let i=-r.delta,o=t.find(s=>!e.has(s)&&(s.kind==="insertion"||s.kind==="duplication")&&Math.abs(s.delta-i)<=no*Math.max(s.delta,i)&&Math.max(s.refStart-r.refEnd,r.refStart-s.refEnd)<=2*i);if(o){e.add(o),e.add(r);let s=Math.min(r.refStart,o.refStart),c=Math.max(r.refEnd,o.refEnd),a=r.delta+o.delta;A.push({kind:"shift",refStart:s,refEnd:c,altLength:c-s+a,delta:a,shiftedBp:i})}}return[...t.filter(r=>!e.has(r)),...A].sort((r,i)=>r.refStart-i.refStart)}var jn=new Set(["insertion","deletion","replacement"]),oo=1e3;function so(t,e,A,n){let r=ro(t,A).filter(a=>!n||a.refEnd>=n.start&&a.refStart<=n.end),i=new Map;for(let a of r){let g=io(a,e);g&&i.set(g,a)}let o=Xn([...i.keys()]),s=new Set(o),c=new Set([...i].flatMap(([a,g])=>s.has(a)&&jn.has(a.kind)?[]:[g]));return{marks:o,plain:r.filter(a=>!a.abridged&&!c.has(a))}}function ao(t,e){let A=t.reduce((g,C)=>g+C.delta,0);if(Math.abs(A)<e)return;let n=t.filter(g=>Math.abs(g.delta)>=e),r=n.length>0?n:t.filter(g=>g.delta!==0),i=1/0,o=-1/0;for(let g of r)i=Math.min(i,g.refStart),o=Math.max(o,g.refEnd);let s=o-i,c=Math.max(0,s+A),a=lt(s,c);return{kind:a,refStart:i,refEnd:o,altLength:c,delta:A,...qn(a,s,c)}}var Ct=t=>t.reduce((e,A)=>e+A.delta,0),go=(t,e,A)=>t.covered.some(([n,r])=>n<=e&&r>=A),co=(t,e,A)=>t.covered.some(([n,r])=>n<=A&&r>=e);function fo(t){let e=t.flat().map(n=>[n.refStart,n.refEnd]).sort((n,r)=>n[0]-r[0]),A=[];for(let[n,r]of e){let i=A.at(-1);i&&n<=i[1]?i[1]=Math.max(i[1],r):A.push([n,r])}return A}function Jn(t,e){let A=0,n=t.length-1;for(;A<n;){let r=A+n+1>>1;t[r][0]<=e.refStart?A=r:n=r-1}return A}function Io(t,e={}){var A,n,r,i;let o=(A=e.exclude)!==null&&A!==void 0?A:[],s=t.filter(_=>!o.some(T=>HA(_.haplotype,T))),c=(n=e.minCarriers)!==null&&n!==void 0?n:On(s.length),a=(r=e.window)!==null&&r!==void 0?r:Co(s),g=e.floorBp===void 0||e.floorBp==="auto"?Tn(a.end-a.start):Math.max(vA,e.floorBp),C=(i=e.joinBp)!==null&&i!==void 0?i:vA,B=e.foldRareForms===!1,I=s.map(_=>so(_.departures,g,C,e.window)),d=fo(I.map(_=>_.marks)),E=d.map(([_,T])=>T-_<=oo),u=I.map(({marks:_,plain:T})=>{var Y;let O=new Map,$=(G,q)=>{var R;O.set(G,[...(R=O.get(G))!==null&&R!==void 0?R:[],q])};for(let G of _){let q=Jn(d,G);(!jn.has(G.kind)||!E[q])&&$(q,G)}let AA=new Map;for(let G of T){let q=Jn(d,{refStart:G.refEnd});E[q]&&d[q][0]<=G.refEnd&&d[q][1]>=G.refStart&&AA.set(q,[...(Y=AA.get(q))!==null&&Y!==void 0?Y:[],G])}for(let[G,q]of AA){let R=ao(q,g);R&&$(G,R)}return new Map([...O].map(([G,q])=>{q.sort((H,f)=>H.refStart-f.refStart||H.refEnd-f.refEnd);let R=q.map(H=>zn(H,g)).join(";");return[G,q.map(H=>({...H,site:G,state:R}))]}))});for(let _ of u)for(let[T,Y]of _){let O=d[T];for(let $ of Y)O[0]=Math.min(O[0],$.refStart),O[1]=Math.max(O[1],$.refEnd)}let p=d.map(([_,T],Y)=>s.map((O,$)=>{var AA,G;return go(O,Math.max(_,a.start),Math.min(T,a.end))?(G=(AA=u[$].get(Y))===null||AA===void 0?void 0:AA[0].state)!==null&&G!==void 0?G:he:cA})),w=s.map(_=>co(_,a.start,a.end)),N=w.filter(Boolean).length,l=p.map(_=>2*_.filter((T,Y)=>w[Y]&&T!==cA).length<N),S=s.map((_,T)=>w[T]&&(l.every(Boolean)||p.some((Y,O)=>!l[O]&&Y[T]!==cA))),x=s.flatMap((_,T)=>S[T]?[T]:[]),Q=new Set,h=[],y=[],b=[],v=[];d.forEach(([_,T],Y)=>{var O,$,AA,G,q,R;let H=p[Y],f=new Map;for(let J of x){let M=f.get(H[J]);M?M.push(J):f.set(H[J],[J])}let m=[...f].sort((J,M)=>M[1].length-J[1].length||(J[0]<M[0]?-1:1)),k=m.flatMap(([J,M])=>{if(J===cA)return[];let P=M.map(W=>{var rA;return{j:W,marks:(rA=u[W].get(Y))!==null&&rA!==void 0?rA:[]}}).map(W=>({...W,delta:Ct(W.marks)})).sort((W,rA)=>W.delta-rA.delta),j=P[Math.floor(P.length/2)];return[{key:J,delta:j.delta,marks:j.marks,carriers:M.map(W=>s[W].haplotype)}]}),D=!l[Y]&&m.length>1&&m[1][1].length>=c;if(h.push({refStart:_,refEnd:T,edge:l[Y],shared:!l[Y]&&!D,covered:x.length-(($=(O=f.get(cA))===null||O===void 0?void 0:O.length)!==null&&$!==void 0?$:0),states:k}),l[Y])return;let F=(G=(AA=m[0])===null||AA===void 0?void 0:AA[0])!==null&&G!==void 0?G:he,U=k.filter(J=>J.carriers.length>=c),L=H.map((J,M)=>{var P,j,W;if(((j=(P=f.get(J))===null||P===void 0?void 0:P.length)!==null&&j!==void 0?j:0)>=c||!S[M]||B&&D)return J;if(J!==F&&Q.add(s[M].haplotype),J!==cA&&F===cA)return ue;if(J!==cA&&U.length>0){let QA=Ct((W=u[M].get(Y))!==null&&W!==void 0?W:[]);return Gn(U,xA=>xA.delta,QA).key}return F});if(D)y.push(Y),b.push(L);else for(let J of(R=(q=k.find(M=>M.key===F))===null||q===void 0?void 0:q.marks)!==null&&R!==void 0?R:[])v.push(J)});let K=(_,T)=>h[y[_]].states.find(Y=>Y.key===T),Z=new Map;for(let _ of x){let T=b.map($=>$[_]),Y=T.join("|"),O=Z.get(Y);O?O.members.push(s[_].haplotype):Z.set(Y,{states:T,members:[s[_].haplotype]})}let V=[...Z].map(([_,{states:T,members:Y}])=>{let O=T.flatMap((G,q)=>{var R,H;return(H=(R=K(q,G))===null||R===void 0?void 0:R.marks)!==null&&H!==void 0?H:[]}).concat(v).sort((G,q)=>G.refStart-q.refStart),$=O.filter(G=>!h[G.site].shared),AA=$.length>0&&$.every(G=>G.kind==="shift")&&!T.some(G=>G===cA||G===ue);return{members:Y,key:_,states:T,marks:O,net:Ct(O),onlyShifts:AA}}),X=B?V:V.filter(_=>_.members.length>=c),nA=X.length>0?X:V;if(X.length>0&&X!==V){for(let _ of Un(V))if(_.members.length<c){let T=Gn(X,Y=>Y.net,_.net);for(let Y of _.members)T.members.push(Y),Q.add(Y)}}return{sites:h,informative:y,forms:Un(nA),placed:x.length,unplaced:s.flatMap((_,T)=>S[T]?[]:[_.haplotype]),rareCarriers:s.filter(_=>Q.has(_.haplotype)).map(_=>_.haplotype),abridged:s.filter((_,T)=>I[T].marks.some(Y=>Y.kind==="net")).map(_=>_.haplotype),minCarriers:c,floorBp:g}}function Co(t){let e=1/0,A=-1/0;for(let n of t)for(let[r,i]of n.covered)e=Math.min(e,r),A=Math.max(A,i);return e<=A?{start:e,end:A}:{start:0,end:0}}function Gn(t,e,A){let n=t[0];for(let r of t)Math.abs(e(r)-A)<Math.abs(e(n)-A)&&(n=r);return n}var Un=t=>t.toSorted((e,A)=>A.members.length-e.members.length||Math.abs(e.net)-Math.abs(A.net)||(e.key<A.key?-1:1));function IA(t){let e=Number(t.toPrecision(3));return e>=1e6?`${Number((e/1e6).toPrecision(3))}Mb`:e>=1e3?`${Number((e/1e3).toPrecision(3))}kb`:`${e}bp`}var Yn=t=>`${t<0?"-":"+"}${IA(Math.abs(t))}`,Qo={deletion:"del",insertion:"ins",none:"repl"};function Wn(t){var e;let A=t.refEnd-t.refStart;switch(t.kind){case"insertion":return`ins ${IA(t.delta)}`;case"deletion":return`del ${IA(-t.delta)}`;case"duplication":return`dup ${IA(t.delta)}`;case"inversion":return`inv ${IA(A)}`;case"net":return`net ${Yn(t.delta)}`;case"shift":return Pn(t)?`shift ${IA(t.shiftedBp)} net ${Yn(t.delta)}`:`shift ${IA(t.shiftedBp)}`;case"replacement":return`${Qo[(e=Bt(A,t.altLength))!==null&&e!==void 0?e:"none"]} ${IA(A)}->${IA(t.altLength)}`}}var Hn=t=>{var e;return t.kind==="inversion"?t.refEnd-t.refStart:(e=t.shiftedBp)!==null&&e!==void 0?e:Math.abs(t.delta)};function lo(t,e,A){var n,r,i;let o=t.informative.indexOf(A);return o>=0?e.states[o]:!((n=t.sites[A])===null||n===void 0)&&n.shared?(i=(r=e.marks.find(s=>s.site===A))===null||r===void 0?void 0:r.state)!==null&&i!==void 0?i:he:void 0}function Bo(t,e){let A=a=>{var g;return"site"in a&&((g=e?.sites[a.site])===null||g===void 0?void 0:g.shared)===!0},n=t.marks.filter(a=>!A(a)),[r]=n.toSorted((a,g)=>Hn(g)-Hn(a)),i=t.states.filter(a=>a===ue).length,o=t.states.filter(a=>a===cA).length,s=r?Wn(r):i>0?"rarer":o>0?"no call":n.length<t.marks.length?"shared":"ref",c=n.length+i+o-1;return c>0?`${s} +${c}`:s}function Eo(t,e,A){return{walks:t.map(n=>{var r,i,o;return{name:n.name,hapStart:n.hapStart,hapEnd:n.hapEnd,steps:n.ids.length,id:s=>n.ids[s],rev:s=>n.rev[s]===1,abridgedBp:(r=n.abridged)===null||r===void 0?void 0:r.bp,trimmed:[(i=n.before.trimmed)!==null&&i!==void 0?i:0,(o=n.after.trimmed)!==null&&o!==void 0?o:0]}}),refStart:n=>{let r=e.get(n);return r?.rank===0&&r.refName===A?r.start:NaN},length:n=>{let r=e.get(n);return r?r.end-r.start:0}}}function ho({nodes:t,walks:e},A){let n=t.refNames.indexOf(A);return{walks:e.names.map((r,i)=>{var o;let s=e.offsets[i],c=(o=e.abridgedBp)===null||o===void 0?void 0:o[i];return{name:r,hapStart:e.starts[i],hapEnd:e.ends[i],steps:e.offsets[i+1]-s,id:a=>e.steps[s+a],rev:a=>e.reversed[s+a]===1,abridgedBp:c===void 0||Number.isNaN(c)?void 0:c,trimmed:[0,0]}}),refStart:r=>t.ranks[r]===0&&t.refs[r]===n?t.starts[r]:NaN,length:r=>{var i;return(i=t.lengths[r])!==null&&i!==void 0?i:0}}}var te=t=>!Number.isNaN(t);function uo(t){let e=t.toSorted((i,o)=>i.name<o.name?-1:i.name>o.name?1:i.hapStart-o.hapStart),A=[],n=NaN,r=-1/0;for(let i of e){let o=A.at(-1),s=o?.at(-1);if(o&&s?.name===i.name){if(s.abridgedBp!==void 0&&i.hapStart<n){let c=i.hapStart-i.trimmed[0],a=i.hapEnd+i.trimmed[1],g=Math.max(0,a-Math.max(c,r));r=Math.max(r,a),n+=g,o[o.length-1]={...s,abridgedBp:s.abridgedBp+g};continue}if(i.hapStart===n){o.push(i),n=i.hapEnd,r=-1/0;continue}}A.push([i]),n=i.hapEnd,r=-1/0}return A}function Vn(t,e){var A,n;let{walks:r,refStart:i,length:o}="fragments"in t?Eo(t.fragments,t.nodes,e):ho(t,e),s=(A=wA(e))!==null&&A!==void 0?A:e,c=new Map;for(let g of uo(r)){let{name:C}=g[0],B=(n=wA(C))!==null&&n!==void 0?n:WA(C);if(B===s||C===e)continue;let I=c.get(B);I||(I={haplotype:B,covered:[],departures:[],open:!1},c.set(B,I)),po(g,i,o,I)}let a=[...c.values()];for(let g of a)g.departures.sort((C,B)=>C.refStart-B.refStart||C.refEnd-B.refEnd),g.covered=wo(g.covered);return a}function po(t,e,A,n){let r=0,i=0;for(let d of t)for(let E=0;d.abridgedBp===void 0&&E<d.steps;E++){let u=d.id(E);te(e(u))&&(d.rev(E)?i+=A(u):r+=A(u))}let o=i>r,s=NaN,c=NaN,a=-1/0,g=0,C=0,B=NaN,I=0;for(let d of o?t.toReversed():t){let E=d.steps;if(d.abridgedBp!==void 0){let u=d.id(0),p=d.id(E-1),w=e(u),N=e(p);if(!te(w)||!te(N)){n.open=!0;continue}Number.isNaN(c)&&(s=Math.min(w,N),c=s,g=0),g+=d.abridgedBp,B=Math.max(w+A(u),N+A(p)),I=g;continue}for(let u=0;u<E;u++){let p=o?E-1-u:u,w=d.id(p),N=d.rev(p)!==o,l=e(w),S=A(w);if(te(l)&&!N){if(Number.isNaN(c))s=l;else if(!Number.isNaN(B))n.departures.push({refStart:c,refEnd:Math.max(l,c),altLength:g+Math.max(0,c-l),invertedBp:0,repeatedBp:0,abridged:!0}),B=NaN;else if(l!==c||g>0){let x=l<c?c-l:0;n.departures.push({refStart:c,refEnd:x>0?c:l,altLength:g+x,invertedBp:C,repeatedBp:x,...x>0?{copied:[l,c]}:{}})}c=l+S,a=Math.max(a,c),g=0,C=0}else Number.isNaN(c)?n.open=!0:(g+=S,te(l)&&(C+=S))}}Number.isNaN(B)||(n.departures.push({refStart:c,refEnd:Math.max(B,c),altLength:I,invertedBp:0,repeatedBp:0,abridged:!0}),a=Math.max(a,B),g-=I),Number.isNaN(s)?n.open=!0:n.covered.push([s,a]),g>0&&(n.open=!0)}function wo(t){let e=[...new Set(t.flat())].sort((r,i)=>r-i),A=[],n=-1;for(let r=0;r+1<e.length;r++){let i=e[r],o=e[r+1],s=t.flatMap(([a,g],C)=>a<=i&&g>=o?[C]:[]),c=A.at(-1);s.length!==1?n=-1:c&&s[0]===n&&c[1]===i?c[1]=o:(A.push([i,o]),n=s[0])}return A}var $n=16e6,pe=class extends fA{constructor(e,A,n){let r=Math.max(1,Math.floor(n*A/e));super(`Zoom in to about ${SA(r)} to read every walk in full`,A,n,r),this.steps=e}};async function mo(t,e,A={}){var n,r;let{expand:i=!0,partial:o=!0,stepBudget:s=$n,byteBudget:c,signal:a}=A,g=await t.header({signal:a}),C=(n=g.references[0])!==null&&n!==void 0?n:"",B=(r=await t.sequenceFor(C,e.refName,{signal:a}))!==null&&r!==void 0?r:e.refName,I={links:!1,byteBudget:c,signal:a},d=await t.cut(B,e,I);if(i){let p=ko(d.fragments,s,o,e);p.size>0&&(d=await t.cut(B,e,{...I,expand:w=>p.has(w)}))}let E=Vn({fragments:d.fragments,nodes:d.graph.nodes},B),u=new Set(E.map(p=>p.haplotype));for(let p of g.haplotypes)u.has(p)||E.push({haplotype:p,covered:[],departures:[],open:!1});return E}function ko(t,e,A,n){var r;let i=0,o=new Map;for(let c of t)c.abridged?o.set(c.name,((r=o.get(c.name))!==null&&r!==void 0?r:0)+c.abridged.steps):i+=c.ids.length;if(!A){let c=[...o.values()].reduce((a,g)=>a+g,i);if(o.size>0&&c>e)throw new pe(c,e,n.end-n.start);return new Set(o.keys())}let s=new Set;for(let[c,a]of[...o].sort((g,C)=>g[1]-C[1])){if(i+a>e)break;i+=a,s.add(c)}return s}function Et(t){let e=t.split(" ");return tr(e,e.length>=8)}function tr(t,e){var A;let n=e?5:0;return{anchored:e,segment:{refName:t[n],start:+t[n+1],end:+t[n+2],id:t[3],rank:+t[4],tags:(A=t[e?8:5])!==null&&A!==void 0?A:""}}}function No(t){let e=t.tags.split(" ").find(n=>n.startsWith("SM:Z:"));if(e===void 0)return;let A=e.slice(5).split(",").map(n=>n.trim()).filter(Boolean);return A.length>0?A:void 0}function Ar(t){return{id:t.slice(0,-1),strand:t.slice(-1)}}function ht(t){return nr(t.split(" "))}function nr(t){var e,A;let n=Ar(t[3]),r=Ar(t[4]);return{source:n.id,sourceStrand:n.strand,target:r.id,targetStrand:r.strand,sourceSegment:{id:n.id,refName:t[5],start:+t[6],end:+t[7],rank:+t[8],tags:(e=t[13])!==null&&e!==void 0?e:""},targetSegment:{id:r.id,refName:t[9],start:+t[10],end:+t[11],rank:+t[12],tags:(A=t[14])!==null&&A!==void 0?A:""}}}function ut(t){let e=t.find(i=>i.startsWith("#gfa-to-tabix "));if(e===void 0)throw new Error("not a gfa-to-tabix graph file: no #gfa-to-tabix header");let A=new Map(e.split(" ").slice(1).map(i=>[i.slice(0,i.indexOf(":")),i.slice(i.indexOf(":")+3)])),n=A.get("format");if(n!=="2")throw new Error(`gfa-to-tabix format ${n}: this graph-walks reads format 2`);let r=t.find(i=>i.startsWith("#samples "));return{anchored:A.get("layout")==="anchored",samples:r?r.slice(9).split(","):[]}}function rr(t,e){let A=[];for(let n=0;n<t.length;n++){let r=Number.parseInt(t[n],16);for(let i=0;i<4;i++)r&1<<i&&A.push(e[n*4+i])}return A}function pt(t,e){let A=t.split(" "),[n]=A.splice(3,1),r=i=>{var o;!((o=A[i])===null||o===void 0)&&o.startsWith("SB:H:")&&(A[i]=`SM:Z:${rr(A[i].slice(5),e.samples).join(",")}`)};if(n==="N")return r(e.anchored?8:5),{kind:"N",segment:tr(A,e.anchored).segment};if(n==="L")return r(13),r(14),{kind:"L",link:nr(A)}}function wt(t){return`${t.source}${t.sourceStrand}${t.target}${t.targetStrand}`}function ne(t,e,A){e.set(wt(A),A);let n=[];for(let r of[A.sourceSegment,A.targetSegment])t.has(r.id)||(t.set(r.id,r),n.push(r));return n}function ir(t,e,A){let n=o=>o.rank!==0||o.refName!==A.refName?0:o.end<=A.start?-1:o.start>=A.end?1:0,r=new Map(t),i=new Map;for(let o of e)(t.has(o.source)||t.has(o.target)||n(o.sourceSegment)*n(o.targetSegment)===-1)&&ne(r,i,o);for(let o of e)r.has(o.source)&&r.has(o.target)&&i.set(wt(o),o);for(let[o,s]of r)!t.has(o)&&s.rank>0&&r.set(o,{...s,tags:s.tags?`${s.tags} ${dt}`:dt});return{segments:r,links:i}}var dt="mv:i:1";function or(t,e,A){let n=r=>r.refName!==A.refName||r.end<=A.start||r.start>=A.end;return[...er(t.filter(r=>r.rank>0),r=>e.has(r.id),A.end-A.start),...er(t.filter(r=>r.rank===0&&n(r)),()=>!0,0)]}function er(t,e,A){let n=[...t].sort((i,o)=>we(i.refName,o.refName)||i.start-o.start),r=[];for(let i of n){let o=r.at(-1);o?.refName===i.refName&&i.start-o.end<=A?(o.needed||(o.needed=i.start>o.end||e(i)),o.end=Math.max(o.end,i.end)):r.push({refName:i.refName,start:i.start,end:i.end,needed:e(i)})}return r.filter(i=>i.needed).map(({refName:i,start:o,end:s})=>({refName:i,start:o,end:s}))}function sr(t,e,A){let n=r=>e.has(r.id)||A.some(i=>i.refName===r.refName&&r.start>=i.start&&r.end<=i.end);return t.filter(r=>n(r.sourceSegment)&&n(r.targetSegment))}var yo=/^[A-Za-z][A-Za-z0-9]:[AifZJHB]:/;function bo(t){let{id:e,refName:A,start:n,end:r,rank:i,tags:o}=t,s=o.split(" ").filter(a=>yo.test(a)),c=s.length===0?"":` ${s.join(" ")}`;return`S ${e} * LN:i:${r-n} SN:Z:${A} SO:i:${n} SR:i:${i}${c}`}function xo(t){let{source:e,sourceStrand:A,target:n,targetStrand:r}=t;return`L ${e} ${A} ${n} ${r} 0M`}function we(t,e){return t<e?-1:t>e?1:0}function me(t,e){let A=[...t.values()].sort((r,i)=>we(r.refName,i.refName)||r.start-i.start||we(r.id,i.id)),n=[...e.keys()].sort((r,i)=>we(r,i));return["H VN:Z:1.0",...A.map(r=>bo(r)),...n.map(r=>xo(e.get(r)))].join(`
2
2
  `)}function ar(t){return t.filter(e=>e.rank>0)}var mt=new WeakMap;function Do(t,e){let A=mt.get(t);return A||(A=t.getHeaderLines({signal:e}).then(ut),A.catch(()=>mt.delete(t)),mt.set(t,A)),A}function So(t,e,A,n,r){return BA(e,A,n),t.getLines(e,A,n,r)}async function gr(t,e,A,n){var r,i,o,s;let c=[],a=[],g=(B,I)=>So(B,e.refName,e.start,e.end,{signal:n,lineCallback:I});if("graph"in t){let B=await Do(t.graph,n);await g(t.graph,d=>{let E=pt(d,B);E?.kind==="N"?c.push(E.segment):E?.kind==="L"&&a.push(E.link)});let I=new Map(c.map(d=>[d.id,d.tags]));for(let d of a)(o=d.sourceSegment).tags||(o.tags=(r=I.get(d.source))!==null&&r!==void 0?r:""),(s=d.targetSegment).tags||(s.tags=(i=I.get(d.target))!==null&&i!==void 0?i:"");return{segments:A?c:[],links:a,anchored:B.anchored}}let C=!1;return await Promise.all([A&&g(t.segments,B=>{let I=Et(B);C||(C=I.anchored),c.push(I.segment)}),g(t.links,B=>{a.push(ht(B))})]),{segments:c,links:a,anchored:C}}async function vo(t,e,{hops:A=0,signal:n}={}){let r=new Map,i=new Map,o=await gr(t,e,!0,n);for(let C of o.segments)r.set(C.id,C);let s=o.links;if(o.anchored){let C=ir(r,s,e);return me(C.segments,C.links)}let c=async C=>(await gr(t,C,!1,n)).links,a=async C=>(await c(C)).flatMap(B=>ne(r,i,B)),g=ar(s.flatMap(C=>ne(r,i,C)));for(let C=0;C<A;C++){let B=await Promise.all(g.map(a));g=ar(B.flat())}if(A>0){let C=or([...r.values()],new Set(g.map(I=>I.id)),e),B=await Promise.all(C.map(I=>c(I)));for(let I of sr(B.flat(),r,C))ne(r,i,I)}return me(r,i)}async function Ma(t,e,A,n,r){return BA(e,A,n),t.getLines(e,A,n,r)}async function cr(t,e,A){for(let{refName:n,start:r,end:i}of e)BA(n,r,i);return t.bytesForRegions(e,A)}var kt=0;var Nt=2;var re=4;var mA=0,ie=1,fr=2;var Ir=-5;function Fo(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function Cr(t){for(var e=Array.prototype.slice.call(arguments,1);e.length;){var A=e.shift();if(A){if(typeof A!="object")throw new TypeError(A+"must be non-object");for(var n in A)Fo(A,n)&&(t[n]=A[n])}}return t}function Ne(t,e){return t.length===e?t:t.subarray?t.subarray(0,e):(t.length=e,t)}var oe={arraySet:function(t,e,A,n,r){if(e.subarray&&t.subarray){t.set(e.subarray(A,A+n),r);return}for(var i=0;i<n;i++)t[r+i]=e[A+i]},flattenChunks:function(t){var e,A,n,r,i,o;for(n=0,e=0,A=t.length;e<A;e++)n+=t[e].length;for(o=new Uint8Array(n),r=0,e=0,A=t.length;e<A;e++)i=t[e],o.set(i,r),r+=i.length;return o},Buf8:function(t){return new Uint8Array(t)},Buf16:function(t){return new Uint16Array(t)},Buf32:function(t){return new Int32Array(t)}},se={arraySet:function(t,e,A,n,r){for(var i=0;i<n;i++)t[r+i]=e[A+i]},flattenChunks:function(t){return[].concat.apply([],t)},Buf8:function(t){return new Array(t)},Buf16:function(t){return new Array(t)},Buf32:function(t){return new Array(t)}},qA=()=>{let t=typeof Uint8Array<"u"&&typeof Uint16Array<"u"&&typeof Int32Array<"u";return qA=()=>t,t},CA=(t,e,A,n,r)=>(CA=qA()?oe.arraySet:se.arraySet,CA(t,e,A,n,r)),ke=t=>(ke=qA()?oe.flattenChunks:se.flattenChunks,ke(t)),dA=t=>(dA=qA()?oe.Buf8:se.Buf8,dA(t)),kA=t=>(kA=qA()?oe.Buf16:se.Buf16,kA(t)),FA=t=>(FA=qA()?oe.Buf32:se.Buf32,FA(t));var Qr=function(){let t=!0;try{String.fromCharCode.apply(null,[0])}catch{t=!1}return Qr=()=>t,t},lr=function(){let t=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{t=!1}return lr=()=>t,t},yt=function(t){for(var e=dA(256),A=0;A<256;A++)e[A]=A>=252?6:A>=248?5:A>=240?4:A>=224?3:A>=192?2:1;return e[254]=e[254]=1,yt=n=>e[n],e[t]};function bt(t){var e,A,n,r,i,o=t.length,s=0;for(r=0;r<o;r++)A=t.charCodeAt(r),(A&64512)===55296&&r+1<o&&(n=t.charCodeAt(r+1),(n&64512)===56320&&(A=65536+(A-55296<<10)+(n-56320),r++)),s+=A<128?1:A<2048?2:A<65536?3:4;for(e=new Uint8Array(s),i=0,r=0;i<s;r++)A=t.charCodeAt(r),(A&64512)===55296&&r+1<o&&(n=t.charCodeAt(r+1),(n&64512)===56320&&(A=65536+(A-55296<<10)+(n-56320),r++)),A<128?e[i++]=A:A<2048?(e[i++]=192|A>>>6,e[i++]=128|A&63):A<65536?(e[i++]=224|A>>>12,e[i++]=128|A>>>6&63,e[i++]=128|A&63):(e[i++]=240|A>>>18,e[i++]=128|A>>>12&63,e[i++]=128|A>>>6&63,e[i++]=128|A&63);return e}function Ro(t,e){if(e<65534&&(t.subarray&&lr()||!t.subarray&&Qr()))return String.fromCharCode.apply(null,Ne(t,e));for(var A="",n=0;n<e;n++)A+=String.fromCharCode(t[n]);return A}function Br(t){for(var e=new Uint8Array(t.length),A=0,n=e.length;A<n;A++)e[A]=t.charCodeAt(A);return e}function dr(t,e){var A,n,r,i,o=e||t.length,s=new Array(o*2);for(n=0,A=0;A<o;){if(r=t[A++],r<128){s[n++]=r;continue}if(i=yt(r),i>4){s[n++]=65533,A+=i-1;continue}for(r&=i===2?31:i===3?15:7;i>1&&A<o;)r=r<<6|t[A++]&63,i--;if(i>1){s[n++]=65533;continue}r<65536?s[n++]=r:(r-=65536,s[n++]=55296|r>>10&1023,s[n++]=56320|r&1023)}return Ro(s,n)}function Er(t,e){var A;for(e=e||t.length,e>t.length&&(e=t.length),A=e-1;A>=0&&(t[A]&192)===128;)A--;return A<0||A===0?e:A+yt(t[A])>e?A:e}function xt(){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}function ae(t,e,A,n){for(var r=t&65535|0,i=t>>>16&65535|0,o=0;A!==0;){o=A>2e3?2e3:A,A-=o;do r=r+e[n++]|0,i=i+r|0;while(--o);r%=65521,i%=65521}return r|i<<16|0}function _o(){for(var t,e=[],A=0;A<256;A++){t=A;for(var n=0;n<8;n++)t=t&1?3988292384^t>>>1:t>>>1;e[A]=t}return e}var hr=function(){let t=_o();return hr=()=>t,t};function oA(t,e,A,n){var r=hr(),i=n+A;t^=-1;for(var o=n;o<i;o++)t=t>>>8^r[(t^e[o])&255];return t^-1}var ye=30,Mo=12;function Dt(t,e){var A,n,r,i,o,s,c,a,g,C,B,I,d,E,u,p,w,N,l,S,x,Q,h,y,b;A=t.state,n=t.next_in,y=t.input,r=n+(t.avail_in-5),i=t.next_out,b=t.output,o=i-(e-t.avail_out),s=i+(t.avail_out-257),c=A.dmax,a=A.wsize,g=A.whave,C=A.wnext,B=A.window,I=A.hold,d=A.bits,E=A.lencode,u=A.distcode,p=(1<<A.lenbits)-1,w=(1<<A.distbits)-1;A:do{d<15&&(I+=y[n++]<<d,d+=8,I+=y[n++]<<d,d+=8),N=E[I&p];e:for(;;){if(l=N>>>24,I>>>=l,d-=l,l=N>>>16&255,l===0)b[i++]=N&65535;else if(l&16){S=N&65535,l&=15,l&&(d<l&&(I+=y[n++]<<d,d+=8),S+=I&(1<<l)-1,I>>>=l,d-=l),d<15&&(I+=y[n++]<<d,d+=8,I+=y[n++]<<d,d+=8),N=u[I&w];t:for(;;){if(l=N>>>24,I>>>=l,d-=l,l=N>>>16&255,l&16){if(x=N&65535,l&=15,d<l&&(I+=y[n++]<<d,d+=8,d<l&&(I+=y[n++]<<d,d+=8)),x+=I&(1<<l)-1,x>c){t.msg="invalid distance too far back",A.mode=ye;break A}if(I>>>=l,d-=l,l=i-o,x>l){if(l=x-l,l>g&&A.sane){t.msg="invalid distance too far back",A.mode=ye;break A}if(Q=0,h=B,C===0){if(Q+=a-l,l<S){S-=l;do b[i++]=B[Q++];while(--l);Q=i-x,h=b}}else if(C<l){if(Q+=a+C-l,l-=C,l<S){S-=l;do b[i++]=B[Q++];while(--l);if(Q=0,C<S){l=C,S-=l;do b[i++]=B[Q++];while(--l);Q=i-x,h=b}}}else if(Q+=C-l,l<S){S-=l;do b[i++]=B[Q++];while(--l);Q=i-x,h=b}for(;S>2;)b[i++]=h[Q++],b[i++]=h[Q++],b[i++]=h[Q++],S-=3;S&&(b[i++]=h[Q++],S>1&&(b[i++]=h[Q++]))}else{Q=i-x;do b[i++]=b[Q++],b[i++]=b[Q++],b[i++]=b[Q++],S-=3;while(S>2);S&&(b[i++]=b[Q++],S>1&&(b[i++]=b[Q++]))}}else if((l&64)===0){N=u[(N&65535)+(I&(1<<l)-1)];continue t}else{t.msg="invalid distance code",A.mode=ye;break A}break}}else if((l&64)===0){N=E[(N&65535)+(I&(1<<l)-1)];continue e}else if(l&32){A.mode=Mo;break A}else{t.msg="invalid literal/length code",A.mode=ye;break A}break}}while(n<r&&i<s);S=d>>3,n-=S,d-=S<<3,I&=(1<<d)-1,t.next_in=n,t.next_out=i,t.avail_in=n<r?5+(r-n):5-(n-r),t.avail_out=i<s?257+(s-i):257-(i-s),A.hold=I,A.bits=d}var ZA=15,ur=852,pr=592,wr=0,St=1,mr=2,Lo=[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],Jo=[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],Go=[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],Uo=[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];function RA(t,e,A,n,r,i,o,s){var c=s.bits,a=0,g=0,C=0,B=0,I=0,d=0,E=0,u=0,p=0,w=0,N,l,S,x,Q,h=null,y=0,b,v=kA(ZA+1),K=kA(ZA+1),Z=null,V=0,X,nA,_;for(a=0;a<=ZA;a++)v[a]=0;for(g=0;g<n;g++)v[e[A+g]]++;for(I=c,B=ZA;B>=1&&v[B]===0;B--);if(I>B&&(I=B),B===0)return r[i++]=1<<24|64<<16|0,r[i++]=1<<24|64<<16|0,s.bits=1,0;for(C=1;C<B&&v[C]===0;C++);for(I<C&&(I=C),u=1,a=1;a<=ZA;a++)if(u<<=1,u-=v[a],u<0)return-1;if(u>0&&(t===wr||B!==1))return-1;for(K[1]=0,a=1;a<ZA;a++)K[a+1]=K[a]+v[a];for(g=0;g<n;g++)e[A+g]!==0&&(o[K[e[A+g]]++]=g);if(t===wr?(h=Z=o,b=19):t===St?(h=Lo,y-=257,Z=Jo,V-=257,b=256):(h=Go,Z=Uo,b=-1),w=0,g=0,a=C,Q=i,d=I,E=0,S=-1,p=1<<I,x=p-1,t===St&&p>ur||t===mr&&p>pr)return 1;for(;;){X=a-E,o[g]<b?(nA=0,_=o[g]):o[g]>b?(nA=Z[V+o[g]],_=h[y+o[g]]):(nA=96,_=0),N=1<<a-E,l=1<<d,C=l;do l-=N,r[Q+(w>>E)+l]=X<<24|nA<<16|_|0;while(l!==0);for(N=1<<a-1;w&N;)N>>=1;if(N!==0?(w&=N-1,w+=N):w=0,g++,--v[a]===0){if(a===B)break;a=e[A+o[g]]}if(a>I&&(w&x)!==S){for(E===0&&(E=I),Q+=C,d=a-E,u=1<<d;d+E<B&&(u-=v[d+E],!(u<=0));)d++,u<<=1;if(p+=1<<d,t===St&&p>ur||t===mr&&p>pr)return 1;S=w&x,r[S]=I<<24|d<<16|Q-i|0}}return w!==0&&(r[Q+w]=a-E<<24|64<<16|0),s.bits=I,0}var Yo=0,Xr=1,jr=2,kr=4,Ho=5,be=6,_A=0,Ko=1,To=2,sA=-2,Wr=-3,Lt=-4,Oo=-5,Nr=8,Vr=1,yr=2,br=3,xr=4,Dr=5,Sr=6,vr=7,Fr=8,Rr=9,_r=10,Se=11,EA=12,vt=13,Mr=14,Ft=15,Lr=16,Jr=17,Gr=18,Ur=19,xe=20,De=21,Yr=22,Hr=23,Kr=24,Tr=25,Or=26,Rt=27,qr=28,Zr=29,eA=30,Jt=31,qo=32,Zo=852,Po=592;function Pr(t){return(t>>>24&255)+(t>>>8&65280)+((t&65280)<<8)+((t&255)<<24)}function zo(){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=kA(320),this.work=kA(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function Xo(t){var e;return!t||!t.state?sA:(e=t.state,t.total_in=t.total_out=e.total=0,t.msg="",e.wrap&&(t.adler=e.wrap&1),e.mode=Vr,e.last=0,e.havedict=0,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=FA(Zo),e.distcode=e.distdyn=FA(Po),e.sane=1,e.back=-1,_A)}function jo(t){var e;return!t||!t.state?sA:(e=t.state,e.wsize=0,e.whave=0,e.wnext=0,Xo(t))}function Wo(t,e){var A,n;return!t||!t.state||(n=t.state,e<0?(A=0,e=-e):(A=(e>>4)+1,e<48&&(e&=15)),e&&(e<8||e>15))?sA:(n.window!==null&&n.wbits!==e&&(n.window=null),n.wrap=A,n.wbits=e,jo(t))}function $r(t,e){var A,n;return t?(n=new zo,t.state=n,n.window=null,A=Wo(t,e),A!==_A&&(t.state=null),A):sA}var zr=!0,_t,Mt;function Vo(t){if(zr){var e;for(_t=FA(512),Mt=FA(32),e=0;e<144;)t.lens[e++]=8;for(;e<256;)t.lens[e++]=9;for(;e<280;)t.lens[e++]=7;for(;e<288;)t.lens[e++]=8;for(RA(Xr,t.lens,0,288,_t,0,t.work,{bits:9}),e=0;e<32;)t.lens[e++]=5;RA(jr,t.lens,0,32,Mt,0,t.work,{bits:5}),zr=!1}t.lencode=_t,t.lenbits=9,t.distcode=Mt,t.distbits=5}function Ai(t,e,A,n){var r,i=t.state;return i.window===null&&(i.wsize=1<<i.wbits,i.wnext=0,i.whave=0,i.window=dA(i.wsize)),n>=i.wsize?(CA(i.window,e,A-i.wsize,i.wsize,0),i.wnext=0,i.whave=i.wsize):(r=i.wsize-i.wnext,r>n&&(r=n),CA(i.window,e,A-n,r,i.wnext),n-=r,n?(CA(i.window,e,A-n,n,0),i.wnext=n,i.whave=i.wsize):(i.wnext+=r,i.wnext===i.wsize&&(i.wnext=0),i.whave<i.wsize&&(i.whave+=r))),0}function ei(t,e){var A,n,r,i,o,s,c,a,g,C,B,I,d,E,u=0,p,w,N,l,S,x,Q,h,y=dA(4),b,v,K=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!t||!t.state||!t.output||!t.input&&t.avail_in!==0)return sA;A=t.state,A.mode===EA&&(A.mode=vt),o=t.next_out,r=t.output,c=t.avail_out,i=t.next_in,n=t.input,s=t.avail_in,a=A.hold,g=A.bits,C=s,B=c,h=_A;A:for(;;)switch(A.mode){case Vr:if(A.wrap===0){A.mode=vt;break}for(;g<16;){if(s===0)break A;s--,a+=n[i++]<<g,g+=8}if(A.wrap&2&&a===35615){A.check=0,y[0]=a&255,y[1]=a>>>8&255,A.check=oA(A.check,y,2,0),a=0,g=0,A.mode=yr;break}if(A.flags=0,A.head&&(A.head.done=!1),!(A.wrap&1)||(((a&255)<<8)+(a>>8))%31){t.msg="incorrect header check",A.mode=eA;break}if((a&15)!==Nr){t.msg="unknown compression method",A.mode=eA;break}if(a>>>=4,g-=4,Q=(a&15)+8,A.wbits===0)A.wbits=Q;else if(Q>A.wbits){t.msg="invalid window size",A.mode=eA;break}A.dmax=1<<Q,t.adler=A.check=1,A.mode=a&512?_r:EA,a=0,g=0;break;case yr:for(;g<16;){if(s===0)break A;s--,a+=n[i++]<<g,g+=8}if(A.flags=a,(A.flags&255)!==Nr){t.msg="unknown compression method",A.mode=eA;break}if(A.flags&57344){t.msg="unknown header flags set",A.mode=eA;break}A.head&&(A.head.text=a>>8&1),A.flags&512&&(y[0]=a&255,y[1]=a>>>8&255,A.check=oA(A.check,y,2,0)),a=0,g=0,A.mode=br;case br:for(;g<32;){if(s===0)break A;s--,a+=n[i++]<<g,g+=8}A.head&&(A.head.time=a),A.flags&512&&(y[0]=a&255,y[1]=a>>>8&255,y[2]=a>>>16&255,y[3]=a>>>24&255,A.check=oA(A.check,y,4,0)),a=0,g=0,A.mode=xr;case xr:for(;g<16;){if(s===0)break A;s--,a+=n[i++]<<g,g+=8}A.head&&(A.head.xflags=a&255,A.head.os=a>>8),A.flags&512&&(y[0]=a&255,y[1]=a>>>8&255,A.check=oA(A.check,y,2,0)),a=0,g=0,A.mode=Dr;case Dr:if(A.flags&1024){for(;g<16;){if(s===0)break A;s--,a+=n[i++]<<g,g+=8}A.length=a,A.head&&(A.head.extra_len=a),A.flags&512&&(y[0]=a&255,y[1]=a>>>8&255,A.check=oA(A.check,y,2,0)),a=0,g=0}else A.head&&(A.head.extra=null);A.mode=Sr;case Sr:if(A.flags&1024&&(I=A.length,I>s&&(I=s),I&&(A.head&&(Q=A.head.extra_len-A.length,A.head.extra||(A.head.extra=new Array(A.head.extra_len)),CA(A.head.extra,n,i,I,Q)),A.flags&512&&(A.check=oA(A.check,n,I,i)),s-=I,i+=I,A.length-=I),A.length))break A;A.length=0,A.mode=vr;case vr:if(A.flags&2048){if(s===0)break A;I=0;do Q=n[i+I++],A.head&&Q&&A.length<65536&&(A.head.name+=String.fromCharCode(Q));while(Q&&I<s);if(A.flags&512&&(A.check=oA(A.check,n,I,i)),s-=I,i+=I,Q)break A}else A.head&&(A.head.name=null);A.length=0,A.mode=Fr;case Fr:if(A.flags&4096){if(s===0)break A;I=0;do Q=n[i+I++],A.head&&Q&&A.length<65536&&(A.head.comment+=String.fromCharCode(Q));while(Q&&I<s);if(A.flags&512&&(A.check=oA(A.check,n,I,i)),s-=I,i+=I,Q)break A}else A.head&&(A.head.comment=null);A.mode=Rr;case Rr:if(A.flags&512){for(;g<16;){if(s===0)break A;s--,a+=n[i++]<<g,g+=8}if(a!==(A.check&65535)){t.msg="header crc mismatch",A.mode=eA;break}a=0,g=0}A.head&&(A.head.hcrc=A.flags>>9&1,A.head.done=!0),t.adler=A.check=0,A.mode=EA;break;case _r:for(;g<32;){if(s===0)break A;s--,a+=n[i++]<<g,g+=8}t.adler=A.check=Pr(a),a=0,g=0,A.mode=Se;case Se:if(A.havedict===0)return t.next_out=o,t.avail_out=c,t.next_in=i,t.avail_in=s,A.hold=a,A.bits=g,To;t.adler=A.check=1,A.mode=EA;case EA:if(e===Ho||e===be)break A;case vt:if(A.last){a>>>=g&7,g-=g&7,A.mode=Rt;break}for(;g<3;){if(s===0)break A;s--,a+=n[i++]<<g,g+=8}switch(A.last=a&1,a>>>=1,g-=1,a&3){case 0:A.mode=Mr;break;case 1:if(Vo(A),A.mode=xe,e===be){a>>>=2,g-=2;break A}break;case 2:A.mode=Jr;break;case 3:t.msg="invalid block type",A.mode=eA}a>>>=2,g-=2;break;case Mr:for(a>>>=g&7,g-=g&7;g<32;){if(s===0)break A;s--,a+=n[i++]<<g,g+=8}if((a&65535)!==(a>>>16^65535)){t.msg="invalid stored block lengths",A.mode=eA;break}if(A.length=a&65535,a=0,g=0,A.mode=Ft,e===be)break A;case Ft:A.mode=Lr;case Lr:if(I=A.length,I){if(I>s&&(I=s),I>c&&(I=c),I===0)break A;CA(r,n,i,I,o),s-=I,i+=I,c-=I,o+=I,A.length-=I;break}A.mode=EA;break;case Jr:for(;g<14;){if(s===0)break A;s--,a+=n[i++]<<g,g+=8}if(A.nlen=(a&31)+257,a>>>=5,g-=5,A.ndist=(a&31)+1,a>>>=5,g-=5,A.ncode=(a&15)+4,a>>>=4,g-=4,A.nlen>286||A.ndist>30){t.msg="too many length or distance symbols",A.mode=eA;break}A.have=0,A.mode=Gr;case Gr:for(;A.have<A.ncode;){for(;g<3;){if(s===0)break A;s--,a+=n[i++]<<g,g+=8}A.lens[K[A.have++]]=a&7,a>>>=3,g-=3}for(;A.have<19;)A.lens[K[A.have++]]=0;if(A.lencode=A.lendyn,A.lenbits=7,b={bits:A.lenbits},h=RA(Yo,A.lens,0,19,A.lencode,0,A.work,b),A.lenbits=b.bits,h){t.msg="invalid code lengths set",A.mode=eA;break}A.have=0,A.mode=Ur;case Ur:for(;A.have<A.nlen+A.ndist;){for(;u=A.lencode[a&(1<<A.lenbits)-1],p=u>>>24,w=u>>>16&255,N=u&65535,!(p<=g);){if(s===0)break A;s--,a+=n[i++]<<g,g+=8}if(N<16)a>>>=p,g-=p,A.lens[A.have++]=N;else{if(N===16){for(v=p+2;g<v;){if(s===0)break A;s--,a+=n[i++]<<g,g+=8}if(a>>>=p,g-=p,A.have===0){t.msg="invalid bit length repeat",A.mode=eA;break}Q=A.lens[A.have-1],I=3+(a&3),a>>>=2,g-=2}else if(N===17){for(v=p+3;g<v;){if(s===0)break A;s--,a+=n[i++]<<g,g+=8}a>>>=p,g-=p,Q=0,I=3+(a&7),a>>>=3,g-=3}else{for(v=p+7;g<v;){if(s===0)break A;s--,a+=n[i++]<<g,g+=8}a>>>=p,g-=p,Q=0,I=11+(a&127),a>>>=7,g-=7}if(A.have+I>A.nlen+A.ndist){t.msg="invalid bit length repeat",A.mode=eA;break}for(;I--;)A.lens[A.have++]=Q}}if(A.mode===eA)break;if(A.lens[256]===0){t.msg="invalid code -- missing end-of-block",A.mode=eA;break}if(A.lenbits=9,b={bits:A.lenbits},h=RA(Xr,A.lens,0,A.nlen,A.lencode,0,A.work,b),A.lenbits=b.bits,h){t.msg="invalid literal/lengths set",A.mode=eA;break}if(A.distbits=6,A.distcode=A.distdyn,b={bits:A.distbits},h=RA(jr,A.lens,A.nlen,A.ndist,A.distcode,0,A.work,b),A.distbits=b.bits,h){t.msg="invalid distances set",A.mode=eA;break}if(A.mode=xe,e===be)break A;case xe:A.mode=De;case De:if(s>=6&&c>=258){t.next_out=o,t.avail_out=c,t.next_in=i,t.avail_in=s,A.hold=a,A.bits=g,Dt(t,B),o=t.next_out,r=t.output,c=t.avail_out,i=t.next_in,n=t.input,s=t.avail_in,a=A.hold,g=A.bits,A.mode===EA&&(A.back=-1);break}for(A.back=0;u=A.lencode[a&(1<<A.lenbits)-1],p=u>>>24,w=u>>>16&255,N=u&65535,!(p<=g);){if(s===0)break A;s--,a+=n[i++]<<g,g+=8}if(w&&(w&240)===0){for(l=p,S=w,x=N;u=A.lencode[x+((a&(1<<l+S)-1)>>l)],p=u>>>24,w=u>>>16&255,N=u&65535,!(l+p<=g);){if(s===0)break A;s--,a+=n[i++]<<g,g+=8}a>>>=l,g-=l,A.back+=l}if(a>>>=p,g-=p,A.back+=p,A.length=N,w===0){A.mode=Or;break}if(w&32){A.back=-1,A.mode=EA;break}if(w&64){t.msg="invalid literal/length code",A.mode=eA;break}A.extra=w&15,A.mode=Yr;case Yr:if(A.extra){for(v=A.extra;g<v;){if(s===0)break A;s--,a+=n[i++]<<g,g+=8}A.length+=a&(1<<A.extra)-1,a>>>=A.extra,g-=A.extra,A.back+=A.extra}A.was=A.length,A.mode=Hr;case Hr:for(;u=A.distcode[a&(1<<A.distbits)-1],p=u>>>24,w=u>>>16&255,N=u&65535,!(p<=g);){if(s===0)break A;s--,a+=n[i++]<<g,g+=8}if((w&240)===0){for(l=p,S=w,x=N;u=A.distcode[x+((a&(1<<l+S)-1)>>l)],p=u>>>24,w=u>>>16&255,N=u&65535,!(l+p<=g);){if(s===0)break A;s--,a+=n[i++]<<g,g+=8}a>>>=l,g-=l,A.back+=l}if(a>>>=p,g-=p,A.back+=p,w&64){t.msg="invalid distance code",A.mode=eA;break}A.offset=N,A.extra=w&15,A.mode=Kr;case Kr:if(A.extra){for(v=A.extra;g<v;){if(s===0)break A;s--,a+=n[i++]<<g,g+=8}A.offset+=a&(1<<A.extra)-1,a>>>=A.extra,g-=A.extra,A.back+=A.extra}if(A.offset>A.dmax){t.msg="invalid distance too far back",A.mode=eA;break}A.mode=Tr;case Tr:if(c===0)break A;if(I=B-c,A.offset>I){if(I=A.offset-I,I>A.whave&&A.sane){t.msg="invalid distance too far back",A.mode=eA;break}I>A.wnext?(I-=A.wnext,d=A.wsize-I):d=A.wnext-I,I>A.length&&(I=A.length),E=A.window}else E=r,d=o-A.offset,I=A.length;I>c&&(I=c),c-=I,A.length-=I;do r[o++]=E[d++];while(--I);A.length===0&&(A.mode=De);break;case Or:if(c===0)break A;r[o++]=A.length,c--,A.mode=De;break;case Rt:if(A.wrap){for(;g<32;){if(s===0)break A;s--,a|=n[i++]<<g,g+=8}if(B-=c,t.total_out+=B,A.total+=B,B&&(t.adler=A.check=A.flags?oA(A.check,r,B,o-B):ae(A.check,r,B,o-B)),B=c,(A.flags?a:Pr(a))!==A.check){t.msg="incorrect data check",A.mode=eA;break}a=0,g=0}A.mode=qr;case qr:if(A.wrap&&A.flags){for(;g<32;){if(s===0)break A;s--,a+=n[i++]<<g,g+=8}if(a!==(A.total&4294967295)){t.msg="incorrect length check",A.mode=eA;break}a=0,g=0}A.mode=Zr;case Zr:h=Ko;break A;case eA:h=Wr;break A;case Jt:return Lt;case qo:default:return sA}return t.next_out=o,t.avail_out=c,t.next_in=i,t.avail_in=s,A.hold=a,A.bits=g,(A.wsize||B!==t.avail_out&&A.mode<eA&&(A.mode<Rt||e!==kr))&&Ai(t,t.output,t.next_out,B-t.avail_out)?(A.mode=Jt,Lt):(C-=t.avail_in,B-=t.avail_out,t.total_in+=C,t.total_out+=B,A.total+=B,A.wrap&&B&&(t.adler=A.check=A.flags?oA(A.check,r,B,t.next_out-B):ae(A.check,r,B,t.next_out-B)),t.data_type=A.bits+(A.last?64:0)+(A.mode===EA?128:0)+(A.mode===xe||A.mode===Ft?256:0),(C===0&&B===0||e===kr)&&h===_A&&(h=Oo),h)}function ti(t){if(!t||!t.state)return sA;var e=t.state;return e.window&&(e.window=null),t.state=null,_A}function ni(t,e){var A;return!t||!t.state||(A=t.state,(A.wrap&2)===0)?sA:(A.head=e,e.done=!1,_A)}function Gt(t,e){var A=e.length,n,r,i;return!t||!t.state||(n=t.state,n.wrap!==0&&n.mode!==Se)?sA:n.mode===Se&&(r=1,r=ae(r,e,A,0),r!==n.check)?Wr:(i=Ai(t,e,A,A),i?(n.mode=Jt,Lt):(n.havedict=1,_A))}var ve={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"};function Ut(){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 Yt=Object.prototype.toString,Ht=class t{constructor(e){if(!(this instanceof t))return new t(e);this.options=Cr({chunkSize:16384,windowBits:0,to:""},e||{});var A=this.options;A.raw&&A.windowBits>=0&&A.windowBits<16&&(A.windowBits=-A.windowBits,A.windowBits===0&&(A.windowBits=-15)),A.windowBits>=0&&A.windowBits<16&&!(e&&e.windowBits)&&(A.windowBits+=32),A.windowBits>15&&A.windowBits<48&&(A.windowBits&15)===0&&(A.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Ut,this.strm.avail_out=0;var n=$r(this.strm,A.windowBits);if(n!==mA)throw new Error(ve[n]);if(this.header=new xt,ni(this.strm,this.header),A.dictionary&&(typeof A.dictionary=="string"?A.dictionary=bt(A.dictionary):Yt.call(A.dictionary)==="[object ArrayBuffer]"&&(A.dictionary=new Uint8Array(A.dictionary)),A.raw&&(n=Gt(this.strm,A.dictionary),n!==mA)))throw new Error(ve[n])}push(e,A){var n=this.strm,r=this.options.chunkSize,i=this.options.dictionary,o,s,c,a,g,C,B=!1;if(this.ended)return!1;s=A===~~A?A:A===!0?re:kt,typeof e=="string"?n.input=Br(e):Yt.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=dA(r),n.next_out=0,n.avail_out=r),o=ei(n,kt),o===fr&&i&&(typeof i=="string"?C=bt(i):Yt.call(i)==="[object ArrayBuffer]"?C=new Uint8Array(i):C=i,o=Gt(this.strm,C)),o===Ir&&B===!0&&(o=mA,B=!1),o!==ie&&o!==mA)return this.onEnd(o),this.ended=!0,!1;n.next_out&&(n.avail_out===0||o===ie||n.avail_in===0&&(s===re||s===Nt))&&(this.options.to==="string"?(c=Er(n.output,n.next_out),a=n.next_out-c,g=dr(n.output,c),n.next_out=a,n.avail_out=r-a,a&&CA(n.output,n.output,c,a,0),this.onData(g)):this.onData(Ne(n.output,n.next_out))),n.avail_in===0&&n.avail_out===0&&(B=!0)}while((n.avail_in>0||n.avail_out===0)&&o!==ie);return o===ie&&(s=re),s===re?(o=ti(this.strm),this.onEnd(o),this.ended=!0,o===mA):(s===Nt&&(this.onEnd(mA),n.avail_out=0),!0)}onData(e){this.chunks.push(e)}onEnd(e){e===mA&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=ke(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg}};function $o(t,e){var A=new Ht(e);if(A.push(t,!0),A.err)throw A.msg||ve[A.err];return A.result}var ri=$o;var es=18,oi=8,ii=es+oi;function Kt(t,e,A){let n=[],r=0,i=e;for(;r+ii<=t.length&&!(t[r]!==31||t[r+1]!==139||t[r+2]!==8||t[r+3]!==4||t[r+10]!==6||t[r+12]!==66||t[r+13]!==67);){let o=(t[r+16]|t[r+17]<<8)+1;if(o<ii||r+o>t.length)break;let s=r+o-oi,c=(t[s+4]|t[s+5]<<8|t[s+6]<<16|t[s+7]<<24)>>>0;if(c>65536||(n.push({inputOffset:r,compressedSize:o,decompressedSize:c,filePosition:i}),i>=A))break;r+=o,i+=o}return n}var NA={};NA.d=(t,e)=>{if(Array.isArray(e))for(var A=0;A<e.length;){var n=e[A++],r=e[A++];NA.o(t,n)?r===0&&A++:r===0?Object.defineProperty(t,n,{enumerable:!0,value:e[A++]}):Object.defineProperty(t,n,{enumerable:!0,get:r})}else for(var n in e)NA.o(e,n)&&!NA.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})};NA.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);NA.r=t=>{Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var Ot={};NA.r(Ot);NA.d(Ot,{ChunkSliceResult:()=>zA,__wbg_Error_92b29b0548f8b746:()=>ns,__wbg___wbindgen_throw_344f42d3211c4765:()=>rs,__wbg_set_wasm:()=>li,decompress_all:()=>gi,decompress_chunk_slice:()=>ci});var ts="data:application/wasm;base64,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AyABNgIEIAMgADYCACADQRmtQiCGIAOthDcDCEGWgcAAIANBCGogAhAwAAs8AAJAIAAoAgBBf0YNACABIAAoAgQgACgCCBBLDwsgASgCACABKAIEIAAoAgwoAgAiACgCACAAKAIEEAwLNgACQCACQX9GDQAgACACIAEoAhARBQBFDQBBAQ8LAkAgAw0AQQAPCyAAIAMgBCABKAIMEQcACzIAAkACQCABaUEBRw0AIABBgICAgHggAWtLDQAgAEUNARBpIAAgARBXIgENAQsACyABCzUBAX8CQCAARQ0AAkAgASgCACICRQ0AIAAgAhECAAsgASgCBCICRQ0AIAAgAiABKAIIEFELCysBAX8jAEEQayIBJAAgAUEYrUIghiABQQ9qrYQ3AwBBloHAACABIAAQMAALKgEBfyMAQRBrIgMkACADIAI2AgwgAyABNgIIIAMgADYCBCADQQRqEGMACy0BAX8jAEEQayIBJAAgASAAKQIANwIIIAFBCGpBwJPAACAAKAIIQQFBABAVAAssAgF/AX4jAEEQayIBJAAgACkCACECIAEgADYCDCABIAI3AgQgAUEEahBlAAsjAQF/IwBBEGsiAiQAIAIgATYCDCACIAA2AgggAkEIahBkAAslAQF/AkBBvIjAABAsIgBFDQAgAA8LQfCHwABBOkGsiMAAEDcACyAAAkAgASgCAEUNACAAQYiWwAA2AgQgACABNgIADwsACx4BAX8CQCAAKAIAIgJFDQAgASACIAAoAgQQSw8LAAsbAQF/EGkgAEEEakEEEFciASAANgIAIAFBBGoLHgEBfwJAIAAoAgAiAUEBSA0AIAAoAgQgAUEBEFELCx4AIAAoAgAgACgCBEEAKAKgnUAiAEEEIAAbEQQAAAscAQF/AkAgACgCACIBRQ0AIAAoAgQgAUEBEFELCxcAAkAgAUEJSQ0AIAEgABAODwsgABACCxUAIABBfGoiACAAKAIAQQRqQQQQUQsUAAJAIABFDQAgACABEF4ACxBUAAsRACAAIAFBAXRBAXIgAhAwAAsSAAJAIAFFDQAgACABIAIQUQsLEgAgACABIAIgAyAEQQAgBRADCxUAAkAgAEUNACAAIAAoAqhaEQIACwsaACAAQQApAsSUQDcCCCAAQQApAryUQDcCAAsaACAAQQApArSUQDcCCCAAQQApAqyUQDcCAAsW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AA2AAAAOgAAAD4AAABCAAAARgAAAEoAAABOAAAAUgAAAFYAAABaAAAAXgAAAGIAAABmAAAAagAAAG4AAAByAAAAdgAAAHoAAAB+AAAAggAAAIYAAACKAAAAjgAAAJIAAACWAAAAmgAAAJ4AAACiAAAApgAAAKoAAACuAAAAsgAAALYAAAC6AAAAvgAAAMIAAADGAAAAygAAAM4AAADSAAAA1gAAANoAAADeAAAA4gAAAOYAAADqAAAA7gAAAPIAAAD2AAAA+gAAAP4AAAECAAABBgAAAQoAAAEOAAABEgAAARYAAAEaAAABHgAAASIAAAEmAAABKgAAAS4AAAEyAAABNgAAAToAAAE+AAABQgAAAUYAAAFKAAABTgAAAVIAAAFWAAABWgAAAV4AAAFiAAABZgAAAWoAAAFuAAABcgAAAXYAAAF6AAABfgAAAYIAAAGGAAABigAAAY4AAAGSAAABlgAAAZoAAAGeAAABogAAAaYAAAGqAAABrgAAAbIAAAG2AAABugAAAb4AAAHCAAABxgAAAcoAAAHOAAAB0gAAAdYAAAHaAAAB3gAAAeIAAAHmAAAB6gAAAe4AAAHyAAAB9gAAAfoAAAH+AAACAgAAAgYAAAIKAAACDgAAAhIAAAIWAAACGgAAAh4AAAIiAAACJgAAAioAAAIuAAACMgAAAjYAAAI6AAACPgAAAkIAAAJGAAACSgAAAk4AAAJSAAACVgAAAloAAAJeAAACYgAAAmYAAAJqAAACbgAAAnIAAAJ2AAACegAAAn4AAAKCAAAChgAAAooAAAKOAAACkgAAApYAAAKaAAACngAAAqIAAAKmAAACqgAAAq4AAAKyAAACtgAAAroAAAK+AAACwgAAAsYAAALKAAACzgAAAtIAAALWAAAC2gAAAt4AAALiAAAC5gAAAuoAAALuAAAC8gAAAvYAAAL6AAAC/gAAAwIAAAMGAAADCgAAAw4AAAMSAAADFgAAAxoAAAMeAAADIgAAAyYAAAMqAAADLgAAAzIAAAM2AAADOgAAAz4AAANCAAADRgAAA0oAAANOAAADUgAAA1YAAANaAAADXgAAA2IAAANmAAADagAAA24AAANyAAADdgAAA3oAAAN+AAADggAAA4YAAAOKAAADjgAAA5IAAAOWAAADmgAAA54AAAOiAAADpgAAA6oAAAOuAAADsgAAA7YAA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",zA=class t{static __wrap(e){let A=Object.create(t.prototype);return A.__wbg_ptr=e,si.register(A,A.__wbg_ptr,A),A}__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,si.unregister(this),e}free(){let e=this.__destroy_into_raw();z.__wbg_chunksliceresult_free(e,0)}take_buffer(){try{let r=z.__wbindgen_add_to_stack_pointer(-16);z.chunksliceresult_take_buffer(r,this.__wbg_ptr);var e=iA().getInt32(r+0,!0),A=iA().getInt32(r+4,!0),n=fi(e,A).slice();return z.__wbindgen_export(e,A*1,1),n}finally{z.__wbindgen_add_to_stack_pointer(16)}}take_cpositions(){try{let r=z.__wbindgen_add_to_stack_pointer(-16);z.chunksliceresult_take_cpositions(r,this.__wbg_ptr);var e=iA().getInt32(r+0,!0),A=iA().getInt32(r+4,!0),n=ai(e,A).slice();return z.__wbindgen_export(e,A*8,8),n}finally{z.__wbindgen_add_to_stack_pointer(16)}}take_dpositions(){try{let r=z.__wbindgen_add_to_stack_pointer(-16);z.chunksliceresult_take_dpositions(r,this.__wbg_ptr);var e=iA().getInt32(r+0,!0),A=iA().getInt32(r+4,!0),n=ai(e,A).slice();return z.__wbindgen_export(e,A*8,8),n}finally{z.__wbindgen_add_to_stack_pointer(16)}}};Symbol.dispose&&(zA.prototype[Symbol.dispose]=zA.prototype.free);function gi(t){try{let o=z.__wbindgen_add_to_stack_pointer(-16),s=Ci(t,z.__wbindgen_export2),c=Zt;z.decompress_all(o,s,c);var e=iA().getInt32(o+0,!0),A=iA().getInt32(o+4,!0),n=iA().getInt32(o+8,!0),r=iA().getInt32(o+12,!0);if(r)throw Qi(n);var i=fi(e,A).slice();return z.__wbindgen_export(e,A*1,1),i}finally{z.__wbindgen_add_to_stack_pointer(16)}}function ci(t,e,A,n,r){try{let c=z.__wbindgen_add_to_stack_pointer(-16),a=Ci(t,z.__wbindgen_export2),g=Zt;z.decompress_chunk_slice(c,a,g,e,A,n,r);var i=iA().getInt32(c+0,!0),o=iA().getInt32(c+4,!0),s=iA().getInt32(c+8,!0);if(s)throw Qi(o);return zA.__wrap(i)}finally{z.__wbindgen_add_to_stack_pointer(16)}}function ns(t,e){let A=Error(Ii(t,e));return is(A)}function rs(t,e){throw new Error(Ii(t,e))}var si=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(t=>z.__wbg_chunksliceresult_free(t,1));function is(t){ge===hA.length&&hA.push(hA.length+1);let e=ge;return ge=hA[e],hA[e]=t,e}function os(t){t<1028||(hA[t]=ge,ge=t)}function ai(t,e){return t=t>>>0,ss().subarray(t/8,t/8+e)}function fi(t,e){return t=t>>>0,qt().subarray(t/1,t/1+e)}var PA=null;function iA(){return(PA===null||PA.buffer.detached===!0||PA.buffer.detached===void 0&&PA.buffer!==z.memory.buffer)&&(PA=new DataView(z.memory.buffer)),PA}var Fe=null;function ss(){return(Fe===null||Fe.byteLength===0)&&(Fe=new Float64Array(z.memory.buffer)),Fe}function Ii(t,e){return cs(t>>>0,e)}var Re=null;function qt(){return(Re===null||Re.byteLength===0)&&(Re=new Uint8Array(z.memory.buffer)),Re}function as(t){return hA[t]}var hA=new Array(1024).fill(void 0);hA.push(void 0,null,!0,!1);var ge=hA.length;function Ci(t,e){let A=e(t.length*1,1)>>>0;return qt().set(t,A/1),Zt=t.length,A}function Qi(t){let e=as(t);return os(t),e}var Me=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});Me.decode();var gs=2146435072,Tt=0;function cs(t,e){return Tt+=e,Tt>=gs&&(Me=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0}),Me.decode(),Tt=e),Me.decode(qt().subarray(t,t+e).slice())}var Zt=0,z;function li(t){z=t}var MA=null,_e=null;async function Le(){return MA||(_e||(_e=(async()=>{let e=await(await fetch(ts)).arrayBuffer(),{instance:A}=await WebAssembly.instantiate(e,{"./bgzf_wasm_bg.js":Ot});return MA=A.exports,li(MA),MA})().catch(t=>{throw _e=null,t})),_e)}async function Je(t){return MA||await Le(),gi(t)}async function Bi(t,e,A,n,r){MA||await Le();let i=ci(t,e,A,n,r),o=i.take_buffer(),s=i.take_cpositions(),c=i.take_dpositions();return i.free(),{buffer:o,cpositions:s,dpositions:c}}var Ge=8*1024*1024;function Pt(t){let e=0;for(let A of t)e+=A.compressedSize+A.decompressedSize;return e}function fs(t,e=0,A=t.length){let n=[],r=e,i=0;for(let o=e;o<A;o++){let s=t[o],c=s.compressedSize+s.decompressedSize;o>r&&i+c>Ge&&(n.push([r,o]),r=o,i=0),i+=c}return r<A&&n.push([r,A]),n}function Is(t,e,A){let n=t[e],r=t[A-1];return{inputOffset:n.inputOffset,inputLength:r.inputOffset+r.compressedSize-n.inputOffset}}function zt(t,e){let A=e.at(-1);return t.subarray(0,A?A.inputOffset+A.compressedSize:65536)}var Cs={decompress_all:3,__wbindgen_add_to_stack_pointer:1,__wbindgen_export:3,__wbindgen_export2:2};function Qs(t){return Object.entries(Cs).every(([A,n])=>{let r=t[A];return typeof r=="function"&&r.length===n})&&t.memory instanceof WebAssembly.Memory?t:void 0}async function ls(t,e,A){let n=Qs(await Le());if(n){let i=n.__wbindgen_add_to_stack_pointer(-16);try{let o=n.__wbindgen_export2(t.length,1)>>>0;new Uint8Array(n.memory.buffer).set(t,o),n.decompress_all(i,o,t.length);let s=new DataView(n.memory.buffer);if(s.getInt32(i+12,!0)===0){let c=s.getUint32(i,!0),a=s.getUint32(i+4,!0);return e.set(new Uint8Array(n.memory.buffer,c,a),A),n.__wbindgen_export(c,a,1),a}}finally{n.__wbindgen_add_to_stack_pointer(16)}}let r=await Je(t);return e.set(r,A),r.length}function Bs(t,e,A,n,r){let i=0;for(let o=A;o<n;o++){let s=e[o].decompressedSize;r[o]=t.subarray(i,i+s),i+=s}}async function Xt(t,e){let A=0;for(let i of e)A+=i.decompressedSize;let n=new Uint8Array(A),r=0;for(let[i,o]of fs(e)){let{inputOffset:s,inputLength:c}=Is(e,i,o);r+=await ls(t.subarray(s,s+c),n,r)}return n}async function di(t,e){let A=new Array(e.length);return Bs(await Xt(t,e),e,0,e.length,A),{blocks:A}}var ds=26;function hi(t){return t[0]===31&&t[1]===139}function Es(t){return t.length>=ds&&hi(t)&&t[2]===8&&t[3]===4&&t[10]===6&&t[12]===66&&t[13]===67}function ui(t){return t instanceof Error?t.message:`${t}`}async function Ei(t){if(typeof DecompressionStream<"u"){let e=new Blob([t]).stream().pipeThrough(new DecompressionStream("gzip"));return new Uint8Array(await new Response(e).arrayBuffer())}else return ri(t,void 0)}function pi(t){return ui(t).includes("invalid gzip header")?new Error("problem decompressing block: incorrect gzip header check",{cause:t}):t}async function ce(t){if(t.length===0)return new Uint8Array(0);if(!Es(t)){if(hi(t))return Ei(t);throw new Error("problem decompressing block: not a valid bgzf or gzip block")}let e=Kt(t,0,1/0);try{return Pt(e)>Ge?await Xt(t,e):await Je(zt(t,e))}catch(A){if(ui(A).includes("invalid bgzf header"))return Ei(t);throw pi(A)}}function hs(t,e,A,n){let r=[],i=[],o=[],s=A.dataPosition;for(let c=0;c<t.length;c++){let a=t[c],g=e[c],C=g.filePosition>=n.blockPosition;r.push(g.filePosition),i.push(s);let B=c===0?A.dataPosition:0,I=C?Math.min(n.dataPosition+1,a.length):a.length;if(B<I&&o.push(a.subarray(B,I)),s+=Math.max(0,a.length-B),C){r.push(g.filePosition+g.compressedSize),i.push(s);break}}return{slices:o,cpositions:Float64Array.from(r),dpositions:Float64Array.from(i)}}function us(t){let e=[],A;for(let n of t)A?.buffer===n.buffer&&A.byteOffset+A.length===n.byteOffset?A=new Uint8Array(A.buffer,A.byteOffset,A.length+n.length):(A&&e.push(A),A=n);return A&&e.push(A),e}async function jt(t,e,A){let{minv:n,maxv:r}=e,i=Kt(t,n.blockPosition,r.blockPosition),o=await ws(t,i,A);if(o){let{slices:g,cpositions:C,dpositions:B}=hs(o,i,n,r);return{segments:us(g),cpositions:C,dpositions:B}}let{buffer:s,cpositions:c,dpositions:a}=await ms(t,i,e);return{segments:[s],cpositions:c,dpositions:a}}var wi=4e5;function ps(t){let e=0;for(let A of t)e+=A.decompressedSize;return e}async function ws(t,e,A){if(A&&ps(e)>=wi)return(await A.decompressBlocks(t,e)).blocks;if(Pt(e)>Ge)return(await di(t,e)).blocks}async function ms(t,e,{minv:A,maxv:n}){try{let r=await Bi(zt(t,e),A.blockPosition,A.dataPosition,n.blockPosition,n.dataPosition);return{buffer:r.buffer,cpositions:r.cpositions,dpositions:r.dpositions}}catch(r){throw pi(r)}}function LA(t){if(t?.aborted)throw Wt(t)}function Wt(t){let e=t.reason;return e===void 0?new DOMException("This operation was aborted","AbortError"):e}function mi(t){return typeof t?.addEventListener=="function"}var yA=class{entries=new Map;total=0;settledCount=0;limit;shared;fill;sizeOf;toCacheKey;idleTimeoutMs;sweepTimer;constructor({fill:e,maxSize:A=1/0,sizeOf:n=()=>1,cacheKey:r=s=>String(s),idleTimeoutMs:i=0,budget:o}={}){this.fill=e,this.limit=A,this.shared=o&&{budget:o,membership:o.register(this)},this.sizeOf=n,this.toCacheKey=r,this.idleTimeoutMs=i>0&&Number.isFinite(i)?i:void 0}get size(){return this.entries.size}get totalSize(){return this.total}get maxSize(){return this.limit}set maxSize(e){this.limit=e,this.evict()}waiterCount(e){return this.entries.get(this.toCacheKey(e))?.pending?.signals.size??0}async get(e,A,n){LA(A);let r=this.toCacheKey(e),i=this.entries.get(r);i&&this.isDoomed(i)&&(this.release(r),i=void 0),i?this.touch(r,i):i=this.start(r,e,n),i.pending&&this.join(i.pending,A);try{return await this.settleFor(i,A)}finally{LA(A)}}settleFor(e,A){if(!e.pending||!mi(A))return e.promise;let n,r=new Promise((o,s)=>{n=s}),i=()=>{n(Wt(A))};return A.addEventListener("abort",i,{once:!0}),Promise.race([e.promise,r]).finally(()=>{A.removeEventListener("abort",i)})}getIfCached(e){let A=this.toCacheKey(e),n=this.entries.get(A);if(n){if(this.isDoomed(n)){this.release(A);return}return this.touch(A,n),n.promise}}has(e){let A=this.entries.get(this.toCacheKey(e));return A!==void 0&&!this.isDoomed(A)}delete(e){this.release(this.toCacheKey(e))}clear(){this.entries.clear(),this.shared?.budget.charge(this.shared.membership,-this.total),this.total=0,this.settledCount=0,this.stopSweep()}touch(e,A){this.entries.delete(e),this.entries.set(e,A),A.lastTouched=Date.now(),A.seq=this.stamp()}stamp(){return this.shared?.budget.nextSeq()??0}isDoomed(e){return e.pending?.controller.signal.aborted===!0}sweepIdle(){let e=this.idleTimeoutMs;if(e===void 0)return;let A=Date.now()-e;for(let[n,r]of this.entries)!r.pending&&r.lastTouched<=A&&this.release(n);this.settledCount===0&&this.stopSweep()}startSweep(){let e=this.idleTimeoutMs;if(e===void 0||this.sweepTimer!==void 0)return;let A=Math.min(2**31-1,Math.max(1e3,Math.floor(e/4))),n=new WeakRef(this),r=setInterval(()=>{let i=n.deref();i?i.sweepIdle():clearInterval(r)},A);this.sweepTimer=r,r.unref?.()}stopSweep(){this.sweepTimer!==void 0&&(clearInterval(this.sweepTimer),this.sweepTimer=void 0)}start(e,A,n){let r=n??(this.fill&&(a=>this.fill(A,a)));if(!r)throw new Error("SharedReadCache needs a fill, either on the cache or on the get() call");let i={signals:new Map,pinned:!1,controller:new AbortController},o={promise:Promise.resolve(r(i.controller.signal)),pending:i,size:0,lastTouched:Date.now(),seq:this.stamp()};this.entries.set(e,o);let s=()=>this.entries.get(e)===o,c=()=>{for(let[a,g]of i.signals)a.removeEventListener("abort",g);o.pending=void 0};return o.promise.then(a=>{let g=s()?this.weigh(a):void 0,C=s();c(),C&&(g===void 0?this.entries.delete(e):(o.lastTouched=Date.now(),o.size=g,this.settledCount++,this.total+=g,this.shared?.budget.charge(this.shared.membership,g),this.startSweep())),this.evict(),this.shared?.budget.evict()},()=>{s()&&this.release(e),c()}),o}weigh(e){try{let A=this.sizeOf(e);return Number.isFinite(A)&&A>=0?A:void 0}catch{return}}join(e,A){if(!mi(A))e.pinned=!0;else if(!A.aborted&&!e.signals.has(A)){let n=()=>{e.signals.delete(A),!e.pinned&&e.signals.size===0&&e.controller.abort(A.reason)};e.signals.set(A,n),A.addEventListener("abort",n,{once:!0})}}release(e){let A=this.entries.get(e);A&&(this.entries.delete(e),A.pending||this.settledCount--,this.total-=A.size,this.shared?.budget.charge(this.shared.membership,-A.size))}lruSpare(e=!1){if(!(this.settledCount<=(e?0:1))){for(let[A,n]of this.entries)if(!n.pending)return{cacheKey:A,seq:n.seq,last:this.settledCount===1}}}evict(){if(!(this.total<=this.limit))for(let[e,A]of this.entries){if(this.total<=this.limit||this.settledCount<=1)break;A.pending||this.release(e)}}};async function Ue(t){return t.bytes?t.bytes():new Uint8Array(await t.arrayBuffer())}async function ki(t,e,A){if(e==="utf8"||e==="utf-8")return t.text();if(e)throw new Error(`unsupported encoding: ${e}`);return A&&"body"in t?Vt(t,A):Ue(t)}function Ni(t){return typeof t=="string"?{encoding:t,opts:{}}:{encoding:t?.encoding,opts:t??{}}}function yi(t){let e=/\/(\d+)$/.exec(t??"")?.[1];return e===void 0?void 0:parseInt(e,10)}function ks(t){let e=t.headers.get("content-length"),A=e===null?Number.NaN:Number(e);return Number.isSafeInteger(A)&&A>=0?A:void 0}var Ns=50;async function Vt(t,e){let A=ks(t),n=t.body;if(!n||A===void 0){let c=await Ue(t);return e(c.byteLength,A??c.byteLength),c}let r=n.getReader(),i=new Uint8Array(A),o=0,s=Date.now();e(0,A);for(let c=await r.read();!c.done;c=await r.read()){if(o+c.value.byteLength>i.length){let g=new Uint8Array(Math.max(o+c.value.byteLength,i.length*2));g.set(i.subarray(0,o)),i=g}i.set(c.value,o),o+=c.value.byteLength;let a=Date.now();a-s>=Ns&&(s=a,e(o,A))}return e(o,A),o===i.length?i:i.slice(0,o)}function ys(...t){let e=new Map;for(let A of t)for(let[n,r]of Object.entries(A??{}))e.set(n.toLowerCase(),[n,r]);return Object.fromEntries(e.values())}function $t(t){let e=t.body;typeof e?.cancel=="function"&&e.cancel().catch(()=>{})}function bi(t){return Number.isSafeInteger(t)&&t>=0}function bs(t){return typeof t=="object"&&t!==null&&"name"in t&&t.name==="TypeError"}function xs(t){return(typeof t=="object"&&t!==null&&"message"in t&&typeof t.message=="string"?t.message:`${t}`).replace(/\.$/,"")}var uA=class{url;get source(){return this.url}_stat;statProbe;fetchImplementation;baseHeaders;baseOverrides;baseSignal;constructor(e,A={}){this.url=e,this.baseHeaders=A.headers??{},this.baseOverrides=A.overrides??{},this.baseSignal=A.signal,this.fetchImplementation=A.fetch??globalThis.fetch.bind(globalThis)}buildRequest(e,A){let n=e.signal??this.baseSignal;return{method:"GET",redirect:"follow",mode:"cors",...this.baseOverrides,...e.overrides,headers:ys(this.baseHeaders,e.headers,A),...n?{signal:n}:{}}}async fetch(e,A){let n=i=>bs(i)&&!A?.signal?.aborted?new Error(`${xs(i)} fetching ${e}`,{cause:i}):i,r;try{r=await this.fetchImplementation(e,A)}catch(i){if(`${i}`.includes("Failed to fetch")){console.warn(`generic-filehandle: refetching ${e} to attempt to work around chrome CORS header caching bug`);try{r=await this.fetchImplementation(e,{...A,cache:"reload"})}catch(o){throw n(o)}}else throw n(i)}return r}async read(e,A,n={}){if(!bi(e)||!bi(A))throw new TypeError(`read() called with an invalid length or position (length=${e}, position=${A}). The index file may be corrupt.`);return e===0?new Uint8Array(0):this.fetchBytes(e,A,n)}async fetchBytes(e,A,n){let r=await this.fetch(this.url,this.buildRequest(n,{range:`bytes=${A}-${A+e-1}`}));if(r.status===416)return $t(r),new Uint8Array(0);if(this.checkOk(r),r.status===200&&A===0||r.status===206){let i=yi(r.headers.get("content-range"));i!==void 0&&(this._stat={size:i});let o=n.onProgress?await Vt(r,n.onProgress):await Ue(r);return!this._stat&&r.status===200&&(this._stat={size:o.byteLength}),o.byteLength<=e?o:o.slice(0,e)}throw $t(r),new Error(r.status===200?`${this.url} fetch returned status 200, expected 206`:`HTTP ${r.status} fetching ${this.url}`)}checkOk(e){if(!e.ok)throw $t(e),new Error(`HTTP ${e.status} fetching ${this.url}`)}async readFile(e){let{encoding:A,opts:n}=Ni(e),r=await this.fetch(this.url,this.buildRequest(n));this.checkOk(r);let i=await this.readFileBody(r,A,n.onProgress);return r.status===200&&typeof i!="string"&&(this._stat={size:i.byteLength}),i}readFileBody(e,A,n){return ki(e,A,n)}async stat(){return this._stat||(this.statProbe??=this.read(10,0).finally(()=>{this.statProbe=void 0}),await this.statProbe),this._stat??{size:0}}close(){return Promise.resolve()}};var JA=class{source;constructor(e,A={}){this.source=e}unimplemented(){return Promise.reject(new Error(`LocalFile is unimplemented in the browser (${this.source})`))}readFile(e){return this.unimplemented()}read(e,A,n){return this.unimplemented()}stat(){return this.unimplemented()}close(){return this.unimplemented()}};var aA=class{minv;maxv;bin;endPosition;constructor(e,A,n,r=A.blockPosition+65536){this.minv=e,this.maxv=A,this.bin=n,this.endPosition=r}toString(){return`${this.minv.toString()}..${this.maxv.toString()} (bin ${this.bin}, fetchedSize ${this.fetchedSize()})`}fetchedSize(){return this.endPosition-this.minv.blockPosition}};function An(t,e){if(!(e>0))throw new TypeError(`\`${t}\` must be a number greater than 0`)}var fe=class{#A=new Map;#e=new Map;#t;#r;#i;constructor(e){let A=e.maxAge??Number.POSITIVE_INFINITY;An("maxSize",e.maxSize),An("maxAge",A),this.#t=e.maxSize,this.#r=A,this.#i=e.onEviction}#o(e){let A=this.#i;if(A)for(let[n,r]of e)A(n,r.value)}#n(e,A){return A.expiry!==void 0&&A.expiry<=Date.now()?(this.#i?.(e,A.value),this.delete(e),!0):!1}#a(e,A){return this.#n(e,A)?void 0:A.value}#g(e,A){if(this.#e.delete(e),this.#A.set(e,A),this.#A.size>=this.#t){let n=this.#e;this.#e=this.#A,this.#A=new Map,this.#o(n)}}#c(e){this.#e=new Map(e),this.#A=new Map}*#s(){for(let e of[this.#e,this.#A])for(let A of e)this.#n(...A)||(yield A)}get(e){let A=this.#A.get(e);if(A)return this.#a(e,A);let n=this.#e.get(e);if(n&&!this.#n(e,n))return this.#g(e,n),n.value}set(e,A,{maxAge:n=this.#r}={}){let r={value:A,expiry:n===Number.POSITIVE_INFINITY?void 0:Date.now()+n};return this.#A.has(e)?this.#A.set(e,r):this.#g(e,r),this}has(e){let A=this.#A.get(e)??this.#e.get(e);return A!==void 0&&!this.#n(e,A)}peek(e){let A=this.#A.get(e)??this.#e.get(e);return A?this.#a(e,A):void 0}expiresIn(e){let A=this.#A.get(e)??this.#e.get(e);if(A)return A.expiry===void 0?Number.POSITIVE_INFINITY:A.expiry-Date.now()}delete(e){return this.#A.delete(e)||this.#e.delete(e)}clear(){this.#A.clear(),this.#e.clear()}resize(e){An("maxSize",e);let A=[...this.#s()],n=A.length-e;n<0?(this.#A=new Map(A),this.#e=new Map):(this.#o(A.slice(0,n)),this.#c(A.slice(n))),this.#t=e}evict(e=1){if(!(e>0))return;let A=[...this.#s()],n=Math.trunc(Math.min(e,A.length-1));n>0&&(this.#o(A.slice(0,n)),this.#c(A.slice(n)))}get size(){return Math.min(this.#A.size+this.#e.size,this.#t)}get maxSize(){return this.#t}get maxAge(){return this.#r}*entriesAscending(){for(let[e,A]of this.#s())yield[e,A.value]}*entriesDescending(){for(let e of[this.#A,this.#e])for(let[A,n]of[...e].reverse())this.#n(A,n)||(yield[A,n.value])}entries(){return this.entriesAscending()}[Symbol.iterator](){return this.entriesAscending()}*keys(){for(let[e]of this)yield e}*values(){for(let[,e]of this)yield e}forEach(e,A=this){for(let[n,r]of this)e.call(A,r,n,this)}get[Symbol.toStringTag](){return"QuickLRU"}toString(){return`QuickLRU(${this.size}/${this.maxSize})`}[Symbol.for("nodejs.util.inspect.custom")](){return this.toString()}};function xi(t,e=0){let A=t[e]|t[e+1]<<8|t[e+2]<<16|t[e+3]<<24;return((t[e+4]|t[e+5]<<8|t[e+6]<<16|t[e+7]<<24)>>>0)*4294967296+(A>>>0)}var XA=class{blockPosition;dataPosition;constructor(e,A){this.blockPosition=e,this.dataPosition=A}toString(){return`${this.blockPosition}:${this.dataPosition}`}compareTo(e){return this.blockPosition-e.blockPosition||this.dataPosition-e.dataPosition}};function bA(t,e=0){return new XA(t[e+7]*1099511627776+t[e+6]*4294967296+t[e+5]*16777216+t[e+4]*65536+t[e+3]*256+t[e+2],t[e+1]<<8|t[e])}function Ye(t,e){let A=t.length;if(A===0)return t;let n;if(e){let s=e.blockPosition,c=e.dataPosition;n=[];for(let a=0;a<A;a++){let g=t[a];(g.maxv.blockPosition-s||g.maxv.dataPosition-c)>0&&n.push(g)}if(n.length===0)return n}else n=t;n.sort((s,c)=>{let a=s.minv.blockPosition-c.minv.blockPosition;return a===0?s.minv.dataPosition-c.minv.dataPosition:a});let r=[n[0]],i=n[0].minv.blockPosition,o=n[0].maxv.blockPosition;for(let s=1;s<n.length;s++){let c=n[s],a=c.minv.blockPosition,g=c.maxv.blockPosition;if(a-o<65e3&&g-i<5e6){let C=r.at(-1);(g-o||c.maxv.dataPosition-C.maxv.dataPosition)>0&&(r[r.length-1]=new aA(C.minv,c.maxv,C.bin,c.endPosition),o=g)}else r.push(c),i=a,o=g}return Ds(r)}function Ds(t){let e=[t[0]];for(let A=1;A<t.length;A++){let n=t[A],r=e.at(-1).maxv;if((n.minv.blockPosition-r.blockPosition||n.minv.dataPosition-r.dataPosition)>=0){e.push(n);continue}(n.maxv.blockPosition-r.blockPosition||n.maxv.dataPosition-r.dataPosition)>0&&e.push(new aA(r,n.maxv,n.bin,n.endPosition))}return e}function He(t,e=[]){let A=[...e];for(let n of t)A.push(n.minv.blockPosition,n.maxv.blockPosition);A.sort((n,r)=>n-r);for(let n of t){let r=n.maxv.blockPosition,i=0,o=A.length;for(;i<o;){let s=i+o>>>1;A[s]>r?o=s:i=s+1}i<A.length&&(n.endPosition=Math.min(n.endPosition,A[i]))}}function Ke(t,e,A,n,r=8){let i=n?n.blockPosition:1/0,o=n?n.dataPosition:0,s=!1;for(let c=0;c<A;c++){let a=e+c*r,g=t[a+7]*1099511627776+t[a+6]*4294967296+t[a+5]*16777216+t[a+4]*65536+t[a+3]*256+t[a+2],C=t[a+1]<<8|t[a];(g<i||g===i&&C<o)&&(i=g,o=C,s=!0)}return s?new XA(i,o):n}function Ss(t){let e=new TextDecoder("utf-8"),A=[],n={},r=0,i=0;for(;i<t.length;){let o=t.indexOf(0,i);if(o===-1)break;if(o>i){let s=e.decode(t.subarray(i,o));A[r]=s,n[s]=r}i=o+1,r++}return{refNameToId:n,refIdToName:A}}var vs={0:"generic",1:"SAM",2:"VCF",3:"GAF"};function Te(t,e){let A=new DataView(t.buffer,t.byteOffset,t.byteLength),n=A.getInt32(e,!0),r=n&65536?"zero-based-half-open":"1-based-closed",i=vs[n&15];if(!i)throw new Error(`invalid Tabix preset format flags ${n}`);let o={ref:A.getInt32(e+4,!0),start:A.getInt32(e+8,!0),end:A.getInt32(e+12,!0)},s=A.getInt32(e+16,!0),c=s?String.fromCharCode(s):void 0,a=A.getInt32(e+20,!0),g=A.getInt32(e+24,!0),{refIdToName:C,refNameToId:B}=Ss(t.subarray(e+28,e+28+g));return{refIdToName:C,refNameToId:B,skipLines:a,metaChar:c,columnNumbers:o,format:i,coordinateType:r}}function Oe(t,e){return{lineCount:xi(t,e)}}function qe(t,e=5){let A=new fe({maxSize:e});return n=>{let r=A.get(n);if(r!==void 0)return r;let i=t(n);return i!==void 0&&A.set(n,i),i}}function Di(t){let e=0;for(let r of t)e+=r.length;let A=new Uint8Array(e),n=0;for(let r of t)A.set(r,n),n+=r.length;return A}var Si=10;function en(t,e,A){let n,r=0;for(let i of t){let o=0;if(n){let a=i.indexOf(Si);if(a===-1){n=Di([n,i]),e+=i.length;continue}if(A(Di([n,i.subarray(0,a+1)]),r))return!0;o=a+1,n=void 0}let s=i.lastIndexOf(Si);if(s>=o&&A(i.subarray(o,s+1),e+o))return!0;let c=Math.max(o,s+1);c<i.length&&(n=i.slice(c),r=e+c),e+=i.length}return!1}function vi(t,e,A){let n=[],r=0;for(let i of t){let o=Math.max(e-r,0),s=Math.min(A-r,i.length);o<s&&n.push(i.subarray(o,s)),r+=i.length}return n}function tn(t,e,A){let n=0,r=t.length-1;for(;n<r;){let o=n+r+1>>>1;t[o]<=A.blockPosition?n=o:r=o-1}return(n===0?0:e[n])-e[0]+A.dataPosition}function Fs(t,e,A,n){if(e>2**(A+n*3))return;let r=(8**(n+1)-1)/7,i=(8**n-1)/7+Math.floor((e-1)/2**A)+1;for(i>=r&&(i=0);;){for(;i%8===1;)i=(i-1)/8;if(i===0)return;let o=t[i];if(o?.length){let s=o[0].minv;for(let c=1;c<o.length;c++){let a=o[c].minv;a.compareTo(s)<0&&(s=a)}return s}i++}}function Fi(t,e){return t.format==="GAF"?0:t.refNameToId[e]}var GA=class{filehandle;parseCache=new yA({});constructor({filehandle:e}){this.filehandle=e}async readIndexBytes(e){let A=await this.filehandle.readFile({signal:e.signal,onProgress:e.onProgress}),n=await ce(A);return{bytes:n,dataView:new DataView(n.buffer,n.byteOffset,n.byteLength)}}async lineCount(e,A={}){let n=await this.parse(A),r=Fi(n,e);return r===void 0?-1:n.indices(r)?.stats?.lineCount??-1}async getMetadata(e={}){let{indices:A,...n}=await this.parse(e);return n}async blocksForRange(e,A,n,r={}){let i=await this.parse(r),o=Fi(i,e);if(o===void 0)return[];let s=i.indices(o);if(!s)return[];i.format==="GAF"&&(A=Math.max(A-1,0));let c=[];for(let[I,d]of this.reg2bins(A,n,i))for(let E=I;E<=d;E++){let u=s.binIndex[E];if(u)for(let p of u)c.push(p)}let a=this.lowestOffset(s,A,i),g=Ye(c,a),C=Fs(s.binIndex,n,i.minShift,i.depth);if(C){let I=g.length;for(;I>0&&g[I-1].minv.compareTo(C)>=0;)I--;g.length=I}let B=g[0];if(B&&a){let I=2**(i.minShift+3),d=this.lowestOffset(s,Math.floor(A/I)*I,i),E=d&&d.compareTo(a)<0?d:a;B.minv.compareTo(E)<0&&(g[0]=new aA(E,B.maxv,B.bin,B.endPosition))}return g}parse(e={}){return this.parseCache.get("index",e.signal,A=>this._parse({...e,signal:A}))}async hasRefSeq(e,A={}){return!!(await this.parse(A)).indices(e)?.binIndex}};var Rs=21582659,_s=38359875;function Ri(t,e){return t*2**e}function nn(t,e){return Math.floor(t/2**e)}var UA=class extends GA{async _parse(e={}){let{bytes:A,dataView:n}=await this.readIndexBytes(e),r=n.getUint32(0,!0),i;if(r===Rs)i=1;else if(r===_s)i=2;else throw new Error(`Not a CSI file (magic=${r})`);let o=n.getInt32(4,!0),s=n.getInt32(8,!0),c=(8**(s+1)-1)/7,a=2**(o+s*3),g=n.getInt32(12,!0),C=g>=28&&(n.getInt32(16,!0)&15)===3;if(g<30&&!C)throw new Error("CSI index has no tabix header, so it names no references; it may be a BAM or BCF index");let B=Te(A,16),I=n.getInt32(16+g,!0),d=16+g+4,E,u=[];for(let w=0;w<I;w++){u.push(d);let N=n.getInt32(d,!0);d+=4;for(let l=0;l<N;l++){let S=n.getUint32(d,!0);if(d+=4,S>c)d+=44;else{E=Ke(A,d,1,E),d+=8;let x=n.getInt32(d,!0);d+=4+16*x}}}function p(w){let N=u[w];if(N===void 0)return;let l=N,S=n.getInt32(l,!0);l+=4;let x={},Q={},h;for(let y=0;y<S;y++){let b=n.getUint32(l,!0);if(l+=4,b>c)h=Oe(A,l+28),l+=44;else{Q[b]=bA(A,l),l+=8;let v=n.getInt32(l,!0);l+=4;let K=Array.from({length:v});for(let Z=0;Z<v;Z++)K[Z]=new aA(bA(A,l),bA(A,l+8),b),l+=16;x[b]=K}}return He(Object.values(x).flat()),{binIndex:x,loffsets:Q,stats:h}}return{...B,csi:!0,refCount:I,maxBlockSize:65536,firstDataLine:E,csiVersion:i,indices:qe(p),minShift:o,depth:s,maxBinNumber:c,maxRefLength:a}}lowestOffset(e,A,{minShift:n,depth:r}){let{loffsets:i}=e,o;if(i){let s=(Ri(1,3*r)-1)/7+nn(Math.max(A,0),n);for(;o===void 0&&s>0;)if(o=i[s],o===void 0){let c=Math.floor((s-1)/8),a=c*8+1;s=s>a?s-1:c}o??=i[0]}return o}reg2bins(e,A,{minShift:n,depth:r,maxBinNumber:i}){e=Math.max(e,0);let o=2**(n+r*3);A>o&&(A=o),A-=1;let s=0,c=0,a=n+r*3,g=[];for(;s<=r;a-=3,c+=Ri(1,s*3),s+=1){let C=c+nn(e,a),B=c+nn(A,a);if(B-C+g.length>i)throw new Error(`query ${e}-${A} is too large for current binning scheme (shift ${n}, depth ${r}), try a smaller query or a coarser index binning scheme`);g.push([C,B])}return g}};var Ms=21578324,rn=5,on=14,Ze=2**(on+rn*3);function _i(t){return Math.min(Math.max(t,0),Ze)}var pA=class extends GA{reg2bins(e,A){e>Ze&&console.warn("querying outside of possible tabix range");let n=_i(e),r=Math.min(A,Ze)-1,i=[];return n<=r&&i.push([0,0],[1+(n>>26),1+(r>>26)],[9+(n>>23),9+(r>>23)],[73+(n>>20),73+(r>>20)],[585+(n>>17),585+(r>>17)],[4681+(n>>14),4681+(r>>14)]),i}lowestOffset(e,A){let n=e.linearIndex;return n?.[Math.min(_i(A)>>on,n.length-1)]}async _parse(e={}){let{bytes:A,dataView:n}=await this.readIndexBytes(e);if(n.getUint32(0,!0)!==Ms)throw new Error("Not a TBI file");let r=n.getUint32(4,!0),i=((1<<(rn+1)*3)-1)/7,{refNameToId:o,refIdToName:s,coordinateType:c,format:a,columnNumbers:g,metaChar:C,skipLines:B}=Te(A,8),d=36+n.getInt32(32,!0),E,u=[];for(let w=0;w<r;w++){u.push(d);let N=n.getInt32(d,!0);d+=4;for(let S=0;S<N;S++){let x=n.getUint32(d,!0);d+=4;let Q=n.getInt32(d,!0);if(d+=4,x>i+1)throw new Error("tabix index contains too many bins, please use a CSI index");x<=i&&(E=Ke(A,d,Q,E,16)),d+=16*Q}let l=n.getInt32(d,!0);d+=4+8*l}function p(w){let N=u[w];if(N===void 0)return;let l=N,S=n.getInt32(l,!0);l+=4;let x={},Q;for(let b=0;b<S;b++){let v=n.getUint32(l,!0);if(l+=4,v>i+1)throw new Error("tabix index contains too many bins, please use a CSI index");if(v===i+1){let K=n.getInt32(l,!0);l+=4,K===2&&(Q=Oe(A,l+16)),l+=16*K}else{let K=n.getInt32(l,!0);l+=4;let Z=Array.from({length:K});for(let V=0;V<K;V++)Z[V]=new aA(bA(A,l),bA(A,l+8),v),l+=16;x[v]=Z}}let h=n.getInt32(l,!0);l+=4;let y=Array.from({length:h});for(let b=0;b<h;b++)y[b]=bA(A,l),l+=8;return He(Object.values(x).flat(),y.map(b=>b.blockPosition)),{binIndex:x,linearIndex:y,stats:Q}}return{indices:qe(p),metaChar:C,minShift:on,depth:rn,maxBinNumber:i,maxRefLength:Ze,skipLines:B,firstDataLine:E,columnNumbers:g,coordinateType:c,format:a,refIdToName:s,refNameToId:o,maxBlockSize:65536}}};var sn=9,ze=10,Ji=13,Ls=59,Js=60,Gs=62,Us=6,Ys=1024*2**20,Hs=180*1e3;function Ks(t,e,A){if(t)return t;if(e)return new JA(e);if(A)return new uA(A);throw new TypeError("must provide either filehandle, path, or url")}function Ts({tbiFilehandle:t,csiFilehandle:e,tbiPath:A,csiPath:n,tbiUrl:r,csiUrl:i,path:o,url:s}){if(t)return new pA({filehandle:t});if(e)return new UA({filehandle:e});if(A)return new pA({filehandle:new JA(A)});if(n)return new UA({filehandle:new JA(n)});if(i)return new UA({filehandle:new uA(i)});if(r)return new pA({filehandle:new uA(r)});if(o)return new pA({filehandle:new JA(`${o}.tbi`)});if(s)return new pA({filehandle:new uA(`${s}.tbi`)});throw new TypeError("must provide one of tbiFilehandle, tbiPath, csiFilehandle, csiPath, tbiUrl, csiUrl")}function Gi(t,e,A,n,r){return t[A]*256+(n-e[A])+r+1}function Os(t,e,A,n,r,i,o){let s=n-A,c=e+s,a=0;if(t[r]===46)return c;let g=r;for(let C=r;C<=i;C++)if(C===i||t[C]===Ls){let B=C-g;if(B>=10&&t[g]===83&&t[g+1]===86&&t[g+2]===84&&t[g+3]===89&&t[g+4]===80&&t[g+5]===69&&t[g+6]===61&&t[g+7]===84&&t[g+8]===82&&t[g+9]===65)return e+1;if(B>=4&&t[g]===69&&t[g+1]===78&&t[g+2]===68&&t[g+3]===61){let I=Pe(t,g+4,C);I>e&&(c=I)}else B>=6&&t[g]===83&&t[g+1]===86&&t[g+2]===76&&t[g+3]===69&&t[g+4]===78&&t[g+5]===61&&(a=Zs(t,g+6,C,n+1,o));g=C+1}return Math.max(c,e+a)}var Mi=44;function qs(t,e,A){if(A-e<5||t[e]!==60||t[A-1]!==62)return!1;let n=t[e+4];if(n!==62&&n!==58)return!1;let r=t[e+1],i=t[e+2],o=t[e+3];return r===67&&i===78&&o===86||r===68&&i===69&&o===76||r===68&&i===85&&o===80||r===73&&i===78&&o===86}function Zs(t,e,A,n,r){let i=0,o=e,s=n;for(;o<A&&s<r;){let c=t.indexOf(Mi,o);(c===-1||c>A)&&(c=A);let a=t.indexOf(Mi,s);if((a===-1||a>r)&&(a=r),qs(t,s,a)){let g=Pe(t,t[o]===45?o+1:o,c);g>i&&(i=g)}o=c+1,s=a+1}return i}var Ui=new TextDecoder;function Li(t,e){let A=-1,n=e.charCodeAt(0);for(let r=0,i=t.length;r<i;r++){let o=t[r];if(r===A+1&&o!==n)break;o===ze&&(A=r)}return t.subarray(0,A+1)}function Ps(t,e){let A=0;for(let n=0;n<e;n++){let r=t.indexOf(ze,A);if(r===-1){A=t.length;break}A=r+1}return Ui.decode(t.subarray(0,A)).split(/\r?\n/).slice(0,e)}function Pe(t,e,A){let n=0;for(let r=e;r<A;r++){let i=t[r];if(i>=48&&i<=57)n=n*10+(i-48);else break}return n}function zs(t,e,A,n,r,{start:i,end:o,pathCol:s,metaCharCode:c,decoder:a,callback:g}){let C=0,B=0;for(;C<t.length;){let I=t.indexOf(ze,C);if(I===-1)break;let d=C;C=I+1;let E=d+e+r;for(;B<n.length&&E>=n[B];)B++;if(t[d]===c)continue;let u=d;for(let x=1;x<s;x++){let Q=t.indexOf(sn,u);if(Q===-1||Q>=I){u=I;break}u=Q+1}let p=t[u];if(p!==Gs&&p!==Js)continue;let w=t.indexOf(sn,u);(w===-1||w>I)&&(w=I);let N=1/0,l=-1,S=u;for(;S<w;){let x=0,Q=S+1;for(;Q<w;Q++){let h=t[Q]-48;if(h<0||h>9)break;x=x*10+h}x<N&&(N=x),x>l&&(l=x),S=Q}if(N>=o)return!0;if(l>=i){let x=t[I-1]===Ji?I-1:I;g(a.decode(t.subarray(d,x)),Gi(A,n,B,d+e,r),N,l+1)}}return!1}var jA=class{filehandle;index;chunkCache;requested=new Map;headerCache=new yA({});bgzfWorkerPool;constructor({path:e,filehandle:A,url:n,tbiPath:r,tbiUrl:i,tbiFilehandle:o,csiPath:s,csiUrl:c,csiFilehandle:a,chunkCacheSize:g=Ys,chunkCacheIdleTimeoutMs:C=Hs,chunkCacheBudget:B,bgzfWorkerPool:I}){this.bgzfWorkerPool=I,this.filehandle=Ks(A,e,n),this.index=Ts({tbiFilehandle:o,csiFilehandle:a,tbiPath:r,csiPath:s,tbiUrl:i,csiUrl:c,path:e,url:n}),this.chunkCache=new yA({maxSize:g,sizeOf:d=>{let E=0;for(let u of d.segments)E+=u.byteLength;return E},cacheKey:d=>d.toString(),idleTimeoutMs:C,budget:B,fill:(d,E)=>this.readChunk(d,{signal:E})})}clearChunkCache(){this.chunkCache.clear(),this.requested.clear()}withCachedContainers(e){if(this.requested.size>2*this.chunkCache.size)for(let[n,r]of this.requested)this.chunkCache.has(r)||this.requested.delete(n);let A=[];for(let n=0;n<e.length;n++){let r=e[n],i=A[A.length-1],o=e[n+1],s;if(!this.chunkCache.has(r))for(let c of this.requested.values())c.minv.compareTo(r.minv)<=0&&c.maxv.compareTo(r.maxv)>=0&&(!i||c.minv.compareTo(i.maxv)>=0)&&(!o||c.maxv.compareTo(o.minv)<=0)&&(!s||c.fetchedSize()<s.fetchedSize())&&this.chunkCache.has(c)&&(s=c);A.push(s??r)}return A}async bytesForRegions(e,A={}){let n=[];for(let{refName:i,start:o,end:s}of e){let c=await this.index.blocksForRange(i,o,s,A);for(let a of c)n.push(a)}let r=0;for(let i of Ye(n))r+=i.fetchedSize();return r}async getLines(e,A,n,r){let i,o={},s,c;typeof r=="function"?s=r:(o=r,s=r.lineCallback,i=r.signal,c=r.onProgress);let a=await this.index.getMetadata(o),g=A??0,C=n??a.maxRefLength;if(g>C)throw new TypeError("invalid start and end coordinates. start must be less than or equal to end");if(g===C)return;let B=await this.index.blocksForRange(e,g,C,o),I=this.withCachedContainers(B),d=a.format==="VCF",E=a.columnNumbers.ref||0,u=a.columnNumbers.start||0,p=d?8:a.columnNumbers.end||0,w=Math.max(E,u,p),N=a.metaChar?.charCodeAt(0),l=a.coordinateType==="1-based-closed"?-1:0,S=new TextEncoder,x=new TextDecoder,Q=S.encode(e),h=new Int32Array(w+1),y=a.format==="GAF"?{start:g,end:C,pathCol:u,metaCharCode:N,decoder:x,callback:s}:void 0,b=0;for(let X of I)b+=X.fetchedSize();let v=0;c?.(0,b);let K=1,Z=[],V=X=>{for(;Z.length<Math.min(X,I.length);){let nA=I[Z.length];this.requested.set(nA.toString(),nA);let _=this.chunkCache.get(nA,i);_.catch(()=>{}),Z.push(_)}};V(1);for(let X=0,nA=I.length;X<nA;X++){let _=I[X],T=await Z[X],{cpositions:Y,dpositions:O}=T;v+=_.fetchedSize(),c?.(v,b);let $=_.minv.dataPosition,AA=B[X],G=T.segments,q=0;if(AA!==_){q=tn(Y,O,AA.minv);let R=tn(Y,O,AA.maxv)+1;G=vi(G,q,R)}if(y){if(en(G,q,(R,H)=>zs(R,H,Y,O,$,y)))return}else if(en(G,q,(R,H)=>{let f=0,m=0;for(;f<R.length;){let k=R.indexOf(ze,f);if(k===-1)break;let D=f+H+$;for(;m<O.length&&D>=O[m];)m++;if(N!==void 0&&R[f]===N){f=k+1;continue}h[0]=f-1;for(let j=0;j<w;j++){let W=h[j],rA=W<k?R.indexOf(sn,W+1):-1;h[j+1]=rA===-1||rA>=k?k:rA}let F=h[E-1]+1,L=h[E]-F;if(L!==Q.length){f=k+1;continue}let J=!0;for(let j=0;j<L;j++)if(R[F+j]!==Q[j]){J=!1;break}if(!J){f=k+1;continue}let M=Pe(R,h[u-1]+1,h[u])+l;if(M>=C)return!0;let P;if(p===0||p===u?P=M+1:d?P=Os(R,M,h[3]+1,h[4],h[p-1]+1,h[p],h[5]):P=Pe(R,h[p-1]+1,h[p]),P>g){let j=R[k-1]===Ji?k-1:k,W=x.decode(R.subarray(f,j));s(W,Gi(Y,O,m,f+H,$),M,P)}f=k+1}return!1}))return;K=Math.min(K*2,Us),V(X+1+K)}}async getMetadata(e={}){return this.index.getMetadata(e)}async readHeaderBytes(e){let{firstDataLine:A,maxBlockSize:n}=await this.getMetadata(e);if(A?.blockPosition===0&&A.dataPosition===0)return new Uint8Array(0);let r=(A?.blockPosition??0)+n,i=await this.filehandle.read(r,0,e);return ce(i)}async parseHeader(e){let{metaChar:A,skipLines:n=0}=await this.getMetadata(e),r=await this.readHeaderBytes(e);return{header:Ui.decode(A?Li(r,A):r),skippedLines:n>0?Ps(r,n):[]}}getParsedHeader(e={}){return this.headerCache.get("header",e.signal,A=>this.parseHeader({...e,signal:A}))}async getHeaderBuffer(e={}){let{metaChar:A}=await this.getMetadata(e),n=await this.readHeaderBytes(e);return A?Li(n,A):n}async getSkippedLines(e={}){let{skipLines:A=0}=await this.getMetadata(e);return A<=0?[]:(await this.getParsedHeader(e)).skippedLines}async getHeader(e={}){return(await this.getParsedHeader(e)).header}async getHeaderLines(e={}){let{header:A,skippedLines:n}=await this.getParsedHeader(e);return(A?A.split(/\r?\n/):n).filter(Boolean)}async getReferenceSequenceNames(e={}){return(await this.getMetadata(e)).refIdToName}async lineCount(e,A={}){return this.index.lineCount(e,A)}async readChunk(e,A={}){let n=await this.filehandle.read(e.fetchedSize(),e.minv.blockPosition,A);LA(A.signal);let r=await this.bgzfWorkerPool;return jt(n,e,r)}};var Xs=t=>({type:"fileLocation",defaultValue:{uri:t,locationType:"UriLocation"}}),pc=(t,e="")=>gn(t,{indexType:{model:cn.enumeration("IndexType",["TBI","CSI"]),type:"stringEnum",defaultValue:"TBI"},location:Xs(e)});function js(t,e,A){return{indexType:A?"CSI":"TBI",location:{uri:`${t}.${A?"csi":"tbi"}`,baseUri:e}}}function wc(t){let{walksUri:e,baseUri:A,csi:n}=t;if(typeof e!="string")return t;let r=`${e}.walks.bed.gz`;return{...t,walksLocation:{uri:r,baseUri:A},walksIndex:js(r,A,n)}}function mc(t,e,A){let n=t.pluginManager;return new jA({filehandle:fn(t.getConf(e),n),...In(t.getConf([...A,"location"]),t.getConf([...A,"indexType"]),n)})}function Ws(t){return`${t.assemblyName} ${t.refName} is not in this graph's index; a graph with PanSN names (GRCh38#0#chr1) needs ${t.assemblyName} mapped to its prefix in assemblyNameToPanSN`}var Yi=class{constructor(e,A){this.file=e;this.adapter=A;this.lookup=Qn({setup:async e=>Ae(await this.names(e))})}async names(e){return(await this.file.getReferenceSequenceNames(e)).filter(n=>!n.includes("~"))}async assemblyRefNames(e={}){let A=await this.names(e),n=Ie(this.adapter,e.assemblyName),r=A.filter(i=>Xe(i,n)).map(i=>an(i));return r.length>0?[...new Set(r)]:A}async resolve(e,A){let n=await this.lookup(A);return ee(n,Ie(this.adapter,e.assemblyName),e.refName)}async resolveMapped(e,A){let n=await this.resolve(e,A);if(n===void 0&&e.assemblyName){let r=await this.names(A),i=Ie(this.adapter,e.assemblyName);if(r.every(o=>o.includes("#"))&&!r.some(o=>Xe(o,i)))throw new Error(Ws(e))}return n}async resolveForCut(e,A){let n=await this.resolveMapped(e,A);if(n===void 0)throw new Error(`This graph has nothing on ${e.assemblyName} ${e.refName}`);return n}async regionBytes(e,A={},n=async(r,i)=>i.start){let r=[];for(let i of e){let o=await this.resolve(i,A);o!==void 0&&r.push({refName:o,start:await n(o,i),end:i.end})}return cr(this.file,r,A)}};export{ce as a,Vs as b,Qn as c,fA as d,je as e,HA as f,SA as g,qi as h,nt as i,Ao as j,It as k,he as l,cA as m,ue as n,Io as o,Wn as p,lo as q,Bo as r,pe as s,mo as t,Et as u,No as v,ut as w,pt as x,vo as y,Ma as z,Xs as A,pc as B,js as C,wc as D,mc as E,Yi as F};
3
- //# sourceMappingURL=chunk-GLSUAMGV.js.map
3
+ //# sourceMappingURL=chunk-3WUOWIYO.js.map