jbrowse-plugin-graphgenomeviewer 7.2.0 → 7.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunks/GbzBaseSyntenyAdapter-FXMGIM7Z.js +2 -0
- package/dist/chunks/{GbzBaseSyntenyAdapter-NB6WBBZH.js.map → GbzBaseSyntenyAdapter-FXMGIM7Z.js.map} +3 -3
- package/dist/chunks/{GraphGenomeView-4O5F5I37.js → GraphGenomeView-WJ3FIDY2.js} +2 -2
- package/dist/chunks/{GraphTrackSettingsDialog-WZEJAF7F.js → GraphTrackSettingsDialog-ZW7ALMDV.js} +2 -2
- package/dist/chunks/{HighlightColorDialog-SRT2FPXP.js → HighlightColorDialog-VBZRUKD5.js} +2 -2
- package/dist/chunks/{LinearGraphDisplay-Z33PVCJL.js → LinearGraphDisplay-SPOPTJEN.js} +2 -2
- package/dist/chunks/MinigraphBubbleAdapter-QCOMFPLL.js +2 -0
- package/dist/chunks/{MinigraphBubbleAdapter-HDLUZ6YF.js.map → MinigraphBubbleAdapter-QCOMFPLL.js.map} +1 -1
- package/dist/chunks/RgfaTabixAdapter-O3NMNRZ2.js +2 -0
- package/dist/chunks/RgfaTabixAdapter-O3NMNRZ2.js.map +7 -0
- package/dist/chunks/WalkTabixSyntenyAdapter-7VDCNSFD.js +2 -0
- package/dist/chunks/WalkTabixSyntenyAdapter-7VDCNSFD.js.map +7 -0
- package/dist/chunks/chunk-2M4XYSLG.js +2 -0
- package/dist/chunks/chunk-2M4XYSLG.js.map +7 -0
- package/dist/chunks/{chunk-JLGPQO5L.js → chunk-2O3YVA2I.js} +2 -2
- package/dist/chunks/{chunk-CWNJR5XB.js → chunk-44CJ2N3N.js} +1 -1
- package/dist/chunks/{chunk-CWNJR5XB.js.map → chunk-44CJ2N3N.js.map} +1 -1
- package/dist/chunks/chunk-6KUHGRHU.js +2 -0
- package/dist/chunks/chunk-6KUHGRHU.js.map +7 -0
- package/dist/chunks/chunk-6MUBJVBG.js +2 -0
- package/dist/chunks/chunk-6MUBJVBG.js.map +7 -0
- package/dist/chunks/{chunk-GUXZESDR.js → chunk-7HWHWPRW.js} +1 -1
- package/dist/chunks/{chunk-GUXZESDR.js.map → chunk-7HWHWPRW.js.map} +1 -1
- package/dist/chunks/chunk-B2EP6FOQ.js +3 -0
- package/dist/chunks/chunk-B2EP6FOQ.js.map +7 -0
- package/dist/chunks/{chunk-44HZPYGC.js → chunk-BXRTG7FU.js} +2 -2
- package/dist/chunks/{chunk-44HZPYGC.js.map → chunk-BXRTG7FU.js.map} +1 -1
- package/dist/chunks/{chunk-HLKZCTQ3.js → chunk-DBPEUVUC.js} +1 -1
- package/dist/chunks/{chunk-HLKZCTQ3.js.map → chunk-DBPEUVUC.js.map} +1 -1
- package/dist/chunks/{chunk-FME624X3.js → chunk-DUR437TH.js} +2 -2
- package/dist/chunks/{chunk-FME624X3.js.map → chunk-DUR437TH.js.map} +1 -1
- package/dist/chunks/{chunk-6WA6WF6A.js → chunk-FIRQAKMX.js} +1 -1
- package/dist/chunks/{chunk-6WA6WF6A.js.map → chunk-FIRQAKMX.js.map} +1 -1
- package/dist/chunks/chunk-JCAZTNYG.js +2 -0
- package/dist/chunks/chunk-JCAZTNYG.js.map +7 -0
- package/dist/chunks/chunk-N74HGPAW.js +3 -0
- package/dist/chunks/chunk-N74HGPAW.js.map +7 -0
- package/dist/chunks/chunk-PEDWEPNK.js +2 -0
- package/dist/chunks/chunk-PEDWEPNK.js.map +7 -0
- package/dist/chunks/chunk-PYQG3JHP.js +3 -0
- package/dist/chunks/chunk-PYQG3JHP.js.map +7 -0
- package/dist/chunks/chunk-RFDSEB2X.js +4 -0
- package/dist/chunks/chunk-RFDSEB2X.js.map +7 -0
- package/dist/chunks/{chunk-O7Y7LYN6.js → chunk-RW775LQN.js} +2 -2
- package/dist/chunks/{chunk-O7Y7LYN6.js.map → chunk-RW775LQN.js.map} +1 -1
- package/dist/chunks/{chunk-N4WBX2OS.js → chunk-VQ77X5QU.js} +2 -2
- package/dist/chunks/{chunk-N4WBX2OS.js.map → chunk-VQ77X5QU.js.map} +1 -1
- package/dist/chunks/{chunk-LXCMWL7B.js → chunk-WUSKVEA6.js} +2 -2
- package/dist/chunks/{chunk-LXCMWL7B.js.map → chunk-WUSKVEA6.js.map} +1 -1
- package/dist/chunks/{chunk-ZNT7TQLN.js → chunk-YKSUKPYY.js} +2 -2
- package/dist/chunks/chunk-YKSUKPYY.js.map +7 -0
- package/dist/chunks/{renderSvg-RRWCAEGF.js → renderSvg-WD6YDV2I.js} +2 -2
- package/dist/jbrowse-plugin-graphgenomeviewer.esm.js +4 -4
- package/dist/jbrowse-plugin-graphgenomeviewer.esm.js.map +4 -4
- package/package.json +3 -3
- package/src/GbzBaseSyntenyAdapter/GbzBaseSyntenyAdapter.test.ts +2 -2
- package/src/GbzBaseSyntenyAdapter/GbzBaseSyntenyAdapter.ts +1 -1
- package/src/GetSubgraph.ts +1 -1
- package/src/GraphGenomeView/genes/genes.test.ts +20 -2
- package/src/GraphGenomeView/legendSections.test.ts +1 -1
- package/src/GraphGenomeView/legendSections.ts +1 -7
- package/src/GraphGenomeView/model.test.ts +1 -2
- package/src/GraphGenomeView/pane/graphViews.ts +24 -35
- package/src/GraphGenomeView/pane/loadActions.ts +4 -3
- package/src/GraphGenomeView/pane/paneBase.ts +1 -1
- package/src/GraphGenomeView/subgraphLoad.test.ts +41 -1
- package/src/GraphGenomeView/walkRowsCut.ts +10 -44
- package/src/RgfaTabixAdapter/RgfaTabixAdapter.test.ts +23 -4
- package/src/RgfaTabixAdapter/RgfaTabixAdapter.ts +2 -3
- package/src/RgfaTabixAdapter/bubbleTier.test.ts +1 -1
- package/src/RgfaTabixAdapter/test_data/walks3_inversion.GRCh38.walks.bed.gz +0 -0
- package/src/RgfaTabixAdapter/test_data/walks3_inversion.GRCh38.walks.bed.gz.tbi +0 -0
- package/src/RgfaTabixAdapter/walkCut.ts +20 -0
- package/src/RgfaTabixAdapter/walkFiles.test.ts +2 -2
- package/src/RgfaTabixAdapter/walkReader.ts +1 -1
- package/src/WalkTabixSyntenyAdapter/WalkTabixSyntenyAdapter.test.ts +77 -1
- package/src/WalkTabixSyntenyAdapter/WalkTabixSyntenyAdapter.ts +2 -2
- package/src/WalkTabixSyntenyAdapter/walkLanes.ts +55 -18
- package/src/version.ts +1 -1
- package/dist/chunks/GbzBaseSyntenyAdapter-NB6WBBZH.js +0 -2
- package/dist/chunks/MinigraphBubbleAdapter-HDLUZ6YF.js +0 -2
- package/dist/chunks/RgfaTabixAdapter-XZRTWQMZ.js +0 -3
- package/dist/chunks/RgfaTabixAdapter-XZRTWQMZ.js.map +0 -7
- package/dist/chunks/WalkTabixSyntenyAdapter-WBHOZLAN.js +0 -2
- package/dist/chunks/WalkTabixSyntenyAdapter-WBHOZLAN.js.map +0 -7
- package/dist/chunks/chunk-BWP3XYKD.js +0 -2
- package/dist/chunks/chunk-BWP3XYKD.js.map +0 -7
- package/dist/chunks/chunk-EDSIYH4H.js +0 -2
- package/dist/chunks/chunk-EDSIYH4H.js.map +0 -7
- package/dist/chunks/chunk-III4GT4G.js +0 -2
- package/dist/chunks/chunk-III4GT4G.js.map +0 -7
- package/dist/chunks/chunk-N5GYTUIL.js +0 -3
- package/dist/chunks/chunk-N5GYTUIL.js.map +0 -7
- package/dist/chunks/chunk-PA4HKAUJ.js +0 -2
- package/dist/chunks/chunk-PA4HKAUJ.js.map +0 -7
- package/dist/chunks/chunk-PFAHNHMM.js +0 -2
- package/dist/chunks/chunk-PFAHNHMM.js.map +0 -7
- package/dist/chunks/chunk-UFQTIWSN.js +0 -4
- package/dist/chunks/chunk-UFQTIWSN.js.map +0 -7
- package/dist/chunks/chunk-VDHDEEMF.js +0 -2
- package/dist/chunks/chunk-VDHDEEMF.js.map +0 -7
- package/dist/chunks/chunk-WGVATZLM.js +0 -3
- package/dist/chunks/chunk-WGVATZLM.js.map +0 -7
- package/dist/chunks/chunk-ZNT7TQLN.js.map +0 -7
- package/src/RgfaTabixAdapter/rgfaBed.test.ts +0 -254
- package/src/RgfaTabixAdapter/rgfaBed.ts +0 -314
- package/src/RgfaTabixAdapter/rgfaCut.ts +0 -139
- package/src/RgfaTabixAdapter/walkRowRuns.test.ts +0 -192
- package/src/RgfaTabixAdapter/walkRowRuns.ts +0 -520
- /package/dist/chunks/{GraphGenomeView-4O5F5I37.js.map → GraphGenomeView-WJ3FIDY2.js.map} +0 -0
- /package/dist/chunks/{GraphTrackSettingsDialog-WZEJAF7F.js.map → GraphTrackSettingsDialog-ZW7ALMDV.js.map} +0 -0
- /package/dist/chunks/{HighlightColorDialog-SRT2FPXP.js.map → HighlightColorDialog-VBZRUKD5.js.map} +0 -0
- /package/dist/chunks/{LinearGraphDisplay-Z33PVCJL.js.map → LinearGraphDisplay-SPOPTJEN.js.map} +0 -0
- /package/dist/chunks/{chunk-JLGPQO5L.js.map → chunk-2O3YVA2I.js.map} +0 -0
- /package/dist/chunks/{renderSvg-RRWCAEGF.js.map → renderSvg-WD6YDV2I.js.map} +0 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../node_modules/.pnpm/@jbrowse+bandage-core@11.4.0/node_modules/@jbrowse/bandage-core/dist/chunks/chunk-EIY2SKD3.js", "../../node_modules/.pnpm/@jbrowse+bandage-core@11.4.0/node_modules/@jbrowse/bandage-core/dist/chunks/chunk-B5ARSBOH.js", "../../node_modules/.pnpm/@jbrowse+bandage-core@11.4.0/node_modules/@jbrowse/bandage-core/dist/chunks/chunk-M75QPZNJ.js"],
|
|
4
|
+
"sourcesContent": ["// src/gfa/walkStops.ts\nvar START_STOP_TAG = \"ws\";\nvar END_STOP_TAG = \"we\";\nvar STOP_KINDS = [\"elsewhere\", \"break\", \"end\"];\nvar GAP_CAUSE_TEXT = {\n missing: \"not in the graph\",\n elsewhere: \"on nodes filed elsewhere\",\n unknown: \"gap, cause unknown\"\n};\nvar OUTSIDE_TEXT = \"outside the extracted subgraph\";\nfunction gapParts(bp, after, before) {\n if (!after && !before) {\n return [{ bp }];\n }\n const left = Math.min(after?.trimmed ?? 0, bp);\n const right = Math.min(before?.trimmed ?? 0, bp - left);\n let rest = bp - left - right;\n const lead = after?.kind === \"break\" ? Math.min(after.bp, rest) : 0;\n rest -= lead;\n const trail = before?.kind === \"break\" ? Math.min(before.bp, rest) : 0;\n rest -= trail;\n const elsewhere = [after, before].find((s) => s?.kind === \"elsewhere\");\n const parts = [\n { bp: left },\n { bp: lead, cause: \"missing\" },\n elsewhere?.kind === \"elsewhere\" ? { bp: rest, cause: \"elsewhere\", chunk: elsewhere.chunk } : { bp: rest, cause: \"unknown\" },\n { bp: trail, cause: \"missing\" },\n { bp: right }\n ];\n return parts.filter((part) => part.bp > 0);\n}\nfunction stopAt(table, i) {\n const bp = table.bp[i];\n const ref = table.chunkRefs[i];\n return stopOf(\n table.kindNames[table.kinds[i]],\n Number.isNaN(bp) ? void 0 : bp,\n table.trimmed[i],\n ref < 0 ? void 0 : { refName: table.chunkRefNames[ref], start: table.chunkStarts[i] }\n );\n}\nfunction stopOf(kind, bp, trimmed, chunk) {\n const cut = trimmed > 0 ? { trimmed } : {};\n if (kind === \"elsewhere\" && chunk) {\n return { kind, chunk, ...bp === void 0 ? {} : { bp }, ...cut };\n }\n if (kind === \"break\" && bp !== void 0) {\n return { kind, bp, ...chunk ? { chunk } : {}, ...cut };\n }\n return kind === \"end\" ? { kind, ...cut } : void 0;\n}\nfunction stopTag(stop) {\n const parts = [stop.kind];\n if (\"bp\" in stop && stop.bp !== void 0) {\n parts.push(`bp=${stop.bp}`);\n }\n if (stop.trimmed) {\n parts.push(`trimmed=${stop.trimmed}`);\n }\n if (\"chunk\" in stop && stop.chunk) {\n parts.push(`chunk=${stop.chunk.refName}:${stop.chunk.start}`);\n }\n return parts.join(\",\");\n}\nfunction parseStopTag(value) {\n const [kind, ...fields] = value.split(\",\");\n let bp;\n let trimmed = 0;\n let chunk;\n for (const field of fields) {\n if (field.startsWith(\"bp=\")) {\n bp = +field.slice(3);\n } else if (field.startsWith(\"trimmed=\")) {\n trimmed = +field.slice(8);\n } else if (field.startsWith(\"chunk=\")) {\n const at = field.lastIndexOf(\":\");\n chunk = { refName: field.slice(6, at), start: +field.slice(at + 1) };\n }\n }\n return stopOf(kind, bp, trimmed, chunk);\n}\nfunction stopFields(before, after) {\n return {\n ...before ? { before } : {},\n ...after ? { after } : {}\n };\n}\nfunction walkStopFields(tags) {\n const before = tags[START_STOP_TAG];\n const after = tags[END_STOP_TAG];\n return stopFields(\n typeof before === \"string\" ? parseStopTag(before) : void 0,\n typeof after === \"string\" ? parseStopTag(after) : void 0\n );\n}\nfunction walkStopTags(walks, p) {\n const tags = [];\n for (const [tag, table] of [\n [START_STOP_TAG, walks.before],\n [END_STOP_TAG, walks.after]\n ]) {\n const stop = table && stopAt(table, p);\n if (stop) {\n tags.push(`\t${tag}:Z:${stopTag(stop)}`);\n }\n }\n return tags.join(\"\");\n}\nvar StopColumns = class {\n constructor() {\n this.kinds = [];\n this.bp = [];\n this.trimmed = [];\n this.chunkRefs = [];\n this.chunkStarts = [];\n this.chunkRefNames = [];\n this.refIndex = /* @__PURE__ */ new Map();\n }\n push(stop) {\n this.kinds.push(STOP_KINDS.indexOf(stop.kind));\n this.bp.push(\"bp\" in stop && stop.bp !== void 0 ? stop.bp : NaN);\n this.trimmed.push(stop.trimmed ?? 0);\n const chunk = \"chunk\" in stop ? stop.chunk : void 0;\n if (chunk) {\n let ref = this.refIndex.get(chunk.refName);\n if (ref === void 0) {\n ref = this.chunkRefNames.length;\n this.refIndex.set(chunk.refName, ref);\n this.chunkRefNames.push(chunk.refName);\n }\n this.chunkRefs.push(ref);\n this.chunkStarts.push(chunk.start);\n } else {\n this.chunkRefs.push(-1);\n this.chunkStarts.push(NaN);\n }\n }\n table() {\n return {\n kinds: Uint8Array.from(this.kinds),\n kindNames: [...STOP_KINDS],\n bp: Float64Array.from(this.bp),\n trimmed: Float64Array.from(this.trimmed),\n chunkRefs: Int32Array.from(this.chunkRefs),\n chunkStarts: Float64Array.from(this.chunkStarts),\n chunkRefNames: this.chunkRefNames\n };\n }\n};\n\nexport {\n START_STOP_TAG,\n END_STOP_TAG,\n GAP_CAUSE_TEXT,\n OUTSIDE_TEXT,\n gapParts,\n stopAt,\n stopTag,\n parseStopTag,\n stopFields,\n walkStopFields,\n walkStopTags,\n StopColumns\n};\n", "import {\n stopAt,\n stopFields,\n walkStopTags\n} from \"./chunk-EIY2SKD3.js\";\nimport {\n PathVisits\n} from \"./chunk-ZPZ7GNBT.js\";\nimport {\n panSNFields,\n panSNSample\n} from \"./chunk-4XWZNPQ2.js\";\n\n// src/gfa/graphTables.ts\nfunction pLineName(name, start, end) {\n return start === 0 ? name : `${name}:${start}-${end}`;\n}\nfunction tablePath(w, p) {\n const walkName = w.names[p];\n const fields = panSNFields(walkName);\n const start = w.starts[p];\n return fields ? {\n name: `${fields.sample}#${fields.haplotype}#${fields.contig}`,\n start,\n ...fields,\n ...stopFields(\n w.before && stopAt(w.before, p),\n w.after && stopAt(w.after, p)\n )\n } : { name: pLineName(walkName, start, w.ends[p]), start };\n}\nfunction namesByList(lists, names, listCount, pathNames) {\n const starts = new Int32Array(listCount + 1);\n for (const list of lists) {\n starts[list + 1]++;\n }\n for (let i = 0; i < listCount; i++) {\n starts[i + 1] += starts[i];\n }\n const fill = starts.slice(0, listCount);\n const grouped = new Int32Array(lists.length);\n lists.forEach((list, i) => {\n grouped[fill[list]++] = names[i];\n });\n const listed = new Int32Array(pathNames.length).fill(-1);\n return Array.from({ length: listCount }, (_, list) => {\n const out = [];\n for (let i = starts[list]; i < starts[list + 1]; i++) {\n const k = grouped[i];\n if (listed[k] !== list) {\n listed[k] = list;\n out.push(pathNames[k]);\n }\n }\n return out;\n });\n}\nfunction tableNodeIds({ nodes: n, links: l, walks: w }) {\n const canonical = new Uint8Array(n.names.length);\n const claim = (node, reversed) => {\n if (canonical[node] === 0) {\n canonical[node] = reversed ? 2 : 1;\n }\n };\n for (let i = 0; i < l.from.length; i++) {\n claim(l.from[i], l.strands[i] & 1);\n claim(l.to[i], l.strands[i] & 2);\n }\n const stepCount = w.offsets[w.names.length] ?? 0;\n for (let s = 0; s < stepCount; s++) {\n claim(w.steps[s], w.reversed[s]);\n }\n return n.names.map(\n (segment, i) => `${segment}${canonical[i] === 2 ? \"-\" : \"+\"}`\n );\n}\nfunction graphFromTables({ nodes: n, links: l, walks: w }, name = \"Imported GFA\") {\n const count = n.names.length;\n const declared = n.lengths.length;\n const drawnWalks = [];\n for (let p = 0; p < w.names.length; p++) {\n if (w.offsets[p + 1] > w.offsets[p]) {\n drawnWalks.push(p);\n }\n }\n const traversals = new Int32Array(count);\n for (const node of w.steps.subarray(0, w.offsets[w.names.length])) {\n traversals[node]++;\n }\n const ids = tableNodeIds({ nodes: n, links: l, walks: w });\n const nodes = [];\n for (let i = 0; i < declared; i++) {\n const ref = n.refs[i];\n nodes.push({\n id: ids[i],\n name: n.names[i],\n length: n.lengths[i],\n depth: Math.max(traversals[i], 1),\n stable: ref < 0 ? void 0 : {\n refName: n.refNames[ref],\n start: n.starts[i],\n rank: n.ranks[i]\n },\n samples: void 0\n });\n }\n const edges = [];\n const neighbours = new Array(count);\n const pairList = (a, b) => {\n const near = neighbours[a];\n if (near) {\n for (let j = 0; j < near.length; j += 2) {\n if (near[j] === b) {\n return near[j + 1];\n }\n }\n }\n return void 0;\n };\n const addPair = (a, b, list) => {\n const near = neighbours[a];\n if (near) {\n near.push(b, list);\n } else {\n neighbours[a] = [b, list];\n }\n };\n const edgeLists = [];\n let lists = 0;\n for (let i = 0; i < l.from.length; i++) {\n const a = l.from[i];\n const b = l.to[i];\n edges.push({\n from: ids[a],\n to: ids[b],\n fromStrand: l.strands[i] & 1 ? \"-\" : \"+\",\n toStrand: l.strands[i] & 2 ? \"-\" : \"+\"\n });\n let list = pairList(a, b);\n if (list === void 0) {\n list = lists++;\n addPair(a, b, list);\n addPair(b, a, list);\n }\n edgeLists.push(list);\n }\n const adjacency = new Int32Array(count + 1);\n for (let a = 0; a < count; a++) {\n adjacency[a + 1] = adjacency[a] + (neighbours[a]?.length ?? 0) / 2;\n }\n const adjacentNode = new Int32Array(adjacency[count]);\n const adjacentList = new Int32Array(adjacency[count]);\n neighbours.forEach((near, a) => {\n for (let j = 0; j < near.length; j += 2) {\n adjacentNode[adjacency[a] + j / 2] = near[j];\n adjacentList[adjacency[a] + j / 2] = near[j + 1];\n }\n });\n const listOf = (a, b) => {\n for (let j = adjacency[a]; j < adjacency[a + 1]; j++) {\n if (adjacentNode[j] === b) {\n return adjacentList[j];\n }\n }\n return -1;\n };\n const nameIndex = /* @__PURE__ */ new Map();\n const pathNames = [];\n const crossedList = new Int32Array(w.offsets[w.names.length] ?? 0);\n const crossedName = new Int32Array(crossedList.length);\n let crossings = 0;\n const lastWalk = new Int32Array(lists).fill(-1);\n const paths = [];\n const anchorPaths = [];\n const totalSteps = w.offsets[w.names.length] ?? 0;\n const visitPath = new Int32Array(totalSteps);\n const visitStart = new Float64Array(totalSteps);\n const visitReversed = new Uint8Array(totalSteps);\n const fill = new Int32Array(count).fill(-1);\n const visitOrder = [];\n const blocks = [0];\n const pathSamples = [];\n const edgeNameIndex = /* @__PURE__ */ new Map();\n const edgeNames = [];\n for (const p of drawnWalks) {\n const head = tablePath(w, p);\n const { start, name: pathName } = head;\n const visitName = head.sample === void 0 ? w.names[p] : pathName;\n let named = nameIndex.get(visitName);\n if (named === void 0) {\n named = pathNames.length;\n nameIndex.set(visitName, named);\n pathNames.push(visitName);\n pathSamples.push(panSNSample(visitName));\n }\n let edgeNamed = edgeNameIndex.get(pathName);\n if (edgeNamed === void 0) {\n edgeNamed = edgeNames.length;\n edgeNameIndex.set(pathName, edgeNamed);\n edgeNames.push(pathName);\n }\n const visitSample = pathSamples[named];\n const first = w.offsets[p];\n const nodeIds = new Array(w.offsets[p + 1] - first);\n let pos = start;\n let prev = -1;\n for (let s = first; s < w.offsets[p + 1]; s++) {\n const node = w.steps[s];\n nodeIds[s - first] = ids[node];\n if (fill[node] === -1) {\n fill[node] = blocks.at(-1);\n blocks.push(fill[node] + traversals[node]);\n visitOrder.push(node);\n }\n const at = fill[node]++;\n visitPath[at] = named;\n visitStart[at] = pos;\n visitReversed[at] = w.reversed[s];\n pos += node < declared ? n.lengths[node] : 0;\n if (prev >= 0) {\n const list = listOf(prev, node);\n if (list >= 0 && lastWalk[list] !== p) {\n lastWalk[list] = p;\n crossedList[crossings] = list;\n crossedName[crossings++] = edgeNamed;\n }\n }\n prev = node;\n }\n paths.push({ ...head, nodeIds });\n anchorPaths.push({\n name: visitName,\n sample: visitSample,\n start,\n length: pos - start\n });\n }\n const listNames = namesByList(\n crossedList.subarray(0, crossings),\n crossedName,\n lists,\n edgeNames\n );\n edges.forEach((edge, i) => {\n const names = listNames[edgeLists[i]];\n if (names.length > 0) {\n edge.pathIds = names;\n }\n });\n const walked = drawnWalks.length > 0;\n return {\n name,\n nodes,\n edges,\n paths: walked ? paths : void 0,\n anchorPaths: walked ? anchorPaths : void 0,\n pathVisits: walked ? new PathVisits({\n segments: visitOrder.map((node) => n.names[node]),\n offsets: Int32Array.from(blocks),\n path: visitPath.subarray(0, blocks.at(-1)),\n start: visitStart.subarray(0, blocks.at(-1)),\n reversed: visitReversed.subarray(0, blocks.at(-1)),\n paths: pathNames,\n samples: pathSamples\n }) : void 0,\n anchoredBy: nodes.some((node) => node.stable) ? \"tags\" : void 0\n };\n}\nfunction graphTablesGFA({ nodes, links, walks }) {\n const { names } = nodes;\n const lines = [\"H\tVN:Z:1.1\"];\n for (let i = 0; i < nodes.lengths.length; i++) {\n const ref = nodes.refs[i];\n const stable = ref < 0 ? \"\" : `\tSN:Z:${nodes.refNames[ref]}\tSO:i:${nodes.starts[i]}\tSR:i:${nodes.ranks[i]}`;\n lines.push(`S\t${names[i]}\t*\tLN:i:${nodes.lengths[i]}${stable}`);\n }\n for (let i = 0; i < links.from.length; i++) {\n const strands = links.strands[i];\n lines.push(\n `L\t${names[links.from[i]]}\t${strands & 1 ? \"-\" : \"+\"}\t${names[links.to[i]]}\t${strands & 2 ? \"-\" : \"+\"}\t0M`\n );\n }\n for (let p = 0; p < walks.names.length; p++) {\n const name = walks.names[p];\n const fields = panSNFields(name);\n const start = walks.starts[p];\n const end = walks.ends[p];\n const steps = [];\n for (let s = walks.offsets[p]; s < walks.offsets[p + 1]; s++) {\n steps.push([names[walks.steps[s]], walks.reversed[s]]);\n }\n lines.push(\n fields ? `W\t${fields.sample}\t${fields.haplotype}\t${fields.contig}\t${start}\t${end}\t${steps.map(([id, rev]) => (rev ? \"<\" : \">\") + id).join(\"\")}${walkStopTags(walks, p)}` : `P\t${pLineName(name, start, end)}\t${steps.map(([id, rev]) => id + (rev ? \"-\" : \"+\")).join(\",\")}\t*`\n );\n }\n return lines.join(\"\\n\");\n}\n\nexport {\n tablePath,\n tableNodeIds,\n graphFromTables,\n graphTablesGFA\n};\n", "import {\n tableNodeIds,\n tablePath\n} from \"./chunk-B5ARSBOH.js\";\nimport {\n pathOrigin\n} from \"./chunk-B5X2RLJG.js\";\nimport {\n gapParts\n} from \"./chunk-EIY2SKD3.js\";\nimport {\n groupBy\n} from \"./chunk-BSOZW3FC.js\";\nimport {\n panSNContig,\n panSNSample\n} from \"./chunk-4XWZNPQ2.js\";\n\n// src/layout/walkRowRuns.ts\nvar RUN_ON_REFERENCE = 1;\nvar RUN_REVERSED = 2;\nvar RUN_GAP = 4;\nvar GAP_CAUSES = [void 0, \"missing\", \"elsewhere\", \"unknown\"];\nvar CAUSE_SHIFT = 3;\nvar causeFlags = (cause) => GAP_CAUSES.indexOf(cause) << CAUSE_SHIFT;\nfunction referenceOf(names, referencePath, rankZero) {\n return referencePath !== void 0 && names.includes(referencePath) ? referencePath : names.find((n) => rankZero.has(n)) ?? names[0];\n}\nfunction referenceWalkName(graph) {\n return referenceOf(\n (graph.paths ?? []).map((p) => pathOrigin(p.name).name),\n graph.referencePath,\n new Set(\n graph.nodes.flatMap(\n (n) => n.stable?.rank === 0 ? [n.stable.refName] : []\n )\n )\n );\n}\nfunction graphPieces(graph) {\n const index = /* @__PURE__ */ new Map();\n const names = [];\n const lengths = [];\n const indexOf = (id) => {\n let i = index.get(id);\n if (i === void 0) {\n i = names.length;\n index.set(id, i);\n names.push(id);\n lengths.push(0);\n }\n return i;\n };\n for (const node of graph.nodes) {\n lengths[indexOf(node.id)] = node.length;\n }\n const heads = graph.paths ?? [];\n const from = new Int32Array(heads.length);\n const to = new Int32Array(heads.length);\n const steps = [];\n heads.forEach((path, p) => {\n from[p] = steps.length;\n for (const id of path.nodeIds) {\n steps.push(indexOf(id));\n }\n to[p] = steps.length;\n });\n return {\n heads,\n from,\n to,\n steps,\n lengths,\n names,\n reference: referenceWalkName(graph)\n };\n}\nfunction tablePieces(tables, referencePath, visits) {\n const { nodes: n, walks: w } = tables;\n const kept = [];\n for (let p = 0; p < w.names.length; p++) {\n if (w.offsets[p + 1] > w.offsets[p]) {\n kept.push(p);\n }\n }\n const heads = kept.map((p) => tablePath(w, p));\n const rankZero = /* @__PURE__ */ new Set();\n for (let i = 0; i < n.lengths.length; i++) {\n if (n.refs[i] >= 0 && n.ranks[i] === 0) {\n rankZero.add(n.refNames[n.refs[i]]);\n }\n }\n return {\n heads,\n from: kept.map((p) => w.offsets[p]),\n to: kept.map((p) => w.offsets[p + 1]),\n steps: w.steps,\n lengths: n.lengths,\n // a visit names its node as the Graph does, which costs a pass over the\n // steps\n names: visits ? tableNodeIds(tables) : n.names,\n reference: referenceOf(\n heads.map((h) => pathOrigin(h.name).name),\n referencePath,\n rankZero\n )\n };\n}\nfunction sampleOf(path) {\n return path.sample ?? panSNSample(path.name);\n}\nfunction labelOf(path) {\n return path.haplotype !== void 0 && path.sample !== void 0 ? `${path.sample}#${path.haplotype}` : sampleOf(path);\n}\nvar Columns = class {\n constructor(width) {\n this.offsets = [0];\n this.values = Array.from({ length: width }, () => []);\n }\n get length() {\n return this.values[0].length;\n }\n push(...row) {\n row.forEach((v, i) => this.values[i].push(v));\n }\n endRow() {\n this.offsets.push(this.length);\n }\n // the rows in `order`, column i in the array `make[i]` makes\n reorder(order, make) {\n const columns = make.map((m) => m(this.length));\n const offsets = new Uint32Array(order.length + 1);\n let at = 0;\n order.forEach((row, i) => {\n for (let k = this.offsets[row]; k < this.offsets[row + 1]; k++, at++) {\n columns.forEach((column, c) => {\n column[at] = this.values[c][k];\n });\n }\n offsets[i + 1] = at;\n });\n return { offsets, columns };\n }\n};\nvar float64 = (n) => new Float64Array(n);\nfunction walkRowRuns(source, region, o = {}) {\n const {\n heads,\n from,\n to,\n steps: all,\n lengths,\n names,\n reference\n } = \"walks\" in source ? tablePieces(source, o.referencePath, o.visits) : graphPieces(source);\n const declared = lengths.length;\n const lengthOf = (node) => node < declared ? lengths[node] : 0;\n const nameOf = (p) => pathOrigin(heads[p].name).name;\n const startOf = (p) => heads[p].start;\n const byStart = (a, b) => (startOf(a) ?? 0) - (startOf(b) ?? 0);\n const pieceIds = heads.map((_, p) => p);\n const referencePieces = pieceIds.filter((p) => nameOf(p) === reference).sort(byStart);\n const first = referencePieces[0];\n const others = pieceIds.filter((p) => nameOf(p) !== reference);\n if (first === void 0 || others.length === 0) {\n return void 0;\n }\n const walks = groupBy(others, nameOf);\n const spanStart = new Float64Array(names.length).fill(Number.NaN);\n const spanEnd = new Float64Array(names.length);\n let reachesBefore = false;\n let reachesAfter = false;\n const cut = region && region.end > region.start ? region : void 0;\n for (const piece of referencePieces) {\n let pos = startOf(piece) ?? 0;\n for (let s = from[piece]; s < to[piece]; s++) {\n const node = all[s];\n const len = lengthOf(node);\n if (Number.isNaN(spanStart[node])) {\n spanStart[node] = pos;\n spanEnd[node] = pos + len;\n if (cut) {\n reachesBefore ||= pos + len <= cut.start;\n reachesAfter ||= pos >= cut.end;\n }\n }\n pos += len;\n }\n }\n const flanked = cut === void 0 || reachesBefore && reachesAfter;\n const runs = new Columns(5);\n const chunks = [];\n const chunkIndex = /* @__PURE__ */ new Map();\n const chunkOf = (chunk2) => {\n if (!chunk2) {\n return -1;\n }\n const key = `${chunk2.refName}:${chunk2.start}`;\n let i = chunkIndex.get(key);\n if (i === void 0) {\n i = chunks.length;\n chunkIndex.set(key, i);\n chunks.push(chunk2);\n }\n return i;\n };\n const visits = o.visits ? new Columns(4) : void 0;\n let steps = new Int32Array(0);\n let stepStart = new Float64Array(0);\n const rowOf = (pieces) => {\n const head = heads[pieces[0]];\n const ordered = [...pieces].sort(byStart);\n let count = ordered.length - 1;\n for (const piece of ordered) {\n count += to[piece] - from[piece];\n }\n if (count > steps.length) {\n steps = new Int32Array(count * 2);\n stepStart = new Float64Array(count * 2);\n }\n let length = 0;\n let unplaced = false;\n let end;\n let previous;\n const partsAt = /* @__PURE__ */ new Map();\n for (const piece of ordered) {\n const start2 = startOf(piece);\n if (start2 === void 0 || end !== void 0 && start2 < end) {\n unplaced = true;\n }\n if (end !== void 0 && start2 !== void 0 && start2 > end) {\n partsAt.set(\n length,\n gapParts(\n start2 - end,\n previous === void 0 ? void 0 : heads[previous].after,\n heads[piece].before\n )\n );\n steps[length] = -(start2 - end);\n stepStart[length++] = end;\n }\n let pos = start2 ?? 0;\n for (let s = from[piece]; s < to[piece]; s++) {\n const node = all[s];\n steps[length] = node;\n stepStart[length++] = pos;\n pos += lengthOf(node);\n }\n end = start2 === void 0 ? void 0 : pos;\n previous = piece;\n }\n const onReference = (i) => i >= 0 && i < length && steps[i] >= 0 && !Number.isNaN(spanStart[steps[i]]);\n const stepEnd = (i) => {\n const id = steps[i];\n return stepStart[i] + (id < 0 ? -id : lengthOf(id));\n };\n const partialSide = (i0, i1) => {\n const flank = i0 >= 0 ? i0 : i1;\n let near = -1;\n for (let d = 1; near < 0 && d < length; d++) {\n near = [flank - d, flank + d].find(onReference) ?? -1;\n }\n if (near < 0) {\n return void 0;\n }\n const forward = near > flank === spanStart[steps[near]] > spanStart[steps[flank]];\n const after = forward === (flank === i0);\n const last2 = after ? length - 1 : 0;\n const contigEnds = onReference(last2);\n const stop2 = {\n contigEnds,\n shortBp: contigEnds ? Math.max(\n 0,\n cut.start - spanEnd[steps[last2]],\n spanStart[steps[last2]] - cut.end\n ) : 0\n };\n return {\n stop: stop2,\n lo: after ? flank + 1 : 0,\n hi: after ? length : flank,\n backward: !forward,\n axisStart: forward ? after ? stepEnd(flank) : stepStart[0] : after ? stepEnd(length - 1) : stepStart[flank]\n };\n };\n let lo = 0;\n let hi = length;\n let backward = false;\n let complete = true;\n let flankFrom = -1;\n let flankTo = -1;\n let axisStart;\n let stop;\n if (cut && flanked) {\n let i0 = -1;\n let i1 = -1;\n let bestEnd = -Infinity;\n let bestStart = Infinity;\n for (let i = 0; i < length; i++) {\n if (onReference(i)) {\n const id = steps[i];\n if (spanEnd[id] <= cut.start && spanEnd[id] > bestEnd) {\n bestEnd = spanEnd[id];\n i0 = i;\n }\n if (spanStart[id] >= cut.end && spanStart[id] < bestStart) {\n bestStart = spanStart[id];\n i1 = i;\n }\n }\n }\n if (i0 < 0 || i1 < 0) {\n complete = false;\n const inside = i0 >= 0 || i1 >= 0 ? partialSide(i0, i1) : void 0;\n if (inside) {\n ;\n ({ lo, hi, backward, axisStart, stop } = inside);\n }\n } else {\n lo = Math.min(i0, i1) + 1;\n hi = Math.max(i0, i1);\n backward = i0 > i1;\n flankFrom = i0;\n flankTo = i1;\n }\n }\n const contig = head.contig ?? panSNContig(pathOrigin(head.name).name);\n const axis = unplaced || length === 0 ? void 0 : axisStart !== void 0 ? { contig, start: axisStart, reversed: backward } : flankFrom < 0 ? { contig, start: stepStart[0], reversed: false } : flankFrom < flankTo ? { contig, start: stepEnd(flankFrom), reversed: false } : { contig, start: stepStart[flankFrom], reversed: true };\n let bp2 = 0;\n let offReferenceBp = 0;\n let gapBp = 0;\n let step = 0;\n let last = -1;\n let lastFlags = 0;\n let lastRef = Number.NaN;\n const [, runBp, runRef, runFlags] = runs.values;\n for (let k = lo; k < hi; k++) {\n const index = backward ? hi - 1 - (k - lo) : k;\n const id = steps[index];\n if (id < 0) {\n const parts = partsAt.get(index);\n for (const part of backward ? [...parts].reverse() : parts) {\n runs.push(\n bp2,\n part.bp,\n Number.NaN,\n RUN_GAP | causeFlags(part.cause),\n chunkOf(part.chunk)\n );\n bp2 += part.bp;\n }\n last = runs.length - 1;\n lastFlags = RUN_GAP;\n lastRef = Number.NaN;\n gapBp += -id;\n step = 0;\n continue;\n }\n const len = lengthOf(id);\n const at = spanStart[id];\n const on = !Number.isNaN(at);\n visits?.push(id, bp2, len, on ? 1 : 0);\n const placed = last >= 0 && !Number.isNaN(lastRef);\n const forward = on && placed && step >= 0 && lastRef + (runBp[last] ?? 0) === at;\n const back = on && placed && step <= 0 && spanEnd[id] === lastRef;\n if (!on && last >= 0 && !(lastFlags & (RUN_ON_REFERENCE | RUN_GAP))) {\n runBp[last] += len;\n } else if (forward || back) {\n runBp[last] += len;\n if (!forward) {\n lastRef = at;\n runRef[last] = at;\n lastFlags |= RUN_REVERSED;\n runFlags[last] = lastFlags;\n }\n step = forward ? 1 : -1;\n } else {\n lastFlags = on ? RUN_ON_REFERENCE : 0;\n lastRef = on ? at : Number.NaN;\n runs.push(bp2, len, lastRef, lastFlags, -1);\n last = runs.length - 1;\n step = 0;\n }\n bp2 += len;\n if (!on) {\n offReferenceBp += len;\n }\n }\n runs.endRow();\n visits?.endRow();\n return {\n name: head.name,\n label: labelOf(head),\n sample: sampleOf(head),\n haplotype: head.haplotype,\n bp: bp2,\n offReferenceBp,\n gapBp,\n complete,\n stop,\n axis\n };\n };\n const referenceRow = rowOf(referencePieces);\n const rows = [...walks.values()].map((pieces, i) => ({\n meta: rowOf(pieces),\n row: i + 1\n }));\n rows.sort(\n (a, b) => Number(b.meta.complete) - Number(a.meta.complete) || b.meta.bp - a.meta.bp || a.meta.label.localeCompare(b.meta.label)\n );\n const order = [0, ...rows.map((r) => r.row)];\n const { offsets, columns } = runs.reorder(order, [\n float64,\n float64,\n float64,\n (n) => new Uint8Array(n),\n (n) => new Int32Array(n)\n ]);\n const [start, bp, referenceStart, flags, chunk] = columns;\n return {\n origin: cut ? cut.start : startOf(first) ?? 0,\n rows: [referenceRow, ...rows.map((r) => r.meta)],\n offsets,\n start,\n bp,\n referenceStart,\n flags,\n chunk,\n chunks,\n visits: visits && visitColumns(visits, order, names)\n };\n}\nfunction visitColumns(visits, order, names) {\n const { offsets, columns } = visits.reorder(order, [\n (n) => new Int32Array(n),\n float64,\n float64,\n (n) => new Uint8Array(n)\n ]);\n const [node, start, bp, onReference] = columns;\n return { offsets, node, start, bp, onReference, names };\n}\nfunction runAt(t, k) {\n const f = t.flags[k];\n const run = {\n start: t.start[k],\n bp: t.bp[k],\n onReference: (f & RUN_ON_REFERENCE) !== 0\n };\n if (f & RUN_GAP) {\n run.gap = true;\n const cause = GAP_CAUSES[f >> CAUSE_SHIFT & 3];\n if (cause) {\n run.cause = cause;\n }\n const chunk = t.chunks[t.chunk[k]];\n if (chunk) {\n run.chunk = chunk;\n }\n } else {\n run.referenceStart = Number.isNaN(t.referenceStart[k]) ? void 0 : t.referenceStart[k];\n }\n if (f & RUN_REVERSED) {\n run.reversed = true;\n }\n return run;\n}\nfunction visitsOf(v, row) {\n const out = [];\n for (let k = v.offsets[row]; k < v.offsets[row + 1]; k++) {\n out.push({\n node: v.names[v.node[k]],\n start: v.start[k],\n bp: v.bp[k],\n onReference: v.onReference[k] === 1\n });\n }\n return out;\n}\nfunction walkRowsOf(t, unit) {\n const rows = t.rows.map((meta, i) => {\n const runs = [];\n for (let k = t.offsets[i]; k < t.offsets[i + 1]; k++) {\n runs.push(runAt(t, k));\n }\n return {\n ...meta,\n runs,\n visits: t.visits && visitsOf(t.visits, i)\n };\n });\n return { origin: t.origin, unit, reference: rows[0], rows: rows.slice(1) };\n}\n\nexport {\n referenceWalkName,\n walkRowRuns,\n runAt,\n walkRowsOf\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["START_STOP_TAG", "END_STOP_TAG", "STOP_KINDS", "GAP_CAUSE_TEXT", "OUTSIDE_TEXT", "gapParts", "bp", "after", "before", "left", "right", "rest", "lead", "trail", "elsewhere", "s", "part", "stopAt", "table", "i", "ref", "stopOf", "kind", "trimmed", "chunk", "cut", "parseStopTag", "value", "kind", "fields", "bp", "trimmed", "chunk", "field", "at", "stopOf", "stopFields", "before", "after", "walkStopFields", "tags", "START_STOP_TAG", "END_STOP_TAG", "StopColumns", "stop", "STOP_KINDS", "chunk", "ref", "pLineName", "name", "start", "end", "tablePath", "w", "p", "walkName", "fields", "panSNFields", "stopFields", "stopAt", "namesByList", "lists", "names", "listCount", "pathNames", "starts", "list", "fill", "grouped", "i", "listed", "_", "out", "k", "tableNodeIds", "n", "l", "canonical", "claim", "node", "reversed", "stepCount", "s", "segment", "graphFromTables", "count", "declared", "drawnWalks", "traversals", "ids", "nodes", "ref", "edges", "neighbours", "pairList", "a", "b", "near", "j", "addPair", "edgeLists", "adjacency", "adjacentNode", "adjacentList", "listOf", "nameIndex", "crossedList", "crossedName", "crossings", "lastWalk", "paths", "anchorPaths", "totalSteps", "visitPath", "visitStart", "visitReversed", "visitOrder", "blocks", "pathSamples", "edgeNameIndex", "edgeNames", "head", "pathName", "visitName", "named", "panSNSample", "edgeNamed", "visitSample", "first", "nodeIds", "pos", "prev", "at", "listNames", "edge", "walked", "PathVisits", "RUN_ON_REFERENCE", "RUN_REVERSED", "RUN_GAP", "GAP_CAUSES", "CAUSE_SHIFT", "causeFlags", "cause", "referenceOf", "names", "referencePath", "rankZero", "referenceWalkName", "graph", "p", "pathOrigin", "n", "graphPieces", "index", "lengths", "indexOf", "id", "i", "node", "heads", "from", "to", "steps", "path", "tablePieces", "tables", "visits", "w", "kept", "tablePath", "tableNodeIds", "h", "sampleOf", "panSNSample", "labelOf", "Columns", "width", "row", "v", "order", "make", "columns", "m", "offsets", "at", "k", "column", "c", "float64", "walkRowRuns", "source", "region", "o", "all", "reference", "declared", "lengthOf", "nameOf", "startOf", "byStart", "a", "b", "pieceIds", "_", "referencePieces", "first", "others", "walks", "groupBy", "spanStart", "spanEnd", "reachesBefore", "reachesAfter", "cut", "piece", "pos", "s", "len", "flanked", "runs", "chunks", "chunkIndex", "chunkOf", "chunk2", "key", "stepStart", "rowOf", "pieces", "head", "ordered", "count", "length", "unplaced", "end", "previous", "partsAt", "start2", "gapParts", "onReference", "stepEnd", "partialSide", "i0", "i1", "flank", "near", "d", "forward", "after", "last2", "contigEnds", "lo", "hi", "backward", "complete", "flankFrom", "flankTo", "axisStart", "stop", "bestEnd", "bestStart", "inside", "contig", "panSNContig", "axis", "bp2", "offReferenceBp", "gapBp", "step", "last", "lastFlags", "lastRef", "runBp", "runRef", "runFlags", "parts", "part", "on", "placed", "back", "referenceRow", "rows", "r", "start", "bp", "referenceStart", "flags", "chunk", "visitColumns", "runAt", "f", "run", "visitsOf", "out", "walkRowsOf", "unit", "meta"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as p}from"./chunk-7HWHWPRW.js";function b(t,s,e){let n=t.get(s);n?n.push(e):t.set(s,[e])}function S(t,s,e){let n=t.get(s);n?n.add(e):t.set(s,new Set([e]))}function m(t,s){let e=new Map;for(let n of t)b(e,s(n),n);return e}function g(t,s){let e=0,n=t;for(;e<n;){let r=e+n>>1;s(r)?e=r+1:n=r}return e}var l=0;function _(t){return t.stable!==void 0}function w(t){return t.stable?.rank===l}function G(t){return t.stable!==void 0&&t.stable.rank>l}function U(t){return t.nodes.filter(w)}function C(t,s){return t.stable.start<s.end&&t.stable.start+t.length>s.start}function K(t){let s={};for(let e of t)s[e.id]=[{x:e.stable.start,y:0},{x:e.stable.start+e.length,y:0}];return s}function T(t,s){return g(t.length,e=>t[e].stable.start<s)}function y(t){let s=1/0,e=-1/0;for(let n of t)s=Math.min(s,n.stable.start),e=Math.max(e,n.stable.start+n.length);return e-s}function $(t,s){return s&&s.end>s.start?s.end-s.start:y(t)}var A=class{constructor(t){this.segments=t.segments,this.offsets=t.offsets,this.path=t.path,this.start=t.start,this.reversed=t.reversed,this.paths=t.paths,this.samples=t.samples,this.slots=new Map(this.segments.map((s,e)=>[s,e]))}static from(t){let s=new u;for(let[e,n]of t){s.declare(e);for(let r of n)s.add(e,r.path,r.sample,r.start,r.strand==="-")}return s.build()}get size(){return this.segments.length}slot(t){return this.slots.get(t)??-1}pathIndex(t){return this.paths.indexOf(t)}firstBy(t,s){for(let e=this.offsets[t];e<this.offsets[t+1];e++)if(this.path[e]===s)return e;return-1}replay(){let t=new Map;return(s,e)=>{if(s<0||e<0)return-1;let n=s*this.paths.length+e,r=this.offsets[s+1],a=t.get(n)??this.offsets[s];for(;a<r&&this.path[a]!==e;)a++;return t.set(n,a+1),a<r?a:-1}}filter(t,s=()=>!0){let e=this.paths.map(t),n=new u;return this.segments.forEach((r,a)=>{if(!s(r))return;let h=n.declare(r);for(let o=this.offsets[a];o<this.offsets[a+1];o++){let i=this.path[o];e[i]&&n.addAt(h,n.pathOf(this.paths[i],this.samples[i]),this.start[o],this.reversed[o]===1)}}),n.build()}strand(t){return this.reversed[t]?"-":"+"}visit(t){let s=this.path[t];return{path:this.paths[s],sample:this.samples[s],start:this.start[t],strand:this.strand(t)}}visitsAt(t){let s=[];for(let e=this.offsets[t];e<this.offsets[t+1];e++)s.push(this.visit(e));return s}get(t){let s=this.slot(t);return s<0?void 0:this.visitsAt(s)}has(t){return this.slots.has(t)}keys(){return this.segments[Symbol.iterator]()}*values(){for(let t=0;t<this.segments.length;t++)yield this.visitsAt(t)}*entries(){for(let t=0;t<this.segments.length;t++)yield[this.segments[t],this.visitsAt(t)]}[Symbol.iterator](){return this.entries()}},d=class{constructor(t){this.data=t,this.length=0}push(t){if(this.length===this.data.length){let s=new this.data.constructor(this.data.length*2);s.set(this.data),this.data=s}this.data[this.length++]=t}},u=class{constructor(){this.segments=[],this.slots=new Map,this.paths=[],this.samples=[],this.pathIndex=new Map,this.slot=new d(new Int32Array(1024)),this.path=new d(new Int32Array(1024)),this.start=new d(new Float64Array(1024)),this.reversed=new d(new Uint8Array(1024))}declare(t){let s=this.slots.get(t);return s===void 0&&(s=this.segments.length,this.slots.set(t,s),this.segments.push(t)),s}pathOf(t,s){let e=this.pathIndex.get(t);return e===void 0&&(e=this.paths.length,this.pathIndex.set(t,e),this.paths.push(t),this.samples.push(s)),e}add(t,s,e,n,r){this.addAt(this.declare(t),this.pathOf(s,e),n,r)}addAt(t,s,e,n){this.slot.push(t),this.path.push(s),this.start.push(e),this.reversed.push(n?1:0)}build(){let t=this.slot.length,s=this.segments.length,e=new Int32Array(s+1),n=this.slot.data;for(let i=0;i<t;i++)e[n[i]+1]++;for(let i=0;i<s;i++)e[i+1]+=e[i];let r=e.slice(0,s),a=new Int32Array(t),h=new Float64Array(t),o=new Uint8Array(t);for(let i=0;i<t;i++){let f=r[n[i]]++;a[f]=this.path.data[i],h[f]=this.start.data[i],o[f]=this.reversed.data[i]}return new A({segments:this.segments,offsets:e,path:a,start:h,reversed:o,paths:this.paths,samples:this.samples})}};var v=/:(\d+)-\d+$/,x=/^([^#]*#[^#]*#[^#[]*)#(\d+)(?:\[(\d+)-\d+\])?$/,E=/\[(\d+)-\d+\]$/;function I(t){let s=x.exec(t);if(s)return{name:s[1],start:+s[2]+ +(s[3]??0)};let e=v.exec(t)??E.exec(t);return e?{name:t.slice(0,e.index),start:+e[1]}:{name:t,start:0}}function Q(t,s){let e=[],n=new u;for(let r of t){let a=p(r.name),h=n.pathOf(r.name,a),o=r.start;for(let i of r.steps)n.addAt(n.declare(i.id),h,o,i.strand==="-"),o+=s(i.id);e.push({name:r.name,sample:a,start:r.start,length:o-r.start})}return{anchorPaths:e,pathVisits:n.build()}}function P(t,s){return t.find(n=>n.sample===s||n.name===s)??t[0]}var R=1;function O(t,s,e,n){let r=s.slot(t.name);if(r<0||s.offsets[r]===s.offsets[r+1])return t;let a=s.firstBy(r,e),h=a>=0?a:s.offsets[r];return{...t,stable:{refName:s.paths[s.path[h]],start:s.start[h],rank:a>=0?l:R,strand:s.strand(h)},samples:n(r)}}function k(t){let s=[...new Set(t.samples)].sort(),e=new Map(s.map((h,o)=>[h,o])),n=Int32Array.from(t.samples,h=>e.get(h)),r=new Uint8Array(s.length),a=new Int32Array(s.length);return h=>{let o=0;for(let f=t.offsets[h];f<t.offsets[h+1];f++){let c=n[t.path[f]];r[c]===0&&(r[c]=1,a[o++]=c)}let i;if(o===s.length)i=s,r.fill(0);else if(o*8<s.length){let f=a.subarray(0,o);f.forEach(c=>r[c]=0),i=Array.from(f.sort(),c=>s[c])}else{i=[];for(let f=0;f<s.length;f++)r[f]===1&&(r[f]=0,i.push(s[f]))}return i}}function N(t,s){let{anchorPaths:e,pathVisits:n}=t,r=e&&n?P(e,s):void 0;if(!r||!e||!n)return t;let a=k(n),h=n.pathIndex(r.name);return{...t,nodes:t.nodes.map(o=>O(o,n,h,a)),anchoredBy:"paths",referencePath:r.name}}function Y(t,s){if(t.anchoredBy!=="tags")return N(t,s);let e=F(t);return e?{...t,referencePath:e}:t}function F(t){let s=t.nodes.find(e=>e.stable?.rank===0)?.stable?.refName;return s!==void 0&&t.anchorPaths?.some(e=>e.name===s)?s:void 0}function Z(t,s){if(!t.anchorPaths)return;let e=new Map(t.nodes.map(a=>[a.id,a.length])),n=(a,h=a.length)=>{let o=0;for(let i=0;i<h;i++)o+=e.get(a[i])??0;return o},r=m(t.paths??[],a=>I(a.name).name);return t.anchorPaths.map(a=>{let h=r.get(a.name),o=h?.length===1?h[0]:void 0,i=o&&s.get(o.name);return o&&i?{...a,start:a.start+n(o.nodeIds,i.first),length:n(i.nodeIds)}:a})}export{b as a,S as b,m as c,g as d,l as e,_ as f,w as g,G as h,U as i,C as j,K as k,T as l,y as m,$ as n,A as o,d as p,u as q,I as r,Q as s,P as t,N as u,Y as v,Z as w};
|
|
2
|
+
//# sourceMappingURL=chunk-6MUBJVBG.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../node_modules/.pnpm/@jbrowse+bandage-core@11.4.0/node_modules/@jbrowse/bandage-core/dist/chunks/chunk-BSOZW3FC.js", "../../node_modules/.pnpm/@jbrowse+bandage-core@11.4.0/node_modules/@jbrowse/bandage-core/dist/chunks/chunk-HOAIOEI7.js", "../../node_modules/.pnpm/@jbrowse+bandage-core@11.4.0/node_modules/@jbrowse/bandage-core/dist/chunks/chunk-RJWPJCIB.js", "../../node_modules/.pnpm/@jbrowse+bandage-core@11.4.0/node_modules/@jbrowse/bandage-core/dist/chunks/chunk-ZPZ7GNBT.js", "../../node_modules/.pnpm/@jbrowse+bandage-core@11.4.0/node_modules/@jbrowse/bandage-core/dist/chunks/chunk-B5X2RLJG.js"],
|
|
4
|
+
"sourcesContent": ["// src/util/groups.ts\nfunction pushTo(map, key, value) {\n const list = map.get(key);\n if (list) {\n list.push(value);\n } else {\n map.set(key, [value]);\n }\n}\nfunction addTo(map, key, value) {\n const set = map.get(key);\n if (set) {\n set.add(value);\n } else {\n map.set(key, /* @__PURE__ */ new Set([value]));\n }\n}\nfunction groupBy(items, keyOf) {\n const groups = /* @__PURE__ */ new Map();\n for (const item of items) {\n pushTo(groups, keyOf(item), item);\n }\n return groups;\n}\n\nexport {\n pushTo,\n addTo,\n groupBy\n};\n", "// src/util/partitionPoint.ts\nfunction partitionPoint(n, pred) {\n let lo = 0;\n let hi = n;\n while (lo < hi) {\n const mid = lo + hi >> 1;\n if (pred(mid)) {\n lo = mid + 1;\n } else {\n hi = mid;\n }\n }\n return lo;\n}\n\nexport {\n partitionPoint\n};\n", "import {\n partitionPoint\n} from \"./chunk-HOAIOEI7.js\";\n\n// src/anchoredNodes.ts\nvar REFERENCE_RANK = 0;\nfunction isAnchored(node) {\n return node.stable !== void 0;\n}\nfunction isBackbone(node) {\n return node.stable?.rank === REFERENCE_RANK;\n}\nfunction isOffReference(node) {\n return node.stable !== void 0 && node.stable.rank > REFERENCE_RANK;\n}\nfunction backboneNodes(graph) {\n return graph.nodes.filter(isBackbone);\n}\nfunction overlapsWindow(node, window) {\n return node.stable.start < window.end && node.stable.start + node.length > window.start;\n}\nfunction backbonePositions(backbone) {\n const positions = {};\n for (const node of backbone) {\n positions[node.id] = [\n { x: node.stable.start, y: 0 },\n { x: node.stable.start + node.length, y: 0 }\n ];\n }\n return positions;\n}\nfunction firstNodeAtOrAfter(nodes, bp) {\n return partitionPoint(nodes.length, (i) => nodes[i].stable.start < bp);\n}\nfunction backboneSpan(backbone) {\n let min = Infinity;\n let max = -Infinity;\n for (const node of backbone) {\n min = Math.min(min, node.stable.start);\n max = Math.max(max, node.stable.start + node.length);\n }\n return max - min;\n}\nfunction referenceSpan(backbone, region) {\n return region && region.end > region.start ? region.end - region.start : backboneSpan(backbone);\n}\n\nexport {\n REFERENCE_RANK,\n isAnchored,\n isBackbone,\n isOffReference,\n backboneNodes,\n overlapsWindow,\n backbonePositions,\n firstNodeAtOrAfter,\n backboneSpan,\n referenceSpan\n};\n", "// src/pathVisits.ts\nvar PathVisits = class {\n constructor(columns) {\n this.segments = columns.segments;\n this.offsets = columns.offsets;\n this.path = columns.path;\n this.start = columns.start;\n this.reversed = columns.reversed;\n this.paths = columns.paths;\n this.samples = columns.samples;\n this.slots = new Map(this.segments.map((s, i) => [s, i]));\n }\n static from(entries) {\n const builder = new PathVisitsBuilder();\n for (const [segment, visits] of entries) {\n builder.declare(segment);\n for (const v of visits) {\n builder.add(segment, v.path, v.sample, v.start, v.strand === \"-\");\n }\n }\n return builder.build();\n }\n get size() {\n return this.segments.length;\n }\n // the segment's index into `segments` and `offsets`, -1 when unvisited\n slot(segment) {\n return this.slots.get(segment) ?? -1;\n }\n pathIndex(path) {\n return this.paths.indexOf(path);\n }\n // the first of `slot`'s visits by path `p`, -1 for none\n firstBy(slot, p) {\n for (let i = this.offsets[slot]; i < this.offsets[slot + 1]; i++) {\n if (this.path[i] === p) {\n return i;\n }\n }\n return -1;\n }\n // Paths' steps replayed in walk order against their visits: the k-th call\n // for one path and segment answers that path's k-th visit there, -1 past\n // its last. A walk in pieces lists its pieces in path order, so replaying\n // the pieces in order reads each step's own visit.\n replay() {\n const cursor = /* @__PURE__ */ new Map();\n return (slot, p) => {\n if (slot < 0 || p < 0) {\n return -1;\n }\n const key = slot * this.paths.length + p;\n const end = this.offsets[slot + 1];\n let at = cursor.get(key) ?? this.offsets[slot];\n while (at < end && this.path[at] !== p) {\n at++;\n }\n cursor.set(key, at + 1);\n return at < end ? at : -1;\n };\n }\n // the visits of paths `keepPath` accepts, at segments `keepSegment` does\n filter(keepPath, keepSegment = () => true) {\n const kept = this.paths.map(keepPath);\n const builder = new PathVisitsBuilder();\n this.segments.forEach((segment, s) => {\n if (!keepSegment(segment)) {\n return;\n }\n const slot = builder.declare(segment);\n for (let i = this.offsets[s]; i < this.offsets[s + 1]; i++) {\n const p = this.path[i];\n if (kept[p]) {\n builder.addAt(\n slot,\n builder.pathOf(this.paths[p], this.samples[p]),\n this.start[i],\n this.reversed[i] === 1\n );\n }\n }\n });\n return builder.build();\n }\n strand(i) {\n return this.reversed[i] ? \"-\" : \"+\";\n }\n visit(i) {\n const p = this.path[i];\n return {\n path: this.paths[p],\n sample: this.samples[p],\n start: this.start[i],\n strand: this.strand(i)\n };\n }\n visitsAt(slot) {\n const out = [];\n for (let i = this.offsets[slot]; i < this.offsets[slot + 1]; i++) {\n out.push(this.visit(i));\n }\n return out;\n }\n get(segment) {\n const slot = this.slot(segment);\n return slot < 0 ? void 0 : this.visitsAt(slot);\n }\n has(segment) {\n return this.slots.has(segment);\n }\n keys() {\n return this.segments[Symbol.iterator]();\n }\n *values() {\n for (let s = 0; s < this.segments.length; s++) {\n yield this.visitsAt(s);\n }\n }\n *entries() {\n for (let s = 0; s < this.segments.length; s++) {\n yield [this.segments[s], this.visitsAt(s)];\n }\n }\n [Symbol.iterator]() {\n return this.entries();\n }\n};\nvar Column = class {\n constructor(data) {\n this.data = data;\n this.length = 0;\n }\n push(value) {\n if (this.length === this.data.length) {\n const grown = new this.data.constructor(\n this.data.length * 2\n );\n grown.set(this.data);\n this.data = grown;\n }\n this.data[this.length++] = value;\n }\n};\nvar PathVisitsBuilder = class {\n constructor() {\n this.segments = [];\n this.slots = /* @__PURE__ */ new Map();\n this.paths = [];\n this.samples = [];\n this.pathIndex = /* @__PURE__ */ new Map();\n this.slot = new Column(new Int32Array(1024));\n this.path = new Column(new Int32Array(1024));\n this.start = new Column(new Float64Array(1024));\n this.reversed = new Column(new Uint8Array(1024));\n }\n // a segment's place in iteration order, though it has no visits yet\n declare(segment) {\n let s = this.slots.get(segment);\n if (s === void 0) {\n s = this.segments.length;\n this.slots.set(segment, s);\n this.segments.push(segment);\n }\n return s;\n }\n // a path's index, so a caller adding many of its visits names it once\n pathOf(path, sample) {\n let p = this.pathIndex.get(path);\n if (p === void 0) {\n p = this.paths.length;\n this.pathIndex.set(path, p);\n this.paths.push(path);\n this.samples.push(sample);\n }\n return p;\n }\n add(segment, path, sample, start, reversed) {\n this.addAt(\n this.declare(segment),\n this.pathOf(path, sample),\n start,\n reversed\n );\n }\n addAt(slot, path, start, reversed) {\n this.slot.push(slot);\n this.path.push(path);\n this.start.push(start);\n this.reversed.push(reversed ? 1 : 0);\n }\n build() {\n const n = this.slot.length;\n const segments = this.segments.length;\n const offsets = new Int32Array(segments + 1);\n const slot = this.slot.data;\n for (let i = 0; i < n; i++) {\n offsets[slot[i] + 1]++;\n }\n for (let s = 0; s < segments; s++) {\n offsets[s + 1] += offsets[s];\n }\n const fill = offsets.slice(0, segments);\n const path = new Int32Array(n);\n const start = new Float64Array(n);\n const reversed = new Uint8Array(n);\n for (let i = 0; i < n; i++) {\n const at = fill[slot[i]]++;\n path[at] = this.path.data[i];\n start[at] = this.start.data[i];\n reversed[at] = this.reversed.data[i];\n }\n return new PathVisits({\n segments: this.segments,\n offsets,\n path,\n start,\n reversed,\n paths: this.paths,\n samples: this.samples\n });\n }\n};\n\nexport {\n PathVisits,\n Column,\n PathVisitsBuilder\n};\n", "import {\n PathVisitsBuilder\n} from \"./chunk-ZPZ7GNBT.js\";\nimport {\n groupBy\n} from \"./chunk-BSOZW3FC.js\";\nimport {\n REFERENCE_RANK\n} from \"./chunk-RJWPJCIB.js\";\nimport {\n panSNSample\n} from \"./chunk-4XWZNPQ2.js\";\n\n// src/pathAnchoring.ts\nvar RANGE_SUFFIX = /:(\\d+)-\\d+$/;\nvar VG_FRAGMENT = /^([^#]*#[^#]*#[^#[]*)#(\\d+)(?:\\[(\\d+)-\\d+\\])?$/;\nvar VG_SUBRANGE = /\\[(\\d+)-\\d+\\]$/;\nfunction pathOrigin(pathName) {\n const fragment = VG_FRAGMENT.exec(pathName);\n if (fragment) {\n return { name: fragment[1], start: +fragment[2] + +(fragment[3] ?? 0) };\n }\n const match = RANGE_SUFFIX.exec(pathName) ?? VG_SUBRANGE.exec(pathName);\n return match ? { name: pathName.slice(0, match.index), start: +match[1] } : { name: pathName, start: 0 };\n}\nfunction surveyPaths(paths, lengthOf) {\n const anchorPaths = [];\n const visits = new PathVisitsBuilder();\n for (const path of paths) {\n const sample = panSNSample(path.name);\n const p = visits.pathOf(path.name, sample);\n let pos = path.start;\n for (const step of path.steps) {\n visits.addAt(visits.declare(step.id), p, pos, step.strand === \"-\");\n pos += lengthOf(step.id);\n }\n anchorPaths.push({\n name: path.name,\n sample,\n start: path.start,\n length: pos - path.start\n });\n }\n return { anchorPaths, pathVisits: visits.build() };\n}\nfunction chooseReferencePath(anchorPaths, preferred) {\n const named = anchorPaths.find(\n (p) => p.sample === preferred || p.name === preferred\n );\n return named ?? anchorPaths[0];\n}\nvar OFF_REFERENCE_RANK = 1;\nfunction anchorNode(node, visits, reference, samplesOf) {\n const slot = visits.slot(node.name);\n if (slot < 0 || visits.offsets[slot] === visits.offsets[slot + 1]) {\n return node;\n }\n const own = visits.firstBy(slot, reference);\n const anchor = own >= 0 ? own : visits.offsets[slot];\n return {\n ...node,\n stable: {\n refName: visits.paths[visits.path[anchor]],\n start: visits.start[anchor],\n rank: own >= 0 ? REFERENCE_RANK : OFF_REFERENCE_RANK,\n strand: visits.strand(anchor)\n },\n samples: samplesOf(slot)\n };\n}\nfunction sampleSorter(visits) {\n const sorted = [...new Set(visits.samples)].sort();\n const rank = new Map(sorted.map((sample, i) => [sample, i]));\n const pathRank = Int32Array.from(visits.samples, (s) => rank.get(s));\n const seen = new Uint8Array(sorted.length);\n const ranks = new Int32Array(sorted.length);\n return (slot) => {\n let n = 0;\n for (let i = visits.offsets[slot]; i < visits.offsets[slot + 1]; i++) {\n const r = pathRank[visits.path[i]];\n if (seen[r] === 0) {\n seen[r] = 1;\n ranks[n++] = r;\n }\n }\n let out;\n if (n === sorted.length) {\n out = sorted;\n seen.fill(0);\n } else if (n * 8 < sorted.length) {\n const found = ranks.subarray(0, n);\n found.forEach((r) => seen[r] = 0);\n out = Array.from(found.sort(), (r) => sorted[r]);\n } else {\n out = [];\n for (let r = 0; r < sorted.length; r++) {\n if (seen[r] === 1) {\n seen[r] = 0;\n out.push(sorted[r]);\n }\n }\n }\n return out;\n };\n}\nfunction anchorFromPaths(graph, preferred) {\n const { anchorPaths, pathVisits } = graph;\n const reference = anchorPaths && pathVisits ? chooseReferencePath(anchorPaths, preferred) : void 0;\n if (!reference || !anchorPaths || !pathVisits) {\n return graph;\n }\n const samplesOf = sampleSorter(pathVisits);\n const referenceIndex = pathVisits.pathIndex(reference.name);\n return {\n ...graph,\n nodes: graph.nodes.map(\n (node) => anchorNode(node, pathVisits, referenceIndex, samplesOf)\n ),\n anchoredBy: \"paths\",\n referencePath: reference.name\n };\n}\nfunction anchorGraph(graph, preferred) {\n if (graph.anchoredBy !== \"tags\") {\n return anchorFromPaths(graph, preferred);\n }\n const referencePath = taggedReferencePath(graph);\n return referencePath ? { ...graph, referencePath } : graph;\n}\nfunction taggedReferencePath(graph) {\n const refName = graph.nodes.find((n) => n.stable?.rank === 0)?.stable?.refName;\n return refName !== void 0 && graph.anchorPaths?.some((p) => p.name === refName) ? refName : void 0;\n}\nfunction trimOrigins(graph, kept) {\n if (!graph.anchorPaths) {\n return void 0;\n }\n const lengthOf = new Map(graph.nodes.map((n) => [n.id, n.length]));\n const bp = (ids, end = ids.length) => {\n let sum = 0;\n for (let i = 0; i < end; i++) {\n sum += lengthOf.get(ids[i]) ?? 0;\n }\n return sum;\n };\n const byOrigin = groupBy(graph.paths ?? [], (p) => pathOrigin(p.name).name);\n return graph.anchorPaths.map((o) => {\n const pieces = byOrigin.get(o.name);\n const path = pieces?.length === 1 ? pieces[0] : void 0;\n const stretch = path && kept.get(path.name);\n return path && stretch ? {\n ...o,\n start: o.start + bp(path.nodeIds, stretch.first),\n length: bp(stretch.nodeIds)\n } : o;\n });\n}\n\nexport {\n pathOrigin,\n surveyPaths,\n chooseReferencePath,\n anchorFromPaths,\n anchorGraph,\n trimOrigins\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["pushTo", "map", "key", "value", "list", "addTo", "set", "groupBy", "items", "keyOf", "groups", "item", "partitionPoint", "n", "pred", "lo", "hi", "mid", "REFERENCE_RANK", "isAnchored", "node", "isBackbone", "isOffReference", "backboneNodes", "graph", "overlapsWindow", "window", "backbonePositions", "backbone", "positions", "firstNodeAtOrAfter", "nodes", "bp", "partitionPoint", "i", "backboneSpan", "min", "max", "referenceSpan", "region", "PathVisits", "columns", "i", "entries", "builder", "PathVisitsBuilder", "segment", "visits", "v", "path", "slot", "p", "cursor", "key", "end", "at", "keepPath", "keepSegment", "kept", "s", "out", "Column", "data", "value", "grown", "sample", "start", "reversed", "n", "segments", "offsets", "fill", "RANGE_SUFFIX", "VG_FRAGMENT", "VG_SUBRANGE", "pathOrigin", "pathName", "fragment", "match", "surveyPaths", "paths", "lengthOf", "anchorPaths", "visits", "PathVisitsBuilder", "path", "sample", "panSNSample", "p", "pos", "step", "chooseReferencePath", "preferred", "OFF_REFERENCE_RANK", "anchorNode", "node", "reference", "samplesOf", "slot", "own", "anchor", "REFERENCE_RANK", "sampleSorter", "sorted", "rank", "i", "pathRank", "s", "seen", "ranks", "n", "r", "out", "found", "anchorFromPaths", "graph", "pathVisits", "referenceIndex", "anchorGraph", "referencePath", "taggedReferencePath", "refName", "trimOrigins", "kept", "bp", "ids", "end", "sum", "byOrigin", "groupBy", "o", "pieces", "stretch"]
|
|
7
|
+
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
var e="#";function l(t){return t.split(e)[0]}var r=new Set(["_gbwt_ref"]);function p(t){return r.has(t)}function c(t){let n=t.split(e);return n.length>=3?`${n[0]}${e}${n[1]}`:void 0}function u(t){let n=t.split(e);return n.length>=3?n.slice(2).join(e):n.length===2?n[1]:t}function N(t){let[n="",o="",...s]=t.split(e);return s.length>0?{sample:n,haplotype:+o,contig:s.join(e)}:void 0}function S(t){let n=t.split(e),o=n.length>=2?Number(n[1]):Number.NaN;return{sample:n[0],haplotype:Number.isFinite(o)?o:void 0}}function f(t,n){return n!==void 0&&(t===n||t.startsWith(n+e))}function a(t){return t.getConf("assemblyNameToPanSN")??{}}function h(t,n){return n===void 0?void 0:a(t)[n]??n}var i=new WeakMap;function m(t){let n=i.get(t);if(n===void 0){let o=a(t);n={};for(let s of new Set([...Object.keys(o),...t.getConf("assemblyNames")]))n[o[s]??s]=s;i.set(t,n)}return n}export{l as a,p as b,c,u as d,N as e,S as f,f as g,h,m as i};
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
2
|
+
//# sourceMappingURL=chunk-7HWHWPRW.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../node_modules/.pnpm/@jbrowse+bandage-core@11.
|
|
3
|
+
"sources": ["../../node_modules/.pnpm/@jbrowse+bandage-core@11.4.0/node_modules/@jbrowse/bandage-core/dist/chunks/chunk-4XWZNPQ2.js"],
|
|
4
4
|
"sourcesContent": ["// src/pansn.ts\nvar SEP = \"#\";\nfunction panSNSample(refName) {\n return refName.split(SEP)[0];\n}\nvar GENERIC_SAMPLES = /* @__PURE__ */ new Set([\"_gbwt_ref\"]);\nfunction isGenericSample(sample) {\n return GENERIC_SAMPLES.has(sample);\n}\nfunction panSNHaplotype(refName) {\n const parts = refName.split(SEP);\n return parts.length >= 3 ? `${parts[0]}${SEP}${parts[1]}` : void 0;\n}\nfunction panSNContig(refName) {\n const parts = refName.split(SEP);\n return parts.length >= 3 ? parts.slice(2).join(SEP) : parts.length === 2 ? parts[1] : refName;\n}\nfunction panSNFields(name) {\n const [sample = \"\", haplotype = \"\", ...contig] = name.split(SEP);\n return contig.length > 0 ? { sample, haplotype: +haplotype, contig: contig.join(SEP) } : void 0;\n}\nfunction parsePanSN(refName) {\n const parts = refName.split(SEP);\n const haplotype = parts.length >= 2 ? Number(parts[1]) : Number.NaN;\n return {\n sample: parts[0],\n haplotype: Number.isFinite(haplotype) ? haplotype : void 0\n };\n}\nfunction panSNMatchesPrefix(refName, prefix) {\n return prefix !== void 0 && (refName === prefix || refName.startsWith(prefix + SEP));\n}\nfunction assemblyNameToPanSN(adapter) {\n return adapter.getConf(\"assemblyNameToPanSN\") ?? {};\n}\nfunction resolvePanSNPrefix(adapter, name) {\n return name === void 0 ? void 0 : assemblyNameToPanSN(adapter)[name] ?? name;\n}\nvar asmByPrefixCache = /* @__PURE__ */ new WeakMap();\nfunction assemblyByPanSNPrefix(adapter) {\n let out = asmByPrefixCache.get(adapter);\n if (out === void 0) {\n const map = assemblyNameToPanSN(adapter);\n out = {};\n for (const asm of /* @__PURE__ */ new Set([\n ...Object.keys(map),\n ...adapter.getConf(\"assemblyNames\")\n ])) {\n out[map[asm] ?? asm] = asm;\n }\n asmByPrefixCache.set(adapter, out);\n }\n return out;\n}\n\nexport {\n panSNSample,\n isGenericSample,\n panSNHaplotype,\n panSNContig,\n panSNFields,\n parsePanSN,\n panSNMatchesPrefix,\n resolvePanSNPrefix,\n assemblyByPanSNPrefix\n};\n"],
|
|
5
5
|
"mappings": "AACA,IAAIA,EAAM,IACV,SAASC,EAAYC,EAAS,CAC5B,OAAOA,EAAQ,MAAMF,CAAG,EAAE,CAAC,CAC7B,CACA,IAAIG,EAAkC,IAAI,IAAI,CAAC,WAAW,CAAC,EAC3D,SAASC,EAAgBC,EAAQ,CAC/B,OAAOF,EAAgB,IAAIE,CAAM,CACnC,CACA,SAASC,EAAeJ,EAAS,CAC/B,IAAMK,EAAQL,EAAQ,MAAMF,CAAG,EAC/B,OAAOO,EAAM,QAAU,EAAI,GAAGA,EAAM,CAAC,CAAC,GAAGP,CAAG,GAAGO,EAAM,CAAC,CAAC,GAAK,MAC9D,CACA,SAASC,EAAYN,EAAS,CAC5B,IAAMK,EAAQL,EAAQ,MAAMF,CAAG,EAC/B,OAAOO,EAAM,QAAU,EAAIA,EAAM,MAAM,CAAC,EAAE,KAAKP,CAAG,EAAIO,EAAM,SAAW,EAAIA,EAAM,CAAC,EAAIL,CACxF,CACA,SAASO,EAAYC,EAAM,CACzB,GAAM,CAACL,EAAS,GAAIM,EAAY,GAAI,GAAGC,CAAM,EAAIF,EAAK,MAAMV,CAAG,EAC/D,OAAOY,EAAO,OAAS,EAAI,CAAE,OAAAP,EAAQ,UAAW,CAACM,EAAW,OAAQC,EAAO,KAAKZ,CAAG,CAAE,EAAI,MAC3F,CACA,SAASa,EAAWX,EAAS,CAC3B,IAAMK,EAAQL,EAAQ,MAAMF,CAAG,EACzBW,EAAYJ,EAAM,QAAU,EAAI,OAAOA,EAAM,CAAC,CAAC,EAAI,OAAO,IAChE,MAAO,CACL,OAAQA,EAAM,CAAC,EACf,UAAW,OAAO,SAASI,CAAS,EAAIA,EAAY,MACtD,CACF,CACA,SAASG,EAAmBZ,EAASa,EAAQ,CAC3C,OAAOA,IAAW,SAAWb,IAAYa,GAAUb,EAAQ,WAAWa,EAASf,CAAG,EACpF,CACA,SAASgB,EAAoBC,EAAS,CACpC,OAAOA,EAAQ,QAAQ,qBAAqB,GAAK,CAAC,CACpD,CACA,SAASC,EAAmBD,EAASP,EAAM,CACzC,OAAOA,IAAS,OAAS,OAASM,EAAoBC,CAAO,EAAEP,CAAI,GAAKA,CAC1E,CACA,IAAIS,EAAmC,IAAI,QAC3C,SAASC,EAAsBH,EAAS,CACtC,IAAII,EAAMF,EAAiB,IAAIF,CAAO,EACtC,GAAII,IAAQ,OAAQ,CAClB,IAAMC,EAAMN,EAAoBC,CAAO,EACvCI,EAAM,CAAC,EACP,QAAWE,KAAuB,IAAI,IAAI,CACxC,GAAG,OAAO,KAAKD,CAAG,EAClB,GAAGL,EAAQ,QAAQ,eAAe,CACpC,CAAC,EACCI,EAAIC,EAAIC,CAAG,GAAKA,CAAG,EAAIA,EAEzBJ,EAAiB,IAAIF,EAASI,CAAG,CACnC,CACA,OAAOA,CACT",
|
|
6
6
|
"names": ["SEP", "panSNSample", "refName", "GENERIC_SAMPLES", "isGenericSample", "sample", "panSNHaplotype", "parts", "panSNContig", "panSNFields", "name", "haplotype", "contig", "parsePanSN", "panSNMatchesPrefix", "prefix", "assemblyNameToPanSN", "adapter", "resolvePanSNPrefix", "asmByPrefixCache", "assemblyByPanSNPrefix", "out", "map", "asm"]
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import{b as Ft}from"./chunk-MVVXRZXV.js";import{d as bt,g as De,h as qA}from"./chunk-7HWHWPRW.js";import{a as Rt,b as vt}from"./chunk-OGQ6OQDN.js";import{g as St}from"./chunk-NDRLCGPC.js";var aA=JBrowseExports["@jbrowse/core/data_adapters/BaseAdapter"],Jt=t=>aA!=null&&t in Object(aA)?aA[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 so=Jt("BaseFeatureDataAdapter");var Gt=Jt("cachedSetup");var ao=aA&&aA.__esModule?aA.default:aA;var gA=class extends Error{constructor(e,A,n,i){super(e),this.regionTooLarge=!0,this.name="NodeLimitError",this.limit=A,this.windowBp=n,this.fitsBp=i}},dA="#";function Ne(t){return t.split(dA)[0]}function ye(t){let e=t.split(dA);return e.length>=3?e.slice(2).join(dA):e.length===2?e[1]:t}function yA(t){let e=t.split(dA);return e.length>=3?`${e[0]}${dA}${e[1]}`:void 0}function ZA(t,e){return e!==void 0&&(t===e||t.startsWith(e+dA))}var Lt=t=>Number.parseFloat(t.toPrecision(3));function xA(t){let e=Lt(t/1e6);return e>=1?`${e.toLocaleString("en-US")}Mbp`:t>=1e3?`${Lt(t/1e3).toLocaleString("en-US")}Kbp`:`${Math.floor(t)}bp`}var G=t=>(t-(t&1))/2,P=t=>t&1?t-1:t+1;function bA(t,e,A){if(t===".")return A;let n=0,i=!1;for(let r=0;r<=t.length;r++){let o=r<t.length?t.charCodeAt(r):44;if(o===44){let a=i?-n:n,C=a&1;e.id+=(a-C)/2,A.push(e.id*2+C),n=0,i=!1}else o===45?i=!0:n=n*10+(o-48)}return A}function OA(t){return t==="."?[]:t.split(",").map(Number)}function XA(t,e){return t>P(e)?[P(e),P(t)]:[t,e]}function xe(t,e){let A=t.lastIndexOf(":");return{refName:t[3]==="Z"?t.slice(5,A):e,start:+t.slice(A+1)}}function Mt(t,e,A){let n={};for(let i=e;i<t.length;i++){let r=t[i],o=r.slice(0,2);if(o==="pv")n.prev=xe(r,A);else if(o==="nx")n.next=xe(r,A);else if(o==="pg"||o==="ng"){let a=o==="pg"?"prevRecord":"nextRecord";n[a]={...n[a],bp:+r.slice(5)}}else if(o==="pr"||o==="nr"){let a=o==="pr"?"prevRecord":"nextRecord";n[a]={bp:0,...n[a],chunk:xe(r,A)}}}return n}var be=class{constructor(){this.handles=[],this.before=[0],this.occurrences=new Map}add(e,A){for(let n=0;n<e.length;n++){let i=e[n],r=this.handles.length;this.handles.push(i),this.before.push(this.before[r]+A[n]);let o=G(i),a=this.occurrences.get(o);a?a.push(r):this.occurrences.set(o,[r])}}bp(e){return this.before[e]}first(e){var A;return(A=this.occurrences.get(G(e)))===null||A===void 0?void 0:A[0]}nearest(e,A){var n;let i;for(let r of(n=this.occurrences.get(G(e)))!==null&&n!==void 0?n:[])(i===void 0||Math.abs(r-A)<=Math.abs(i-A))&&(i=r);return i}reach(e,A,n){var i;let r=this.handles[e]===A,o;for(let a of(i=this.occurrences.get(G(n)))!==null&&i!==void 0?i:[])r&&a>=e&&this.handles[a]===n?(o===void 0||a<o)&&(o=a):!r&&a<=e&&P(this.handles[a])===n&&(o===void 0||a>o)&&(o=a);return o}handleAt(e,A){return A?this.handles[e]:P(this.handles[e])}},q=class extends Error{},Fe=(t,e)=>e?t.exit===-1?-1:P(t.exit):t.entry,Ut=(t,e)=>e?t.entry===-1?-1:P(t.entry):t.exit,PA=(t,e,A)=>e?P(t.interior[t.interior.length-1-A]):t.interior[A];function Mi(t){let e=[];if(t!=="."){let A=0,n=0,i=!1,r=0,o=!1;for(let a=0;a<=t.length;a++){let C=a<t.length?t.charCodeAt(a):44;if(C===44){let s=i?-n:n,g=o?r:s,f=g&1;A+=(g-f)/2,e.push(A,f,o?s:0),n=0,i=!1,o=!1}else C===58?(r=i?-n:n,n=0,i=!1,o=!0):C===45?i=!0:n=n*10+(C-48)}}return e}function Yt(t,e,A,n,i,r){let o=n.indexOf(":"),a=A+ +(o<0?n:n.slice(0,o)),C=o>=0,s=C?+n.slice(o+1):0,g=u=>{let d=e[u];if(!d)throw new q(`route ${u} is not in the chunk`);return d},f=0;if(i.length>0&&Fe(g(i[0]),i[1]===1)===-1){if(!r.route(i[0],i[1]===1))return;f=3}let h=A,Q=t.first(h);if(Q===void 0)throw new q("a walk row starts off its chunk");r.step(h);let E=(u,d)=>{let k=t.handles[Q]===h,p=C?Q+(k?d:-d):t.reach(Q,h,u);if(p===void 0||p<0||p>=t.handles.length)throw new q("a walk row runs off its chunk");p!==Q&&r.stretch(Q,p,k),Q=p,h=t.handleAt(p,k)};for(;f<i.length;f+=3){let u=i[f],d=i[f+1]===1,k=g(u),p=Fe(k,d);if(p===-1)throw new q("an open route after the first choice");if(E(p,i[f+2]),!r.route(u,d))return;let m=Ut(k,d);if(m===-1)return;if(h=m,Q=t.nearest(h,Q),Q===void 0)throw new q("a route lands off its chunk");r.step(h)}if(E(a,s),h!==a)throw new q("a walk row misses its last handle")}function _i(t,e,A,n,i){let r=new Int32Array(i),o=new Uint8Array(i),a=0,C=s=>{if(a>=i)throw new q("a walk row decodes to more steps than it states");r[a]=G(s),o[a++]=s&1};if(Yt(t,e,+A[9],A[10],n,{step:C,stretch(s,g,f){if(f)for(let h=s+1;h<=g;h++)C(t.handles[h]);else for(let h=s-1;h>=g;h--)C(P(t.handles[h]))},route(s,g){let f=e[s];for(let h=0;h<f.interior.length;h++)C(PA(f,g,h));return!0}}),a!==i)throw new q(`a walk row decodes to ${a} steps, not ${i}`);return{ids:r,rev:o}}function _t(t,e,A,n,i){let r=t.slice(e).find(a=>a.startsWith("SQ:Z:"));if(r===void 0)return;let o=5;for(let a=0;a<A.length;a++){let C=n[a];i.set(A[a],r.slice(o,o+C)),o+=C}}function Ht(t,e,A=!1){var n,i,r;let o=new be,a=new Map,C=[],s={sequences:new Map,rows:[],nodes:new Map,ends:[],chunk:{path:o,routes:C,walks:[],lengths:a}},g={id:0},f=t.filter(Q=>Q[3]==="ref").sort((Q,E)=>+Q[6]-+E[6]);for(let Q of f){let E=Q[0],u=bA(Q[9],{id:0},[]),d=OA(Q[10]),k=+Q[6];o.add(u,d),A&&_t(Q,11,u.map(G),d,s.sequences);let p=k;for(let m=0;m<u.length;m++){let I=G(u[m]),l=d[m];a.set(I,l),s.nodes.has(I)||s.nodes.set(I,{refName:Q[4],start:p,end:p+l,rank:0}),p+=l}s.ends.push({name:Q[4],fragStart:+Q[5],piece:+Q[7],first:u[0],last:u.at(-1)}),(e===void 0||e(Q[4]))&&s.rows.push({chunkStart:+Q[1],name:Q[4],fragStart:+Q[5],hapOffset:k,piece:+Q[7],n:u.length,steps:{ids:Int32Array.from(u,G),rev:Uint8Array.from(u,m=>m&1)},...Mt(Q,11,E)})}for(let Q of t)if(Q[3]==="nodes"){let E=OA(Q[4]),u=OA(Q[5]),d=0;for(let k=0;k<E.length;k++)d+=E[k],E[k]=d,a.set(d,u[k]);A&&_t(Q,6,E,u,s.sequences)}else if(Q[3]==="route"){let E=bA(Q[4],g,[]),u=bA(Q[5],g,[]),d=bA(Q[6],g,[]);C.push({entry:(n=E[0])!==null&&n!==void 0?n:-1,interior:u,exit:(i=d[0])!==null&&i!==void 0?i:-1})}let h=Q=>{let E=C[Q];if(!E)throw new q(`route ${Q} is not in the chunk`);return E};for(let Q of t){if(Q[3]!=="walk")continue;let E=Mi(Q[11]);s.chunk.walks.push({cols:Q,choices:E});let u=Q[4],d=+Q[9],k=Q[10],p=k.indexOf(":"),m=d,I=d+ +(p<0?k:k.slice(0,p));if(E.length>0){let l=h(E[0]),B=E[1]===1;Fe(l,B)===-1&&(m=PA(l,B,0));let c=E.length-3,w=h(E[c]),N=E[c+1]===1;Ut(w,N)===-1&&(I=PA(w,N,w.interior.length-1))}if(s.ends.push({name:u,fragStart:+Q[5],piece:+Q[7],first:m,last:I}),e===void 0||e(u)){let l=+Q[8];for(let B=0;B<E.length;B+=3)for(let c of h(E[B]).interior){let w=G(c);if(!s.nodes.has(w)){let N=(r=a.get(w))!==null&&r!==void 0?r:0;s.nodes.set(w,{refName:u,start:0,end:N,rank:1})}}s.rows.push({chunkStart:+Q[1],name:u,fragStart:+Q[5],hapOffset:+Q[6],piece:+Q[7],n:l,steps:_i(o,C,Q,E,l),...Mt(Q,12,Q[0])})}}return s}function Kt(t,e,A,n){let i=new Map;for(let{path:r,routes:o,walks:a,lengths:C}of t){let s=r.handles;for(let u=1;u<s.length;u++)e.has(G(s[u-1]))&&e.has(G(s[u]))&&n(...XA(s[u-1],s[u]));let g=new Uint8Array(o.length);for(let u=0;u<o.length;u++){let{entry:d,interior:k,exit:p}=o[u],m=!1,I=d;for(let l of k){let B=e.has(G(l));m||(m=B),B&&I!==-1&&e.has(G(I))&&n(...XA(I,l)),I=l}I!==-1&&p!==-1&&e.has(G(I))&&e.has(G(p))&&n(...XA(I,p)),g[u]=m?1:0}let f=u=>{var d;return(d=C.get(G(u)))!==null&&d!==void 0?d:0},h=new Float64Array(o.length).fill(-1),Q=u=>(h[u]<0&&(h[u]=o[u].interior.reduce((d,k)=>d+f(k),0)),h[u]),E=new Uint8Array(o.length);for(let{cols:u,choices:d}of a){let k=0;for(let I=0;I<d.length;I+=3){let l=d[I];g[l]&&!E[l]&&k++}if(k===0)continue;let p=u[4],m=+u[6];Yt(r,o,+u[9],u[10],d,{step(I){m+=f(I)},stretch(I,l,B){m+=B?r.bp(l+1)-r.bp(I+1):r.bp(I)-r.bp(l)},route(I,l){if(!g[I]||E[I])return m+=Q(I),!0;E[I]=1;let B=o[I];for(let c=0;c<B.interior.length;c++){let w=PA(B,l,c),N=G(w),D=f(w);if(e.has(N)){let y=i.get(N);(!y||p<y.refName||p===y.refName&&m<y.start)&&i.set(N,{refName:p,start:m,end:m+D,rank:1})}m+=D}return k--,k>0}})}}for(let[r,o]of i)A(r,o)}function Ui(t){let e=[];for(let A of t){if(A[3]!=="ref")continue;let n=bA(A[9],{id:0},[]),i=OA(A[10]),r=+A[6];for(let o=0;o<n.length;o++){let a=i[o];e.push({id:G(n[o]),refName:A[4],start:r,end:r+a,rank:0}),r+=a}}return e}function Tt(t){let e=new Map;for(let n of t){let i=`${n.name} ${n.fragStart}`,r=e.get(i);r||(r=new Map,e.set(i,r)),r.set(n.piece,n)}let A=[];for(let n of e.values())for(let[i,r]of n){let o=n.get(i+1);o&&A.push(XA(r.last,o.first))}return A}var qt=["elsewhere","break","end"];function Se(t,e){let A=new RegExp(`(?:^|\\t)${e}:i:(\\d+)`).exec(t);return A?+A[1]:void 0}function Re(t){var e,A,n;let i={references:[],haplotypes:[]};for(let r of t){let[o,a=""]=r.split(" ");o==="#reference"?i.references.push(a):o==="#haplotype"?i.haplotypes.push(a):((e=i.format)!==null&&e!==void 0||(i.format=Se(r,"format")),(A=i.chunk)!==null&&A!==void 0||(i.chunk=Se(r,"chunk")),(n=i.maxNode)!==null&&n!==void 0||(i.maxNode=Se(r,"maxnode")))}return i}function ve(t,e){return t===void 0?1:Math.max(1,Math.ceil(t/e))}function zA(t,e,A=1){return Math.max(0,(Math.floor(t/e)-A)*e)}function Xt(t,e){return t===void 0||t.length===0?void 0:A=>ZA(A,e)||t.some(n=>ZA(A,n))}function Je(t,e){var A;return Xt(t,(A=yA(e))!==null&&A!==void 0?A:e)}function jA(t){let e=new Map;for(let n of t){let i=`${n.name} ${n.fragStart}`,r=e.get(i);r?r.push(n):e.set(i,[n])}let A=[];for(let n of e.values()){n.sort((r,o)=>r.piece-o.piece);let i=0;for(let r=1;r<=n.length;r++)(r===n.length||n[r].piece!==n[r-1].piece+1)&&(A.push(Yi(n.slice(i,r))),i=r)}return A}function Yi(t){let e=t.reduce((a,C)=>a+C.n,0),A=new Int32Array(e),n=new Uint8Array(e),i=0;for(let a of t)A.set(a.steps.ids,i),n.set(a.steps.rev,i),i+=a.n;let r=t[0],o=t.at(-1);return{name:r.name,fragStart:r.fragStart,hapOffset:r.hapOffset,firstPiece:r.piece,ids:A,rev:n,prev:r.prev,next:o.next,prevRecord:r.prevRecord,nextRecord:o.nextRecord}}function WA(t,e,A){let n=I=>{var l;return((l=e.get(I))===null||l===void 0?void 0:l.onWindow)===!0},i=I=>{let l=e.get(I);return l?.rank===0?l:void 0},r=new Map,o=I=>{I&&r.set(`${I.refName}:${I.start}`,I)},a=(I,l,B)=>{let{ids:c}=I,w=l+B;for(;w>=0&&w<c.length&&i(c[w])===void 0;)w+=B;if(w<0||w>=c.length)return o(B<0?I.prev:I.next),w-B;let N=i(c[l]),D=i(c[w]);return D.refName!==A?w-B:w===l+B&&(D.start===N.end||D.end===N.start)?l:w},C=1/0,s=-1/0,g=[];for(let I of t){let{ids:l}=I,B=-1,c=-1;for(let w=0;w<l.length;w++)n(l[w])&&(B<0&&(B=w),c=w);if(B>=0){if(I.name!==A){B=a(I,B,-1),c=a(I,c,1);for(let w of[B,c]){let N=i(l[w]);N&&(C=Math.min(C,N.start),s=Math.max(s,N.end))}}g.push({run:I,first:B,last:c})}}let f=I=>{let l=i(I);return n(I)||l?.refName===A&&l.end>C&&l.start<s},h=new Set;for(let[I,l]of e)l.onWindow&&h.add(I);for(let I of g){let{ids:l}=I.run;if(I.run.name===A){for(;I.first>0&&f(l[I.first-1]);)I.first--;for(;I.last<l.length-1&&f(l[I.last+1]);)I.last++}for(let B=I.first;B<=I.last;B++)h.add(l[B])}let Q=I=>{let l=e.get(I);return l===void 0?0:l.end-l.start},E=(I,l,B)=>{let c=0;for(let w=l;w<B;w++)c+=Q(I[w]);return c},u=new Map;for(let I of t){let l=`${I.name} ${I.fragStart}`,B=u.get(l);B?B.push(I):u.set(l,[I])}let d=new Map;for(let I of u.values())I.sort((l,B)=>l.firstPiece-B.firstPiece),I.forEach((l,B)=>{d.set(l,[I[B-1],I[B+1]])});let k=I=>I.hapOffset+E(I.ids,0,I.ids.length),p=(I,l,B)=>{var c;let w=B>0?{trimmed:B}:{},N=l?I.next:I.prev;if(N){let y=(c=d.get(I))===null||c===void 0?void 0:c[l?1:0];return y?{kind:"elsewhere",chunk:N,bp:l?y.hapOffset-k(I):I.hapOffset-k(y),...w}:{kind:"elsewhere",chunk:N,...w}}let D=l?I.nextRecord:I.prevRecord;return D?{kind:"break",...D,...w}:{kind:"end",...w}},m=[];for(let{run:I,first:l,last:B}of g){let{ids:c,rev:w}=I,N=l,D=B;for(;N>0&&h.has(c[N-1]);)N--;for(;D<c.length-1&&h.has(c[D+1]);)D++;let y=I.hapOffset+E(c,0,N),x=y+E(c,N,D+1);m.push({name:I.name,fragStart:I.fragStart,hapStart:y,hapEnd:x,ids:c.subarray(N,D+1),rev:w.subarray(N,D+1),before:p(I,!1,y-I.hapOffset),after:p(I,!0,k(I)-x)})}return{kept:h,fragments:m,open:[...r.values()]}}function Zt(t){let e=[],A=new Map,n={kinds:new Uint8Array(t.length),kindNames:[...qt],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((i,r)=>{var o;if(n.kinds[r]=qt.indexOf(i.kind),n.trimmed[r]=(o=i.trimmed)!==null&&o!==void 0?o:0,"bp"in i&&i.bp!==void 0&&(n.bp[r]=i.bp),"chunk"in i&&i.chunk){let{refName:a,start:C}=i.chunk,s=A.get(a);s===void 0&&(s=e.length,A.set(a,s),e.push(a)),n.chunkRefs[r]=s,n.chunkStarts[r]=C}}),n}var FA=class{constructor(e){this.nodes=new Map,this.sequences=new Map,this.links=[],this.chunks=[],this.window=e}placeNode(e,A){if(this.nodes.has(e))return;let{window:n}=this;this.nodes.set(e,{...A,onWindow:A.rank===0&&A.refName===n.refName&&A.end>n.start-n.context&&A.start<n.end+n.context})}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){this.chunks.length>0&&Kt(this.chunks,e,(B,c)=>{let w=this.nodes.get(B);w&&this.nodes.set(B,{...w,...c})},(B,c)=>{this.links.push(B,c)});let n=[];for(let B of e){let c=this.nodes.get(B);c&&n.push({...c,id:B})}n.sort((B,c)=>B.refName<c.refName?-1:B.refName>c.refName?1:B.start-c.start||B.id-c.id);let i=new Map,r=[],o=[],a=new Map,C=new Int32Array(n.length),s=new Int32Array(n.length),g=new Float64Array(n.length),f=new Int32Array(n.length);n.forEach(({id:B,refName:c,start:w,end:N,rank:D},y)=>{i.set(B,y),r.push(String(B));let x=a.get(c);x===void 0&&(x=o.length,a.set(c,x),o.push(c)),C[y]=N-w,s[y]=x,g[y]=w,f[y]=D});let h=B=>{let c=i.get(B);return c===void 0&&(c=r.length,i.set(B,c),r.push(String(B))),c},Q=new Map;for(let B=0;B<this.links.length;B+=2){let c=this.links[B],w=this.links[B+1],N=Math.floor(c/2),D=Math.floor(w/2);e.has(N)&&e.has(D)&&Q.set(`${N} ${c%2?"-":"+"} ${D} ${w%2?"-":"+"}`,B)}let E=[...Q.keys()].sort(),u=new Int32Array(E.length),d=new Int32Array(E.length),k=new Uint8Array(E.length);E.forEach((B,c)=>{let w=Q.get(B),N=this.links[w],D=this.links[w+1];u[c]=h(Math.floor(N/2)),d[c]=h(Math.floor(D/2)),k[c]=N%2|D%2<<1});let p=this.referenceFirst(A),m=new Int32Array(p.length+1);p.forEach(({ids:B},c)=>{m[c+1]=m[c]+B.length});let I=new Int32Array(m[p.length]),l=new Uint8Array(I.length);return p.forEach(({ids:B,rev:c},w)=>{let N=m[w];for(let D=0;D<B.length;D++)I[N+D]=h(B[D]);l.set(c,N)}),{nodes:{names:r,lengths:C,refs:s,starts:g,ranks:f,refNames:o},links:{from:u,to:d,strands:k},walks:{names:p.map(B=>B.name),starts:Float64Array.from(p,B=>B.hapStart),ends:Float64Array.from(p,B=>B.hapEnd),offsets:m,steps:I,reversed:l,before:Zt(p.map(B=>B.before)),after:Zt(p.map(B=>B.after))}}}referenceFirst(e){let{refName:A}=this.window;return[...e].sort((n,i)=>+(i.name===A)-+(n.name===A)||(n.name<i.name?-1:n.name>i.name?1:n.hapStart-i.hapStart))}},Ge={steps:"the step budget",bytes:"a byte budget of"};function Le(t,e,A,n,i,r,o=Ge){var a;let C=0,s=new Map,g=new Set;for(let d of t)C+=d.n,s.set(d.chunkStart,((a=s.get(d.chunkStart))!==null&&a!==void 0?a:0)+d.n),g.add(d.name);let f=e*A;if(C<=f)return;let h=n.end-n.start,Q=0,E=0;for(let d of[...s.keys()].sort((k,p)=>k-p)){if(Q+=s.get(d),Q>f)break;E=Math.max(E,d+i-n.start)}let u=!r&&g.size>2&&2*C/g.size<=f;return new gA(E>0?`Zoom in to about ${xA(E)}${u?", or choose fewer haplotypes,":""} to see the graph`:`Too many haplotype steps here to draw ${r?"these haplotypes":"every haplotype"} (${Q.toLocaleString()} steps read, over ${A} \xD7 ${o.steps} of ${e.toLocaleString()}); choose fewer haplotypes`,f,h,Math.max(E,1))}function Me(t,e,A,n){let i=t.reduce((r,o)=>r+o.ids.length,0);return Pt(i,e,A,n)}function _e(t,e,A,n){return Pt(t,e,A,n)}function Pt(t,e,A,n){if(t<=e)return;let i=A.end-A.start,r=Math.max(1,Math.floor(i*e/t));return new gA(`Zoom in to about ${xA(r)}${n?"":", or choose fewer haplotypes,"} to see the graph`,e,i,r)}async function Ue(t,e,A,n,i=Ge){let r=await t(A.end);if(r<=e)return;let o=0,a;for(let s=Math.floor(A.start/n)*n;s<A.end;s+=n){let g=await t(s+1);if(a??(a=g),g>e)break;o=s+n-A.start}let C=A.end-A.start;return new gA(o>0?`Zoom in to about ${xA(o)} to see the graph`:`Too much graph here to fetch (${Ot(a??r)} against ${i.bytes} ${Ot(e)})`,e,C,Math.max(o,1))}var Ot=t=>`${(t/1e6).toFixed(1)} MB`;function Ye(t){var e;let A=t.split(" "),n=A.length>=8,i=n?5:0;return{anchored:n,segment:{refName:A[i],start:+A[i+1],end:+A[i+2],id:A[3],rank:+A[4],tags:(e=A[n?8:5])!==null&&e!==void 0?e:""}}}function Hi(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 zt(t){return{id:t.slice(0,-1),strand:t.slice(-1)}}function He(t){var e,A;let n=t.split(" "),i=zt(n[3]),r=zt(n[4]);return{source:i.id,sourceStrand:i.strand,target:r.id,targetStrand:r.strand,sourceSegment:{id:i.id,refName:n[5],start:+n[6],end:+n[7],rank:+n[8],tags:(e=n[13])!==null&&e!==void 0?e:""},targetSegment:{id:r.id,refName:n[9],start:+n[10],end:+n[11],rank:+n[12],tags:(A=n[14])!==null&&A!==void 0?A:""}}}function Ke(t){return`${t.source}${t.sourceStrand}${t.target}${t.targetStrand}`}function $A(t,e,A){e.set(Ke(A),A);let n=[];for(let i of[A.sourceSegment,A.targetSegment])t.has(i.id)||(t.set(i.id,i),n.push(i));return n}function Wt(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,i=new Map(t),r=new Map;for(let o of e)(t.has(o.source)||t.has(o.target)||n(o.sourceSegment)*n(o.targetSegment)===-1)&&$A(i,r,o);for(let o of e)i.has(o.source)&&i.has(o.target)&&r.set(Ke(o),o);return{segments:i,links:r}}function Vt(t,e,A){let n=i=>i.refName!==A.refName||i.end<=A.start||i.start>=A.end;return[...jt(t.filter(i=>i.rank>0),i=>e.has(i.id),A.end-A.start),...jt(t.filter(i=>i.rank===0&&n(i)),()=>!0,0)]}function jt(t,e,A){let n=[...t].sort((r,o)=>VA(r.refName,o.refName)||r.start-o.start),i=[];for(let r of n){let o=i.at(-1);o?.refName===r.refName&&r.start-o.end<=A?(o.needed||(o.needed=r.start>o.end||e(r)),o.end=Math.max(o.end,r.end)):i.push({refName:r.refName,start:r.start,end:r.end,needed:e(r)})}return i.filter(r=>r.needed).map(({refName:r,start:o,end:a})=>({refName:r,start:o,end:a}))}function $t(t,e,A){let n=i=>e.has(i.id)||A.some(r=>r.refName===i.refName&&i.start>=r.start&&i.end<=r.end);return t.filter(i=>n(i.sourceSegment)&&n(i.targetSegment))}var Ki=/^[A-Za-z][A-Za-z0-9]:[AifZJHB]:/;function Ti(t){let{id:e,refName:A,start:n,end:i,rank:r,tags:o}=t,a=o.split(" ").filter(s=>Ki.test(s)),C=a.length===0?"":` ${a.join(" ")}`;return`S ${e} * LN:i:${i-n} SN:Z:${A} SO:i:${n} SR:i:${r}${C}`}function qi(t){let{source:e,sourceStrand:A,target:n,targetStrand:i}=t;return`L ${e} ${A} ${n} ${i} 0M`}function VA(t,e){return t<e?-1:t>e?1:0}function Ae(t,e){let A=[...t.values()].sort((i,r)=>VA(i.refName,r.refName)||i.start-r.start||VA(i.id,r.id)),n=[...e.keys()].sort((i,r)=>VA(i,r));return["H VN:Z:1.0",...A.map(i=>Ti(i)),...n.map(i=>qi(e.get(i)))].join(`
|
|
2
|
+
`)}function Te(t,e){return`${t} ${e}`}function SA(t){let e=new Map;for(let A of t){e.set(A,A);let n=Ne(A);if(n!==A){let i=ye(A);e.set(Te(n,i),A);let r=yA(A);r!==void 0&&e.set(Te(r,i),A)}}return e}function RA(t,e,A){var n;return(n=t.get(Te(e,A)))!==null&&n!==void 0?n:t.get(A)}var Zi=8,Oi=3,Xi=4,Pi=1e3,zi={stepBudget:4e6,byteBudget:8e6},ee=class extends Error{constructor(){super(...arguments),this.name="WalkFormatError"}};function AA(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 An(t,e){return e?(e.throwIfAborted(),new Promise((A,n)=>{let i=()=>{n(e.reason instanceof Error?e.reason:new Error(String(e.reason)))};e.addEventListener("abort",i,{once:!0}),t.then(A,n).finally(()=>{e.removeEventListener("abort",i)})})):t}var qe=class{constructor(e){this.walks=e}header(e={}){if(!this.headerRead){let A=this.walks.getHeaderLines().then(n=>{var i,r;let o=Re(n);if(o.format!==3)throw new ee(`This walk file is format ${(i=o.format)!==null&&i!==void 0?i:1}; @jbrowse/graph-walks reads format 3, so rebuild it with gfa-to-tabix 1.1 or later`);let a=(r=o.chunk)!==null&&r!==void 0?r:65536;return{...o,chunk:a,lookback:ve(o.maxNode,a)}});A.catch(()=>{this.headerRead===A&&(this.headerRead=void 0)}),this.headerRead=A}return An(this.headerRead,e.signal)}referenceSequences(e={}){return this.walks.getReferenceSequenceNames(e)}async sequenceFor(e,A,n={}){if(!this.lookupRead){let r=this.walks.getReferenceSequenceNames().then(SA);r.catch(()=>{this.lookupRead===r&&(this.lookupRead=void 0)}),this.lookupRead=r}let i=await An(this.lookupRead,n.signal);return RA(i,e,A)}async queryStart(e,A={}){let{chunk:n,lookback:i}=await this.header(A);return zA(e,n,i)}async cut(e,A,n={}){var i;let{signal:r,keep:o,context:a=Pi,stepBudget:C=1/0,byteBudget:s=1/0,links:g=!0}=n,{chunk:f,lookback:h}=await this.header({signal:r}),Q=zA(A.start,f,h),E=(i=this.walks.bytesForRegions)===null||i===void 0?void 0:i.bind(this.walks),u=Number.isFinite(s)&&E!==void 0,d=async y=>u?E(y.map(x=>({refName:e,...x})),{signal:r}):0,k=u?await Ue(async y=>(AA(e,Q,y),d([{start:Q,end:y}])),s,A,f,n.budgetNames):void 0;if(k)throw k;let p=new AbortController,m=()=>{p.abort(r?.reason)};r?.throwIfAborted(),r?.addEventListener("abort",m,{once:!0});let I=[],l,B=new FA({refName:e,start:A.start,end:A.end,context:a,sequences:n.sequences}),c=new Set,w=[],N=async(y,x)=>{AA(e,y,x);let S=new Map;await this.walks.getLines(e,y,x,{signal:p.signal,lineCallback:F=>{let L=F.split(" "),J=+L[1],M=S.get(J);M?M.push(L):S.set(J,[L])}});for(let[F,L]of S){if(c.has(F))continue;c.add(F);let J=Ht(L,o,n.sequences);I.push(...J.rows);for(let[M,oA]of J.nodes)B.placeNode(M,oA);B.addSequences(J.sequences),B.addChunk(J.chunk),w.push(...J.ends)}if(g)for(let[F,L]of Tt(w))B.addLinkEnds(F,L)};try{await N(Q,A.end);let y=Le(I,C,Zi,A,f,o!==void 0,n.budgetNames);if(y)throw y;let x=Q,S=Math.floor((A.end-1)/f)*f,F=Xi*f,[L,J]=[x-F,S+F];l=WA(jA(I),B.nodes,e);let M=await d([{start:Q,end:A.end}]);for(let oA=0;oA<Oi;oA++){let X=l.open.filter(v=>v.refName===e&&v.start>=L&&v.start<=J).map(v=>v.start),sA=[{start:Math.min(x,...X),end:x},{start:S+f,end:Math.max(S,...X)+1}].filter(v=>v.end>v.start);if(sA.length===0||(M+=await d(sA),M>s))break;x=Math.min(x,...X),S=Math.max(S,...X),await Promise.all(sA.map(({start:v,end:hA})=>N(v,hA))),l=WA(jA(I),B.nodes,e)}}catch(y){throw p.abort(),y}finally{r?.removeEventListener("abort",m)}let D=Me(l.fragments,C,A,o!==void 0);if(D)throw D;return{graph:B,...l}}async cutRegion(e,A={}){var n;let{haplotypes:i,referenceSample:r,nodeLimit:o=1/0,...a}=A,{signal:C}=A,s=await this.header({signal:C}),g=(n=r??s.references[0])!==null&&n!==void 0?n:"",f=await this.sequenceFor(g,e.refName,{signal:C});if(f===void 0){let d=await this.referenceSequences({signal:C});throw new Error(`The walk file has no sequence ${e.refName} on ${g}; it holds ${d.slice(0,5).join(", ")}${d.length>5?", \u2026":""}`)}let{graph:h,kept:Q,fragments:E}=await this.cut(f,e,{...a,keep:Je(i,f)}),u=_e(Q.size,o,e,!!i?.length);if(u)throw u;return{tables:h.tables(Q,E),refName:f,sample:g}}};function en(t){return t.filter(e=>e.rank>0)}function tn(t,e,A,n,i){return AA(e,A,n),t.getLines(e,A,n,i)}async function Ze(t,e,A){let n=[];return await tn(t,e.refName,e.start,e.end,{signal:A,lineCallback:i=>{n.push(He(i))}}),n}async function ji(t,e,{hops:A=0,signal:n}={}){let i=new Map,r=new Map,o={anchored:!1};if(await tn(t.segments,e.refName,e.start,e.end,{signal:n,lineCallback:s=>{let g=Ye(s);o.anchored||(o.anchored=g.anchored),i.set(g.segment.id,g.segment)}}),o.anchored){let s=Wt(i,await Ze(t.links,e,n),e);return Ae(s.segments,s.links)}let a=async s=>(await Ze(t.links,s,n)).flatMap(g=>$A(i,r,g)),C=en(await a(e));for(let s=0;s<A;s++){let g=await Promise.all(C.map(a));C=en(g.flat())}if(A>0){let s=Vt([...i.values()],new Set(C.map(f=>f.id)),e),g=await Promise.all(s.map(f=>Ze(t.links,f,n)));for(let f of $t(g.flat(),i,s))$A(i,r,f)}return Ae(i,r)}async function Lo(t,e,A,n,i){return AA(e,A,n),t.getLines(e,A,n,i)}async function nn(t,e,A){for(let{refName:n,start:i,end:r}of e)AA(n,i,r);return t.bytesForRegions(e,A)}var Oe=0;var Xe=2;var vA=4;var eA=0,JA=1,rn=2;var on=-5;function Wi(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function sn(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)Wi(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 GA={arraySet:function(t,e,A,n,i){if(e.subarray&&t.subarray){t.set(e.subarray(A,A+n),i);return}for(var r=0;r<n;r++)t[i+r]=e[A+r]},flattenChunks:function(t){var e,A,n,i,r,o;for(n=0,e=0,A=t.length;e<A;e++)n+=t[e].length;for(o=new Uint8Array(n),i=0,e=0,A=t.length;e<A;e++)r=t[e],o.set(r,i),i+=r.length;return o},Buf8:function(t){return new Uint8Array(t)},Buf16:function(t){return new Uint16Array(t)},Buf32:function(t){return new Int32Array(t)}},LA={arraySet:function(t,e,A,n,i){for(var r=0;r<n;r++)t[i+r]=e[A+r]},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)}},uA=()=>{let t=typeof Uint8Array<"u"&&typeof Uint16Array<"u"&&typeof Int32Array<"u";return uA=()=>t,t},Z=(t,e,A,n,i)=>(Z=uA()?GA.arraySet:LA.arraySet,Z(t,e,A,n,i)),te=t=>(te=uA()?GA.flattenChunks:LA.flattenChunks,te(t)),z=t=>(z=uA()?GA.Buf8:LA.Buf8,z(t)),tA=t=>(tA=uA()?GA.Buf16:LA.Buf16,tA(t)),IA=t=>(IA=uA()?GA.Buf32:LA.Buf32,IA(t));var an=function(){let t=!0;try{String.fromCharCode.apply(null,[0])}catch{t=!1}return an=()=>t,t},gn=function(){let t=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{t=!1}return gn=()=>t,t},Pe=function(t){for(var e=z(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,Pe=n=>e[n],e[t]};function ze(t){var e,A,n,i,r,o=t.length,a=0;for(i=0;i<o;i++)A=t.charCodeAt(i),(A&64512)===55296&&i+1<o&&(n=t.charCodeAt(i+1),(n&64512)===56320&&(A=65536+(A-55296<<10)+(n-56320),i++)),a+=A<128?1:A<2048?2:A<65536?3:4;for(e=new Uint8Array(a),r=0,i=0;r<a;i++)A=t.charCodeAt(i),(A&64512)===55296&&i+1<o&&(n=t.charCodeAt(i+1),(n&64512)===56320&&(A=65536+(A-55296<<10)+(n-56320),i++)),A<128?e[r++]=A:A<2048?(e[r++]=192|A>>>6,e[r++]=128|A&63):A<65536?(e[r++]=224|A>>>12,e[r++]=128|A>>>6&63,e[r++]=128|A&63):(e[r++]=240|A>>>18,e[r++]=128|A>>>12&63,e[r++]=128|A>>>6&63,e[r++]=128|A&63);return e}function Vi(t,e){if(e<65534&&(t.subarray&&gn()||!t.subarray&&an()))return String.fromCharCode.apply(null,ne(t,e));for(var A="",n=0;n<e;n++)A+=String.fromCharCode(t[n]);return A}function In(t){for(var e=new Uint8Array(t.length),A=0,n=e.length;A<n;A++)e[A]=t.charCodeAt(A);return e}function Qn(t,e){var A,n,i,r,o=e||t.length,a=new Array(o*2);for(n=0,A=0;A<o;){if(i=t[A++],i<128){a[n++]=i;continue}if(r=Pe(i),r>4){a[n++]=65533,A+=r-1;continue}for(i&=r===2?31:r===3?15:7;r>1&&A<o;)i=i<<6|t[A++]&63,r--;if(r>1){a[n++]=65533;continue}i<65536?a[n++]=i:(i-=65536,a[n++]=55296|i>>10&1023,a[n++]=56320|i&1023)}return Vi(a,n)}function Cn(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+Pe(t[A])>e?A:e}function je(){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 MA(t,e,A,n){for(var i=t&65535|0,r=t>>>16&65535|0,o=0;A!==0;){o=A>2e3?2e3:A,A-=o;do i=i+e[n++]|0,r=r+i|0;while(--o);i%=65521,r%=65521}return i|r<<16|0}function $i(){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 cn=function(){let t=$i();return cn=()=>t,t};function U(t,e,A,n){var i=cn(),r=n+A;t^=-1;for(var o=n;o<r;o++)t=t>>>8^i[(t^e[o])&255];return t^-1}var ie=30,Ar=12;function We(t,e){var A,n,i,r,o,a,C,s,g,f,h,Q,E,u,d,k,p,m,I,l,B,c,w,N,D;A=t.state,n=t.next_in,N=t.input,i=n+(t.avail_in-5),r=t.next_out,D=t.output,o=r-(e-t.avail_out),a=r+(t.avail_out-257),C=A.dmax,s=A.wsize,g=A.whave,f=A.wnext,h=A.window,Q=A.hold,E=A.bits,u=A.lencode,d=A.distcode,k=(1<<A.lenbits)-1,p=(1<<A.distbits)-1;A:do{E<15&&(Q+=N[n++]<<E,E+=8,Q+=N[n++]<<E,E+=8),m=u[Q&k];e:for(;;){if(I=m>>>24,Q>>>=I,E-=I,I=m>>>16&255,I===0)D[r++]=m&65535;else if(I&16){l=m&65535,I&=15,I&&(E<I&&(Q+=N[n++]<<E,E+=8),l+=Q&(1<<I)-1,Q>>>=I,E-=I),E<15&&(Q+=N[n++]<<E,E+=8,Q+=N[n++]<<E,E+=8),m=d[Q&p];t:for(;;){if(I=m>>>24,Q>>>=I,E-=I,I=m>>>16&255,I&16){if(B=m&65535,I&=15,E<I&&(Q+=N[n++]<<E,E+=8,E<I&&(Q+=N[n++]<<E,E+=8)),B+=Q&(1<<I)-1,B>C){t.msg="invalid distance too far back",A.mode=ie;break A}if(Q>>>=I,E-=I,I=r-o,B>I){if(I=B-I,I>g&&A.sane){t.msg="invalid distance too far back",A.mode=ie;break A}if(c=0,w=h,f===0){if(c+=s-I,I<l){l-=I;do D[r++]=h[c++];while(--I);c=r-B,w=D}}else if(f<I){if(c+=s+f-I,I-=f,I<l){l-=I;do D[r++]=h[c++];while(--I);if(c=0,f<l){I=f,l-=I;do D[r++]=h[c++];while(--I);c=r-B,w=D}}}else if(c+=f-I,I<l){l-=I;do D[r++]=h[c++];while(--I);c=r-B,w=D}for(;l>2;)D[r++]=w[c++],D[r++]=w[c++],D[r++]=w[c++],l-=3;l&&(D[r++]=w[c++],l>1&&(D[r++]=w[c++]))}else{c=r-B;do D[r++]=D[c++],D[r++]=D[c++],D[r++]=D[c++],l-=3;while(l>2);l&&(D[r++]=D[c++],l>1&&(D[r++]=D[c++]))}}else if((I&64)===0){m=d[(m&65535)+(Q&(1<<I)-1)];continue t}else{t.msg="invalid distance code",A.mode=ie;break A}break}}else if((I&64)===0){m=u[(m&65535)+(Q&(1<<I)-1)];continue e}else if(I&32){A.mode=Ar;break A}else{t.msg="invalid literal/length code",A.mode=ie;break A}break}}while(n<i&&r<a);l=E>>3,n-=l,E-=l<<3,Q&=(1<<E)-1,t.next_in=n,t.next_out=r,t.avail_in=n<i?5+(i-n):5-(n-i),t.avail_out=r<a?257+(a-r):257-(r-a),A.hold=Q,A.bits=E}var wA=15,Bn=852,En=592,fn=0,Ve=1,ln=2,er=[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],tr=[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],nr=[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],ir=[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 QA(t,e,A,n,i,r,o,a){var C=a.bits,s=0,g=0,f=0,h=0,Q=0,E=0,u=0,d=0,k=0,p=0,m,I,l,B,c,w=null,N=0,D,y=tA(wA+1),x=tA(wA+1),S=null,F=0,L,J,M;for(s=0;s<=wA;s++)y[s]=0;for(g=0;g<n;g++)y[e[A+g]]++;for(Q=C,h=wA;h>=1&&y[h]===0;h--);if(Q>h&&(Q=h),h===0)return i[r++]=1<<24|64<<16|0,i[r++]=1<<24|64<<16|0,a.bits=1,0;for(f=1;f<h&&y[f]===0;f++);for(Q<f&&(Q=f),d=1,s=1;s<=wA;s++)if(d<<=1,d-=y[s],d<0)return-1;if(d>0&&(t===fn||h!==1))return-1;for(x[1]=0,s=1;s<wA;s++)x[s+1]=x[s]+y[s];for(g=0;g<n;g++)e[A+g]!==0&&(o[x[e[A+g]]++]=g);if(t===fn?(w=S=o,D=19):t===Ve?(w=er,N-=257,S=tr,F-=257,D=256):(w=nr,S=ir,D=-1),p=0,g=0,s=f,c=r,E=Q,u=0,l=-1,k=1<<Q,B=k-1,t===Ve&&k>Bn||t===ln&&k>En)return 1;for(;;){L=s-u,o[g]<D?(J=0,M=o[g]):o[g]>D?(J=S[F+o[g]],M=w[N+o[g]]):(J=96,M=0),m=1<<s-u,I=1<<E,f=I;do I-=m,i[c+(p>>u)+I]=L<<24|J<<16|M|0;while(I!==0);for(m=1<<s-1;p&m;)m>>=1;if(m!==0?(p&=m-1,p+=m):p=0,g++,--y[s]===0){if(s===h)break;s=e[A+o[g]]}if(s>Q&&(p&B)!==l){for(u===0&&(u=Q),c+=f,E=s-u,d=1<<E;E+u<h&&(d-=y[E+u],!(d<=0));)E++,d<<=1;if(k+=1<<E,t===Ve&&k>Bn||t===ln&&k>En)return 1;l=p&B,i[l]=Q<<24|E<<16|c-r|0}}return p!==0&&(i[c+p]=s-u<<24|64<<16|0),a.bits=Q,0}var rr=0,Tn=1,qn=2,hn=4,or=5,re=6,CA=0,sr=1,ar=2,Y=-2,Zn=-3,it=-4,gr=-5,dn=8,On=1,un=2,wn=3,pn=4,kn=5,mn=6,Dn=7,Nn=8,yn=9,xn=10,ae=11,j=12,$e=13,bn=14,At=15,Fn=16,Sn=17,Rn=18,vn=19,oe=20,se=21,Jn=22,Gn=23,Ln=24,Mn=25,_n=26,et=27,Un=28,Yn=29,R=30,rt=31,Ir=32,Qr=852,Cr=592;function Hn(t){return(t>>>24&255)+(t>>>8&65280)+((t&65280)<<8)+((t&255)<<24)}function cr(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=tA(320),this.work=tA(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function Br(t){var e;return!t||!t.state?Y:(e=t.state,t.total_in=t.total_out=e.total=0,t.msg="",e.wrap&&(t.adler=e.wrap&1),e.mode=On,e.last=0,e.havedict=0,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=IA(Qr),e.distcode=e.distdyn=IA(Cr),e.sane=1,e.back=-1,CA)}function Er(t){var e;return!t||!t.state?Y:(e=t.state,e.wsize=0,e.whave=0,e.wnext=0,Br(t))}function fr(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))?Y:(n.window!==null&&n.wbits!==e&&(n.window=null),n.wrap=A,n.wbits=e,Er(t))}function Xn(t,e){var A,n;return t?(n=new cr,t.state=n,n.window=null,A=fr(t,e),A!==CA&&(t.state=null),A):Y}var Kn=!0,tt,nt;function lr(t){if(Kn){var e;for(tt=IA(512),nt=IA(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(QA(Tn,t.lens,0,288,tt,0,t.work,{bits:9}),e=0;e<32;)t.lens[e++]=5;QA(qn,t.lens,0,32,nt,0,t.work,{bits:5}),Kn=!1}t.lencode=tt,t.lenbits=9,t.distcode=nt,t.distbits=5}function Pn(t,e,A,n){var i,r=t.state;return r.window===null&&(r.wsize=1<<r.wbits,r.wnext=0,r.whave=0,r.window=z(r.wsize)),n>=r.wsize?(Z(r.window,e,A-r.wsize,r.wsize,0),r.wnext=0,r.whave=r.wsize):(i=r.wsize-r.wnext,i>n&&(i=n),Z(r.window,e,A-n,i,r.wnext),n-=i,n?(Z(r.window,e,A-n,n,0),r.wnext=n,r.whave=r.wsize):(r.wnext+=i,r.wnext===r.wsize&&(r.wnext=0),r.whave<r.wsize&&(r.whave+=i))),0}function zn(t,e){var A,n,i,r,o,a,C,s,g,f,h,Q,E,u,d=0,k,p,m,I,l,B,c,w,N=z(4),D,y,x=[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 Y;A=t.state,A.mode===j&&(A.mode=$e),o=t.next_out,i=t.output,C=t.avail_out,r=t.next_in,n=t.input,a=t.avail_in,s=A.hold,g=A.bits,f=a,h=C,w=CA;A:for(;;)switch(A.mode){case On:if(A.wrap===0){A.mode=$e;break}for(;g<16;){if(a===0)break A;a--,s+=n[r++]<<g,g+=8}if(A.wrap&2&&s===35615){A.check=0,N[0]=s&255,N[1]=s>>>8&255,A.check=U(A.check,N,2,0),s=0,g=0,A.mode=un;break}if(A.flags=0,A.head&&(A.head.done=!1),!(A.wrap&1)||(((s&255)<<8)+(s>>8))%31){t.msg="incorrect header check",A.mode=R;break}if((s&15)!==dn){t.msg="unknown compression method",A.mode=R;break}if(s>>>=4,g-=4,c=(s&15)+8,A.wbits===0)A.wbits=c;else if(c>A.wbits){t.msg="invalid window size",A.mode=R;break}A.dmax=1<<c,t.adler=A.check=1,A.mode=s&512?xn:j,s=0,g=0;break;case un:for(;g<16;){if(a===0)break A;a--,s+=n[r++]<<g,g+=8}if(A.flags=s,(A.flags&255)!==dn){t.msg="unknown compression method",A.mode=R;break}if(A.flags&57344){t.msg="unknown header flags set",A.mode=R;break}A.head&&(A.head.text=s>>8&1),A.flags&512&&(N[0]=s&255,N[1]=s>>>8&255,A.check=U(A.check,N,2,0)),s=0,g=0,A.mode=wn;case wn:for(;g<32;){if(a===0)break A;a--,s+=n[r++]<<g,g+=8}A.head&&(A.head.time=s),A.flags&512&&(N[0]=s&255,N[1]=s>>>8&255,N[2]=s>>>16&255,N[3]=s>>>24&255,A.check=U(A.check,N,4,0)),s=0,g=0,A.mode=pn;case pn:for(;g<16;){if(a===0)break A;a--,s+=n[r++]<<g,g+=8}A.head&&(A.head.xflags=s&255,A.head.os=s>>8),A.flags&512&&(N[0]=s&255,N[1]=s>>>8&255,A.check=U(A.check,N,2,0)),s=0,g=0,A.mode=kn;case kn:if(A.flags&1024){for(;g<16;){if(a===0)break A;a--,s+=n[r++]<<g,g+=8}A.length=s,A.head&&(A.head.extra_len=s),A.flags&512&&(N[0]=s&255,N[1]=s>>>8&255,A.check=U(A.check,N,2,0)),s=0,g=0}else A.head&&(A.head.extra=null);A.mode=mn;case mn:if(A.flags&1024&&(Q=A.length,Q>a&&(Q=a),Q&&(A.head&&(c=A.head.extra_len-A.length,A.head.extra||(A.head.extra=new Array(A.head.extra_len)),Z(A.head.extra,n,r,Q,c)),A.flags&512&&(A.check=U(A.check,n,Q,r)),a-=Q,r+=Q,A.length-=Q),A.length))break A;A.length=0,A.mode=Dn;case Dn:if(A.flags&2048){if(a===0)break A;Q=0;do c=n[r+Q++],A.head&&c&&A.length<65536&&(A.head.name+=String.fromCharCode(c));while(c&&Q<a);if(A.flags&512&&(A.check=U(A.check,n,Q,r)),a-=Q,r+=Q,c)break A}else A.head&&(A.head.name=null);A.length=0,A.mode=Nn;case Nn:if(A.flags&4096){if(a===0)break A;Q=0;do c=n[r+Q++],A.head&&c&&A.length<65536&&(A.head.comment+=String.fromCharCode(c));while(c&&Q<a);if(A.flags&512&&(A.check=U(A.check,n,Q,r)),a-=Q,r+=Q,c)break A}else A.head&&(A.head.comment=null);A.mode=yn;case yn:if(A.flags&512){for(;g<16;){if(a===0)break A;a--,s+=n[r++]<<g,g+=8}if(s!==(A.check&65535)){t.msg="header crc mismatch",A.mode=R;break}s=0,g=0}A.head&&(A.head.hcrc=A.flags>>9&1,A.head.done=!0),t.adler=A.check=0,A.mode=j;break;case xn:for(;g<32;){if(a===0)break A;a--,s+=n[r++]<<g,g+=8}t.adler=A.check=Hn(s),s=0,g=0,A.mode=ae;case ae:if(A.havedict===0)return t.next_out=o,t.avail_out=C,t.next_in=r,t.avail_in=a,A.hold=s,A.bits=g,ar;t.adler=A.check=1,A.mode=j;case j:if(e===or||e===re)break A;case $e:if(A.last){s>>>=g&7,g-=g&7,A.mode=et;break}for(;g<3;){if(a===0)break A;a--,s+=n[r++]<<g,g+=8}switch(A.last=s&1,s>>>=1,g-=1,s&3){case 0:A.mode=bn;break;case 1:if(lr(A),A.mode=oe,e===re){s>>>=2,g-=2;break A}break;case 2:A.mode=Sn;break;case 3:t.msg="invalid block type",A.mode=R}s>>>=2,g-=2;break;case bn:for(s>>>=g&7,g-=g&7;g<32;){if(a===0)break A;a--,s+=n[r++]<<g,g+=8}if((s&65535)!==(s>>>16^65535)){t.msg="invalid stored block lengths",A.mode=R;break}if(A.length=s&65535,s=0,g=0,A.mode=At,e===re)break A;case At:A.mode=Fn;case Fn:if(Q=A.length,Q){if(Q>a&&(Q=a),Q>C&&(Q=C),Q===0)break A;Z(i,n,r,Q,o),a-=Q,r+=Q,C-=Q,o+=Q,A.length-=Q;break}A.mode=j;break;case Sn:for(;g<14;){if(a===0)break A;a--,s+=n[r++]<<g,g+=8}if(A.nlen=(s&31)+257,s>>>=5,g-=5,A.ndist=(s&31)+1,s>>>=5,g-=5,A.ncode=(s&15)+4,s>>>=4,g-=4,A.nlen>286||A.ndist>30){t.msg="too many length or distance symbols",A.mode=R;break}A.have=0,A.mode=Rn;case Rn:for(;A.have<A.ncode;){for(;g<3;){if(a===0)break A;a--,s+=n[r++]<<g,g+=8}A.lens[x[A.have++]]=s&7,s>>>=3,g-=3}for(;A.have<19;)A.lens[x[A.have++]]=0;if(A.lencode=A.lendyn,A.lenbits=7,D={bits:A.lenbits},w=QA(rr,A.lens,0,19,A.lencode,0,A.work,D),A.lenbits=D.bits,w){t.msg="invalid code lengths set",A.mode=R;break}A.have=0,A.mode=vn;case vn:for(;A.have<A.nlen+A.ndist;){for(;d=A.lencode[s&(1<<A.lenbits)-1],k=d>>>24,p=d>>>16&255,m=d&65535,!(k<=g);){if(a===0)break A;a--,s+=n[r++]<<g,g+=8}if(m<16)s>>>=k,g-=k,A.lens[A.have++]=m;else{if(m===16){for(y=k+2;g<y;){if(a===0)break A;a--,s+=n[r++]<<g,g+=8}if(s>>>=k,g-=k,A.have===0){t.msg="invalid bit length repeat",A.mode=R;break}c=A.lens[A.have-1],Q=3+(s&3),s>>>=2,g-=2}else if(m===17){for(y=k+3;g<y;){if(a===0)break A;a--,s+=n[r++]<<g,g+=8}s>>>=k,g-=k,c=0,Q=3+(s&7),s>>>=3,g-=3}else{for(y=k+7;g<y;){if(a===0)break A;a--,s+=n[r++]<<g,g+=8}s>>>=k,g-=k,c=0,Q=11+(s&127),s>>>=7,g-=7}if(A.have+Q>A.nlen+A.ndist){t.msg="invalid bit length repeat",A.mode=R;break}for(;Q--;)A.lens[A.have++]=c}}if(A.mode===R)break;if(A.lens[256]===0){t.msg="invalid code -- missing end-of-block",A.mode=R;break}if(A.lenbits=9,D={bits:A.lenbits},w=QA(Tn,A.lens,0,A.nlen,A.lencode,0,A.work,D),A.lenbits=D.bits,w){t.msg="invalid literal/lengths set",A.mode=R;break}if(A.distbits=6,A.distcode=A.distdyn,D={bits:A.distbits},w=QA(qn,A.lens,A.nlen,A.ndist,A.distcode,0,A.work,D),A.distbits=D.bits,w){t.msg="invalid distances set",A.mode=R;break}if(A.mode=oe,e===re)break A;case oe:A.mode=se;case se:if(a>=6&&C>=258){t.next_out=o,t.avail_out=C,t.next_in=r,t.avail_in=a,A.hold=s,A.bits=g,We(t,h),o=t.next_out,i=t.output,C=t.avail_out,r=t.next_in,n=t.input,a=t.avail_in,s=A.hold,g=A.bits,A.mode===j&&(A.back=-1);break}for(A.back=0;d=A.lencode[s&(1<<A.lenbits)-1],k=d>>>24,p=d>>>16&255,m=d&65535,!(k<=g);){if(a===0)break A;a--,s+=n[r++]<<g,g+=8}if(p&&(p&240)===0){for(I=k,l=p,B=m;d=A.lencode[B+((s&(1<<I+l)-1)>>I)],k=d>>>24,p=d>>>16&255,m=d&65535,!(I+k<=g);){if(a===0)break A;a--,s+=n[r++]<<g,g+=8}s>>>=I,g-=I,A.back+=I}if(s>>>=k,g-=k,A.back+=k,A.length=m,p===0){A.mode=_n;break}if(p&32){A.back=-1,A.mode=j;break}if(p&64){t.msg="invalid literal/length code",A.mode=R;break}A.extra=p&15,A.mode=Jn;case Jn:if(A.extra){for(y=A.extra;g<y;){if(a===0)break A;a--,s+=n[r++]<<g,g+=8}A.length+=s&(1<<A.extra)-1,s>>>=A.extra,g-=A.extra,A.back+=A.extra}A.was=A.length,A.mode=Gn;case Gn:for(;d=A.distcode[s&(1<<A.distbits)-1],k=d>>>24,p=d>>>16&255,m=d&65535,!(k<=g);){if(a===0)break A;a--,s+=n[r++]<<g,g+=8}if((p&240)===0){for(I=k,l=p,B=m;d=A.distcode[B+((s&(1<<I+l)-1)>>I)],k=d>>>24,p=d>>>16&255,m=d&65535,!(I+k<=g);){if(a===0)break A;a--,s+=n[r++]<<g,g+=8}s>>>=I,g-=I,A.back+=I}if(s>>>=k,g-=k,A.back+=k,p&64){t.msg="invalid distance code",A.mode=R;break}A.offset=m,A.extra=p&15,A.mode=Ln;case Ln:if(A.extra){for(y=A.extra;g<y;){if(a===0)break A;a--,s+=n[r++]<<g,g+=8}A.offset+=s&(1<<A.extra)-1,s>>>=A.extra,g-=A.extra,A.back+=A.extra}if(A.offset>A.dmax){t.msg="invalid distance too far back",A.mode=R;break}A.mode=Mn;case Mn:if(C===0)break A;if(Q=h-C,A.offset>Q){if(Q=A.offset-Q,Q>A.whave&&A.sane){t.msg="invalid distance too far back",A.mode=R;break}Q>A.wnext?(Q-=A.wnext,E=A.wsize-Q):E=A.wnext-Q,Q>A.length&&(Q=A.length),u=A.window}else u=i,E=o-A.offset,Q=A.length;Q>C&&(Q=C),C-=Q,A.length-=Q;do i[o++]=u[E++];while(--Q);A.length===0&&(A.mode=se);break;case _n:if(C===0)break A;i[o++]=A.length,C--,A.mode=se;break;case et:if(A.wrap){for(;g<32;){if(a===0)break A;a--,s|=n[r++]<<g,g+=8}if(h-=C,t.total_out+=h,A.total+=h,h&&(t.adler=A.check=A.flags?U(A.check,i,h,o-h):MA(A.check,i,h,o-h)),h=C,(A.flags?s:Hn(s))!==A.check){t.msg="incorrect data check",A.mode=R;break}s=0,g=0}A.mode=Un;case Un:if(A.wrap&&A.flags){for(;g<32;){if(a===0)break A;a--,s+=n[r++]<<g,g+=8}if(s!==(A.total&4294967295)){t.msg="incorrect length check",A.mode=R;break}s=0,g=0}A.mode=Yn;case Yn:w=sr;break A;case R:w=Zn;break A;case rt:return it;case Ir:default:return Y}return t.next_out=o,t.avail_out=C,t.next_in=r,t.avail_in=a,A.hold=s,A.bits=g,(A.wsize||h!==t.avail_out&&A.mode<R&&(A.mode<et||e!==hn))&&Pn(t,t.output,t.next_out,h-t.avail_out)?(A.mode=rt,it):(f-=t.avail_in,h-=t.avail_out,t.total_in+=f,t.total_out+=h,A.total+=h,A.wrap&&h&&(t.adler=A.check=A.flags?U(A.check,i,h,t.next_out-h):MA(A.check,i,h,t.next_out-h)),t.data_type=A.bits+(A.last?64:0)+(A.mode===j?128:0)+(A.mode===oe||A.mode===At?256:0),(f===0&&h===0||e===hn)&&w===CA&&(w=gr),w)}function jn(t){if(!t||!t.state)return Y;var e=t.state;return e.window&&(e.window=null),t.state=null,CA}function Wn(t,e){var A;return!t||!t.state||(A=t.state,(A.wrap&2)===0)?Y:(A.head=e,e.done=!1,CA)}function ot(t,e){var A=e.length,n,i,r;return!t||!t.state||(n=t.state,n.wrap!==0&&n.mode!==ae)?Y:n.mode===ae&&(i=1,i=MA(i,e,A,0),i!==n.check)?Zn:(r=Pn(t,e,A,A),r?(n.mode=rt,it):(n.havedict=1,CA))}var ge={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 st(){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 at=Object.prototype.toString,gt=class t{constructor(e){if(!(this instanceof t))return new t(e);this.options=sn({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 st,this.strm.avail_out=0;var n=Xn(this.strm,A.windowBits);if(n!==eA)throw new Error(ge[n]);if(this.header=new je,Wn(this.strm,this.header),A.dictionary&&(typeof A.dictionary=="string"?A.dictionary=ze(A.dictionary):at.call(A.dictionary)==="[object ArrayBuffer]"&&(A.dictionary=new Uint8Array(A.dictionary)),A.raw&&(n=ot(this.strm,A.dictionary),n!==eA)))throw new Error(ge[n])}push(e,A){var n=this.strm,i=this.options.chunkSize,r=this.options.dictionary,o,a,C,s,g,f,h=!1;if(this.ended)return!1;a=A===~~A?A:A===!0?vA:Oe,typeof e=="string"?n.input=In(e):at.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=z(i),n.next_out=0,n.avail_out=i),o=zn(n,Oe),o===rn&&r&&(typeof r=="string"?f=ze(r):at.call(r)==="[object ArrayBuffer]"?f=new Uint8Array(r):f=r,o=ot(this.strm,f)),o===on&&h===!0&&(o=eA,h=!1),o!==JA&&o!==eA)return this.onEnd(o),this.ended=!0,!1;n.next_out&&(n.avail_out===0||o===JA||n.avail_in===0&&(a===vA||a===Xe))&&(this.options.to==="string"?(C=Cn(n.output,n.next_out),s=n.next_out-C,g=Qn(n.output,C),n.next_out=s,n.avail_out=i-s,s&&Z(n.output,n.output,C,s,0),this.onData(g)):this.onData(ne(n.output,n.next_out))),n.avail_in===0&&n.avail_out===0&&(h=!0)}while((n.avail_in>0||n.avail_out===0)&&o!==JA);return o===JA&&(a=vA),a===vA?(o=jn(this.strm),this.onEnd(o),this.ended=!0,o===eA):(a===Xe&&(this.onEnd(eA),n.avail_out=0),!0)}onData(e){this.chunks.push(e)}onEnd(e){e===eA&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=te(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg}};function hr(t,e){var A=new gt(e);if(A.push(t,!0),A.err)throw A.msg||ge[A.err];return A.result}var Vn=hr;function It(t,e,A){let n=[],i=0,r=e;for(;i+26<=t.length&&!(t[i]!==31||t[i+1]!==139||t[i+2]!==8||t[i+3]!==4||t[i+10]!==6||t[i+12]!==66||t[i+13]!==67);){let o=(t[i+16]|t[i+17]<<8)+1;if(o<26||i+o>t.length)break;let a=i+o-8,C=(t[a+4]|t[a+5]<<8|t[a+6]<<16|t[a+7]<<24)>>>0;if(n.push({inputOffset:i,compressedSize:o,decompressedSize:C,filePosition:r}),r>=A)break;i+=o,r+=o}return n}function $n(t){let e=0;for(let i of t)e+=i.length;let A=new Uint8Array(e),n=0;for(let i of t)A.set(i,n),n+=i.length;return A}var nA={};nA.d=(t,e)=>{if(Array.isArray(e))for(var A=0;A<e.length;){var n=e[A++],i=e[A++];nA.o(t,n)?i===0&&A++:i===0?Object.defineProperty(t,n,{enumerable:!0,value:e[A++]}):Object.defineProperty(t,n,{enumerable:!0,get:i})}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 Ct={};nA.r(Ct);nA.d(Ct,{ChunkSliceResult:()=>kA,__wbg_Error_92b29b0548f8b746:()=>ur,__wbg___wbindgen_throw_344f42d3211c4765:()=>wr,__wbg_set_wasm:()=>ai,decompress_all:()=>ti,decompress_chunk_slice:()=>ni});var dr="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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",kA=class t{static __wrap(e){let A=Object.create(t.prototype);return A.__wbg_ptr=e,Ai.register(A,A.__wbg_ptr,A),A}__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,Ai.unregister(this),e}free(){let e=this.__destroy_into_raw();b.__wbg_chunksliceresult_free(e,0)}take_buffer(){try{let i=b.__wbindgen_add_to_stack_pointer(-16);b.chunksliceresult_take_buffer(i,this.__wbg_ptr);var e=_().getInt32(i+0,!0),A=_().getInt32(i+4,!0),n=ii(e,A).slice();return b.__wbindgen_export(e,A*1,1),n}finally{b.__wbindgen_add_to_stack_pointer(16)}}take_cpositions(){try{let i=b.__wbindgen_add_to_stack_pointer(-16);b.chunksliceresult_take_cpositions(i,this.__wbg_ptr);var e=_().getInt32(i+0,!0),A=_().getInt32(i+4,!0),n=ei(e,A).slice();return b.__wbindgen_export(e,A*8,8),n}finally{b.__wbindgen_add_to_stack_pointer(16)}}take_dpositions(){try{let i=b.__wbindgen_add_to_stack_pointer(-16);b.chunksliceresult_take_dpositions(i,this.__wbg_ptr);var e=_().getInt32(i+0,!0),A=_().getInt32(i+4,!0),n=ei(e,A).slice();return b.__wbindgen_export(e,A*8,8),n}finally{b.__wbindgen_add_to_stack_pointer(16)}}};Symbol.dispose&&(kA.prototype[Symbol.dispose]=kA.prototype.free);function ti(t){try{let o=b.__wbindgen_add_to_stack_pointer(-16),a=oi(t,b.__wbindgen_export2),C=Bt;b.decompress_all(o,a,C);var e=_().getInt32(o+0,!0),A=_().getInt32(o+4,!0),n=_().getInt32(o+8,!0),i=_().getInt32(o+12,!0);if(i)throw si(n);var r=ii(e,A).slice();return b.__wbindgen_export(e,A*1,1),r}finally{b.__wbindgen_add_to_stack_pointer(16)}}function ni(t,e,A,n,i){try{let C=b.__wbindgen_add_to_stack_pointer(-16),s=oi(t,b.__wbindgen_export2),g=Bt;b.decompress_chunk_slice(C,s,g,e,A,n,i);var r=_().getInt32(C+0,!0),o=_().getInt32(C+4,!0),a=_().getInt32(C+8,!0);if(a)throw si(o);return kA.__wrap(r)}finally{b.__wbindgen_add_to_stack_pointer(16)}}function ur(t,e){let A=Error(ri(t,e));return pr(A)}function wr(t,e){throw new Error(ri(t,e))}var Ai=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(t=>b.__wbg_chunksliceresult_free(t,1));function pr(t){_A===W.length&&W.push(W.length+1);let e=_A;return _A=W[e],W[e]=t,e}function kr(t){t<1028||(W[t]=_A,_A=t)}function ei(t,e){return t=t>>>0,mr().subarray(t/8,t/8+e)}function ii(t,e){return t=t>>>0,ct().subarray(t/1,t/1+e)}var pA=null;function _(){return(pA===null||pA.buffer.detached===!0||pA.buffer.detached===void 0&&pA.buffer!==b.memory.buffer)&&(pA=new DataView(b.memory.buffer)),pA}var Ie=null;function mr(){return(Ie===null||Ie.byteLength===0)&&(Ie=new Float64Array(b.memory.buffer)),Ie}function ri(t,e){return yr(t>>>0,e)}var Qe=null;function ct(){return(Qe===null||Qe.byteLength===0)&&(Qe=new Uint8Array(b.memory.buffer)),Qe}function Dr(t){return W[t]}var W=new Array(1024).fill(void 0);W.push(void 0,null,!0,!1);var _A=W.length;function oi(t,e){let A=e(t.length*1,1)>>>0;return ct().set(t,A/1),Bt=t.length,A}function si(t){let e=Dr(t);return kr(t),e}var ce=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});ce.decode();var Nr=2146435072,Qt=0;function yr(t,e){return Qt+=e,Qt>=Nr&&(ce=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0}),ce.decode(),Qt=e),ce.decode(ct().subarray(t,t+e).slice())}var Bt=0,b;function ai(t){b=t}var cA=null,Ce=null;async function gi(){return cA||(Ce||(Ce=(async()=>{let e=await(await fetch(dr)).arrayBuffer(),{instance:A}=await WebAssembly.instantiate(e,{"./bgzf_wasm_bg.js":Ct});return cA=A.exports,ai(cA),cA})().catch(t=>{throw Ce=null,t})),Ce)}async function Ii(t){return cA||await gi(),ti(t)}async function Qi(t,e,A,n,i){cA||await gi();let r=ni(t,e,A,n,i),o=r.take_buffer(),a=r.take_cpositions(),C=r.take_dpositions();return r.free(),{buffer:o,cpositions:a,dpositions:C}}var xr=26;function ci(t){return t[0]===31&&t[1]===139}function br(t){return t.length>=xr&&ci(t)&&t[2]===8&&t[3]===4&&t[10]===6&&t[12]===66&&t[13]===67}function Bi(t){return t instanceof Error?t.message:`${t}`}async function Ci(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 Vn(t,void 0)}function Ei(t){return Bi(t).includes("invalid gzip header")?new Error("problem decompressing block: incorrect gzip header check",{cause:t}):t}async function UA(t){if(t.length===0)return new Uint8Array(0);if(!br(t)){if(ci(t))return Ci(t);throw new Error("problem decompressing block: not a valid bgzf or gzip block")}try{return await Ii(t)}catch(e){if(Bi(e).includes("invalid bgzf header"))return Ci(t);throw Ei(e)}}function fi(t,e,A,n){let i=[],r=[],o=[],a=A.dataPosition;for(let C=0;C<t.length;C++){let s=t[C],g=e[C],f=g.filePosition>=n.blockPosition;i.push(g.filePosition),r.push(a);let h=C===0?A.dataPosition:0,Q=f?Math.min(n.dataPosition+1,s.length):s.length;if(h<Q&&o.push(s.subarray(h,Q)),a+=s.length-h,f){i.push(g.filePosition+g.compressedSize),r.push(a);break}}return{slices:o,cpositions:Float64Array.from(i),dpositions:Float64Array.from(r)}}function Fr(t,e,A,n){let{slices:i,cpositions:r,dpositions:o}=fi(t,e,A,n);return{buffer:$n(i),cpositions:r,dpositions:o}}function Sr(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 Et(t,e,A){let{minv:n,maxv:i}=e;if(A){let C=It(t,n.blockPosition,i.blockPosition);if(li(C)>=ft){let s=await A.decompressBlocks(t,C),{slices:g,cpositions:f,dpositions:h}=fi(s.blocks,C,n,i);return{segments:Sr(g),cpositions:f,dpositions:h}}}let{buffer:r,cpositions:o,dpositions:a}=await hi(t,e);return{segments:[r],cpositions:o,dpositions:a}}var ft=4e5;function li(t){let e=0;for(let A of t)e+=A.decompressedSize;return e}async function hi(t,e,A){let{minv:n,maxv:i}=e;if(A){let r=It(t,n.blockPosition,i.blockPosition);if(li(r)>=ft){let o=await A.decompressBlocks(t,r);return Fr(o.blocks,r,n,i)}}try{let r=await Qi(t,n.blockPosition,n.dataPosition,i.blockPosition,i.dataPosition);return{buffer:r.buffer,cpositions:r.cpositions,dpositions:r.dpositions}}catch(r){throw Ei(r)}}function BA(t){if(t?.aborted)throw lt(t)}function lt(t){let e=t.reason;return e===void 0?new DOMException("This operation was aborted","AbortError"):e}function di(t){return typeof t?.addEventListener=="function"}var iA=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:i=a=>String(a),idleTimeoutMs:r=0,budget:o}={}){this.fill=e,this.limit=A,this.shared=o&&{budget:o,membership:o.register(this)},this.sizeOf=n,this.toCacheKey=i,this.idleTimeoutMs=r>0&&Number.isFinite(r)?r: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){BA(A);let i=this.toCacheKey(e),r=this.entries.get(i);r&&this.isDoomed(r)&&(this.release(i),r=void 0),r?this.touch(i,r):r=this.start(i,e,n),r.pending&&this.join(r.pending,A);try{return await this.settleFor(r,A)}finally{BA(A)}}settleFor(e,A){if(!e.pending||!di(A))return e.promise;let n,i=new Promise((o,a)=>{n=a}),r=()=>{n(lt(A))};return A.addEventListener("abort",r,{once:!0}),Promise.race([e.promise,i]).finally(()=>{A.removeEventListener("abort",r)})}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,i]of this.entries)!i.pending&&i.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),i=setInterval(()=>{let r=n.deref();r?r.sweepIdle():clearInterval(i)},A);this.sweepTimer=i,i.unref?.()}stopSweep(){this.sweepTimer!==void 0&&(clearInterval(this.sweepTimer),this.sweepTimer=void 0)}start(e,A,n){let i=n??(this.fill&&(s=>this.fill(A,s)));if(!i)throw new Error("SharedReadCache needs a fill, either on the cache or on the get() call");let r={signals:new Map,pinned:!1,controller:new AbortController},o={promise:Promise.resolve(i(r.controller.signal)),pending:r,size:0,lastTouched:Date.now(),seq:this.stamp()};this.entries.set(e,o);let a=()=>this.entries.get(e)===o,C=()=>{for(let[s,g]of r.signals)s.removeEventListener("abort",g);o.pending=void 0};return o.promise.then(s=>{let g=a()?this.weigh(s):void 0,f=a();C(),f&&(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()},()=>{a()&&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(!di(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 Be(t){return t.bytes?t.bytes():new Uint8Array(await t.arrayBuffer())}async function ui(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?ht(t,A):Be(t)}function wi(t){return typeof t=="string"?{encoding:t,opts:{}}:{encoding:t?.encoding,opts:t??{}}}function pi(t){let e=/\/(\d+)$/.exec(t??"")?.[1];return e===void 0?void 0:parseInt(e,10)}function Rr(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 vr=50;async function ht(t,e){let A=Rr(t),n=t.body;if(!n||A===void 0){let C=await Be(t);return e(C.byteLength,A??C.byteLength),C}let i=n.getReader(),r=new Uint8Array(A),o=0,a=Date.now();e(0,A);for(let C=await i.read();!C.done;C=await i.read()){if(o+C.value.byteLength>r.length){let g=new Uint8Array(Math.max(o+C.value.byteLength,r.length*2));g.set(r.subarray(0,o)),r=g}r.set(C.value,o),o+=C.value.byteLength;let s=Date.now();s-a>=vr&&(a=s,e(o,A))}return e(o,A),o===r.length?r:r.slice(0,o)}function Jr(...t){let e=new Map;for(let A of t)for(let[n,i]of Object.entries(A??{}))e.set(n.toLowerCase(),[n,i]);return Object.fromEntries(e.values())}function dt(t){let e=t.body;typeof e?.cancel=="function"&&e.cancel().catch(()=>{})}function ki(t){return Number.isSafeInteger(t)&&t>=0}function Gr(t){return typeof t=="object"&&t!==null&&"name"in t&&t.name==="TypeError"}function Lr(t){return(typeof t=="object"&&t!==null&&"message"in t&&typeof t.message=="string"?t.message:`${t}`).replace(/\.$/,"")}var V=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:Jr(this.baseHeaders,e.headers,A),...n?{signal:n}:{}}}async fetch(e,A){let n=r=>Gr(r)&&!A?.signal?.aborted?new Error(`${Lr(r)} fetching ${e}`,{cause:r}):r,i;try{i=await this.fetchImplementation(e,A)}catch(r){if(`${r}`.includes("Failed to fetch")){console.warn(`generic-filehandle: refetching ${e} to attempt to work around chrome CORS header caching bug`);try{i=await this.fetchImplementation(e,{...A,cache:"reload"})}catch(o){throw n(o)}}else throw n(r)}return i}async read(e,A,n={}){if(!ki(e)||!ki(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 i=await this.fetch(this.url,this.buildRequest(n,{range:`bytes=${A}-${A+e-1}`}));if(i.status===416)return dt(i),new Uint8Array(0);if(this.checkOk(i),i.status===200&&A===0||i.status===206){let r=pi(i.headers.get("content-range"));r!==void 0&&(this._stat={size:r});let o=n.onProgress?await ht(i,n.onProgress):await Be(i);return!this._stat&&i.status===200&&(this._stat={size:o.byteLength}),o.byteLength<=e?o:o.slice(0,e)}throw dt(i),new Error(i.status===200?`${this.url} fetch returned status 200, expected 206`:`HTTP ${i.status} fetching ${this.url}`)}checkOk(e){if(!e.ok)throw dt(e),new Error(`HTTP ${e.status} fetching ${this.url}`)}async readFile(e){let{encoding:A,opts:n}=wi(e),i=await this.fetch(this.url,this.buildRequest(n));this.checkOk(i);let r=await this.readFileBody(i,A,n.onProgress);return i.status===200&&typeof r!="string"&&(this._stat={size:r.byteLength}),r}readFileBody(e,A,n){return ui(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 EA=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 O=class{minv;maxv;bin;endPosition;constructor(e,A,n,i=A.blockPosition+65536){this.minv=e,this.maxv=A,this.bin=n,this.endPosition=i}toString(){return`${this.minv.toString()}..${this.maxv.toString()} (bin ${this.bin}, fetchedSize ${this.fetchedSize()})`}fetchedSize(){return this.endPosition-this.minv.blockPosition}};function ut(t,e){if(!(e>0))throw new TypeError(`\`${t}\` must be a number greater than 0`)}var YA=class{#A=new Map;#e=new Map;#t;#i;#r;constructor(e){let A=e.maxAge??Number.POSITIVE_INFINITY;ut("maxSize",e.maxSize),ut("maxAge",A),this.#t=e.maxSize,this.#i=A,this.#r=e.onEviction}#o(e){let A=this.#r;if(A)for(let[n,i]of e)A(n,i.value)}#n(e,A){return A.expiry!==void 0&&A.expiry<=Date.now()?(this.#r?.(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)}}#I(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.#i}={}){let i={value:A,expiry:n===Number.POSITIVE_INFINITY?void 0:Date.now()+n};return this.#A.has(e)?this.#A.set(e,i):this.#g(e,i),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){ut("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.#I(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.#I(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.#i}*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,i]of this)e.call(A,i,n,this)}get[Symbol.toStringTag](){return"QuickLRU"}toString(){return`QuickLRU(${this.size}/${this.maxSize})`}[Symbol.for("nodejs.util.inspect.custom")](){return this.toString()}};function mi(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 mA=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 rA(t,e=0){return new mA(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 Ee(t,e){let A=t.length;if(A===0)return t;let n;if(e){let a=e.blockPosition,C=e.dataPosition;n=[];for(let s=0;s<A;s++){let g=t[s];(g.maxv.blockPosition-a||g.maxv.dataPosition-C)>0&&n.push(g)}if(n.length===0)return n}else n=t;n.sort((a,C)=>{let s=a.minv.blockPosition-C.minv.blockPosition;return s===0?a.minv.dataPosition-C.minv.dataPosition:s});let i=[n[0]],r=n[0].minv.blockPosition,o=n[0].maxv.blockPosition;for(let a=1;a<n.length;a++){let C=n[a],s=C.minv.blockPosition,g=C.maxv.blockPosition;if(s-o<65e3&&g-r<5e6){let f=i.at(-1);(g-o||C.maxv.dataPosition-f.maxv.dataPosition)>0&&(i[i.length-1]=new O(f.minv,C.maxv,f.bin,C.endPosition),o=g)}else i.push(C),r=s,o=g}return Mr(i)}function Mr(t){let e=[t[0]];for(let A=1;A<t.length;A++){let n=t[A],i=e.at(-1).maxv;if((n.minv.blockPosition-i.blockPosition||n.minv.dataPosition-i.dataPosition)>=0){e.push(n);continue}(n.maxv.blockPosition-i.blockPosition||n.maxv.dataPosition-i.dataPosition)>0&&e.push(new O(i,n.maxv,n.bin,n.endPosition))}return e}function fe(t,e=[]){let A=[...e];for(let n of t)A.push(n.minv.blockPosition,n.maxv.blockPosition);A.sort((n,i)=>n-i);for(let n of t){let i=n.maxv.blockPosition,r=0,o=A.length;for(;r<o;){let a=r+o>>>1;A[a]>i?o=a:r=a+1}r<A.length&&(n.endPosition=Math.min(n.endPosition,A[r]))}}function le(t,e,A,n){let i=n?n.blockPosition:1/0,r=n?n.dataPosition:0,o=!1;for(let a=0;a<A;a++){let C=e+a*8,s=t[C+7]*1099511627776+t[C+6]*4294967296+t[C+5]*16777216+t[C+4]*65536+t[C+3]*256+t[C+2],g=t[C+1]<<8|t[C];(s<i||s===i&&g<r)&&(i=s,r=g,o=!0)}return o?new mA(i,r):n}function _r(t){let e=new TextDecoder("utf-8"),A=[],n={},i=0,r=0;for(;r<t.length;){let o=t.indexOf(0,r);if(o===-1)break;if(o>r){let a=e.decode(t.subarray(r,o));A[i]=a,n[a]=i}r=o+1,i++}return{refNameToId:n,refIdToName:A}}var Ur={0:"generic",1:"SAM",2:"VCF",3:"GAF"};function he(t,e){let A=new DataView(t.buffer,t.byteOffset,t.byteLength),n=A.getInt32(e,!0),i=n&65536?"zero-based-half-open":"1-based-closed",r=Ur[n&15];if(!r)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)},a=A.getInt32(e+16,!0),C=a?String.fromCharCode(a):void 0,s=A.getInt32(e+20,!0),g=A.getInt32(e+24,!0),{refIdToName:f,refNameToId:h}=_r(t.subarray(e+28,e+28+g));return{refIdToName:f,refNameToId:h,skipLines:s,metaChar:C,columnNumbers:o,format:r,coordinateType:i}}function de(t,e){return{lineCount:mi(t,e)}}function ue(t,e=5){let A=new YA({maxSize:e});return n=>{let i=A.get(n);if(i!==void 0)return i;let r=t(n);return r!==void 0&&A.set(n,r),r}}function Di(t){let e=0;for(let i of t)e+=i.length;let A=new Uint8Array(e),n=0;for(let i of t)A.set(i,n),n+=i.length;return A}var Ni=10;function wt(t,e){let A=0,n,i=0;for(let r of t){let o=0;if(n){let s=r.indexOf(Ni);if(s===-1){n=Di([n,r]),A+=r.length;continue}if(e(Di([n,r.subarray(0,s+1)]),i))return!0;o=s+1,n=void 0}let a=r.lastIndexOf(Ni);if(a>=o&&e(r.subarray(o,a+1),A+o))return!0;let C=Math.max(o,a+1);C<r.length&&(n=r.slice(C),i=A+C),A+=r.length}return!1}function Yr(t,e,A,n){if(e>2**(A+n*3))return;let i=(8**(n+1)-1)/7,r=(8**n-1)/7+Math.floor((e-1)/2**A)+1;for(r>=i&&(r=0);;){for(;r%8===1;)r=(r-1)/8;if(r===0)return;let o=t[r];if(o?.length){let a=o[0].minv;for(let C=1;C<o.length;C++){let s=o[C].minv;s.compareTo(a)<0&&(a=s)}return a}r++}}function yi(t,e){return t.format==="GAF"?0:t.refNameToId[e]}var fA=class{filehandle;parseCache=new iA({});constructor({filehandle:e}){this.filehandle=e}async readIndexBytes(e){let A=await this.filehandle.readFile({signal:e.signal,onProgress:e.onProgress}),n=await UA(A);return{bytes:n,dataView:new DataView(n.buffer,n.byteOffset,n.byteLength)}}async lineCount(e,A={}){let n=await this.parse(A),i=yi(n,e);return i===void 0?-1:n.indices(i)?.stats?.lineCount??-1}async getMetadata(e={}){let{indices:A,...n}=await this.parse(e);return n}async blocksForRange(e,A,n,i={}){let r=await this.parse(i),o=yi(r,e);if(o===void 0)return[];let a=r.indices(o);if(!a)return[];r.format==="GAF"&&(A=Math.max(A-1,0));let C=[];for(let[f,h]of this.reg2bins(A,n,r))for(let Q=f;Q<=h;Q++){let E=a.binIndex[Q];if(E)for(let u of E)C.push(u)}let s=Ee(C,this.lowestOffset(a,A,r)),g=Yr(a.binIndex,n,r.minShift,r.depth);if(g){let f=s.length;for(;f>0&&s[f-1].minv.compareTo(g)>=0;)f--;s.length=f}return s}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 Hr=21582659,Kr=38359875;function xi(t,e){return t*2**e}function pt(t,e){return Math.floor(t/2**e)}var lA=class extends fA{async _parse(e={}){let{bytes:A,dataView:n}=await this.readIndexBytes(e),i=n.getUint32(0,!0),r;if(i===Hr)r=1;else if(i===Kr)r=2;else throw new Error(`Not a CSI file (magic=${i})`);let o=n.getInt32(4,!0),a=n.getInt32(8,!0),C=(8**(a+1)-1)/7,s=2**(o+a*3),g=n.getInt32(12,!0),f=g>=28&&(n.getInt32(16,!0)&15)===3;if(g<30&&!f)throw new Error("CSI index has no tabix header, so it names no references; it may be a BAM or BCF index");let h=he(A,16),Q=n.getInt32(16+g,!0),E=16+g+4,u,d=[];for(let p=0;p<Q;p++){d.push(E);let m=n.getInt32(E,!0);E+=4;for(let I=0;I<m;I++){let l=n.getUint32(E,!0);if(E+=4,l>C)E+=44;else{u=le(A,E,1,u),E+=8;let B=n.getInt32(E,!0);E+=4+16*B}}}function k(p){let m=d[p];if(m===void 0)return;let I=m,l=n.getInt32(I,!0);I+=4;let B={},c={},w;for(let N=0;N<l;N++){let D=n.getUint32(I,!0);if(I+=4,D>C)w=de(A,I+28),I+=44;else{c[D]=rA(A,I),I+=8;let y=n.getInt32(I,!0);I+=4;let x=Array.from({length:y});for(let S=0;S<y;S++)x[S]=new O(rA(A,I),rA(A,I+8),D),I+=16;B[D]=x}}return fe(Object.values(B).flat()),{binIndex:B,loffsets:c,stats:w}}return{...h,csi:!0,refCount:Q,maxBlockSize:65536,firstDataLine:u,csiVersion:r,indices:ue(k),minShift:o,depth:a,maxBinNumber:C,maxRefLength:s}}lowestOffset(e,A,{minShift:n,depth:i}){let{loffsets:r}=e,o;if(r){let a=(xi(1,3*i)-1)/7+pt(Math.max(A,0),n);for(;o===void 0&&a>0;)if(o=r[a],o===void 0){let C=Math.floor((a-1)/8),s=C*8+1;a=a>s?a-1:C}o??=r[0]}return o}reg2bins(e,A,{minShift:n,depth:i,maxBinNumber:r}){e=Math.max(e,0);let o=2**(n+i*3);A>o&&(A=o),A-=1;let a=0,C=0,s=n+i*3,g=[];for(;a<=i;s-=3,C+=xi(1,a*3),a+=1){let f=C+pt(e,s),h=C+pt(A,s);if(h-f+g.length>r)throw new Error(`query ${e}-${A} is too large for current binning scheme (shift ${n}, depth ${i}), try a smaller query or a coarser index binning scheme`);g.push([f,h])}return g}};var Tr=21578324,kt=5,mt=14,we=2**(mt+kt*3);function bi(t){return Math.min(Math.max(t,0),we)}var $=class extends fA{reg2bins(e,A){e>we&&console.warn("querying outside of possible tabix range");let n=bi(e),i=Math.min(A,we)-1,r=[];return n<=i&&r.push([0,0],[1+(n>>26),1+(i>>26)],[9+(n>>23),9+(i>>23)],[73+(n>>20),73+(i>>20)],[585+(n>>17),585+(i>>17)],[4681+(n>>14),4681+(i>>14)]),r}lowestOffset(e,A){let n=e.linearIndex;return n?.[Math.min(bi(A)>>mt,n.length-1)]}async _parse(e={}){let{bytes:A,dataView:n}=await this.readIndexBytes(e);if(n.getUint32(0,!0)!==Tr)throw new Error("Not a TBI file");let i=n.getUint32(4,!0),r=((1<<(kt+1)*3)-1)/7,{refNameToId:o,refIdToName:a,coordinateType:C,format:s,columnNumbers:g,metaChar:f,skipLines:h}=he(A,8),E=36+n.getInt32(32,!0),u,d=[];for(let p=0;p<i;p++){d.push(E);let m=n.getInt32(E,!0);E+=4;for(let l=0;l<m;l++){let B=n.getUint32(E,!0);E+=4;let c=n.getInt32(E,!0);if(E+=4,B>r+1)throw new Error("tabix index contains too many bins, please use a CSI index");E+=16*c}let I=n.getInt32(E,!0);E+=4,u=le(A,E,I,u),E+=8*I}function k(p){let m=d[p];if(m===void 0)return;let I=m,l=n.getInt32(I,!0);I+=4;let B={},c;for(let D=0;D<l;D++){let y=n.getUint32(I,!0);if(I+=4,y>r+1)throw new Error("tabix index contains too many bins, please use a CSI index");if(y===r+1){let x=n.getInt32(I,!0);I+=4,x===2&&(c=de(A,I+16)),I+=16*x}else{let x=n.getInt32(I,!0);I+=4;let S=Array.from({length:x});for(let F=0;F<x;F++)S[F]=new O(rA(A,I),rA(A,I+8),y),I+=16;B[y]=S}}let w=n.getInt32(I,!0);I+=4;let N=Array.from({length:w});for(let D=0;D<w;D++)N[D]=rA(A,I),I+=8;return fe(Object.values(B).flat(),N.map(D=>D.blockPosition)),{binIndex:B,linearIndex:N,stats:c}}return{indices:ue(k),metaChar:f,minShift:mt,depth:kt,maxBinNumber:r,maxRefLength:we,skipLines:h,firstDataLine:u,columnNumbers:g,coordinateType:C,format:s,refIdToName:a,refNameToId:o,maxBlockSize:65536}}};var Dt=9,ke=10,Ri=13,qr=59,Zr=60,Or=62,Xr=6,Pr=1024*2**20,zr=180*1e3;function jr(t,e,A){if(t)return t;if(e)return new EA(e);if(A)return new V(A);throw new TypeError("must provide either filehandle, path, or url")}function Wr({tbiFilehandle:t,csiFilehandle:e,tbiPath:A,csiPath:n,tbiUrl:i,csiUrl:r,path:o,url:a}){if(t)return new $({filehandle:t});if(e)return new lA({filehandle:e});if(A)return new $({filehandle:new EA(A)});if(n)return new lA({filehandle:new EA(n)});if(r)return new lA({filehandle:new V(r)});if(i)return new $({filehandle:new V(i)});if(o)return new $({filehandle:new EA(`${o}.tbi`)});if(a)return new $({filehandle:new V(`${a}.tbi`)});throw new TypeError("must provide one of tbiFilehandle, tbiPath, csiFilehandle, csiPath, tbiUrl, csiUrl")}function vi(t,e,A,n,i){return t[A]*256+(n-e[A])+i+1}function Vr(t,e,A,n,i,r,o){let a=n-A,C=e+a,s=0;if(t[i]===46)return C;let g=i;for(let f=i;f<=r;f++)if(f===r||t[f]===qr){let h=f-g;if(h>=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(h>=4&&t[g]===69&&t[g+1]===78&&t[g+2]===68&&t[g+3]===61){let Q=pe(t,g+4,f);Q>e&&(C=Q)}else h>=6&&t[g]===83&&t[g+1]===86&&t[g+2]===76&&t[g+3]===69&&t[g+4]===78&&t[g+5]===61&&(s=Ao(t,g+6,f,n+1,o));g=f+1}return Math.max(C,e+s)}var Fi=44;function $r(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 i=t[e+1],r=t[e+2],o=t[e+3];return i===67&&r===78&&o===86||i===68&&r===69&&o===76||i===68&&r===85&&o===80||i===73&&r===78&&o===86}function Ao(t,e,A,n,i){let r=0,o=e,a=n;for(;o<A&&a<i;){let C=t.indexOf(Fi,o);(C===-1||C>A)&&(C=A);let s=t.indexOf(Fi,a);if((s===-1||s>i)&&(s=i),$r(t,a,s)){let g=pe(t,t[o]===45?o+1:o,C);g>r&&(r=g)}o=C+1,a=s+1}return r}var Ji=new TextDecoder;function Si(t,e){let A=-1,n=e.charCodeAt(0);for(let i=0,r=t.length;i<r;i++){let o=t[i];if(i===A+1&&o!==n)break;o===ke&&(A=i)}return t.subarray(0,A+1)}function eo(t,e){let A=0;for(let n=0;n<e;n++){let i=t.indexOf(ke,A);if(i===-1){A=t.length;break}A=i+1}return Ji.decode(t.subarray(0,A)).split(/\r?\n/).slice(0,e)}function pe(t,e,A){let n=0;for(let i=e;i<A;i++){let r=t[i];if(r>=48&&r<=57)n=n*10+(r-48);else break}return n}function to(t,e,A,n,i,{start:r,end:o,pathCol:a,metaCharCode:C,decoder:s,callback:g}){let f=0,h=0;for(;f<t.length;){let Q=t.indexOf(ke,f);if(Q===-1)break;let E=f;f=Q+1;let u=E+e+i;for(;h<n.length&&u>=n[h];)h++;if(t[E]===C)continue;let d=E;for(let B=1;B<a;B++){let c=t.indexOf(Dt,d);if(c===-1||c>=Q){d=Q;break}d=c+1}let k=t[d];if(k!==Or&&k!==Zr)continue;let p=t.indexOf(Dt,d);(p===-1||p>Q)&&(p=Q);let m=1/0,I=-1,l=d;for(;l<p;){let B=0,c=l+1;for(;c<p;c++){let w=t[c]-48;if(w<0||w>9)break;B=B*10+w}B<m&&(m=B),B>I&&(I=B),l=c}if(m>=o)return!0;if(I>=r){let B=t[Q-1]===Ri?Q-1:Q;g(s.decode(t.subarray(E,B)),vi(A,n,h,E+e,i),m,I+1)}}return!1}var DA=class{filehandle;index;chunkCache;headerCache=new iA({});bgzfWorkerPool;constructor({path:e,filehandle:A,url:n,tbiPath:i,tbiUrl:r,tbiFilehandle:o,csiPath:a,csiUrl:C,csiFilehandle:s,chunkCacheSize:g=Pr,chunkCacheIdleTimeoutMs:f=zr,chunkCacheBudget:h,bgzfWorkerPool:Q}){this.bgzfWorkerPool=Q,this.filehandle=jr(A,e,n),this.index=Wr({tbiFilehandle:o,csiFilehandle:s,tbiPath:i,csiPath:a,tbiUrl:r,csiUrl:C,path:e,url:n}),this.chunkCache=new iA({maxSize:g,sizeOf:E=>{let u=0;for(let d of E.segments)u+=d.byteLength;return u},cacheKey:E=>E.toString(),idleTimeoutMs:f,budget:h,fill:(E,u)=>this.readChunk(E,{signal:u})})}clearChunkCache(){this.chunkCache.clear()}async bytesForRegions(e,A={}){let n=[];for(let{refName:r,start:o,end:a}of e){let C=await this.index.blocksForRange(r,o,a,A);for(let s of C)n.push(s)}let i=0;for(let r of Ee(n))i+=r.fetchedSize();return i}async getLines(e,A,n,i){let r,o={},a,C;typeof i=="function"?a=i:(o=i,a=i.lineCallback,r=i.signal,C=i.onProgress);let s=await this.index.getMetadata(o),g=A??0,f=n??s.maxRefLength;if(g>f)throw new TypeError("invalid start and end coordinates. start must be less than or equal to end");if(g===f)return;let h=await this.index.blocksForRange(e,g,f,o),Q=s.format==="VCF",E=s.columnNumbers.ref||0,u=s.columnNumbers.start||0,d=Q?8:s.columnNumbers.end||0,k=Math.max(E,u,d),p=s.metaChar?.charCodeAt(0),m=s.coordinateType==="1-based-closed"?-1:0,I=new TextEncoder,l=new TextDecoder,B=I.encode(e),c=new Int32Array(k+1),w=s.format==="GAF"?{start:g,end:f,pathCol:u,metaCharCode:p,decoder:l,callback:a}:void 0,N=0;for(let F of h)N+=F.fetchedSize();let D=0;C?.(0,N);let y=1,x=[],S=F=>{for(;x.length<Math.min(F,h.length);){let L=h[x.length],J=this.chunkCache.get(L,r);J.catch(()=>{}),x.push(J)}};S(1);for(let F=0,L=h.length;F<L;F++){let J=h[F],{segments:M,cpositions:oA,dpositions:X}=await x[F];D+=J.fetchedSize(),C?.(D,N);let sA=J.minv.dataPosition;if(w){if(wt(M,(v,hA)=>to(v,hA,oA,X,sA,w)))return}else if(wt(M,(v,hA)=>{let H=0,HA=0;for(;H<v.length;){let K=v.indexOf(ke,H);if(K===-1)break;let Li=H+hA+sA;for(;HA<X.length&&Li>=X[HA];)HA++;if(p!==void 0&&v[H]===p){H=K+1;continue}c[0]=H-1;for(let T=0;T<k;T++){let TA=c[T],me=TA<K?v.indexOf(Dt,TA+1):-1;c[T+1]=me===-1||me>=K?K:me}let Nt=c[E-1]+1,yt=c[E]-Nt;if(yt!==B.length){H=K+1;continue}let xt=!0;for(let T=0;T<yt;T++)if(v[Nt+T]!==B[T]){xt=!1;break}if(!xt){H=K+1;continue}let KA=pe(v,c[u-1]+1,c[u])+m;if(KA>=f)return!0;let NA;if(d===0||d===u?NA=KA+1:Q?NA=Vr(v,KA,c[3]+1,c[4],c[d-1]+1,c[d],c[5]):NA=pe(v,c[d-1]+1,c[d]),NA>g){let T=v[K-1]===Ri?K-1:K,TA=l.decode(v.subarray(H,T));a(TA,vi(oA,X,HA,H+hA,sA),KA,NA)}H=K+1}return!1}))return;y=Math.min(y*2,Xr),S(F+1+y)}}async getMetadata(e={}){return this.index.getMetadata(e)}async readHeaderBytes(e){let{firstDataLine:A,maxBlockSize:n}=await this.getMetadata(e),i=(A?.blockPosition??0)+n,r=await this.filehandle.read(i,0,e);return UA(r)}async parseHeader(e){let{metaChar:A,skipLines:n=0}=await this.getMetadata(e),i=await this.readHeaderBytes(e);return{header:Ji.decode(A?Si(i,A):i),skippedLines:n>0?eo(i,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?Si(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);BA(A.signal);let i=await this.bgzfWorkerPool;return Et(n,e,i)}};var no=t=>({type:"fileLocation",defaultValue:{uri:t,locationType:"UriLocation"}}),da=(t,e="")=>Ft(t,{indexType:{model:St.enumeration("IndexType",["TBI","CSI"]),type:"stringEnum",defaultValue:"TBI"},location:no(e)});function io(t,e,A){return{indexType:A?"CSI":"TBI",location:{uri:`${t}.${A?"csi":"tbi"}`,baseUri:e}}}function ua(t){let{walksUri:e,baseUri:A,csi:n}=t;if(typeof e!="string")return t;let i=`${e}.walks.bed.gz`;return{...t,walksLocation:{uri:i,baseUri:A},walksIndex:io(i,A,n)}}function wa(t,e,A){let n=t.pluginManager;return new DA({filehandle:Rt(t.getConf(e),n),...vt(t.getConf([...A,"location"]),t.getConf([...A,"indexType"]),n)})}function ro(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 Gi=class{constructor(e,A){this.file=e;this.adapter=A;this.lookup=Gt({setup:async e=>SA(await this.file.getReferenceSequenceNames(e))})}async assemblyRefNames(e={}){let A=await this.file.getReferenceSequenceNames(e),n=qA(this.adapter,e.assemblyName),i=A.filter(r=>De(r,n)).map(r=>bt(r));return i.length>0?[...new Set(i)]:A}async resolve(e,A){let n=await this.lookup(A);return RA(n,qA(this.adapter,e.assemblyName),e.refName)}async resolveMapped(e,A){let n=await this.resolve(e,A);if(n===void 0&&e.assemblyName){let i=await this.file.getReferenceSequenceNames(A),r=qA(this.adapter,e.assemblyName);if(i.every(o=>o.includes("#"))&&!i.some(o=>De(o,r)))throw new Error(ro(e))}return n}async regionBytes(e,A={},n=async i=>i){let i=[];for(let r of e){let o=await this.resolve(r,A);o!==void 0&&i.push({refName:o,start:await n(r.start),end:r.end})}return nn(this.file,i,A)}};export{UA as a,so as b,Gt as c,Ui as d,Je as e,zi as f,qe as g,Ye as h,Hi as i,ji as j,Lo as k,no as l,da as m,io as n,ua as o,wa as p,ro as q,Gi as r};
|
|
3
|
+
//# sourceMappingURL=chunk-B2EP6FOQ.js.map
|