@elaraai/east-node-cli 1.0.83 → 1.0.85

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.
@@ -15,12 +15,14 @@
15
15
  */
16
16
  import { describe, it } from 'node:test';
17
17
  import assert from 'node:assert/strict';
18
- import { existsSync, mkdtempSync, mkdirSync, readFileSync, readdirSync, renameSync, statSync, writeFileSync, rmSync } from 'node:fs';
18
+ import { cpSync, existsSync, mkdtempSync, mkdirSync, readFileSync, readdirSync, renameSync, statSync, symlinkSync, writeFileSync, rmSync } from 'node:fs';
19
19
  import { tmpdir } from 'node:os';
20
20
  import { join, dirname } from 'node:path';
21
21
  import { createHash } from 'node:crypto';
22
+ import { spawnSync } from 'node:child_process';
23
+ import { fileURLToPath } from 'node:url';
22
24
  import { Worker } from 'node:worker_threads';
23
- import { DictType, East, IntegerType, StringType, SortedMap, compareFor, decodeBeast2For, encodeBeast2For, encodeBeast2PagedFor, encodeEastIR, isFrozenValue, Beast2Pages, COLLECTION_MANIFEST_KIND, carveBeast2, encodeBeast2FenceFor, encodeCollectionManifest, openBeast2PagesFor, readBeast2Extents, segmentRuleFor, toEastTypeValue, } from '@elaraai/east';
25
+ import { DictType, East, IntegerType, StringType, SortedMap, compareFor, decodeBeast2For, encodeBeast2For, encodeBeast2PagedFor, encodeEastIR, isFrozenValue, Beast2Pages, COLLECTION_MANIFEST_KIND, carveBeast2, encodeBeast2FenceFor, encodeCollectionManifest, openBeast2PagesFor, readBeast2Extents, segmentRuleFor, toEastTypeValue, variant, } from '@elaraai/east';
24
26
  import { inputBytes, loadPlatform, loadPlatformWithMetadata, loadInput, loadInputLazy, lazyInputBytesRead } from './loader.js';
25
27
  import { runProgram } from './runner.js';
