@gmod/tabix 3.7.3 → 3.8.1

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.
@@ -1,7 +1,7 @@
1
1
  import { SharedReadCache } from '@gmod/shared-read-cache';
2
2
  import type Chunk from './chunk.ts';
3
3
  import type { Options } from './indexFile.ts';
4
- import type { ChunkSlice } from '@gmod/bgzf-filehandle';
4
+ import type { BgzfWorkerPool, ChunkSlice } from '@gmod/bgzf-filehandle';
5
5
  import type { SharedBudget } from '@gmod/shared-read-cache';
6
6
  import type { GenericFilehandle } from 'generic-filehandle2';
7
7
  type GetLinesCallback = (line: string, fileOffset: number, start: number, end: number) => void;
@@ -30,7 +30,9 @@ export default class TabixIndexedFile {
30
30
  * entry, never evicted, which is what a memo is.
31
31
  */
32
32
  private headerCache;
33
- constructor({ path, filehandle, url, tbiPath, tbiUrl, tbiFilehandle, csiPath, csiUrl, csiFilehandle, chunkCacheSize, chunkCacheIdleTimeoutMs, chunkCacheBudget, }: {
33
+ /** see the constructor option of the same name */
34
+ private bgzfWorkerPool?;
35
+ constructor({ path, filehandle, url, tbiPath, tbiUrl, tbiFilehandle, csiPath, csiUrl, csiFilehandle, chunkCacheSize, chunkCacheIdleTimeoutMs, chunkCacheBudget, bgzfWorkerPool, }: {
34
36
  path?: string;
35
37
  filehandle?: GenericFilehandle;
36
38
  url?: string;
@@ -47,12 +49,18 @@ export default class TabixIndexedFile {
47
49
  * by 64KB to get an entry count, so a caller passing `50 * 2**20` was
48
50
  * asking for 800 whole decompressed chunks — unbounded in practice. It now
49
51
  * means 50MB, twenty times under the default, and the name did not change
50
- * so nothing warns. jbrowse still passes exactly that in nine adapters:
51
- * measured on `test/data/1kg.chr1.subset.vcf.gz` it is a **total miss**,
52
- * 47 refills out of 47 on the warm pass against 0 at the default, holding
53
- * 82.7MB in a single entry — over the budget it was given, because the last
54
- * settled entry is kept whatever the budget. If you pinned a value here
55
- * before v3.5.2, it does not mean what it did.
52
+ * so nothing warns. If you pinned a value here before v3.5.2, it does not
53
+ * mean what it did.
54
+ *
55
+ * What that costs is worth keeping, because it is the reason to check a
56
+ * pinned value rather than assume it is harmless: jbrowse passed exactly
57
+ * `50 * 2**20` in nine adapters, and measured on
58
+ * `test/data/1kg.chr1.subset.vcf.gz` that was a **total miss** — 47 refills
59
+ * out of 47 on the warm pass against 0 at the default, holding 82.7MB in a
60
+ * single entry, over the budget it was given because the last settled entry
61
+ * is kept whatever the budget. Those nine adapters now pass
62
+ * `chunkCacheBudget` and no `chunkCacheSize` at all, so that particular
63
+ * instance is gone; the trap it demonstrates is not.
56
64
  *
57
65
  * A retention bound, not a bound on peak memory: reads in flight are never
58
66
  * evicted and the last settled entry is kept whatever the budget. Size it
@@ -87,6 +95,23 @@ export default class TabixIndexedFile {
87
95
  * reading hand their space to the one being panned.
88
96
  */
89
97
  chunkCacheBudget?: SharedBudget;
98
+ /**
99
+ * A `@gmod/bgzf-filehandle` worker pool to inflate this file's chunks on,
100
+ * instead of inflating them on the calling thread.
101
+ *
102
+ * BGZF decompression dominates a cold query and BGZF blocks are
103
+ * independently inflatable, so this is the one remaining lever of that
104
+ * size. @gmod/bam measured 1.95x end to end wiring the same pool into a
105
+ * genome browser's read path.
106
+ *
107
+ * Accepts the promise `getSharedWorkerPool()` returns as well as a pool,
108
+ * so a caller whose own construction is synchronous can hand the pending
109
+ * pool straight over — it is awaited at the point of use, by which time it
110
+ * has long since resolved. `undefined` (which is what that helper gives
111
+ * back under node, or anywhere Workers cannot be created) keeps the
112
+ * in-process path, so this is safe to pass unconditionally.
113
+ */
114
+ bgzfWorkerPool?: BgzfWorkerPool | Promise<BgzfWorkerPool | undefined> | undefined;
90
115
  });
91
116
  /**
92
117
  * Drops every decompressed chunk held by the cache, and stops the idle sweep
@@ -198,7 +198,10 @@ class TabixIndexedFile {
198
198
  * entry, never evicted, which is what a memo is.
199
199
  */
200
200
  headerCache = new shared_read_cache_1.SharedReadCache({});
201
- constructor({ path, filehandle, url, tbiPath, tbiUrl, tbiFilehandle, csiPath, csiUrl, csiFilehandle, chunkCacheSize = DEFAULT_CHUNK_CACHE_BYTES, chunkCacheIdleTimeoutMs = DEFAULT_CHUNK_CACHE_IDLE_TIMEOUT_MS, chunkCacheBudget, }) {
201
+ /** see the constructor option of the same name */
202
+ bgzfWorkerPool;
203
+ constructor({ path, filehandle, url, tbiPath, tbiUrl, tbiFilehandle, csiPath, csiUrl, csiFilehandle, chunkCacheSize = DEFAULT_CHUNK_CACHE_BYTES, chunkCacheIdleTimeoutMs = DEFAULT_CHUNK_CACHE_IDLE_TIMEOUT_MS, chunkCacheBudget, bgzfWorkerPool, }) {
204
+ this.bgzfWorkerPool = bgzfWorkerPool;
202
205
  this.filehandle = resolveFilehandle(filehandle, path, url);
203
206
  this.index = resolveIndex({
204
207
  tbiFilehandle,
@@ -533,7 +536,11 @@ class TabixIndexedFile {
533
536
  /** @internal */
534
537
  async readChunk(c, opts = {}) {
535
538
  const ret = await this.filehandle.read(c.fetchedSize(), c.minv.blockPosition, opts);
536
- return (0, bgzf_filehandle_1.unzipChunkSlice)(ret, c);
539
+ // Awaited rather than stored resolved: the pool is commonly handed over as
540
+ // the pending promise from getSharedWorkerPool(), and awaiting an
541
+ // already-settled promise costs a microtask.
542
+ const pool = await this.bgzfWorkerPool;
543
+ return (0, bgzf_filehandle_1.unzipChunkSlice)(ret, c, pool);
537
544
  }
538
545
  }
539
546
  exports.default = TabixIndexedFile;
@@ -1 +1 @@
1
- {"version":3,"file":"tabixIndexedFile.js","sourceRoot":"","sources":["../src/tabixIndexedFile.ts"],"names":[],"mappings":";;;;;AAAA,2DAA8D;AAC9D,+DAAyD;AACzD,6DAA2D;AAE3D,sDAA0B;AAC1B,sDAA0B;AAC1B,uCAA0C;AAS1C,MAAM,GAAG,GAAG,CAAC,CAAA;AACb,MAAM,OAAO,GAAG,EAAE,CAAA;AAClB,MAAM,eAAe,GAAG,EAAE,CAAA;AAC1B,MAAM,SAAS,GAAG,EAAE,CAAA;AAEpB,+EAA+E;AAC/E,+EAA+E;AAC/E,kEAAkE;AAClE,MAAM,qBAAqB,GAAG,CAAC,CAAA;AAE/B,iEAAiE;AACjE,EAAE;AACF,gFAAgF;AAChF,8EAA8E;AAC9E,4EAA4E;AAC5E,2EAA2E;AAC3E,kDAAkD;AAClD,EAAE;AACF,4EAA4E;AAC5E,4EAA4E;AAC5E,4EAA4E;AAC5E,+EAA+E;AAC/E,4EAA4E;AAC5E,8EAA8E;AAC9E,qEAAqE;AACrE,EAAE;AACF,+EAA+E;AAC/E,sEAAsE;AACtE,qEAAqE;AACrE,MAAM,yBAAyB,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,CAAA;AAEhD,uEAAuE;AACvE,EAAE;AACF,4EAA4E;AAC5E,6EAA6E;AAC7E,gFAAgF;AAChF,4EAA4E;AAC5E,mDAAmD;AACnD,MAAM,mCAAmC,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAA;AA4BzD,SAAS,iBAAiB,CACxB,UAA8B,EAC9B,IAAa,EACb,GAAY;IAEZ,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,UAAU,CAAA;IACnB,CAAC;IACD,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,IAAI,+BAAS,CAAC,IAAI,CAAC,CAAA;IAC5B,CAAC;IACD,IAAI,GAAG,EAAE,CAAC;QACR,OAAO,IAAI,gCAAU,CAAC,GAAG,CAAC,CAAA;IAC5B,CAAC;IACD,MAAM,IAAI,SAAS,CAAC,8CAA8C,CAAC,CAAA;AACrE,CAAC;AAED,mEAAmE;AACnE,sEAAsE;AACtE,SAAS,YAAY,CAAC,EACpB,aAAa,EACb,aAAa,EACb,OAAO,EACP,OAAO,EACP,MAAM,EACN,MAAM,EACN,IAAI,EACJ,GAAG,GAUJ;IACC,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO,IAAI,gBAAG,CAAC,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC,CAAA;IAC/C,CAAC;IACD,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO,IAAI,gBAAG,CAAC,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC,CAAA;IAC/C,CAAC;IACD,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,IAAI,gBAAG,CAAC,EAAE,UAAU,EAAE,IAAI,+BAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;IACxD,CAAC;IACD,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,IAAI,gBAAG,CAAC,EAAE,UAAU,EAAE,IAAI,+BAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;IACxD,CAAC;IACD,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,IAAI,gBAAG,CAAC,EAAE,UAAU,EAAE,IAAI,gCAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;IACxD,CAAC;IACD,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,IAAI,gBAAG,CAAC,EAAE,UAAU,EAAE,IAAI,gCAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;IACxD,CAAC;IACD,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,IAAI,gBAAG,CAAC,EAAE,UAAU,EAAE,IAAI,+BAAS,CAAC,GAAG,IAAI,MAAM,CAAC,EAAE,CAAC,CAAA;IAC9D,CAAC;IACD,IAAI,GAAG,EAAE,CAAC;QACR,OAAO,IAAI,gBAAG,CAAC,EAAE,UAAU,EAAE,IAAI,gCAAU,CAAC,GAAG,GAAG,MAAM,CAAC,EAAE,CAAC,CAAA;IAC9D,CAAC;IACD,MAAM,IAAI,SAAS,CACjB,oFAAoF,CACrF,CAAA;AACH,CAAC;AAED,SAAS,mBAAmB,CAC1B,UAA6B,EAC7B,UAA6B,EAC7B,GAAW,EACX,UAAkB,EAClB,gBAAwB;IAExB,OAAO,CACL,UAAU,CAAC,GAAG,CAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC,UAAU,GAAG,UAAU,CAAC,GAAG,CAAE,CAAC;QAC/B,gBAAgB;QAChB,CAAC,CACF,CAAA;AACH,CAAC;AAED,SAAS,SAAS,CAChB,MAAkB,EAClB,eAAuB,EACvB,QAAgB,EAChB,MAAc,EACd,SAAiB,EACjB,OAAe;IAEf,MAAM,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAA;IAChC,IAAI,aAAa,GAAG,eAAe,GAAG,MAAM,CAAA;IAE5C,kCAAkC;IAClC,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC;QAC7B,OAAO,aAAa,CAAA;IACtB,CAAC;IAED,iEAAiE;IACjE,kEAAkE;IAClE,4DAA4D;IAC5D,IAAI,UAAU,GAAG,SAAS,CAAA;IAC1B,KAAK,IAAI,CAAC,GAAG,SAAS,EAAE,CAAC,IAAI,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1C,IAAI,CAAC,KAAK,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;YAC7C,MAAM,QAAQ,GAAG,CAAC,GAAG,UAAU,CAAA;YAC/B,IACE,QAAQ,IAAI,EAAE;gBACd,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,IAAI;gBACjC,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC,KAAK,EAAE,IAAI,IAAI;gBACrC,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC,KAAK,EAAE,IAAI,IAAI;gBACrC,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC,KAAK,EAAE,IAAI,IAAI;gBACrC,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC,KAAK,EAAE,IAAI,IAAI;gBACrC,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC,KAAK,EAAE,IAAI,IAAI;gBACrC,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC,KAAK,EAAE,IAAI,IAAI;gBACrC,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC,KAAK,EAAE,IAAI,IAAI;gBACrC,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC,KAAK,EAAE,IAAI,IAAI;gBACrC,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,IAAI;cAClC,CAAC;gBACD,OAAO,eAAe,GAAG,CAAC,CAAA;YAC5B,CAAC;YACD,IACE,QAAQ,IAAI,CAAC;gBACb,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,IAAI;gBACjC,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC,KAAK,EAAE,IAAI,IAAI;gBACrC,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC,KAAK,EAAE,IAAI,IAAI;gBACrC,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,IAAI;cAClC,CAAC;gBACD,aAAa,GAAG,iBAAiB,CAAC,MAAM,EAAE,UAAU,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;YAC9D,CAAC;YACD,UAAU,GAAG,CAAC,GAAG,CAAC,CAAA;QACpB,CAAC;IACH,CAAC;IACD,OAAO,aAAa,CAAA;AACtB,CAAC;AAED,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAA;AAErC;;;GAGG;AACH,SAAS,eAAe,CAAC,KAAiB,EAAE,QAAgB;IAC1D,IAAI,WAAW,GAAG,CAAC,CAAC,CAAA;IACpB,MAAM,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;IAEvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7C,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;QACrB,IAAI,CAAC,KAAK,WAAW,GAAG,CAAC,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC/C,MAAK;QACP,CAAC;QACD,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YACrB,WAAW,GAAG,CAAC,CAAA;QACjB,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,WAAW,GAAG,CAAC,CAAC,CAAA;AAC3C,CAAC;AAED;;;;;GAKG;AACH,SAAS,UAAU,CAAC,KAAiB,EAAE,KAAa;IAClD,IAAI,GAAG,GAAG,CAAC,CAAA;IACX,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;QAC/B,MAAM,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;QACrC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YACb,GAAG,GAAG,KAAK,CAAC,MAAM,CAAA;YAClB,MAAK;QACP,CAAC;QACD,GAAG,GAAG,CAAC,GAAG,CAAC,CAAA;IACb,CAAC;IACD,OAAO,WAAW;SACf,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;SAC9B,KAAK,CAAC,OAAO,CAAC;SACd,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;AACpB,CAAC;AAED,SAAS,iBAAiB,CAAC,MAAkB,EAAE,KAAa,EAAE,GAAW;IACvE,IAAI,GAAG,GAAG,CAAC,CAAA;IACX,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QACjC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAE,CAAA;QACpB,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;YACvB,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAA;QAC3B,CAAC;aAAM,CAAC;YACN,MAAK;QACP,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED;;GAEG;AACH,MAAqB,gBAAgB;IAC3B,UAAU,CAAmB;IAC7B,KAAK,CAAW;IACjB,UAAU,CAAmC;IACpD;;;OAGG;IACK,WAAW,GAAG,IAAI,mCAAe,CAGvC,EAAE,CAAC,CAAA;IAEL,YAAY,EACV,IAAI,EACJ,UAAU,EACV,GAAG,EACH,OAAO,EACP,MAAM,EACN,aAAa,EACb,OAAO,EACP,MAAM,EACN,aAAa,EACb,cAAc,GAAG,yBAAyB,EAC1C,uBAAuB,GAAG,mCAAmC,EAC7D,gBAAgB,GA0DjB;QACC,IAAI,CAAC,UAAU,GAAG,iBAAiB,CAAC,UAAU,EAAE,IAAI,EAAE,GAAG,CAAC,CAAA;QAC1D,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC;YACxB,aAAa;YACb,aAAa;YACb,OAAO;YACP,OAAO;YACP,MAAM;YACN,MAAM;YACN,IAAI;YACJ,GAAG;SACJ,CAAC,CAAA;QAEF,IAAI,CAAC,UAAU,GAAG,IAAI,mCAAe,CAAmB;YACtD,OAAO,EAAE,cAAc;YACvB,qEAAqE;YACrE,8CAA8C;YAC9C,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU;YACtC,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE;YACnC,aAAa,EAAE,uBAAuB;YACtC,MAAM,EAAE,gBAAgB;YACxB,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC;SAC3D,CAAC,CAAA;IACJ,CAAC;IAED;;;;;;;OAOG;IACH,eAAe;QACb,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAA;IACzB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,eAAe,CACnB,OAA0D,EAC1D,OAAgB,EAAE;QAElB,MAAM,GAAG,GAAY,EAAE,CAAA;QACvB,KAAK,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,OAAO,EAAE,CAAC;YAC9C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAA;YACzE,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YACjB,CAAC;QACH,CAAC;QACD,IAAI,KAAK,GAAG,CAAC,CAAA;QACb,KAAK,MAAM,KAAK,IAAI,IAAA,wBAAc,EAAC,GAAG,CAAC,EAAE,CAAC;YACxC,KAAK,IAAI,KAAK,CAAC,WAAW,EAAE,CAAA;QAC9B,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,QAAQ,CACZ,OAAe,EACf,CAAqB,EACrB,CAAqB,EACrB,IAAqC;QAErC,IAAI,MAA+B,CAAA;QACnC,IAAI,OAAO,GAAY,EAAE,CAAA;QACzB,IAAI,QAA0B,CAAA;QAC9B,IAAI,UAAsC,CAAA;QAE1C,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE,CAAC;YAC/B,QAAQ,GAAG,IAAI,CAAA;QACjB,CAAC;aAAM,CAAC;YACN,OAAO,GAAG,IAAI,CAAA;YACd,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAA;YAC5B,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;YACpB,UAAU,GAAG,IAAI,CAAC,UAAU,CAAA;QAC9B,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;QACtD,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,CAAA;QACpB,MAAM,GAAG,GAAG,CAAC,IAAI,QAAQ,CAAC,YAAY,CAAA;QACtC,IAAI,KAAK,GAAG,GAAG,EAAE,CAAC;YAChB,MAAM,IAAI,SAAS,CACjB,4EAA4E,CAC7E,CAAA;QACH,CAAC;QACD,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;YAClB,OAAM;QACR,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,CAAA;QAE5E,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,KAAK,KAAK,CAAA;QACvC,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,CAAA;QAC9C,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC,CAAA;QAClD,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,CAAA;QAC1D,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAA;QACpD,MAAM,YAAY,GAAG,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC,CAAA;QACrD,MAAM,gBAAgB,GACpB,QAAQ,CAAC,cAAc,KAAK,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAEvD,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAA;QACjC,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAA;QACjC,MAAM,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QAClD,0EAA0E;QAC1E,6EAA6E;QAC7E,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,SAAS,GAAG,CAAC,CAAC,CAAA;QAE1C,IAAI,UAAU,GAAG,CAAC,CAAA;QAClB,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;YACvB,UAAU,IAAI,CAAC,CAAC,WAAW,EAAE,CAAA;QAC/B,CAAC;QACD,IAAI,eAAe,GAAG,CAAC,CAAA;QACvB,UAAU,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,CAAA;QAE3B,yEAAyE;QACzE,2EAA2E;QAC3E,0EAA0E;QAC1E,uEAAuE;QACvE,EAAE;QACF,2EAA2E;QAC3E,4EAA4E;QAC5E,wEAAwE;QACxE,yEAAyE;QACzE,6DAA6D;QAC7D,EAAE;QACF,2EAA2E;QAC3E,wEAAwE;QACxE,2EAA2E;QAC3E,2EAA2E;QAC3E,IAAI,SAAS,GAAG,CAAC,CAAA;QACjB,MAAM,KAAK,GAAyB,EAAE,CAAA;QACtC,MAAM,kBAAkB,GAAG,CAAC,KAAa,EAAE,EAAE;YAC3C,OAAO,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;gBACrD,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAE,CAAA;gBAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;gBAC3C,KAAK,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE;oBACnB,qEAAqE;oBACrE,sDAAsD;gBACxD,CAAC,CAAC,CAAA;gBACF,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAClB,CAAC;QACH,CAAC,CAAA;QACD,kBAAkB,CAAC,CAAC,CAAC,CAAA;QAErB,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YACnD,MAAM,CAAC,GAAG,MAAM,CAAC,EAAE,CAAE,CAAA;YACrB,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,MAAM,KAAK,CAAC,EAAE,CAAE,CAAA;YAC3D,eAAe,IAAI,CAAC,CAAC,WAAW,EAAE,CAAA;YAClC,UAAU,EAAE,CAAC,eAAe,EAAE,UAAU,CAAC,CAAA;YACzC,MAAM,gBAAgB,GAAG,CAAC,CAAC,IAAI,CAAC,YAAY,CAAA;YAE5C,IAAI,UAAU,GAAG,CAAC,CAAA;YAClB,IAAI,GAAG,GAAG,CAAC,CAAA;YAEX,OAAO,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;gBAClC,MAAM,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC,CAAA;gBAC7C,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;oBACb,MAAK;gBACP,CAAC;gBAED,MAAM,MAAM,GAAG,UAAU,GAAG,gBAAgB,CAAA;gBAC5C,OAAO,GAAG,GAAG,UAAU,CAAC,MAAM,IAAI,MAAM,IAAI,UAAU,CAAC,GAAG,CAAE,EAAE,CAAC;oBAC7D,GAAG,EAAE,CAAA;gBACP,CAAC;gBAED,kBAAkB;gBAClB,IAAI,YAAY,KAAK,SAAS,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,YAAY,EAAE,CAAC;oBACtE,UAAU,GAAG,CAAC,GAAG,CAAC,CAAA;oBAClB,SAAQ;gBACV,CAAC;gBAED,mEAAmE;gBACnE,qEAAqE;gBACrE,0CAA0C;gBAC1C,IAAI,CAAC,CAAC,CAAC,GAAG,UAAU,GAAG,CAAC,CAAA;gBACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;oBACnC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAE,CAAA;oBACrB,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;oBAC5D,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAA;gBACzD,CAAC;gBAED,kCAAkC;gBAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAE,GAAG,CAAC,CAAA;gBACtC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAE,CAAA;gBAC5B,MAAM,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAA;gBAChC,IAAI,MAAM,KAAK,kBAAkB,CAAC,MAAM,EAAE,CAAC;oBACzC,UAAU,GAAG,CAAC,GAAG,CAAC,CAAA;oBAClB,SAAQ;gBACV,CAAC;gBACD,IAAI,UAAU,GAAG,IAAI,CAAA;gBACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBAChC,IAAI,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC,KAAK,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC;wBACnD,UAAU,GAAG,KAAK,CAAA;wBAClB,MAAK;oBACP,CAAC;gBACH,CAAC;gBACD,IAAI,CAAC,UAAU,EAAE,CAAC;oBAChB,UAAU,GAAG,CAAC,GAAG,CAAC,CAAA;oBAClB,SAAQ;gBACV,CAAC;gBAED,yBAAyB;gBACzB,MAAM,eAAe,GACnB,iBAAiB,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAE,GAAG,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAE,CAAC;oBACnE,gBAAgB,CAAA;gBAElB,IAAI,eAAe,IAAI,GAAG,EAAE,CAAC;oBAC3B,OAAM;gBACR,CAAC;gBAED,uBAAuB;gBACvB,IAAI,aAAqB,CAAA;gBACzB,IAAI,MAAM,KAAK,CAAC,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;oBACxC,aAAa,GAAG,eAAe,GAAG,CAAC,CAAA;gBACrC,CAAC;qBAAM,IAAI,KAAK,EAAE,CAAC;oBACjB,aAAa,GAAG,SAAS,CACvB,MAAM,EACN,eAAe,EACf,IAAI,CAAC,CAAC,CAAE,GAAG,CAAC,EACZ,IAAI,CAAC,CAAC,CAAE,EACR,IAAI,CAAC,MAAM,GAAG,CAAC,CAAE,GAAG,CAAC,EACrB,IAAI,CAAC,MAAM,CAAE,CACd,CAAA;gBACH,CAAC;qBAAM,CAAC;oBACN,aAAa,GAAG,iBAAiB,CAC/B,MAAM,EACN,IAAI,CAAC,MAAM,GAAG,CAAC,CAAE,GAAG,CAAC,EACrB,IAAI,CAAC,MAAM,CAAE,CACd,CAAA;gBACH,CAAC;gBAED,IAAI,aAAa,GAAG,KAAK,EAAE,CAAC;oBAC1B,wDAAwD;oBACxD,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,eAAe,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;oBAC7D,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAA;oBACjE,QAAQ,CACN,IAAI,EACJ,mBAAmB,CACjB,UAAU,EACV,UAAU,EACV,GAAG,EACH,UAAU,EACV,gBAAgB,CACjB,EACD,eAAe,EACf,aAAa,CACd,CAAA;gBACH,CAAC;gBACD,UAAU,GAAG,CAAC,GAAG,CAAC,CAAA;YACpB,CAAC;YAED,yEAAyE;YACzE,uEAAuE;YACvE,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,EAAE,qBAAqB,CAAC,CAAA;YAC1D,kBAAkB,CAAC,EAAE,GAAG,CAAC,GAAG,SAAS,CAAC,CAAA;QACxC,CAAC;IACH,CAAC;IAED,gBAAgB;IAChB,KAAK,CAAC,WAAW,CAAC,OAAgB,EAAE;QAClC,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;IACrC,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,eAAe,CAAC,IAAa;QACzC,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;QAEpE,MAAM,QAAQ,GAAG,CAAC,aAAa,EAAE,aAAa,IAAI,CAAC,CAAC,GAAG,YAAY,CAAA;QACnE,uEAAuE;QACvE,8DAA8D;QAE9D,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,IAAI,CAAC,CAAA;QACzD,OAAO,IAAA,uBAAK,EAAC,GAAG,CAAC,CAAA;IACnB,CAAC;IAED;;;;;;;;;OASG;IACK,KAAK,CAAC,WAAW,CAAC,IAAa;QACrC,MAAM,EAAE,QAAQ,EAAE,SAAS,GAAG,CAAC,EAAE,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;QAChE,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAA;QAC9C,OAAO;YACL,MAAM,EAAE,WAAW,CAAC,MAAM,CACxB,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CACpD;YACD,YAAY,EAAE,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE;SAChE,CAAA;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IACK,eAAe,CAAC,OAAgB,EAAE;QACxC,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAC1D,IAAI,CAAC,WAAW,CAAC,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,CAAC,CACtC,CAAA;IACH,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,eAAe,CAAC,OAAgB,EAAE;QACtC,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;QACjD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAA;QAC9C,OAAO,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;IAC5D,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,KAAK,CAAC,eAAe,CAAC,OAAgB,EAAE;QACtC,MAAM,EAAE,SAAS,GAAG,CAAC,EAAE,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;QACtD,iEAAiE;QACjE,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;YACnB,OAAO,EAAE,CAAA;QACX,CAAC;QACD,OAAO,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAA;IACxD,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,OAAgB,EAAE;QAChC,OAAO,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAA;IAClD,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,cAAc,CAAC,OAAgB,EAAE;QACrC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAA;QACjE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IACxE,CAAC;IAED,KAAK,CAAC,yBAAyB,CAAC,OAAgB,EAAE;QAChD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;QAC7C,OAAO,QAAQ,CAAC,WAAW,CAAA;IAC7B,CAAC;IAED,6CAA6C;IAC7C,KAAK,CAAC,SAAS,CAAC,OAAe,EAAE,OAAgB,EAAE;QACjD,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;IAC5C,CAAC;IAED,gBAAgB;IAChB,KAAK,CAAC,SAAS,CAAC,CAAQ,EAAE,OAAgB,EAAE;QAC1C,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CACpC,CAAC,CAAC,WAAW,EAAE,EACf,CAAC,CAAC,IAAI,CAAC,aAAa,EACpB,IAAI,CACL,CAAA;QACD,OAAO,IAAA,iCAAe,EAAC,GAAG,EAAE,CAAC,CAAC,CAAA;IAChC,CAAC;CACF;AA/eD,mCA+eC"}
1
+ {"version":3,"file":"tabixIndexedFile.js","sourceRoot":"","sources":["../src/tabixIndexedFile.ts"],"names":[],"mappings":";;;;;AAAA,2DAA8D;AAC9D,+DAAyD;AACzD,6DAA2D;AAE3D,sDAA0B;AAC1B,sDAA0B;AAC1B,uCAA0C;AAS1C,MAAM,GAAG,GAAG,CAAC,CAAA;AACb,MAAM,OAAO,GAAG,EAAE,CAAA;AAClB,MAAM,eAAe,GAAG,EAAE,CAAA;AAC1B,MAAM,SAAS,GAAG,EAAE,CAAA;AAEpB,+EAA+E;AAC/E,+EAA+E;AAC/E,kEAAkE;AAClE,MAAM,qBAAqB,GAAG,CAAC,CAAA;AAE/B,iEAAiE;AACjE,EAAE;AACF,gFAAgF;AAChF,8EAA8E;AAC9E,4EAA4E;AAC5E,2EAA2E;AAC3E,kDAAkD;AAClD,EAAE;AACF,4EAA4E;AAC5E,4EAA4E;AAC5E,4EAA4E;AAC5E,+EAA+E;AAC/E,4EAA4E;AAC5E,8EAA8E;AAC9E,qEAAqE;AACrE,EAAE;AACF,+EAA+E;AAC/E,sEAAsE;AACtE,qEAAqE;AACrE,MAAM,yBAAyB,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,CAAA;AAEhD,uEAAuE;AACvE,EAAE;AACF,4EAA4E;AAC5E,6EAA6E;AAC7E,gFAAgF;AAChF,4EAA4E;AAC5E,mDAAmD;AACnD,MAAM,mCAAmC,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAA;AA4BzD,SAAS,iBAAiB,CACxB,UAA8B,EAC9B,IAAa,EACb,GAAY;IAEZ,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,UAAU,CAAA;IACnB,CAAC;IACD,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,IAAI,+BAAS,CAAC,IAAI,CAAC,CAAA;IAC5B,CAAC;IACD,IAAI,GAAG,EAAE,CAAC;QACR,OAAO,IAAI,gCAAU,CAAC,GAAG,CAAC,CAAA;IAC5B,CAAC;IACD,MAAM,IAAI,SAAS,CAAC,8CAA8C,CAAC,CAAA;AACrE,CAAC;AAED,mEAAmE;AACnE,sEAAsE;AACtE,SAAS,YAAY,CAAC,EACpB,aAAa,EACb,aAAa,EACb,OAAO,EACP,OAAO,EACP,MAAM,EACN,MAAM,EACN,IAAI,EACJ,GAAG,GAUJ;IACC,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO,IAAI,gBAAG,CAAC,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC,CAAA;IAC/C,CAAC;IACD,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO,IAAI,gBAAG,CAAC,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC,CAAA;IAC/C,CAAC;IACD,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,IAAI,gBAAG,CAAC,EAAE,UAAU,EAAE,IAAI,+BAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;IACxD,CAAC;IACD,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,IAAI,gBAAG,CAAC,EAAE,UAAU,EAAE,IAAI,+BAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;IACxD,CAAC;IACD,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,IAAI,gBAAG,CAAC,EAAE,UAAU,EAAE,IAAI,gCAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;IACxD,CAAC;IACD,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,IAAI,gBAAG,CAAC,EAAE,UAAU,EAAE,IAAI,gCAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;IACxD,CAAC;IACD,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,IAAI,gBAAG,CAAC,EAAE,UAAU,EAAE,IAAI,+BAAS,CAAC,GAAG,IAAI,MAAM,CAAC,EAAE,CAAC,CAAA;IAC9D,CAAC;IACD,IAAI,GAAG,EAAE,CAAC;QACR,OAAO,IAAI,gBAAG,CAAC,EAAE,UAAU,EAAE,IAAI,gCAAU,CAAC,GAAG,GAAG,MAAM,CAAC,EAAE,CAAC,CAAA;IAC9D,CAAC;IACD,MAAM,IAAI,SAAS,CACjB,oFAAoF,CACrF,CAAA;AACH,CAAC;AAED,SAAS,mBAAmB,CAC1B,UAA6B,EAC7B,UAA6B,EAC7B,GAAW,EACX,UAAkB,EAClB,gBAAwB;IAExB,OAAO,CACL,UAAU,CAAC,GAAG,CAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC,UAAU,GAAG,UAAU,CAAC,GAAG,CAAE,CAAC;QAC/B,gBAAgB;QAChB,CAAC,CACF,CAAA;AACH,CAAC;AAED,SAAS,SAAS,CAChB,MAAkB,EAClB,eAAuB,EACvB,QAAgB,EAChB,MAAc,EACd,SAAiB,EACjB,OAAe;IAEf,MAAM,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAA;IAChC,IAAI,aAAa,GAAG,eAAe,GAAG,MAAM,CAAA;IAE5C,kCAAkC;IAClC,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC;QAC7B,OAAO,aAAa,CAAA;IACtB,CAAC;IAED,iEAAiE;IACjE,kEAAkE;IAClE,4DAA4D;IAC5D,IAAI,UAAU,GAAG,SAAS,CAAA;IAC1B,KAAK,IAAI,CAAC,GAAG,SAAS,EAAE,CAAC,IAAI,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1C,IAAI,CAAC,KAAK,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;YAC7C,MAAM,QAAQ,GAAG,CAAC,GAAG,UAAU,CAAA;YAC/B,IACE,QAAQ,IAAI,EAAE;gBACd,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,IAAI;gBACjC,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC,KAAK,EAAE,IAAI,IAAI;gBACrC,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC,KAAK,EAAE,IAAI,IAAI;gBACrC,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC,KAAK,EAAE,IAAI,IAAI;gBACrC,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC,KAAK,EAAE,IAAI,IAAI;gBACrC,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC,KAAK,EAAE,IAAI,IAAI;gBACrC,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC,KAAK,EAAE,IAAI,IAAI;gBACrC,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC,KAAK,EAAE,IAAI,IAAI;gBACrC,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC,KAAK,EAAE,IAAI,IAAI;gBACrC,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,IAAI;cAClC,CAAC;gBACD,OAAO,eAAe,GAAG,CAAC,CAAA;YAC5B,CAAC;YACD,IACE,QAAQ,IAAI,CAAC;gBACb,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,IAAI;gBACjC,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC,KAAK,EAAE,IAAI,IAAI;gBACrC,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC,KAAK,EAAE,IAAI,IAAI;gBACrC,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,IAAI;cAClC,CAAC;gBACD,aAAa,GAAG,iBAAiB,CAAC,MAAM,EAAE,UAAU,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;YAC9D,CAAC;YACD,UAAU,GAAG,CAAC,GAAG,CAAC,CAAA;QACpB,CAAC;IACH,CAAC;IACD,OAAO,aAAa,CAAA;AACtB,CAAC;AAED,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAA;AAErC;;;GAGG;AACH,SAAS,eAAe,CAAC,KAAiB,EAAE,QAAgB;IAC1D,IAAI,WAAW,GAAG,CAAC,CAAC,CAAA;IACpB,MAAM,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;IAEvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7C,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;QACrB,IAAI,CAAC,KAAK,WAAW,GAAG,CAAC,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC/C,MAAK;QACP,CAAC;QACD,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YACrB,WAAW,GAAG,CAAC,CAAA;QACjB,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,WAAW,GAAG,CAAC,CAAC,CAAA;AAC3C,CAAC;AAED;;;;;GAKG;AACH,SAAS,UAAU,CAAC,KAAiB,EAAE,KAAa;IAClD,IAAI,GAAG,GAAG,CAAC,CAAA;IACX,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;QAC/B,MAAM,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;QACrC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YACb,GAAG,GAAG,KAAK,CAAC,MAAM,CAAA;YAClB,MAAK;QACP,CAAC;QACD,GAAG,GAAG,CAAC,GAAG,CAAC,CAAA;IACb,CAAC;IACD,OAAO,WAAW;SACf,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;SAC9B,KAAK,CAAC,OAAO,CAAC;SACd,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;AACpB,CAAC;AAED,SAAS,iBAAiB,CAAC,MAAkB,EAAE,KAAa,EAAE,GAAW;IACvE,IAAI,GAAG,GAAG,CAAC,CAAA;IACX,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QACjC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAE,CAAA;QACpB,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;YACvB,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAA;QAC3B,CAAC;aAAM,CAAC;YACN,MAAK;QACP,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED;;GAEG;AACH,MAAqB,gBAAgB;IAC3B,UAAU,CAAmB;IAC7B,KAAK,CAAW;IACjB,UAAU,CAAmC;IACpD;;;OAGG;IACK,WAAW,GAAG,IAAI,mCAAe,CAGvC,EAAE,CAAC,CAAA;IAEL,kDAAkD;IAC1C,cAAc,CAC4C;IAElE,YAAY,EACV,IAAI,EACJ,UAAU,EACV,GAAG,EACH,OAAO,EACP,MAAM,EACN,aAAa,EACb,OAAO,EACP,MAAM,EACN,aAAa,EACb,cAAc,GAAG,yBAAyB,EAC1C,uBAAuB,GAAG,mCAAmC,EAC7D,gBAAgB,EAChB,cAAc,GAkFf;QACC,IAAI,CAAC,cAAc,GAAG,cAAc,CAAA;QACpC,IAAI,CAAC,UAAU,GAAG,iBAAiB,CAAC,UAAU,EAAE,IAAI,EAAE,GAAG,CAAC,CAAA;QAC1D,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC;YACxB,aAAa;YACb,aAAa;YACb,OAAO;YACP,OAAO;YACP,MAAM;YACN,MAAM;YACN,IAAI;YACJ,GAAG;SACJ,CAAC,CAAA;QAEF,IAAI,CAAC,UAAU,GAAG,IAAI,mCAAe,CAAmB;YACtD,OAAO,EAAE,cAAc;YACvB,qEAAqE;YACrE,8CAA8C;YAC9C,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU;YACtC,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE;YACnC,aAAa,EAAE,uBAAuB;YACtC,MAAM,EAAE,gBAAgB;YACxB,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC;SAC3D,CAAC,CAAA;IACJ,CAAC;IAED;;;;;;;OAOG;IACH,eAAe;QACb,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAA;IACzB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,eAAe,CACnB,OAA0D,EAC1D,OAAgB,EAAE;QAElB,MAAM,GAAG,GAAY,EAAE,CAAA;QACvB,KAAK,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,OAAO,EAAE,CAAC;YAC9C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAA;YACzE,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YACjB,CAAC;QACH,CAAC;QACD,IAAI,KAAK,GAAG,CAAC,CAAA;QACb,KAAK,MAAM,KAAK,IAAI,IAAA,wBAAc,EAAC,GAAG,CAAC,EAAE,CAAC;YACxC,KAAK,IAAI,KAAK,CAAC,WAAW,EAAE,CAAA;QAC9B,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,QAAQ,CACZ,OAAe,EACf,CAAqB,EACrB,CAAqB,EACrB,IAAqC;QAErC,IAAI,MAA+B,CAAA;QACnC,IAAI,OAAO,GAAY,EAAE,CAAA;QACzB,IAAI,QAA0B,CAAA;QAC9B,IAAI,UAAsC,CAAA;QAE1C,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE,CAAC;YAC/B,QAAQ,GAAG,IAAI,CAAA;QACjB,CAAC;aAAM,CAAC;YACN,OAAO,GAAG,IAAI,CAAA;YACd,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAA;YAC5B,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;YACpB,UAAU,GAAG,IAAI,CAAC,UAAU,CAAA;QAC9B,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;QACtD,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,CAAA;QACpB,MAAM,GAAG,GAAG,CAAC,IAAI,QAAQ,CAAC,YAAY,CAAA;QACtC,IAAI,KAAK,GAAG,GAAG,EAAE,CAAC;YAChB,MAAM,IAAI,SAAS,CACjB,4EAA4E,CAC7E,CAAA;QACH,CAAC;QACD,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;YAClB,OAAM;QACR,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,CAAA;QAE5E,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,KAAK,KAAK,CAAA;QACvC,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,CAAA;QAC9C,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC,CAAA;QAClD,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,CAAA;QAC1D,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAA;QACpD,MAAM,YAAY,GAAG,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC,CAAA;QACrD,MAAM,gBAAgB,GACpB,QAAQ,CAAC,cAAc,KAAK,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAEvD,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAA;QACjC,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAA;QACjC,MAAM,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QAClD,0EAA0E;QAC1E,6EAA6E;QAC7E,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,SAAS,GAAG,CAAC,CAAC,CAAA;QAE1C,IAAI,UAAU,GAAG,CAAC,CAAA;QAClB,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;YACvB,UAAU,IAAI,CAAC,CAAC,WAAW,EAAE,CAAA;QAC/B,CAAC;QACD,IAAI,eAAe,GAAG,CAAC,CAAA;QACvB,UAAU,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,CAAA;QAE3B,yEAAyE;QACzE,2EAA2E;QAC3E,0EAA0E;QAC1E,uEAAuE;QACvE,EAAE;QACF,2EAA2E;QAC3E,4EAA4E;QAC5E,wEAAwE;QACxE,yEAAyE;QACzE,6DAA6D;QAC7D,EAAE;QACF,2EAA2E;QAC3E,wEAAwE;QACxE,2EAA2E;QAC3E,2EAA2E;QAC3E,IAAI,SAAS,GAAG,CAAC,CAAA;QACjB,MAAM,KAAK,GAAyB,EAAE,CAAA;QACtC,MAAM,kBAAkB,GAAG,CAAC,KAAa,EAAE,EAAE;YAC3C,OAAO,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;gBACrD,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAE,CAAA;gBAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;gBAC3C,KAAK,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE;oBACnB,qEAAqE;oBACrE,sDAAsD;gBACxD,CAAC,CAAC,CAAA;gBACF,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAClB,CAAC;QACH,CAAC,CAAA;QACD,kBAAkB,CAAC,CAAC,CAAC,CAAA;QAErB,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YACnD,MAAM,CAAC,GAAG,MAAM,CAAC,EAAE,CAAE,CAAA;YACrB,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,MAAM,KAAK,CAAC,EAAE,CAAE,CAAA;YAC3D,eAAe,IAAI,CAAC,CAAC,WAAW,EAAE,CAAA;YAClC,UAAU,EAAE,CAAC,eAAe,EAAE,UAAU,CAAC,CAAA;YACzC,MAAM,gBAAgB,GAAG,CAAC,CAAC,IAAI,CAAC,YAAY,CAAA;YAE5C,IAAI,UAAU,GAAG,CAAC,CAAA;YAClB,IAAI,GAAG,GAAG,CAAC,CAAA;YAEX,OAAO,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;gBAClC,MAAM,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC,CAAA;gBAC7C,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;oBACb,MAAK;gBACP,CAAC;gBAED,MAAM,MAAM,GAAG,UAAU,GAAG,gBAAgB,CAAA;gBAC5C,OAAO,GAAG,GAAG,UAAU,CAAC,MAAM,IAAI,MAAM,IAAI,UAAU,CAAC,GAAG,CAAE,EAAE,CAAC;oBAC7D,GAAG,EAAE,CAAA;gBACP,CAAC;gBAED,kBAAkB;gBAClB,IAAI,YAAY,KAAK,SAAS,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,YAAY,EAAE,CAAC;oBACtE,UAAU,GAAG,CAAC,GAAG,CAAC,CAAA;oBAClB,SAAQ;gBACV,CAAC;gBAED,mEAAmE;gBACnE,qEAAqE;gBACrE,0CAA0C;gBAC1C,IAAI,CAAC,CAAC,CAAC,GAAG,UAAU,GAAG,CAAC,CAAA;gBACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;oBACnC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAE,CAAA;oBACrB,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;oBAC5D,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAA;gBACzD,CAAC;gBAED,kCAAkC;gBAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAE,GAAG,CAAC,CAAA;gBACtC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAE,CAAA;gBAC5B,MAAM,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAA;gBAChC,IAAI,MAAM,KAAK,kBAAkB,CAAC,MAAM,EAAE,CAAC;oBACzC,UAAU,GAAG,CAAC,GAAG,CAAC,CAAA;oBAClB,SAAQ;gBACV,CAAC;gBACD,IAAI,UAAU,GAAG,IAAI,CAAA;gBACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBAChC,IAAI,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC,KAAK,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC;wBACnD,UAAU,GAAG,KAAK,CAAA;wBAClB,MAAK;oBACP,CAAC;gBACH,CAAC;gBACD,IAAI,CAAC,UAAU,EAAE,CAAC;oBAChB,UAAU,GAAG,CAAC,GAAG,CAAC,CAAA;oBAClB,SAAQ;gBACV,CAAC;gBAED,yBAAyB;gBACzB,MAAM,eAAe,GACnB,iBAAiB,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAE,GAAG,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAE,CAAC;oBACnE,gBAAgB,CAAA;gBAElB,IAAI,eAAe,IAAI,GAAG,EAAE,CAAC;oBAC3B,OAAM;gBACR,CAAC;gBAED,uBAAuB;gBACvB,IAAI,aAAqB,CAAA;gBACzB,IAAI,MAAM,KAAK,CAAC,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;oBACxC,aAAa,GAAG,eAAe,GAAG,CAAC,CAAA;gBACrC,CAAC;qBAAM,IAAI,KAAK,EAAE,CAAC;oBACjB,aAAa,GAAG,SAAS,CACvB,MAAM,EACN,eAAe,EACf,IAAI,CAAC,CAAC,CAAE,GAAG,CAAC,EACZ,IAAI,CAAC,CAAC,CAAE,EACR,IAAI,CAAC,MAAM,GAAG,CAAC,CAAE,GAAG,CAAC,EACrB,IAAI,CAAC,MAAM,CAAE,CACd,CAAA;gBACH,CAAC;qBAAM,CAAC;oBACN,aAAa,GAAG,iBAAiB,CAC/B,MAAM,EACN,IAAI,CAAC,MAAM,GAAG,CAAC,CAAE,GAAG,CAAC,EACrB,IAAI,CAAC,MAAM,CAAE,CACd,CAAA;gBACH,CAAC;gBAED,IAAI,aAAa,GAAG,KAAK,EAAE,CAAC;oBAC1B,wDAAwD;oBACxD,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,eAAe,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;oBAC7D,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAA;oBACjE,QAAQ,CACN,IAAI,EACJ,mBAAmB,CACjB,UAAU,EACV,UAAU,EACV,GAAG,EACH,UAAU,EACV,gBAAgB,CACjB,EACD,eAAe,EACf,aAAa,CACd,CAAA;gBACH,CAAC;gBACD,UAAU,GAAG,CAAC,GAAG,CAAC,CAAA;YACpB,CAAC;YAED,yEAAyE;YACzE,uEAAuE;YACvE,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,EAAE,qBAAqB,CAAC,CAAA;YAC1D,kBAAkB,CAAC,EAAE,GAAG,CAAC,GAAG,SAAS,CAAC,CAAA;QACxC,CAAC;IACH,CAAC;IAED,gBAAgB;IAChB,KAAK,CAAC,WAAW,CAAC,OAAgB,EAAE;QAClC,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;IACrC,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,eAAe,CAAC,IAAa;QACzC,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;QAEpE,MAAM,QAAQ,GAAG,CAAC,aAAa,EAAE,aAAa,IAAI,CAAC,CAAC,GAAG,YAAY,CAAA;QACnE,uEAAuE;QACvE,8DAA8D;QAE9D,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,IAAI,CAAC,CAAA;QACzD,OAAO,IAAA,uBAAK,EAAC,GAAG,CAAC,CAAA;IACnB,CAAC;IAED;;;;;;;;;OASG;IACK,KAAK,CAAC,WAAW,CAAC,IAAa;QACrC,MAAM,EAAE,QAAQ,EAAE,SAAS,GAAG,CAAC,EAAE,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;QAChE,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAA;QAC9C,OAAO;YACL,MAAM,EAAE,WAAW,CAAC,MAAM,CACxB,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CACpD;YACD,YAAY,EAAE,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE;SAChE,CAAA;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IACK,eAAe,CAAC,OAAgB,EAAE;QACxC,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAC1D,IAAI,CAAC,WAAW,CAAC,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,CAAC,CACtC,CAAA;IACH,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,eAAe,CAAC,OAAgB,EAAE;QACtC,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;QACjD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAA;QAC9C,OAAO,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;IAC5D,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,KAAK,CAAC,eAAe,CAAC,OAAgB,EAAE;QACtC,MAAM,EAAE,SAAS,GAAG,CAAC,EAAE,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;QACtD,iEAAiE;QACjE,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;YACnB,OAAO,EAAE,CAAA;QACX,CAAC;QACD,OAAO,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAA;IACxD,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,OAAgB,EAAE;QAChC,OAAO,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAA;IAClD,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,cAAc,CAAC,OAAgB,EAAE;QACrC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAA;QACjE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IACxE,CAAC;IAED,KAAK,CAAC,yBAAyB,CAAC,OAAgB,EAAE;QAChD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;QAC7C,OAAO,QAAQ,CAAC,WAAW,CAAA;IAC7B,CAAC;IAED,6CAA6C;IAC7C,KAAK,CAAC,SAAS,CAAC,OAAe,EAAE,OAAgB,EAAE;QACjD,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;IAC5C,CAAC;IAED,gBAAgB;IAChB,KAAK,CAAC,SAAS,CAAC,CAAQ,EAAE,OAAgB,EAAE;QAC1C,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CACpC,CAAC,CAAC,WAAW,EAAE,EACf,CAAC,CAAC,IAAI,CAAC,aAAa,EACpB,IAAI,CACL,CAAA;QACD,2EAA2E;QAC3E,kEAAkE;QAClE,6CAA6C;QAC7C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CAAA;QACtC,OAAO,IAAA,iCAAe,EAAC,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,CAAA;IACtC,CAAC;CACF;AAjhBD,mCAihBC"}
@@ -1,7 +1,7 @@
1
1
  import { SharedReadCache } from '@gmod/shared-read-cache';
2
2
  import type Chunk from './chunk.ts';
3
3
  import type { Options } from './indexFile.ts';
4
- import type { ChunkSlice } from '@gmod/bgzf-filehandle';
4
+ import type { BgzfWorkerPool, ChunkSlice } from '@gmod/bgzf-filehandle';
5
5
  import type { SharedBudget } from '@gmod/shared-read-cache';
6
6
  import type { GenericFilehandle } from 'generic-filehandle2';
7
7
  type GetLinesCallback = (line: string, fileOffset: number, start: number, end: number) => void;
@@ -30,7 +30,9 @@ export default class TabixIndexedFile {
30
30
  * entry, never evicted, which is what a memo is.
31
31
  */
32
32
  private headerCache;
33
- constructor({ path, filehandle, url, tbiPath, tbiUrl, tbiFilehandle, csiPath, csiUrl, csiFilehandle, chunkCacheSize, chunkCacheIdleTimeoutMs, chunkCacheBudget, }: {
33
+ /** see the constructor option of the same name */
34
+ private bgzfWorkerPool?;
35
+ constructor({ path, filehandle, url, tbiPath, tbiUrl, tbiFilehandle, csiPath, csiUrl, csiFilehandle, chunkCacheSize, chunkCacheIdleTimeoutMs, chunkCacheBudget, bgzfWorkerPool, }: {
34
36
  path?: string;
35
37
  filehandle?: GenericFilehandle;
36
38
  url?: string;
@@ -47,12 +49,18 @@ export default class TabixIndexedFile {
47
49
  * by 64KB to get an entry count, so a caller passing `50 * 2**20` was
48
50
  * asking for 800 whole decompressed chunks — unbounded in practice. It now
49
51
  * means 50MB, twenty times under the default, and the name did not change
50
- * so nothing warns. jbrowse still passes exactly that in nine adapters:
51
- * measured on `test/data/1kg.chr1.subset.vcf.gz` it is a **total miss**,
52
- * 47 refills out of 47 on the warm pass against 0 at the default, holding
53
- * 82.7MB in a single entry — over the budget it was given, because the last
54
- * settled entry is kept whatever the budget. If you pinned a value here
55
- * before v3.5.2, it does not mean what it did.
52
+ * so nothing warns. If you pinned a value here before v3.5.2, it does not
53
+ * mean what it did.
54
+ *
55
+ * What that costs is worth keeping, because it is the reason to check a
56
+ * pinned value rather than assume it is harmless: jbrowse passed exactly
57
+ * `50 * 2**20` in nine adapters, and measured on
58
+ * `test/data/1kg.chr1.subset.vcf.gz` that was a **total miss** — 47 refills
59
+ * out of 47 on the warm pass against 0 at the default, holding 82.7MB in a
60
+ * single entry, over the budget it was given because the last settled entry
61
+ * is kept whatever the budget. Those nine adapters now pass
62
+ * `chunkCacheBudget` and no `chunkCacheSize` at all, so that particular
63
+ * instance is gone; the trap it demonstrates is not.
56
64
  *
57
65
  * A retention bound, not a bound on peak memory: reads in flight are never
58
66
  * evicted and the last settled entry is kept whatever the budget. Size it
@@ -87,6 +95,23 @@ export default class TabixIndexedFile {
87
95
  * reading hand their space to the one being panned.
88
96
  */
89
97
  chunkCacheBudget?: SharedBudget;
98
+ /**
99
+ * A `@gmod/bgzf-filehandle` worker pool to inflate this file's chunks on,
100
+ * instead of inflating them on the calling thread.
101
+ *
102
+ * BGZF decompression dominates a cold query and BGZF blocks are
103
+ * independently inflatable, so this is the one remaining lever of that
104
+ * size. @gmod/bam measured 1.95x end to end wiring the same pool into a
105
+ * genome browser's read path.
106
+ *
107
+ * Accepts the promise `getSharedWorkerPool()` returns as well as a pool,
108
+ * so a caller whose own construction is synchronous can hand the pending
109
+ * pool straight over — it is awaited at the point of use, by which time it
110
+ * has long since resolved. `undefined` (which is what that helper gives
111
+ * back under node, or anywhere Workers cannot be created) keeps the
112
+ * in-process path, so this is safe to pass unconditionally.
113
+ */
114
+ bgzfWorkerPool?: BgzfWorkerPool | Promise<BgzfWorkerPool | undefined> | undefined;
90
115
  });
91
116
  /**
92
117
  * Drops every decompressed chunk held by the cache, and stops the idle sweep
@@ -193,7 +193,10 @@ export default class TabixIndexedFile {
193
193
  * entry, never evicted, which is what a memo is.
194
194
  */
195
195
  headerCache = new SharedReadCache({});
196
- constructor({ path, filehandle, url, tbiPath, tbiUrl, tbiFilehandle, csiPath, csiUrl, csiFilehandle, chunkCacheSize = DEFAULT_CHUNK_CACHE_BYTES, chunkCacheIdleTimeoutMs = DEFAULT_CHUNK_CACHE_IDLE_TIMEOUT_MS, chunkCacheBudget, }) {
196
+ /** see the constructor option of the same name */
197
+ bgzfWorkerPool;
198
+ constructor({ path, filehandle, url, tbiPath, tbiUrl, tbiFilehandle, csiPath, csiUrl, csiFilehandle, chunkCacheSize = DEFAULT_CHUNK_CACHE_BYTES, chunkCacheIdleTimeoutMs = DEFAULT_CHUNK_CACHE_IDLE_TIMEOUT_MS, chunkCacheBudget, bgzfWorkerPool, }) {
199
+ this.bgzfWorkerPool = bgzfWorkerPool;
197
200
  this.filehandle = resolveFilehandle(filehandle, path, url);
198
201
  this.index = resolveIndex({
199
202
  tbiFilehandle,
@@ -528,7 +531,11 @@ export default class TabixIndexedFile {
528
531
  /** @internal */
529
532
  async readChunk(c, opts = {}) {
530
533
  const ret = await this.filehandle.read(c.fetchedSize(), c.minv.blockPosition, opts);
531
- return unzipChunkSlice(ret, c);
534
+ // Awaited rather than stored resolved: the pool is commonly handed over as
535
+ // the pending promise from getSharedWorkerPool(), and awaiting an
536
+ // already-settled promise costs a microtask.
537
+ const pool = await this.bgzfWorkerPool;
538
+ return unzipChunkSlice(ret, c, pool);
532
539
  }
533
540
  }
534
541
  //# sourceMappingURL=tabixIndexedFile.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tabixIndexedFile.js","sourceRoot":"","sources":["../src/tabixIndexedFile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tabixIndexedFile.js","sourceRoot":"","sources":["../src/tabixIndexedFile.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gmod/tabix",
3
- "version": "3.7.3",
3
+ "version": "3.8.1",
4
4
  "packageManager": "pnpm@11.15.1",
5
5
  "description": "Read Tabix-indexed files, supports both .tbi and .csi indexes",
6
6
  "type": "module",
@@ -51,7 +51,7 @@
51
51
  "genomics"
52
52
  ],
53
53
  "dependencies": {
54
- "@gmod/bgzf-filehandle": "^6.3.2",
54
+ "@gmod/bgzf-filehandle": "^6.6.0",
55
55
  "@gmod/shared-read-cache": "^1.5.1",
56
56
  "@jbrowse/quick-lru": "^7.3.5",
57
57
  "generic-filehandle2": "^2.2.1"
@@ -9,7 +9,7 @@ import { optimizeChunks } from './util.ts'
9
9
  import type Chunk from './chunk.ts'
10
10
  import type IndexFile from './indexFile.ts'
11
11
  import type { Options } from './indexFile.ts'
12
- import type { ChunkSlice } from '@gmod/bgzf-filehandle'
12
+ import type { BgzfWorkerPool, ChunkSlice } from '@gmod/bgzf-filehandle'
13
13
  import type { SharedBudget } from '@gmod/shared-read-cache'
14
14
  import type { GenericFilehandle } from 'generic-filehandle2'
15
15
 
@@ -287,6 +287,10 @@ export default class TabixIndexedFile {
287
287
  { header: string; skippedLines: string[] }
288
288
  >({})
289
289
 
290
+ /** see the constructor option of the same name */
291
+ private bgzfWorkerPool?:
292
+ BgzfWorkerPool | Promise<BgzfWorkerPool | undefined> | undefined
293
+
290
294
  constructor({
291
295
  path,
292
296
  filehandle,
@@ -300,6 +304,7 @@ export default class TabixIndexedFile {
300
304
  chunkCacheSize = DEFAULT_CHUNK_CACHE_BYTES,
301
305
  chunkCacheIdleTimeoutMs = DEFAULT_CHUNK_CACHE_IDLE_TIMEOUT_MS,
302
306
  chunkCacheBudget,
307
+ bgzfWorkerPool,
303
308
  }: {
304
309
  path?: string
305
310
  filehandle?: GenericFilehandle
@@ -317,12 +322,18 @@ export default class TabixIndexedFile {
317
322
  * by 64KB to get an entry count, so a caller passing `50 * 2**20` was
318
323
  * asking for 800 whole decompressed chunks — unbounded in practice. It now
319
324
  * means 50MB, twenty times under the default, and the name did not change
320
- * so nothing warns. jbrowse still passes exactly that in nine adapters:
321
- * measured on `test/data/1kg.chr1.subset.vcf.gz` it is a **total miss**,
322
- * 47 refills out of 47 on the warm pass against 0 at the default, holding
323
- * 82.7MB in a single entry — over the budget it was given, because the last
324
- * settled entry is kept whatever the budget. If you pinned a value here
325
- * before v3.5.2, it does not mean what it did.
325
+ * so nothing warns. If you pinned a value here before v3.5.2, it does not
326
+ * mean what it did.
327
+ *
328
+ * What that costs is worth keeping, because it is the reason to check a
329
+ * pinned value rather than assume it is harmless: jbrowse passed exactly
330
+ * `50 * 2**20` in nine adapters, and measured on
331
+ * `test/data/1kg.chr1.subset.vcf.gz` that was a **total miss** — 47 refills
332
+ * out of 47 on the warm pass against 0 at the default, holding 82.7MB in a
333
+ * single entry, over the budget it was given because the last settled entry
334
+ * is kept whatever the budget. Those nine adapters now pass
335
+ * `chunkCacheBudget` and no `chunkCacheSize` at all, so that particular
336
+ * instance is gone; the trap it demonstrates is not.
326
337
  *
327
338
  * A retention bound, not a bound on peak memory: reads in flight are never
328
339
  * evicted and the last settled entry is kept whatever the budget. Size it
@@ -357,7 +368,26 @@ export default class TabixIndexedFile {
357
368
  * reading hand their space to the one being panned.
358
369
  */
359
370
  chunkCacheBudget?: SharedBudget
371
+ /**
372
+ * A `@gmod/bgzf-filehandle` worker pool to inflate this file's chunks on,
373
+ * instead of inflating them on the calling thread.
374
+ *
375
+ * BGZF decompression dominates a cold query and BGZF blocks are
376
+ * independently inflatable, so this is the one remaining lever of that
377
+ * size. @gmod/bam measured 1.95x end to end wiring the same pool into a
378
+ * genome browser's read path.
379
+ *
380
+ * Accepts the promise `getSharedWorkerPool()` returns as well as a pool,
381
+ * so a caller whose own construction is synchronous can hand the pending
382
+ * pool straight over — it is awaited at the point of use, by which time it
383
+ * has long since resolved. `undefined` (which is what that helper gives
384
+ * back under node, or anywhere Workers cannot be created) keeps the
385
+ * in-process path, so this is safe to pass unconditionally.
386
+ */
387
+ bgzfWorkerPool?:
388
+ BgzfWorkerPool | Promise<BgzfWorkerPool | undefined> | undefined
360
389
  }) {
390
+ this.bgzfWorkerPool = bgzfWorkerPool
361
391
  this.filehandle = resolveFilehandle(filehandle, path, url)
362
392
  this.index = resolveIndex({
363
393
  tbiFilehandle,
@@ -767,6 +797,10 @@ export default class TabixIndexedFile {
767
797
  c.minv.blockPosition,
768
798
  opts,
769
799
  )
770
- return unzipChunkSlice(ret, c)
800
+ // Awaited rather than stored resolved: the pool is commonly handed over as
801
+ // the pending promise from getSharedWorkerPool(), and awaiting an
802
+ // already-settled promise costs a microtask.
803
+ const pool = await this.bgzfWorkerPool
804
+ return unzipChunkSlice(ret, c, pool)
771
805
  }
772
806
  }