@spine-event-engine/server 2.0.0-snapshot.25 → 2.0.0-snapshot.26

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 (150) hide show
  1. package/README.md +49 -9
  2. package/REFERENCE.md +339 -22
  3. package/dist/agent/agent-history.d.ts +19 -3
  4. package/dist/agent/agent-history.d.ts.map +1 -1
  5. package/dist/agent/agent-history.js +41 -10
  6. package/dist/agent/agent-history.js.map +1 -1
  7. package/dist/agent/agent-live-read-runtime.d.ts +12 -1
  8. package/dist/agent/agent-live-read-runtime.d.ts.map +1 -1
  9. package/dist/agent/agent-live-read-runtime.js +5 -4
  10. package/dist/agent/agent-live-read-runtime.js.map +1 -1
  11. package/dist/browser/browser-server.d.ts +163 -0
  12. package/dist/browser/browser-server.d.ts.map +1 -1
  13. package/dist/browser/browser-server.js +579 -188
  14. package/dist/browser/browser-server.js.map +1 -1
  15. package/dist/browser/durable-subscription-bindings.d.ts +5 -0
  16. package/dist/browser/durable-subscription-bindings.d.ts.map +1 -1
  17. package/dist/browser/durable-subscription-bindings.js +226 -38
  18. package/dist/browser/durable-subscription-bindings.js.map +1 -1
  19. package/dist/browser/options.d.ts +5 -0
  20. package/dist/browser/options.d.ts.map +1 -1
  21. package/dist/bus/command-bus.d.ts +3 -0
  22. package/dist/bus/command-bus.d.ts.map +1 -1
  23. package/dist/bus/command-bus.js +69 -9
  24. package/dist/bus/command-bus.js.map +1 -1
  25. package/dist/bus/command-errors.d.ts +20 -4
  26. package/dist/bus/command-errors.d.ts.map +1 -1
  27. package/dist/bus/command-errors.js +47 -7
  28. package/dist/bus/command-errors.js.map +1 -1
  29. package/dist/bus/event-bus.d.ts +3 -0
  30. package/dist/bus/event-bus.d.ts.map +1 -1
  31. package/dist/bus/event-bus.js +130 -8
  32. package/dist/bus/event-bus.js.map +1 -1
  33. package/dist/context/bounded-context.d.ts +29 -11
  34. package/dist/context/bounded-context.d.ts.map +1 -1
  35. package/dist/context/bounded-context.js +147 -186
  36. package/dist/context/bounded-context.js.map +1 -1
  37. package/dist/entity/entity.d.ts +59 -0
  38. package/dist/entity/entity.d.ts.map +1 -1
  39. package/dist/entity/entity.js +60 -0
  40. package/dist/entity/entity.js.map +1 -1
  41. package/dist/handler/app-query-handler.d.ts +60 -0
  42. package/dist/handler/app-query-handler.d.ts.map +1 -0
  43. package/dist/handler/app-query-handler.js +23 -0
  44. package/dist/handler/app-query-handler.js.map +1 -0
  45. package/dist/handler/generated-registry-discovery.d.ts +6 -0
  46. package/dist/handler/generated-registry-discovery.d.ts.map +1 -1
  47. package/dist/handler/generated-registry-discovery.js +71 -2
  48. package/dist/handler/generated-registry-discovery.js.map +1 -1
  49. package/dist/handler/handler-decorators.d.ts +8 -29
  50. package/dist/handler/handler-decorators.d.ts.map +1 -1
  51. package/dist/handler/handler-decorators.js +33 -210
  52. package/dist/handler/handler-decorators.js.map +1 -1
  53. package/dist/handler/spine-metadata-inventory.d.ts +99 -0
  54. package/dist/handler/spine-metadata-inventory.d.ts.map +1 -0
  55. package/dist/handler/spine-metadata-inventory.js +162 -0
  56. package/dist/handler/spine-metadata-inventory.js.map +1 -0
  57. package/dist/index.d.ts +5 -3
  58. package/dist/index.d.ts.map +1 -1
  59. package/dist/index.js +4 -2
  60. package/dist/index.js.map +1 -1
  61. package/dist/repository/repository.d.ts +44 -1
  62. package/dist/repository/repository.d.ts.map +1 -1
  63. package/dist/repository/repository.js +368 -88
  64. package/dist/repository/repository.js.map +1 -1
  65. package/dist/server/managed-server-application.d.ts +12 -11
  66. package/dist/server/managed-server-application.d.ts.map +1 -1
  67. package/dist/server/managed-server-application.js +41 -25
  68. package/dist/server/managed-server-application.js.map +1 -1
  69. package/dist/server/node-coordinator.d.ts +18 -5
  70. package/dist/server/node-coordinator.d.ts.map +1 -1
  71. package/dist/server/node-coordinator.js +554 -84
  72. package/dist/server/node-coordinator.js.map +1 -1
  73. package/dist/server/reserved-spine-rpc-paths.json +1 -0
  74. package/dist/server/server-environment.d.ts +17 -0
  75. package/dist/server/server-environment.d.ts.map +1 -1
  76. package/dist/server/server-environment.js +77 -16
  77. package/dist/server/server-environment.js.map +1 -1
  78. package/dist/server/server.d.ts +45 -0
  79. package/dist/server/server.d.ts.map +1 -1
  80. package/dist/server/server.js +111 -3
  81. package/dist/server/server.js.map +1 -1
  82. package/dist/services/app-query-execution.d.ts +53 -0
  83. package/dist/services/app-query-execution.d.ts.map +1 -0
  84. package/dist/services/app-query-execution.js +408 -0
  85. package/dist/services/app-query-execution.js.map +1 -0
  86. package/dist/services/query-reader.d.ts +32 -7
  87. package/dist/services/query-reader.d.ts.map +1 -1
  88. package/dist/services/query-reader.js +22 -2
  89. package/dist/services/query-reader.js.map +1 -1
  90. package/dist/services/read-request-status.d.ts +65 -0
  91. package/dist/services/read-request-status.d.ts.map +1 -0
  92. package/dist/services/read-request-status.js +151 -0
  93. package/dist/services/read-request-status.js.map +1 -0
  94. package/dist/services/spine-services.d.ts +36 -7
  95. package/dist/services/spine-services.d.ts.map +1 -1
  96. package/dist/services/spine-services.js +900 -168
  97. package/dist/services/spine-services.js.map +1 -1
  98. package/dist/services/trusted-reader-ingress.d.ts +92 -0
  99. package/dist/services/trusted-reader-ingress.d.ts.map +1 -0
  100. package/dist/services/trusted-reader-ingress.js +89 -0
  101. package/dist/services/trusted-reader-ingress.js.map +1 -0
  102. package/dist/spi/handler-registry.d.ts +2 -0
  103. package/dist/spi/handler-registry.d.ts.map +1 -1
  104. package/dist/spi/handler-registry.js +1 -1
  105. package/dist/spi/handler-registry.js.map +1 -1
  106. package/dist/stand/read-side-filter-engine.d.ts +46 -0
  107. package/dist/stand/read-side-filter-engine.d.ts.map +1 -0
  108. package/dist/stand/read-side-filter-engine.js +356 -0
  109. package/dist/stand/read-side-filter-engine.js.map +1 -0
  110. package/dist/stand/read-side-filter.d.ts +247 -0
  111. package/dist/stand/read-side-filter.d.ts.map +1 -0
  112. package/dist/stand/read-side-filter.js +39 -0
  113. package/dist/stand/read-side-filter.js.map +1 -0
  114. package/dist/stand/read-side-message.d.ts +66 -0
  115. package/dist/stand/read-side-message.d.ts.map +1 -0
  116. package/dist/stand/read-side-message.js +167 -0
  117. package/dist/stand/read-side-message.js.map +1 -0
  118. package/dist/stand/stand-direct-delivery.d.ts +161 -0
  119. package/dist/stand/stand-direct-delivery.d.ts.map +1 -0
  120. package/dist/stand/stand-direct-delivery.js +210 -0
  121. package/dist/stand/stand-direct-delivery.js.map +1 -0
  122. package/dist/stand/stand.d.ts +80 -42
  123. package/dist/stand/stand.d.ts.map +1 -1
  124. package/dist/stand/stand.js +410 -54
  125. package/dist/stand/stand.js.map +1 -1
  126. package/dist/stand/subscription-observer.d.ts.map +1 -1
  127. package/dist/stand/subscription-observer.js +103 -0
  128. package/dist/stand/subscription-observer.js.map +1 -1
  129. package/dist/stand/subscription-read-filters.d.ts +40 -0
  130. package/dist/stand/subscription-read-filters.d.ts.map +1 -0
  131. package/dist/stand/subscription-read-filters.js +91 -0
  132. package/dist/stand/subscription-read-filters.js.map +1 -0
  133. package/dist/stand/subscription-reader-binding.d.ts +20 -0
  134. package/dist/stand/subscription-reader-binding.d.ts.map +1 -0
  135. package/dist/stand/subscription-reader-binding.js +56 -0
  136. package/dist/stand/subscription-reader-binding.js.map +1 -0
  137. package/dist/stand/subscription-records.d.ts +30 -3
  138. package/dist/stand/subscription-records.d.ts.map +1 -1
  139. package/dist/stand/subscription-records.js +61 -16
  140. package/dist/stand/subscription-records.js.map +1 -1
  141. package/dist/stand/subscription-registry.d.ts +49 -14
  142. package/dist/stand/subscription-registry.d.ts.map +1 -1
  143. package/dist/stand/subscription-registry.js +150 -31
  144. package/dist/stand/subscription-registry.js.map +1 -1
  145. package/dist/stand/subscription-runtime.d.ts +7 -2
  146. package/dist/stand/subscription-runtime.d.ts.map +1 -1
  147. package/dist/stand/subscription-runtime.js +131 -25
  148. package/dist/stand/subscription-runtime.js.map +1 -1
  149. package/dist/tsconfig.tsbuildinfo +1 -1
  150. package/package.json +14 -14