26
28
  /**
@@ -126,6 +128,41 @@ describe('loadPlatform — E3_RUNNER_SEARCH_DIRS (the e3 dataflow-run path)', ()
126
128
  }
127
129
  });
128
130
  });
131
+ describe('loadPlatform — a global install, whose bin links into the install', () => {
132
+ it("resolves a package installed beside the CLI from its script's real path, with no NODE_PATH", () => {
133
+ // npm's global layout: <prefix>/lib/node_modules holds the CLI and the
134
+ // packages installed beside it, and the bin node is started with links
135
+ // into the CLI's own. The walk up from the link's directory reaches no
136
+ // node_modules; the walk up from the script's real path does. A link to
137
+ // the CLI's bin directory stands for npm's link to its script: as a
138
+ // junction, it links on Windows too.
139
+ const packageDir = join(dirname(fileURLToPath(import.meta.url)), '..');
140
+ const prefix = mkdtempSync(join(tmpdir(), 'enc-global-'));
141
+ const scratch = mkdtempSync(join(tmpdir(), 'enc-scratch-'));
142
+ const platform = makeFakeProject('acme-global', 'export default [{ name: "acme.global", inputs: [], output: { type: "String" }, type: "sync", fn: () => "" }];\n');
143
+ try {
144
+ const modules = join(prefix, 'lib', 'node_modules');
145
+ const cli = join(modules, '@elaraai', 'east-node-cli');
146
+ mkdirSync(cli, { recursive: true });
147
+ cpSync(join(packageDir, 'package.json'), join(cli, 'package.json'));
148
+ cpSync(join(packageDir, 'bin'), join(cli, 'bin'), { recursive: true });
149
+ symlinkSync(join(packageDir, 'dist'), join(cli, 'dist'), 'junction');
150
+ cpSync(platform, join(modules, 'acme-global'), { recursive: true });
151
+ symlinkSync(join(cli, 'bin'), join(prefix, 'bin'), 'junction');
152
+ const env = { ...process.env };
153
+ delete env.NODE_PATH;
154
+ delete env.E3_RUNNER_SEARCH_DIRS;
155
+ const result = spawnSync(process.execPath, [join(prefix, 'bin', 'east-node.mjs'), 'version', '-p', 'acme-global'], { cwd: scratch, env, encoding: 'utf8' });
156
+ assert.equal(result.status, 0, result.stderr);
157
+ assert.match(result.stdout, /^ {2}acme-global 2\.3\.4 \(1 platform functions\)$/m, result.stdout);
158
+ }
159
+ finally {
160
+ rmSync(prefix, { recursive: true, force: true });
161
+ rmSync(scratch, { recursive: true, force: true });
162
+ rmSync(dirname(platform), { recursive: true, force: true });
163
+ }
164
+ });
165
+ });
129
166
  describe('loadPlatformWithMetadata — project-root resolution fallback', () => {
130
167
  it("reads name/version from the project's own package.json via the cwd fallback", async () => {
131
168
  const proj = makeFakeProject('acme-meta', 'export default [];\n');
@@ -304,7 +341,10 @@ describe('loadInputLazy — an input staged as a manifest over segment files', (
304
341
  if (placed.includes(segment) || existsSync(file)) continue;
305
342
  placed.push(segment);
306
343
  if (refusal !== undefined) {
307
- writeFileSync(file + '.error', refusal);
344
+ // Written whole, as e3's host writes it: under a name of its own,
345
+ // then renamed into place, so a runner that finds it reads all of it.
346
+ writeFileSync(file + '.error.partial', refusal);
347
+ renameSync(file + '.error.partial', file + '.error');
308
348
  } else {
309
349
  copyFileSync(join(store, segment), file + '.placing');
310
350
  renameSync(file + '.placing', file);
@@ -429,33 +469,30 @@ describe('loadInputLazy — an input staged as a manifest over segment files', (
429
469
  rmSync(dir, { recursive: true, force: true });
430
470
  }
431
471
  });
432
- it('opens lazily once the value crosses the threshold, however small its manifest', async () => {
433
- // A runner that measured the file would find a few kilobytes of manifest
434
- // and decode a multi-gigabyte input whole.
472
+ it('a program opens it lazily, or decodes it whole when told to, and answers the same', async () => {
435
473
  const dir = mkdtempSync(join(tmpdir(), 'enc-manifest-'));
436
474
  try {
437
475
  const path = stageManifest(dir, rows(20_000));
438
- const threshold = statSync(path).size + 1;
439
476
  const irPath = join(dir, 'program.beast2');
440
477
  writeFileSync(irPath, encodeEastIR(East.function([DT], StringType, ($, table) => table.get(9999n)).toIR()));
441
478
  const outputPath = join(dir, 'output.beast2');
442
- const lines = [];
443
- const original = console.error;
444
- const saved = process.env.EAST_LAZY_INPUT_BYTES;
445
- console.error = (...args) => { lines.push(args.map(String).join(' ')); };
446
- process.env.EAST_LAZY_INPUT_BYTES = String(threshold);
447
- try {
448
- await runProgram(irPath, [], [], [path], outputPath, true);
449
- }
450
- finally {
451
- console.error = original;
452
- if (saved === undefined)
453
- delete process.env.EAST_LAZY_INPUT_BYTES;
454
- else
455
- process.env.EAST_LAZY_INPUT_BYTES = saved;
456
- }
457
- assert.ok(lines.some((line) => line.includes('input 0: opened lazily')), lines.join('\n'));
458
- assert.equal(decodeBeast2For(StringType)(new Uint8Array(readFileSync(outputPath))), 'row-9999');
479
+ const run = async (decode) => {
480
+ const lines = [];
481
+ const original = console.error;
482
+ console.error = (...args) => { lines.push(args.map(String).join(' ')); };
483
+ try {
484
+ await runProgram(irPath, [], [], [path], outputPath, true, decode === 'lazy' ? variant('lazy', null) : variant('whole', null));
485
+ }
486
+ finally {
487
+ console.error = original;
488
+ }
489
+ assert.equal(decodeBeast2For(StringType)(new Uint8Array(readFileSync(outputPath))), 'row-9999');
490
+ return lines;
491
+ };
492
+ const lazy = await run('lazy');
493
+ assert.ok(lazy.some((line) => line.includes('input 0: opened lazily')), lazy.join('\n'));
494
+ const whole = await run('whole');
495
+ assert.ok(whole.some((line) => /input 0: decoded whole — \+[\d.]+ (B|KB|MB) resident/.test(line)), whole.join('\n'));
459
496
  }
460
497
  finally {
461
498
  rmSync(dir, { recursive: true, force: true });
@@ -1 +1 @@
1
- {"version":3,"file":"loader.spec.js","sourceRoot":"","sources":["../src/loader.spec.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACrI,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EACL,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAC9D,eAAe,EAAE,eAAe,EAAE,oBAAoB,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,EAChG,wBAAwB,EAAE,WAAW,EAAE,oBAAoB,EAAE,wBAAwB,EACrF,kBAAkB,EAAE,iBAAiB,EAAE,cAAc,EAAE,eAAe,GACvE,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,wBAAwB,EAAE,SAAS,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAC/H,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC;;;;;GAKG;AACH,SAAS,eAAe,CAAC,IAAY,EAAE,UAAkB;IACvD,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,aAAa,CAAC,CAAC,CAAC;IACxD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACnC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACnD,aAAa,CACX,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,EAC1B,IAAI,CAAC,SAAS,CACZ;QACE,IAAI;QACJ,OAAO,EAAE,OAAO;QAChB,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE;YACP,YAAY,EAAE,oBAAoB;YAClC,gBAAgB,EAAE,gBAAgB;SACnC;KACF,EACD,IAAI,EACJ,CAAC,CACF,CACF,CAAC;IACF,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,UAAU,CAAC,CAAC;IAC7D,OAAO,IAAI,CAAC;AACd,CAAC;AAED,kEAAkE;AAClE,KAAK,UAAU,OAAO,CAAI,GAAW,EAAE,EAAoB;IACzD,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC3B,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACnB,IAAI,CAAC;QACH,OAAO,MAAM,EAAE,EAAE,CAAC;IACpB,CAAC;YAAS,CAAC;QACT,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;AACH,CAAC;AAED,wEAAwE;AACxE,KAAK,UAAU,oBAAoB,CAAI,KAAa,EAAE,EAAoB;IACxE,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC;IAC/C,OAAO,CAAC,GAAG,CAAC,qBAAqB,GAAG,KAAK,CAAC;IAC1C,IAAI,CAAC;QACH,OAAO,MAAM,EAAE,EAAE,CAAC;IACpB,CAAC;YAAS,CAAC;QACT,IAAI,IAAI,KAAK,SAAS;YAAE,OAAO,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC;;YAC5D,OAAO,CAAC,GAAG,CAAC,qBAAqB,GAAG,IAAI,CAAC;IAChD,CAAC;AACH,CAAC;AAED,QAAQ,CAAC,iDAAiD,EAAE,GAAG,EAAE;IAC/D,EAAE,CAAC,+DAA+D,EAAE,KAAK,IAAI,EAAE;QAC7E,MAAM,IAAI,GAAG,eAAe,CAC1B,WAAW,EACX,+GAA+G,CAChH,CAAC;QACF,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC;YACjE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YAC5B,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;YACxC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACrC,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oEAAoE,EAAE,KAAK,IAAI,EAAE;QAClF,+DAA+D;QAC/D,MAAM,MAAM,CAAC,OAAO,CAClB,GAAG,EAAE,CAAC,YAAY,CAAC,6CAA6C,CAAC,EACjE,iCAAiC,CAClC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sEAAsE,EAAE,KAAK,IAAI,EAAE;QACpF,MAAM,IAAI,GAAG,eAAe,CAAC,UAAU,EAAE,uCAAuC,CAAC,CAAC;QAClF,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,OAAO,CAClB,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,EACnD,kCAAkC,CACnC,CAAC;QACJ,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,iEAAiE,EAAE,GAAG,EAAE;IAC/E,EAAE,CAAC,+EAA+E,EAAE,KAAK,IAAI,EAAE;QAC7F,4EAA4E;QAC5E,0EAA0E;QAC1E,yEAAyE;QACzE,2EAA2E;QAC3E,oDAAoD;QACpD,MAAM,IAAI,GAAG,eAAe,CAC1B,eAAe,EACf,+HAA+H,CAChI,CAAC;QACF,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;QAC5D,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,CACtC,oBAAoB,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,CAChE,CAAC;YACF,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YAC5B,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC,IAAI,EAAE,0BAA0B,CAAC,CAAC;QACzD,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACxD,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACpD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mFAAmF,EAAE,KAAK,IAAI,EAAE;QACjG,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;QAC5D,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,OAAO,CAClB,GAAG,EAAE,CACH,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,CACpB,oBAAoB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,wBAAwB,CAAC,CAAC,CAC5E,EACH,iCAAiC,CAClC,CAAC;QACJ,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACpD,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,6DAA6D,EAAE,GAAG,EAAE;IAC3E,EAAE,CAAC,6EAA6E,EAAE,KAAK,IAAI,EAAE;QAC3F,MAAM,IAAI,GAAG,eAAe,CAAC,WAAW,EAAE,sBAAsB,CAAC,CAAC;QAClE,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,wBAAwB,CAAC,WAAW,CAAC,CAAC,CAAC;YAC9E,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;YACrC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACpC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACjC,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,0DAA0D,EAAE,GAAG,EAAE;IACxE,MAAM,EAAE,GAAG,QAAQ,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IAC7C,MAAM,KAAK,GAAG,IAAI,SAAS,CACzB,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,CAAqB,CAAC,EACnF,UAAU,CAAC,WAAW,CAAC,CACxB,CAAC;IAEF,EAAE,CAAC,0EAA0E,EAAE,GAAG,EAAE;QAClF,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC;QACrD,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;YACvC,aAAa,CAAC,IAAI,EAAE,oBAAoB,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACrD,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAA8B,CAAC;YAC/D,MAAM,CAAC,EAAE,CAAC,KAAK,YAAY,SAAS,CAAC,CAAC;YACtC,MAAM,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;YAChC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAE/B,MAAM,KAAK,GAAG,WAAW,CAAC,SAAuE,CAAC;YAClG,MAAM,WAAW,GAAG,KAAK,CAAC,GAAI,CAAC;YAC/B,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,KAAK,CAAC,GAAG,GAAG,UAAyB,GAAG,IAAe,IAAI,KAAK,EAAE,CAAC,CAAC,OAAO,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5G,IAAI,CAAC;gBACH,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,CAAC;YAC7C,CAAC;oBAAS,CAAC;gBACT,KAAK,CAAC,GAAG,GAAG,WAAW,CAAC;YAC1B,CAAC;YACD,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,kCAAkC,CAAC,CAAC;YAC3D,MAAM,CAAC,KAAK,CAAE,KAA0C,CAAC,QAAQ,EAAE,KAAK,EAAE,4BAA4B,CAAC,CAAC;QAC1G,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAChD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iFAAiF,EAAE,GAAG,EAAE;QACzF,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC;QACrD,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;YAC5C,aAAa,CAAC,SAAS,EAAE,eAAe,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACrD,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,CAAC;YAClD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;YACrC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC1B,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,CAAC;YAC7C,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;QACtE,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAChD,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,kEAAkE,EAAE,GAAG,EAAE;IAChF,MAAM,EAAE,GAAG,QAAQ,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IAE7C,6BAA6B;IAC7B,MAAM,IAAI,GAAG,CAAC,CAAS,EAA6B,EAAE,CAAC,IAAI,SAAS,CAClE,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,CAAqB,CAAC,EAChF,UAAU,CAAC,WAAW,CAAC,CACxB,CAAC;IAEF;;;;OAIG;IACH,SAAS,aAAa,CAAC,GAAW,EAAE,KAAgC;QAClE,MAAM,IAAI,GAAG,oBAAoB,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;QAC7C,MAAM,OAAO,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACxC,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,uBAAuB,CAAC,CAAC;QACtD,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3C,MAAM,KAAK,GAAG,oBAAoB,CAAC,WAAW,CAAC,CAAC;QAChD,MAAM,KAAK,GAAG,kBAAkB,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QAC3C,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACtE,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;YACrD,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAChE,aAAa,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,IAAI,SAAS,CAAC,EAAE,OAAO,CAAC,CAAC;YAC3D,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QACtH,CAAC,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;QACvC,aAAa,CAAC,IAAI,EAAE,wBAAwB,CAAC;YAC3C,IAAI,EAAE,wBAAwB;YAC9B,KAAK,EAAE,EAAE;YACT,IAAI,EAAE,eAAe,CAAC,EAAE,CAAC;YACzB,IAAI,EAAE,cAAc,CAAC,EAAE,CAAC;YACxB,MAAM,EAAE,QAAQ;YAChB,OAAO;SACR,CAAC,CAAC,CAAC;QACJ,OAAO,IAAI,CAAC;IACd,CAAC;IAED,EAAE,CAAC,sEAAsE,EAAE,GAAG,EAAE;QAC9E,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,eAAe,CAAC,CAAC,CAAC;QACzD,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;YAC3B,MAAM,IAAI,GAAG,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACvC,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAA8B,CAAC;YAC/D,MAAM,CAAC,EAAE,CAAC,KAAK,YAAY,SAAS,CAAC,CAAC;YACtC,MAAM,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;YAChC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAEjC,uEAAuE;YACvE,qEAAqE;YACrE,sDAAsD;YACtD,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK,CAAE,CAAC;YAC1C,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAM,CAAC,EAAE,UAAU,CAAC,CAAC;YAC5C,MAAM,KAAK,GAAG,kBAAkB,CAAC,KAAK,CAAE,CAAC;YACzC,MAAM,CAAC,EAAE,CAAC,KAAK,GAAG,MAAM,EAAE,iCAAiC,CAAC,CAAC;YAC7D,MAAM,CAAC,EAAE,CAAC,KAAK,GAAG,MAAM,GAAG,CAAC,EAAE,+BAA+B,KAAK,QAAQ,CAAC,CAAC;YAC5E,MAAM,CAAC,KAAK,CAAE,KAA0C,CAAC,QAAQ,EAAE,KAAK,EAAE,4BAA4B,CAAC,CAAC;QAC1G,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAChD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;QAC1D,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,eAAe,CAAC,CAAC,CAAC;QACzD,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,aAAa,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAA8B,CAAC;YAC1F,IAAI,CAAC,GAAG,EAAE,CAAC;YACX,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,KAAK,EAAE,CAAC;gBAC/B,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBACrB,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;gBAC9B,CAAC,EAAE,CAAC;YACN,CAAC;YACD,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,KAAM,CAAC,CAAC;QAC1B,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAChD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;QACjE,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,eAAe,CAAC,CAAC,CAAC;QACzD,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;YAC1B,MAAM,IAAI,GAAG,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACvC,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,EAAE,eAAe,CAAC,EAAE,CAAC,CAA8B,CAAC;YAChF,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAChC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAM,CAAC,EAAE,UAAU,CAAC,CAAC;YAC5C,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAA8B,CAAC;YAC9D,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACxD,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAChD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;QACrE,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,eAAe,CAAC,CAAC,CAAC;QACzD,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YAC7C,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,uBAAuB,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAC7E,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,CAAC;QAC/C,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAChD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH;;;;;OAKG;IACH,SAAS,IAAI,CAAC,UAAkB,EAAE,KAAa,EAAE,OAAgB;QAC/D,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC;;;;;;;;;;;;;;;;;;;;;;;KAuBzB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;QAC/D,OAAO;YACL,IAAI,EAAE,KAAK,IAAI,EAAE;gBACf,MAAM,MAAM,GAAG,IAAI,OAAO,CAAW,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;gBACnF,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBAC3B,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC;gBAC3B,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC;gBACzB,OAAO,KAAK,CAAC;YACf,CAAC;SACF,CAAC;IACJ,CAAC;IAED,iEAAiE;IACjE,SAAS,QAAQ,CAAI,EAAW;QAC9B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,iBAAiB,GAAG,GAAG,CAAC;QACpC,IAAI,CAAC;YACH,OAAO,EAAE,EAAE,CAAC;QACd,CAAC;gBAAS,CAAC;YACT,IAAI,KAAK,KAAK,SAAS;gBAAE,OAAO,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;;gBACzD,OAAO,CAAC,GAAG,CAAC,iBAAiB,GAAG,KAAK,CAAC;QAC7C,CAAC;IACH,CAAC;IAED;qBACiB;IACjB,SAAS,OAAO,CAAC,GAAW;QAC1B,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,uBAAuB,CAAC,CAAC;QACtD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACjC,SAAS,CAAC,KAAK,CAAC,CAAC;QACjB,MAAM,KAAK,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;QACtC,KAAK,MAAM,IAAI,IAAI,KAAK;YAAE,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;QAChF,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;IACvD,CAAC;IAED,EAAE,CAAC,qFAAqF,EAAE,KAAK,IAAI,EAAE;QACnG,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,eAAe,CAAC,CAAC,CAAC;QACzD,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YAC9C,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;YACrD,MAAM,CAAC,EAAE,CAAC,QAAQ,GAAG,CAAC,EAAE,uCAAuC,QAAQ,EAAE,CAAC,CAAC;YAC3E,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;YACxC,IAAI,GAAuB,CAAC;YAC5B,IAAI,IAAI,GAAG,CAAC,CAAC;YACb,IAAI,CAAC;gBACH,QAAQ,CAAC,GAAG,EAAE;oBACZ,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAA8B,CAAC;oBAC/D,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;oBAClB,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,KAAM,CAAC,CAAC;gBAC1B,CAAC,CAAC,CAAC;YACL,CAAC;oBAAS,CAAC;gBACT,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;gBACpC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,sDAAsD,QAAQ,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACzH,CAAC;YACD,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,mDAAmD,CAAC,CAAC;YAChF,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;YAE9B,oEAAoE;YACpE,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;YACpC,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,eAAe,CAAC,EAAE,CAAC,CAAC,CAA8B,CAAC;gBAChG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACnC,CAAC;oBAAS,CAAC;gBACT,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,QAAQ,GAAG,CAAC,EAAE,kCAAkC,CAAC,CAAC;YAC5F,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAChD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kEAAkE,EAAE,KAAK,IAAI,EAAE;QAChF,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,eAAe,CAAC,CAAC,CAAC;QACzD,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YAC9C,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;YAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,yBAAyB,CAAC,CAAC;YACpE,IAAI,CAAC;gBACH,MAAM,CAAC,MAAM,CACX,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAE,aAAa,CAAC,IAAI,CAA+B,CAAC,GAAG,CAAC,KAAM,CAAC,CAAC,EACpF,CAAC,GAAY,EAAE,EAAE,CAAC,GAAG,YAAY,KAAK,IAAI,oFAAoF,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CACjJ,CAAC;YACJ,CAAC;oBAAS,CAAC;gBACT,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACxB,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAChD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wDAAwD,EAAE,GAAG,EAAE;QAChE,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,eAAe,CAAC,CAAC,CAAC;QACzD,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YACzC,MAAM,CAAC,KAAK,CAAE,aAAa,CAAC,IAAI,CAA+B,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YACzE,MAAM,CAAC,KAAK,CAAE,SAAS,CAAC,IAAI,EAAE,eAAe,CAAC,EAAE,CAAC,CAA+B,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAC5F,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAChD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yEAAyE,EAAE,GAAG,EAAE;QACjF,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,eAAe,CAAC,CAAC,CAAC;QACzD,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YAC9C,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,uBAAuB,CAAC,CAAC;YACtD,MAAM,KAAK,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;YAC9H,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC;YACtC,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,EAAE,GAAG,KAAK,EAAE,oDAAoD,CAAC,CAAC;YAElG,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;YACtC,aAAa,CAAC,IAAI,EAAE,oBAAoB,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC3D,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,wBAAwB,CAAC,CAAC;QAChF,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAChD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+EAA+E,EAAE,KAAK,IAAI,EAAE;QAC7F,yEAAyE;QACzE,2CAA2C;QAC3C,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,eAAe,CAAC,CAAC,CAAC;QACzD,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YAC9C,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;YAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;YAC3C,aAAa,CAAC,MAAM,EAAE,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,KAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YAC7G,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;YAE9C,MAAM,KAAK,GAAa,EAAE,CAAC;YAC3B,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC;YAC/B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC;YAChD,OAAO,CAAC,KAAK,GAAG,CAAC,GAAG,IAAe,EAAE,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACpF,OAAO,CAAC,GAAG,CAAC,qBAAqB,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;YACtD,IAAI,CAAC;gBACH,MAAM,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;YAC7D,CAAC;oBAAS,CAAC;gBACT,OAAO,CAAC,KAAK,GAAG,QAAQ,CAAC;gBACzB,IAAI,KAAK,KAAK,SAAS;oBAAE,OAAO,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC;;oBAC7D,OAAO,CAAC,GAAG,CAAC,qBAAqB,GAAG,KAAK,CAAC;YACjD,CAAC;YACD,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YAC3F,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,IAAI,UAAU,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;QAClG,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAChD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8DAA8D,EAAE,EAAE,IAAI,EAAE,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,qCAAqC,EAAE,EAAE,GAAG,EAAE;QAC7J,sEAAsE;QACtE,0EAA0E;QAC1E,oCAAoC;QACpC,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,eAAe,CAAC,CAAC,CAAC;QACzD,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,aAAa,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAA8B,CAAC;YAC3F,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,uBAAuB,CAAC,CAAC,CAAC,MAAM,CAAC;YACxE,MAAM,CAAC,EAAE,CAAC,QAAQ,GAAG,EAAE,EAAE,yCAAyC,QAAQ,EAAE,CAAC,CAAC;YAC9E,MAAM,WAAW,GAAG,GAAW,EAAE,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC;YAEtE,MAAM,MAAM,GAAG,WAAW,EAAE,CAAC;YAC7B,IAAI,CAAC,GAAG,EAAE,CAAC;YACX,KAAK,MAAM,CAAC,GAAG,CAAC,IAAI,KAAK,EAAE,CAAC;gBAC1B,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBACrB,CAAC,EAAE,CAAC;YACN,CAAC;YACD,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,MAAO,CAAC,CAAC;YACzB,MAAM,IAAI,GAAG,WAAW,EAAE,GAAG,MAAM,CAAC;YACpC,MAAM,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,EAAE,aAAa,QAAQ,uBAAuB,IAAI,mBAAmB,CAAC,CAAC;QAC5F,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAChD,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"loader.spec.js","sourceRoot":"","sources":["../src/loader.spec.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC1J,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EACL,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAC9D,eAAe,EAAE,eAAe,EAAE,oBAAoB,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,EAChG,wBAAwB,EAAE,WAAW,EAAE,oBAAoB,EAAE,wBAAwB,EACrF,kBAAkB,EAAE,iBAAiB,EAAE,cAAc,EAAE,eAAe,EAAE,OAAO,GAChF,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,wBAAwB,EAAE,SAAS,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAC/H,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC;;;;;GAKG;AACH,SAAS,eAAe,CAAC,IAAY,EAAE,UAAkB;IACvD,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,aAAa,CAAC,CAAC,CAAC;IACxD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACnC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACnD,aAAa,CACX,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,EAC1B,IAAI,CAAC,SAAS,CACZ;QACE,IAAI;QACJ,OAAO,EAAE,OAAO;QAChB,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE;YACP,YAAY,EAAE,oBAAoB;YAClC,gBAAgB,EAAE,gBAAgB;SACnC;KACF,EACD,IAAI,EACJ,CAAC,CACF,CACF,CAAC;IACF,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,UAAU,CAAC,CAAC;IAC7D,OAAO,IAAI,CAAC;AACd,CAAC;AAED,kEAAkE;AAClE,KAAK,UAAU,OAAO,CAAI,GAAW,EAAE,EAAoB;IACzD,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC3B,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACnB,IAAI,CAAC;QACH,OAAO,MAAM,EAAE,EAAE,CAAC;IACpB,CAAC;YAAS,CAAC;QACT,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;AACH,CAAC;AAED,wEAAwE;AACxE,KAAK,UAAU,oBAAoB,CAAI,KAAa,EAAE,EAAoB;IACxE,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC;IAC/C,OAAO,CAAC,GAAG,CAAC,qBAAqB,GAAG,KAAK,CAAC;IAC1C,IAAI,CAAC;QACH,OAAO,MAAM,EAAE,EAAE,CAAC;IACpB,CAAC;YAAS,CAAC;QACT,IAAI,IAAI,KAAK,SAAS;YAAE,OAAO,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC;;YAC5D,OAAO,CAAC,GAAG,CAAC,qBAAqB,GAAG,IAAI,CAAC;IAChD,CAAC;AACH,CAAC;AAED,QAAQ,CAAC,iDAAiD,EAAE,GAAG,EAAE;IAC/D,EAAE,CAAC,+DAA+D,EAAE,KAAK,IAAI,EAAE;QAC7E,MAAM,IAAI,GAAG,eAAe,CAC1B,WAAW,EACX,+GAA+G,CAChH,CAAC;QACF,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC;YACjE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YAC5B,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;YACxC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACrC,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oEAAoE,EAAE,KAAK,IAAI,EAAE;QAClF,+DAA+D;QAC/D,MAAM,MAAM,CAAC,OAAO,CAClB,GAAG,EAAE,CAAC,YAAY,CAAC,6CAA6C,CAAC,EACjE,iCAAiC,CAClC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sEAAsE,EAAE,KAAK,IAAI,EAAE;QACpF,MAAM,IAAI,GAAG,eAAe,CAAC,UAAU,EAAE,uCAAuC,CAAC,CAAC;QAClF,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,OAAO,CAClB,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,EACnD,kCAAkC,CACnC,CAAC;QACJ,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,iEAAiE,EAAE,GAAG,EAAE;IAC/E,EAAE,CAAC,+EAA+E,EAAE,KAAK,IAAI,EAAE;QAC7F,4EAA4E;QAC5E,0EAA0E;QAC1E,yEAAyE;QACzE,2EAA2E;QAC3E,oDAAoD;QACpD,MAAM,IAAI,GAAG,eAAe,CAC1B,eAAe,EACf,+HAA+H,CAChI,CAAC;QACF,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;QAC5D,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,CACtC,oBAAoB,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,CAChE,CAAC;YACF,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YAC5B,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC,IAAI,EAAE,0BAA0B,CAAC,CAAC;QACzD,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACxD,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACpD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mFAAmF,EAAE,KAAK,IAAI,EAAE;QACjG,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;QAC5D,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,OAAO,CAClB,GAAG,EAAE,CACH,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,CACpB,oBAAoB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,wBAAwB,CAAC,CAAC,CAC5E,EACH,iCAAiC,CAClC,CAAC;QACJ,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACpD,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,mEAAmE,EAAE,GAAG,EAAE;IACjF,EAAE,CAAC,4FAA4F,EAAE,GAAG,EAAE;QACpG,uEAAuE;QACvE,uEAAuE;QACvE,uEAAuE;QACvE,wEAAwE;QACxE,oEAAoE;QACpE,qCAAqC;QACrC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QACvE,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,aAAa,CAAC,CAAC,CAAC;QAC1D,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;QAC5D,MAAM,QAAQ,GAAG,eAAe,CAC9B,aAAa,EACb,iHAAiH,CAClH,CAAC;QACF,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;YACpD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC;YACvD,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACpC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,CAAC;YACpE,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACvE,WAAW,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,UAAU,CAAC,CAAC;YACrE,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACpE,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,UAAU,CAAC,CAAC;YAE/D,MAAM,GAAG,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;YAC/B,OAAO,GAAG,CAAC,SAAS,CAAC;YACrB,OAAO,GAAG,CAAC,qBAAqB,CAAC;YACjC,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,eAAe,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,aAAa,CAAC,EAC/G,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;YAC3C,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;YAC9C,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,qDAAqD,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QACpG,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACjD,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAClD,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,6DAA6D,EAAE,GAAG,EAAE;IAC3E,EAAE,CAAC,6EAA6E,EAAE,KAAK,IAAI,EAAE;QAC3F,MAAM,IAAI,GAAG,eAAe,CAAC,WAAW,EAAE,sBAAsB,CAAC,CAAC;QAClE,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,wBAAwB,CAAC,WAAW,CAAC,CAAC,CAAC;YAC9E,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;YACrC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACpC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACjC,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,0DAA0D,EAAE,GAAG,EAAE;IACxE,MAAM,EAAE,GAAG,QAAQ,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IAC7C,MAAM,KAAK,GAAG,IAAI,SAAS,CACzB,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,CAAqB,CAAC,EACnF,UAAU,CAAC,WAAW,CAAC,CACxB,CAAC;IAEF,EAAE,CAAC,0EAA0E,EAAE,GAAG,EAAE;QAClF,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC;QACrD,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;YACvC,aAAa,CAAC,IAAI,EAAE,oBAAoB,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACrD,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAA8B,CAAC;YAC/D,MAAM,CAAC,EAAE,CAAC,KAAK,YAAY,SAAS,CAAC,CAAC;YACtC,MAAM,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;YAChC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAE/B,MAAM,KAAK,GAAG,WAAW,CAAC,SAAuE,CAAC;YAClG,MAAM,WAAW,GAAG,KAAK,CAAC,GAAI,CAAC;YAC/B,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,KAAK,CAAC,GAAG,GAAG,UAAyB,GAAG,IAAe,IAAI,KAAK,EAAE,CAAC,CAAC,OAAO,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5G,IAAI,CAAC;gBACH,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,CAAC;YAC7C,CAAC;oBAAS,CAAC;gBACT,KAAK,CAAC,GAAG,GAAG,WAAW,CAAC;YAC1B,CAAC;YACD,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,kCAAkC,CAAC,CAAC;YAC3D,MAAM,CAAC,KAAK,CAAE,KAA0C,CAAC,QAAQ,EAAE,KAAK,EAAE,4BAA4B,CAAC,CAAC;QAC1G,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAChD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iFAAiF,EAAE,GAAG,EAAE;QACzF,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC;QACrD,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;YAC5C,aAAa,CAAC,SAAS,EAAE,eAAe,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACrD,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,CAAC;YAClD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;YACrC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC1B,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,CAAC;YAC7C,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;QACtE,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAChD,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,kEAAkE,EAAE,GAAG,EAAE;IAChF,MAAM,EAAE,GAAG,QAAQ,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IAE7C,6BAA6B;IAC7B,MAAM,IAAI,GAAG,CAAC,CAAS,EAA6B,EAAE,CAAC,IAAI,SAAS,CAClE,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,CAAqB,CAAC,EAChF,UAAU,CAAC,WAAW,CAAC,CACxB,CAAC;IAEF;;;;OAIG;IACH,SAAS,aAAa,CAAC,GAAW,EAAE,KAAgC;QAClE,MAAM,IAAI,GAAG,oBAAoB,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;QAC7C,MAAM,OAAO,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACxC,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,uBAAuB,CAAC,CAAC;QACtD,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3C,MAAM,KAAK,GAAG,oBAAoB,CAAC,WAAW,CAAC,CAAC;QAChD,MAAM,KAAK,GAAG,kBAAkB,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QAC3C,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACtE,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;YACrD,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAChE,aAAa,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,IAAI,SAAS,CAAC,EAAE,OAAO,CAAC,CAAC;YAC3D,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QACtH,CAAC,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;QACvC,aAAa,CAAC,IAAI,EAAE,wBAAwB,CAAC;YAC3C,IAAI,EAAE,wBAAwB;YAC9B,KAAK,EAAE,EAAE;YACT,IAAI,EAAE,eAAe,CAAC,EAAE,CAAC;YACzB,IAAI,EAAE,cAAc,CAAC,EAAE,CAAC;YACxB,MAAM,EAAE,QAAQ;YAChB,OAAO;SACR,CAAC,CAAC,CAAC;QACJ,OAAO,IAAI,CAAC;IACd,CAAC;IAED,EAAE,CAAC,sEAAsE,EAAE,GAAG,EAAE;QAC9E,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,eAAe,CAAC,CAAC,CAAC;QACzD,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;YAC3B,MAAM,IAAI,GAAG,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACvC,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAA8B,CAAC;YAC/D,MAAM,CAAC,EAAE,CAAC,KAAK,YAAY,SAAS,CAAC,CAAC;YACtC,MAAM,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;YAChC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAEjC,uEAAuE;YACvE,qEAAqE;YACrE,sDAAsD;YACtD,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK,CAAE,CAAC;YAC1C,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAM,CAAC,EAAE,UAAU,CAAC,CAAC;YAC5C,MAAM,KAAK,GAAG,kBAAkB,CAAC,KAAK,CAAE,CAAC;YACzC,MAAM,CAAC,EAAE,CAAC,KAAK,GAAG,MAAM,EAAE,iCAAiC,CAAC,CAAC;YAC7D,MAAM,CAAC,EAAE,CAAC,KAAK,GAAG,MAAM,GAAG,CAAC,EAAE,+BAA+B,KAAK,QAAQ,CAAC,CAAC;YAC5E,MAAM,CAAC,KAAK,CAAE,KAA0C,CAAC,QAAQ,EAAE,KAAK,EAAE,4BAA4B,CAAC,CAAC;QAC1G,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAChD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;QAC1D,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,eAAe,CAAC,CAAC,CAAC;QACzD,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,aAAa,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAA8B,CAAC;YAC1F,IAAI,CAAC,GAAG,EAAE,CAAC;YACX,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,KAAK,EAAE,CAAC;gBAC/B,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBACrB,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;gBAC9B,CAAC,EAAE,CAAC;YACN,CAAC;YACD,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,KAAM,CAAC,CAAC;QAC1B,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAChD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;QACjE,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,eAAe,CAAC,CAAC,CAAC;QACzD,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;YAC1B,MAAM,IAAI,GAAG,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACvC,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,EAAE,eAAe,CAAC,EAAE,CAAC,CAA8B,CAAC;YAChF,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAChC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAM,CAAC,EAAE,UAAU,CAAC,CAAC;YAC5C,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAA8B,CAAC;YAC9D,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACxD,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAChD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;QACrE,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,eAAe,CAAC,CAAC,CAAC;QACzD,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YAC7C,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,uBAAuB,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAC7E,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,CAAC;QAC/C,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAChD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH;;;;;OAKG;IACH,SAAS,IAAI,CAAC,UAAkB,EAAE,KAAa,EAAE,OAAgB;QAC/D,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;KA0BzB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;QAC/D,OAAO;YACL,IAAI,EAAE,KAAK,IAAI,EAAE;gBACf,MAAM,MAAM,GAAG,IAAI,OAAO,CAAW,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;gBACnF,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBAC3B,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC;gBAC3B,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC;gBACzB,OAAO,KAAK,CAAC;YACf,CAAC;SACF,CAAC;IACJ,CAAC;IAED,iEAAiE;IACjE,SAAS,QAAQ,CAAI,EAAW;QAC9B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,iBAAiB,GAAG,GAAG,CAAC;QACpC,IAAI,CAAC;YACH,OAAO,EAAE,EAAE,CAAC;QACd,CAAC;gBAAS,CAAC;YACT,IAAI,KAAK,KAAK,SAAS;gBAAE,OAAO,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;;gBACzD,OAAO,CAAC,GAAG,CAAC,iBAAiB,GAAG,KAAK,CAAC;QAC7C,CAAC;IACH,CAAC;IAED;qBACiB;IACjB,SAAS,OAAO,CAAC,GAAW;QAC1B,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,uBAAuB,CAAC,CAAC;QACtD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACjC,SAAS,CAAC,KAAK,CAAC,CAAC;QACjB,MAAM,KAAK,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;QACtC,KAAK,MAAM,IAAI,IAAI,KAAK;YAAE,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;QAChF,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;IACvD,CAAC;IAED,EAAE,CAAC,qFAAqF,EAAE,KAAK,IAAI,EAAE;QACnG,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,eAAe,CAAC,CAAC,CAAC;QACzD,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YAC9C,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;YACrD,MAAM,CAAC,EAAE,CAAC,QAAQ,GAAG,CAAC,EAAE,uCAAuC,QAAQ,EAAE,CAAC,CAAC;YAC3E,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;YACxC,IAAI,GAAuB,CAAC;YAC5B,IAAI,IAAI,GAAG,CAAC,CAAC;YACb,IAAI,CAAC;gBACH,QAAQ,CAAC,GAAG,EAAE;oBACZ,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAA8B,CAAC;oBAC/D,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;oBAClB,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,KAAM,CAAC,CAAC;gBAC1B,CAAC,CAAC,CAAC;YACL,CAAC;oBAAS,CAAC;gBACT,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;gBACpC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,sDAAsD,QAAQ,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACzH,CAAC;YACD,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,mDAAmD,CAAC,CAAC;YAChF,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;YAE9B,oEAAoE;YACpE,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;YACpC,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,eAAe,CAAC,EAAE,CAAC,CAAC,CAA8B,CAAC;gBAChG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACnC,CAAC;oBAAS,CAAC;gBACT,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,QAAQ,GAAG,CAAC,EAAE,kCAAkC,CAAC,CAAC;YAC5F,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAChD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kEAAkE,EAAE,KAAK,IAAI,EAAE;QAChF,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,eAAe,CAAC,CAAC,CAAC;QACzD,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YAC9C,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;YAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,yBAAyB,CAAC,CAAC;YACpE,IAAI,CAAC;gBACH,MAAM,CAAC,MAAM,CACX,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAE,aAAa,CAAC,IAAI,CAA+B,CAAC,GAAG,CAAC,KAAM,CAAC,CAAC,EACpF,CAAC,GAAY,EAAE,EAAE,CAAC,GAAG,YAAY,KAAK,IAAI,oFAAoF,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CACjJ,CAAC;YACJ,CAAC;oBAAS,CAAC;gBACT,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACxB,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAChD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wDAAwD,EAAE,GAAG,EAAE;QAChE,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,eAAe,CAAC,CAAC,CAAC;QACzD,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YACzC,MAAM,CAAC,KAAK,CAAE,aAAa,CAAC,IAAI,CAA+B,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YACzE,MAAM,CAAC,KAAK,CAAE,SAAS,CAAC,IAAI,EAAE,eAAe,CAAC,EAAE,CAAC,CAA+B,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAC5F,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAChD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yEAAyE,EAAE,GAAG,EAAE;QACjF,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,eAAe,CAAC,CAAC,CAAC;QACzD,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YAC9C,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,uBAAuB,CAAC,CAAC;YACtD,MAAM,KAAK,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;YAC9H,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC;YACtC,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,EAAE,GAAG,KAAK,EAAE,oDAAoD,CAAC,CAAC;YAElG,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;YACtC,aAAa,CAAC,IAAI,EAAE,oBAAoB,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC3D,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,wBAAwB,CAAC,CAAC;QAChF,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAChD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mFAAmF,EAAE,KAAK,IAAI,EAAE;QACjG,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,eAAe,CAAC,CAAC,CAAC;QACzD,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;YAC3C,aAAa,CAAC,MAAM,EAAE,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,KAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YAC7G,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;YAE9C,MAAM,GAAG,GAAG,KAAK,EAAE,MAAwB,EAAqB,EAAE;gBAChE,MAAM,KAAK,GAAa,EAAE,CAAC;gBAC3B,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC;gBAC/B,OAAO,CAAC,KAAK,GAAG,CAAC,GAAG,IAAe,EAAE,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACpF,IAAI,CAAC;oBACH,MAAM,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;gBACjI,CAAC;wBAAS,CAAC;oBACT,OAAO,CAAC,KAAK,GAAG,QAAQ,CAAC;gBAC3B,CAAC;gBACD,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,IAAI,UAAU,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;gBAChG,OAAO,KAAK,CAAC;YACf,CAAC,CAAC;YACF,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC;YAC/B,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACzF,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,CAAC;YACjC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,sDAAsD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACvH,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAChD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8DAA8D,EAAE,EAAE,IAAI,EAAE,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,qCAAqC,EAAE,EAAE,GAAG,EAAE;QAC7J,sEAAsE;QACtE,0EAA0E;QAC1E,oCAAoC;QACpC,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,eAAe,CAAC,CAAC,CAAC;QACzD,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,aAAa,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAA8B,CAAC;YAC3F,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,uBAAuB,CAAC,CAAC,CAAC,MAAM,CAAC;YACxE,MAAM,CAAC,EAAE,CAAC,QAAQ,GAAG,EAAE,EAAE,yCAAyC,QAAQ,EAAE,CAAC,CAAC;YAC9E,MAAM,WAAW,GAAG,GAAW,EAAE,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC;YAEtE,MAAM,MAAM,GAAG,WAAW,EAAE,CAAC;YAC7B,IAAI,CAAC,GAAG,EAAE,CAAC;YACX,KAAK,MAAM,CAAC,GAAG,CAAC,IAAI,KAAK,EAAE,CAAC;gBAC1B,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBACrB,CAAC,EAAE,CAAC;YACN,CAAC;YACD,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,MAAO,CAAC,CAAC;YACzB,MAAM,IAAI,GAAG,WAAW,EAAE,GAAG,MAAM,CAAC;YACpC,MAAM,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,EAAE,aAAa,QAAQ,uBAAuB,IAAI,mBAAmB,CAAC,CAAC;QAC5F,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAChD,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
package/dist/merge.d.ts CHANGED
@@ -2,7 +2,7 @@
2
2
  * Copyright (c) 2025 Elara AI Pty Ltd
3
3
  * Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
4
4
  */
