lemon-model 1.2.3 → 1.2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (106) hide show
  1. package/dist/esm/index.js +1 -0
  2. package/dist/esm/index.js.map +1 -1
  3. package/dist/esm/socket/decorators.js +266 -0
  4. package/dist/esm/socket/decorators.js.map +1 -0
  5. package/dist/esm/socket/index.js +2 -0
  6. package/dist/esm/socket/index.js.map +1 -1
  7. package/dist/esm/socket/multi.js +94 -0
  8. package/dist/esm/socket/multi.js.map +1 -0
  9. package/dist/esm/socket/socket.js +82 -22
  10. package/dist/esm/socket/socket.js.map +1 -1
  11. package/dist/esm/socket/transport.js +385 -3
  12. package/dist/esm/socket/transport.js.map +1 -1
  13. package/dist/esm/sync/client.js +166 -0
  14. package/dist/esm/sync/client.js.map +1 -0
  15. package/dist/esm/sync/index.js +14 -0
  16. package/dist/esm/sync/index.js.map +1 -0
  17. package/dist/esm/sync/machine.js +181 -0
  18. package/dist/esm/sync/machine.js.map +1 -0
  19. package/dist/esm/sync/network.js +273 -0
  20. package/dist/esm/sync/network.js.map +1 -0
  21. package/dist/esm/sync/testing.js +44 -0
  22. package/dist/esm/sync/testing.js.map +1 -0
  23. package/dist/esm/sync/ticker.js +53 -0
  24. package/dist/esm/sync/ticker.js.map +1 -0
  25. package/dist/esm/sync/types.js +2 -0
  26. package/dist/{proxy → esm/sync}/types.js.map +1 -1
  27. package/dist/index.d.ts +1 -0
  28. package/dist/index.js +1 -0
  29. package/dist/index.js.map +1 -1
  30. package/dist/socket/client/index.d.ts +9 -0
  31. package/dist/{proxy → socket/client}/index.js +8 -11
  32. package/dist/socket/client/index.js.map +1 -0
  33. package/dist/socket/client/keep-alive-controller.d.ts +35 -0
  34. package/dist/socket/client/keep-alive-controller.js +101 -0
  35. package/dist/socket/client/keep-alive-controller.js.map +1 -0
  36. package/dist/socket/client/message-router.d.ts +15 -0
  37. package/dist/socket/client/message-router.js +52 -0
  38. package/dist/socket/client/message-router.js.map +1 -0
  39. package/dist/socket/client/pending-request-store.d.ts +24 -0
  40. package/dist/socket/client/pending-request-store.js +78 -0
  41. package/dist/socket/client/pending-request-store.js.map +1 -0
  42. package/dist/socket/client/reconnect-controller.d.ts +56 -0
  43. package/dist/socket/client/reconnect-controller.js +177 -0
  44. package/dist/socket/client/reconnect-controller.js.map +1 -0
  45. package/dist/socket/client/rotation-controller.d.ts +32 -0
  46. package/dist/socket/client/rotation-controller.js +76 -0
  47. package/dist/socket/client/rotation-controller.js.map +1 -0
  48. package/dist/socket/client/shared-timer-scheduler.d.ts +17 -0
  49. package/dist/socket/client/shared-timer-scheduler.js +77 -0
  50. package/dist/socket/client/shared-timer-scheduler.js.map +1 -0
  51. package/dist/socket/client/socket-client.d.ts +2 -0
  52. package/dist/socket/client/socket-client.js +219 -0
  53. package/dist/socket/client/socket-client.js.map +1 -0
  54. package/dist/socket/client/types.d.ts +101 -0
  55. package/dist/socket/client/types.js +3 -0
  56. package/dist/socket/client/types.js.map +1 -0
  57. package/dist/socket/client/websocket-client-transport.d.ts +23 -0
  58. package/dist/socket/client/websocket-client-transport.js +152 -0
  59. package/dist/socket/client/websocket-client-transport.js.map +1 -0
  60. package/dist/socket/decorators.d.ts +38 -0
  61. package/dist/socket/decorators.js +271 -0
  62. package/dist/socket/decorators.js.map +1 -0
  63. package/dist/socket/index.d.ts +2 -0
  64. package/dist/socket/index.js +2 -0
  65. package/dist/socket/index.js.map +1 -1
  66. package/dist/socket/multi.d.ts +33 -0
  67. package/dist/socket/multi.js +98 -0
  68. package/dist/socket/multi.js.map +1 -0
  69. package/dist/socket/socket.d.ts +22 -4
  70. package/dist/socket/socket.js +82 -22
  71. package/dist/socket/socket.js.map +1 -1
  72. package/dist/socket/transport.d.ts +124 -6
  73. package/dist/socket/transport.js +389 -4
  74. package/dist/socket/transport.js.map +1 -1
  75. package/dist/sync/client.d.ts +16 -0
  76. package/dist/sync/client.js +171 -0
  77. package/dist/sync/client.js.map +1 -0
  78. package/dist/sync/index.d.ts +10 -0
  79. package/dist/sync/index.js +30 -0
  80. package/dist/sync/index.js.map +1 -0
  81. package/dist/sync/machine.d.ts +3 -0
  82. package/dist/sync/machine.js +185 -0
  83. package/dist/sync/machine.js.map +1 -0
  84. package/dist/sync/network.d.ts +38 -0
  85. package/dist/sync/network.js +278 -0
  86. package/dist/sync/network.js.map +1 -0
  87. package/dist/sync/testing.d.ts +38 -0
  88. package/dist/sync/testing.js +48 -0
  89. package/dist/sync/testing.js.map +1 -0
  90. package/dist/sync/ticker.d.ts +21 -0
  91. package/dist/sync/ticker.js +57 -0
  92. package/dist/sync/ticker.js.map +1 -0
  93. package/dist/sync/types.d.ts +115 -0
  94. package/dist/sync/types.js +3 -0
  95. package/dist/sync/types.js.map +1 -0
  96. package/package.json +1 -1
  97. package/dist/proxy/index.d.ts +0 -12
  98. package/dist/proxy/index.js.map +0 -1
  99. package/dist/proxy/proxy.d.ts +0 -75
  100. package/dist/proxy/proxy.js +0 -198
  101. package/dist/proxy/proxy.js.map +0 -1
  102. package/dist/proxy/transport.d.ts +0 -123
  103. package/dist/proxy/transport.js +0 -401
  104. package/dist/proxy/transport.js.map +0 -1
  105. package/dist/proxy/types.d.ts +0 -89
  106. package/dist/proxy/types.js +0 -12
@@ -193,7 +193,9 @@ class Peer {
193
193
  this.logger = (_c = options === null || options === void 0 ? void 0 : options.logger) !== null && _c !== void 0 ? _c : exports.noopSocketLogger;
194
194
  this.id = (_d = options === null || options === void 0 ? void 0 : options.id) !== null && _d !== void 0 ? _d : this.identityProvider.nextPeerId();
195
195
  this.networkOptions = asNetworkOptions(options);
196
- this.jsonTransportOptions = asJSONTransportOptions(options === null || options === void 0 ? void 0 : options.jsonTransport, this.networkOptions.maxPacketBytes);
196
+ this.jsonTransportOptions = asJSONTransportOptions(mergeReliableShortcut(options === null || options === void 0 ? void 0 : options.jsonTransport, options === null || options === void 0 ? void 0 : options.reliable, (top, nested) => this.log('warn', 'jsonTransport.reliable overrides top-level reliable shortcut', 'peer.constructor', {
197
+ data: { reliable: top, jsonTransportReliable: nested },
198
+ })), this.networkOptions.maxPacketBytes);
197
199
  this.log('debug', 'peer created', 'peer.constructor');
198
200
  }
199
201
  /** assigned client id when this peer is connected to another peer */