@@ -13,6 +13,7 @@
13
13
  */
14
14
  var _a;
15
15
  import { create, toBinary } from "@bufbuild/protobuf";
16
+ import { ReaderIdentities } from "@spine-event-engine/core/spi/trusted-reader";
16
17
  import { SubscriptionIdSchema, SubscriptionSchema, } from "@spine-event-engine/proto/client";
17
18
  import { emitServerWarning } from "../server/server-log.js";
18
19
  import { SubscriptionObservers } from "./subscription-observer.js";
@@ -106,21 +107,31 @@ export class SubscriptionRuntime {
106
107
  *
107
108
  * @param id Identifies the durable subscription definition.
108
109
  * @param onUpdate Receives rendered subscription updates.
110
+ * @param onInvalidated Closes this consumer when its retained entry changes or disappears.
111
+ * @param expected Admitted entry that must still be current before delivery.
109
112
  * @returns Resolves to the consumer removal handle.
110
113
  */
111
- consume(id, onUpdate) {
114
+ consume(id, onUpdate, onInvalidated, expected) {
112
115
  if (this.#closing)
113
116
  return Promise.reject(new Error("Subscription runtime is closing."));
114
- let consumers = this.#consumers.get(id);
115
- if (consumers === undefined) {
116
- consumers = new Set();
117
- this.#consumers.set(id, consumers);
118
- }
119
- consumers.add(onUpdate);
117
+ const consumer = {
118
+ onUpdate,
119
+ ...(onInvalidated === undefined ? {} : { onInvalidated }),
120
+ ...(expected === undefined ? {} : { expected }),
121
+ attaching: true,
122
+ };
123
+ const consumers = this.#consumers.get(id) ?? new Set();
124
+ consumers.add(consumer);
125
+ this.#consumers.set(id, consumers);
120
126
  return this.reconcile()
121
- .then(() => this.#consumerHandle(id, onUpdate))
127
+ .then(() => {
128
+ if (this.#closing)
129
+ throw new Error("Subscription runtime is closing.");
130
+ consumer.attaching = false;
131
+ return this.#verifyConsumer(id, consumer);
132
+ })
122
133
  .catch((error) => {
123
- this.#removeConsumer(id, onUpdate);
134
+ this.#removeConsumer(id, consumer);
124
135
  throw error;
125
136
  });
126
137
  }
@@ -154,6 +165,9 @@ export class SubscriptionRuntime {
154
165
  this.#tail = cycle.catch(() => undefined);
155
166
  return cycle;
156
167
  }
168
+ /**
169
+ * Shares one timer-triggered reconciliation until its registry scan settles.
170
+ */
157
171
  #reconcileTimer() {
158
172
  if (this.#timerReconciliation !== undefined)
159
173
  return this.#timerReconciliation;
@@ -167,6 +181,9 @@ export class SubscriptionRuntime {
167
181
  });
168
182
  return reconciliation;
169
183
  }
184
+ /**
185
+ * Emits bounded metadata for a failed background reconciliation.
186
+ */
170
187
  #warnReconciliationFailure(error) {
171
188
  const logger = subscriptionRuntimeLoggers.get(this);
172
189
  if (logger === undefined)
@@ -197,7 +214,8 @@ export class SubscriptionRuntime {
197
214
  * @param id Identifies the durable subscription definition.
198
215
  */
199
216
  remove(id) {
200
- this.#consumers.delete(id);
217
+ for (const consumer of [...(this.#consumers.get(id) ?? [])])
218
+ this.#invalidateConsumer(id, consumer);
201
219
  this.#detach(id);
202
220
  }
203
221
  /**
@@ -209,11 +227,12 @@ export class SubscriptionRuntime {
209
227
  const current = await this.#registry.get(create(SubscriptionIdSchema, { value: id }));
210
228
  if (current?.phase === "active")
211
229
  await this.#attach(id, current);
212
- else if (current === undefined)
213
- this.remove(id);
214
230
  else
215
- this.#detach(id);
231
+ this.#retireAttached(id);
216
232
  }
233
+ /**
234
+ * Detaches the local observer for one durable subscription ID.
235
+ */
217
236
  #detach(id) {
218
237
  const attachment = this.#attachments.get(id);
219
238
  if (attachment === undefined)
@@ -221,6 +240,19 @@ export class SubscriptionRuntime {
221
240
  this.#attachments.delete(id);
222
241
  attachment.subscription.unsubscribe();
223
242
  }
243
+ /**
244
+ * Ends consumers attached to a prior entry while a fresh consumer finishes admission.
245
+ *
246
+ * @param id Retained subscription whose attachment is no longer current.
247
+ */
248
+ #retireAttached(id, current) {
249
+ for (const consumer of [...(this.#consumers.get(id) ?? [])])
250
+ if (!consumer.attaching ||
251
+ (consumer.expected !== undefined &&
252
+ (current === undefined || !sameEntry(consumer.expected, current))))
253
+ this.#invalidateConsumer(id, consumer);
254
+ this.#detach(id);
255
+ }
224
256
  /**
225
257
  * Returns the pair-owned durable registry.
226
258
  *
@@ -236,6 +268,9 @@ export class SubscriptionRuntime {
236
268
  this.#closing = true;
237
269
  if (this.#timer !== undefined)
238
270
  clearInterval(this.#timer);
271
+ for (const [id, consumers] of this.#consumers)
272
+ for (const consumer of [...consumers])
273
+ this.#invalidateConsumer(id, consumer);
239
274
  }
240
275
  /**
241
276
  * Waits for accepted reconciliation and detaches every observer.
@@ -246,7 +281,7 @@ export class SubscriptionRuntime {
246
281
  this.beginClose();
247
282
  await this.#tail;
248
283
  const errors = [];
249
- for (const id of [...this.#attachments.keys()]) {
284
+ for (const id of new Set([...this.#attachments.keys(), ...this.#consumers.keys()])) {
250
285
  try {
251
286
  this.remove(id);
252
287
  }
@@ -254,7 +289,6 @@ export class SubscriptionRuntime {
254
289
  errors.push(error);
255
290
  }
256
291
  }
257
- this.#consumers.clear();
258
292
  if (errors.length > 0)
259
293
  throw new AggregateError(errors, "Subscription runtime close failed.");
260
294
  }
@@ -267,6 +301,9 @@ export class SubscriptionRuntime {
267
301
  this.#closed ??= this.#finishClose();
268
302
  return this.#closed;
269
303
  }
304
+ /**
305
+ * Drains consumers and closes the registry, retaining every cleanup failure.
306
+ */
270
307
  async #finishClose() {
271
308
  const errors = [];
272
309
  await _a.#closePart(() => this.drainClose(), errors);
@@ -293,39 +330,88 @@ export class SubscriptionRuntime {
293
330
  abortClose() {
294
331
  this.#closed ??= this.#abortClose();
295
332
  }
333
+ /**
334
+ * Drains active subscriptions and closes the registry after failed construction.
335
+ */
296
336
  async #abortClose() {
297
337
  this.beginClose();
298
338
  const registryClose = _a.#closeThunk(() => this.#registry.close());
299
339
  await Promise.allSettled([this.drainClose(), registryClose]);
300
340
  }
301
- #consumerHandle(id, onUpdate) {
341
+ /**
342
+ * Creates a cancellable handle for one attached subscription consumer.
343
+ */
344
+ #consumerHandle(id, consumer) {
302
345
  let closed = false;
346
+ /**
347
+ * Checks whether this consumer is still registered for its subscription.
348
+ */
349
+ const active = () => this.#consumers.get(id)?.has(consumer) === true;
303
350
  return Object.freeze({
351
+ /**
352
+ * Reports whether this consumer was removed or its registration changed.
353
+ */
304
354
  get closed() {
305
- return closed;
355
+ return closed || !active();
306
356
  },
307
357
  unsubscribe: () => {
308
358
  if (closed)
309
359
  return;
310
360
  closed = true;
311
- this.#removeConsumer(id, onUpdate);
361
+ this.#removeConsumer(id, consumer);
312
362
  },
313
363
  });
314
364
  }
315
- #removeConsumer(id, onUpdate) {
365
+ /**
366
+ * Confirms the attachment still represents this admission after reconciliation.
367
+ * @param id Canonical subscription ID.
368
+ * @param consumer Newly attached native reader.
369
+ * @returns Handle for the reader, closed if its entry changed.
370
+ */
371
+ async #verifyConsumer(id, consumer) {
372
+ const current = await this.#registry.get(create(SubscriptionIdSchema, { value: id }));
373
+ if (this.#consumers.get(id)?.has(consumer) === true &&
374
+ consumer.expected !== undefined &&
375
+ (current?.phase !== "active" || !sameEntry(consumer.expected, current)))
376
+ this.#invalidateConsumer(id, consumer);
377
+ return this.#consumerHandle(id, consumer);
378
+ }
379
+ /**
380
+ * Removes one reader callback from the active consumer set.
381
+ */
382
+ #removeConsumer(id, consumer) {
316
383
  const consumers = this.#consumers.get(id);
317
- consumers?.delete(onUpdate);
384
+ consumers?.delete(consumer);
318
385
  if (consumers?.size === 0)
319
386
  this.#consumers.delete(id);
320
387
  }
388
+ /**
389
+ * Removes one consumer and signals its stream without affecting peer callbacks.
390
+ *
391
+ * @param id Retained subscription containing the consumer.
392
+ * @param consumer Callback whose entry has become stale.
393
+ */
394
+ #invalidateConsumer(id, consumer) {
395
+ this.#removeConsumer(id, consumer);
396
+ try {
397
+ consumer.onInvalidated?.();
398
+ }
399
+ catch {
400
+ _a.#warnConsumerFailure(subscriptionRuntimeLoggers.get(this), id);
401
+ }
402
+ }
403
+ /**
404
+ * Attaches an Event or Entity observer only while the durable entry remains active.
405
+ */
321
406
  async #attach(id, expected) {
322
407
  const current = await this.#registry.get(create(SubscriptionIdSchema, { value: id }));
323
408
  if (current?.phase !== "active" || !sameEntry(current, expected) || this.#closing)
324
409
  return;
325
- const identity = entryIdentity(current);
326
- if (sameBytes(this.#attachments.get(id)?.identity, identity))
410
+ const attached = this.#attachments.get(id);
411
+ if (attached !== undefined && sameEntry(attached.entry, current))
327
412
  return;
328
- this.#detach(id);
413
+ if (attached !== undefined)
414
+ this.#retireAttached(id, current);
329
415
  const state = standAccess.observedState(this.#domainStand, current.subscription.topic?.target?.type);
330
416
  const attachment = state === undefined
331
417
  ? SubscriptionObservers.observeEvent(current.subscription, this.#domainEventBus, (update) => {
@@ -335,8 +421,11 @@ export class SubscriptionRuntime {
335
421
  this.#notify(id, update);
336
422
  });
337
423
  if (attachment !== undefined)
338
- this.#attachments.set(id, { identity, subscription: attachment });
424
+ this.#attachments.set(id, { entry: current, subscription: attachment });
339
425
  }
426
+ /**
427
+ * Runs one close step and collects its failure without skipping later steps.
428
+ */
340
429
  static async #closePart(work, errors) {
341
430
  try {
342
431
  await work();
@@ -345,14 +434,24 @@ export class SubscriptionRuntime {
345
434
  errors.push(error);
346
435
  }
347
436
  }
437
+ /**
438
+ * Adapts a registry close callback to the runtime's close work signature.
439
+ */
348
440
  static async #closeThunk(work) {
349
441
  await work();
350
442
  }
443
+ /**
444
+ * Delivers one update to current consumers without letting a callback suppress peers.
445
+ */
351
446
  #notify(id, update) {
352
447
  for (const consumer of [...(this.#consumers.get(id) ?? [])]) {
448
+ const attached = this.#attachments.get(id);
449
+ if (consumer.expected !== undefined &&
450
+ (attached === undefined || !sameEntry(consumer.expected, attached.entry)))
451
+ continue;
353
452
  const logger = subscriptionRuntimeLoggers.get(this);
354
453
  try {
355
- const invoke = consumer;
454
+ const invoke = consumer.onUpdate;
356
455
  const outcome = invoke(update);
357
456
  if (_a.#isPromiseLike(outcome)) {
358
457
  // spine-log-boundary: server.subscription_consumer_async_delivery
@@ -368,6 +467,9 @@ export class SubscriptionRuntime {
368
467
  }
369
468
  }
370
469
  }
470
+ /**
471
+ * Records a failed consumer callback without logging the update payload.
472
+ */
371
473
  static #warnConsumerFailure(logger, id) {
372
474
  if (logger === undefined)
373
475
  return;
@@ -377,6 +479,9 @@ export class SubscriptionRuntime {
377
479
  reasonCode: "failed",
378
480
  });
379
481
  }
482
+ /**
483
+ * Checks whether a callback result needs asynchronous failure observation.
484
+ */
380
485
  static #isPromiseLike(value) {
381
486
  return ((typeof value === "object" || typeof value === "function") &&
382
487
  value !== null &&
@@ -443,6 +548,7 @@ function entryIdentity(entry) {
443
548
  function sameEntry(left, right) {
444
549
  return (left.phase === right.phase &&
445
550
  left.createdAt === right.createdAt &&
551
+ ReaderIdentities.same(left.reader, right.reader) &&
446
552
  sameBytes(entryIdentity(left), entryIdentity(right)));
447
553
  }
448
554
  function sameBytes(left, right) {
@@ -1 +1 @@
1
- {"version":3,"file":"subscription-runtime.js","sourceRoot":"","sources":["../../src/stand/subscription-runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;;AAEH,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,EACL,oBAAoB,EACpB,kBAAkB,GAEnB,MAAM,kCAAkC,CAAC;AAG1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,WAAW,EAAsC,MAAM,YAAY,CAAC;AAQ7E,MAAM,0BAA0B,GAAG,IAAI,OAAO,EAAkC,CAAC;AACjF,MAAM,+BAA+B,GAAG,IAAI,OAAO,EAA+B,CAAC;AACnF,MAAM,oBAAoB,GAAG,IAAI,OAAO,EAAuB,CAAC;AA4BhE;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,mBAAmB;IACrB,YAAY,CAAQ;IAEpB,YAAY,CAAQ;IAEpB,eAAe,CAAW;IAE1B,eAAe,CAAW;IAE1B,SAAS,CAA4B;IAErC,UAAU,GAAG,IAAI,GAAG,EAAqD,CAAC;IAE1E,YAAY,GAAG,IAAI,GAAG,EAAuC,CAAC;IAEvE,KAAK,GAAkB,OAAO,CAAC,OAAO,EAAE,CAAC;IAEzC,MAAM,CAA6C;IAEnD,oBAAoB,CAA4B;IAEhD,YAAY,CAA4B;IAExC,iBAAiB,GAAG,KAAK,CAAC;IAE1B,QAAQ,GAAG,KAAK,CAAC;IAEjB,OAAO,CAA4B;IAEnC;;;;;;;;OAQG;IACH,YACE,WAAkB,EAClB,WAAkB,EAClB,cAAwB,EACxB,cAAwB,EACxB,QAAmC;QAEnC,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;QAChC,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;QAChC,IAAI,CAAC,eAAe,GAAG,cAAc,CAAC;QACtC,IAAI,CAAC,eAAe,GAAG,cAAc,CAAC;QACtC,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC5B,CAAC;IAED;;;OAGG;IACH,KAAK;QACH,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC,CAAC;QACxF,IAAI,IAAI,CAAC,iBAAiB;YAAE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;QACrD,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC,YAAY,CAAC;QAC9D,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE;aAC7B,IAAI,CAAC,GAAG,EAAE;YACT,IAAI,IAAI,CAAC,QAAQ;gBAAE,OAAO;YAC1B,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;YAC9B,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,CAAC,CAAC;aACD,OAAO,CAAC,GAAG,EAAE;YACZ,IAAI,IAAI,CAAC,YAAY,KAAK,OAAO;gBAAE,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;QACnE,CAAC,CAAC,CAAC;QACL,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC;QAC5B,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,WAAW;QACT,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO;QACvD,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC,GAAG,EAAE;YAC7B,KAAK,IAAI,CAAC,eAAe,EAAE,CAAC;QAC9B,CAAC,EAAE,MAAM,CAAC,CAAC;QACX,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;IAED;;;;;;OAMG;IACH,OAAO,CAAC,EAAU,EAAE,QAA8C;QAChE,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC,CAAC;QACxF,IAAI,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACxC,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,SAAS,GAAG,IAAI,GAAG,EAAE,CAAC;YACtB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;QACrC,CAAC;QACD,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACxB,OAAO,IAAI,CAAC,SAAS,EAAE;aACpB,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;aAC9C,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;YACxB,IAAI,CAAC,eAAe,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;YACnC,MAAM,KAAK,CAAC;QACd,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;;OAIG;IACH,SAAS;QACP,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;YACvC,IAAI,IAAI,CAAC,QAAQ;gBAAE,OAAO;YAC1B,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;YAC/B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;YAChD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;YAC/B,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;gBAC5B,MAAM,EAAE,GAAG,KAAK,CAAC,YAAY,CAAC,EAAE,EAAE,KAAK,CAAC;gBACxC,IAAI,EAAE,KAAK,SAAS;oBAAE,SAAS;gBAC/B,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACb,IAAI,KAAK,CAAC,KAAK,KAAK,QAAQ;oBAAE,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;;oBACvD,MAAM,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC;YAC1C,CAAC;YACD,KAAK,MAAM,EAAE,IAAI,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;gBAChF,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;oBAAE,MAAM,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;QACH,yDAAyD;QACzD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAC1C,OAAO,KAAK,CAAC;IACf,CAAC;IAED,eAAe;QACb,IAAI,IAAI,CAAC,oBAAoB,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC,oBAAoB,CAAC;QAC9E,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE;YACnD,IAAI,CAAC,oBAAoB,GAAG,SAAS,CAAC;QACxC,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,oBAAoB,GAAG,cAAc,CAAC;QAC3C,0DAA0D;QAC1D,KAAK,cAAc,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;YAC3C,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QACH,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,0BAA0B,CAAC,KAAc;QACvC,MAAM,MAAM,GAAG,0BAA0B,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO;QACjC,IAAI,SAA6B,CAAC;QAClC,IAAI,SAAkB,CAAC;QACvB,IAAI,CAAC;YACH,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;gBAC3B,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC;gBACvB,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YACzC,CAAC;YACD,2DAA2D;QAC7D,CAAC;QAAC,MAAM,CAAC;YACP,qEAAqE;QACvE,CAAC;QACD,iBAAiB,CAAC,MAAM,EAAE,qCAAqC,EAAE;YAC/D,WAAW,EAAE,+BAA+B,CAAC,GAAG,CAAC,IAAI,CAAC;YACtD,SAAS,EAAE,wBAAwB;YACnC,UAAU,EAAE,QAAQ;YACpB,SAAS;YACT,SAAS;SACV,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,EAAU;QACf,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC3B,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACnB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,mBAAmB,CAAC,EAAU;QAClC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,oBAAoB,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QACtF,IAAI,OAAO,EAAE,KAAK,KAAK,QAAQ;YAAE,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;aAC5D,IAAI,OAAO,KAAK,SAAS;YAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;;YAC3C,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACxB,CAAC;IAED,OAAO,CAAC,EAAU;QAChB,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC7C,IAAI,UAAU,KAAK,SAAS;YAAE,OAAO;QACrC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC7B,UAAU,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;IACxC,CAAC;IAED;;;;OAIG;IACH,QAAQ;QACN,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,UAAU;QACR,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS;YAAE,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5D,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,UAAU;QACd,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,MAAM,IAAI,CAAC,KAAK,CAAC;QACjB,MAAM,MAAM,GAAc,EAAE,CAAC;QAC7B,KAAK,MAAM,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;YAC/C,IAAI,CAAC;gBACH,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAClB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrB,CAAC;QACH,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACxB,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;YAAE,MAAM,IAAI,cAAc,CAAC,MAAM,EAAE,oCAAoC,CAAC,CAAC;IAChG,CAAC;IAED;;;;OAIG;IACH,WAAW;QACT,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,YAAY,EAAE,CAAC;QACrC,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,MAAM,MAAM,GAAc,EAAE,CAAC;QAC7B,MAAM,EAAmB,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,MAAM,CAAC,CAAC;QACtE,MAAM,EAAmB,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,MAAM,CAAC,CAAC;QAC3E,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,cAAc,CACtB,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CACvB,KAAK,YAAY,cAAc;gBAC7B,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,MAAM,EAAW,EAAE,CAAC,MAAM,CAAC;gBACvD,CAAC,CAAC,CAAC,KAAK,CAAC,CACZ,EACD,oCAAoC,CACrC,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,KAAK;QACH,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;IAC5B,CAAC;IAED;;;;OAIG;IACH,UAAU;QACR,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,WAAW;QACf,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,MAAM,aAAa,GAAG,EAAmB,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC;QACpF,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,aAAa,CAAC,CAAC,CAAC;IAC/D,CAAC;IAED,eAAe,CAAC,EAAU,EAAE,QAA8C;QACxE,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,OAAO,MAAM,CAAC,MAAM,CAAC;YACnB,IAAI,MAAM;gBACR,OAAO,MAAM,CAAC;YAChB,CAAC;YACD,WAAW,EAAE,GAAG,EAAE;gBAChB,IAAI,MAAM;oBAAE,OAAO;gBACnB,MAAM,GAAG,IAAI,CAAC;gBACd,IAAI,CAAC,eAAe,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;YACrC,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAED,eAAe,CAAC,EAAU,EAAE,QAA8C;QACxE,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC1C,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC5B,IAAI,SAAS,EAAE,IAAI,KAAK,CAAC;YAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,EAAU,EAAE,QAAgC;QACxD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,oBAAoB,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QACtF,IAAI,OAAO,EAAE,KAAK,KAAK,QAAQ,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC1F,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;QACxC,IAAI,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC;YAAE,OAAO;QACrE,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACjB,MAAM,KAAK,GAAG,WAAW,CAAC,aAAa,CACrC,IAAI,CAAC,YAAY,EACjB,OAAO,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CACzC,CAAC;QACF,MAAM,UAAU,GACd,KAAK,KAAK,SAAS;YACjB,CAAC,CAAC,qBAAqB,CAAC,YAAY,CAChC,OAAO,CAAC,YAAY,EACpB,IAAI,CAAC,eAAe,EACpB,CAAC,MAAM,EAAE,EAAE;gBACT,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;YAC3B,CAAC,CACF;YACH,CAAC,CAAC,WAAW,CAAC,YAAY,CACtB,IAAI,CAAC,YAAY,EACjB,OAAO,CAAC,YAAY,EACpB,KAAK,EACL,IAAI,CAAC,eAAe,EACpB,CAAC,MAAM,EAAE,EAAE;gBACT,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;YAC3B,CAAC,CACF,CAAC;QACR,IAAI,UAAU,KAAK,SAAS;YAAE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC,CAAC;IAClG,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,IAAyB,EAAE,MAAiB;QAClE,IAAI,CAAC;YACH,MAAM,IAAI,EAAE,CAAC;QACf,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,IAAyB;QAChD,MAAM,IAAI,EAAE,CAAC;IACf,CAAC;IAED,OAAO,CAAC,EAAU,EAAE,MAA0B;QAC5C,KAAK,MAAM,QAAQ,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;YAC5D,MAAM,MAAM,GAAG,0BAA0B,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACpD,IAAI,CAAC;gBACH,MAAM,MAAM,GAA0C,QAAQ,CAAC;gBAC/D,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;gBAC/B,IAAI,EAAmB,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;oBAChD,kEAAkE;oBAClE,KAAK,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;wBACvC,EAAmB,CAAC,oBAAoB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;oBACvD,CAAC,CAAC,CAAC;gBACL,CAAC;gBACD,4DAA4D;YAC9D,CAAC;YAAC,MAAM,CAAC;gBACP,iEAAiE;gBACjE,EAAmB,CAAC,oBAAoB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YACvD,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,CAAC,oBAAoB,CAAC,MAA6B,EAAE,EAAU;QACnE,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO;QACjC,iBAAiB,CAAC,MAAM,EAAE,wCAAwC,EAAE;YAClE,cAAc,EAAE,EAAE;YAClB,SAAS,EAAE,uBAAuB;YAClC,UAAU,EAAE,QAAQ;SACrB,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,cAAc,CAAC,KAAc;QAClC,OAAO,CACL,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,UAAU,CAAC;YAC1D,KAAK,KAAK,IAAI;YACd,MAAM,IAAI,KAAK;YACf,OAAQ,KAA4B,CAAC,IAAI,KAAK,UAAU,CACzD,CAAC;IACJ,CAAC;CACF;;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAA8B,MAAM,CAAC,MAAM,CAAC;IAChF;;;;;OAKG;IACH,aAAa,CAAC,OAA4B,EAAE,MAAiB,EAAE,WAAoB;QACjF,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YACvC,MAAM,IAAI,SAAS,CAAC,sEAAsE,CAAC,CAAC;QAC9F,CAAC;QACD,0BAA0B,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAChD,IAAI,WAAW,KAAK,SAAS;YAAE,+BAA+B,CAAC,GAAG,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAC3F,CAAC;IAED;;;OAGG;IACH,WAAW,CAAC,OAA4B;QACtC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YACvC,MAAM,IAAI,SAAS,CAAC,sEAAsE,CAAC,CAAC;QAC9F,CAAC;QACD,0BAA0B,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC3C,+BAA+B,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAClD,CAAC;IAED;;;;OAIG;IACH,SAAS,CAAC,OAA4B;QACpC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YACvC,MAAM,IAAI,SAAS,CAAC,sEAAsE,CAAC,CAAC;QAC9F,CAAC;QACD,MAAM,MAAM,GAAG,0BAA0B,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACvD,IAAI,MAAM,KAAK,SAAS;YAAE,MAAM,IAAI,SAAS,CAAC,+CAA+C,CAAC,CAAC;QAC/F,OAAO,MAAM,CAAC;IAChB,CAAC;CACF,CAAC,CAAC;AAEH,SAAS,aAAa,CAAC,KAA6B;IAClD,MAAM,YAAY,GAAG,QAAQ,CAAC,kBAAkB,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;IACtE,MAAM,SAAS,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;IACpC,IAAI,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAC9D,MAAM,QAAQ,GAAG,IAAI,UAAU,CAAC,YAAY,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;IACxE,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAC3B,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IAC7C,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,SAAS,CAAC,IAA4B,EAAE,KAA6B;IAC5E,OAAO,CACL,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK;QAC1B,IAAI,CAAC,SAAS,KAAK,KAAK,CAAC,SAAS;QAClC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC,CACrD,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,IAA4B,EAAE,KAAiB;IAChE,OAAO,IAAI,EAAE,MAAM,KAAK,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;AAC/F,CAAC"}
1
+ {"version":3,"file":"subscription-runtime.js","sourceRoot":"","sources":["../../src/stand/subscription-runtime.ts"],"names":[],"mappings":"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"}