speechflow 1.2.0 → 1.2.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.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,13 @@
2
2
  ChangeLog
3
3
  =========
4
4
 
5
+ 1.2.1 (2025-07-21)
6
+ ------------------
7
+
8
+ - CLEANUP: refactor main cleanup procedure
9
+ - CLEANUP: consistenly use "<xxx>" for nodes in outputs
10
+ - UPGRADE: upgrade NPM dependencies
11
+
5
12
  1.2.0 (2025-07-21)
6
13
  ------------------
7
14
 
package/dst/speechflow.js CHANGED
@@ -267,7 +267,7 @@ let cli = null;
267
267
  while (node.default !== undefined)
268
268
  node = node.default;
269
269
  if (typeof node === "function" && typeof node.name === "string") {
270
- cli.log("info", `loading SpeechFlow node "${node.name}" from internal module`);
270
+ cli.log("info", `loading SpeechFlow node <${node.name}> from internal module`);
271
271
  nodes[node.name] = node;
272
272
  }
273
273
  }
@@ -280,11 +280,11 @@ let cli = null;
280
280
  node = node.default;
281
281
  if (typeof node === "function" && typeof node.name === "string") {
282
282
  if (nodes[node.name] !== undefined) {
283
- cli.log("warning", `failed loading SpeechFlow node "${node.name}" ` +
283
+ cli.log("warning", `failed loading SpeechFlow node <${node.name}> ` +
284
284
  `from external module "${pkg}" -- node already exists`);
285
285
  continue;
286
286
  }
287
- cli.log("info", `loading SpeechFlow node "${node.name}" from external module "${pkg}"`);
287
+ cli.log("info", `loading SpeechFlow node <${node.name}> from external module "${pkg}"`);
288
288
  nodes[node.name] = node;
289
289
  }
290
290
  }
@@ -359,7 +359,7 @@ let cli = null;
359
359
  },
360
360
  createNode(id, opts, args) {
361
361
  if (nodes[id] === undefined)
362
- throw new Error(`unknown node "${id}"`);
362
+ throw new Error(`unknown node <${id}>`);
363
363
  let node;
364
364
  try {
365
365
  let num = nodeNums.get(nodes[id]) ?? 0;
@@ -370,19 +370,19 @@ let cli = null;
370
370
  catch (err) {
371
371
  /* fatal error */
372
372
  if (err instanceof Error)
373
- cli.log("error", `creation of <${id}> node failed: ${err.message}`);
373
+ cli.log("error", `creation of node <${id}> failed: ${err.message}`);
374
374
  else
375
- cli.log("error", `creation of <${id}> node failed: ${err}`);
375
+ cli.log("error", `creation of node <${id}> failed: ${err}`);
376
376
  process.exit(1);
377
377
  }
378
378
  const params = Object.keys(node.params)
379
379
  .map((key) => `${key}: ${JSON.stringify(node.params[key])}`).join(", ");
380
- cli.log("info", `create node "${node.id}" (${params})`);
380
+ cli.log("info", `create node <${node.id}> (${params})`);
381
381
  graphNodes.add(node);
382
382
  return node;
383
383
  },
384
384
  connectNode(node1, node2) {
385
- cli.log("info", `connect node "${node1.id}" to node "${node2.id}"`);
385
+ cli.log("info", `connect node <${node1.id}> to node <${node2.id}>`);
386
386
  node1.connect(node2);
387
387
  }
388
388
  });
@@ -403,13 +403,13 @@ let cli = null;
403
403
  let connectionsOut = Array.from(node.connectionsOut);
404
404
  /* ensure necessary incoming links */
405
405
  if (node.input !== "none" && connectionsIn.length === 0)
406
- throw new Error(`node "${node.id}" requires input but has no input nodes connected`);
406
+ throw new Error(`node <${node.id}> requires input but has no input nodes connected`);
407
407
  /* prune unnecessary incoming links */
408
408
  if (node.input === "none" && connectionsIn.length > 0)
409
409
  connectionsIn.forEach((other) => { other.disconnect(node); });
410
410
  /* ensure necessary outgoing links */
411
411
  if (node.output !== "none" && connectionsOut.length === 0)
412
- throw new Error(`node "${node.id}" requires output but has no output nodes connected`);
412
+ throw new Error(`node <${node.id}> requires output but has no output nodes connected`);
413
413
  /* prune unnecessary outgoing links */
414
414
  if (node.output === "none" && connectionsOut.length > 0)
415
415
  connectionsOut.forEach((other) => { node.disconnect(other); });
@@ -418,8 +418,8 @@ let cli = null;
418
418
  connectionsOut = Array.from(node.connectionsOut);
419
419
  for (const other of connectionsOut)
420
420
  if (other.input !== node.output)
421
- throw new Error(`${node.output} output node "${node.id}" cannot be ` +
422
- `connected to ${other.input} input node "${other.id}" (payload is incompatible)`);
421
+ throw new Error(`${node.output} output node <${node.id}> cannot be ` +
422
+ `connected to ${other.input} input node <${other.id}> (payload is incompatible)`);
423
423
  }
424
424
  /* graph processing: PASS 3: open nodes */
425
425
  for (const node of graphNodes) {
@@ -431,32 +431,32 @@ let cli = null;
431
431
  cli.log(level, str);
432
432
  });
433
433
  /* open node */
434
- cli.log("info", `open node "${node.id}"`);
434
+ cli.log("info", `open node <${node.id}>`);
435
435
  await node.open().catch((err) => {
436
436
  cli.log("error", `[${node.id}]: ${err.message}`);
437
- throw new Error(`failed to open node "${node.id}"`);
437
+ throw new Error(`failed to open node <${node.id}>`);
438
438
  });
439
439
  }
440
440
  /* graph processing: PASS 4: set time zero in all nodes */
441
441
  const timeZero = luxon_1.DateTime.now();
442
442
  for (const node of graphNodes) {
443
- cli.log("info", `set time zero in node "${node.id}"`);
443
+ cli.log("info", `set time zero in node <${node.id}>`);
444
444
  node.setTimeZero(timeZero);
445
445
  }
446
446
  /* graph processing: PASS 5: connect node streams */
447
447
  for (const node of graphNodes) {
448
448
  if (node.stream === null)
449
- throw new Error(`stream of node "${node.id}" still not initialized`);
449
+ throw new Error(`stream of node <${node.id}> still not initialized`);
450
450
  for (const other of Array.from(node.connectionsOut)) {
451
451
  if (other.stream === null)
452
- throw new Error(`stream of incoming node "${other.id}" still not initialized`);
453
- cli.log("info", `connect stream of node "${node.id}" to stream of node "${other.id}"`);
452
+ throw new Error(`stream of incoming node <${other.id}> still not initialized`);
453
+ cli.log("info", `connect stream of node <${node.id}> to stream of node <${other.id}>`);
454
454
  if (!(node.stream instanceof node_stream_1.default.Readable
455
455
  || node.stream instanceof node_stream_1.default.Duplex))
456
- throw new Error(`stream of output node "${node.id}" is neither of Readable nor Duplex type`);
456
+ throw new Error(`stream of output node <${node.id}> is neither of Readable nor Duplex type`);
457
457
  if (!(other.stream instanceof node_stream_1.default.Writable
458
458
  || other.stream instanceof node_stream_1.default.Duplex))
459
- throw new Error(`stream of input node "${other.id}" is neither of Writable nor Duplex type`);
459
+ throw new Error(`stream of input node <${other.id}> is neither of Writable nor Duplex type`);
460
460
  node.stream.pipe(other.stream);
461
461
  }
462
462
  }
@@ -465,32 +465,26 @@ let cli = null;
465
465
  const finishEvents = new node_events_1.EventEmitter();