5
- import { type Beast2ManifestSink } from '@elaraai/east';
5
+ import type { Beast2ManifestSink } from '@elaraai/east';
6
6
  import type { PlatformFunction } from '@elaraai/east/internal';
7
7
  /** Options accepted by {@link mergeBlobs}. */
8
8
  export interface MergeBlobsOptions {
@@ -32,6 +32,10 @@ export interface MergeBlobsStats {
32
32
  * Merges sorted Set or Dict blobs of one type into one canonical collection —
33
33
  * an `exec` merge unit's set or dict parts.
34
34
  *
35
+ * @remarks
36
+ * A manifest input's segment the process's host places as it is read
37
+ * ({@link fetchingSegments}) is asked for when the merge first reads it.
38
+ *
35
39
  * @param inputPaths - the inputs, in the order equal keys fold; at least one
36
40
  * @param output - the output blob's path, or the sink a manifest directory is
37
41
  * written through
@@ -1 +1 @@
1
- {"version":3,"file":"merge.d.ts","sourceRoot":"","sources":["../src/merge.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAmCH,OAAO,EAYH,KAAK,kBAAkB,EAI1B,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAiB,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAK9E,8CAA8C;AAC9C,MAAM,WAAW,iBAAiB;IAC9B;;+EAE2E;IAC3E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sDAAsD;IACtD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;yBAEqB;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sDAAsD;IACtD,WAAW,CAAC,EAAE,gBAAgB,EAAE,CAAC;CACpC;AAED,4BAA4B;AAC5B,MAAM,WAAW,eAAe;IAC5B,qBAAqB;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,qCAAqC;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,sDAAsD;IACtD,KAAK,EAAE,MAAM,CAAC;CACjB;AA+LD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,UAAU,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,kBAAkB,EAAE,OAAO,GAAE,iBAAsB,GAAG,eAAe,CA0C/I"}
1
+ {"version":3,"file":"merge.d.ts","sourceRoot":"","sources":["../src/merge.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAiBH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAI/D,8CAA8C;AAC9C,MAAM,WAAW,iBAAiB;IAC9B;;+EAE2E;IAC3E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sDAAsD;IACtD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;yBAEqB;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sDAAsD;IACtD,WAAW,CAAC,EAAE,gBAAgB,EAAE,CAAC;CACpC;AAED,4BAA4B;AAC5B,MAAM,WAAW,eAAe;IAC5B,qBAAqB;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,qCAAqC;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,sDAAsD;IACtD,KAAK,EAAE,MAAM,CAAC;CACjB;AAWD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,UAAU,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,kBAAkB,EAAE,OAAO,GAAE,iBAAsB,GAAG,eAAe,CAmB/I"}
package/dist/merge.js CHANGED
@@ -3,41 +3,21 @@
3
3
  * Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
4
4
  */
5
5
  /**
6
- * The blob merge behind an `exec` merge unit (issue #770).
6
+ * The blob merge behind an `exec` merge unit (issue #770), over this
7
+ * machine's files.
7
8
  *
8
- * Canonical Set or Dict collections of one type in — sorted, indexed beast2 v5
9
- * blobs, or manifest directories, as a unit's parts are staged — and one
10
- * canonical collection out, merged by the library's `mergeBeast2For`: every
11
- * input is read segment by segment through positioned reads, and the output is
12
- * written through the canonical element writer, so it is byte-identical to
13
- * what that writer writes for the merged value. Memory is one decoded segment
14
- * per input plus one open output segment; no temporary file is ever written.
15
- * This module opens and checks the inputs, reads the key range and loads the
16
- * fold, refusing each in the words east-c and east-py use.
17
- *
18
- * Equal keys across inputs fold in input order: with a merge function (Dict
19
- * inputs) `acc = merge(key, acc, value)`; in union mode (Set inputs) the
20
- * first element stands. Without a fold, an equal key is the library's
21
- * duplicate error. An input whose keys do not ascend, an input whose type is
22
- * not input 0's, and an Array input are refused.
23
- *
24
- * With a key range (a blob of `Struct{from: Option<K>, to: Option<K>}` over
25
- * the inputs' key type) only the keys in `[from, to)` merge: every input is
26
- * sought to the segment owning `from` through its fences and read up to the
27
- * first key at or past `to`, so a unit over a range of a large output reads
28
- * that range's share of each input, plus at most one segment. An absent bound
29
- * is open; both absent is the whole merge.
30
- *
31
- * This is the fan-in of a split task's set and dict parts: e3 runs it as a
32
- * merge unit on the task's runner, one per key range of a group of parts, and
33
- * never decodes a part itself. east-c and east-py merge through the same
34
- * contract, so the three runners write the same bytes.
9
+ * The merge is east's `mergeUnitParts`, which `executeUnit` runs for a merge
10
+ * unit's set and dict parts: canonical Set or Dict collections of one type in —
11
+ * sorted, indexed beast2 v5 blobs, or manifest directories, as a unit's parts
12
+ * are staged — and one canonical collection out, byte-identical to what the
13
+ * canonical element writer writes for the merged value, read segment by
14
+ * segment and refused in the words east-c and east-py use. This is its file
15
+ * wrapper: the parts are files, and the output a blob file or a manifest
16
+ * directory's sink.
35
17
  */
36
- import { closeSync, fstatSync, openSync, readFileSync, readSync, statSync, writeSync } from 'fs';
37
- import { OptionType, StructType, decodeBeast2For, fromEastTypeValue, isTypeValueEqual, mergeBeast2For, readBeast2Extents, readBeast2HeaderType, readBeast2Manifest, readBeast2Type, toEastTypeValue, } from '@elaraai/east';
38
- import { printTypeValue } from '@elaraai/east/internal';
39
- import { segmentDirFor, segmentFile } from './loader.js';
40
- import { loadMergeFunction } from './runner.js';
18
+ import { closeSync, openSync, writeSync } from 'fs';
19
+ import { mergeUnitParts } from '@elaraai/east/internal';
20
+ import { fetchingSegments, nodeUnitIO } from './loader.js';
41
21
  /** Writes all of `bytes` to `fd` — `writeSync` may write fewer bytes than
42
22
  * asked, and a silently short write would corrupt the file. */
43
23
  function writeAll(fd, bytes) {
@@ -46,184 +26,14 @@ function writeAll(fd, bytes) {
46
26
  written += writeSync(fd, bytes, written, bytes.length - written);
47
27
  }
48
28
  }
49
- /** Exactly `length` bytes of the file open as `fd`, from `offset`. */
50
- function readExactly(fd, offset, length) {
51
- const out = new Uint8Array(length);
52
- let done = 0;
53
- while (done < length) {
54
- const n = readSync(fd, out, done, length - done, offset + done);
55
- if (n === 0)
56
- throw new Error(`beast2: short read at offset ${offset + done}`);
57
- done += n;
58
- }
59
- return out;
60
- }
61
- /**
62
- * The segments of the manifest directory at `path`, each read through
63
- * positioned reads on its file in `<path>.segments/`, the convention e3 stages
64
- * inputs in. A segment's file is opened for each read and closed after it, so
65
- * a merge of a large manifest holds no descriptor per segment; one the host
66
- * places as it is read is asked for when it is first read.
67
- *
68
- * @param path - the manifest's file
69
- * @param manifest - its decoded manifest
70
- * @returns the source the merge reads the input through
71
- */
72
- function manifestSource(path, manifest) {
73
- const dir = segmentDirFor(path);
74
- return {
75
- manifest,
76
- segment(i) {
77
- const file = segmentFile(`${dir}/${manifest.entries[i].hash}.beast2`);
78
- let size;
79
- try {
80
- size = statSync(file).size;
81
- }
82
- catch {
83
- throw new Error(`beast2 v5: manifest segment ${file} cannot be read`);
84
- }
85
- return {
86
- size,
87
- read(offset, length) {
88
- const fd = openSync(file, 'r');
89
- try {
90
- return readExactly(fd, offset, length);
91
- }
92
- finally {
93
- closeSync(fd);
94
- }
95
- },
96
- };
97
- },
98
- };
99
- }
100
- /**
101
- * Opens input `index` at `path` and checks it is a canonical Set or Dict
102
- * collection of `expected`'s type: a blob, read through positioned reads on
103
- * its descriptor, or a manifest directory, read through its segment files.
104
- *
105
- * @param path - the blob, or the manifest's file
106
- * @param index - the input's position, for messages
107
- * @param expected - input 0's type, or `null` for input 0 itself
108
- * @returns the opened input and its type
109
- * @throws {Error} When the file cannot be opened (missing, unreadable, not
110
- * a regular file), is not a blob (too short, or without the magic — the
111
- * reader's own words), cannot be read as a canonical collection blob or a
112
- * manifest, or its type is not `expected`.
113
- */
114
- function openInput(path, index, expected) {
115
- let fd;
116
- let size;
117
- try {
118
- fd = openSync(path, 'r');
119
- }
120
- catch {
121
- throw new Error(`merge: input ${index} (${path}): cannot open the file`);
122
- }
123
- try {
124
- const stat = fstatSync(fd);
125
- if (!stat.isFile())
126
- throw new Error('not a regular file');
127
- size = stat.size;
128
- }
129
- catch {
130
- closeSync(fd);
131
- throw new Error(`merge: input ${index} (${path}): cannot open the file`);
132
- }
133
- const reader = { size, read: (offset, length) => readExactly(fd, offset, length) };
134
- let manifest;
135
- let type;
136
- let selfContained;
137
- try {
138
- // The header first: a file too short for a blob, or one without the
139
- // magic, is refused in the reader's words — the sentence east-c and
140
- // east-py give for the same bytes — before the index is looked for.
141
- readBeast2HeaderType(reader);
142
- // A manifest directory is the collection its manifest names, its
143
- // segments standalone blobs, each self-contained.
144
- manifest = readBeast2Manifest(reader);
145
- if (manifest !== null) {
146
- type = manifest.type;
147
- selfContained = true;
148
- }
149
- else {
150
- const extents = readBeast2Extents(reader);
151
- type = extents.typeValue;
152
- selfContained = extents.selfContained;
153
- }
154
- }
155
- catch (err) {
156
- closeSync(fd);
157
- throw new Error(`merge: input ${index} (${path}): ${err.message ?? String(err)}`);
158
- }
159
- let refusal = null;
160
- if (expected !== null && !isTypeValueEqual(type, expected)) {
161
- refusal = `merge: input ${index} (${path}) has type ${printTypeValue(type)}, expected ${printTypeValue(expected)} (input 0)`;
162
- }
163
- else if (type.type !== 'Set' && type.type !== 'Dict') {
164
- refusal = `merge: inputs must be Set or Dict blobs, got ${type.type}`;
165
- }
166
- else if (!selfContained) {
167
- refusal = `merge: input ${index} (${path}): the blob is not self-contained`;
168
- }
169
- if (refusal !== null) {
170
- closeSync(fd);
171
- throw new Error(refusal);
172
- }
173
- if (manifest === null)
174
- return { type, source: reader, close: () => closeSync(fd) };
175
- // The manifest is read; the segments are read from their own files.
176
- closeSync(fd);
177
- return { type, source: manifestSource(path, manifest), close: () => { } };
178
- }
179
- /**
180
- * Reads a range blob: `Struct{from: Option<K>, to: Option<K>}` over the
181
- * inputs' key type, self-describing, checked against that type.
182
- *
183
- * @param path - the blob
184
- * @param keyType - the inputs' key (Dict) or element (Set) type
185
- * @returns the bounds, an absent one `undefined`
186
- * @throws {Error} When the file cannot be opened or read as a beast2 blob,
187
- * or its type is not the bounds struct over the inputs' key type.
188
- */
189
- function readRange(path, keyType) {
190
- let bytes;
191
- try {
192
- bytes = new Uint8Array(readFileSync(path));
193
- }
194
- catch {
195
- throw new Error(`merge: range (${path}): cannot open the file`);
196
- }
197
- // The same shape east-c builds (merge.c) and e3-core writes
198
- // (execution/steps.ts): the bounds struct over the key type.
199
- const key = fromEastTypeValue(keyType);
200
- const rangeType = toEastTypeValue(StructType({ from: OptionType(key), to: OptionType(key) }));
201
- let type;
202
- try {
203
- type = readBeast2Type(bytes);
204
- }
205
- catch (err) {
206
- throw new Error(`merge: range (${path}): ${err.message ?? String(err)}`);
207
- }
208
- if (!isTypeValueEqual(type, rangeType)) {
209
- throw new Error(`merge: range (${path}) has type ${printTypeValue(type)}, expected ${printTypeValue(rangeType)} (bounds over the inputs' key type)`);
210
- }
211
- let bounds;
212
- try {
213
- bounds = decodeBeast2For(rangeType)(bytes);
214
- }
215
- catch (err) {
216
- throw new Error(`merge: range (${path}): ${err.message ?? String(err)}`);
217
- }
218
- return {
219
- from: bounds.from.type === 'some' ? bounds.from.value : undefined,
220
- to: bounds.to.type === 'some' ? bounds.to.value : undefined,
221
- };
222
- }
223
29
  /**
224
30
  * Merges sorted Set or Dict blobs of one type into one canonical collection —
225
31
  * an `exec` merge unit's set or dict parts.
226
32
  *
33
+ * @remarks
34
+ * A manifest input's segment the process's host places as it is read
35
+ * ({@link fetchingSegments}) is asked for when the merge first reads it.
36
+ *
227
37
  * @param inputPaths - the inputs, in the order equal keys fold; at least one
228
38
  * @param output - the output blob's path, or the sink a manifest directory is
229
39
  * written through
@@ -237,53 +47,26 @@ function readRange(path, keyType) {
237
47
  * terminator or index, or no manifest).
238
48
  */
239
49
  export function mergeBlobs(inputPaths, output, options = {}) {
240
- if (inputPaths.length === 0)
241
- throw new Error('merge: at least one input is needed');
242
- if (options.mergePath !== undefined && options.union) {
243
- throw new Error('merge: a merge function and union are two folds — give one');
244
- }
245
- const opened = [];
246
50
  let fd = -1;
247
- let stats;
248
51
  try {
249
- const first = openInput(inputPaths[0], 0, null);
250
- opened.push(first);
251
- const type = first.type;
252
- const dict = type.type === 'Dict';
253
- if (options.mergePath !== undefined && !dict)
254
- throw new Error('merge: a merge function applies to Dict inputs only');
255
- if (options.union && dict)
256
- throw new Error('merge: union applies to Set inputs only');
257
- const keyType = (dict ? type.value.key : type.value);
258
- const merge = options.mergePath !== undefined
259
- ? loadMergeFunction(options.mergePath, keyType, type.value.value, options.platformFns ?? [], 'the inputs')
260
- : undefined;
261
- const range = options.rangePath !== undefined ? readRange(options.rangePath, keyType) : { from: undefined, to: undefined };
262
- for (let i = 1; i < inputPaths.length; i++)
263
- opened.push(openInput(inputPaths[i], i, type));
264
- stats = mergeBeast2For(type, {
265
- ...(merge !== undefined && { merge }),
266
- union: options.union ?? false,
267
- from: range.from,
268
- to: range.to,
269
- labels: inputPaths,
270
- // Frames deflate on worker threads (#763).
271
- parallel: true,
272
- })(opened.map((input) => input.source), typeof output !== 'string' ? output : (bytes) => {
52
+ return mergeUnitParts(nodeUnitIO, inputPaths, typeof output !== 'string' ? output : (bytes) => {
273
53
  // The output is created with its first bytes, which the merge
274
54
  // writes once every input has opened, so a refused input leaves
275
55
  // no file behind.
276
56
  if (fd < 0)
277
57
  fd = openSync(output, 'w');
278
58
  writeAll(fd, bytes);
59
+ }, {
60
+ ...(options.mergePath !== undefined && { merge: options.mergePath }),
61
+ ...(options.union !== undefined && { union: options.union }),
62
+ ...(options.rangePath !== undefined && { range: options.rangePath }),
63
+ ...(options.platformFns !== undefined && { platforms: options.platformFns }),
64
+ fetch: fetchingSegments(),
279
65
  });
280
66
  }
281
67
  finally {
282
- for (const input of opened)
283
- input.close();
284
68
  if (fd >= 0)
285
69
  closeSync(fd);
286
70
  }
287
- return stats;
288
71
  }
289
72
  //# sourceMappingURL=merge.js.map
package/dist/merge.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"merge.js","sourceRoot":"","sources":["../src/merge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"merge.js","sourceRoot":"","sources":["../src/merge.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAGpD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AA4B3D;gEACgE;AAChE,SAAS,QAAQ,CAAC,EAAU,EAAE,KAAiB;IAC3C,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,OAAO,OAAO,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QAC5B,OAAO,IAAI,SAAS,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC,CAAC;IACrE,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,UAAU,CAAC,UAA6B,EAAE,MAAmC,EAAE,UAA6B,EAAE;IAC1H,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;IACZ,IAAI,CAAC;QACD,OAAO,cAAc,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE;YAC1F,8DAA8D;YAC9D,gEAAgE;YAChE,kBAAkB;YAClB,IAAI,EAAE,GAAG,CAAC;gBAAE,EAAE,GAAG,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YACvC,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QACxB,CAAC,EAAE;YACC,GAAG,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC;YACpE,GAAG,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;YAC5D,GAAG,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC;YACpE,GAAG,CAAC,OAAO,CAAC,WAAW,KAAK,SAAS,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC;YAC5E,KAAK,EAAE,gBAAgB,EAAE;SAC5B,CAAC,CAAC;IACP,CAAC;YAAS,CAAC;QACP,IAAI,EAAE,IAAI,CAAC;YAAE,SAAS,CAAC,EAAE,CAAC,CAAC;IAC/B,CAAC;AACL,CAAC"}