@@ -261,14 +263,23 @@ class Peer {
261
263
  const serverTransportOptions = server.jsonTransportOptions;
262
264
  const clientTransportOptions = this.jsonTransportOptions;
263
265
  const clientId = server.accept(this, downlink, serverTransportOptions);
264
- server.attachClientReceiverTransport(clientId, Peer.attachReceiver(uplink, server, this, clientId, clientTransportOptions));
265
- const serverReceiverTransport = Peer.attachReceiver(downlink, this, server, undefined, serverTransportOptions);
266
+ /**
267
+ * connect() wiring — docs/specs/reliable-chunk-transport/02-design.md "Peer 통합" 배선표 그대로:
268
+ * | instance | readNetwork | writeNetwork | receiver | sender | clientId | localTransportOptions | remoteTransportOptions |
269
+ * |----------|-------------|--------------|----------|--------------|-----------|------------------------|-------------------------|
270
+ * | server | uplink | downlink | server | this(client) | clientId | serverTransportOptions | clientTransportOptions |
271
+ * | client | downlink | uplink | this | server | undefined | clientTransportOptions | serverTransportOptions |
272
+ * flipping any column here reproduces an error-free hang, not a thrown error.
273
+ */
274
+ server.attachClientTransport(clientId, Peer.attachTransport(uplink, downlink, server, this, clientId, serverTransportOptions, clientTransportOptions));
275
+ const clientTransport = Peer.attachTransport(downlink, uplink, this, server, undefined, clientTransportOptions, serverTransportOptions);
266
276
  this.server = {
267
277
  peer: server,
268
278
  clientId,
269
279
  network: uplink,
270
280
  transportOptions: clientTransportOptions,
271
- receiverTransport: serverReceiverTransport,
281
+ receiverTransport: clientTransport,
282
+ senderTransport: (clientTransportOptions === null || clientTransportOptions === void 0 ? void 0 : clientTransportOptions.reliable) ? clientTransport : undefined,
272
283
  };
273
284
  this.assignedClientId = clientId;
274
285
  this.log('info', 'peer connected', 'peer.connect', {
@@ -397,10 +408,13 @@ class Peer {
397
408
  this.clients.set(clientId, { peer: client, network, transportOptions });
398
409
  return clientId;
399
410
  }
400
- attachClientReceiverTransport(clientId, transport) {
411
+ attachClientTransport(clientId, transport) {
412
+ var _a;
401
413
  const link = this.clients.get(clientId);
402
- if (link)
403
- link.receiverTransport = transport;
414
+ if (!link)
415
+ return;
416
+ link.receiverTransport = transport;
417
+ link.senderTransport = ((_a = link.transportOptions) === null || _a === void 0 ? void 0 : _a.reliable) ? transport : undefined;
404
418
  }
405
419
  detachClient(clientId) {
406
420
  if (!clientId)
@@ -417,7 +431,7 @@ class Peer {
417
431
  this.clients.delete(clientId);
418
432
  }
419
433
  closeLink(link) {
420
- var _a, _b;
434
+ var _a, _b, _c, _d;
421
435
  this.log('debug', 'closing peer link', 'peer.closeLink', {
422
436
  remotePeerId: link.peer.id,
423
437
  clientId: link.clientId,
@@ -425,6 +439,8 @@ class Peer {
425
439
  });
426
440
  (_b = (_a = link.receiverTransport) === null || _a === void 0 ? void 0 : _a.detach) === null || _b === void 0 ? void 0 : _b.call(_a);
427
441
  link.receiverTransport = undefined;
442
+ (_d = (_c = link.senderTransport) === null || _c === void 0 ? void 0 : _c.detach) === null || _d === void 0 ? void 0 : _d.call(_c); //! idempotent — reliable links share receiverTransport's instance
443
+ link.senderTransport = undefined;
428
444
  link.network.close();
429
445
  }
430
446
  static reconnectPair(client, server, clientId) {
@@ -438,12 +454,16 @@ class Peer {
438
454
  const { uplink, downlink } = Peer.createNetworkPair(client, server, 'peer.reconnect');
439
455
  client.closeLink(clientLink);
440
456
  server.closeLink(serverLink);
457
+ const clientTransportOptions = client.jsonTransportOptions;
458
+ const serverTransportOptions = server.jsonTransportOptions;
441
459
  clientLink.network = uplink;
442
- clientLink.transportOptions = client.jsonTransportOptions;
443
- clientLink.receiverTransport = Peer.attachReceiver(downlink, client, server, undefined, server.jsonTransportOptions);
460
+ clientLink.transportOptions = clientTransportOptions;
461
+ clientLink.receiverTransport = Peer.attachTransport(downlink, uplink, client, server, undefined, clientTransportOptions, serverTransportOptions);
462
+ clientLink.senderTransport = (clientTransportOptions === null || clientTransportOptions === void 0 ? void 0 : clientTransportOptions.reliable) ? clientLink.receiverTransport : undefined;
444
463
  serverLink.network = downlink;
445
- serverLink.transportOptions = server.jsonTransportOptions;
446
- serverLink.receiverTransport = Peer.attachReceiver(uplink, server, client, clientId, client.jsonTransportOptions);
464
+ serverLink.transportOptions = serverTransportOptions;
465
+ serverLink.receiverTransport = Peer.attachTransport(uplink, downlink, server, client, clientId, serverTransportOptions, clientTransportOptions);
466
+ serverLink.senderTransport = (serverTransportOptions === null || serverTransportOptions === void 0 ? void 0 : serverTransportOptions.reliable) ? serverLink.receiverTransport : undefined;
447
467
  client.assignedClientId = clientId;
448
468
  client.log('info', 'peer link networks replaced', 'peer.reconnectPair', {
449
469
  remotePeerId: server.id,
@@ -456,16 +476,22 @@ class Peer {
456
476
  networkId: getNetworkId(downlink),
457
477
  });
458
478
  }
459
- static attachReceiver(network, receiver, sender, clientId, transportOptions) {
460
- var _a;
461
- if (transportOptions) {
462
- const transport = (0, transport_1.createJSONTransport)(network, Object.assign(Object.assign({}, transportOptions), { logger: (_a = transportOptions.logger) !== null && _a !== void 0 ? _a : receiver.logger }));
479
+ /**
480
+ * reliable-on locals merge write+read networks into one instance (Peer 통합 절):
481
+ * writeNetwork carries send()+ack/nack/error, receiveNetwork(=readNetwork) carries the onMessage subscription.
482
+ * off (remoteTransportOptions only, or neither) keeps the existing receiver-only/raw paths untouched.
483
+ */
484
+ static attachTransport(readNetwork, writeNetwork, receiver, sender, clientId, localTransportOptions, remoteTransportOptions, logger) {
485
+ var _a, _b, _c;
486
+ if (localTransportOptions === null || localTransportOptions === void 0 ? void 0 : localTransportOptions.reliable) {
487
+ const reliable = localTransportOptions.reliable === true ? {} : localTransportOptions.reliable;
488
+ const transport = (0, transport_1.createJSONTransport)(writeNetwork, Object.assign(Object.assign({}, localTransportOptions), { reliable: Object.assign(Object.assign({}, reliable), { receiveNetwork: readNetwork }), logger: (_b = (_a = localTransportOptions.logger) !== null && _a !== void 0 ? _a : logger) !== null && _b !== void 0 ? _b : receiver.logger }));
463
489
  transport.onMessage(message => receiver.dispatch(message, sender, clientId).catch(e => receiver.rejectPending(message === null || message === void 0 ? void 0 : message.mid, e)));
464
490
  transport.onError((error, context) => {
465
491
  receiver.log('error', 'peer transport error', 'peer.transport', {
466
492
  remotePeerId: sender.id,
467
493
  clientId,
468
- networkId: getNetworkId(network),
494
+ networkId: getNetworkId(writeNetwork),
469
495
  error,
470
496
  data: { scope: context.scope },
471
497
  });
@@ -473,7 +499,22 @@ class Peer {
473
499
  });
474
500
  return transport;
475
501
  }
476
- network.onMessage(data => receiver.receiveNetworkData(data, sender, clientId));
502
+ if (remoteTransportOptions) {
503
+ const transport = (0, transport_1.createJSONTransport)(readNetwork, Object.assign(Object.assign({}, remoteTransportOptions), { logger: (_c = remoteTransportOptions.logger) !== null && _c !== void 0 ? _c : receiver.logger }));
504
+ transport.onMessage(message => receiver.dispatch(message, sender, clientId).catch(e => receiver.rejectPending(message === null || message === void 0 ? void 0 : message.mid, e)));
505
+ transport.onError((error, context) => {
506
+ receiver.log('error', 'peer transport error', 'peer.transport', {
507
+ remotePeerId: sender.id,
508
+ clientId,
509
+ networkId: getNetworkId(readNetwork),
510
+ error,
511
+ data: { scope: context.scope },
512
+ });
513
+ receiver.emitError(error, Object.assign(Object.assign({}, context), { scope: `peer.transport.${context.scope}`, peer: receiver }));
514
+ });
515
+ return transport;
516
+ }
517
+ readNetwork.onMessage(data => receiver.receiveNetworkData(data, sender, clientId));
477
518
  return undefined;
478
519
  }
479
520
  createPeerNetwork(toPeer) {
@@ -543,7 +584,7 @@ class Peer {
543
584
  });
544
585
  const _deliver = () => __awaiter(this, void 0, void 0, function* () {
545
586
  try {
546
- this.sendToLink(target, message);
587
+ yield this.sendToLink(target, message);
547
588
  }
548
589
  catch (e) {
549
590
  this.log('error', 'peer publish failed', 'peer.publish', {
@@ -684,7 +725,7 @@ class Peer {
684
725
  type,
685
726
  networkId: getNetworkId(link.network),
686
727
  });
687
- this.sendToLink(link, { type, data, mid });
728
+ yield this.sendToLink(link, { type, data, mid });
688
729
  }
689
730
  }
690
731
  catch (e) {
@@ -700,6 +741,8 @@ class Peer {
700
741
  _deliver();
701
742
  }
702
743
  sendToLink(link, message) {
744
+ if (link.senderTransport)
745
+ return link.senderTransport.send(message);
703
746
  if (link.transportOptions) {
704
747
  (0, transport_1.splitJSON)(message, link.transportOptions).send(link.network);
705
748
  }
@@ -769,7 +812,7 @@ class SocketFactory {
769
812
  }
770
813
  /** create and register a peer */
771
814
  peer(options) {
772
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s;
815
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u;
773
816
  const peer = (0, exports.createPeer)({
774
817
  latencyMs: (_a = options === null || options === void 0 ? void 0 : options.latencyMs) !== null && _a !== void 0 ? _a : (_b = this.options) === null || _b === void 0 ? void 0 : _b.latencyMs,
775
818
  jitterMs: (_c = options === null || options === void 0 ? void 0 : options.jitterMs) !== null && _c !== void 0 ? _c : (_d = this.options) === null || _d === void 0 ? void 0 : _d.jitterMs,
@@ -779,7 +822,8 @@ class SocketFactory {
779
822
  networkFactory: (_l = options === null || options === void 0 ? void 0 : options.networkFactory) !== null && _l !== void 0 ? _l : (_m = this.options) === null || _m === void 0 ? void 0 : _m.networkFactory,
780
823
  logger: (_o = options === null || options === void 0 ? void 0 : options.logger) !== null && _o !== void 0 ? _o : (_p = this.options) === null || _p === void 0 ? void 0 : _p.logger,
781
824
  jsonTransport: (_q = options === null || options === void 0 ? void 0 : options.jsonTransport) !== null && _q !== void 0 ? _q : (_r = this.options) === null || _r === void 0 ? void 0 : _r.jsonTransport,
782
- id: (_s = options === null || options === void 0 ? void 0 : options.id) !== null && _s !== void 0 ? _s : this.nextFactoryPeerId(options),
825
+ reliable: (_s = options === null || options === void 0 ? void 0 : options.reliable) !== null && _s !== void 0 ? _s : (_t = this.options) === null || _t === void 0 ? void 0 : _t.reliable,
826
+ id: (_u = options === null || options === void 0 ? void 0 : options.id) !== null && _u !== void 0 ? _u : this.nextFactoryPeerId(options),
783
827
  });
784
828
  this.peers.set(peer.id, peer);
785
829
  return peer;
@@ -816,6 +860,22 @@ const asNetworkOptions = (options) => {
816
860
  maxPacketBytes: (_d = options === null || options === void 0 ? void 0 : options.maxPacketBytes) !== null && _d !== void 0 ? _d : DEFAULT_MAX_PACKET_BYTES,
817
861
  });
818
862
  };
863
+ /**
864
+ * merges the `PeerOptions.reliable` shortcut into `jsonTransport` before resolution.
865
+ * off (`reliable` falsy) returns `jsonTransport` untouched — the shortcut path is inert unless used.
866
+ * an explicit `jsonTransport.reliable` wins over the shortcut when both are set; `onMismatch` fires
867
+ * when both are set to different values, so the caller can warn without duplicating this check.
868
+ */
869
+ const mergeReliableShortcut = (jsonTransport, reliable, onMismatch) => {
870
+ var _a;
871
+ if (!reliable)
872
+ return jsonTransport;
873
+ const transportOptions = jsonTransport && jsonTransport !== true ? jsonTransport : {};
874
+ if (transportOptions.reliable !== undefined && transportOptions.reliable !== reliable) {
875
+ onMismatch === null || onMismatch === void 0 ? void 0 : onMismatch(reliable, transportOptions.reliable);
876
+ }
877
+ return Object.assign(Object.assign({}, transportOptions), { reliable: (_a = transportOptions.reliable) !== null && _a !== void 0 ? _a : reliable });
878
+ };
819
879
  const asJSONTransportOptions = (options, peerMaxPacketBytes) => {
820
880
  if (!options)
821
881
  return undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"socket.js","sourceRoot":"","sources":["../../src/socket/socket.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"socket.js","sourceRoot":"","sources":["../../src/socket/socket.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAuBA,2CAOqB;AAiFrB,IAAI,MAAM,GAAG,CAAC,CAAC;AACf,IAAI,QAAQ,GAAG,CAAC,CAAC;AACjB,IAAI,SAAS,GAAG,CAAC,CAAC;AAClB,IAAI,SAAS,GAAG,CAAC,CAAC;AAEL,QAAA,2BAA2B,GAAyB;IAC7D,UAAU,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE;IACpC,YAAY,EAAE,GAAG,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE;IAC1C,aAAa,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE,SAAS,EAAE;IAC7C,aAAa,EAAE,CAAC,UAAmB,EAAE,QAAiB,EAAE,EAAE,CACtD,UAAU,IAAI,QAAQ,CAAC,CAAC,CAAC,GAAG,UAAU,KAAK,QAAQ,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,SAAS,EAAE;CACvF,CAAC;AACK,MAAM,aAAa,GAAG,GAAG,EAAE,CAAC,mCAA2B,CAAC,aAAa,EAAE,CAAC;AAAlE,QAAA,aAAa,iBAAqD;AACxE,MAAM,yBAAyB,GAAuB,OAAO,CAAC,EAAE,CACnE,IAAA,qBAAa,kBACT,EAAE,EAAE,OAAO,CAAC,EAAE,EACd,UAAU,EAAE,OAAO,CAAC,UAAU,EAC9B,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAC1B,MAAM,EAAE,OAAO,CAAC,MAAM,IACnB,OAAO,CAAC,OAAO,EACpB,CAAC;AAPM,QAAA,yBAAyB,6BAO/B;AACM,QAAA,gBAAgB,GAAiB,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE,CAAC;AACvE,MAAM,KAAK,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AAC3G,MAAM,wBAAwB,GAAG,EAAE,GAAG,IAAI,CAAC;AAC3C,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAS5B;;;GAGG;AACH,MAAa,OAAO;IAYhB,YAAmB,OAAwB;;QAVnC,UAAK,GAAqB,MAAM,CAAC;QACxB,qBAAgB,GAAG,IAAI,GAAG,EAAyB,CAAC;QAC7D,SAAI,GAAG,KAAK,CAAC;QAEb,eAAU,GAAG,CAAC,CAAC;QACN,mBAAc,GAAG,IAAI,GAAG,EAAsB,CAAC;QAM5D,IAAI,CAAC,EAAE,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,EAAE,mCAAI,mCAA2B,CAAC,aAAa,EAAE,CAAC;QACrE,IAAI,CAAC,UAAU,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,UAAU,CAAC;QACtC,IAAI,CAAC,QAAQ,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,CAAC;QAClC,IAAI,CAAC,MAAM,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,mCAAI,wBAAgB,CAAC;QAClD,IAAI,CAAC,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;QACzC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IACrG,CAAC;IAED,oBAAoB;IACpB,IAAW,UAAU;QACjB,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IAED,iDAAiD;IACpC,KAAK;;YACd,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;YACjC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,eAAe,EAAE,eAAe,CAAC,CAAC;QACxD,CAAC;KAAA;IAED,kDAAkD;IAC3C,MAAM,CAAC,QAA+B;QACzC,IAAI,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,YAAY,IAAI,CAAC,EAAE,sCAAsC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;QACpG,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;QAClC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACpC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,2BAA2B,EAAE,gBAAgB,CAAC,CAAC;IACrE,CAAC;IAED,4CAA4C;IACrC,IAAI,CAAC,IAAY;QACpB,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;QAChC,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,IAAI,CAAC,EAAE;YACjC,MAAM,IAAI,KAAK,CAAC,YAAY,IAAI,CAAC,EAAE,qCAAqC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;SACvF;QACD,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,6CAA6C,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;QACvG,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc;YAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAElF,MAAM,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC7C,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,uBAAuB,EAAE,cAAc,EAAE;YACvD,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,MAAM,EAAE;SAC/C,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,GAAS,EAAE;YACxB,IAAI;gBACA,MAAM,KAAK,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC;gBACxC,IAAI,IAAI,CAAC,KAAK,KAAK,MAAM;oBAAE,OAAO;gBAClC,KAAK,MAAM,QAAQ,IAAI,SAAS;oBAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACjD,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,0BAA0B,EAAE,iBAAiB,EAAE;oBAC7D,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,MAAM,EAAE;iBAC/C,CAAC,CAAC;aACN;YAAC,OAAO,CAAC,EAAE;gBACR,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;gBAC9E,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;aAClE;QACL,CAAC,CAAA,CAAC;QACF,QAAQ,EAAE,CAAC;IACf,CAAC;IAED,8DAA8D;IACvD,SAAS,CAAC,OAA8B;QAC3C,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC;QACrC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACnC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,gCAAgC,EAAE,mBAAmB,EAAE;YACrE,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE;SAClD,CAAC,CAAC;QACH,OAAO,GAAG,EAAE;YACR,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACtC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,kCAAkC,EAAE,+BAA+B,EAAE;gBACnF,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE;aAClD,CAAC,CAAC;QACP,CAAC,CAAC;IACN,CAAC;IAED,gCAAgC;IACzB,SAAS,CAAC,OAA6B;QAC1C,IAAI,CAAC,OAAO,mCAAQ,IAAI,CAAC,OAAO,GAAK,OAAO,CAAE,CAAC;QAC/C,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IACrG,CAAC;IAED,mDAAmD;IAC5C,OAAO,CAAC,OAA2B;QACtC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACjC,OAAO,GAAG,EAAE;YACR,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACxC,CAAC,CAAC;IACN,CAAC;IAED,iCAAiC;IAC1B,KAAK;QACR,IAAI,IAAI,CAAC,KAAK,KAAK,QAAQ;YAAE,OAAO;QACpC,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;QACtB,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;QAC9B,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,gBAAgB,EAAE,eAAe,CAAC,CAAC;IACxD,CAAC;IAEO,UAAU,CAAC,KAAa;QAC5B,IAAI,IAAI,CAAC,KAAK,KAAK,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,YAAY,IAAI,CAAC,EAAE,uBAAuB,IAAI,CAAC,KAAK,MAAM,KAAK,EAAE,CAAC,CAAC;IAClH,CAAC;IAEO,mBAAmB;QACvB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS;YAAE,OAAO,MAAM,CAAC;QAE3C,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QACzE,OAAO,MAAM,GAAG,QAAQ,CAAC;IAC7B,CAAC;IAEO,SAAS,CAAC,KAAU,EAAE,OAA2B;QACrD,KAAK,MAAM,QAAQ,IAAI,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,EAAE;YAC7C,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;SAC5B;IACL,CAAC;IAEO,GAAG,CACP,KAAqB,EACrB,OAAe,EACf,QAAgB,EAChB,KAEC;QAED,IAAI;YACA,IAAI,CAAC,MAAM,CAAC,GAAG,+BACX,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,EAChB,KAAK;gBACL,OAAO;gBACP,QAAQ,EACR,SAAS,EAAE,IAAI,CAAC,EAAE,EAClB,MAAM,EAAE,IAAI,CAAC,UAAU,EACvB,YAAY,EAAE,IAAI,CAAC,QAAQ,IACxB,KAAK,KACR,KAAK,EAAE,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,KAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,IACvE,CAAC;SACN;QAAC,WAAM;YACJ,uDAAuD;SAC1D;IACL,CAAC;CACJ;AAtJD,0BAsJC;AAED,gCAAgC;AACzB,MAAM,aAAa,GAAG,CAAC,OAAwB,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;AAAnE,QAAA,aAAa,iBAAsD;AAEhF;;GAEG;AACH,MAAa,IAAI;IAeb,YAAmB,OAAqB;;QAZhC,UAAK,GAAqB,MAAM,CAAC;QAExB,YAAO,GAAG,IAAI,GAAG,EAAoB,CAAC;QACtC,cAAS,GAAG,IAAI,GAAG,EAAwC,CAAC;QAC5D,mBAAc,GAAG,IAAI,GAAG,EAAsB,CAAC;QAC/C,YAAO,GAAG,IAAI,GAAG,EAAyB,CAAC;QAQxD,IAAI,CAAC,gBAAgB,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,gBAAgB,mCAAI,mCAA2B,CAAC;QACjF,IAAI,CAAC,cAAc,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,cAAc,mCAAI,iCAAyB,CAAC;QAC3E,IAAI,CAAC,MAAM,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,mCAAI,wBAAgB,CAAC;QAClD,IAAI,CAAC,EAAE,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,EAAE,mCAAI,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,CAAC;QAC5D,IAAI,CAAC,cAAc,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAChD,IAAI,CAAC,oBAAoB,GAAG,sBAAsB,CAC9C,qBAAqB,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,aAAa,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAC7E,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,8DAA8D,EAAE,kBAAkB,EAAE;YACjG,IAAI,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,qBAAqB,EAAE,MAAM,EAAE;SACzD,CAAC,CACL,EACD,IAAI,CAAC,cAAc,CAAC,cAAc,CACrC,CAAC;QACF,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,cAAc,EAAE,kBAAkB,CAAC,CAAC;IAC1D,CAAC;IAED,qEAAqE;IACrE,IAAW,QAAQ;QACf,OAAO,IAAI,CAAC,gBAAgB,CAAC;IACjC,CAAC;IAED,qBAAqB;IACrB,IAAW,UAAU;QACjB,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IAED,+DAA+D;IAC/D,IAAW,OAAO;;QACd,OAAO,MAAA,IAAI,CAAC,MAAM,0CAAE,OAAO,CAAC;IAChC,CAAC;IAED,uDAAuD;IAC1C,KAAK;;;YACd,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;YAC9B,MAAM,OAAO,GAAG,MAAA,IAAI,CAAC,MAAM,0CAAE,OAAO,CAAC;YACrC,IAAI,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,CAAA,EAAE;gBACjB,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,0CAA0C,EAAE,YAAY,EAAE;oBACxE,SAAS,EAAE,YAAY,CAAC,OAAO,CAAC;iBACnC,CAAC,CAAC;gBACH,OAAO;aACV;YAED,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,oCAAoC,EAAE,iBAAiB,EAAE;gBACvE,SAAS,EAAE,YAAY,CAAC,OAAO,CAAC;aACnC,CAAC,CAAC;YACH,IAAI;gBACA,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;gBACtB,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,wBAAwB,EAAE,eAAe,EAAE;oBACzD,SAAS,EAAE,YAAY,CAAC,OAAO,CAAC;iBACnC,CAAC,CAAC;aACN;YAAC,OAAO,CAAC,EAAE;gBACR,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,+BAA+B,EAAE,kBAAkB,EAAE;oBACnE,SAAS,EAAE,YAAY,CAAC,OAAO,CAAC;oBAChC,KAAK,EAAE,CAAC;iBACX,CAAC,CAAC;gBACH,MAAM,CAAC,CAAC;aACX;;KACJ;IAED,qEAAqE;IAC9D,gBAAgB,CAAC,OAA6B;;QACjD,IAAI,CAAC,cAAc,mCAAQ,IAAI,CAAC,cAAc,GAAK,OAAO,CAAE,CAAC;QAC7D,MAAA,MAAA,IAAI,CAAC,MAAM,gDAAE,OAAO,EAAC,SAAS,mDAAG,IAAI,CAAC,cAAc,CAAC,CAAC;QACtD,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE;YACtC,MAAA,MAAA,IAAI,CAAC,OAAO,EAAC,SAAS,mDAAG,IAAI,CAAC,cAAc,CAAC,CAAC;SACjD;QACD,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,4BAA4B,EAAE,uBAAuB,EAAE;YACpE,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE;SACzC,CAAC,CAAC;IACP,CAAC;IAED,qDAAqD;IAC9C,OAAO,CAAC,IAA4C;QACvD,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;QAChC,MAAM,MAAM,GAAG,IAAmC,CAAC;QACnD,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QACjC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,iBAAiB,EAAE,cAAc,EAAE,EAAE,YAAY,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;QAEjF,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;QAClF,MAAM,sBAAsB,GAAG,MAAM,CAAC,oBAAoB,CAAC;QAC3D,MAAM,sBAAsB,GAAG,IAAI,CAAC,oBAAoB,CAAC;QACzD,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,sBAAsB,CAAC,CAAC;QAEvE;;;;;;;WAOG;QACH,MAAM,CAAC,qBAAqB,CACxB,QAAQ,EACR,IAAI,CAAC,eAAe,CAChB,MAAM,EACN,QAAQ,EACR,MAAM,EACN,IAAI,EACJ,QAAQ,EACR,sBAAsB,EACtB,sBAAsB,CACzB,CACJ,CAAC;QACF,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,CACxC,QAAQ,EACR,MAAM,EACN,IAAI,EACJ,MAAM,EACN,SAAS,EACT,sBAAsB,EACtB,sBAAsB,CACzB,CAAC;QAEF,IAAI,CAAC,MAAM,GAAG;YACV,IAAI,EAAE,MAAmC;YACzC,QAAQ;YACR,OAAO,EAAE,MAAM;YACf,gBAAgB,EAAE,sBAAsB;YACxC,iBAAiB,EAAE,eAAe;YAClC,eAAe,EAAE,CAAA,sBAAsB,aAAtB,sBAAsB,uBAAtB,sBAAsB,CAAE,QAAQ,EAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS;SAClF,CAAC;QACF,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC;QACjC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,gBAAgB,EAAE,cAAc,EAAE;YAC/C,YAAY,EAAE,MAAM,CAAC,EAAE;YACvB,QAAQ;YACR,SAAS,EAAE,YAAY,CAAC,MAAM,CAAC;SAClC,CAAC,CAAC;QACH,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,iBAAiB,EAAE,aAAa,EAAE;YACjD,YAAY,EAAE,IAAI,CAAC,EAAE;YACrB,QAAQ;YACR,SAAS,EAAE,YAAY,CAAC,QAAQ,CAAC;SACpC,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED,8EAA8E;IACvE,SAAS,CAAC,OAA2B;;QACxC,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;QAElC,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,EAAE;YACnB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAChD,IAAI,CAAC,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,aAAa,OAAO,CAAC,QAAQ,uCAAuC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;YAC3G,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;YACtD,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,0BAA0B,EAAE,gBAAgB,EAAE;gBAC3D,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE;gBAC1B,QAAQ,EAAE,OAAO,CAAC,QAAQ;aAC7B,CAAC,CAAC;YACH,OAAO,OAAO,CAAC,QAAQ,CAAC;SAC3B;QAED,IAAI,MAAA,IAAI,CAAC,MAAM,0CAAE,QAAQ,EAAE;YACvB,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACjE,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,0BAA0B,EAAE,gBAAgB,EAAE;gBAC3D,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;gBACjC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;aACjC,CAAC,CAAC;YACH,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;SAC/B;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,EAAE;YACzB,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YACxD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;YAC9C,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,0BAA0B,EAAE,gBAAgB,EAAE;gBAC3D,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE;gBAC1B,QAAQ;aACX,CAAC,CAAC;YACH,OAAO,QAAQ,CAAC;SACnB;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,mDAAmD,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;QAC1G,MAAM,IAAI,KAAK,CAAC,2CAA2C,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;IAC3E,CAAC;IAED,6DAA6D;IACtD,QAAQ,CAAkE,QAAgB;;QAC7F,OAAO,MAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,0CAAE,IAAgC,CAAC;IACxE,CAAC;IAED,wDAAwD;IACjD,IAAI,CAAC,OAAgC,EAAE,OAA2B;QACrE,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACnC,CAAC;IAED,2EAA2E;IAC9D,IAAI,CACb,OAAgE,EAChE,OAA2B;;;YAE3B,MAAM,GAAG,GAAG,MAAA,OAAO,CAAC,GAAG,mCAAI,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,CAAC;YACjE,MAAM,QAAQ,GAAG,gCAAK,OAAO,KAAE,GAAG,GAA6B,CAAC;YAEhE,OAAO,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBACtC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;gBAC3C,IAAI;oBACA,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;iBACnC;gBAAC,OAAO,CAAC,EAAE;oBACR,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;oBACzB,MAAM,CAAC,CAAC,CAAC,CAAC;iBACb;YACL,CAAC,CAAC,CAAC;;KACN;IAED,qCAAqC;IAC9B,SAAS,CAA2B,OAAiC;QACxE,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;QAClC,MAAM,QAAQ,GAAG,OAA0D,CAAC;QAC5E,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC7B,OAAO,GAAG,EAAE;YACR,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACpC,CAAC,CAAC;IACN,CAAC;IAED,+CAA+C;IACxC,OAAO,CAAC,OAA2B;QACtC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACjC,OAAO,GAAG,EAAE;YACR,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACxC,CAAC,CAAC;IACN,CAAC;IAED,sBAAsB;IACf,KAAK;;QACR,IAAI,IAAI,CAAC,KAAK,KAAK,QAAQ;YAAE,OAAO;QACpC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,cAAc,EAAE,YAAY,CAAC,CAAC;QAC/C,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;QACtB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;QACxB,IAAI,MAAM,EAAE;YACR,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YACvB,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;SAC7C;QACD,KAAK,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE;YACzC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACrB,IAAI,CAAA,MAAA,IAAI,CAAC,IAAI,CAAC,MAAM,0CAAE,IAAI,MAAK,IAAI,EAAE;gBACjC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACtC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;gBAC7B,IAAI,CAAC,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;aAC1C;YACD,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;SACjC;QACD,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACrB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACvB,KAAK,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE;YACvC,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,SAAS,IAAI,CAAC,EAAE,4BAA4B,GAAG,GAAG,CAAC,CAAC,CAAC;SACjF;QACD,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACrB,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,aAAa,EAAE,YAAY,CAAC,CAAC;IAClD,CAAC;IAEO,MAAM,CACV,MAAsB,EACtB,OAA2B,EAC3B,gBAAuC;QAEvC,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC;QACtD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC,CAAC;QACxE,OAAO,QAAQ,CAAC;IACpB,CAAC;IAEO,qBAAqB,CAAC,QAAgB,EAAE,SAAyC;;QACrF,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACxC,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC;QACnC,IAAI,CAAC,eAAe,GAAG,CAAA,MAAA,IAAI,CAAC,gBAAgB,0CAAE,QAAQ,EAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;IACnF,CAAC;IAEO,YAAY,CAAC,QAAiB;QAClC,IAAI,CAAC,QAAQ;YAAE,OAAO;QACtB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACxC,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,iBAAiB,EAAE,mBAAmB,EAAE;YACrD,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE;YAC1B,QAAQ;YACR,SAAS,EAAE,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC;SACxC,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACrB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC;IAEO,SAAS,CAAC,IAAc;;QAC5B,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE;YACrD,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE;YAC1B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,SAAS,EAAE,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC;SACxC,CAAC,CAAC;QACH,MAAA,MAAA,IAAI,CAAC,iBAAiB,0CAAE,MAAM,kDAAI,CAAC;QACnC,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC;QACnC,MAAA,MAAA,IAAI,CAAC,eAAe,0CAAE,MAAM,kDAAI,CAAC,CAAC,kEAAkE;QACpG,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;QACjC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IAEO,MAAM,CAAC,aAAa,CAAC,MAAsB,EAAE,MAAsB,EAAE,QAAgB;QACzF,MAAM,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;QACpC,MAAM,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;QAEpC,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC;QACjC,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAChD,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,IAAI,KAAK,MAAM,EAAE;YACxF,MAAM,IAAI,KAAK,CAAC,aAAa,QAAQ,oCAAoC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC;SAC1F;QAED,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC;QAEtF,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAC7B,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAE7B,MAAM,sBAAsB,GAAG,MAAM,CAAC,oBAAoB,CAAC;QAC3D,MAAM,sBAAsB,GAAG,MAAM,CAAC,oBAAoB,CAAC;QAE3D,UAAU,CAAC,OAAO,GAAG,MAAM,CAAC;QAC5B,UAAU,CAAC,gBAAgB,GAAG,sBAAsB,CAAC;QACrD,UAAU,CAAC,iBAAiB,GAAG,IAAI,CAAC,eAAe,CAC/C,QAAQ,EACR,MAAM,EACN,MAAM,EACN,MAAM,EACN,SAAS,EACT,sBAAsB,EACtB,sBAAsB,CACzB,CAAC;QACF,UAAU,CAAC,eAAe,GAAG,CAAA,sBAAsB,aAAtB,sBAAsB,uBAAtB,sBAAsB,CAAE,QAAQ,EAAC,CAAC,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC;QAEzG,UAAU,CAAC,OAAO,GAAG,QAAQ,CAAC;QAC9B,UAAU,CAAC,gBAAgB,GAAG,sBAAsB,CAAC;QACrD,UAAU,CAAC,iBAAiB,GAAG,IAAI,CAAC,eAAe,CAC/C,MAAM,EACN,QAAQ,EACR,MAAM,EACN,MAAM,EACN,QAAQ,EACR,sBAAsB,EACtB,sBAAsB,CACzB,CAAC;QACF,UAAU,CAAC,eAAe,GAAG,CAAA,sBAAsB,aAAtB,sBAAsB,uBAAtB,sBAAsB,CAAE,QAAQ,EAAC,CAAC,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC;QAEzG,MAAM,CAAC,gBAAgB,GAAG,QAAQ,CAAC;QACnC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,6BAA6B,EAAE,oBAAoB,EAAE;YACpE,YAAY,EAAE,MAAM,CAAC,EAAE;YACvB,QAAQ;YACR,SAAS,EAAE,YAAY,CAAC,MAAM,CAAC;SAClC,CAAC,CAAC;QACH,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,6BAA6B,EAAE,oBAAoB,EAAE;YACpE,YAAY,EAAE,MAAM,CAAC,EAAE;YACvB,QAAQ;YACR,SAAS,EAAE,YAAY,CAAC,QAAQ,CAAC;SACpC,CAAC,CAAC;IACP,CAAC;IAED;;;;OAIG;IACK,MAAM,CAAC,eAAe,CAC1B,WAA+B,EAC/B,YAAgC,EAChC,QAAwB,EACxB,MAAsB,EACtB,QAA4B,EAC5B,qBAA4C,EAC5C,sBAA6C,EAC7C,MAAqB;;QAErB,IAAI,qBAAqB,aAArB,qBAAqB,uBAArB,qBAAqB,CAAE,QAAQ,EAAE;YACjC,MAAM,QAAQ,GAAG,qBAAqB,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,qBAAqB,CAAC,QAAQ,CAAC;YAC/F,MAAM,SAAS,GAAG,IAAA,+BAAmB,EAAqB,YAAY,kCAC/D,qBAAqB,KACxB,QAAQ,kCAAO,QAAQ,KAAE,cAAc,EAAE,WAAW,KACpD,MAAM,EAAE,MAAA,MAAA,qBAAqB,CAAC,MAAM,mCAAI,MAAM,mCAAI,QAAQ,CAAC,MAAM,IACnE,CAAC;YACH,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAC1B,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CACnG,CAAC;YACF,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;gBACjC,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE;oBAC5D,YAAY,EAAE,MAAM,CAAC,EAAE;oBACvB,QAAQ;oBACR,SAAS,EAAE,YAAY,CAAC,YAAY,CAAC;oBACrC,KAAK;oBACL,IAAI,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE;iBACjC,CAAC,CAAC;gBACH,QAAQ,CAAC,SAAS,CAAC,KAAK,kCAAO,OAAO,KAAE,KAAK,EAAE,kBAAkB,OAAO,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,IAAG,CAAC;YACxG,CAAC,CAAC,CAAC;YACH,OAAO,SAAS,CAAC;SACpB;QAED,IAAI,sBAAsB,EAAE;YACxB,MAAM,SAAS,GAAG,IAAA,+BAAmB,EAAqB,WAAW,kCAC9D,sBAAsB,KACzB,MAAM,EAAE,MAAA,sBAAsB,CAAC,MAAM,mCAAI,QAAQ,CAAC,MAAM,IAC1D,CAAC;YACH,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAC1B,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CACnG,CAAC;YACF,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;gBACjC,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE;oBAC5D,YAAY,EAAE,MAAM,CAAC,EAAE;oBACvB,QAAQ;oBACR,SAAS,EAAE,YAAY,CAAC,WAAW,CAAC;oBACpC,KAAK;oBACL,IAAI,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE;iBACjC,CAAC,CAAC;gBACH,QAAQ,CAAC,SAAS,CAAC,KAAK,kCAAO,OAAO,KAAE,KAAK,EAAE,kBAAkB,OAAO,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,IAAG,CAAC;YACxG,CAAC,CAAC,CAAC;YACH,OAAO,SAAS,CAAC;SACpB;QAED,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;QACnF,OAAO,SAAS,CAAC;IACrB,CAAC;IAEO,iBAAiB,CAAC,MAAsB;;QAC5C,MAAM,OAAO,GAA8B;YACvC,EAAE,EAAE,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC;YAC3D,UAAU,EAAE,IAAI,CAAC,EAAE;YACnB,QAAQ,EAAE,MAAM,CAAC,EAAE;YACnB,OAAO,oBAAO,IAAI,CAAC,cAAc,CAAE;YACnC,MAAM,EAAE,IAAI,CAAC,MAAM;SACtB,CAAC;QACF,IAAI,OAA2B,CAAC;QAChC,IAAI;YACA,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;SAC1C;QAAC,OAAO,CAAC,EAAE;YACR,MAAM,EAAE,MAAM,EAAE,OAAO,KAAoB,OAAO,EAAtB,UAAU,UAAK,OAAO,EAA5C,UAAkC,CAAU,CAAC;YACnD,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,8BAA8B,EAAE,wBAAwB,EAAE;gBACxE,YAAY,EAAE,MAAM,CAAC,EAAE;gBACvB,SAAS,EAAE,OAAO,CAAC,EAAE;gBACrB,KAAK,EAAE,CAAC;gBACR,IAAI,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE;aAChC,CAAC,CAAC;YACH,MAAM,CAAC,CAAC;SACX;QACD,MAAM,EAAE,MAAM,EAAE,OAAO,KAAoB,OAAO,EAAtB,UAAU,UAAK,OAAO,EAA5C,UAAkC,CAAU,CAAC;QACnD,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,sBAAsB,EAAE,wBAAwB,EAAE;YAChE,YAAY,EAAE,MAAM,CAAC,EAAE;YACvB,SAAS,EAAE,MAAA,YAAY,CAAC,OAAO,CAAC,mCAAI,OAAO,CAAC,EAAE;YAC9C,IAAI,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE;SAChC,CAAC,CAAC;QACH,OAAO,OAAO,CAAC;IACnB,CAAC;IAEO,MAAM,CAAC,iBAAiB,CAC5B,MAAsB,EACtB,MAAsB,EACtB,QAAgB;QAEhB,IAAI,MAAsC,CAAC;QAC3C,IAAI;YACA,MAAM,GAAG,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;YAC1C,MAAM,QAAQ,GAAG,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;YAClD,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;SAC/B;QAAC,OAAO,CAAC,EAAE;YACR,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,EAAE,CAAC;YAChB,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,mCAAmC,EAAE,QAAQ,EAAE;gBAC/D,YAAY,EAAE,MAAM,CAAC,EAAE;gBACvB,KAAK,EAAE,CAAC;aACX,CAAC,CAAC;YACH,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,mCAAmC,EAAE,QAAQ,EAAE;gBAC/D,YAAY,EAAE,MAAM,CAAC,EAAE;gBACvB,KAAK,EAAE,CAAC;aACX,CAAC,CAAC;YACH,MAAM,CAAC,CAAC;SACX;IACL,CAAC;IAEO,OAAO,CAAC,OAAgC,EAAE,OAA2B;QACzE,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QAC7B,IAAI,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,CAAA;YAAE,MAAM,IAAI,KAAK,CAAC,kDAAkD,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;QAClG,IAAI,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,GAAG,CAAA;YAAE,MAAM,IAAI,KAAK,CAAC,iDAAiD,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;QAEhG,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC3C,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,yBAAyB,EAAE,cAAc,EAAE;YACzD,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE;YAC5B,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,SAAS,EAAE,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC;SAC1C,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,GAAS,EAAE;YACxB,IAAI;gBACA,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;aAC1C;YAAC,OAAO,CAAC,EAAE;gBACR,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,qBAAqB,EAAE,cAAc,EAAE;oBACrD,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE;oBAC5B,QAAQ,EAAE,MAAM,CAAC,QAAQ;oBACzB,GAAG,EAAE,OAAO,CAAC,GAAG;oBAChB,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,SAAS,EAAE,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC;oBACvC,KAAK,EAAE,CAAC;iBACX,CAAC,CAAC;gBACH,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBAC9C,IAAI,OAAO,EAAE;oBACT,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;oBACjC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;iBACrB;qBAAM;oBACH,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE;wBACd,KAAK,EAAE,WAAW;wBAClB,GAAG,EAAE,OAAO,CAAC,GAAG;wBAChB,IAAI,EAAE,IAAI;wBACV,OAAO,EAAE,MAAM,CAAC,OAAO;wBACvB,OAAO;qBACV,CAAC,CAAC;iBACN;aACJ;QACL,CAAC,CAAA,CAAC;QAEF,QAAQ,EAAE,CAAC;IACf,CAAC;IAEO,aAAa,CAAC,OAA2B;QAC7C,MAAM,QAAQ,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,CAAC;QACnC,IAAI,QAAQ,EAAE;YACV,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACxC,IAAI,CAAC,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,aAAa,QAAQ,kCAAkC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;YAC9F,OAAO,IAAI,CAAC;SACf;QAED,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC,MAAM,CAAC;QAEpC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAClE,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,8CAA8C,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;QACrG,MAAM,IAAI,KAAK,CAAC,sCAAsC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;IACtE,CAAC;IAEO,kBAAkB,CAAC,IAAY,EAAE,MAAuB,EAAE,QAAiB;QAC/E,IAAI;YACA,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAA+B,CAAC;YAC/D,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;gBAC/C,IAAI,CAAC,aAAa,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,GAAG,EAAE,CAAC,CAAC,CAAC;YACxC,CAAC,CAAC,CAAC;SACN;QAAC,OAAO,CAAC,EAAE;YACR,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,gCAAgC,EAAE,yBAAyB,EAAE;gBAC3E,YAAY,EAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,EAAE;gBACxB,QAAQ;gBACR,KAAK,EAAE,CAAC;aACX,CAAC,CAAC;YACH,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;SACpC;IACL,CAAC;IAEa,QAAQ,CAClB,OAAmC,EACnC,MAAuB,EACvB,QAAiB;;YAEjB,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;YACjC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,0BAA0B,EAAE,eAAe,EAAE;gBAC3D,YAAY,EAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,EAAE;gBACxB,QAAQ;gBACR,GAAG,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,GAAG;gBACjB,IAAI,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI;aACtB,CAAC,CAAC;YAEH,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE;gBACtD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBAC9C,IAAI,OAAO,EAAE;oBACT,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;oBACjC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,+BAA+B,EAAE,sBAAsB,EAAE;wBACvE,YAAY,EAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,EAAE;wBACxB,QAAQ;wBACR,GAAG,EAAE,OAAO,CAAC,GAAG;wBAChB,IAAI,EAAE,OAAO,CAAC,IAAI;qBACrB,CAAC,CAAC;oBACH,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;oBAC9B,OAAO;iBACV;aACJ;YAED,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE;gBAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBAC9C,IAAI,OAAO,EAAE;oBACT,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;oBACjC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,+BAA+B,EAAE,qBAAqB,EAAE;wBACrE,YAAY,EAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,EAAE;wBACxB,QAAQ;wBACR,GAAG,EAAE,OAAO,CAAC,GAAG;wBAChB,IAAI,EAAE,OAAO,CAAC,IAAI;wBAClB,IAAI,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,IAAI,EAAE;qBACpC,CAAC,CAAC;oBACH,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;oBAC7B,OAAO;iBACV;aACJ;YAED,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE;gBACzB,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE;oBAC7D,YAAY,EAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,EAAE;oBACxB,QAAQ;oBACR,GAAG,EAAE,OAAO,CAAC,GAAG;oBAChB,IAAI,EAAE,OAAO,CAAC,IAAI;iBACrB,CAAC,CAAC;gBACH,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;gBACtD,OAAO;aACV;YAED,MAAM,OAAO,GAAuB;gBAChC,GAAG,EAAE,OAAO,CAAC,GAAG;gBAChB,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,IAAI,EAAE,IAAI;gBACV,MAAM;gBACN,QAAQ;gBACR,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE;gBACtB,KAAK,EAAE,CAAU,IAAO,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC;aAC/E,CAAC;YACF,MAAM,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;YACtC,MAAM,OAAO,GAAG,EAAE,CAAC;YAEnB,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;gBAC9B,OAAO,CAAC,IAAI,CAAC,MAAM,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;aAClD;YAED,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;gBAAE,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QACtF,CAAC;KAAA;IAEO,KAAK,CAAU,MAAkC,EAAE,GAAW,EAAE,IAAY,EAAE,IAAO;QACzF,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,MAAM,QAAQ,GAAG,GAAS,EAAE;YACxB,IAAI;gBACA,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;gBACrC,IAAI,IAAI,EAAE;oBACN,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,uBAAuB,EAAE,YAAY,EAAE;wBACrD,YAAY,EAAE,MAAM,CAAC,EAAE;wBACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;wBACvB,GAAG;wBACH,IAAI;wBACJ,SAAS,EAAE,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC;qBACxC,CAAC,CAAC;oBACH,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;iBACpD;aACJ;YAAC,OAAO,CAAC,EAAE;gBACR,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE;oBACjD,YAAY,EAAE,MAAM,CAAC,EAAE;oBACvB,GAAG;oBACH,IAAI;oBACJ,KAAK,EAAE,CAAC;iBACX,CAAC,CAAC;gBACH,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;aAChC;QACL,CAAC,CAAA,CAAC;QACF,QAAQ,EAAE,CAAC;IACf,CAAC;IAEO,UAAU,CAAa,IAAc,EAAE,OAA4B;QACvE,IAAI,IAAI,CAAC,eAAe;YAAE,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACpE,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACvB,IAAA,qBAAS,EAAC,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SAChE;aAAM;YACH,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;SAC9C;IACL,CAAC;IAEO,UAAU,CAAC,MAAsB;;QACrC,IAAI,CAAA,MAAA,IAAI,CAAC,MAAM,0CAAE,IAAI,MAAK,MAAM;YAAE,OAAO,IAAI,CAAC,MAAM,CAAC;QACrD,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE;YACtC,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM;gBAAE,OAAO,IAAI,CAAC;SACzC;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;IAEO,aAAa,CAAC,GAAuB,EAAE,KAAU;QACrD,IAAI,CAAC,GAAG;YAAE,OAAO;QACjB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,CAAC,OAAO;YAAE,OAAO;QACrB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACzB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IAEO,SAAS,CAAC,KAAU,EAAE,OAA2B;;QACrD,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE;YACtD,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,IAAI,EAAE,MAAA,OAAO,CAAC,OAAO,0CAAE,IAAI;YAC3B,SAAS,EAAE,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC;YACxC,KAAK;YACL,IAAI,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE;SACjC,CAAC,CAAC;QACH,KAAK,MAAM,QAAQ,IAAI,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,EAAE;YAC7C,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;SAC5B;IACL,CAAC;IAEO,UAAU,CAAC,KAAa;QAC5B,IAAI,IAAI,CAAC,KAAK,KAAK,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,SAAS,IAAI,CAAC,EAAE,QAAQ,IAAI,CAAC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;IAC5G,CAAC;IAEO,GAAG,CACP,KAAqB,EACrB,OAAe,EACf,QAAgB,EAChB,KAEC;QAED,IAAI;YACA,IAAI,CAAC,MAAM,CAAC,GAAG,+BACX,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,EAChB,KAAK;gBACL,OAAO;gBACP,QAAQ,EACR,MAAM,EAAE,IAAI,CAAC,EAAE,IACZ,KAAK,KACR,KAAK,EAAE,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,KAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,IACvE,CAAC;SACN;QAAC,WAAM;YACJ,sDAAsD;SACzD;IACL,CAAC;CACJ;AAntBD,oBAmtBC;AAED,oBAAoB;AACb,MAAM,UAAU,GAAG,CAAoC,OAAqB,EAAE,EAAE,CACnF,IAAI,IAAI,CAAwB,OAAO,CAAC,CAAC;AADhC,QAAA,UAAU,cACsB;AAE7C;;GAEG;AACH,MAAa,aAAa;IAItB,YAAoC,OAA8B;QAA9B,YAAO,GAAP,OAAO,CAAuB;QAH1D,OAAE,GAAG,CAAC,CAAC;QACE,UAAK,GAAG,IAAI,GAAG,EAA0B,CAAC;IAEU,CAAC;IAEtE,iCAAiC;IAC1B,IAAI,CAAoC,OAAqB;;QAChE,MAAM,IAAI,GAAG,IAAA,kBAAU,EAAwB;YAC3C,SAAS,EAAE,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,mCAAI,MAAA,IAAI,CAAC,OAAO,0CAAE,SAAS;YACxD,QAAQ,EAAE,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,mCAAI,MAAA,IAAI,CAAC,OAAO,0CAAE,QAAQ;YACrD,SAAS,EAAE,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,mCAAI,MAAA,IAAI,CAAC,OAAO,0CAAE,SAAS;YACxD,cAAc,EAAE,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,cAAc,mCAAI,MAAA,IAAI,CAAC,OAAO,0CAAE,cAAc;YACvE,gBAAgB,EAAE,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,gBAAgB,mCAAI,MAAA,IAAI,CAAC,OAAO,0CAAE,gBAAgB;YAC7E,cAAc,EAAE,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,cAAc,mCAAI,MAAA,IAAI,CAAC,OAAO,0CAAE,cAAc;YACvE,MAAM,EAAE,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,mCAAI,MAAA,IAAI,CAAC,OAAO,0CAAE,MAAM;YAC/C,aAAa,EAAE,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,aAAa,mCAAI,MAAA,IAAI,CAAC,OAAO,0CAAE,aAAa;YACpE,QAAQ,EAAE,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,mCAAI,MAAA,IAAI,CAAC,OAAO,0CAAE,QAAQ;YACrD,EAAE,EAAE,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,EAAE,mCAAI,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC;SACrD,CAAC,CAAC;QACH,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAC9B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,wCAAwC;IACjC,IAAI,CAAkE,EAAU;QACnF,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAA6B,CAAC;IAC1D,CAAC;IAED,iEAAiE;IAC1D,OAAO,CAAC,MAAiC,EAAE,MAAiC;QAC/E,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC;IAED,iEAAiE;IAC1D,QAAQ,CACX,MAAiC,EACjC,QAAgB;QAEhB,OAAO,MAAM,CAAC,QAAQ,CAAI,QAAQ,CAAC,CAAC;IACxC,CAAC;IAEO,iBAAiB,CAAC,OAAqB;;QAC3C,IAAI,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,gBAAgB,MAAI,MAAA,IAAI,CAAC,OAAO,0CAAE,gBAAgB,CAAA,CAAC,IAAI,CAAC,CAAA,MAAA,IAAI,CAAC,OAAO,0CAAE,QAAQ,CAAA;YAAE,OAAO,SAAS,CAAC;QAC/G,OAAO,GAAG,MAAA,MAAA,IAAI,CAAC,OAAO,0CAAE,QAAQ,mCAAI,MAAM,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC;IAC9D,CAAC;CACJ;AA9CD,sCA8CC;AAED,8BAA8B;AACvB,MAAM,mBAAmB,GAAG,CAAC,OAA8B,EAAE,EAAE,CAAC,IAAI,aAAa,CAAC,OAAO,CAAC,CAAC;AAArF,QAAA,mBAAmB,uBAAkE;AAElG,MAAM,gBAAgB,GAAG,CAAC,OAA8B,EAAkC,EAAE;;IAAC,OAAA,CAAC;QAC1F,SAAS,EAAE,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,mCAAI,CAAC;QAClC,QAAQ,EAAE,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,mCAAI,iBAAiB;QAChD,SAAS,EAAE,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,mCAAI,IAAI;QACrC,cAAc,EAAE,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,cAAc,mCAAI,wBAAwB;KACtE,CAAC,CAAA;CAAA,CAAC;AAEH;;;;;GAKG;AACH,MAAM,qBAAqB,GAAG,CAC1B,aAA8C,EAC9C,QAAoC,EACpC,UAAwF,EAC9C,EAAE;;IAC5C,IAAI,CAAC,QAAQ;QAAE,OAAO,aAAa,CAAC;IACpC,MAAM,gBAAgB,GAAyB,aAAa,IAAI,aAAa,KAAK,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5G,IAAI,gBAAgB,CAAC,QAAQ,KAAK,SAAS,IAAI,gBAAgB,CAAC,QAAQ,KAAK,QAAQ,EAAE;QACnF,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAG,QAAQ,EAAE,gBAAgB,CAAC,QAAQ,CAAC,CAAC;KACrD;IACD,uCAAY,gBAAgB,KAAE,QAAQ,EAAE,MAAA,gBAAgB,CAAC,QAAQ,mCAAI,QAAQ,IAAG;AACpF,CAAC,CAAC;AAEF,MAAM,sBAAsB,GAAG,CAC3B,OAAwC,EACxC,kBAA2B,EACK,EAAE;IAClC,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAC/B,MAAM,gBAAgB,GAAG,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;IACzD,IAAI,gBAAgB,CAAC,UAAU,IAAI,CAAC,kBAAkB;QAAE,OAAO,gBAAgB,CAAC;IAChF,uCACO,gBAAgB,KACnB,UAAU,EAAE,IAAA,4CAAgC,EAAC,kBAAkB,EAAE,gBAAgB,CAAC,oBAAoB,CAAC,IACzG;AACN,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,OAA4B,EAAsB,EAAE;IACtE,MAAM,EAAE,GAAI,OAAe,aAAf,OAAO,uBAAP,OAAO,CAAU,EAAE,CAAC;IAChC,OAAO,OAAO,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AACnD,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CAAC,KAAU,EAAU,EAAE;IAC1C,IAAI,KAAK,YAAY,KAAK;QAAE,OAAO,KAAK,CAAC,OAAO,CAAC;IACjD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI;QACA,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;KAChC;IAAC,WAAM;QACJ,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;KACxB;AACL,CAAC,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC"}
@@ -4,7 +4,7 @@
4
4
  *
5
5
  * @copyright (C) 2026 LemonCloud Co Ltd. - All Rights Reserved.
6
6
  */
7
- import { NetworkSupportable, SocketErrorHandler, SocketLogger, SocketUnsubscribe } from './types';
7
+ import { NetworkSupportable, SocketErrorContext, SocketErrorHandler, SocketLogger, SocketUnsubscribe } from './types';
8
8
  /** callback used by JSONTransport.onMessage(). */
9
9
  export interface JSONTransportMessageHandler<T extends object> {
10
10
  (data: T): void;
@@ -29,6 +29,46 @@ export interface JSONTransportOptions {
29
29
  logger?: SocketLogger;
30
30
  /** custom split decision */
31
31
  split?: (path: string, value: unknown, size: number) => boolean;
32
+ /**
33
+ * opt-in reliable delivery: exactly-once completion + NACK/blind-resend recovery.
34
+ * while the network stays non-open, retries wait without consuming maxAttempts —
35
+ * the network owner is expected to eventually reconnect or call detach().
36
+ * both the sender and the receiver must opt in — an asymmetric setup surfaces as
37
+ * `JSON_RELIABLE_SCOPE.mismatch` (`json.reliable.mismatch`) on the non-reliable side.
38
+ * onError pattern: `error instanceof JSONTransportReliableError` gives access to `error.tid`.
39
+ */
40
+ reliable?: boolean | ReliableOptions;
41
+ }
42
+ /** reliable-mode delivery tuning; unset fields fall back to defaults. */
43
+ export interface ReliableOptions {
44
+ /** debounce window before receiver emits json:nack after detecting an incomplete tid */
45
+ nackDebounceMs?: number;
46
+ /** blind full-resend interval when neither ack nor nack arrives */
47
+ resendIntervalMs?: number;
48
+ /** retry budget before a send() rejects; ticks while readyState !== 'open' don't count */
49
+ maxAttempts?: number;
50
+ /**
51
+ * absolute wall-clock deadline for one send() unit, measured from its start; unlike
52
+ * maxAttempts, this keeps counting while readyState !== 'open' — a permanently non-open
53
+ * network still fails the send once the deadline passes, even with attempts left.
54
+ */
55
+ deadlineMs?: number;
56
+ /** settled (send/receive) tid memory TTL — absorbs late duplicate retransmits */
57
+ settledTtlMs?: number;
58
+ /**
59
+ * hard cap on settled map size (bounds memory when timers stall). evicts oldest-first —
60
+ * if live tids exceed the cap, a still-valid entry may be evicted early and a late
61
+ * duplicate could then re-emit; size the cap above peak concurrent transfers.
62
+ */
63
+ settledMaxEntries?: number;
64
+ /**
65
+ * subscribe onMessage on this network instead of `network`, while all outbound traffic
66
+ * (data + ack/nack/error) still goes out over `network`. for split unidirectional-pipe
67
+ * topologies (e.g. Peer's uplink/downlink) — write≠read on one merged instance means it
68
+ * never subscribes to its own outbound pipe, so self-echo cannot occur by construction.
69
+ * unused (undefined) for the common single bidirectional network case.
70
+ */
71
+ receiveNetwork?: NetworkSupportable;
32
72
  }
33
73
  /** id generator for deterministic transport tests and custom runtimes. */
34
74
  export interface JSONTransportIdentityProvider {
@@ -54,8 +94,8 @@ export interface RequiredJSONTransportOptions extends ResolvedJSONTransportOptio
54
94
  export interface JSONTransportSupportable<T extends object> {
55
95
  /** underlying raw string network */
56
96
  readonly network: NetworkSupportable;
57
- /** send a typed JSON response object */
58
- send(data: T): void;
97
+ /** send a typed JSON response object; reliable mode returns a Promise settling on completion/failure */
98
+ send(data: T): void | Promise<void>;
59
99
  /** update transport chunking options */
60
100
  configure?(options: JSONTransportOptions): void;
61
101
  /** subscribe to rebuilt JSON response objects */
@@ -70,7 +110,7 @@ export interface JSONTransportSupportable<T extends object> {
70
110
  detach(): void;
71
111
  }
72
112
  /** transport packet shape. */
73
- export declare type JSONTransportPacket = JSONManifestPacket | JSONChunkPacket | JSONCompletePacket | JSONErrorPacket;
113
+ export declare type JSONTransportPacket = JSONManifestPacket | JSONChunkPacket | JSONCompletePacket | JSONErrorPacket | JSONAckPacket | JSONNackPacket;
74
114
  /** manifest packet preserving response shape. */
75
115
  export interface JSONManifestPacket {
76
116
  type: 'json:manifest';
@@ -99,6 +139,49 @@ export interface JSONErrorPacket {
99
139
  tid: string;
100
140
  error: string;
101
141
  }
142
+ /** reliable-mode ack: sent by the receiver once a tid is fully assembled or re-settled. */
143
+ export interface JSONAckPacket {
144
+ type: 'json:ack';
145
+ tid: string;
146
+ }
147
+ /** reliable-mode nack: current-state diff sent by the receiver after nackDebounceMs of silence. */
148
+ export interface JSONNackPacket {
149
+ type: 'json:nack';
150
+ tid: string;
151
+ manifest?: boolean;
152
+ chunks?: {
153
+ cid: string;
154
+ missing: number[];
155
+ }[];
156
+ complete?: boolean;
157
+ }
158
+ /** `scope` values reliable-mode puts on `SocketErrorContext` (see `JSONTransportOptions.reliable`) */
159
+ export declare const JSON_RELIABLE_SCOPE: {
160
+ readonly failed: "json.reliable.failed";
161
+ readonly mismatch: "json.reliable.mismatch";
162
+ readonly detached: "json.reliable.detached";
163
+ readonly evicted: "json.reliable.evicted";
164
+ };
165
+ /** union of the `scope` strings emitted by reliable-mode JSON transport */
166
+ export declare type JSONReliableScope = typeof JSON_RELIABLE_SCOPE[keyof typeof JSON_RELIABLE_SCOPE];
167
+ /** a `JSONReliableScope` re-published by `Peer` under its `peer.transport.` forwarding prefix */
168
+ export declare type PeerPrefixedJSONReliableScope = `peer.transport.${JSONReliableScope}`;
169
+ /**
170
+ * true for a direct `json.reliable.*` scope, or its `peer.transport.json.reliable.*` re-published
171
+ * form — `Peer` re-emits transport errors under that prefix (see socket.ts `attachTransport`), so a
172
+ * plain `scope === JSON_RELIABLE_SCOPE.mismatch` check never matches on the Peer path. narrows
173
+ * `scope` to `JSONReliableScope | PeerPrefixedJSONReliableScope` for callers that switch on it.
174
+ */
175
+ export declare const isJSONReliableScope: (scope: string) => scope is JSONReliableScope | "peer.transport.json.reliable.failed" | "peer.transport.json.reliable.mismatch" | "peer.transport.json.reliable.detached" | "peer.transport.json.reliable.evicted";
176
+ /** thrown when a reliable-mode send() exhausts its retry budget without an ack. */
177
+ export declare class JSONTransportReliableError extends Error {
178
+ readonly tid: string;
179
+ constructor(message: string, tid: string);
180
+ }
181
+ /** typed subscription for reliable-mode failures — filters reliable scopes (direct or peer-prefixed) and narrows the error type */
182
+ export declare const onReliableError: (source: {
183
+ onError(handler: SocketErrorHandler): SocketUnsubscribe;
184
+ }, handler: (error: JSONTransportReliableError, context: SocketErrorContext) => void) => SocketUnsubscribe;
102
185
  /** metadata for a chunked string leaf. */
103
186
  export interface JSONChunkRef {
104
187
  cid: string;
@@ -149,6 +232,7 @@ export interface JSONReceiveState {
149
232
  chunks: Map<string, Map<number, JSONChunkPacket>>;
150
233
  }
151
234
  export declare const defaultJSONTransportIdentityProvider: JSONTransportIdentityProvider;
235
+ export declare const defaultReliableJSONTransportIdentityProvider: JSONTransportIdentityProvider;
152
236
  /** create a JSON transport over a raw string network. */
153
237
  export declare const createJSONTransport: <T extends object>(network: NetworkSupportable, options?: JSONTransportOptions) => JSONTransport<T>;
154
238
  /** derive chunkBytes from a known raw network packet size. */
@@ -169,11 +253,16 @@ export declare class JSONTransport<T extends object> implements JSONTransportSup
169
253
  private readonly unsubscribeNetworkMessage;
170
254
  private readonly unsubscribeNetworkError;
171
255
  private cleanupTimer?;
256
+ private readonly reliable?;
257
+ private readonly pendingSend?;
258
+ private readonly settledSend?;
259
+ private readonly settledReceived?;
260
+ private readonly nackTimers?;
172
261
  constructor(network: NetworkSupportable, options?: JSONTransportOptions);
173
262
  /** number of incomplete transport messages currently buffered */
174
263
  get pendingCount(): number;
175
- /** send a typed JSON response object */
176
- send(data: T): void;
264
+ /** send a typed JSON response object; reliable mode returns a Promise settling on completion/failure */
265
+ send(data: T): void | Promise<void>;
177
266
  /** update transport chunking options */
178
267
  configure(options: JSONTransportOptions): void;
179
268
  /** subscribe to rebuilt JSON response objects */
@@ -188,6 +277,35 @@ export declare class JSONTransport<T extends object> implements JSONTransportSup
188
277
  private acceptPacket;
189
278
  private acceptManifest;
190
279
  private acceptChunk;
280
+ /** reliable send(): split once, register pendingSend, attempt delivery, arm the blind-resend timer. */
281
+ private sendReliable;
282
+ /** deliver (or re-deliver) the full pendingSend packet set; readyState!=='open' ticks don't count. */
283
+ private attemptSend;
284
+ private resendTick;
285
+ private handleAck;
286
+ private handleNack;
287
+ private failSend;
288
+ /** send-side ack/nack listening happens on `receiveNetwork`; acks/nacks/errors are emitted on `network`. */
289
+ private sendAck;
290
+ private scheduleNack;
291
+ private clearNackTimer;
292
+ private fireNack;
293
+ /** recompute the current diff (not cumulative) between what's buffered and what the manifest declares. */
294
+ private buildNackPacket;
295
+ private settleSend;
296
+ private settleReceived;
297
+ private sweepSettledMaps;
298
+ private sweepSettledMapTtl;
299
+ /**
300
+ * evicts past maxEntries by priority — TTL-expired entries first, then 'fail' outcomes, and only as a
301
+ * last resort a still-valid 'ok' entry (oldest within each tier); only that last case warns, since it's
302
+ * the only one that can cause a late duplicate to re-emit to listeners.
303
+ */
304
+ private sweepSettledMapSize;
305
+ /** oldest TTL-expired entry, else oldest 'fail' entry, else the oldest entry overall (a still-valid 'ok'). */
306
+ private pickSettledEvictionVictim;
307
+ /** idempotent: settles in-flight sends as failed and clears reliable-mode timers. */
308
+ private detachReliable;
191
309
  private validateManifest;
192
310
  private validateBufferedChunks;
193
311
  private validateChunkForManifest;