466
466
  for (const node of graphNodes) {
467
467
  if (node.stream === null)
468
- throw new Error(`stream of node "${node.id}" still not initialized`);
469
- cli.log("info", `observe stream of node "${node.id}" for finish event`);
468
+ throw new Error(`stream of node <${node.id}> still not initialized`);
469
+ cli.log("info", `observe stream of node <${node.id}> for finish event`);
470
470
  activeNodes.add(node);
471
- node.stream.on("end", () => {
471
+ const deactivateNode = (node, msg) => {
472
472
  if (activeNodes.has(node))
473
473
  activeNodes.delete(node);
474
- cli.log("info", `readable stream of node "${node.id}" ended (${activeNodes.size} nodes remaining active)`);
474
+ cli.log("info", `${msg} (${activeNodes.size} active nodes remaining)`);
475
475
  if (activeNodes.size === 0) {
476
476
  const timeFinished = luxon_1.DateTime.now();
477
477
  const duration = timeFinished.diff(timeZero);
478
- cli.log("info", "everything finished -- stream processing in SpeechFlow graph stops " +
479
- `(total duration: ${duration.toFormat("hh:mm:ss.SSS")})`);
478
+ cli.log("info", "**** everything finished -- stream processing in SpeechFlow graph stops " +
479
+ `(total duration: ${duration.toFormat("hh:mm:ss.SSS")}) ****`);
480
480
  finishEvents.emit("finished");
481
481
  }
482
+ };
483
+ node.stream.on("end", () => {
484
+ deactivateNode(node, `readable stream side of node <${node.id}> raised "end" event`);
482
485
  });
483
486
  node.stream.on("finish", () => {
484
- if (activeNodes.has(node))
485
- activeNodes.delete(node);
486
- cli.log("info", `writable stream of node "${node.id}" finished (${activeNodes.size} nodes remaining active)`);
487
- if (activeNodes.size === 0) {
488
- const timeFinished = luxon_1.DateTime.now();
489
- const duration = timeFinished.diff(timeZero);
490
- cli.log("info", "everything finished -- stream processing in SpeechFlow graph stops " +
491
- `(total duration: ${duration.toFormat("hh:mm:ss.SSS")})`);
492
- finishEvents.emit("finished");
493
- }
487
+ deactivateNode(node, `writable stream side of node <${node.id}> raised "finish" event`);
494
488
  });
495
489
  }
496
490
  /* define external request/response structure */
@@ -649,38 +643,38 @@ let cli = null;
649
643
  /* graph processing: PASS 1: disconnect node streams */
650
644
  for (const node of graphNodes) {
651
645
  if (node.stream === null) {
652
- cli.log("warning", `stream of node "${node.id}" no longer initialized`);
646
+ cli.log("warning", `stream of node <${node.id}> no longer initialized`);
653
647
  continue;
654
648
  }
655
649
  for (const other of Array.from(node.connectionsOut)) {
656
650
  if (other.stream === null) {
657
- cli.log("warning", `stream of incoming node "${other.id}" no longer initialized`);
651
+ cli.log("warning", `stream of incoming node <${other.id}> no longer initialized`);
658
652
  continue;
659
653
  }
660
654
  if (!(node.stream instanceof node_stream_1.default.Readable
661
655
  || node.stream instanceof node_stream_1.default.Duplex)) {
662
- cli.log("warning", `stream of output node "${node.id}" is neither of Readable nor Duplex type`);
656
+ cli.log("warning", `stream of output node <${node.id}> is neither of Readable nor Duplex type`);
663
657
  continue;
664
658
  }
665
659
  if (!(other.stream instanceof node_stream_1.default.Writable
666
660
  || other.stream instanceof node_stream_1.default.Duplex)) {
667
- cli.log("warning", `stream of input node "${other.id}" is neither of Writable nor Duplex type`);
661
+ cli.log("warning", `stream of input node <${other.id}> is neither of Writable nor Duplex type`);
668
662
  continue;
669
663
  }
670
- cli.log("info", `disconnect stream of node "${node.id}" from stream of node "${other.id}"`);
664
+ cli.log("info", `disconnect stream of node <${node.id}> from stream of node <${other.id}>`);
671
665
  node.stream.unpipe(other.stream);
672
666
  }
673
667
  }
674
668
  /* graph processing: PASS 2: close nodes */
675
669
  for (const node of graphNodes) {
676
- cli.log("info", `close node "${node.id}"`);
670
+ cli.log("info", `close node <${node.id}>`);
677
671
  await node.close().catch((err) => {
678
- cli.log("warning", `node "${node.id}" failed to close: ${err}`);
672
+ cli.log("warning", `node <${node.id}> failed to close: ${err}`);
679
673
  });
680
674
  }
681
675
  /* graph processing: PASS 3: disconnect nodes */
682
676
  for (const node of graphNodes) {
683
- cli.log("info", `disconnect node "${node.id}"`);
677
+ cli.log("info", `disconnect node <${node.id}>`);
684
678
  const connectionsIn = Array.from(node.connectionsIn);
685
679
  const connectionsOut = Array.from(node.connectionsOut);
686
680
  connectionsIn.forEach((other) => { other.disconnect(node); });
@@ -688,34 +682,24 @@ let cli = null;
688
682
  }
689
683
  /* graph processing: PASS 4: shutdown nodes */
690
684
  for (const node of graphNodes) {
691
- cli.log("info", `destroy node "${node.id}"`);
685
+ cli.log("info", `destroy node <${node.id}>`);
692
686
  graphNodes.delete(node);
693
687
  }
694
688
  /* terminate process */
695
689
  if (signal === "finished") {
696
- cli.log("info", "shutdown process (exit code 0)");
690
+ cli.log("info", "terminate process (exit code 0)");
697
691
  process.exit(0);
698
692
  }
699
693
  else {
700
- cli.log("info", "shutdown process (exit code 1)");
694
+ cli.log("info", "terminate process (exit code 1)");
701
695
  process.exit(1);
702
696
  }
703
697
  };
704
- finishEvents.on("finished", () => {
705
- shutdown("finished");
706
- });
707
- process.on("SIGINT", () => {
708
- shutdown("SIGINT");
709
- });
710
- process.on("SIGUSR1", () => {
711
- shutdown("SIGUSR1");
712
- });
713
- process.on("SIGUSR2", () => {
714
- shutdown("SIGUSR2");
715
- });
716
- process.on("SIGTERM", () => {
717
- shutdown("SIGTERM");
718
- });
698
+ finishEvents.on("finished", () => { shutdown("finished"); });
699
+ process.on("SIGINT", () => { shutdown("SIGINT"); });
700
+ process.on("SIGUSR1", () => { shutdown("SIGUSR1"); });
701
+ process.on("SIGUSR2", () => { shutdown("SIGUSR2"); });
702
+ process.on("SIGTERM", () => { shutdown("SIGTERM"); });
719
703
  })().catch((err) => {
720
704
  if (cli !== null)
721
705
  cli.log("error", err.message);
@@ -1 +1 @@
1
- {"version":3,"file":"speechflow.js","sourceRoot":"","sources":["../src/speechflow.ts"],"names":[],"mappings":";AAAA;;;;EAIE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEF,6BAA6B;AAC7B,0DAAyC;AACzC,8DAA2C;AAC3C,6CAA2C;AAE3C,iDAA0C;AAE1C,kFAAqD;AACrD,4EAAkD;AAElD,6BAA6B;AAC7B,iCAAqC;AACrC,oDAAsC;AACtC,kDAAqC;AACrC,2CAA6C;AAC7C,sDAAuC;AACvC,wDAAwC;AACxC,8DAA2C;AAC3C,4EAAkD;AAClD,+DAAgD;AAChD,sDAAuC;AACvC,iDAAuC;AACvC,4DAA0C;AAC1C,kDAAqC;AAIrC,mEAA+C;AAE/C,2BAA2B;AAC3B,IAAI,GAAG,GAAiB,IAAI,CAAA;AAY3B,CAAC,KAAK,IAAI,EAAE;IACT,8BAA8B;IAC9B,MAAM,EAAE,OAAO,EAAE,GAAG,IAAA,iBAAO,EAAC;QACxB,OAAO,EAAE,YAAY;QACrB,iBAAiB,EAAE,IAAI;KAC1B,CAAC,CAAA;IAEF,oCAAoC;IACpC,MAAM,MAAM,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA;IAC9E,MAAM,IAAI,GAAG,MAAM,IAAA,eAAK,GAAE;QACtB,mCAAmC;SAClC,KAAK,CACF,YAAY;QACZ,cAAc;QACd,iBAAiB;QACjB,yBAAyB;QACzB,8BAA8B;QAC9B,yBAAyB;QACzB,2BAA2B;QAC3B,gBAAgB;QAChB,iCAAiC;QACjC,qBAAqB;QACrB,wCAAwC;QACxC,oBAAoB,CACvB;SACA,OAAO,CAAC,KAAK,CAAC;SACd,MAAM,CAAC,GAAG,EAAE;QACT,KAAK,EAAK,SAAS;QACnB,IAAI,EAAM,SAAS;QACnB,KAAK,EAAK,KAAK;QACf,MAAM;QACN,OAAO,EAAG,KAAK;QACf,QAAQ,EAAE,kCAAkC;KAC/C,CAAC;SACD,MAAM,CAAC,GAAG,EAAE;QACT,KAAK,EAAK,WAAW;QACrB,IAAI,EAAM,QAAQ;QAClB,KAAK,EAAK,KAAK;QACf,MAAM;QACN,KAAK,EAAK,CAAC;QACX,OAAO,EAAG,SAAS;QACnB,QAAQ,EAAE,yEAAyE;KACtF,CAAC;SACD,MAAM,CAAC,GAAG,EAAE;QACT,KAAK,EAAK,SAAS;QACnB,IAAI,EAAM,QAAQ;QAClB,KAAK,EAAK,KAAK;QACf,MAAM;QACN,KAAK,EAAK,CAAC;QACX,OAAO,EAAG,SAAS;QACnB,QAAQ,EAAE,mCAAmC;KAChD,CAAC;SACD,MAAM,CAAC,GAAG,EAAE;QACT,KAAK,EAAK,MAAM;QAChB,IAAI,EAAM,QAAQ;QAClB,KAAK,EAAK,KAAK;QACf,MAAM;QACN,KAAK,EAAK,CAAC;QACX,OAAO,EAAG,IAAI;QACd,QAAQ,EAAE,iCAAiC;KAC9C,CAAC;SACD,MAAM,CAAC,GAAG,EAAE;QACT,KAAK,EAAK,OAAO;QACjB,IAAI,EAAM,QAAQ;QAClB,KAAK,EAAK,KAAK;QACf,MAAM;QACN,KAAK,EAAK,CAAC;QACX,OAAO,EAAG,mBAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC;QACrC,QAAQ,EAAE,uDAAuD;KACpE,CAAC;SACD,MAAM,CAAC,GAAG,EAAE;QACT,KAAK,EAAK,QAAQ;QAClB,IAAI,EAAM,SAAS;QACnB,KAAK,EAAK,KAAK;QACf,MAAM;QACN,OAAO,EAAG,KAAK;QACf,QAAQ,EAAE,+BAA+B;KAC5C,CAAC;SACD,MAAM,CAAC,GAAG,EAAE;QACT,KAAK,EAAK,YAAY;QACtB,IAAI,EAAM,QAAQ;QAClB,KAAK,EAAK,KAAK;QACf,MAAM;QACN,KAAK,EAAK,CAAC;QACX,OAAO,EAAG,EAAE;QACZ,QAAQ,EAAE,4BAA4B;KACzC,CAAC;SACD,MAAM,CAAC,GAAG,EAAE;QACT,KAAK,EAAK,MAAM;QAChB,IAAI,EAAM,QAAQ;QAClB,KAAK,EAAK,KAAK;QACf,MAAM;QACN,KAAK,EAAK,CAAC;QACX,OAAO,EAAG,EAAE;QACZ,QAAQ,EAAE,0BAA0B;KACvC,CAAC;SACD,MAAM,CAAC,GAAG,EAAE;QACT,KAAK,EAAK,QAAQ;QAClB,IAAI,EAAM,QAAQ;QAClB,KAAK,EAAK,KAAK;QACf,MAAM;QACN,KAAK,EAAK,CAAC;QACX,OAAO,EAAG,EAAE;QACZ,QAAQ,EAAE,sEAAsE;KACnF,CAAC;SACD,IAAI,CAAC,GAAG,EAAE,iBAAiB,CAAC;SAC5B,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC;SAClB,cAAc,CAAC,IAAI,CAAC;SACpB,MAAM,EAAE;SACR,MAAM,CAAC,CAAC,CAAC;SACT,KAAK,CAAC,IAAA,iBAAO,EAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;IAEjC,qCAAqC;IACrC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC;QACT,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,sBAAG,CAAC,UAAU,CAAC,KAAK,sBAAG,CAAC,WAAW,CAAC,MAAM,sBAAG,CAAC,QAAQ,KAAK,CAAC,CAAA;QAC/F,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,sBAAG,CAAC,WAAW,IAAI,CAAC,CAAA;QAC5C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,sBAAG,CAAC,MAAM,CAAC,IAAI,KAAK,sBAAG,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,CAAA;QACxF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,kBAAkB,sBAAG,CAAC,OAAO,8BAA8B,sBAAG,CAAC,OAAO,UAAU,CAAC,CAAA;QACtG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACnB,CAAC;IAED,iCAAiC;IACjC,GAAG,GAAG,IAAI,gBAAK,CAAC;QACZ,QAAQ,EAAG,MAAM;QACjB,QAAQ,EAAG,IAAI,CAAC,CAAC;QACjB,OAAO,EAAI,IAAI;QACf,SAAS,EAAE,sBAAG,CAAC,IAAI;KACtB,CAAC,CAAA;IAEF,mCAAmC;IACnC,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,uBAAuB,sBAAG,CAAC,UAAU,CAAC,KAAK,sBAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;IAE/E,uBAAuB;IACvB,MAAM,MAAM,GAAG,iBAAO,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;IAChE,IAAI,MAAM,EAAE,MAAM,KAAK,SAAS;QAC5B,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;YACxC,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,gCAAgC,GAAG,qBAAqB,CAAC,CAAA;IAEjF,kCAAkC;IAClC,OAAO,CAAC,EAAE,CAAC,mBAAmB,EAAE,KAAK,EAAE,GAAU,EAAE,EAAE;QACjD,GAAI,CAAC,GAAG,CAAC,SAAS,EAAE,uCAAuC,GAAG,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC,CAAA;QAC9E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACnB,CAAC,CAAC,CAAA;IAEF,2CAA2C;IAC3C,OAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE;QACvD,IAAI,MAAM,YAAY,KAAK;YACvB,GAAI,CAAC,GAAG,CAAC,OAAO,EAAE,kCAAkC,MAAM,CAAC,OAAO,KAAK,MAAM,CAAC,KAAK,EAAE,CAAC,CAAA;;YAEtF,GAAI,CAAC,GAAG,CAAC,OAAO,EAAE,kCAAkC,MAAM,EAAE,CAAC,CAAA;QACjE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACnB,CAAC,CAAC,CAAA;IAEF,0BAA0B;IAC1B,IAAI,CAAC,GAAG,CAAC,CAAA;IACT,IAAI,OAAO,IAAI,CAAC,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,CAAC,KAAK,EAAE;QAAE,CAAC,EAAE,CAAA;IACpD,IAAI,OAAO,IAAI,CAAC,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,CAAC,KAAK,EAAE;QAAE,CAAC,EAAE,CAAA;IACpD,IAAI,OAAO,IAAI,CAAC,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,CAAC,KAAK,EAAE;QAAE,CAAC,EAAE,CAAA;IACpD,IAAI,CAAC,KAAK,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,qFAAqF,CAAC,CAAA;IAE1G,0BAA0B;IAC1B,IAAI,MAAM,GAAG,EAAE,CAAA;IACf,IAAI,OAAO,IAAI,CAAC,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,CAAC,KAAK,EAAE;QAC3C,MAAM,GAAG,IAAI,CAAC,CAAC,CAAA;SACd,IAAI,OAAO,IAAI,CAAC,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,CAAC,KAAK,EAAE;QAChD,MAAM,GAAG,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAA;SACrD,IAAI,OAAO,IAAI,CAAC,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;QACnD,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAA;QACtC,IAAI,CAAC,KAAK,IAAI;YACV,MAAM,IAAI,KAAK,CAAC,iFAAiF,CAAC,CAAA;QACtG,MAAM,CAAE,AAAD,EAAG,EAAE,EAAE,IAAI,CAAE,GAAG,CAAC,CAAA;QACxB,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAA;QACxD,MAAM,GAAG,GAAQ,iBAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAClC,IAAI,GAAG,CAAC,EAAE,CAAC,KAAK,SAAS;YACrB,MAAM,IAAI,KAAK,CAAC,eAAe,EAAE,+BAA+B,CAAC,CAAA;QACrE,MAAM,GAAG,GAAG,CAAC,EAAE,CAAW,CAAA;IAC9B,CAAC;IAED,4CAA4C;IAC5C,MAAM,KAAK,GAA8C,EAAE,CAAA;IAE3D,sCAAsC;IACtC,MAAM,KAAK,GAAG;QACV,iCAAiC;QACjC,8BAA8B;QAC9B,+BAA+B;QAC/B,gCAAgC;QAChC,iCAAiC;QACjC,8BAA8B;QAC9B,mCAAmC;QACnC,qCAAqC;QACrC,iCAAiC;QACjC,gCAAgC;QAChC,iCAAiC;QACjC,iCAAiC;QACjC,uCAAuC;QACvC,mCAAmC;QACnC,iCAAiC;QACjC,iCAAiC;QACjC,gCAAgC;QAChC,iCAAiC;QACjC,+BAA+B;QAC/B,+BAA+B;QAC/B,oCAAoC;KACvC,CAAA;IACD,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,IAAI,GAAQ,MAAM,MAAM,CAAC,GAAG,CAAC,CAAA;QACjC,OAAO,IAAI,CAAC,OAAO,KAAK,SAAS;YAC7B,IAAI,GAAG,IAAI,CAAC,OAAO,CAAA;QACvB,IAAI,OAAO,IAAI,KAAK,UAAU,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC9D,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,4BAA4B,IAAI,CAAC,IAAI,wBAAwB,CAAC,CAAA;YAC9E,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAA6B,CAAA;QACpD,CAAC;IACL,CAAC;IAED,sCAAsC;IACtC,MAAM,KAAK,GAAG,MAAM,IAAA,4BAAiB,GAAE,CAAA;IACvC,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,GAAG,CAAC,KAAK,CAAC,mCAAmC,CAAC,EAAE,CAAC;YACjD,IAAI,IAAI,GAAQ,MAAM,MAAM,CAAC,GAAG,CAAC,CAAA;YACjC,OAAO,IAAI,CAAC,OAAO,KAAK,SAAS;gBAC7B,IAAI,GAAG,IAAI,CAAC,OAAO,CAAA;YACvB,IAAI,OAAO,IAAI,KAAK,UAAU,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC9D,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;oBACjC,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,mCAAmC,IAAI,CAAC,IAAI,IAAI;wBAC/D,yBAAyB,GAAG,0BAA0B,CAAC,CAAA;oBAC3D,SAAQ;gBACZ,CAAC;gBACD,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,4BAA4B,IAAI,CAAC,IAAI,2BAA2B,GAAG,GAAG,CAAC,CAAA;gBACvF,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAA6B,CAAA;YACpD,CAAC;QACL,CAAC;IACL,CAAC;IAED,4BAA4B;IAC5B,MAAM,GAAG,GAAG;QACR,aAAa,EAAM,CAAC;QACpB,aAAa,EAAM,EAAE;QACrB,iBAAiB,EAAE,IAAI;QACvB,eAAe,EAAI,KAAK;QACxB,YAAY,EAAO,MAAM;QACzB,QAAQ,EAAW,IAAI,CAAC,CAAC;KAC5B,CAAA;IAED,6CAA6C;IAC7C,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC;QACT,MAAM,KAAK,GAAG,IAAI,oBAAK,CAAC;YACpB,IAAI,EAAE;gBACF,eAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;gBACxB,eAAK,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC;gBAC5B,eAAK,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;aAC5B;YACD,SAAS,EAAE,CAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAE;YAC3C,KAAK,EAAE,EAAE,cAAc,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,MAAM,EAAE,CAAE,MAAM,CAAE,EAAE,OAAO,EAAE,IAAI,EAAE;YACnF,KAAK,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE;SACrE,CAAC,CAAA;QACF,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACpC,GAAI,CAAC,GAAG,CAAC,MAAM,EAAE,6BAA6B,IAAI,GAAG,CAAC,CAAA;YACtD,MAAM,IAAI,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;YAC/C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,CAAA;YAClC,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACjC,IAAI,KAAK,GAAG,IAAI,CAAA;gBAChB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;oBACpC,KAAK,CAAC,IAAI,CAAC,CAAE,KAAK,CAAC,CAAC,CAAC,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,eAAK,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC,CAAA;oBAC3E,KAAK,GAAG,KAAK,CAAA;gBACjB,CAAC;YACL,CAAC;QACL,CAAC;QACD,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAA;QAC/B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;QACnC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACnB,CAAC;IAED,wEAAwE;IACxE,MAAM,QAAQ,GAAG,IAAI,kBAAQ,CAAiB;QAC1C,KAAK,EAAE,CAAC,GAAW,EAAE,EAAE;YACnB,GAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;QAC1B,CAAC;KACJ,CAAC,CAAA;IACF,MAAM,SAAS,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAA;IACpD,MAAM,UAAU,GAAG,IAAI,GAAG,EAAkB,CAAA;IAC5C,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAiC,CAAA;IACzD,IAAI,GAAY,CAAA;IAChB,IAAI,CAAC;QACD,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IAClC,CAAC;IACD,OAAO,GAAG,EAAE,CAAC;QACT,IAAI,GAAG,YAAY,KAAK,IAAI,GAAG,CAAC,IAAI,KAAK,eAAe;YACpD,GAAI,CAAC,GAAG,CAAC,OAAO,EAAE,6CAA6C,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAA;aAChF,IAAI,GAAG,YAAY,KAAK;YACzB,GAAI,CAAC,GAAG,CAAC,OAAO,EAAE,6CAA6C,GAAG,CAAC,OAAO,GAAG,CAAC,CAAA;;YAE9E,GAAI,CAAC,GAAG,CAAC,OAAO,EAAE,0DAA0D,CAAC,CAAA;QACjF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACnB,CAAC;IACD,IAAI,CAAC;QACD,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE;YAClB,eAAe,CAAE,EAAU;gBACvB,IAAI,CAAC,qBAAU,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,CAAC;oBAC9B,MAAM,IAAI,KAAK,CAAC,+BAA+B,EAAE,GAAG,CAAC,CAAA;gBACzD,MAAM,KAAK,GAAG,qBAAU,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,CAAC,CAAA;gBAC3C,GAAI,CAAC,GAAG,CAAC,MAAM,EAAE,sBAAsB,EAAE,SAAS,KAAK,GAAG,CAAC,CAAA;gBAC3D,OAAO,KAAK,CAAA;YAChB,CAAC;YACD,UAAU,CAAE,EAAU,EAAE,IAA6B,EAAE,IAAW;gBAC9D,IAAI,KAAK,CAAC,EAAE,CAAC,KAAK,SAAS;oBACvB,MAAM,IAAI,KAAK,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAA;gBAC3C,IAAI,IAAoB,CAAA;gBACxB,IAAI,CAAC;oBACD,IAAI,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAA;oBACtC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;oBAC9B,MAAM,IAAI,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,GAAG,EAAE,CAAA;oBAC5C,IAAI,GAAG,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;gBAC/C,CAAC;gBACD,OAAO,GAAG,EAAE,CAAC;oBACT,mBAAmB;oBACnB,IAAI,GAAG,YAAY,KAAK;wBACpB,GAAI,CAAC,GAAG,CAAC,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAA;;wBAEpE,GAAI,CAAC,GAAG,CAAC,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,GAAG,EAAE,CAAC,CAAA;oBAChE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;gBACnB,CAAC;gBACD,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;qBAClC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;gBAC3E,GAAI,CAAC,GAAG,CAAC,MAAM,EAAE,gBAAgB,IAAI,CAAC,EAAE,MAAM,MAAM,GAAG,CAAC,CAAA;gBACxD,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;gBACpB,OAAO,IAAI,CAAA;YACf,CAAC;YACD,WAAW,CAAE,KAAqB,EAAE,KAAqB;gBACrD,GAAI,CAAC,GAAG,CAAC,MAAM,EAAE,iBAAiB,KAAK,CAAC,EAAE,cAAc,KAAK,CAAC,EAAE,GAAG,CAAC,CAAA;gBACpE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;YACxB,CAAC;SACJ,CAAC,CAAA;IACN,CAAC;IACD,OAAO,GAAG,EAAE,CAAC;QACT,IAAI,GAAG,YAAY,KAAK,IAAI,GAAG,CAAC,IAAI,KAAK,eAAe;YACpD,GAAI,CAAC,GAAG,CAAC,OAAO,EAAE,mDAAmD,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;aACrF,IAAI,GAAG,YAAY,KAAK;YACzB,GAAI,CAAC,GAAG,CAAC,OAAO,EAAE,mDAAmD,GAAG,CAAC,OAAO,EAAE,CAAC,CAAA;;YAEnF,GAAI,CAAC,GAAG,CAAC,OAAO,EAAE,gEAAgE,CAAC,CAAA;QACvF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACnB,CAAC;IAED,4DAA4D;IAC5D,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC5B,6BAA6B;QAC7B,IAAI,aAAa,GAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;QACnD,IAAI,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;QAEpD,uCAAuC;QACvC,IAAI,IAAI,CAAC,KAAK,KAAK,MAAM,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC;YACnD,MAAM,IAAI,KAAK,CAAC,SAAS,IAAI,CAAC,EAAE,mDAAmD,CAAC,CAAA;QAExF,wCAAwC;QACxC,IAAI,IAAI,CAAC,KAAK,KAAK,MAAM,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC;YACjD,aAAa,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA,CAAC,CAAC,CAAC,CAAA;QAEhE,uCAAuC;QACvC,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC;YACrD,MAAM,IAAI,KAAK,CAAC,SAAS,IAAI,CAAC,EAAE,qDAAqD,CAAC,CAAA;QAE1F,wCAAwC;QACxC,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC;YACnD,cAAc,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA,CAAC,CAAC,CAAC,CAAA;QAEjE,uCAAuC;QACvC,aAAa,GAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;QAC/C,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;QAChD,KAAK,MAAM,KAAK,IAAI,cAAc;YAC9B,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC,MAAM;gBAC3B,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,iBAAiB,IAAI,CAAC,EAAE,cAAc;oBAChE,gBAAgB,KAAK,CAAC,KAAK,gBAAgB,KAAK,CAAC,EAAE,6BAA6B,CAAC,CAAA;IACjG,CAAC;IAED,4CAA4C;IAC5C,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC5B,2BAA2B;QAC3B,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAa,EAAE,GAAW,EAAE,IAAU,EAAE,EAAE;YACtD,IAAI,GAAG,GAAG,IAAI,IAAI,CAAC,EAAE,MAAM,GAAG,EAAE,CAAA;YAChC,IAAI,IAAI,KAAK,SAAS;gBAClB,GAAG,IAAI,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAA;YACvC,GAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;QACxB,CAAC,CAAC,CAAA;QAEF,iBAAiB;QACjB,GAAI,CAAC,GAAG,CAAC,MAAM,EAAE,cAAc,IAAI,CAAC,EAAE,GAAG,CAAC,CAAA;QAC1C,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAU,EAAE,EAAE;YACnC,GAAI,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,EAAE,MAAM,GAAG,CAAC,OAAO,EAAE,CAAC,CAAA;YACjD,MAAM,IAAI,KAAK,CAAC,wBAAwB,IAAI,CAAC,EAAE,GAAG,CAAC,CAAA;QACvD,CAAC,CAAC,CAAA;IACN,CAAC;IAED,4DAA4D;IAC5D,MAAM,QAAQ,GAAG,gBAAQ,CAAC,GAAG,EAAE,CAAA;IAC/B,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC5B,GAAI,CAAC,GAAG,CAAC,MAAM,EAAE,0BAA0B,IAAI,CAAC,EAAE,GAAG,CAAC,CAAA;QACtD,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAA;IAC9B,CAAC;IAED,sDAAsD;IACtD,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC5B,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI;YACpB,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,CAAC,EAAE,yBAAyB,CAAC,CAAA;QACxE,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;YAClD,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI;gBACrB,MAAM,IAAI,KAAK,CAAC,4BAA4B,KAAK,CAAC,EAAE,yBAAyB,CAAC,CAAA;YAClF,GAAI,CAAC,GAAG,CAAC,MAAM,EAAE,2BAA2B,IAAI,CAAC,EAAE,wBAAwB,KAAK,CAAC,EAAE,GAAG,CAAC,CAAA;YACvF,IAAI,CAAC,CAAE,IAAI,CAAC,MAAM,YAAY,qBAAM,CAAC,QAAQ;mBACtC,IAAI,CAAC,MAAM,YAAY,qBAAM,CAAC,MAAM,CAAG;gBAC1C,MAAM,IAAI,KAAK,CAAC,0BAA0B,IAAI,CAAC,EAAE,0CAA0C,CAAC,CAAA;YAChG,IAAI,CAAC,CAAE,KAAK,CAAC,MAAM,YAAY,qBAAM,CAAC,QAAQ;mBACvC,KAAK,CAAC,MAAM,YAAY,qBAAM,CAAC,MAAM,CAAG;gBAC3C,MAAM,IAAI,KAAK,CAAC,yBAAyB,KAAK,CAAC,EAAE,0CAA0C,CAAC,CAAA;YAChG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QAClC,CAAC;IACL,CAAC;IAED,wDAAwD;IACxD,MAAM,WAAW,GAAI,IAAI,GAAG,EAAkB,CAAA;IAC9C,MAAM,YAAY,GAAG,IAAI,0BAAY,EAAE,CAAA;IACvC,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC5B,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI;YACpB,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,CAAC,EAAE,yBAAyB,CAAC,CAAA;QACxE,GAAI,CAAC,GAAG,CAAC,MAAM,EAAE,2BAA2B,IAAI,CAAC,EAAE,oBAAoB,CAAC,CAAA;QACxE,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QACrB,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;YACvB,IAAI,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC;gBACrB,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;YAC5B,GAAI,CAAC,GAAG,CAAC,MAAM,EAAE,4BAA4B,IAAI,CAAC,EAAE,YAAY,WAAW,CAAC,IAAI,0BAA0B,CAAC,CAAA;YAC3G,IAAI,WAAW,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBACzB,MAAM,YAAY,GAAG,gBAAQ,CAAC,GAAG,EAAE,CAAA;gBACnC,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;gBAC5C,GAAI,CAAC,GAAG,CAAC,MAAM,EAAE,qEAAqE;oBAClF,oBAAoB,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,CAAA;gBAC7D,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;YACjC,CAAC;QACL,CAAC,CAAC,CAAA;QACF,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;YAC1B,IAAI,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC;gBACrB,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;YAC5B,GAAI,CAAC,GAAG,CAAC,MAAM,EAAE,4BAA4B,IAAI,CAAC,EAAE,eAAe,WAAW,CAAC,IAAI,0BAA0B,CAAC,CAAA;YAC9G,IAAI,WAAW,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBACzB,MAAM,YAAY,GAAG,gBAAQ,CAAC,GAAG,EAAE,CAAA;gBACnC,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;gBAC5C,GAAI,CAAC,GAAG,CAAC,MAAM,EAAE,qEAAqE;oBAClF,oBAAoB,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,CAAA;gBAC7D,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;YACjC,CAAC;QACL,CAAC,CAAC,CAAA;IACN,CAAC;IAED,kDAAkD;IAClD,MAAM,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;QAClC,OAAO,EAAE,QAAQ;QACjB,IAAI,EAAK,QAAQ;QACjB,IAAI,EAAK,WAAW;KACvB,CAAC,CAAA;IAEF,wDAAwD;IACxD,MAAM,sBAAsB,GAAG,KAAK,EAAE,IAAS,EAAE,EAAE;QAC/C,MAAM,GAAG,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAA;QAClC,IAAI,GAAG,YAAY,OAAO,CAAC,IAAI,CAAC,MAAM;YAClC,MAAM,IAAI,KAAK,CAAC,oBAAoB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAA;QACtD,IAAI,GAAG,CAAC,OAAO,KAAK,SAAS;YACzB,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAA;QAClE,MAAM,IAAI,GAAG,GAAG,CAAC,IAAc,CAAA;QAC/B,MAAM,IAAI,GAAG,GAAG,CAAC,IAAa,CAAA;QAC9B,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,CAAA;QACzE,IAAI,SAAS,KAAK,SAAS;YACvB,GAAI,CAAC,GAAG,CAAC,SAAS,EAAE,0CAA0C,IAAI,GAAG,CAAC,CAAA;aACrE,CAAC;YACF,MAAM,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,GAAU,EAAE,EAAE;gBACtD,GAAI,CAAC,GAAG,CAAC,SAAS,EAAE,6BAA6B,IAAI,aAAa,GAAG,EAAE,CAAC,CAAA;gBACxE,MAAM,IAAI,KAAK,CAAC,6BAA6B,IAAI,aAAa,GAAG,EAAE,CAAC,CAAA;YACxE,CAAC,CAAC,CAAA;QACN,CAAC;IACL,CAAC,CAAA;IAED,oCAAoC;IACpC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAsB,CAAA;IAC7C,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC;QACzB,OAAO,EAAE,IAAI,CAAC,CAAC;QACf,IAAI,EAAK,IAAI,CAAC,CAAC;KAClB,CAAC,CAAA;IACF,MAAM,IAAI,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,4BAAU,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,GAAG,sBAAG,CAAC,IAAI,IAAI,sBAAG,CAAC,OAAO,EAAE,EAAE,EAAE,CAAC,CAAA;IAC9F,MAAM,IAAI,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,+BAAa,EAAE,CAAC,CAAA;IAC9C,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,OAAqB,EAAE,EAAE;QACjD,IAAI,QAAQ,GAAG,QAAQ,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,CAAA;QACpD,MAAM,EAAE,GAAG,OAAO,CAAC,SAAS,EAAE,CAAA;QAC9B,IAAI,EAAE,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YAC1B,MAAM,SAAS,GAAI,EAAE,CAAC,EAAU,CAAC,eAAe;gBAC5C,OAAO,CAAC,OAAO,CAAC,uBAAuB,CAAC,IAAI,KAAK,CAAA;YACrD,QAAQ,GAAG,aAAa,SAAS,IAAI,QAAQ,EAAE,CAAA;QACnD,CAAC;QACD,MAAM,GAAG,GACL,SAAS,GAAK,OAAO,CAAC,IAAI,CAAC,aAAa,GAAG,IAAI;YAC/C,SAAS,GAAK,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,GAAG,IAAI;YACjD,MAAM,GAAQ,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,IAAI;YACzC,WAAW,GAAG,QAAQ,GAAG,IAAI;YAC7B,WAAW,GAAG,CAAC,YAAY,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,CAAA;QAChG,GAAI,CAAC,GAAG,CAAC,MAAM,EAAE,kBAAkB,GAAG,EAAE,CAAC,CAAA;IAC7C,CAAC,CAAC,CAAA;IACF,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAE,OAAO,CAAE,EAAE,EAAE,CAAC,OAAqB,EAAE,KAAwB,EAAE,IAA6B,EAAE,EAAE;QAC1I,IAAI,KAAK,CAAC,KAAK,YAAY,KAAK;YAC5B,GAAI,CAAC,GAAG,CAAC,OAAO,EAAE,wBAAwB,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;;YAEhE,GAAI,CAAC,GAAG,CAAC,OAAO,EAAE,wBAAwB,KAAK,CAAC,KAAK,EAAE,CAAC,CAAA;IAChE,CAAC,CAAC,CAAA;IACF,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAoB,EAAE,IAA6B,EAAE,EAAE;QAC1E,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAA;YACvB,IAAI,GAAG,YAAY,KAAK;gBACpB,GAAI,CAAC,GAAG,CAAC,OAAO,EAAE,cAAc,GAAG,CAAC,OAAO,EAAE,CAAC,CAAA;;gBAE9C,GAAI,CAAC,GAAG,CAAC,OAAO,EAAE,cAAc,GAAG,EAAE,CAAC,CAAA;QAC9C,CAAC;IACL,CAAC,CAAC,CAAA;IACF,IAAI,CAAC,KAAK,CAAC;QACP,MAAM,EAAE,KAAK;QACb,IAAI,EAAI,6BAA6B;QACrC,OAAO,EAAE,EACR;QACD,OAAO,EAAE,CAAC,OAAqB,EAAE,CAAuB,EAAE,EAAE;YACxD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,aAAa,CAAA;YACvC,MAAM,GAAG,GAAG;gBACR,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG;gBAC3B,IAAI,EAAK,OAAO,CAAC,MAAM,CAAC,IAAI;gBAC5B,IAAI,EAAK,CAAC,OAAO,CAAC,MAAM,CAAC,MAAgB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC;aAC1F,CAAA;YACD,GAAI,CAAC,GAAG,CAAC,MAAM,EAAE,cAAc,IAAI,UAAU,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;YACnE,OAAO,sBAAsB,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;gBACzC,OAAO,CAAC,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YACnD,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBACb,OAAO,CAAC,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YACzE,CAAC,CAAC,CAAA;QACN,CAAC;KACJ,CAAC,CAAA;IACF,IAAI,CAAC,KAAK,CAAC;QACP,MAAM,EAAE,MAAM;QACd,IAAI,EAAI,MAAM;QACd,OAAO,EAAE;YACL,OAAO,EAAE;gBACL,MAAM,EAAE,MAAM;gBACd,KAAK,EAAG,IAAI;gBACZ,KAAK,EAAG,kBAAkB;aAC7B;YACD,OAAO,EAAE;gBACL,SAAS,EAAE;oBACP,QAAQ,EAAE,EAAE,GAAG,IAAI;oBACnB,OAAO,EAAE,CAAC,IAAS,EAAE,EAAE;wBACnB,MAAM,GAAG,GAAyB,IAAI,CAAC,GAAG,CAAA;wBAC1C,MAAM,EAAE,GAA0B,IAAI,CAAC,EAAE,CAAA;wBACzC,MAAM,GAAG,GAAyB,IAAI,CAAC,GAAG,CAAA;wBAC1C,MAAM,IAAI,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,aAAa,IAAI,GAAG,CAAC,MAAM,CAAC,UAAU,EAAE,CAAA;wBACnE,GAAG,CAAC,IAAI,GAAG,IAAI,CAAA;wBACf,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAA;wBACnC,GAAI,CAAC,GAAG,CAAC,MAAM,EAAE,kCAAkC,IAAI,EAAE,CAAC,CAAA;oBAC9D,CAAC;oBACD,UAAU,EAAE,CAAC,IAAS,EAAE,EAAE;wBACtB,MAAM,GAAG,GAAc,IAAI,CAAC,GAAG,CAAA;wBAC/B,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAA;wBACrB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;wBACpB,GAAI,CAAC,GAAG,CAAC,MAAM,EAAE,qCAAqC,IAAI,EAAE,CAAC,CAAA;oBACjE,CAAC;iBACJ;aACJ;SACJ;QACD,OAAO,EAAE,CAAC,OAAqB,EAAE,CAAuB,EAAE,EAAE;YACxD,qCAAqC;YACrC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,aAAa,CAAA;YACvC,MAAM,GAAG,GAAG,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;YAC7C,IAAI,GAAG,YAAY,OAAO,CAAC,IAAI,CAAC,MAAM;gBAClC,OAAO,CAAC,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,oBAAoB,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YAC/F,GAAI,CAAC,GAAG,CAAC,MAAM,EAAE,cAAc,IAAI,WAAW,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;YACpE,OAAO,sBAAsB,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;gBACzC,OAAO,CAAC,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YACnD,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAU,EAAE,EAAE;gBACpB,OAAO,CAAC,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YACzE,CAAC,CAAC,CAAA;QACN,CAAC;KACJ,CAAC,CAAA;IACF,MAAM,IAAI,CAAC,KAAK,EAAE,CAAA;IAClB,GAAI,CAAC,GAAG,CAAC,MAAM,EAAE,wDAAwD,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;IAErG,6CAA6C;IAC7C,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC5B,IAAI,CAAC,EAAE,CAAC,eAAe,EAAE,CAAC,IAAW,EAAE,EAAE;YACrC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAA;YACxE,KAAK,MAAM,CAAE,IAAI,EAAE,IAAI,CAAE,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;gBAC7C,GAAI,CAAC,GAAG,CAAC,MAAM,EAAE,cAAc,IAAI,KAAK,IAAI,EAAE,CAAC,CAAA;gBAC/C,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACtB,CAAC;QACL,CAAC,CAAC,CAAA;IACN,CAAC;IAED,2CAA2C;IAC3C,GAAI,CAAC,GAAG,CAAC,MAAM,EAAE,kFAAkF,CAAC,CAAA;IAEpG,mCAAmC;IACnC,IAAI,YAAY,GAAG,KAAK,CAAA;IACxB,MAAM,QAAQ,GAAG,KAAK,EAAE,MAAc,EAAE,EAAE;QACtC,IAAI,YAAY;YACZ,OAAM;QACV,YAAY,GAAG,IAAI,CAAA;QACnB,IAAI,MAAM,KAAK,UAAU;YACrB,GAAI,CAAC,GAAG,CAAC,MAAM,EAAE,kEAAkE,CAAC,CAAA;;YAEpF,GAAI,CAAC,GAAG,CAAC,SAAS,EAAE,wBAAwB,MAAM,gCAAgC,CAAC,CAAA;QAEvF,6BAA6B;QAC7B,GAAI,CAAC,GAAG,CAAC,MAAM,EAAE,yDAAyD,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;QACtG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAA;QAEjB,yDAAyD;QACzD,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;YAC5B,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;gBACvB,GAAI,CAAC,GAAG,CAAC,SAAS,EAAE,mBAAmB,IAAI,CAAC,EAAE,yBAAyB,CAAC,CAAA;gBACxE,SAAQ;YACZ,CAAC;YACD,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;gBAClD,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;oBACxB,GAAI,CAAC,GAAG,CAAC,SAAS,EAAE,4BAA4B,KAAK,CAAC,EAAE,yBAAyB,CAAC,CAAA;oBAClF,SAAQ;gBACZ,CAAC;gBACD,IAAI,CAAC,CAAE,IAAI,CAAC,MAAM,YAAY,qBAAM,CAAC,QAAQ;uBACtC,IAAI,CAAC,MAAM,YAAY,qBAAM,CAAC,MAAM,CAAG,EAAE,CAAC;oBAC7C,GAAI,CAAC,GAAG,CAAC,SAAS,EAAE,0BAA0B,IAAI,CAAC,EAAE,0CAA0C,CAAC,CAAA;oBAChG,SAAQ;gBACZ,CAAC;gBACD,IAAI,CAAC,CAAE,KAAK,CAAC,MAAM,YAAY,qBAAM,CAAC,QAAQ;uBACvC,KAAK,CAAC,MAAM,YAAY,qBAAM,CAAC,MAAM,CAAG,EAAE,CAAC;oBAC9C,GAAI,CAAC,GAAG,CAAC,SAAS,EAAE,yBAAyB,KAAK,CAAC,EAAE,0CAA0C,CAAC,CAAA;oBAChG,SAAQ;gBACZ,CAAC;gBACD,GAAI,CAAC,GAAG,CAAC,MAAM,EAAE,8BAA8B,IAAI,CAAC,EAAE,0BAA0B,KAAK,CAAC,EAAE,GAAG,CAAC,CAAA;gBAC5F,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;YACpC,CAAC;QACL,CAAC;QAED,6CAA6C;QAC7C,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;YAC5B,GAAI,CAAC,GAAG,CAAC,MAAM,EAAE,eAAe,IAAI,CAAC,EAAE,GAAG,CAAC,CAAA;YAC3C,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBAC7B,GAAI,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,IAAI,CAAC,EAAE,sBAAsB,GAAG,EAAE,CAAC,CAAA;YACpE,CAAC,CAAC,CAAA;QACN,CAAC;QAED,kDAAkD;QAClD,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;YAC5B,GAAI,CAAC,GAAG,CAAC,MAAM,EAAE,oBAAoB,IAAI,CAAC,EAAE,GAAG,CAAC,CAAA;YAChD,MAAM,aAAa,GAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;YACrD,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;YACtD,aAAa,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA,CAAC,CAAC,CAAC,CAAA;YAC5D,cAAc,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA,CAAC,CAAC,CAAC,CAAA;QACjE,CAAC;QAED,gDAAgD;QAChD,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;YAC5B,GAAI,CAAC,GAAG,CAAC,MAAM,EAAE,iBAAiB,IAAI,CAAC,EAAE,GAAG,CAAC,CAAA;YAC7C,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QAC3B,CAAC;QAED,yBAAyB;QACzB,IAAI,MAAM,KAAK,UAAU,EAAE,CAAC;YACxB,GAAI,CAAC,GAAG,CAAC,MAAM,EAAE,gCAAgC,CAAC,CAAA;YAClD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACnB,CAAC;aACI,CAAC;YACF,GAAI,CAAC,GAAG,CAAC,MAAM,EAAE,gCAAgC,CAAC,CAAA;YAClD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACnB,CAAC;IACL,CAAC,CAAA;IACD,YAAY,CAAC,EAAE,CAAC,UAAU,EAAE,GAAG,EAAE;QAC7B,QAAQ,CAAC,UAAU,CAAC,CAAA;IACxB,CAAC,CAAC,CAAA;IACF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;QACtB,QAAQ,CAAC,QAAQ,CAAC,CAAA;IACtB,CAAC,CAAC,CAAA;IACF,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;QACvB,QAAQ,CAAC,SAAS,CAAC,CAAA;IACvB,CAAC,CAAC,CAAA;IACF,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;QACvB,QAAQ,CAAC,SAAS,CAAC,CAAA;IACvB,CAAC,CAAC,CAAA;IACF,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;QACvB,QAAQ,CAAC,SAAS,CAAC,CAAA;IACvB,CAAC,CAAC,CAAA;AACN,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,GAAU,EAAE,EAAE;IACtB,IAAI,GAAG,KAAK,IAAI;QACZ,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;;QAE7B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,sBAAG,CAAC,IAAI,KAAK,eAAK,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,KAAK,IAAI,CAAC,CAAA;IAC7F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACnB,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"speechflow.js","sourceRoot":"","sources":["../src/speechflow.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "speechflow",
3
- "version": "1.2.0",
3
+ "version": "1.2.1",
4
4
  "x-stdver": "1.2.0-GA",
5
5
  "x-release": "2025-07-21",
6
6
  "homepage": "https://github.com/rse/speechflow",
@@ -26,7 +26,7 @@
26
26
  "@elevenlabs/elevenlabs-js": "2.6.0",
27
27
  "stream-transform": "3.4.0",
28
28
  "get-stream": "9.0.1",
29
- "@dotenvx/dotenvx": "1.48.1",
29
+ "@dotenvx/dotenvx": "1.48.2",
30
30
  "speex-resampler": "3.0.1",
31
31
  "pcm-convert": "1.6.5",
32
32
  "object-path": "0.11.8",
package/src/speechflow.ts CHANGED
@@ -231,20 +231,20 @@ type wsPeerInfo = {
231
231
  /* load internal SpeechFlow nodes */
232
232
  const pkgsI = [
233
233
  "./speechflow-node-a2a-ffmpeg.js",
234
- "./speechflow-node-a2a-wav.js",
235
- "./speechflow-node-a2a-mute.js",
236
- "./speechflow-node-a2a-meter.js",
237
234
  "./speechflow-node-a2a-gender.js",
235
+ "./speechflow-node-a2a-meter.js",
236
+ "./speechflow-node-a2a-mute.js",
238
237
  "./speechflow-node-a2a-vad.js",
238
+ "./speechflow-node-a2a-wav.js",
239
239
  "./speechflow-node-a2t-deepgram.js",
240
240
  "./speechflow-node-t2a-elevenlabs.js",
241
241
  "./speechflow-node-t2a-kokoro.js",
242
242
  "./speechflow-node-t2t-deepl.js",
243
- "./speechflow-node-t2t-openai.js",
243
+ "./speechflow-node-t2t-format.js",
244
244
  "./speechflow-node-t2t-ollama.js",
245
- "./speechflow-node-t2t-transformers.js",
245
+ "./speechflow-node-t2t-openai.js",
246
246
  "./speechflow-node-t2t-subtitle.js",
247
- "./speechflow-node-t2t-format.js",
247
+ "./speechflow-node-t2t-transformers.js",
248
248
  "./speechflow-node-x2x-filter.js",
249
249
  "./speechflow-node-x2x-trace.js",
250
250
  "./speechflow-node-xio-device.js",
@@ -257,7 +257,7 @@ type wsPeerInfo = {
257
257
  while (node.default !== undefined)
258
258
  node = node.default
259
259
  if (typeof node === "function" && typeof node.name === "string") {
260
- cli.log("info", `loading SpeechFlow node "${node.name}" from internal module`)
260
+ cli.log("info", `loading SpeechFlow node <${node.name}> from internal module`)
261
261
  nodes[node.name] = node as typeof SpeechFlowNode
262
262
  }
263
263
  }
@@ -271,11 +271,11 @@ type wsPeerInfo = {
271
271
  node = node.default
272
272
  if (typeof node === "function" && typeof node.name === "string") {
273
273
  if (nodes[node.name] !== undefined) {
274
- cli.log("warning", `failed loading SpeechFlow node "${node.name}" ` +
274
+ cli.log("warning", `failed loading SpeechFlow node <${node.name}> ` +
275
275
  `from external module "${pkg}" -- node already exists`)
276
276
  continue
277
277
  }
278
- cli.log("info", `loading SpeechFlow node "${node.name}" from external module "${pkg}"`)
278
+ cli.log("info", `loading SpeechFlow node <${node.name}> from external module "${pkg}"`)
279
279
  nodes[node.name] = node as typeof SpeechFlowNode
280
280
  }
281
281
  }
@@ -353,7 +353,7 @@ type wsPeerInfo = {
353
353
  },
354
354
  createNode (id: string, opts: { [ id: string ]: any }, args: any[]) {
355
355
  if (nodes[id] === undefined)
356
- throw new Error(`unknown node "${id}"`)
356
+ throw new Error(`unknown node <${id}>`)
357
357
  let node: SpeechFlowNode
358
358
  try {
359
359
  let num = nodeNums.get(nodes[id]) ?? 0
@@ -364,19 +364,19 @@ type wsPeerInfo = {
364
364
  catch (err) {
365
365
  /* fatal error */
366
366
  if (err instanceof Error)
367
- cli!.log("error", `creation of <${id}> node failed: ${err.message}`)
367
+ cli!.log("error", `creation of node <${id}> failed: ${err.message}`)
368
368
  else
369
- cli!.log("error", `creation of <${id}> node failed: ${err}`)
369
+ cli!.log("error", `creation of node <${id}> failed: ${err}`)
370
370
  process.exit(1)
371
371
  }
372
372
  const params = Object.keys(node.params)
373
373
  .map((key) => `${key}: ${JSON.stringify(node.params[key])}`).join(", ")
374
- cli!.log("info", `create node "${node.id}" (${params})`)
374
+ cli!.log("info", `create node <${node.id}> (${params})`)
375
375
  graphNodes.add(node)
376
376
  return node
377
377
  },
378
378
  connectNode (node1: SpeechFlowNode, node2: SpeechFlowNode) {
379
- cli!.log("info", `connect node "${node1.id}" to node "${node2.id}"`)
379
+ cli!.log("info", `connect node <${node1.id}> to node <${node2.id}>`)
380
380
  node1.connect(node2)
381
381
  }
382
382
  })
@@ -399,7 +399,7 @@ type wsPeerInfo = {
399
399
 
400
400
  /* ensure necessary incoming links */
401
401
  if (node.input !== "none" && connectionsIn.length === 0)
402
- throw new Error(`node "${node.id}" requires input but has no input nodes connected`)
402
+ throw new Error(`node <${node.id}> requires input but has no input nodes connected`)
403
403
 
404
404
  /* prune unnecessary incoming links */
405
405
  if (node.input === "none" && connectionsIn.length > 0)
@@ -407,7 +407,7 @@ type wsPeerInfo = {
407
407
 
408
408
  /* ensure necessary outgoing links */
409
409
  if (node.output !== "none" && connectionsOut.length === 0)
410
- throw new Error(`node "${node.id}" requires output but has no output nodes connected`)
410
+ throw new Error(`node <${node.id}> requires output but has no output nodes connected`)
411
411
 
412
412
  /* prune unnecessary outgoing links */
413
413
  if (node.output === "none" && connectionsOut.length > 0)
@@ -418,8 +418,8 @@ type wsPeerInfo = {
418
418
  connectionsOut = Array.from(node.connectionsOut)
419
419
  for (const other of connectionsOut)
420
420
  if (other.input !== node.output)
421
- throw new Error(`${node.output} output node "${node.id}" cannot be ` +
422
- `connected to ${other.input} input node "${other.id}" (payload is incompatible)`)
421
+ throw new Error(`${node.output} output node <${node.id}> cannot be ` +
422
+ `connected to ${other.input} input node <${other.id}> (payload is incompatible)`)
423
423
  }
424
424
 
425
425
  /* graph processing: PASS 3: open nodes */
@@ -433,34 +433,34 @@ type wsPeerInfo = {
433
433
  })
434
434
 
435
435
  /* open node */
436
- cli!.log("info", `open node "${node.id}"`)
436
+ cli!.log("info", `open node <${node.id}>`)
437
437
  await node.open().catch((err: Error) => {
438
438
  cli!.log("error", `[${node.id}]: ${err.message}`)
439
- throw new Error(`failed to open node "${node.id}"`)
439
+ throw new Error(`failed to open node <${node.id}>`)
440
440
  })
441
441
  }
442
442
 
443
443
  /* graph processing: PASS 4: set time zero in all nodes */
444
444
  const timeZero = DateTime.now()
445
445
  for (const node of graphNodes) {
446
- cli!.log("info", `set time zero in node "${node.id}"`)
446
+ cli!.log("info", `set time zero in node <${node.id}>`)
447
447
  node.setTimeZero(timeZero)
448
448
  }
449
449
 
450
450
  /* graph processing: PASS 5: connect node streams */
451
451
  for (const node of graphNodes) {
452
452
  if (node.stream === null)
453
- throw new Error(`stream of node "${node.id}" still not initialized`)
453
+ throw new Error(`stream of node <${node.id}> still not initialized`)
454
454
  for (const other of Array.from(node.connectionsOut)) {
455
455
  if (other.stream === null)
456
- throw new Error(`stream of incoming node "${other.id}" still not initialized`)
457
- cli!.log("info", `connect stream of node "${node.id}" to stream of node "${other.id}"`)
456
+ throw new Error(`stream of incoming node <${other.id}> still not initialized`)
457
+ cli!.log("info", `connect stream of node <${node.id}> to stream of node <${other.id}>`)
458
458
  if (!( node.stream instanceof Stream.Readable
459
459
  || node.stream instanceof Stream.Duplex ))
460
- throw new Error(`stream of output node "${node.id}" is neither of Readable nor Duplex type`)
460
+ throw new Error(`stream of output node <${node.id}> is neither of Readable nor Duplex type`)
461
461
  if (!( other.stream instanceof Stream.Writable
462
462
  || other.stream instanceof Stream.Duplex ))
463
- throw new Error(`stream of input node "${other.id}" is neither of Writable nor Duplex type`)
463
+ throw new Error(`stream of input node <${other.id}> is neither of Writable nor Duplex type`)
464
464
  node.stream.pipe(other.stream)
465
465
  }
466
466
  }
@@ -470,32 +470,26 @@ type wsPeerInfo = {
470
470
  const finishEvents = new EventEmitter()
471
471
  for (const node of graphNodes) {
472
472
  if (node.stream === null)
473
- throw new Error(`stream of node "${node.id}" still not initialized`)
474
- cli!.log("info", `observe stream of node "${node.id}" for finish event`)
473
+ throw new Error(`stream of node <${node.id}> still not initialized`)
474
+ cli!.log("info", `observe stream of node <${node.id}> for finish event`)
475
475
  activeNodes.add(node)
476
- node.stream.on("end", () => {
476
+ const deactivateNode = (node: SpeechFlowNode, msg: string) => {
477
477
  if (activeNodes.has(node))
478
478
  activeNodes.delete(node)
479
- cli!.log("info", `readable stream of node "${node.id}" ended (${activeNodes.size} nodes remaining active)`)
479
+ cli!.log("info", `${msg} (${activeNodes.size} active nodes remaining)`)
480
480
  if (activeNodes.size === 0) {
481
481
  const timeFinished = DateTime.now()
482
482
  const duration = timeFinished.diff(timeZero)
483
- cli!.log("info", "everything finished -- stream processing in SpeechFlow graph stops " +
484
- `(total duration: ${duration.toFormat("hh:mm:ss.SSS")})`)
483
+ cli!.log("info", "**** everything finished -- stream processing in SpeechFlow graph stops " +
484
+ `(total duration: ${duration.toFormat("hh:mm:ss.SSS")}) ****`)
485
485
  finishEvents.emit("finished")
486
486
  }
487
+ }
488
+ node.stream.on("end", () => {
489
+ deactivateNode(node, `readable stream side of node <${node.id}> raised "end" event`)
487
490
  })
488
491
  node.stream.on("finish", () => {
489
- if (activeNodes.has(node))
490
- activeNodes.delete(node)
491
- cli!.log("info", `writable stream of node "${node.id}" finished (${activeNodes.size} nodes remaining active)`)
492
- if (activeNodes.size === 0) {
493
- const timeFinished = DateTime.now()
494
- const duration = timeFinished.diff(timeZero)
495
- cli!.log("info", "everything finished -- stream processing in SpeechFlow graph stops " +
496
- `(total duration: ${duration.toFormat("hh:mm:ss.SSS")})`)
497
- finishEvents.emit("finished")
498
- }
492
+ deactivateNode(node, `writable stream side of node <${node.id}> raised "finish" event`)
499
493
  })
500
494
  }
501
495
 
@@ -664,40 +658,40 @@ type wsPeerInfo = {
664
658
  /* graph processing: PASS 1: disconnect node streams */
665
659
  for (const node of graphNodes) {
666
660
  if (node.stream === null) {
667
- cli!.log("warning", `stream of node "${node.id}" no longer initialized`)
661
+ cli!.log("warning", `stream of node <${node.id}> no longer initialized`)
668
662
  continue
669
663
  }
670
664
  for (const other of Array.from(node.connectionsOut)) {
671
665
  if (other.stream === null) {
672
- cli!.log("warning", `stream of incoming node "${other.id}" no longer initialized`)
666
+ cli!.log("warning", `stream of incoming node <${other.id}> no longer initialized`)
673
667
  continue
674
668
  }
675
669
  if (!( node.stream instanceof Stream.Readable
676
670
  || node.stream instanceof Stream.Duplex )) {
677
- cli!.log("warning", `stream of output node "${node.id}" is neither of Readable nor Duplex type`)
671
+ cli!.log("warning", `stream of output node <${node.id}> is neither of Readable nor Duplex type`)
678
672
  continue
679
673
  }
680
674
  if (!( other.stream instanceof Stream.Writable
681
675
  || other.stream instanceof Stream.Duplex )) {
682
- cli!.log("warning", `stream of input node "${other.id}" is neither of Writable nor Duplex type`)
676
+ cli!.log("warning", `stream of input node <${other.id}> is neither of Writable nor Duplex type`)
683
677
  continue
684
678
  }
685
- cli!.log("info", `disconnect stream of node "${node.id}" from stream of node "${other.id}"`)
679
+ cli!.log("info", `disconnect stream of node <${node.id}> from stream of node <${other.id}>`)
686
680
  node.stream.unpipe(other.stream)
687
681
  }
688
682
  }
689
683
 
690
684
  /* graph processing: PASS 2: close nodes */
691
685
  for (const node of graphNodes) {
692
- cli!.log("info", `close node "${node.id}"`)
686
+ cli!.log("info", `close node <${node.id}>`)
693
687
  await node.close().catch((err) => {
694
- cli!.log("warning", `node "${node.id}" failed to close: ${err}`)
688
+ cli!.log("warning", `node <${node.id}> failed to close: ${err}`)
695
689
  })
696
690
  }
697
691
 
698
692
  /* graph processing: PASS 3: disconnect nodes */
699
693
  for (const node of graphNodes) {
700
- cli!.log("info", `disconnect node "${node.id}"`)
694
+ cli!.log("info", `disconnect node <${node.id}>`)
701
695
  const connectionsIn = Array.from(node.connectionsIn)
702
696
  const connectionsOut = Array.from(node.connectionsOut)
703
697
  connectionsIn.forEach((other) => { other.disconnect(node) })
@@ -706,7 +700,7 @@ type wsPeerInfo = {
706
700
 
707
701
  /* graph processing: PASS 4: shutdown nodes */
708
702
  for (const node of graphNodes) {
709
- cli!.log("info", `destroy node "${node.id}"`)
703
+ cli!.log("info", `destroy node <${node.id}>`)
710
704
  graphNodes.delete(node)
711
705
  }
712
706
 
@@ -720,21 +714,11 @@ type wsPeerInfo = {
720
714
  process.exit(1)
721
715
  }
722
716
  }
723
- finishEvents.on("finished", () => {
724
- shutdown("finished")
725
- })
726
- process.on("SIGINT", () => {
727
- shutdown("SIGINT")
728
- })
729
- process.on("SIGUSR1", () => {
730
- shutdown("SIGUSR1")
731
- })
732
- process.on("SIGUSR2", () => {
733
- shutdown("SIGUSR2")
734
- })
735
- process.on("SIGTERM", () => {
736
- shutdown("SIGTERM")
737
- })
717
+ finishEvents.on("finished", () => { shutdown("finished") })
718
+ process.on("SIGINT", () => { shutdown("SIGINT") })
719
+ process.on("SIGUSR1", () => { shutdown("SIGUSR1") })
720
+ process.on("SIGUSR2", () => { shutdown("SIGUSR2") })
721
+ process.on("SIGTERM", () => { shutdown("SIGTERM") })
738
722
  })().catch((err: Error) => {
739
723
  if (cli !== null)
740
724
  cli.log("error", err.message)